@webiny/app-file-manager 6.0.0-rc.1 → 6.0.0-rc.3

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.
@@ -27,22 +27,21 @@ export const LeftSidebar = ({
27
27
  }
28
28
  }, [currentFolder]);
29
29
  return /*#__PURE__*/React.createElement("div", {
30
- className: "overflow-auto",
31
- style: {
32
- height: "calc(100vh - 69px)"
33
- }
30
+ className: "flex flex-col h-main-content"
34
31
  }, /*#__PURE__*/React.createElement("div", {
35
- className: "p-sm"
32
+ className: "py-sm px-md"
36
33
  }, /*#__PURE__*/React.createElement(Heading, {
37
34
  level: 5
38
- }, "File Manager")), /*#__PURE__*/React.createElement(Separator, null), /*#__PURE__*/React.createElement(FolderTree, {
35
+ }, "File Manager")), /*#__PURE__*/React.createElement(Separator, null), /*#__PURE__*/React.createElement("div", {
36
+ className: "flex-1 overflow-y-scroll"
37
+ }, /*#__PURE__*/React.createElement(FolderTree, {
39
38
  folderActions: browser.folder.actions,
40
39
  dropConfirmation: browser.folder.dropConfirmation,
41
40
  focusedFolderId: currentFolder,
42
41
  onFolderClick: data => onFolderClick(data.id),
43
42
  enableActions: true,
44
43
  enableCreate: true
45
- }), children ? /*#__PURE__*/React.createElement(Separator, null) : null, children);
44
+ })), children ? /*#__PURE__*/React.createElement(Separator, null) : null, children);
46
45
  };
47
46
 
48
47
  //# sourceMappingURL=LeftSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","Separator","FolderTree","useLoadFolderHierarchy","useListFoldersByParentIds","useFileManagerViewConfig","Heading","LeftSidebar","currentFolder","onFolderClick","children","browser","folders","loadFolderHierarchy","listFoldersByParentIds","length","createElement","className","style","height","level","folderActions","folder","actions","dropConfirmation","focusedFolderId","data","id","enableActions","enableCreate"],"sources":["LeftSidebar.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport { FolderTree, useLoadFolderHierarchy, useListFoldersByParentIds } from \"@webiny/app-aco\";\nimport { useFileManagerViewConfig } from \"~/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js\";\nimport { Heading } from \"@webiny/admin-ui\";\n\ninterface LeftSidebarProps {\n currentFolder: string;\n onFolderClick: (folderId: string) => void;\n children?: React.ReactNode;\n}\n\nexport const LeftSidebar = ({ currentFolder, onFolderClick, children }: LeftSidebarProps) => {\n const { browser } = useFileManagerViewConfig();\n const { folders, loadFolderHierarchy } = useLoadFolderHierarchy();\n const { listFoldersByParentIds } = useListFoldersByParentIds();\n\n useEffect(() => {\n if (folders.length === 0) {\n loadFolderHierarchy(currentFolder);\n } else {\n // Otherwise let's load only the current folder sub-tree\n listFoldersByParentIds([currentFolder]);\n }\n }, [currentFolder]);\n\n return (\n <div className={\"overflow-auto\"} style={{ height: \"calc(100vh - 69px)\" }}>\n <div className={\"p-sm\"}>\n <Heading level={5}>File Manager</Heading>\n </div>\n <Separator />\n <FolderTree\n folderActions={browser.folder.actions}\n dropConfirmation={browser.folder.dropConfirmation}\n focusedFolderId={currentFolder}\n onFolderClick={data => onFolderClick(data.id)}\n enableActions={true}\n enableCreate={true}\n />\n {children ? <Separator /> : null}\n {children}\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,UAAU,EAAEC,sBAAsB,EAAEC,yBAAyB,QAAQ,iBAAiB;AAC/F,SAASC,wBAAwB;AACjC,SAASC,OAAO,QAAQ,kBAAkB;AAQ1C,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAAEC,aAAa;EAAEC,aAAa;EAAEC;AAA2B,CAAC,KAAK;EACzF,MAAM;IAAEC;EAAQ,CAAC,GAAGN,wBAAwB,CAAC,CAAC;EAC9C,MAAM;IAAEO,OAAO;IAAEC;EAAoB,CAAC,GAAGV,sBAAsB,CAAC,CAAC;EACjE,MAAM;IAAEW;EAAuB,CAAC,GAAGV,yBAAyB,CAAC,CAAC;EAE9DJ,SAAS,CAAC,MAAM;IACZ,IAAIY,OAAO,CAACG,MAAM,KAAK,CAAC,EAAE;MACtBF,mBAAmB,CAACL,aAAa,CAAC;IACtC,CAAC,MAAM;MACH;MACAM,sBAAsB,CAAC,CAACN,aAAa,CAAC,CAAC;IAC3C;EACJ,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,oBACIT,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE,eAAgB;IAACC,KAAK,EAAE;MAAEC,MAAM,EAAE;IAAqB;EAAE,gBACrEpB,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAAO,gBACnBlB,KAAA,CAAAiB,aAAA,CAACV,OAAO;IAACc,KAAK,EAAE;EAAE,GAAC,cAAqB,CACvC,CAAC,eACNrB,KAAA,CAAAiB,aAAA,CAACf,SAAS,MAAE,CAAC,eACbF,KAAA,CAAAiB,aAAA,CAACd,UAAU;IACPmB,aAAa,EAAEV,OAAO,CAACW,MAAM,CAACC,OAAQ;IACtCC,gBAAgB,EAAEb,OAAO,CAACW,MAAM,CAACE,gBAAiB;IAClDC,eAAe,EAAEjB,aAAc;IAC/BC,aAAa,EAAEiB,IAAI,IAAIjB,aAAa,CAACiB,IAAI,CAACC,EAAE,CAAE;IAC9CC,aAAa,EAAE,IAAK;IACpBC,YAAY,EAAE;EAAK,CACtB,CAAC,EACDnB,QAAQ,gBAAGX,KAAA,CAAAiB,aAAA,CAACf,SAAS,MAAE,CAAC,GAAG,IAAI,EAC/BS,QACA,CAAC;AAEd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","Separator","FolderTree","useLoadFolderHierarchy","useListFoldersByParentIds","useFileManagerViewConfig","Heading","LeftSidebar","currentFolder","onFolderClick","children","browser","folders","loadFolderHierarchy","listFoldersByParentIds","length","createElement","className","level","folderActions","folder","actions","dropConfirmation","focusedFolderId","data","id","enableActions","enableCreate"],"sources":["LeftSidebar.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport { FolderTree, useLoadFolderHierarchy, useListFoldersByParentIds } from \"@webiny/app-aco\";\nimport { useFileManagerViewConfig } from \"~/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js\";\nimport { Heading } from \"@webiny/admin-ui\";\n\ninterface LeftSidebarProps {\n currentFolder: string;\n onFolderClick: (folderId: string) => void;\n children?: React.ReactNode;\n}\n\nexport const LeftSidebar = ({ currentFolder, onFolderClick, children }: LeftSidebarProps) => {\n const { browser } = useFileManagerViewConfig();\n const { folders, loadFolderHierarchy } = useLoadFolderHierarchy();\n const { listFoldersByParentIds } = useListFoldersByParentIds();\n\n useEffect(() => {\n if (folders.length === 0) {\n loadFolderHierarchy(currentFolder);\n } else {\n // Otherwise let's load only the current folder sub-tree\n listFoldersByParentIds([currentFolder]);\n }\n }, [currentFolder]);\n\n return (\n <div className={\"flex flex-col h-main-content\"}>\n <div className={\"py-sm px-md\"}>\n <Heading level={5}>File Manager</Heading>\n </div>\n <Separator />\n <div className={\"flex-1 overflow-y-scroll\"}>\n <FolderTree\n folderActions={browser.folder.actions}\n dropConfirmation={browser.folder.dropConfirmation}\n focusedFolderId={currentFolder}\n onFolderClick={data => onFolderClick(data.id)}\n enableActions={true}\n enableCreate={true}\n />\n </div>\n {children ? <Separator /> : null}\n {children}\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,UAAU,EAAEC,sBAAsB,EAAEC,yBAAyB,QAAQ,iBAAiB;AAC/F,SAASC,wBAAwB;AACjC,SAASC,OAAO,QAAQ,kBAAkB;AAQ1C,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAAEC,aAAa;EAAEC,aAAa;EAAEC;AAA2B,CAAC,KAAK;EACzF,MAAM;IAAEC;EAAQ,CAAC,GAAGN,wBAAwB,CAAC,CAAC;EAC9C,MAAM;IAAEO,OAAO;IAAEC;EAAoB,CAAC,GAAGV,sBAAsB,CAAC,CAAC;EACjE,MAAM;IAAEW;EAAuB,CAAC,GAAGV,yBAAyB,CAAC,CAAC;EAE9DJ,SAAS,CAAC,MAAM;IACZ,IAAIY,OAAO,CAACG,MAAM,KAAK,CAAC,EAAE;MACtBF,mBAAmB,CAACL,aAAa,CAAC;IACtC,CAAC,MAAM;MACH;MACAM,sBAAsB,CAAC,CAACN,aAAa,CAAC,CAAC;IAC3C;EACJ,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,oBACIT,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAA+B,gBAC3ClB,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAAc,gBAC1BlB,KAAA,CAAAiB,aAAA,CAACV,OAAO;IAACY,KAAK,EAAE;EAAE,GAAC,cAAqB,CACvC,CAAC,eACNnB,KAAA,CAAAiB,aAAA,CAACf,SAAS,MAAE,CAAC,eACbF,KAAA,CAAAiB,aAAA;IAAKC,SAAS,EAAE;EAA2B,gBACvClB,KAAA,CAAAiB,aAAA,CAACd,UAAU;IACPiB,aAAa,EAAER,OAAO,CAACS,MAAM,CAACC,OAAQ;IACtCC,gBAAgB,EAAEX,OAAO,CAACS,MAAM,CAACE,gBAAiB;IAClDC,eAAe,EAAEf,aAAc;IAC/BC,aAAa,EAAEe,IAAI,IAAIf,aAAa,CAACe,IAAI,CAACC,EAAE,CAAE;IAC9CC,aAAa,EAAE,IAAK;IACpBC,YAAY,EAAE;EAAK,CACtB,CACA,CAAC,EACLjB,QAAQ,gBAAGX,KAAA,CAAAiB,aAAA,CAACf,SAAS,MAAE,CAAC,GAAG,IAAI,EAC/BS,QACA,CAAC;AAEd,CAAC","ignoreList":[]}
@@ -1,12 +1,17 @@
1
1
  import React from "react";
2
2
  import { FileManager } from "@webiny/app-admin";
3
- import { EditFileUsingUrl } from "../../../components/EditFileUsingUrl/index.js";
3
+ import { useEffectiveRules, useModelField } from "@webiny/app-headless-cms-common";
4
4
  import { FilePicker } from "@webiny/admin-ui";
5
+ import { EditFileUsingUrl } from "../../../components/EditFileUsingUrl/index.js";
5
6
  import { getSupportedExtensionsLabelHint } from "./utils.js";
6
7
  const FieldRenderer = ({
7
- field,
8
8
  getBind
9
9
  }) => {
10
+ const {
11
+ field
12
+ } = useModelField();
13
+ const rules = useEffectiveRules(field);
14
+ const disabled = !rules.canEdit || rules.disabled;
10
15
  const Bind = getBind();
11
16
  const imagesOnly = field.settings && field.settings.imagesOnly;
12
17
  return /*#__PURE__*/React.createElement(Bind, null, bind => {
@@ -25,6 +30,7 @@ const FieldRenderer = ({
25
30
  showFileManager
26
31
  }) => {
27
32
  return /*#__PURE__*/React.createElement(FilePicker, Object.assign({}, bind, {
33
+ disabled: disabled,
28
34
  label: field.label,
29
35
  validation: validation,
30
36
  description: field.description,
@@ -1 +1 @@
1
- {"version":3,"names":["React","FileManager","EditFileUsingUrl","FilePicker","getSupportedExtensionsLabelHint","FieldRenderer","field","getBind","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 { EditFileUsingUrl } from \"~/components/EditFileUsingUrl/index.js\";\nimport { FilePicker } from \"@webiny/admin-ui\";\nimport { getSupportedExtensionsLabelHint } from \"~/modules/HeadlessCms/fileRenderer/utils.js\";\n\nconst FieldRenderer = ({ field, getBind }: CmsModelFieldRendererProps) => {\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 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,gBAAgB;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,+BAA+B;AAExC,MAAMC,aAAa,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAoC,CAAC,KAAK;EACtE,MAAMC,IAAI,GAAGD,OAAO,CAAC,CAAC;EAEtB,MAAME,UAAU,GAAGH,KAAK,CAACI,QAAQ,IAAIJ,KAAK,CAACI,QAAQ,CAACD,UAAU;EAE9D,oBACIT,KAAA,CAAAW,aAAA,CAACH,IAAI,QACAI,IAAI,IAAI;IACL,MAAM;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAW,CAAC,GAAGH,IAAI;IAE5C,oBACIZ,KAAA,CAAAW,aAAA,CAACH,IAAI,CAACQ,mBAAmB,qBACrBhB,KAAA,CAAAW,aAAA,CAACT,gBAAgB;MAACe,SAAS,EAAEC,IAAI,IAAIN,IAAI,CAACE,QAAQ,CAACI,IAAI,CAACC,GAAG;IAAE,GACxD,CAAC;MAAEC;IAAS,CAAC,kBACVpB,KAAA,CAAAW,aAAA,CAACV,WAAW;MACRoB,MAAM,EAAEZ,UAAW;MACnBa,MAAM,EAAEA,CAAC;QAAEC;MAAgB,CAAC,KAAK;QAC7B,oBACIvB,KAAA,CAAAW,aAAA,CAACR,UAAU,EAAAqB,MAAA,CAAAC,MAAA,KACHb,IAAI;UACRc,KAAK,EAAEpB,KAAK,CAACoB,KAAM;UACnBX,UAAU,EAAEA,UAAW;UACvBY,WAAW,EAAErB,KAAK,CAACqB,WAAY;UAC/BC,IAAI,EAAEtB,KAAK,CAACuB,IAAK;UACjBC,IAAI,EAAE1B,+BAA+B,CAACK,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,EAAE5B,KAAK,CAAC4B,WAAY;UAC/BC,IAAI,EAAE,SAAU;UAChB,eAAa,sBAAsB7B,KAAK,CAACoB,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;MAAElC;IAAM,CAAC,EAAE;MACd,OAAOA,KAAK,CAAC6B,IAAI,KAAK,MAAM,IAAI,CAAC7B,KAAK,CAACmC,IAAI;IAC/C,CAAC;IACDnB,MAAMA,CAACoB,MAAM,EAAE;MACX,oBAAO1C,KAAA,CAAAW,aAAA,CAACN,aAAa,EAAKqC,MAAS,CAAC;IACxC;EACJ;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","FileManager","useEffectiveRules","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 { useEffectiveRules, 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 = useEffectiveRules(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,iBAAiB,EAAEC,aAAa,QAAQ,iCAAiC;AAClF,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,iBAAiB,CAACO,KAAK,CAAC;EACtC,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,11 +5,16 @@ 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 { useEffectiveRules, useModelField } from "@webiny/app-headless-cms-common";
8
9
  const t = i18n.ns("app-headless-cms/admin/fields/file");
9
10
  const FieldRenderer = ({
10
- getBind,
11
- field
11
+ getBind
12
12
  }) => {
13
+ const {
14
+ field
15
+ } = useModelField();
16
+ const rules = useEffectiveRules(field);
17
+ const disabled = !rules.canEdit || rules.disabled;
13
18
  const Bind = getBind();
14
19
  const editFileRef = useRef(null);
15
20
  const imagesOnly = field.settings && field.settings.imagesOnly;
@@ -52,6 +57,7 @@ const FieldRenderer = ({
52
57
  });
53
58
  };
54
59
  return /*#__PURE__*/React.createElement(MultiFilePicker, Object.assign({}, bind, {
60
+ disabled: disabled,
55
61
  label: field.label,
56
62
  validation: validation,
57
63
  description: field.description,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","dotProp","i18n","FileManager","getSupportedExtensionsLabelHint","EditFileUsingUrl","MultiFilePicker","t","ns","FieldRenderer","getBind","field","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\";\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, field }: CmsModelFieldRendererProps) => {\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 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","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":[]}
@@ -12,9 +12,7 @@ export const SecurityPermissions = () => {
12
12
  icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
13
13
  schema: {
14
14
  prefix: "fm",
15
- fullAccess: {
16
- name: "fm.*"
17
- },
15
+ fullAccess: true,
18
16
  entities: [{
19
17
  id: "file",
20
18
  title: "File",
@@ -1 +1 @@
1
- {"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","Security","SecurityPermissions","createElement","Permissions","name","title","description","icon","schema","prefix","fullAccess","entities","id","scopes","permission","actions"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/folder_open.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"file-manager\"\n title=\"File Manager\"\n description=\"Manage File Manager permissions.\"\n icon={<PermissionsIcon />}\n schema={{\n prefix: \"fm\",\n fullAccess: { name: \"fm.*\" },\n entities: [\n {\n id: \"file\",\n title: \"File\",\n scopes: [\"full\", \"own\"],\n permission: \"fm.file\",\n actions: [\n {\n name: \"rwd\"\n }\n ]\n },\n {\n id: \"settings\",\n title: \"Settings\",\n scopes: [\"full\"],\n permission: \"fm.settings\"\n }\n ]\n }}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,+BAA+B;AAEjF,MAAM;EAAEC;AAAS,CAAC,GAAGH,WAAW;AAEhC,OAAO,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EACrC,oBACIL,KAAA,CAAAM,aAAA,CAACL,WAAW,qBACRD,KAAA,CAAAM,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,cAAc;IACnBC,KAAK,EAAC,cAAc;IACpBC,WAAW,EAAC,kCAAkC;IAC9CC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACH,eAAe,MAAE,CAAE;IAC1BS,MAAM,EAAE;MACJC,MAAM,EAAE,IAAI;MACZC,UAAU,EAAE;QAAEN,IAAI,EAAE;MAAO,CAAC;MAC5BO,QAAQ,EAAE,CACN;QACIC,EAAE,EAAE,MAAM;QACVP,KAAK,EAAE,MAAM;QACbQ,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvBC,UAAU,EAAE,SAAS;QACrBC,OAAO,EAAE,CACL;UACIX,IAAI,EAAE;QACV,CAAC;MAET,CAAC,EACD;QACIQ,EAAE,EAAE,UAAU;QACdP,KAAK,EAAE,UAAU;QACjBQ,MAAM,EAAE,CAAC,MAAM,CAAC;QAChBC,UAAU,EAAE;MAChB,CAAC;IAET;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","Security","SecurityPermissions","createElement","Permissions","name","title","description","icon","schema","prefix","fullAccess","entities","id","scopes","permission","actions"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/folder_open.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"file-manager\"\n title=\"File Manager\"\n description=\"Manage File Manager permissions.\"\n icon={<PermissionsIcon />}\n schema={{\n prefix: \"fm\",\n fullAccess: true,\n entities: [\n {\n id: \"file\",\n title: \"File\",\n scopes: [\"full\", \"own\"],\n permission: \"fm.file\",\n actions: [\n {\n name: \"rwd\"\n }\n ]\n },\n {\n id: \"settings\",\n title: \"Settings\",\n scopes: [\"full\"],\n permission: \"fm.settings\"\n }\n ]\n }}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,+BAA+B;AAEjF,MAAM;EAAEC;AAAS,CAAC,GAAGH,WAAW;AAEhC,OAAO,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EACrC,oBACIL,KAAA,CAAAM,aAAA,CAACL,WAAW,qBACRD,KAAA,CAAAM,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,cAAc;IACnBC,KAAK,EAAC,cAAc;IACpBC,WAAW,EAAC,kCAAkC;IAC9CC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACH,eAAe,MAAE,CAAE;IAC1BS,MAAM,EAAE;MACJC,MAAM,EAAE,IAAI;MACZC,UAAU,EAAE,IAAI;MAChBC,QAAQ,EAAE,CACN;QACIC,EAAE,EAAE,MAAM;QACVP,KAAK,EAAE,MAAM;QACbQ,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvBC,UAAU,EAAE,SAAS;QACrBC,OAAO,EAAE,CACL;UACIX,IAAI,EAAE;QACV,CAAC;MAET,CAAC,EACD;QACIQ,EAAE,EAAE,UAAU;QACdP,KAAK,EAAE,UAAU;QACjBQ,MAAM,EAAE,CAAC,MAAM,CAAC;QAChBC,UAAU,EAAE;MAChB,CAAC;IAET;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-file-manager",
3
- "version": "6.0.0-rc.1",
3
+ "version": "6.0.0-rc.3",
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.1",
18
- "@webiny/app": "6.0.0-rc.1",
19
- "@webiny/app-aco": "6.0.0-rc.1",
20
- "@webiny/app-admin": "6.0.0-rc.1",
21
- "@webiny/app-headless-cms": "6.0.0-rc.1",
22
- "@webiny/app-headless-cms-common": "6.0.0-rc.1",
23
- "@webiny/app-websockets": "6.0.0-rc.1",
24
- "@webiny/error": "6.0.0-rc.1",
25
- "@webiny/form": "6.0.0-rc.1",
26
- "@webiny/icons": "6.0.0-rc.1",
27
- "@webiny/plugins": "6.0.0-rc.1",
28
- "@webiny/react-composition": "6.0.0-rc.1",
29
- "@webiny/react-properties": "6.0.0-rc.1",
30
- "@webiny/utils": "6.0.0-rc.1",
31
- "@webiny/validation": "6.0.0-rc.1",
17
+ "@webiny/admin-ui": "6.0.0-rc.3",
18
+ "@webiny/app": "6.0.0-rc.3",
19
+ "@webiny/app-aco": "6.0.0-rc.3",
20
+ "@webiny/app-admin": "6.0.0-rc.3",
21
+ "@webiny/app-headless-cms": "6.0.0-rc.3",
22
+ "@webiny/app-headless-cms-common": "6.0.0-rc.3",
23
+ "@webiny/app-websockets": "6.0.0-rc.3",
24
+ "@webiny/error": "6.0.0-rc.3",
25
+ "@webiny/form": "6.0.0-rc.3",
26
+ "@webiny/icons": "6.0.0-rc.3",
27
+ "@webiny/plugins": "6.0.0-rc.3",
28
+ "@webiny/react-composition": "6.0.0-rc.3",
29
+ "@webiny/react-properties": "6.0.0-rc.3",
30
+ "@webiny/utils": "6.0.0-rc.3",
31
+ "@webiny/validation": "6.0.0-rc.3",
32
32
  "apollo-cache": "1.3.5",
33
33
  "apollo-client": "2.6.10",
34
34
  "apollo-link": "1.2.14",
@@ -38,12 +38,12 @@
38
38
  "dataurl-to-blob": "0.0.1",
39
39
  "dayjs": "1.11.19",
40
40
  "dot-prop-immutable": "2.1.1",
41
- "graphql": "16.12.0",
41
+ "graphql": "16.13.0",
42
42
  "graphql-tag": "2.12.6",
43
43
  "load-script": "1.0.0",
44
44
  "lodash": "4.17.23",
45
45
  "mime": "3.0.0",
46
- "minimatch": "10.2.2",
46
+ "minimatch": "10.2.4",
47
47
  "mobx": "6.15.0",
48
48
  "mobx-react-lite": "3.4.3",
49
49
  "prop-types": "15.8.1",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "devDependencies": {
59
59
  "@svgr/webpack": "6.5.1",
60
- "@webiny/build-tools": "6.0.0-rc.1",
60
+ "@webiny/build-tools": "6.0.0-rc.3",
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": "36d702721ff9ed39fb21d6f5fe7922a2a8716e63"
69
+ "gitHead": "228fe25e1a17f248d566bce1c33d11c291955513"
70
70
  }