@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.
Files changed (42) hide show
  1. package/dist/basic-sdk/assets/css/outline.css +1 -1
  2. package/dist/basic-sdk/extension/constants/element-type.js +1 -1
  3. package/dist/basic-sdk/extension/constants/index.js +26 -1
  4. package/dist/basic-sdk/extension/constants/keyboard.js +7 -0
  5. package/dist/basic-sdk/extension/core/queries/index.js +23 -0
  6. package/dist/basic-sdk/extension/menu/menu-item.js +7 -8
  7. package/dist/basic-sdk/extension/plugins/blockquote/menu/index.js +1 -1
  8. package/dist/basic-sdk/extension/plugins/blockquote/plugin.js +19 -2
  9. package/dist/basic-sdk/extension/plugins/check-list/helpers.js +7 -2
  10. package/dist/basic-sdk/extension/plugins/header/helpers.js +11 -5
  11. package/dist/basic-sdk/extension/plugins/header/menu/index.js +7 -3
  12. package/dist/basic-sdk/extension/plugins/header/menu/style.css +5 -1
  13. package/dist/basic-sdk/extension/plugins/image/helpers.js +9 -2
  14. package/dist/basic-sdk/extension/plugins/index.js +3 -2
  15. package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/index.css +7 -0
  16. package/dist/basic-sdk/extension/plugins/table/dialog/custom-table-size-dialog/index.js +90 -0
  17. package/dist/basic-sdk/extension/plugins/table/helpers.js +81 -0
  18. package/dist/basic-sdk/extension/plugins/table/index.js +14 -0
  19. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/common-menu.js +78 -0
  20. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.css +7 -0
  21. package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/index.js +136 -0
  22. package/dist/basic-sdk/extension/plugins/table/menu/index.js +3 -0
  23. package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +60 -0
  24. package/dist/basic-sdk/extension/plugins/table/model.js +19 -0
  25. package/dist/basic-sdk/extension/plugins/table/number-input.js +28 -0
  26. package/dist/basic-sdk/extension/plugins/table/plugin.js +500 -0
  27. package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.css +57 -0
  28. package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +134 -0
  29. package/dist/basic-sdk/extension/plugins/table/render/render-cell.js +32 -0
  30. package/dist/basic-sdk/extension/plugins/table/render/render-row.js +24 -0
  31. package/dist/basic-sdk/extension/plugins/table/render/render-table/index.css +30 -0
  32. package/dist/basic-sdk/extension/plugins/table/render/render-table/index.js +41 -0
  33. package/dist/basic-sdk/extension/plugins/table/render-elem.js +4 -0
  34. package/dist/basic-sdk/extension/plugins/text-style/helpers.js +1 -6
  35. package/dist/basic-sdk/extension/render/render-element.js +20 -2
  36. package/dist/basic-sdk/extension/toolbar/index.js +6 -1
  37. package/dist/basic-sdk/node-id/helpers.js +1 -1
  38. package/dist/basic-sdk/utils/event-handler.js +6 -0
  39. package/dist/basic-sdk/utils/object-utils.js +3 -0
  40. package/package.json +1 -1
  41. package/public/locales/en/sdoc-editor.json +4 -1
  42. 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,3 @@
1
+ import TableMenu from './table-menu';
2
+ import ActiveTableMenu from './active-table-menu';
3
+ export { TableMenu, 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;