@seafile/sdoc-editor 0.1.0 → 0.1.2

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 (149) hide show
  1. package/dist/{new-editors/editor.js → editor.js} +38 -17
  2. package/dist/index.js +2 -36
  3. package/dist/slate-extension/core/transforms/move-children.js +1 -1
  4. package/dist/slate-extension/plugins/blockquote/helpers.js +3 -3
  5. package/dist/slate-extension/plugins/index.js +3 -2
  6. package/dist/slate-extension/plugins/list/transforms/normalize-list-item.js +2 -2
  7. package/dist/slate-extension/plugins/list/transforms/toggle-list.js +6 -8
  8. package/dist/slate-extension/plugins/socket/index.js +6 -0
  9. package/dist/slate-extension/plugins/socket/plugin.js +23 -0
  10. package/dist/slate-extension/socket/socket-client.js +94 -0
  11. package/dist/slate-extension/socket/socket-manager.js +63 -0
  12. package/dist/slate-extension/toolbar/index.js +1 -1
  13. package/dist/utils/event-bus.js +39 -0
  14. package/package.json +5 -25
  15. package/dist/assets/css/comment-dialog.css +0 -50
  16. package/dist/assets/css/diff-viewer.css +0 -105
  17. package/dist/assets/css/formula.css +0 -19
  18. package/dist/assets/css/history-viewer.css +0 -104
  19. package/dist/assets/css/image.css +0 -134
  20. package/dist/assets/css/issue-card.css +0 -43
  21. package/dist/assets/css/keyboard-shortcuts.css +0 -58
  22. package/dist/assets/css/link.css +0 -7
  23. package/dist/assets/css/markdown-editor.css +0 -12
  24. package/dist/assets/css/markdown-viewer.css +0 -69
  25. package/dist/assets/css/navbar-imgbutton.css +0 -83
  26. package/dist/assets/css/outline.css +0 -29
  27. package/dist/assets/css/table.css +0 -57
  28. package/dist/assets/css/textlink-hovermenu.css +0 -47
  29. package/dist/assets/css/topbar.css +0 -350
  30. package/dist/assets/css/tree-view.css +0 -67
  31. package/dist/assets/css/user-help.css +0 -84
  32. package/dist/assets/editor/plain-editor.css +0 -30
  33. package/dist/assets/editor/seatable-editor.css +0 -77
  34. package/dist/assets/editor/simple-editor.css +0 -77
  35. package/dist/components/click-outside.js +0 -46
  36. package/dist/components/context-menu.js +0 -97
  37. package/dist/components/dialogs/add-formula-dialog.js +0 -116
  38. package/dist/components/dialogs/add-image-dialog.js +0 -69
  39. package/dist/components/dialogs/add-link-dialog.js +0 -133
  40. package/dist/components/dialogs/comment-dialog.js +0 -97
  41. package/dist/components/dialogs/shortcut-dialog.js +0 -131
  42. package/dist/components/error-boundary.js +0 -28
  43. package/dist/components/load-script/index.js +0 -69
  44. package/dist/components/loading.js +0 -25
  45. package/dist/components/markdown-lint.js +0 -72
  46. package/dist/components/menu/index.js +0 -4
  47. package/dist/components/menu/item.js +0 -49
  48. package/dist/components/menu/menu.js +0 -38
  49. package/dist/components/menu/style.css +0 -42
  50. package/dist/components/modal-portal.js +0 -38
  51. package/dist/components/outline/index.js +0 -92
  52. package/dist/components/outline/outline-item.js +0 -58
  53. package/dist/components/select/_option.js +0 -44
  54. package/dist/components/select/field-setting.js +0 -106
  55. package/dist/components/select/index.js +0 -149
  56. package/dist/components/select/style.css +0 -144
  57. package/dist/components/svg-icons/check-mark-icon.js +0 -14
  58. package/dist/components/svg-icons/column-icon.js +0 -17
  59. package/dist/components/svg-icons/text-icon.js +0 -34
  60. package/dist/components/text-link-hover-menu/index.js +0 -123
  61. package/dist/components/toast/alert.js +0 -138
  62. package/dist/components/toast/index.js +0 -3
  63. package/dist/components/toast/toast.js +0 -159
  64. package/dist/components/toast/toastManager.js +0 -139
  65. package/dist/components/toast/toaster.js +0 -65
  66. package/dist/components/toolbar/header-list.js +0 -114
  67. package/dist/components/toolbar/help-group.js +0 -33
  68. package/dist/components/toolbar/index.js +0 -4
  69. package/dist/components/toolbar/insert-image.js +0 -106
  70. package/dist/components/toolbar/insert-table.js +0 -136
  71. package/dist/components/toolbar/table-group.js +0 -74
  72. package/dist/components/toolbar/toolbar.js +0 -317
  73. package/dist/components/toolbar/widgets/button-group.js +0 -24
  74. package/dist/components/toolbar/widgets/button-item.js +0 -129
  75. package/dist/components/toolbar/widgets/drop-list.js +0 -88
  76. package/dist/components/user-help/index.js +0 -179
  77. package/dist/config-0.js +0 -15
  78. package/dist/config.js +0 -16
  79. package/dist/constants/cell-types.js +0 -29
  80. package/dist/constants/column.js +0 -4
  81. package/dist/containers/code-highlight-package.js +0 -14
  82. package/dist/containers/controller/block-element-controller.js +0 -375
  83. package/dist/containers/controller/index.js +0 -5
  84. package/dist/containers/controller/inline-element-controller.js +0 -134
  85. package/dist/containers/controller/normalize-controller.js +0 -95
  86. package/dist/containers/controller/shortcut-controller.js +0 -385
  87. package/dist/containers/controller/void-element-controller.js +0 -9
  88. package/dist/containers/custom/custom.js +0 -18
  89. package/dist/containers/custom/get-event-transfer.js +0 -33
  90. package/dist/containers/custom/getNodesByTypeAtRange.js +0 -57
  91. package/dist/containers/custom/insertNodes.js +0 -120
  92. package/dist/containers/custom/is-empty-paragraph.js +0 -9
  93. package/dist/containers/custom/set-event-transfer.js +0 -30
  94. package/dist/containers/custom/split-nodes-at-point.js +0 -136
  95. package/dist/containers/custom/unwrap-node-by-type-at-range.js +0 -70
  96. package/dist/containers/editor-context.js +0 -85
  97. package/dist/containers/editor-utils/block-element-utils/blockquote-utils.js +0 -80
  98. package/dist/containers/editor-utils/block-element-utils/code-utils.js +0 -145
  99. package/dist/containers/editor-utils/block-element-utils/formula-utils.js +0 -51
  100. package/dist/containers/editor-utils/block-element-utils/index.js +0 -31
  101. package/dist/containers/editor-utils/block-element-utils/list-utils.js +0 -395
  102. package/dist/containers/editor-utils/block-element-utils/table-utils.js +0 -412
  103. package/dist/containers/editor-utils/clear-format-utils.js +0 -84
  104. package/dist/containers/editor-utils/common-editor-utils.js +0 -492
  105. package/dist/containers/editor-utils/inline-element-utils/index.js +0 -95
  106. package/dist/containers/editor-utils/mark-utils.js +0 -20
  107. package/dist/containers/editor-utils/range-utils.js +0 -7
  108. package/dist/containers/editor-utils/selection-utils.js +0 -30
  109. package/dist/containers/editor-utils/text-utils.js +0 -117
  110. package/dist/containers/editor-widgets/check-list-item.js +0 -53
  111. package/dist/containers/editor-widgets/code-block.js +0 -128
  112. package/dist/containers/editor-widgets/column.js +0 -100
  113. package/dist/containers/editor-widgets/formula.js +0 -67
  114. package/dist/containers/editor-widgets/image.js +0 -237
  115. package/dist/containers/editor-widgets/link.js +0 -9
  116. package/dist/containers/editor-widgets/table.js +0 -144
  117. package/dist/containers/element-model/blockquote.js +0 -13
  118. package/dist/containers/element-model/column.js +0 -19
  119. package/dist/containers/element-model/image.js +0 -16
  120. package/dist/containers/element-model/link.js +0 -16
  121. package/dist/containers/element-model/table.js +0 -57
  122. package/dist/containers/element-model/text.js +0 -10
  123. package/dist/containers/render-utils/common-utils.js +0 -80
  124. package/dist/containers/render-utils/editor-utils.js +0 -133
  125. package/dist/containers/render-utils/viewer-utils.js +0 -198
  126. package/dist/containers/viewer-widgets/viewer-formula/index.js +0 -54
  127. package/dist/containers/viewer-widgets/viewer-image/index.js +0 -70
  128. package/dist/containers/viewer-widgets/viewer-image/viewer-image.css +0 -3
  129. package/dist/editors/index.js +0 -78
  130. package/dist/editors/markdown-editor.js +0 -280
  131. package/dist/editors/plain-markdown-editor.js +0 -285
  132. package/dist/editors/seatable-editor.js +0 -210
  133. package/dist/editors/simple-editor.js +0 -200
  134. package/dist/utils/deserialize-html.js +0 -260
  135. package/dist/utils/diff/compare-strings.js +0 -35
  136. package/dist/utils/diff/diff.js +0 -769
  137. package/dist/utils/diff/index.js +0 -2
  138. package/dist/utils/seafile-markdown2html.js +0 -52
  139. package/dist/utils/slate2markdown/deserialize.js +0 -588
  140. package/dist/utils/slate2markdown/index.js +0 -3
  141. package/dist/utils/slate2markdown/serialize.js +0 -366
  142. package/dist/utils/utils.js +0 -69
  143. package/dist/viewer/diff-viewer.js +0 -85
  144. package/dist/viewer/index.js +0 -4
  145. package/dist/viewer/markdown-viewer.js +0 -121
  146. package/dist/viewer/seatable-viewer.js +0 -63
  147. package/dist/viewer/slate-viewer.js +0 -71
  148. /package/dist/assets/css/{new-editor-toolbar.css → sdoc-editor-toolbar.css} +0 -0
  149. /package/dist/assets/css/{new-editor.css → sdoc-editor.css} +0 -0
@@ -1,237 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/esm/createClass";
4
- import _inherits from "@babel/runtime/helpers/esm/inherits";
5
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
- import React from 'react';
7
- import { withTranslation } from 'react-i18next';
8
- import Lightbox from '@seafile/react-image-lightbox';
9
- import { Utils } from '../../utils/utils';
10
- import InlineElementUtils from '../editor-utils/inline-element-utils';
11
- import EditorContext from '../editor-context';
12
- import '@seafile/react-image-lightbox/style.css';
13
- var Image = /*#__PURE__*/function (_React$Component) {
14
- _inherits(Image, _React$Component);
15
- var _super = _createSuper(Image);
16
- function Image(props) {
17
- var _this;
18
- _classCallCheck(this, Image);
19
- _this = _super.call(this, props);
20
- _this.startMove = function (e) {
21
- e.stopPropagation();
22
- _this.setState({
23
- isResizing: true
24
- });
25
- window.addEventListener('mousemove', _this.handleMove);
26
- window.addEventListener('mouseup', _this.stopMove);
27
- };
28
- _this.stopMove = function (e) {
29
- e.stopPropagation();
30
- e.preventDefault();
31
- window.removeEventListener('mousemove', _this.handleMove);
32
- var node = _this.props.node;
33
- _this.inlineElementUtils.adjustImageSize({
34
- width: _this.state.width,
35
- src: node.data.src
36
- });
37
- _this.setState({
38
- isResizing: false
39
- });
40
- window.removeEventListener('mouseup', _this.stopMove);
41
- };
42
- _this.handleMove = function (e) {
43
- e.stopPropagation();
44
- e.preventDefault();
45
- var changeX;
46
- changeX = e.clientX - _this.refs.resizer.getBoundingClientRect().left - 5;
47
- var imageWidth = _this.refs.image.width + changeX;
48
- if (imageWidth >= _this.editor.offsetWidth) {
49
- return;
50
- }
51
- if (imageWidth < 20) {
52
- return;
53
- }
54
- _this.setState({
55
- width: imageWidth
56
- });
57
- };
58
- _this.setFullScreen = function (event) {
59
- event.stopPropagation();
60
- var src = _this.props.node.data.src;
61
- _this.toggleBigImage(event, src);
62
- };
63
- _this.toggleBigImage = function (event, src) {
64
- event.preventDefault();
65
- _this.setState({
66
- isShowBigImage: !_this.state.isShowBigImage
67
- });
68
- _this.imgSrc = src;
69
- };
70
- _this.renderImagePreviewer = function () {
71
- return /*#__PURE__*/React.createElement(ImagePreviewer, {
72
- imageUrl: _this.imgSrc,
73
- toggleImagePreviewer: _this.toggleBigImage
74
- });
75
- };
76
- _this.state = {
77
- width: null,
78
- isResizing: false,
79
- isShowBigImage: false
80
- };
81
- var editor = EditorContext.getEditor();
82
- _this.inlineElementUtils = new InlineElementUtils(editor);
83
- return _this;
84
- }
85
- _createClass(Image, [{
86
- key: "componentDidMount",
87
- value: function componentDidMount() {
88
- this.editor = document.querySelector('.editor-component');
89
- }
90
- }, {
91
- key: "componentWillUnmount",
92
- value: function componentWillUnmount() {
93
- this.refs.resizer = null;
94
- this.refs.image = null;
95
- }
96
- }, {
97
- key: "render",
98
- value: function render() {
99
- var _this$props = this.props,
100
- attributes = _this$props.attributes,
101
- node = _this$props.node,
102
- isSelected = _this$props.isSelected,
103
- children = _this$props.children;
104
- var isResizing = this.state.isResizing;
105
- var data = node.data;
106
- var src = data.src;
107
- if (/^\.\.\/*/.test(src) || /^\.\/*/.test(src)) {
108
- var editor = EditorContext.getEditor();
109
- var _editor$editorApi = editor.editorApi,
110
- filePath = _editor$editorApi.filePath,
111
- serviceUrl = _editor$editorApi.serviceUrl,
112
- repoID = _editor$editorApi.repoID;
113
- var originalPath = filePath.slice(0, filePath.lastIndexOf('/')) + '/' + src;
114
- src = serviceUrl + '/lib/' + repoID + '/file/' + Utils.pathNormalize(originalPath) + '?raw=1';
115
- }
116
- var dom = /*#__PURE__*/React.createElement("span", Object.assign({
117
- className: "seafile-ed-image"
118
- }, attributes), isSelected || isResizing ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", {
119
- className: "seafile-ed-image-inResizing",
120
- draggable: false,
121
- src: src,
122
- width: this.state.width || data.width,
123
- alt: ' ',
124
- ref: "image"
125
- }), this.state.isResizing ? /*#__PURE__*/React.createElement("span", {
126
- contentEditable: false,
127
- className: "image-size"
128
- }, /*#__PURE__*/React.createElement("span", null, this.props.t('width'), ':', parseInt(this.state.width || this.refs.image.clientWidth)), /*#__PURE__*/React.createElement("span", null, "\xA0\xA0"), /*#__PURE__*/React.createElement("span", null, this.props.t('height'), ':', this.refs.image.clientHeight)) : null, /*#__PURE__*/React.createElement("span", {
129
- ref: "resizer",
130
- onMouseDown: this.startMove,
131
- className: 'image-resizer'
132
- }), isSelected && /*#__PURE__*/React.createElement("span", {
133
- contentEditable: false,
134
- onClick: this.setFullScreen,
135
- className: "image-full-button"
136
- }, /*#__PURE__*/React.createElement("i", {
137
- className: 'iconfont icon-fullscreen'
138
- }), /*#__PURE__*/React.createElement("span", {
139
- className: 'image-tooltip'
140
- }, this.props.t('Full_screen')))) : /*#__PURE__*/React.createElement("img", {
141
- width: data.width || '',
142
- draggable: false,
143
- src: src,
144
- alt: ' ',
145
- ref: "image"
146
- }), children, this.state.isShowBigImage && this.renderImagePreviewer());
147
- return src ? dom : /*#__PURE__*/React.createElement("span", attributes, "Loading...");
148
- }
149
- }]);
150
- return Image;
151
- }(React.Component);
152
- var ImagePreviewer = /*#__PURE__*/function (_React$Component2) {
153
- _inherits(ImagePreviewer, _React$Component2);
154
- var _super2 = _createSuper(ImagePreviewer);
155
- function ImagePreviewer(props) {
156
- var _this2;
157
- _classCallCheck(this, ImagePreviewer);
158
- _this2 = _super2.call(this, props);
159
- _this2.getImageNodes = function (nodes) {
160
- var nodeIndex = 0;
161
- var list = [];
162
- while (nodes && nodeIndex <= nodes.length - 1) {
163
- var currentNode = nodes[nodeIndex];
164
- if (currentNode.type === 'image') {
165
- currentNode.data.src && list.push(currentNode.data.src);
166
- } else {
167
- list.push.apply(list, _toConsumableArray(_this2.getImageNodes(currentNode.children)));
168
- }
169
- nodeIndex++;
170
- }
171
- return list;
172
- };
173
- _this2.moveToPrevImage = function () {
174
- _this2.setState(function (prevState) {
175
- return {
176
- imageIndex: (prevState.imageIndex + _this2.images.length - 1) % _this2.images.length
177
- };
178
- });
179
- };
180
- _this2.moveToNextImage = function () {
181
- _this2.setState(function (prevState) {
182
- return {
183
- imageIndex: (prevState.imageIndex + 1) % _this2.images.length
184
- };
185
- });
186
- };
187
- var editor = EditorContext.getEditor();
188
- _this2.images = _this2.getImageNodes(editor.children);
189
- _this2.state = {
190
- imageIndex: _this2.images.findIndex(function (item) {
191
- return item === props.imageUrl;
192
- })
193
- };
194
- return _this2;
195
- }
196
- _createClass(ImagePreviewer, [{
197
- key: "render",
198
- value: function render() {
199
- var imageIndex = this.state.imageIndex;
200
- var imageItemsLength = this.images.length;
201
- var mainSrc = this.images[imageIndex];
202
- var imageTitle = '';
203
- try {
204
- imageTitle = mainSrc ? decodeURI(mainSrc.slice(mainSrc.lastIndexOf('/') + 1)) : '';
205
- } catch (error) {
206
- // eslint-disable-next-line no-console
207
- console.log(error);
208
- }
209
- var imageTitleEl = /*#__PURE__*/React.createElement("span", {
210
- className: "d-flex"
211
- }, /*#__PURE__*/React.createElement("span", {
212
- className: "text-truncate"
213
- }, imageTitle), /*#__PURE__*/React.createElement("span", {
214
- className: "flex-shrink-0"
215
- }, "(", imageIndex + 1, "/", this.images.length, ")"));
216
- return /*#__PURE__*/React.createElement(Lightbox, {
217
- wrapperClassName: "sf-editor-image-previewer",
218
- imageTitle: imageTitleEl,
219
- mainSrc: mainSrc,
220
- toolbarButtons: [],
221
- nextSrc: this.images[(imageIndex + 1) % imageItemsLength],
222
- prevSrc: this.images[(imageIndex + imageItemsLength - 1) % imageItemsLength],
223
- onCloseRequest: this.props.toggleImagePreviewer,
224
- onMovePrevRequest: this.moveToPrevImage,
225
- onMoveNextRequest: this.moveToNextImage,
226
- imagePadding: 70,
227
- reactModalStyle: {
228
- overlay: {
229
- zIndex: 1071
230
- }
231
- }
232
- });
233
- }
234
- }]);
235
- return ImagePreviewer;
236
- }(React.Component);
237
- export default withTranslation('seafile-editor')(Image);
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { useSelected } from '@seafile/slate-react';
3
- function Link(props) {
4
- var className = useSelected() ? 'seafile-ed-hovermenu-mouseclick' : null;
5
- return /*#__PURE__*/React.createElement("span", Object.assign({}, props.attributes, {
6
- className: 'virtual-link ' + className
7
- }), props.children);
8
- }
9
- export default Link;
@@ -1,144 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import _inherits from "@babel/runtime/helpers/esm/inherits";
4
- import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
- import React from 'react';
6
- import ReactDOM from 'react-dom';
7
- import '../../assets/css/table.css';
8
- var TableContainer = /*#__PURE__*/function (_React$PureComponent) {
9
- _inherits(TableContainer, _React$PureComponent);
10
- var _super = _createSuper(TableContainer);
11
- function TableContainer(props) {
12
- var _this;
13
- _classCallCheck(this, TableContainer);
14
- _this = _super.call(this, props);
15
- _this.clearSelectedCells = function () {
16
- _this.table.querySelectorAll('.selected-cell').forEach(function (selectedCell) {
17
- selectedCell.classList.remove('selected-cell', 'selected-cell-left', 'selected-cell-bottom', 'selected-cell-top', 'selected-cell-right');
18
- });
19
- };
20
- _this.selectTable = function (event) {
21
- _this.startRowIndex = _this.getTableElement(event.target, 'tr').rowIndex;
22
- _this.startColIndex = _this.getTableElement(event.target, 'td').cellIndex;
23
- window.document.addEventListener('mousemove', _this.selectCellsInTable);
24
- window.document.addEventListener('mouseup', _this.onMouseUp);
25
- };
26
- _this.getTableElement = function (node, type) {
27
- if (node.nodeName.toLowerCase() === type) return node;
28
- var element = node;
29
- while (element.nodeName.toLowerCase() !== type) {
30
- element = element.parentNode;
31
- }
32
- return element;
33
- };
34
- _this.selectCellsInTable = function (event) {
35
- if (event.target.nodeName === 'TBODY' || !_this.table.contains(event.target)) {
36
- // if event.target not in the table, clear the mouseMove event
37
- return;
38
- }
39
- _this.endRowIndex = _this.getTableElement(event.target, 'tr').rowIndex;
40
- _this.endColIndex = _this.getTableElement(event.target, 'td').cellIndex;
41
- var minRowIndex = Math.min(_this.startRowIndex, _this.endRowIndex),
42
- maxRowIndex = Math.max(_this.startRowIndex, _this.endRowIndex),
43
- minColIndex = Math.min(_this.startColIndex, _this.endColIndex),
44
- maxColIndex = Math.max(_this.startColIndex, _this.endColIndex);
45
- if (minRowIndex === maxRowIndex && minColIndex === maxColIndex) {
46
- return;
47
- }
48
-
49
- // collapse selection
50
- window.getSelection().collapseToEnd();
51
- _this.selectedRowRange = {
52
- min: minRowIndex,
53
- max: maxRowIndex
54
- };
55
- _this.selectedColRange = {
56
- min: minColIndex,
57
- max: maxColIndex
58
- };
59
- _this.hasSelectedRangeRendered = false;
60
- _this.forceUpdate();
61
- };
62
- _this.onMouseUp = function () {
63
- window.document.removeEventListener('mousemove', _this.selectCellsInTable);
64
- window.document.removeEventListener('mouseup', _this.onMouseUp);
65
- };
66
- _this.table = null;
67
- _this.selectedRowRange = {
68
- min: -1,
69
- max: -1
70
- };
71
- _this.selectedColRange = {
72
- min: -1,
73
- max: -1
74
- };
75
- _this.hasSelectedRangeRendered = false;
76
- return _this;
77
- }
78
- _createClass(TableContainer, [{
79
- key: "componentDidMount",
80
- value: function componentDidMount() {
81
- this.table = ReactDOM.findDOMNode(this);
82
- }
83
- }, {
84
- key: "componentDidUpdate",
85
- value: function componentDidUpdate() {
86
- var _this$selectedRowRang = this.selectedRowRange,
87
- minRowIndex = _this$selectedRowRang.min,
88
- maxRowIndex = _this$selectedRowRang.max;
89
- var _this$selectedColRang = this.selectedColRange,
90
- minColIndex = _this$selectedColRang.min,
91
- maxColIndex = _this$selectedColRang.max;
92
- if (minColIndex < 0 || minRowIndex < 0) {
93
- this.clearSelectedCells();
94
- return;
95
- }
96
- if (this.hasSelectedRangeRendered && this.selectedRowRange.min >= 0 && this.selectedColRange.min >= 0) {
97
- // if selected range is selected and has rendered reset selected range
98
- this.selectedColRange = {
99
- min: -1,
100
- max: -1
101
- };
102
- this.selectedColRange = {
103
- min: -1,
104
- max: -1
105
- };
106
- return;
107
- }
108
-
109
- // clear previous selected style before render
110
- this.clearSelectedCells();
111
- for (var rowIndex = minRowIndex; rowIndex <= maxRowIndex; rowIndex++) {
112
- var selectedRow = this.table.querySelectorAll('tr')[rowIndex];
113
- for (var colIndex = minColIndex; colIndex <= maxColIndex; colIndex++) {
114
- selectedRow.querySelectorAll('td')[colIndex].classList.add('selected-cell');
115
- if (rowIndex === minRowIndex) {
116
- selectedRow.querySelectorAll('td')[colIndex].classList.add('selected-cell-top');
117
- }
118
- if (colIndex === minColIndex) {
119
- selectedRow.querySelectorAll('td')[colIndex].classList.add('selected-cell-left');
120
- }
121
- if (colIndex === maxColIndex) {
122
- selectedRow.querySelectorAll('td')[colIndex].classList.add('selected-cell-right');
123
- }
124
- if (rowIndex === maxRowIndex) {
125
- selectedRow.querySelectorAll('td')[colIndex].classList.add('selected-cell-bottom');
126
- }
127
- }
128
- }
129
- this.hasSelectedRangeRendered = true;
130
- }
131
- }, {
132
- key: "render",
133
- value: function render() {
134
- var _this$props = this.props,
135
- attributes = _this$props.attributes,
136
- children = _this$props.children;
137
- return /*#__PURE__*/React.createElement("table", {
138
- onMouseDown: this.selectTable
139
- }, /*#__PURE__*/React.createElement("tbody", attributes, children));
140
- }
141
- }]);
142
- return TableContainer;
143
- }(React.PureComponent);
144
- export default TableContainer;
@@ -1,13 +0,0 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- var Blockquote = /*#__PURE__*/_createClass(function Blockquote(options) {
4
- _classCallCheck(this, Blockquote);
5
- this.type = options.type || 'blockquote';
6
- this.children = options.children || [{
7
- text: ''
8
- }];
9
- });
10
- var generateBlockquote = function generateBlockquote(options) {
11
- return Object.assign({}, new Blockquote(options));
12
- };
13
- export default generateBlockquote;
@@ -1,19 +0,0 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- var Column = /*#__PURE__*/_createClass(function Column(options) {
4
- _classCallCheck(this, Column);
5
- this.type = options.type || 'column';
6
- this.data = options.data || {
7
- key: '',
8
- name: '',
9
- bold: false,
10
- italic: false
11
- };
12
- this.children = options.children || [{
13
- text: ''
14
- }];
15
- });
16
- var generateColumn = function generateColumn(options) {
17
- return Object.assign({}, new Column(options));
18
- };
19
- export default generateColumn;
@@ -1,16 +0,0 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- var Image = /*#__PURE__*/_createClass(function Image(options) {
4
- _classCallCheck(this, Image);
5
- this.type = options.type || 'image';
6
- this.data = options.data || {
7
- src: ''
8
- };
9
- this.children = options.children || [{
10
- text: ''
11
- }];
12
- });
13
- var generateImage = function generateImage(options) {
14
- return Object.assign({}, new Image(options));
15
- };
16
- export default generateImage;
@@ -1,16 +0,0 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- var Link = /*#__PURE__*/_createClass(function Link(options) {
4
- _classCallCheck(this, Link);
5
- this.type = options.type || 'link';
6
- this.children = options.children || [{
7
- text: ''
8
- }];
9
- this.data = options.data || {
10
- href: ''
11
- };
12
- });
13
- var generateLinkElement = function generateLinkElement(options) {
14
- return Object.assign({}, new Link(options));
15
- };
16
- export default generateLinkElement;
@@ -1,57 +0,0 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- var Table = /*#__PURE__*/_createClass(function Table() {
4
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5
- _classCallCheck(this, Table);
6
- this.type = options.type || 'table';
7
- var rowCount = options.rowCount,
8
- columnCount = options.columnCount;
9
- var children = options.children;
10
- if (rowCount) {
11
- var list = new Array(rowCount).fill('');
12
- children = list.map(function () {
13
- return generateTableRow({
14
- columnCount: columnCount
15
- });
16
- });
17
- }
18
- this.children = children;
19
- });
20
- var TableRow = /*#__PURE__*/_createClass(function TableRow() {
21
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
- _classCallCheck(this, TableRow);
23
- this.type = options.type || 'table_row';
24
- var columnCount = options.columnCount;
25
- var children = options.children;
26
- if (columnCount) {
27
- var list = new Array(columnCount).fill('');
28
- children = list.map(function () {
29
- return generateTableCell();
30
- });
31
- }
32
- this.children = children;
33
- });
34
- var TableCell = /*#__PURE__*/_createClass(function TableCell() {
35
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
- _classCallCheck(this, TableCell);
37
- this.type = options.type || 'table_cell';
38
- this.children = options.children || [{
39
- type: 'paragraph',
40
- children: [{
41
- text: ''
42
- }]
43
- }];
44
- this.data = options.data || {
45
- align: 'left'
46
- };
47
- });
48
- var generateTable = function generateTable(options) {
49
- return Object.assign({}, new Table(options));
50
- };
51
- var generateTableRow = function generateTableRow(options) {
52
- return Object.assign({}, new TableRow(options));
53
- };
54
- var generateTableCell = function generateTableCell(options) {
55
- return Object.assign({}, new TableCell(options));
56
- };
57
- export { generateTable, generateTableRow, generateTableCell };
@@ -1,10 +0,0 @@
1
- import _createClass from "@babel/runtime/helpers/esm/createClass";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- var Text = /*#__PURE__*/_createClass(function Text(options) {
4
- _classCallCheck(this, Text);
5
- this.text = options.text || '';
6
- });
7
- var generateTextElement = function generateTextElement(options) {
8
- return Object.assign({}, new Text(options));
9
- };
10
- export default generateTextElement;
@@ -1,80 +0,0 @@
1
- import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
- import Prism from 'prismjs';
4
- export var decorationNode = function decorationNode(_ref) {
5
- var _ref2 = _slicedToArray(_ref, 2),
6
- node = _ref2[0],
7
- path = _ref2[1];
8
- if (node.type !== 'code_block') return [];
9
- var languageType = node.data.syntax;
10
- if (languageType === 'none') return [];
11
- var grammer = Prism.languages[languageType];
12
- var codeLines = node.children;
13
- if (!grammer) {
14
- return [];
15
- }
16
- var blockText = codeLines.map(function (codeLine) {
17
- return codeLine.children[0].text;
18
- }).join('\n');
19
- var tokens = Prism.tokenize(blockText, grammer);
20
- var decorations = [];
21
- var textLine = 0;
22
- var offset = 0;
23
- var _iterator = _createForOfIteratorHelper(tokens),
24
- _step;
25
- try {
26
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
27
- var token = _step.value;
28
- if (typeof token === 'string' && token.indexOf('\n') >= 0) {
29
- //the varialble enterNum is the num of \n in the token
30
- // get the number of \n buy split the token by '\n'
31
- var newlineTokens = token.split('\n');
32
- var enterNum = newlineTokens.length - 1;
33
- // get the next code_line which the content of is is not ' ' or null;
34
- textLine += enterNum;
35
- // get the initial offset of the code_line
36
- offset = newlineTokens.pop().length;
37
- continue;
38
- }
39
- if (typeof token === 'string') {
40
- var textPath = path.slice();
41
- textPath.push(textLine, 0);
42
- var decoration = {
43
- anchor: {
44
- path: textPath,
45
- offset: offset
46
- },
47
- focus: {
48
- path: textPath,
49
- offset: offset + token.length
50
- },
51
- type: 'text'
52
- };
53
- decorations.push(decoration);
54
- offset += token.length;
55
- } else if (typeof token.content === 'string') {
56
- var _textPath = path.slice();
57
- _textPath.push(textLine, 0);
58
- var _decoration = {
59
- anchor: {
60
- path: _textPath,
61
- offset: offset
62
- },
63
- focus: {
64
- path: _textPath,
65
- offset: offset + token.content.length
66
- },
67
- decoration: true,
68
- type: token.type
69
- };
70
- decorations.push(_decoration);
71
- offset += token.content.length;
72
- }
73
- }
74
- } catch (err) {
75
- _iterator.e(err);
76
- } finally {
77
- _iterator.f();
78
- }
79
- return decorations;
80
- };