@webiny/app-admin 5.32.0 → 5.33.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/components/FileManager/FileManagerContext.d.ts +8 -2
  2. package/components/FileManager/FileManagerContext.js +2 -8
  3. package/components/FileManager/FileManagerContext.js.map +1 -1
  4. package/components/FileManager/FileManagerView.d.ts +4 -4
  5. package/components/FileManager/FileManagerView.js +6 -3
  6. package/components/FileManager/FileManagerView.js.map +1 -1
  7. package/components/FileManager/outputFileSelectionError.d.ts +2 -2
  8. package/components/FileManager/outputFileSelectionError.js +3 -3
  9. package/components/FileManager/outputFileSelectionError.js.map +1 -1
  10. package/components/FileManager/types.d.ts +3 -1
  11. package/components/FileManager/types.js.map +1 -1
  12. package/components/FileManager.d.ts +60 -19
  13. package/components/FileManager.js +88 -110
  14. package/components/FileManager.js.map +1 -1
  15. package/components/OverlayLayout/OverlayLayout.d.ts +1 -1
  16. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  17. package/components/OverlayLayout/index.d.ts +1 -1
  18. package/components/OverlayLayout/index.js +12 -7
  19. package/components/OverlayLayout/index.js.map +1 -1
  20. package/components/RichTextEditor/RichTextEditor.js +2 -2
  21. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  22. package/components/SingleImageUpload.d.ts +42 -6
  23. package/components/SingleImageUpload.js +68 -73
  24. package/components/SingleImageUpload.js.map +1 -1
  25. package/index.d.ts +4 -0
  26. package/index.js +50 -0
  27. package/index.js.map +1 -1
  28. package/package.json +16 -15
  29. package/plugins/fileManager/fileImage/DeleteAction.d.ts +2 -2
  30. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
  31. package/plugins/fileManager/fileImage/EditAction.js +2 -2
  32. package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
  33. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +9 -11
  34. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  35. package/ui/elements/form/FileManagerElement/styled.d.ts +3 -3
@@ -12,10 +12,16 @@ interface StateQueryParams {
12
12
  limit: number;
13
13
  sort: number;
14
14
  tags: string[];
15
- scope: string;
15
+ scope?: string;
16
16
  where: Record<string, any>;
17
17
  }
18
- declare const FileManagerProvider: React.FC;
18
+ export interface FileManagerProviderProps {
19
+ accept: string[];
20
+ tags: string[];
21
+ scope?: string;
22
+ own?: boolean;
23
+ }
24
+ declare const FileManagerProvider: React.FC<FileManagerProviderProps>;
19
25
  declare function useFileManager(): {
20
26
  selected: any;
21
27
  toggleSelected(file: FileItem): void;
@@ -136,12 +136,6 @@ var FileManagerProvider = function FileManagerProvider(_ref2) {
136
136
 
137
137
  var _useSecurity = (0, _appSecurity.useSecurity)(),
138
138
  identity = _useSecurity.identity;
139
- /**
140
- * TODO @ts-refactor
141
- * Figure out how to type the rest of the types.
142
- */
143
- // @ts-ignore
144
-
145
139
 
146
140
  var _React$useReducer = _react.default.useReducer(fileManagerReducer, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
147
141
  identity: identity
@@ -157,9 +151,9 @@ var FileManagerProvider = function FileManagerProvider(_ref2) {
157
151
  };
158
152
  }, [state]);
159
153
 
160
- return /*#__PURE__*/_react.default.createElement(FileManagerContext.Provider, Object.assign({
154
+ return /*#__PURE__*/_react.default.createElement(FileManagerContext.Provider, {
161
155
  value: value
162
- }, props), children);
156
+ }, children);
163
157
  };
164
158
 
165
159
  exports.FileManagerProvider = FileManagerProvider;
@@ -1 +1 @@
1
- {"version":3,"names":["ListFilesSort","DEFAULT_SCOPE","getWhere","scope","tag_not_startsWith","tag_startsWith","init","accept","tags","own","identity","initialWhere","createdBy","id","showingFileDetails","selected","hasPreviouslyUploadedFiles","queryParams","types","limit","sort","CREATED_ON_DESC","where","dragging","uploading","fileManagerReducer","state","action","next","type","existingIndex","findIndex","item","src","file","push","splice","FileManagerContext","React","createContext","FileManagerProvider","children","props","useSecurity","useReducer","dispatch","value","useMemo","useFileManager","context","useContext","Error","toggleSelected","setHasPreviouslyUploadedFiles","setQueryParams","setDragging","setUploading","showFileDetails","hideFileDetails"],"sources":["FileManagerContext.tsx"],"sourcesContent":["import React from \"react\";\nimport { FileItem } from \"./types\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nenum ListFilesSort {\n CREATED_ON_ASC,\n CREATED_ON_DESC,\n SIZE_ASC,\n SIZE_DESC\n}\n\nconst DEFAULT_SCOPE = \"scope:\";\n\nexport const getWhere = (scope: string | undefined) => {\n if (!scope) {\n return {\n tag_not_startsWith: DEFAULT_SCOPE\n };\n }\n return {\n tag_startsWith: scope\n };\n};\n\ninterface InitParams {\n accept: string[];\n tags: string[];\n scope: string;\n own: boolean;\n identity: any;\n}\ninterface StateQueryParams {\n types: string[];\n limit: number;\n sort: number;\n tags: string[];\n scope: string;\n where: Record<string, any>;\n}\ninterface State {\n showingFileDetails: string | null;\n selected: FileItem[];\n hasPreviouslyUploadedFiles: boolean | null;\n queryParams: StateQueryParams;\n dragging: boolean;\n uploading: boolean;\n}\nconst init = ({ accept, tags, scope, own, identity }: InitParams): State => {\n const initialWhere = own ? { createdBy: identity.id } : {};\n return {\n showingFileDetails: null,\n selected: [],\n hasPreviouslyUploadedFiles: null,\n queryParams: {\n scope,\n tags,\n types: accept,\n limit: 50,\n sort: ListFilesSort.CREATED_ON_DESC,\n where: { ...initialWhere, ...getWhere(scope) }\n },\n dragging: false,\n uploading: false\n };\n};\n\ninterface Action {\n type:\n | \"toggleSelected\"\n | \"queryParams\"\n | \"showFileDetails\"\n | \"dragging\"\n | \"hasPreviouslyUploadedFiles\"\n | \"uploading\";\n file: FileItem;\n queryParams: StateQueryParams;\n src: string;\n state: boolean;\n hasPreviouslyUploadedFiles: boolean;\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\n\nconst fileManagerReducer: Reducer = (state: State, action) => {\n const next: State = {\n ...state\n };\n switch (action.type) {\n case \"toggleSelected\": {\n const existingIndex = state.selected.findIndex(item => item.src === action.file.src);\n if (existingIndex < 0) {\n next.selected.push(action.file);\n } else {\n next.selected.splice(existingIndex, 1);\n }\n break;\n }\n case \"queryParams\": {\n next.selected = [];\n next.queryParams = {\n ...state.queryParams,\n ...action.queryParams,\n types: state.queryParams.types,\n limit: 40,\n sort: ListFilesSort.CREATED_ON_DESC\n };\n break;\n }\n case \"showFileDetails\": {\n next.showingFileDetails = action.src;\n break;\n }\n case \"dragging\": {\n next.dragging = action.state;\n break;\n }\n case \"hasPreviouslyUploadedFiles\": {\n next.hasPreviouslyUploadedFiles = action.hasPreviouslyUploadedFiles;\n break;\n }\n case \"uploading\": {\n next.uploading = action.state;\n break;\n }\n }\n\n return next;\n};\n\nconst FileManagerContext = React.createContext({});\n\nconst FileManagerProvider: React.FC = ({ children, ...props }) => {\n const { identity } = useSecurity();\n /**\n * TODO @ts-refactor\n * Figure out how to type the rest of the types.\n */\n // @ts-ignore\n const [state, dispatch] = React.useReducer(fileManagerReducer, { ...props, identity }, init);\n\n const value = React.useMemo(() => {\n return {\n state,\n dispatch\n };\n }, [state]);\n\n return (\n <FileManagerContext.Provider value={value} {...props}>\n {children}\n </FileManagerContext.Provider>\n );\n};\n\nfunction useFileManager() {\n const context: any = React.useContext(FileManagerContext);\n if (!context) {\n throw new Error(\"useFileManager must be used within a FileManagerProvider\");\n }\n\n const { state, dispatch } = context;\n return {\n selected: state.selected,\n toggleSelected(file: FileItem) {\n dispatch({\n type: \"toggleSelected\",\n file\n });\n },\n hasPreviouslyUploadedFiles: state.hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles(hasPreviouslyUploadedFiles: boolean) {\n dispatch({ type: \"hasPreviouslyUploadedFiles\", hasPreviouslyUploadedFiles });\n },\n queryParams: state.queryParams,\n setQueryParams(queryParams: StateQueryParams) {\n dispatch({ type: \"queryParams\", queryParams });\n },\n setDragging(state = true) {\n dispatch({\n type: \"dragging\",\n state\n });\n },\n dragging: state.dragging,\n setUploading(state = true) {\n dispatch({\n type: \"uploading\",\n state\n });\n },\n uploading: state.uploading,\n showFileDetails(src: string) {\n dispatch({ type: \"showFileDetails\", src });\n },\n hideFileDetails() {\n dispatch({ type: \"showFileDetails\", src: null });\n },\n showingFileDetails: state.showingFileDetails,\n state,\n dispatch\n };\n}\n\nexport { FileManagerProvider, useFileManager };\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;;AAEA;;;IAEKA,a;;WAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a;;AAOL,IAAMC,aAAa,GAAG,QAAtB;;AAEO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAA+B;EACnD,IAAI,CAACA,KAAL,EAAY;IACR,OAAO;MACHC,kBAAkB,EAAEH;IADjB,CAAP;EAGH;;EACD,OAAO;IACHI,cAAc,EAAEF;EADb,CAAP;AAGH,CATM;;;;AAkCP,IAAMG,IAAI,GAAG,SAAPA,IAAO,OAA+D;EAAA,IAA5DC,MAA4D,QAA5DA,MAA4D;EAAA,IAApDC,IAAoD,QAApDA,IAAoD;EAAA,IAA9CL,KAA8C,QAA9CA,KAA8C;EAAA,IAAvCM,GAAuC,QAAvCA,GAAuC;EAAA,IAAlCC,QAAkC,QAAlCA,QAAkC;EACxE,IAAMC,YAAY,GAAGF,GAAG,GAAG;IAAEG,SAAS,EAAEF,QAAQ,CAACG;EAAtB,CAAH,GAAgC,EAAxD;EACA,OAAO;IACHC,kBAAkB,EAAE,IADjB;IAEHC,QAAQ,EAAE,EAFP;IAGHC,0BAA0B,EAAE,IAHzB;IAIHC,WAAW,EAAE;MACTd,KAAK,EAALA,KADS;MAETK,IAAI,EAAJA,IAFS;MAGTU,KAAK,EAAEX,MAHE;MAITY,KAAK,EAAE,EAJE;MAKTC,IAAI,EAAEpB,aAAa,CAACqB,eALX;MAMTC,KAAK,8DAAOX,YAAP,GAAwBT,QAAQ,CAACC,KAAD,CAAhC;IANI,CAJV;IAYHoB,QAAQ,EAAE,KAZP;IAaHC,SAAS,EAAE;EAbR,CAAP;AAeH,CAjBD;;AAqCA,IAAMC,kBAA2B,GAAG,SAA9BA,kBAA8B,CAACC,KAAD,EAAeC,MAAf,EAA0B;EAC1D,IAAMC,IAAW,mCACVF,KADU,CAAjB;;EAGA,QAAQC,MAAM,CAACE,IAAf;IACI,KAAK,gBAAL;MAAuB;QACnB,IAAMC,aAAa,GAAGJ,KAAK,CAACX,QAAN,CAAegB,SAAf,CAAyB,UAAAC,IAAI;UAAA,OAAIA,IAAI,CAACC,GAAL,KAAaN,MAAM,CAACO,IAAP,CAAYD,GAA7B;QAAA,CAA7B,CAAtB;;QACA,IAAIH,aAAa,GAAG,CAApB,EAAuB;UACnBF,IAAI,CAACb,QAAL,CAAcoB,IAAd,CAAmBR,MAAM,CAACO,IAA1B;QACH,CAFD,MAEO;UACHN,IAAI,CAACb,QAAL,CAAcqB,MAAd,CAAqBN,aAArB,EAAoC,CAApC;QACH;;QACD;MACH;;IACD,KAAK,aAAL;MAAoB;QAChBF,IAAI,CAACb,QAAL,GAAgB,EAAhB;QACAa,IAAI,CAACX,WAAL,2FACOS,KAAK,CAACT,WADb,GAEOU,MAAM,CAACV,WAFd;UAGIC,KAAK,EAAEQ,KAAK,CAACT,WAAN,CAAkBC,KAH7B;UAIIC,KAAK,EAAE,EAJX;UAKIC,IAAI,EAAEpB,aAAa,CAACqB;QALxB;QAOA;MACH;;IACD,KAAK,iBAAL;MAAwB;QACpBO,IAAI,CAACd,kBAAL,GAA0Ba,MAAM,CAACM,GAAjC;QACA;MACH;;IACD,KAAK,UAAL;MAAiB;QACbL,IAAI,CAACL,QAAL,GAAgBI,MAAM,CAACD,KAAvB;QACA;MACH;;IACD,KAAK,4BAAL;MAAmC;QAC/BE,IAAI,CAACZ,0BAAL,GAAkCW,MAAM,CAACX,0BAAzC;QACA;MACH;;IACD,KAAK,WAAL;MAAkB;QACdY,IAAI,CAACJ,SAAL,GAAiBG,MAAM,CAACD,KAAxB;QACA;MACH;EApCL;;EAuCA,OAAOE,IAAP;AACH,CA5CD;;AA8CA,IAAMS,kBAAkB,gBAAGC,cAAA,CAAMC,aAAN,CAAoB,EAApB,CAA3B;;AAEA,IAAMC,mBAA6B,GAAG,SAAhCA,mBAAgC,QAA4B;EAAA,IAAzBC,QAAyB,SAAzBA,QAAyB;EAAA,IAAZC,KAAY;;EAC9D,mBAAqB,IAAAC,wBAAA,GAArB;EAAA,IAAQjC,QAAR,gBAAQA,QAAR;EACA;AACJ;AACA;AACA;EACI;;;EACA,wBAA0B4B,cAAA,CAAMM,UAAN,CAAiBnB,kBAAjB,8DAA0CiB,KAA1C;IAAiDhC,QAAQ,EAARA;EAAjD,IAA6DJ,IAA7D,CAA1B;EAAA;EAAA,IAAOoB,KAAP;EAAA,IAAcmB,QAAd;;EAEA,IAAMC,KAAK,GAAGR,cAAA,CAAMS,OAAN,CAAc,YAAM;IAC9B,OAAO;MACHrB,KAAK,EAALA,KADG;MAEHmB,QAAQ,EAARA;IAFG,CAAP;EAIH,CALa,EAKX,CAACnB,KAAD,CALW,CAAd;;EAOA,oBACI,6BAAC,kBAAD,CAAoB,QAApB;IAA6B,KAAK,EAAEoB;EAApC,GAA+CJ,KAA/C,GACKD,QADL,CADJ;AAKH,CArBD;;;;AAuBA,SAASO,cAAT,GAA0B;EACtB,IAAMC,OAAY,GAAGX,cAAA,CAAMY,UAAN,CAAiBb,kBAAjB,CAArB;;EACA,IAAI,CAACY,OAAL,EAAc;IACV,MAAM,IAAIE,KAAJ,CAAU,0DAAV,CAAN;EACH;;EAED,IAAQzB,KAAR,GAA4BuB,OAA5B,CAAQvB,KAAR;EAAA,IAAemB,QAAf,GAA4BI,OAA5B,CAAeJ,QAAf;EACA,OAAO;IACH9B,QAAQ,EAAEW,KAAK,CAACX,QADb;IAEHqC,cAFG,0BAEYlB,IAFZ,EAE4B;MAC3BW,QAAQ,CAAC;QACLhB,IAAI,EAAE,gBADD;QAELK,IAAI,EAAJA;MAFK,CAAD,CAAR;IAIH,CAPE;IAQHlB,0BAA0B,EAAEU,KAAK,CAACV,0BAR/B;IASHqC,6BATG,yCAS2BrC,0BAT3B,EASgE;MAC/D6B,QAAQ,CAAC;QAAEhB,IAAI,EAAE,4BAAR;QAAsCb,0BAA0B,EAA1BA;MAAtC,CAAD,CAAR;IACH,CAXE;IAYHC,WAAW,EAAES,KAAK,CAACT,WAZhB;IAaHqC,cAbG,0BAaYrC,WAbZ,EAa2C;MAC1C4B,QAAQ,CAAC;QAAEhB,IAAI,EAAE,aAAR;QAAuBZ,WAAW,EAAXA;MAAvB,CAAD,CAAR;IACH,CAfE;IAgBHsC,WAhBG,yBAgBuB;MAAA,IAAd7B,KAAc,uEAAN,IAAM;MACtBmB,QAAQ,CAAC;QACLhB,IAAI,EAAE,UADD;QAELH,KAAK,EAALA;MAFK,CAAD,CAAR;IAIH,CArBE;IAsBHH,QAAQ,EAAEG,KAAK,CAACH,QAtBb;IAuBHiC,YAvBG,0BAuBwB;MAAA,IAAd9B,KAAc,uEAAN,IAAM;MACvBmB,QAAQ,CAAC;QACLhB,IAAI,EAAE,WADD;QAELH,KAAK,EAALA;MAFK,CAAD,CAAR;IAIH,CA5BE;IA6BHF,SAAS,EAAEE,KAAK,CAACF,SA7Bd;IA8BHiC,eA9BG,2BA8BaxB,GA9Bb,EA8B0B;MACzBY,QAAQ,CAAC;QAAEhB,IAAI,EAAE,iBAAR;QAA2BI,GAAG,EAAHA;MAA3B,CAAD,CAAR;IACH,CAhCE;IAiCHyB,eAjCG,6BAiCe;MACdb,QAAQ,CAAC;QAAEhB,IAAI,EAAE,iBAAR;QAA2BI,GAAG,EAAE;MAAhC,CAAD,CAAR;IACH,CAnCE;IAoCHnB,kBAAkB,EAAEY,KAAK,CAACZ,kBApCvB;IAqCHY,KAAK,EAALA,KArCG;IAsCHmB,QAAQ,EAARA;EAtCG,CAAP;AAwCH"}
1
+ {"version":3,"names":["ListFilesSort","DEFAULT_SCOPE","getWhere","scope","tag_not_startsWith","tag_startsWith","init","accept","tags","own","identity","initialWhere","createdBy","id","showingFileDetails","selected","hasPreviouslyUploadedFiles","queryParams","types","limit","sort","CREATED_ON_DESC","where","dragging","uploading","fileManagerReducer","state","action","next","type","existingIndex","findIndex","item","src","file","push","splice","FileManagerContext","React","createContext","FileManagerProvider","children","props","useSecurity","useReducer","dispatch","value","useMemo","useFileManager","context","useContext","Error","toggleSelected","setHasPreviouslyUploadedFiles","setQueryParams","setDragging","setUploading","showFileDetails","hideFileDetails"],"sources":["FileManagerContext.tsx"],"sourcesContent":["import React from \"react\";\nimport { FileItem } from \"./types\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nenum ListFilesSort {\n CREATED_ON_ASC,\n CREATED_ON_DESC,\n SIZE_ASC,\n SIZE_DESC\n}\n\nconst DEFAULT_SCOPE = \"scope:\";\n\nexport const getWhere = (scope: string | undefined) => {\n if (!scope) {\n return {\n tag_not_startsWith: DEFAULT_SCOPE\n };\n }\n return {\n tag_startsWith: scope\n };\n};\n\ninterface InitParams {\n accept: string[];\n tags: string[];\n scope?: string;\n own?: boolean;\n identity: any;\n}\n\ninterface StateQueryParams {\n types: string[];\n limit: number;\n sort: number;\n tags: string[];\n scope?: string;\n where: Record<string, any>;\n}\n\ninterface State {\n showingFileDetails: string | null;\n selected: FileItem[];\n hasPreviouslyUploadedFiles: boolean | null;\n queryParams: StateQueryParams;\n dragging: boolean;\n uploading: boolean;\n}\n\nconst init = ({ accept, tags, scope, own, identity }: InitParams): State => {\n const initialWhere = own ? { createdBy: identity.id } : {};\n return {\n showingFileDetails: null,\n selected: [],\n hasPreviouslyUploadedFiles: null,\n queryParams: {\n scope,\n tags,\n types: accept,\n limit: 50,\n sort: ListFilesSort.CREATED_ON_DESC,\n where: { ...initialWhere, ...getWhere(scope) }\n },\n dragging: false,\n uploading: false\n };\n};\n\ninterface Action {\n type:\n | \"toggleSelected\"\n | \"queryParams\"\n | \"showFileDetails\"\n | \"dragging\"\n | \"hasPreviouslyUploadedFiles\"\n | \"uploading\";\n file: FileItem;\n queryParams: StateQueryParams;\n src: string;\n state: boolean;\n hasPreviouslyUploadedFiles: boolean;\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\n\nconst fileManagerReducer: Reducer = (state: State, action) => {\n const next: State = {\n ...state\n };\n switch (action.type) {\n case \"toggleSelected\": {\n const existingIndex = state.selected.findIndex(item => item.src === action.file.src);\n if (existingIndex < 0) {\n next.selected.push(action.file);\n } else {\n next.selected.splice(existingIndex, 1);\n }\n break;\n }\n case \"queryParams\": {\n next.selected = [];\n next.queryParams = {\n ...state.queryParams,\n ...action.queryParams,\n types: state.queryParams.types,\n limit: 40,\n sort: ListFilesSort.CREATED_ON_DESC\n };\n break;\n }\n case \"showFileDetails\": {\n next.showingFileDetails = action.src;\n break;\n }\n case \"dragging\": {\n next.dragging = action.state;\n break;\n }\n case \"hasPreviouslyUploadedFiles\": {\n next.hasPreviouslyUploadedFiles = action.hasPreviouslyUploadedFiles;\n break;\n }\n case \"uploading\": {\n next.uploading = action.state;\n break;\n }\n }\n\n return next;\n};\n\nconst FileManagerContext = React.createContext({});\n\nexport interface FileManagerProviderProps {\n accept: string[];\n tags: string[];\n scope?: string;\n own?: boolean;\n}\n\nconst FileManagerProvider: React.FC<FileManagerProviderProps> = ({ children, ...props }) => {\n const { identity } = useSecurity();\n\n const [state, dispatch] = React.useReducer(fileManagerReducer, { ...props, identity }, init);\n\n const value = React.useMemo(() => {\n return {\n state,\n dispatch\n };\n }, [state]);\n\n return <FileManagerContext.Provider value={value}>{children}</FileManagerContext.Provider>;\n};\n\nfunction useFileManager() {\n const context: any = React.useContext(FileManagerContext);\n if (!context) {\n throw new Error(\"useFileManager must be used within a FileManagerProvider\");\n }\n\n const { state, dispatch } = context;\n return {\n selected: state.selected,\n toggleSelected(file: FileItem) {\n dispatch({\n type: \"toggleSelected\",\n file\n });\n },\n hasPreviouslyUploadedFiles: state.hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles(hasPreviouslyUploadedFiles: boolean) {\n dispatch({ type: \"hasPreviouslyUploadedFiles\", hasPreviouslyUploadedFiles });\n },\n queryParams: state.queryParams,\n setQueryParams(queryParams: StateQueryParams) {\n dispatch({ type: \"queryParams\", queryParams });\n },\n setDragging(state = true) {\n dispatch({\n type: \"dragging\",\n state\n });\n },\n dragging: state.dragging,\n setUploading(state = true) {\n dispatch({\n type: \"uploading\",\n state\n });\n },\n uploading: state.uploading,\n showFileDetails(src: string) {\n dispatch({ type: \"showFileDetails\", src });\n },\n hideFileDetails() {\n dispatch({ type: \"showFileDetails\", src: null });\n },\n showingFileDetails: state.showingFileDetails,\n state,\n dispatch\n };\n}\n\nexport { FileManagerProvider, useFileManager };\n"],"mappings":"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"}
@@ -4,11 +4,11 @@ export interface FileManagerViewProps {
4
4
  onChange?: Function;
5
5
  onClose?: Function;
6
6
  files?: FilesRules;
7
- multiple: boolean;
7
+ multiple?: boolean;
8
8
  accept: Array<string>;
9
- maxSize: number | string;
10
- multipleMaxCount: number;
11
- multipleMaxSize: number | string;
9
+ maxSize?: number | string;
10
+ multipleMaxCount?: number;
11
+ multipleMaxSize?: number | string;
12
12
  onUploadCompletion?: Function;
13
13
  tags?: string[];
14
14
  scope?: string;
@@ -47,7 +47,7 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
47
47
 
48
48
  var _getFileUploader = _interopRequireDefault(require("./getFileUploader"));
49
49
 
50
- var _outputFileSelectionError = _interopRequireDefault(require("./outputFileSelectionError"));
50
+ var _outputFileSelectionError = require("./outputFileSelectionError");
51
51
 
52
52
  var _DropFilesHere = _interopRequireDefault(require("./DropFilesHere"));
53
53
 
@@ -202,7 +202,8 @@ var FileManagerView = function FileManagerView(props) {
202
202
  var onClose = props.onClose,
203
203
  onChange = props.onChange,
204
204
  accept = props.accept,
205
- multiple = props.multiple,
205
+ _props$multiple = props.multiple,
206
+ multiple = _props$multiple === void 0 ? false : _props$multiple,
206
207
  maxSize = props.maxSize,
207
208
  multipleMaxCount = props.multipleMaxCount,
208
209
  multipleMaxSize = props.multipleMaxSize,
@@ -554,12 +555,14 @@ var FileManagerView = function FileManagerView(props) {
554
555
  }).filter(Boolean));
555
556
  },
556
557
  onError: function onError(errors) {
558
+ console.log("onError", errors);
557
559
  /**
558
560
  * TODO @ts-refactor
559
561
  * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
560
562
  */
561
563
  // @ts-ignore
562
- var message = (0, _outputFileSelectionError.default)(errors);
564
+
565
+ var message = (0, _outputFileSelectionError.outputFileSelectionError)(errors);
563
566
  showSnackbar(message);
564
567
  }
565
568
  }, function (_ref10) {
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","style","draggingFeedback","css","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","styled","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","useFileManager","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","useSnackbar","showSnackbar","useSecurity","identity","getPermission","useMemo","canCreate","own","rwd","includes","canEdit","useCallback","item","creatorId","get","identityId","login","searchOnChange","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","LIST_FILES","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","useHotkeys","keys","esc","searchInput","useRef","apolloClient","useApolloClient","gqlQuery","useQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","useMutation","CREATE_FILE","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","getFileUploader","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","GET_FILE_SETTINGS","settings","uploadMaxFileSize","filter","Boolean","outputFileSelectionError","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport outputFileSelectionError from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize: number | string;\n multipleMaxCount: number;\n multipleMaxSize: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(get(createFileResponse, \"data.fileManager.createFile.data\"));\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","style","draggingFeedback","css","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","styled","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","useFileManager","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","useSnackbar","showSnackbar","useSecurity","identity","getPermission","useMemo","canCreate","own","rwd","includes","canEdit","useCallback","item","creatorId","get","identityId","login","searchOnChange","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","LIST_FILES","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","useHotkeys","keys","esc","searchInput","useRef","apolloClient","useApolloClient","gqlQuery","useQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","useMutation","CREATE_FILE","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","getFileUploader","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","GET_FILE_SETTINGS","settings","uploadMaxFileSize","filter","Boolean","console","log","outputFileSelectionError","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple?: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple = false,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(get(createFileResponse, \"data.fileManager.createFile.data\"));\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n console.log(\"onError\", errors);\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"],"mappings":"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"}
@@ -3,5 +3,5 @@ interface FileError extends BaseFileError {
3
3
  multipleMaxCount: number;
4
4
  multipleMaxSize: number;
5
5
  }
6
- declare const _default: (errors: FileError[]) => string | null;
7
- export default _default;
6
+ export declare const outputFileSelectionError: (errors: FileError[]) => string | null;
7
+ export {};
@@ -5,11 +5,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.outputFileSelectionError = void 0;
9
9
 
10
10
  var _bytes = _interopRequireDefault(require("bytes"));
11
11
 
12
- var _default = function _default(errors) {
12
+ var outputFileSelectionError = function outputFileSelectionError(errors) {
13
13
  if (errors.length > 1) {
14
14
  var error = errors.find(function (error) {
15
15
  return error.type === "multipleMaxCountExceeded";
@@ -51,4 +51,4 @@ var _default = function _default(errors) {
51
51
  }
52
52
  };
53
53
 
54
- exports.default = _default;
54
+ exports.outputFileSelectionError = outputFileSelectionError;
@@ -1 +1 @@
1
- {"version":3,"names":["errors","length","error","find","type","multipleMaxCount","bytes","format","multipleMaxSize"],"sources":["outputFileSelectionError.ts"],"sourcesContent":["import bytes from \"bytes\";\nimport { FileError as BaseFileError } from \"react-butterfiles\";\n\ninterface FileError extends BaseFileError {\n multipleMaxCount: number;\n multipleMaxSize: number;\n}\n\nexport default (errors: FileError[]): string | null => {\n if (errors.length > 1) {\n let error = errors.find(error => error.type === \"multipleMaxCountExceeded\");\n if (error) {\n return `Cannot upload more than ${error.multipleMaxCount} files at once.`;\n }\n\n error = errors.find(error => error.type === \"multipleMaxSizeExceeded\");\n if (error) {\n return `Cannot upload more than ${bytes.format(error.multipleMaxSize)} at once.`;\n }\n\n return \"Multiple invalid files selected.\";\n }\n\n switch (errors[0].type) {\n case \"unsupportedFileType\":\n return \"Unsupported file type.\";\n case \"maxSizeExceeded\":\n return \"Max size exceeded.\";\n case \"multipleMaxCountExceeded\":\n return \"Multiple max files exceeded.\";\n case \"multipleMaxSizeExceeded\":\n return \"Multiple max size exceeded.\";\n case \"multipleNotAllowed\":\n return \"Only one file allowed.\";\n default:\n return null;\n }\n};\n"],"mappings":";;;;;;;;;AAAA;;eAQe,kBAACA,MAAD,EAAwC;EACnD,IAAIA,MAAM,CAACC,MAAP,GAAgB,CAApB,EAAuB;IACnB,IAAIC,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACE,IAAN,KAAe,0BAAnB;IAAA,CAAjB,CAAZ;;IACA,IAAIF,KAAJ,EAAW;MACP,yCAAkCA,KAAK,CAACG,gBAAxC;IACH;;IAEDH,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACE,IAAN,KAAe,yBAAnB;IAAA,CAAjB,CAAR;;IACA,IAAIF,KAAJ,EAAW;MACP,yCAAkCI,cAAA,CAAMC,MAAN,CAAaL,KAAK,CAACM,eAAnB,CAAlC;IACH;;IAED,OAAO,kCAAP;EACH;;EAED,QAAQR,MAAM,CAAC,CAAD,CAAN,CAAUI,IAAlB;IACI,KAAK,qBAAL;MACI,OAAO,wBAAP;;IACJ,KAAK,iBAAL;MACI,OAAO,oBAAP;;IACJ,KAAK,0BAAL;MACI,OAAO,8BAAP;;IACJ,KAAK,yBAAL;MACI,OAAO,6BAAP;;IACJ,KAAK,oBAAL;MACI,OAAO,wBAAP;;IACJ;MACI,OAAO,IAAP;EAZR;AAcH,C"}
1
+ {"version":3,"names":["outputFileSelectionError","errors","length","error","find","type","multipleMaxCount","bytes","format","multipleMaxSize"],"sources":["outputFileSelectionError.ts"],"sourcesContent":["import bytes from \"bytes\";\nimport { FileError as BaseFileError } from \"react-butterfiles\";\n\ninterface FileError extends BaseFileError {\n multipleMaxCount: number;\n multipleMaxSize: number;\n}\n\nexport const outputFileSelectionError = (errors: FileError[]): string | null => {\n if (errors.length > 1) {\n let error = errors.find(error => error.type === \"multipleMaxCountExceeded\");\n if (error) {\n return `Cannot upload more than ${error.multipleMaxCount} files at once.`;\n }\n\n error = errors.find(error => error.type === \"multipleMaxSizeExceeded\");\n if (error) {\n return `Cannot upload more than ${bytes.format(error.multipleMaxSize)} at once.`;\n }\n\n return \"Multiple invalid files selected.\";\n }\n\n switch (errors[0].type) {\n case \"unsupportedFileType\":\n return \"Unsupported file type.\";\n case \"maxSizeExceeded\":\n return \"Max size exceeded.\";\n case \"multipleMaxCountExceeded\":\n return \"Multiple max files exceeded.\";\n case \"multipleMaxSizeExceeded\":\n return \"Multiple max size exceeded.\";\n case \"multipleNotAllowed\":\n return \"Only one file allowed.\";\n default:\n return null;\n }\n};\n"],"mappings":";;;;;;;;;AAAA;;AAQO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,MAAD,EAAwC;EAC5E,IAAIA,MAAM,CAACC,MAAP,GAAgB,CAApB,EAAuB;IACnB,IAAIC,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACE,IAAN,KAAe,0BAAnB;IAAA,CAAjB,CAAZ;;IACA,IAAIF,KAAJ,EAAW;MACP,yCAAkCA,KAAK,CAACG,gBAAxC;IACH;;IAEDH,KAAK,GAAGF,MAAM,CAACG,IAAP,CAAY,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACE,IAAN,KAAe,yBAAnB;IAAA,CAAjB,CAAR;;IACA,IAAIF,KAAJ,EAAW;MACP,yCAAkCI,cAAA,CAAMC,MAAN,CAAaL,KAAK,CAACM,eAAnB,CAAlC;IACH;;IAED,OAAO,kCAAP;EACH;;EAED,QAAQR,MAAM,CAAC,CAAD,CAAN,CAAUI,IAAlB;IACI,KAAK,qBAAL;MACI,OAAO,wBAAP;;IACJ,KAAK,iBAAL;MACI,OAAO,oBAAP;;IACJ,KAAK,0BAAL;MACI,OAAO,8BAAP;;IACJ,KAAK,yBAAL;MACI,OAAO,6BAAP;;IACJ,KAAK,oBAAL;MACI,OAAO,wBAAP;;IACJ;MACI,OAAO,IAAP;EAZR;AAcH,CA7BM"}
@@ -1,4 +1,7 @@
1
1
  import { SecurityPermission } from "@webiny/app-security/types";
2
+ /**
3
+ * Represents a file as we receive from the GraphQL API.
4
+ */
2
5
  export interface FileItem {
3
6
  id: string;
4
7
  name: string;
@@ -11,7 +14,6 @@ export interface FileItem {
11
14
  createdBy: {
12
15
  id: string;
13
16
  };
14
- [key: string]: any;
15
17
  }
16
18
  export interface FileManagerSecurityPermission extends SecurityPermission {
17
19
  rwd?: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { SecurityPermission } from \"@webiny/app-security/types\";\n\nexport interface FileItem {\n id: string;\n name: string;\n key: string;\n src: string;\n size: number;\n type: string;\n tags: string[];\n createdOn: string;\n createdBy: {\n id: string;\n };\n [key: string]: any;\n}\n\nexport interface FileManagerSecurityPermission extends SecurityPermission {\n rwd?: string;\n own?: boolean;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { SecurityPermission } from \"@webiny/app-security/types\";\n\n/**\n * Represents a file as we receive from the GraphQL API.\n */\nexport interface FileItem {\n id: string;\n name: string;\n key: string;\n src: string;\n size: number;\n type: string;\n tags: string[];\n createdOn: string;\n createdBy: {\n id: string;\n };\n}\n\nexport interface FileManagerSecurityPermission extends SecurityPermission {\n rwd?: string;\n own?: boolean;\n}\n"],"mappings":""}
@@ -1,26 +1,67 @@
1
1
  import React from "react";
2
- import { FileItem } from "./FileManager/types";
3
- export interface ShowFileManagerCallable {
4
- (onChange?: (file?: FileItem | FileItem[]) => void): void;
2
+ interface OnChange<T> {
3
+ (value: T): void;
5
4
  }
6
- export interface FileManagerPropsChildren {
7
- showFileManager: ShowFileManagerCallable;
5
+ /**
6
+ * Represents a file object managed by the File Manager.
7
+ */
8
+ export interface FileManagerFileItem {
9
+ id: string;
10
+ src: string;
11
+ meta?: Array<FileManagerFileItemMetaItem>;
8
12
  }
9
- export interface FileManagerProps {
10
- onChange?: (files: FileItem[] | FileItem) => void;
11
- onChangePick?: string[];
12
- images?: boolean;
13
- multiple?: boolean;
14
- accept?: Array<string>;
15
- tags?: Array<string>;
16
- scope?: string;
17
- own?: boolean;
18
- children: (params: FileManagerPropsChildren) => React.ReactNode;
19
- maxSize?: number | string;
13
+ /**
14
+ * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.
15
+ */
16
+ export interface FileManagerFileItemMetaItem {
17
+ key: string;
18
+ value: any;
19
+ }
20
+ export declare type DeprecatedFileManagerRenderPropParams = {
21
+ showFileManager: (onChange?: OnChange<FileManagerFileItem | FileManagerFileItem[]>) => void;
22
+ };
23
+ export declare type FileManagerRenderPropParams<TValue> = {
24
+ showFileManager: (onChange?: OnChange<TValue>) => void;
25
+ };
26
+ interface SingleFileRenderProp {
27
+ (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;
28
+ }
29
+ interface MultiFileRenderProp {
30
+ (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;
31
+ }
32
+ export declare type MultipleProps = {
33
+ multiple?: never;
34
+ multipleMaxCount?: never;
35
+ multipleMaxSize?: never;
36
+ onChange?: OnChange<FileManagerFileItem>;
37
+ render?: SingleFileRenderProp;
38
+ } | {
39
+ multiple: true;
20
40
  multipleMaxCount?: number;
21
41
  multipleMaxSize?: number | string;
42
+ onChange?: OnChange<FileManagerFileItem[]>;
43
+ render?: MultiFileRenderProp;
44
+ };
45
+ export declare type FileManagerProps = {
46
+ accept?: Array<string>;
47
+ images?: boolean;
48
+ maxSize?: number | string;
49
+ /**
50
+ * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.
51
+ */
52
+ onChangePick?: string[];
22
53
  onClose?: Function;
23
- onUploadCompletion?: (files: FileItem[]) => void;
24
- }
25
- export declare type FileManagerPortalProps = Omit<FileManagerProps, "children">;
54
+ onUploadCompletion?: (files: FileManagerFileItem[]) => void;
55
+ own?: boolean;
56
+ scope?: string;
57
+ tags?: Array<string>;
58
+ /**
59
+ * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.
60
+ */
61
+ children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;
62
+ } & MultipleProps;
63
+ declare type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
64
+ export declare type FileManagerRendererProps = DistributiveOmit<FileManagerProps, "render" | "children">;
65
+ export declare const FileManagerRenderer: import("@webiny/react-composition").ComposableFC<FileManagerRendererProps>;
26
66
  export declare const FileManager: React.FC<FileManagerProps>;
67
+ export {};