@seafile/sdoc-editor 2.0.23 → 2.0.25-alph-0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/api/seafile-api.js +4 -1
  2. package/dist/basic-sdk/assets/css/dropdown-menu.css +1 -1
  3. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +12 -2
  4. package/dist/basic-sdk/extension/constants/element-type.js +2 -1
  5. package/dist/basic-sdk/extension/constants/index.js +8 -2
  6. package/dist/basic-sdk/extension/constants/menus-config.js +5 -0
  7. package/dist/basic-sdk/extension/plugins/ai/ai-module/index.js +48 -24
  8. package/dist/basic-sdk/extension/plugins/ai/ai-module/style.css +8 -0
  9. package/dist/basic-sdk/extension/plugins/index.js +7 -0
  10. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +414 -0
  11. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +76 -0
  12. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +209 -0
  13. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/ResizeHandle.js +38 -0
  14. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/index.css +384 -0
  15. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +125 -0
  16. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header.js +144 -0
  17. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +161 -0
  18. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +47 -0
  19. package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +98 -0
  20. package/dist/basic-sdk/extension/plugins/seatable-row/index.js +17 -0
  21. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.css +3 -0
  22. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +46 -0
  23. package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +62 -0
  24. package/dist/basic-sdk/extension/plugins/seatable-row/model.js +19 -0
  25. package/dist/basic-sdk/extension/plugins/seatable-row/plugin.js +60 -0
  26. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +124 -0
  27. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +160 -0
  28. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-header.js +78 -0
  29. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-item.js +41 -0
  30. package/dist/basic-sdk/extension/plugins/seatable-tables/formatter/index.js +7 -2
  31. package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +1 -0
  32. package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +2 -0
  33. package/dist/basic-sdk/extension/render/custom-element.js +5 -0
  34. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +3 -2
  35. package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +1 -1
  36. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +2 -1
  37. package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +2 -1
  38. package/dist/constants/index.js +1 -0
  39. package/dist/context.js +2 -2
  40. package/dist/pages/document-plugin-editor.js +2 -1
  41. package/package.json +1 -1
  42. package/public/locales/cs/sdoc-editor.json +7 -1
  43. package/public/locales/de/sdoc-editor.json +66 -60
  44. package/public/locales/en/sdoc-editor.json +10 -2
  45. package/public/locales/es/sdoc-editor.json +7 -1
  46. package/public/locales/es_AR/sdoc-editor.json +7 -1
  47. package/public/locales/es_MX/sdoc-editor.json +7 -1
  48. package/public/locales/fr/sdoc-editor.json +240 -234
  49. package/public/locales/it/sdoc-editor.json +7 -1
  50. package/public/locales/ru/sdoc-editor.json +8 -2
  51. package/public/locales/zh_CN/sdoc-editor.json +7 -2
  52. package/public/media/sdoc-editor-font/iconfont.css +15 -14
  53. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  54. package/public/media/sdoc-editor-font/iconfont.svg +3 -1
  55. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  56. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  57. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  58. package/public/media/sdoc-editor-font.css +11 -7
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _dtableStore = require("dtable-store");
12
+ var _helpers = require("../../helpers");
13
+ var _constants = require("../../../../../../constants");
14
+ var _basicSdk = require("../../../../../../basic-sdk");
15
+ var _formatter = _interopRequireDefault(require("../../../seatable-tables/formatter"));
16
+ const emptyComponent = /*#__PURE__*/_react.default.createElement("span", {
17
+ className: "row-cell-empty d-inline-block"
18
+ });
19
+ class RowCardItem extends _react.PureComponent {
20
+ constructor(props) {
21
+ super(props);
22
+ (0, _defineProperty2.default)(this, "setDraggedCell", draggedCell => {
23
+ this.setState({
24
+ draggedCell
25
+ });
26
+ });
27
+ (0, _defineProperty2.default)(this, "getRowRecord", () => {
28
+ return this.linkRowRecord();
29
+ });
30
+ (0, _defineProperty2.default)(this, "linkRowRecord", () => {
31
+ let {
32
+ row,
33
+ formulaRow,
34
+ columns,
35
+ table,
36
+ rowCardType
37
+ } = this.props;
38
+ const {
39
+ draggedCell
40
+ } = this.state;
41
+ const {
42
+ _id: tableId
43
+ } = table;
44
+ return columns.filter(column => column.key !== '0000').map(column => {
45
+ const {
46
+ key,
47
+ width
48
+ } = column;
49
+ const draggedCellId = `${tableId}-${key}`;
50
+ const existedWidth = JSON.parse(localStorage.getItem(draggedCellId));
51
+ let columnWidth = existedWidth && rowCardType === 'link' ? existedWidth : width;
52
+ if (draggedCell.id === draggedCellId) {
53
+ columnWidth = draggedCell.width;
54
+ }
55
+ let cellValue = row[column.key];
56
+ if ([_dtableStore.CellType.LINK, _dtableStore.CellType.LINK_FORMULA, _dtableStore.CellType.FORMULA].includes(column.type)) {
57
+ cellValue = formulaRow[column.key];
58
+ }
59
+ return /*#__PURE__*/_react.default.createElement("div", {
60
+ className: "row-cell-value text-truncate",
61
+ key: row._id + '_' + key,
62
+ style: {
63
+ width: columnWidth
64
+ }
65
+ }, /*#__PURE__*/_react.default.createElement(_formatter.default, {
66
+ isSample: true,
67
+ column: column,
68
+ cellValue: cellValue,
69
+ collaborators: (0, _helpers.getAllCollaborators)(),
70
+ components: {
71
+ emptyComponent
72
+ },
73
+ isSeatableRow: true
74
+ }));
75
+ });
76
+ });
77
+ (0, _defineProperty2.default)(this, "changeScroll", event => {
78
+ event.stopPropagation();
79
+ const {
80
+ setItemScrollLeft,
81
+ rowIdx
82
+ } = this.props;
83
+ if (this.scrollActive) {
84
+ this.scrollActive = false;
85
+ return;
86
+ }
87
+ if (setItemScrollLeft) setItemScrollLeft(this.cardRecordsItemRef.scrollLeft, rowIdx);
88
+ });
89
+ (0, _defineProperty2.default)(this, "setScrollLeft", scrollLeft => {
90
+ this.scrollActive = true;
91
+ this.cardRecordsItemRef.scrollLeft = scrollLeft;
92
+ });
93
+ (0, _defineProperty2.default)(this, "getScrollLeft", () => {
94
+ return this.cardRecordsItemRef.scrollLeft;
95
+ });
96
+ (0, _defineProperty2.default)(this, "setCardRecordsItemRef", ref => {
97
+ this.cardRecordsItemRef = ref;
98
+ });
99
+ this.state = {
100
+ draggedCell: {},
101
+ isShowTick: false
102
+ };
103
+ }
104
+ componentDidMount() {
105
+ const {
106
+ rowIdx,
107
+ onRef
108
+ } = this.props;
109
+ onRef && onRef(this, rowIdx);
110
+ const eventBus = _basicSdk.EventBus.getInstance();
111
+ this.unsubscribeChangeHeaderWidth = eventBus.subscribe(_constants.EXTERNAL_EVENT.CHANGE_HEADER_WIDTH, this.setDraggedCell);
112
+ }
113
+ componentWillUnmount() {
114
+ this.unsubscribeChangeHeaderWidth();
115
+ }
116
+ UNSAFE_componentWillUpdate(nextProps) {
117
+ const {
118
+ onRef
119
+ } = this.props;
120
+ onRef && onRef(this, nextProps.rowIdx);
121
+ }
122
+ render() {
123
+ const {
124
+ row,
125
+ columns,
126
+ isSelected,
127
+ onRowClick
128
+ } = this.props;
129
+ const nameColumn = columns.find(column => column.key === '0000');
130
+ const cellValue = row['0000'];
131
+ return /*#__PURE__*/_react.default.createElement("div", {
132
+ tabIndex: 0,
133
+ "aria-label": row['0000'],
134
+ className: "row-card-item",
135
+ onClick: onRowClick
136
+ }, /*#__PURE__*/_react.default.createElement("div", {
137
+ className: "row-card-item-container"
138
+ }, /*#__PURE__*/_react.default.createElement("div", {
139
+ className: "row-card-item-header"
140
+ }, /*#__PURE__*/_react.default.createElement("div", {
141
+ className: "row-card-item-name seatable-row-card-name"
142
+ }, /*#__PURE__*/_react.default.createElement(_formatter.default, {
143
+ isSample: true,
144
+ column: nameColumn,
145
+ cellValue: cellValue,
146
+ collaborators: (0, _helpers.getAllCollaborators)(),
147
+ components: {
148
+ emptyComponent
149
+ }
150
+ })), isSelected && /*#__PURE__*/_react.default.createElement("span", {
151
+ className: "row-card-item-check dtable-font dtable-icon-check-circle"
152
+ })), /*#__PURE__*/_react.default.createElement("div", {
153
+ className: "row-card-item-content",
154
+ onScroll: this.changeScroll,
155
+ ref: this.setCardRecordsItemRef
156
+ }, /*#__PURE__*/_react.default.createElement("div", {
157
+ className: "d-inline-flex"
158
+ }, this.getRowRecord()))));
159
+ }
160
+ }
161
+ var _default = exports.default = RowCardItem;
@@ -0,0 +1,47 @@
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 _reactI18next = require("react-i18next");
10
+ var _dtableUtils = require("dtable-utils");
11
+ var _recordContent = _interopRequireDefault(require("./record-content"));
12
+ const SeatableTableRecord = _ref => {
13
+ let {
14
+ table,
15
+ setSelectedRow
16
+ } = _ref;
17
+ const {
18
+ t
19
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
20
+ const renderedColumns = () => {
21
+ var _table$columns;
22
+ return table === null || table === void 0 ? void 0 : (_table$columns = table.columns) === null || _table$columns === void 0 ? void 0 : _table$columns.filter(column => {
23
+ if (column.type === _dtableUtils.CellType.LONG_TEXT) {
24
+ return false;
25
+ }
26
+ return true;
27
+ }).map(column => Object.assign({}, column, {
28
+ width: 100
29
+ }));
30
+ };
31
+ return /*#__PURE__*/_react.default.createElement(_recordContent.default, {
32
+ table: table,
33
+ renderedColumns: renderedColumns(),
34
+ columns: renderedColumns(),
35
+ rows: table.rows,
36
+ rowCardType: "link",
37
+ isAdditionEditorView: false,
38
+ showScrollBtn: !window.isMobile,
39
+ isShowRowCardHeader: true,
40
+ cardListClassName: window.isMobile ? 'mobile-link-row-card-list' : '',
41
+ cardHeaderClassName: window.isMobile ? 'mobile-link-row-card-header' : '',
42
+ noCardItemTip: t('No_linked_records'),
43
+ setSelectedRow: setSelectedRow,
44
+ t: t
45
+ });
46
+ };
47
+ var _default = exports.default = SeatableTableRecord;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.updateSeaTableTable = exports.isInsertSeaTableRowDisabled = exports.insertSeaTableRow = exports.getAllCollaborators = exports.generateSeaTableRow = void 0;
8
+ var _slate = require("@seafile/slate");
9
+ var _slugid = _interopRequireDefault(require("slugid"));
10
+ var _core = require("../../core");
11
+ var _helpers = require("../seatable-column/helpers");
12
+ var _constants = require("../../constants");
13
+ var _helper = require("../paragraph/helper");
14
+ const isInsertSeaTableRowDisabled = (editor, readonly) => {
15
+ if (readonly) return true;
16
+ const {
17
+ selection
18
+ } = editor;
19
+ if (selection === null) return true;
20
+ const [match] = _slate.Editor.nodes(editor, {
21
+ match: n => {
22
+ let type = (0, _core.getNodeType)(n);
23
+ if (!type && (0, _core.isTextNode)(n) && n.id) {
24
+ const parentNode = (0, _core.getParentNode)(editor.children, n.id);
25
+ type = (0, _core.getNodeType)(parentNode);
26
+ }
27
+ if (type.startsWith('header')) return true;
28
+ if (type === _constants.ELEMENT_TYPE.TITLE) return true;
29
+ if (type === _constants.ELEMENT_TYPE.SUBTITLE) return true;
30
+ if (type === _constants.ELEMENT_TYPE.CODE_BLOCK) return true;
31
+ if (type === _constants.ELEMENT_TYPE.ORDERED_LIST) return true;
32
+ if (type === _constants.ELEMENT_TYPE.UNORDERED_LIST) return true;
33
+ if (type === _constants.ELEMENT_TYPE.BLOCKQUOTE) return true;
34
+ if (type === _constants.ELEMENT_TYPE.LIST_ITEM) return true;
35
+ if (type === _constants.ELEMENT_TYPE.TABLE) return true;
36
+ if (type === _constants.ELEMENT_TYPE.TABLE_CELL) return true;
37
+ if (type === _constants.ELEMENT_TYPE.TABLE_ROW) return true;
38
+ if (type === _constants.ELEMENT_TYPE.CALL_OUT) return true;
39
+ if (type === _constants.ELEMENT_TYPE.MULTI_COLUMN) return true;
40
+ if (_slate.Editor.isVoid(editor, n)) return true;
41
+ return false;
42
+ },
43
+ universal: true
44
+ });
45
+ if (match) return true;
46
+ return false;
47
+ };
48
+ exports.isInsertSeaTableRowDisabled = isInsertSeaTableRowDisabled;
49
+ const generateSeaTableRow = (table_id, selectedRowID, editor) => {
50
+ const table = editor.getTableById(table_id);
51
+ const columnWidth = {};
52
+ table.columns.forEach(item => {
53
+ columnWidth[item.key] = (0, _helpers.getColumnWidth)(item);
54
+ });
55
+ return {
56
+ id: _slugid.default.nice(),
57
+ type: _constants.SEATABLE_ROW,
58
+ table_id: table_id,
59
+ row_id: selectedRowID,
60
+ column_width: columnWidth,
61
+ children: [(0, _core.generateDefaultText)()]
62
+ };
63
+ };
64
+ exports.generateSeaTableRow = generateSeaTableRow;
65
+ const insertSeaTableRow = function (editor, table_id, selectedRowID) {
66
+ let insertPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.INSERT_POSITION.CURRENT;
67
+ const seatableRowNode = generateSeaTableRow(table_id, selectedRowID, editor);
68
+ if (insertPosition === _constants.INSERT_POSITION.AFTER) {
69
+ const path = _slate.Editor.path(editor, editor.selection);
70
+ const currentNode = (0, _core.getNode)(editor, [path[0]]);
71
+
72
+ // Insert into selection position if in empty paragraph nodes
73
+ if (currentNode.type === _constants.PARAGRAPH && (0, _helper.isEmptyNode)(currentNode)) {
74
+ _slate.Transforms.setNodes(editor, seatableRowNode);
75
+ return;
76
+ }
77
+ path && _slate.Transforms.insertNodes(editor, seatableRowNode, {
78
+ at: [path[0] + 1]
79
+ });
80
+ return;
81
+ }
82
+ _slate.Transforms.setNodes(editor, seatableRowNode);
83
+ };
84
+ exports.insertSeaTableRow = insertSeaTableRow;
85
+ const updateSeaTableTable = (editor, props, options) => {
86
+ _slate.Transforms.setNodes(editor, {
87
+ ...props
88
+ }, options);
89
+ };
90
+ exports.updateSeaTableTable = updateSeaTableTable;
91
+ const getAllCollaborators = () => {
92
+ const {
93
+ collaboratorManager
94
+ } = window.seafile || window.seafileConfig;
95
+ const collaborators = Object.values(collaboratorManager === null || collaboratorManager === void 0 ? void 0 : collaboratorManager.emailUserMap);
96
+ return collaborators;
97
+ };
98
+ exports.getAllCollaborators = getAllCollaborators;
@@ -0,0 +1,17 @@
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 _elementType = require("../../constants/element-type");
9
+ var _plugin = _interopRequireDefault(require("./plugin"));
10
+ var _renderElem = _interopRequireDefault(require("./render-elem"));
11
+ const SeaTableRowPlugin = {
12
+ type: _elementType.SEATABLE_ROW,
13
+ nodeType: 'element',
14
+ editorPlugin: _plugin.default,
15
+ renderElements: [_renderElem.default]
16
+ };
17
+ var _default = exports.default = SeaTableRowPlugin;
@@ -0,0 +1,3 @@
1
+ .sdoc-insert-seatable-row-menu-popover .sdoc-seatable-selected-table-list-wrapper {
2
+ left: unset !important;
3
+ }
@@ -0,0 +1,46 @@
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 _classnames = _interopRequireDefault(require("classnames"));
10
+ var _reactstrap = require("reactstrap");
11
+ var _constants = require("../../../constants");
12
+ var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
13
+ var _helpers = require("../helpers");
14
+ var _seatableList = _interopRequireDefault(require("./seatable-list"));
15
+ require("./index.css");
16
+ const SeaTableRowMenu = _ref => {
17
+ let {
18
+ editor,
19
+ readonly,
20
+ toggle,
21
+ isHidden = false
22
+ } = _ref;
23
+ const disabled = (0, _helpers.isInsertSeaTableRowDisabled)(editor, readonly);
24
+ const menuConfig = _constants.MENUS_CONFIG_MAP[_constants.ELEMENT_TYPE.SEATABLE_ROW];
25
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
26
+ disabled: disabled,
27
+ menuConfig: menuConfig,
28
+ className: (0, _classnames.default)('pr-2 sdoc-dropdown-menu-item-relative', {
29
+ 'sdoc-dropdown-menu-item-hidden': isHidden
30
+ })
31
+ }, !disabled && /*#__PURE__*/_react.default.createElement("i", {
32
+ className: "sdocfont sdoc-right-slide sdoc-dropdown-item-right-icon"
33
+ })), !disabled && /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledPopover, {
34
+ target: menuConfig.id,
35
+ hideArrow: true,
36
+ trigger: "hover",
37
+ fade: false,
38
+ placement: "right-start",
39
+ className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-seatable-row-menu-popover"
40
+ }, /*#__PURE__*/_react.default.createElement(_seatableList.default, {
41
+ editor: editor,
42
+ readonly: readonly,
43
+ toggle: toggle
44
+ })));
45
+ };
46
+ var _default = exports.default = SeaTableRowMenu;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _utils = require("../../../utils");
11
+ var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
12
+ var _constants = require("../../../../constants");
13
+ var _constants2 = require("../../../constants");
14
+ const SeaTableList = _ref => {
15
+ let {
16
+ editor,
17
+ toggle
18
+ } = _ref;
19
+ const seatableRef = (0, _react.useRef)(null);
20
+ const [computedStyle, setComputedStyle] = (0, _react.useState)({});
21
+ const tables = editor.tables;
22
+ (0, _react.useEffect)(() => {
23
+ if (seatableRef.current) {
24
+ // bottom overflow
25
+ if ((0, _utils.isOverflowPortByDirection)(seatableRef.current, 'bottom')) {
26
+ return setComputedStyle({
27
+ bottom: '0px'
28
+ });
29
+ }
30
+ // default
31
+ setComputedStyle({
32
+ top: '-20px'
33
+ });
34
+ }
35
+ }, []);
36
+ const openSelectSeatableTableDialog = (0, _react.useCallback)(item => {
37
+ const eventBus = _eventBus.default.getInstance();
38
+ eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
39
+ type: _constants2.ELEMENT_TYPE.SEATABLE_ROW,
40
+ data: {
41
+ table: item
42
+ }
43
+ });
44
+ toggle && toggle();
45
+
46
+ // eslint-disable-next-line react-hooks/exhaustive-deps
47
+ }, [toggle]);
48
+ return /*#__PURE__*/_react.default.createElement("div", {
49
+ ref: seatableRef,
50
+ className: "sdoc-dropdown-menu-container sdoc-seatable-selected-table-list-wrapper",
51
+ style: computedStyle
52
+ }, /*#__PURE__*/_react.default.createElement("div", {
53
+ className: "sdoc-seatable-list-wrapper"
54
+ }, tables.map(item => {
55
+ return /*#__PURE__*/_react.default.createElement("div", {
56
+ key: item._id,
57
+ className: "sdoc-dropdown-menu-item text-truncate d-block",
58
+ onClick: () => openSelectSeatableTableDialog(item)
59
+ }, item.name);
60
+ })));
61
+ };
62
+ var _default = exports.default = SeaTableList;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _constants = require("../../constants");
8
+ class Row {
9
+ constructor(option) {
10
+ this.type = option.type || _constants.SEATABLE_ROW;
11
+ this.table_id = option.table_id;
12
+ this.row_id = option.row_id;
13
+ this.column_width = option.column_width;
14
+ this.children = option.children || [{
15
+ text: ''
16
+ }];
17
+ }
18
+ }
19
+ var _default = exports.default = Row;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _slate = require("@seafile/slate");
8
+ var _constants = require("../../constants");
9
+ var _core = require("../../core");
10
+ const withRow = editor => {
11
+ const {
12
+ isVoid,
13
+ deleteBackward,
14
+ normalizeNode
15
+ } = editor;
16
+ const newEditor = editor;
17
+ newEditor.isVoid = element => {
18
+ const {
19
+ type
20
+ } = element;
21
+ if (type === _constants.ELEMENT_TYPE.SEATABLE_ROW) return true;
22
+ return isVoid(element);
23
+ };
24
+ newEditor.deleteBackward = unit => {
25
+ const {
26
+ selection
27
+ } = editor;
28
+ const focusPoint = _slate.Editor.before(editor, selection);
29
+ const point = _slate.Editor.before(editor, selection, {
30
+ distance: 1
31
+ });
32
+ if (!point) return deleteBackward(unit);
33
+ const [node, path] = _slate.Editor.node(editor, [point.path[0], point.path[1]]);
34
+ const isPerviousSeaTableRow = node.type === _constants.SEATABLE_ROW;
35
+ if (isPerviousSeaTableRow && Range.isCollapsed(selection) && (0, _core.isBlockAboveEmpty)(editor) && !_slate.Path.isCommon(path, selection.anchor.path)) {
36
+ deleteBackward(unit);
37
+ (0, _core.focusEditor)(newEditor, _slate.Editor.end(newEditor, focusPoint));
38
+ return;
39
+ }
40
+ deleteBackward(unit);
41
+ };
42
+ newEditor.normalizeNode = _ref => {
43
+ let [node, path] = _ref;
44
+ const type = (0, _core.getNodeType)(node);
45
+ if (type !== _constants.SEATABLE_ROW) {
46
+ return normalizeNode([node, path]);
47
+ }
48
+
49
+ // insert empty node,continue editor
50
+ const isLast = (0, _core.isLastNode)(newEditor, node);
51
+ if (isLast) {
52
+ const p = (0, _core.generateEmptyElement)(_constants.PARAGRAPH);
53
+ _slate.Transforms.insertNodes(newEditor, p, {
54
+ at: [path[0] + 1]
55
+ });
56
+ }
57
+ };
58
+ return newEditor;
59
+ };
60
+ var _default = exports.default = withRow;
@@ -0,0 +1,124 @@
1
+ .seatable-rows-record-wrapper {
2
+ outline: none;
3
+ }
4
+
5
+ .seatable-rows-record-container {
6
+ margin: 5px 0;
7
+ border: 1.5px solid #ddd;
8
+ border-radius: 5px;
9
+ width: 100%;
10
+ overflow: auto;
11
+ position: relative;
12
+ user-select: none;
13
+ outline: none;
14
+ }
15
+
16
+ .seatable-rows-record-container .seatable-rows-record-table-name {
17
+ margin-left: 10px;
18
+ margin-top: 10px;
19
+ margin-bottom: 3px;
20
+ font-size: 15px;
21
+ font-weight: 500;
22
+ }
23
+
24
+
25
+ .seatable-rows-record-wrapper .seatable-rows-record-container table tr {
26
+ background-color: unset !important;
27
+ }
28
+
29
+ .seatable-rows-record-wrapper .seatable-rows-record-container table {
30
+ margin-top: unset !important;
31
+ margin-bottom: 3px !important;
32
+ }
33
+
34
+ .seatable-rows-record-wrapper .seatable-rows-record-container table th {
35
+ font-size: 14px;
36
+ color: #888;
37
+ font-weight: 400;
38
+ }
39
+
40
+ .seatable-rows-record-wrapper .seatable-rows-record-container table td {
41
+ font-size: 14px;
42
+ font-weight: 400;
43
+ color: #212529
44
+ }
45
+
46
+ .seatable-rows-record-wrapper .seatable-rows-record-container table,
47
+ .seatable-rows-record-wrapper .seatable-rows-record-container table td,
48
+ .seatable-rows-record-wrapper .seatable-rows-record-container table th {
49
+ border: unset !important;
50
+ padding-bottom: 5px !important;
51
+ padding-top: 5px !important;
52
+ }
53
+
54
+ .seatable-rows-record-container .seatable-view-records .seatable-rows-record-header,
55
+ .seatable-rows-record-wrapper .seatable-rows-record-container table td,
56
+ .seatable-rows-record-wrapper .seatable-rows-record-container table th {
57
+ height: 32px;
58
+ padding: 0 10px;
59
+ }
60
+
61
+ .seatable-rows-record-container.selected {
62
+ box-shadow: 0 0 0 2px #0aba45;
63
+ }
64
+
65
+ .seatable-rows-record-container .seatable-view-records {
66
+ margin: 0;
67
+ width: fit-content;
68
+ }
69
+
70
+ .seatable-rows-record-container .seatable-column-editor-wrapper {
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ position: absolute;
75
+ left: 0;
76
+ bottom: 0;
77
+ width: 100%;
78
+ height: 30px;
79
+ }
80
+
81
+ .seatable-rows-record-container .seatable-column-editor-wrapper .seatable-column-width-tip {
82
+ background-color: #0009;
83
+ border-radius: 3px;
84
+ color: #fff;
85
+ font-size: 13px;
86
+ line-height: 20px;
87
+ padding: 2px 8px;
88
+ }
89
+
90
+ .seatable-rows-record-header th {
91
+ display: inline-flex;
92
+ align-items: center;
93
+ justify-content: flex-start;
94
+ flex: unset !important;
95
+ }
96
+
97
+ .seatable-rows-record-header .seatable-rows-record-header-cell {
98
+ position: relative;
99
+ }
100
+
101
+ .seatable-rows-record-header .seatable-rows-record-header-cell span:first-child {
102
+ white-space: nowrap;
103
+ overflow: hidden;
104
+ }
105
+
106
+ .seatable-rows-record-body-cell {
107
+ display: inline-flex;
108
+ align-items: center;
109
+ justify-content: flex-start;
110
+ white-space: nowrap;
111
+ text-overflow: ellipsis;
112
+ overflow: hidden;
113
+ word-break: break-all;
114
+ flex: unset !important
115
+ }
116
+
117
+ .seatable-rows-record-body-cell .document-number-formatter {
118
+ text-align: right;
119
+ }
120
+
121
+ .seatable-rows-record-body-cell .collaborator-item .collaborator-avatar img {
122
+ min-width: 16px;
123
+ min-height: 16px;
124
+ }