@seafile/sdoc-editor 0.1.107 → 0.1.109

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.
@@ -97,6 +97,13 @@ var withCodeBlock = function withCodeBlock(editor) {
97
97
  node = _ref2[0],
98
98
  path = _ref2[1];
99
99
  var type = getNodeType(node);
100
+ if (type === 'code-line' && path.length <= 1) {
101
+ Transforms.setNodes(newEditor, {
102
+ type: 'paragraph'
103
+ }, {
104
+ at: path
105
+ });
106
+ }
100
107
  if (type === CODE_BLOCK) {
101
108
  // code-block is the last node in the editor and needs to be followed by a p node
102
109
  var isLast = isLastNode(newEditor, node);
@@ -116,6 +123,17 @@ var withCodeBlock = function withCodeBlock(editor) {
116
123
  mode: 'highest'
117
124
  });
118
125
  }
126
+ if (node.children.length > 1) {
127
+ node.children.forEach(function (child, index) {
128
+ if (child.type !== 'code-line') {
129
+ Transforms.setNodes(newEditor, {
130
+ type: 'code-line'
131
+ }, {
132
+ at: [].concat(_toConsumableArray(path), [index])
133
+ });
134
+ }
135
+ });
136
+ }
119
137
  }
120
138
 
121
139
  // Perform default behavior
@@ -4,7 +4,7 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
4
  import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
  import React, { Component } from 'react';
6
6
  import { withTranslation } from 'react-i18next';
7
- import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Label } from 'reactstrap';
7
+ import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Label, Alert } from 'reactstrap';
8
8
  import { TABLE_MAX_ROWS, TABLE_MAX_COLUMNS } from '../../constants';
9
9
  import NumberInput from './number-input';
10
10
  import './index.css';
@@ -22,25 +22,33 @@ var CustomTableSizeDialog = /*#__PURE__*/function (_Component) {
22
22
  var _this$state = _this.state,
23
23
  rows = _this$state.rows,
24
24
  cols = _this$state.cols;
25
+ if (!rows || !cols || parseInt(rows) < 1 || parseInt(rows) > 50 || parseInt(cols) < 1 || parseInt(cols) > 50) {
26
+ _this.setState({
27
+ errorMessage: 'Valid_values_for_rows_and_columns'
28
+ });
29
+ return;
30
+ }
25
31
  _this.props.submit([parseInt(rows), parseInt(cols)]);
26
32
  };
27
33
  _this.rowsChange = function (event) {
28
34
  var value = event.target.value;
29
35
  if (value === _this.state.rows) return;
30
36
  _this.setState({
31
- rows: value
37
+ rows: value,
38
+ errorMessage: ''
32
39
  });
33
40
  };
34
41
  _this.colsChange = function (event) {
35
42
  var value = event.target.value;
36
43
  if (value === _this.state.cols) return;
37
44
  _this.setState({
38
- cols: value
45
+ cols: value,
46
+ errorMessage: ''
39
47
  });
40
48
  };
41
49
  _this.state = {
42
- rows: '0',
43
- cols: '0'
50
+ rows: '1',
51
+ cols: '5'
44
52
  };
45
53
  return _this;
46
54
  }
@@ -50,7 +58,8 @@ var CustomTableSizeDialog = /*#__PURE__*/function (_Component) {
50
58
  var t = this.props.t;
51
59
  var _this$state2 = this.state,
52
60
  rows = _this$state2.rows,
53
- cols = _this$state2.cols;
61
+ cols = _this$state2.cols,
62
+ errorMessage = _this$state2.errorMessage;
54
63
  return /*#__PURE__*/React.createElement(Modal, {
55
64
  isOpen: true,
56
65
  toggle: this.toggle,
@@ -66,6 +75,7 @@ var CustomTableSizeDialog = /*#__PURE__*/function (_Component) {
66
75
  }, /*#__PURE__*/React.createElement(Label, {
67
76
  className: "mb-2"
68
77
  }, t('Rows')), /*#__PURE__*/React.createElement(NumberInput, {
78
+ min: 1,
69
79
  max: TABLE_MAX_ROWS,
70
80
  value: rows,
71
81
  onChange: this.rowsChange
@@ -74,10 +84,14 @@ var CustomTableSizeDialog = /*#__PURE__*/function (_Component) {
74
84
  }, /*#__PURE__*/React.createElement(Label, {
75
85
  className: "mb-2"
76
86
  }, t('Columns')), /*#__PURE__*/React.createElement(NumberInput, {
87
+ min: 1,
77
88
  max: TABLE_MAX_COLUMNS,
78
89
  value: cols,
79
90
  onChange: this.colsChange
80
- })))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
91
+ }))), errorMessage && /*#__PURE__*/React.createElement(Alert, {
92
+ className: "mt-2 mb-0",
93
+ color: "danger"
94
+ }, t(errorMessage))), /*#__PURE__*/React.createElement(ModalFooter, null, /*#__PURE__*/React.createElement(Button, {
81
95
  color: "secondary",
82
96
  onClick: this.toggle
83
97
  }, t('Cancel')), /*#__PURE__*/React.createElement(Button, {
@@ -11,7 +11,7 @@ function NumberInput(props) {
11
11
  return /*#__PURE__*/React.createElement(Input, {
12
12
  type: "number",
13
13
  className: className,
14
- value: value || '0',
14
+ value: value,
15
15
  min: min,
16
16
  step: step,
17
17
  max: max,
@@ -6,6 +6,7 @@ import HistoryOperation from './history-operation';
6
6
  import CollaboratorsOperation from './collaborators-operation';
7
7
  import MoreOperations from './more-operations';
8
8
  import CommentsOperation from './comments-operation';
9
+ import ShareOperation from './share-operation';
9
10
  import './style.css';
10
11
  var DocOperations = function DocOperations(_ref) {
11
12
  var isShowChanges = _ref.isShowChanges,
@@ -16,10 +17,6 @@ var DocOperations = function DocOperations(_ref) {
16
17
  }, /*#__PURE__*/React.createElement(RevisionOperations, {
17
18
  isShowChanges: isShowChanges,
18
19
  toggleViewChanges: toggleViewChanges
19
- }), /*#__PURE__*/React.createElement(CommentsOperation, null), !isSdocRevision && /*#__PURE__*/React.createElement("span", {
20
- className: "op-item"
21
- }, /*#__PURE__*/React.createElement("i", {
22
- className: "sdocfont sdoc-share"
23
- })), /*#__PURE__*/React.createElement(HistoryOperation, null), /*#__PURE__*/React.createElement(CollaboratorsOperation, null), !isSdocRevision && /*#__PURE__*/React.createElement(MoreOperations, null));
20
+ }), /*#__PURE__*/React.createElement(CommentsOperation, null), !isSdocRevision && /*#__PURE__*/React.createElement(ShareOperation, null), /*#__PURE__*/React.createElement(HistoryOperation, null), /*#__PURE__*/React.createElement(CollaboratorsOperation, null), !isSdocRevision && /*#__PURE__*/React.createElement(MoreOperations, null));
24
21
  };
25
22
  export default withTranslation('sdoc-editor')(DocOperations);
@@ -0,0 +1,15 @@
1
+ import React, { useCallback } from 'react';
2
+ import { EventBus } from '../../../basic-sdk';
3
+ import { EXTERNAL_EVENT } from '../../../constants';
4
+ export default function ShareOperation() {
5
+ var onShareToggle = useCallback(function () {
6
+ var eventBus = EventBus.getInstance();
7
+ eventBus.dispatch(EXTERNAL_EVENT.SHARE_SDOC);
8
+ }, []);
9
+ return /*#__PURE__*/React.createElement("span", {
10
+ className: "op-item",
11
+ onClick: onShareToggle
12
+ }, /*#__PURE__*/React.createElement("i", {
13
+ className: "sdocfont sdoc-share"
14
+ }));
15
+ }
@@ -2,6 +2,7 @@ export var EXTERNAL_EVENT = {
2
2
  INTERNAL_LINK_CLICK: 'internal_link_click',
3
3
  TOGGLE_STAR: 'toggle_star',
4
4
  UNMARK_AS_DRAFT: 'unmark_as_draft',
5
+ SHARE_SDOC: 'share_sdoc',
5
6
  CANCEL_TABLE_SELECT_RANGE: 'cancel_table_select_range',
6
7
  SET_TABLE_SELECT_RANGE: 'set_table_select_range'
7
8
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "0.1.107",
3
+ "version": "0.1.109",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",
@@ -25,6 +25,7 @@
25
25
  "Code_block": "Code block",
26
26
  "Insert_link": "Insert link",
27
27
  "Insert_table": "Insert table",
28
+ "Valid_values_for_rows_and_columns": "Valid values for the number of rows and columns are 0 to 50",
28
29
  "Save": "Save",
29
30
  "More": "More",
30
31
  "Invalid_url": "Invalid URL",
@@ -25,6 +25,7 @@
25
25
  "Code_block": "代码块",
26
26
  "Insert_link": "添加链接",
27
27
  "Insert_table": "添加表格",
28
+ "Valid_values_for_rows_and_columns": "行数和列数的有效值为 0 到 50",
28
29
  "Save": "保存",
29
30
  "More": "更多",
30
31
  "Invalid_url": "无效链接",