@seafile/sdoc-editor 3.0.84 → 3.0.85

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 (23) hide show
  1. package/dist/api/seafile-api.js +21 -20
  2. package/dist/assets/css/sdoc-editor-plugins.css +38 -0
  3. package/dist/constants/index.js +1 -2
  4. package/dist/context.js +9 -23
  5. package/dist/extension/commons/insert-element-dialog/index.js +26 -13
  6. package/dist/extension/plugins/code-block/render-elem.js +25 -3
  7. package/dist/extension/plugins/file-view/helpers.js +14 -2
  8. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/constants.js +16 -0
  9. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.css +96 -0
  10. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.js +156 -0
  11. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/lib.png +0 -0
  12. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.css +49 -0
  13. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.js +53 -0
  14. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.css +37 -0
  15. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.js +241 -0
  16. package/dist/extension/plugins/file-view/insert-view-dialog/index.js +232 -0
  17. package/dist/extension/plugins/file-view/insert-view-dialog/modal-portal.js +41 -0
  18. package/dist/extension/plugins/file-view/render-elem/index.js +12 -5
  19. package/dist/extension/toolbar/insert-element-toolbar/index.js +7 -8
  20. package/dist/extension/toolbar/linked-repo-popover/link-repo-list.css +6 -8
  21. package/dist/extension/toolbar/linked-repo-popover/link-repo-list.js +67 -26
  22. package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +8 -9
  23. package/package.json +3 -3
@@ -19,6 +19,7 @@ var _commonUtils = require("../../../../utils/common-utils");
19
19
  var _localStorageUtils = _interopRequireDefault(require("../../../../utils/local-storage-utils"));
20
20
  var _constants = require("../../../constants");
21
21
  var _helpers = require("../helpers");
22
+ var _rename = _interopRequireDefault(require("../rename"));
22
23
  require("./index.css");
23
24
  var FileView = function FileView(_ref) {
24
25
  var element = _ref.element,
@@ -45,16 +46,16 @@ var FileView = function FileView(_ref) {
45
46
  var viewSettings = (0, _react.useMemo)(function () {
46
47
  var settings = _context["default"].getFileViewSetting();
47
48
  var viewSettings = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, settings), {}, {
49
+ repoID: data.link_repo_id,
48
50
  view_data: {
51
+ view_id: data.view_id,
49
52
  wiki_id: data.wiki_id,
50
- file_repo_id: data.file_repo_id,
51
- width: data.width,
52
53
  height: data.height,
53
- icon: data.icon
54
+ width: data.width
54
55
  }
55
56
  });
56
57
  return viewSettings;
57
- }, [data.file_repo_id, data.height, data.icon, data.width, data.wiki_id]);
58
+ }, [data.height, data.link_repo_id, data.view_id, data.width, data.wiki_id]);
58
59
  (0, _react.useEffect)(function () {
59
60
  var copyContent = _localStorageUtils["default"].getItem(_constants.RECENT_COPY_CONTENT);
60
61
  var wikiId = _context["default"].getSetting('wikiId');
@@ -171,12 +172,18 @@ var FileView = function FileView(_ref) {
171
172
  contentEditable: "false",
172
173
  suppressContentEditableWarning: true
173
174
  }), /*#__PURE__*/_react["default"].createElement("div", {
175
+ className: "sdoc-file-view-title"
176
+ }, /*#__PURE__*/_react["default"].createElement(_rename["default"], {
177
+ name: data.view_name,
178
+ onRenameConfirm: onRename,
179
+ onRenameCancel: onNameCancel
180
+ })), /*#__PURE__*/_react["default"].createElement("div", {
174
181
  className: (0, _classnames["default"])('sdoc-file-view-content', {
175
182
  'is-selected': isSelected
176
183
  }),
177
184
  ref: wrapperRef,
178
185
  style: style
179
- }, /*#__PURE__*/_react["default"].createElement(_seafileDatabase.FileBase, {
186
+ }, /*#__PURE__*/_react["default"].createElement(_seafileDatabase.Database, {
180
187
  settings: viewSettings,
181
188
  ref: databaseRef
182
189
  }), !readOnly && isSelected && /*#__PURE__*/_react["default"].createElement("span", {
@@ -244,16 +244,15 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
244
244
  var wikiId = _context["default"].getSetting('wikiId');
245
245
  var data = {
246
246
  wiki_id: wikiId,
247
- name: t('Files'),
248
247
  view_name: t('View_name'),
249
- linked_repo_id: item.repo_id
248
+ view_type: 'table',
249
+ link_repo_id: item.repo_id
250
250
  };
251
- _context["default"].insertFileRepo(data).then(function (res) {
252
- var fileRepo = res.data;
253
- var viewData = {
254
- wiki_id: wikiId,
255
- file_repo_id: fileRepo.id
256
- };
251
+ _context["default"].insertWikiView(data).then(function (res) {
252
+ var view = res.data.view;
253
+ var viewData = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, data), {}, {
254
+ view_id: view._id
255
+ });
257
256
  (0, _helpers3.insertFileView)(viewData, editor, insertPosition, slateNode);
258
257
  })["catch"](function (error) {
259
258
  var errorMessage = (0, _commonUtils.getErrorMsg)(error);
@@ -2,23 +2,21 @@
2
2
  /* position: absolute; */
3
3
  background-color: #ffff;
4
4
  max-height: 370px;
5
- max-width: 220px;
5
+ max-width: 200px;
6
6
  padding: 8px 0px;
7
7
  left: -8px;
8
8
  }
9
9
 
10
- .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-tip {
10
+ .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-search-wrapper {
11
11
  padding: 12px;
12
- color: #666;
13
12
  }
14
13
 
14
+ .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-search-wrapper>input {
15
+ font-size: 12px;
16
+ max-height: 30px;
17
+ }
15
18
 
16
19
  .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-content-wrapper {
17
20
  max-height: 300px;
18
21
  overflow-y: auto;
19
22
  }
20
-
21
- .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar {
22
- padding: 12px;
23
- color: #666;
24
- }
@@ -1,46 +1,90 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _reactI18next = require("react-i18next");
11
- var _constants = require("../../../constants");
12
- var _context = _interopRequireDefault(require("../../../context"));
13
- var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
12
+ var _reactstrap = require("reactstrap");
13
+ var _helpers = require("../../plugins/file-view/helpers");
14
14
  require("./link-repo-list.css");
15
+ var useStopPropagation = function useStopPropagation() {
16
+ var stopPropagation = function stopPropagation(e) {
17
+ var _e$nativeEvent$stopIm, _e$nativeEvent;
18
+ e.stopPropagation();
19
+ (_e$nativeEvent$stopIm = (_e$nativeEvent = e.nativeEvent).stopImmediatePropagation) === null || _e$nativeEvent$stopIm === void 0 ? void 0 : _e$nativeEvent$stopIm.call(_e$nativeEvent);
20
+ };
21
+ return {
22
+ onClick: stopPropagation,
23
+ onFocus: stopPropagation,
24
+ onKeyDown: stopPropagation,
25
+ onKeyUp: stopPropagation,
26
+ onKeyPress: stopPropagation,
27
+ onMouseDown: stopPropagation,
28
+ onTouchStart: stopPropagation
29
+ };
30
+ };
31
+ var useRepos = function useRepos() {
32
+ var wikiSettings = (0, _helpers.getWikiSettings)();
33
+ var accessibleRepos = (0, _helpers.getAccessibleRepos)();
34
+ var linkedRepoIds = wikiSettings.linked_repos;
35
+ var optionsMap = accessibleRepos.reduce(function (result, item) {
36
+ result[item.repo_id] = item;
37
+ return result;
38
+ }, {});
39
+ return linkedRepoIds.map(function (id) {
40
+ return optionsMap[id];
41
+ });
42
+ };
15
43
  var LinkedRepoList = function LinkedRepoList(_ref) {
16
44
  var onRepoClick = _ref.onRepoClick;
17
45
  var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
18
46
  t = _useTranslation.t;
47
+ var isComposingRef = (0, _react.useRef)(null);
19
48
  var repoRef = (0, _react.useRef)(null);
20
- var enableRepos = (0, _react.useMemo)(function () {
21
- var repos = _context["default"].getWikiRepos();
22
- var wikiSettings = _context["default"].getWikiSettings();
23
- var linked_repos = wikiSettings.linked_repos;
24
- var linkedMap = linked_repos.reduce(function (ret, id) {
25
- ret[id] = true;
26
- return ret;
27
- }, {});
28
- return repos.filter(function (item) {
29
- return linkedMap[item.repo_id];
30
- });
31
- }, []);
32
- var onAddLibraryClick = (0, _react.useCallback)(function () {
33
- var eventBus = _eventBus["default"].getInstance();
34
- eventBus.dispatch(_constants.INTERNAL_EVENT.ADD_WIKI_LIBRARY_TOGGLE);
49
+ var repos = useRepos();
50
+ var _useState = (0, _react.useState)(repos || []),
51
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
+ tables = _useState2[0],
53
+ setTables = _useState2[1];
54
+ var inputEvents = useStopPropagation();
55
+ var onChange = (0, _react.useCallback)(function (event) {
56
+ if (isComposingRef.current) return;
57
+ var value = event.target.value.trim().toUpperCase();
58
+ if (value) {
59
+ var list = repos.filter(function (item) {
60
+ return item.repo_name.toUpperCase().includes(value);
61
+ });
62
+ setTables(list);
63
+ } else {
64
+ setTables(repos);
65
+ }
66
+ }, [repos]);
67
+ var onCompositionStart = (0, _react.useCallback)(function () {
68
+ isComposingRef.current = true;
35
69
  }, []);
70
+ var onCompositionEnd = (0, _react.useCallback)(function (e) {
71
+ isComposingRef.current = false;
72
+ onChange(e);
73
+ }, [onChange]);
36
74
  return /*#__PURE__*/_react["default"].createElement("div", {
37
75
  ref: repoRef,
38
76
  className: "sdoc-dropdown-menu-container sdoc-linked-repo-list-wrapper"
39
77
  }, /*#__PURE__*/_react["default"].createElement("div", {
40
- className: "sdoc-linked-repo-list-tip"
41
- }, t('Show_files_from_a_linked_library')), /*#__PURE__*/_react["default"].createElement("div", {
78
+ className: "sdoc-linked-repo-list-search-wrapper"
79
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, Object.assign({
80
+ placeholder: t('Search_1'),
81
+ onChange: onChange,
82
+ autoFocus: true,
83
+ onCompositionStart: onCompositionStart,
84
+ onCompositionEnd: onCompositionEnd
85
+ }, inputEvents))), /*#__PURE__*/_react["default"].createElement("div", {
42
86
  className: "sdoc-linked-repo-list-content-wrapper"
43
- }, enableRepos.map(function (item) {
87
+ }, tables.map(function (item) {
44
88
  return /*#__PURE__*/_react["default"].createElement("div", {
45
89
  key: item.repo_id,
46
90
  className: "sdoc-dropdown-menu-item text-truncate d-block",
@@ -48,9 +92,6 @@ var LinkedRepoList = function LinkedRepoList(_ref) {
48
92
  return onRepoClick(item);
49
93
  }
50
94
  }, item.repo_name);
51
- })), /*#__PURE__*/_react["default"].createElement("div", {
52
- className: "sdoc-linked-repo-list-add-toolbar",
53
- onClick: onAddLibraryClick
54
- }, t('Add library')));
95
+ })));
55
96
  };
56
97
  var _default = exports["default"] = LinkedRepoList;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactI18next = require("react-i18next");
13
13
  var _reactstrap = require("reactstrap");
@@ -151,16 +151,15 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
151
151
  var wikiId = _context["default"].getSetting('wikiId');
152
152
  var data = {
153
153
  wiki_id: wikiId,
154
- name: t('Files'),
155
154
  view_name: t('View_name'),
156
- linked_repo_id: item.repo_id
155
+ view_type: 'table',
156
+ link_repo_id: item.repo_id
157
157
  };
158
- _context["default"].insertFileRepo(data).then(function (res) {
159
- var fileRepo = res.data;
160
- var viewData = {
161
- wiki_id: wikiId,
162
- file_repo_id: fileRepo.id
163
- };
158
+ _context["default"].insertWikiView(data).then(function (res) {
159
+ var view = res.data.view;
160
+ var viewData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
161
+ view_id: view._id
162
+ });
164
163
  (0, _helpers3.insertFileView)(viewData, editor, insertPosition, slateNode);
165
164
  })["catch"](function (error) {
166
165
  var errorMessage = (0, _commonUtils.getErrorMsg)(error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "3.0.84",
3
+ "version": "3.0.85",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -20,7 +20,7 @@
20
20
  "@seafile/comment-editor": "~1.0.16",
21
21
  "@seafile/print-js": "1.6.6",
22
22
  "@seafile/react-image-lightbox": "5.0.4",
23
- "@seafile/seafile-database": "0.0.22",
23
+ "@seafile/seafile-database": "0.0.19",
24
24
  "@seafile/slate": "0.91.8",
25
25
  "@seafile/slate-history": "0.86.2",
26
26
  "@seafile/slate-hyperscript": "0.81.7",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "561b204eb5bef258394f634ebf65d30c5518b036"
75
+ "gitHead": "17559d80caf39007b3ddec54671e986ba6c9254a"
76
76
  }