@webiny/app-file-manager 5.35.2 → 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,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.UploadingLabelFile = exports.UploadingLabel = exports.StatusWrapper = exports.StatusIndicator = exports.ProgressWrapper = exports.ProgressBarPercentage = exports.ProgressBar = exports.Percentage = exports.Icon = void 0;
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _react = require("@emotion/react");
10
+ var animateShow = /*#__PURE__*/(0, _react.keyframes)("0%{opacity:0;bottom:24px;}60%{opacity:1;}100%{opacity:1;bottom:16px;}label:animateShow;");
11
+ var StatusWrapper = /*#__PURE__*/(0, _styled.default)("div", {
12
+ label: "StatusWrapper",
13
+ target: "ex8csln0"
14
+ })("border-radius:28px;width:320px;transform:translate(-50%,-50%);position:absolute;box-shadow:0 2px 6px rgba(170,185,200,0.4);color:var(--mdc-theme-on-surface);background-color:#fff;left:calc(50vw - 160px);bottom:16px;display:flex;align-items:center;animation-name:", animateShow, ";animation-duration:1.5s;animation-timing-function:ease-out;z-index:10;");
15
+ exports.StatusWrapper = StatusWrapper;
16
+ var ProgressWrapper = /*#__PURE__*/(0, _styled.default)("div", {
17
+ label: "ProgressWrapper",
18
+ target: "ex8csln1"
19
+ })("display:flex;flex-direction:column;width:225px;align-items:center;justify-content:center;margin-left:15px;margin-top:-5px;");
20
+ exports.ProgressWrapper = ProgressWrapper;
21
+ var ProgressBar = /*#__PURE__*/(0, _styled.default)("div", {
22
+ label: "ProgressBar",
23
+ target: "ex8csln2"
24
+ })("top:0;z-index:1;height:5px;border-radius:5px;background-color:var(--mdc-theme-on-background);width:100%;overflow:hidden;");
25
+ exports.ProgressBar = ProgressBar;
26
+ var ProgressBarPercentage = /*#__PURE__*/(0, _styled.default)("span", {
27
+ label: "ProgressBarPercentage",
28
+ target: "ex8csln3"
29
+ })("display:block;height:100%;background-color:var(--mdc-theme-secondary);width:", function (props) {
30
+ return props.width || 0;
31
+ }, "%;");
32
+ exports.ProgressBarPercentage = ProgressBarPercentage;
33
+ var UploadingLabel = /*#__PURE__*/(0, _styled.default)("div", {
34
+ label: "UploadingLabel",
35
+ target: "ex8csln4"
36
+ })("z-index:2;padding:5px 0 6px 0;text-transform:uppercase;color:var(--mdc-theme-text-secondary-on-background);");
37
+ exports.UploadingLabel = UploadingLabel;
38
+ var UploadingLabelFile = /*#__PURE__*/(0, _styled.default)("span", {
39
+ label: "UploadingLabelFile",
40
+ target: "ex8csln5"
41
+ })("font-weight:600;");
42
+ exports.UploadingLabelFile = UploadingLabelFile;
43
+ var StatusIndicator = /*#__PURE__*/(0, _styled.default)("div", {
44
+ label: "StatusIndicator",
45
+ target: "ex8csln6"
46
+ })("width:56px !important;position:relative;display:block;z-index:2;background:var(--mdc-theme-secondary);line-height:56px;height:56px;border-radius:28px;width:100%;text-align:center;color:#fff;box-shadow:0 2px 6px rgba(170,185,200,0.4);");
47
+ exports.StatusIndicator = StatusIndicator;
48
+ var Percentage = /*#__PURE__*/(0, _styled.default)("span", {
49
+ label: "Percentage",
50
+ target: "ex8csln7"
51
+ })("font-weight:600;");
52
+ exports.Percentage = Percentage;
53
+ var Icon = /*#__PURE__*/(0, _styled.default)("img", {
54
+ label: "Icon",
55
+ target: "ex8csln8"
56
+ })("position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;fill:#fff;&.loading{width:75px;left:5px;top:5px;}");
57
+ exports.Icon = Icon;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["animateShow","keyframes","StatusWrapper","styled","ProgressWrapper","ProgressBar","ProgressBarPercentage","props","width","UploadingLabel","UploadingLabelFile","StatusIndicator","Percentage","Icon"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { keyframes } from \"@emotion/react\";\n\nconst animateShow = keyframes`\n 0% { \n opacity: 0;\n bottom: 24px;\n }\n 60% { \n opacity: 1; \n }\n 100% { \n opacity: 1;\n bottom: 16px;\n }\n`;\n\nexport const StatusWrapper = styled.div`\n border-radius: 28px;\n width: 320px;\n transform: translate(-50%, -50%);\n position: absolute;\n box-shadow: 0 2px 6px rgba(170, 185, 200, 0.4);\n color: var(--mdc-theme-on-surface);\n background-color: #fff;\n left: calc(50vw - 160px);\n bottom: 16px;\n display: flex;\n align-items: center;\n animation-name: ${animateShow};\n animation-duration: 1.5s;\n animation-timing-function: ease-out;\n z-index: 10;\n`;\n\nexport const ProgressWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 225px;\n align-items: center;\n justify-content: center;\n margin-left: 15px;\n margin-top: -5px;\n`;\n\nexport const ProgressBar = styled.div`\n top: 0;\n z-index: 1;\n height: 5px;\n border-radius: 5px;\n background-color: var(--mdc-theme-on-background);\n width: 100%;\n overflow: hidden;\n`;\n\nexport const ProgressBarPercentage = styled.span<{ width: string }>`\n display: block;\n height: 100%;\n background-color: var(--mdc-theme-secondary);\n width: ${props => props.width || 0}%;\n`;\n\nexport const UploadingLabel = styled.div`\n z-index: 2;\n padding: 5px 0 6px 0;\n text-transform: uppercase;\n color: var(--mdc-theme-text-secondary-on-background);\n`;\n\nexport const UploadingLabelFile = styled.span`\n font-weight: 600;\n`;\n\nexport const StatusIndicator = styled.div`\n width: 56px !important;\n position: relative;\n display: block;\n z-index: 2;\n background: var(--mdc-theme-secondary);\n line-height: 56px;\n height: 56px;\n border-radius: 28px;\n width: 100%;\n text-align: center;\n color: #fff;\n box-shadow: 0 2px 6px rgba(170, 185, 200, 0.4);\n`;\n\nexport const Percentage = styled.span`\n font-weight: 600;\n`;\n\nexport const Icon = styled.img`\n position: absolute;\n left: 50%;\n top: 50%;\n margin: -15px 0 0 -15px;\n fill: #fff;\n &.loading {\n width: 75px;\n left: 5px;\n top: 5px;\n }\n`;\n"],"mappings":";;;;;;;AAAA;AACA;AAEA,IAAMA,WAAW,oBAAGC,gBAAS,4FAY5B;AAEM,IAAMC,aAAa,oBAAGC,eAAM;EAAA;EAAA;AAAA,6QAYbH,WAAW,4EAIhC;AAAC;AAEK,IAAMI,eAAe,oBAAGD,eAAM;EAAA;EAAA;AAAA,gIAQpC;AAAC;AAEK,IAAME,WAAW,oBAAGF,eAAM;EAAA;EAAA;AAAA,8HAQhC;AAAC;AAEK,IAAMG,qBAAqB,oBAAGH,eAAM;EAAA;EAAA;AAAA,mFAI9B,UAAAI,KAAK;EAAA,OAAIA,KAAK,CAACC,KAAK,IAAI,CAAC;AAAA,QACrC;AAAC;AAEK,IAAMC,cAAc,oBAAGN,eAAM;EAAA;EAAA;AAAA,iHAKnC;AAAC;AAEK,IAAMO,kBAAkB,oBAAGP,eAAM;EAAA;EAAA;AAAA,sBAEvC;AAAC;AAEK,IAAMQ,eAAe,oBAAGR,eAAM;EAAA;EAAA;AAAA,+OAapC;AAAC;AAEK,IAAMS,UAAU,oBAAGT,eAAM;EAAA;EAAA;AAAA,sBAE/B;AAAC;AAEK,IAAMU,IAAI,oBAAGV,eAAM;EAAA;EAAA;AAAA,iHAWzB;AAAC"}
package/constants.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const ACO_TYPE = "FmFile";
2
+ export declare const FOLDER_ID_DEFAULT = "ROOT";
3
+ export declare const DEFAULT_SCOPE = "scope:";
package/constants.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FOLDER_ID_DEFAULT = exports.DEFAULT_SCOPE = exports.ACO_TYPE = void 0;
7
+ var ACO_TYPE = "FmFile";
8
+ exports.ACO_TYPE = ACO_TYPE;
9
+ var FOLDER_ID_DEFAULT = "ROOT";
10
+ exports.FOLDER_ID_DEFAULT = FOLDER_ID_DEFAULT;
11
+ var DEFAULT_SCOPE = "scope:";
12
+ exports.DEFAULT_SCOPE = DEFAULT_SCOPE;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ACO_TYPE","FOLDER_ID_DEFAULT","DEFAULT_SCOPE"],"sources":["constants.ts"],"sourcesContent":["export const ACO_TYPE = \"FmFile\";\nexport const FOLDER_ID_DEFAULT = \"ROOT\";\nexport const DEFAULT_SCOPE = \"scope:\";\n"],"mappings":";;;;;;AAAO,IAAMA,QAAQ,GAAG,QAAQ;AAAC;AAC1B,IAAMC,iBAAiB,GAAG,MAAM;AAAC;AACjC,IAAMC,aAAa,GAAG,QAAQ;AAAC"}
@@ -0,0 +1,11 @@
1
+ import { FileItem } from "@webiny/app-admin/types";
2
+ interface UseCopyFileParams {
3
+ file: {
4
+ key: FileItem["key"];
5
+ src?: FileItem["src"];
6
+ };
7
+ }
8
+ export declare const useCopyFile: ({ file }: UseCopyFileParams) => {
9
+ copyFileUrl: () => void;
10
+ };
11
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useCopyFile = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = require("react");
10
+ var _i18n = require("@webiny/app/i18n");
11
+ var _appAdmin = require("@webiny/app-admin");
12
+ var _FileManagerAcoViewProvider = require("../modules/FileManagerRenderer/FileManagerAcoViewProvider");
13
+ var _templateObject;
14
+ var t = _i18n.i18n.ns("app-admin/file-manager/hooks/use-copy-file");
15
+ var useCopyFile = function useCopyFile(_ref) {
16
+ var file = _ref.file;
17
+ var _useFileManagerAcoVie = (0, _FileManagerAcoViewProvider.useFileManagerAcoView)(),
18
+ settings = _useFileManagerAcoVie.settings;
19
+ var _useSnackbar = (0, _appAdmin.useSnackbar)(),
20
+ showSnackbar = _useSnackbar.showSnackbar;
21
+ var copyFileUrl = (0, _react.useCallback)(function () {
22
+ var fileSrc = file.src || (settings === null || settings === void 0 ? void 0 : settings.srcPrefix) + file.key;
23
+ navigator.clipboard.writeText(fileSrc);
24
+ showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["URL copied successfully."]))));
25
+ }, [file]);
26
+ return {
27
+ copyFileUrl: copyFileUrl
28
+ };
29
+ };
30
+ exports.useCopyFile = useCopyFile;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["t","i18n","ns","useCopyFile","file","useFileManagerAcoView","settings","useSnackbar","showSnackbar","copyFileUrl","useCallback","fileSrc","src","srcPrefix","key","navigator","clipboard","writeText"],"sources":["useCopyFile.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { useFileManagerAcoView } from \"~/modules/FileManagerRenderer/FileManagerAcoViewProvider\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/hooks/use-copy-file\");\n\ninterface UseCopyFileParams {\n file: {\n key: FileItem[\"key\"];\n src?: FileItem[\"src\"];\n };\n}\n\nexport const useCopyFile = ({ file }: UseCopyFileParams) => {\n const { settings } = useFileManagerAcoView();\n const { showSnackbar } = useSnackbar();\n\n const copyFileUrl = useCallback(() => {\n const fileSrc = file.src || settings?.srcPrefix + file.key;\n\n navigator.clipboard.writeText(fileSrc);\n showSnackbar(t`URL copied successfully.`);\n }, [file]);\n\n return {\n copyFileUrl\n };\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAAiG;AAGjG,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,4CAA4C,CAAC;AASxD,IAAMC,WAAW,GAAG,SAAdA,WAAW,OAAoC;EAAA,IAA9BC,IAAI,QAAJA,IAAI;EAC9B,4BAAqB,IAAAC,iDAAqB,GAAE;IAApCC,QAAQ,yBAARA,QAAQ;EAChB,mBAAyB,IAAAC,qBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EAEpB,IAAMC,WAAW,GAAG,IAAAC,kBAAW,EAAC,YAAM;IAClC,IAAMC,OAAO,GAAGP,IAAI,CAACQ,GAAG,IAAI,CAAAN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEO,SAAS,IAAGT,IAAI,CAACU,GAAG;IAE1DC,SAAS,CAACC,SAAS,CAACC,SAAS,CAACN,OAAO,CAAC;IACtCH,YAAY,CAACR,CAAC,4GAA2B;EAC7C,CAAC,EAAE,CAACI,IAAI,CAAC,CAAC;EAEV,OAAO;IACHK,WAAW,EAAXA;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -0,0 +1,9 @@
1
+ import { FileItem } from "@webiny/app-admin/types";
2
+ interface UseDeleteFileParams {
3
+ file: Pick<FileItem, "id" | "name">;
4
+ onDelete?: () => void;
5
+ }
6
+ export declare const useDeleteFile: ({ onDelete, file }: UseDeleteFileParams) => {
7
+ openDialogDeleteFile: () => void;
8
+ };
9
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useDeleteFile = void 0;
9
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
14
+ var _i18n = require("@webiny/app/i18n");
15
+ var _appAdmin = require("@webiny/app-admin");
16
+ var _FileManagerAcoViewProvider = require("../modules/FileManagerRenderer/FileManagerAcoViewProvider");
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
18
+ var t = _i18n.i18n.ns("app-admin/file-manager/hooks/use-delete-file");
19
+ var Filename = /*#__PURE__*/(0, _styled.default)("span", {
20
+ label: "Filename",
21
+ target: "e1njnt9r0"
22
+ })("font-weight:bold;");
23
+ var useDeleteFile = function useDeleteFile(_ref) {
24
+ var onDelete = _ref.onDelete,
25
+ file = _ref.file;
26
+ var _useFileManagerAcoVie = (0, _FileManagerAcoViewProvider.useFileManagerAcoView)(),
27
+ deleteFile = _useFileManagerAcoVie.deleteFile;
28
+ var _useSnackbar = (0, _appAdmin.useSnackbar)(),
29
+ showSnackbar = _useSnackbar.showSnackbar;
30
+ var _useConfirmationDialo = (0, _appAdmin.useConfirmationDialog)({
31
+ title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Delete file"]))),
32
+ message: file && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["You are about to delete file {name}"])))({
33
+ name: /*#__PURE__*/_react.default.createElement(Filename, null, file.name)
34
+ })), /*#__PURE__*/_react.default.createElement("p", null, t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Are you sure you want to continue?"]))))),
35
+ style: {
36
+ zIndex: 100
37
+ },
38
+ dataTestId: "fm-delete-file-confirmation-dialog"
39
+ }),
40
+ showConfirmation = _useConfirmationDialo.showConfirmation;
41
+ var openDialogDeleteFile = (0, _react.useCallback)(function () {
42
+ return showConfirmation( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
43
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
44
+ while (1) switch (_context.prev = _context.next) {
45
+ case 0:
46
+ _context.next = 2;
47
+ return deleteFile(file.id);
48
+ case 2:
49
+ showSnackbar(t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["File deleted successfully."]))));
50
+ if (onDelete && typeof onDelete === "function") {
51
+ onDelete();
52
+ }
53
+ case 4:
54
+ case "end":
55
+ return _context.stop();
56
+ }
57
+ }, _callee);
58
+ })));
59
+ }, [file]);
60
+ return {
61
+ openDialogDeleteFile: openDialogDeleteFile
62
+ };
63
+ };
64
+ exports.useDeleteFile = useDeleteFile;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["t","i18n","ns","Filename","styled","useDeleteFile","onDelete","file","useFileManagerAcoView","deleteFile","useSnackbar","showSnackbar","useConfirmationDialog","title","message","name","style","zIndex","dataTestId","showConfirmation","openDialogDeleteFile","useCallback","id"],"sources":["useDeleteFile.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useConfirmationDialog, useSnackbar } from \"@webiny/app-admin\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\nimport { useFileManagerAcoView } from \"~/modules/FileManagerRenderer/FileManagerAcoViewProvider\";\n\nconst t = i18n.ns(\"app-admin/file-manager/hooks/use-delete-file\");\n\ninterface UseDeleteFileParams {\n file: Pick<FileItem, \"id\" | \"name\">;\n onDelete?: () => void;\n}\n\nconst Filename = styled(\"span\")`\n font-weight: bold;\n`;\n\nexport const useDeleteFile = ({ onDelete, file }: UseDeleteFileParams) => {\n const { deleteFile } = useFileManagerAcoView();\n const { showSnackbar } = useSnackbar();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Delete file`,\n message: file && (\n <>\n <p>\n {t`You are about to delete file {name}`({\n name: <Filename>{file.name}</Filename>\n })}\n </p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n ),\n style: { zIndex: 100 },\n dataTestId: \"fm-delete-file-confirmation-dialog\"\n });\n\n const openDialogDeleteFile = useCallback(\n () =>\n showConfirmation(async () => {\n await deleteFile(file.id);\n\n showSnackbar(t`File deleted successfully.`);\n\n if (onDelete && typeof onDelete === \"function\") {\n onDelete();\n }\n }),\n [file]\n );\n\n return {\n openDialogDeleteFile\n };\n};\n"],"mappings":";;;;;;;;;;;AAAA;AAEA;AACA;AACA;AAGA;AAAiG;AAEjG,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,8CAA8C,CAAC;AAOjE,IAAMC,QAAQ,oBAAGC,eAAM,EAAC,MAAM;EAAA;EAAA;AAAA,uBAE7B;AAEM,IAAMC,aAAa,GAAG,SAAhBA,aAAa,OAAgD;EAAA,IAA1CC,QAAQ,QAARA,QAAQ;IAAEC,IAAI,QAAJA,IAAI;EAC1C,4BAAuB,IAAAC,iDAAqB,GAAE;IAAtCC,UAAU,yBAAVA,UAAU;EAClB,mBAAyB,IAAAC,qBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EAEpB,4BAA6B,IAAAC,+BAAqB,EAAC;MAC/CC,KAAK,EAAEb,CAAC,8FAAa;MACrBc,OAAO,EAAEP,IAAI,iBACT,yEACI,wCACKP,CAAC,yHAAsC;QACpCe,IAAI,eAAE,6BAAC,QAAQ,QAAER,IAAI,CAACQ,IAAI;MAC9B,CAAC,CAAC,CACF,eACJ,wCAAIf,CAAC,wHAAyC,CAErD;MACDgB,KAAK,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MACtBC,UAAU,EAAE;IAChB,CAAC,CAAC;IAdMC,gBAAgB,yBAAhBA,gBAAgB;EAgBxB,IAAMC,oBAAoB,GAAG,IAAAC,kBAAW,EACpC;IAAA,OACIF,gBAAgB,sGAAC;MAAA;QAAA;UAAA;YAAA;YAAA,OACPV,UAAU,CAACF,IAAI,CAACe,EAAE,CAAC;UAAA;YAEzBX,YAAY,CAACX,CAAC,gHAA6B;YAE3C,IAAIM,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;cAC5CA,QAAQ,EAAE;YACd;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA,CACJ,GAAC;EAAA,GACN,CAACC,IAAI,CAAC,CACT;EAED,OAAO;IACHa,oBAAoB,EAApBA;EACJ,CAAC;AACL,CAAC;AAAC"}
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { useFile } from "./components/FileDetails";
2
2
  export { useFileManagerApi } from "./modules/FileManagerApiProvider/FileManagerApiContext";
3
3
  export { useFileManagerView } from "./modules/FileManagerRenderer/FileManagerViewProvider";
4
+ export { useFileManagerAcoView } from "./modules/FileManagerRenderer/FileManagerAcoViewProvider";
4
5
  export * from "./FileManagerFileTypePlugin";
package/index.js CHANGED
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  var _exportNames = {
7
7
  useFile: true,
8
8
  useFileManagerApi: true,
9
- useFileManagerView: true
9
+ useFileManagerView: true,
10
+ useFileManagerAcoView: true
10
11
  };
11
12
  Object.defineProperty(exports, "useFile", {
12
13
  enumerable: true,
@@ -14,6 +15,12 @@ Object.defineProperty(exports, "useFile", {
14
15
  return _FileDetails.useFile;
15
16
  }
16
17
  });
18
+ Object.defineProperty(exports, "useFileManagerAcoView", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _FileManagerAcoViewProvider.useFileManagerAcoView;
22
+ }
23
+ });
17
24
  Object.defineProperty(exports, "useFileManagerApi", {
18
25
  enumerable: true,
19
26
  get: function get() {
@@ -29,6 +36,7 @@ Object.defineProperty(exports, "useFileManagerView", {
29
36
  var _FileDetails = require("./components/FileDetails");
30
37
  var _FileManagerApiContext = require("./modules/FileManagerApiProvider/FileManagerApiContext");
31
38
  var _FileManagerViewProvider = require("./modules/FileManagerRenderer/FileManagerViewProvider");
39
+ var _FileManagerAcoViewProvider = require("./modules/FileManagerRenderer/FileManagerAcoViewProvider");
32
40
  var _FileManagerFileTypePlugin = require("./FileManagerFileTypePlugin");
33
41
  Object.keys(_FileManagerFileTypePlugin).forEach(function (key) {
34
42
  if (key === "default" || key === "__esModule") return;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export { useFile } from \"./components/FileDetails\";\nexport { useFileManagerApi } from \"./modules/FileManagerApiProvider/FileManagerApiContext\";\nexport { useFileManagerView } from \"./modules/FileManagerRenderer/FileManagerViewProvider\";\nexport * from \"./FileManagerFileTypePlugin\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export { useFile } from \"./components/FileDetails\";\nexport { useFileManagerApi } from \"./modules/FileManagerApiProvider/FileManagerApiContext\";\nexport { useFileManagerView } from \"./modules/FileManagerRenderer/FileManagerViewProvider\";\nexport { useFileManagerAcoView } from \"./modules/FileManagerRenderer/FileManagerAcoViewProvider\";\nexport * from \"./FileManagerFileTypePlugin\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="web" />
2
2
  import React from "react";
3
- import { ListFilesListFilesResponse, ListFilesQueryVariables, ListFileTagsQueryVariables } from "../graphql";
3
+ import { ListFileTagsQueryVariables, ListFilesListFilesResponse, ListFilesQueryVariables } from "../graphql";
4
4
  import { FileItem } from "@webiny/app-admin/types";
5
5
  import { Settings } from "../../../types";
6
6
  export interface ListTagsResponseItem {
@@ -12,10 +12,11 @@ export interface FileManagerApiContextData<TFileItem extends FileItem = FileItem
12
12
  canCreate: boolean;
13
13
  canEdit: (file: TFileItem) => boolean;
14
14
  canDelete: (file: TFileItem) => boolean;
15
- createFile: (data: TFileItem) => Promise<TFileItem | undefined>;
15
+ createFile: (data: TFileItem, meta: Record<string, any>) => Promise<TFileItem | undefined>;
16
16
  updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;
17
17
  deleteFile: (id: string) => Promise<void>;
18
- uploadFile: (file: File, options?: UploadFileOptions) => Promise<TFileItem | undefined>;
18
+ getFile: (id: string) => Promise<TFileItem | undefined>;
19
+ uploadFile: (file: File, meta: Record<string, any>, options?: UploadFileOptions) => Promise<TFileItem | undefined>;
19
20
  listFiles: (params?: ListFilesQueryVariables) => Promise<{
20
21
  files: TFileItem[];
21
22
  meta: ListFilesListFilesResponse["meta"];
@@ -29,6 +30,11 @@ export interface FileManagerApiProviderProps {
29
30
  }
30
31
  interface UploadFileOptions {
31
32
  tags?: string[];
33
+ onProgress?: (params: {
34
+ sent: number;
35
+ total: number;
36
+ percentage: number;
37
+ }) => void;
32
38
  }
33
39
  interface ListTagsOptions {
34
40
  where?: ListFileTagsQueryVariables["where"];
@@ -74,7 +74,7 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
74
74
  return true;
75
75
  }, [fmFilePermission]);
76
76
  var createFile = /*#__PURE__*/function () {
77
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data) {
77
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(data, meta) {
78
78
  var _response$data;
79
79
  var response;
80
80
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
@@ -84,7 +84,8 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
84
84
  return client.mutate({
85
85
  mutation: _graphql.CREATE_FILE,
86
86
  variables: {
87
- data: data
87
+ data: data,
88
+ meta: meta
88
89
  }
89
90
  });
90
91
  case 2:
@@ -96,7 +97,7 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
96
97
  }
97
98
  }, _callee);
98
99
  }));
99
- return function createFile(_x) {
100
+ return function createFile(_x, _x2) {
100
101
  return _ref2.apply(this, arguments);
101
102
  };
102
103
  }();
@@ -119,7 +120,7 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
119
120
  }
120
121
  }, _callee2);
121
122
  }));
122
- return function updateFile(_x2, _x3) {
123
+ return function updateFile(_x3, _x4) {
123
124
  return _ref3.apply(this, arguments);
124
125
  };
125
126
  }();
@@ -141,74 +142,101 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
141
142
  }
142
143
  }, _callee3);
143
144
  }));
144
- return function deleteFile(_x4) {
145
+ return function deleteFile(_x5) {
145
146
  return _ref4.apply(this, arguments);
146
147
  };
147
148
  }();
149
+ var getFile = /*#__PURE__*/function () {
150
+ var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4(id) {
151
+ var _response$data2;
152
+ var response;
153
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
154
+ while (1) switch (_context4.prev = _context4.next) {
155
+ case 0:
156
+ _context4.next = 2;
157
+ return client.query({
158
+ query: _graphql.GET_FILE,
159
+ variables: {
160
+ id: id
161
+ }
162
+ });
163
+ case 2:
164
+ response = _context4.sent;
165
+ return _context4.abrupt("return", (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.fileManager.getFile.data);
166
+ case 4:
167
+ case "end":
168
+ return _context4.stop();
169
+ }
170
+ }, _callee4);
171
+ }));
172
+ return function getFile(_x6) {
173
+ return _ref5.apply(this, arguments);
174
+ };
175
+ }();
148
176
  var listFiles = /*#__PURE__*/function () {
149
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
177
+ var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
150
178
  var params,
151
179
  _yield$client$query,
152
180
  data,
153
181
  _data$fileManager$lis,
154
182
  files,
155
183
  meta,
156
- _args4 = arguments;
157
- return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
158
- while (1) switch (_context4.prev = _context4.next) {
184
+ _args5 = arguments;
185
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
186
+ while (1) switch (_context5.prev = _context5.next) {
159
187
  case 0:
160
- params = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
161
- _context4.next = 3;
188
+ params = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
189
+ _context5.next = 3;
162
190
  return client.query({
163
191
  query: _graphql.LIST_FILES,
164
192
  variables: params,
165
193
  fetchPolicy: "no-cache"
166
194
  });
167
195
  case 3:
168
- _yield$client$query = _context4.sent;
196
+ _yield$client$query = _context5.sent;
169
197
  data = _yield$client$query.data;
170
198
  _data$fileManager$lis = data.fileManager.listFiles, files = _data$fileManager$lis.data, meta = _data$fileManager$lis.meta;
171
- return _context4.abrupt("return", {
199
+ return _context5.abrupt("return", {
172
200
  files: files,
173
201
  meta: meta
174
202
  });
175
203
  case 7:
176
204
  case "end":
177
- return _context4.stop();
205
+ return _context5.stop();
178
206
  }
179
- }, _callee4);
207
+ }, _callee5);
180
208
  }));
181
209
  return function listFiles() {
182
- return _ref5.apply(this, arguments);
210
+ return _ref6.apply(this, arguments);
183
211
  };
184
212
  }();
185
213
  var listTags = /*#__PURE__*/function () {
186
- var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
214
+ var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6() {
187
215
  var params,
188
216
  _yield$client$query2,
189
217
  data,
190
- _args5 = arguments;
191
- return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
192
- while (1) switch (_context5.prev = _context5.next) {
218
+ _args6 = arguments;
219
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
220
+ while (1) switch (_context6.prev = _context6.next) {
193
221
  case 0:
194
- params = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
195
- _context5.next = 3;
222
+ params = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {};
223
+ _context6.next = 3;
196
224
  return client.query({
197
225
  query: _graphql.LIST_TAGS,
198
226
  variables: params
199
227
  });
200
228
  case 3:
201
- _yield$client$query2 = _context5.sent;
229
+ _yield$client$query2 = _context6.sent;
202
230
  data = _yield$client$query2.data;
203
- return _context5.abrupt("return", data.fileManager.listTags.data);
231
+ return _context6.abrupt("return", data.fileManager.listTags.data);
204
232
  case 6:
205
233
  case "end":
206
- return _context5.stop();
234
+ return _context6.stop();
207
235
  }
208
- }, _callee5);
236
+ }, _callee6);
209
237
  }));
210
238
  return function listTags() {
211
- return _ref6.apply(this, arguments);
239
+ return _ref7.apply(this, arguments);
212
240
  };
213
241
  }();
214
242
 
@@ -218,59 +246,60 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
218
246
  * @param File file
219
247
  */
220
248
  var uploadFile = /*#__PURE__*/function () {
221
- var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6(file) {
249
+ var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee7(file, meta) {
222
250
  var options,
223
251
  response,
224
252
  tags,
225
- _args6 = arguments;
226
- return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
227
- while (1) switch (_context6.prev = _context6.next) {
253
+ _args7 = arguments;
254
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee7$(_context7) {
255
+ while (1) switch (_context7.prev = _context7.next) {
228
256
  case 0:
229
- options = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {};
230
- _context6.next = 3;
231
- return (0, _getFileUploader.getFileUploader)()(file, {
232
- apolloClient: client
257
+ options = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : {};
258
+ _context7.next = 3;
259
+ return (0, _getFileUploader.getFileUploader)().upload(file, {
260
+ apolloClient: client,
261
+ onProgress: options.onProgress
233
262
  });
234
263
  case 3:
235
- response = _context6.sent;
264
+ response = _context7.sent;
236
265
  tags = (options === null || options === void 0 ? void 0 : options.tags) || [];
237
- _context6.next = 7;
266
+ _context7.next = 7;
238
267
  return createFile((0, _objectSpread2.default)((0, _objectSpread2.default)({}, response), {}, {
239
268
  tags: tags
240
- }));
269
+ }), meta);
241
270
  case 7:
242
- return _context6.abrupt("return", _context6.sent);
271
+ return _context7.abrupt("return", _context7.sent);
243
272
  case 8:
244
273
  case "end":
245
- return _context6.stop();
274
+ return _context7.stop();
246
275
  }
247
- }, _callee6);
276
+ }, _callee7);
248
277
  }));
249
- return function uploadFile(_x5) {
250
- return _ref7.apply(this, arguments);
278
+ return function uploadFile(_x7, _x8) {
279
+ return _ref8.apply(this, arguments);
251
280
  };
252
281
  }();
253
282
  var getSettings = /*#__PURE__*/function () {
254
- var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee7() {
283
+ var _ref9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee8() {
255
284
  var settingsQuery;
256
- return (0, _regeneratorRuntime2.default)().wrap(function _callee7$(_context7) {
257
- while (1) switch (_context7.prev = _context7.next) {
285
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee8$(_context8) {
286
+ while (1) switch (_context8.prev = _context8.next) {
258
287
  case 0:
259
- _context7.next = 2;
288
+ _context8.next = 2;
260
289
  return client.query({
261
290
  query: _graphql.GET_FILE_SETTINGS
262
291
  });
263
292
  case 2:
264
- settingsQuery = _context7.sent;
265
- return _context7.abrupt("return", settingsQuery.data.fileManager.getSettings.data || {});
293
+ settingsQuery = _context8.sent;
294
+ return _context8.abrupt("return", settingsQuery.data.fileManager.getSettings.data || {});
266
295
  case 4:
267
296
  case "end":
268
- return _context7.stop();
297
+ return _context8.stop();
269
298
  }
270
- }, _callee7);
299
+ }, _callee8);
271
300
  }));
272
301
  return function getSettings() {
273
- return _ref8.apply(this, arguments);
302
+ return _ref9.apply(this, arguments);
274
303
  };
275
304
  }();
276
305
  var value = {
@@ -282,6 +311,7 @@ var FileManagerApiProvider = function FileManagerApiProvider(_ref) {
282
311
  updateFile: updateFile,
283
312
  deleteFile: deleteFile,
284
313
  uploadFile: uploadFile,
314
+ getFile: getFile,
285
315
  listFiles: listFiles,
286
316
  listTags: listTags,
287
317
  getSettings: getSettings
@@ -1 +1 @@
1
- {"version":3,"names":["FileManagerApiContext","React","createContext","undefined","FileManagerApiProvider","children","useSecurity","identity","getPermission","client","useApolloClient","fmFilePermission","useMemo","canDelete","useCallback","item","own","identityId","id","login","createdBy","rwd","includes","canRead","Boolean","canCreate","canEdit","creatorId","createFile","data","mutate","mutation","CREATE_FILE","variables","response","fileManager","updateFile","UPDATE_FILE","deleteFile","DELETE_FILE","listFiles","params","query","LIST_FILES","fetchPolicy","files","meta","listTags","LIST_TAGS","uploadFile","file","options","getFileUploader","apolloClient","tags","getSettings","GET_FILE_SETTINGS","settingsQuery","value"],"sources":["FileManagerApiContext.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport {\n CREATE_FILE,\n CreateFileMutationResponse,\n CreateFileMutationVariables,\n DELETE_FILE,\n DeleteFileMutationResponse,\n DeleteFileMutationVariables,\n GET_FILE_SETTINGS,\n GetFileManagerSettingsQueryResponse,\n LIST_FILES,\n LIST_TAGS,\n ListFilesListFilesResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables,\n ListFileTagsQueryResponse,\n ListFileTagsQueryVariables,\n UPDATE_FILE,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables\n} from \"../graphql\";\nimport { FileItem, FileManagerSecurityPermission } from \"@webiny/app-admin/types\";\nimport { getFileUploader } from \"./getFileUploader\";\nimport { Settings } from \"~/types\";\n\nexport interface ListTagsResponseItem {\n tag: string;\n count: number;\n}\n\nexport interface FileManagerApiContextData<TFileItem extends FileItem = FileItem> {\n canRead: boolean;\n canCreate: boolean;\n canEdit: (file: TFileItem) => boolean;\n canDelete: (file: TFileItem) => boolean;\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 listFiles: (\n params?: ListFilesQueryVariables\n ) => Promise<{ files: TFileItem[]; meta: ListFilesListFilesResponse[\"meta\"] }>;\n listTags: (params?: ListTagsOptions) => Promise<ListTagsResponseItem[]>;\n getSettings(): Promise<Settings>;\n}\n\nexport const FileManagerApiContext = React.createContext<FileManagerApiContextData | undefined>(\n undefined\n);\n\nexport interface FileManagerApiProviderProps {\n children: React.ReactNode;\n}\n\ninterface UploadFileOptions {\n tags?: string[];\n}\n\ninterface ListTagsOptions {\n where?: ListFileTagsQueryVariables[\"where\"];\n}\n\nconst FileManagerApiProvider = ({ children }: FileManagerApiProviderProps) => {\n const { identity, getPermission } = useSecurity();\n const client = useApolloClient();\n\n const fmFilePermission = useMemo<FileManagerSecurityPermission | null>(() => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n\n const canDelete = useCallback(\n (item: FileItem) => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n const identityId = identity ? identity.id || identity.login : null;\n if (!identityId) {\n return false;\n }\n return item.createdBy.id === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"d\");\n }\n return true;\n },\n [fmFilePermission]\n );\n\n const canRead = useMemo(() => {\n return Boolean(fmFilePermission);\n }, [fmFilePermission]);\n\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\n const canEdit = useCallback(\n (item: FileItem) => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = 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 createFile = async (data: FileItem) => {\n const response = await client.mutate<\n CreateFileMutationResponse,\n CreateFileMutationVariables\n >({\n mutation: CREATE_FILE,\n variables: {\n data\n }\n });\n\n return response.data?.fileManager.createFile.data;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id,\n data\n }\n });\n };\n\n const deleteFile = async (id: string) => {\n await client.mutate<DeleteFileMutationResponse, DeleteFileMutationVariables>({\n mutation: DELETE_FILE,\n variables: {\n id\n }\n });\n };\n\n const listFiles: FileManagerApiContextData[\"listFiles\"] = async (params = {}) => {\n const { data } = await client.query<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: params,\n fetchPolicy: \"no-cache\"\n });\n const { data: files, meta } = data.fileManager.listFiles;\n return { files, meta };\n };\n\n const listTags = async (params = {}) => {\n const { data } = await client.query<ListFileTagsQueryResponse>({\n query: LIST_TAGS,\n variables: params\n });\n\n return data.fileManager.listTags.data;\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, options: UploadFileOptions = {}) => {\n const response = await getFileUploader()(file, { apolloClient: client });\n\n const tags = options?.tags || [];\n\n return await createFile({ ...response, tags });\n };\n\n const getSettings = async () => {\n const settingsQuery = await client.query<GetFileManagerSettingsQueryResponse>({\n query: GET_FILE_SETTINGS\n });\n return settingsQuery.data.fileManager.getSettings.data || {};\n };\n\n const value: FileManagerApiContextData = {\n canRead,\n canCreate,\n canEdit,\n canDelete,\n createFile,\n updateFile,\n deleteFile,\n uploadFile,\n listFiles,\n listTags,\n getSettings\n };\n\n return (\n <FileManagerApiContext.Provider value={value}>{children}</FileManagerApiContext.Provider>\n );\n};\n\nexport { FileManagerApiProvider };\n"],"mappings":"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"}
1
+ {"version":3,"names":["FileManagerApiContext","React","createContext","undefined","FileManagerApiProvider","children","useSecurity","identity","getPermission","client","useApolloClient","fmFilePermission","useMemo","canDelete","useCallback","item","own","identityId","id","login","createdBy","rwd","includes","canRead","Boolean","canCreate","canEdit","creatorId","createFile","data","meta","mutate","mutation","CREATE_FILE","variables","response","fileManager","updateFile","UPDATE_FILE","deleteFile","DELETE_FILE","getFile","query","GET_FILE","listFiles","params","LIST_FILES","fetchPolicy","files","listTags","LIST_TAGS","uploadFile","file","options","getFileUploader","upload","apolloClient","onProgress","tags","getSettings","GET_FILE_SETTINGS","settingsQuery","value"],"sources":["FileManagerApiContext.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport {\n CREATE_FILE,\n CreateFileMutationResponse,\n CreateFileMutationVariables,\n DELETE_FILE,\n DeleteFileMutationResponse,\n DeleteFileMutationVariables,\n FileInput,\n GET_FILE,\n GET_FILE_SETTINGS,\n GetFileManagerSettingsQueryResponse,\n LIST_FILES,\n LIST_TAGS,\n ListFileTagsQueryResponse,\n ListFileTagsQueryVariables,\n ListFilesListFilesResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables,\n UPDATE_FILE,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables\n} from \"../graphql\";\nimport { FileItem, FileManagerSecurityPermission } from \"@webiny/app-admin/types\";\nimport { getFileUploader } from \"./getFileUploader\";\nimport { Settings } from \"~/types\";\n\nexport interface ListTagsResponseItem {\n tag: string;\n count: number;\n}\n\nexport interface FileManagerApiContextData<TFileItem extends FileItem = FileItem> {\n canRead: boolean;\n canCreate: boolean;\n canEdit: (file: TFileItem) => boolean;\n canDelete: (file: TFileItem) => boolean;\n createFile: (data: TFileItem, meta: Record<string, any>) => Promise<TFileItem | undefined>;\n updateFile: (id: string, data: Partial<TFileItem>) => Promise<void>;\n deleteFile: (id: string) => Promise<void>;\n getFile: (id: string) => Promise<TFileItem | undefined>;\n uploadFile: (\n file: File,\n meta: Record<string, any>,\n options?: UploadFileOptions\n ) => Promise<TFileItem | undefined>;\n listFiles: (\n params?: ListFilesQueryVariables\n ) => Promise<{ files: TFileItem[]; meta: ListFilesListFilesResponse[\"meta\"] }>;\n listTags: (params?: ListTagsOptions) => Promise<ListTagsResponseItem[]>;\n getSettings(): Promise<Settings>;\n}\n\nexport const FileManagerApiContext = React.createContext<FileManagerApiContextData | undefined>(\n undefined\n);\n\nexport interface FileManagerApiProviderProps {\n children: React.ReactNode;\n}\n\ninterface UploadFileOptions {\n tags?: string[];\n onProgress?: (params: { sent: number; total: number; percentage: number }) => void;\n}\n\ninterface ListTagsOptions {\n where?: ListFileTagsQueryVariables[\"where\"];\n}\n\nconst FileManagerApiProvider = ({ children }: FileManagerApiProviderProps) => {\n const { identity, getPermission } = useSecurity();\n const client = useApolloClient();\n\n const fmFilePermission = useMemo<FileManagerSecurityPermission | null>(() => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n\n const canDelete = useCallback(\n (item: FileItem) => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n const identityId = identity ? identity.id || identity.login : null;\n if (!identityId) {\n return false;\n }\n return item.createdBy.id === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"d\");\n }\n return true;\n },\n [fmFilePermission]\n );\n\n const canRead = useMemo(() => {\n return Boolean(fmFilePermission);\n }, [fmFilePermission]);\n\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\n const canEdit = useCallback(\n (item: FileItem) => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = 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 createFile = async (data: FileInput, meta: Record<string, any>) => {\n const response = await client.mutate<\n CreateFileMutationResponse,\n CreateFileMutationVariables\n >({\n mutation: CREATE_FILE,\n variables: {\n data,\n meta\n }\n });\n\n return response.data?.fileManager.createFile.data;\n };\n\n const updateFile = async (id: string, data: Partial<FileItem>) => {\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id,\n data\n }\n });\n };\n\n const deleteFile = async (id: string) => {\n await client.mutate<DeleteFileMutationResponse, DeleteFileMutationVariables>({\n mutation: DELETE_FILE,\n variables: {\n id\n }\n });\n };\n\n const getFile = async (id: string) => {\n const response = await client.query({\n query: GET_FILE,\n variables: {\n id\n }\n });\n\n return response.data?.fileManager.getFile.data;\n };\n\n const listFiles: FileManagerApiContextData[\"listFiles\"] = async (params = {}) => {\n const { data } = await client.query<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: params,\n fetchPolicy: \"no-cache\"\n });\n const { data: files, meta } = data.fileManager.listFiles;\n return { files, meta };\n };\n\n const listTags = async (params = {}) => {\n const { data } = await client.query<ListFileTagsQueryResponse>({\n query: LIST_TAGS,\n variables: params\n });\n\n return data.fileManager.listTags.data;\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 (\n file: File,\n meta: Record<string, any>,\n options: UploadFileOptions = {}\n ) => {\n const response = await getFileUploader().upload(file, {\n apolloClient: client,\n onProgress: options.onProgress\n });\n\n const tags = options?.tags || [];\n\n return await createFile({ ...response, tags }, meta);\n };\n\n const getSettings = async () => {\n const settingsQuery = await client.query<GetFileManagerSettingsQueryResponse>({\n query: GET_FILE_SETTINGS\n });\n return settingsQuery.data.fileManager.getSettings.data || {};\n };\n\n const value: FileManagerApiContextData = {\n canRead,\n canCreate,\n canEdit,\n canDelete,\n createFile,\n updateFile,\n deleteFile,\n uploadFile,\n getFile,\n listFiles,\n listTags,\n getSettings\n };\n\n return (\n <FileManagerApiContext.Provider value={value}>{children}</FileManagerApiContext.Provider>\n );\n};\n\nexport { FileManagerApiProvider };\n"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AAuBA;AA6BO,IAAMA,qBAAqB,gBAAGC,cAAK,CAACC,aAAa,CACpDC,SAAS,CACZ;AAAC;AAeF,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,OAAkD;EAAA,IAA5CC,QAAQ,QAARA,QAAQ;EACtC,mBAAoC,IAAAC,wBAAW,GAAE;IAAzCC,QAAQ,gBAARA,QAAQ;IAAEC,aAAa,gBAAbA,aAAa;EAC/B,IAAMC,MAAM,GAAG,IAAAC,2BAAe,GAAE;EAEhC,IAAMC,gBAAgB,GAAG,IAAAC,cAAO,EAAuC,YAAM;IACzE,OAAOJ,aAAa,CAAgC,SAAS,CAAC;EAClE,CAAC,EAAE,CAACD,QAAQ,CAAC,CAAC;EAEd,IAAMM,SAAS,GAAG,IAAAC,kBAAW,EACzB,UAACC,IAAc,EAAK;IAChB;IACA,IAAI,CAACJ,gBAAgB,EAAE;MACnB,OAAO,KAAK;IAChB;IAEA,IAAIA,gBAAgB,CAACK,GAAG,EAAE;MACtB,IAAMC,UAAU,GAAGV,QAAQ,GAAGA,QAAQ,CAACW,EAAE,IAAIX,QAAQ,CAACY,KAAK,GAAG,IAAI;MAClE,IAAI,CAACF,UAAU,EAAE;QACb,OAAO,KAAK;MAChB;MACA,OAAOF,IAAI,CAACK,SAAS,CAACF,EAAE,KAAKD,UAAU;IAC3C;IAEA,IAAI,OAAON,gBAAgB,CAACU,GAAG,KAAK,QAAQ,EAAE;MAC1C,OAAOV,gBAAgB,CAACU,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;IAC7C;IACA,OAAO,IAAI;EACf,CAAC,EACD,CAACX,gBAAgB,CAAC,CACrB;EAED,IAAMY,OAAO,GAAG,IAAAX,cAAO,EAAC,YAAM;IAC1B,OAAOY,OAAO,CAACb,gBAAgB,CAAC;EACpC,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,IAAMc,SAAS,GAAG,IAAAb,cAAO,EAAC,YAAM;IAC5B;IACA,IAAI,CAACD,gBAAgB,EAAE;MACnB,OAAO,KAAK;IAChB;IAEA,IAAIA,gBAAgB,CAACK,GAAG,EAAE;MACtB,OAAO,IAAI;IACf;IAEA,IAAI,OAAOL,gBAAgB,CAACU,GAAG,KAAK,QAAQ,EAAE;MAC1C,OAAOV,gBAAgB,CAACU,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;IAC7C;IAEA,OAAO,IAAI;EACf,CAAC,EAAE,CAACX,gBAAgB,CAAC,CAAC;EAEtB,IAAMe,OAAO,GAAG,IAAAZ,kBAAW,EACvB,UAACC,IAAc,EAAK;IAChB;IACA,IAAI,CAACJ,gBAAgB,EAAE;MACnB,OAAO,KAAK;IAChB;IACA,IAAMgB,SAAS,GAAGZ,IAAI,CAACK,SAAS,CAACF,EAAE;IAEnC,IAAIP,gBAAgB,CAACK,GAAG,IAAIW,SAAS,EAAE;MACnC,IAAMV,UAAU,GAAGV,QAAQ,GAAGA,QAAQ,CAACW,EAAE,IAAIX,QAAQ,CAACY,KAAK,GAAG,IAAI;MAClE,OAAOQ,SAAS,KAAKV,UAAU;IACnC;IAEA,IAAI,OAAON,gBAAgB,CAACU,GAAG,KAAK,QAAQ,EAAE;MAC1C,OAAOV,gBAAgB,CAACU,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC;IAC7C;IAEA,OAAO,IAAI;EACf,CAAC,EACD,CAACX,gBAAgB,CAAC,CACrB;EAED,IAAMiB,UAAU;IAAA,mGAAG,iBAAOC,IAAe,EAAEC,IAAyB;MAAA;MAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACzCrB,MAAM,CAACsB,MAAM,CAGlC;cACEC,QAAQ,EAAEC,oBAAW;cACrBC,SAAS,EAAE;gBACPL,IAAI,EAAJA,IAAI;gBACJC,IAAI,EAAJA;cACJ;YACJ,CAAC,CAAC;UAAA;YATIK,QAAQ;YAAA,mDAWPA,QAAQ,CAACN,IAAI,mDAAb,eAAeO,WAAW,CAACR,UAAU,CAACC,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACpD;IAAA,gBAbKD,UAAU;MAAA;IAAA;EAAA,GAaf;EAED,IAAMS,UAAU;IAAA,mGAAG,kBAAOnB,EAAU,EAAEW,IAAuB;MAAA;QAAA;UAAA;YAAA;YAAA,OACnDpB,MAAM,CAACsB,MAAM,CAA0D;cACzEC,QAAQ,EAAEM,oBAAW;cACrBJ,SAAS,EAAE;gBACPhB,EAAE,EAAFA,EAAE;gBACFW,IAAI,EAAJA;cACJ;YACJ,CAAC,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACL;IAAA,gBARKQ,UAAU;MAAA;IAAA;EAAA,GAQf;EAED,IAAME,UAAU;IAAA,mGAAG,kBAAOrB,EAAU;MAAA;QAAA;UAAA;YAAA;YAAA,OAC1BT,MAAM,CAACsB,MAAM,CAA0D;cACzEC,QAAQ,EAAEQ,oBAAW;cACrBN,SAAS,EAAE;gBACPhB,EAAE,EAAFA;cACJ;YACJ,CAAC,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACL;IAAA,gBAPKqB,UAAU;MAAA;IAAA;EAAA,GAOf;EAED,IAAME,OAAO;IAAA,mGAAG,kBAAOvB,EAAU;MAAA;MAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACNT,MAAM,CAACiC,KAAK,CAAC;cAChCA,KAAK,EAAEC,iBAAQ;cACfT,SAAS,EAAE;gBACPhB,EAAE,EAAFA;cACJ;YACJ,CAAC,CAAC;UAAA;YALIiB,QAAQ;YAAA,qDAOPA,QAAQ,CAACN,IAAI,oDAAb,gBAAeO,WAAW,CAACK,OAAO,CAACZ,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACjD;IAAA,gBATKY,OAAO;MAAA;IAAA;EAAA,GASZ;EAED,IAAMG,SAAiD;IAAA,mGAAG;MAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;MAAA;QAAA;UAAA;YAAOC,MAAM,8DAAG,CAAC,CAAC;YAAA;YAAA,OACjDpC,MAAM,CAACiC,KAAK,CAAyB;cACxDA,KAAK,EAAEI,mBAAU;cACjBZ,SAAS,EAAEW,MAAM;cACjBE,WAAW,EAAE;YACjB,CAAC,CAAC;UAAA;YAAA;YAJMlB,IAAI,uBAAJA,IAAI;YAAA,wBAKkBA,IAAI,CAACO,WAAW,CAACQ,SAAS,EAA1CI,KAAK,yBAAXnB,IAAI,EAASC,IAAI,yBAAJA,IAAI;YAAA,kCAClB;cAAEkB,KAAK,EAALA,KAAK;cAAElB,IAAI,EAAJA;YAAK,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACzB;IAAA,gBARKc,SAAiD;MAAA;IAAA;EAAA,GAQtD;EAED,IAAMK,QAAQ;IAAA,mGAAG;MAAA;QAAA;QAAA;QAAA;MAAA;QAAA;UAAA;YAAOJ,MAAM,8DAAG,CAAC,CAAC;YAAA;YAAA,OACRpC,MAAM,CAACiC,KAAK,CAA4B;cAC3DA,KAAK,EAAEQ,kBAAS;cAChBhB,SAAS,EAAEW;YACf,CAAC,CAAC;UAAA;YAAA;YAHMhB,IAAI,wBAAJA,IAAI;YAAA,kCAKLA,IAAI,CAACO,WAAW,CAACa,QAAQ,CAACpB,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACxC;IAAA,gBAPKoB,QAAQ;MAAA;IAAA;EAAA,GAOb;;EAED;AACJ;AACA;AACA;AACA;EACI,IAAME,UAAU;IAAA,mGAAG,kBACfC,IAAU,EACVtB,IAAyB;MAAA;QAAA;QAAA;QAAA;MAAA;QAAA;UAAA;YACzBuB,OAA0B,8DAAG,CAAC,CAAC;YAAA;YAAA,OAER,IAAAC,gCAAe,GAAE,CAACC,MAAM,CAACH,IAAI,EAAE;cAClDI,YAAY,EAAE/C,MAAM;cACpBgD,UAAU,EAAEJ,OAAO,CAACI;YACxB,CAAC,CAAC;UAAA;YAHItB,QAAQ;YAKRuB,IAAI,GAAG,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,IAAI,KAAI,EAAE;YAAA;YAAA,OAEnB9B,UAAU,6DAAMO,QAAQ;cAAEuB,IAAI,EAAJA;YAAI,IAAI5B,IAAI,CAAC;UAAA;YAAA;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CACvD;IAAA,gBAbKqB,UAAU;MAAA;IAAA;EAAA,GAaf;EAED,IAAMQ,WAAW;IAAA,mGAAG;MAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACYlD,MAAM,CAACiC,KAAK,CAAsC;cAC1EA,KAAK,EAAEkB;YACX,CAAC,CAAC;UAAA;YAFIC,aAAa;YAAA,kCAGZA,aAAa,CAAChC,IAAI,CAACO,WAAW,CAACuB,WAAW,CAAC9B,IAAI,IAAI,CAAC,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA,CAC/D;IAAA,gBALK8B,WAAW;MAAA;IAAA;EAAA,GAKhB;EAED,IAAMG,KAAgC,GAAG;IACrCvC,OAAO,EAAPA,OAAO;IACPE,SAAS,EAATA,SAAS;IACTC,OAAO,EAAPA,OAAO;IACPb,SAAS,EAATA,SAAS;IACTe,UAAU,EAAVA,UAAU;IACVS,UAAU,EAAVA,UAAU;IACVE,UAAU,EAAVA,UAAU;IACVY,UAAU,EAAVA,UAAU;IACVV,OAAO,EAAPA,OAAO;IACPG,SAAS,EAATA,SAAS;IACTK,QAAQ,EAARA,QAAQ;IACRU,WAAW,EAAXA;EACJ,CAAC;EAED,oBACI,6BAAC,qBAAqB,CAAC,QAAQ;IAAC,KAAK,EAAEG;EAAM,GAAEzD,QAAQ,CAAkC;AAEjG,CAAC;AAAC"}
@@ -1,2 +1,2 @@
1
- import { AppFileManagerStoragePlugin } from "@webiny/app/types";
2
- export declare const getFileUploader: () => AppFileManagerStoragePlugin["upload"];
1
+ import { FileUploaderPlugin } from "@webiny/app/types";
2
+ export declare const getFileUploader: () => FileUploaderPlugin;