@seafile/sdoc-editor 1.0.39 → 1.0.41-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.
@@ -4,6 +4,8 @@
4
4
  }
5
5
 
6
6
  .sdoc-dropdown-menu .sdoc-seatable-selected-table-list-wrapper {
7
+ position: absolute;
8
+ background-color: #ffff;
7
9
  max-height: 300px;
8
10
  overflow: auto;
9
11
  }
@@ -17,7 +17,8 @@ const withCallout = editor => {
17
17
  insertFragment,
18
18
  deleteBackward,
19
19
  onHotKeyDown,
20
- insertData
20
+ insertData,
21
+ onCopy
21
22
  } = editor;
22
23
  const newEditor = editor;
23
24
  newEditor.deleteBackward = unit => {
@@ -105,6 +106,7 @@ const withCallout = editor => {
105
106
  if (getCalloutEntry(editor)) {
106
107
  event.stopPropagation();
107
108
  }
109
+ return onCopy(event);
108
110
  };
109
111
  return newEditor;
110
112
  };
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useCallback } from 'react';
1
+ import React, { useMemo, useCallback, useRef, useEffect, useState } from 'react';
2
2
  import { COLUMNS_ICON_CONFIG } from '../constants/column';
3
3
  import { insertSeaTableColumn, getColumnType } from '../helpers';
4
4
  import { COLUMN } from '../../../constants/element-type';
@@ -9,7 +9,21 @@ export default function ColumnListMenu(_ref) {
9
9
  editor,
10
10
  insertPosition
11
11
  } = _ref;
12
- const computedBottom = insertPosition ? '0px' : '';
12
+ const columnRef = useRef(null);
13
+ const [computedStyle, setComputedStyle] = useState({});
14
+ useEffect(() => {
15
+ if (insertPosition) {
16
+ setComputedStyle({
17
+ bottom: '0px'
18
+ });
19
+ }
20
+ if (!insertPosition && (columnRef === null || columnRef === void 0 ? void 0 : columnRef.current)) {
21
+ const centerPosition = parseInt(columnRef.current.getBoundingClientRect().height / 2);
22
+ setComputedStyle({
23
+ top: "-".concat(centerPosition, "px")
24
+ });
25
+ }
26
+ }, [insertPosition]);
13
27
  const columns = useMemo(() => {
14
28
  if (!editor.columns) return [];
15
29
  return editor.columns.filter(column => !NOT_SUPPORT_COLUMN_TYPES.includes(column.type));
@@ -32,10 +46,9 @@ export default function ColumnListMenu(_ref) {
32
46
  insertSeaTableColumn(editor, active, option, insertPosition);
33
47
  }, [editor, insertPosition]);
34
48
  return /*#__PURE__*/React.createElement("div", {
49
+ ref: columnRef,
35
50
  className: "column-list-menu",
36
- style: {
37
- bottom: computedBottom
38
- }
51
+ style: computedStyle
39
52
  }, options.map(option => {
40
53
  return /*#__PURE__*/React.createElement("div", {
41
54
  key: option.value,
@@ -1,8 +1,9 @@
1
- import React, { useCallback } from 'react';
1
+ import React, { useCallback, useRef } from 'react';
2
2
  import { UncontrolledPopover } from 'reactstrap';
3
3
  import { insertSeaTableTable, isInsertSeaTableTableDisabled } from '../helpers';
4
4
  import { MENUS_CONFIG_MAP, SEATABLE_TABLE } from '../../../constants';
5
5
  import DropdownMenuItem from '../../../commons/dropdown-menu-item';
6
+ import SeaTableList from './seatable-list';
6
7
  import './index.css';
7
8
  const SeaTableTableMenu = _ref => {
8
9
  let {
@@ -10,10 +11,9 @@ const SeaTableTableMenu = _ref => {
10
11
  readonly,
11
12
  insertPosition
12
13
  } = _ref;
14
+ const seatableRef = useRef(null);
13
15
  const disabled = isInsertSeaTableTableDisabled(editor, readonly);
14
16
  const menuConfig = MENUS_CONFIG_MAP[SEATABLE_TABLE];
15
- const computedBottom = insertPosition ? '0px' : '';
16
- const tables = editor.tables;
17
17
  const onViewClick = useCallback(item => {
18
18
  insertSeaTableTable(editor, item, insertPosition);
19
19
  }, [editor, insertPosition]);
@@ -29,18 +29,13 @@ const SeaTableTableMenu = _ref => {
29
29
  className: "sdoc-menu-popover sdoc-dropdown-menu sdoc-sub-dropdown-menu",
30
30
  placement: "right-start",
31
31
  hideArrow: true,
32
- fade: false
33
- }, /*#__PURE__*/React.createElement("div", {
34
- className: "sdoc-dropdown-menu-container sdoc-seatable-selected-table-list-wrapper",
35
- style: {
36
- bottom: computedBottom
37
- }
38
- }, tables.map(item => {
39
- return /*#__PURE__*/React.createElement("div", {
40
- key: item._id,
41
- className: "sdoc-dropdown-menu-item",
42
- onClick: () => onViewClick(item)
43
- }, item.name);
44
- })))));
32
+ fade: false,
33
+ ref: seatableRef
34
+ }, /*#__PURE__*/React.createElement(SeaTableList, {
35
+ editor: editor,
36
+ readonly: readonly,
37
+ insertPosition: insertPosition,
38
+ onViewClick: onViewClick
39
+ }))));
45
40
  };
46
41
  export default SeaTableTableMenu;
@@ -0,0 +1,37 @@
1
+ import React, { useState, useEffect, useRef } from 'react';
2
+ const SeaTableList = _ref => {
3
+ let {
4
+ editor,
5
+ insertPosition,
6
+ onViewClick
7
+ } = _ref;
8
+ const seatableRef = useRef(null);
9
+ const [computedStyle, setComputedStyle] = useState({});
10
+ const tables = editor.tables;
11
+ useEffect(() => {
12
+ if (insertPosition) {
13
+ setComputedStyle({
14
+ bottom: '0px'
15
+ });
16
+ }
17
+ if (!insertPosition && (seatableRef === null || seatableRef === void 0 ? void 0 : seatableRef.current)) {
18
+ const centerPosition = parseInt(seatableRef.current.getBoundingClientRect().height / 2);
19
+ // 30 is seatable menu height
20
+ setComputedStyle({
21
+ top: "-".concat(centerPosition + 30, "px")
22
+ });
23
+ }
24
+ }, [insertPosition]);
25
+ return /*#__PURE__*/React.createElement("div", {
26
+ ref: seatableRef,
27
+ className: "sdoc-dropdown-menu-container sdoc-seatable-selected-table-list-wrapper",
28
+ style: computedStyle
29
+ }, tables.map(item => {
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ key: item._id,
32
+ className: "sdoc-dropdown-menu-item",
33
+ onClick: () => onViewClick(item)
34
+ }, item.name);
35
+ }));
36
+ };
37
+ export default SeaTableList;
@@ -10,7 +10,7 @@ import { ORDERED_LIST, UNORDERED_LIST, PARAGRAPH, CHECK_LIST_ITEM, IMAGE, TABLE,
10
10
  import { EMPTY_SELECTED_RANGE } from '../../plugins/table/constants';
11
11
  import { unwrapCallout, wrapCallout } from '../../plugins/callout/helper';
12
12
  import { convertToCheck } from '../../plugins/check-list/helpers';
13
- import { getHeaderHeight } from '../../../utils/dom-utils';
13
+ import { WIKI_EDITOR } from '../../../constants';
14
14
  export const onSetNodeType = (editor, element, type) => {
15
15
  if (!type) return;
16
16
  if (type === CALL_OUT) {
@@ -92,18 +92,29 @@ export const onDeleteNode = (editor, element) => {
92
92
  at: path
93
93
  });
94
94
  };
95
- export const getDomTopHeight = (editor, dom, slateNode) => {
96
- const rect = dom.getBoundingClientRect();
95
+ export const getTopValue = (editor, dom, containerDom, slateNode) => {
96
+ if (!dom) return 0;
97
+ if (!containerDom) return 0;
98
+ const currentRect = dom.getBoundingClientRect();
99
+ let containerRect = containerDom.getBoundingClientRect();
100
+ let headerHeight = 0;
101
+ if (editor.editorType === WIKI_EDITOR) {
102
+ const titleDom = document.getElementById('wiki-page-title');
103
+ const coverDom = document.getElementById('wiki-page-cover');
104
+ const titleHeight = (titleDom === null || titleDom === void 0 ? void 0 : titleDom.getBoundingClientRect().height) || 0;
105
+ const coverHeight = (coverDom === null || coverDom === void 0 ? void 0 : coverDom.getBoundingClientRect().height) || 0;
106
+ headerHeight = titleHeight + coverHeight;
107
+ }
108
+ const top = currentRect.y - containerRect.y + containerDom.scrollTop;
97
109
  let offsetY = 0;
98
- const iconOffset = 4; // ensure icon is in the middle of the line
99
- const headerHeight = getHeaderHeight(editor);
100
- const paddingTop = parseFloat(window.getComputedStyle(dom).getPropertyValue('padding-top'));
110
+ let paddingTop = parseFloat(window.getComputedStyle(dom).getPropertyValue('padding-top'));
101
111
  const lineHeight = parseFloat(window.getComputedStyle(dom).getPropertyValue('line-height'));
102
- const disToolBarHeight = 12; // side toolbar icon is 12 px
112
+ const disToolBarHeight = 21; // side toolbar icon line-height is 21
103
113
  if (ADD_POSITION_OFFSET_TYPE.includes(slateNode.type)) {
114
+ paddingTop = slateNode.type === CHECK_LIST_ITEM ? 5 : paddingTop;
104
115
  offsetY = lineHeight / 2 + paddingTop - disToolBarHeight / 2;
105
116
  }
106
- return rect.y - headerHeight + offsetY - iconOffset;
117
+ return top + offsetY - headerHeight;
107
118
  };
108
119
  export const isVoidNode = node => {
109
120
  if (!node) return true;
@@ -6,7 +6,7 @@ import SideMenu from './side-menu';
6
6
  import EventBus from '../../../utils/event-bus';
7
7
  import { useScrollContext } from '../../../hooks/use-scroll-context';
8
8
  import { focusEditor } from '../../core';
9
- import { getDomTopHeight, setSelection, isVoidNode, getNodeEntry, isBlockquote, isList, onWrapListItem } from './helpers';
9
+ import { setSelection, isVoidNode, getNodeEntry, isBlockquote, isList, onWrapListItem, getTopValue } from './helpers';
10
10
  import { insertImageFiles } from '../../plugins/image/helpers';
11
11
  import { INTERNAL_EVENT, WIKI_EDITOR } from '../../../constants';
12
12
  import { CODE_BLOCK, TABLE, BLOCKQUOTE, CHECK_LIST_ITEM, CALL_OUT, TABLE_DRAG_KEY } from '../../constants';
@@ -72,10 +72,9 @@ const SideToolbar = () => {
72
72
  dom = dom.parentNode;
73
73
  }
74
74
  const node = ReactEditor.toSlateNode(editor, dom);
75
- const top = getDomTopHeight(editor, dom, node);
76
75
  const isEmpty = isVoidNode(node);
77
- const offsetY = !editor.editorType ? -1 : 0; // editorType is undefined means sdoc editor
78
- const topValue = top + scrollRef.current.scrollTop + offsetY;
76
+ const containerDom = scrollRef.current;
77
+ const topValue = getTopValue(editor, dom, containerDom, node);
79
78
  if (topValue !== sidePosition.top) setIsMoving(true);
80
79
  let left = 20;
81
80
  if (editor.editorType === WIKI_EDITOR) {
@@ -1,4 +1,3 @@
1
- import { WIKI_EDITOR, DOCUMENT_PLUGIN_EDITOR } from '../constants';
2
1
  export const getDomHeight = dom => {
3
2
  const styles = window.getComputedStyle(dom);
4
3
  const rect = dom.getBoundingClientRect();
@@ -45,25 +44,4 @@ export const getCursorPosition = function () {
45
44
  x: x,
46
45
  y: y
47
46
  };
48
- };
49
-
50
- /**
51
- * Get the height of the header of the editor
52
- * @param {Editor} editor
53
- * @returns {Number} height of the header
54
- */
55
- export const getHeaderHeight = editor => {
56
- const {
57
- editorType
58
- } = editor;
59
- switch (editorType) {
60
- case WIKI_EDITOR:
61
- return (editor === null || editor === void 0 ? void 0 : editor.getHeaderHeight()) || 0;
62
- case DOCUMENT_PLUGIN_EDITOR:
63
- return 67 + 48 + 49 + 37;
64
- default:
65
- // sdoc-editor-page-header height = 56
66
- // sdoc-editor-toolbar height = 37
67
- return 56 + 37;
68
- }
69
47
  };
@@ -66,7 +66,7 @@ class CollaboratorsOperation extends React.PureComponent {
66
66
  collaborators
67
67
  } = this.state;
68
68
  return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
69
- className: "op-item",
69
+ className: "op-item collaborators-op-item",
70
70
  id: "collaborators"
71
71
  }, /*#__PURE__*/React.createElement("i", {
72
72
  className: "sdocfont sdoc-user mr-1"
@@ -1,7 +1,7 @@
1
1
  .sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle {
2
2
  width: 66px;
3
- height: 30px;
4
- border-radius: 15px;
3
+ height: 28px;
4
+ border-radius: 14px;
5
5
  background-color: #F0F0F0;
6
6
  display: flex;
7
7
  align-items: center;
@@ -11,7 +11,7 @@
11
11
 
12
12
  .sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle:hover {
13
13
  cursor: pointer;
14
- color: #333;
14
+ background-color: #E4E4E4;
15
15
  }
16
16
 
17
17
  .sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle .sdoc-revise {
@@ -1,5 +1,5 @@
1
1
  .sdoc-revisions-count {
2
- height: 30px;
2
+ height: 28px;
3
3
  width: fit-content;
4
4
  border: 1px solid #E5E5E5;
5
5
  border-radius: 3px;
@@ -4,21 +4,29 @@
4
4
  }
5
5
 
6
6
  .doc-ops .op-item {
7
- margin-left: 1rem;
7
+ margin-left: 10px;
8
8
  display: flex;
9
9
  align-items: center;
10
+ justify-content: center;
10
11
  position: relative;
11
12
  cursor: pointer;
13
+ width: 28px;
14
+ height: 28px;
15
+ border-radius: 3px;
16
+ }
17
+
18
+ .doc-ops .collaborators-op-item {
19
+ margin-left: 14px;
12
20
  }
13
21
 
14
22
  .doc-ops .op-item .sdocfont {
15
- font-size: 18px;
23
+ font-size: 16px;
16
24
  color: #666;
17
25
  cursor: pointer;
18
26
  }
19
27
 
20
- .doc-ops .op-item .sdocfont:hover {
21
- color: #333;
28
+ .doc-ops .op-item:hover {
29
+ background-color: #EFEFEF;
22
30
  cursor: pointer;
23
31
  }
24
32
 
@@ -14,7 +14,6 @@ const SdocWikiEditor = _ref => {
14
14
  document,
15
15
  docUuid,
16
16
  isWikiReadOnly,
17
- getHeaderHeight,
18
17
  scrollRef
19
18
  } = _ref;
20
19
  context.initApi();
@@ -37,7 +36,6 @@ const SdocWikiEditor = _ref => {
37
36
  newEditor.cursors = cursors || {};
38
37
  newEditor.width = PAGE_EDIT_AREA_WIDTH; // default width
39
38
  newEditor.editorType = WIKI_EDITOR;
40
- newEditor.getHeaderHeight = getHeaderHeight;
41
39
  return newEditor;
42
40
 
43
41
  // eslint-disable-next-line react-hooks/exhaustive-deps
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "1.0.39",
3
+ "version": "1.0.41-alpha.0",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",
@@ -212,11 +212,11 @@
212
212
 
213
213
  <glyph glyph-name="sdoc-more-options" unicode="&#58945;" d="M518.4 624C464 624 416 672 416 729.6S464 832 518.4 832s102.4-48 102.4-102.4-44.8-105.6-102.4-105.6z m0-342.4c-54.4 0-102.4 44.8-102.4 102.4s48 102.4 102.4 102.4 102.4-48 102.4-102.4-44.8-102.4-102.4-102.4z m0-345.6c-54.4 0-102.4 48-102.4 102.4s48 102.4 102.4 102.4 102.4-48 102.4-102.4S576-64 518.4-64z" horiz-adv-x="1024" />
214
214
 
215
- <glyph glyph-name="sdoc-comments" unicode="&#58946;" d="M960 896c35.2 0 64-28.8 64-64v-736c0-35.2-28.8-64-64-64h-198.4l-16-121.6c-3.2-16-12.8-28.8-25.6-35.2-6.4-3.2-9.6-3.2-16-3.2-9.6 0-19.2 3.2-28.8 9.6L505.6 32H64c-35.2 0-64 28.8-64 64V832C0 867.2 28.8 896 64 896h896z m-96-128H160c-19.2 0-32-12.8-32-32v-544c0-19.2 12.8-32 32-32h361.6c9.6 0 22.4-3.2 28.8-9.6l124.8-102.4 9.6 76.8c3.2 22.4 22.4 38.4 41.6 35.2H864c19.2 0 32 12.8 32 32V736c0 19.2-12.8 32-32 32z m-112-352c9.6 0 16-6.4 16-16v-96c0-9.6-6.4-16-16-16h-480c-9.6 0-16 6.4-16 16v96c0 9.6 6.4 16 16 16h480z m0 224c9.6 0 16-6.4 16-16v-96c0-9.6-6.4-16-16-16h-480c-9.6 0-16 6.4-16 16v96c0 9.6 6.4 16 16 16h480z" horiz-adv-x="1024" />
215
+ <glyph glyph-name="sdoc-comments" unicode="&#58946;" d="M928 864c35.2 0 64-28.8 64-64v-672c0-35.2-28.8-64-64-64h-166.4l-16-121.6c-3.2-16-12.8-28.8-25.6-35.2-6.4-3.2-9.6-3.2-16-3.2-9.6 0-19.2 3.2-28.8 9.6L505.6 64H96c-35.2 0-64 28.8-64 64V800c0 35.2 28.8 64 64 64h832z m-64-96H160c-19.2 0-32-12.8-32-32v-544c0-19.2 12.8-32 32-32h361.6c9.6 0 22.4-3.2 28.8-9.6l124.8-102.4 9.6 76.8c3.2 22.4 22.4 38.4 41.6 35.2H864c19.2 0 32 12.8 32 32V736c0 19.2-12.8 32-32 32z m-112-352c9.6 0 16-6.4 16-16v-64c0-9.6-6.4-16-16-16h-480c-9.6 0-16 6.4-16 16v64c0 9.6 6.4 16 16 16h480z m0 224c9.6 0 16-6.4 16-16v-64c0-9.6-6.4-16-16-16h-480c-9.6 0-16 6.4-16 16v64c0 9.6 6.4 16 16 16h480z" horiz-adv-x="1024" />
216
216
 
217
217
  <glyph glyph-name="sdoc-right-slide" unicode="&#58882;" d="M806.4 438.4L336 812.8c-54.4 44.8-144 9.6-144-54.4v-748.8c0-64 86.4-99.2 144-54.4l470.4 374.4c35.2 28.8 35.2 80 0 108.8z" horiz-adv-x="1024" />
218
218
 
219
- <glyph glyph-name="sdoc-revise" unicode="&#58943;" d="M812.8-28.8c0-9.6-3.2-19.2-9.6-25.6-6.4-6.4-16-9.6-25.6-9.6h-275.2c-9.6 0-19.2 3.2-25.6 9.6-6.4 6.4-9.6 16-9.6 25.6v19.2c0 9.6 3.2 19.2 9.6 25.6 6.4 6.4 16 9.6 25.6 9.6h272c19.2 0 35.2-16 35.2-35.2l3.2-19.2z m-432 70.4c-67.2-38.4-115.2-64-169.6-92.8-38.4-12.8-70.4-25.6-96 0-25.6 25.6-16 64-3.2 102.4 25.6 60.8 54.4 121.6 86.4 179.2L633.6 691.2l182.4-192-435.2-457.6zM921.6 608l-38.4-41.6-182.4 192L736 803.2c35.2 38.4 96 41.6 134.4 6.4l6.4-6.4L928 748.8c41.6-41.6 38.4-92.8-6.4-140.8z" horiz-adv-x="1024" />
219
+ <glyph glyph-name="sdoc-revise" unicode="&#58943;" d="M752 0c25.6 0 48-22.4 48-48s-22.4-48-48-48h-320c-25.6 0-48 22.4-48 48s22.4 48 48 48h320z m44.8 841.6L928 710.4c32-32 32-83.2 0-112L336 0l-265.6-19.2 16 262.4L681.6 841.6c28.8 28.8 86.4 28.8 115.2 0z m-204.8-227.2L182.4 201.6l-6.4-115.2 118.4 9.6L704 505.6l-112 108.8z m147.2 147.2l-80-80 108.8-108.8 80 80-108.8 108.8z" horiz-adv-x="1024" />
220
220
 
221
221
  <glyph glyph-name="sdoc-starred" unicode="&#58941;" d="M995.2 412.8c54.4 54.4 25.6 153.6-51.2 163.2l-192 28.8c-28.8 3.2-57.6 25.6-70.4 54.4l-86.4 182.4C579.2 876.8 544 896 512 896s-67.2-19.2-83.2-54.4l-86.4-182.4c-12.8-28.8-38.4-48-70.4-51.2l-192-28.8C3.2 566.4-25.6 470.4 28.8 416l140.8-140.8c22.4-22.4 32-54.4 25.6-86.4l-32-201.6c-9.6-64 38.4-112 92.8-112 12.8 0 28.8 3.2 41.6 12.8l172.8 96c12.8 6.4 28.8 9.6 41.6 9.6 16 0 28.8-3.2 41.6-9.6l172.8-96c12.8-6.4 28.8-12.8 41.6-12.8 54.4 0 102.4 51.2 92.8 112l-32 201.6c-6.4 32 3.2 64 25.6 86.4l140.8 137.6z" horiz-adv-x="1024" />
222
222
 
@@ -240,11 +240,11 @@
240
240
 
241
241
  <glyph glyph-name="sdoc-menu" unicode="&#58908;" d="M64 137.6h896V0H64v137.6zM64 768h896v-137.6H64V768z m0-313.6h896v-137.6H64v137.6z" horiz-adv-x="1024" />
242
242
 
243
- <glyph glyph-name="sdoc-share" unicode="&#58914;" d="M662.4 681.6c0 83.2 67.2 150.4 150.4 150.4S960 764.8 960 681.6s-67.2-150.4-150.4-150.4-147.2 70.4-147.2 150.4z m-291.2-179.2l246.4 124.8c6.4-25.6 16-48 32-67.2l-246.4-124.8c-3.2 25.6-16 48-32 67.2zM64 384c0 83.2 67.2 150.4 150.4 150.4s150.4-67.2 150.4-150.4-67.2-150.4-150.4-150.4S64 300.8 64 384z m307.2-118.4c16 19.2 25.6 41.6 32 67.2l246.4-124.8c-16-19.2-25.6-41.6-32-67.2l-246.4 124.8z m291.2-179.2c0 83.2 67.2 150.4 150.4 150.4s150.4-67.2 150.4-150.4-70.4-150.4-153.6-150.4-147.2 67.2-147.2 150.4z" horiz-adv-x="1024" />
243
+ <glyph glyph-name="sdoc-share" unicode="&#58914;" d="M800 832c-70.4 0-128-54.4-128-128s57.6-128 128-128 128 54.4 128 128-57.6 128-128 128zM224 512c-70.4 0-128-54.4-128-128s57.6-128 128-128 128 54.4 128 128-57.6 128-128 128z m576-320c-70.4 0-128-54.4-128-128s57.6-128 128-128 128 54.4 128 128-60.8 128-128 128zM374.4 531.2l217.6 134.4L640 582.4 422.4 448l-48 83.2z m32-192l246.4-147.2-48-83.2-246.4 147.2 48 83.2z" horiz-adv-x="1024" />
244
244
 
245
245
  <glyph glyph-name="sdoc-table-of-content" unicode="&#58920;" d="M64 800h512c35.2 0 64-28.8 64-64s-28.8-64-64-64H64C28.8 672 0 700.8 0 736s28.8 64 64 64z m934.4-444.8l-12.8-12.8-172.8-172.8c-25.6-25.6-64-25.6-89.6 0-25.6 25.6-25.6 64 0 89.6l134.4 134.4-134.4 134.4c-25.6 25.6-25.6 64 0 89.6 25.6 25.6 64 25.6 89.6 0l172.8-172.8 9.6-9.6c12.8-12.8 19.2-25.6 19.2-41.6v-3.2c0-12.8-9.6-28.8-16-35.2zM64 448h800c35.2 0 64-28.8 64-64s-28.8-64-64-64H64c-35.2 0-64 28.8-64 64s28.8 64 64 64z m0-352h512c35.2 0 64-28.8 64-64s-28.8-64-64-64H64c-35.2 0-64 28.8-64 64s28.8 64 64 64z" horiz-adv-x="1024" />
246
246
 
247
- <glyph glyph-name="sdoc-user" unicode="&#58921;" d="M915.2-54.4c-32-28.8-70.4-41.6-124.8-41.6H236.8c-48 0-89.6 12.8-124.8 41.6S64 16 64 64c0 22.4-3.2 83.2 9.6 137.6 6.4 28.8 16 86.4 60.8 147.2 9.6 12.8 54.4 51.2 73.6 60.8 25.6 6.4 48 12.8 73.6 12.8 3.2 0 12.8-3.2 28.8-12.8 12.8-9.6 28.8-16 44.8-32 16-9.6 38.4-22.4 67.2-32 28.8-9.6 57.6-12.8 83.2-12.8 28.8 0 57.6 3.2 83.2 12.8 28.8 9.6 48 16 67.2 32 16 9.6 32 22.4 44.8 32 12.8 9.6 22.4 12.8 28.8 12.8 25.6 0 48-3.2 70.4-12.8 22.4-6.4 64-44.8 80-60.8 28.8-35.2 51.2-102.4 60.8-147.2 19.2-51.2 19.2-115.2 19.2-137.6 0-48-12.8-89.6-44.8-118.4zM758.4 627.2c0-67.2-25.6-121.6-70.4-169.6-44.8-44.8-105.6-70.4-172.8-70.4s-124.8 25.6-172.8 70.4-70.4 105.6-70.4 169.6c0 67.2 25.6 121.6 70.4 169.6S451.2 864 515.2 864c67.2 0 124.8-25.6 172.8-70.4 44.8-44.8 70.4-102.4 70.4-166.4z" horiz-adv-x="1024" />
247
+ <glyph glyph-name="sdoc-user" unicode="&#58921;" d="M825.6 0H195.2c-32 0-60.8 32-44.8 64 60.8 140.8 198.4 224 361.6 224s304-80 361.6-224c12.8-32-12.8-64-48-64M316.8 576c0 105.6 86.4 192 195.2 192s195.2-86.4 195.2-192-86.4-192-195.2-192-195.2 86.4-195.2 192m672-556.8c-35.2 163.2-147.2 278.4-294.4 332.8 76.8 60.8 121.6 160 105.6 268.8-19.2 124.8-124.8 227.2-256 240C368 883.2 214.4 745.6 214.4 576c0-89.6 41.6-169.6 112-224-144-54.4-256-169.6-291.2-332.8-12.8-60.8 35.2-115.2 96-115.2h761.6c64 0 112 54.4 96 115.2" horiz-adv-x="1024" />
248
248
 
249
249
  </font>
250
250
  </defs>
@@ -1,11 +1,11 @@
1
1
  @font-face {
2
2
  font-family: "sdocfont"; /* Project id 4097705 */
3
- src: url('./sdoc-editor-font/iconfont.eot?t=1721201136436'); /* IE9 */
4
- src: url('./sdoc-editor-font/iconfont.eot?t=1721201136436#iefix') format('embedded-opentype'), /* IE6-IE8 */
5
- url('./sdoc-editor-font/iconfont.woff2?t=1721201136436') format('woff2'),
6
- url('./sdoc-editor-font/iconfont.woff?t=1721201136436') format('woff'),
7
- url('./sdoc-editor-font/iconfont.ttf?t=1721201136436') format('truetype'),
8
- url('./sdoc-editor-font/iconfont.svg?t=1721201136436#sdocfont') format('svg');
3
+ src: url('./sdoc-editor-font/iconfont.eot?t=1722915152576'); /* IE9 */
4
+ src: url('./sdoc-editor-font/iconfont.eot?t=1722915152576#iefix') format('embedded-opentype'), /* IE6-IE8 */
5
+ url('./sdoc-editor-font/iconfont.woff2?t=1722915152576') format('woff2'),
6
+ url('./sdoc-editor-font/iconfont.woff?t=1722915152576') format('woff'),
7
+ url('./sdoc-editor-font/iconfont.ttf?t=1722915152576') format('truetype'),
8
+ url('./sdoc-editor-font/iconfont.svg?t=1722915152576#sdocfont') format('svg');
9
9
  }
10
10
 
11
11
  .sdocfont {