@webiny/app-file-manager 6.0.0-rc.4 → 6.0.0-rc.5
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FileManager } from "@webiny/app-admin";
|
|
3
|
-
import {
|
|
3
|
+
import { useFieldEffectiveRules, useModelField } from "@webiny/app-headless-cms-common";
|
|
4
4
|
import { FilePicker } from "@webiny/admin-ui";
|
|
5
5
|
import { EditFileUsingUrl } from "../../../components/EditFileUsingUrl/index.js";
|
|
6
6
|
import { getSupportedExtensionsLabelHint } from "./utils.js";
|
|
@@ -10,7 +10,7 @@ const FieldRenderer = ({
|
|
|
10
10
|
const {
|
|
11
11
|
field
|
|
12
12
|
} = useModelField();
|
|
13
|
-
const rules =
|
|
13
|
+
const rules = useFieldEffectiveRules(field);
|
|
14
14
|
const disabled = !rules.canEdit || rules.disabled;
|
|
15
15
|
const Bind = getBind();
|
|
16
16
|
const imagesOnly = field.settings && field.settings.imagesOnly;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","FileManager","
|
|
1
|
+
{"version":3,"names":["React","FileManager","useFieldEffectiveRules","useModelField","FilePicker","EditFileUsingUrl","getSupportedExtensionsLabelHint","FieldRenderer","getBind","field","rules","disabled","canEdit","Bind","imagesOnly","settings","createElement","bind","value","onChange","validation","ValidationContainer","onSetFile","file","src","editFile","images","render","showFileManager","Object","assign","label","description","hint","help","note","onSelectItem","onEditItem","onRemoveItem","placeholder","type","singleFile","name","renderer","rendererName","canUse","list","params"],"sources":["fileField.tsx"],"sourcesContent":["import React from \"react\";\nimport type {\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"@webiny/app-headless-cms/types.js\";\nimport { FileManager } from \"@webiny/app-admin\";\nimport { useFieldEffectiveRules, useModelField } from \"@webiny/app-headless-cms-common\";\nimport { FilePicker } from \"@webiny/admin-ui\";\nimport { EditFileUsingUrl } from \"~/components/EditFileUsingUrl/index.js\";\nimport { getSupportedExtensionsLabelHint } from \"~/modules/HeadlessCms/fileRenderer/utils.js\";\n\nconst FieldRenderer = ({ getBind }: CmsModelFieldRendererProps) => {\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n const Bind = getBind();\n\n const imagesOnly = field.settings && field.settings.imagesOnly;\n\n return (\n <Bind>\n {bind => {\n const { value, onChange, validation } = bind;\n\n return (\n <Bind.ValidationContainer>\n <EditFileUsingUrl onSetFile={file => bind.onChange(file.src)}>\n {({ editFile }) => (\n <FileManager\n images={imagesOnly}\n render={({ showFileManager }) => {\n return (\n <FilePicker\n {...bind}\n disabled={disabled}\n label={field.label}\n validation={validation}\n description={field.description}\n hint={field.help}\n note={getSupportedExtensionsLabelHint(imagesOnly)}\n value={value}\n onSelectItem={() => {\n showFileManager(file => onChange(file.src));\n }}\n onEditItem={() => editFile(value)}\n onRemoveItem={() => onChange(null)}\n placeholder={field.placeholder}\n type={\"compact\"}\n data-testid={`fr.input.filefield.${field.label}`}\n />\n );\n }}\n />\n )}\n </EditFileUsingUrl>\n </Bind.ValidationContainer>\n );\n }}\n </Bind>\n );\n};\n\nexport const singleFile: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-file\",\n renderer: {\n rendererName: \"file-input\",\n name: \"File Input\",\n description: \"Enables selecting a single file via File Manager.\",\n canUse({ field }) {\n return field.type === \"file\" && !field.list;\n },\n render(params) {\n return <FieldRenderer {...params} />;\n }\n }\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAKzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,sBAAsB,EAAEC,aAAa,QAAQ,iCAAiC;AACvF,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,gBAAgB;AACzB,SAASC,+BAA+B;AAExC,MAAMC,aAAa,GAAGA,CAAC;EAAEC;AAAoC,CAAC,KAAK;EAC/D,MAAM;IAAEC;EAAM,CAAC,GAAGN,aAAa,CAAC,CAAC;EACjC,MAAMO,KAAK,GAAGR,sBAAsB,CAACO,KAAK,CAAC;EAC3C,MAAME,QAAQ,GAAG,CAACD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACC,QAAQ;EACjD,MAAME,IAAI,GAAGL,OAAO,CAAC,CAAC;EAEtB,MAAMM,UAAU,GAAGL,KAAK,CAACM,QAAQ,IAAIN,KAAK,CAACM,QAAQ,CAACD,UAAU;EAE9D,oBACId,KAAA,CAAAgB,aAAA,CAACH,IAAI,QACAI,IAAI,IAAI;IACL,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAW,CAAC,GAAGH,IAAI;IAE5C,oBACIjB,KAAA,CAAAgB,aAAA,CAACH,IAAI,CAACQ,mBAAmB,qBACrBrB,KAAA,CAAAgB,aAAA,CAACX,gBAAgB;MAACiB,SAAS,EAAEC,IAAI,IAAIN,IAAI,CAACE,QAAQ,CAACI,IAAI,CAACC,GAAG;IAAE,GACxD,CAAC;MAAEC;IAAS,CAAC,kBACVzB,KAAA,CAAAgB,aAAA,CAACf,WAAW;MACRyB,MAAM,EAAEZ,UAAW;MACnBa,MAAM,EAAEA,CAAC;QAAEC;MAAgB,CAAC,KAAK;QAC7B,oBACI5B,KAAA,CAAAgB,aAAA,CAACZ,UAAU,EAAAyB,MAAA,CAAAC,MAAA,KACHb,IAAI;UACRN,QAAQ,EAAEA,QAAS;UACnBoB,KAAK,EAAEtB,KAAK,CAACsB,KAAM;UACnBX,UAAU,EAAEA,UAAW;UACvBY,WAAW,EAAEvB,KAAK,CAACuB,WAAY;UAC/BC,IAAI,EAAExB,KAAK,CAACyB,IAAK;UACjBC,IAAI,EAAE7B,+BAA+B,CAACQ,UAAU,CAAE;UAClDI,KAAK,EAAEA,KAAM;UACbkB,YAAY,EAAEA,CAAA,KAAM;YAChBR,eAAe,CAACL,IAAI,IAAIJ,QAAQ,CAACI,IAAI,CAACC,GAAG,CAAC,CAAC;UAC/C,CAAE;UACFa,UAAU,EAAEA,CAAA,KAAMZ,QAAQ,CAACP,KAAK,CAAE;UAClCoB,YAAY,EAAEA,CAAA,KAAMnB,QAAQ,CAAC,IAAI,CAAE;UACnCoB,WAAW,EAAE9B,KAAK,CAAC8B,WAAY;UAC/BC,IAAI,EAAE,SAAU;UAChB,eAAa,sBAAsB/B,KAAK,CAACsB,KAAK;QAAG,EACpD,CAAC;MAEV;IAAE,CACL,CAES,CACI,CAAC;EAEnC,CACE,CAAC;AAEf,CAAC;AAED,OAAO,MAAMU,UAAuC,GAAG;EACnDD,IAAI,EAAE,2BAA2B;EACjCE,IAAI,EAAE,gCAAgC;EACtCC,QAAQ,EAAE;IACNC,YAAY,EAAE,YAAY;IAC1BF,IAAI,EAAE,YAAY;IAClBV,WAAW,EAAE,mDAAmD;IAChEa,MAAMA,CAAC;MAAEpC;IAAM,CAAC,EAAE;MACd,OAAOA,KAAK,CAAC+B,IAAI,KAAK,MAAM,IAAI,CAAC/B,KAAK,CAACqC,IAAI;IAC/C,CAAC;IACDnB,MAAMA,CAACoB,MAAM,EAAE;MACX,oBAAO/C,KAAA,CAAAgB,aAAA,CAACT,aAAa,EAAKwC,MAAS,CAAC;IACxC;EACJ;AACJ,CAAC","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { FileManager } from "@webiny/app-admin";
|
|
|
5
5
|
import { getSupportedExtensionsLabelHint } from "./utils.js";
|
|
6
6
|
import { EditFileUsingUrl } from "../../../components/EditFileUsingUrl/index.js";
|
|
7
7
|
import { MultiFilePicker } from "@webiny/admin-ui";
|
|
8
|
-
import {
|
|
8
|
+
import { useFieldEffectiveRules, useModelField } from "@webiny/app-headless-cms-common";
|
|
9
9
|
const t = i18n.ns("app-headless-cms/admin/fields/file");
|
|
10
10
|
const FieldRenderer = ({
|
|
11
11
|
getBind
|
|
@@ -13,7 +13,7 @@ const FieldRenderer = ({
|
|
|
13
13
|
const {
|
|
14
14
|
field
|
|
15
15
|
} = useModelField();
|
|
16
|
-
const rules =
|
|
16
|
+
const rules = useFieldEffectiveRules(field);
|
|
17
17
|
const disabled = !rules.canEdit || rules.disabled;
|
|
18
18
|
const Bind = getBind();
|
|
19
19
|
const editFileRef = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","dotProp","i18n","FileManager","getSupportedExtensionsLabelHint","EditFileUsingUrl","MultiFilePicker","useEffectiveRules","useModelField","t","ns","FieldRenderer","getBind","field","rules","disabled","canEdit","Bind","editFileRef","imagesOnly","settings","onSetFile","bind","file","current","newValue","value","onChange","slice","index","src","createElement","validation","values","Array","isArray","filter","Boolean","ValidationContainer","editFile","multiple","images","render","showFileManager","selectFiles","files","urls","map","f","Object","assign","label","description","note","onSelectItem","onReplaceItem","_","onRemoveItem","delete","onEditItem","url","placeholder","type","multipleFiles","name","renderer","rendererName","canUse","list","props"],"sources":["fileFields.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport dotProp from \"dot-prop-immutable\";\nimport type {\n BindComponentRenderProp,\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"@webiny/app-headless-cms/types.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { FileManager } from \"@webiny/app-admin\";\nimport { getSupportedExtensionsLabelHint } from \"./utils.js\";\nimport { EditFileUsingUrl } from \"~/components/EditFileUsingUrl/index.js\";\nimport type { FileItem } from \"~/types.js\";\nimport { MultiFilePicker } from \"@webiny/admin-ui\";\nimport { useEffectiveRules, useModelField } from \"@webiny/app-headless-cms-common\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/file\");\n\ninterface EditFileRef {\n index: number;\n url: string;\n}\n\nconst FieldRenderer = ({ getBind }: CmsModelFieldRendererProps) => {\n const { field } = useModelField();\n const rules = useEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n const Bind = getBind();\n const editFileRef = useRef<EditFileRef | null>(null);\n\n const imagesOnly = field.settings && field.settings.imagesOnly;\n\n const onSetFile = (bind: BindComponentRenderProp) => {\n return (file: FileItem) => {\n if (!editFileRef.current) {\n return;\n }\n\n const newValue = [...bind.value];\n bind.onChange([\n ...newValue.slice(0, editFileRef.current.index),\n file.src,\n ...newValue.slice(editFileRef.current.index + 1)\n ]);\n\n editFileRef.current = null;\n };\n };\n\n return (\n <Bind>\n {bind => {\n const { onChange, validation } = bind;\n\n // We need to make sure the value is an array, since this is a multi-value component.\n const values: string[] = (\n Array.isArray(bind.value) ? bind.value : [bind.value]\n ).filter(Boolean);\n\n return (\n <Bind.ValidationContainer>\n <EditFileUsingUrl onSetFile={onSetFile(bind)}>\n {({ editFile }) => (\n <FileManager\n multiple\n images={imagesOnly}\n render={({ showFileManager }) => {\n const selectFiles = (index = -1) => {\n showFileManager(files => {\n const urls = files.map(f => f.src);\n if (index === -1) {\n onChange([...values, ...urls]);\n } else {\n onChange([\n ...values.slice(0, index),\n ...urls,\n ...values.slice(index + 1)\n ]);\n }\n });\n };\n return (\n <MultiFilePicker\n {...bind}\n disabled={disabled}\n label={field.label}\n validation={validation}\n description={field.description}\n note={getSupportedExtensionsLabelHint(imagesOnly)}\n values={values}\n onSelectItem={() => selectFiles()}\n onReplaceItem={(_, index) => selectFiles(index)}\n onRemoveItem={(_, index) =>\n onChange(dotProp.delete(values, index))\n }\n onEditItem={(value, index) => {\n if (!value) {\n return;\n }\n\n editFileRef.current = {\n index,\n url: value.url\n };\n\n editFile(value.url);\n }}\n placeholder={field.placeholder}\n type={\"compact\"}\n data-testid={`fr.input.filefields.${field.label}`}\n />\n );\n }}\n />\n )}\n </EditFileUsingUrl>\n </Bind.ValidationContainer>\n );\n }}\n </Bind>\n );\n};\n\nexport const multipleFiles: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-files\",\n renderer: {\n rendererName: \"file-inputs\",\n name: t`File Inputs`,\n description: t`Enables selecting multiple files via File Manager.`,\n canUse({ field }) {\n return field.type === \"file\" && !!field.list;\n },\n render(props) {\n return <FieldRenderer {...props} />;\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useRef","dotProp","i18n","FileManager","getSupportedExtensionsLabelHint","EditFileUsingUrl","MultiFilePicker","useFieldEffectiveRules","useModelField","t","ns","FieldRenderer","getBind","field","rules","disabled","canEdit","Bind","editFileRef","imagesOnly","settings","onSetFile","bind","file","current","newValue","value","onChange","slice","index","src","createElement","validation","values","Array","isArray","filter","Boolean","ValidationContainer","editFile","multiple","images","render","showFileManager","selectFiles","files","urls","map","f","Object","assign","label","description","note","onSelectItem","onReplaceItem","_","onRemoveItem","delete","onEditItem","url","placeholder","type","multipleFiles","name","renderer","rendererName","canUse","list","props"],"sources":["fileFields.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport dotProp from \"dot-prop-immutable\";\nimport type {\n BindComponentRenderProp,\n CmsModelFieldRendererPlugin,\n CmsModelFieldRendererProps\n} from \"@webiny/app-headless-cms/types.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { FileManager } from \"@webiny/app-admin\";\nimport { getSupportedExtensionsLabelHint } from \"./utils.js\";\nimport { EditFileUsingUrl } from \"~/components/EditFileUsingUrl/index.js\";\nimport type { FileItem } from \"~/types.js\";\nimport { MultiFilePicker } from \"@webiny/admin-ui\";\nimport { useFieldEffectiveRules, useModelField } from \"@webiny/app-headless-cms-common\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/file\");\n\ninterface EditFileRef {\n index: number;\n url: string;\n}\n\nconst FieldRenderer = ({ getBind }: CmsModelFieldRendererProps) => {\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n const Bind = getBind();\n const editFileRef = useRef<EditFileRef | null>(null);\n\n const imagesOnly = field.settings && field.settings.imagesOnly;\n\n const onSetFile = (bind: BindComponentRenderProp) => {\n return (file: FileItem) => {\n if (!editFileRef.current) {\n return;\n }\n\n const newValue = [...bind.value];\n bind.onChange([\n ...newValue.slice(0, editFileRef.current.index),\n file.src,\n ...newValue.slice(editFileRef.current.index + 1)\n ]);\n\n editFileRef.current = null;\n };\n };\n\n return (\n <Bind>\n {bind => {\n const { onChange, validation } = bind;\n\n // We need to make sure the value is an array, since this is a multi-value component.\n const values: string[] = (\n Array.isArray(bind.value) ? bind.value : [bind.value]\n ).filter(Boolean);\n\n return (\n <Bind.ValidationContainer>\n <EditFileUsingUrl onSetFile={onSetFile(bind)}>\n {({ editFile }) => (\n <FileManager\n multiple\n images={imagesOnly}\n render={({ showFileManager }) => {\n const selectFiles = (index = -1) => {\n showFileManager(files => {\n const urls = files.map(f => f.src);\n if (index === -1) {\n onChange([...values, ...urls]);\n } else {\n onChange([\n ...values.slice(0, index),\n ...urls,\n ...values.slice(index + 1)\n ]);\n }\n });\n };\n return (\n <MultiFilePicker\n {...bind}\n disabled={disabled}\n label={field.label}\n validation={validation}\n description={field.description}\n note={getSupportedExtensionsLabelHint(imagesOnly)}\n values={values}\n onSelectItem={() => selectFiles()}\n onReplaceItem={(_, index) => selectFiles(index)}\n onRemoveItem={(_, index) =>\n onChange(dotProp.delete(values, index))\n }\n onEditItem={(value, index) => {\n if (!value) {\n return;\n }\n\n editFileRef.current = {\n index,\n url: value.url\n };\n\n editFile(value.url);\n }}\n placeholder={field.placeholder}\n type={\"compact\"}\n data-testid={`fr.input.filefields.${field.label}`}\n />\n );\n }}\n />\n )}\n </EditFileUsingUrl>\n </Bind.ValidationContainer>\n );\n }}\n </Bind>\n );\n};\n\nexport const multipleFiles: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-files\",\n renderer: {\n rendererName: \"file-inputs\",\n name: t`File Inputs`,\n description: t`Enables selecting multiple files via File Manager.`,\n canUse({ field }) {\n return field.type === \"file\" && !!field.list;\n },\n render(props) {\n return <FieldRenderer {...props} />;\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-file-manager",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
"@apollo/react-components": "3.1.5",
|
|
15
15
|
"@apollo/react-hooks": "3.1.5",
|
|
16
16
|
"@types/react": "18.2.79",
|
|
17
|
-
"@webiny/admin-ui": "6.0.0-rc.
|
|
18
|
-
"@webiny/app": "6.0.0-rc.
|
|
19
|
-
"@webiny/app-aco": "6.0.0-rc.
|
|
20
|
-
"@webiny/app-admin": "6.0.0-rc.
|
|
21
|
-
"@webiny/app-headless-cms": "6.0.0-rc.
|
|
22
|
-
"@webiny/app-headless-cms-common": "6.0.0-rc.
|
|
23
|
-
"@webiny/app-websockets": "6.0.0-rc.
|
|
24
|
-
"@webiny/error": "6.0.0-rc.
|
|
25
|
-
"@webiny/form": "6.0.0-rc.
|
|
26
|
-
"@webiny/icons": "6.0.0-rc.
|
|
27
|
-
"@webiny/plugins": "6.0.0-rc.
|
|
28
|
-
"@webiny/react-composition": "6.0.0-rc.
|
|
29
|
-
"@webiny/react-properties": "6.0.0-rc.
|
|
30
|
-
"@webiny/utils": "6.0.0-rc.
|
|
31
|
-
"@webiny/validation": "6.0.0-rc.
|
|
17
|
+
"@webiny/admin-ui": "6.0.0-rc.5",
|
|
18
|
+
"@webiny/app": "6.0.0-rc.5",
|
|
19
|
+
"@webiny/app-aco": "6.0.0-rc.5",
|
|
20
|
+
"@webiny/app-admin": "6.0.0-rc.5",
|
|
21
|
+
"@webiny/app-headless-cms": "6.0.0-rc.5",
|
|
22
|
+
"@webiny/app-headless-cms-common": "6.0.0-rc.5",
|
|
23
|
+
"@webiny/app-websockets": "6.0.0-rc.5",
|
|
24
|
+
"@webiny/error": "6.0.0-rc.5",
|
|
25
|
+
"@webiny/form": "6.0.0-rc.5",
|
|
26
|
+
"@webiny/icons": "6.0.0-rc.5",
|
|
27
|
+
"@webiny/plugins": "6.0.0-rc.5",
|
|
28
|
+
"@webiny/react-composition": "6.0.0-rc.5",
|
|
29
|
+
"@webiny/react-properties": "6.0.0-rc.5",
|
|
30
|
+
"@webiny/utils": "6.0.0-rc.5",
|
|
31
|
+
"@webiny/validation": "6.0.0-rc.5",
|
|
32
32
|
"apollo-cache": "1.3.5",
|
|
33
33
|
"apollo-client": "2.6.10",
|
|
34
34
|
"apollo-link": "1.2.14",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@svgr/webpack": "6.5.1",
|
|
60
|
-
"@webiny/build-tools": "6.0.0-rc.
|
|
60
|
+
"@webiny/build-tools": "6.0.0-rc.5",
|
|
61
61
|
"rimraf": "6.1.3",
|
|
62
62
|
"typescript": "5.9.3",
|
|
63
63
|
"vitest": "4.0.18"
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"access": "public",
|
|
67
67
|
"directory": "dist"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "8f9b60f1193682a21e037e6f771b19f1dfd65045"
|
|
70
70
|
}
|