@seafile/seafile-database 0.0.18 → 0.0.20

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 (78) hide show
  1. package/dist/api/api.js +27 -21
  2. package/dist/assets/css/dropdown-menu.css +96 -0
  3. package/dist/common/components/file-tag/index.js +2 -2
  4. package/dist/common/utils/icon-utils.js +9 -2
  5. package/dist/common/utils/utils.js +28 -0
  6. package/dist/components/cell-editors/index.js +2 -2
  7. package/dist/components/cell-editors/multiple-select-editor/index.js +2 -2
  8. package/dist/components/cell-editors/single-select-editor/index.js +2 -2
  9. package/dist/components/cell-editors/tags-editor/index.js +1 -2
  10. package/dist/components/context-menu/index.js +2 -2
  11. package/dist/components/data-process-setter/filter-setter.js +1 -2
  12. package/dist/components/data-process-setter/manage-setter.js +1 -2
  13. package/dist/components/data-process-setter/sort-setter.js +2 -2
  14. package/dist/components/dialogs/custom-modal-header/index.css +34 -0
  15. package/dist/components/dialogs/custom-modal-header/index.js +34 -0
  16. package/dist/components/dialogs/insert-view-dialog.js +104 -0
  17. package/dist/components/icons/arrow-down-icon.js +19 -0
  18. package/dist/components/icons/arrow-up-icon.js +19 -0
  19. package/dist/components/icons/close-icon.js +23 -0
  20. package/dist/components/icons/index.js +14 -1
  21. package/dist/components/icons/set-up-icon.js +22 -0
  22. package/dist/components/image-previewer/_hooks/metadata-details.js +1 -1
  23. package/dist/components/image-previewer/_hooks/metadata-status.js +2 -2
  24. package/dist/components/image-previewer/image-detail/index.js +1 -1
  25. package/dist/components/image-previewer/index.js +2 -2
  26. package/dist/components/popover/groupbys-popover/index.js +5 -5
  27. package/dist/components/searcher/index.js +3 -3
  28. package/dist/components/view-toolbar/card-view-toolbar/index.js +89 -0
  29. package/dist/components/view-toolbar/index.css +54 -1
  30. package/dist/components/view-toolbar/index.js +40 -48
  31. package/dist/components/view-toolbar/rows-toolbar/index.js +2 -2
  32. package/dist/components/view-toolbar/table-view-toolbar/index.js +1 -1
  33. package/dist/components/view-toolbar/view-items/index.css +55 -0
  34. package/dist/components/view-toolbar/view-items/index.js +98 -0
  35. package/dist/components/view-toolbar/view-items/views-popover.js +80 -0
  36. package/dist/constants/event-bus-type.js +3 -1
  37. package/dist/constants/view/index.js +32 -2
  38. package/dist/context.js +89 -34
  39. package/dist/database.js +11 -18
  40. package/dist/file-base.js +31 -0
  41. package/dist/global-settings.js +3 -1
  42. package/dist/hooks/collaborators.js +9 -3
  43. package/dist/hooks/{app-context.js → file-repo-context.js} +25 -20
  44. package/dist/hooks/file-view-context.js +69 -0
  45. package/dist/hooks/index.js +14 -14
  46. package/dist/hooks/metadata.js +45 -47
  47. package/dist/hooks/tagsData.js +8 -2
  48. package/dist/index.js +3 -3
  49. package/dist/locale/en.js +6 -1
  50. package/dist/locale/zh_CN.js +6 -1
  51. package/dist/store/data-processor.js +1 -0
  52. package/dist/views/card/card-items/card-item/formatter.js +45 -0
  53. package/dist/views/card/card-items/card-item/index.css +234 -0
  54. package/dist/views/card/card-items/card-item/index.js +206 -0
  55. package/dist/views/card/card-items/index.css +31 -0
  56. package/dist/views/card/card-items/index.js +189 -0
  57. package/dist/views/card/context-menu/index.js +165 -0
  58. package/dist/views/card/index.js +64 -0
  59. package/dist/views/card/settings/index.css +68 -0
  60. package/dist/views/card/settings/index.js +143 -0
  61. package/dist/views/index.js +5 -3
  62. package/dist/views/table/editors/editor-container/index.js +2 -2
  63. package/dist/views/table/formatters/file-name.js +3 -3
  64. package/dist/views/table/index.js +2 -3
  65. package/dist/views/table/table-main/index.js +2 -2
  66. package/dist/views/table/table-main/rows/row/cell/formatter.js +2 -2
  67. package/dist/views/table/table-main/rows/row/cell/index.js +2 -2
  68. package/dist/views/table/table-main/rows-header/cell/dropdown-menu/index.js +1 -1
  69. package/dist/views/table/table-main/rows-header/cell/index.js +1 -1
  70. package/dist/views/table/table-main/rows-header/index.js +2 -2
  71. package/package.json +6 -3
  72. package/dist/components/view-toolbar/views/all-views/index.css +0 -85
  73. package/dist/components/view-toolbar/views/all-views/index.js +0 -165
  74. package/dist/components/view-toolbar/views/index.css +0 -22
  75. package/dist/components/view-toolbar/views/index.js +0 -215
  76. package/dist/components/view-toolbar/views/view-item/index.css +0 -83
  77. package/dist/components/view-toolbar/views/view-item/index.js +0 -159
  78. package/dist/hooks/viewsData.js +0 -154
package/dist/api/api.js CHANGED
@@ -10,6 +10,10 @@ var _axios = _interopRequireDefault(require("axios"));
10
10
  class SeafileAPI {
11
11
  constructor() {
12
12
  var _this = this;
13
+ (0, _defineProperty2.default)(this, "getFileRepoInfo", (wikiId, fileRepoId) => {
14
+ const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repos/' + fileRepoId + '/';
15
+ return this.req.get(url);
16
+ });
13
17
  (0, _defineProperty2.default)(this, "getCollaborators", repoID => {
14
18
  const url = this.server + '/api/v2.1/repos/' + repoID + '/related-users/';
15
19
  return this.req.get(url);
@@ -160,43 +164,41 @@ class SeafileAPI {
160
164
  });
161
165
  });
162
166
  }
163
- getRepoInfo(repoID) {
167
+ getRepo(repoID) {
164
168
  const url = this.server + '/api/v2.1/repos/' + repoID + '/';
165
169
  return this.req.get(url);
166
170
  }
167
- getMetadataStatus(repoID) {
168
- const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
171
+ getMetadata(params) {
172
+ const {
173
+ wiki_id: wikiId,
174
+ file_repo_id: fileRepoId,
175
+ view_id: viewId
176
+ } = params;
177
+ const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/' + viewId + '/records';
169
178
  return this.req.get(url);
170
179
  }
171
180
  getView(view_data) {
172
181
  const {
173
182
  wiki_id: wikiId,
183
+ file_repo_id: fileRepoId,
174
184
  view_id: viewId
175
185
  } = view_data;
176
- const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/' + viewId + '/';
177
- return this.req.get(url);
186
+ const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/' + viewId + '/';
187
+ return this.req.get(url, {
188
+ view_id: viewId
189
+ });
190
+ }
191
+ insertView(wikiId, fileRepoId, view_data) {
192
+ const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/';
193
+ return this.req.post(url, view_data);
178
194
  }
179
- modifyView(wikiId, viewId, viewData) {
180
- const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/';
195
+ modifyView(wikiId, fileRepoId, viewId, viewData) {
196
+ const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/' + viewId + '/';
181
197
  const data = {
182
- view_id: viewId,
183
198
  view_data: viewData
184
199
  };
185
200
  return this.req.put(url, data);
186
201
  }
187
- getMetadata(params) {
188
- const {
189
- view_data
190
- } = params;
191
- const {
192
- wiki_id: wikiId,
193
- view_id: viewId
194
- } = view_data;
195
- const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/' + viewId + '/records/';
196
- return this.req.get(url, {
197
- params: params
198
- });
199
- }
200
202
  rotateImage(repoID, path, angle) {
201
203
  let url = `${this.server}/api/v2.1/repos/${repoID}/image-rotate/`;
202
204
  let form = new FormData();
@@ -300,5 +302,9 @@ class SeafileAPI {
300
302
  }
301
303
  return this.req.put(url, data);
302
304
  }
305
+ getMetadataStatus(repoID) {
306
+ const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
307
+ return this.req.get(url);
308
+ }
303
309
  }
304
310
  var _default = exports.default = SeafileAPI;
@@ -0,0 +1,96 @@
1
+ .sea-database-dropdown-menu,
2
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-container {
3
+ min-width: 12rem;
4
+ padding: 8px 0;
5
+ }
6
+
7
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-divider {
8
+ width: 100%;
9
+ height: 0;
10
+ margin: 0.5rem 0;
11
+ overflow: hidden;
12
+ border-top: 1px solid #e9ecef;
13
+ }
14
+
15
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item {
16
+ height: 30px;
17
+ width: 100%;
18
+ padding: 4px 24px;
19
+ user-select: none;
20
+ display: flex;
21
+ align-items: center;
22
+ }
23
+
24
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item-title {
25
+ color: #666;
26
+ padding: 3px 12px;
27
+ }
28
+
29
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item-title:hover {
30
+ background-color: unset !important;
31
+ cursor: initial !important;
32
+ }
33
+
34
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item-no-results {
35
+ height: 30px;
36
+ width: 100%;
37
+ padding: 4px 24px;
38
+ user-select: none;
39
+ display: flex;
40
+ align-items: center;
41
+ font-size: 14px;
42
+ }
43
+
44
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item-hidden {
45
+ display: none;
46
+ }
47
+
48
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item.disabled,
49
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item.disabled .sea-database-dropdown-item-content-icon {
50
+ color: #c2c2c2 !important;
51
+ }
52
+
53
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item:hover {
54
+ background-color: #F5F5F5;
55
+ cursor: pointer;
56
+ }
57
+
58
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item.disabled:hover {
59
+ background-color: unset;
60
+ cursor: default;
61
+ color: #c2c2c2;
62
+ }
63
+
64
+ .sea-database-dropdown-menu .sea-database-dropdown-menu-item .sea-database-dropdown-item-content {
65
+ display: flex;
66
+ align-items: center;
67
+ flex: 1;
68
+ font-size: 14px;
69
+ }
70
+
71
+ .sea-database-dropdown-menu .sea-database-dropdown-item-content .sea-database-dropdown-item-content-icon {
72
+ margin-right: 10px;
73
+ }
74
+
75
+ .sea-database-dropdown-menu .sea-database-arrow-right {
76
+ color: #666;
77
+ font-size: 12px !important;
78
+ }
79
+
80
+ .sea-database-dropdown-menu .sea-database-dropdown-item-with-left-icon {
81
+ min-height: 32px;
82
+ padding: 3px 12px;
83
+ }
84
+
85
+ .sea-database-dropdown-menu .sea-database-check-mark {
86
+ color: #666;
87
+ }
88
+
89
+ /* sub menu */
90
+ .sea-database-sub-dropdown-menu .popover {
91
+ left: -8px !important;
92
+ }
93
+
94
+ .sea-database-sub-dropdown-menu .bs-popover-auto[x-placement^="left"] {
95
+ left: 8px !important;
96
+ }
@@ -10,7 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _uuid = require("uuid");
12
12
  var _utils = require("../../utils/utils");
13
- var _appContext = require("../../../hooks/app-context");
13
+ var _hooks = require("../../../hooks");
14
14
  var _translate = _interopRequireDefault(require("../../../lang/translate"));
15
15
  var _fileTagList = _interopRequireDefault(require("./file-tag-list"));
16
16
  var _editFiletagPopover = _interopRequireDefault(require("./popover/edit-filetag-popover"));
@@ -26,7 +26,7 @@ const FileTag = _ref => {
26
26
  } = _ref;
27
27
  const {
28
28
  context
29
- } = (0, _appContext.useAppContext)();
29
+ } = (0, _hooks.useFileRepoContext)();
30
30
  const [isEditFileTagShow, setEditFileTagShow] = (0, _react.useState)(false);
31
31
  const direntPath = (0, _react.useMemo)(() => (0, _utils2.getDirentPath)(dirent, path), [dirent, path]);
32
32
  const tagListTitleID = (0, _react.useMemo)(() => `detail-list-view-tags-${(0, _uuid.v4)()}`, []);
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getFolderIconUrl = exports.getFileIconUrl = exports.getDirentIcon = void 0;
7
+ exports.getFolderIconUrl = exports.getFileIconUrl = exports.getFileIconName = exports.getDirentIcon = void 0;
8
8
  var _css = _interopRequireDefault(require("../../assets/imgs/256/files/css.png"));
9
9
  var _draw = _interopRequireDefault(require("../../assets/imgs/256/files/draw.png"));
10
10
  var _excel = _interopRequireDefault(require("../../assets/imgs/256/files/excel.png"));
@@ -119,4 +119,11 @@ const getDirentIcon = (dirent, isBig) => {
119
119
  return getFolderIconUrl(readonly, size, dirent.has_been_shared_out);
120
120
  }
121
121
  };
122
- exports.getDirentIcon = getDirentIcon;
122
+ exports.getDirentIcon = getDirentIcon;
123
+ const getFileIconName = function (fileName) {
124
+ if (fileName.lastIndexOf('.') === -1) return FILEEXT_ICON_MAP['default'];
125
+ const file_ext = fileName.substr(fileName.lastIndexOf('.') + 1).toLowerCase();
126
+ if (FILEEXT_ICON_MAP[file_ext]) return FILEEXT_ICON_MAP[file_ext];
127
+ return _utils.Utils.FILEEXT_ICON_MAP['default'];
128
+ };
129
+ exports.getFileIconName = getFileIconName;
@@ -328,6 +328,34 @@ const Utils = exports.Utils = {
328
328
  const image_exts = ['gif', 'jpeg', 'jpg', 'png', 'ico', 'bmp', 'tif', 'tiff', 'jfif', 'heic', 'webp', 'svg'];
329
329
  return image_exts.includes(file_ext);
330
330
  },
331
+ pdfCheck: function (filename) {
332
+ if (filename.lastIndexOf('.') === -1) {
333
+ return false;
334
+ }
335
+ const file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase();
336
+ return file_ext === 'pdf';
337
+ },
338
+ // check if a file is a video
339
+ videoCheck: function (filename) {
340
+ // no file ext
341
+ if (filename.lastIndexOf('.') == -1) {
342
+ return false;
343
+ }
344
+ const file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase();
345
+ return ['mp4', 'ogv', 'webm', 'mov', 'm4v', 'mkv'].includes(file_ext);
346
+ },
347
+ isEditableSdocFile: function (filename, enableSeadoc) {
348
+ // no file ext
349
+ if (filename.lastIndexOf('.') === -1) {
350
+ return false;
351
+ }
352
+ const file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase();
353
+ if (enableSeadoc && file_ext === 'sdoc') {
354
+ return true;
355
+ } else {
356
+ return false;
357
+ }
358
+ },
331
359
  isMarkdownFile: function (filePath) {
332
360
  let index = filePath.lastIndexOf('.');
333
361
  if (index === -1) {
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _constants = require("../../constants");
10
- var _appContext = require("../../hooks/app-context");
10
+ var _hooks = require("../../hooks");
11
11
  var _collaboratorEditor = _interopRequireDefault(require("./collaborator-editor"));
12
12
  var _dateEditor = _interopRequireDefault(require("./date-editor"));
13
13
  var _fileNameEditor = _interopRequireDefault(require("./file-name-editor"));
@@ -22,7 +22,7 @@ var _typeEditor = _interopRequireDefault(require("./type-editor"));
22
22
  const Editor = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
23
23
  const {
24
24
  context
25
- } = (0, _appContext.useAppContext)();
25
+ } = (0, _hooks.useFileRepoContext)();
26
26
  switch (props.column.type) {
27
27
  case _constants.CellType.TEXT:
28
28
  {
@@ -12,7 +12,7 @@ var _components = require("../../../common/components");
12
12
  var _typeDetection = require("../../../common/utils/type-detection");
13
13
  var _icons = _interopRequireDefault(require("../../icons"));
14
14
  var _keyCodes = require("../../../constants/keyCodes");
15
- var _appContext = require("../../../hooks/app-context");
15
+ var _hooks = require("../../../hooks");
16
16
  var _translate = _interopRequireDefault(require("../../../lang/translate"));
17
17
  var _column = require("../../../utils/column");
18
18
  var _deleteOptions = _interopRequireDefault(require("./delete-options"));
@@ -32,7 +32,7 @@ const MultipleSelectEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) =>
32
32
  } = _ref;
33
33
  const {
34
34
  context
35
- } = (0, _appContext.useAppContext)();
35
+ } = (0, _hooks.useFileRepoContext)();
36
36
  const [value, setValue] = (0, _react.useState)((0, _column.getColumnOptionIdsByNames)(column, oldValue));
37
37
  const [searchValue, setSearchValue] = (0, _react.useState)('');
38
38
  const [highlightIndex, setHighlightIndex] = (0, _react.useState)(-1);
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _main = _interopRequireDefault(require("../../../common/components/option-editor/main"));
11
- var _appContext = require("../../../hooks/app-context");
11
+ var _hooks = require("../../../hooks");
12
12
  var _translate = _interopRequireDefault(require("../../../lang/translate"));
13
13
  var _cell = require("../../../utils/cell");
14
14
  var _column = require("../../../utils/column");
@@ -30,7 +30,7 @@ const SingleSelectEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
30
30
  } = _ref;
31
31
  const {
32
32
  context
33
- } = (0, _appContext.useAppContext)();
33
+ } = (0, _hooks.useFileRepoContext)();
34
34
  const editorRef = (0, _react.useRef)(null);
35
35
  const mainRef = (0, _react.useRef)(null);
36
36
  const canEditData = context.canModifyColumnData(column);
@@ -10,7 +10,6 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _main = _interopRequireDefault(require("../../../common/components/option-editor/main"));
11
11
  var _constants = require("../../../constants");
12
12
  var _hooks = require("../../../hooks");
13
- var _appContext = require("../../../hooks/app-context");
14
13
  var _translate = _interopRequireDefault(require("../../../lang/translate"));
15
14
  require("./index.css");
16
15
  const TagsEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
@@ -27,7 +26,7 @@ const TagsEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
27
26
  } = _ref;
28
27
  const {
29
28
  context
30
- } = (0, _appContext.useAppContext)();
29
+ } = (0, _hooks.useFileRepoContext)();
31
30
  const {
32
31
  tagsData,
33
32
  createTag
@@ -9,7 +9,7 @@ var _react = _interopRequireWildcard(require("react"));
9
9
  var _reactstrap = require("reactstrap");
10
10
  var _components = require("../../common/components");
11
11
  var _dom = require("../../common/utils/dom");
12
- var _appContext = require("../../hooks/app-context");
12
+ var _hooks = require("../../hooks");
13
13
  require("./index.css");
14
14
  const ContextMenu = _ref => {
15
15
  let {
@@ -20,7 +20,7 @@ const ContextMenu = _ref => {
20
20
  } = _ref;
21
21
  const {
22
22
  context
23
- } = (0, _appContext.useAppContext)();
23
+ } = (0, _hooks.useFileRepoContext)();
24
24
  const menuRef = (0, _react.useRef)(null);
25
25
  const [visible, setVisible] = (0, _react.useState)(false);
26
26
  const [position, setPosition] = (0, _react.useState)({
@@ -12,7 +12,6 @@ var _deepCopy = _interopRequireDefault(require("deep-copy"));
12
12
  var _hotkey = require("../../common/utils/hotkey");
13
13
  var _typeDetection = require("../../common/utils/type-detection");
14
14
  var _hooks = require("../../hooks");
15
- var _appContext = require("../../hooks/app-context");
16
15
  var _translate = _interopRequireDefault(require("../../lang/translate"));
17
16
  var _constants = require("../../constants");
18
17
  var _filter = require("../../utils/filter");
@@ -35,7 +34,7 @@ const FilterSetter = _ref => {
35
34
  } = _ref;
36
35
  const {
37
36
  context
38
- } = (0, _appContext.useAppContext)();
37
+ } = (0, _hooks.useFileRepoContext)();
39
38
  const {
40
39
  typesData
41
40
  } = (0, _hooks.useTypesData)();
@@ -8,13 +8,12 @@ exports.default = void 0;
8
8
  var _react = require("react");
9
9
  var _reactstrap = require("reactstrap");
10
10
  var _hooks = require("../../hooks");
11
- var _appContext = require("../../hooks/app-context");
12
11
  var _translate = _interopRequireDefault(require("../../lang/translate"));
13
12
  var _icons = _interopRequireDefault(require("../icons"));
14
13
  const ManageSetter = () => {
15
14
  const {
16
15
  context
17
- } = (0, _appContext.useAppContext)();
16
+ } = (0, _hooks.useFileRepoContext)();
18
17
  const {
19
18
  toggleAllTags
20
19
  } = (0, _hooks.useTagsData)();
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _hotkey = require("../../common/utils/hotkey");
12
- var _appContext = require("../../hooks/app-context");
12
+ var _hooks = require("../../hooks");
13
13
  var _translate = _interopRequireDefault(require("../../lang/translate"));
14
14
  var _constants = require("../../constants");
15
15
  var _sort = require("../../utils/sort");
@@ -27,7 +27,7 @@ const SortSetter = _ref => {
27
27
  } = _ref;
28
28
  const {
29
29
  context
30
- } = (0, _appContext.useAppContext)();
30
+ } = (0, _hooks.useFileRepoContext)();
31
31
  const [isShowSetter, setShowSetter] = (0, _react.useState)(false);
32
32
  const sorts = (0, _react.useMemo)(() => {
33
33
  return (0, _sort.getValidSorts)(propsSorts || [], columns);
@@ -0,0 +1,34 @@
1
+ .modal .custom-modal-btn.close {
2
+ padding: 14px 16px;
3
+ opacity: 1;
4
+ margin: -1rem -1rem -1rem auto;
5
+ background-color: transparent;
6
+ border: 0;
7
+ float: right;
8
+ font-size: 1.40625rem;
9
+ font-weight: 700;
10
+ line-height: 1;
11
+ color: var(--bs-icon-color);
12
+ }
13
+
14
+ .modal .custom-modal-btn.close:not(:disabled):not(.disabled):hover {
15
+ opacity: 1;
16
+ }
17
+
18
+ .modal .custom-modal-btn .custom-modal-btn-inner {
19
+ display: inline-block;
20
+ width: 28px;
21
+ height: 28px;
22
+ border-radius: 3px;
23
+ }
24
+
25
+ .modal .custom-modal-btn .custom-modal-btn-inner:hover {
26
+ background-color: var(--bs-hover-bg);
27
+ }
28
+
29
+ .modal .custom-modal-btn .custom-modal-btn-inner .seafile-multicolor-icon {
30
+ width: 16px;
31
+ height: 16px;
32
+ color: var(--bs-icon-color);
33
+ font-size: 1rem;
34
+ }
@@ -0,0 +1,34 @@
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 _reactstrap = require("reactstrap");
10
+ var _translate = _interopRequireDefault(require("../../../lang/translate"));
11
+ var _icons = _interopRequireDefault(require("../../icons"));
12
+ require("./index.css");
13
+ const CustomModalHeader = _ref => {
14
+ let {
15
+ children,
16
+ ...props
17
+ } = _ref;
18
+ const customCloseBtn = /*#__PURE__*/_react.default.createElement("button", {
19
+ type: "button",
20
+ className: "close custom-modal-btn",
21
+ "data-dismiss": "modal",
22
+ "aria-label": _translate.default.gettext('Close'),
23
+ title: _translate.default.gettext('Close'),
24
+ onClick: props.toggle
25
+ }, /*#__PURE__*/_react.default.createElement("span", {
26
+ className: "custom-modal-btn-inner"
27
+ }, /*#__PURE__*/_react.default.createElement(_icons.default, {
28
+ symbol: "close"
29
+ })));
30
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.ModalHeader, Object.assign({}, props, {
31
+ close: customCloseBtn
32
+ }), children);
33
+ };
34
+ var _default = exports.default = CustomModalHeader;
@@ -0,0 +1,104 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactstrap = require("reactstrap");
11
+ var _components = require("../../common/components");
12
+ var _translate = _interopRequireDefault(require("../../lang/translate"));
13
+ var _customModalHeader = _interopRequireDefault(require("./custom-modal-header"));
14
+ const VIEW_TYPES = {
15
+ TABLE: 'table',
16
+ CARD: 'card'
17
+ // GALLERY: 'gallery',
18
+ };
19
+ const VIEW_TYPE_OPTIONS = [{
20
+ label: _translate.default.gettext('Table'),
21
+ value: VIEW_TYPES.TABLE
22
+ }, {
23
+ label: _translate.default.gettext('Card'),
24
+ value: VIEW_TYPES.CARD
25
+ }
26
+ // { label: Translate.gettext('Gallery'), value: VIEW_TYPES.TABLE },
27
+ ];
28
+ class InsertViewDialog extends _react.default.Component {
29
+ constructor(props) {
30
+ super(props);
31
+ (0, _defineProperty2.default)(this, "inputNewName", e => {
32
+ this.setState({
33
+ name: e.target.value
34
+ });
35
+ });
36
+ (0, _defineProperty2.default)(this, "handleKeyDown", e => {
37
+ if (e.key === 'Enter') {
38
+ this.handleSubmit();
39
+ }
40
+ });
41
+ (0, _defineProperty2.default)(this, "handleSubmit", () => {
42
+ const viewName = this.state.name.trim();
43
+ if (!viewName) {
44
+ _components.toaster.danger(_translate.default.gettext('View name is required.'));
45
+ return;
46
+ }
47
+ const {
48
+ viewType
49
+ } = this.state;
50
+ if (!viewType) {
51
+ _components.toaster.danger(_translate.default.gettext('View type is required.'));
52
+ return;
53
+ }
54
+ this.props.onAddView(viewName, viewType);
55
+ });
56
+ (0, _defineProperty2.default)(this, "toggle", () => {
57
+ this.props.toggleCancel();
58
+ });
59
+ (0, _defineProperty2.default)(this, "handleSelectChange", option => {
60
+ this.setState({
61
+ viewType: option
62
+ });
63
+ });
64
+ this.state = {
65
+ name: '',
66
+ isSubmitBtnActive: false,
67
+ selectedOption: null,
68
+ viewType: ''
69
+ };
70
+ }
71
+ render() {
72
+ const {
73
+ viewType
74
+ } = this.state;
75
+ const selectedOption = VIEW_TYPE_OPTIONS.find(item => item.value === viewType);
76
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
77
+ isOpen: true,
78
+ autoFocus: false,
79
+ toggle: this.toggle
80
+ }, /*#__PURE__*/_react.default.createElement(_customModalHeader.default, {
81
+ toggle: this.toggle
82
+ }, _translate.default.gettext('Add view')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Label, null, _translate.default.gettext('View name')), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
83
+ onKeyDown: this.handleKeyDown,
84
+ autoFocus: true,
85
+ value: this.state.name,
86
+ onChange: this.inputNewName,
87
+ name: "view-name"
88
+ }), /*#__PURE__*/_react.default.createElement(_reactstrap.Label, {
89
+ className: "mt-2"
90
+ }, _translate.default.gettext('View type')), /*#__PURE__*/_react.default.createElement(_components.CustomizeSelect, {
91
+ value: selectedOption,
92
+ options: VIEW_TYPE_OPTIONS,
93
+ onChange: this.handleSelectChange
94
+ })), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
95
+ color: "secondary",
96
+ onClick: this.toggle
97
+ }, _translate.default.gettext('Cancel')), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
98
+ color: "primary",
99
+ onClick: this.handleSubmit,
100
+ disabled: !this.state.name.trim()
101
+ }, _translate.default.gettext('Submit'))));
102
+ }
103
+ }
104
+ var _default = exports.default = InsertViewDialog;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ const ArrayDownIcon = props => /*#__PURE__*/React.createElement("svg", Object.assign({
10
+ width: 32,
11
+ height: 32,
12
+ viewBox: "0 0 32 32",
13
+ fill: "none",
14
+ xmlns: "http://www.w3.org/2000/svg"
15
+ }, props), /*#__PURE__*/React.createElement("path", {
16
+ d: "M16.0605 24L28.1211 11.9395L26 9.81836L16.0605 19.7578L6.12109 9.81836L4 11.9395L16.0605 24Z",
17
+ fill: "currentColor"
18
+ }));
19
+ var _default = exports.default = ArrayDownIcon;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ const ArrayUpIcon = props => /*#__PURE__*/React.createElement("svg", Object.assign({
10
+ width: 32,
11
+ height: 32,
12
+ viewBox: "0 0 32 32",
13
+ fill: "none",
14
+ xmlns: "http://www.w3.org/2000/svg"
15
+ }, props), /*#__PURE__*/React.createElement("path", {
16
+ d: "M16.0607 7.99988L28.1212 20.0604L26.0001 22.1815L16.0607 12.2421L6.12122 22.1815L4.00012 20.0604L16.0607 7.99988Z",
17
+ fill: "currentColor"
18
+ }));
19
+ var _default = exports.default = ArrayUpIcon;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ const CloseIcon = props => /*#__PURE__*/React.createElement("svg", Object.assign({
10
+ t: 1718937171668,
11
+ className: "icon",
12
+ viewBox: "0 0 1024 1024",
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ "p-id": 18368,
15
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
16
+ width: 200,
17
+ height: 200
18
+ }, props), /*#__PURE__*/React.createElement("path", {
19
+ d: "M489.6 444.8l294.4-294.4 67.2 67.2-294.4 294.4 294.4 294.4-67.2 67.2-294.4-294.4-272 272-67.2-67.2 272-272-272-272 67.2-67.2z",
20
+ "p-id": 18369,
21
+ fill: "currentColor"
22
+ }));
23
+ var _default = exports.default = CloseIcon;