@seafile/sdoc-editor 2.0.78 → 2.0.79
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/assets/css/plugin-editor.css +4 -0
- package/dist/basic-sdk/comment/components/comment-item-wrapper.js +2 -0
- package/dist/basic-sdk/constants/index.js +1 -3
- package/dist/basic-sdk/extension/commons/select-file-dialog/helpers.js +23 -5
- package/dist/basic-sdk/extension/commons/select-file-dialog/local-files/index.js +5 -7
- package/dist/basic-sdk/extension/commons/wiki-file-insert-dialog/index.js +3 -4
- package/dist/basic-sdk/extension/constants/index.js +17 -1
- package/dist/basic-sdk/extension/plugins/ai/ai-module/helpers.js +3 -1
- package/dist/basic-sdk/extension/plugins/file-link/helpers.js +1 -1
- package/dist/basic-sdk/extension/plugins/file-link/render-elem.css +8 -0
- package/dist/basic-sdk/extension/plugins/file-link/render-elem.js +13 -5
- package/dist/basic-sdk/extension/plugins/image/helpers.js +3 -3
- package/dist/basic-sdk/extension/plugins/search-replace/popover/replace-all-confirm-modal.js +9 -3
- package/dist/basic-sdk/index.js +59 -0
- package/dist/components/doc-info/index.js +1 -1
- package/dist/components/doc-operations/more-operations.js +12 -15
- package/dist/components/doc-operations/plugins-operations.js +3 -4
- package/dist/components/doc-operations/presentation-operation/index.js +1 -2
- package/dist/components/doc-operations/revision-operations/changes-count/index.js +2 -3
- package/dist/components/doc-operations/revision-operations/index.js +24 -26
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js +2 -2
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.js +2 -2
- package/dist/components/doc-operations/revision-operations/view-changes/index.js +10 -9
- package/dist/{pages → components/error-boundary}/error-page.js +2 -2
- package/dist/layout/layout.js +9 -9
- package/dist/pages/published-revision-viewer.js +1 -1
- package/dist/pages/sdoc-wiki-editor.js +1 -1
- package/dist/pages/simple-editor.js +1 -1
- package/dist/pages/simple-viewer.js +1 -1
- package/dist/pages/wiki-viewer.js +1 -1
- package/dist/utils/index.js +1 -4
- package/package.json +1 -1
- package/dist/components/copy-image-error-svg/index.js +0 -64
- package/dist/utils/base64-to-unit8array.js +0 -21
- package/dist/utils/hotkey.js +0 -32
- package/dist/utils/is-punctuation-mark.js +0 -50
- /package/dist/{basic-sdk/assets → assets}/images/sdoc-freezed.png +0 -0
- /package/dist/{assets/css → components/error-boundary}/error-page.css +0 -0
- /package/dist/{pages/error-boundary.js → components/error-boundary/index.js} +0 -0
|
@@ -68,6 +68,7 @@ const CommentItemWrapper = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
68
68
|
}
|
|
69
69
|
});
|
|
70
70
|
closeComment && closeComment();
|
|
71
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
72
|
}, [comment.detail, dispatch, editor]);
|
|
72
73
|
const updateComment = (0, _react.useCallback)(async (commentId, newComment) => {
|
|
73
74
|
await _context.default.updateComment(commentId, newComment);
|
|
@@ -149,6 +150,7 @@ const CommentItemWrapper = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
149
150
|
updateScrollPosition && updateScrollPosition();
|
|
150
151
|
}, 100);
|
|
151
152
|
}
|
|
153
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
152
154
|
}, [comment, commentsDetail, dispatch, editor, isClickedContextComment, setIsClickedContextComment, setIsCommentPanelVisible, updateScrollPosition]);
|
|
153
155
|
const insertReply = (0, _react.useCallback)(async (commentId, replies) => {
|
|
154
156
|
const elementId = (0, _helper.getPrimaryElementId)(comment.detail);
|
|
@@ -25,7 +25,7 @@ Object.defineProperty(exports, "PLUGIN_DISPLAY_TYPE", {
|
|
|
25
25
|
return _plugin.PLUGIN_DISPLAY_TYPE;
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
-
exports.Z_INDEX = exports.WIKI_OUTLINE = exports.WIKI_EDITOR_EDIT_AREA_WIDTH = exports.WIKI_EDITOR = exports.SDOC_STORAGE = exports.
|
|
28
|
+
exports.Z_INDEX = exports.WIKI_OUTLINE = exports.WIKI_EDITOR_EDIT_AREA_WIDTH = exports.WIKI_EDITOR = exports.SDOC_STORAGE = exports.REBASE_TYPES = exports.REBASE_TYPE = exports.REBASE_ORIGIN = exports.REBASE_MARK_KEY = exports.REBASE_MARKS = void 0;
|
|
29
29
|
var _keyCodes = _interopRequireDefault(require("./key-codes"));
|
|
30
30
|
var _plugin = require("./plugin");
|
|
31
31
|
var _Z_INDEX = _interopRequireWildcard(require("./z-index"));
|
|
@@ -76,8 +76,6 @@ const INTERNAL_EVENT = exports.INTERNAL_EVENT = {
|
|
|
76
76
|
CREATE_WIKI_PAGE: 'create_wiki_page',
|
|
77
77
|
IMAGE_COLUMN_TOGGLE: 'Image_column_toggle'
|
|
78
78
|
};
|
|
79
|
-
const REVISION_DIFF_KEY = exports.REVISION_DIFF_KEY = 'diff';
|
|
80
|
-
const REVISION_DIFF_VALUE = exports.REVISION_DIFF_VALUE = '1';
|
|
81
79
|
const PAGE_EDIT_AREA_WIDTH = exports.PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
|
|
82
80
|
const COMMENT_EDITOR_EDIT_AREA_WIDTH = exports.COMMENT_EDITOR_EDIT_AREA_WIDTH = 364;
|
|
83
81
|
const WIKI_EDITOR_EDIT_AREA_WIDTH = exports.WIKI_EDITOR_EDIT_AREA_WIDTH = 714;
|
|
@@ -4,8 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.parcelFileTypeIcon = exports.getSdocFileIcon = exports.getFileTypeIcon = exports.addDataToTree = void 0;
|
|
8
8
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
9
|
+
var _constants = require("../../constants");
|
|
9
10
|
const addDataToTree = (treeData, indexId, childrenData, path) => {
|
|
10
11
|
for (let i = 0; i < treeData.length; i++) {
|
|
11
12
|
var _treeData$i;
|
|
@@ -29,8 +30,25 @@ const getSdocFileIcon = () => {
|
|
|
29
30
|
return `${server}/media/img/file/256/sdoc.png`;
|
|
30
31
|
};
|
|
31
32
|
exports.getSdocFileIcon = getSdocFileIcon;
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
|
|
33
|
+
const getFileTypeIcon = fileType => {
|
|
34
|
+
const imgResource = ['css', 'draw', 'excel', 'md', 'music', 'pdf', 'pic', 'ppt', 'psd', 'sdoc', 'txt', 'video', 'zip', 'word'];
|
|
35
|
+
if (imgResource.includes(fileType)) {
|
|
36
|
+
const server = _context.default.getSetting('serviceUrl');
|
|
37
|
+
return `${server}/media/img/file/256/${fileType}.png`;
|
|
38
|
+
} else {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.getFileTypeIcon = getFileTypeIcon;
|
|
43
|
+
const parcelFileTypeIcon = fileName => {
|
|
44
|
+
var _Object$entries$find;
|
|
45
|
+
const newFileType = fileName.split('.').pop();
|
|
46
|
+
const fileExtType = (_Object$entries$find = Object.entries(_constants.FILEEXT_TYPE).find(_ref => {
|
|
47
|
+
let [, extensions] = _ref;
|
|
48
|
+
return extensions.includes(newFileType);
|
|
49
|
+
})) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0];
|
|
50
|
+
const fileTypeResult = fileExtType ? _constants.FILEEXT_TYPE_MAP[fileExtType] : newFileType;
|
|
51
|
+
const fileTypeIcon = getFileTypeIcon(fileTypeResult);
|
|
52
|
+
return fileTypeIcon;
|
|
35
53
|
};
|
|
36
|
-
exports.
|
|
54
|
+
exports.parcelFileTypeIcon = parcelFileTypeIcon;
|
|
@@ -125,6 +125,8 @@ const LocalFiles = _ref => {
|
|
|
125
125
|
indexId,
|
|
126
126
|
name
|
|
127
127
|
} = item;
|
|
128
|
+
// Get file type icon
|
|
129
|
+
const fileTypeIcon = (0, _helpers.parcelFileTypeIcon)(name);
|
|
128
130
|
const result = (_item$fullpath = item.fullpath) === null || _item$fullpath === void 0 ? void 0 : _item$fullpath.split('/').filter(Boolean);
|
|
129
131
|
item.fullpath && result.pop();
|
|
130
132
|
const folderPath = item.fullpath && result.join('/');
|
|
@@ -166,15 +168,11 @@ const LocalFiles = _ref => {
|
|
|
166
168
|
className: "sdoc-file-icon-container"
|
|
167
169
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
168
170
|
className: (0, _classnames.default)('sdoc-file-icon', {
|
|
169
|
-
'sdocfont sdoc-link-file':
|
|
171
|
+
'sdocfont sdoc-link-file': !fileTypeIcon
|
|
170
172
|
})
|
|
171
|
-
}),
|
|
173
|
+
}), fileTypeIcon && /*#__PURE__*/_react.default.createElement("img", {
|
|
172
174
|
className: "sdoc-file-img",
|
|
173
|
-
src:
|
|
174
|
-
alt: ""
|
|
175
|
-
}), fileType === 'video' && /*#__PURE__*/_react.default.createElement("img", {
|
|
176
|
-
className: "video-file-img",
|
|
177
|
-
src: (0, _helpers.getVideoFileIcon)(),
|
|
175
|
+
src: fileTypeIcon,
|
|
178
176
|
alt: ""
|
|
179
177
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
180
178
|
className: "sdoc-file-name"
|
|
@@ -12,8 +12,7 @@ var _slate = require("@seafile/slate");
|
|
|
12
12
|
var _slateReact = require("@seafile/slate-react");
|
|
13
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
14
|
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
|
15
|
-
var _constants = require("
|
|
16
|
-
var _constants2 = require("../../../constants");
|
|
15
|
+
var _constants = require("../../../constants");
|
|
17
16
|
var _commonUtils = require("../../../utils/common-utils");
|
|
18
17
|
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
19
18
|
var _localStorageUtils = _interopRequireDefault(require("../../../utils/local-storage-utils"));
|
|
@@ -137,7 +136,7 @@ const WikiFileLinkInsertDialog = _ref => {
|
|
|
137
136
|
document.addEventListener('click', onClick);
|
|
138
137
|
document.addEventListener('keydown', onKeydown);
|
|
139
138
|
sdocScrollContainer.addEventListener('scroll', onScroll);
|
|
140
|
-
const unsubscribeCloseDialog = eventBus.subscribe(
|
|
139
|
+
const unsubscribeCloseDialog = eventBus.subscribe(_constants.INTERNAL_EVENT.CLOSE_FILE_INSET_DIALOG, closeDialog);
|
|
141
140
|
return () => {
|
|
142
141
|
sdocScrollContainer.removeEventListener('scroll', onScroll);
|
|
143
142
|
document.removeEventListener('click', onClick);
|
|
@@ -212,7 +211,7 @@ const WikiFileLinkInsertDialog = _ref => {
|
|
|
212
211
|
(0, _helpers.removeTempInput)(editor, element);
|
|
213
212
|
const eventBus = _eventBus.default.getInstance();
|
|
214
213
|
const createName = newFileName.trim() || t('New_page');
|
|
215
|
-
eventBus.dispatch(_constants.
|
|
214
|
+
eventBus.dispatch(_constants.INTERNAL_EVENT.CREATE_WIKI_PAGE, {
|
|
216
215
|
newFileName: createName
|
|
217
216
|
});
|
|
218
217
|
}, [editor, element, newFileName, t]);
|
|
@@ -114,7 +114,7 @@ Object.defineProperty(exports, "DIFF_TYPE", {
|
|
|
114
114
|
return _diffView.DIFF_TYPE;
|
|
115
115
|
}
|
|
116
116
|
});
|
|
117
|
-
exports.ELEMENT_TYPE = void 0;
|
|
117
|
+
exports.FILEEXT_TYPE_MAP = exports.FILEEXT_TYPE = exports.ELEMENT_TYPE = void 0;
|
|
118
118
|
Object.defineProperty(exports, "FILE_LINK", {
|
|
119
119
|
enumerable: true,
|
|
120
120
|
get: function () {
|
|
@@ -525,6 +525,22 @@ const FILE_TYPE = exports.FILE_TYPE = {
|
|
|
525
525
|
[_elementType.SDOC_LINK]: 'sdoc',
|
|
526
526
|
[_elementType.VIDEO]: 'video'
|
|
527
527
|
};
|
|
528
|
+
const FILEEXT_TYPE = exports.FILEEXT_TYPE = {
|
|
529
|
+
VIDEO: ['mp4', 'ogv', 'webm', 'mov'],
|
|
530
|
+
MUSIC: ['mp3', 'oga', 'ogg', 'wav', 'flac', 'opus'],
|
|
531
|
+
SPREADSHEET: ['xls', 'xlsx', 'ods', 'fods'],
|
|
532
|
+
MARKDOWN: ['markdown', 'md'],
|
|
533
|
+
EXCALIDRAW: ['exdraw'],
|
|
534
|
+
DOCUMENT: ['doc', 'docx', 'docxf', 'oform', 'ppt', 'pptx', 'odt', 'fodt', 'odp', 'fodp', 'odg']
|
|
535
|
+
};
|
|
536
|
+
const FILEEXT_TYPE_MAP = exports.FILEEXT_TYPE_MAP = {
|
|
537
|
+
VIDEO: 'video',
|
|
538
|
+
MUSIC: 'music',
|
|
539
|
+
SPREADSHEET: 'excel',
|
|
540
|
+
MARKDOWN: 'md',
|
|
541
|
+
EXCALIDRAW: 'draw',
|
|
542
|
+
DOCUMENT: 'word'
|
|
543
|
+
};
|
|
528
544
|
const SUPPORTED_SIDE_OPERATION_TYPE = exports.SUPPORTED_SIDE_OPERATION_TYPE = [_elementType.PARAGRAPH, _elementType.SUBTITLE, _elementType.HEADER1, _elementType.HEADER2, _elementType.HEADER3, _elementType.HEADER4, _elementType.HEADER5, _elementType.HEADER6, _elementType.CHECK_LIST_ITEM, _elementType.CODE_BLOCK, _elementType.TABLE, _elementType.BLOCKQUOTE, _elementType.CALL_OUT, _elementType.IMAGE_BLOCK, _elementType.VIDEO];
|
|
529
545
|
const MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MOUSE_ENTER_EVENT_DISABLED_MAP = {
|
|
530
546
|
[_elementType.PARAGRAPH]: [_elementType.CALL_OUT],
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.removeMarks = exports.markdownTableRenderer = exports.insertHtmlTransferredNodes = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
9
|
var _slate = require("@seafile/slate");
|
|
8
10
|
var _constants = require("../../../constants");
|
|
9
11
|
var _core = require("../../../core");
|
|
@@ -28,7 +30,7 @@ const removeMarks = editor => {
|
|
|
28
30
|
exports.removeMarks = removeMarks;
|
|
29
31
|
const markdownTableRenderer = searchResult => {
|
|
30
32
|
if (!searchResult) return '';
|
|
31
|
-
return /*#__PURE__*/
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
32
34
|
className: "md-rendered-html",
|
|
33
35
|
dangerouslySetInnerHTML: {
|
|
34
36
|
__html: searchResult
|
|
@@ -34,7 +34,7 @@ const generateFileNode = (uuid, text) => {
|
|
|
34
34
|
type: _constants.FILE_LINK,
|
|
35
35
|
doc_uuid: uuid,
|
|
36
36
|
title: text,
|
|
37
|
-
display_type: _constants.INSERT_FILE_DISPLAY_TYPE[
|
|
37
|
+
display_type: _constants.INSERT_FILE_DISPLAY_TYPE[1],
|
|
38
38
|
children: [{
|
|
39
39
|
id: _slugid.default.nice(),
|
|
40
40
|
text: text || ''
|
|
@@ -31,6 +31,14 @@
|
|
|
31
31
|
transform: translateY(-50%);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
.sdoc-file-link-render .sdoc-file-link-icon .file-link-img {
|
|
35
|
+
width: 20px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.sdoc-file-card-link .sdoc-file-link-icon .file-link-img {
|
|
39
|
+
width: 28px;
|
|
40
|
+
}
|
|
41
|
+
|
|
34
42
|
.sdoc-file-card-link .sdoc-file-text-link {
|
|
35
43
|
position: absolute;
|
|
36
44
|
left: 42px;
|
|
@@ -10,9 +10,10 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _slateReact = require("@seafile/slate-react");
|
|
11
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
12
12
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
13
|
+
var _helpers = require("../../commons/select-file-dialog/helpers");
|
|
13
14
|
var _constants = require("../../constants");
|
|
14
15
|
var _constants2 = require("./constants");
|
|
15
|
-
var
|
|
16
|
+
var _helpers2 = require("./helpers");
|
|
16
17
|
var _hoverMenu = _interopRequireDefault(require("./hover-menu"));
|
|
17
18
|
require("./render-elem.css");
|
|
18
19
|
const FileLink = _ref => {
|
|
@@ -28,6 +29,9 @@ const FileLink = _ref => {
|
|
|
28
29
|
const [isShowInsertHoverMenu, setIsShowInsertHoverMenu] = (0, _react.useState)(false);
|
|
29
30
|
const [menuPosition, setMenuPosition] = (0, _react.useState)({});
|
|
30
31
|
const isSelected = (0, _slateReact.useSelected)();
|
|
32
|
+
|
|
33
|
+
// Get file type icon
|
|
34
|
+
const fileTypeIcon = (0, _helpers.parcelFileTypeIcon)(element.title);
|
|
31
35
|
const registerEventHandle = (0, _react.useCallback)(() => {
|
|
32
36
|
document.addEventListener('click', onHideInsertHoverMenu);
|
|
33
37
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -79,7 +83,7 @@ const FileLink = _ref => {
|
|
|
79
83
|
}, [isShowInsertHoverMenu]);
|
|
80
84
|
const onClickFile = (0, _react.useCallback)(e => {
|
|
81
85
|
if (readOnly) {
|
|
82
|
-
window.open((0,
|
|
86
|
+
window.open((0, _helpers2.getUrl)(element.doc_uuid));
|
|
83
87
|
return;
|
|
84
88
|
}
|
|
85
89
|
if (isShowInsertHoverMenu) {
|
|
@@ -99,7 +103,7 @@ const FileLink = _ref => {
|
|
|
99
103
|
}, []);
|
|
100
104
|
const onUnwrapFileLinkNode = (0, _react.useCallback)(event => {
|
|
101
105
|
event.stopPropagation();
|
|
102
|
-
(0,
|
|
106
|
+
(0, _helpers2.unwrapLinkNode)(editor, element);
|
|
103
107
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
104
108
|
}, []);
|
|
105
109
|
let style = {};
|
|
@@ -130,13 +134,17 @@ const FileLink = _ref => {
|
|
|
130
134
|
}, [_constants2.FILE_LINK_TYPE.ICON_LINK, _constants2.FILE_LINK_TYPE.CARD_LINK].includes(element.display_type) && /*#__PURE__*/_react.default.createElement("span", {
|
|
131
135
|
className: "sdoc-file-link-icon",
|
|
132
136
|
style: style
|
|
133
|
-
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
137
|
+
}, !fileTypeIcon && /*#__PURE__*/_react.default.createElement("i", {
|
|
134
138
|
className: "sdocfont sdoc-link-file"
|
|
139
|
+
}), fileTypeIcon && /*#__PURE__*/_react.default.createElement("img", {
|
|
140
|
+
className: "file-link-img",
|
|
141
|
+
src: fileTypeIcon,
|
|
142
|
+
alt: ""
|
|
135
143
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
136
144
|
className: "sdoc-file-text-link",
|
|
137
145
|
style: style
|
|
138
146
|
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
139
|
-
href: (0,
|
|
147
|
+
href: (0, _helpers2.getUrl)(element.doc_uuid),
|
|
140
148
|
onClick: e => e.preventDefault(),
|
|
141
149
|
onDragStart: e => e.preventDefault(),
|
|
142
150
|
title: element.title
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.updateImage = exports.selectImageWhenSelectPartial = exports.resetCursor = exports.removeImageBlockNode = exports.queryCopyMoveProgressView = exports.isInsertImageMenuDisabled = exports.isImageUrlIsFromUpload = exports.isImageUrlIsFromCopy = exports.insertImageFiles = exports.insertImage = exports.hasSdocImages = exports.handleBase64Image = exports.getSingleImageFromFragment = exports.getImageURL = exports.getImageData = exports.getDigitalSignImgUrl = exports.getColumnByKey = exports.generateImageNode = exports.generateImageInfos = void 0;
|
|
8
8
|
var _slate = require("@seafile/slate");
|
|
9
9
|
var _slateReact = require("@seafile/slate-react");
|
|
10
|
-
var _dtableUtils = require("dtable-utils");
|
|
11
10
|
var _slugid = _interopRequireDefault(require("slugid"));
|
|
12
11
|
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
13
12
|
var _constants = require("../../../constants");
|
|
@@ -165,11 +164,12 @@ const getImageURL = (data, editor) => {
|
|
|
165
164
|
const {
|
|
166
165
|
type
|
|
167
166
|
} = column || {};
|
|
168
|
-
|
|
167
|
+
// TODO: Plugin contants, image digital-sign
|
|
168
|
+
if (type === 'image') {
|
|
169
169
|
const imgUrl = editor.getColumnCellValue(column_key) || '';
|
|
170
170
|
const firstSrc = imgUrl.split(',')[0];
|
|
171
171
|
return firstSrc;
|
|
172
|
-
} else if (type ===
|
|
172
|
+
} else if (type === 'digital-sign') {
|
|
173
173
|
const partUrl = editor.getColumnCellValue(column_key) || '';
|
|
174
174
|
const imgUrl = getDigitalSignImgUrl(partUrl);
|
|
175
175
|
return imgUrl;
|
package/dist/basic-sdk/extension/plugins/search-replace/popover/replace-all-confirm-modal.js
CHANGED
|
@@ -8,7 +8,6 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _reactI18next = require("react-i18next");
|
|
10
10
|
var _reactstrap = require("reactstrap");
|
|
11
|
-
var _modalHeader = _interopRequireDefault(require("../../../../../components/modal-header"));
|
|
12
11
|
const ReplaceAllConfirmModal = _ref => {
|
|
13
12
|
let {
|
|
14
13
|
isOpen,
|
|
@@ -29,10 +28,17 @@ const ReplaceAllConfirmModal = _ref => {
|
|
|
29
28
|
originalWord,
|
|
30
29
|
replacedWord
|
|
31
30
|
});
|
|
31
|
+
const close = /*#__PURE__*/_react.default.createElement("span", {
|
|
32
|
+
className: "sdoc-add-link-close-icon",
|
|
33
|
+
onClick: handleCancel
|
|
34
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
35
|
+
className: "sdocfont sdoc-sm-close",
|
|
36
|
+
"aria-hidden": "true"
|
|
37
|
+
}));
|
|
32
38
|
return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
|
|
33
39
|
isOpen: isOpen
|
|
34
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
35
|
-
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_reactstrap.ModalHeader, {
|
|
41
|
+
close: close
|
|
36
42
|
}, t('Tip')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, `${modalContent}`), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement("button", {
|
|
37
43
|
onClick: handleCancel,
|
|
38
44
|
className: "btn btn-secondary"
|
package/dist/basic-sdk/index.js
CHANGED
|
@@ -22,18 +22,48 @@ Object.defineProperty(exports, "EventBus", {
|
|
|
22
22
|
return _eventBus.default;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(exports, "FULL_WIDTH_MODE", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _constants.FULL_WIDTH_MODE;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
25
31
|
Object.defineProperty(exports, "FileLoading", {
|
|
26
32
|
enumerable: true,
|
|
27
33
|
get: function () {
|
|
28
34
|
return _fileLoading.default;
|
|
29
35
|
}
|
|
30
36
|
});
|
|
37
|
+
Object.defineProperty(exports, "INTERNAL_EVENT", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _constants.INTERNAL_EVENT;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
31
43
|
Object.defineProperty(exports, "Loading", {
|
|
32
44
|
enumerable: true,
|
|
33
45
|
get: function () {
|
|
34
46
|
return _loading.default;
|
|
35
47
|
}
|
|
36
48
|
});
|
|
49
|
+
Object.defineProperty(exports, "LocalStorage", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () {
|
|
52
|
+
return _localStorageUtils.default;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "MenuShortcutPrompt", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () {
|
|
58
|
+
return _menuShortcutIndicator.default;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, "PLUGIN_BTN_POSITION", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function () {
|
|
64
|
+
return _constants.PLUGIN_BTN_POSITION;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
37
67
|
Object.defineProperty(exports, "PluginsProvider", {
|
|
38
68
|
enumerable: true,
|
|
39
69
|
get: function () {
|
|
@@ -94,6 +124,30 @@ Object.defineProperty(exports, "deserializeHtml", {
|
|
|
94
124
|
return _slateConvert.deserializeHtml;
|
|
95
125
|
}
|
|
96
126
|
});
|
|
127
|
+
Object.defineProperty(exports, "getMergedChanges", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
get: function () {
|
|
130
|
+
return _diff.getMergedChanges;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
Object.defineProperty(exports, "getRebase", {
|
|
134
|
+
enumerable: true,
|
|
135
|
+
get: function () {
|
|
136
|
+
return _rebase.getRebase;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
Object.defineProperty(exports, "getTopLevelChanges", {
|
|
140
|
+
enumerable: true,
|
|
141
|
+
get: function () {
|
|
142
|
+
return _diff.getTopLevelChanges;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
Object.defineProperty(exports, "hasConflict", {
|
|
146
|
+
enumerable: true,
|
|
147
|
+
get: function () {
|
|
148
|
+
return _rebase.hasConflict;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
97
151
|
Object.defineProperty(exports, "isMac", {
|
|
98
152
|
enumerable: true,
|
|
99
153
|
get: function () {
|
|
@@ -146,13 +200,18 @@ var _fileLoading = _interopRequireDefault(require("./components/file-loading"));
|
|
|
146
200
|
var _loading = _interopRequireDefault(require("./components/loading"));
|
|
147
201
|
var _toast = _interopRequireDefault(require("./components/toast"));
|
|
148
202
|
var _tooltip = _interopRequireDefault(require("./components/tooltip"));
|
|
203
|
+
var _constants = require("./constants");
|
|
149
204
|
var _context = _interopRequireDefault(require("./context"));
|
|
150
205
|
var _revisionEditor = _interopRequireDefault(require("./editor/revision-editor"));
|
|
151
206
|
var _sdocEditor = _interopRequireDefault(require("./editor/sdoc-editor"));
|
|
207
|
+
var _menuShortcutIndicator = _interopRequireDefault(require("./extension/commons/menu-shortcut-indicator"));
|
|
152
208
|
var _useCollaborators = require("./hooks/use-collaborators");
|
|
153
209
|
var _usePlugins = require("./hooks/use-plugins");
|
|
154
210
|
var _outline = _interopRequireDefault(require("./outline"));
|
|
155
211
|
var _slateConvert = require("./slate-convert");
|
|
156
212
|
var _commonUtils = require("./utils/common-utils");
|
|
213
|
+
var _diff = require("./utils/diff");
|
|
157
214
|
var _eventBus = _interopRequireDefault(require("./utils/event-bus"));
|
|
215
|
+
var _localStorageUtils = _interopRequireDefault(require("./utils/local-storage-utils"));
|
|
216
|
+
var _rebase = require("./utils/rebase");
|
|
158
217
|
var _views = require("./views");
|
|
@@ -9,8 +9,8 @@ exports.default = void 0;
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _revisionAvatar = _interopRequireDefault(require("../../assets/images/revision-avatar.png"));
|
|
12
|
+
var _sdocFreezed = _interopRequireDefault(require("../../assets/images/sdoc-freezed.png"));
|
|
12
13
|
var _basicSdk = require("../../basic-sdk");
|
|
13
|
-
var _sdocFreezed = _interopRequireDefault(require("../../basic-sdk/assets/images/sdoc-freezed.png"));
|
|
14
14
|
var _constants = require("../../constants");
|
|
15
15
|
var _utils = require("../../utils");
|
|
16
16
|
var _draftDropdown = _interopRequireDefault(require("../draft-dropdown"));
|
|
@@ -12,17 +12,14 @@ var _reactI18next = require("react-i18next");
|
|
|
12
12
|
var _reactstrap = require("reactstrap");
|
|
13
13
|
var _printJs = _interopRequireDefault(require("@seafile/print-js"));
|
|
14
14
|
var _basicSdk = require("../../basic-sdk");
|
|
15
|
-
var _constants = require("../../
|
|
16
|
-
var _menuShortcutIndicator = _interopRequireDefault(require("../../basic-sdk/extension/commons/menu-shortcut-indicator"));
|
|
17
|
-
var _localStorageUtils = _interopRequireDefault(require("../../basic-sdk/utils/local-storage-utils"));
|
|
18
|
-
var _constants2 = require("../../constants");
|
|
15
|
+
var _constants = require("../../constants");
|
|
19
16
|
const MoreOperations = _ref => {
|
|
20
17
|
let {
|
|
21
18
|
isStarred,
|
|
22
19
|
t
|
|
23
20
|
} = _ref;
|
|
24
21
|
const [isDropdownOpen, setIsDropdownOpen] = (0, _react.useState)(false);
|
|
25
|
-
const [isFullWidthMode, setIsFullWidthMode] = (0, _react.useState)(
|
|
22
|
+
const [isFullWidthMode, setIsFullWidthMode] = (0, _react.useState)(_basicSdk.LocalStorage.getItem(_basicSdk.FULL_WIDTH_MODE));
|
|
26
23
|
const parentFolderURL = _basicSdk.context.getSetting('parentFolderURL');
|
|
27
24
|
const isPro = _basicSdk.context.getSetting('isPro');
|
|
28
25
|
const isFreezed = _basicSdk.context.getSetting('isFreezed');
|
|
@@ -34,7 +31,7 @@ const MoreOperations = _ref => {
|
|
|
34
31
|
const id = 'sdoc_more_operation';
|
|
35
32
|
(0, _react.useEffect)(() => {
|
|
36
33
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
37
|
-
const unSubscribe = eventBus.subscribe(
|
|
34
|
+
const unSubscribe = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.ON_PRINT, handlePrint);
|
|
38
35
|
return () => {
|
|
39
36
|
unSubscribe();
|
|
40
37
|
};
|
|
@@ -60,11 +57,11 @@ const MoreOperations = _ref => {
|
|
|
60
57
|
}, [cssUrls]);
|
|
61
58
|
const onFreezeDocument = (0, _react.useCallback)(() => {
|
|
62
59
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
63
|
-
eventBus.dispatch(
|
|
60
|
+
eventBus.dispatch(_constants.EXTERNAL_EVENT.FREEZE_DOCUMENT);
|
|
64
61
|
}, []);
|
|
65
62
|
const unFreeze = (0, _react.useCallback)(() => {
|
|
66
63
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
67
|
-
eventBus.dispatch(
|
|
64
|
+
eventBus.dispatch(_constants.EXTERNAL_EVENT.UNFREEZE);
|
|
68
65
|
}, []);
|
|
69
66
|
const handleClickHistory = (0, _react.useCallback)(event => {
|
|
70
67
|
if (docPerm !== 'rw' || !historyURL) return;
|
|
@@ -79,28 +76,28 @@ const MoreOperations = _ref => {
|
|
|
79
76
|
}, []);
|
|
80
77
|
const onSwitchMode = (0, _react.useCallback)(() => {
|
|
81
78
|
const newMode = !isFullWidthMode;
|
|
82
|
-
|
|
79
|
+
_basicSdk.LocalStorage.setItem(_basicSdk.FULL_WIDTH_MODE, newMode);
|
|
83
80
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
84
|
-
eventBus.dispatch(
|
|
81
|
+
eventBus.dispatch(_basicSdk.INTERNAL_EVENT.RESIZE_ARTICLE);
|
|
85
82
|
setIsFullWidthMode(newMode);
|
|
86
83
|
}, [isFullWidthMode]);
|
|
87
84
|
const toggleStar = (0, _react.useCallback)(() => {
|
|
88
85
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
89
|
-
eventBus.dispatch(
|
|
86
|
+
eventBus.dispatch(_constants.EXTERNAL_EVENT.TOGGLE_STAR);
|
|
90
87
|
}, []);
|
|
91
88
|
const onShareToggle = (0, _react.useCallback)(() => {
|
|
92
89
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
93
|
-
eventBus.dispatch(
|
|
90
|
+
eventBus.dispatch(_constants.EXTERNAL_EVENT.SHARE_SDOC);
|
|
94
91
|
}, []);
|
|
95
92
|
const onInternalLinkClick = (0, _react.useCallback)(() => {
|
|
96
93
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
97
94
|
if (isSdocRevision) {
|
|
98
|
-
eventBus.dispatch(
|
|
95
|
+
eventBus.dispatch(_constants.EXTERNAL_EVENT.INTERNAL_LINK_CLICK, {
|
|
99
96
|
internalLink: window.location.href
|
|
100
97
|
});
|
|
101
98
|
return;
|
|
102
99
|
}
|
|
103
|
-
eventBus.dispatch(
|
|
100
|
+
eventBus.dispatch(_constants.EXTERNAL_EVENT.INTERNAL_LINK_CLICK);
|
|
104
101
|
}, [isSdocRevision]);
|
|
105
102
|
return /*#__PURE__*/_react.default.createElement(_reactstrap.Dropdown, {
|
|
106
103
|
className: `sdoc-operator-folder ${mobileLogin ? 'mobile-login' : ''}`,
|
|
@@ -133,7 +130,7 @@ const MoreOperations = _ref => {
|
|
|
133
130
|
onClick: handlePrint
|
|
134
131
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
135
132
|
className: "sdoc-dropdown-print-container"
|
|
136
|
-
}, /*#__PURE__*/_react.default.createElement("div", null, t('Print')), /*#__PURE__*/_react.default.createElement(
|
|
133
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, t('Print')), /*#__PURE__*/_react.default.createElement(_basicSdk.MenuShortcutPrompt, {
|
|
137
134
|
shortcuts: printShortcutTexts
|
|
138
135
|
}))), isPro && isFreezed && /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
139
136
|
className: "sdoc-dropdown-menu-item",
|
|
@@ -10,8 +10,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
12
12
|
var _basicSdk = require("../../basic-sdk");
|
|
13
|
-
var _constants = require("../../basic-sdk/constants");
|
|
14
|
-
var _mouseEvent = require("../../basic-sdk/utils/mouse-event");
|
|
15
13
|
const PluginsOperations = () => {
|
|
16
14
|
const {
|
|
17
15
|
plugins,
|
|
@@ -25,11 +23,12 @@ const PluginsOperations = () => {
|
|
|
25
23
|
'sdoc-comment': 'sdoc_comment'
|
|
26
24
|
};
|
|
27
25
|
const onClick = (0, _react.useCallback)((event, pluginName) => {
|
|
28
|
-
|
|
26
|
+
event.stopPropagation();
|
|
27
|
+
event.nativeEvent && event.nativeEvent.stopImmediatePropagation && event.nativeEvent.stopImmediatePropagation();
|
|
29
28
|
updateDisplayPlugin(pluginName);
|
|
30
29
|
}, [updateDisplayPlugin]);
|
|
31
30
|
if (plugins.length === 0) return null;
|
|
32
|
-
return plugins.filter(plugin => !plugin.position || plugin.position ===
|
|
31
|
+
return plugins.filter(plugin => !plugin.position || plugin.position === _basicSdk.PLUGIN_BTN_POSITION.DEFAULT).map(plugin => {
|
|
33
32
|
const {
|
|
34
33
|
name,
|
|
35
34
|
icon
|
|
@@ -8,7 +8,6 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _reactI18next = require("react-i18next");
|
|
10
10
|
var _basicSdk = require("../../../basic-sdk");
|
|
11
|
-
var _constants = require("../../../basic-sdk/constants");
|
|
12
11
|
const PresentationOperation = () => {
|
|
13
12
|
const {
|
|
14
13
|
t
|
|
@@ -16,7 +15,7 @@ const PresentationOperation = () => {
|
|
|
16
15
|
const id = 'sdoc_presentation';
|
|
17
16
|
const onPresentationToggle = (0, _react.useCallback)(() => {
|
|
18
17
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
19
|
-
eventBus.dispatch(
|
|
18
|
+
eventBus.dispatch(_basicSdk.INTERNAL_EVENT.TOGGLE_PRESENTATION_MODE, {
|
|
20
19
|
isShowFullScreen: true
|
|
21
20
|
});
|
|
22
21
|
const node = document.querySelector('.sdoc-editor-container');
|
|
@@ -8,7 +8,6 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _reactI18next = require("react-i18next");
|
|
10
10
|
var _basicSdk = require("../../../../basic-sdk");
|
|
11
|
-
var _diff = require("../../../../basic-sdk/utils/diff");
|
|
12
11
|
require("./index.css");
|
|
13
12
|
const ChangesCount = _ref => {
|
|
14
13
|
let {
|
|
@@ -33,8 +32,8 @@ const ChangesCount = _ref => {
|
|
|
33
32
|
}, 100);
|
|
34
33
|
}).then(() => {
|
|
35
34
|
if (allChanges.changes.length !== 0) {
|
|
36
|
-
const topLevelChanges = (0,
|
|
37
|
-
const changes = (0,
|
|
35
|
+
const topLevelChanges = (0, _basicSdk.getTopLevelChanges)(allChanges.changes);
|
|
36
|
+
const changes = (0, _basicSdk.getMergedChanges)(topLevelChanges, allChanges.value);
|
|
38
37
|
setChanges(changes);
|
|
39
38
|
}
|
|
40
39
|
});
|
|
@@ -9,9 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _basicSdk = require("../../../basic-sdk");
|
|
12
|
-
var _constants = require("../../../
|
|
13
|
-
var _rebase = require("../../../basic-sdk/utils/rebase");
|
|
14
|
-
var _constants2 = require("../../../constants");
|
|
12
|
+
var _constants = require("../../../constants");
|
|
15
13
|
var _hooks = require("../../../hooks");
|
|
16
14
|
var _tipDialog = _interopRequireDefault(require("../../tip-dialog"));
|
|
17
15
|
var _changesCount = _interopRequireDefault(require("./changes-count"));
|
|
@@ -56,9 +54,9 @@ const RevisionOperations = _ref => {
|
|
|
56
54
|
setShowTip(true);
|
|
57
55
|
const {
|
|
58
56
|
value
|
|
59
|
-
} = (0,
|
|
57
|
+
} = (0, _basicSdk.getRebase)(masterContent, baseContent, revisionContent);
|
|
60
58
|
setMergeValue(value);
|
|
61
|
-
setTipType(
|
|
59
|
+
setTipType(_constants.TIP_TYPE.SOURCE_DOCUMENT_CHANGED);
|
|
62
60
|
}).catch(error => {
|
|
63
61
|
if (typeof error === 'string') {
|
|
64
62
|
_basicSdk.toaster.danger(t(error));
|
|
@@ -72,16 +70,16 @@ const RevisionOperations = _ref => {
|
|
|
72
70
|
}, []);
|
|
73
71
|
const onDocumentReplaced = (0, _react.useCallback)(() => {
|
|
74
72
|
if (isShowTip) return;
|
|
75
|
-
setTipType(
|
|
73
|
+
setTipType(_constants.TIP_TYPE.HAS_BEEN_REPLACED);
|
|
76
74
|
setShowTip(true);
|
|
77
75
|
}, [isShowTip]);
|
|
78
76
|
const hasPublishRevision = (0, _react.useCallback)(() => {
|
|
79
77
|
handleRevisionPublished();
|
|
80
|
-
_basicSdk.toaster.success(t(
|
|
78
|
+
_basicSdk.toaster.success(t(_constants.TIP_CONTENT[_constants.TIP_TYPE.HAS_BEEN_PUBLISHED]));
|
|
81
79
|
}, [handleRevisionPublished, t]);
|
|
82
80
|
const onDocumentRemoved = (0, _react.useCallback)(() => {
|
|
83
81
|
if (isShowTip) return;
|
|
84
|
-
setTipType(
|
|
82
|
+
setTipType(_constants.TIP_TYPE.HAS_BEEN_REMOVED);
|
|
85
83
|
setShowTip(true);
|
|
86
84
|
}, [isShowTip]);
|
|
87
85
|
const onError = (0, _react.useCallback)(() => {
|
|
@@ -91,12 +89,12 @@ const RevisionOperations = _ref => {
|
|
|
91
89
|
}, []);
|
|
92
90
|
(0, _react.useEffect)(() => {
|
|
93
91
|
const eventBus = _basicSdk.EventBus.getInstance();
|
|
94
|
-
const unsubscribeMergeDocument = eventBus.subscribe(
|
|
95
|
-
const unsubscribeMergeDocumentError = eventBus.subscribe(
|
|
96
|
-
const unsubscribePublishDocument = eventBus.subscribe(
|
|
97
|
-
const unsubscribePublishDocumentError = eventBus.subscribe(
|
|
98
|
-
const unsubscribeRemoveDocument = eventBus.subscribe(
|
|
99
|
-
const unsubscribeRemoveDocumentError = eventBus.subscribe(
|
|
92
|
+
const unsubscribeMergeDocument = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.DOCUMENT_REPLACED, onDocumentReplaced);
|
|
93
|
+
const unsubscribeMergeDocumentError = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.DOCUMENT_REPLACED_ERROR, onError);
|
|
94
|
+
const unsubscribePublishDocument = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.PUBLISH_DOCUMENT, hasPublishRevision);
|
|
95
|
+
const unsubscribePublishDocumentError = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.PUBLISH_DOCUMENT_ERROR, onError);
|
|
96
|
+
const unsubscribeRemoveDocument = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.REMOVE_DOCUMENT, onDocumentRemoved);
|
|
97
|
+
const unsubscribeRemoveDocumentError = eventBus.subscribe(_basicSdk.INTERNAL_EVENT.REMOVE_DOCUMENT_ERROR, onError);
|
|
100
98
|
return () => {
|
|
101
99
|
unsubscribeMergeDocument();
|
|
102
100
|
unsubscribeMergeDocumentError();
|
|
@@ -117,8 +115,8 @@ const RevisionOperations = _ref => {
|
|
|
117
115
|
// The trick here is to send one more api request in order to use the same information box.
|
|
118
116
|
loadDocument().then(revisionContent => {
|
|
119
117
|
// Prevent users from switching if document contains conflicting content
|
|
120
|
-
if ((0,
|
|
121
|
-
setTipType(
|
|
118
|
+
if ((0, _basicSdk.hasConflict)(revisionContent.elements)) {
|
|
119
|
+
setTipType(_constants.TIP_TYPE.HAS_CONFLICT_BEFORE_VIEW_CHANGES);
|
|
122
120
|
setShowTip(true);
|
|
123
121
|
} else {
|
|
124
122
|
handleViewChangesToggle(isShowChanges);
|
|
@@ -137,7 +135,7 @@ const RevisionOperations = _ref => {
|
|
|
137
135
|
// publish revision
|
|
138
136
|
const publishRevision = (0, _react.useCallback)(() => {
|
|
139
137
|
setShowTip(true);
|
|
140
|
-
setTipType(
|
|
138
|
+
setTipType(_constants.TIP_TYPE.CHECKING);
|
|
141
139
|
const revisionPromise = loadDocument();
|
|
142
140
|
const baseVersionPromise = _basicSdk.context.getRevisionBaseVersionContent();
|
|
143
141
|
const originVersionPromise = _basicSdk.context.getSeadocOriginFileContent();
|
|
@@ -145,18 +143,18 @@ const RevisionOperations = _ref => {
|
|
|
145
143
|
const [revisionContent, baseRes, masterRes] = results;
|
|
146
144
|
const baseContent = JSON.parse(baseRes.data.content);
|
|
147
145
|
const masterContent = JSON.parse(masterRes.data.content);
|
|
148
|
-
if ((0,
|
|
149
|
-
setTipType(
|
|
146
|
+
if ((0, _basicSdk.hasConflict)(revisionContent.elements)) {
|
|
147
|
+
setTipType(_constants.TIP_TYPE.HAS_CONFLICT_BEFORE_PUBLISH);
|
|
150
148
|
return;
|
|
151
149
|
}
|
|
152
150
|
const {
|
|
153
151
|
canMerge,
|
|
154
152
|
isNeedReplaceMaster,
|
|
155
153
|
value
|
|
156
|
-
} = (0,
|
|
154
|
+
} = (0, _basicSdk.getRebase)(masterContent, baseContent, revisionContent);
|
|
157
155
|
// change to HAS_BEEN_PUBLISHED
|
|
158
156
|
if (canMerge && isNeedReplaceMaster) {
|
|
159
|
-
setTipType(
|
|
157
|
+
setTipType(_constants.TIP_TYPE.PUBLISHING);
|
|
160
158
|
_basicSdk.context.publishRevision().then(res => {
|
|
161
159
|
setShowTip(false);
|
|
162
160
|
setTipType('');
|
|
@@ -168,13 +166,13 @@ const RevisionOperations = _ref => {
|
|
|
168
166
|
|
|
169
167
|
// change to DELETE_NO_CHANGES_REVISION
|
|
170
168
|
if (canMerge && !isNeedReplaceMaster) {
|
|
171
|
-
setTipType(
|
|
169
|
+
setTipType(_constants.TIP_TYPE.DELETE_NO_CHANGES_REVISION);
|
|
172
170
|
return;
|
|
173
171
|
}
|
|
174
172
|
|
|
175
173
|
// change to MERGE
|
|
176
174
|
setMergeValue(value);
|
|
177
|
-
setTipType(
|
|
175
|
+
setTipType(_constants.TIP_TYPE.MERGE);
|
|
178
176
|
}).catch(error => {
|
|
179
177
|
if (typeof error === 'string') {
|
|
180
178
|
_basicSdk.toaster.danger(t(error));
|
|
@@ -186,11 +184,11 @@ const RevisionOperations = _ref => {
|
|
|
186
184
|
|
|
187
185
|
// confirm publish
|
|
188
186
|
const onSubmit = (0, _react.useCallback)(() => {
|
|
189
|
-
if (tipType ===
|
|
187
|
+
if (tipType === _constants.TIP_TYPE.HAS_BEEN_PUBLISHED) {
|
|
190
188
|
// nothing todo
|
|
191
189
|
return;
|
|
192
190
|
}
|
|
193
|
-
if (tipType ===
|
|
191
|
+
if (tipType === _constants.TIP_TYPE.DELETE_NO_CHANGES_REVISION) {
|
|
194
192
|
_basicSdk.context.deleteSdocRevision().then(res => {
|
|
195
193
|
// update current location
|
|
196
194
|
const originFileURL = _basicSdk.context.getSetting('originFileURL');
|
|
@@ -200,7 +198,7 @@ const RevisionOperations = _ref => {
|
|
|
200
198
|
});
|
|
201
199
|
return;
|
|
202
200
|
}
|
|
203
|
-
if (tipType ===
|
|
201
|
+
if (tipType === _constants.TIP_TYPE.MERGE || tipType === _constants.TIP_TYPE.SOURCE_DOCUMENT_CHANGED) {
|
|
204
202
|
const {
|
|
205
203
|
username
|
|
206
204
|
} = _basicSdk.context.getUserInfo();
|
package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js
CHANGED
|
@@ -11,7 +11,6 @@ var _reactI18next = require("react-i18next");
|
|
|
11
11
|
var _reactstrap = require("reactstrap");
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
var _basicSdk = require("../../../../../basic-sdk");
|
|
14
|
-
var _mouseEvent = require("../../../../../basic-sdk/utils/mouse-event");
|
|
15
14
|
var _constants = require("../../../../../constants");
|
|
16
15
|
var _model = require("../../../../../model");
|
|
17
16
|
var _utils = require("../../../../../utils");
|
|
@@ -72,7 +71,8 @@ const RevisionsDialog = _ref => {
|
|
|
72
71
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
72
|
}, [revisions, page, perPage]);
|
|
74
73
|
const openRevision = (0, _react.useCallback)((event, revisionId) => {
|
|
75
|
-
|
|
74
|
+
event.stopPropagation();
|
|
75
|
+
event.nativeEvent && event.nativeEvent.stopImmediatePropagation && event.nativeEvent.stopImmediatePropagation();
|
|
76
76
|
if (event.target.className.includes('sdoc-revision-operation-toggle')) return;
|
|
77
77
|
const url = `${siteRoot}lib/${repoID}/revisions/${revisionId}/`;
|
|
78
78
|
window.open(url, '_blank');
|
|
@@ -9,7 +9,6 @@ exports.default = void 0;
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactstrap = require("reactstrap");
|
|
11
11
|
var _dropdownMenuItem = _interopRequireDefault(require("../../../../../../basic-sdk/extension/commons/dropdown-menu-item"));
|
|
12
|
-
var _mouseEvent = require("../../../../../../basic-sdk/utils/mouse-event");
|
|
13
12
|
require("./index.css");
|
|
14
13
|
const RevisionOperation = _ref => {
|
|
15
14
|
let {
|
|
@@ -29,7 +28,8 @@ const RevisionOperation = _ref => {
|
|
|
29
28
|
updateOperatingRevision(nextPopoverShow ? revision.id : '');
|
|
30
29
|
}, [isPopoverShow, updateOperatingRevision, revision]);
|
|
31
30
|
const deleteRevision = (0, _react.useCallback)(event => {
|
|
32
|
-
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
event.nativeEvent && event.nativeEvent.stopImmediatePropagation && event.nativeEvent.stopImmediatePropagation();
|
|
33
33
|
onDeleteOtherRevision();
|
|
34
34
|
popoverRef.current.toggle();
|
|
35
35
|
}, [onDeleteOtherRevision]);
|
|
@@ -5,13 +5,14 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = void 0;
|
|
8
|
+
exports.default = exports.REVISION_DIFF_VALUE = exports.REVISION_DIFF_KEY = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _basicSdk = require("../../../../basic-sdk");
|
|
12
|
-
var _constants = require("../../../../basic-sdk/constants");
|
|
13
12
|
var _switch = _interopRequireDefault(require("../../../switch"));
|
|
14
13
|
require("./index.css");
|
|
14
|
+
const REVISION_DIFF_KEY = exports.REVISION_DIFF_KEY = 'diff';
|
|
15
|
+
const REVISION_DIFF_VALUE = exports.REVISION_DIFF_VALUE = '1';
|
|
15
16
|
const ViewChanges = _ref => {
|
|
16
17
|
let {
|
|
17
18
|
isShowChanges,
|
|
@@ -23,9 +24,9 @@ const ViewChanges = _ref => {
|
|
|
23
24
|
(0, _react.useEffect)(() => {
|
|
24
25
|
const url = new URL(window.location.href);
|
|
25
26
|
const searchParams = new URLSearchParams(url.search);
|
|
26
|
-
if (!searchParams.has(
|
|
27
|
-
const firstLoadValue = searchParams.get(
|
|
28
|
-
if (firstLoadValue ===
|
|
27
|
+
if (!searchParams.has(REVISION_DIFF_KEY)) return;
|
|
28
|
+
const firstLoadValue = searchParams.get(REVISION_DIFF_KEY);
|
|
29
|
+
if (firstLoadValue === REVISION_DIFF_VALUE) {
|
|
29
30
|
propsOnViewChangesToggle(true);
|
|
30
31
|
}
|
|
31
32
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -36,7 +37,7 @@ const ViewChanges = _ref => {
|
|
|
36
37
|
const searchParams = new URLSearchParams(url.search);
|
|
37
38
|
let newParamsString = '';
|
|
38
39
|
for (const item of searchParams.entries()) {
|
|
39
|
-
if (item[0] !==
|
|
40
|
+
if (item[0] !== REVISION_DIFF_KEY) {
|
|
40
41
|
if (newParamsString) {
|
|
41
42
|
newParamsString = newParamsString + `&${item[0]}=${item[1]}`;
|
|
42
43
|
} else {
|
|
@@ -44,11 +45,11 @@ const ViewChanges = _ref => {
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
|
-
if (!searchParams.has(
|
|
48
|
+
if (!searchParams.has(REVISION_DIFF_KEY) && nextIsShowChanges) {
|
|
48
49
|
if (newParamsString) {
|
|
49
|
-
newParamsString = newParamsString + `&${
|
|
50
|
+
newParamsString = newParamsString + `&${REVISION_DIFF_KEY}=${REVISION_DIFF_VALUE}`;
|
|
50
51
|
} else {
|
|
51
|
-
newParamsString = `${
|
|
52
|
+
newParamsString = `${REVISION_DIFF_KEY}=${REVISION_DIFF_VALUE}`;
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
const validPathName = url.pathname.endsWith('/') ? url.pathname : url.pathname + '/';
|
|
@@ -8,8 +8,8 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _reactI18next = require("react-i18next");
|
|
10
10
|
var _reactstrap = require("reactstrap");
|
|
11
|
-
var _basicSdk = require("
|
|
12
|
-
require("
|
|
11
|
+
var _basicSdk = require("../../basic-sdk");
|
|
12
|
+
require("./error-page.css");
|
|
13
13
|
function ErrorPage(_ref) {
|
|
14
14
|
let {
|
|
15
15
|
t
|
package/dist/layout/layout.js
CHANGED
|
@@ -16,28 +16,28 @@ const Layout = _ref => {
|
|
|
16
16
|
className,
|
|
17
17
|
...restProps
|
|
18
18
|
} = _ref;
|
|
19
|
-
const
|
|
19
|
+
const cacheHistoryFiles = () => {
|
|
20
20
|
const isPublished = _basicSdk.context.getSetting('isPublished') || false;
|
|
21
21
|
const isSdocRevision = _basicSdk.context.getSetting('isSdocRevision') || false;
|
|
22
22
|
if (isPublished) return;
|
|
23
23
|
if (isSdocRevision) return;
|
|
24
24
|
const docUuid = _basicSdk.context.getSetting('docUuid');
|
|
25
25
|
const docName = _basicSdk.context.getSetting('docName');
|
|
26
|
-
const
|
|
26
|
+
const recentFiles = _localStorageUtils.default.getItem('sdoc-recent-files', []);
|
|
27
27
|
let arr = [];
|
|
28
28
|
const newFile = {
|
|
29
29
|
doc_uuid: docUuid,
|
|
30
30
|
name: docName
|
|
31
31
|
};
|
|
32
|
-
if (
|
|
33
|
-
const isExist =
|
|
32
|
+
if (recentFiles.length > 0) {
|
|
33
|
+
const isExist = recentFiles.find(item => item.doc_uuid === docUuid);
|
|
34
34
|
if (isExist) return;
|
|
35
35
|
if (!isExist) {
|
|
36
|
-
let
|
|
37
|
-
if (
|
|
38
|
-
|
|
36
|
+
let newRecentFiles = recentFiles.slice(0);
|
|
37
|
+
if (recentFiles.length === 10) {
|
|
38
|
+
newRecentFiles.shift();
|
|
39
39
|
}
|
|
40
|
-
arr = [newFile, ...
|
|
40
|
+
arr = [newFile, ...newRecentFiles];
|
|
41
41
|
}
|
|
42
42
|
} else {
|
|
43
43
|
arr.push(newFile);
|
|
@@ -53,7 +53,7 @@ const Layout = _ref => {
|
|
|
53
53
|
element && element.scrollIntoView(true);
|
|
54
54
|
}
|
|
55
55
|
}, 500);
|
|
56
|
-
|
|
56
|
+
cacheHistoryFiles();
|
|
57
57
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
58
58
|
}, []);
|
|
59
59
|
return /*#__PURE__*/_react.default.createElement("div", Object.assign({
|
|
@@ -11,9 +11,9 @@ var _reactI18next = require("react-i18next");
|
|
|
11
11
|
var _basicSdk = require("../basic-sdk");
|
|
12
12
|
var _docInfo = _interopRequireDefault(require("../components/doc-info"));
|
|
13
13
|
var _docOperations = _interopRequireDefault(require("../components/doc-operations"));
|
|
14
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
14
15
|
var _layout = _interopRequireWildcard(require("../layout"));
|
|
15
16
|
var _utils = require("../utils");
|
|
16
|
-
var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
|
|
17
17
|
require("../assets/css/simple-editor.css");
|
|
18
18
|
const PublishedRevisionViewer = () => {
|
|
19
19
|
_basicSdk.context.initApi();
|
|
@@ -14,7 +14,7 @@ var _wikiEditor = _interopRequireDefault(require("../basic-sdk/editor/wiki-edito
|
|
|
14
14
|
var _extension = require("../basic-sdk/extension");
|
|
15
15
|
var _nodeId = _interopRequireDefault(require("../basic-sdk/node-id"));
|
|
16
16
|
var _socket = require("../basic-sdk/socket");
|
|
17
|
-
var _errorBoundary = _interopRequireDefault(require("
|
|
17
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
18
18
|
require("../assets/css/simple-viewer.css");
|
|
19
19
|
const SdocWikiEditor = _ref => {
|
|
20
20
|
let {
|
|
@@ -12,10 +12,10 @@ var _basicSdk = require("../basic-sdk");
|
|
|
12
12
|
var _views = require("../basic-sdk/views");
|
|
13
13
|
var _docInfo = _interopRequireDefault(require("../components/doc-info"));
|
|
14
14
|
var _docOperations = _interopRequireDefault(require("../components/doc-operations"));
|
|
15
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
15
16
|
var _hooks = require("../hooks");
|
|
16
17
|
var _layout = _interopRequireWildcard(require("../layout"));
|
|
17
18
|
var _utils = require("../utils");
|
|
18
|
-
var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
|
|
19
19
|
require("../assets/css/simple-editor.css");
|
|
20
20
|
const SimpleEditor = _ref => {
|
|
21
21
|
let {
|
|
@@ -9,8 +9,8 @@ exports.default = void 0;
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _reactI18next = require("react-i18next");
|
|
11
11
|
var _basicSdk = require("../basic-sdk");
|
|
12
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
12
13
|
var _layout = _interopRequireWildcard(require("../layout"));
|
|
13
|
-
var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
|
|
14
14
|
require("../assets/css/simple-viewer.css");
|
|
15
15
|
class SimpleViewer extends _react.default.Component {
|
|
16
16
|
constructor(props) {
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _basicSdk = require("../basic-sdk");
|
|
10
|
-
var _errorBoundary = _interopRequireDefault(require("
|
|
10
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
11
11
|
require("../assets/css/simple-viewer.css");
|
|
12
12
|
const WikiViewer = _ref => {
|
|
13
13
|
let {
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
@@ -11,11 +10,9 @@ Object.defineProperty(exports, "DateUtils", {
|
|
|
11
10
|
return _dateUtils.default;
|
|
12
11
|
}
|
|
13
12
|
});
|
|
14
|
-
exports.resetWebTitle = exports.getImageFileNameWithTimestamp = exports.getErrorMsg = exports.getDirPath =
|
|
13
|
+
exports.resetWebTitle = exports.getImageFileNameWithTimestamp = exports.getErrorMsg = exports.getDirPath = void 0;
|
|
15
14
|
var _basicSdk = require("../basic-sdk");
|
|
16
15
|
var _dateUtils = _interopRequireDefault(require("./date-utils"));
|
|
17
|
-
var Hotkey = _interopRequireWildcard(require("./hotkey"));
|
|
18
|
-
exports.Hotkey = Hotkey;
|
|
19
16
|
const getDirPath = path => {
|
|
20
17
|
let dir = path.slice(0, path.lastIndexOf('/'));
|
|
21
18
|
if (dir === '') {
|
package/package.json
CHANGED
|
@@ -1,64 +0,0 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
-
const Svg = _ref => {
|
|
11
|
-
let {
|
|
12
|
-
t,
|
|
13
|
-
isSelected,
|
|
14
|
-
imageRef
|
|
15
|
-
} = _ref;
|
|
16
|
-
return /*#__PURE__*/_react.default.createElement("svg", {
|
|
17
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
18
|
-
viewBox: "0 0 360 360",
|
|
19
|
-
preserveAspectRatio: "xMinYMin meet",
|
|
20
|
-
className: (0, _classnames.default)('sdoc-image-placeholder-wrapper', {
|
|
21
|
-
'image-selected': isSelected
|
|
22
|
-
}),
|
|
23
|
-
ref: imageRef,
|
|
24
|
-
draggable: false
|
|
25
|
-
}, /*#__PURE__*/_react.default.createElement("rect", {
|
|
26
|
-
width: "100%",
|
|
27
|
-
height: "100%",
|
|
28
|
-
fill: "#f0f0f0"
|
|
29
|
-
}), /*#__PURE__*/_react.default.createElement("g", {
|
|
30
|
-
className: "sdoc-image-content-wrapper",
|
|
31
|
-
transform: "translate(180, 180) scale(1)"
|
|
32
|
-
}, /*#__PURE__*/_react.default.createElement("g", {
|
|
33
|
-
className: "sdoc-image-title",
|
|
34
|
-
transform: "translate(0, 0)"
|
|
35
|
-
}, /*#__PURE__*/_react.default.createElement("foreignObject", {
|
|
36
|
-
x: "-85",
|
|
37
|
-
y: "-16",
|
|
38
|
-
width: "20",
|
|
39
|
-
height: "28"
|
|
40
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
41
|
-
className: "sdocfont sdoc-exclamation-circle"
|
|
42
|
-
})), /*#__PURE__*/_react.default.createElement("text", {
|
|
43
|
-
className: "sdoc-image-tip-title",
|
|
44
|
-
transform: "translate(-55, 4)",
|
|
45
|
-
fontSize: "20",
|
|
46
|
-
fill: "red",
|
|
47
|
-
fontFamily: "Arial, sans-serif"
|
|
48
|
-
}, t('Image_copy_error'))), /*#__PURE__*/_react.default.createElement("text", {
|
|
49
|
-
className: "sdoc-image-tip-content",
|
|
50
|
-
transform: "translate(0, 35)",
|
|
51
|
-
fontSize: "12",
|
|
52
|
-
textAnchor: "middle",
|
|
53
|
-
fill: "black",
|
|
54
|
-
fontFamily: "Arial, sans-serif"
|
|
55
|
-
}, t('Image_cannot_be_copied_Please_download_the_source_image')), /*#__PURE__*/_react.default.createElement("text", {
|
|
56
|
-
className: "sdoc-image-tip-content",
|
|
57
|
-
transform: "translate(0, 55)",
|
|
58
|
-
fontSize: "12",
|
|
59
|
-
textAnchor: "middle",
|
|
60
|
-
fill: "black",
|
|
61
|
-
fontFamily: "Arial, sans-serif"
|
|
62
|
-
}, t('And_select_insert_-_image_to_upload'))));
|
|
63
|
-
};
|
|
64
|
-
var _default = exports.default = Svg;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
const base64ToUnit8Array = base64 => {
|
|
8
|
-
const arr = base64.split(',');
|
|
9
|
-
const mime = arr[0].match(/:(.*?);/)[1];
|
|
10
|
-
const bstr = atob(arr[1]);
|
|
11
|
-
let n = bstr.length;
|
|
12
|
-
const u8arr = new Uint8Array(n);
|
|
13
|
-
while (n--) {
|
|
14
|
-
u8arr[n] = bstr.charCodeAt(n);
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
u8arr,
|
|
18
|
-
mime
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
var _default = exports.default = base64ToUnit8Array;
|
package/dist/utils/hotkey.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.isSpace = exports.isShiftModEnter = exports.isShiftEnter = exports.isOptPageup = exports.isOptPagedown = exports.isModZ = exports.isModUp = exports.isModSlash = exports.isModShiftZ = exports.isModShiftG = exports.isModShiftDot = exports.isModShiftComma = exports.isModSemicolon = exports.isModS = exports.isModRight = exports.isModP = exports.isModLeft = exports.isModL = exports.isModG = exports.isModF = exports.isModDown = exports.isModDot = exports.isModComma = exports.isModBackslash = void 0;
|
|
8
|
-
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
9
|
-
const isModS = exports.isModS = (0, _isHotkey.default)('mod+s');
|
|
10
|
-
const isModZ = exports.isModZ = (0, _isHotkey.default)('mod+z');
|
|
11
|
-
const isModL = exports.isModL = (0, _isHotkey.default)('mod+l');
|
|
12
|
-
const isModF = exports.isModF = (0, _isHotkey.default)('mod+f');
|
|
13
|
-
const isModP = exports.isModP = (0, _isHotkey.default)('mod+p');
|
|
14
|
-
const isModG = exports.isModG = (0, _isHotkey.default)('mod+g');
|
|
15
|
-
const isModDot = exports.isModDot = (0, _isHotkey.default)('mod+.');
|
|
16
|
-
const isModComma = exports.isModComma = (0, _isHotkey.default)('mod+,');
|
|
17
|
-
const isModSlash = exports.isModSlash = (0, _isHotkey.default)('mod+/');
|
|
18
|
-
const isModBackslash = exports.isModBackslash = (0, _isHotkey.default)('mod+\'');
|
|
19
|
-
const isModSemicolon = exports.isModSemicolon = (0, _isHotkey.default)('mod+;');
|
|
20
|
-
const isModUp = exports.isModUp = (0, _isHotkey.default)('mod+up');
|
|
21
|
-
const isModDown = exports.isModDown = (0, _isHotkey.default)('mod+down');
|
|
22
|
-
const isModLeft = exports.isModLeft = (0, _isHotkey.default)('mod+left');
|
|
23
|
-
const isModRight = exports.isModRight = (0, _isHotkey.default)('mod+right');
|
|
24
|
-
const isModShiftZ = exports.isModShiftZ = (0, _isHotkey.default)('mod+shift+z');
|
|
25
|
-
const isModShiftG = exports.isModShiftG = (0, _isHotkey.default)('mod+shift+g');
|
|
26
|
-
const isModShiftDot = exports.isModShiftDot = (0, _isHotkey.default)('mod+shift+.');
|
|
27
|
-
const isModShiftComma = exports.isModShiftComma = (0, _isHotkey.default)('mod+shift+,');
|
|
28
|
-
const isShiftEnter = exports.isShiftEnter = (0, _isHotkey.default)('shift+enter');
|
|
29
|
-
const isShiftModEnter = exports.isShiftModEnter = (0, _isHotkey.default)('shift+mod+enter');
|
|
30
|
-
const isOptPageup = exports.isOptPageup = (0, _isHotkey.default)('opt+pageup');
|
|
31
|
-
const isOptPagedown = exports.isOptPagedown = (0, _isHotkey.default)('opt+pagedown');
|
|
32
|
-
const isSpace = exports.isSpace = (0, _isHotkey.default)('space');
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
const isChPunctuation = char => {
|
|
8
|
-
// \u2014|\u2018|\u2019|\u201c|\u201d|
|
|
9
|
-
// \u2026|
|
|
10
|
-
// \u2039|\u203a
|
|
11
|
-
// \u3001|\u3002|\u3008|\u3009|\u300a|\u300b|\u300c|\u300d|\u300e|\u300f
|
|
12
|
-
// \u3010|\u3011|\u3014|\u3015|\u301c|\u301d|\u301e
|
|
13
|
-
// \ufe43|\ufe44|\ufe4f
|
|
14
|
-
// \uffe5 (¥)
|
|
15
|
-
const reg = /[\u2014|\u2018|\u2019|\u201c|\u201d|\u2026|\u2039|\u203a|\u3001|\u3002|\u3008|\u3009|\u300a|\u300b|\u300c|\u300d|\u300e|\u300f|\u3010|\u3011|\u3014|\u3015|\u301c|\u301d|\u301e]/;
|
|
16
|
-
if (reg.test(char)) {
|
|
17
|
-
return true;
|
|
18
|
-
} else {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
function isEnHalfWidthPunctuation(char) {
|
|
23
|
-
// Distribution of half-width punctuation points in unicode: 0x0021~0x007e
|
|
24
|
-
// https://en.wikibooks.org/wiki/Unicode/Character_reference/0000-0FFF
|
|
25
|
-
const reg = /[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]/;
|
|
26
|
-
if (reg.test(char)) {
|
|
27
|
-
return true;
|
|
28
|
-
} else {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
function isEnFullWidthPunctuation(char) {
|
|
33
|
-
// 0xff01~0xff5e
|
|
34
|
-
// https://en.wikibooks.org/wiki/Unicode/Character_reference/F000-FFFF
|
|
35
|
-
const reg = /[\uff01-\uff0f\uff1a-\uff1f\uff20\uff3b-\uff3f\uff40\uff5b-\uff5f]/;
|
|
36
|
-
if (reg.test(char)) {
|
|
37
|
-
return true;
|
|
38
|
-
} else {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
const isLastCharPunctuation = value => {
|
|
43
|
-
if (typeof value !== 'string' || !value) return false;
|
|
44
|
-
const lastChar = value.slice(-1);
|
|
45
|
-
if (isChPunctuation(lastChar)) return true;
|
|
46
|
-
if (isEnHalfWidthPunctuation(lastChar)) return true;
|
|
47
|
-
if (isEnFullWidthPunctuation(lastChar)) return true;
|
|
48
|
-
return false;
|
|
49
|
-
};
|
|
50
|
-
var _default = exports.default = isLastCharPunctuation;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|