@webiny/app-file-manager 5.35.2-beta.0 → 5.36.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/BatchFileUploader.d.ts +35 -0
  2. package/BatchFileUploader.js +180 -0
  3. package/BatchFileUploader.js.map +1 -0
  4. package/components/BottomInfoBar/BottomInfoBar.d.ts +4 -0
  5. package/components/BottomInfoBar/BottomInfoBar.js +25 -0
  6. package/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
  7. package/components/BottomInfoBar/ListStatus.d.ts +6 -0
  8. package/components/BottomInfoBar/ListStatus.js +26 -0
  9. package/components/BottomInfoBar/ListStatus.js.map +1 -0
  10. package/components/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
  11. package/components/BottomInfoBar/SupportedFileTypes.js +47 -0
  12. package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  13. package/components/BottomInfoBar/index.d.ts +1 -0
  14. package/components/BottomInfoBar/index.js +16 -0
  15. package/components/BottomInfoBar/index.js.map +1 -0
  16. package/components/BottomInfoBar/styled.d.ts +23 -0
  17. package/components/BottomInfoBar/styled.js +33 -0
  18. package/components/BottomInfoBar/styled.js.map +1 -0
  19. package/components/DropFilesHere/DropFilesHere.d.ts +9 -0
  20. package/components/DropFilesHere/DropFilesHere.js +31 -0
  21. package/components/DropFilesHere/DropFilesHere.js.map +1 -0
  22. package/components/DropFilesHere/index.d.ts +1 -0
  23. package/components/DropFilesHere/index.js +16 -0
  24. package/components/DropFilesHere/index.js.map +1 -0
  25. package/components/DropFilesHere/styled.d.ts +26 -0
  26. package/components/DropFilesHere/styled.js +35 -0
  27. package/components/DropFilesHere/styled.js.map +1 -0
  28. package/components/Empty/Empty.d.ts +8 -0
  29. package/components/Empty/Empty.js +31 -0
  30. package/components/Empty/Empty.js.map +1 -0
  31. package/components/Empty/index.d.ts +1 -0
  32. package/components/Empty/index.js +16 -0
  33. package/components/Empty/index.js.map +1 -0
  34. package/components/FileDetails/Aliases.js +8 -4
  35. package/components/FileDetails/Aliases.js.map +1 -1
  36. package/components/FileDetails/DeleteImageAction.d.ts +6 -2
  37. package/components/FileDetails/DeleteImageAction.js +19 -52
  38. package/components/FileDetails/DeleteImageAction.js.map +1 -1
  39. package/components/FileDetails/FileDetails.d.ts +24 -0
  40. package/components/FileDetails/FileDetails.js +267 -0
  41. package/components/FileDetails/FileDetails.js.map +1 -0
  42. package/components/FileDetails/Name.js +2 -2
  43. package/components/FileDetails/Name.js.map +1 -1
  44. package/components/FileDetails/Tags.d.ts +6 -2
  45. package/components/FileDetails/Tags.js +31 -16
  46. package/components/FileDetails/Tags.js.map +1 -1
  47. package/components/FileDetails/index.d.ts +1 -0
  48. package/components/FileDetails/index.js +16 -0
  49. package/components/FileDetails/index.js.map +1 -0
  50. package/components/Grid/File.d.ts +16 -0
  51. package/components/Grid/File.js +57 -0
  52. package/components/Grid/File.js.map +1 -0
  53. package/components/Grid/Grid.d.ts +17 -0
  54. package/components/Grid/Grid.js +99 -0
  55. package/components/Grid/Grid.js.map +1 -0
  56. package/components/Grid/index.d.ts +1 -0
  57. package/components/Grid/index.js +16 -0
  58. package/components/Grid/index.js.map +1 -0
  59. package/components/Grid/styled.d.ts +40 -0
  60. package/components/Grid/styled.js +58 -0
  61. package/components/Grid/styled.js.map +1 -0
  62. package/components/NoPermission/NoPermission.d.ts +2 -0
  63. package/components/NoPermission/NoPermission.js +24 -0
  64. package/components/NoPermission/NoPermission.js.map +1 -0
  65. package/components/NoPermission/index.d.ts +1 -0
  66. package/components/NoPermission/index.js +16 -0
  67. package/components/NoPermission/index.js.map +1 -0
  68. package/components/NoPermission/styled.d.ts +32 -0
  69. package/components/NoPermission/styled.js +40 -0
  70. package/components/NoPermission/styled.js.map +1 -0
  71. package/components/NoResults/NoResults.d.ts +2 -0
  72. package/components/NoResults/NoResults.js +17 -0
  73. package/components/NoResults/NoResults.js.map +1 -0
  74. package/components/NoResults/index.d.ts +1 -0
  75. package/components/NoResults/index.js +16 -0
  76. package/components/NoResults/index.js.map +1 -0
  77. package/components/NoResults/styled.d.ts +7 -0
  78. package/components/NoResults/styled.js +13 -0
  79. package/components/NoResults/styled.js.map +1 -0
  80. package/components/Table/FolderActionDelete.d.ts +6 -0
  81. package/components/Table/FolderActionDelete.js +25 -0
  82. package/components/Table/FolderActionDelete.js.map +1 -0
  83. package/components/Table/FolderActionEdit.d.ts +6 -0
  84. package/components/Table/FolderActionEdit.js +25 -0
  85. package/components/Table/FolderActionEdit.js.map +1 -0
  86. package/components/Table/Name.d.ts +12 -0
  87. package/components/Table/Name.js +39 -0
  88. package/components/Table/Name.js.map +1 -0
  89. package/components/Table/RecordActionCopy.d.ts +8 -0
  90. package/components/Table/RecordActionCopy.js +30 -0
  91. package/components/Table/RecordActionCopy.js.map +1 -0
  92. package/components/Table/RecordActionDelete.d.ts +8 -0
  93. package/components/Table/RecordActionDelete.js +36 -0
  94. package/components/Table/RecordActionDelete.js.map +1 -0
  95. package/components/Table/RecordActionEdit.d.ts +7 -0
  96. package/components/Table/RecordActionEdit.js +28 -0
  97. package/components/Table/RecordActionEdit.js.map +1 -0
  98. package/components/Table/RecordActionMove.d.ts +6 -0
  99. package/components/Table/RecordActionMove.js +25 -0
  100. package/components/Table/RecordActionMove.js.map +1 -0
  101. package/components/Table/Table.d.ts +31 -0
  102. package/components/Table/Table.js +256 -0
  103. package/components/Table/Table.js.map +1 -0
  104. package/components/Table/index.d.ts +1 -0
  105. package/components/Table/index.js +16 -0
  106. package/components/Table/index.js.map +1 -0
  107. package/components/Table/styled.d.ts +21 -0
  108. package/components/Table/styled.js +35 -0
  109. package/components/Table/styled.js.map +1 -0
  110. package/components/Title/Title.d.ts +5 -0
  111. package/components/Title/Title.js +20 -0
  112. package/components/Title/Title.js.map +1 -0
  113. package/components/Title/index.d.ts +1 -0
  114. package/components/Title/index.js +16 -0
  115. package/components/Title/index.js.map +1 -0
  116. package/components/Title/styled.d.ts +7 -0
  117. package/components/Title/styled.js +14 -0
  118. package/components/Title/styled.js.map +1 -0
  119. package/components/UploadStatus/UploadStatus.d.ts +6 -0
  120. package/components/UploadStatus/UploadStatus.js +36 -0
  121. package/components/UploadStatus/UploadStatus.js.map +1 -0
  122. package/components/UploadStatus/assets/check.svg +3 -0
  123. package/components/UploadStatus/assets/loading.svg +17 -0
  124. package/components/UploadStatus/index.d.ts +1 -0
  125. package/components/UploadStatus/index.js +16 -0
  126. package/components/UploadStatus/index.js.map +1 -0
  127. package/components/UploadStatus/styled.d.ts +41 -0
  128. package/components/UploadStatus/styled.js +57 -0
  129. package/components/UploadStatus/styled.js.map +1 -0
  130. package/constants.d.ts +3 -0
  131. package/constants.js +12 -0
  132. package/constants.js.map +1 -0
  133. package/hooks/useCopyFile.d.ts +11 -0
  134. package/hooks/useCopyFile.js +30 -0
  135. package/hooks/useCopyFile.js.map +1 -0
  136. package/hooks/useDeleteFile.d.ts +9 -0
  137. package/hooks/useDeleteFile.js +64 -0
  138. package/hooks/useDeleteFile.js.map +1 -0
  139. package/index.d.ts +1 -0
  140. package/index.js +9 -1
  141. package/index.js.map +1 -1
  142. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +9 -3
  143. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +82 -52
  144. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
  145. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -2
  146. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +3 -3
  147. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -1
  148. package/modules/FileManagerApiProvider/graphql.d.ts +4 -0
  149. package/modules/FileManagerApiProvider/graphql.js +9 -7
  150. package/modules/FileManagerApiProvider/graphql.js.map +1 -1
  151. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.d.ts +18 -0
  152. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js +622 -0
  153. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js.map +1 -0
  154. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.d.ts +12 -0
  155. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js +75 -0
  156. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js.map +1 -0
  157. package/modules/FileManagerRenderer/AcoRenderer/index.d.ts +2 -0
  158. package/modules/FileManagerRenderer/AcoRenderer/index.js +70 -0
  159. package/modules/FileManagerRenderer/AcoRenderer/index.js.map +1 -0
  160. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.d.ts +2 -0
  161. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js +40 -0
  162. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js.map +1 -0
  163. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +7 -2
  164. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -1
  165. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +2 -1
  166. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +48 -36
  167. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -1
  168. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/check.svg +3 -0
  169. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/loading.svg +17 -0
  170. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +4 -3
  171. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +6 -25
  172. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -1
  173. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +2 -2
  174. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +80 -109
  175. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -1
  176. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.d.ts +54 -0
  177. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js +430 -0
  178. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js.map +1 -0
  179. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.d.ts +2 -0
  180. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js +27 -0
  181. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js.map +1 -0
  182. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.d.ts +74 -0
  183. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js +119 -0
  184. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js.map +1 -0
  185. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.d.ts +3 -0
  186. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js +15 -0
  187. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js.map +1 -0
  188. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +4 -3
  189. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +23 -19
  190. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
  191. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +0 -3
  192. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +0 -5
  193. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -1
  194. package/modules/FileManagerRenderer/index.js +2 -2
  195. package/modules/FileManagerRenderer/index.js.map +1 -1
  196. package/modules/FileTypes/fileImage/EditAction.js +2 -2
  197. package/modules/FileTypes/fileImage/EditAction.js.map +1 -1
  198. package/package.json +18 -12
  199. package/tagsHelpers.d.ts +16 -0
  200. package/tagsHelpers.js +41 -0
  201. package/tagsHelpers.js.map +1 -0
  202. package/types.d.ts +1 -0
  203. package/types.js +8 -1
  204. package/types.js.map +1 -1
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.stateReducer = exports.initializeState = exports.getScopeWhereParams = exports.getMimeTypeWhereParams = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _constants = require("../../../constants");
10
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
11
+ var DEFAULT_SCOPE = "scope:";
12
+ var getScopeWhereParams = function getScopeWhereParams(scope) {
13
+ if (!scope) {
14
+ return {
15
+ tags_not_startsWith: DEFAULT_SCOPE
16
+ };
17
+ }
18
+ return {
19
+ tags_startsWith: scope
20
+ };
21
+ };
22
+ exports.getScopeWhereParams = getScopeWhereParams;
23
+ var getMimeTypeWhereParams = function getMimeTypeWhereParams(mimes) {
24
+ if (!mimes || !mimes.length) {
25
+ return;
26
+ }
27
+ return {
28
+ tags_in: mimes.map(function (mime) {
29
+ return "mime:".concat(mime);
30
+ })
31
+ };
32
+ };
33
+ exports.getMimeTypeWhereParams = getMimeTypeWhereParams;
34
+ var initializeState = function initializeState(_ref) {
35
+ var accept = _ref.accept,
36
+ scope = _ref.scope,
37
+ own = _ref.own,
38
+ identity = _ref.identity;
39
+ return {
40
+ folderId: _constants.FOLDER_ID_DEFAULT,
41
+ showingFileDetails: null,
42
+ loadingFileDetails: false,
43
+ selected: [],
44
+ hasPreviouslyUploadedFiles: null,
45
+ listWhere: (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, getScopeWhereParams(scope)), getMimeTypeWhereParams(accept)), {}, {
46
+ search: undefined,
47
+ createdBy: own ? identity.id : undefined,
48
+ AND: undefined
49
+ }),
50
+ listSort: {},
51
+ dragging: false
52
+ };
53
+ };
54
+ exports.initializeState = initializeState;
55
+ var stateReducer = function stateReducer(state, action) {
56
+ var next = (0, _objectSpread2.default)({}, state);
57
+ switch (action.type) {
58
+ case "setFolderId":
59
+ {
60
+ next.folderId = action.state;
61
+ next.listWhere = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state.listWhere), {}, {
62
+ folderId: action.state
63
+ });
64
+ break;
65
+ }
66
+ case "setSelected":
67
+ {
68
+ next.selected = action.files;
69
+ break;
70
+ }
71
+ case "toggleSelected":
72
+ {
73
+ var existingIndex = state.selected.findIndex(function (item) {
74
+ return item.src === action.file.src;
75
+ });
76
+ if (existingIndex < 0) {
77
+ next.selected.push(action.file);
78
+ } else {
79
+ next.selected.splice(existingIndex, 1);
80
+ }
81
+ break;
82
+ }
83
+ case "listWhere":
84
+ {
85
+ next.selected = [];
86
+ next.listWhere = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state.listWhere), action.state);
87
+ break;
88
+ }
89
+ case "listSort":
90
+ {
91
+ if (!(0, _isEqual.default)(state.listSort, action.state)) {
92
+ next.listSort = action.state;
93
+ }
94
+ break;
95
+ }
96
+ case "showFileDetails":
97
+ {
98
+ next.showingFileDetails = action.id;
99
+ break;
100
+ }
101
+ case "loadingFileDetails":
102
+ {
103
+ next.loadingFileDetails = action.state;
104
+ break;
105
+ }
106
+ case "dragging":
107
+ {
108
+ next.dragging = action.state;
109
+ break;
110
+ }
111
+ case "hasPreviouslyUploadedFiles":
112
+ {
113
+ next.hasPreviouslyUploadedFiles = action.state;
114
+ break;
115
+ }
116
+ }
117
+ return next;
118
+ };
119
+ exports.stateReducer = stateReducer;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_SCOPE","getScopeWhereParams","scope","tags_not_startsWith","tags_startsWith","getMimeTypeWhereParams","mimes","length","tags_in","map","mime","initializeState","accept","own","identity","folderId","FOLDER_ID_DEFAULT","showingFileDetails","loadingFileDetails","selected","hasPreviouslyUploadedFiles","listWhere","search","undefined","createdBy","id","AND","listSort","dragging","stateReducer","state","action","next","type","files","existingIndex","findIndex","item","src","file","push","splice","isEqual"],"sources":["stateReducer.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport { ListDbSort } from \"@webiny/app-aco/types\";\nimport { FOLDER_ID_DEFAULT } from \"~/constants\";\nimport isEqual from \"lodash/isEqual\";\n\ninterface BaseStateListWhere {\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface StateListWhere extends BaseStateListWhere {\n folderId?: string;\n search?: string;\n createdBy?: string;\n AND?: BaseStateListWhere[];\n}\n\nexport interface State {\n folderId: string | undefined;\n showingFileDetails: string | null;\n loadingFileDetails: boolean;\n selected: FileItem[];\n hasPreviouslyUploadedFiles: boolean | null;\n listWhere: StateListWhere;\n listSort?: ListDbSort;\n dragging: boolean;\n}\n\nexport type Action =\n | {\n type: \"setFolderId\";\n state: string | undefined;\n }\n | {\n type: \"toggleSelected\";\n file: FileItem;\n }\n | {\n type: \"setSelected\";\n files: FileItem[];\n }\n | {\n type: \"listWhere\";\n state: StateListWhere;\n }\n | {\n type: \"listSort\";\n state: ListDbSort;\n }\n | {\n type: \"showFileDetails\";\n id: string | null;\n }\n | {\n type: \"loadingFileDetails\";\n state: boolean;\n }\n | {\n type: \"dragging\";\n state: boolean;\n }\n | {\n type: \"hasPreviouslyUploadedFiles\";\n state: boolean;\n };\n\ninterface Reducer {\n (prev: State, action: Action): State;\n}\n\ninterface InitParams {\n accept?: string[];\n tags?: string[];\n scope?: string;\n own?: boolean;\n identity: any;\n}\n\nconst DEFAULT_SCOPE = \"scope:\";\n\nexport const getScopeWhereParams = (scope: string | undefined) => {\n if (!scope) {\n return {\n tags_not_startsWith: DEFAULT_SCOPE\n };\n }\n return {\n tags_startsWith: scope\n };\n};\n\nexport const getMimeTypeWhereParams = (mimes: string[] | undefined) => {\n if (!mimes || !mimes.length) {\n return;\n }\n\n return {\n tags_in: mimes.map(mime => `mime:${mime}`)\n };\n};\n\nexport const initializeState = ({ accept, scope, own, identity }: InitParams): State => {\n return {\n folderId: FOLDER_ID_DEFAULT,\n showingFileDetails: null,\n loadingFileDetails: false,\n selected: [],\n hasPreviouslyUploadedFiles: null,\n listWhere: {\n ...getScopeWhereParams(scope),\n ...getMimeTypeWhereParams(accept),\n search: undefined,\n createdBy: own ? identity.id : undefined,\n AND: undefined\n },\n listSort: {},\n dragging: false\n };\n};\n\nexport const stateReducer: Reducer = (state: State, action) => {\n const next: State = {\n ...state\n };\n switch (action.type) {\n case \"setFolderId\": {\n next.folderId = action.state;\n next.listWhere = {\n ...state.listWhere,\n folderId: action.state\n };\n break;\n }\n case \"setSelected\": {\n next.selected = action.files;\n break;\n }\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 \"listWhere\": {\n next.selected = [];\n next.listWhere = {\n ...state.listWhere,\n ...action.state\n };\n break;\n }\n case \"listSort\": {\n if (!isEqual(state.listSort, action.state)) {\n next.listSort = action.state;\n }\n break;\n }\n case \"showFileDetails\": {\n next.showingFileDetails = action.id;\n break;\n }\n case \"loadingFileDetails\": {\n next.loadingFileDetails = action.state;\n break;\n }\n case \"dragging\": {\n next.dragging = action.state;\n break;\n }\n case \"hasPreviouslyUploadedFiles\": {\n next.hasPreviouslyUploadedFiles = action.state;\n break;\n }\n }\n\n return next;\n};\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { FileManagerAcoViewContextData } from "./FileManagerAcoViewContext";
2
+ import { FileItem } from "@webiny/app-admin/types";
3
+ export declare function useFileManagerAcoView<TFileItem extends FileItem = FileItem>(): FileManagerAcoViewContextData<TFileItem>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useFileManagerAcoView = useFileManagerAcoView;
7
+ var _react = require("react");
8
+ var _FileManagerAcoViewContext = require("./FileManagerAcoViewContext");
9
+ function useFileManagerAcoView() {
10
+ var context = (0, _react.useContext)(_FileManagerAcoViewContext.FileManagerAcoViewContext);
11
+ if (!context) {
12
+ throw new Error("useFileManagerAcoView() must be used within a FileManagerAcoViewProvider");
13
+ }
14
+ return context;
15
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useFileManagerAcoView","context","useContext","FileManagerAcoViewContext","Error"],"sources":["useFileManagerAcoView.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n FileManagerAcoViewContext,\n FileManagerAcoViewContextData\n} from \"./FileManagerAcoViewContext\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\nexport function useFileManagerAcoView<TFileItem extends FileItem = FileItem>() {\n const context = useContext<FileManagerAcoViewContextData<TFileItem>>(\n FileManagerAcoViewContext as unknown as React.Context<\n FileManagerAcoViewContextData<TFileItem>\n >\n );\n if (!context) {\n throw new Error(\"useFileManagerAcoView() must be used within a FileManagerAcoViewProvider\");\n }\n\n return context;\n}\n"],"mappings":";;;;;;AAAA;AACA;AAMO,SAASA,qBAAqB,GAA0C;EAC3E,IAAMC,OAAO,GAAG,IAAAC,iBAAU,EACtBC,oDAAyB,CAG5B;EACD,IAAI,CAACF,OAAO,EAAE;IACV,MAAM,IAAIG,KAAK,CAAC,0EAA0E,CAAC;EAC/F;EAEA,OAAOH,OAAO;AAClB"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="web" />
2
2
  import React from "react";
3
+ import { UploadOptions } from "@webiny/app/types";
3
4
  import { FileItem } from "@webiny/app-admin/types";
4
5
  import { Settings } from "../../../types";
5
6
  import { Action, State, StateQueryParams } from "./stateReducer";
@@ -16,7 +17,7 @@ export interface FileManagerViewContextData<TFileItem extends FileItem = FileIte
16
17
  createFile: (data: TFileItem) => Promise<TFileItem | undefined>;
17
18
  updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;
18
19
  deleteFile: (id: string) => Promise<void>;
19
- uploadFile: (file: File) => Promise<TFileItem | undefined>;
20
+ uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;
20
21
  files: TFileItem[];
21
22
  loadingFiles: boolean;
22
23
  loadMore: () => void;
@@ -30,8 +31,6 @@ export interface FileManagerViewContextData<TFileItem extends FileItem = FileIte
30
31
  setQueryParams: (queryParams: StateQueryParams) => void;
31
32
  dragging: boolean;
32
33
  setDragging: (state: boolean) => void;
33
- uploading: boolean;
34
- setUploading: (state: boolean) => void;
35
34
  showFileDetails: (id: string) => void;
36
35
  showingFileDetails: string | null;
37
36
  hideFileDetails: () => void;
@@ -44,4 +43,6 @@ export interface FileManagerViewProviderProps {
44
43
  own?: boolean;
45
44
  children: React.ReactNode;
46
45
  }
46
+ declare type UploadFileOptions = Pick<UploadOptions, "onProgress">;
47
47
  export declare const FileManagerViewProvider: ({ children, ...props }: FileManagerViewProviderProps) => JSX.Element;
48
+ export {};
@@ -16,6 +16,7 @@ var _react = _interopRequireWildcard(require("react"));
16
16
  var _appSecurity = require("@webiny/app-security");
17
17
  var _ = require("../../..");
18
18
  var _stateReducer = require("./stateReducer");
19
+ var _constants = require("../../../constants");
19
20
  var _excluded = ["children"];
20
21
  var DEFAULT_SCOPE = "scope:";
21
22
  var getWhere = function getWhere(scope) {
@@ -209,7 +210,7 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
209
210
  }();
210
211
  var createFile = /*#__PURE__*/function () {
211
212
  var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5(data) {
212
- var newFile;
213
+ var meta, newFile;
213
214
  return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
214
215
  while (1) switch (_context5.prev = _context5.next) {
215
216
  case 0:
@@ -219,9 +220,14 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
219
220
  if (props.scope) {
220
221
  data.tags = [].concat((0, _toConsumableArray2.default)(data.tags || []), [props.scope]);
221
222
  }
222
- _context5.next = 4;
223
- return fileManager.createFile(data);
224
- case 4:
223
+ meta = {
224
+ location: {
225
+ folderId: _constants.FOLDER_ID_DEFAULT
226
+ }
227
+ };
228
+ _context5.next = 5;
229
+ return fileManager.createFile(data, meta);
230
+ case 5:
225
231
  newFile = _context5.sent;
226
232
  if (newFile) {
227
233
  newFile.tags = removeScopePrefix(newFile.tags || []);
@@ -230,7 +236,7 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
230
236
  });
231
237
  }
232
238
  return _context5.abrupt("return", newFile);
233
- case 7:
239
+ case 8:
234
240
  case "end":
235
241
  return _context5.stop();
236
242
  }
@@ -331,20 +337,26 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
331
337
  /**
332
338
  * Upload native browser File
333
339
  * @see https://developer.mozilla.org/en-US/docs/Web/API/File
334
- * @param File file
340
+ * @param file
341
+ * @param options
335
342
  */
336
343
  var uploadFile = /*#__PURE__*/function () {
337
344
  var _ref9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee8(file) {
338
- var tags, newFile;
345
+ var options,
346
+ tags,
347
+ newFile,
348
+ _args8 = arguments;
339
349
  return (0, _regeneratorRuntime2.default)().wrap(function _callee8$(_context8) {
340
350
  while (1) switch (_context8.prev = _context8.next) {
341
351
  case 0:
352
+ options = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : {};
342
353
  tags = props.scope ? [props.scope] : [];
343
- _context8.next = 3;
354
+ _context8.next = 4;
344
355
  return fileManager.uploadFile(file, {
345
- tags: tags
356
+ tags: tags,
357
+ onProgress: options.onProgress
346
358
  });
347
- case 3:
359
+ case 4:
348
360
  newFile = _context8.sent;
349
361
  if (newFile) {
350
362
  newFile.tags = removeScopePrefix(newFile.tags);
@@ -353,7 +365,7 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
353
365
  });
354
366
  }
355
367
  return _context8.abrupt("return", newFile);
356
- case 6:
368
+ case 7:
357
369
  case "end":
358
370
  return _context8.stop();
359
371
  }
@@ -419,14 +431,6 @@ var FileManagerViewProvider = function FileManagerViewProvider(_ref) {
419
431
  });
420
432
  },
421
433
  dragging: state.dragging,
422
- setUploading: function setUploading() {
423
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
424
- dispatch({
425
- type: "uploading",
426
- state: state
427
- });
428
- },
429
- uploading: state.uploading,
430
434
  showFileDetails: function showFileDetails(id) {
431
435
  dispatch({
432
436
  type: "showFileDetails",
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_SCOPE","getWhere","scope","tag_not_startsWith","tag_startsWith","nonEmptyArray","value","fallback","undefined","Array","isArray","length","FileManagerViewContext","React","createContext","FileManagerViewProvider","children","props","useSecurity","identity","fileManager","useFileManagerApi","useState","files","setFiles","tags","setTags","meta","setMeta","settings","setSettings","loadingFiles","setLoading","useReducer","stateReducer","initializeState","state","dispatch","queryParamsToWhereInput","queryParams","limit","where","createdBy","search","tag_in","addScopePrefix","type_in","types","listFiles","map","file","removeScopePrefix","hasPreviouslyUploadedFiles","setHasPreviouslyUploadedFiles","listTags","tag","getSettings","useEffect","JSON","stringify","type","loadMore","cursor","after","response","createFile","data","newFile","updateFile","id","find","index","findIndex","slice","from","Set","deleteFile","uploadFile","filter","replace","selected","toggleSelected","setQueryParams","setDragging","dragging","setUploading","uploading","showFileDetails","hideFileDetails","showingFileDetails"],"sources":["FileManagerViewContext.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { Settings } from \"~/types\";\nimport { useFileManagerApi } from \"~/index\";\nimport { Action, initializeState, State, StateQueryParams, stateReducer } from \"./stateReducer\";\nimport {\n ListFilesListFilesResponse,\n ListFilesQueryVariables\n} from \"~/modules/FileManagerApiProvider/graphql\";\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\nexport interface FileManagerViewContextData<TFileItem extends FileItem = FileItem> {\n state: State;\n dispatch: React.Dispatch<Action>;\n createFile: (data: TFileItem) => Promise<TFileItem | undefined>;\n updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;\n deleteFile: (id: string) => Promise<void>;\n uploadFile: (file: File) => Promise<TFileItem | undefined>;\n files: TFileItem[];\n loadingFiles: boolean;\n loadMore: () => void;\n tags: string[];\n settings: Settings | undefined;\n selected: TFileItem[];\n toggleSelected: (file: TFileItem) => void;\n hasPreviouslyUploadedFiles: boolean | null;\n setHasPreviouslyUploadedFiles: (flag: boolean) => void;\n queryParams: StateQueryParams;\n setQueryParams: (queryParams: StateQueryParams) => void;\n dragging: boolean;\n setDragging: (state: boolean) => void;\n uploading: boolean;\n setUploading: (state: boolean) => void;\n showFileDetails: (id: string) => void;\n showingFileDetails: string | null;\n hideFileDetails: () => void;\n}\n\nfunction nonEmptyArray(value: string[] | undefined, fallback: string[] | undefined = undefined) {\n if (Array.isArray(value)) {\n return value.length ? value : undefined;\n }\n\n return fallback;\n}\n\nexport const FileManagerViewContext = React.createContext<FileManagerViewContextData | undefined>(\n undefined\n);\n\nexport interface FileManagerViewProviderProps {\n accept: string[];\n tags: string[];\n scope?: string;\n own?: boolean;\n children: React.ReactNode;\n}\n\nexport const FileManagerViewProvider = ({ children, ...props }: FileManagerViewProviderProps) => {\n const { identity } = useSecurity();\n const fileManager = useFileManagerApi();\n const [files, setFiles] = useState<FileItem[]>([]);\n const [tags, setTags] = useState<string[]>([]);\n const [meta, setMeta] = useState<ListFilesListFilesResponse[\"meta\"]>();\n const [settings, setSettings] = useState<Settings | undefined>(undefined);\n const [loadingFiles, setLoading] = useState(false);\n\n const [state, dispatch] = React.useReducer(\n stateReducer,\n { ...props, identity },\n initializeState\n );\n\n const queryParamsToWhereInput = (queryParams: StateQueryParams): ListFilesQueryVariables => {\n return {\n limit: queryParams.limit,\n where: {\n ...getWhere(props.scope),\n createdBy: queryParams.createdBy,\n search: queryParams.search,\n tag_in: nonEmptyArray(addScopePrefix(queryParams.tags)),\n type_in: nonEmptyArray(queryParams.types)\n }\n };\n };\n\n const listFiles = async () => {\n setLoading(true);\n const { files, meta } = await fileManager.listFiles(\n queryParamsToWhereInput(state.queryParams)\n );\n setLoading(false);\n setFiles(\n files.map(file => {\n file.tags = removeScopePrefix(file.tags || []);\n return file;\n })\n );\n setMeta(meta);\n if (state.hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(files.length > 0);\n }\n };\n\n const listTags = async () => {\n const tags = await fileManager.listTags({\n where: getWhere(props.scope)\n });\n\n setTags(\n tags.map(tag => {\n return tag.tag;\n })\n );\n };\n\n const getSettings = async () => {\n const settings = await fileManager.getSettings();\n\n setSettings(settings);\n };\n\n useEffect(() => {\n listTags();\n getSettings();\n }, []);\n\n useEffect(() => {\n listFiles();\n }, [JSON.stringify(state.queryParams)]);\n\n const setHasPreviouslyUploadedFiles: FileManagerViewContextData[\"setHasPreviouslyUploadedFiles\"] =\n state => {\n dispatch({ type: \"hasPreviouslyUploadedFiles\", state });\n };\n\n const loadMore = async () => {\n if (!meta?.cursor) {\n return;\n }\n\n const response = await fileManager.listFiles({\n ...queryParamsToWhereInput(state.queryParams),\n after: meta?.cursor\n });\n\n setFiles(files => {\n return [\n ...files,\n ...response.files.map(file => {\n file.tags = removeScopePrefix(file.tags || []);\n return file;\n })\n ];\n });\n setMeta(response.meta);\n };\n\n const createFile = async (data: FileItem) => {\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n const newFile = await fileManager.createFile(data);\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags || []);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n const file = files.find(file => file.id === id);\n if (!file) {\n return;\n }\n\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n await fileManager.updateFile(id, data);\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n const newFile = {\n ...data,\n tags: removeScopePrefix(data.tags)\n };\n\n return [\n ...files.slice(0, index),\n { ...files[index], ...newFile },\n ...files.slice(index + 1)\n ];\n });\n\n setTags(tags => {\n // Create an array of unique tags\n return Array.from(new Set([...tags, ...(data.tags || [])]));\n });\n };\n\n const deleteFile = async (id: string) => {\n const file = files.find(file => file.id === id);\n if (!file) {\n return;\n }\n\n await fileManager.deleteFile(id);\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n return [...files.slice(0, index), ...files.slice(index + 1)];\n });\n };\n\n /**\n * Upload native browser File\n * @see https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param File file\n */\n const uploadFile = async (file: File) => {\n const tags = props.scope ? [props.scope] : [];\n\n const newFile = await fileManager.uploadFile(file, { tags });\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const addScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags.map(tag => `${props.scope}:${tag}`);\n };\n\n const removeScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags\n .filter(tag => tag !== props.scope)\n .map(tag => {\n return props.scope ? tag.replace(`${props.scope}:`, \"\") : tag;\n });\n };\n\n const value: FileManagerViewContextData = {\n state,\n dispatch,\n files,\n loadingFiles,\n loadMore,\n tags: removeScopePrefix(tags),\n createFile,\n updateFile,\n deleteFile,\n uploadFile,\n settings,\n selected: state.selected,\n toggleSelected(file: FileItem) {\n dispatch({\n type: \"toggleSelected\",\n file\n });\n },\n hasPreviouslyUploadedFiles: state.hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles,\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(id: string) {\n dispatch({ type: \"showFileDetails\", id });\n },\n hideFileDetails() {\n dispatch({ type: \"showFileDetails\", id: null });\n },\n showingFileDetails: state.showingFileDetails\n };\n\n return (\n <FileManagerViewContext.Provider value={value}>{children}</FileManagerViewContext.Provider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["DEFAULT_SCOPE","getWhere","scope","tag_not_startsWith","tag_startsWith","nonEmptyArray","value","fallback","undefined","Array","isArray","length","FileManagerViewContext","React","createContext","FileManagerViewProvider","children","props","useSecurity","identity","fileManager","useFileManagerApi","useState","files","setFiles","tags","setTags","meta","setMeta","settings","setSettings","loadingFiles","setLoading","useReducer","stateReducer","initializeState","state","dispatch","queryParamsToWhereInput","queryParams","limit","where","createdBy","search","tag_in","addScopePrefix","type_in","types","listFiles","map","file","removeScopePrefix","hasPreviouslyUploadedFiles","setHasPreviouslyUploadedFiles","listTags","tag","getSettings","useEffect","JSON","stringify","type","loadMore","cursor","after","response","createFile","data","location","folderId","FOLDER_ID_DEFAULT","newFile","updateFile","id","find","index","findIndex","slice","from","Set","deleteFile","uploadFile","options","onProgress","filter","replace","selected","toggleSelected","setQueryParams","setDragging","dragging","showFileDetails","hideFileDetails","showingFileDetails"],"sources":["FileManagerViewContext.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { UploadOptions } from \"@webiny/app/types\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { Settings } from \"~/types\";\nimport { useFileManagerApi } from \"~/index\";\nimport { Action, initializeState, State, StateQueryParams, stateReducer } from \"./stateReducer\";\nimport {\n ListFilesListFilesResponse,\n ListFilesQueryVariables\n} from \"~/modules/FileManagerApiProvider/graphql\";\nimport { FOLDER_ID_DEFAULT } from \"~/constants\";\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\nexport interface FileManagerViewContextData<TFileItem extends FileItem = FileItem> {\n state: State;\n dispatch: React.Dispatch<Action>;\n createFile: (data: TFileItem) => Promise<TFileItem | undefined>;\n updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;\n deleteFile: (id: string) => Promise<void>;\n uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;\n files: TFileItem[];\n loadingFiles: boolean;\n loadMore: () => void;\n tags: string[];\n settings: Settings | undefined;\n selected: TFileItem[];\n toggleSelected: (file: TFileItem) => void;\n hasPreviouslyUploadedFiles: boolean | null;\n setHasPreviouslyUploadedFiles: (flag: boolean) => void;\n queryParams: StateQueryParams;\n setQueryParams: (queryParams: StateQueryParams) => void;\n dragging: boolean;\n setDragging: (state: boolean) => void;\n showFileDetails: (id: string) => void;\n showingFileDetails: string | null;\n hideFileDetails: () => void;\n}\n\nfunction nonEmptyArray(value: string[] | undefined, fallback: string[] | undefined = undefined) {\n if (Array.isArray(value)) {\n return value.length ? value : undefined;\n }\n\n return fallback;\n}\n\nexport const FileManagerViewContext = React.createContext<FileManagerViewContextData | undefined>(\n undefined\n);\n\nexport interface FileManagerViewProviderProps {\n accept: string[];\n tags: string[];\n scope?: string;\n own?: boolean;\n children: React.ReactNode;\n}\n\ntype UploadFileOptions = Pick<UploadOptions, \"onProgress\">;\n\nexport const FileManagerViewProvider = ({ children, ...props }: FileManagerViewProviderProps) => {\n const { identity } = useSecurity();\n const fileManager = useFileManagerApi();\n const [files, setFiles] = useState<FileItem[]>([]);\n const [tags, setTags] = useState<string[]>([]);\n const [meta, setMeta] = useState<ListFilesListFilesResponse[\"meta\"]>();\n const [settings, setSettings] = useState<Settings | undefined>(undefined);\n const [loadingFiles, setLoading] = useState(false);\n\n const [state, dispatch] = React.useReducer(\n stateReducer,\n { ...props, identity },\n initializeState\n );\n\n const queryParamsToWhereInput = (queryParams: StateQueryParams): ListFilesQueryVariables => {\n return {\n limit: queryParams.limit,\n where: {\n ...getWhere(props.scope),\n createdBy: queryParams.createdBy,\n search: queryParams.search,\n tag_in: nonEmptyArray(addScopePrefix(queryParams.tags)),\n type_in: nonEmptyArray(queryParams.types)\n }\n };\n };\n\n const listFiles = async () => {\n setLoading(true);\n const { files, meta } = await fileManager.listFiles(\n queryParamsToWhereInput(state.queryParams)\n );\n setLoading(false);\n setFiles(\n files.map(file => {\n file.tags = removeScopePrefix(file.tags || []);\n return file;\n })\n );\n setMeta(meta);\n if (state.hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(files.length > 0);\n }\n };\n\n const listTags = async () => {\n const tags = await fileManager.listTags({\n where: getWhere(props.scope)\n });\n\n setTags(\n tags.map(tag => {\n return tag.tag;\n })\n );\n };\n\n const getSettings = async () => {\n const settings = await fileManager.getSettings();\n\n setSettings(settings);\n };\n\n useEffect(() => {\n listTags();\n getSettings();\n }, []);\n\n useEffect(() => {\n listFiles();\n }, [JSON.stringify(state.queryParams)]);\n\n const setHasPreviouslyUploadedFiles: FileManagerViewContextData[\"setHasPreviouslyUploadedFiles\"] =\n state => {\n dispatch({ type: \"hasPreviouslyUploadedFiles\", state });\n };\n\n const loadMore = async () => {\n if (!meta?.cursor) {\n return;\n }\n\n const response = await fileManager.listFiles({\n ...queryParamsToWhereInput(state.queryParams),\n after: meta?.cursor\n });\n\n setFiles(files => {\n return [\n ...files,\n ...response.files.map(file => {\n file.tags = removeScopePrefix(file.tags || []);\n return file;\n })\n ];\n });\n setMeta(response.meta);\n };\n\n const createFile = async (data: FileItem) => {\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n const meta = {\n location: {\n folderId: FOLDER_ID_DEFAULT\n }\n };\n\n const newFile = await fileManager.createFile(data, meta);\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags || []);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n const file = files.find(file => file.id === id);\n if (!file) {\n return;\n }\n\n if (data.tags) {\n data.tags = addScopePrefix(data.tags);\n }\n\n if (props.scope) {\n data.tags = [...(data.tags || []), props.scope];\n }\n\n await fileManager.updateFile(id, data);\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n const newFile = {\n ...data,\n tags: removeScopePrefix(data.tags)\n };\n\n return [\n ...files.slice(0, index),\n { ...files[index], ...newFile },\n ...files.slice(index + 1)\n ];\n });\n\n setTags(tags => {\n // Create an array of unique tags\n return Array.from(new Set([...tags, ...(data.tags || [])]));\n });\n };\n\n const deleteFile = async (id: string) => {\n const file = files.find(file => file.id === id);\n if (!file) {\n return;\n }\n\n await fileManager.deleteFile(id);\n\n setFiles(files => {\n const index = files.findIndex(file => file.id === id);\n if (index === -1) {\n return files;\n }\n\n return [...files.slice(0, index), ...files.slice(index + 1)];\n });\n };\n\n /**\n * Upload native browser File\n * @see https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param file\n * @param options\n */\n const uploadFile: FileManagerViewContextData[\"uploadFile\"] = async (file, options = {}) => {\n const tags = props.scope ? [props.scope] : [];\n\n const newFile = await fileManager.uploadFile(file, {\n tags,\n onProgress: options.onProgress\n });\n\n if (newFile) {\n newFile.tags = removeScopePrefix(newFile.tags);\n setFiles(files => [newFile, ...files]);\n }\n return newFile;\n };\n\n const addScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags.map(tag => `${props.scope}:${tag}`);\n };\n\n const removeScopePrefix = (tags: string[] = []) => {\n if (!props.scope) {\n return tags;\n }\n\n return tags\n .filter(tag => tag !== props.scope)\n .map(tag => {\n return props.scope ? tag.replace(`${props.scope}:`, \"\") : tag;\n });\n };\n\n const value: FileManagerViewContextData = {\n state,\n dispatch,\n files,\n loadingFiles,\n loadMore,\n tags: removeScopePrefix(tags),\n createFile,\n updateFile,\n deleteFile,\n uploadFile,\n settings,\n selected: state.selected,\n toggleSelected(file: FileItem) {\n dispatch({\n type: \"toggleSelected\",\n file\n });\n },\n hasPreviouslyUploadedFiles: state.hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles,\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 showFileDetails(id: string) {\n dispatch({ type: \"showFileDetails\", id });\n },\n hideFileDetails() {\n dispatch({ type: \"showFileDetails\", id: null });\n },\n showingFileDetails: state.showingFileDetails\n };\n\n return (\n <FileManagerViewContext.Provider value={value}>{children}</FileManagerViewContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -37,9 +37,6 @@ export declare type Action = {
37
37
  } | {
38
38
  type: "hasPreviouslyUploadedFiles";
39
39
  state: boolean;
40
- } | {
41
- type: "uploading";
42
- state: boolean;
43
40
  };
44
41
  interface Reducer {
45
42
  (prev: State, action: Action): State;
@@ -89,11 +89,6 @@ var stateReducer = function stateReducer(state, action) {
89
89
  next.hasPreviouslyUploadedFiles = action.state;
90
90
  break;
91
91
  }
92
- case "uploading":
93
- {
94
- next.uploading = action.state;
95
- break;
96
- }
97
92
  }
98
93
  return next;
99
94
  };
@@ -1 +1 @@
1
- {"version":3,"names":["ListFilesSort","DEFAULT_SCOPE","getWhere","scope","tag_not_startsWith","tag_startsWith","initializeState","accept","tags","own","identity","showingFileDetails","selected","hasPreviouslyUploadedFiles","queryParams","limit","sort","CREATED_ON_DESC","types","length","undefined","createdBy","id","dragging","uploading","stateReducer","state","action","next","type","existingIndex","findIndex","item","src","file","push","splice"],"sources":["stateReducer.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\n\nexport enum ListFilesSort {\n CREATED_ON_ASC,\n CREATED_ON_DESC,\n SIZE_ASC,\n SIZE_DESC\n}\n\nexport interface StateQueryParams {\n createdBy?: string;\n search?: string;\n types?: string[];\n limit?: number;\n sort?: number;\n tags?: string[];\n scope?: string;\n}\n\nexport interface State {\n showingFileDetails: string | null;\n selected: FileItem[];\n hasPreviouslyUploadedFiles: boolean | null;\n queryParams: StateQueryParams;\n dragging: boolean;\n uploading: boolean;\n}\n\nexport type Action =\n | {\n type: \"toggleSelected\";\n file: FileItem;\n }\n | {\n type: \"queryParams\";\n queryParams: StateQueryParams;\n }\n | {\n type: \"showFileDetails\";\n id: string | null;\n }\n | {\n type: \"dragging\";\n state: boolean;\n }\n | {\n type: \"hasPreviouslyUploadedFiles\";\n state: boolean;\n }\n | {\n type: \"uploading\";\n state: boolean;\n };\n\ninterface Reducer {\n (prev: State, action: Action): State;\n}\n\ninterface InitParams {\n accept?: string[];\n tags?: string[];\n scope?: string;\n own?: boolean;\n identity: any;\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\nexport const initializeState = ({ accept, tags, scope, own, identity }: InitParams): State => {\n return {\n showingFileDetails: null,\n selected: [],\n hasPreviouslyUploadedFiles: null,\n queryParams: {\n scope,\n limit: 50,\n sort: ListFilesSort.CREATED_ON_DESC,\n types: accept?.length ? accept : undefined,\n tags: tags?.length ? tags : undefined,\n createdBy: own ? identity.id : undefined\n },\n dragging: false,\n uploading: false\n };\n};\n\nexport const stateReducer: 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: 50,\n sort: ListFilesSort.CREATED_ON_DESC\n };\n break;\n }\n case \"showFileDetails\": {\n next.showingFileDetails = action.id;\n break;\n }\n case \"dragging\": {\n next.dragging = action.state;\n break;\n }\n case \"hasPreviouslyUploadedFiles\": {\n next.hasPreviouslyUploadedFiles = action.state;\n break;\n }\n case \"uploading\": {\n next.uploading = action.state;\n break;\n }\n }\n\n return next;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["ListFilesSort","DEFAULT_SCOPE","getWhere","scope","tag_not_startsWith","tag_startsWith","initializeState","accept","tags","own","identity","showingFileDetails","selected","hasPreviouslyUploadedFiles","queryParams","limit","sort","CREATED_ON_DESC","types","length","undefined","createdBy","id","dragging","uploading","stateReducer","state","action","next","type","existingIndex","findIndex","item","src","file","push","splice"],"sources":["stateReducer.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\n\nexport enum ListFilesSort {\n CREATED_ON_ASC,\n CREATED_ON_DESC,\n SIZE_ASC,\n SIZE_DESC\n}\n\nexport interface StateQueryParams {\n createdBy?: string;\n search?: string;\n types?: string[];\n limit?: number;\n sort?: number;\n tags?: string[];\n scope?: string;\n}\n\nexport interface State {\n showingFileDetails: string | null;\n selected: FileItem[];\n hasPreviouslyUploadedFiles: boolean | null;\n queryParams: StateQueryParams;\n dragging: boolean;\n uploading: boolean;\n}\n\nexport type Action =\n | {\n type: \"toggleSelected\";\n file: FileItem;\n }\n | {\n type: \"queryParams\";\n queryParams: StateQueryParams;\n }\n | {\n type: \"showFileDetails\";\n id: string | null;\n }\n | {\n type: \"dragging\";\n state: boolean;\n }\n | {\n type: \"hasPreviouslyUploadedFiles\";\n state: boolean;\n };\n\ninterface Reducer {\n (prev: State, action: Action): State;\n}\n\ninterface InitParams {\n accept?: string[];\n tags?: string[];\n scope?: string;\n own?: boolean;\n identity: any;\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\nexport const initializeState = ({ accept, tags, scope, own, identity }: InitParams): State => {\n return {\n showingFileDetails: null,\n selected: [],\n hasPreviouslyUploadedFiles: null,\n queryParams: {\n scope,\n limit: 50,\n sort: ListFilesSort.CREATED_ON_DESC,\n types: accept?.length ? accept : undefined,\n tags: tags?.length ? tags : undefined,\n createdBy: own ? identity.id : undefined\n },\n dragging: false,\n uploading: false\n };\n};\n\nexport const stateReducer: 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: 50,\n sort: ListFilesSort.CREATED_ON_DESC\n };\n break;\n }\n case \"showFileDetails\": {\n next.showingFileDetails = action.id;\n break;\n }\n case \"dragging\": {\n next.dragging = action.state;\n break;\n }\n case \"hasPreviouslyUploadedFiles\": {\n next.hasPreviouslyUploadedFiles = action.state;\n break;\n }\n }\n\n return next;\n};\n"],"mappings":";;;;;;;;IAEYA,aAAa;AAAA;AAAA,WAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;AAAA,GAAbA,aAAa,6BAAbA,aAAa;AA4DzB,IAAMC,aAAa,GAAG,QAAQ;AAEvB,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,KAAyB,EAAK;EACnD,IAAI,CAACA,KAAK,EAAE;IACR,OAAO;MACHC,kBAAkB,EAAEH;IACxB,CAAC;EACL;EACA,OAAO;IACHI,cAAc,EAAEF;EACpB,CAAC;AACL,CAAC;AAAC;AAEK,IAAMG,eAAe,GAAG,SAAlBA,eAAe,OAAkE;EAAA,IAA5DC,MAAM,QAANA,MAAM;IAAEC,IAAI,QAAJA,IAAI;IAAEL,KAAK,QAALA,KAAK;IAAEM,GAAG,QAAHA,GAAG;IAAEC,QAAQ,QAARA,QAAQ;EAChE,OAAO;IACHC,kBAAkB,EAAE,IAAI;IACxBC,QAAQ,EAAE,EAAE;IACZC,0BAA0B,EAAE,IAAI;IAChCC,WAAW,EAAE;MACTX,KAAK,EAALA,KAAK;MACLY,KAAK,EAAE,EAAE;MACTC,IAAI,EAAEhB,aAAa,CAACiB,eAAe;MACnCC,KAAK,EAAEX,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEY,MAAM,GAAGZ,MAAM,GAAGa,SAAS;MAC1CZ,IAAI,EAAEA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEW,MAAM,GAAGX,IAAI,GAAGY,SAAS;MACrCC,SAAS,EAAEZ,GAAG,GAAGC,QAAQ,CAACY,EAAE,GAAGF;IACnC,CAAC;IACDG,QAAQ,EAAE,KAAK;IACfC,SAAS,EAAE;EACf,CAAC;AACL,CAAC;AAAC;AAEK,IAAMC,YAAqB,GAAG,SAAxBA,YAAqB,CAAIC,KAAY,EAAEC,MAAM,EAAK;EAC3D,IAAMC,IAAW,mCACVF,KAAK,CACX;EACD,QAAQC,MAAM,CAACE,IAAI;IACf,KAAK,gBAAgB;MAAE;QACnB,IAAMC,aAAa,GAAGJ,KAAK,CAACd,QAAQ,CAACmB,SAAS,CAAC,UAAAC,IAAI;UAAA,OAAIA,IAAI,CAACC,GAAG,KAAKN,MAAM,CAACO,IAAI,CAACD,GAAG;QAAA,EAAC;QACpF,IAAIH,aAAa,GAAG,CAAC,EAAE;UACnBF,IAAI,CAAChB,QAAQ,CAACuB,IAAI,CAACR,MAAM,CAACO,IAAI,CAAC;QACnC,CAAC,MAAM;UACHN,IAAI,CAAChB,QAAQ,CAACwB,MAAM,CAACN,aAAa,EAAE,CAAC,CAAC;QAC1C;QACA;MACJ;IACA,KAAK,aAAa;MAAE;QAChBF,IAAI,CAAChB,QAAQ,GAAG,EAAE;QAClBgB,IAAI,CAACd,WAAW,2FACTY,KAAK,CAACZ,WAAW,GACjBa,MAAM,CAACb,WAAW;UACrBI,KAAK,EAAEQ,KAAK,CAACZ,WAAW,CAACI,KAAK;UAC9BH,KAAK,EAAE,EAAE;UACTC,IAAI,EAAEhB,aAAa,CAACiB;QAAe,EACtC;QACD;MACJ;IACA,KAAK,iBAAiB;MAAE;QACpBW,IAAI,CAACjB,kBAAkB,GAAGgB,MAAM,CAACL,EAAE;QACnC;MACJ;IACA,KAAK,UAAU;MAAE;QACbM,IAAI,CAACL,QAAQ,GAAGI,MAAM,CAACD,KAAK;QAC5B;MACJ;IACA,KAAK,4BAA4B;MAAE;QAC/BE,IAAI,CAACf,0BAA0B,GAAGc,MAAM,CAACD,KAAK;QAC9C;MACJ;EAAC;EAGL,OAAOE,IAAI;AACf,CAAC;AAAC"}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.FileManagerRendererModule = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _DefaultRenderer = require("./DefaultRenderer");
9
+ var _AcoRenderer = require("./AcoRenderer");
10
10
  var FileManagerRendererModule = function FileManagerRendererModule() {
11
- return /*#__PURE__*/_react.default.createElement(_DefaultRenderer.DefaultRenderer, null);
11
+ return /*#__PURE__*/_react.default.createElement(_AcoRenderer.AcoRenderer, null);
12
12
  };
13
13
  exports.FileManagerRendererModule = FileManagerRendererModule;
@@ -1 +1 @@
1
- {"version":3,"names":["FileManagerRendererModule"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { DefaultRenderer } from \"./DefaultRenderer\";\n\nexport const FileManagerRendererModule = () => {\n return <DefaultRenderer />;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,GAAS;EAC3C,oBAAO,6BAAC,gCAAe,OAAG;AAC9B,CAAC;AAAC"}
1
+ {"version":3,"names":["FileManagerRendererModule"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AcoRenderer } from \"./AcoRenderer\";\n\nexport const FileManagerRendererModule = () => {\n return <AcoRenderer />;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,GAAS;EAC3C,oBAAO,6BAAC,wBAAW,OAAG;AAC1B,CAAC;AAAC"}
@@ -58,8 +58,8 @@ var EditAction = function EditAction(props) {
58
58
  var file = props.file;
59
59
  var _useFileManagerApi = (0, _.useFileManagerApi)(),
60
60
  canEdit = _useFileManagerApi.canEdit;
61
- var _useFileManagerView = (0, _.useFileManagerView)(),
62
- uploadFile = _useFileManagerView.uploadFile;
61
+ var _useFileManagerAcoVie = (0, _.useFileManagerAcoView)(),
62
+ uploadFile = _useFileManagerAcoVie.uploadFile;
63
63
  var _React$useReducer = _react.default.useReducer(reducer, initialState),
64
64
  _React$useReducer2 = (0, _slicedToArray2.default)(_React$useReducer, 2),
65
65
  state = _React$useReducer2[0],
@@ -1 +1 @@
1
- {"version":3,"names":["toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","useFileManagerApi","canEdit","useFileManagerView","uploadFile","React","useReducer","dispatch","margin","src","blob","dataURLtoBlob","name"],"sources":["EditAction.tsx"],"sourcesContent":["import React from \"react\";\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { useFileManagerApi, useFileManagerView } from \"~/index\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\n\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\n\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\n\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\n\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n}\n\nexport const EditAction: React.FC<EditActionProps> = props => {\n const { file } = props;\n const { canEdit } = useFileManagerApi();\n const { uploadFile } = useFileManagerView();\n const [state, dispatch] = React.useReducer(reducer, initialState);\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n blob.name = file.name;\n uploadFile(blob);\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","useFileManagerApi","canEdit","useFileManagerAcoView","uploadFile","React","useReducer","dispatch","margin","src","blob","dataURLtoBlob","name"],"sources":["EditAction.tsx"],"sourcesContent":["import React from \"react\";\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { useFileManagerApi, useFileManagerAcoView } from \"~/index\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\n\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\n\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\n\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\n\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n}\n\nexport const EditAction: React.FC<EditActionProps> = props => {\n const { file } = props;\n const { canEdit } = useFileManagerApi();\n const { uploadFile } = useFileManagerAcoView();\n const [state, dispatch] = React.useReducer(reducer, initialState);\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n blob.name = file.name;\n uploadFile(blob);\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-file-manager",
3
- "version": "5.35.2-beta.0",
3
+ "version": "5.36.0-beta.0",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,13 +17,14 @@
17
17
  "@emotion/styled": "11.10.6",
18
18
  "@material-design-icons/svg": "0.14.3",
19
19
  "@types/react": "17.0.39",
20
- "@webiny/app": "^5.35.2-beta.0",
21
- "@webiny/app-admin": "^5.35.2-beta.0",
22
- "@webiny/app-security": "^5.35.2-beta.0",
23
- "@webiny/form": "^5.35.2-beta.0",
24
- "@webiny/plugins": "^5.35.2-beta.0",
25
- "@webiny/ui": "^5.35.2-beta.0",
26
- "@webiny/validation": "^5.35.2-beta.0",
20
+ "@webiny/app": "5.36.0-beta.0",
21
+ "@webiny/app-aco": "5.36.0-beta.0",
22
+ "@webiny/app-admin": "5.36.0-beta.0",
23
+ "@webiny/app-security": "5.36.0-beta.0",
24
+ "@webiny/form": "5.36.0-beta.0",
25
+ "@webiny/plugins": "5.36.0-beta.0",
26
+ "@webiny/ui": "5.36.0-beta.0",
27
+ "@webiny/validation": "5.36.0-beta.0",
27
28
  "apollo-cache": "1.3.5",
28
29
  "apollo-client": "2.6.10",
29
30
  "apollo-link": "1.2.14",
@@ -39,12 +40,17 @@
39
40
  "lodash": "4.17.21",
40
41
  "mime": "2.6.0",
41
42
  "minimatch": "5.1.6",
43
+ "mobx": "6.9.0",
44
+ "mobx-react-lite": "3.4.3",
45
+ "nanoid": "3.3.6",
42
46
  "prop-types": "15.8.1",
43
47
  "react": "17.0.2",
44
48
  "react-butterfiles": "1.3.3",
45
49
  "react-dom": "17.0.2",
46
50
  "react-hotkeyz": "1.0.4",
47
- "react-lazy-load": "3.1.14"
51
+ "react-lazy-load": "3.1.14",
52
+ "timeago-react": "2.0.1",
53
+ "use-deep-compare-effect": "1.8.1"
48
54
  },
49
55
  "devDependencies": {
50
56
  "@babel/cli": "7.20.7",
@@ -53,8 +59,8 @@
53
59
  "@babel/preset-react": "7.18.6",
54
60
  "@babel/preset-typescript": "7.18.6",
55
61
  "@svgr/webpack": "6.5.1",
56
- "@webiny/cli": "^5.35.2-beta.0",
57
- "@webiny/project-utils": "^5.35.2-beta.0",
62
+ "@webiny/cli": "5.36.0-beta.0",
63
+ "@webiny/project-utils": "5.36.0-beta.0",
58
64
  "rimraf": "3.0.2",
59
65
  "ttypescript": "1.5.15",
60
66
  "typescript": "4.7.4"
@@ -67,5 +73,5 @@
67
73
  "build": "yarn webiny run build",
68
74
  "watch": "yarn webiny run watch"
69
75
  },
70
- "gitHead": "d3f7b134892b6c5ea794e9e7dd4811b27cdf6eb1"
76
+ "gitHead": "c59b9cc5b96b7fd91388de93c7fff2d977d25220"
71
77
  }
@@ -0,0 +1,16 @@
1
+ import { TagItem } from "@webiny/app-aco/types";
2
+ interface GetTagsInitialParams {
3
+ scope?: string;
4
+ own?: boolean;
5
+ }
6
+ export declare const getTagsInitialParams: ({ scope, own }: GetTagsInitialParams) => {
7
+ tags_startsWith: string;
8
+ createdBy?: string | undefined;
9
+ } | {
10
+ tags_not_startsWith: string;
11
+ createdBy?: string | undefined;
12
+ };
13
+ export declare const tagsModifier: (scope?: string) => (tags: TagItem[]) => {
14
+ tag: string;
15
+ }[];
16
+ export {};