@seafile/sdoc-editor 2.0.6 → 2.0.8-alpha.0

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 (46) hide show
  1. package/dist/basic-sdk/assets/css/dropdown-menu.css +14 -1
  2. package/dist/basic-sdk/extension/constants/element-type.js +2 -1
  3. package/dist/basic-sdk/extension/constants/index.js +8 -6
  4. package/dist/basic-sdk/extension/constants/menus-config.js +20 -0
  5. package/dist/basic-sdk/extension/plugins/chart/chart-edit-dialog/index.css +21 -0
  6. package/dist/basic-sdk/extension/plugins/chart/chart-edit-dialog/index.js +66 -0
  7. package/dist/basic-sdk/extension/plugins/chart/helpers.js +106 -0
  8. package/dist/basic-sdk/extension/plugins/chart/hover-menu/index.css +55 -0
  9. package/dist/basic-sdk/extension/plugins/chart/hover-menu/index.js +58 -0
  10. package/dist/basic-sdk/extension/plugins/chart/index.js +19 -0
  11. package/dist/basic-sdk/extension/plugins/chart/menu/index.js +31 -0
  12. package/dist/basic-sdk/extension/plugins/chart/plugin.js +26 -0
  13. package/dist/basic-sdk/extension/plugins/chart/render-elem.css +61 -0
  14. package/dist/basic-sdk/extension/plugins/chart/render-elem.js +155 -0
  15. package/dist/basic-sdk/extension/plugins/index.js +8 -1
  16. package/dist/basic-sdk/extension/plugins/multi-column/constants/index.js +1 -1
  17. package/dist/basic-sdk/extension/plugins/multi-column/helper.js +24 -7
  18. package/dist/basic-sdk/extension/plugins/multi-column/render/index.css +1 -3
  19. package/dist/basic-sdk/extension/plugins/multi-column/render/index.js +7 -2
  20. package/dist/basic-sdk/extension/plugins/multi-column/resize-handlers/index.js +2 -2
  21. package/dist/basic-sdk/extension/plugins/seatable-tables/menu/index.js +3 -6
  22. package/dist/basic-sdk/extension/plugins/seatable-tables/menu/seatable-list.js +35 -2
  23. package/dist/basic-sdk/extension/plugins/seatable-tables/op-menu/index.css +19 -4
  24. package/dist/basic-sdk/extension/plugins/seatable-tables/op-menu/index.js +39 -9
  25. package/dist/basic-sdk/extension/plugins/seatable-tables/render-element/seatable-table.js +2 -1
  26. package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/hide-column-setter/hide-column-popover.js +2 -4
  27. package/dist/basic-sdk/extension/plugins/table/helpers.js +1 -0
  28. package/dist/basic-sdk/extension/plugins/text-style/render-elem.js +2 -1
  29. package/dist/basic-sdk/extension/render/custom-element.js +5 -0
  30. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +2 -1
  31. package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +7 -0
  32. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +51 -1
  33. package/dist/basic-sdk/extension/toolbar/side-toolbar/index.js +116 -20
  34. package/dist/basic-sdk/utils/full-width-mode.js +1 -1
  35. package/dist/pages/document-plugin-editor.js +2 -0
  36. package/package.json +2 -1
  37. package/public/locales/cs/sdoc-editor.json +5 -1
  38. package/public/locales/de/sdoc-editor.json +64 -60
  39. package/public/locales/en/sdoc-editor.json +5 -1
  40. package/public/locales/es/sdoc-editor.json +5 -1
  41. package/public/locales/es_AR/sdoc-editor.json +5 -1
  42. package/public/locales/es_MX/sdoc-editor.json +5 -1
  43. package/public/locales/fr/sdoc-editor.json +238 -234
  44. package/public/locales/it/sdoc-editor.json +5 -1
  45. package/public/locales/ru/sdoc-editor.json +6 -2
  46. package/public/locales/zh_CN/sdoc-editor.json +4 -1
@@ -8,10 +8,23 @@
8
8
  background-color: #ffff;
9
9
  max-height: 300px;
10
10
  max-width: 200px;
11
- overflow: auto;
12
11
  padding: 8px 0px;
13
12
  }
14
13
 
14
+ .sdoc-dropdown-menu .sdoc-seatable-selected-table-list-wrapper .sdoc-seatable-list-search-wrapper {
15
+ padding: 12px;
16
+ }
17
+
18
+ .sdoc-dropdown-menu .sdoc-seatable-selected-table-list-wrapper .sdoc-seatable-list-search-wrapper>input {
19
+ font-size: 12px;
20
+ max-height: 30px;
21
+ }
22
+
23
+ .sdoc-dropdown-menu .sdoc-seatable-selected-table-list-wrapper .sdoc-seatable-list-wrapper {
24
+ max-height: 230px;
25
+ overflow-y: auto;
26
+ }
27
+
15
28
  .sdoc-dropdown-menu .sdoc-dropdown-menu-divider {
16
29
  width: 100%;
17
30
  height: 0;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WIKI_LINK = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SEATABLE_TABLE = exports.SEATABLE_COLUMN = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
6
+ exports.WIKI_LINK = exports.VIDEO_LINK = exports.VIDEO = exports.UNORDERED_LIST = exports.TWO_COLUMN = exports.TOP_LEVEL_TYPES = exports.TITLE = exports.THREE_COLUMN = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.SUBTITLE = exports.SEATABLE_TABLE = exports.SEATABLE_COLUMN = exports.SDOC_LINK = exports.QUICK_INSERT = exports.PARAGRAPH = exports.ORDERED_LIST = exports.MULTI_COLUMN = exports.MENTION_TEMP = exports.MENTION = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE_BLOCK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.GROUP = exports.FOUR_COLUMN = exports.FONT_SIZE_REDUCE = exports.FONT_SIZE_INCREASE = exports.FONT_SIZE = exports.FIVE_COLUMN = exports.FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.CHART = exports.CALL_OUT = exports.BLOCKQUOTE = exports.ASK_AI = void 0;
7
7
  const BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
8
8
  const TITLE = exports.TITLE = 'title';
9
9
  const SUBTITLE = exports.SUBTITLE = 'subtitle';
@@ -43,6 +43,7 @@ const MENTION_TEMP = exports.MENTION_TEMP = 'mention_temp';
43
43
  const FILE_LINK_INSET_INPUT_TEMP = exports.FILE_LINK_INSET_INPUT_TEMP = 'file_link_insert_input_temp';
44
44
  const QUICK_INSERT = exports.QUICK_INSERT = 'quick_insert';
45
45
  const VIDEO_LINK = exports.VIDEO_LINK = 'video_link';
46
+ const CHART = exports.CHART = 'chart';
46
47
  const SEATABLE_COLUMN = exports.SEATABLE_COLUMN = 'seatable_column';
47
48
  const SEATABLE_TABLE = exports.SEATABLE_TABLE = 'seatable_table';
48
49
  const ASK_AI = exports.ASK_AI = 'ask_ai';
@@ -23,6 +23,12 @@ Object.defineProperty(exports, "CALL_OUT", {
23
23
  return _elementType.CALL_OUT;
24
24
  }
25
25
  });
26
+ Object.defineProperty(exports, "CHART", {
27
+ enumerable: true,
28
+ get: function () {
29
+ return _elementType.CHART;
30
+ }
31
+ });
26
32
  Object.defineProperty(exports, "CHECK_LIST_ITEM", {
27
33
  enumerable: true,
28
34
  get: function () {
@@ -128,12 +134,6 @@ Object.defineProperty(exports, "FILE_LINK_INSET_INPUT_TEMP", {
128
134
  }
129
135
  });
130
136
  exports.FILE_TYPE = void 0;
131
- Object.defineProperty(exports, "FIVE_COLUMN", {
132
- enumerable: true,
133
- get: function () {
134
- return _elementType.FIVE_COLUMN;
135
- }
136
- });
137
137
  Object.defineProperty(exports, "FONT", {
138
138
  enumerable: true,
139
139
  get: function () {
@@ -276,6 +276,7 @@ Object.defineProperty(exports, "MULTI_COLUMN", {
276
276
  return _elementType.MULTI_COLUMN;
277
277
  }
278
278
  });
279
+ exports.MULTI_COLUMN_TYPE = void 0;
279
280
  Object.defineProperty(exports, "ORDERED_LIST", {
280
281
  enumerable: true,
281
282
  get: function () {
@@ -532,6 +533,7 @@ const INSERT_POSITION = exports.INSERT_POSITION = {
532
533
  };
533
534
  const LOCAL_IMAGE = exports.LOCAL_IMAGE = 'local-image';
534
535
  const LOCAL_VIDEO = exports.LOCAL_VIDEO = 'local-video';
536
+ const MULTI_COLUMN_TYPE = exports.MULTI_COLUMN_TYPE = [_elementType.TWO_COLUMN, _elementType.THREE_COLUMN, _elementType.FOUR_COLUMN];
535
537
  const LIST_TYPE_ARRAY = exports.LIST_TYPE_ARRAY = [_elementType.UNORDERED_LIST, _elementType.ORDERED_LIST];
536
538
  const LIST_ITEM_CORRELATION_TYPE = exports.LIST_ITEM_CORRELATION_TYPE = [_elementType.UNORDERED_LIST, _elementType.ORDERED_LIST, _elementType.LIST_ITEM];
537
539
  const LIST_ITEM_SUPPORTED_TRANSFORMATION = exports.LIST_ITEM_SUPPORTED_TRANSFORMATION = [_elementType.UNORDERED_LIST, _elementType.ORDERED_LIST, 'left', 'center', 'right', _elementType.BLOCKQUOTE];
@@ -233,6 +233,11 @@ const MENUS_CONFIG_MAP = exports.MENUS_CONFIG_MAP = {
233
233
  iconClass: 'sdocfont sdoc-seatable-table',
234
234
  type: _elementType.SEATABLE_TABLE,
235
235
  text: 'SeaTable_table'
236
+ },
237
+ [_elementType.CHART]: {
238
+ id: `sdoc_${_elementType.CHART}`,
239
+ iconClass: 'sdocfont sdoc-chart',
240
+ text: 'Insert_chart'
236
241
  }
237
242
  };
238
243
 
@@ -297,6 +302,21 @@ const SIDE_TRANSFORM_MENUS_CONFIG = exports.SIDE_TRANSFORM_MENUS_CONFIG = [{
297
302
  iconClass: 'sdocfont sdoc-callout',
298
303
  type: _elementType.CALL_OUT,
299
304
  text: 'Callout'
305
+ }, {
306
+ id: _elementType.TWO_COLUMN,
307
+ iconClass: 'sdocfont sdoc-multi-column',
308
+ type: _elementType.TWO_COLUMN,
309
+ text: 'Two_column'
310
+ }, {
311
+ id: _elementType.THREE_COLUMN,
312
+ iconClass: 'sdocfont sdoc-multi-column',
313
+ type: _elementType.THREE_COLUMN,
314
+ text: 'Three_column'
315
+ }, {
316
+ id: _elementType.FOUR_COLUMN,
317
+ iconClass: 'sdocfont sdoc-multi-column',
318
+ type: _elementType.FOUR_COLUMN,
319
+ text: 'Four_column'
300
320
  }];
301
321
  const SIDE_TRANSFORM_MENUS_SEARCH_MAP = exports.SIDE_TRANSFORM_MENUS_SEARCH_MAP = {
302
322
  [_elementType.PARAGRAPH]: 'Paragraph',
@@ -0,0 +1,21 @@
1
+ .sdoc-chart-edit-dialog {
2
+ max-width: 1100px;
3
+ width: 1100px;
4
+ height: calc(100% - 56px);
5
+ }
6
+
7
+ .sdoc-chart-edit-dialog .modal-content {
8
+ height: 100%;
9
+ }
10
+
11
+ .sdoc-chart-edit-dialog .modal-body {
12
+ padding: 0;
13
+ overflow: hidden;
14
+ display: flex;
15
+ }
16
+
17
+ .sdoc-chart-edit-dialog .sdoc-chart-fullscreen-view {
18
+ width: 100%;
19
+ height: 600px;
20
+ }
21
+
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _DTableModalHeader2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableModalHeader"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactstrap = require("reactstrap");
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _reactI18next = require("react-i18next");
14
+ var _seaChart = require("sea-chart");
15
+ var _context = _interopRequireDefault(require("../../../../../context"));
16
+ require("./index.css");
17
+ const ChartEditDialog = _ref => {
18
+ var _window, _window$app, _window$app$state, _window2, _window2$app, _window2$app$state;
19
+ let {
20
+ editor,
21
+ element,
22
+ api,
23
+ isFullScreen,
24
+ onCloseEditDialog,
25
+ t
26
+ } = _ref;
27
+ const [statItemData, setStatItemData] = (0, _react.useState)(element.statItem || {});
28
+ const onSettingChange = (0, _react.useCallback)(setting => {
29
+ const newStatItemData = {
30
+ ...statItemData,
31
+ ...setting
32
+ };
33
+ setStatItemData(newStatItemData);
34
+ }, [statItemData]);
35
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
36
+ className: "sdoc-chart-edit-dialog",
37
+ isOpen: true,
38
+ toggle: () => onCloseEditDialog(statItemData)
39
+ }, /*#__PURE__*/_react.default.createElement(_DTableModalHeader2.default, {
40
+ toggle: () => onCloseEditDialog(statItemData)
41
+ }, t(!isFullScreen ? 'Edit_chart' : 'Chart')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, {
42
+ className: (0, _classnames.default)({
43
+ 'sdoc-chart-fullscreen-view': isFullScreen
44
+ })
45
+ }, !isFullScreen && /*#__PURE__*/_react.default.createElement(_seaChart.Editor, {
46
+ chart: statItemData,
47
+ config: _context.default.getSettings(),
48
+ api: api,
49
+ tables: editor.tables || [],
50
+ collaborators: editor.collaborators || [],
51
+ departments: ((_window = window) === null || _window === void 0 ? void 0 : (_window$app = _window.app) === null || _window$app === void 0 ? void 0 : (_window$app$state = _window$app.state) === null || _window$app$state === void 0 ? void 0 : _window$app$state.departments) || [],
52
+ isCalculateByView: true,
53
+ isRenderByD3: true,
54
+ onChange: onSettingChange
55
+ }), isFullScreen && /*#__PURE__*/_react.default.createElement(_seaChart.View, {
56
+ chart: statItemData,
57
+ api: api,
58
+ config: _context.default.getSettings(),
59
+ tables: editor.tables,
60
+ collaborators: editor.collaborators || [],
61
+ departments: ((_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$app = _window2.app) === null || _window2$app === void 0 ? void 0 : (_window2$app$state = _window2$app.state) === null || _window2$app$state === void 0 ? void 0 : _window2$app$state.departments) || [],
62
+ isCalculateByView: true,
63
+ isRenderByD3: true
64
+ })));
65
+ };
66
+ var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(ChartEditDialog);
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isSelectedTable = exports.isInsertChartMenuDisabled = exports.isInit = exports.isInViewPort = exports.insertChart = exports.getChartDbMetaData = exports.generateChartNode = void 0;
8
+ var _slate = require("@seafile/slate");
9
+ var _seaChart = require("sea-chart");
10
+ var _context = _interopRequireDefault(require("../../../../context"));
11
+ var _core = require("../../core");
12
+ var _constants = require("../../constants");
13
+ const isInsertChartMenuDisabled = (editor, readonly) => {
14
+ if (readonly) return true;
15
+ const {
16
+ selection
17
+ } = editor;
18
+ if (selection === null) return true;
19
+ if (!_slate.Range.isCollapsed(selection)) return true;
20
+ const [match] = _slate.Editor.nodes(editor, {
21
+ match: n => {
22
+ let type = (0, _core.getNodeType)(n);
23
+ if (!type && (0, _core.isTextNode)(n) && n.id) {
24
+ const parentNode = (0, _core.getParentNode)(editor.children, n.id);
25
+ type = (0, _core.getNodeType)(parentNode);
26
+ }
27
+ if (type === _constants.CODE_BLOCK) return true;
28
+ if (type === _constants.TABLE) return true;
29
+ if (type.startsWith('header')) return true;
30
+ if (_slate.Editor.isVoid(editor, n)) return true;
31
+ return false;
32
+ },
33
+ universal: true
34
+ });
35
+ if (match) return true;
36
+ return false;
37
+ };
38
+ exports.isInsertChartMenuDisabled = isInsertChartMenuDisabled;
39
+ const generateChartNode = editor => {
40
+ const element = (0, _core.generateEmptyElement)(_constants.CHART);
41
+ const initConfig = {
42
+ option: {
43
+ id: element.id,
44
+ table_id: editor.tables[0]._id,
45
+ // Default first table
46
+ view_id: editor.tables[0].views[0]._id // Default first view
47
+ },
48
+ tables: []
49
+ };
50
+ const model = new _seaChart.ChartModel(initConfig.option, initConfig.tables);
51
+ return {
52
+ ...element,
53
+ statItem: {
54
+ ...model,
55
+ type: model.config.type
56
+ }
57
+ };
58
+ };
59
+ exports.generateChartNode = generateChartNode;
60
+ const insertChart = editor => {
61
+ const chartNode = generateChartNode(editor);
62
+ const path = _slate.Editor.path(editor, editor.selection);
63
+ _slate.Transforms.insertNodes(editor, chartNode, {
64
+ at: [path[0]]
65
+ });
66
+ };
67
+ exports.insertChart = insertChart;
68
+ const isInViewPort = element => {
69
+ const viewHeight = window.innerHeight || document.documentElement.clientHeight;
70
+ const {
71
+ top
72
+ } = element.getBoundingClientRect();
73
+ return top >= 0 && top <= viewHeight;
74
+ };
75
+ exports.isInViewPort = isInViewPort;
76
+ const getChartDbMetaData = async (statItem, dtableBases, sql) => {
77
+ const {
78
+ base_id
79
+ } = statItem;
80
+ const integrationConfig = dtableBases === null || dtableBases === void 0 ? void 0 : dtableBases.find(item => item.base_api_token === base_id);
81
+ if (integrationConfig) {
82
+ const dtableServer = await _context.default.getDtableServer(integrationConfig);
83
+ const res = await _context.default.getDbMetaData(dtableServer, sql);
84
+ return res;
85
+ }
86
+ };
87
+ exports.getChartDbMetaData = getChartDbMetaData;
88
+ const isInit = statItem => {
89
+ const {
90
+ base_id
91
+ } = statItem;
92
+ if (!base_id) {
93
+ return true;
94
+ }
95
+ return false;
96
+ };
97
+ exports.isInit = isInit;
98
+ const isSelectedTable = (statItem, dtableBases) => {
99
+ const {
100
+ base_id,
101
+ table_id,
102
+ table_name
103
+ } = statItem;
104
+ return base_id && table_id && table_name && (dtableBases === null || dtableBases === void 0 ? void 0 : dtableBases.length) > 0;
105
+ };
106
+ exports.isSelectedTable = isSelectedTable;
@@ -0,0 +1,55 @@
1
+ .sdoc-chart-hover-menu-container {
2
+ position: absolute;
3
+ height: 42px;
4
+ z-index: 101;
5
+ width: auto;
6
+ }
7
+
8
+ .sdoc-chart-hover-menu-container .hover-menu-container {
9
+ height: 36px;
10
+ padding: 7px 8px;
11
+ background-color: #fff;
12
+ display: flex;
13
+ justify-content: flex-start;
14
+ align-items: center;
15
+ border-radius: 3px;
16
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
17
+ border: 1px solid #e8e8e8;
18
+ }
19
+
20
+ .sdoc-chart-hover-menu-container .hover-menu-container > span:not(:last-of-type) {
21
+ padding-right: 6px;
22
+ border-right: 1px solid #e5e5e5;
23
+ }
24
+
25
+ .sdoc-chart-hover-menu-container .hover-menu-container .op-item {
26
+ position: relative;
27
+ font-size: 12px;
28
+ color: #212529;
29
+ padding: 0 5px;
30
+ border-radius: 2px;
31
+ min-width: 24px;
32
+ height: 24px;
33
+ display: inline-flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ }
37
+
38
+ .sdoc-chart-hover-menu-container .hover-menu-container .op-item:hover {
39
+ color: #212529;
40
+ text-decoration: none;
41
+ background: #f1f1f1;
42
+ }
43
+
44
+ .sdoc-chart-hover-menu-container .op-group-item:last-child .op-item {
45
+ margin-left: 8px;
46
+ }
47
+
48
+ .sdoc-chart-hover-menu-container .hover-menu-container .active {
49
+ background: #f1f1f1;
50
+ }
51
+
52
+ .sdoc-chart-hover-menu-container .hover-menu-container .icon-font {
53
+ font-size: 12px;
54
+ color: #999999;
55
+ }
@@ -0,0 +1,58 @@
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 _reactI18next = require("react-i18next");
11
+ var _commons = require("../../../commons");
12
+ var _tooltip = _interopRequireDefault(require("../../../../../components/tooltip"));
13
+ require("./index.css");
14
+ const ChartHoverMenu = _ref => {
15
+ let {
16
+ menuPosition,
17
+ onEditChart,
18
+ onFullscreen,
19
+ t
20
+ } = _ref;
21
+ const [isShowTooltip, setIsShowTooltip] = (0, _react.useState)(false);
22
+ (0, _react.useEffect)(() => {
23
+ setIsShowTooltip(true);
24
+ }, []);
25
+ return /*#__PURE__*/_react.default.createElement(_commons.ElementPopover, null, /*#__PURE__*/_react.default.createElement("div", {
26
+ className: "sdoc-chart-hover-menu-container",
27
+ style: menuPosition
28
+ }, /*#__PURE__*/_react.default.createElement("div", {
29
+ className: "hover-menu-container"
30
+ }, /*#__PURE__*/_react.default.createElement("span", {
31
+ className: "op-group-item"
32
+ }, /*#__PURE__*/_react.default.createElement("span", {
33
+ id: "sdoc_chart_edit",
34
+ role: "button",
35
+ className: "op-item",
36
+ onClick: onEditChart
37
+ }, /*#__PURE__*/_react.default.createElement("i", {
38
+ className: "sdocfont sdoc-rename icon-font"
39
+ }), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
40
+ target: "sdoc_chart_edit",
41
+ placement: "top",
42
+ fade: true
43
+ }, t('Edit_chart')))), /*#__PURE__*/_react.default.createElement("span", {
44
+ className: "op-group-item"
45
+ }, /*#__PURE__*/_react.default.createElement("span", {
46
+ id: "sdoc_chart_full_screen_mode",
47
+ role: "button",
48
+ className: "op-item",
49
+ onClick: onFullscreen
50
+ }, /*#__PURE__*/_react.default.createElement("i", {
51
+ className: "sdocfont sdoc-fullscreen icon-font"
52
+ }), isShowTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
53
+ target: "sdoc_chart_full_screen_mode",
54
+ placement: "top",
55
+ fade: true
56
+ }, t('Full_screen_mode')))))));
57
+ };
58
+ var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(ChartHoverMenu);
@@ -0,0 +1,19 @@
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 = void 0;
8
+ var _constants = require("../../constants");
9
+ var _menu = _interopRequireDefault(require("./menu"));
10
+ var _plugin = _interopRequireDefault(require("./plugin"));
11
+ var _renderElem = _interopRequireDefault(require("./render-elem"));
12
+ const ChartPlugin = {
13
+ type: _constants.CHART,
14
+ nodeType: 'element',
15
+ editorMenus: [_menu.default],
16
+ editorPlugin: _plugin.default,
17
+ renderElements: [_renderElem.default]
18
+ };
19
+ var _default = exports.default = ChartPlugin;
@@ -0,0 +1,31 @@
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 _helpers = require("../helpers");
11
+ var _constants = require("../../../constants");
12
+ var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
13
+ const ChartMenu = _ref => {
14
+ let {
15
+ editor,
16
+ readonly,
17
+ toggle
18
+ } = _ref;
19
+ const disabled = (0, _helpers.isInsertChartMenuDisabled)(editor, readonly);
20
+ const menuConfig = _constants.MENUS_CONFIG_MAP[_constants.CHART];
21
+ const onInsertChart = (0, _react.useCallback)(() => {
22
+ (0, _helpers.insertChart)(editor);
23
+ toggle && toggle();
24
+ }, [editor, toggle]);
25
+ return /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
26
+ disabled: disabled,
27
+ menuConfig: menuConfig,
28
+ onClick: onInsertChart
29
+ });
30
+ };
31
+ var _default = exports.default = ChartMenu;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _constants = require("../../constants");
8
+ const withChart = editor => {
9
+ const {
10
+ isVoid
11
+ } = editor;
12
+ const newEditor = editor;
13
+
14
+ // Rewrite isVoid
15
+ newEditor.isVoid = elem => {
16
+ const {
17
+ type
18
+ } = elem;
19
+ if (type === _constants.CHART) {
20
+ return true;
21
+ }
22
+ return isVoid(elem);
23
+ };
24
+ return newEditor;
25
+ };
26
+ var _default = exports.default = withChart;
@@ -0,0 +1,61 @@
1
+ .sdoc-chart-container {
2
+ width: 100%;
3
+ height: 300px;
4
+ padding: 8px;
5
+ cursor: pointer;
6
+ }
7
+
8
+ .sdoc-chart-container .sdoc-chart-view {
9
+ position: relative;
10
+ background-color: #f5f5f5;
11
+ width: 100%;
12
+ height: 100%;
13
+ padding: 10px;
14
+ }
15
+
16
+ .sdoc-chart-container .sdoc-chart-view .sdoc-chart-view-content {
17
+ width: 100%;
18
+ height: 100%;
19
+ }
20
+
21
+ .sdoc-chart-container .active {
22
+ box-shadow: 0 0 0 2px #007bff;
23
+ }
24
+
25
+ .sdoc-chart-container .active .sdoc-chart-view-rect {
26
+ display: inline-block;
27
+ width: 8px;
28
+ height: 8px;
29
+ background-color: #007bff;
30
+ }
31
+
32
+ .sdoc-chart-container .active .sdoc-chart-view-rect-lt {
33
+ position: absolute;
34
+ left: -5px;
35
+ top: -5px;
36
+ }
37
+
38
+ .sdoc-chart-container .active .sdoc-chart-view-rect-lb {
39
+ position: absolute;
40
+ left: -5px;
41
+ bottom: -5px;
42
+ }
43
+
44
+ .sdoc-chart-container .active .sdoc-chart-view-rect-rt {
45
+ position: absolute;
46
+ right: -5px;
47
+ top: -5px;
48
+ }
49
+
50
+ .sdoc-chart-container .active .sdoc-chart-view-rect-rb {
51
+ position: absolute;
52
+ right: -5px;
53
+ bottom: -5px;
54
+ }
55
+
56
+ .sdoc-chart-container .sdoc-chart-view .sdoc-chart-tip {
57
+ top: 50%;
58
+ left: 50%;
59
+ transform: translate(-50%, -50%);
60
+ position: absolute;
61
+ }