@webiny/app-admin 5.35.0 → 5.35.1

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 (94) hide show
  1. package/package.json +28 -28
  2. package/assets/images/icons.png +0 -0
  3. package/assets/images/icons_retina.png +0 -0
  4. package/assets/images/swich.png +0 -0
  5. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +0 -6
  6. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +0 -55
  7. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +0 -1
  8. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +0 -6
  9. package/components/FileManager/BottomInfoBar/UploadStatus.js +0 -60
  10. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +0 -1
  11. package/components/FileManager/BottomInfoBar.d.ts +0 -5
  12. package/components/FileManager/BottomInfoBar.js +0 -60
  13. package/components/FileManager/BottomInfoBar.js.map +0 -1
  14. package/components/FileManager/DropFilesHere.d.ts +0 -10
  15. package/components/FileManager/DropFilesHere.js +0 -76
  16. package/components/FileManager/DropFilesHere.js.map +0 -1
  17. package/components/FileManager/File.d.ts +0 -17
  18. package/components/FileManager/File.js +0 -155
  19. package/components/FileManager/File.js.map +0 -1
  20. package/components/FileManager/FileDetails/Name.d.ts +0 -8
  21. package/components/FileManager/FileDetails/Name.js +0 -138
  22. package/components/FileManager/FileDetails/Name.js.map +0 -1
  23. package/components/FileManager/FileDetails/Tags.d.ts +0 -10
  24. package/components/FileManager/FileDetails/Tags.js +0 -339
  25. package/components/FileManager/FileDetails/Tags.js.map +0 -1
  26. package/components/FileManager/FileDetails.d.ts +0 -24
  27. package/components/FileManager/FileDetails.js +0 -474
  28. package/components/FileManager/FileDetails.js.map +0 -1
  29. package/components/FileManager/FileManagerContext.d.ts +0 -42
  30. package/components/FileManager/FileManagerContext.js +0 -224
  31. package/components/FileManager/FileManagerContext.js.map +0 -1
  32. package/components/FileManager/FileManagerView.d.ts +0 -18
  33. package/components/FileManager/FileManagerView.js +0 -721
  34. package/components/FileManager/FileManagerView.js.map +0 -1
  35. package/components/FileManager/LeftSidebar.d.ts +0 -10
  36. package/components/FileManager/LeftSidebar.js +0 -127
  37. package/components/FileManager/LeftSidebar.js.map +0 -1
  38. package/components/FileManager/NoPermissionView.d.ts +0 -3
  39. package/components/FileManager/NoPermissionView.js +0 -87
  40. package/components/FileManager/NoPermissionView.js.map +0 -1
  41. package/components/FileManager/NoResults.d.ts +0 -3
  42. package/components/FileManager/NoResults.js +0 -28
  43. package/components/FileManager/NoResults.js.map +0 -1
  44. package/components/FileManager/getFileTypePlugin.d.ts +0 -4
  45. package/components/FileManager/getFileTypePlugin.js +0 -57
  46. package/components/FileManager/getFileTypePlugin.js.map +0 -1
  47. package/components/FileManager/getFileUploader.d.ts +0 -3
  48. package/components/FileManager/getFileUploader.js +0 -20
  49. package/components/FileManager/getFileUploader.js.map +0 -1
  50. package/components/FileManager/graphql.d.ts +0 -96
  51. package/components/FileManager/graphql.js +0 -58
  52. package/components/FileManager/graphql.js.map +0 -1
  53. package/components/FileManager/icons/content_copy-black-24px.svg +0 -1
  54. package/components/FileManager/icons/delete.svg +0 -12
  55. package/components/FileManager/icons/privacy_tip-24px.svg +0 -10
  56. package/components/FileManager/icons/round-check_box-24px.svg +0 -4
  57. package/components/FileManager/icons/round-check_box_outline_blank-24px.svg +0 -4
  58. package/components/FileManager/icons/round-cloud_download-24px.svg +0 -4
  59. package/components/FileManager/icons/round-cloud_upload-24px.svg +0 -4
  60. package/components/FileManager/icons/round-description-24px.svg +0 -4
  61. package/components/FileManager/icons/round-edit-24px.svg +0 -4
  62. package/components/FileManager/icons/round-info-24px.svg +0 -4
  63. package/components/FileManager/icons/round-label-24px.svg +0 -4
  64. package/components/FileManager/icons/round-more_vert-24px.svg +0 -4
  65. package/components/FileManager/icons/round-search-24px.svg +0 -20
  66. package/components/FileManager/outputFileSelectionError.d.ts +0 -7
  67. package/components/FileManager/outputFileSelectionError.js +0 -54
  68. package/components/FileManager/outputFileSelectionError.js.map +0 -1
  69. package/components/FileManager/types.d.ts +0 -21
  70. package/components/FileManager/types.js +0 -5
  71. package/components/FileManager/types.js.map +0 -1
  72. package/components/FileManager.d.ts +0 -67
  73. package/components/FileManager.js +0 -144
  74. package/components/FileManager.js.map +0 -1
  75. package/plugins/FileManagerFileTypePlugin.d.ts +0 -33
  76. package/plugins/FileManagerFileTypePlugin.js +0 -63
  77. package/plugins/FileManagerFileTypePlugin.js.map +0 -1
  78. package/plugins/fileManager/fileDefault.d.ts +0 -2
  79. package/plugins/fileManager/fileDefault.js +0 -34
  80. package/plugins/fileManager/fileDefault.js.map +0 -1
  81. package/plugins/fileManager/fileImage/DeleteAction.d.ts +0 -7
  82. package/plugins/fileManager/fileImage/DeleteAction.js +0 -83
  83. package/plugins/fileManager/fileImage/DeleteAction.js.map +0 -1
  84. package/plugins/fileManager/fileImage/EditAction.d.ts +0 -10
  85. package/plugins/fileManager/fileImage/EditAction.js +0 -179
  86. package/plugins/fileManager/fileImage/EditAction.js.map +0 -1
  87. package/plugins/fileManager/fileImage/index.d.ts +0 -2
  88. package/plugins/fileManager/fileImage/index.js +0 -46
  89. package/plugins/fileManager/fileImage/index.js.map +0 -1
  90. package/plugins/fileManager/icons/edit.svg +0 -17
  91. package/plugins/fileManager/icons/round-description-24px.svg +0 -1
  92. package/plugins/fileManager/index.d.ts +0 -2
  93. package/plugins/fileManager/index.js +0 -21
  94. package/plugins/fileManager/index.js.map +0 -1
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.defaultFileTypePlugin = void 0;
9
-
10
- var React = _interopRequireWildcard(require("react"));
11
-
12
- var _roundDescription24px = require("./icons/round-description-24px.svg");
13
-
14
- var _emotion = require("emotion");
15
-
16
- var _FileManagerFileTypePlugin = require("../FileManagerFileTypePlugin");
17
-
18
- var style = {
19
- centering: /*#__PURE__*/(0, _emotion.css)({
20
- display: "flex",
21
- justifyContent: "center",
22
- alignItems: "center",
23
- height: 200
24
- }, "label:centering;")
25
- };
26
- var defaultFileTypePlugin = new _FileManagerFileTypePlugin.FileManagerFileTypePlugin({
27
- types: ["*/*"],
28
- render: function render() {
29
- return /*#__PURE__*/React.createElement("div", {
30
- className: style.centering
31
- }, /*#__PURE__*/React.createElement(_roundDescription24px.ReactComponent, null));
32
- }
33
- });
34
- exports.defaultFileTypePlugin = defaultFileTypePlugin;
@@ -1 +0,0 @@
1
- {"version":3,"names":["style","centering","css","display","justifyContent","alignItems","height","defaultFileTypePlugin","FileManagerFileTypePlugin","types","render"],"sources":["fileDefault.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ReactComponent as FileIcon } from \"./icons/round-description-24px.svg\";\nimport { css } from \"emotion\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst style = {\n centering: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: 200\n })\n};\n\nexport const defaultFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"*/*\"],\n render(): React.ReactNode {\n return (\n <div className={style.centering}>\n <FileIcon />\n </div>\n );\n }\n});\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;EACVC,SAAS,eAAE,IAAAC,YAAA,EAAI;IACXC,OAAO,EAAE,MADE;IAEXC,cAAc,EAAE,QAFL;IAGXC,UAAU,EAAE,QAHD;IAIXC,MAAM,EAAE;EAJG,CAAJ;AADD,CAAd;AASO,IAAMC,qBAAqB,GAAG,IAAIC,oDAAJ,CAA8B;EAC/DC,KAAK,EAAE,CAAC,KAAD,CADwD;EAE/DC,MAF+D,oBAErC;IACtB,oBACI;MAAK,SAAS,EAAEV,KAAK,CAACC;IAAtB,gBACI,oBAAC,oCAAD,OADJ,CADJ;EAKH;AAR8D,CAA9B,CAA9B"}
@@ -1,7 +0,0 @@
1
- import React from "react";
2
- import { FileManagerFileItem } from "../../../components/FileManager";
3
- interface DeleteActionProps {
4
- file: FileManagerFileItem;
5
- }
6
- declare const DeleteAction: React.FC<DeleteActionProps>;
7
- export default DeleteAction;
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
-
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _react = _interopRequireDefault(require("react"));
19
-
20
- var _Tooltip = require("@webiny/ui/Tooltip");
21
-
22
- var _Button = require("@webiny/ui/Button");
23
-
24
- var _useSnackbar2 = require("../../../hooks/useSnackbar");
25
-
26
- var _reactHooks = require("@apollo/react-hooks");
27
-
28
- var _i18n = require("@webiny/app/i18n");
29
-
30
- var _delete = require("../../../components/FileManager/icons/delete.svg");
31
-
32
- var _graphql = require("../../../components/FileManager/graphql");
33
-
34
- var _templateObject;
35
-
36
- var t = _i18n.i18n.ns("app-admin/file-manager/files/delete-action");
37
-
38
- var DeleteAction = function DeleteAction(props) {
39
- var file = props.file;
40
-
41
- var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
42
- showSnackbar = _useSnackbar.showSnackbar;
43
-
44
- var _useMutation = (0, _reactHooks.useMutation)(_graphql.DELETE_FILE, {
45
- variables: {
46
- id: file.id
47
- }
48
- }),
49
- _useMutation2 = (0, _slicedToArray2.default)(_useMutation, 1),
50
- deleteFile = _useMutation2[0];
51
-
52
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
53
- content: /*#__PURE__*/_react.default.createElement("span", null, "Edit image"),
54
- placement: "bottom"
55
- }, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
56
- icon: /*#__PURE__*/_react.default.createElement(_delete.ReactComponent, {
57
- style: {
58
- margin: "0 8px 0 0"
59
- }
60
- }),
61
- onClick: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
62
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
63
- while (1) {
64
- switch (_context.prev = _context.next) {
65
- case 0:
66
- _context.next = 2;
67
- return deleteFile();
68
-
69
- case 2:
70
- showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["File deleted."]))));
71
-
72
- case 3:
73
- case "end":
74
- return _context.stop();
75
- }
76
- }
77
- }, _callee);
78
- }))
79
- })));
80
- };
81
-
82
- var _default = DeleteAction;
83
- exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"names":["t","i18n","ns","DeleteAction","props","file","useSnackbar","showSnackbar","useMutation","DELETE_FILE","variables","id","deleteFile","margin"],"sources":["DeleteAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { useMutation } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FileManagerFileItem } from \"~/components/FileManager\";\nconst t = i18n.ns(\"app-admin/file-manager/files/delete-action\");\n\nimport { ReactComponent as DeleteIcon } from \"../../../components/FileManager/icons/delete.svg\";\nimport { DELETE_FILE } from \"~/components/FileManager/graphql\";\n\ninterface DeleteActionProps {\n file: FileManagerFileItem;\n}\nconst DeleteAction: React.FC<DeleteActionProps> = props => {\n const { file } = props;\n const { showSnackbar } = useSnackbar();\n const [deleteFile] = useMutation(DELETE_FILE, {\n variables: {\n id: file.id\n }\n });\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n icon={<DeleteIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n await deleteFile();\n showSnackbar(t`File deleted.`);\n }}\n />\n </Tooltip>\n </>\n );\n};\n\nexport default DeleteAction;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;;;AAHA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,4CAAR,CAAV;;AAQA,IAAMC,YAAyC,GAAG,SAA5CA,YAA4C,CAAAC,KAAK,EAAI;EACvD,IAAQC,IAAR,GAAiBD,KAAjB,CAAQC,IAAR;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,mBAAqB,IAAAC,uBAAA,EAAYC,oBAAZ,EAAyB;IAC1CC,SAAS,EAAE;MACPC,EAAE,EAAEN,IAAI,CAACM;IADF;EAD+B,CAAzB,CAArB;EAAA;EAAA,IAAOC,UAAP;;EAMA,oBACI,yEACI,6BAAC,gBAAD;IAAS,OAAO,eAAE,2CAAM,YAAN,CAAlB;IAA2C,SAAS,EAAE;EAAtD,gBACI,6BAAC,kBAAD;IACI,IAAI,eAAE,6BAAC,sBAAD;MAAY,KAAK,EAAE;QAAEC,MAAM,EAAE;MAAV;IAAnB,EADV;IAEI,OAAO,sGAAE;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACCD,UAAU,EADX;;YAAA;cAELL,YAAY,CAACP,CAAD,iGAAZ;;YAFK;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CAAF;EAFX,EADJ,CADJ,CADJ;AAaH,CAtBD;;eAwBeG,Y"}
@@ -1,10 +0,0 @@
1
- import * as React from "react";
2
- import { FileItem } from "../../../components/FileManager/types";
3
- interface EditActionProps {
4
- file: FileItem;
5
- uploadFile: (file: FileItem) => void;
6
- validateFiles: (blobs: any[]) => Error[];
7
- canEdit: (file: FileItem) => boolean;
8
- }
9
- declare const EditAction: React.FC<EditActionProps>;
10
- export default EditAction;
@@ -1,179 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
19
-
20
- var React = _interopRequireWildcard(require("react"));
21
-
22
- var _reactHotkeyz = require("react-hotkeyz");
23
-
24
- var _dataurlToBlob = _interopRequireDefault(require("dataurl-to-blob"));
25
-
26
- var _ImageUpload = require("@webiny/ui/ImageUpload");
27
-
28
- var _Tooltip = require("@webiny/ui/Tooltip");
29
-
30
- var _Button = require("@webiny/ui/Button");
31
-
32
- var _outputFileSelectionError = require("../../../components/FileManager/outputFileSelectionError");
33
-
34
- var _useSnackbar2 = require("../../../hooks/useSnackbar");
35
-
36
- var _edit = require("../icons/edit.svg");
37
-
38
- /**
39
- * Package react-hotkeyz has no types.
40
- */
41
- // @ts-ignore
42
-
43
- /**
44
- * Package dataurl-to-blob has no types.
45
- */
46
- // @ts-ignore
47
- function toDataUrl(url) {
48
- return new Promise(function (resolve) {
49
- var xhr = new window.XMLHttpRequest();
50
-
51
- xhr.onload = function () {
52
- var reader = new window.FileReader();
53
-
54
- reader.onloadend = function () {
55
- resolve(reader.result);
56
- };
57
-
58
- reader.readAsDataURL(xhr.response);
59
- };
60
-
61
- xhr.open("GET", url);
62
- xhr.responseType = "blob";
63
- xhr.send();
64
- });
65
- }
66
-
67
- var initialState = {
68
- showImageEditor: false,
69
- dataUrl: null
70
- };
71
-
72
- var reducer = function reducer(state, action) {
73
- var next = (0, _objectSpread2.default)({}, state);
74
-
75
- switch (action.type) {
76
- case "setDataUrl":
77
- next.dataUrl = action.dataUrl;
78
- next.showImageEditor = true;
79
- break;
80
-
81
- case "hideImageEditor":
82
- next.dataUrl = null;
83
- next.showImageEditor = false;
84
- break;
85
- }
86
-
87
- return next;
88
- };
89
-
90
- var EditAction = function EditAction(props) {
91
- var file = props.file,
92
- uploadFile = props.uploadFile,
93
- validateFiles = props.validateFiles,
94
- canEdit = props.canEdit;
95
-
96
- var _React$useReducer = React.useReducer(reducer, initialState),
97
- _React$useReducer2 = (0, _slicedToArray2.default)(_React$useReducer, 2),
98
- state = _React$useReducer2[0],
99
- dispatch = _React$useReducer2[1];
100
-
101
- var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
102
- showSnackbar = _useSnackbar.showSnackbar; // Render nothing if the user don't have required permission for "edit".
103
-
104
-
105
- if (!canEdit(file)) {
106
- return null;
107
- }
108
-
109
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Tooltip.Tooltip, {
110
- content: /*#__PURE__*/React.createElement("span", null, "Edit image"),
111
- placement: "bottom"
112
- }, /*#__PURE__*/React.createElement(_Button.IconButton, {
113
- "data-testid": "fm-edit-image-button",
114
- icon: /*#__PURE__*/React.createElement(_edit.ReactComponent, {
115
- style: {
116
- margin: "0 8px 0 0"
117
- }
118
- }),
119
- onClick: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
120
- var dataUrl;
121
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
122
- while (1) {
123
- switch (_context.prev = _context.next) {
124
- case 0:
125
- _context.next = 2;
126
- return toDataUrl(file.src);
127
-
128
- case 2:
129
- dataUrl = _context.sent;
130
- dispatch({
131
- type: "setDataUrl",
132
- dataUrl: dataUrl
133
- });
134
-
135
- case 4:
136
- case "end":
137
- return _context.stop();
138
- }
139
- }
140
- }, _callee);
141
- }))
142
- })), /*#__PURE__*/React.createElement(_reactHotkeyz.Hotkeys, {
143
- zIndex: 60,
144
- disabled: !state.dataUrl
145
- }, /*#__PURE__*/React.createElement(_ImageUpload.ImageEditorDialog, {
146
- "data-testid": "fm-image-editor-dialog",
147
- dialogZIndex: 100,
148
- open: state.showImageEditor,
149
- src: state.dataUrl,
150
- onClose: function onClose() {
151
- return dispatch({
152
- type: "hideImageEditor"
153
- });
154
- },
155
- onAccept: function onAccept(src) {
156
- var blob = (0, _dataurlToBlob.default)(src);
157
- var errors = validateFiles([blob]);
158
-
159
- if (errors.length) {
160
- /**
161
- * TODO @ts-refactor
162
- * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
163
- */
164
- // @ts-ignore
165
- showSnackbar((0, _outputFileSelectionError.outputFileSelectionError)(errors));
166
- } else {
167
- blob.name = file.name;
168
- uploadFile(blob);
169
- }
170
-
171
- dispatch({
172
- type: "hideImageEditor"
173
- });
174
- }
175
- })));
176
- };
177
-
178
- var _default = EditAction;
179
- exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"names":["toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","uploadFile","validateFiles","canEdit","React","useReducer","dispatch","useSnackbar","showSnackbar","margin","src","blob","dataURLtoBlob","errors","length","outputFileSelectionError","name"],"sources":["EditAction.tsx"],"sourcesContent":["import * as React from \"react\";\n/**\n * Package react-hotkeyz has no types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n/**\n * Package dataurl-to-blob has no types.\n */\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { outputFileSelectionError } from \"~/components/FileManager/outputFileSelectionError\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { ReactComponent as EditIcon } from \"../icons/edit.svg\";\nimport { FileItem } from \"~/components/FileManager/types\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n uploadFile: (file: FileItem) => void;\n validateFiles: (blobs: any[]) => Error[];\n canEdit: (file: FileItem) => boolean;\n}\n\nconst EditAction: React.FC<EditActionProps> = props => {\n const { file, uploadFile, validateFiles, canEdit } = props;\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const { showSnackbar } = useSnackbar();\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n const errors = validateFiles([blob]);\n\n if (errors.length) {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n showSnackbar(outputFileSelectionError(errors));\n } else {\n blob.name = file.name;\n uploadFile(blob);\n }\n\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n\nexport default EditAction;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAKA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAfA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAUA,SAASA,SAAT,CAAmBC,GAAnB,EAAiD;EAC7C,OAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAsC;IACrD,IAAMC,GAAG,GAAG,IAAIC,MAAM,CAACC,cAAX,EAAZ;;IACAF,GAAG,CAACG,MAAJ,GAAa,YAAY;MACrB,IAAMC,MAAM,GAAG,IAAIH,MAAM,CAACI,UAAX,EAAf;;MACAD,MAAM,CAACE,SAAP,GAAmB,YAAY;QAC3BP,OAAO,CAACK,MAAM,CAACG,MAAR,CAAP;MACH,CAFD;;MAGAH,MAAM,CAACI,aAAP,CAAqBR,GAAG,CAACS,QAAzB;IACH,CAND;;IAOAT,GAAG,CAACU,IAAJ,CAAS,KAAT,EAAgBb,GAAhB;IACAG,GAAG,CAACW,YAAJ,GAAmB,MAAnB;IACAX,GAAG,CAACY,IAAJ;EACH,CAZM,CAAP;AAaH;;AASD,IAAMC,YAAmB,GAAG;EACxBC,eAAe,EAAE,KADO;EAExBC,OAAO,EAAE;AAFe,CAA5B;;AAIA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAeC,MAAf,EAAyC;EACrD,IAAMC,IAAW,mCAAQF,KAAR,CAAjB;;EAEA,QAAQC,MAAM,CAACE,IAAf;IACI,KAAK,YAAL;MACID,IAAI,CAACJ,OAAL,GAAeG,MAAM,CAACH,OAAtB;MACAI,IAAI,CAACL,eAAL,GAAuB,IAAvB;MACA;;IACJ,KAAK,iBAAL;MACIK,IAAI,CAACJ,OAAL,GAAe,IAAf;MACAI,IAAI,CAACL,eAAL,GAAuB,KAAvB;MACA;EARR;;EAWA,OAAOK,IAAP;AACH,CAfD;;AAwBA,IAAME,UAAqC,GAAG,SAAxCA,UAAwC,CAAAC,KAAK,EAAI;EACnD,IAAQC,IAAR,GAAqDD,KAArD,CAAQC,IAAR;EAAA,IAAcC,UAAd,GAAqDF,KAArD,CAAcE,UAAd;EAAA,IAA0BC,aAA1B,GAAqDH,KAArD,CAA0BG,aAA1B;EAAA,IAAyCC,OAAzC,GAAqDJ,KAArD,CAAyCI,OAAzC;;EACA,wBAA0BC,KAAK,CAACC,UAAN,CAAiBZ,OAAjB,EAA0BH,YAA1B,CAA1B;EAAA;EAAA,IAAOI,KAAP;EAAA,IAAcY,QAAd;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR,CAHmD,CAInD;;;EACA,IAAI,CAACL,OAAO,CAACH,IAAD,CAAZ,EAAoB;IAChB,OAAO,IAAP;EACH;;EAED,oBACI,uDACI,oBAAC,gBAAD;IAAS,OAAO,eAAE,kCAAM,YAAN,CAAlB;IAA2C,SAAS,EAAE;EAAtD,gBACI,oBAAC,kBAAD;IACI,eAAa,sBADjB;IAEI,IAAI,eAAE,oBAAC,oBAAD;MAAU,KAAK,EAAE;QAAES,MAAM,EAAE;MAAV;IAAjB,EAFV;IAGI,OAAO,sGAAE;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACiBpC,SAAS,CAAC2B,IAAI,CAACU,GAAN,CAD1B;;YAAA;cACClB,OADD;cAELc,QAAQ,CAAC;gBAAET,IAAI,EAAE,YAAR;gBAAsBL,OAAO,EAAPA;cAAtB,CAAD,CAAR;;YAFK;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CAAF;EAHX,EADJ,CADJ,eAWI,oBAAC,qBAAD;IAAS,MAAM,EAAE,EAAjB;IAAqB,QAAQ,EAAE,CAACE,KAAK,CAACF;EAAtC,gBACI,oBAAC,8BAAD;IACI,eAAa,wBADjB;IAEI,YAAY,EAAE,GAFlB;IAGI,IAAI,EAAEE,KAAK,CAACH,eAHhB;IAII,GAAG,EAAEG,KAAK,CAACF,OAJf;IAKI,OAAO,EAAE;MAAA,OAAMc,QAAQ,CAAC;QAAET,IAAI,EAAE;MAAR,CAAD,CAAd;IAAA,CALb;IAMI,QAAQ,EAAE,kBAAAa,GAAG,EAAI;MACb,IAAMC,IAAI,GAAG,IAAAC,sBAAA,EAAcF,GAAd,CAAb;MACA,IAAMG,MAAM,GAAGX,aAAa,CAAC,CAACS,IAAD,CAAD,CAA5B;;MAEA,IAAIE,MAAM,CAACC,MAAX,EAAmB;QACf;AAC5B;AACA;AACA;QAC4B;QACAN,YAAY,CAAC,IAAAO,kDAAA,EAAyBF,MAAzB,CAAD,CAAZ;MACH,CAPD,MAOO;QACHF,IAAI,CAACK,IAAL,GAAYhB,IAAI,CAACgB,IAAjB;QACAf,UAAU,CAACU,IAAD,CAAV;MACH;;MAEDL,QAAQ,CAAC;QAAET,IAAI,EAAE;MAAR,CAAD,CAAR;IACH;EAvBL,EADJ,CAXJ,CADJ;AAyCH,CAlDD;;eAoDeC,U"}
@@ -1,2 +0,0 @@
1
- import { FileManagerFileTypePlugin } from "../../FileManagerFileTypePlugin";
2
- export declare const imageFileTypePlugin: FileManagerFileTypePlugin;
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.imageFileTypePlugin = void 0;
11
-
12
- var React = _interopRequireWildcard(require("react"));
13
-
14
- var _emotion = require("emotion");
15
-
16
- var _components = require("@webiny/app/components");
17
-
18
- var _EditAction = _interopRequireDefault(require("./EditAction"));
19
-
20
- var _FileManagerFileTypePlugin = require("../../FileManagerFileTypePlugin");
21
-
22
- var styles = /*#__PURE__*/(0, _emotion.css)({
23
- maxHeight: 200,
24
- maxWidth: 200,
25
- width: "auto",
26
- position: "absolute",
27
- top: "50%",
28
- left: "50%",
29
- transform: "translateX(-50%) translateY(-50%)"
30
- }, "label:styles;");
31
- var imageFileTypePlugin = new _FileManagerFileTypePlugin.FileManagerFileTypePlugin({
32
- types: ["image/*"],
33
- actions: [_EditAction.default],
34
- render: function render(_ref) {
35
- var file = _ref.file;
36
- return /*#__PURE__*/React.createElement(_components.Image, {
37
- className: styles,
38
- src: file.src,
39
- alt: file.name,
40
- transform: {
41
- width: 300
42
- }
43
- });
44
- }
45
- });
46
- exports.imageFileTypePlugin = imageFileTypePlugin;
@@ -1 +0,0 @@
1
- {"version":3,"names":["styles","css","maxHeight","maxWidth","width","position","top","left","transform","imageFileTypePlugin","FileManagerFileTypePlugin","types","actions","EditAction","render","file","src","name"],"sources":["index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport { Image } from \"@webiny/app/components\";\n\nimport EditAction from \"./EditAction\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst styles = css({\n maxHeight: 200,\n maxWidth: 200,\n width: \"auto\",\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translateX(-50%) translateY(-50%)\"\n});\n\nexport const imageFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"image/*\"],\n actions: [EditAction],\n render({ file }) {\n return (\n <Image className={styles} src={file.src} alt={file.name} transform={{ width: 300 }} />\n );\n }\n});\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,SAAS,EAAE,GADI;EAEfC,QAAQ,EAAE,GAFK;EAGfC,KAAK,EAAE,MAHQ;EAIfC,QAAQ,EAAE,UAJK;EAKfC,GAAG,EAAE,KALU;EAMfC,IAAI,EAAE,KANS;EAOfC,SAAS,EAAE;AAPI,CAAJ,kBAAf;AAUO,IAAMC,mBAAmB,GAAG,IAAIC,oDAAJ,CAA8B;EAC7DC,KAAK,EAAE,CAAC,SAAD,CADsD;EAE7DC,OAAO,EAAE,CAACC,mBAAD,CAFoD;EAG7DC,MAH6D,wBAG5C;IAAA,IAARC,IAAQ,QAARA,IAAQ;IACb,oBACI,oBAAC,iBAAD;MAAO,SAAS,EAAEf,MAAlB;MAA0B,GAAG,EAAEe,IAAI,CAACC,GAApC;MAAyC,GAAG,EAAED,IAAI,CAACE,IAAnD;MAAyD,SAAS,EAAE;QAAEb,KAAK,EAAE;MAAT;IAApE,EADJ;EAGH;AAP4D,CAA9B,CAA5B"}
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
4
- height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
5
- <g id="Bounding_Boxes">
6
- <g id="ui_x5F_spec_x5F_header_copy_3">
7
- </g>
8
- <path fill="none" d="M0,0h24v24H0V0z"/>
9
- </g>
10
- <g id="Rounded">
11
- <g id="ui_x5F_spec_x5F_header_copy_7">
12
- </g>
13
- <path d="M3,17.46v3.04C3,20.78,3.22,21,3.5,21h3.04c0.13,0,0.26-0.05,0.35-0.15L17.81,9.94l-3.75-3.75L3.15,17.1
14
- C3.05,17.2,3,17.32,3,17.46z M20.71,7.04c0.39-0.39,0.39-1.02,0-1.41l-2.34-2.34c-0.39-0.39-1.02-0.39-1.41,0l-1.83,1.83l3.75,3.75
15
- L20.71,7.04z"/>
16
- </g>
17
- </svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M14.59 2.59c-.38-.38-.89-.59-1.42-.59H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8.83c0-.53-.21-1.04-.59-1.41l-4.82-4.83zM15 18H9c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1zm0-4H9c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1zm-2-6V3.5L18.5 9H14c-.55 0-1-.45-1-1z"/></svg>
@@ -1,2 +0,0 @@
1
- export { defaultFileTypePlugin } from "./fileDefault";
2
- export { imageFileTypePlugin } from "./fileImage";
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "defaultFileTypePlugin", {
7
- enumerable: true,
8
- get: function get() {
9
- return _fileDefault.defaultFileTypePlugin;
10
- }
11
- });
12
- Object.defineProperty(exports, "imageFileTypePlugin", {
13
- enumerable: true,
14
- get: function get() {
15
- return _fileImage.imageFileTypePlugin;
16
- }
17
- });
18
-
19
- var _fileDefault = require("./fileDefault");
20
-
21
- var _fileImage = require("./fileImage");
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { defaultFileTypePlugin } from \"./fileDefault\";\nexport { imageFileTypePlugin } from \"./fileImage\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA"}