@seafile/sdoc-editor 0.1.39 → 0.1.41
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.
- package/dist/basic-sdk/assets/css/outline.css +1 -1
- package/dist/basic-sdk/extension/constants/element-type.js +1 -1
- package/dist/basic-sdk/extension/constants/index.js +26 -1
- package/dist/basic-sdk/extension/constants/keyboard.js +7 -0
- package/dist/basic-sdk/extension/core/queries/index.js +23 -0
- package/dist/basic-sdk/extension/menu/menu-item.js +7 -8
- package/dist/basic-sdk/extension/plugins/blockquote/menu/index.js +1 -1
- package/dist/basic-sdk/extension/plugins/blockquote/plugin.js +19 -2
- package/dist/basic-sdk/extension/plugins/check-list/helpers.js +7 -2
- package/dist/basic-sdk/extension/plugins/header/helpers.js +11 -5
- package/dist/basic-sdk/extension/plugins/header/menu/index.js +7 -3
- package/dist/basic-sdk/extension/plugins/header/menu/style.css +5 -1
- package/dist/basic-sdk/extension/plugins/image/helpers.js +9 -2
- package/dist/basic-sdk/extension/plugins/index.js +3 -2
- package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/index.css +7 -0
- package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/index.js +90 -0
- package/dist/basic-sdk/extension/plugins/table/helpers.js +81 -0
- package/dist/basic-sdk/extension/plugins/table/index.js +14 -0
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/common-menu.js +78 -0
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.css +7 -0
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.js +136 -0
- package/dist/basic-sdk/extension/plugins/table/menu/index.js +3 -0
- package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +60 -0
- package/dist/basic-sdk/extension/plugins/table/model.js +19 -0
- package/dist/basic-sdk/extension/plugins/table/number-input.js +28 -0
- package/dist/basic-sdk/extension/plugins/table/plugin.js +500 -0
- package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.css +57 -0
- package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +134 -0
- package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +32 -0
- package/dist/basic-sdk/extension/plugins/table/render/render-row.js +24 -0
- package/dist/basic-sdk/extension/plugins/table/render/render-table/index.css +30 -0
- package/dist/basic-sdk/extension/plugins/table/render/render-table/index.js +41 -0
- package/dist/basic-sdk/extension/plugins/table/render-elem.js +4 -0
- package/dist/basic-sdk/extension/plugins/text-style/helpers.js +1 -6
- package/dist/basic-sdk/extension/render/render-element.js +20 -2
- package/dist/basic-sdk/extension/toolbar/index.js +6 -1
- package/dist/basic-sdk/node-id/helpers.js +1 -1
- package/dist/basic-sdk/utils/event-handler.js +6 -0
- package/dist/basic-sdk/utils/object-utils.js +3 -0
- package/package.json +1 -1
- package/public/locales/en/sdoc-editor.json +4 -1
- package/public/locales/zh-CN/sdoc-editor.json +5 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
4
|
+
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
6
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
7
|
+
import React, { Component } from 'react';
|
|
8
|
+
import { withTranslation } from 'react-i18next';
|
|
9
|
+
import { MenuGroup, MenuItem } from '../../../../menu';
|
|
10
|
+
import CommonMenu from './common-menu';
|
|
11
|
+
import { TABLE_ELEMENT, MENUS_CONFIG_MAP, REMOVE_TABLE } from '../../../../constants';
|
|
12
|
+
import './index.css';
|
|
13
|
+
var ActiveTableMenu = /*#__PURE__*/function (_Component) {
|
|
14
|
+
_inherits(ActiveTableMenu, _Component);
|
|
15
|
+
var _super = _createSuper(ActiveTableMenu);
|
|
16
|
+
function ActiveTableMenu() {
|
|
17
|
+
var _this;
|
|
18
|
+
_classCallCheck(this, ActiveTableMenu);
|
|
19
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
20
|
+
args[_key] = arguments[_key];
|
|
21
|
+
}
|
|
22
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
23
|
+
_this.setTextAlignStyle = function (textAlign) {
|
|
24
|
+
var editor = _this.props.editor;
|
|
25
|
+
editor.setTextStyle({
|
|
26
|
+
textAlign: textAlign
|
|
27
|
+
});
|
|
28
|
+
_this.textAlignRef.hidePopover();
|
|
29
|
+
};
|
|
30
|
+
_this.insertTableElement = function (type) {
|
|
31
|
+
var editor = _this.props.editor;
|
|
32
|
+
editor.insertTableElement(type);
|
|
33
|
+
if (type === TABLE_ELEMENT.ROW) {
|
|
34
|
+
_this.tableRowRef.hidePopover();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
_this.tableColumnRef.hidePopover();
|
|
38
|
+
};
|
|
39
|
+
_this.removeTableElement = function (type) {
|
|
40
|
+
var editor = _this.props.editor;
|
|
41
|
+
editor.removeTableElement(type);
|
|
42
|
+
if (type === TABLE_ELEMENT.ROW) {
|
|
43
|
+
_this.tableRowRef.hidePopover();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
_this.tableColumnRef.hidePopover();
|
|
47
|
+
};
|
|
48
|
+
_this.removeTable = function () {
|
|
49
|
+
var editor = _this.props.editor;
|
|
50
|
+
editor.removeTableElement(TABLE_ELEMENT.TABLE);
|
|
51
|
+
};
|
|
52
|
+
_this.renderTextAlign = function () {
|
|
53
|
+
var t = _this.props.t;
|
|
54
|
+
return /*#__PURE__*/React.createElement(CommonMenu, {
|
|
55
|
+
id: "text-align",
|
|
56
|
+
iconClass: "iconfont icon-left-alignment mr-1",
|
|
57
|
+
ref: function ref(_ref) {
|
|
58
|
+
return _this.textAlignRef = _ref;
|
|
59
|
+
}
|
|
60
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
61
|
+
className: "dropdown-item",
|
|
62
|
+
onClick: _this.setTextAlignStyle.bind(_assertThisInitialized(_this), 'left')
|
|
63
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
64
|
+
className: "iconfont icon-left-alignment mr-2"
|
|
65
|
+
}), t('left')), /*#__PURE__*/React.createElement("button", {
|
|
66
|
+
className: "dropdown-item",
|
|
67
|
+
onClick: _this.setTextAlignStyle.bind(_assertThisInitialized(_this), 'center')
|
|
68
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
69
|
+
className: "iconfont icon-center-horizontally mr-2"
|
|
70
|
+
}), t('center')), /*#__PURE__*/React.createElement("button", {
|
|
71
|
+
className: "dropdown-item",
|
|
72
|
+
onClick: _this.setTextAlignStyle.bind(_assertThisInitialized(_this), 'right')
|
|
73
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
74
|
+
className: "iconfont icon-align-right mr-2"
|
|
75
|
+
}), t('right')));
|
|
76
|
+
};
|
|
77
|
+
_this.renderTableColumn = function () {
|
|
78
|
+
var t = _this.props.t;
|
|
79
|
+
return /*#__PURE__*/React.createElement(CommonMenu, {
|
|
80
|
+
id: "table-column",
|
|
81
|
+
iconClass: "iconfont icon-column mr-1",
|
|
82
|
+
ref: function ref(_ref2) {
|
|
83
|
+
return _this.tableColumnRef = _ref2;
|
|
84
|
+
}
|
|
85
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
86
|
+
className: "dropdown-item",
|
|
87
|
+
onClick: _this.insertTableElement.bind(_assertThisInitialized(_this), TABLE_ELEMENT.COLUMN)
|
|
88
|
+
}, t('Insert_Column')), /*#__PURE__*/React.createElement("button", {
|
|
89
|
+
className: "dropdown-item",
|
|
90
|
+
onClick: _this.removeTableElement.bind(_assertThisInitialized(_this), TABLE_ELEMENT.COLUMN)
|
|
91
|
+
}, t('Remove_Column')));
|
|
92
|
+
};
|
|
93
|
+
_this.renderTableRow = function () {
|
|
94
|
+
var t = _this.props.t;
|
|
95
|
+
return /*#__PURE__*/React.createElement(CommonMenu, {
|
|
96
|
+
id: "table-row",
|
|
97
|
+
iconClass: "iconfont icon-row mr-1",
|
|
98
|
+
ref: function ref(_ref3) {
|
|
99
|
+
return _this.tableRowRef = _ref3;
|
|
100
|
+
}
|
|
101
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
102
|
+
className: "dropdown-item",
|
|
103
|
+
onClick: _this.insertTableElement.bind(_assertThisInitialized(_this), TABLE_ELEMENT.ROW)
|
|
104
|
+
}, t('Insert_Row')), /*#__PURE__*/React.createElement("button", {
|
|
105
|
+
className: "dropdown-item",
|
|
106
|
+
onClick: _this.removeTableElement.bind(_assertThisInitialized(_this), TABLE_ELEMENT.ROW)
|
|
107
|
+
}, t('Remove_Row')));
|
|
108
|
+
};
|
|
109
|
+
return _this;
|
|
110
|
+
}
|
|
111
|
+
_createClass(ActiveTableMenu, [{
|
|
112
|
+
key: "render",
|
|
113
|
+
value: function render() {
|
|
114
|
+
var _this$props = this.props,
|
|
115
|
+
editor = _this$props.editor,
|
|
116
|
+
isRichEditor = _this$props.isRichEditor,
|
|
117
|
+
className = _this$props.className;
|
|
118
|
+
var isAllInTable = editor.isAllInTable && editor.isAllInTable();
|
|
119
|
+
if (!isAllInTable) return null;
|
|
120
|
+
var menuConfig = MENUS_CONFIG_MAP[REMOVE_TABLE];
|
|
121
|
+
var props = _objectSpread(_objectSpread({
|
|
122
|
+
isRichEditor: isRichEditor,
|
|
123
|
+
className: className,
|
|
124
|
+
disabled: false,
|
|
125
|
+
isActive: false
|
|
126
|
+
}, menuConfig), {}, {
|
|
127
|
+
onMouseDown: this.removeTable
|
|
128
|
+
});
|
|
129
|
+
return /*#__PURE__*/React.createElement(MenuGroup, {
|
|
130
|
+
className: "menu-group sdoc-table-menu-group"
|
|
131
|
+
}, this.renderTextAlign(), this.renderTableColumn(), this.renderTableRow(), /*#__PURE__*/React.createElement(MenuItem, props));
|
|
132
|
+
}
|
|
133
|
+
}]);
|
|
134
|
+
return ActiveTableMenu;
|
|
135
|
+
}(Component);
|
|
136
|
+
export default withTranslation('sdoc-editor')(ActiveTableMenu);
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
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 { insertTable, isTableMenuDisabled } from '../../helpers';
|
|
9
|
+
import { TABLE, MENUS_CONFIG_MAP } from '../../../../constants';
|
|
10
|
+
import { MenuItem } from '../../../../menu';
|
|
11
|
+
import TableSizePopover from '../../popover/table-size-popover';
|
|
12
|
+
var TableMenu = /*#__PURE__*/function (_React$Component) {
|
|
13
|
+
_inherits(TableMenu, _React$Component);
|
|
14
|
+
var _super = _createSuper(TableMenu);
|
|
15
|
+
function TableMenu() {
|
|
16
|
+
var _this;
|
|
17
|
+
_classCallCheck(this, TableMenu);
|
|
18
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
19
|
+
args[_key] = arguments[_key];
|
|
20
|
+
}
|
|
21
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
22
|
+
_this.isActive = function () {
|
|
23
|
+
return false;
|
|
24
|
+
};
|
|
25
|
+
_this.isDisabled = function () {
|
|
26
|
+
var editor = _this.props.editor;
|
|
27
|
+
return isTableMenuDisabled(editor);
|
|
28
|
+
};
|
|
29
|
+
_this.createTable = function (size) {
|
|
30
|
+
var editor = _this.props.editor;
|
|
31
|
+
insertTable(editor, size, _this.selection);
|
|
32
|
+
};
|
|
33
|
+
return _this;
|
|
34
|
+
}
|
|
35
|
+
_createClass(TableMenu, [{
|
|
36
|
+
key: "render",
|
|
37
|
+
value: function render() {
|
|
38
|
+
var _this$props = this.props,
|
|
39
|
+
isRichEditor = _this$props.isRichEditor,
|
|
40
|
+
className = _this$props.className;
|
|
41
|
+
var menuConfig = MENUS_CONFIG_MAP[TABLE];
|
|
42
|
+
var props = _objectSpread(_objectSpread({
|
|
43
|
+
isRichEditor: isRichEditor,
|
|
44
|
+
className: className
|
|
45
|
+
}, menuConfig), {}, {
|
|
46
|
+
disabled: this.isDisabled(),
|
|
47
|
+
isActive: this.isActive(),
|
|
48
|
+
onMouseDown: function onMouseDown() {}
|
|
49
|
+
});
|
|
50
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
51
|
+
className: "table-menu"
|
|
52
|
+
}, /*#__PURE__*/React.createElement(MenuItem, props)), /*#__PURE__*/React.createElement(TableSizePopover, {
|
|
53
|
+
target: menuConfig.id,
|
|
54
|
+
createTable: this.createTable
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
}]);
|
|
58
|
+
return TableMenu;
|
|
59
|
+
}(React.Component);
|
|
60
|
+
export default withTranslation('sdoc-editor')(TableMenu);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import { ELEMENT_TYPE } from '../../constants';
|
|
4
|
+
var Table = /*#__PURE__*/_createClass(function Table(options) {
|
|
5
|
+
_classCallCheck(this, Table);
|
|
6
|
+
this.type = options.type || ELEMENT_TYPE.TABLE;
|
|
7
|
+
this.children = options.children || [
|
|
8
|
+
// 1 x 1
|
|
9
|
+
{
|
|
10
|
+
type: ELEMENT_TYPE.TABLE_ROW,
|
|
11
|
+
children: [{
|
|
12
|
+
type: ELEMENT_TYPE.TABLE_CELL,
|
|
13
|
+
children: [{
|
|
14
|
+
text: ''
|
|
15
|
+
}]
|
|
16
|
+
}]
|
|
17
|
+
}];
|
|
18
|
+
});
|
|
19
|
+
export default Table;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Input } from 'reactstrap';
|
|
3
|
+
function NumberInput(props) {
|
|
4
|
+
var value = props.value,
|
|
5
|
+
onChange = props.onChange,
|
|
6
|
+
min = props.min,
|
|
7
|
+
step = props.step,
|
|
8
|
+
max = props.max,
|
|
9
|
+
readOnly = props.readOnly,
|
|
10
|
+
className = props.className;
|
|
11
|
+
return /*#__PURE__*/React.createElement(Input, {
|
|
12
|
+
type: "number",
|
|
13
|
+
className: className,
|
|
14
|
+
value: value || '0',
|
|
15
|
+
min: min,
|
|
16
|
+
step: step,
|
|
17
|
+
max: max,
|
|
18
|
+
readOnly: readOnly,
|
|
19
|
+
onChange: onChange
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
NumberInput.defaultProps = {
|
|
23
|
+
min: 0,
|
|
24
|
+
step: 1,
|
|
25
|
+
max: Infinity,
|
|
26
|
+
readOnly: false
|
|
27
|
+
};
|
|
28
|
+
export default NumberInput;
|