@seafile/seafile-sdoc-editor 2.0.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.
- package/dist/assets/css/plugin-editor.css +7 -0
- package/dist/assets/css/simple-editor.css +9 -0
- package/dist/assets/css/simple-viewer.css +6 -0
- package/dist/assets/images/content-replaced.png +0 -0
- package/dist/assets/images/revision-avatar.png +0 -0
- package/dist/assets/images/sdoc-freezed.png +0 -0
- package/dist/components/doc-info/index.css +102 -0
- package/dist/components/doc-info/index.js +122 -0
- package/dist/components/doc-operations/collaborators-operation/collaborators-popover.css +74 -0
- package/dist/components/doc-operations/collaborators-operation/collaborators-popover.js +60 -0
- package/dist/components/doc-operations/collaborators-operation/index.js +104 -0
- package/dist/components/doc-operations/index.js +47 -0
- package/dist/components/doc-operations/more-operations.js +167 -0
- package/dist/components/doc-operations/plugins-operations.js +56 -0
- package/dist/components/doc-operations/presentation-operation/index.js +44 -0
- package/dist/components/doc-operations/revision-operations/changes-count/index.css +34 -0
- package/dist/components/doc-operations/revision-operations/changes-count/index.js +120 -0
- package/dist/components/doc-operations/revision-operations/index.js +256 -0
- package/dist/components/doc-operations/revision-operations/more-revision-operations/index.css +53 -0
- package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +73 -0
- package/dist/components/doc-operations/revision-operations/publish-revision/index.js +28 -0
- package/dist/components/doc-operations/revision-operations/revisions/index.css +16 -0
- package/dist/components/doc-operations/revision-operations/revisions/index.js +69 -0
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.css +126 -0
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js +265 -0
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.css +34 -0
- package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.js +69 -0
- package/dist/components/doc-operations/revision-operations/view-changes/index.css +3 -0
- package/dist/components/doc-operations/revision-operations/view-changes/index.js +79 -0
- package/dist/components/doc-operations/share-operation/index.js +29 -0
- package/dist/components/doc-operations/style.css +93 -0
- package/dist/components/draft-dropdown/index.js +83 -0
- package/dist/components/draft-dropdown/style.css +43 -0
- package/dist/components/error-boundary/error-page.css +16 -0
- package/dist/components/error-boundary/error-page.js +49 -0
- package/dist/components/error-boundary/index.js +47 -0
- package/dist/components/modal-header/index.css +18 -0
- package/dist/components/modal-header/index.js +27 -0
- package/dist/components/modal-portal/index.js +41 -0
- package/dist/components/switch/index.css +14 -0
- package/dist/components/switch/index.js +35 -0
- package/dist/components/tip-dialog/index.css +48 -0
- package/dist/components/tip-dialog/index.js +117 -0
- package/dist/components/tip-message/index.js +189 -0
- package/dist/components/tip-message/style.css +15 -0
- package/dist/constants/index.js +46 -0
- package/dist/hooks/index.js +12 -0
- package/dist/hooks/use-document.js +90 -0
- package/dist/index.js +75 -0
- package/dist/layout/content.js +35 -0
- package/dist/layout/header.js +35 -0
- package/dist/layout/index.js +24 -0
- package/dist/layout/layout.css +32 -0
- package/dist/layout/layout.js +65 -0
- package/dist/model/index.js +13 -0
- package/dist/model/revision.js +42 -0
- package/dist/pages/diff-viewer.js +8 -0
- package/dist/pages/published-revision-viewer.js +100 -0
- package/dist/pages/sdoc-wiki-editor.js +57 -0
- package/dist/pages/simple-editor.js +162 -0
- package/dist/pages/simple-viewer.js +120 -0
- package/dist/pages/wiki-viewer.js +23 -0
- package/dist/utils/date-utils.js +92 -0
- package/dist/utils/index.js +48 -0
- package/package.json +48 -0
|
@@ -0,0 +1,162 @@
|
|
|
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _sdocEditor = require("@seafile/sdoc-editor");
|
|
13
|
+
var _docInfo = _interopRequireDefault(require("../components/doc-info"));
|
|
14
|
+
var _docOperations = _interopRequireDefault(require("../components/doc-operations"));
|
|
15
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
16
|
+
var _hooks = require("../hooks");
|
|
17
|
+
var _layout = _interopRequireWildcard(require("../layout"));
|
|
18
|
+
var _utils = require("../utils");
|
|
19
|
+
require("../assets/css/simple-editor.css");
|
|
20
|
+
var SimpleEditor = function SimpleEditor(_ref) {
|
|
21
|
+
var isStarred = _ref.isStarred,
|
|
22
|
+
isDraft = _ref.isDraft,
|
|
23
|
+
showComment = _ref.showComment,
|
|
24
|
+
_ref$showDocOperation = _ref.showDocOperations,
|
|
25
|
+
showDocOperations = _ref$showDocOperation === void 0 ? true : _ref$showDocOperation,
|
|
26
|
+
t = _ref.t,
|
|
27
|
+
_ref$plugins = _ref.plugins,
|
|
28
|
+
plugins = _ref$plugins === void 0 ? [] : _ref$plugins,
|
|
29
|
+
collaborators = _ref.collaborators;
|
|
30
|
+
_sdocEditor.context.initApi();
|
|
31
|
+
var editorRef = (0, _react.useRef)(null);
|
|
32
|
+
var _useDocument = (0, _hooks.useDocument)(),
|
|
33
|
+
isFirstLoading = _useDocument.isFirstLoading,
|
|
34
|
+
isReloading = _useDocument.isReloading,
|
|
35
|
+
errorMessage = _useDocument.errorMessage,
|
|
36
|
+
document = _useDocument.document,
|
|
37
|
+
reloadDocument = _useDocument.reloadDocument,
|
|
38
|
+
setErrorMessage = _useDocument.setErrorMessage;
|
|
39
|
+
var _useState = (0, _react.useState)(false),
|
|
40
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
41
|
+
isShowChanges = _useState2[0],
|
|
42
|
+
setShowChanges = _useState2[1];
|
|
43
|
+
var _useState3 = (0, _react.useState)(null),
|
|
44
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
45
|
+
revisionContent = _useState4[0],
|
|
46
|
+
setRevisionContent = _useState4[1];
|
|
47
|
+
var _useState5 = (0, _react.useState)({}),
|
|
48
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
49
|
+
changes = _useState6[0],
|
|
50
|
+
setChanges = _useState6[1];
|
|
51
|
+
var initIsPublished = _sdocEditor.context.getSetting('isPublished') || false;
|
|
52
|
+
var isSdocRevision = _sdocEditor.context.getSetting('isSdocRevision') || false;
|
|
53
|
+
var _useState7 = (0, _react.useState)(initIsPublished),
|
|
54
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
55
|
+
isPublished = _useState8[0],
|
|
56
|
+
setPublished = _useState8[1];
|
|
57
|
+
|
|
58
|
+
// useMount: reset title
|
|
59
|
+
(0, _react.useEffect)(function () {
|
|
60
|
+
(0, _utils.resetWebTitle)(t);
|
|
61
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
62
|
+
}, []);
|
|
63
|
+
var setDiffChanges = (0, _react.useCallback)(function (diff) {
|
|
64
|
+
setChanges(diff);
|
|
65
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
66
|
+
}, [isShowChanges]);
|
|
67
|
+
var handleViewChangesToggle = (0, _react.useCallback)(function (isShowChanges) {
|
|
68
|
+
if (isPublished) {
|
|
69
|
+
setShowChanges(isShowChanges);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (!isShowChanges) {
|
|
73
|
+
setShowChanges(isShowChanges);
|
|
74
|
+
reloadDocument();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Get the contents of the current revision
|
|
79
|
+
var revisionContentValue = editorRef.current.getSlateValue();
|
|
80
|
+
setRevisionContent(revisionContentValue);
|
|
81
|
+
setShowChanges(isShowChanges);
|
|
82
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
|
+
}, [document, editorRef.current, isPublished]);
|
|
84
|
+
var handleRevisionMerged = (0, _react.useCallback)(function (value) {
|
|
85
|
+
setShowChanges(false);
|
|
86
|
+
editorRef.current.setSlateValue(value);
|
|
87
|
+
editorRef.current.updateDocumentVersion(value);
|
|
88
|
+
}, []);
|
|
89
|
+
var handleRevisionPublished = (0, _react.useCallback)(function () {
|
|
90
|
+
_sdocEditor.context.getPublishedRevisionContent().then(function (res) {
|
|
91
|
+
var revisionContentString = res.data.content;
|
|
92
|
+
var document = JSON.parse(revisionContentString);
|
|
93
|
+
setRevisionContent(document);
|
|
94
|
+
setPublished(true);
|
|
95
|
+
_sdocEditor.context.settings['isPublished'] = true;
|
|
96
|
+
var oldAssetsUrl = _sdocEditor.context.getSetting('assetsUrl');
|
|
97
|
+
var docUuid = _sdocEditor.context.getSetting('docUuid');
|
|
98
|
+
var originDocUuid = _sdocEditor.context.getSetting('originDocUuid');
|
|
99
|
+
_sdocEditor.context.settings['assetsUrl'] = oldAssetsUrl.replace(docUuid, originDocUuid);
|
|
100
|
+
})["catch"](function (error) {
|
|
101
|
+
// eslint-disable-next-line
|
|
102
|
+
console.log(error);
|
|
103
|
+
var errorMessage = 'Load_doc_content_error';
|
|
104
|
+
if (error && error.response) {
|
|
105
|
+
var _ref2 = error.response.data || {},
|
|
106
|
+
error_type = _ref2.error_type;
|
|
107
|
+
if (error_type === 'content_invalid') {
|
|
108
|
+
errorMessage = 'Sdoc_format_invalid';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
setErrorMessage(errorMessage);
|
|
112
|
+
setPublished(true);
|
|
113
|
+
});
|
|
114
|
+
}, [setErrorMessage]);
|
|
115
|
+
var docOperationsProps = {
|
|
116
|
+
isStarred: isStarred,
|
|
117
|
+
isPublished: isPublished,
|
|
118
|
+
isShowChanges: isShowChanges,
|
|
119
|
+
changes: changes,
|
|
120
|
+
handleViewChangesToggle: handleViewChangesToggle,
|
|
121
|
+
handleRevisionMerged: handleRevisionMerged,
|
|
122
|
+
handleRevisionPublished: handleRevisionPublished
|
|
123
|
+
};
|
|
124
|
+
if (isFirstLoading) {
|
|
125
|
+
return /*#__PURE__*/_react["default"].createElement(_sdocEditor.Loading, null);
|
|
126
|
+
}
|
|
127
|
+
if (errorMessage) {
|
|
128
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
129
|
+
className: "error-page"
|
|
130
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
131
|
+
className: "error-tip"
|
|
132
|
+
}, t(errorMessage)));
|
|
133
|
+
}
|
|
134
|
+
return /*#__PURE__*/_react["default"].createElement(_errorBoundary["default"], null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.CollaboratorsProvider, {
|
|
135
|
+
collaborators: collaborators
|
|
136
|
+
}, /*#__PURE__*/_react["default"].createElement(_sdocEditor.PluginsProvider, {
|
|
137
|
+
plugins: plugins,
|
|
138
|
+
showComment: showComment
|
|
139
|
+
}, /*#__PURE__*/_react["default"].createElement(_layout["default"], null, /*#__PURE__*/_react["default"].createElement(_layout.Header, null, /*#__PURE__*/_react["default"].createElement(_docInfo["default"], {
|
|
140
|
+
isStarred: isStarred,
|
|
141
|
+
isDraft: isDraft,
|
|
142
|
+
isPublished: isPublished,
|
|
143
|
+
isEditMode: isPublished ? false : !isShowChanges
|
|
144
|
+
}), showDocOperations && /*#__PURE__*/_react["default"].createElement(_docOperations["default"], docOperationsProps)), /*#__PURE__*/_react["default"].createElement(_layout.Content, null, !isSdocRevision && /*#__PURE__*/_react["default"].createElement(_sdocEditor.SDocEditor, {
|
|
145
|
+
ref: editorRef,
|
|
146
|
+
isReloading: isReloading,
|
|
147
|
+
document: document,
|
|
148
|
+
showComment: showComment
|
|
149
|
+
}), isSdocRevision && !isPublished && /*#__PURE__*/_react["default"].createElement(_sdocEditor.RevisionEditor, {
|
|
150
|
+
ref: editorRef,
|
|
151
|
+
isReloading: isReloading,
|
|
152
|
+
document: document,
|
|
153
|
+
revisionContent: revisionContent,
|
|
154
|
+
isShowChanges: isShowChanges,
|
|
155
|
+
didMountCallback: setDiffChanges
|
|
156
|
+
}), isSdocRevision && isPublished && /*#__PURE__*/_react["default"].createElement(_sdocEditor.PublishedRevisionDiffViewer, {
|
|
157
|
+
revisionContent: revisionContent,
|
|
158
|
+
isShowChanges: isShowChanges,
|
|
159
|
+
didMountCallback: setDiffChanges
|
|
160
|
+
}))))));
|
|
161
|
+
};
|
|
162
|
+
var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(SimpleEditor);
|
|
@@ -0,0 +1,120 @@
|
|
|
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 _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
13
|
+
var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
|
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
|
+
var _reactI18next = require("react-i18next");
|
|
17
|
+
var _sdocEditor = require("@seafile/sdoc-editor");
|
|
18
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
19
|
+
var _layout = _interopRequireWildcard(require("../layout"));
|
|
20
|
+
require("../assets/css/simple-viewer.css");
|
|
21
|
+
var SimpleViewer = /*#__PURE__*/function (_React$Component) {
|
|
22
|
+
function SimpleViewer(props) {
|
|
23
|
+
var _this;
|
|
24
|
+
(0, _classCallCheck2["default"])(this, SimpleViewer);
|
|
25
|
+
_this = (0, _callSuper2["default"])(this, SimpleViewer, [props]);
|
|
26
|
+
_this.state = {
|
|
27
|
+
isContextInit: false,
|
|
28
|
+
errorMessage: null,
|
|
29
|
+
document: null
|
|
30
|
+
};
|
|
31
|
+
_this.config = null;
|
|
32
|
+
return _this;
|
|
33
|
+
}
|
|
34
|
+
(0, _inherits2["default"])(SimpleViewer, _React$Component);
|
|
35
|
+
return (0, _createClass2["default"])(SimpleViewer, [{
|
|
36
|
+
key: "componentDidMount",
|
|
37
|
+
value: function () {
|
|
38
|
+
var _componentDidMount = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee() {
|
|
39
|
+
var contentRes, result;
|
|
40
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
41
|
+
while (1) switch (_context.prev = _context.next) {
|
|
42
|
+
case 0:
|
|
43
|
+
_sdocEditor.context.initApi();
|
|
44
|
+
_context.prev = 1;
|
|
45
|
+
_context.next = 4;
|
|
46
|
+
return _sdocEditor.context.getFileContent();
|
|
47
|
+
case 4:
|
|
48
|
+
contentRes = _context.sent;
|
|
49
|
+
result = contentRes.data || null;
|
|
50
|
+
this.setState({
|
|
51
|
+
isContextInit: true,
|
|
52
|
+
document: result
|
|
53
|
+
});
|
|
54
|
+
_context.next = 13;
|
|
55
|
+
break;
|
|
56
|
+
case 9:
|
|
57
|
+
_context.prev = 9;
|
|
58
|
+
_context.t0 = _context["catch"](1);
|
|
59
|
+
// eslint-disable-next-line
|
|
60
|
+
console.log(_context.t0);
|
|
61
|
+
this.setState({
|
|
62
|
+
isContextInit: true,
|
|
63
|
+
errorMessage: 'Load_doc_content_error',
|
|
64
|
+
document: null
|
|
65
|
+
});
|
|
66
|
+
case 13:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context.stop();
|
|
69
|
+
}
|
|
70
|
+
}, _callee, this, [[1, 9]]);
|
|
71
|
+
}));
|
|
72
|
+
function componentDidMount() {
|
|
73
|
+
return _componentDidMount.apply(this, arguments);
|
|
74
|
+
}
|
|
75
|
+
return componentDidMount;
|
|
76
|
+
}()
|
|
77
|
+
}, {
|
|
78
|
+
key: "render",
|
|
79
|
+
value: function render() {
|
|
80
|
+
var _this$state = this.state,
|
|
81
|
+
isContextInit = _this$state.isContextInit,
|
|
82
|
+
errorMessage = _this$state.errorMessage,
|
|
83
|
+
document = _this$state.document;
|
|
84
|
+
var t = this.props.t;
|
|
85
|
+
if (!isContextInit) {
|
|
86
|
+
return /*#__PURE__*/_react["default"].createElement(_sdocEditor.Loading, null);
|
|
87
|
+
}
|
|
88
|
+
if (errorMessage) {
|
|
89
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
90
|
+
className: "d-flex justify-content-center"
|
|
91
|
+
}, t(errorMessage));
|
|
92
|
+
}
|
|
93
|
+
var _context$getSettings = _sdocEditor.context.getSettings(),
|
|
94
|
+
docName = _context$getSettings.docName,
|
|
95
|
+
sharePermissionText = _context$getSettings.sharePermissionText,
|
|
96
|
+
downloadURL = _context$getSettings.downloadURL;
|
|
97
|
+
var sdocViewProps = {
|
|
98
|
+
document: document,
|
|
99
|
+
showToolbar: _sdocEditor.isMobile ? false : true,
|
|
100
|
+
showOutline: _sdocEditor.isMobile ? false : true,
|
|
101
|
+
showComment: false
|
|
102
|
+
};
|
|
103
|
+
return /*#__PURE__*/_react["default"].createElement(_errorBoundary["default"], null, /*#__PURE__*/_react["default"].createElement(_layout["default"], null, /*#__PURE__*/_react["default"].createElement(_layout.Header, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
104
|
+
className: "doc-info"
|
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
106
|
+
className: "doc-name my-0"
|
|
107
|
+
}, docName), sharePermissionText && /*#__PURE__*/_react["default"].createElement("span", {
|
|
108
|
+
className: "sdoc-share-permission ml-2"
|
|
109
|
+
}, sharePermissionText)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
110
|
+
className: "doc-ops"
|
|
111
|
+
}, downloadURL && /*#__PURE__*/_react["default"].createElement("a", {
|
|
112
|
+
href: downloadURL,
|
|
113
|
+
className: "op-item"
|
|
114
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
115
|
+
className: "sdocfont sdoc-download"
|
|
116
|
+
})))), /*#__PURE__*/_react["default"].createElement(_layout.Content, null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.SDocViewer, sdocViewProps))));
|
|
117
|
+
}
|
|
118
|
+
}]);
|
|
119
|
+
}(_react["default"].Component);
|
|
120
|
+
var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(SimpleViewer);
|
|
@@ -0,0 +1,23 @@
|
|
|
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 _sdocEditor = require("@seafile/sdoc-editor");
|
|
10
|
+
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
11
|
+
require("../assets/css/simple-viewer.css");
|
|
12
|
+
var WikiViewer = function WikiViewer(_ref) {
|
|
13
|
+
var document = _ref.document,
|
|
14
|
+
showOutline = _ref.showOutline,
|
|
15
|
+
scrollRef = _ref.scrollRef;
|
|
16
|
+
_sdocEditor.context.initApi();
|
|
17
|
+
return /*#__PURE__*/_react["default"].createElement(_errorBoundary["default"], null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.SDocWikiViewer, {
|
|
18
|
+
document: document,
|
|
19
|
+
showOutline: showOutline,
|
|
20
|
+
scrollRef: scrollRef
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
var _default = exports["default"] = WikiViewer;
|
|
@@ -0,0 +1,92 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
10
|
+
var DateUtils = /*#__PURE__*/function () {
|
|
11
|
+
function DateUtils() {
|
|
12
|
+
(0, _classCallCheck2["default"])(this, DateUtils);
|
|
13
|
+
}
|
|
14
|
+
return (0, _createClass2["default"])(DateUtils, null, [{
|
|
15
|
+
key: "format",
|
|
16
|
+
value:
|
|
17
|
+
/**
|
|
18
|
+
* return the formatted date with target format.
|
|
19
|
+
* @param {string|date object} date
|
|
20
|
+
* @param {string} format
|
|
21
|
+
* @returns formatted date
|
|
22
|
+
*/
|
|
23
|
+
function format(date, _format) {
|
|
24
|
+
var dateObject = this.getValidDate(date);
|
|
25
|
+
if (!dateObject) {
|
|
26
|
+
return '';
|
|
27
|
+
}
|
|
28
|
+
var upperCaseFormat = _format && _format.toUpperCase();
|
|
29
|
+
var year = dateObject.getFullYear();
|
|
30
|
+
var month = dateObject.getMonth() + 1;
|
|
31
|
+
var day = dateObject.getDate();
|
|
32
|
+
var displayMonth = month < 10 ? "0".concat(month) : month;
|
|
33
|
+
var displayDay = day < 10 ? "0".concat(day) : day;
|
|
34
|
+
switch (upperCaseFormat) {
|
|
35
|
+
case 'YYYY-MM-DD HH:MM:SS':
|
|
36
|
+
{
|
|
37
|
+
var hours = dateObject.getHours();
|
|
38
|
+
var minutes = dateObject.getMinutes();
|
|
39
|
+
var seconds = dateObject.getSeconds();
|
|
40
|
+
var disPlayHours = hours < 10 ? "0".concat(hours) : hours;
|
|
41
|
+
var disPlayMinutes = minutes < 10 ? "0".concat(minutes) : minutes;
|
|
42
|
+
var disPlaySeconds = seconds < 10 ? "0".concat(seconds) : seconds;
|
|
43
|
+
return "".concat(year, "-").concat(displayMonth, "-").concat(displayDay, " ").concat(disPlayHours, ":").concat(disPlayMinutes, ":").concat(disPlaySeconds);
|
|
44
|
+
}
|
|
45
|
+
case 'YYYY-MM-DD HH:MM':
|
|
46
|
+
{
|
|
47
|
+
var _hours = dateObject.getHours();
|
|
48
|
+
var _minutes = dateObject.getMinutes();
|
|
49
|
+
var _disPlayHours = _hours < 10 ? "0".concat(_hours) : _hours;
|
|
50
|
+
var _disPlayMinutes = _minutes < 10 ? "0".concat(_minutes) : _minutes;
|
|
51
|
+
return "".concat(year, "-").concat(displayMonth, "-").concat(displayDay, " ").concat(_disPlayHours, ":").concat(_disPlayMinutes);
|
|
52
|
+
}
|
|
53
|
+
default:
|
|
54
|
+
{
|
|
55
|
+
return "".concat(year, "-").concat(displayMonth, "-").concat(displayDay);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
key: "isValidDateObject",
|
|
61
|
+
value: function isValidDateObject(dateObject) {
|
|
62
|
+
return dateObject instanceof Date && !isNaN(dateObject.getTime());
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
key: "getValidDate",
|
|
66
|
+
value: function getValidDate(date) {
|
|
67
|
+
if (!date) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
var isDateTypeString = typeof date === 'string';
|
|
71
|
+
var dateString = date;
|
|
72
|
+
var dateObject = date;
|
|
73
|
+
if (isDateTypeString) {
|
|
74
|
+
if (dateString.split(' ').length > 1 || dateString.includes('T')) {
|
|
75
|
+
dateObject = new Date(date);
|
|
76
|
+
} else {
|
|
77
|
+
// given date is without time precision
|
|
78
|
+
dateString = "".concat(date, " 00:00:00");
|
|
79
|
+
dateObject = new Date(dateString);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (this.isValidDateObject(dateObject)) return dateObject;
|
|
83
|
+
if (!isDateTypeString) return null;
|
|
84
|
+
|
|
85
|
+
// ios phone and safari browser not support use '2021-09-10 12:30', support '2021/09/10 12:30'
|
|
86
|
+
dateObject = new Date(dateString.replace(/-/g, '/'));
|
|
87
|
+
if (this.isValidDateObject(dateObject)) return dateObject;
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}]);
|
|
91
|
+
}();
|
|
92
|
+
var _default = exports["default"] = DateUtils;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "DateUtils", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _dateUtils["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.resetWebTitle = exports.getImageFileNameWithTimestamp = exports.getErrorMsg = exports.getDirPath = void 0;
|
|
14
|
+
var _sdocEditor = require("@seafile/sdoc-editor");
|
|
15
|
+
var _dateUtils = _interopRequireDefault(require("./date-utils"));
|
|
16
|
+
var getDirPath = exports.getDirPath = function getDirPath(path) {
|
|
17
|
+
var dir = path.slice(0, path.lastIndexOf('/'));
|
|
18
|
+
if (dir === '') {
|
|
19
|
+
return '/';
|
|
20
|
+
} else {
|
|
21
|
+
return dir;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
var getImageFileNameWithTimestamp = exports.getImageFileNameWithTimestamp = function getImageFileNameWithTimestamp() {
|
|
25
|
+
var d = Date.now();
|
|
26
|
+
return 'image-' + d.toString() + '.png';
|
|
27
|
+
};
|
|
28
|
+
var getErrorMsg = exports.getErrorMsg = function getErrorMsg(error) {
|
|
29
|
+
var errorMsg = '';
|
|
30
|
+
if (error.response) {
|
|
31
|
+
if (error.response.status === 403) {
|
|
32
|
+
errorMsg = 'Permission_denied';
|
|
33
|
+
} else if (error.response.data && error.response.data['error_msg']) {
|
|
34
|
+
errorMsg = error.response.data['error_msg'];
|
|
35
|
+
} else {
|
|
36
|
+
errorMsg = 'Error';
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
errorMsg = 'Please_check_the_network';
|
|
40
|
+
}
|
|
41
|
+
return errorMsg;
|
|
42
|
+
};
|
|
43
|
+
var resetWebTitle = exports.resetWebTitle = function resetWebTitle(t) {
|
|
44
|
+
var isSdocRevision = _sdocEditor.context.getSetting('isSdocRevision');
|
|
45
|
+
var originFilename = _sdocEditor.context.getSetting('originFilename');
|
|
46
|
+
if (!isSdocRevision) return;
|
|
47
|
+
window.document.getElementsByTagName('title')[0].innerText = "".concat(t('Revision'), " - ").concat(originFilename);
|
|
48
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@seafile/seafile-sdoc-editor",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"author": "shuntian <978987373@qq.com>",
|
|
5
|
+
"homepage": "https://github.com/seafileltd/sea-sdoc-editor#readme",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"directories": {
|
|
9
|
+
"lib": "lib",
|
|
10
|
+
"test": "__tests__"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/",
|
|
14
|
+
"package.json"
|
|
15
|
+
],
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/seafileltd/sea-sdoc-editor.git"
|
|
19
|
+
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "node ./__tests__/seafile-sdoc-editor.test.js",
|
|
22
|
+
"clean": "rm -rf dist && mkdir dist",
|
|
23
|
+
"pub:dist": "export BABEL_ENV=production && babel src --out-dir dist --copy-files",
|
|
24
|
+
"prepublishOnly": "npm run clean && npm run pub:dist"
|
|
25
|
+
},
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/seafileltd/sea-sdoc-editor/issues"
|
|
28
|
+
},
|
|
29
|
+
"description": "",
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@seafile/print-js": "1.6.6",
|
|
32
|
+
"classnames": "2.3.2",
|
|
33
|
+
"dayjs": "1.10.7",
|
|
34
|
+
"@seafile/sdoc-editor": "2.0.83"
|
|
35
|
+
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"i18next": "^22.4.0",
|
|
38
|
+
"i18next-browser-languagedetector": "^7.0.1",
|
|
39
|
+
"i18next-xhr-backend": "^3.2.2",
|
|
40
|
+
"react-i18next": "^12.1.4",
|
|
41
|
+
"react": "^18.3.0",
|
|
42
|
+
"react-dom": "^18.3.1",
|
|
43
|
+
"reactstrap": "^9.2.3"
|
|
44
|
+
},
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public"
|
|
47
|
+
}
|
|
48
|
+
}
|