@webiny/app-file-manager 5.35.2 → 5.36.0-beta.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/BatchFileUploader.d.ts +35 -0
- package/BatchFileUploader.js +180 -0
- package/BatchFileUploader.js.map +1 -0
- package/components/BottomInfoBar/BottomInfoBar.d.ts +4 -0
- package/components/BottomInfoBar/BottomInfoBar.js +25 -0
- package/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
- package/components/BottomInfoBar/ListStatus.d.ts +6 -0
- package/components/BottomInfoBar/ListStatus.js +26 -0
- package/components/BottomInfoBar/ListStatus.js.map +1 -0
- package/components/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
- package/components/BottomInfoBar/SupportedFileTypes.js +47 -0
- package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/components/BottomInfoBar/index.d.ts +1 -0
- package/components/BottomInfoBar/index.js +16 -0
- package/components/BottomInfoBar/index.js.map +1 -0
- package/components/BottomInfoBar/styled.d.ts +23 -0
- package/components/BottomInfoBar/styled.js +33 -0
- package/components/BottomInfoBar/styled.js.map +1 -0
- package/components/DropFilesHere/DropFilesHere.d.ts +9 -0
- package/components/DropFilesHere/DropFilesHere.js +31 -0
- package/components/DropFilesHere/DropFilesHere.js.map +1 -0
- package/components/DropFilesHere/index.d.ts +1 -0
- package/components/DropFilesHere/index.js +16 -0
- package/components/DropFilesHere/index.js.map +1 -0
- package/components/DropFilesHere/styled.d.ts +26 -0
- package/components/DropFilesHere/styled.js +35 -0
- package/components/DropFilesHere/styled.js.map +1 -0
- package/components/Empty/Empty.d.ts +8 -0
- package/components/Empty/Empty.js +31 -0
- package/components/Empty/Empty.js.map +1 -0
- package/components/Empty/index.d.ts +1 -0
- package/components/Empty/index.js +16 -0
- package/components/Empty/index.js.map +1 -0
- package/components/FileDetails/Aliases.js +8 -4
- package/components/FileDetails/Aliases.js.map +1 -1
- package/components/FileDetails/DeleteImageAction.d.ts +6 -2
- package/components/FileDetails/DeleteImageAction.js +19 -52
- package/components/FileDetails/DeleteImageAction.js.map +1 -1
- package/components/FileDetails/FileDetails.d.ts +24 -0
- package/components/FileDetails/FileDetails.js +267 -0
- package/components/FileDetails/FileDetails.js.map +1 -0
- package/components/FileDetails/Name.js +2 -2
- package/components/FileDetails/Name.js.map +1 -1
- package/components/FileDetails/Tags.d.ts +6 -2
- package/components/FileDetails/Tags.js +31 -16
- package/components/FileDetails/Tags.js.map +1 -1
- package/components/FileDetails/index.d.ts +1 -0
- package/components/FileDetails/index.js +16 -0
- package/components/FileDetails/index.js.map +1 -0
- package/components/Grid/File.d.ts +16 -0
- package/components/Grid/File.js +57 -0
- package/components/Grid/File.js.map +1 -0
- package/components/Grid/Grid.d.ts +17 -0
- package/components/Grid/Grid.js +99 -0
- package/components/Grid/Grid.js.map +1 -0
- package/components/Grid/index.d.ts +1 -0
- package/components/Grid/index.js +16 -0
- package/components/Grid/index.js.map +1 -0
- package/components/Grid/styled.d.ts +40 -0
- package/components/Grid/styled.js +58 -0
- package/components/Grid/styled.js.map +1 -0
- package/components/NoPermission/NoPermission.d.ts +2 -0
- package/components/NoPermission/NoPermission.js +24 -0
- package/components/NoPermission/NoPermission.js.map +1 -0
- package/components/NoPermission/index.d.ts +1 -0
- package/components/NoPermission/index.js +16 -0
- package/components/NoPermission/index.js.map +1 -0
- package/components/NoPermission/styled.d.ts +32 -0
- package/components/NoPermission/styled.js +40 -0
- package/components/NoPermission/styled.js.map +1 -0
- package/components/NoResults/NoResults.d.ts +2 -0
- package/components/NoResults/NoResults.js +17 -0
- package/components/NoResults/NoResults.js.map +1 -0
- package/components/NoResults/index.d.ts +1 -0
- package/components/NoResults/index.js +16 -0
- package/components/NoResults/index.js.map +1 -0
- package/components/NoResults/styled.d.ts +7 -0
- package/components/NoResults/styled.js +13 -0
- package/components/NoResults/styled.js.map +1 -0
- package/components/Table/FolderActionDelete.d.ts +6 -0
- package/components/Table/FolderActionDelete.js +25 -0
- package/components/Table/FolderActionDelete.js.map +1 -0
- package/components/Table/FolderActionEdit.d.ts +6 -0
- package/components/Table/FolderActionEdit.js +25 -0
- package/components/Table/FolderActionEdit.js.map +1 -0
- package/components/Table/Name.d.ts +12 -0
- package/components/Table/Name.js +39 -0
- package/components/Table/Name.js.map +1 -0
- package/components/Table/RecordActionCopy.d.ts +8 -0
- package/components/Table/RecordActionCopy.js +30 -0
- package/components/Table/RecordActionCopy.js.map +1 -0
- package/components/Table/RecordActionDelete.d.ts +8 -0
- package/components/Table/RecordActionDelete.js +36 -0
- package/components/Table/RecordActionDelete.js.map +1 -0
- package/components/Table/RecordActionEdit.d.ts +7 -0
- package/components/Table/RecordActionEdit.js +28 -0
- package/components/Table/RecordActionEdit.js.map +1 -0
- package/components/Table/RecordActionMove.d.ts +6 -0
- package/components/Table/RecordActionMove.js +25 -0
- package/components/Table/RecordActionMove.js.map +1 -0
- package/components/Table/Table.d.ts +31 -0
- package/components/Table/Table.js +256 -0
- package/components/Table/Table.js.map +1 -0
- package/components/Table/index.d.ts +1 -0
- package/components/Table/index.js +16 -0
- package/components/Table/index.js.map +1 -0
- package/components/Table/styled.d.ts +21 -0
- package/components/Table/styled.js +35 -0
- package/components/Table/styled.js.map +1 -0
- package/components/Title/Title.d.ts +5 -0
- package/components/Title/Title.js +20 -0
- package/components/Title/Title.js.map +1 -0
- package/components/Title/index.d.ts +1 -0
- package/components/Title/index.js +16 -0
- package/components/Title/index.js.map +1 -0
- package/components/Title/styled.d.ts +7 -0
- package/components/Title/styled.js +14 -0
- package/components/Title/styled.js.map +1 -0
- package/components/UploadStatus/UploadStatus.d.ts +6 -0
- package/components/UploadStatus/UploadStatus.js +36 -0
- package/components/UploadStatus/UploadStatus.js.map +1 -0
- package/components/UploadStatus/assets/check.svg +3 -0
- package/components/UploadStatus/assets/loading.svg +17 -0
- package/components/UploadStatus/index.d.ts +1 -0
- package/components/UploadStatus/index.js +16 -0
- package/components/UploadStatus/index.js.map +1 -0
- package/components/UploadStatus/styled.d.ts +41 -0
- package/components/UploadStatus/styled.js +57 -0
- package/components/UploadStatus/styled.js.map +1 -0
- package/constants.d.ts +3 -0
- package/constants.js +12 -0
- package/constants.js.map +1 -0
- package/hooks/useCopyFile.d.ts +11 -0
- package/hooks/useCopyFile.js +30 -0
- package/hooks/useCopyFile.js.map +1 -0
- package/hooks/useDeleteFile.d.ts +9 -0
- package/hooks/useDeleteFile.js +64 -0
- package/hooks/useDeleteFile.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +9 -1
- package/index.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +9 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +82 -52
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -2
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +3 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -1
- package/modules/FileManagerApiProvider/graphql.d.ts +4 -0
- package/modules/FileManagerApiProvider/graphql.js +9 -7
- package/modules/FileManagerApiProvider/graphql.js.map +1 -1
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.d.ts +18 -0
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js +622 -0
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.d.ts +12 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js +75 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.d.ts +2 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.js +70 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.d.ts +2 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js +40 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +7 -2
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +2 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +48 -36
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/check.svg +3 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/loading.svg +17 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +4 -3
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +6 -25
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +2 -2
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +80 -109
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.d.ts +54 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js +430 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.d.ts +2 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js +27 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.d.ts +74 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js +119 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.d.ts +3 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js +15 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +4 -3
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +23 -19
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +0 -3
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +0 -5
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -1
- package/modules/FileManagerRenderer/index.js +2 -2
- package/modules/FileManagerRenderer/index.js.map +1 -1
- package/modules/FileTypes/fileImage/EditAction.js +2 -2
- package/modules/FileTypes/fileImage/EditAction.js.map +1 -1
- package/package.json +18 -12
- package/tagsHelpers.d.ts +16 -0
- package/tagsHelpers.js +41 -0
- package/tagsHelpers.js.map +1 -0
- package/types.d.ts +1 -0
- package/types.js +8 -1
- package/types.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","fileDetailsSidebar","css","width","CloseButton","styled","IconButton","style","wrapper","height","overflowY","header","textAlign","marginBottom","paddingTop","textTransform","color","fontWeight","preview","boxSizing","display","justifyContent","alignItems","position","margin","img","objectFit","maxHeight","maxWidth","transform","backgroundColor","download","list","li","padding","lineHeight","minHeight","marginRight","flex","whiteSpace","overflow","textOverflow","drawerContent","FileDetailsInner","file","onClose","scope","own","useCopyFile","copyFileUrl","filePlugin","getFileTypePlugin","useState","darkImageBackground","setDarkImageBackground","actions","get","fileTypeIcon","useMemo","type","includes","classNames","dark","render","map","Component","index","bytes","format","size","unitSeparator","dayjs","createdOn","FileDetails","open","loading","rest","useHotkeys","zIndex","disabled","keys","esc"],"sources":["FileDetails.tsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { ReactComponent as CloseIcon } from \"@material-design-icons/svg/outlined/close.svg\";\nimport { ReactComponent as CopyContentIcon } from \"@material-design-icons/svg/outlined/content_copy.svg\";\nimport { ReactComponent as ImageIcon } from \"@material-design-icons/svg/outlined/insert_photo.svg\";\nimport { ReactComponent as FileIcon } from \"@material-design-icons/svg/outlined/insert_drive_file.svg\";\nimport { ReactComponent as CalendarIcon } from \"@material-design-icons/svg/outlined/today.svg\";\nimport { ReactComponent as HighlightIcon } from \"@material-design-icons/svg/outlined/highlight.svg\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Drawer, DrawerContent } from \"@webiny/ui/Drawer\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport bytes from \"bytes\";\nimport classNames from \"classnames\";\nimport dayjs from \"dayjs\";\nimport get from \"lodash/get\";\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { Aliases } from \"./Aliases\";\nimport { DeleteImageAction } from \"./DeleteImageAction\";\nimport { FileProvider } from \"./FileProvider\";\nimport Name from \"./Name\";\nimport Tags from \"./Tags\";\nimport { useCopyFile } from \"~/hooks/useCopyFile\";\nimport getFileTypePlugin from \"~/getFileTypePlugin\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-details\");\n\nconst fileDetailsSidebar = css({\n \"&.mdc-drawer\": {\n width: 360\n }\n});\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"li-title\": {\n children?: React.ReactNode;\n };\n\n \"li-content\": {\n children?: React.ReactNode;\n };\n }\n }\n}\n\nconst CloseButton = styled(IconButton)`\n position: absolute;\n right: 10px;\n top: 8px;\n z-index: 10;\n`;\n\nconst style: any = {\n wrapper: css({\n height: \"100vh\",\n overflowY: \"auto\"\n }),\n header: css({\n textAlign: \"center\",\n marginBottom: 24,\n paddingTop: 16,\n \"& span\": {\n textTransform: \"capitalize\",\n color: \"var(--mdc-theme-on-surface)\",\n fontWeight: 600\n }\n }),\n preview: css({\n boxSizing: \"border-box\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"relative\",\n width: \"100%\",\n height: 300,\n margin: \"0 auto 24px\",\n img: {\n objectFit: \"contain\",\n maxHeight: 300,\n maxWidth: 300,\n width: \"100%\",\n position: \"static\",\n transform: \"none\"\n },\n \"&.dark\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n }\n }),\n download: css({\n textAlign: \"center\",\n margin: \"0 auto\",\n width: \"100%\",\n \"& .icon--active\": {\n \"&.mdc-icon-button\": {\n color: \"var(--mdc-theme-text-on-primary)\"\n }\n }\n }),\n list: css({\n textAlign: \"left\",\n color: \"var(--mdc-theme-on-surface)\",\n li: {\n padding: \"12px 16px\",\n lineHeight: \"22px\",\n \"li-title\": {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n minHeight: 48,\n \"& .list-item__title\": {\n fontWeight: 600\n },\n \"& .list-item__icon\": {\n marginRight: 24\n },\n \"& .list-item__content\": {\n flex: \"1 0 200px\"\n }\n },\n \"li-content\": {\n width: \"100%\",\n display: \"block\",\n \"& .list-item__truncate\": {\n display: \"block\",\n width: \"100%\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n }\n }\n }\n }),\n drawerContent: css({\n \"&.mdc-drawer__content\": {\n height: \"auto\",\n overflowY: \"inherit\"\n }\n })\n};\n\ninterface FileDetailsInnerProps {\n file: FileItem;\n scope?: string;\n own?: boolean;\n onClose: () => void;\n}\n\nconst FileDetailsInner: React.FC<FileDetailsInnerProps> = ({ file, onClose, scope, own }) => {\n const { copyFileUrl } = useCopyFile({ file });\n const filePlugin = getFileTypePlugin(file);\n const [darkImageBackground, setDarkImageBackground] = useState(false);\n\n const actions: React.FC[] =\n get(filePlugin, \"fileDetails.actions\") || get(filePlugin, \"actions\") || [];\n\n const fileTypeIcon = useMemo(() => {\n if (file && typeof file.type === \"string\") {\n return file.type.includes(\"image\") ? <ImageIcon /> : <FileIcon />;\n }\n return <ImageIcon />;\n }, [file]);\n\n return (\n <FileProvider file={file}>\n <div className={style.wrapper} dir=\"ltr\">\n <div className={style.header}>\n <Typography use={\"headline5\"}>{t`File details`}</Typography>\n <CloseButton icon={<CloseIcon />} onClick={onClose} />\n </div>\n\n <div\n className={classNames(style.preview, {\n dark: darkImageBackground\n })}\n >\n {filePlugin && filePlugin.render({ file })}\n </div>\n <div className={style.download}>\n <>\n <Tooltip content={<span>{t`Copy URL`}</span>} placement={\"bottom\"}>\n <IconButton\n onClick={copyFileUrl}\n icon={<CopyContentIcon style={{ margin: \"0 8px 0 0\" }} />}\n />\n </Tooltip>\n\n {actions.map((Component: React.FC<{ file: FileItem }>, index: number) => (\n <Component key={index} file={file} />\n ))}\n <DeleteImageAction onDelete={onClose} />\n {/* Render background switcher */}\n <Tooltip content={t`Toggle background`} placement={\"bottom\"}>\n <IconButton\n icon={<HighlightIcon />}\n onClick={() => setDarkImageBackground(!darkImageBackground)}\n className={classNames({\n \"icon--active\": darkImageBackground\n })}\n />\n </Tooltip>\n </>\n </div>\n <DrawerContent dir=\"ltr\" className={style.drawerContent}>\n <ul className={style.list}>\n <li>\n <Name />\n </li>\n <li>\n <li-title>\n <Icon className={\"list-item__icon\"} icon={fileTypeIcon} />\n <div>\n <Typography use={\"subtitle1\"}>{file.type}</Typography> {\" - \"}\n <Typography use={\"subtitle1\"}>\n {bytes.format(file.size, { unitSeparator: \" \" })}\n </Typography>\n </div>\n </li-title>\n </li>\n <li>\n <li-title>\n <Icon className={\"list-item__icon\"} icon={<CalendarIcon />} />\n <div>\n <Typography use={\"subtitle1\"}>\n {dayjs(file.createdOn).format(\"DD MMM YYYY [at] HH:mm\")}\n </Typography>\n </div>\n </li-title>\n </li>\n <li>\n <Tags scope={scope} own={own} />\n </li>\n <li>\n <Aliases />\n </li>\n </ul>\n </DrawerContent>\n </div>\n </FileProvider>\n );\n};\n\nexport interface FileDetailsProps {\n file?: FileItem;\n open: boolean;\n loading: boolean;\n scope?: string;\n own?: boolean;\n onClose: () => void;\n}\n\nexport const FileDetails: React.FC<FileDetailsProps> = ({\n open,\n onClose,\n loading,\n file,\n ...rest\n}) => {\n useHotkeys({\n zIndex: 55,\n disabled: !open,\n keys: {\n esc: onClose\n }\n });\n\n return (\n <Drawer\n className={fileDetailsSidebar}\n dir=\"rtl\"\n modal\n open={open}\n onClose={onClose}\n data-testid={\"fm.file-details.drawer\"}\n >\n <DrawerContent dir=\"ltr\">\n {loading && <CircularProgress label={t`Loading file details...`} />}\n {file && <FileDetailsInner file={file} onClose={onClose} {...rest} />}\n </DrawerContent>\n </Drawer>\n );\n};\n\nexport { useFile } from \"./FileProvider\";\n"],"mappings":"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"}
|
|
@@ -22,8 +22,8 @@ var Name = function Name() {
|
|
|
22
22
|
showSnackbar = _useSnackbar.showSnackbar;
|
|
23
23
|
var _useFileManagerApi = (0, _.useFileManagerApi)(),
|
|
24
24
|
canEdit = _useFileManagerApi.canEdit;
|
|
25
|
-
var
|
|
26
|
-
updateFile =
|
|
25
|
+
var _useFileManagerAcoVie = (0, _.useFileManagerAcoView)(),
|
|
26
|
+
updateFile = _useFileManagerAcoVie.updateFile;
|
|
27
27
|
var onSubmit = /*#__PURE__*/function () {
|
|
28
28
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(_ref) {
|
|
29
29
|
var name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Name","useFile","file","name","useSnackbar","showSnackbar","useFileManagerApi","canEdit","
|
|
1
|
+
{"version":3,"names":["Name","useFile","file","name","useSnackbar","showSnackbar","useFileManagerApi","canEdit","useFileManagerAcoView","updateFile","onSubmit","id","editContent","useMemo","Bind","submit","validation","create"],"sources":["Name.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form, FormOnSubmit } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { useFile, useFileManagerApi, useFileManagerAcoView } from \"~/index\";\n\ninterface NameFormData {\n name: string;\n}\n\nconst Name = () => {\n const { file } = useFile();\n const name = file.name || \"\";\n const { showSnackbar } = useSnackbar();\n const { canEdit } = useFileManagerApi();\n const { updateFile } = useFileManagerAcoView();\n\n const onSubmit: FormOnSubmit<NameFormData> = async ({ name }) => {\n // Bail out if name is same as the current file name.\n if (name === file.name) {\n return;\n }\n\n await updateFile(file.id, { name });\n\n showSnackbar(\"Name successfully updated.\");\n };\n\n const editContent = useMemo(() => {\n return (\n <Form<NameFormData> data={{ name }} onSubmit={onSubmit}>\n {({ Bind, submit }) => (\n <Bind name={\"name\"} validators={validation.create(\"required\")}>\n <Input\n disabled={!canEdit(file)}\n autoFocus\n placeholder={\"Enter name\"}\n fullwidth={true}\n onBlur={submit}\n description={\"A descriptive name is easier to remember.\"}\n />\n </Bind>\n )}\n </Form>\n );\n }, [name, file.name, canEdit]);\n\n return <li-content>{editContent}</li-content>;\n};\n\nexport default Name;\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAMA,IAAMA,IAAI,GAAG,SAAPA,IAAI,GAAS;EACf,eAAiB,IAAAC,SAAO,GAAE;IAAlBC,IAAI,YAAJA,IAAI;EACZ,IAAMC,IAAI,GAAGD,IAAI,CAACC,IAAI,IAAI,EAAE;EAC5B,mBAAyB,IAAAC,qBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EACpB,yBAAoB,IAAAC,mBAAiB,GAAE;IAA/BC,OAAO,sBAAPA,OAAO;EACf,4BAAuB,IAAAC,uBAAqB,GAAE;IAAtCC,UAAU,yBAAVA,UAAU;EAElB,IAAMC,QAAoC;IAAA,mGAAG;MAAA;MAAA;QAAA;UAAA;YAASP,IAAI,QAAJA,IAAI;YAAA,MAElDA,IAAI,KAAKD,IAAI,CAACC,IAAI;cAAA;cAAA;YAAA;YAAA;UAAA;YAAA;YAAA,OAIhBM,UAAU,CAACP,IAAI,CAACS,EAAE,EAAE;cAAER,IAAI,EAAJA;YAAK,CAAC,CAAC;UAAA;YAEnCE,YAAY,CAAC,4BAA4B,CAAC;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA,CAC9C;IAAA,gBATKK,QAAoC;MAAA;IAAA;EAAA,GASzC;EAED,IAAME,WAAW,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC9B,oBACI,6BAAC,UAAI;MAAe,IAAI,EAAE;QAAEV,IAAI,EAAJA;MAAK,CAAE;MAAC,QAAQ,EAAEO;IAAS,GAClD;MAAA,IAAGI,IAAI,SAAJA,IAAI;QAAEC,MAAM,SAANA,MAAM;MAAA,oBACZ,6BAAC,IAAI;QAAC,IAAI,EAAE,MAAO;QAAC,UAAU,EAAEC,sBAAU,CAACC,MAAM,CAAC,UAAU;MAAE,gBAC1D,6BAAC,YAAK;QACF,QAAQ,EAAE,CAACV,OAAO,CAACL,IAAI,CAAE;QACzB,SAAS;QACT,WAAW,EAAE,YAAa;QAC1B,SAAS,EAAE,IAAK;QAChB,MAAM,EAAEa,MAAO;QACf,WAAW,EAAE;MAA4C,EAC3D,CACC;IAAA,CACV,CACE;EAEf,CAAC,EAAE,CAACZ,IAAI,EAAED,IAAI,CAACC,IAAI,EAAEI,OAAO,CAAC,CAAC;EAE9B,oBAAO,iDAAaK,WAAW,CAAc;AACjD,CAAC;AAAC,eAEaZ,IAAI;AAAA"}
|
|
@@ -9,6 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
15
|
var _emotion = require("emotion");
|
|
@@ -21,6 +22,9 @@ var _edit = require("@material-design-icons/svg/outlined/edit.svg");
|
|
|
21
22
|
var _label = require("@material-design-icons/svg/outlined/label.svg");
|
|
22
23
|
var _appAdmin = require("@webiny/app-admin");
|
|
23
24
|
var _ = require("../..");
|
|
25
|
+
var _appAco = require("@webiny/app-aco");
|
|
26
|
+
var _constants = require("../../constants");
|
|
27
|
+
var _tagsHelpers = require("../../tagsHelpers");
|
|
24
28
|
var chipsStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
25
29
|
"&.mdc-chip-set": {
|
|
26
30
|
padding: 0,
|
|
@@ -50,9 +54,19 @@ var actionWrapperStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
|
50
54
|
marginRight: 16
|
|
51
55
|
}
|
|
52
56
|
}, "label:actionWrapperStyle;");
|
|
53
|
-
var Tags = function Tags() {
|
|
57
|
+
var Tags = function Tags(_ref) {
|
|
58
|
+
var scope = _ref.scope,
|
|
59
|
+
own = _ref.own;
|
|
54
60
|
var _useFile = (0, _.useFile)(),
|
|
55
61
|
file = _useFile.file;
|
|
62
|
+
var _useTags = (0, _appAco.useTags)((0, _objectSpread2.default)({
|
|
63
|
+
type: _constants.ACO_TYPE,
|
|
64
|
+
tagsModifier: (0, _tagsHelpers.tagsModifier)(scope)
|
|
65
|
+
}, (0, _tagsHelpers.getTagsInitialParams)({
|
|
66
|
+
scope: scope,
|
|
67
|
+
own: own
|
|
68
|
+
}))),
|
|
69
|
+
tags = _useTags.tags;
|
|
56
70
|
var _useState = (0, _react.useState)(false),
|
|
57
71
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
58
72
|
editing = _useState2[0],
|
|
@@ -65,9 +79,8 @@ var Tags = function Tags() {
|
|
|
65
79
|
showSnackbar = _useSnackbar.showSnackbar;
|
|
66
80
|
var _useFileManagerApi = (0, _.useFileManagerApi)(),
|
|
67
81
|
canEdit = _useFileManagerApi.canEdit;
|
|
68
|
-
var
|
|
69
|
-
updateFile =
|
|
70
|
-
tags = _useFileManagerView.tags;
|
|
82
|
+
var _useFileManagerAcoVie = (0, _.useFileManagerAcoView)(),
|
|
83
|
+
updateFile = _useFileManagerAcoVie.updateFile;
|
|
71
84
|
var _useState5 = (0, _react.useState)(file.tags),
|
|
72
85
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
73
86
|
initialTags = _useState6[0],
|
|
@@ -76,8 +89,8 @@ var Tags = function Tags() {
|
|
|
76
89
|
return setEdit(true);
|
|
77
90
|
}, []);
|
|
78
91
|
var isEditingAllowed = canEdit(file);
|
|
79
|
-
var renderHeaderContent = (0, _react.useCallback)(function (
|
|
80
|
-
var data =
|
|
92
|
+
var renderHeaderContent = (0, _react.useCallback)(function (_ref2) {
|
|
93
|
+
var data = _ref2.data;
|
|
81
94
|
if (editing) {
|
|
82
95
|
return null;
|
|
83
96
|
}
|
|
@@ -86,7 +99,7 @@ var Tags = function Tags() {
|
|
|
86
99
|
// Render existing tags and "edit tags" action.
|
|
87
100
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Chips.Chips, {
|
|
88
101
|
className: (0, _classnames.default)("list-item__content", chipsStyle)
|
|
89
|
-
}, tags.map(function (tag) {
|
|
102
|
+
}, data.tags.map(function (tag) {
|
|
90
103
|
return /*#__PURE__*/_react.default.createElement(_Chips.Chip, {
|
|
91
104
|
key: tag,
|
|
92
105
|
label: tag
|
|
@@ -106,12 +119,12 @@ var Tags = function Tags() {
|
|
|
106
119
|
}, "Add tags...");
|
|
107
120
|
}, [editing, isEditingAllowed]);
|
|
108
121
|
var onSubmit = /*#__PURE__*/function () {
|
|
109
|
-
var
|
|
122
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(_ref3) {
|
|
110
123
|
var tags;
|
|
111
124
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
112
125
|
while (1) switch (_context.prev = _context.next) {
|
|
113
126
|
case 0:
|
|
114
|
-
tags =
|
|
127
|
+
tags = _ref3.tags;
|
|
115
128
|
setUpdating(true);
|
|
116
129
|
_context.next = 4;
|
|
117
130
|
return updateFile(file.id, {
|
|
@@ -129,7 +142,7 @@ var Tags = function Tags() {
|
|
|
129
142
|
}, _callee);
|
|
130
143
|
}));
|
|
131
144
|
return function onSubmit(_x) {
|
|
132
|
-
return
|
|
145
|
+
return _ref4.apply(this, arguments);
|
|
133
146
|
};
|
|
134
147
|
}();
|
|
135
148
|
return /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
@@ -137,11 +150,11 @@ var Tags = function Tags() {
|
|
|
137
150
|
tags: initialTags
|
|
138
151
|
},
|
|
139
152
|
onSubmit: onSubmit
|
|
140
|
-
}, function (
|
|
141
|
-
var Bind =
|
|
142
|
-
data =
|
|
143
|
-
setValue =
|
|
144
|
-
submit =
|
|
153
|
+
}, function (_ref5) {
|
|
154
|
+
var Bind = _ref5.Bind,
|
|
155
|
+
data = _ref5.data,
|
|
156
|
+
setValue = _ref5.setValue,
|
|
157
|
+
submit = _ref5.submit;
|
|
145
158
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("li-title", null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
146
159
|
className: "list-item__icon",
|
|
147
160
|
icon: /*#__PURE__*/_react.default.createElement(_label.ReactComponent, null)
|
|
@@ -150,7 +163,9 @@ var Tags = function Tags() {
|
|
|
150
163
|
})), editing && /*#__PURE__*/_react.default.createElement("li-content", null, /*#__PURE__*/_react.default.createElement(Bind, {
|
|
151
164
|
name: "tags"
|
|
152
165
|
}, /*#__PURE__*/_react.default.createElement(_AutoComplete.MultiAutoComplete, {
|
|
153
|
-
options: tags
|
|
166
|
+
options: tags.map(function (tagItem) {
|
|
167
|
+
return tagItem.tag;
|
|
168
|
+
}),
|
|
154
169
|
placeholder: "homepage asset",
|
|
155
170
|
description: "Type in a new tag or select an existing one.",
|
|
156
171
|
unique: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["chipsStyle","css","padding","marginLeft","backgroundColor","iconButtonStyle","width","height","addTagsStyle","color","textTransform","letterSpacing","actionWrapperStyle","marginTop","marginRight","Tags","useFile","file","useState","editing","setEdit","updating","setUpdating","useSnackbar","showSnackbar","useFileManagerApi","canEdit","useFileManagerView","updateFile","tags","initialTags","setInitialTags","handleEdit","useCallback","isEditingAllowed","renderHeaderContent","data","hasTags","length","classNames","map","tag","onSubmit","id","Bind","setValue","submit"],"sources":["Tags.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { css } from \"emotion\";\nimport { Chips, Chip } from \"@webiny/ui/Chips\";\nimport { ButtonSecondary, ButtonPrimary, ButtonDefault, IconButton } from \"@webiny/ui/Button\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Form, FormOnSubmit } from \"@webiny/form\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as LabelIcon } from \"@material-design-icons/svg/outlined/label.svg\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { useFile, useFileManagerApi, useFileManagerView } from \"~/index\";\n\nconst chipsStyle = css({\n \"&.mdc-chip-set\": {\n padding: 0,\n marginLeft: -4,\n \"& .mdc-chip\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n }\n }\n});\nconst iconButtonStyle = css({\n \"&.mdc-icon-button svg\": {\n width: 20,\n height: 20\n }\n});\nconst addTagsStyle = css({\n \"&.mdc-button:not(:disabled)\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n textTransform: \"capitalize\",\n letterSpacing: \"initial\",\n marginLeft: -8\n }\n});\nconst actionWrapperStyle = css({\n marginTop: 16,\n \"& button:first-child\": {\n marginRight: 16\n }\n});\n\ninterface TagsFormData {\n tags: string[];\n}\n\nconst Tags = () => {\n const { file } = useFile();\n const [editing, setEdit] = useState(false);\n const [updating, setUpdating] = useState(false);\n const { showSnackbar } = useSnackbar();\n const { canEdit } = useFileManagerApi();\n const { updateFile, tags } = useFileManagerView();\n const [initialTags, setInitialTags] = useState(file.tags);\n const handleEdit = useCallback(() => setEdit(true), []);\n\n const isEditingAllowed = canEdit(file);\n\n const renderHeaderContent = useCallback(\n ({ data }: { data: TagsFormData }) => {\n if (editing) {\n return null;\n }\n const hasTags = data.tags.length > 0;\n\n if (hasTags) {\n // Render existing tags and \"edit tags\" action.\n return (\n <>\n <Chips className={classNames(\"list-item__content\", chipsStyle)}>\n {tags.map(tag => {\n return <Chip key={tag} label={tag} />;\n })}\n </Chips>\n {isEditingAllowed && (\n <IconButton\n className={iconButtonStyle}\n icon={<EditIcon />}\n onClick={handleEdit}\n />\n )}\n </>\n );\n }\n // Render \"add tags\" action.\n return (\n <ButtonDefault\n className={addTagsStyle}\n onClick={handleEdit}\n disabled={!isEditingAllowed}\n data-testid=\"fm.tags.add\"\n >\n Add tags...\n </ButtonDefault>\n );\n },\n [editing, isEditingAllowed]\n );\n\n const onSubmit: FormOnSubmit<TagsFormData> = async ({ tags }) => {\n setUpdating(true);\n await updateFile(file.id, { tags });\n setUpdating(false);\n setInitialTags(tags);\n setEdit(false);\n showSnackbar(\"Tags successfully updated.\");\n };\n\n return (\n <Form<TagsFormData> data={{ tags: initialTags }} onSubmit={onSubmit}>\n {({ Bind, data, setValue, submit }) => (\n <React.Fragment>\n <li-title>\n <Icon className={\"list-item__icon\"} icon={<LabelIcon />} />\n {renderHeaderContent({ data })}\n </li-title>\n {editing && (\n <li-content>\n <Bind name={\"tags\"}>\n <MultiAutoComplete\n options={tags}\n placeholder={\"homepage asset\"}\n description={\"Type in a new tag or select an existing one.\"}\n unique={true}\n allowFreeInput={true}\n useSimpleValues={true}\n disabled={updating}\n />\n </Bind>\n <div className={actionWrapperStyle}>\n <ButtonPrimary\n small\n onClick={submit}\n data-testid={\"fm.tags.submit\"}\n >\n Submit\n </ButtonPrimary>\n <ButtonSecondary\n small\n onClick={() => {\n setValue(\"tags\", initialTags);\n setEdit(false);\n }}\n >\n Cancel\n </ButtonSecondary>\n </div>\n </li-content>\n )}\n </React.Fragment>\n )}\n </Form>\n );\n};\n\nexport default Tags;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["chipsStyle","css","padding","marginLeft","backgroundColor","iconButtonStyle","width","height","addTagsStyle","color","textTransform","letterSpacing","actionWrapperStyle","marginTop","marginRight","Tags","scope","own","useFile","file","useTags","type","ACO_TYPE","tagsModifier","getTagsInitialParams","tags","useState","editing","setEdit","updating","setUpdating","useSnackbar","showSnackbar","useFileManagerApi","canEdit","useFileManagerAcoView","updateFile","initialTags","setInitialTags","handleEdit","useCallback","isEditingAllowed","renderHeaderContent","data","hasTags","length","classNames","map","tag","onSubmit","id","Bind","setValue","submit","tagItem"],"sources":["Tags.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { css } from \"emotion\";\nimport { Chips, Chip } from \"@webiny/ui/Chips\";\nimport { ButtonSecondary, ButtonPrimary, ButtonDefault, IconButton } from \"@webiny/ui/Button\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Form, FormOnSubmit } from \"@webiny/form\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as LabelIcon } from \"@material-design-icons/svg/outlined/label.svg\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { useFile, useFileManagerApi, useFileManagerAcoView } from \"~/index\";\nimport { useTags } from \"@webiny/app-aco\";\nimport { ACO_TYPE } from \"~/constants\";\nimport { getTagsInitialParams, tagsModifier } from \"~/tagsHelpers\";\n\nconst chipsStyle = css({\n \"&.mdc-chip-set\": {\n padding: 0,\n marginLeft: -4,\n \"& .mdc-chip\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n }\n }\n});\nconst iconButtonStyle = css({\n \"&.mdc-icon-button svg\": {\n width: 20,\n height: 20\n }\n});\nconst addTagsStyle = css({\n \"&.mdc-button:not(:disabled)\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n textTransform: \"capitalize\",\n letterSpacing: \"initial\",\n marginLeft: -8\n }\n});\nconst actionWrapperStyle = css({\n marginTop: 16,\n \"& button:first-child\": {\n marginRight: 16\n }\n});\n\ninterface TagsFormData {\n tags: string[];\n}\n\ninterface TagsProps {\n scope?: string;\n own?: boolean;\n}\n\nconst Tags: React.VFC<TagsProps> = ({ scope, own }) => {\n const { file } = useFile();\n const { tags } = useTags({\n type: ACO_TYPE,\n tagsModifier: tagsModifier(scope),\n ...getTagsInitialParams({ scope, own })\n });\n const [editing, setEdit] = useState(false);\n const [updating, setUpdating] = useState(false);\n const { showSnackbar } = useSnackbar();\n const { canEdit } = useFileManagerApi();\n const { updateFile } = useFileManagerAcoView();\n const [initialTags, setInitialTags] = useState(file.tags);\n const handleEdit = useCallback(() => setEdit(true), []);\n const isEditingAllowed = canEdit(file);\n\n const renderHeaderContent = useCallback(\n ({ data }: { data: TagsFormData }) => {\n if (editing) {\n return null;\n }\n const hasTags = data.tags.length > 0;\n\n if (hasTags) {\n // Render existing tags and \"edit tags\" action.\n return (\n <>\n <Chips className={classNames(\"list-item__content\", chipsStyle)}>\n {data.tags.map(tag => {\n return <Chip key={tag} label={tag} />;\n })}\n </Chips>\n {isEditingAllowed && (\n <IconButton\n className={iconButtonStyle}\n icon={<EditIcon />}\n onClick={handleEdit}\n />\n )}\n </>\n );\n }\n // Render \"add tags\" action.\n return (\n <ButtonDefault\n className={addTagsStyle}\n onClick={handleEdit}\n disabled={!isEditingAllowed}\n data-testid=\"fm.tags.add\"\n >\n Add tags...\n </ButtonDefault>\n );\n },\n [editing, isEditingAllowed]\n );\n\n const onSubmit: FormOnSubmit<TagsFormData> = async ({ tags }) => {\n setUpdating(true);\n await updateFile(file.id, { tags });\n setUpdating(false);\n setInitialTags(tags);\n setEdit(false);\n showSnackbar(\"Tags successfully updated.\");\n };\n\n return (\n <Form<TagsFormData> data={{ tags: initialTags }} onSubmit={onSubmit}>\n {({ Bind, data, setValue, submit }) => (\n <React.Fragment>\n <li-title>\n <Icon className={\"list-item__icon\"} icon={<LabelIcon />} />\n {renderHeaderContent({ data })}\n </li-title>\n {editing && (\n <li-content>\n <Bind name={\"tags\"}>\n <MultiAutoComplete\n options={tags.map(tagItem => tagItem.tag)}\n placeholder={\"homepage asset\"}\n description={\"Type in a new tag or select an existing one.\"}\n unique={true}\n allowFreeInput={true}\n useSimpleValues={true}\n disabled={updating}\n />\n </Bind>\n <div className={actionWrapperStyle}>\n <ButtonPrimary\n small\n onClick={submit}\n data-testid={\"fm.tags.submit\"}\n >\n Submit\n </ButtonPrimary>\n <ButtonSecondary\n small\n onClick={() => {\n setValue(\"tags\", initialTags);\n setEdit(false);\n }}\n >\n Cancel\n </ButtonSecondary>\n </div>\n </li-content>\n )}\n </React.Fragment>\n )}\n </Form>\n );\n};\n\nexport default Tags;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./FileDetails";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _FileDetails = require("./FileDetails");
|
|
7
|
+
Object.keys(_FileDetails).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _FileDetails[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _FileDetails[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export * from \"./FileDetails\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FileItem } from "@webiny/app-admin/types";
|
|
3
|
+
export interface FileProps {
|
|
4
|
+
file: FileItem;
|
|
5
|
+
selected: boolean;
|
|
6
|
+
onSelect: (event?: React.MouseEvent) => void;
|
|
7
|
+
onClick?: (event?: React.MouseEvent) => void;
|
|
8
|
+
options?: Array<{
|
|
9
|
+
label: string;
|
|
10
|
+
onClick: (file: Object) => void;
|
|
11
|
+
}>;
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
showFileDetails: (id: string) => void;
|
|
14
|
+
}
|
|
15
|
+
declare const MemoizedFile: React.NamedExoticComponent<FileProps>;
|
|
16
|
+
export default MemoizedFile;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactLazyLoad = _interopRequireDefault(require("react-lazy-load"));
|
|
10
|
+
var _Ripple = require("@webiny/ui/Ripple");
|
|
11
|
+
var _Button = require("@webiny/ui/Button");
|
|
12
|
+
var _settings = require("@material-design-icons/svg/outlined/settings.svg");
|
|
13
|
+
var _styled = require("./styled");
|
|
14
|
+
/**
|
|
15
|
+
* Package react-lazy-load has no types.
|
|
16
|
+
*/
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
|
|
19
|
+
var File = function File(_ref) {
|
|
20
|
+
var file = _ref.file,
|
|
21
|
+
selected = _ref.selected,
|
|
22
|
+
onSelect = _ref.onSelect,
|
|
23
|
+
children = _ref.children,
|
|
24
|
+
showFileDetails = _ref.showFileDetails;
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_styled.FileWrapper, {
|
|
26
|
+
selected: selected,
|
|
27
|
+
disableSelect: !onSelect,
|
|
28
|
+
"data-testid": "fm-list-wrapper-file"
|
|
29
|
+
}, /*#__PURE__*/_react.default.createElement(_styled.FileBody, null, /*#__PURE__*/_react.default.createElement(_styled.FileInfoIcon, null, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
|
|
30
|
+
icon: /*#__PURE__*/_react.default.createElement(_settings.ReactComponent, null),
|
|
31
|
+
onClick: function onClick() {
|
|
32
|
+
return showFileDetails(file.id);
|
|
33
|
+
},
|
|
34
|
+
"data-testid": "fm-file-wrapper-file-info-icon"
|
|
35
|
+
})), /*#__PURE__*/_react.default.createElement(_reactLazyLoad.default, {
|
|
36
|
+
height: 200,
|
|
37
|
+
offsetVertical: 300
|
|
38
|
+
}, /*#__PURE__*/_react.default.createElement(_Ripple.Ripple, null, /*#__PURE__*/_react.default.createElement(_styled.FilePreview, {
|
|
39
|
+
"data-testid": "fm-file-wrapper-file-preview"
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_styled.FileClickable, {
|
|
41
|
+
onClick: onSelect
|
|
42
|
+
}), children)))), /*#__PURE__*/_react.default.createElement(_styled.FileLabel, {
|
|
43
|
+
onClick: onSelect,
|
|
44
|
+
"data-testid": "fm-file-wrapper-file-label"
|
|
45
|
+
}, file.name));
|
|
46
|
+
};
|
|
47
|
+
var MemoizedFile = /*#__PURE__*/_react.default.memo(File, function (prev, next) {
|
|
48
|
+
if (prev.selected !== next.selected) {
|
|
49
|
+
return false;
|
|
50
|
+
} else if (prev.file.name !== next.file.name) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
});
|
|
55
|
+
MemoizedFile.displayName = "MemoizedFile";
|
|
56
|
+
var _default = MemoizedFile;
|
|
57
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["File","file","selected","onSelect","children","showFileDetails","id","name","MemoizedFile","React","memo","prev","next","displayName"],"sources":["File.tsx"],"sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as SettingsIcon } from \"@material-design-icons/svg/outlined/settings.svg\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\nimport {\n FileBody,\n FileClickable,\n FileInfoIcon,\n FileLabel,\n FilePreview,\n FileWrapper\n} from \"./styled\";\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (id: string) => void;\n}\n\nconst File: React.FC<FileProps> = ({ file, selected, onSelect, children, showFileDetails }) => {\n return (\n <FileWrapper\n selected={selected}\n disableSelect={!onSelect}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <FileBody>\n <FileInfoIcon>\n <IconButton\n icon={<SettingsIcon />}\n onClick={() => showFileDetails(file.id)}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </FileInfoIcon>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <FilePreview data-testid={\"fm-file-wrapper-file-preview\"}>\n <FileClickable onClick={onSelect} />\n {children}\n </FilePreview>\n </Ripple>\n </LazyLoad>\n </FileBody>\n <FileLabel onClick={onSelect} data-testid={\"fm-file-wrapper-file-label\"}>\n {file.name}\n </FileLabel>\n </FileWrapper>\n );\n};\n\nconst MemoizedFile = React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n\nMemoizedFile.displayName = \"MemoizedFile\";\nexport default MemoizedFile;\n"],"mappings":";;;;;;;AAAA;AAKA;AACA;AACA;AACA;AAGA;AAVA;AACA;AACA;AACA;;AA0BA,IAAMA,IAAyB,GAAG,SAA5BA,IAAyB,OAAgE;EAAA,IAA1DC,IAAI,QAAJA,IAAI;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,eAAe,QAAfA,eAAe;EACpF,oBACI,6BAAC,mBAAW;IACR,QAAQ,EAAEH,QAAS;IACnB,aAAa,EAAE,CAACC,QAAS;IACzB,eAAa;EAAuB,gBAEpC,6BAAC,gBAAQ,qBACL,6BAAC,oBAAY,qBACT,6BAAC,kBAAU;IACP,IAAI,eAAE,6BAAC,wBAAY,OAAI;IACvB,OAAO,EAAE;MAAA,OAAME,eAAe,CAACJ,IAAI,CAACK,EAAE,CAAC;IAAA,CAAC;IACxC,eAAa;EAAiC,EAChD,CACS,eACf,6BAAC,sBAAQ;IAAC,MAAM,EAAE,GAAI;IAAC,cAAc,EAAE;EAAI,gBACvC,6BAAC,cAAM,qBACH,6BAAC,mBAAW;IAAC,eAAa;EAA+B,gBACrD,6BAAC,qBAAa;IAAC,OAAO,EAAEH;EAAS,EAAG,EACnCC,QAAQ,CACC,CACT,CACF,CACJ,eACX,6BAAC,iBAAS;IAAC,OAAO,EAAED,QAAS;IAAC,eAAa;EAA6B,GACnEF,IAAI,CAACM,IAAI,CACF,CACF;AAEtB,CAAC;AAED,IAAMC,YAAY,gBAAGC,cAAK,CAACC,IAAI,CAACV,IAAI,EAAE,UAACW,IAAI,EAAEC,IAAI,EAAK;EAClD,IAAID,IAAI,CAACT,QAAQ,KAAKU,IAAI,CAACV,QAAQ,EAAE;IACjC,OAAO,KAAK;EAChB,CAAC,MAAM,IAAIS,IAAI,CAACV,IAAI,CAACM,IAAI,KAAKK,IAAI,CAACX,IAAI,CAACM,IAAI,EAAE;IAC1C,OAAO,KAAK;EAChB;EAEA,OAAO,IAAI;AACf,CAAC,CAAC;AAEFC,YAAY,CAACK,WAAW,GAAG,cAAc;AAAC,eAC3BL,YAAY;AAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FolderItem } from "@webiny/app-aco/types";
|
|
3
|
+
import { FileItem } from "@webiny/app/types";
|
|
4
|
+
interface GridProps {
|
|
5
|
+
records: FileItem[];
|
|
6
|
+
folders: FolderItem[];
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
onRecordClick: (id: string) => void;
|
|
9
|
+
onFolderClick: (id: string) => void;
|
|
10
|
+
selected: FileItem[];
|
|
11
|
+
multiple?: boolean;
|
|
12
|
+
toggleSelected: (file: FileItem) => void;
|
|
13
|
+
onChange?: Function;
|
|
14
|
+
onClose?: Function;
|
|
15
|
+
}
|
|
16
|
+
export declare const Grid: React.FC<GridProps>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.Grid = void 0;
|
|
8
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _appAco = require("@webiny/app-aco");
|
|
13
|
+
var _i18n = require("@webiny/app/i18n");
|
|
14
|
+
var _Progress = require("@webiny/ui/Progress");
|
|
15
|
+
var _getFileTypePlugin = _interopRequireDefault(require("../../getFileTypePlugin"));
|
|
16
|
+
var _File = _interopRequireDefault(require("./File"));
|
|
17
|
+
var _styled = require("./styled");
|
|
18
|
+
var _templateObject;
|
|
19
|
+
var t = _i18n.i18n.ns("app-admin/file-manager/components/grid");
|
|
20
|
+
var renderFile = function renderFile(props) {
|
|
21
|
+
var file = props.file;
|
|
22
|
+
var plugin = (0, _getFileTypePlugin.default)(file);
|
|
23
|
+
if (!plugin) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(_File.default, Object.assign({}, props, {
|
|
27
|
+
key: file.id
|
|
28
|
+
}), plugin.render({
|
|
29
|
+
/**
|
|
30
|
+
* TODO @ts-refactor
|
|
31
|
+
*/
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
file: file
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
var Grid = function Grid(_ref) {
|
|
37
|
+
var folders = _ref.folders,
|
|
38
|
+
records = _ref.records,
|
|
39
|
+
loading = _ref.loading,
|
|
40
|
+
onRecordClick = _ref.onRecordClick,
|
|
41
|
+
onFolderClick = _ref.onFolderClick,
|
|
42
|
+
selected = _ref.selected,
|
|
43
|
+
onChange = _ref.onChange,
|
|
44
|
+
onClose = _ref.onClose,
|
|
45
|
+
toggleSelected = _ref.toggleSelected,
|
|
46
|
+
multiple = _ref.multiple;
|
|
47
|
+
if (loading) {
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
|
|
49
|
+
label: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Loading Files..."]))),
|
|
50
|
+
style: {
|
|
51
|
+
opacity: 1
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styled.FolderList, null, /*#__PURE__*/_react.default.createElement(_appAco.FolderGrid, {
|
|
56
|
+
folders: folders,
|
|
57
|
+
onFolderClick: onFolderClick
|
|
58
|
+
})), /*#__PURE__*/_react.default.createElement(_styled.FileList, null, records.map(function (record) {
|
|
59
|
+
return renderFile({
|
|
60
|
+
file: record,
|
|
61
|
+
showFileDetails: onRecordClick,
|
|
62
|
+
selected: selected.some(function (current) {
|
|
63
|
+
return current.id === record.id;
|
|
64
|
+
}),
|
|
65
|
+
onSelect: function () {
|
|
66
|
+
var _onSelect = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
67
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
68
|
+
while (1) switch (_context.prev = _context.next) {
|
|
69
|
+
case 0:
|
|
70
|
+
if (!(typeof onChange === "function")) {
|
|
71
|
+
_context.next = 7;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
if (!multiple) {
|
|
75
|
+
_context.next = 4;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
toggleSelected(record);
|
|
79
|
+
return _context.abrupt("return");
|
|
80
|
+
case 4:
|
|
81
|
+
_context.next = 6;
|
|
82
|
+
return onChange(record);
|
|
83
|
+
case 6:
|
|
84
|
+
onClose && onClose();
|
|
85
|
+
case 7:
|
|
86
|
+
case "end":
|
|
87
|
+
return _context.stop();
|
|
88
|
+
}
|
|
89
|
+
}, _callee);
|
|
90
|
+
}));
|
|
91
|
+
function onSelect() {
|
|
92
|
+
return _onSelect.apply(this, arguments);
|
|
93
|
+
}
|
|
94
|
+
return onSelect;
|
|
95
|
+
}()
|
|
96
|
+
});
|
|
97
|
+
})));
|
|
98
|
+
};
|
|
99
|
+
exports.Grid = Grid;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","renderFile","props","file","plugin","getFileTypePlugin","id","render","Grid","folders","records","loading","onRecordClick","onFolderClick","selected","onChange","onClose","toggleSelected","multiple","opacity","map","record","showFileDetails","some","current","onSelect"],"sources":["Grid.tsx"],"sourcesContent":["import React from \"react\";\nimport { FolderGrid } from \"@webiny/app-aco\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport getFileTypePlugin from \"~/getFileTypePlugin\";\nimport FileThumbnail, { FileProps } from \"./File\";\n\nimport { FileList, FolderList } from \"./styled\";\n\nimport { FolderItem } from \"@webiny/app-aco/types\";\nimport { FileItem } from \"@webiny/app/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/components/grid\");\n\ninterface GridProps {\n records: FileItem[];\n folders: FolderItem[];\n loading?: boolean;\n onRecordClick: (id: string) => void;\n onFolderClick: (id: string) => void;\n selected: FileItem[];\n multiple?: boolean;\n toggleSelected: (file: FileItem) => void;\n onChange?: Function;\n onClose?: Function;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\n\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n\n return (\n <FileThumbnail {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </FileThumbnail>\n );\n};\n\nexport const Grid: React.FC<GridProps> = ({\n folders,\n records,\n loading,\n onRecordClick,\n onFolderClick,\n selected,\n onChange,\n onClose,\n toggleSelected,\n multiple\n}) => {\n if (loading) {\n return <CircularProgress label={t`Loading Files...`} style={{ opacity: 1 }} />;\n }\n\n return (\n <>\n <FolderList>\n <FolderGrid folders={folders} onFolderClick={onFolderClick} />\n </FolderList>\n <FileList>\n {records.map(record =>\n renderFile({\n file: record,\n showFileDetails: onRecordClick,\n selected: selected.some(current => current.id === record.id),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(record);\n return;\n }\n\n await onChange(record);\n onClose && onClose();\n }\n }\n })\n )}\n </FileList>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAgD;AAKhD,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,wCAAwC,CAAC;AAoB3D,IAAMC,UAAqC,GAAG,SAAxCA,UAAqC,CAAGC,KAAK,EAAI;EACnD,IAAQC,IAAI,GAAKD,KAAK,CAAdC,IAAI;EACZ,IAAMC,MAAM,GAAG,IAAAC,0BAAiB,EAACF,IAAI,CAAC;EACtC,IAAI,CAACC,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,oBACI,6BAAC,aAAa,oBAAKF,KAAK;IAAE,GAAG,EAAEC,IAAI,CAACG;EAAG,IAClCF,MAAM,CAACG,MAAM,CAAC;IACX;AAChB;AACA;IACgB;IACAJ,IAAI,EAAJA;EACJ,CAAC,CAAC,CACU;AAExB,CAAC;AAEM,IAAMK,IAAyB,GAAG,SAA5BA,IAAyB,OAWhC;EAAA,IAVFC,OAAO,QAAPA,OAAO;IACPC,OAAO,QAAPA,OAAO;IACPC,OAAO,QAAPA,OAAO;IACPC,aAAa,QAAbA,aAAa;IACbC,aAAa,QAAbA,aAAa;IACbC,QAAQ,QAARA,QAAQ;IACRC,QAAQ,QAARA,QAAQ;IACRC,OAAO,QAAPA,OAAO;IACPC,cAAc,QAAdA,cAAc;IACdC,QAAQ,QAARA,QAAQ;EAER,IAAIP,OAAO,EAAE;IACT,oBAAO,6BAAC,0BAAgB;MAAC,KAAK,EAAEb,CAAC,mGAAmB;MAAC,KAAK,EAAE;QAAEqB,OAAO,EAAE;MAAE;IAAE,EAAG;EAClF;EAEA,oBACI,yEACI,6BAAC,kBAAU,qBACP,6BAAC,kBAAU;IAAC,OAAO,EAAEV,OAAQ;IAAC,aAAa,EAAEI;EAAc,EAAG,CACrD,eACb,6BAAC,gBAAQ,QACJH,OAAO,CAACU,GAAG,CAAC,UAAAC,MAAM;IAAA,OACfpB,UAAU,CAAC;MACPE,IAAI,EAAEkB,MAAM;MACZC,eAAe,EAAEV,aAAa;MAC9BE,QAAQ,EAAEA,QAAQ,CAACS,IAAI,CAAC,UAAAC,OAAO;QAAA,OAAIA,OAAO,CAAClB,EAAE,KAAKe,MAAM,CAACf,EAAE;MAAA,EAAC;MAC5DmB,QAAQ;QAAA,uGAAE;UAAA;YAAA;cAAA;gBAAA,MACF,OAAOV,QAAQ,KAAK,UAAU;kBAAA;kBAAA;gBAAA;gBAAA,KAC1BG,QAAQ;kBAAA;kBAAA;gBAAA;gBACRD,cAAc,CAACI,MAAM,CAAC;gBAAC;cAAA;gBAAA;gBAAA,OAIrBN,QAAQ,CAACM,MAAM,CAAC;cAAA;gBACtBL,OAAO,IAAIA,OAAO,EAAE;cAAC;cAAA;gBAAA;YAAA;UAAA;QAAA,CAE5B;QAAA;UAAA;QAAA;QAAA;MAAA;IACL,CAAC,CAAC;EAAA,EACL,CACM,CACZ;AAEX,CAAC;AAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Grid";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Grid = require("./Grid");
|
|
7
|
+
Object.keys(_Grid).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Grid[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _Grid[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export * from \"./Grid\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="react" />
|
|
3
|
+
/// <reference types="web" />
|
|
4
|
+
export declare const FolderList: import("@emotion/styled").StyledComponent<{
|
|
5
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
6
|
+
as?: import("react").ElementType<any> | undefined;
|
|
7
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
8
|
+
export declare const FileList: import("@emotion/styled").StyledComponent<{
|
|
9
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
10
|
+
as?: import("react").ElementType<any> | undefined;
|
|
11
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
12
|
+
declare type FileWrapperProps = {
|
|
13
|
+
disableSelect: boolean;
|
|
14
|
+
selected: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare const FileBody: import("@emotion/styled").StyledComponent<{
|
|
17
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
18
|
+
as?: import("react").ElementType<any> | undefined;
|
|
19
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
20
|
+
export declare const FileInfoIcon: import("@emotion/styled").StyledComponent<{
|
|
21
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
22
|
+
as?: import("react").ElementType<any> | undefined;
|
|
23
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
24
|
+
export declare const FilePreview: import("@emotion/styled").StyledComponent<{
|
|
25
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
26
|
+
as?: import("react").ElementType<any> | undefined;
|
|
27
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
28
|
+
export declare const FileClickable: import("@emotion/styled").StyledComponent<{
|
|
29
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
30
|
+
as?: import("react").ElementType<any> | undefined;
|
|
31
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
32
|
+
export declare const FileLabel: import("@emotion/styled").StyledComponent<{
|
|
33
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
34
|
+
as?: import("react").ElementType<any> | undefined;
|
|
35
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
36
|
+
export declare const FileWrapper: import("@emotion/styled").StyledComponent<{
|
|
37
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
38
|
+
as?: import("react").ElementType<any> | undefined;
|
|
39
|
+
} & FileWrapperProps, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FolderList = exports.FileWrapper = exports.FilePreview = exports.FileList = exports.FileLabel = exports.FileInfoIcon = exports.FileClickable = exports.FileBody = void 0;
|
|
8
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
9
|
+
var _react = require("@emotion/react");
|
|
10
|
+
var FolderList = /*#__PURE__*/(0, _styled.default)("div", {
|
|
11
|
+
label: "FolderList",
|
|
12
|
+
target: "e1ahl7xf0"
|
|
13
|
+
})("margin:16px;");
|
|
14
|
+
exports.FolderList = FolderList;
|
|
15
|
+
var FileList = /*#__PURE__*/(0, _styled.default)("div", {
|
|
16
|
+
label: "FileList",
|
|
17
|
+
target: "e1ahl7xf1"
|
|
18
|
+
})("display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));column-gap:16px;row-gap:16px;margin:16px;");
|
|
19
|
+
exports.FileList = FileList;
|
|
20
|
+
var COMPONENT_WIDTH = 200;
|
|
21
|
+
var COMPONENT_HEIGHT = 200;
|
|
22
|
+
var grow = /*#__PURE__*/(0, _react.keyframes)("0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}label:grow;");
|
|
23
|
+
var FileBody = /*#__PURE__*/(0, _styled.default)("div", {
|
|
24
|
+
label: "FileBody",
|
|
25
|
+
target: "e1ahl7xf2"
|
|
26
|
+
})("transition:200ms ease-in opacity;width:", COMPONENT_WIDTH, ";height:", COMPONENT_HEIGHT, ";overflow:hidden;");
|
|
27
|
+
exports.FileBody = FileBody;
|
|
28
|
+
var FileInfoIcon = /*#__PURE__*/(0, _styled.default)("div", {
|
|
29
|
+
label: "FileInfoIcon",
|
|
30
|
+
target: "e1ahl7xf3"
|
|
31
|
+
})("opacity:0;position:absolute;top:0;right:0;z-index:10;transition:all 150ms ease-in;&:hover{animation-name:", grow, ";animation-duration:0.4s;animation-timing-function:ease-in;animation-delay:0.2s;}& .mdc-icon-button svg{color:var(--mdc-theme-secondary);}");
|
|
32
|
+
exports.FileInfoIcon = FileInfoIcon;
|
|
33
|
+
var FilePreview = /*#__PURE__*/(0, _styled.default)("div", {
|
|
34
|
+
label: "FilePreview",
|
|
35
|
+
target: "e1ahl7xf4"
|
|
36
|
+
})("text-align:center;position:relative;background-color:var(--mdc-theme-surface);width:100%;height:100%;");
|
|
37
|
+
exports.FilePreview = FilePreview;
|
|
38
|
+
var FileClickable = /*#__PURE__*/(0, _styled.default)("div", {
|
|
39
|
+
label: "FileClickable",
|
|
40
|
+
target: "e1ahl7xf5"
|
|
41
|
+
})("position:absolute;top:30px;left:0;width:100%;height:170px;z-index:2;");
|
|
42
|
+
exports.FileClickable = FileClickable;
|
|
43
|
+
var FileLabel = /*#__PURE__*/(0, _styled.default)("div", {
|
|
44
|
+
label: "FileLabel",
|
|
45
|
+
target: "e1ahl7xf6"
|
|
46
|
+
})("padding:15px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:0.8rem;color:var(--mdc-theme-on-surface);background-color:var(--mdc-theme-on-background);");
|
|
47
|
+
exports.FileLabel = FileLabel;
|
|
48
|
+
var FileWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
49
|
+
label: "FileWrapper",
|
|
50
|
+
target: "e1ahl7xf7"
|
|
51
|
+
})("display:inline-block;float:left;position:relative;z-index:1;cursor:", function (_ref) {
|
|
52
|
+
var disableSelect = _ref.disableSelect;
|
|
53
|
+
return disableSelect ? "auto" : "pointer";
|
|
54
|
+
}, ";width:100%;max-width:", COMPONENT_WIDTH, ";border:1px solid var(--mdc-theme-on-background);border-radius:2px;box-shadow:", function (_ref2) {
|
|
55
|
+
var selected = _ref2.selected;
|
|
56
|
+
return selected ? "0px 0px 0px 2px var(--mdc-theme-primary)" : "none";
|
|
57
|
+
}, ";&:hover ", FileInfoIcon, "{opacity:1;}");
|
|
58
|
+
exports.FileWrapper = FileWrapper;
|