@seafile/sdoc-editor 2.0.18-alph-0.0.3 → 2.0.18-alph-0.0.5

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 (28) hide show
  1. package/dist/basic-sdk/extension/plugins/seatable-row/constants/index.js +10 -0
  2. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/RateFormatter.js +111 -0
  3. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/SimpleCellFormatter.js +41 -0
  4. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/SingleSelectOption.js +65 -0
  5. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/rate-formatter.css +23 -0
  6. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/widget/rate-item.js +78 -0
  7. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/helpers.js +416 -2
  8. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +351 -32
  9. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +9 -15
  10. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/link-content.js +134 -0
  11. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +29 -16
  12. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/ResizeHandle.js +38 -0
  13. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/index.css +384 -0
  14. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +34 -15
  15. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +39 -86
  16. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +22 -9
  17. package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +4 -4
  18. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.css +3 -0
  19. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +3 -1
  20. package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +3 -1
  21. package/dist/basic-sdk/extension/plugins/seatable-row/model.js +1 -1
  22. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +4 -3
  23. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +11 -10
  24. package/dist/constants/index.js +1 -0
  25. package/package.json +1 -1
  26. package/public/locales/en/sdoc-editor.json +3 -1
  27. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-item.js +0 -41
  28. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table.js +0 -134
@@ -6,33 +6,46 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _reactI18next = require("react-i18next");
9
10
  var _dtableUtils = require("dtable-utils");
10
11
  var _recordContent = _interopRequireDefault(require("./record-content"));
11
12
  const SeatableTableRecord = _ref => {
12
13
  let {
13
- table
14
+ table,
15
+ setSelectedRow
14
16
  } = _ref;
15
- console.log(1, table);
17
+ const {
18
+ t
19
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
16
20
  const renderedColumns = () => {
17
21
  var _table$columns;
18
22
  return table === null || table === void 0 ? void 0 : (_table$columns = table.columns) === null || _table$columns === void 0 ? void 0 : _table$columns.filter(column => {
19
23
  if (column.type === _dtableUtils.CellType.LONG_TEXT) {
20
24
  return false;
21
25
  }
22
- // if (['0000', ...hiddenColumns].includes(column.key)) {
23
- // return false;
24
- // }
26
+ // Hide first 'name' column
27
+ if (['0000'].includes(column.key)) {
28
+ return false;
29
+ }
25
30
  return true;
26
31
  }).map(column => Object.assign({}, column, {
27
32
  width: 100
28
33
  }));
29
34
  };
30
- console.log(33, renderedColumns());
31
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_recordContent.default, {
35
+ return /*#__PURE__*/_react.default.createElement(_recordContent.default, {
32
36
  table: table,
33
37
  renderedColumns: renderedColumns(),
34
38
  columns: renderedColumns(),
35
- rows: table.rows
36
- }));
39
+ rows: table.rows,
40
+ rowCardType: "link",
41
+ isAdditionEditorView: false,
42
+ showScrollBtn: !window.isMobile,
43
+ isShowRowCardHeader: true,
44
+ cardListClassName: window.isMobile ? 'mobile-link-row-card-list' : '',
45
+ cardHeaderClassName: window.isMobile ? 'mobile-link-row-card-header' : '',
46
+ noCardItemTip: t('No_linked_records'),
47
+ setSelectedRow: setSelectedRow,
48
+ t: t
49
+ });
37
50
  };
38
51
  var _default = exports.default = SeatableTableRecord;
@@ -46,7 +46,7 @@ const isInsertSeaTableRowDisabled = (editor, readonly) => {
46
46
  return false;
47
47
  };
48
48
  exports.isInsertSeaTableRowDisabled = isInsertSeaTableRowDisabled;
49
- const generateSeaTableRow = (table_id, selectedRowsID, editor) => {
49
+ const generateSeaTableRow = (table_id, selectedRowID, editor) => {
50
50
  const table = editor.getTableById(table_id);
51
51
  const columnWidth = {};
52
52
  table.columns.forEach(item => {
@@ -56,15 +56,15 @@ const generateSeaTableRow = (table_id, selectedRowsID, editor) => {
56
56
  id: _slugid.default.nice(),
57
57
  type: _constants.SEATABLE_ROW,
58
58
  table_id: table_id,
59
- selected_rows_id: selectedRowsID,
59
+ row_id: selectedRowID,
60
60
  column_width: columnWidth,
61
61
  children: [(0, _core.generateDefaultText)()]
62
62
  };
63
63
  };
64
64
  exports.generateSeaTableRow = generateSeaTableRow;
65
- const insertSeaTableRow = function (editor, table_id, selectedRowsID) {
65
+ const insertSeaTableRow = function (editor, table_id, selectedRowID) {
66
66
  let insertPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.INSERT_POSITION.CURRENT;
67
- const seatableRowNode = generateSeaTableRow(table_id, selectedRowsID, editor);
67
+ const seatableRowNode = generateSeaTableRow(table_id, selectedRowID, editor);
68
68
  if (insertPosition === _constants.INSERT_POSITION.AFTER) {
69
69
  const path = _slate.Editor.path(editor, editor.selection);
70
70
  const currentNode = (0, _core.getNode)(editor, [path[0]]);
@@ -0,0 +1,3 @@
1
+ .sdoc-insert-seatable-row-menu-popover .sdoc-seatable-selected-table-list-wrapper {
2
+ left: unset !important;
3
+ }
@@ -12,6 +12,7 @@ var _constants = require("../../../constants");
12
12
  var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
13
13
  var _helpers = require("../helpers");
14
14
  var _seatableList = _interopRequireDefault(require("./seatable-list"));
15
+ require("./index.css");
15
16
  const SeaTableRowMenu = _ref => {
16
17
  let {
17
18
  editor,
@@ -34,7 +35,8 @@ const SeaTableRowMenu = _ref => {
34
35
  hideArrow: true,
35
36
  trigger: "hover",
36
37
  fade: false,
37
- className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu"
38
+ placement: "right-start",
39
+ className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu sdoc-insert-seatable-row-menu-popover"
38
40
  }, /*#__PURE__*/_react.default.createElement(_seatableList.default, {
39
41
  editor: editor,
40
42
  readonly: readonly,
@@ -49,12 +49,14 @@ const SeaTableList = _ref => {
49
49
  ref: seatableRef,
50
50
  className: "sdoc-dropdown-menu-container sdoc-seatable-selected-table-list-wrapper",
51
51
  style: computedStyle
52
+ }, /*#__PURE__*/_react.default.createElement("div", {
53
+ className: "sdoc-seatable-list-wrapper"
52
54
  }, tables.map(item => {
53
55
  return /*#__PURE__*/_react.default.createElement("div", {
54
56
  key: item._id,
55
57
  className: "sdoc-dropdown-menu-item text-truncate d-block",
56
58
  onClick: () => openSelectSeatableTableDialog(item)
57
59
  }, item.name);
58
- }));
60
+ })));
59
61
  };
60
62
  var _default = exports.default = SeaTableList;
@@ -9,7 +9,7 @@ class Row {
9
9
  constructor(option) {
10
10
  this.type = option.type || _constants.SEATABLE_ROW;
11
11
  this.table_id = option.table_id;
12
- this.selected_rows_id = option.selected_rows_id;
12
+ this.row_id = option.row_id;
13
13
  this.column_width = option.column_width;
14
14
  this.children = option.children || [{
15
15
  text: ''
@@ -3,7 +3,7 @@
3
3
  }
4
4
 
5
5
  .seatable-rows-record-container {
6
- margin-top: 5px;
6
+ margin: 5px 0;
7
7
  border: 1.5px solid #ddd;
8
8
  border-radius: 5px;
9
9
  width: 100%;
@@ -32,14 +32,15 @@
32
32
  }
33
33
 
34
34
  .seatable-rows-record-wrapper .seatable-rows-record-container table th {
35
- font-size: 12px;
36
- color: #666;
35
+ font-size: 14px;
36
+ color: #888;
37
37
  font-weight: 400;
38
38
  }
39
39
 
40
40
  .seatable-rows-record-wrapper .seatable-rows-record-container table td {
41
41
  font-size: 14px;
42
42
  font-weight: 400;
43
+ color: #212529
43
44
  }
44
45
 
45
46
  .seatable-rows-record-wrapper .seatable-rows-record-container table,
@@ -24,12 +24,12 @@ const RowRecord = _ref => {
24
24
  } = _ref;
25
25
  const {
26
26
  table_id,
27
- selected_rows_id,
27
+ row_id,
28
28
  column_width = {}
29
29
  } = element;
30
30
  const [columns, setColumns] = (0, _react.useState)([]);
31
- const [tableName, setTableName] = (0, _react.useState)(null);
32
- const [shownRecords, setShownRecords] = (0, _react.useState)([]);
31
+ const [rowRecordName, setRowRecordName] = (0, _react.useState)(null);
32
+ const [shownRecord, setShownRecord] = (0, _react.useState)([]);
33
33
  const [columnWidthMap, setColumnWidthMap] = (0, _react.useState)(column_width);
34
34
  const [isShowColumnWidth, setIsShowColumnWidth] = (0, _react.useState)(false);
35
35
  const [isCanModifyColumnWidth, setIsCanModifyColumnWidth] = (0, _react.useState)(false);
@@ -42,7 +42,8 @@ const RowRecord = _ref => {
42
42
  (0, _react.useEffect)(() => {
43
43
  async function initTableData() {
44
44
  const table = await editor.getTableById(table_id);
45
- setTableName(table.name);
45
+ setRowRecordName(table.rows[0]['0000']);
46
+ console.log(5555, table);
46
47
  if (!tableInfoRef.current) {
47
48
  tableInfoRef.current = {};
48
49
  }
@@ -55,16 +56,15 @@ const RowRecord = _ref => {
55
56
  }, {})
56
57
  };
57
58
  }
58
- const validRecords = table.rows;
59
- const shownRecords = validRecords.filter(item => selected_rows_id.includes(item._id));
60
- setShownRecords(shownRecords);
59
+ const shownRecord = table.rows.filter(item => row_id === item._id);
60
+ setShownRecord(shownRecord);
61
61
  const updatedColumnWidthMap = Object.fromEntries(Object.entries(columnWidthMap).map(_ref2 => {
62
62
  let [key, value] = _ref2;
63
63
  return [key, value * 1.2];
64
64
  }));
65
65
  setColumnWidthMap(updatedColumnWidthMap);
66
66
  let validColumns = table.columns;
67
- validColumns = validColumns.map(column => {
67
+ validColumns = validColumns.filter((_, index) => index !== 0).map(column => {
68
68
  const {
69
69
  type
70
70
  } = column;
@@ -92,6 +92,7 @@ const RowRecord = _ref => {
92
92
  }
93
93
  return column;
94
94
  });
95
+ console.log(1, validColumns);
95
96
  setColumns(validColumns);
96
97
  }
97
98
  initTableData();
@@ -125,7 +126,7 @@ const RowRecord = _ref => {
125
126
  onDoubleClick: onTableDoubleClick
126
127
  }, /*#__PURE__*/_react.default.createElement("div", {
127
128
  className: "seatable-rows-record-table-name"
128
- }, tableName), /*#__PURE__*/_react.default.createElement("table", {
129
+ }, rowRecordName), /*#__PURE__*/_react.default.createElement("table", {
129
130
  className: "seatable-rows-record-table"
130
131
  }, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement(_recordHeader.default, {
131
132
  editor: editor,
@@ -136,7 +137,7 @@ const RowRecord = _ref => {
136
137
  setColumnWidthMap: setColumnWidthMap
137
138
  })), /*#__PURE__*/_react.default.createElement("tbody", {
138
139
  className: "seatable-rows-record-body-container"
139
- }, shownRecords.map((record, index) => {
140
+ }, shownRecord.map((record, index) => {
140
141
  const formulaRow = formulaRows[record._id] || {};
141
142
  return /*#__PURE__*/_react.default.createElement(_recordItem.default, {
142
143
  key: record._id,
@@ -37,6 +37,7 @@ const EXTERNAL_EVENT = exports.EXTERNAL_EVENT = {
37
37
  CREATE_SDOC_FILE: 'create_sdoc_file',
38
38
  CREATE_WIKI_PAGE: 'create_wiki_page',
39
39
  ADD_VIDEO_LINK: 'add_video_link',
40
+ CHANGE_HEADER_WIDTH: "change_header_width",
40
41
  // wiki
41
42
  INSERT_LINK: 'insert_link',
42
43
  // document
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.18-alph-0.0.3",
3
+ "version": "2.0.18-alph-0.0.5",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",
@@ -620,5 +620,7 @@
620
620
  "Select_seatable_rows": "Select seatable rows",
621
621
  "Add_rows_record": "Add rows record",
622
622
  "Double_click_then_adjust_field_width": "Double click, then adjust field width",
623
- "SeaTable_row": "SeaTable row"
623
+ "SeaTable_row": "SeaTable row",
624
+ "Please_select_one_row_record": "Please select one row record",
625
+ "No_linked_records": "No linked records"
624
626
  }
@@ -1,41 +0,0 @@
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 = RecordItem;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _dtableUtils = require("dtable-utils");
10
- var _formatter = _interopRequireDefault(require("../../../seatable-tables/formatter"));
11
- function RecordItem(_ref) {
12
- let {
13
- record,
14
- formulaRow,
15
- columns,
16
- editor
17
- } = _ref;
18
- return /*#__PURE__*/_react.default.createElement("tr", {
19
- className: "seatable-view-body-column-row"
20
- }, columns.map(column => {
21
- const width = 100;
22
- let cellValue = record[column.key];
23
- if ([_dtableUtils.CellType.LINK, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.FORMULA].includes(column.type)) {
24
- cellValue = formulaRow[column.key];
25
- }
26
- return /*#__PURE__*/_react.default.createElement("td", {
27
- className: "seatable-view-body-column-cell",
28
- key: record._id + '_' + column.key,
29
- "data-record-id": record._id,
30
- style: {
31
- width,
32
- minWidth: width
33
- }
34
- }, /*#__PURE__*/_react.default.createElement(_formatter.default, {
35
- isSample: true,
36
- column: column,
37
- cellValue: cellValue,
38
- collaborators: editor.collaborators
39
- }));
40
- }));
41
- }
@@ -1,134 +0,0 @@
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 _dtableUtils = require("dtable-utils");
11
- var _recordItem = _interopRequireDefault(require("./record-item"));
12
- const SeatableTable = _ref => {
13
- var _tableInfoRef$current, _tableInfoRef$current2;
14
- let {
15
- tableID,
16
- setSelectedRowsID,
17
- editor
18
- } = _ref;
19
- const tableInfoRef = (0, _react.useRef)(null);
20
- const [shownRecords, setShownRecords] = (0, _react.useState)([]);
21
- const [columns, setColumns] = (0, _react.useState)([]);
22
- const headerCellRef = (0, _react.useRef)({});
23
- (0, _react.useEffect)(() => {
24
- async function initTableData() {
25
- const table = await editor.getTableById(tableID);
26
- if (!tableInfoRef.current) {
27
- tableInfoRef.current = {};
28
- }
29
- if (!tableInfoRef.current[tableID]) {
30
- tableInfoRef.current[tableID] = {
31
- formulaRows: editor.getTableFormulaResults(table, table.rows),
32
- idRowMap: table.rows.reduce((result, item) => {
33
- result[item._id] = item;
34
- return result;
35
- }, {})
36
- };
37
- }
38
- const validRecords = table.rows;
39
- setShownRecords(validRecords);
40
- let validColumns = table.columns;
41
-
42
- // formatted columns
43
- validColumns = validColumns.map(column => {
44
- const {
45
- type
46
- } = column;
47
- if (type === _dtableUtils.CellType.LINK) {
48
- const {
49
- data
50
- } = column;
51
- const {
52
- display_column_key,
53
- array_type,
54
- array_data
55
- } = data;
56
- const display_column = {
57
- key: display_column_key || '0000',
58
- type: array_type || _dtableUtils.CellType.TEXT,
59
- data: array_data || null
60
- };
61
- return {
62
- ...column,
63
- data: {
64
- ...data,
65
- display_column
66
- }
67
- };
68
- }
69
- return column;
70
- });
71
- setColumns(validColumns);
72
- }
73
- initTableData();
74
-
75
- // eslint-disable-next-line react-hooks/exhaustive-deps
76
- }, [tableID]);
77
- const onClick = (0, _react.useCallback)(e => {
78
- const domCell = e.target;
79
- const recordId = domCell.getAttribute('data-record-id') ? domCell.getAttribute('data-record-id') : domCell.parentNode.getAttribute('data-record-id');
80
- setSelectedRowsID(prevSelectedRowsID => {
81
- if (!prevSelectedRowsID.includes(recordId)) {
82
- var _domCell$closest;
83
- (_domCell$closest = domCell.closest('tr')) === null || _domCell$closest === void 0 ? void 0 : _domCell$closest.classList.add('isSelected');
84
- return [...prevSelectedRowsID, recordId];
85
- } else {
86
- var _domCell$closest2;
87
- (_domCell$closest2 = domCell.closest('tr')) === null || _domCell$closest2 === void 0 ? void 0 : _domCell$closest2.classList.remove('isSelected');
88
- return prevSelectedRowsID.filter(id => id !== recordId);
89
- }
90
- });
91
- }, [setSelectedRowsID]);
92
- const formulaRows = (tableInfoRef === null || tableInfoRef === void 0 ? void 0 : (_tableInfoRef$current = tableInfoRef.current) === null || _tableInfoRef$current === void 0 ? void 0 : (_tableInfoRef$current2 = _tableInfoRef$current[tableID]) === null || _tableInfoRef$current2 === void 0 ? void 0 : _tableInfoRef$current2.formulaRows) || {};
93
- (0, _react.useEffect)(() => {
94
- const seatableRowsContaniner = document.getElementById('seatable-table-rows-view');
95
- seatableRowsContaniner.addEventListener('click', onClick);
96
- return () => {
97
- seatableRowsContaniner.removeEventListener('click', onClick);
98
- };
99
- }, [onClick]);
100
- return /*#__PURE__*/_react.default.createElement("div", {
101
- className: "seatable-table-wrapper"
102
- }, /*#__PURE__*/_react.default.createElement("table", {
103
- className: "seatable-view-records"
104
- }, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", {
105
- className: "seatable-view-column-header-row"
106
- }, columns.map(column => {
107
- const width = 100;
108
- return /*#__PURE__*/_react.default.createElement("th", {
109
- ref: ref => {
110
- headerCellRef.current[column.key] = ref;
111
- },
112
- className: "seatable-view-column-header-cell",
113
- key: column.key,
114
- style: {
115
- width,
116
- minWidth: width
117
- }
118
- }, /*#__PURE__*/_react.default.createElement("span", null, column.name));
119
- }))), /*#__PURE__*/_react.default.createElement("tbody", {
120
- className: "seatable-view-body-row",
121
- id: "seatable-table-rows-view"
122
- }, shownRecords.map((record, index) => {
123
- const formulaRow = formulaRows[record._id] || {};
124
- return /*#__PURE__*/_react.default.createElement(_recordItem.default, {
125
- key: record._id,
126
- index: index,
127
- editor: editor,
128
- record: record,
129
- formulaRow: formulaRow,
130
- columns: columns
131
- });
132
- }))));
133
- };
134
- var _default = exports.default = SeatableTable;