@webiny/app-file-manager 6.0.0 → 6.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/BottomInfoBar/BottomInfoBar.js +0 -10
- package/components/BottomInfoBar/BottomInfoBar.js.map +1 -1
- package/components/BottomInfoBar/SupportedFileTypes.js +5 -2
- package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/components/BulkActions/ActionEdit/domain/Batch.d.ts +3 -24
- package/components/FileDetails/FileDetails.js +1 -2
- package/components/FileDetails/FileDetails.js.map +1 -1
- package/components/FileDetails/components/ActionButton.d.ts +1 -1
- package/components/FileDetails/components/ActionButton.js.map +1 -1
- package/components/Grid/ActionButton.d.ts +1 -1
- package/components/Grid/ActionButton.js.map +1 -1
- package/components/Grid/File.d.ts +1 -1
- package/components/Grid/File.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/FileManagerView.js +1 -2
- package/modules/FileManagerRenderer/FileManagerView/FileManagerView.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Grid/Thumbnail.d.ts +2 -2
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Grid/Thumbnail.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Table/Thumbnail.d.ts +2 -2
- package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Table/Thumbnail.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Thumbnail.d.ts +2 -2
- package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Thumbnail.js.map +1 -1
- package/package.json +25 -29
- package/components/ImageEditor/ImageEditor.d.ts +0 -45
- package/components/ImageEditor/ImageEditor.js +0 -218
- package/components/ImageEditor/ImageEditor.js.map +0 -1
- package/components/ImageEditor/ImageEditorDialog.d.ts +0 -16
- package/components/ImageEditor/ImageEditorDialog.js +0 -53
- package/components/ImageEditor/ImageEditorDialog.js.map +0 -1
- package/components/ImageEditor/index.d.ts +0 -1
- package/components/ImageEditor/index.js +0 -3
- package/components/ImageEditor/index.js.map +0 -1
- package/components/ImageEditor/toolbar/crop.d.ts +0 -4
- package/components/ImageEditor/toolbar/crop.js +0 -67
- package/components/ImageEditor/toolbar/crop.js.map +0 -1
- package/components/ImageEditor/toolbar/filter.d.ts +0 -3
- package/components/ImageEditor/toolbar/filter.js +0 -167
- package/components/ImageEditor/toolbar/filter.js.map +0 -1
- package/components/ImageEditor/toolbar/flip.d.ts +0 -4
- package/components/ImageEditor/toolbar/flip.js +0 -94
- package/components/ImageEditor/toolbar/flip.js.map +0 -1
- package/components/ImageEditor/toolbar/index.d.ts +0 -4
- package/components/ImageEditor/toolbar/index.js +0 -6
- package/components/ImageEditor/toolbar/index.js.map +0 -1
- package/components/ImageEditor/toolbar/rotate.d.ts +0 -4
- package/components/ImageEditor/toolbar/rotate.js +0 -93
- package/components/ImageEditor/toolbar/rotate.js.map +0 -1
- package/components/ImageEditor/toolbar/types.d.ts +0 -32
- package/components/ImageEditor/toolbar/types.js +0 -3
- package/components/ImageEditor/toolbar/types.js.map +0 -1
- package/modules/FileManagerRenderer/FileActions/FileDetails/EditImage.d.ts +0 -2
- package/modules/FileManagerRenderer/FileActions/FileDetails/EditImage.js +0 -111
- package/modules/FileManagerRenderer/FileActions/FileDetails/EditImage.js.map +0 -1
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import mime from "mime/lite.js";
|
|
3
2
|
import { Separator } from "@webiny/admin-ui";
|
|
4
3
|
import { SupportedFileTypes } from "./SupportedFileTypes.js";
|
|
5
4
|
import ListStatus from "./ListStatus.js";
|
|
6
|
-
mime.define({
|
|
7
|
-
"image/x-icon": ["ico"]
|
|
8
|
-
}, true);
|
|
9
|
-
mime.define({
|
|
10
|
-
"image/jpg": ["jpg"]
|
|
11
|
-
}, true);
|
|
12
|
-
mime.define({
|
|
13
|
-
"image/vnd.microsoft.icon": ["ico"]
|
|
14
|
-
}, true);
|
|
15
5
|
export const BottomInfoBar = props => {
|
|
16
6
|
return /*#__PURE__*/React.createElement("div", {
|
|
17
7
|
className: "bg-neutral-base w-full overflow-hidden z-5"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","Separator","SupportedFileTypes","ListStatus","BottomInfoBar","props","createElement","className"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\n\nimport type { SupportedFileTypesProps } from \"./SupportedFileTypes.js\";\nimport { SupportedFileTypes } from \"./SupportedFileTypes.js\";\nimport type { ListStatusProps } from \"./ListStatus.js\";\nimport ListStatus from \"./ListStatus.js\";\n\ntype BottomInfoBarProps = SupportedFileTypesProps & ListStatusProps;\n\nexport const BottomInfoBar = (props: BottomInfoBarProps) => {\n return (\n <div className=\"bg-neutral-base w-full overflow-hidden z-5\">\n <Separator />\n <div className={\"h-xl px-md py-sm flex items-center justify-between\"}>\n <SupportedFileTypes {...props} />\n <ListStatus {...props} />\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAG5C,SAASC,kBAAkB;AAE3B,OAAOC,UAAU;AAIjB,OAAO,MAAMC,aAAa,GAAIC,KAAyB,IAAK;EACxD,oBACIL,KAAA,CAAAM,aAAA;IAAKC,SAAS,EAAC;EAA4C,gBACvDP,KAAA,CAAAM,aAAA,CAACL,SAAS,MAAE,CAAC,eACbD,KAAA,CAAAM,aAAA;IAAKC,SAAS,EAAE;EAAqD,gBACjEP,KAAA,CAAAM,aAAA,CAACJ,kBAAkB,EAAKG,KAAQ,CAAC,eACjCL,KAAA,CAAAM,aAAA,CAACH,UAAU,EAAKE,KAAQ,CACvB,CACJ,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React, { useCallback } from "react";
|
|
2
2
|
import { Text } from "@webiny/admin-ui";
|
|
3
3
|
import { i18n } from "@webiny/app/i18n/index.js";
|
|
4
|
-
import
|
|
4
|
+
import { Mime } from "mime";
|
|
5
|
+
import vendorTypes from "mime/types/other.js";
|
|
6
|
+
import standardTypes from "mime/types/standard.js";
|
|
7
|
+
const mime = new Mime(standardTypes, vendorTypes);
|
|
5
8
|
mime.define({
|
|
6
9
|
"image/x-icon": ["ico"]
|
|
7
10
|
}, true);
|
|
@@ -9,7 +12,7 @@ mime.define({
|
|
|
9
12
|
"image/jpg": ["jpg"]
|
|
10
13
|
}, true);
|
|
11
14
|
mime.define({
|
|
12
|
-
"
|
|
15
|
+
"application/vnd.microsoft.icon": ["ico"]
|
|
13
16
|
}, true);
|
|
14
17
|
const t = i18n.ns("app-admin/file-manager/components/bottom-info-bar/supported-files");
|
|
15
18
|
const getUniqueFilePlugins = accept => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","Text","i18n","mime","define","t","ns","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","loading","totalCount","currentCount","getLabel","count","length","createElement","size","as","className","currentCountLabel","String","totalCountLabel","files","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport mime from \"mime/
|
|
1
|
+
{"version":3,"names":["React","useCallback","Text","i18n","Mime","vendorTypes","standardTypes","mime","define","t","ns","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","loading","totalCount","currentCount","getLabel","count","length","createElement","size","as","className","currentCountLabel","String","totalCountLabel","files","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Mime } from \"mime\";\nimport vendorTypes from \"mime/types/other.js\";\nimport standardTypes from \"mime/types/standard.js\";\n\nconst mime = new Mime(standardTypes, vendorTypes);\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"application/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst t = i18n.ns(\"app-admin/file-manager/components/bottom-info-bar/supported-files\");\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n loading: boolean;\n totalCount: number;\n currentCount: number;\n}\n\nexport const SupportedFileTypes = ({\n accept,\n loading,\n totalCount,\n currentCount\n}: SupportedFileTypesProps) => {\n const getLabel = useCallback((count = 0): string => {\n return `${count} ${count === 1 ? \"file\" : \"files\"}`;\n }, []);\n\n if (!accept || loading) {\n return null;\n }\n\n if (accept.length === 0) {\n return (\n <Text size={\"sm\"} as={\"div\"} className={\"text-neutral-strong\"}>\n {t`Showing {currentCountLabel} out of {totalCountLabel} from all file extensions.`({\n currentCountLabel: String(currentCount),\n totalCountLabel: getLabel(totalCount)\n })}\n </Text>\n );\n }\n\n return (\n <Text size={\"sm\"} as={\"div\"} className={\"text-neutral-strong\"}>\n {t`Showing {currentCountLabel} out of {totalCountLabel} from the following file extensions: {files}.`(\n {\n currentCountLabel: String(currentCount),\n totalCountLabel: getLabel(totalCount),\n files: getUniqueFilePlugins(accept).join(\", \")\n }\n )}\n </Text>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,IAAI,QAAQ,MAAM;AAC3B,OAAOC,WAAW,MAAM,qBAAqB;AAC7C,OAAOC,aAAa,MAAM,wBAAwB;AAElD,MAAMC,IAAI,GAAG,IAAIH,IAAI,CAACE,aAAa,EAAED,WAAW,CAAC;AACjDE,IAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,IAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,IAAI,CAACC,MAAM,CAAC;EAAE,gCAAgC,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAEhE,MAAMC,CAAC,GAAGN,IAAI,CAACO,EAAE,CAAC,mEAAmE,CAAC;AAEtF,MAAMC,oBAAoB,GAAIC,MAAgB,IAAe;EACzD,MAAMC,IAA6B,GAAG,CAAC,CAAC;EACxCD,MAAM,CAACE,OAAO,CAACC,IAAI,IAAI;IACnB,MAAMC,GAAG,GAAGT,IAAI,CAACU,YAAY,CAACF,IAAI,CAAC;IACnC,IAAI,CAACC,GAAG,EAAE;MACN;IACJ;IACAH,IAAI,CAACG,GAAG,CAAC,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,OAAOE,MAAM,CAACC,IAAI,CAACN,IAAI,CAAC;AAC5B,CAAC;AASD,OAAO,MAAMO,kBAAkB,GAAGA,CAAC;EAC/BR,MAAM;EACNS,OAAO;EACPC,UAAU;EACVC;AACqB,CAAC,KAAK;EAC3B,MAAMC,QAAQ,GAAGvB,WAAW,CAAC,CAACwB,KAAK,GAAG,CAAC,KAAa;IAChD,OAAO,GAAGA,KAAK,IAAIA,KAAK,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE;EACvD,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAACb,MAAM,IAAIS,OAAO,EAAE;IACpB,OAAO,IAAI;EACf;EAEA,IAAIT,MAAM,CAACc,MAAM,KAAK,CAAC,EAAE;IACrB,oBACI1B,KAAA,CAAA2B,aAAA,CAACzB,IAAI;MAAC0B,IAAI,EAAE,IAAK;MAACC,EAAE,EAAE,KAAM;MAACC,SAAS,EAAE;IAAsB,GACzDrB,CAAC,gFAAgF,CAAC;MAC/EsB,iBAAiB,EAAEC,MAAM,CAACT,YAAY,CAAC;MACvCU,eAAe,EAAET,QAAQ,CAACF,UAAU;IACxC,CAAC,CACC,CAAC;EAEf;EAEA,oBACItB,KAAA,CAAA2B,aAAA,CAACzB,IAAI;IAAC0B,IAAI,EAAE,IAAK;IAACC,EAAE,EAAE,KAAM;IAACC,SAAS,EAAE;EAAsB,GACzDrB,CAAC,mGAAmG,CACjG;IACIsB,iBAAiB,EAAEC,MAAM,CAACT,YAAY,CAAC;IACvCU,eAAe,EAAET,QAAQ,CAACF,UAAU,CAAC;IACrCY,KAAK,EAAEvB,oBAAoB,CAACC,MAAM,CAAC,CAACuB,IAAI,CAAC,IAAI;EACjD,CACJ,CACE,CAAC;AAEf,CAAC","ignoreList":[]}
|
|
@@ -6,33 +6,12 @@ export declare const batchValidationSchema: zod.ZodObject<{
|
|
|
6
6
|
operations: zod.ZodArray<zod.ZodObject<{
|
|
7
7
|
field: zod.ZodString;
|
|
8
8
|
operator: zod.ZodString;
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
operator: string;
|
|
12
|
-
}, {
|
|
13
|
-
field: string;
|
|
14
|
-
operator: string;
|
|
15
|
-
}>, "many">;
|
|
16
|
-
}, "strip", zod.ZodTypeAny, {
|
|
17
|
-
operations: {
|
|
18
|
-
field: string;
|
|
19
|
-
operator: string;
|
|
20
|
-
}[];
|
|
21
|
-
}, {
|
|
22
|
-
operations: {
|
|
23
|
-
field: string;
|
|
24
|
-
operator: string;
|
|
25
|
-
}[];
|
|
26
|
-
}>;
|
|
9
|
+
}, zod.core.$strip>>;
|
|
10
|
+
}, zod.core.$strip>;
|
|
27
11
|
export declare class Batch {
|
|
28
12
|
operations: Operation[];
|
|
29
13
|
static createEmpty(): Batch;
|
|
30
|
-
static validate(data: BatchDTO): zod.
|
|
31
|
-
operations: {
|
|
32
|
-
field: string;
|
|
33
|
-
operator: string;
|
|
34
|
-
}[];
|
|
35
|
-
}, {
|
|
14
|
+
static validate(data: BatchDTO): zod.ZodSafeParseResult<{
|
|
36
15
|
operations: {
|
|
37
16
|
field: string;
|
|
38
17
|
operator: string;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useMemo, useRef } from "react";
|
|
2
2
|
import noop from "lodash/noop.js";
|
|
3
|
-
|
|
4
|
-
import { useHotkeys } from "react-hotkeyz";
|
|
3
|
+
import { useHotkeys } from "@webiny/app-admin";
|
|
5
4
|
import { Drawer, Grid, OverlayLoader, Tabs } from "@webiny/admin-ui";
|
|
6
5
|
import { Form } from "@webiny/form";
|
|
7
6
|
import { prepareFormData } from "@webiny/app-headless-cms-common";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useRef","noop","useHotkeys","Drawer","Grid","OverlayLoader","Tabs","Form","prepareFormData","FileDetailsProvider","Preview","Actions","Content","Extensions","Description","useFileModel","useFileManagerViewConfig","FileProvider","FileDetailsInner","file","onForm","props","formRef","createRef","current","fileModel","fileDetails","leftPanel","rightPanel","width","split","extensionFields","fields","find","field","fieldId","settings","onSubmit","data","fileData","basicFieldsElement","createElement","map","Column","span","key","name","element","extensionFieldsElement","length","model","ref","Panel","flex","parseFloat","className","groupFields","size","spacing","separator","tabs","Tab","value","trigger","content","FileDetails","open","onClose","onSave","loading","onSetFile","zIndex","disabled","keys","esc","drawerWidth","title","description","modal","bodyPadding","headerSeparator","footerSeparator","actions","Fragment","CancelButton","text","ConfirmButton","onClick","submit","hideFileDetails","form"],"sources":["FileDetails.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef } from \"react\";\nimport noop from \"lodash/noop.js\";\n// @ts-expect-error This package has no types.\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { Drawer, Grid, OverlayLoader, Tabs } from \"@webiny/admin-ui\";\nimport type { FileItem } from \"~/types.js\";\nimport type { FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { FileDetailsProvider } from \"~/components/FileDetails/FileDetailsProvider.js\";\nimport { Preview } from \"./components/Preview.js\";\nimport { Actions } from \"./components/Actions.js\";\nimport { Content } from \"./components/Content.js\";\nimport { Extensions } from \"./components/Extensions.js\";\nimport { Description } from \"./components/Description.js\";\nimport { useFileModel } from \"~/hooks/useFileModel.js\";\nimport { useFileManagerViewConfig } from \"~/index.js\";\nimport { FileProvider } from \"~/contexts/FileProvider.js\";\n\ninterface FileDetailsInnerProps {\n file: FileItem;\n onForm: (form: FormAPI) => void;\n onClose: () => void;\n onSubmit: (fileData: FileItem) => void;\n}\n\nconst FileDetailsInner = ({ file, onForm, ...props }: FileDetailsInnerProps) => {\n const formRef = React.createRef<FormAPI>();\n\n useEffect(() => {\n if (formRef.current) {\n onForm(formRef.current);\n }\n }, []);\n\n const fileModel = useFileModel();\n const { fileDetails } = useFileManagerViewConfig();\n\n const [, leftPanel = \"1\", rightPanel = \"1\"] = fileDetails.width.split(\",\");\n\n const extensionFields = useMemo(() => {\n const fields = fileModel.fields.find(field => field.fieldId === \"extensions\");\n if (!fields?.settings?.fields) {\n return [];\n }\n return fields?.settings?.fields || [];\n }, [fileModel]);\n\n const onSubmit: FormOnSubmit<FileItem> = async data => {\n const fileData = prepareFormData(data, fileModel.fields);\n props.onSubmit({ ...file, ...fileData });\n };\n\n const basicFieldsElement = (\n <Grid>\n {fileDetails.fields.map(field => (\n <Grid.Column span={12} key={field.name}>\n {field.element}\n </Grid.Column>\n ))}\n </Grid>\n );\n\n const extensionFieldsElement =\n extensionFields.length > 0 ? <Extensions model={fileModel} /> : null;\n\n return (\n <Form data={file} onSubmit={onSubmit} ref={formRef}>\n {() => (\n <Content>\n <Content.Panel flex={parseFloat(leftPanel)}>\n <div className={\"flex flex-col justify-between gap-md h-full px-lg py-md\"}>\n <Actions />\n <Preview />\n </div>\n </Content.Panel>\n <Content.Panel flex={parseFloat(rightPanel)}>\n {fileDetails.groupFields ? (\n <Tabs\n size={\"md\"}\n spacing={\"lg\"}\n separator={true}\n tabs={[\n <Tabs.Tab\n key={\"basic-details\"}\n value={\"basic-details\"}\n trigger={\"Basic details\"}\n content={basicFieldsElement}\n />,\n <Tabs.Tab\n key={\"advanced-details\"}\n value={\"advanced-details\"}\n trigger={\"Advanced details\"}\n content={extensionFieldsElement}\n />\n ]}\n />\n ) : (\n <div className={\"p-lg\"}>\n {basicFieldsElement}\n <div className={\"mt-lg\"}>{extensionFieldsElement}</div>\n </div>\n )}\n </Content.Panel>\n </Content>\n )}\n </Form>\n );\n};\n\nexport interface FileDetailsProps {\n file?: FileItem;\n open: boolean;\n loading: string | null;\n onClose: () => void;\n onSave: (file: FileItem) => void;\n onSetFile?: (file: FileItem) => void;\n}\n\nexport const FileDetails = ({\n open,\n onClose,\n onSave,\n loading,\n file,\n onSetFile = noop\n}: FileDetailsProps) => {\n useHotkeys({\n zIndex: 50,\n disabled: !open,\n keys: {\n esc: onClose\n }\n });\n\n const { fileDetails } = useFileManagerViewConfig();\n\n const drawerWidth = fileDetails.width.split(\",\")[0];\n\n const formRef = useRef<FormAPI | null>(null);\n\n if (!file) {\n return null;\n }\n\n return (\n <FileProvider file={file}>\n <Drawer\n title={file.name}\n description={<Description />}\n width={drawerWidth}\n open={open}\n modal={true}\n bodyPadding={false}\n headerSeparator={true}\n footerSeparator={true}\n onClose={onClose}\n data-testid={\"fm.file-details.drawer\"}\n actions={\n <>\n <Drawer.CancelButton text={\"Cancel\"} />\n <Drawer.ConfirmButton\n text={\"Update\"}\n onClick={() => formRef.current?.submit()}\n />\n </>\n }\n >\n {loading && <OverlayLoader text={loading} />}\n <FileDetailsProvider hideFileDetails={onClose} onSetFile={onSetFile}>\n <FileDetailsInner\n onForm={form => {\n formRef.current = form;\n }}\n file={file}\n onClose={onClose}\n onSubmit={onSave}\n />\n </FileDetailsProvider>\n </Drawer>\n </FileProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACzD,OAAOC,IAAI,MAAM,gBAAgB;AACjC;AACA,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,MAAM,EAAEC,IAAI,EAAEC,aAAa,EAAEC,IAAI,QAAQ,kBAAkB;AAGpE,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,mBAAmB;AAC5B,SAASC,OAAO;AAChB,SAASC,OAAO;AAChB,SAASC,OAAO;AAChB,SAASC,UAAU;AACnB,SAASC,WAAW;AACpB,SAASC,YAAY;AACrB,SAASC,wBAAwB;AACjC,SAASC,YAAY;AASrB,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,MAAM;EAAE,GAAGC;AAA6B,CAAC,KAAK;EAC5E,MAAMC,OAAO,gBAAGzB,KAAK,CAAC0B,SAAS,CAAU,CAAC;EAE1CzB,SAAS,CAAC,MAAM;IACZ,IAAIwB,OAAO,CAACE,OAAO,EAAE;MACjBJ,MAAM,CAACE,OAAO,CAACE,OAAO,CAAC;IAC3B;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,SAAS,GAAGV,YAAY,CAAC,CAAC;EAChC,MAAM;IAAEW;EAAY,CAAC,GAAGV,wBAAwB,CAAC,CAAC;EAElD,MAAM,GAAGW,SAAS,GAAG,GAAG,EAAEC,UAAU,GAAG,GAAG,CAAC,GAAGF,WAAW,CAACG,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC;EAE1E,MAAMC,eAAe,GAAGhC,OAAO,CAAC,MAAM;IAClC,MAAMiC,MAAM,GAAGP,SAAS,CAACO,MAAM,CAACC,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACC,OAAO,KAAK,YAAY,CAAC;IAC7E,IAAI,CAACH,MAAM,EAAEI,QAAQ,EAAEJ,MAAM,EAAE;MAC3B,OAAO,EAAE;IACb;IACA,OAAOA,MAAM,EAAEI,QAAQ,EAAEJ,MAAM,IAAI,EAAE;EACzC,CAAC,EAAE,CAACP,SAAS,CAAC,CAAC;EAEf,MAAMY,QAAgC,GAAG,MAAMC,IAAI,IAAI;IACnD,MAAMC,QAAQ,GAAG/B,eAAe,CAAC8B,IAAI,EAAEb,SAAS,CAACO,MAAM,CAAC;IACxDX,KAAK,CAACgB,QAAQ,CAAC;MAAE,GAAGlB,IAAI;MAAE,GAAGoB;IAAS,CAAC,CAAC;EAC5C,CAAC;EAED,MAAMC,kBAAkB,gBACpB3C,KAAA,CAAA4C,aAAA,CAACrC,IAAI,QACAsB,WAAW,CAACM,MAAM,CAACU,GAAG,CAACR,KAAK,iBACzBrC,KAAA,CAAA4C,aAAA,CAACrC,IAAI,CAACuC,MAAM;IAACC,IAAI,EAAE,EAAG;IAACC,GAAG,EAAEX,KAAK,CAACY;EAAK,GAClCZ,KAAK,CAACa,OACE,CAChB,CACC,CACT;EAED,MAAMC,sBAAsB,GACxBjB,eAAe,CAACkB,MAAM,GAAG,CAAC,gBAAGpD,KAAA,CAAA4C,aAAA,CAAC5B,UAAU;IAACqC,KAAK,EAAEzB;EAAU,CAAE,CAAC,GAAG,IAAI;EAExE,oBACI5B,KAAA,CAAA4C,aAAA,CAAClC,IAAI;IAAC+B,IAAI,EAAEnB,IAAK;IAACkB,QAAQ,EAAEA,QAAS;IAACc,GAAG,EAAE7B;EAAQ,GAC9C,mBACGzB,KAAA,CAAA4C,aAAA,CAAC7B,OAAO,qBACJf,KAAA,CAAA4C,aAAA,CAAC7B,OAAO,CAACwC,KAAK;IAACC,IAAI,EAAEC,UAAU,CAAC3B,SAAS;EAAE,gBACvC9B,KAAA,CAAA4C,aAAA;IAAKc,SAAS,EAAE;EAA0D,gBACtE1D,KAAA,CAAA4C,aAAA,CAAC9B,OAAO,MAAE,CAAC,eACXd,KAAA,CAAA4C,aAAA,CAAC/B,OAAO,MAAE,CACT,CACM,CAAC,eAChBb,KAAA,CAAA4C,aAAA,CAAC7B,OAAO,CAACwC,KAAK;IAACC,IAAI,EAAEC,UAAU,CAAC1B,UAAU;EAAE,GACvCF,WAAW,CAAC8B,WAAW,gBACpB3D,KAAA,CAAA4C,aAAA,CAACnC,IAAI;IACDmD,IAAI,EAAE,IAAK;IACXC,OAAO,EAAE,IAAK;IACdC,SAAS,EAAE,IAAK;IAChBC,IAAI,EAAE,cACF/D,KAAA,CAAA4C,aAAA,CAACnC,IAAI,CAACuD,GAAG;MACLhB,GAAG,EAAE,eAAgB;MACrBiB,KAAK,EAAE,eAAgB;MACvBC,OAAO,EAAE,eAAgB;MACzBC,OAAO,EAAExB;IAAmB,CAC/B,CAAC,eACF3C,KAAA,CAAA4C,aAAA,CAACnC,IAAI,CAACuD,GAAG;MACLhB,GAAG,EAAE,kBAAmB;MACxBiB,KAAK,EAAE,kBAAmB;MAC1BC,OAAO,EAAE,kBAAmB;MAC5BC,OAAO,EAAEhB;IAAuB,CACnC,CAAC;EACJ,CACL,CAAC,gBAEFnD,KAAA,CAAA4C,aAAA;IAAKc,SAAS,EAAE;EAAO,GAClBf,kBAAkB,eACnB3C,KAAA,CAAA4C,aAAA;IAAKc,SAAS,EAAE;EAAQ,GAAEP,sBAA4B,CACrD,CAEE,CACV,CAEX,CAAC;AAEf,CAAC;AAWD,OAAO,MAAMiB,WAAW,GAAGA,CAAC;EACxBC,IAAI;EACJC,OAAO;EACPC,MAAM;EACNC,OAAO;EACPlD,IAAI;EACJmD,SAAS,GAAGrE;AACE,CAAC,KAAK;EACpBC,UAAU,CAAC;IACPqE,MAAM,EAAE,EAAE;IACVC,QAAQ,EAAE,CAACN,IAAI;IACfO,IAAI,EAAE;MACFC,GAAG,EAAEP;IACT;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEzC;EAAY,CAAC,GAAGV,wBAAwB,CAAC,CAAC;EAElD,MAAM2D,WAAW,GAAGjD,WAAW,CAACG,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAEnD,MAAMR,OAAO,GAAGtB,MAAM,CAAiB,IAAI,CAAC;EAE5C,IAAI,CAACmB,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,oBACItB,KAAA,CAAA4C,aAAA,CAACxB,YAAY;IAACE,IAAI,EAAEA;EAAK,gBACrBtB,KAAA,CAAA4C,aAAA,CAACtC,MAAM;IACHyE,KAAK,EAAEzD,IAAI,CAAC2B,IAAK;IACjB+B,WAAW,eAAEhF,KAAA,CAAA4C,aAAA,CAAC3B,WAAW,MAAE,CAAE;IAC7Be,KAAK,EAAE8C,WAAY;IACnBT,IAAI,EAAEA,IAAK;IACXY,KAAK,EAAE,IAAK;IACZC,WAAW,EAAE,KAAM;IACnBC,eAAe,EAAE,IAAK;IACtBC,eAAe,EAAE,IAAK;IACtBd,OAAO,EAAEA,OAAQ;IACjB,eAAa,wBAAyB;IACtCe,OAAO,eACHrF,KAAA,CAAA4C,aAAA,CAAA5C,KAAA,CAAAsF,QAAA,qBACItF,KAAA,CAAA4C,aAAA,CAACtC,MAAM,CAACiF,YAAY;MAACC,IAAI,EAAE;IAAS,CAAE,CAAC,eACvCxF,KAAA,CAAA4C,aAAA,CAACtC,MAAM,CAACmF,aAAa;MACjBD,IAAI,EAAE,QAAS;MACfE,OAAO,EAAEA,CAAA,KAAMjE,OAAO,CAACE,OAAO,EAAEgE,MAAM,CAAC;IAAE,CAC5C,CACH;EACL,GAEAnB,OAAO,iBAAIxE,KAAA,CAAA4C,aAAA,CAACpC,aAAa;IAACgF,IAAI,EAAEhB;EAAQ,CAAE,CAAC,eAC5CxE,KAAA,CAAA4C,aAAA,CAAChC,mBAAmB;IAACgF,eAAe,EAAEtB,OAAQ;IAACG,SAAS,EAAEA;EAAU,gBAChEzE,KAAA,CAAA4C,aAAA,CAACvB,gBAAgB;IACbE,MAAM,EAAEsE,IAAI,IAAI;MACZpE,OAAO,CAACE,OAAO,GAAGkE,IAAI;IAC1B,CAAE;IACFvE,IAAI,EAAEA,IAAK;IACXgD,OAAO,EAAEA,OAAQ;IACjB9B,QAAQ,EAAE+B;EAAO,CACpB,CACgB,CACjB,CACE,CAAC;AAEvB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useRef","noop","useHotkeys","Drawer","Grid","OverlayLoader","Tabs","Form","prepareFormData","FileDetailsProvider","Preview","Actions","Content","Extensions","Description","useFileModel","useFileManagerViewConfig","FileProvider","FileDetailsInner","file","onForm","props","formRef","createRef","current","fileModel","fileDetails","leftPanel","rightPanel","width","split","extensionFields","fields","find","field","fieldId","settings","onSubmit","data","fileData","basicFieldsElement","createElement","map","Column","span","key","name","element","extensionFieldsElement","length","model","ref","Panel","flex","parseFloat","className","groupFields","size","spacing","separator","tabs","Tab","value","trigger","content","FileDetails","open","onClose","onSave","loading","onSetFile","zIndex","disabled","keys","esc","drawerWidth","title","description","modal","bodyPadding","headerSeparator","footerSeparator","actions","Fragment","CancelButton","text","ConfirmButton","onClick","submit","hideFileDetails","form"],"sources":["FileDetails.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef } from \"react\";\nimport noop from \"lodash/noop.js\";\nimport { useHotkeys } from \"@webiny/app-admin\";\nimport { Drawer, Grid, OverlayLoader, Tabs } from \"@webiny/admin-ui\";\nimport type { FileItem } from \"~/types.js\";\nimport type { FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { FileDetailsProvider } from \"~/components/FileDetails/FileDetailsProvider.js\";\nimport { Preview } from \"./components/Preview.js\";\nimport { Actions } from \"./components/Actions.js\";\nimport { Content } from \"./components/Content.js\";\nimport { Extensions } from \"./components/Extensions.js\";\nimport { Description } from \"./components/Description.js\";\nimport { useFileModel } from \"~/hooks/useFileModel.js\";\nimport { useFileManagerViewConfig } from \"~/index.js\";\nimport { FileProvider } from \"~/contexts/FileProvider.js\";\n\ninterface FileDetailsInnerProps {\n file: FileItem;\n onForm: (form: FormAPI) => void;\n onClose: () => void;\n onSubmit: (fileData: FileItem) => void;\n}\n\nconst FileDetailsInner = ({ file, onForm, ...props }: FileDetailsInnerProps) => {\n const formRef = React.createRef<FormAPI>();\n\n useEffect(() => {\n if (formRef.current) {\n onForm(formRef.current);\n }\n }, []);\n\n const fileModel = useFileModel();\n const { fileDetails } = useFileManagerViewConfig();\n\n const [, leftPanel = \"1\", rightPanel = \"1\"] = fileDetails.width.split(\",\");\n\n const extensionFields = useMemo(() => {\n const fields = fileModel.fields.find(field => field.fieldId === \"extensions\");\n if (!fields?.settings?.fields) {\n return [];\n }\n return fields?.settings?.fields || [];\n }, [fileModel]);\n\n const onSubmit: FormOnSubmit<FileItem> = async data => {\n const fileData = prepareFormData(data, fileModel.fields);\n props.onSubmit({ ...file, ...fileData });\n };\n\n const basicFieldsElement = (\n <Grid>\n {fileDetails.fields.map(field => (\n <Grid.Column span={12} key={field.name}>\n {field.element}\n </Grid.Column>\n ))}\n </Grid>\n );\n\n const extensionFieldsElement =\n extensionFields.length > 0 ? <Extensions model={fileModel} /> : null;\n\n return (\n <Form data={file} onSubmit={onSubmit} ref={formRef}>\n {() => (\n <Content>\n <Content.Panel flex={parseFloat(leftPanel)}>\n <div className={\"flex flex-col justify-between gap-md h-full px-lg py-md\"}>\n <Actions />\n <Preview />\n </div>\n </Content.Panel>\n <Content.Panel flex={parseFloat(rightPanel)}>\n {fileDetails.groupFields ? (\n <Tabs\n size={\"md\"}\n spacing={\"lg\"}\n separator={true}\n tabs={[\n <Tabs.Tab\n key={\"basic-details\"}\n value={\"basic-details\"}\n trigger={\"Basic details\"}\n content={basicFieldsElement}\n />,\n <Tabs.Tab\n key={\"advanced-details\"}\n value={\"advanced-details\"}\n trigger={\"Advanced details\"}\n content={extensionFieldsElement}\n />\n ]}\n />\n ) : (\n <div className={\"p-lg\"}>\n {basicFieldsElement}\n <div className={\"mt-lg\"}>{extensionFieldsElement}</div>\n </div>\n )}\n </Content.Panel>\n </Content>\n )}\n </Form>\n );\n};\n\nexport interface FileDetailsProps {\n file?: FileItem;\n open: boolean;\n loading: string | null;\n onClose: () => void;\n onSave: (file: FileItem) => void;\n onSetFile?: (file: FileItem) => void;\n}\n\nexport const FileDetails = ({\n open,\n onClose,\n onSave,\n loading,\n file,\n onSetFile = noop\n}: FileDetailsProps) => {\n useHotkeys({\n zIndex: 50,\n disabled: !open,\n keys: {\n esc: onClose\n }\n });\n\n const { fileDetails } = useFileManagerViewConfig();\n\n const drawerWidth = fileDetails.width.split(\",\")[0];\n\n const formRef = useRef<FormAPI | null>(null);\n\n if (!file) {\n return null;\n }\n\n return (\n <FileProvider file={file}>\n <Drawer\n title={file.name}\n description={<Description />}\n width={drawerWidth}\n open={open}\n modal={true}\n bodyPadding={false}\n headerSeparator={true}\n footerSeparator={true}\n onClose={onClose}\n data-testid={\"fm.file-details.drawer\"}\n actions={\n <>\n <Drawer.CancelButton text={\"Cancel\"} />\n <Drawer.ConfirmButton\n text={\"Update\"}\n onClick={() => formRef.current?.submit()}\n />\n </>\n }\n >\n {loading && <OverlayLoader text={loading} />}\n <FileDetailsProvider hideFileDetails={onClose} onSetFile={onSetFile}>\n <FileDetailsInner\n onForm={form => {\n formRef.current = form;\n }}\n file={file}\n onClose={onClose}\n onSubmit={onSave}\n />\n </FileDetailsProvider>\n </Drawer>\n </FileProvider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Button","ActionButton","label","icon","onAction","disabled","className","props","createElement","text","onClick","containerClassName","variant","size"],"sources":["ActionButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\n\nexport interface ActionButtonProps {\n label: string;\n icon: JSX.Element;\n onAction: () => void;\n \"data-testid\"?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport const ActionButton = ({\n label,\n icon,\n onAction,\n disabled,\n className,\n ...props\n}: ActionButtonProps) => {\n return (\n <Button\n text={label}\n icon={icon}\n onClick={onAction}\n disabled={disabled}\n data-testid={props[\"data-testid\"]}\n containerClassName={className}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,kBAAkB;AAWzC,OAAO,MAAMC,YAAY,GAAGA,CAAC;EACzBC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,SAAS;EACT,GAAGC;AACY,CAAC,KAAK;EACrB,oBACIR,KAAA,CAAAS,aAAA,CAACR,MAAM;IACHS,IAAI,EAAEP,KAAM;IACZC,IAAI,EAAEA,IAAK;IACXO,OAAO,EAAEN,QAAS;IAClBC,QAAQ,EAAEA,QAAS;IACnB,eAAaE,KAAK,CAAC,aAAa,CAAE;IAClCI,kBAAkB,EAAEL,SAAU;IAC9BM,OAAO,EAAE,OAAQ;IACjBC,IAAI,EAAE;EAAK,CACd,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Button","ActionButton","label","icon","onAction","disabled","className","props","createElement","text","onClick","containerClassName","variant","size"],"sources":["ActionButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\n\nexport interface ActionButtonProps {\n label: string;\n icon: React.JSX.Element;\n onAction: () => void;\n \"data-testid\"?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport const ActionButton = ({\n label,\n icon,\n onAction,\n disabled,\n className,\n ...props\n}: ActionButtonProps) => {\n return (\n <Button\n text={label}\n icon={icon}\n onClick={onAction}\n disabled={disabled}\n data-testid={props[\"data-testid\"]}\n containerClassName={className}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,kBAAkB;AAWzC,OAAO,MAAMC,YAAY,GAAGA,CAAC;EACzBC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,SAAS;EACT,GAAGC;AACY,CAAC,KAAK;EACrB,oBACIR,KAAA,CAAAS,aAAA,CAACR,MAAM;IACHS,IAAI,EAAEP,KAAM;IACZC,IAAI,EAAEA,IAAK;IACXO,OAAO,EAAEN,QAAS;IAClBC,QAAQ,EAAEA,QAAS;IACnB,eAAaE,KAAK,CAAC,aAAa,CAAE;IAClCI,kBAAkB,EAAEL,SAAU;IAC9BM,OAAO,EAAE,OAAQ;IACjBC,IAAI,EAAE;EAAK,CACd,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","IconButton","Tooltip","ActionButton","icon","label","onAction","disabled","props","onClick","event","stopPropagation","createElement","content","trigger","variant","size"],"sources":["ActionButton.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { IconButton, Tooltip } from \"@webiny/admin-ui\";\n\nexport interface ActionButtonProps {\n icon: JSX.Element;\n label?: string;\n onAction: () => void;\n \"data-testid\"?: string;\n disabled?: boolean;\n}\n\nexport const ActionButton = ({ icon, label, onAction, disabled, ...props }: ActionButtonProps) => {\n const onClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n // Prevent the click event from propagating to the grid item component.\n event.stopPropagation();\n onAction && onAction();\n },\n [onAction]\n );\n\n return (\n <Tooltip\n content={label ?? \"Custom action\"}\n trigger={\n <IconButton\n variant={\"tertiary\"}\n size={\"sm\"}\n icon={icon}\n onClick={onClick}\n disabled={disabled}\n data-testid={props[\"data-testid\"]}\n />\n }\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,UAAU,EAAEC,OAAO,QAAQ,kBAAkB;AAUtD,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAAyB,CAAC,KAAK;EAC9F,MAAMC,OAAO,GAAGT,WAAW,CACtBU,KAA0C,IAAK;IAC5C;IACAA,KAAK,CAACC,eAAe,CAAC,CAAC;IACvBL,QAAQ,IAAIA,QAAQ,CAAC,CAAC;EAC1B,CAAC,EACD,CAACA,QAAQ,CACb,CAAC;EAED,oBACIP,KAAA,CAAAa,aAAA,CAACV,OAAO;IACJW,OAAO,EAAER,KAAK,IAAI,eAAgB;IAClCS,OAAO,eACHf,KAAA,CAAAa,aAAA,CAACX,UAAU;MACPc,OAAO,EAAE,UAAW;MACpBC,IAAI,EAAE,IAAK;MACXZ,IAAI,EAAEA,IAAK;MACXK,OAAO,EAAEA,OAAQ;MACjBF,QAAQ,EAAEA,QAAS;MACnB,eAAaC,KAAK,CAAC,aAAa;IAAE,CACrC;EACJ,CACJ,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","IconButton","Tooltip","ActionButton","icon","label","onAction","disabled","props","onClick","event","stopPropagation","createElement","content","trigger","variant","size"],"sources":["ActionButton.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { IconButton, Tooltip } from \"@webiny/admin-ui\";\n\nexport interface ActionButtonProps {\n icon: React.JSX.Element;\n label?: string;\n onAction: () => void;\n \"data-testid\"?: string;\n disabled?: boolean;\n}\n\nexport const ActionButton = ({ icon, label, onAction, disabled, ...props }: ActionButtonProps) => {\n const onClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n // Prevent the click event from propagating to the grid item component.\n event.stopPropagation();\n onAction && onAction();\n },\n [onAction]\n );\n\n return (\n <Tooltip\n content={label ?? \"Custom action\"}\n trigger={\n <IconButton\n variant={\"tertiary\"}\n size={\"sm\"}\n icon={icon}\n onClick={onClick}\n disabled={disabled}\n data-testid={props[\"data-testid\"]}\n />\n }\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,UAAU,EAAEC,OAAO,QAAQ,kBAAkB;AAUtD,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAAyB,CAAC,KAAK;EAC9F,MAAMC,OAAO,GAAGT,WAAW,CACtBU,KAA0C,IAAK;IAC5C;IACAA,KAAK,CAACC,eAAe,CAAC,CAAC;IACvBL,QAAQ,IAAIA,QAAQ,CAAC,CAAC;EAC1B,CAAC,EACD,CAACA,QAAQ,CACb,CAAC;EAED,oBACIP,KAAA,CAAAa,aAAA,CAACV,OAAO;IACJW,OAAO,EAAER,KAAK,IAAI,eAAgB;IAClCS,OAAO,eACHf,KAAA,CAAAa,aAAA,CAACX,UAAU;MACPc,OAAO,EAAE,UAAW;MACpBC,IAAI,EAAE,IAAK;MACXZ,IAAI,EAAEA,IAAK;MACXK,OAAO,EAAEA,OAAQ;MACjBF,QAAQ,EAAEA,QAAS;MACnB,eAAaC,KAAK,CAAC,aAAa;IAAE,CACrC;EACJ,CACJ,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import type { FileItem } from "../../types.js";
|
|
|
3
3
|
export interface FileProps {
|
|
4
4
|
file: FileItem;
|
|
5
5
|
selected: boolean;
|
|
6
|
-
fileBody?: JSX.Element;
|
|
6
|
+
fileBody?: React.JSX.Element;
|
|
7
7
|
onSelect?: (event?: React.MouseEvent) => void;
|
|
8
8
|
onClick?: (event?: React.MouseEvent) => void;
|
|
9
9
|
multiple?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","LazyLoad","makeDecoratable","Text","TimeAgo","cn","CheckboxPrimitive","useFileManagerViewConfig","DefaultFileControls","onSelect","selected","browser","itemActions","grid","createElement","className","onClick","checked","onChange","map","action","key","name","element","DefaultFileBody","children","height","offset","DefaultFileLabel","file","size","as","type","datetime","createdOn","File","fileBody","id"],"sources":["File.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport LazyLoad from \"react-lazy-load\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { Text, TimeAgo, cn, CheckboxPrimitive } from \"@webiny/admin-ui\";\nimport { useFileManagerViewConfig } from \"~/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js\";\nimport type { FileItem } from \"~/types.js\";\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n fileBody?: JSX.Element;\n onSelect?: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n multiple?: boolean;\n children: React.ReactNode;\n}\n\nexport type DefaultFileControlsProps = Pick<FileProps, \"selected\" | \"onSelect\">;\n\nconst DefaultFileControls = ({ onSelect, selected }: DefaultFileControlsProps) => {\n const { browser } = useFileManagerViewConfig();\n const { itemActions } = browser.grid;\n\n return (\n <>\n {onSelect ? (\n <div\n className={cn([\n \"p-xs rounded-md\",\n \"bg-neutral-base/30\",\n \"absolute top-sm left-sm\",\n selected ? \"visible\" : \"invisible group-hover:visible\"\n ])}\n >\n <CheckboxPrimitive\n onClick={onSelect}\n checked={selected}\n onChange={() => void 0}\n />\n </div>\n ) : null}\n <div\n className={cn([\n \"invisible group-hover:visible\",\n \"flex items-center gap-xxs\",\n \"p-xs\",\n \"absolute top-xs-plus right-xs-plus\"\n ])}\n >\n {itemActions.map(action => {\n return <Fragment key={action.name}>{action.element}</Fragment>;\n })}\n </div>\n </>\n );\n};\n\nexport type DefaultFileBodyProps = Pick<FileProps, \"selected\" | \"onSelect\" | \"children\">;\n\nconst DefaultFileBody = ({ selected, onSelect, children }: DefaultFileBodyProps) => {\n return (\n <div\n onClick={onSelect}\n className={cn([\"relative\", onSelect ? \"cursor-pointer\" : \"cursor-default\"])}\n >\n <DefaultFileControls selected={selected} onSelect={onSelect} />\n <LazyLoad\n height={150}\n offset={\"300px\"}\n data-testid={\"fm-file-wrapper-file-preview\"}\n className={cn([\n \"bg-neutral-muted\",\n \"flex items-center justify-center\",\n \"text-neutral-strong text-sm\"\n ])}\n >\n {children}\n </LazyLoad>\n </div>\n );\n};\n\ntype DefaultFileLabelProps = Pick<FileProps, \"file\">;\n\nconst DefaultFileLabel = ({ file }: DefaultFileLabelProps) => {\n return (\n <div className={\"px-md py-sm-extra\"} data-testid={\"fm-file-wrapper-file-label\"}>\n <Text size={\"sm\"} as={\"div\"} className={\"truncate text-neutral-primary\"}>\n {file.name}\n </Text>\n <Text size={\"sm\"} as={\"div\"} className={\"truncate text-neutral-dimmed\"}>\n {file.type} {\" // \"} <TimeAgo datetime={file.createdOn} />\n </Text>\n </div>\n );\n};\n\nexport const File = makeDecoratable(\n \"File\",\n ({ file, fileBody, selected, onSelect, children }: FileProps) => {\n return (\n <div\n className={cn([\n \"group\",\n \"bg-neutral-base rounded-lg\",\n \"shadow-sm hover:shadow-lg\",\n \"border-sm border-solid border-neutral-base hover:border-neutral-dimmed-darker\",\n selected && \"ring-md ring-primary-strong\",\n \"transition-shadow duration-250 ease-in-out\",\n \"overflow-hidden\"\n ])}\n data-testid={\"fm-list-wrapper-file\"}\n data-file-id={file.id}\n >\n {fileBody ?? (\n <DefaultFileBody selected={selected} onSelect={onSelect}>\n {children}\n </DefaultFileBody>\n )}\n <DefaultFileLabel file={file} />\n </div>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Fragment","LazyLoad","makeDecoratable","Text","TimeAgo","cn","CheckboxPrimitive","useFileManagerViewConfig","DefaultFileControls","onSelect","selected","browser","itemActions","grid","createElement","className","onClick","checked","onChange","map","action","key","name","element","DefaultFileBody","children","height","offset","DefaultFileLabel","file","size","as","type","datetime","createdOn","File","fileBody","id"],"sources":["File.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport LazyLoad from \"react-lazy-load\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { Text, TimeAgo, cn, CheckboxPrimitive } from \"@webiny/admin-ui\";\nimport { useFileManagerViewConfig } from \"~/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js\";\nimport type { FileItem } from \"~/types.js\";\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n fileBody?: React.JSX.Element;\n onSelect?: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n multiple?: boolean;\n children: React.ReactNode;\n}\n\nexport type DefaultFileControlsProps = Pick<FileProps, \"selected\" | \"onSelect\">;\n\nconst DefaultFileControls = ({ onSelect, selected }: DefaultFileControlsProps) => {\n const { browser } = useFileManagerViewConfig();\n const { itemActions } = browser.grid;\n\n return (\n <>\n {onSelect ? (\n <div\n className={cn([\n \"p-xs rounded-md\",\n \"bg-neutral-base/30\",\n \"absolute top-sm left-sm\",\n selected ? \"visible\" : \"invisible group-hover:visible\"\n ])}\n >\n <CheckboxPrimitive\n onClick={onSelect}\n checked={selected}\n onChange={() => void 0}\n />\n </div>\n ) : null}\n <div\n className={cn([\n \"invisible group-hover:visible\",\n \"flex items-center gap-xxs\",\n \"p-xs\",\n \"absolute top-xs-plus right-xs-plus\"\n ])}\n >\n {itemActions.map(action => {\n return <Fragment key={action.name}>{action.element}</Fragment>;\n })}\n </div>\n </>\n );\n};\n\nexport type DefaultFileBodyProps = Pick<FileProps, \"selected\" | \"onSelect\" | \"children\">;\n\nconst DefaultFileBody = ({ selected, onSelect, children }: DefaultFileBodyProps) => {\n return (\n <div\n onClick={onSelect}\n className={cn([\"relative\", onSelect ? \"cursor-pointer\" : \"cursor-default\"])}\n >\n <DefaultFileControls selected={selected} onSelect={onSelect} />\n <LazyLoad\n height={150}\n offset={\"300px\"}\n data-testid={\"fm-file-wrapper-file-preview\"}\n className={cn([\n \"bg-neutral-muted\",\n \"flex items-center justify-center\",\n \"text-neutral-strong text-sm\"\n ])}\n >\n {children}\n </LazyLoad>\n </div>\n );\n};\n\ntype DefaultFileLabelProps = Pick<FileProps, \"file\">;\n\nconst DefaultFileLabel = ({ file }: DefaultFileLabelProps) => {\n return (\n <div className={\"px-md py-sm-extra\"} data-testid={\"fm-file-wrapper-file-label\"}>\n <Text size={\"sm\"} as={\"div\"} className={\"truncate text-neutral-primary\"}>\n {file.name}\n </Text>\n <Text size={\"sm\"} as={\"div\"} className={\"truncate text-neutral-dimmed\"}>\n {file.type} {\" // \"} <TimeAgo datetime={file.createdOn} />\n </Text>\n </div>\n );\n};\n\nexport const File = makeDecoratable(\n \"File\",\n ({ file, fileBody, selected, onSelect, children }: FileProps) => {\n return (\n <div\n className={cn([\n \"group\",\n \"bg-neutral-base rounded-lg\",\n \"shadow-sm hover:shadow-lg\",\n \"border-sm border-solid border-neutral-base hover:border-neutral-dimmed-darker\",\n selected && \"ring-md ring-primary-strong\",\n \"transition-shadow duration-250 ease-in-out\",\n \"overflow-hidden\"\n ])}\n data-testid={\"fm-list-wrapper-file\"}\n data-file-id={file.id}\n >\n {fileBody ?? (\n <DefaultFileBody selected={selected} onSelect={onSelect}>\n {children}\n </DefaultFileBody>\n )}\n <DefaultFileLabel file={file} />\n </div>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
2
|
import Files from "react-butterfiles";
|
|
3
3
|
import debounce from "lodash/debounce.js";
|
|
4
|
-
|
|
5
|
-
import { useHotkeys } from "react-hotkeyz";
|
|
4
|
+
import { useHotkeys } from "@webiny/app-admin";
|
|
6
5
|
import { observer } from "mobx-react-lite";
|
|
7
6
|
import { Scrollbar } from "@webiny/admin-ui";
|
|
8
7
|
import { i18n } from "@webiny/app/i18n/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Files","debounce","useHotkeys","observer","Scrollbar","i18n","LeftPanel","OverlayLayout","RightPanel","SplitView","useSnackbar","useFileManagerView","outputFileSelectionError","LeftSidebar","useFileManagerViewConfig","BatchFileUploader","BottomInfoBar","BulkActions","FileDropPlaceholder","Empty","FileDetails","Filters","Grid","Header","Table","TagsList","UploadStatus","t","ns","createSort","sorting","length","undefined","reduce","items","item","sort","id","desc","includes","push","FileManagerView","view","browser","showSnackbar","drawerLoading","setDrawerLoading","uploader","uploadFile","folderId","tableSorting","setTableSorting","currentFile","setCurrentFile","fetchFileDetails","showingFileDetails","file","getFile","setListSort","getFileUploadErrorMessage","e","match","message","zIndex","keys","esc","overlay","onClose","uploadFiles","files","addFiles","setIsUploadProgressIndicatorVisible","onUploadFinished","uploaded","errors","reset","createElement","Fragment","map","key","name","timeout","onUploadCompletion","filesBeingUploaded","getJobs","progress","renderList","browseFiles","isListLoading","isSearch","isSearchResult","folders","listTable","getSelectableRow","rows","filter","row","$type","data","onSelectRow","hasOnSelectCallback","multiple","setSelected","onChange","onToggleRow","toggleSelected","onSortingChange","folderActions","folder","actions","records","loading","onFolderClick","setFolderId","selected","deselectAll","displaySubFolders","loadMoreOnScroll","scrollFrame","top","loadMoreFiles","meta","updateFile","fileData","hideFileDetails","withOverlay","element","variant","onExited","maxSize","settings","uploadMaxFileSize","multipleMaxSize","accept","onSuccess","filesToUpload","src","Boolean","onError","getDropZoneProps","open","onSave","namespace","span","currentFolder","filterByTags","tags","activeTags","allTags","onActivatedTagsChange","setActiveTags","className","style","height","Object","assign","onDragOver","setDragging","onDragLeave","onDrop","onScrollFrame","dragging","numberOfFiles","isVisible","isUploadProgressIndicatorVisible","setIsVisible","listing","isListLoadingMore","totalCount","currentCount"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { FilesRenderChildren } from \"react-butterfiles\";\nimport Files from \"react-butterfiles\";\nimport debounce from \"lodash/debounce.js\";\nimport type { positionValues } from \"react-custom-scrollbars\";\n// @ts-expect-error\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { observer } from \"mobx-react-lite\";\nimport { type DataTableSorting, Scrollbar } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { LeftPanel, OverlayLayout, RightPanel, SplitView, useSnackbar } from \"@webiny/app-admin\";\nimport { useFileManagerView } from \"~/modules/FileManagerRenderer/FileManagerViewProvider/index.js\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError.js\";\nimport { LeftSidebar } from \"./LeftSidebar.js\";\nimport { useFileManagerViewConfig } from \"~/index.js\";\nimport type { FileItem } from \"~/types.js\";\nimport { BatchFileUploader } from \"~/BatchFileUploader.js\";\nimport type { ListFilesSort, ListFilesSortItem } from \"~/modules/FileManagerApiProvider/graphql.js\";\nimport type { TableItem } from \"~/types.js\";\n\nimport { BottomInfoBar } from \"~/components/BottomInfoBar/index.js\";\nimport { BulkActions } from \"~/components/BulkActions/index.js\";\nimport { FileDropPlaceholder } from \"~/components/FileDropPlaceholder/index.js\";\nimport { Empty } from \"~/components/Empty/index.js\";\nimport { FileDetails } from \"~/components/FileDetails/index.js\";\nimport { Filters } from \"~/components/Filters/index.js\";\nimport { Grid } from \"~/components/Grid/index.js\";\nimport { Header } from \"~/components/Header/index.js\";\nimport type { TableProps } from \"~/components/Table/index.js\";\nimport { Table } from \"~/components/Table/index.js\";\nimport { TagsList } from \"~/components/TagsList/index.js\";\nimport { UploadStatus } from \"~/components/UploadStatus/index.js\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\ntype GetFileUploadErrorMessageProps =\n | string\n | {\n message: string;\n };\n\nconst createSort = (sorting?: DataTableSorting): ListFilesSort | undefined => {\n if (!sorting?.length) {\n return undefined;\n }\n return sorting.reduce<ListFilesSort>((items, item) => {\n const sort = `${item.id}_${item.desc ? \"DESC\" : \"ASC\"}` as ListFilesSortItem;\n if (items.includes(sort)) {\n return items;\n }\n items.push(sort);\n return items;\n }, []);\n};\n\nconst FileManagerView = () => {\n const view = useFileManagerView();\n const { browser } = useFileManagerViewConfig();\n const { showSnackbar } = useSnackbar();\n const [drawerLoading, setDrawerLoading] = useState<string | null>(null);\n\n const uploader = useMemo<BatchFileUploader>(\n () => new BatchFileUploader(view.uploadFile),\n [view.folderId]\n );\n\n const [tableSorting, setTableSorting] = useState<DataTableSorting>([]);\n const [currentFile, setCurrentFile] = useState<FileItem>();\n\n useEffect(() => {\n const fetchFileDetails = async () => {\n if (view.showingFileDetails) {\n setDrawerLoading(\"Loading file details...\");\n const file = await view.getFile(view.showingFileDetails);\n setCurrentFile(file);\n } else {\n setCurrentFile(undefined);\n }\n setDrawerLoading(null);\n };\n\n // call the function\n fetchFileDetails();\n }, [view.showingFileDetails]);\n\n useEffect(() => {\n if (!tableSorting?.length) {\n return;\n }\n const sort = createSort(tableSorting);\n if (!sort) {\n return;\n }\n view.setListSort(sort);\n }, [tableSorting]);\n\n const getFileUploadErrorMessage = useCallback((e: GetFileUploadErrorMessageProps) => {\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 useHotkeys({\n zIndex: 20,\n keys: {\n esc: () => {\n if (view.overlay) {\n view.onClose();\n }\n }\n }\n });\n\n const uploadFiles = async (files: File[]) => {\n uploader.addFiles(files);\n view.setIsUploadProgressIndicatorVisible(true);\n\n uploader.onUploadFinished(({ uploaded, errors }) => {\n uploader.reset();\n view.setIsUploadProgressIndicatorVisible(true);\n\n if (errors.length > 0) {\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 return;\n }\n\n showSnackbar(t`File upload complete.`, { timeout: 3000 });\n\n view.onUploadCompletion(uploaded);\n });\n };\n\n const filesBeingUploaded = uploader.getJobs().length;\n const progress = uploader.progress;\n\n const renderList = (browseFiles: FilesRenderChildren[\"browseFiles\"]) => {\n if (!view.isListLoading && view.isSearch && view.files.length === 0) {\n return <Empty isSearchResult={true} browseFiles={browseFiles} />;\n }\n\n if (!view.isListLoading && view.files.length === 0 && view.folders.length === 0) {\n return <Empty isSearchResult={false} browseFiles={browseFiles} />;\n }\n\n if (view.listTable) {\n const getSelectableRow = (rows: TableItem[]) =>\n rows.filter(row => row.$type === \"RECORD\").map(row => row.data as FileItem);\n\n const onSelectRow: TableProps[\"onSelectRow\"] = view.hasOnSelectCallback\n ? rows => {\n const files = getSelectableRow(rows);\n\n if (view.multiple) {\n view.setSelected(files);\n } else {\n view.onChange(files[0]);\n }\n }\n : rows => {\n const files = getSelectableRow(rows);\n view.setSelected(files);\n };\n\n const onToggleRow: TableProps[\"onToggleRow\"] = view.hasOnSelectCallback\n ? row => {\n const files = getSelectableRow([row]);\n\n if (view.multiple) {\n view.toggleSelected(files[0]);\n } else {\n view.onChange(files[0]);\n }\n }\n : row => {\n const files = getSelectableRow([row]);\n view.toggleSelected(files[0]);\n };\n\n return (\n <Table\n onSelectRow={onSelectRow}\n onToggleRow={onToggleRow}\n sorting={tableSorting}\n onSortingChange={setTableSorting}\n />\n );\n }\n\n return (\n <Grid\n folderActions={browser.folder.actions}\n folders={view.folders}\n records={view.files}\n loading={view.isListLoading}\n onFolderClick={view.setFolderId}\n selected={view.selected}\n multiple={view.multiple}\n toggleSelected={view.toggleSelected}\n deselectAll={view.deselectAll}\n onChange={view.onChange}\n onClose={view.onClose}\n hasOnSelectCallback={view.hasOnSelectCallback}\n displaySubFolders={view.displaySubFolders}\n />\n );\n };\n\n const loadMoreOnScroll = useCallback(\n debounce(async ({ scrollFrame }: { scrollFrame: positionValues }) => {\n if (scrollFrame.top > 0.8) {\n view.loadMoreFiles();\n }\n }, 200),\n [view.meta, view.loadMoreFiles]\n );\n\n const updateFile = useCallback(\n async (data: FileItem) => {\n const { id, ...fileData } = data;\n setDrawerLoading(\"Saving file changes...\");\n await view.updateFile(id, fileData);\n setDrawerLoading(null);\n showSnackbar(\"File updated successfully!\");\n view.hideFileDetails();\n },\n [view.updateFile]\n );\n\n const withOverlay = (element: React.ReactElement) => {\n if (view.overlay) {\n return (\n <OverlayLayout variant={\"strong\"} onExited={view.onClose}>\n {element}\n </OverlayLayout>\n );\n }\n\n return element;\n };\n return (\n <Files\n multiple\n maxSize={view.settings ? view.settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={view.accept}\n onSuccess={files => {\n const filesToUpload = files.map(file => file.src.file).filter(Boolean) as File[];\n uploadFiles(filesToUpload);\n }}\n onError={errors => {\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles }) =>\n withOverlay(\n <>\n <FileDetails\n loading={drawerLoading}\n file={currentFile}\n open={Boolean(view.showingFileDetails)}\n onClose={view.hideFileDetails}\n onSave={updateFile}\n />\n <SplitView namespace={\"fm/file/list\"}>\n <LeftPanel span={2}>\n <LeftSidebar\n currentFolder={view.folderId}\n onFolderClick={view.setFolderId}\n >\n {browser.filterByTags ? (\n <TagsList\n loading={view.tags.loading}\n activeTags={view.tags.activeTags}\n tags={view.tags.allTags}\n onActivatedTagsChange={view.tags.setActiveTags}\n />\n ) : null}\n </LeftSidebar>\n </LeftPanel>\n <RightPanel span={10}>\n <div\n className={\"flex flex-col relative\"}\n style={{ height: \"calc(100vh - 45px\" }}\n >\n <Header browseFiles={browseFiles} />\n <div\n className={\"flex-1\"}\n {...getDropZoneProps({\n onDragOver: () => view.setDragging(true),\n onDragLeave: () => view.setDragging(false),\n onDrop: () => view.setDragging(false)\n })}\n data-testid={\"fm-list-wrapper\"}\n >\n <BulkActions />\n <Filters />\n <Scrollbar\n onScrollFrame={scrollFrame =>\n loadMoreOnScroll({ scrollFrame })\n }\n >\n {renderList(browseFiles)}\n </Scrollbar>\n {view.dragging && <FileDropPlaceholder />}\n <UploadStatus\n numberOfFiles={filesBeingUploaded}\n progress={progress}\n isVisible={view.isUploadProgressIndicatorVisible}\n setIsVisible={view.setIsUploadProgressIndicatorVisible}\n />\n </div>\n <BottomInfoBar\n accept={view.accept}\n listing={view.isListLoadingMore}\n loading={view.isListLoading}\n totalCount={view.meta?.totalCount ?? 0}\n currentCount={view.files.length}\n />\n </div>\n </RightPanel>\n </SplitView>\n </>\n )\n }\n </Files>\n );\n};\n\nexport default observer(FileManagerView);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Files","debounce","useHotkeys","observer","Scrollbar","i18n","LeftPanel","OverlayLayout","RightPanel","SplitView","useSnackbar","useFileManagerView","outputFileSelectionError","LeftSidebar","useFileManagerViewConfig","BatchFileUploader","BottomInfoBar","BulkActions","FileDropPlaceholder","Empty","FileDetails","Filters","Grid","Header","Table","TagsList","UploadStatus","t","ns","createSort","sorting","length","undefined","reduce","items","item","sort","id","desc","includes","push","FileManagerView","view","browser","showSnackbar","drawerLoading","setDrawerLoading","uploader","uploadFile","folderId","tableSorting","setTableSorting","currentFile","setCurrentFile","fetchFileDetails","showingFileDetails","file","getFile","setListSort","getFileUploadErrorMessage","e","match","message","zIndex","keys","esc","overlay","onClose","uploadFiles","files","addFiles","setIsUploadProgressIndicatorVisible","onUploadFinished","uploaded","errors","reset","createElement","Fragment","map","key","name","timeout","onUploadCompletion","filesBeingUploaded","getJobs","progress","renderList","browseFiles","isListLoading","isSearch","isSearchResult","folders","listTable","getSelectableRow","rows","filter","row","$type","data","onSelectRow","hasOnSelectCallback","multiple","setSelected","onChange","onToggleRow","toggleSelected","onSortingChange","folderActions","folder","actions","records","loading","onFolderClick","setFolderId","selected","deselectAll","displaySubFolders","loadMoreOnScroll","scrollFrame","top","loadMoreFiles","meta","updateFile","fileData","hideFileDetails","withOverlay","element","variant","onExited","maxSize","settings","uploadMaxFileSize","multipleMaxSize","accept","onSuccess","filesToUpload","src","Boolean","onError","getDropZoneProps","open","onSave","namespace","span","currentFolder","filterByTags","tags","activeTags","allTags","onActivatedTagsChange","setActiveTags","className","style","height","Object","assign","onDragOver","setDragging","onDragLeave","onDrop","onScrollFrame","dragging","numberOfFiles","isVisible","isUploadProgressIndicatorVisible","setIsVisible","listing","isListLoadingMore","totalCount","currentCount"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { FilesRenderChildren } from \"react-butterfiles\";\nimport Files from \"react-butterfiles\";\nimport debounce from \"lodash/debounce.js\";\nimport type { positionValues } from \"react-custom-scrollbars\";\nimport { useHotkeys } from \"@webiny/app-admin\";\nimport { observer } from \"mobx-react-lite\";\nimport { type DataTableSorting, Scrollbar } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { LeftPanel, OverlayLayout, RightPanel, SplitView, useSnackbar } from \"@webiny/app-admin\";\nimport { useFileManagerView } from \"~/modules/FileManagerRenderer/FileManagerViewProvider/index.js\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError.js\";\nimport { LeftSidebar } from \"./LeftSidebar.js\";\nimport { useFileManagerViewConfig } from \"~/index.js\";\nimport type { FileItem } from \"~/types.js\";\nimport { BatchFileUploader } from \"~/BatchFileUploader.js\";\nimport type { ListFilesSort, ListFilesSortItem } from \"~/modules/FileManagerApiProvider/graphql.js\";\nimport type { TableItem } from \"~/types.js\";\n\nimport { BottomInfoBar } from \"~/components/BottomInfoBar/index.js\";\nimport { BulkActions } from \"~/components/BulkActions/index.js\";\nimport { FileDropPlaceholder } from \"~/components/FileDropPlaceholder/index.js\";\nimport { Empty } from \"~/components/Empty/index.js\";\nimport { FileDetails } from \"~/components/FileDetails/index.js\";\nimport { Filters } from \"~/components/Filters/index.js\";\nimport { Grid } from \"~/components/Grid/index.js\";\nimport { Header } from \"~/components/Header/index.js\";\nimport type { TableProps } from \"~/components/Table/index.js\";\nimport { Table } from \"~/components/Table/index.js\";\nimport { TagsList } from \"~/components/TagsList/index.js\";\nimport { UploadStatus } from \"~/components/UploadStatus/index.js\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\ntype GetFileUploadErrorMessageProps =\n | string\n | {\n message: string;\n };\n\nconst createSort = (sorting?: DataTableSorting): ListFilesSort | undefined => {\n if (!sorting?.length) {\n return undefined;\n }\n return sorting.reduce<ListFilesSort>((items, item) => {\n const sort = `${item.id}_${item.desc ? \"DESC\" : \"ASC\"}` as ListFilesSortItem;\n if (items.includes(sort)) {\n return items;\n }\n items.push(sort);\n return items;\n }, []);\n};\n\nconst FileManagerView = () => {\n const view = useFileManagerView();\n const { browser } = useFileManagerViewConfig();\n const { showSnackbar } = useSnackbar();\n const [drawerLoading, setDrawerLoading] = useState<string | null>(null);\n\n const uploader = useMemo<BatchFileUploader>(\n () => new BatchFileUploader(view.uploadFile),\n [view.folderId]\n );\n\n const [tableSorting, setTableSorting] = useState<DataTableSorting>([]);\n const [currentFile, setCurrentFile] = useState<FileItem>();\n\n useEffect(() => {\n const fetchFileDetails = async () => {\n if (view.showingFileDetails) {\n setDrawerLoading(\"Loading file details...\");\n const file = await view.getFile(view.showingFileDetails);\n setCurrentFile(file);\n } else {\n setCurrentFile(undefined);\n }\n setDrawerLoading(null);\n };\n\n // call the function\n fetchFileDetails();\n }, [view.showingFileDetails]);\n\n useEffect(() => {\n if (!tableSorting?.length) {\n return;\n }\n const sort = createSort(tableSorting);\n if (!sort) {\n return;\n }\n view.setListSort(sort);\n }, [tableSorting]);\n\n const getFileUploadErrorMessage = useCallback((e: GetFileUploadErrorMessageProps) => {\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 useHotkeys({\n zIndex: 20,\n keys: {\n esc: () => {\n if (view.overlay) {\n view.onClose();\n }\n }\n }\n });\n\n const uploadFiles = async (files: File[]) => {\n uploader.addFiles(files);\n view.setIsUploadProgressIndicatorVisible(true);\n\n uploader.onUploadFinished(({ uploaded, errors }) => {\n uploader.reset();\n view.setIsUploadProgressIndicatorVisible(true);\n\n if (errors.length > 0) {\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 return;\n }\n\n showSnackbar(t`File upload complete.`, { timeout: 3000 });\n\n view.onUploadCompletion(uploaded);\n });\n };\n\n const filesBeingUploaded = uploader.getJobs().length;\n const progress = uploader.progress;\n\n const renderList = (browseFiles: FilesRenderChildren[\"browseFiles\"]) => {\n if (!view.isListLoading && view.isSearch && view.files.length === 0) {\n return <Empty isSearchResult={true} browseFiles={browseFiles} />;\n }\n\n if (!view.isListLoading && view.files.length === 0 && view.folders.length === 0) {\n return <Empty isSearchResult={false} browseFiles={browseFiles} />;\n }\n\n if (view.listTable) {\n const getSelectableRow = (rows: TableItem[]) =>\n rows.filter(row => row.$type === \"RECORD\").map(row => row.data as FileItem);\n\n const onSelectRow: TableProps[\"onSelectRow\"] = view.hasOnSelectCallback\n ? rows => {\n const files = getSelectableRow(rows);\n\n if (view.multiple) {\n view.setSelected(files);\n } else {\n view.onChange(files[0]);\n }\n }\n : rows => {\n const files = getSelectableRow(rows);\n view.setSelected(files);\n };\n\n const onToggleRow: TableProps[\"onToggleRow\"] = view.hasOnSelectCallback\n ? row => {\n const files = getSelectableRow([row]);\n\n if (view.multiple) {\n view.toggleSelected(files[0]);\n } else {\n view.onChange(files[0]);\n }\n }\n : row => {\n const files = getSelectableRow([row]);\n view.toggleSelected(files[0]);\n };\n\n return (\n <Table\n onSelectRow={onSelectRow}\n onToggleRow={onToggleRow}\n sorting={tableSorting}\n onSortingChange={setTableSorting}\n />\n );\n }\n\n return (\n <Grid\n folderActions={browser.folder.actions}\n folders={view.folders}\n records={view.files}\n loading={view.isListLoading}\n onFolderClick={view.setFolderId}\n selected={view.selected}\n multiple={view.multiple}\n toggleSelected={view.toggleSelected}\n deselectAll={view.deselectAll}\n onChange={view.onChange}\n onClose={view.onClose}\n hasOnSelectCallback={view.hasOnSelectCallback}\n displaySubFolders={view.displaySubFolders}\n />\n );\n };\n\n const loadMoreOnScroll = useCallback(\n debounce(async ({ scrollFrame }: { scrollFrame: positionValues }) => {\n if (scrollFrame.top > 0.8) {\n view.loadMoreFiles();\n }\n }, 200),\n [view.meta, view.loadMoreFiles]\n );\n\n const updateFile = useCallback(\n async (data: FileItem) => {\n const { id, ...fileData } = data;\n setDrawerLoading(\"Saving file changes...\");\n await view.updateFile(id, fileData);\n setDrawerLoading(null);\n showSnackbar(\"File updated successfully!\");\n view.hideFileDetails();\n },\n [view.updateFile]\n );\n\n const withOverlay = (element: React.ReactElement) => {\n if (view.overlay) {\n return (\n <OverlayLayout variant={\"strong\"} onExited={view.onClose}>\n {element}\n </OverlayLayout>\n );\n }\n\n return element;\n };\n return (\n <Files\n multiple\n maxSize={view.settings ? view.settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={view.accept}\n onSuccess={files => {\n const filesToUpload = files.map(file => file.src.file).filter(Boolean) as File[];\n uploadFiles(filesToUpload);\n }}\n onError={errors => {\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles }) =>\n withOverlay(\n <>\n <FileDetails\n loading={drawerLoading}\n file={currentFile}\n open={Boolean(view.showingFileDetails)}\n onClose={view.hideFileDetails}\n onSave={updateFile}\n />\n <SplitView namespace={\"fm/file/list\"}>\n <LeftPanel span={2}>\n <LeftSidebar\n currentFolder={view.folderId}\n onFolderClick={view.setFolderId}\n >\n {browser.filterByTags ? (\n <TagsList\n loading={view.tags.loading}\n activeTags={view.tags.activeTags}\n tags={view.tags.allTags}\n onActivatedTagsChange={view.tags.setActiveTags}\n />\n ) : null}\n </LeftSidebar>\n </LeftPanel>\n <RightPanel span={10}>\n <div\n className={\"flex flex-col relative\"}\n style={{ height: \"calc(100vh - 45px\" }}\n >\n <Header browseFiles={browseFiles} />\n <div\n className={\"flex-1\"}\n {...getDropZoneProps({\n onDragOver: () => view.setDragging(true),\n onDragLeave: () => view.setDragging(false),\n onDrop: () => view.setDragging(false)\n })}\n data-testid={\"fm-list-wrapper\"}\n >\n <BulkActions />\n <Filters />\n <Scrollbar\n onScrollFrame={scrollFrame =>\n loadMoreOnScroll({ scrollFrame })\n }\n >\n {renderList(browseFiles)}\n </Scrollbar>\n {view.dragging && <FileDropPlaceholder />}\n <UploadStatus\n numberOfFiles={filesBeingUploaded}\n progress={progress}\n isVisible={view.isUploadProgressIndicatorVisible}\n setIsVisible={view.setIsUploadProgressIndicatorVisible}\n />\n </div>\n <BottomInfoBar\n accept={view.accept}\n listing={view.isListLoadingMore}\n loading={view.isListLoading}\n totalCount={view.meta?.totalCount ?? 0}\n currentCount={view.files.length}\n />\n </div>\n </RightPanel>\n </SplitView>\n </>\n )\n }\n </Files>\n );\n};\n\nexport default observer(FileManagerView);\n"],"mappings":"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","ignoreList":[]}
|
package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Grid/Thumbnail.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
export interface ThumbnailConfig {
|
|
3
3
|
type: string;
|
|
4
|
-
element: JSX.Element;
|
|
4
|
+
element: React.JSX.Element;
|
|
5
5
|
}
|
|
6
6
|
export interface RendererProps {
|
|
7
7
|
type: string;
|
|
8
|
-
element: JSX.Element;
|
|
8
|
+
element: React.JSX.Element;
|
|
9
9
|
}
|
|
10
10
|
export declare const Thumbnail: (({ type, element }: RendererProps) => React.JSX.Element) & {
|
|
11
11
|
original: ({ type, element }: RendererProps) => React.JSX.Element;
|
package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Grid/Thumbnail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","makeDecoratable","Property","useIdGenerator","Thumbnail","type","element","getId","createElement","id","name","array","value"],"sources":["Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface ThumbnailConfig {\n type: string;\n element: JSX.Element;\n}\n\nexport interface RendererProps {\n type: string;\n element: JSX.Element;\n}\n\nexport const Thumbnail = makeDecoratable(\"Thumbnail\", ({ type, element }: RendererProps) => {\n const getId = useIdGenerator(\"browser:grid:thumbnail\");\n\n return (\n <Property id=\"browser\" name={\"browser\"}>\n <Property id=\"grid\" name={\"grid\"}>\n <Property id={getId(type)} name={\"itemThumbnails\"} array={true}>\n <Property id={getId(type, \"type\")} name={\"type\"} value={type} />\n <Property id={getId(type, \"element\")} name={\"element\"} value={element} />\n </Property>\n </Property>\n </Property>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYnE,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC,WAAW,EAAE,CAAC;EAAEI,IAAI;EAAEC;AAAuB,CAAC,KAAK;EACxF,MAAMC,KAAK,GAAGJ,cAAc,CAAC,wBAAwB,CAAC;EAEtD,oBACIH,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,SAAS;IAACC,IAAI,EAAE;EAAU,gBACnCV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,MAAM;IAACC,IAAI,EAAE;EAAO,gBAC7BV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACK,IAAI,EAAE,gBAAiB;IAACC,KAAK,EAAE;EAAK,gBAC3DX,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,MAAM,CAAE;IAACK,IAAI,EAAE,MAAO;IAACE,KAAK,EAAEP;EAAK,CAAE,CAAC,eAChEL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,SAAS,CAAE;IAACK,IAAI,EAAE,SAAU;IAACE,KAAK,EAAEN;EAAQ,CAAE,CAClE,CACJ,CACJ,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","makeDecoratable","Property","useIdGenerator","Thumbnail","type","element","getId","createElement","id","name","array","value"],"sources":["Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface ThumbnailConfig {\n type: string;\n element: React.JSX.Element;\n}\n\nexport interface RendererProps {\n type: string;\n element: React.JSX.Element;\n}\n\nexport const Thumbnail = makeDecoratable(\"Thumbnail\", ({ type, element }: RendererProps) => {\n const getId = useIdGenerator(\"browser:grid:thumbnail\");\n\n return (\n <Property id=\"browser\" name={\"browser\"}>\n <Property id=\"grid\" name={\"grid\"}>\n <Property id={getId(type)} name={\"itemThumbnails\"} array={true}>\n <Property id={getId(type, \"type\")} name={\"type\"} value={type} />\n <Property id={getId(type, \"element\")} name={\"element\"} value={element} />\n </Property>\n </Property>\n </Property>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYnE,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC,WAAW,EAAE,CAAC;EAAEI,IAAI;EAAEC;AAAuB,CAAC,KAAK;EACxF,MAAMC,KAAK,GAAGJ,cAAc,CAAC,wBAAwB,CAAC;EAEtD,oBACIH,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,SAAS;IAACC,IAAI,EAAE;EAAU,gBACnCV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,MAAM;IAACC,IAAI,EAAE;EAAO,gBAC7BV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACK,IAAI,EAAE,gBAAiB;IAACC,KAAK,EAAE;EAAK,gBAC3DX,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,MAAM,CAAE;IAACK,IAAI,EAAE,MAAO;IAACE,KAAK,EAAEP;EAAK,CAAE,CAAC,eAChEL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,SAAS,CAAE;IAACK,IAAI,EAAE,SAAU;IAACE,KAAK,EAAEN;EAAQ,CAAE,CAClE,CACJ,CACJ,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Table/Thumbnail.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
export interface ThumbnailConfig {
|
|
3
3
|
type: string;
|
|
4
|
-
element: JSX.Element;
|
|
4
|
+
element: React.JSX.Element;
|
|
5
5
|
}
|
|
6
6
|
export interface RendererProps {
|
|
7
7
|
type: string;
|
|
8
|
-
element: JSX.Element;
|
|
8
|
+
element: React.JSX.Element;
|
|
9
9
|
}
|
|
10
10
|
export declare const Thumbnail: (({ type, element }: RendererProps) => React.JSX.Element) & {
|
|
11
11
|
original: ({ type, element }: RendererProps) => React.JSX.Element;
|
package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Table/Thumbnail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","makeDecoratable","Property","useIdGenerator","Thumbnail","type","element","getId","createElement","id","name","array","value"],"sources":["Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface ThumbnailConfig {\n type: string;\n element: JSX.Element;\n}\n\nexport interface RendererProps {\n type: string;\n element: JSX.Element;\n}\n\nexport const Thumbnail = makeDecoratable(\"Thumbnail\", ({ type, element }: RendererProps) => {\n const getId = useIdGenerator(\"browser:table:thumbnail\");\n\n return (\n <Property id=\"browser\" name={\"browser\"}>\n <Property id=\"table\" name={\"table\"}>\n <Property id={getId(type)} name={\"cellThumbnails\"} array={true}>\n <Property id={getId(type, \"type\")} name={\"type\"} value={type} />\n <Property id={getId(type, \"element\")} name={\"element\"} value={element} />\n </Property>\n </Property>\n </Property>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYnE,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC,WAAW,EAAE,CAAC;EAAEI,IAAI;EAAEC;AAAuB,CAAC,KAAK;EACxF,MAAMC,KAAK,GAAGJ,cAAc,CAAC,yBAAyB,CAAC;EAEvD,oBACIH,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,SAAS;IAACC,IAAI,EAAE;EAAU,gBACnCV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,OAAO;IAACC,IAAI,EAAE;EAAQ,gBAC/BV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACK,IAAI,EAAE,gBAAiB;IAACC,KAAK,EAAE;EAAK,gBAC3DX,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,MAAM,CAAE;IAACK,IAAI,EAAE,MAAO;IAACE,KAAK,EAAEP;EAAK,CAAE,CAAC,eAChEL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,SAAS,CAAE;IAACK,IAAI,EAAE,SAAU;IAACE,KAAK,EAAEN;EAAQ,CAAE,CAClE,CACJ,CACJ,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","makeDecoratable","Property","useIdGenerator","Thumbnail","type","element","getId","createElement","id","name","array","value"],"sources":["Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface ThumbnailConfig {\n type: string;\n element: React.JSX.Element;\n}\n\nexport interface RendererProps {\n type: string;\n element: React.JSX.Element;\n}\n\nexport const Thumbnail = makeDecoratable(\"Thumbnail\", ({ type, element }: RendererProps) => {\n const getId = useIdGenerator(\"browser:table:thumbnail\");\n\n return (\n <Property id=\"browser\" name={\"browser\"}>\n <Property id=\"table\" name={\"table\"}>\n <Property id={getId(type)} name={\"cellThumbnails\"} array={true}>\n <Property id={getId(type, \"type\")} name={\"type\"} value={type} />\n <Property id={getId(type, \"element\")} name={\"element\"} value={element} />\n </Property>\n </Property>\n </Property>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYnE,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC,WAAW,EAAE,CAAC;EAAEI,IAAI;EAAEC;AAAuB,CAAC,KAAK;EACxF,MAAMC,KAAK,GAAGJ,cAAc,CAAC,yBAAyB,CAAC;EAEvD,oBACIH,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,SAAS;IAACC,IAAI,EAAE;EAAU,gBACnCV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,OAAO;IAACC,IAAI,EAAE;EAAQ,gBAC/BV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACK,IAAI,EAAE,gBAAiB;IAACC,KAAK,EAAE;EAAK,gBAC3DX,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,MAAM,CAAE;IAACK,IAAI,EAAE,MAAO;IAACE,KAAK,EAAEP;EAAK,CAAE,CAAC,eAChEL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,SAAS,CAAE;IAACK,IAAI,EAAE,SAAU;IAACE,KAAK,EAAEN;EAAQ,CAAE,CAClE,CACJ,CACJ,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Thumbnail.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
export interface ThumbnailConfig {
|
|
3
3
|
type: string;
|
|
4
|
-
element: JSX.Element;
|
|
4
|
+
element: React.JSX.Element;
|
|
5
5
|
}
|
|
6
6
|
export interface RendererProps {
|
|
7
7
|
type: string;
|
|
8
|
-
element: JSX.Element;
|
|
8
|
+
element: React.JSX.Element;
|
|
9
9
|
}
|
|
10
10
|
export declare const Thumbnail: (({ type, element }: RendererProps) => React.JSX.Element) & {
|
|
11
11
|
original: ({ type, element }: RendererProps) => React.JSX.Element;
|
package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Thumbnail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","makeDecoratable","Property","useIdGenerator","Thumbnail","type","element","getId","createElement","id","name","array","value"],"sources":["Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface ThumbnailConfig {\n type: string;\n element: JSX.Element;\n}\n\nexport interface RendererProps {\n type: string;\n element: JSX.Element;\n}\n\nexport const Thumbnail = makeDecoratable(\"Thumbnail\", ({ type, element }: RendererProps) => {\n const getId = useIdGenerator(\"thumbnail\");\n\n return (\n <Property id=\"fileDetails\" name={\"fileDetails\"}>\n <Property id={getId(type)} name={\"thumbnails\"} array={true}>\n <Property id={getId(type, \"type\")} name={\"type\"} value={type} />\n <Property id={getId(type, \"element\")} name={\"element\"} value={element} />\n </Property>\n </Property>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYnE,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC,WAAW,EAAE,CAAC;EAAEI,IAAI;EAAEC;AAAuB,CAAC,KAAK;EACxF,MAAMC,KAAK,GAAGJ,cAAc,CAAC,WAAW,CAAC;EAEzC,oBACIH,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,aAAa;IAACC,IAAI,EAAE;EAAc,gBAC3CV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACK,IAAI,EAAE,YAAa;IAACC,KAAK,EAAE;EAAK,gBACvDX,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,MAAM,CAAE;IAACK,IAAI,EAAE,MAAO;IAACE,KAAK,EAAEP;EAAK,CAAE,CAAC,eAChEL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,SAAS,CAAE;IAACK,IAAI,EAAE,SAAU;IAACE,KAAK,EAAEN;EAAQ,CAAE,CAClE,CACJ,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","makeDecoratable","Property","useIdGenerator","Thumbnail","type","element","getId","createElement","id","name","array","value"],"sources":["Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface ThumbnailConfig {\n type: string;\n element: React.JSX.Element;\n}\n\nexport interface RendererProps {\n type: string;\n element: React.JSX.Element;\n}\n\nexport const Thumbnail = makeDecoratable(\"Thumbnail\", ({ type, element }: RendererProps) => {\n const getId = useIdGenerator(\"thumbnail\");\n\n return (\n <Property id=\"fileDetails\" name={\"fileDetails\"}>\n <Property id={getId(type)} name={\"thumbnails\"} array={true}>\n <Property id={getId(type, \"type\")} name={\"type\"} value={type} />\n <Property id={getId(type, \"element\")} name={\"element\"} value={element} />\n </Property>\n </Property>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYnE,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC,WAAW,EAAE,CAAC;EAAEI,IAAI;EAAEC;AAAuB,CAAC,KAAK;EACxF,MAAMC,KAAK,GAAGJ,cAAc,CAAC,WAAW,CAAC;EAEzC,oBACIH,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAC,aAAa;IAACC,IAAI,EAAE;EAAc,gBAC3CV,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACK,IAAI,EAAE,YAAa;IAACC,KAAK,EAAE;EAAK,gBACvDX,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,MAAM,CAAE;IAACK,IAAI,EAAE,MAAO;IAACE,KAAK,EAAEP;EAAK,CAAE,CAAC,eAChEL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,EAAE,SAAS,CAAE;IAACK,IAAI,EAAE,SAAU;IAACE,KAAK,EAAEN;EAAQ,CAAE,CAClE,CACJ,CAAC;AAEnB,CAAC,CAAC","ignoreList":[]}
|