@webiny/app-file-manager 5.34.8 → 5.35.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 (133) hide show
  1. package/FileManagerFileTypePlugin.d.ts +20 -0
  2. package/FileManagerFileTypePlugin.js +48 -0
  3. package/FileManagerFileTypePlugin.js.map +1 -0
  4. package/app.d.ts +2 -0
  5. package/app.js +16 -0
  6. package/app.js.map +1 -0
  7. package/components/FileDetails/Aliases.d.ts +3 -0
  8. package/components/FileDetails/Aliases.js +228 -0
  9. package/components/FileDetails/Aliases.js.map +1 -0
  10. package/components/FileDetails/DeleteImageAction.d.ts +2 -0
  11. package/components/FileDetails/DeleteImageAction.js +82 -0
  12. package/components/FileDetails/DeleteImageAction.js.map +1 -0
  13. package/components/FileDetails/FileProvider.d.ts +13 -0
  14. package/components/FileDetails/FileProvider.js +29 -0
  15. package/components/FileDetails/FileProvider.js.map +1 -0
  16. package/components/FileDetails/Name.d.ts +3 -0
  17. package/components/FileDetails/Name.js +81 -0
  18. package/components/FileDetails/Name.js.map +1 -0
  19. package/components/FileDetails/Tags.d.ts +3 -0
  20. package/components/FileDetails/Tags.js +176 -0
  21. package/components/FileDetails/Tags.js.map +1 -0
  22. package/components/FileDetails.d.ts +20 -0
  23. package/components/FileDetails.js +243 -0
  24. package/components/FileDetails.js.map +1 -0
  25. package/getFileTypePlugin.d.ts +4 -0
  26. package/getFileTypePlugin.js +51 -0
  27. package/getFileTypePlugin.js.map +1 -0
  28. package/index.d.ts +4 -2
  29. package/index.js +37 -31
  30. package/index.js.map +1 -1
  31. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +37 -0
  32. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +293 -0
  33. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -0
  34. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -0
  35. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +15 -0
  36. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -0
  37. package/modules/FileManagerApiProvider/FileManagerApiContext/index.d.ts +2 -0
  38. package/modules/FileManagerApiProvider/FileManagerApiContext/index.js +19 -0
  39. package/modules/FileManagerApiProvider/FileManagerApiContext/index.js.map +1 -0
  40. package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.d.ts +3 -0
  41. package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.js +16 -0
  42. package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.js.map +1 -0
  43. package/modules/FileManagerApiProvider/graphql.d.ts +103 -0
  44. package/modules/FileManagerApiProvider/graphql.js +24 -0
  45. package/modules/FileManagerApiProvider/graphql.js.map +1 -0
  46. package/modules/FileManagerApiProvider/index.d.ts +2 -0
  47. package/modules/FileManagerApiProvider/index.js +22 -0
  48. package/modules/FileManagerApiProvider/index.js.map +1 -0
  49. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
  50. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +41 -0
  51. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  52. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +6 -0
  53. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +51 -0
  54. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -0
  55. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +5 -0
  56. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +48 -0
  57. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -0
  58. package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.d.ts +11 -0
  59. package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.js +68 -0
  60. package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.js.map +1 -0
  61. package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.d.ts +7 -0
  62. package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.js +32 -0
  63. package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.js.map +1 -0
  64. package/modules/FileManagerRenderer/DefaultRenderer/File.d.ts +16 -0
  65. package/modules/FileManagerRenderer/DefaultRenderer/File.js +131 -0
  66. package/modules/FileManagerRenderer/DefaultRenderer/File.js.map +1 -0
  67. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +18 -0
  68. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +443 -0
  69. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -0
  70. package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.d.ts +6 -0
  71. package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.js +96 -0
  72. package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.js.map +1 -0
  73. package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.d.ts +3 -0
  74. package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.js +74 -0
  75. package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.js.map +1 -0
  76. package/modules/FileManagerRenderer/DefaultRenderer/NoResults.d.ts +3 -0
  77. package/modules/FileManagerRenderer/DefaultRenderer/NoResults.js +22 -0
  78. package/modules/FileManagerRenderer/DefaultRenderer/NoResults.js.map +1 -0
  79. package/modules/FileManagerRenderer/DefaultRenderer/index.d.ts +2 -0
  80. package/modules/FileManagerRenderer/DefaultRenderer/index.js +70 -0
  81. package/modules/FileManagerRenderer/DefaultRenderer/index.js.map +1 -0
  82. package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.d.ts +2 -0
  83. package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.js +40 -0
  84. package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.js.map +1 -0
  85. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +47 -0
  86. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +448 -0
  87. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -0
  88. package/modules/FileManagerRenderer/FileManagerViewProvider/index.d.ts +2 -0
  89. package/modules/FileManagerRenderer/FileManagerViewProvider/index.js +27 -0
  90. package/modules/FileManagerRenderer/FileManagerViewProvider/index.js.map +1 -0
  91. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +63 -0
  92. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +100 -0
  93. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -0
  94. package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.d.ts +3 -0
  95. package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.js +15 -0
  96. package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.js.map +1 -0
  97. package/modules/FileManagerRenderer/index.d.ts +2 -0
  98. package/modules/FileManagerRenderer/index.js +13 -0
  99. package/modules/FileManagerRenderer/index.js.map +1 -0
  100. package/modules/FileTypes/fileDefault.d.ts +2 -0
  101. package/modules/FileTypes/fileDefault.js +28 -0
  102. package/modules/FileTypes/fileDefault.js.map +1 -0
  103. package/modules/FileTypes/fileImage/EditAction.d.ts +7 -0
  104. package/modules/FileTypes/fileImage/EditAction.js +123 -0
  105. package/modules/FileTypes/fileImage/EditAction.js.map +1 -0
  106. package/modules/FileTypes/fileImage/index.d.ts +2 -0
  107. package/modules/FileTypes/fileImage/index.js +37 -0
  108. package/modules/FileTypes/fileImage/index.js.map +1 -0
  109. package/modules/FileTypes/icons/edit.svg +17 -0
  110. package/modules/FileTypes/icons/round-description-24px.svg +1 -0
  111. package/modules/FileTypes/index.d.ts +1 -0
  112. package/modules/FileTypes/index.js +32 -0
  113. package/modules/FileTypes/index.js.map +1 -0
  114. package/modules/Settings/assets/icons/folder-open.svg +1 -0
  115. package/modules/Settings/graphql.d.ts +5 -0
  116. package/modules/Settings/graphql.js +17 -0
  117. package/modules/Settings/graphql.js.map +1 -0
  118. package/modules/Settings/index.d.ts +2 -0
  119. package/modules/Settings/index.js +35 -0
  120. package/modules/Settings/index.js.map +1 -0
  121. package/modules/Settings/plugins/installation.d.ts +3 -0
  122. package/modules/Settings/plugins/installation.js +103 -0
  123. package/modules/Settings/plugins/installation.js.map +1 -0
  124. package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.d.ts +14 -0
  125. package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js +217 -0
  126. package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js.map +1 -0
  127. package/modules/Settings/plugins/permissionRenderer/index.d.ts +3 -0
  128. package/modules/Settings/plugins/permissionRenderer/index.js +28 -0
  129. package/modules/Settings/plugins/permissionRenderer/index.js.map +1 -0
  130. package/modules/Settings/views/FileManagerSettings.d.ts +2 -0
  131. package/modules/Settings/views/FileManagerSettings.js +132 -0
  132. package/modules/Settings/views/FileManagerSettings.js.map +1 -0
  133. package/package.json +28 -16
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FILE_FIELDS","ERROR_FIELDS","LIST_FILES","gql","LIST_TAGS","CREATE_FILE","UPDATE_FILE","DELETE_FILE","GET_FILE_SETTINGS"],"sources":["graphql.ts"],"sourcesContent":["import { FileItem } from \"@webiny/app-admin/types\";\nimport gql from \"graphql-tag\";\nimport { Settings } from \"~/types\";\nimport { ListTagsResponseItem } from \"~/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext\";\n\nconst FILE_FIELDS = /* GraphQL */ `\n {\n __typename\n id\n name\n key\n src\n size\n type\n tags\n aliases\n createdOn\n createdBy {\n id\n }\n }\n`;\n\nconst ERROR_FIELDS = /* GraphQL */ `\n {\n code\n message\n data\n }\n`;\n\nexport interface GetFileManagerSettingsQueryResponse {\n fileManager: {\n getSettings: {\n data: Settings;\n error?: Error | null;\n };\n };\n}\n\nexport interface ListFilesListFilesResponse {\n data: FileItem[];\n error?: Error | null;\n meta: {\n hasMoreItems: boolean;\n totalItem: number;\n cursor: string | null;\n };\n}\n\nexport interface ListFilesQueryResponse {\n fileManager: {\n listFiles: ListFilesListFilesResponse;\n };\n}\n\nexport interface ListFilesQueryVariables {\n limit?: number;\n after?: string | null;\n where?: {\n search?: string;\n type?: string;\n type_in?: string[];\n tag?: string;\n tag_in?: string[];\n tag_and_in?: string[];\n tag_startsWith?: string;\n tag_not_startsWith?: string;\n createdBy?: string;\n };\n}\n\nexport const LIST_FILES = gql`\n query ListFiles(\n $limit: Int,\n $after: String,\n $where: FileWhereInput\n ) {\n fileManager {\n listFiles(\n limit: $limit,\n after: $after,\n where: $where\n ) {\n data ${FILE_FIELDS}\n meta {\n cursor\n totalCount\n }\n }\n }\n }\n`;\n\nexport interface ListFileTagsQueryResponse {\n fileManager: {\n listTags: {\n data: ListTagsResponseItem[];\n error: Error | null;\n };\n };\n}\n\nexport interface ListFileTagsQueryVariables {\n where?: {\n tag_startsWith?: String;\n tag_not_startsWith?: String;\n };\n}\n\nexport const LIST_TAGS = gql`\n query ListTags($where: TagWhereInput) {\n fileManager {\n listTags(where: $where) {\n data {\n tag\n count\n }\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n\nexport interface CreateFileMutationResponse {\n fileManager: {\n createFile: {\n data: FileItem;\n error?: Error | null;\n };\n };\n}\n\nexport interface FileInput {\n key: string;\n name: string;\n size: number;\n type: string;\n tags: string[];\n aliases?: string[];\n meta?: Record<string, any>;\n}\n\nexport interface CreateFileMutationVariables {\n data: FileInput;\n}\n\nexport const CREATE_FILE = gql`\n mutation CreateFile($data: CreateFileInput!) {\n fileManager {\n createFile(data: $data) {\n error ${ERROR_FIELDS}\n data ${FILE_FIELDS}\n }\n }\n }\n`;\n\nexport interface UpdateFileMutationResponse {\n fileManager: {\n updateFile: {\n data: FileItem;\n error?: Error | null;\n };\n };\n}\n\nexport interface UpdateFileMutationVariables {\n id: string;\n data: Partial<FileInput>;\n}\n\nexport const UPDATE_FILE = gql`\n mutation UpdateFile($id: ID!, $data: UpdateFileInput!) {\n fileManager {\n updateFile(id: $id, data: $data) {\n data {\n id\n src\n name\n tags\n }\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n\nexport interface DeleteFileMutationResponse {\n fileManager: {\n updateFile: {\n data: boolean;\n error?: Error | null;\n };\n };\n}\n\nexport interface DeleteFileMutationVariables {\n id: string;\n}\n\nexport const DELETE_FILE = gql`\n mutation DeleteFile($id: ID!) {\n fileManager {\n deleteFile(id: $id) {\n data\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_FILE_SETTINGS = gql`\n query GetSettings {\n fileManager {\n getSettings {\n data {\n srcPrefix\n uploadMinFileSize\n uploadMaxFileSize\n }\n error ${ERROR_FIELDS}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AACA;AAA8B;AAI9B,IAAMA,WAAW,GAAG,qOAgBnB;AAED,IAAMC,YAAY,GAAG,4EAMpB;AA2CM,IAAMC,UAAU,OAAGC,mBAAG,ugBAYNH,WAAW,CAQjC;AAAC;AAkBK,IAAMI,SAAS,OAAGD,mBAAG,gWAQJF,YAAY,CAInC;AAAC;AAyBK,IAAMI,WAAW,OAAGF,mBAAG,mSAINF,YAAY,EACbD,WAAW,CAIjC;AAAC;AAgBK,IAAMM,WAAW,OAAGH,mBAAG,2aAUNF,YAAY,CAInC;AAAC;AAeK,IAAMM,WAAW,OAAGJ,mBAAG,2QAKNF,YAAY,CAInC;AAAC;AAEK,IAAMO,iBAAiB,OAAGL,mBAAG,yXASZF,YAAY,CAInC;AAAC"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const FileManagerApiProviderModule: () => JSX.Element;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FileManagerApiProviderModule = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _appAdmin = require("@webiny/app-admin");
10
+ var _FileManagerApiContext = require("./FileManagerApiContext");
11
+ var fileManagerApiProvider = function fileManagerApiProvider(Original) {
12
+ return function FileManager(_ref) {
13
+ var children = _ref.children;
14
+ return /*#__PURE__*/_react.default.createElement(_FileManagerApiContext.FileManagerApiProvider, null, /*#__PURE__*/_react.default.createElement(Original, null, children));
15
+ };
16
+ };
17
+ var FileManagerApiProviderModule = function FileManagerApiProviderModule() {
18
+ return /*#__PURE__*/_react.default.createElement(_appAdmin.Plugin, {
19
+ providers: [fileManagerApiProvider]
20
+ });
21
+ };
22
+ exports.FileManagerApiProviderModule = FileManagerApiProviderModule;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fileManagerApiProvider","Original","FileManager","children","FileManagerApiProviderModule"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Plugin, HigherOrderComponent } from \"@webiny/app-admin\";\nimport { FileManagerApiProvider } from \"./FileManagerApiContext\";\n\nconst fileManagerApiProvider: HigherOrderComponent = Original => {\n return function FileManager({ children }: { children: React.ReactNode }) {\n return (\n <FileManagerApiProvider>\n <Original>{children}</Original>\n </FileManagerApiProvider>\n );\n };\n};\n\nexport const FileManagerApiProviderModule = () => {\n return <Plugin providers={[fileManagerApiProvider]} />;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA,IAAMA,sBAA4C,GAAG,SAA/CA,sBAA4C,CAAGC,QAAQ,EAAI;EAC7D,OAAO,SAASC,WAAW,OAA8C;IAAA,IAA3CC,QAAQ,QAARA,QAAQ;IAClC,oBACI,6BAAC,6CAAsB,qBACnB,6BAAC,QAAQ,QAAEA,QAAQ,CAAY,CACV;EAEjC,CAAC;AACL,CAAC;AAEM,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4B,GAAS;EAC9C,oBAAO,6BAAC,gBAAM;IAAC,SAAS,EAAE,CAACJ,sBAAsB;EAAE,EAAG;AAC1D,CAAC;AAAC"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export interface SupportedFileTypesProps {
3
+ accept: string[];
4
+ }
5
+ declare const SupportedFileTypes: React.FC<SupportedFileTypesProps>;
6
+ export default SupportedFileTypes;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _lite = _interopRequireDefault(require("mime/lite"));
10
+ _lite.default.define({
11
+ "image/x-icon": ["ico"]
12
+ }, true);
13
+ _lite.default.define({
14
+ "image/jpg": ["jpg"]
15
+ }, true);
16
+ _lite.default.define({
17
+ "image/vnd.microsoft.icon": ["ico"]
18
+ }, true);
19
+ var getUniqueFilePlugins = function getUniqueFilePlugins(accept) {
20
+ var exts = {};
21
+ accept.forEach(function (item) {
22
+ var ext = _lite.default.getExtension(item);
23
+ if (!ext) {
24
+ return;
25
+ }
26
+ exts[ext] = true;
27
+ });
28
+ return Object.keys(exts);
29
+ };
30
+ var SupportedFileTypes = function SupportedFileTypes(_ref) {
31
+ var accept = _ref.accept;
32
+ if (!accept) {
33
+ return null;
34
+ }
35
+ if (accept.length === 0) {
36
+ return /*#__PURE__*/_react.default.createElement("span", null, "Showing all file extensions.");
37
+ }
38
+ return /*#__PURE__*/_react.default.createElement("span", null, "Showing the following file extensions: ", getUniqueFilePlugins(accept).join(", "), ".");
39
+ };
40
+ var _default = SupportedFileTypes;
41
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","length","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <span>Showing all file extensions.</span>;\n }\n\n return (\n <span>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </span>\n );\n};\n\nexport default SupportedFileTypes;\n"],"mappings":";;;;;;;AAAA;AACA;AAEAA,aAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,aAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,aAAI,CAACC,MAAM,CAAC;EAAE,0BAA0B,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAE1D,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,CAAIC,MAAgB,EAAe;EACzD,IAAMC,IAA6B,GAAG,CAAC,CAAC;EACxCD,MAAM,CAACE,OAAO,CAAC,UAAAC,IAAI,EAAI;IACnB,IAAMC,GAAG,GAAGP,aAAI,CAACQ,YAAY,CAACF,IAAI,CAAC;IACnC,IAAI,CAACC,GAAG,EAAE;MACN;IACJ;IACAH,IAAI,CAACG,GAAG,CAAC,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,OAAOE,MAAM,CAACC,IAAI,CAACN,IAAI,CAAC;AAC5B,CAAC;AAMD,IAAMO,kBAAqD,GAAG,SAAxDA,kBAAqD,OAAmB;EAAA,IAAbR,MAAM,QAANA,MAAM;EACnE,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,IAAIA,MAAM,CAACS,MAAM,KAAK,CAAC,EAAE;IACrB,oBAAO,2CAAM,8BAA4B,CAAO;EACpD;EAEA,oBACI,2CAAM,yCACqC,EAACV,oBAAoB,CAACC,MAAM,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC,EAAC,GACpF,CAAO;AAEf,CAAC;AAAC,eAEaF,kBAAkB;AAAA"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export interface UploadStatusProps {
3
+ uploading: boolean;
4
+ }
5
+ declare const UploadStatus: React.FC<UploadStatusProps>;
6
+ export default UploadStatus;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _Progress = require("@webiny/ui/Progress");
11
+ var StatusWrapper = /*#__PURE__*/(0, _styled.default)("div", {
12
+ target: "exct32u0",
13
+ label: "StatusWrapper"
14
+ })({
15
+ color: "var(--mdc-theme-primary)",
16
+ position: "absolute",
17
+ right: 0,
18
+ bottom: 10,
19
+ marginRight: 10,
20
+ display: "flex",
21
+ alignItems: "center",
22
+ "> div": {
23
+ display: "inline-block"
24
+ }
25
+ });
26
+ var CircularProgressHolder = /*#__PURE__*/(0, _styled.default)("div", {
27
+ target: "exct32u1",
28
+ label: "CircularProgressHolder"
29
+ })({
30
+ position: "relative",
31
+ height: 12,
32
+ width: 12
33
+ });
34
+ var UploadingLabel = /*#__PURE__*/(0, _styled.default)("div", {
35
+ target: "exct32u2",
36
+ label: "UploadingLabel"
37
+ })({
38
+ marginRight: 5
39
+ });
40
+ var UploadStatus = function UploadStatus(_ref) {
41
+ var uploading = _ref.uploading;
42
+ if (!uploading) {
43
+ return null;
44
+ }
45
+ return /*#__PURE__*/_react.default.createElement(StatusWrapper, null, /*#__PURE__*/_react.default.createElement(UploadingLabel, null, "Uploading..."), /*#__PURE__*/_react.default.createElement(CircularProgressHolder, null, /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
46
+ size: 10,
47
+ spinnerWidth: 1
48
+ })));
49
+ };
50
+ var _default = UploadStatus;
51
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StatusWrapper","styled","color","position","right","bottom","marginRight","display","alignItems","CircularProgressHolder","height","width","UploadingLabel","UploadStatus","uploading"],"sources":["UploadStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst StatusWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-primary)\",\n position: \"absolute\",\n right: 0,\n bottom: 10,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"> div\": {\n display: \"inline-block\"\n }\n});\n\nconst CircularProgressHolder = styled(\"div\")({\n position: \"relative\",\n height: 12,\n width: 12\n});\n\nconst UploadingLabel = styled(\"div\")({\n marginRight: 5\n});\n\nexport interface UploadStatusProps {\n uploading: boolean;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ uploading }) => {\n if (!uploading) {\n return null;\n }\n\n return (\n <StatusWrapper>\n <UploadingLabel>Uploading...</UploadingLabel>\n <CircularProgressHolder>\n <CircularProgress size={10} spinnerWidth={1} />\n </CircularProgressHolder>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA,IAAMA,aAAa,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAChCC,KAAK,EAAE,0BAA0B;EACjCC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpB,OAAO,EAAE;IACLD,OAAO,EAAE;EACb;AACJ,CAAC,CAAC;AAEF,IAAME,sBAAsB,oBAAGR,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACzCE,QAAQ,EAAE,UAAU;EACpBO,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE;AACX,CAAC,CAAC;AAEF,IAAMC,cAAc,oBAAGX,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACjCK,WAAW,EAAE;AACjB,CAAC,CAAC;AAKF,IAAMO,YAAyC,GAAG,SAA5CA,YAAyC,OAAsB;EAAA,IAAhBC,SAAS,QAATA,SAAS;EAC1D,IAAI,CAACA,SAAS,EAAE;IACZ,OAAO,IAAI;EACf;EAEA,oBACI,6BAAC,aAAa,qBACV,6BAAC,cAAc,QAAC,cAAY,CAAiB,eAC7C,6BAAC,sBAAsB,qBACnB,6BAAC,0BAAgB;IAAC,IAAI,EAAE,EAAG;IAAC,YAAY,EAAE;EAAE,EAAG,CAC1B,CACb;AAExB,CAAC;AAAC,eAEaD,YAAY;AAAA"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { SupportedFileTypesProps } from "./BottomInfoBar/SupportedFileTypes";
3
+ import { UploadStatusProps } from "./BottomInfoBar/UploadStatus";
4
+ declare const BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps>;
5
+ export default BottomInfoBar;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _lite = _interopRequireDefault(require("mime/lite"));
10
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
11
+ var _SupportedFileTypes = _interopRequireDefault(require("./BottomInfoBar/SupportedFileTypes"));
12
+ var _UploadStatus = _interopRequireDefault(require("./BottomInfoBar/UploadStatus"));
13
+ _lite.default.define({
14
+ "image/x-icon": ["ico"]
15
+ }, true);
16
+ _lite.default.define({
17
+ "image/jpg": ["jpg"]
18
+ }, true);
19
+ _lite.default.define({
20
+ "image/vnd.microsoft.icon": ["ico"]
21
+ }, true);
22
+ var BottomInfoBarWrapper = /*#__PURE__*/(0, _styled.default)("div", {
23
+ target: "e16yhave0",
24
+ label: "BottomInfoBarWrapper"
25
+ })({
26
+ fontSize: "0.8rem",
27
+ position: "sticky",
28
+ bottom: 0,
29
+ height: 30,
30
+ color: "var(--mdc-theme-text-secondary-on-background)",
31
+ borderTop: "1px solid var(--mdc-theme-on-background)",
32
+ backgroundColor: "var(--mdc-theme-surface)",
33
+ width: "100%",
34
+ transform: "translateZ(0)",
35
+ overflow: "hidden",
36
+ display: "flex",
37
+ alignItems: "center",
38
+ zIndex: 1,
39
+ "> div": {
40
+ padding: "0 10px",
41
+ width: "100%"
42
+ }
43
+ });
44
+ var BottomInfoBar = function BottomInfoBar(props) {
45
+ return /*#__PURE__*/_react.default.createElement(BottomInfoBarWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_SupportedFileTypes.default, props), /*#__PURE__*/_react.default.createElement(_UploadStatus.default, props)));
46
+ };
47
+ var _default = BottomInfoBar;
48
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEAA,aAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,aAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,aAAI,CAACC,MAAM,CAAC;EAAE,0BAA0B,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAE1D,IAAMC,oBAAoB,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACvCC,QAAQ,EAAE,QAAQ;EAClBC,QAAQ,EAAE,QAAQ;EAClBC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE,+CAA+C;EACtDC,SAAS,EAAE,0CAA0C;EACrDC,eAAe,EAAE,0BAA0B;EAC3CC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE,eAAe;EAC1BC,QAAQ,EAAE,QAAQ;EAClBC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE,CAAC;EACT,OAAO,EAAE;IACLC,OAAO,EAAE,QAAQ;IACjBN,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAEF,IAAMO,aAAoE,GAAG,SAAvEA,aAAoE,CAAGC,KAAK,EAAI;EAClF,oBACI,6BAAC,oBAAoB,qBACjB,uDACI,6BAAC,2BAAkB,EAAKA,KAAK,CAAI,eACjC,6BAAC,qBAAY,EAAKA,KAAK,CAAI,CACzB,CACa;AAE/B,CAAC;AAAC,eAEaD,aAAa;AAAA"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="web" />
2
+ import React from "react";
3
+ export interface DropFilesHereProps {
4
+ onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;
5
+ onDrop?: (event?: React.DragEvent<HTMLElement>) => void;
6
+ empty?: boolean;
7
+ onClick?: (event?: React.MouseEvent<HTMLElement>) => void;
8
+ className?: string;
9
+ }
10
+ declare const DropFilesHere: React.FC<DropFilesHereProps>;
11
+ export default DropFilesHere;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _emotion = require("emotion");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _Icon = require("@webiny/ui/Icon");
12
+ var _cloud_upload = require("@material-design-icons/svg/filled/cloud_upload.svg");
13
+ var styles = /*#__PURE__*/(0, _emotion.css)({
14
+ margin: "0 auto",
15
+ paddingTop: 0,
16
+ height: "100%",
17
+ zIndex: 2,
18
+ width: "100%",
19
+ position: "absolute",
20
+ backgroundColor: "var(--mdc-theme-text-hint-on-light)",
21
+ "&.empty": {
22
+ backgroundColor: "transparent",
23
+ "> div": {
24
+ backgroundColor: "var(--mdc-theme-surface)"
25
+ }
26
+ },
27
+ "> div": {
28
+ textAlign: "center",
29
+ width: 300,
30
+ height: 300,
31
+ backgroundColor: "var(--mdc-theme-background)",
32
+ borderRadius: "50%",
33
+ position: "absolute",
34
+ left: "50%",
35
+ top: "50%",
36
+ transform: "translateX(-50%) translateY(-100%)",
37
+ "> div": {
38
+ position: "absolute",
39
+ top: 90,
40
+ width: 300,
41
+ color: "var(--mdc-theme-on-surface)",
42
+ "svg.mdc-button__icon": {
43
+ width: "100px !important",
44
+ height: "auto",
45
+ display: "inline-block",
46
+ color: "var(--mdc-theme-on-surface)"
47
+ }
48
+ }
49
+ }
50
+ }, "label:styles;");
51
+ var DropFilesHere = function DropFilesHere(_ref) {
52
+ var onDrop = _ref.onDrop,
53
+ onDragLeave = _ref.onDragLeave,
54
+ empty = _ref.empty,
55
+ onClick = _ref.onClick;
56
+ return /*#__PURE__*/_react.default.createElement("div", {
57
+ className: (0, _classnames.default)(styles, {
58
+ empty: empty
59
+ }),
60
+ onDrop: onDrop,
61
+ onClick: onClick,
62
+ onDragLeave: onDragLeave
63
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
64
+ icon: /*#__PURE__*/_react.default.createElement(_cloud_upload.ReactComponent, null)
65
+ }), /*#__PURE__*/_react.default.createElement("div", null, "Drop files here"))));
66
+ };
67
+ var _default = DropFilesHere;
68
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick","classNames"],"sources":["DropFilesHere.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ReactComponent as UploadIcon } from \"@material-design-icons/svg/filled/cloud_upload.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: \"100px !important\",\n height: \"auto\",\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n className?: string;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,CAAC;EACbC,MAAM,EAAE,MAAM;EACdC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,qCAAqC;EACtD,SAAS,EAAE;IACPA,eAAe,EAAE,aAAa;IAC9B,OAAO,EAAE;MACLA,eAAe,EAAE;IACrB;EACJ,CAAC;EACD,OAAO,EAAE;IACLC,SAAS,EAAE,QAAQ;IACnBH,KAAK,EAAE,GAAG;IACVF,MAAM,EAAE,GAAG;IACXI,eAAe,EAAE,6BAA6B;IAC9CE,YAAY,EAAE,KAAK;IACnBH,QAAQ,EAAE,UAAU;IACpBI,IAAI,EAAE,KAAK;IACXC,GAAG,EAAE,KAAK;IACVC,SAAS,EAAE,oCAAoC;IAC/C,OAAO,EAAE;MACLN,QAAQ,EAAE,UAAU;MACpBK,GAAG,EAAE,EAAE;MACPN,KAAK,EAAE,GAAG;MACVQ,KAAK,EAAE,6BAA6B;MACpC,sBAAsB,EAAE;QACpBR,KAAK,EAAE,kBAAkB;QACzBF,MAAM,EAAE,MAAM;QACdW,OAAO,EAAE,cAAc;QACvBD,KAAK,EAAE;MACX;IACJ;EACJ;AACJ,CAAC,kBAAC;AAUF,IAAME,aAA2C,GAAG,SAA9CA,aAA2C,OAAgD;EAAA,IAA1CC,MAAM,QAANA,MAAM;IAAEC,WAAW,QAAXA,WAAW;IAAEC,KAAK,QAALA,KAAK;IAAEC,OAAO,QAAPA,OAAO;EACtF,oBACI;IACI,SAAS,EAAE,IAAAC,mBAAU,EAACrB,MAAM,EAAE;MAAEmB,KAAK,EAALA;IAAM,CAAC,CAAE;IACzC,MAAM,EAAEF,MAAO;IACf,OAAO,EAAEG,OAAQ;IACjB,WAAW,EAAEF;EAAY,gBAEzB,uDACI,uDACI,6BAAC,UAAI;IAAC,IAAI,eAAE,6BAAC,4BAAU;EAAI,EAAG,eAC9B,0CAAK,iBAAe,CAAM,CACxB,CACJ,CACJ;AAEd,CAAC;AAAC,eACaF,aAAa;AAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { FilesRenderChildren } from "react-butterfiles";
3
+ interface EmptyViewProps {
4
+ browseFiles: FilesRenderChildren["browseFiles"];
5
+ }
6
+ export declare const EmptyView: ({ browseFiles }: EmptyViewProps) => JSX.Element;
7
+ export {};
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.EmptyView = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _NoPermissionView = _interopRequireDefault(require("./NoPermissionView"));
10
+ var _NoResults = _interopRequireDefault(require("./NoResults"));
11
+ var _DropFilesHere = _interopRequireDefault(require("./DropFilesHere"));
12
+ var _ = require("../../..");
13
+ var EmptyView = function EmptyView(_ref) {
14
+ var browseFiles = _ref.browseFiles;
15
+ var _useFileManagerApi = (0, _.useFileManagerApi)(),
16
+ canRead = _useFileManagerApi.canRead;
17
+ var _useFileManagerView = (0, _.useFileManagerView)(),
18
+ hasPreviouslyUploadedFiles = _useFileManagerView.hasPreviouslyUploadedFiles;
19
+ if (!canRead) {
20
+ return /*#__PURE__*/_react.default.createElement(_NoPermissionView.default, null);
21
+ }
22
+ if (hasPreviouslyUploadedFiles) {
23
+ return /*#__PURE__*/_react.default.createElement(_NoResults.default, null);
24
+ }
25
+ return /*#__PURE__*/_react.default.createElement(_DropFilesHere.default, {
26
+ empty: true,
27
+ onClick: function onClick() {
28
+ return browseFiles();
29
+ }
30
+ });
31
+ };
32
+ exports.EmptyView = EmptyView;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EmptyView","browseFiles","useFileManagerApi","canRead","useFileManagerView","hasPreviouslyUploadedFiles"],"sources":["EmptyView.tsx"],"sourcesContent":["import React from \"react\";\nimport { FilesRenderChildren } from \"react-butterfiles\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport NoResults from \"./NoResults\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport { useFileManagerApi, useFileManagerView } from \"~/index\";\n\ninterface EmptyViewProps {\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n}\n\nexport const EmptyView = ({ browseFiles }: EmptyViewProps) => {\n const { canRead } = useFileManagerApi();\n const { hasPreviouslyUploadedFiles } = useFileManagerView();\n\n if (!canRead) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AACA;AACA;AAMO,IAAMA,SAAS,GAAG,SAAZA,SAAS,OAAwC;EAAA,IAAlCC,WAAW,QAAXA,WAAW;EACnC,yBAAoB,IAAAC,mBAAiB,GAAE;IAA/BC,OAAO,sBAAPA,OAAO;EACf,0BAAuC,IAAAC,oBAAkB,GAAE;IAAnDC,0BAA0B,uBAA1BA,0BAA0B;EAElC,IAAI,CAACF,OAAO,EAAE;IACV,oBAAO,6BAAC,yBAAgB,OAAG;EAC/B;EACA,IAAIE,0BAA0B,EAAE;IAC5B,oBAAO,6BAAC,kBAAS,OAAG;EACxB;EACA,oBAAO,6BAAC,sBAAa;IAAC,KAAK;IAAC,OAAO,EAAE;MAAA,OAAMJ,WAAW,EAAE;IAAA;EAAC,EAAG;AAChE,CAAC;AAAC"}
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { FileItem } from "@webiny/app-admin/types";
3
+ export interface FileProps {
4
+ file: FileItem;
5
+ selected: boolean;
6
+ onSelect: (event?: React.MouseEvent) => void;
7
+ onClick?: (event?: React.MouseEvent) => void;
8
+ options?: Array<{
9
+ label: string;
10
+ onClick: (file: Object) => void;
11
+ }>;
12
+ children: React.ReactNode;
13
+ showFileDetails: (event?: React.MouseEvent) => void;
14
+ }
15
+ declare const MemoizedFile: React.NamedExoticComponent<FileProps>;
16
+ export default MemoizedFile;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactLazyLoad = _interopRequireDefault(require("react-lazy-load"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _emotion = require("emotion");
12
+ var _Ripple = require("@webiny/ui/Ripple");
13
+ var _Button = require("@webiny/ui/Button");
14
+ var _settings = require("@material-design-icons/svg/outlined/settings.svg");
15
+ /**
16
+ * Package react-lazy-load has no types.
17
+ */
18
+ // @ts-ignore
19
+
20
+ var COMPONENT_WIDTH = 200;
21
+ var COMPONENT_HEIGHT = 200;
22
+ var grow = /*#__PURE__*/(0, _emotion.keyframes)("0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}label:grow;");
23
+ var styles = /*#__PURE__*/(0, _emotion.css)({
24
+ display: "inline-block",
25
+ float: "left",
26
+ position: "relative",
27
+ zIndex: 1,
28
+ margin: 10,
29
+ cursor: "pointer",
30
+ width: "100%",
31
+ maxWidth: COMPONENT_WIDTH,
32
+ border: "1px solid var(--mdc-theme-on-background)",
33
+ borderRadius: 2,
34
+ "> .body": {
35
+ transition: "200ms ease-in opacity",
36
+ width: COMPONENT_WIDTH,
37
+ height: COMPONENT_HEIGHT,
38
+ overflow: "hidden",
39
+ ".infoIcon": {
40
+ opacity: 0,
41
+ position: "absolute",
42
+ top: 0,
43
+ right: 0,
44
+ zIndex: 10,
45
+ transition: "all 150ms ease-in",
46
+ "& .mdc-icon-button svg": {
47
+ color: "var(--mdc-theme-secondary)"
48
+ },
49
+ "&:hover": {
50
+ animationName: grow,
51
+ animationDuration: ".4s",
52
+ animationTimingFunction: "ease-in",
53
+ animationDelay: ".2s"
54
+ }
55
+ },
56
+ ".filePreview": {
57
+ textAlign: "center",
58
+ position: "relative",
59
+ backgroundColor: "#fff",
60
+ width: "100%",
61
+ height: "100%",
62
+ ".clickableArea": {
63
+ position: "absolute",
64
+ top: 30,
65
+ left: 0,
66
+ width: "100%",
67
+ height: 170,
68
+ zIndex: 2
69
+ }
70
+ },
71
+ "&:hover .infoIcon": {
72
+ opacity: 1
73
+ }
74
+ },
75
+ "> .label": {
76
+ padding: "15px 10px",
77
+ whiteSpace: "nowrap",
78
+ overflow: "hidden",
79
+ textOverflow: "ellipsis",
80
+ fontSize: "0.8rem",
81
+ color: "var(--mdc-theme-on-surface)",
82
+ backgroundColor: "var(--mdc-theme-on-background)"
83
+ },
84
+ "&.disable-select": {
85
+ cursor: "auto"
86
+ }
87
+ }, "label:styles;");
88
+ var highlight = /*#__PURE__*/(0, _emotion.css)("box-shadow:0px 0px 0px 2px var(--mdc-theme-primary);> .label{color:var(--mdc-theme-primary);}label:highlight;");
89
+ var File = function File(props) {
90
+ var file = props.file,
91
+ selected = props.selected,
92
+ onSelect = props.onSelect,
93
+ children = props.children,
94
+ showFileDetails = props.showFileDetails;
95
+ return /*#__PURE__*/_react.default.createElement("div", {
96
+ className: (0, _classnames.default)(styles, {
97
+ "disable-select": !onSelect
98
+ }, selected ? highlight : undefined),
99
+ "data-testid": "fm-list-wrapper-file"
100
+ }, /*#__PURE__*/_react.default.createElement("div", {
101
+ className: "body"
102
+ }, /*#__PURE__*/_react.default.createElement("div", {
103
+ className: "infoIcon"
104
+ }, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
105
+ icon: /*#__PURE__*/_react.default.createElement(_settings.ReactComponent, null),
106
+ onClick: showFileDetails,
107
+ "data-testid": "fm-file-wrapper-file-info-icon"
108
+ })), /*#__PURE__*/_react.default.createElement(_reactLazyLoad.default, {
109
+ height: 200,
110
+ offsetVertical: 300
111
+ }, /*#__PURE__*/_react.default.createElement(_Ripple.Ripple, null, /*#__PURE__*/_react.default.createElement("div", {
112
+ className: "filePreview"
113
+ }, /*#__PURE__*/_react.default.createElement("div", {
114
+ className: "clickableArea",
115
+ onClick: onSelect
116
+ }), children)))), /*#__PURE__*/_react.default.createElement("div", {
117
+ className: "label",
118
+ onClick: onSelect
119
+ }, file.name));
120
+ };
121
+ var MemoizedFile = /*#__PURE__*/_react.default.memo(File, function (prev, next) {
122
+ if (prev.selected !== next.selected) {
123
+ return false;
124
+ } else if (prev.file.name !== next.file.name) {
125
+ return false;
126
+ }
127
+ return true;
128
+ });
129
+ MemoizedFile.displayName = "MemoizedFile";
130
+ var _default = MemoizedFile;
131
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","keyframes","styles","css","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","opacity","top","right","color","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","left","padding","whiteSpace","textOverflow","fontSize","highlight","File","props","file","selected","onSelect","children","showFileDetails","classNames","undefined","name","MemoizedFile","React","memo","prev","next","displayName"],"sources":["File.tsx"],"sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport classNames from \"classnames\";\nimport { css, keyframes } from \"emotion\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as SettingsIcon } from \"@material-design-icons/svg/outlined/settings.svg\";\nimport { FileItem } from \"@webiny/app-admin/types\";\n\nconst COMPONENT_WIDTH = 200;\nconst COMPONENT_HEIGHT = 200;\n\nconst grow = keyframes`\n 0% {\n transform: scale(1)\n }\n 50% {\n transform: scale(1.2)\n }\n 100% {\n transform: scale(1)\n }\n`;\nconst styles = css({\n display: \"inline-block\",\n float: \"left\",\n position: \"relative\",\n zIndex: 1,\n margin: 10,\n cursor: \"pointer\",\n width: \"100%\",\n maxWidth: COMPONENT_WIDTH,\n border: \"1px solid var(--mdc-theme-on-background)\",\n borderRadius: 2,\n \"> .body\": {\n transition: \"200ms ease-in opacity\",\n width: COMPONENT_WIDTH,\n height: COMPONENT_HEIGHT,\n overflow: \"hidden\",\n \".infoIcon\": {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n right: 0,\n zIndex: 10,\n transition: \"all 150ms ease-in\",\n \"& .mdc-icon-button svg\": {\n color: \"var(--mdc-theme-secondary)\"\n },\n \"&:hover\": {\n animationName: grow,\n animationDuration: \".4s\",\n animationTimingFunction: \"ease-in\",\n animationDelay: \".2s\"\n }\n },\n \".filePreview\": {\n textAlign: \"center\",\n position: \"relative\",\n backgroundColor: \"#fff\",\n width: \"100%\",\n height: \"100%\",\n \".clickableArea\": {\n position: \"absolute\",\n top: 30,\n left: 0,\n width: \"100%\",\n height: 170,\n zIndex: 2\n }\n },\n \"&:hover .infoIcon\": {\n opacity: 1\n }\n },\n \"> .label\": {\n padding: \"15px 10px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n fontSize: \"0.8rem\",\n color: \"var(--mdc-theme-on-surface)\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n },\n \"&.disable-select\": {\n cursor: \"auto\"\n }\n});\n\nconst highlight = css`\n box-shadow: 0px 0px 0px 2px var(--mdc-theme-primary);\n > .label {\n color: var(--mdc-theme-primary);\n }\n`;\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (event?: React.MouseEvent) => void;\n}\n\nconst File: React.FC<FileProps> = props => {\n const { file, selected, onSelect, children, showFileDetails } = props;\n\n return (\n <div\n className={classNames(\n styles,\n { \"disable-select\": !onSelect },\n selected ? highlight : undefined\n )}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <div className={\"body\"}>\n <div className={\"infoIcon\"}>\n <IconButton\n icon={<SettingsIcon />}\n onClick={showFileDetails}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </div>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <div className={\"filePreview\"}>\n <div className=\"clickableArea\" onClick={onSelect} />\n {children}\n </div>\n </Ripple>\n </LazyLoad>\n </div>\n <div className={\"label\"} onClick={onSelect}>\n {file.name}\n </div>\n </div>\n );\n};\n\nconst MemoizedFile = React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n\nMemoizedFile.displayName = \"MemoizedFile\";\nexport default MemoizedFile;\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { FilesRules } from "react-butterfiles";
3
+ export interface FileManagerViewProps {
4
+ onChange?: Function;
5
+ onClose?: Function;
6
+ files?: FilesRules;
7
+ multiple?: boolean;
8
+ accept: Array<string>;
9
+ maxSize?: number | string;
10
+ multipleMaxCount?: number;
11
+ multipleMaxSize?: number | string;
12
+ onUploadCompletion?: Function;
13
+ tags?: string[];
14
+ scope?: string;
15
+ own?: boolean;
16
+ }
17
+ declare const FileManagerView: React.FC<FileManagerViewProps>;
18
+ export default FileManagerView;