@seafile/sdoc-editor 2.0.34-alph-0.0.3 → 2.0.35

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.
@@ -1,13 +1,10 @@
1
1
  .sdoc-image-process-container {
2
- position: absolute;
3
2
  width: 100%;
4
3
  height: 100%;
5
4
  display: flex;
6
5
  flex-direction: row;
7
6
  align-items: center;
8
7
  justify-content: center;
9
- bottom: 0;
10
- left: 0;
11
8
  background-color: rgba(0, 0, 0, 0.5);
12
9
  min-height: 28px;
13
10
  }
@@ -31,10 +28,11 @@
31
28
  animation: spin 1s linear infinite;
32
29
  user-select: none;
33
30
  pointer-events: none;
31
+ margin-left: 15px;
34
32
  }
35
33
 
36
34
  .sdoc-image-process-container .copyright {
37
- margin-left: 15px;
35
+ margin:0 15px;
38
36
  display: inline-block;
39
37
  white-space: nowrap;
40
38
  }
@@ -286,7 +286,9 @@ const Image = _ref => {
286
286
  className: "sdoc-image-content"
287
287
  }, /*#__PURE__*/_react.default.createElement("span", {
288
288
  style: imageStyle
289
- }, /*#__PURE__*/_react.default.createElement("img", {
289
+ }, isCopyImageLoading && /*#__PURE__*/_react.default.createElement(_imageLoader.default, {
290
+ copyright: t('Image_is_uploading')
291
+ }), /*#__PURE__*/_react.default.createElement("img", {
290
292
  ref: imageRef,
291
293
  className: (0, _classnames.default)({
292
294
  'image-selected': isSelected
@@ -298,8 +300,6 @@ const Image = _ref => {
298
300
  onLoad: onImageLoaded,
299
301
  onError: onImageLoadError,
300
302
  alt: ""
301
- }), isCopyImageLoading && /*#__PURE__*/_react.default.createElement(_imageLoader.default, {
302
- copyright: t('Image_is_uploading')
303
303
  }), isSelected && /*#__PURE__*/_react.default.createElement("span", {
304
304
  className: "image-resizer",
305
305
  ref: resizerRef,
@@ -32,7 +32,7 @@ const LinkHover = _ref => {
32
32
  location.href = element.href;
33
33
  }
34
34
  }, [element.href]);
35
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement("div", {
35
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement("div", {
36
36
  id: "link-op-menu",
37
37
  className: "link-op-menu",
38
38
  style: menuPosition
@@ -54,7 +54,7 @@ const SearchReplaceMenu = _ref => {
54
54
  const canvasList = [];
55
55
  for (let index = 0; index < generateCount; index++) {
56
56
  const top = index * 5000;
57
- canvasList.push(/*#__PURE__*/_react.default.createElement("canvas", {
57
+ canvasList.push( /*#__PURE__*/_react.default.createElement("canvas", {
58
58
  key: 'sdoc-find-search-' + index,
59
59
  id: `sdoc-find-search-${index}`,
60
60
  className: "sdoc-find-search-highlight-canvas",
@@ -79,7 +79,7 @@ const SearchReplaceMenu = _ref => {
79
79
  readonly: readonly,
80
80
  isOpen: isOpenPopover,
81
81
  closePopover: onMouseDown
82
- }), isOpenPopover && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement("div", {
82
+ }), isOpenPopover && /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement("div", {
83
83
  style: {
84
84
  height: articleContainerSize.clientHeight
85
85
  },
@@ -168,7 +168,7 @@ const SearchReplacePopover = _ref => {
168
168
  if ((0, _isHotkey.default)('enter', e)) handleNext();
169
169
  if ((0, _isHotkey.default)('enter+shift', e)) handleLast();
170
170
  };
171
- return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
171
+ return /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
172
172
  className: "sdoc-search-replace-popover-container",
173
173
  onMouseDown: handleStartMove,
174
174
  onMouseMove: handleMouseMove,
@@ -1,5 +1,6 @@
1
1
  .seatable-rows-select-dialog {
2
- max-width: 520px;
2
+ max-width: 620px;
3
+ height: 520px;
3
4
  }
4
5
 
5
6
  .seatable-rows-select-dialog .sdoc-seatable-rows-select-footer {
@@ -35,10 +36,8 @@
35
36
  padding: 0 !important;
36
37
  }
37
38
 
38
- .seatable-rows-select-dialog .modal-body .form-label {
39
- margin: 1rem 1rem 0;
40
- padding-bottom: 1rem;
41
- border-bottom: 1px solid #e2e2e2;
39
+ .seatable-rows-select-dialog .modal-body .form-group {
40
+ margin: 0 !important;
42
41
  }
43
42
 
44
43
  .seatable-rows-close-dialog {
@@ -61,10 +60,9 @@
61
60
  }
62
61
 
63
62
  .seatable-rows-select-dialog .seatable-table-wrapper {
64
- height: 280px;
63
+ height: 382px;
65
64
  overflow-x: auto;
66
65
  overflow-y: hidden;
67
- border: 2px solid transparent;
68
66
  }
69
67
 
70
68
  .seatable-rows-select-dialog .row-card-container {
@@ -85,6 +83,10 @@
85
83
  align-items: center;
86
84
  }
87
85
 
86
+ .row-card-header {
87
+ border-bottom: 1px solid #e9ecef;
88
+ }
89
+
88
90
  .row-card-header .row-card-column-names {
89
91
  padding: 8px 32px;
90
92
  width: 100%;
@@ -153,12 +155,13 @@
153
155
  }
154
156
 
155
157
  .seatable-rows-select-dialog .row-card-container .row-card-list {
156
- height: calc(100% - 40px);
158
+ height: calc(100% - 46px);
157
159
  width: 100%;
158
160
  min-width: 100%;
159
- padding: 10px 20px;
161
+ padding: 12px 20px 10px;
160
162
  overflow-y: auto;
161
- margin-top: 3px;
163
+ margin: 0 !important;
164
+ background-color: #f5f5f5;
162
165
  }
163
166
 
164
167
  .row-card-list .no-records-tips {
@@ -200,7 +203,7 @@
200
203
  }
201
204
 
202
205
  .row-card-item:last-child {
203
- margin-bottom: 10px;
206
+ margin-bottom: 0 !important;
204
207
  }
205
208
 
206
209
  .row-card-item:hover {
@@ -241,7 +244,7 @@
241
244
  .row-card-item .row-card-item-name {
242
245
  height: 100%;
243
246
  flex: 1 1;
244
- font-weight: 400;
247
+ font-weight: 500;
245
248
  }
246
249
 
247
250
  .row-card-item .row-card-item-check {
@@ -56,7 +56,7 @@ const AddSeatableRowDialog = _ref => {
56
56
  onClick: closeDialog
57
57
  })), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
58
58
  className: "form-group"
59
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.Label, null, table.name), /*#__PURE__*/_react.default.createElement(_seatableTableRecord.default, {
59
+ }, /*#__PURE__*/_react.default.createElement(_seatableTableRecord.default, {
60
60
  table: table,
61
61
  setSelectedRow: setSelectedRow
62
62
  }), rowRecordsErrorMessage && /*#__PURE__*/_react.default.createElement(_reactstrap.Alert, {
@@ -71,6 +71,6 @@ const AddSeatableRowDialog = _ref => {
71
71
  color: "primary",
72
72
  disabled: false,
73
73
  onClick: submit
74
- }, t('Add_row_record'))));
74
+ }, t('Submit'))));
75
75
  };
76
76
  var _default = exports.default = AddSeatableRowDialog;
@@ -78,7 +78,7 @@ class RowCardHeader extends _react.default.Component {
78
78
  // Start from the second column without name
79
79
  for (let i = 1; i < renderedColumns.length; i++) {
80
80
  const renderedColumn = renderedColumns[i];
81
- cardHeaderCells.push(/*#__PURE__*/_react.default.createElement(_rowCardHeaderCell.default, {
81
+ cardHeaderCells.push( /*#__PURE__*/_react.default.createElement(_rowCardHeaderCell.default, {
82
82
  key: renderedColumn.key,
83
83
  column: renderedColumn,
84
84
  rowCardType: rowCardType,
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _reactstrap = require("reactstrap");
11
+ var _reactI18next = require("react-i18next");
10
12
  var _utils = require("../../../utils");
11
13
  var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
12
14
  var _constants = require("../../../../constants");
@@ -16,9 +18,13 @@ const SeaTableList = _ref => {
16
18
  editor,
17
19
  toggle
18
20
  } = _ref;
21
+ const {
22
+ t
23
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
19
24
  const seatableRef = (0, _react.useRef)(null);
25
+ const isComposingRef = (0, _react.useRef)(null);
20
26
  const [computedStyle, setComputedStyle] = (0, _react.useState)({});
21
- const tables = editor.tables;
27
+ const [tables, setTables] = (0, _react.useState)(editor.tables || []);
22
28
  (0, _react.useEffect)(() => {
23
29
  if (seatableRef.current) {
24
30
  // bottom overflow
@@ -33,6 +39,16 @@ const SeaTableList = _ref => {
33
39
  });
34
40
  }
35
41
  }, []);
42
+ const onChange = (0, _react.useCallback)(event => {
43
+ if (isComposingRef.current) return;
44
+ const value = event.target.value.trim().toUpperCase();
45
+ if (value) {
46
+ const list = editor.tables.filter(item => item.name.toUpperCase().includes(value));
47
+ setTables(list);
48
+ } else {
49
+ setTables(editor.tables);
50
+ }
51
+ }, [editor.tables]);
36
52
  const openSelectSeatableTableDialog = (0, _react.useCallback)(item => {
37
53
  const eventBus = _eventBus.default.getInstance();
38
54
  eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
@@ -45,11 +61,26 @@ const SeaTableList = _ref => {
45
61
 
46
62
  // eslint-disable-next-line react-hooks/exhaustive-deps
47
63
  }, [toggle]);
64
+ const onCompositionStart = (0, _react.useCallback)(() => {
65
+ isComposingRef.current = true;
66
+ }, []);
67
+ const onCompositionEnd = (0, _react.useCallback)(e => {
68
+ isComposingRef.current = false;
69
+ onChange(e);
70
+ }, [onChange]);
48
71
  return /*#__PURE__*/_react.default.createElement("div", {
49
72
  ref: seatableRef,
50
73
  className: "sdoc-dropdown-menu-container sdoc-seatable-selected-table-list-wrapper",
51
74
  style: computedStyle
52
75
  }, /*#__PURE__*/_react.default.createElement("div", {
76
+ className: "sdoc-seatable-list-search-wrapper"
77
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
78
+ placeholder: t('Search_action'),
79
+ onChange: onChange,
80
+ autoFocus: true,
81
+ onCompositionStart: onCompositionStart,
82
+ onCompositionEnd: onCompositionEnd
83
+ })), /*#__PURE__*/_react.default.createElement("div", {
53
84
  className: "sdoc-seatable-list-wrapper"
54
85
  }, tables.map(item => {
55
86
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -42,7 +42,6 @@ const RowRecord = _ref => {
42
42
  (0, _react.useEffect)(() => {
43
43
  async function initTableData() {
44
44
  const table = await editor.getTableById(table_id);
45
- setRowRecordName(table.rows[0]['0000']);
46
45
  if (!tableInfoRef.current) {
47
46
  tableInfoRef.current = {};
48
47
  }
@@ -57,6 +56,7 @@ const RowRecord = _ref => {
57
56
  }
58
57
  const shownRecord = table.rows.filter(item => row_id === item._id);
59
58
  setShownRecord(shownRecord);
59
+ setRowRecordName(shownRecord[0]['0000']);
60
60
  const updatedColumnWidthMap = Object.fromEntries(Object.entries(columnWidthMap).map(_ref2 => {
61
61
  let [key, value] = _ref2;
62
62
  return [key, value];
@@ -70,7 +70,7 @@ class DtableSearchInput extends _react.Component {
70
70
  const {
71
71
  ClearIndicator
72
72
  } = components;
73
- if (/*#__PURE__*/_react.default.isValidElement(ClearIndicator)) {
73
+ if ( /*#__PURE__*/_react.default.isValidElement(ClearIndicator)) {
74
74
  return /*#__PURE__*/_react.default.cloneElement(ClearIndicator, {
75
75
  clearValue: this.clearSearch
76
76
  });
@@ -310,7 +310,7 @@ class FilterItem extends _react.default.Component {
310
310
  background: inOption.color,
311
311
  color: inOption.textColor || null
312
312
  };
313
- labelArray.push(/*#__PURE__*/_react.default.createElement("span", {
313
+ labelArray.push( /*#__PURE__*/_react.default.createElement("span", {
314
314
  className: className,
315
315
  style: optionStyle,
316
316
  key: 'option_' + item,
@@ -87,12 +87,6 @@ class TableContextMenu extends _react.default.Component {
87
87
  this.colorSelectorRef = /*#__PURE__*/_react.default.createRef();
88
88
  }
89
89
  componentDidMount() {
90
- const {
91
- readonly,
92
- editor
93
- } = this.props;
94
- console.log(3, editor.editorType);
95
- if (readonly) return;
96
90
  this.position = this.props.contextMenuPosition;
97
91
  this.updateMenuPosition();
98
92
  }
@@ -205,7 +205,7 @@ const TableSizePopover = _ref => {
205
205
  });
206
206
  children.push(child);
207
207
  }
208
- tableSize.push(/*#__PURE__*/_react.default.createElement("div", {
208
+ tableSize.push( /*#__PURE__*/_react.default.createElement("div", {
209
209
  key: `sdoc-table-size-row-${i}`,
210
210
  className: "sdoc-table-size-row d-flex"
211
211
  }, children));
@@ -62,7 +62,7 @@ const ContextToolbar = () => {
62
62
  el.removeAttribute('style');
63
63
  }
64
64
  }, []);
65
- return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement("div", {
65
+ return /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement("div", {
66
66
  ref: ref,
67
67
  className: "sdoc-context-toolbar",
68
68
  onMouseDown: onMouseDown,
@@ -67,7 +67,7 @@ class Toaster {
67
67
  container.setAttribute('data-evergreen-toaster-container', '');
68
68
  document.body.appendChild(container);
69
69
  const root = (0, _client.createRoot)(container);
70
- root.render(/*#__PURE__*/_react.default.createElement(_toastManager.default, {
70
+ root.render( /*#__PURE__*/_react.default.createElement(_toastManager.default, {
71
71
  bindNotify: this._bindNotify,
72
72
  bindGetToasts: this._bindGetToasts,
73
73
  bindCloseAll: this._bindCloseAll
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.34-alph-0.0.3",
3
+ "version": "2.0.35",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",