@webiny/app-admin 5.35.0 → 5.35.1-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 (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,138 +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 _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
17
-
18
- var _get2 = _interopRequireDefault(require("lodash/get"));
19
-
20
- var _react = _interopRequireWildcard(require("react"));
21
-
22
- var _reactHooks = require("@apollo/react-hooks");
23
-
24
- var _Input = require("@webiny/ui/Input");
25
-
26
- var _form = require("@webiny/form");
27
-
28
- var _validation = require("@webiny/validation");
29
-
30
- var _useSnackbar2 = require("../../../hooks/useSnackbar");
31
-
32
- var _graphql = require("./../graphql");
33
-
34
- var _FileManagerContext = require("./../FileManagerContext");
35
-
36
- var Name = function Name(_ref) {
37
- var file = _ref.file,
38
- canEdit = _ref.canEdit;
39
- var name = file.name || "";
40
-
41
- var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
42
- showSnackbar = _useSnackbar.showSnackbar;
43
-
44
- var client = (0, _reactHooks.useApolloClient)();
45
-
46
- var _useFileManager = (0, _FileManagerContext.useFileManager)(),
47
- queryParams = _useFileManager.queryParams;
48
-
49
- var editContent = (0, _react.useMemo)(function () {
50
- return /*#__PURE__*/_react.default.createElement(_form.Form, {
51
- data: {
52
- name: name
53
- },
54
- onSubmit: /*#__PURE__*/function () {
55
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(_ref2) {
56
- var name;
57
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
58
- while (1) {
59
- switch (_context.prev = _context.next) {
60
- case 0:
61
- name = _ref2.name;
62
-
63
- if (!(name === file.name)) {
64
- _context.next = 3;
65
- break;
66
- }
67
-
68
- return _context.abrupt("return");
69
-
70
- case 3:
71
- _context.next = 5;
72
- return client.mutate({
73
- mutation: _graphql.UPDATE_FILE,
74
- variables: {
75
- id: file.id,
76
- data: {
77
- name: name
78
- }
79
- },
80
- update: function update(cache, updated) {
81
- var newFileData = (0, _get2.default)(updated, "data.fileManager.updateFile.data");
82
- var data = (0, _cloneDeep2.default)(cache.readQuery({
83
- query: _graphql.LIST_FILES,
84
- variables: queryParams
85
- }));
86
-
87
- if (data) {
88
- data.fileManager.listFiles.data.forEach(function (item) {
89
- if (item.src === newFileData.src) {
90
- item.name = newFileData.name;
91
- }
92
- });
93
- }
94
-
95
- cache.writeQuery({
96
- query: _graphql.LIST_FILES,
97
- variables: queryParams,
98
- data: data
99
- });
100
- }
101
- });
102
-
103
- case 5:
104
- showSnackbar("Name successfully updated.");
105
-
106
- case 6:
107
- case "end":
108
- return _context.stop();
109
- }
110
- }
111
- }, _callee);
112
- }));
113
-
114
- return function (_x) {
115
- return _ref3.apply(this, arguments);
116
- };
117
- }()
118
- }, function (_ref4) {
119
- var Bind = _ref4.Bind,
120
- submit = _ref4.submit;
121
- return /*#__PURE__*/_react.default.createElement(Bind, {
122
- name: "name",
123
- validators: _validation.validation.create("required")
124
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
125
- disabled: !canEdit(file),
126
- autoFocus: true,
127
- placeholder: "Enter name",
128
- fullwidth: true,
129
- onBlur: submit,
130
- description: "A descriptive name is easier to remember."
131
- }));
132
- });
133
- }, [name, file.name, canEdit]);
134
- return /*#__PURE__*/_react.default.createElement("li-content", null, editContent);
135
- };
136
-
137
- var _default = Name;
138
- exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"names":["Name","file","canEdit","name","useSnackbar","showSnackbar","client","useApolloClient","useFileManager","queryParams","editContent","useMemo","mutate","mutation","UPDATE_FILE","variables","id","data","update","cache","updated","newFileData","readQuery","query","LIST_FILES","fileManager","listFiles","forEach","item","src","writeQuery","Bind","submit","validation","create"],"sources":["Name.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { get, cloneDeep } from \"lodash\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport {\n UPDATE_FILE,\n LIST_FILES,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables,\n ListFilesQueryResponse\n} from \"./../graphql\";\nimport { useFileManager } from \"./../FileManagerContext\";\nimport { FileItem } from \"../types\";\n\ninterface NameProps {\n file: FileItem;\n canEdit: (file: FileItem) => boolean;\n}\nconst Name: React.FC<NameProps> = ({ file, canEdit }) => {\n const name = file.name || \"\";\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n\n const { queryParams } = useFileManager();\n\n const editContent = useMemo(() => {\n return (\n <Form\n data={{\n name\n }}\n onSubmit={async ({ name }) => {\n // Bail out if name is same as the current file name.\n if (name === file.name) {\n return;\n }\n // Update file.\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id: file.id,\n data: { name }\n },\n update: (cache, updated) => {\n const newFileData = get(\n updated,\n \"data.fileManager.updateFile.data\"\n ) as unknown as FileItem;\n const data = cloneDeep(\n cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n })\n );\n\n if (data) {\n data.fileManager.listFiles.data.forEach(item => {\n if (item.src === newFileData.src) {\n item.name = newFileData.name;\n }\n });\n }\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: data\n });\n }\n });\n\n showSnackbar(\"Name successfully updated.\");\n }}\n >\n {({ Bind, submit }) => (\n <Bind name={\"name\"} validators={validation.create(\"required\")}>\n <Input\n disabled={!canEdit(file)}\n autoFocus\n placeholder={\"Enter name\"}\n fullwidth={true}\n onBlur={submit}\n description={\"A descriptive name is easier to remember.\"}\n />\n </Bind>\n )}\n </Form>\n );\n }, [name, file.name, canEdit]);\n\n return <li-content>{editContent}</li-content>;\n};\n\nexport default Name;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AAOA,IAAMA,IAAyB,GAAG,SAA5BA,IAA4B,OAAuB;EAAA,IAApBC,IAAoB,QAApBA,IAAoB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EACrD,IAAMC,IAAI,GAAGF,IAAI,CAACE,IAAL,IAAa,EAA1B;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,IAAMC,MAAM,GAAG,IAAAC,2BAAA,GAAf;;EAEA,sBAAwB,IAAAC,kCAAA,GAAxB;EAAA,IAAQC,WAAR,mBAAQA,WAAR;;EAEA,IAAMC,WAAW,GAAG,IAAAC,cAAA,EAAQ,YAAM;IAC9B,oBACI,6BAAC,UAAD;MACI,IAAI,EAAE;QACFR,IAAI,EAAJA;MADE,CADV;MAII,QAAQ;QAAA,mGAAE;UAAA;UAAA;YAAA;cAAA;gBAAA;kBAASA,IAAT,SAASA,IAAT;;kBAAA,MAEFA,IAAI,KAAKF,IAAI,CAACE,IAFZ;oBAAA;oBAAA;kBAAA;;kBAAA;;gBAAA;kBAAA;kBAAA,OAMAG,MAAM,CAACM,MAAP,CAAuE;oBACzEC,QAAQ,EAAEC,oBAD+D;oBAEzEC,SAAS,EAAE;sBACPC,EAAE,EAAEf,IAAI,CAACe,EADF;sBAEPC,IAAI,EAAE;wBAAEd,IAAI,EAAJA;sBAAF;oBAFC,CAF8D;oBAMzEe,MAAM,EAAE,gBAACC,KAAD,EAAQC,OAAR,EAAoB;sBACxB,IAAMC,WAAW,GAAG,mBAChBD,OADgB,EAEhB,kCAFgB,CAApB;sBAIA,IAAMH,IAAI,GAAG,yBACTE,KAAK,CAACG,SAAN,CAAwC;wBACpCC,KAAK,EAAEC,mBAD6B;wBAEpCT,SAAS,EAAEN;sBAFyB,CAAxC,CADS,CAAb;;sBAOA,IAAIQ,IAAJ,EAAU;wBACNA,IAAI,CAACQ,WAAL,CAAiBC,SAAjB,CAA2BT,IAA3B,CAAgCU,OAAhC,CAAwC,UAAAC,IAAI,EAAI;0BAC5C,IAAIA,IAAI,CAACC,GAAL,KAAaR,WAAW,CAACQ,GAA7B,EAAkC;4BAC9BD,IAAI,CAACzB,IAAL,GAAYkB,WAAW,CAAClB,IAAxB;0BACH;wBACJ,CAJD;sBAKH;;sBAEDgB,KAAK,CAACW,UAAN,CAAiB;wBACbP,KAAK,EAAEC,mBADM;wBAEbT,SAAS,EAAEN,WAFE;wBAGbQ,IAAI,EAAEA;sBAHO,CAAjB;oBAKH;kBA/BwE,CAAvE,CANA;;gBAAA;kBAwCNZ,YAAY,CAAC,4BAAD,CAAZ;;gBAxCM;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CAAF;;QAAA;UAAA;QAAA;MAAA;IAJZ,GA+CK;MAAA,IAAG0B,IAAH,SAAGA,IAAH;MAAA,IAASC,MAAT,SAASA,MAAT;MAAA,oBACG,6BAAC,IAAD;QAAM,IAAI,EAAE,MAAZ;QAAoB,UAAU,EAAEC,sBAAA,CAAWC,MAAX,CAAkB,UAAlB;MAAhC,gBACI,6BAAC,YAAD;QACI,QAAQ,EAAE,CAAChC,OAAO,CAACD,IAAD,CADtB;QAEI,SAAS,MAFb;QAGI,WAAW,EAAE,YAHjB;QAII,SAAS,EAAE,IAJf;QAKI,MAAM,EAAE+B,MALZ;QAMI,WAAW,EAAE;MANjB,EADJ,CADH;IAAA,CA/CL,CADJ;EA8DH,CA/DmB,EA+DjB,CAAC7B,IAAD,EAAOF,IAAI,CAACE,IAAZ,EAAkBD,OAAlB,CA/DiB,CAApB;EAiEA,oBAAO,iDAAaQ,WAAb,CAAP;AACH,CAzED;;eA2EeV,I"}
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- import { FileItem } from "../types";
3
- export declare const formatTagAsLabel: (tag: string, scope: string | undefined) => string;
4
- export declare const tagWithoutScopePrefix: (tags: string[], scope: string) => string[];
5
- interface TagsProps {
6
- file: FileItem;
7
- canEdit: (file: FileItem) => boolean;
8
- }
9
- declare const Tags: React.FC<TagsProps>;
10
- export default Tags;
@@ -1,339 +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.tagWithoutScopePrefix = exports.formatTagAsLabel = exports.default = void 0;
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
15
-
16
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
-
20
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
-
22
- var _react = _interopRequireWildcard(require("react"));
23
-
24
- var _classnames = _interopRequireDefault(require("classnames"));
25
-
26
- var _emotion = require("emotion");
27
-
28
- var _reactHooks = require("@apollo/react-hooks");
29
-
30
- var _set = _interopRequireDefault(require("lodash/set"));
31
-
32
- var _get = _interopRequireDefault(require("lodash/get"));
33
-
34
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
35
-
36
- var _Chips = require("@webiny/ui/Chips");
37
-
38
- var _Button = require("@webiny/ui/Button");
39
-
40
- var _AutoComplete = require("@webiny/ui/AutoComplete");
41
-
42
- var _Icon = require("@webiny/ui/Icon");
43
-
44
- var _form = require("@webiny/form");
45
-
46
- var _useSnackbar2 = require("../../../hooks/useSnackbar");
47
-
48
- var _FileManagerContext = require("./../FileManagerContext");
49
-
50
- var _graphql = require("./../graphql");
51
-
52
- var _roundEdit24px = require("./../icons/round-edit-24px.svg");
53
-
54
- var _roundLabel24px = require("./../icons/round-label-24px.svg");
55
-
56
- var _excluded = ["value"];
57
- var SCOPE_SEPARATOR = ":";
58
-
59
- var formatTagAsLabel = function formatTagAsLabel(tag, scope) {
60
- if (!scope) {
61
- return tag;
62
- }
63
-
64
- return tag.replace("".concat(scope).concat(SCOPE_SEPARATOR), "");
65
- };
66
-
67
- exports.formatTagAsLabel = formatTagAsLabel;
68
-
69
- var tagWithoutScopePrefix = function tagWithoutScopePrefix(tags, scope) {
70
- return tags.filter(function (tag) {
71
- return tag !== scope;
72
- }).map(function (tag) {
73
- return formatTagAsLabel(tag, scope);
74
- });
75
- };
76
-
77
- exports.tagWithoutScopePrefix = tagWithoutScopePrefix;
78
- var chipsStyle = /*#__PURE__*/(0, _emotion.css)({
79
- "&.mdc-chip-set": {
80
- padding: 0,
81
- marginLeft: -4,
82
- "& .mdc-chip": {
83
- backgroundColor: "var(--mdc-theme-background)"
84
- }
85
- }
86
- }, "label:chipsStyle;");
87
- var iconButtonStyle = /*#__PURE__*/(0, _emotion.css)({
88
- "&.mdc-icon-button svg": {
89
- width: 20,
90
- height: 20
91
- }
92
- }, "label:iconButtonStyle;");
93
- var addTagsStyle = /*#__PURE__*/(0, _emotion.css)({
94
- "&.mdc-button:not(:disabled)": {
95
- color: "var(--mdc-theme-text-secondary-on-background)",
96
- textTransform: "capitalize",
97
- letterSpacing: "initial",
98
- marginLeft: -8
99
- }
100
- }, "label:addTagsStyle;");
101
- var actionWrapperStyle = /*#__PURE__*/(0, _emotion.css)({
102
- marginTop: 16,
103
- "& button:first-child": {
104
- marginRight: 16
105
- }
106
- }, "label:actionWrapperStyle;");
107
-
108
- var Tags = function Tags(_ref) {
109
- var file = _ref.file,
110
- canEdit = _ref.canEdit;
111
- var client = (0, _reactHooks.useApolloClient)();
112
-
113
- var _useState = (0, _react.useState)(false),
114
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
115
- editing = _useState2[0],
116
- setEdit = _useState2[1];
117
-
118
- var _useState3 = (0, _react.useState)(false),
119
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
120
- saving = _useState4[0],
121
- setSaving = _useState4[1];
122
-
123
- var _useState5 = (0, _react.useState)(Array.isArray(file.tags) ? (0, _toConsumableArray2.default)(file.tags) : []),
124
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
125
- initialTags = _useState6[0],
126
- setInitialTags = _useState6[1];
127
-
128
- var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
129
- showSnackbar = _useSnackbar.showSnackbar;
130
-
131
- var _useFileManager = (0, _FileManagerContext.useFileManager)(),
132
- queryParams = _useFileManager.queryParams;
133
-
134
- var handleEdit = (0, _react.useCallback)(function () {
135
- return setEdit(true);
136
- }, []);
137
- var listTagsQuery = (0, _reactHooks.useQuery)(_graphql.LIST_TAGS, {
138
- variables: {
139
- where: (0, _FileManagerContext.getWhere)(queryParams.scope)
140
- }
141
- });
142
- var listTags = (0, _get.default)(listTagsQuery, "data.fileManager.listTags", []);
143
- var allTags = tagWithoutScopePrefix(listTags, queryParams.scope);
144
- var isEditingAllowed = canEdit(file);
145
- var renderHeaderContent = (0, _react.useCallback)(function (_ref2) {
146
- var data = _ref2.data;
147
-
148
- if (editing) {
149
- return null;
150
- }
151
-
152
- var hasTags = data.tags.length > 0;
153
-
154
- if (hasTags) {
155
- // Render existing tags and "edit tags" action.
156
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Chips.Chips, {
157
- className: (0, _classnames.default)("list-item__content", chipsStyle)
158
- }, data.tags.filter(function (tag) {
159
- return tag !== queryParams.scope;
160
- }).map(function (tag, index) {
161
- var label = typeof tag === "string" ? tag : tag.name;
162
- return /*#__PURE__*/_react.default.createElement(_Chips.Chip, {
163
- key: label + index,
164
- label: formatTagAsLabel(label, queryParams.scope)
165
- });
166
- })), isEditingAllowed && /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
167
- className: iconButtonStyle,
168
- icon: /*#__PURE__*/_react.default.createElement(_roundEdit24px.ReactComponent, null),
169
- onClick: handleEdit
170
- }));
171
- } // Render "add tags" action.
172
-
173
-
174
- return /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
175
- className: addTagsStyle,
176
- onClick: handleEdit,
177
- disabled: !isEditingAllowed,
178
- "data-testid": "fm.tags.add"
179
- }, "Add tags...");
180
- }, [editing, isEditingAllowed]);
181
- return /*#__PURE__*/_react.default.createElement(_form.Form, {
182
- data: {
183
- tags: initialTags
184
- },
185
- onSubmit: /*#__PURE__*/function () {
186
- var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(_ref3) {
187
- var tags;
188
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
189
- while (1) {
190
- switch (_context.prev = _context.next) {
191
- case 0:
192
- tags = _ref3.tags;
193
- setSaving(true);
194
- client.mutate({
195
- mutation: _graphql.UPDATE_FILE,
196
- variables: {
197
- id: file.id,
198
- data: {
199
- tags: tags
200
- }
201
- },
202
- update: function update(cache, updated) {
203
- var newFileData = (0, _get.default)(updated, "data.fileManager.updateFile.data"); // 1. Update files list cache
204
-
205
- var data = (0, _cloneDeep.default)(cache.readQuery({
206
- query: _graphql.LIST_FILES,
207
- variables: queryParams
208
- }));
209
-
210
- if (data) {
211
- data.fileManager.listFiles.data.forEach(function (item) {
212
- if (item.key === newFileData.key) {
213
- item.tags = newFileData.tags;
214
- }
215
- });
216
- }
217
-
218
- cache.writeQuery({
219
- query: _graphql.LIST_FILES,
220
- variables: queryParams,
221
- data: data
222
- }); // 2. Update "LIST_TAGS" cache
223
-
224
- if (Array.isArray(newFileData.tags)) {
225
- // Get list tags data
226
- var listTagsData = (0, _cloneDeep.default)(cache.readQuery({
227
- query: _graphql.LIST_TAGS,
228
- variables: {
229
- where: (0, _FileManagerContext.getWhere)(queryParams.scope)
230
- }
231
- }));
232
-
233
- if (!listTagsData) {
234
- return;
235
- } // Add new tag in list
236
-
237
-
238
- var updatedTagsList = (0, _toConsumableArray2.default)(newFileData.tags);
239
-
240
- if (Array.isArray(listTagsData.fileManager.listTags)) {
241
- listTagsData.fileManager.listTags.forEach(function (tag) {
242
- if (!updatedTagsList.includes(tag)) {
243
- updatedTagsList.push(tag);
244
- }
245
- });
246
- }
247
-
248
- (0, _set.default)(listTagsData, "fileManager.listTags", updatedTagsList); // Write it to cache
249
-
250
- cache.writeQuery({
251
- query: _graphql.LIST_TAGS,
252
- variables: {
253
- where: (0, _FileManagerContext.getWhere)(queryParams.scope)
254
- },
255
- data: listTagsData
256
- });
257
- }
258
- }
259
- }).then(function () {
260
- setInitialTags(tags);
261
- setSaving(false);
262
- setEdit(false);
263
- showSnackbar("Tags successfully updated.");
264
- });
265
-
266
- case 3:
267
- case "end":
268
- return _context.stop();
269
- }
270
- }
271
- }, _callee);
272
- }));
273
-
274
- return function (_x) {
275
- return _ref4.apply(this, arguments);
276
- };
277
- }()
278
- }, function (_ref5) {
279
- var Bind = _ref5.Bind,
280
- data = _ref5.data,
281
- setValue = _ref5.setValue,
282
- submit = _ref5.submit;
283
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("li-title", null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
284
- className: "list-item__icon",
285
- icon: /*#__PURE__*/_react.default.createElement(_roundLabel24px.ReactComponent, null)
286
- }), renderHeaderContent({
287
- // TODO @ts-refactor
288
- // @ts-ignore
289
- data: data
290
- })), editing && /*#__PURE__*/_react.default.createElement("li-content", null, /*#__PURE__*/_react.default.createElement(Bind, {
291
- name: "tags",
292
- beforeChange: function beforeChange(tags, baseOnChange) {
293
- var formattedTags = tags.map(function (tag) {
294
- var tagInLowerCase = tag.toLowerCase();
295
- /**
296
- * If "scope" exists, prefix tag with "scope" if not already.
297
- */
298
-
299
- if (queryParams.scope && !tagInLowerCase.startsWith(queryParams.scope)) {
300
- return "".concat(queryParams.scope).concat(SCOPE_SEPARATOR).concat(tagInLowerCase);
301
- }
302
-
303
- return tagInLowerCase;
304
- });
305
- baseOnChange(formattedTags);
306
- }
307
- }, function (_ref6) {
308
- var value = _ref6.value,
309
- bindProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
310
- return /*#__PURE__*/_react.default.createElement(_AutoComplete.MultiAutoComplete, Object.assign({}, bindProps, {
311
- value: tagWithoutScopePrefix(value, queryParams.scope),
312
- options: allTags,
313
- placeholder: "homepage asset",
314
- description: "Type in a new tag or select an existing one.",
315
- unique: true,
316
- allowFreeInput: true,
317
- useSimpleValues: true,
318
- disabled: saving
319
- }));
320
- }), /*#__PURE__*/_react.default.createElement("div", {
321
- className: actionWrapperStyle
322
- }, /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
323
- small: true,
324
- onClick: function onClick(ev) {
325
- submit(ev);
326
- },
327
- "data-testid": "fm.tags.submit"
328
- }, "Submit"), /*#__PURE__*/_react.default.createElement(_Button.ButtonSecondary, {
329
- small: true,
330
- onClick: function onClick() {
331
- setValue("tags", initialTags);
332
- setEdit(false);
333
- }
334
- }, "Cancel"))));
335
- });
336
- };
337
-
338
- var _default = Tags;
339
- exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"names":["SCOPE_SEPARATOR","formatTagAsLabel","tag","scope","replace","tagWithoutScopePrefix","tags","filter","map","chipsStyle","css","padding","marginLeft","backgroundColor","iconButtonStyle","width","height","addTagsStyle","color","textTransform","letterSpacing","actionWrapperStyle","marginTop","marginRight","Tags","file","canEdit","client","useApolloClient","useState","editing","setEdit","saving","setSaving","Array","isArray","initialTags","setInitialTags","useSnackbar","showSnackbar","useFileManager","queryParams","handleEdit","useCallback","listTagsQuery","useQuery","LIST_TAGS","variables","where","getWhere","listTags","get","allTags","isEditingAllowed","renderHeaderContent","data","hasTags","length","classNames","index","label","name","mutate","mutation","UPDATE_FILE","id","update","cache","updated","newFileData","cloneDeep","readQuery","query","LIST_FILES","fileManager","listFiles","forEach","item","key","writeQuery","listTagsData","updatedTagsList","includes","push","set","then","Bind","setValue","submit","baseOnChange","formattedTags","tagInLowerCase","toLowerCase","startsWith","value","bindProps","ev"],"sources":["Tags.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { css } from \"emotion\";\nimport { useApolloClient, useQuery } from \"@apollo/react-hooks\";\nimport set from \"lodash/set\";\nimport get from \"lodash/get\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { Chips, Chip } from \"@webiny/ui/Chips\";\nimport { ButtonSecondary, ButtonPrimary, ButtonDefault, IconButton } from \"@webiny/ui/Button\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Form } from \"@webiny/form\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { getWhere, useFileManager } from \"./../FileManagerContext\";\nimport {\n UPDATE_FILE,\n LIST_FILES,\n LIST_TAGS,\n ListFilesQueryResponse,\n ListFileTagsQueryResponse\n} from \"./../graphql\";\nimport { ReactComponent as EditIcon } from \"./../icons/round-edit-24px.svg\";\nimport { ReactComponent as LabelIcon } from \"./../icons/round-label-24px.svg\";\nimport { FileItem } from \"../types\";\n\nconst SCOPE_SEPARATOR = \":\";\n\nexport const formatTagAsLabel = (tag: string, scope: string | undefined) => {\n if (!scope) {\n return tag;\n }\n return tag.replace(`${scope}${SCOPE_SEPARATOR}`, \"\");\n};\n\nexport const tagWithoutScopePrefix = (tags: string[], scope: string) => {\n return tags.filter(tag => tag !== scope).map(tag => formatTagAsLabel(tag, scope));\n};\n\nconst chipsStyle = css({\n \"&.mdc-chip-set\": {\n padding: 0,\n marginLeft: -4,\n \"& .mdc-chip\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n }\n }\n});\nconst iconButtonStyle = css({\n \"&.mdc-icon-button svg\": {\n width: 20,\n height: 20\n }\n});\nconst addTagsStyle = css({\n \"&.mdc-button:not(:disabled)\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n textTransform: \"capitalize\",\n letterSpacing: \"initial\",\n marginLeft: -8\n }\n});\nconst actionWrapperStyle = css({\n marginTop: 16,\n \"& button:first-child\": {\n marginRight: 16\n }\n});\n\ninterface TagsProps {\n file: FileItem;\n canEdit: (file: FileItem) => boolean;\n}\n\nconst Tags: React.FC<TagsProps> = ({ file, canEdit }) => {\n const client = useApolloClient();\n\n const [editing, setEdit] = useState(false);\n const [saving, setSaving] = useState(false);\n const [initialTags, setInitialTags] = useState(Array.isArray(file.tags) ? [...file.tags] : []);\n const { showSnackbar } = useSnackbar();\n const { queryParams } = useFileManager();\n const handleEdit = useCallback(() => setEdit(true), []);\n const listTagsQuery = useQuery(LIST_TAGS, {\n variables: { where: getWhere(queryParams.scope) }\n });\n const listTags = get(listTagsQuery, \"data.fileManager.listTags\", []);\n const allTags = tagWithoutScopePrefix(listTags, queryParams.scope);\n\n const isEditingAllowed = canEdit(file);\n\n const renderHeaderContent = useCallback(\n ({ data }: { data: { tags: { name: string }[] } }) => {\n if (editing) {\n return null;\n }\n const hasTags = data.tags.length > 0;\n\n if (hasTags) {\n // Render existing tags and \"edit tags\" action.\n return (\n <>\n <Chips className={classNames(\"list-item__content\", chipsStyle)}>\n {data.tags\n .filter(tag => tag !== queryParams.scope)\n .map((tag, index) => {\n const label = typeof tag === \"string\" ? tag : tag.name;\n return (\n <Chip\n key={label + index}\n label={formatTagAsLabel(label, queryParams.scope)}\n />\n );\n })}\n </Chips>\n {isEditingAllowed && (\n <IconButton\n className={iconButtonStyle}\n icon={<EditIcon />}\n onClick={handleEdit}\n />\n )}\n </>\n );\n }\n // Render \"add tags\" action.\n return (\n <ButtonDefault\n className={addTagsStyle}\n onClick={handleEdit}\n disabled={!isEditingAllowed}\n data-testid=\"fm.tags.add\"\n >\n Add tags...\n </ButtonDefault>\n );\n },\n [editing, isEditingAllowed]\n );\n\n return (\n <Form\n data={{\n tags: initialTags\n }}\n onSubmit={async ({ tags }) => {\n setSaving(true);\n client\n .mutate({\n mutation: UPDATE_FILE,\n variables: {\n id: file.id,\n data: { tags }\n },\n update: (cache, updated) => {\n const newFileData: FileItem = get(\n updated,\n \"data.fileManager.updateFile.data\"\n );\n\n // 1. Update files list cache\n const data = cloneDeep(\n cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n })\n );\n\n if (data) {\n data.fileManager.listFiles.data.forEach(item => {\n if (item.key === newFileData.key) {\n item.tags = newFileData.tags;\n }\n });\n }\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data\n });\n // 2. Update \"LIST_TAGS\" cache\n if (Array.isArray(newFileData.tags)) {\n // Get list tags data\n const listTagsData = cloneDeep(\n cache.readQuery<ListFileTagsQueryResponse>({\n query: LIST_TAGS,\n variables: { where: getWhere(queryParams.scope) }\n })\n );\n if (!listTagsData) {\n return;\n }\n // Add new tag in list\n const updatedTagsList = [...newFileData.tags];\n\n if (Array.isArray(listTagsData.fileManager.listTags)) {\n listTagsData.fileManager.listTags.forEach(tag => {\n if (!updatedTagsList.includes(tag)) {\n updatedTagsList.push(tag);\n }\n });\n }\n\n set(listTagsData, \"fileManager.listTags\", updatedTagsList);\n // Write it to cache\n cache.writeQuery({\n query: LIST_TAGS,\n variables: { where: getWhere(queryParams.scope) },\n data: listTagsData\n });\n }\n }\n })\n .then(() => {\n setInitialTags(tags);\n setSaving(false);\n setEdit(false);\n showSnackbar(\"Tags successfully updated.\");\n });\n }}\n >\n {({ Bind, data, setValue, submit }) => (\n <React.Fragment>\n <li-title>\n <Icon className={\"list-item__icon\"} icon={<LabelIcon />} />\n {renderHeaderContent({\n // TODO @ts-refactor\n // @ts-ignore\n data\n })}\n </li-title>\n {editing && (\n <li-content>\n <Bind\n name={\"tags\"}\n beforeChange={(\n tags: string[],\n baseOnChange: (tags: string[]) => void\n ) => {\n const formattedTags = tags.map(tag => {\n const tagInLowerCase = tag.toLowerCase();\n /**\n * If \"scope\" exists, prefix tag with \"scope\" if not already.\n */\n if (\n queryParams.scope &&\n !tagInLowerCase.startsWith(queryParams.scope)\n ) {\n return `${queryParams.scope}${SCOPE_SEPARATOR}${tagInLowerCase}`;\n }\n return tagInLowerCase;\n });\n baseOnChange(formattedTags);\n }}\n >\n {({ value, ...bindProps }) => (\n <MultiAutoComplete\n {...bindProps}\n value={tagWithoutScopePrefix(value, queryParams.scope)}\n options={allTags}\n placeholder={\"homepage asset\"}\n description={\"Type in a new tag or select an existing one.\"}\n unique={true}\n allowFreeInput={true}\n useSimpleValues={true}\n disabled={saving}\n />\n )}\n </Bind>\n <div className={actionWrapperStyle}>\n <ButtonPrimary\n small\n onClick={ev => {\n submit(ev);\n }}\n data-testid={\"fm.tags.submit\"}\n >\n Submit\n </ButtonPrimary>\n <ButtonSecondary\n small\n onClick={() => {\n setValue(\"tags\", initialTags);\n setEdit(false);\n }}\n >\n Cancel\n </ButtonSecondary>\n </div>\n </li-content>\n )}\n </React.Fragment>\n )}\n </Form>\n );\n};\n\nexport default Tags;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AACA;;;AAGA,IAAMA,eAAe,GAAG,GAAxB;;AAEO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAcC,KAAd,EAA4C;EACxE,IAAI,CAACA,KAAL,EAAY;IACR,OAAOD,GAAP;EACH;;EACD,OAAOA,GAAG,CAACE,OAAJ,WAAeD,KAAf,SAAuBH,eAAvB,GAA0C,EAA1C,CAAP;AACH,CALM;;;;AAOA,IAAMK,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,IAAD,EAAiBH,KAAjB,EAAmC;EACpE,OAAOG,IAAI,CAACC,MAAL,CAAY,UAAAL,GAAG;IAAA,OAAIA,GAAG,KAAKC,KAAZ;EAAA,CAAf,EAAkCK,GAAlC,CAAsC,UAAAN,GAAG;IAAA,OAAID,gBAAgB,CAACC,GAAD,EAAMC,KAAN,CAApB;EAAA,CAAzC,CAAP;AACH,CAFM;;;AAIP,IAAMM,UAAU,gBAAG,IAAAC,YAAA,EAAI;EACnB,kBAAkB;IACdC,OAAO,EAAE,CADK;IAEdC,UAAU,EAAE,CAAC,CAFC;IAGd,eAAe;MACXC,eAAe,EAAE;IADN;EAHD;AADC,CAAJ,sBAAnB;AASA,IAAMC,eAAe,gBAAG,IAAAJ,YAAA,EAAI;EACxB,yBAAyB;IACrBK,KAAK,EAAE,EADc;IAErBC,MAAM,EAAE;EAFa;AADD,CAAJ,2BAAxB;AAMA,IAAMC,YAAY,gBAAG,IAAAP,YAAA,EAAI;EACrB,+BAA+B;IAC3BQ,KAAK,EAAE,+CADoB;IAE3BC,aAAa,EAAE,YAFY;IAG3BC,aAAa,EAAE,SAHY;IAI3BR,UAAU,EAAE,CAAC;EAJc;AADV,CAAJ,wBAArB;AAQA,IAAMS,kBAAkB,gBAAG,IAAAX,YAAA,EAAI;EAC3BY,SAAS,EAAE,EADgB;EAE3B,wBAAwB;IACpBC,WAAW,EAAE;EADO;AAFG,CAAJ,8BAA3B;;AAYA,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAAuB;EAAA,IAApBC,IAAoB,QAApBA,IAAoB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EACrD,IAAMC,MAAM,GAAG,IAAAC,2BAAA,GAAf;;EAEA,gBAA2B,IAAAC,eAAA,EAAS,KAAT,CAA3B;EAAA;EAAA,IAAOC,OAAP;EAAA,IAAgBC,OAAhB;;EACA,iBAA4B,IAAAF,eAAA,EAAS,KAAT,CAA5B;EAAA;EAAA,IAAOG,MAAP;EAAA,IAAeC,SAAf;;EACA,iBAAsC,IAAAJ,eAAA,EAASK,KAAK,CAACC,OAAN,CAAcV,IAAI,CAACnB,IAAnB,qCAA+BmB,IAAI,CAACnB,IAApC,IAA4C,EAArD,CAAtC;EAAA;EAAA,IAAO8B,WAAP;EAAA,IAAoBC,cAApB;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,sBAAwB,IAAAC,kCAAA,GAAxB;EAAA,IAAQC,WAAR,mBAAQA,WAAR;;EACA,IAAMC,UAAU,GAAG,IAAAC,kBAAA,EAAY;IAAA,OAAMZ,OAAO,CAAC,IAAD,CAAb;EAAA,CAAZ,EAAiC,EAAjC,CAAnB;EACA,IAAMa,aAAa,GAAG,IAAAC,oBAAA,EAASC,kBAAT,EAAoB;IACtCC,SAAS,EAAE;MAAEC,KAAK,EAAE,IAAAC,4BAAA,EAASR,WAAW,CAACtC,KAArB;IAAT;EAD2B,CAApB,CAAtB;EAGA,IAAM+C,QAAQ,GAAG,IAAAC,YAAA,EAAIP,aAAJ,EAAmB,2BAAnB,EAAgD,EAAhD,CAAjB;EACA,IAAMQ,OAAO,GAAG/C,qBAAqB,CAAC6C,QAAD,EAAWT,WAAW,CAACtC,KAAvB,CAArC;EAEA,IAAMkD,gBAAgB,GAAG3B,OAAO,CAACD,IAAD,CAAhC;EAEA,IAAM6B,mBAAmB,GAAG,IAAAX,kBAAA,EACxB,iBAAsD;IAAA,IAAnDY,IAAmD,SAAnDA,IAAmD;;IAClD,IAAIzB,OAAJ,EAAa;MACT,OAAO,IAAP;IACH;;IACD,IAAM0B,OAAO,GAAGD,IAAI,CAACjD,IAAL,CAAUmD,MAAV,GAAmB,CAAnC;;IAEA,IAAID,OAAJ,EAAa;MACT;MACA,oBACI,yEACI,6BAAC,YAAD;QAAO,SAAS,EAAE,IAAAE,mBAAA,EAAW,oBAAX,EAAiCjD,UAAjC;MAAlB,GACK8C,IAAI,CAACjD,IAAL,CACIC,MADJ,CACW,UAAAL,GAAG;QAAA,OAAIA,GAAG,KAAKuC,WAAW,CAACtC,KAAxB;MAAA,CADd,EAEIK,GAFJ,CAEQ,UAACN,GAAD,EAAMyD,KAAN,EAAgB;QACjB,IAAMC,KAAK,GAAG,OAAO1D,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgCA,GAAG,CAAC2D,IAAlD;QACA,oBACI,6BAAC,WAAD;UACI,GAAG,EAAED,KAAK,GAAGD,KADjB;UAEI,KAAK,EAAE1D,gBAAgB,CAAC2D,KAAD,EAAQnB,WAAW,CAACtC,KAApB;QAF3B,EADJ;MAMH,CAVJ,CADL,CADJ,EAcKkD,gBAAgB,iBACb,6BAAC,kBAAD;QACI,SAAS,EAAEvC,eADf;QAEI,IAAI,eAAE,6BAAC,6BAAD,OAFV;QAGI,OAAO,EAAE4B;MAHb,EAfR,CADJ;IAwBH,CAhCiD,CAiClD;;;IACA,oBACI,6BAAC,qBAAD;MACI,SAAS,EAAEzB,YADf;MAEI,OAAO,EAAEyB,UAFb;MAGI,QAAQ,EAAE,CAACW,gBAHf;MAII,eAAY;IAJhB,GAKC,aALD,CADJ;EAUH,CA7CuB,EA8CxB,CAACvB,OAAD,EAAUuB,gBAAV,CA9CwB,CAA5B;EAiDA,oBACI,6BAAC,UAAD;IACI,IAAI,EAAE;MACF/C,IAAI,EAAE8B;IADJ,CADV;IAII,QAAQ;MAAA,mGAAE;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAS9B,IAAT,SAASA,IAAT;gBACN2B,SAAS,CAAC,IAAD,CAAT;gBACAN,MAAM,CACDmC,MADL,CACY;kBACJC,QAAQ,EAAEC,oBADN;kBAEJjB,SAAS,EAAE;oBACPkB,EAAE,EAAExC,IAAI,CAACwC,EADF;oBAEPV,IAAI,EAAE;sBAAEjD,IAAI,EAAJA;oBAAF;kBAFC,CAFP;kBAMJ4D,MAAM,EAAE,gBAACC,KAAD,EAAQC,OAAR,EAAoB;oBACxB,IAAMC,WAAqB,GAAG,IAAAlB,YAAA,EAC1BiB,OAD0B,EAE1B,kCAF0B,CAA9B,CADwB,CAMxB;;oBACA,IAAMb,IAAI,GAAG,IAAAe,kBAAA,EACTH,KAAK,CAACI,SAAN,CAAwC;sBACpCC,KAAK,EAAEC,mBAD6B;sBAEpC1B,SAAS,EAAEN;oBAFyB,CAAxC,CADS,CAAb;;oBAOA,IAAIc,IAAJ,EAAU;sBACNA,IAAI,CAACmB,WAAL,CAAiBC,SAAjB,CAA2BpB,IAA3B,CAAgCqB,OAAhC,CAAwC,UAAAC,IAAI,EAAI;wBAC5C,IAAIA,IAAI,CAACC,GAAL,KAAaT,WAAW,CAACS,GAA7B,EAAkC;0BAC9BD,IAAI,CAACvE,IAAL,GAAY+D,WAAW,CAAC/D,IAAxB;wBACH;sBACJ,CAJD;oBAKH;;oBAED6D,KAAK,CAACY,UAAN,CAAiB;sBACbP,KAAK,EAAEC,mBADM;sBAEb1B,SAAS,EAAEN,WAFE;sBAGbc,IAAI,EAAJA;oBAHa,CAAjB,EAtBwB,CA2BxB;;oBACA,IAAIrB,KAAK,CAACC,OAAN,CAAckC,WAAW,CAAC/D,IAA1B,CAAJ,EAAqC;sBACjC;sBACA,IAAM0E,YAAY,GAAG,IAAAV,kBAAA,EACjBH,KAAK,CAACI,SAAN,CAA2C;wBACvCC,KAAK,EAAE1B,kBADgC;wBAEvCC,SAAS,EAAE;0BAAEC,KAAK,EAAE,IAAAC,4BAAA,EAASR,WAAW,CAACtC,KAArB;wBAAT;sBAF4B,CAA3C,CADiB,CAArB;;sBAMA,IAAI,CAAC6E,YAAL,EAAmB;wBACf;sBACH,CAVgC,CAWjC;;;sBACA,IAAMC,eAAe,oCAAOZ,WAAW,CAAC/D,IAAnB,CAArB;;sBAEA,IAAI4B,KAAK,CAACC,OAAN,CAAc6C,YAAY,CAACN,WAAb,CAAyBxB,QAAvC,CAAJ,EAAsD;wBAClD8B,YAAY,CAACN,WAAb,CAAyBxB,QAAzB,CAAkC0B,OAAlC,CAA0C,UAAA1E,GAAG,EAAI;0BAC7C,IAAI,CAAC+E,eAAe,CAACC,QAAhB,CAAyBhF,GAAzB,CAAL,EAAoC;4BAChC+E,eAAe,CAACE,IAAhB,CAAqBjF,GAArB;0BACH;wBACJ,CAJD;sBAKH;;sBAED,IAAAkF,YAAA,EAAIJ,YAAJ,EAAkB,sBAAlB,EAA0CC,eAA1C,EAtBiC,CAuBjC;;sBACAd,KAAK,CAACY,UAAN,CAAiB;wBACbP,KAAK,EAAE1B,kBADM;wBAEbC,SAAS,EAAE;0BAAEC,KAAK,EAAE,IAAAC,4BAAA,EAASR,WAAW,CAACtC,KAArB;wBAAT,CAFE;wBAGboD,IAAI,EAAEyB;sBAHO,CAAjB;oBAKH;kBACJ;gBAhEG,CADZ,EAmEKK,IAnEL,CAmEU,YAAM;kBACRhD,cAAc,CAAC/B,IAAD,CAAd;kBACA2B,SAAS,CAAC,KAAD,CAAT;kBACAF,OAAO,CAAC,KAAD,CAAP;kBACAQ,YAAY,CAAC,4BAAD,CAAZ;gBACH,CAxEL;;cAFM;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAAF;;MAAA;QAAA;MAAA;IAAA;EAJZ,GAiFK;IAAA,IAAG+C,IAAH,SAAGA,IAAH;IAAA,IAAS/B,IAAT,SAASA,IAAT;IAAA,IAAegC,QAAf,SAAeA,QAAf;IAAA,IAAyBC,MAAzB,SAAyBA,MAAzB;IAAA,oBACG,6BAAC,cAAD,CAAO,QAAP,qBACI,4DACI,6BAAC,UAAD;MAAM,SAAS,EAAE,iBAAjB;MAAoC,IAAI,eAAE,6BAAC,8BAAD;IAA1C,EADJ,EAEKlC,mBAAmB,CAAC;MACjB;MACA;MACAC,IAAI,EAAJA;IAHiB,CAAD,CAFxB,CADJ,EASKzB,OAAO,iBACJ,8DACI,6BAAC,IAAD;MACI,IAAI,EAAE,MADV;MAEI,YAAY,EAAE,sBACVxB,IADU,EAEVmF,YAFU,EAGT;QACD,IAAMC,aAAa,GAAGpF,IAAI,CAACE,GAAL,CAAS,UAAAN,GAAG,EAAI;UAClC,IAAMyF,cAAc,GAAGzF,GAAG,CAAC0F,WAAJ,EAAvB;UACA;AACxC;AACA;;UACwC,IACInD,WAAW,CAACtC,KAAZ,IACA,CAACwF,cAAc,CAACE,UAAf,CAA0BpD,WAAW,CAACtC,KAAtC,CAFL,EAGE;YACE,iBAAUsC,WAAW,CAACtC,KAAtB,SAA8BH,eAA9B,SAAgD2F,cAAhD;UACH;;UACD,OAAOA,cAAP;QACH,CAZqB,CAAtB;QAaAF,YAAY,CAACC,aAAD,CAAZ;MACH;IApBL,GAsBK;MAAA,IAAGI,KAAH,SAAGA,KAAH;MAAA,IAAaC,SAAb;MAAA,oBACG,6BAAC,+BAAD,oBACQA,SADR;QAEI,KAAK,EAAE1F,qBAAqB,CAACyF,KAAD,EAAQrD,WAAW,CAACtC,KAApB,CAFhC;QAGI,OAAO,EAAEiD,OAHb;QAII,WAAW,EAAE,gBAJjB;QAKI,WAAW,EAAE,8CALjB;QAMI,MAAM,EAAE,IANZ;QAOI,cAAc,EAAE,IAPpB;QAQI,eAAe,EAAE,IARrB;QASI,QAAQ,EAAEpB;MATd,GADH;IAAA,CAtBL,CADJ,eAqCI;MAAK,SAAS,EAAEX;IAAhB,gBACI,6BAAC,qBAAD;MACI,KAAK,MADT;MAEI,OAAO,EAAE,iBAAA2E,EAAE,EAAI;QACXR,MAAM,CAACQ,EAAD,CAAN;MACH,CAJL;MAKI,eAAa;IALjB,GAMC,QAND,CADJ,eAUI,6BAAC,uBAAD;MACI,KAAK,MADT;MAEI,OAAO,EAAE,mBAAM;QACXT,QAAQ,CAAC,MAAD,EAASnD,WAAT,CAAR;QACAL,OAAO,CAAC,KAAD,CAAP;MACH;IALL,GAMC,QAND,CAVJ,CArCJ,CAVR,CADH;EAAA,CAjFL,CADJ;AA4JH,CA9ND;;eAgOeP,I"}
@@ -1,24 +0,0 @@
1
- import React from "react";
2
- import { FileItem } from "./types";
3
- import { FilesRenderChildren } from "react-butterfiles";
4
- declare global {
5
- namespace JSX {
6
- interface IntrinsicElements {
7
- "li-title": {
8
- children?: React.ReactNode;
9
- };
10
- "li-content": {
11
- children?: React.ReactNode;
12
- };
13
- }
14
- }
15
- }
16
- interface FileDetailsProps {
17
- canEdit: (item: any) => boolean;
18
- file: FileItem;
19
- uploadFile: (files: FileItem[] | FileItem) => Promise<number | null>;
20
- validateFiles: FilesRenderChildren["validateFiles"];
21
- [key: string]: any;
22
- }
23
- declare const FileDetails: React.FC<FileDetailsProps>;
24
- export default FileDetails;