@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.
Files changed (65) hide show
  1. package/dist/assets/css/plugin-editor.css +7 -0
  2. package/dist/assets/css/simple-editor.css +9 -0
  3. package/dist/assets/css/simple-viewer.css +6 -0
  4. package/dist/assets/images/content-replaced.png +0 -0
  5. package/dist/assets/images/revision-avatar.png +0 -0
  6. package/dist/assets/images/sdoc-freezed.png +0 -0
  7. package/dist/components/doc-info/index.css +102 -0
  8. package/dist/components/doc-info/index.js +122 -0
  9. package/dist/components/doc-operations/collaborators-operation/collaborators-popover.css +74 -0
  10. package/dist/components/doc-operations/collaborators-operation/collaborators-popover.js +60 -0
  11. package/dist/components/doc-operations/collaborators-operation/index.js +104 -0
  12. package/dist/components/doc-operations/index.js +47 -0
  13. package/dist/components/doc-operations/more-operations.js +167 -0
  14. package/dist/components/doc-operations/plugins-operations.js +56 -0
  15. package/dist/components/doc-operations/presentation-operation/index.js +44 -0
  16. package/dist/components/doc-operations/revision-operations/changes-count/index.css +34 -0
  17. package/dist/components/doc-operations/revision-operations/changes-count/index.js +120 -0
  18. package/dist/components/doc-operations/revision-operations/index.js +256 -0
  19. package/dist/components/doc-operations/revision-operations/more-revision-operations/index.css +53 -0
  20. package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +73 -0
  21. package/dist/components/doc-operations/revision-operations/publish-revision/index.js +28 -0
  22. package/dist/components/doc-operations/revision-operations/revisions/index.css +16 -0
  23. package/dist/components/doc-operations/revision-operations/revisions/index.js +69 -0
  24. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.css +126 -0
  25. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/index.js +265 -0
  26. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.css +34 -0
  27. package/dist/components/doc-operations/revision-operations/revisions/revisions-dialog/revision-operation/index.js +69 -0
  28. package/dist/components/doc-operations/revision-operations/view-changes/index.css +3 -0
  29. package/dist/components/doc-operations/revision-operations/view-changes/index.js +79 -0
  30. package/dist/components/doc-operations/share-operation/index.js +29 -0
  31. package/dist/components/doc-operations/style.css +93 -0
  32. package/dist/components/draft-dropdown/index.js +83 -0
  33. package/dist/components/draft-dropdown/style.css +43 -0
  34. package/dist/components/error-boundary/error-page.css +16 -0
  35. package/dist/components/error-boundary/error-page.js +49 -0
  36. package/dist/components/error-boundary/index.js +47 -0
  37. package/dist/components/modal-header/index.css +18 -0
  38. package/dist/components/modal-header/index.js +27 -0
  39. package/dist/components/modal-portal/index.js +41 -0
  40. package/dist/components/switch/index.css +14 -0
  41. package/dist/components/switch/index.js +35 -0
  42. package/dist/components/tip-dialog/index.css +48 -0
  43. package/dist/components/tip-dialog/index.js +117 -0
  44. package/dist/components/tip-message/index.js +189 -0
  45. package/dist/components/tip-message/style.css +15 -0
  46. package/dist/constants/index.js +46 -0
  47. package/dist/hooks/index.js +12 -0
  48. package/dist/hooks/use-document.js +90 -0
  49. package/dist/index.js +75 -0
  50. package/dist/layout/content.js +35 -0
  51. package/dist/layout/header.js +35 -0
  52. package/dist/layout/index.js +24 -0
  53. package/dist/layout/layout.css +32 -0
  54. package/dist/layout/layout.js +65 -0
  55. package/dist/model/index.js +13 -0
  56. package/dist/model/revision.js +42 -0
  57. package/dist/pages/diff-viewer.js +8 -0
  58. package/dist/pages/published-revision-viewer.js +100 -0
  59. package/dist/pages/sdoc-wiki-editor.js +57 -0
  60. package/dist/pages/simple-editor.js +162 -0
  61. package/dist/pages/simple-viewer.js +120 -0
  62. package/dist/pages/wiki-viewer.js +23 -0
  63. package/dist/utils/date-utils.js +92 -0
  64. package/dist/utils/index.js +48 -0
  65. package/package.json +48 -0
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TIP_TYPE = exports.TIP_TITLE = exports.TIP_CONTENT = exports.NEW_REVISION = exports.EXTERNAL_EVENT = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _sdocEditor = require("@seafile/sdoc-editor");
10
+ var _TIP_TITLE, _TIP_CONTENT;
11
+ var EXTERNAL_EVENT = exports.EXTERNAL_EVENT = {
12
+ INTERNAL_LINK_CLICK: 'internal_link_click',
13
+ TOGGLE_STAR: 'toggle_star',
14
+ UNMARK_AS_DRAFT: 'unmark_as_draft',
15
+ SHARE_SDOC: 'share_sdoc',
16
+ FREEZE_DOCUMENT: 'freeze_document',
17
+ UNFREEZE: 'unfreeze',
18
+ // change internal event to external event
19
+ // editor
20
+ REFRESH_DOCUMENT: _sdocEditor.INTERNAL_EVENT.REFRESH_DOCUMENT,
21
+ NEW_NOTIFICATION: _sdocEditor.INTERNAL_EVENT.NEW_NOTIFICATION,
22
+ CLEAR_NOTIFICATION: _sdocEditor.INTERNAL_EVENT.CLEAR_NOTIFICATION,
23
+ // wiki
24
+ CREATE_SDOC_FILE: _sdocEditor.INTERNAL_EVENT.CREATE_SDOC_FILE,
25
+ CREATE_WIKI_PAGE: _sdocEditor.INTERNAL_EVENT.CREATE_WIKI_PAGE,
26
+ // document
27
+ IMAGE_COLUMN_TOGGLE: _sdocEditor.INTERNAL_EVENT.IMAGE_COLUMN_TOGGLE,
28
+ COLLABORATORS_UPDATED: 'collaborators_updated',
29
+ CHANGE_HEADER_WIDTH: 'change_header_width'
30
+ };
31
+ var NEW_REVISION = exports.NEW_REVISION = 'new_revision';
32
+ var TIP_TYPE = exports.TIP_TYPE = {
33
+ DELETE_NO_CHANGES_REVISION: 'delete_no_changes_revision',
34
+ MERGE: 'merge',
35
+ HAS_CONFLICT_BEFORE_PUBLISH: 'has_conflict_before_publish',
36
+ HAS_BEEN_PUBLISHED: 'has_been_published',
37
+ HAS_BEEN_REPLACED: 'has_been_merge',
38
+ HAS_CONFLICT_BEFORE_VIEW_CHANGES: 'has_conflict_before_view_changes',
39
+ HAS_BEEN_REMOVED: 'has_been_removed',
40
+ CHECKING: 'checking',
41
+ PUBLISHING: 'publishing',
42
+ DELETE_REVISION: 'delete_revision',
43
+ SOURCE_DOCUMENT_CHANGED: 'source_document_changed'
44
+ };
45
+ var TIP_TITLE = exports.TIP_TITLE = (_TIP_TITLE = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_TIP_TITLE, TIP_TYPE.DELETE_NO_CHANGES_REVISION, 'Tip'), TIP_TYPE.MERGE, 'Tip'), TIP_TYPE.HAS_CONFLICT_BEFORE_PUBLISH, 'Tip'), TIP_TYPE.HAS_BEEN_PUBLISHED, 'Tip'), TIP_TYPE.HAS_BEEN_REPLACED, 'Tip'), TIP_TYPE.HAS_CONFLICT_BEFORE_VIEW_CHANGES, 'Tip'), TIP_TYPE.HAS_BEEN_REMOVED, 'Tip'), TIP_TYPE.CHECKING, 'Tip'), TIP_TYPE.PUBLISHING, 'Tip'), TIP_TYPE.DELETE_REVISION, 'Delete_revision'), (0, _defineProperty2["default"])(_TIP_TITLE, TIP_TYPE.SOURCE_DOCUMENT_CHANGED, 'Tip'));
46
+ var TIP_CONTENT = exports.TIP_CONTENT = (_TIP_CONTENT = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_TIP_CONTENT, TIP_TYPE.DELETE_NO_CHANGES_REVISION, 'Rebase_delete_no_change_revision_tip'), TIP_TYPE.MERGE, 'Merge_tip'), TIP_TYPE.HAS_CONFLICT_BEFORE_PUBLISH, 'Has_conflict_before_publish_tip'), TIP_TYPE.HAS_BEEN_PUBLISHED, 'Has_been_published_tip'), TIP_TYPE.HAS_BEEN_REPLACED, 'Has_been_replaced_tip'), TIP_TYPE.HAS_CONFLICT_BEFORE_VIEW_CHANGES, 'Has_conflict_before_view_changes_tip'), TIP_TYPE.HAS_BEEN_REMOVED, 'Has_been_removed_tip'), TIP_TYPE.CHECKING, 'Checking'), TIP_TYPE.PUBLISHING, 'Publishing'), TIP_TYPE.DELETE_REVISION, 'Delete_tip'), (0, _defineProperty2["default"])(_TIP_CONTENT, TIP_TYPE.SOURCE_DOCUMENT_CHANGED, 'Source_document_changed_tip'));
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useDocument", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _useDocument.useDocument;
10
+ }
11
+ });
12
+ var _useDocument = require("./use-document");
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useDocument = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
+ var _react = require("react");
10
+ var _sdocEditor = require("@seafile/sdoc-editor");
11
+ var useDocument = exports.useDocument = function useDocument() {
12
+ var isInitData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
13
+ var isSdocRevision = _sdocEditor.context.getSetting('isSdocRevision');
14
+ var isPublished = _sdocEditor.context.getSetting('isPublished');
15
+ var _useState = (0, _react.useState)(true),
16
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
17
+ isFirstLoading = _useState2[0],
18
+ setIsFirstLoading = _useState2[1];
19
+ var _useState3 = (0, _react.useState)(false),
20
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
21
+ isReloading = _useState4[0],
22
+ setIsReloading = _useState4[1];
23
+ var _useState5 = (0, _react.useState)({
24
+ version: 0,
25
+ children: [],
26
+ cursors: {}
27
+ }),
28
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
29
+ document = _useState6[0],
30
+ setDocument = _useState6[1];
31
+ var _useState7 = (0, _react.useState)(''),
32
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
33
+ errorMessage = _useState8[0],
34
+ setErrorMessage = _useState8[1];
35
+ var loadDocument = (0, _react.useCallback)(function () {
36
+ return new Promise(function (resolve, reject) {
37
+ _sdocEditor.context.getFileContent().then(function (res) {
38
+ var result = res.data;
39
+ resolve(result);
40
+ })["catch"](function (error) {
41
+ // eslint-disable-next-line
42
+ console.log(error);
43
+ var errorMessage = 'Load_doc_content_error';
44
+ if (error && error.response) {
45
+ var _ref = error.response.data || {},
46
+ error_type = _ref.error_type;
47
+ if (error_type === 'content_invalid') {
48
+ errorMessage = 'Sdoc_format_invalid';
49
+ }
50
+ }
51
+ reject(errorMessage);
52
+ });
53
+ });
54
+ }, []);
55
+ var reloadDocument = (0, _react.useCallback)(function () {
56
+ setIsReloading(true);
57
+ loadDocument().then(function (document) {
58
+ setDocument(document);
59
+ setIsReloading(false);
60
+ })["catch"](function (errorMessage) {
61
+ setIsReloading(false);
62
+ setErrorMessage(errorMessage);
63
+ setDocument(null);
64
+ setIsReloading(false);
65
+ });
66
+ }, [loadDocument]);
67
+ (0, _react.useEffect)(function () {
68
+ if (isSdocRevision && isPublished) return;
69
+ if (!isInitData) return;
70
+ loadDocument().then(function (document) {
71
+ setDocument(document);
72
+ setIsFirstLoading(false);
73
+ })["catch"](function (errorMessage) {
74
+ setErrorMessage(errorMessage);
75
+ setDocument(null);
76
+ setIsFirstLoading(false);
77
+ });
78
+
79
+ // eslint-disable-next-line react-hooks/exhaustive-deps
80
+ }, []);
81
+ return {
82
+ isFirstLoading: isFirstLoading,
83
+ isReloading: isReloading,
84
+ errorMessage: errorMessage,
85
+ document: document,
86
+ loadDocument: loadDocument,
87
+ reloadDocument: reloadDocument,
88
+ setErrorMessage: setErrorMessage
89
+ };
90
+ };
package/dist/index.js ADDED
@@ -0,0 +1,75 @@
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, "DiffViewer", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _diffViewer["default"];
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "DocInfo", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _docInfo["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "EXTERNAL_EVENT", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _constants.EXTERNAL_EVENT;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "EventBus", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _sdocEditor.EventBus;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "PublishedRevisionViewer", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _publishedRevisionViewer["default"];
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "SDocViewer", {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _sdocEditor.SDocViewer;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, "SdocWikiEditor", {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _sdocWikiEditor["default"];
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "SimpleEditor", {
50
+ enumerable: true,
51
+ get: function get() {
52
+ return _simpleEditor["default"];
53
+ }
54
+ });
55
+ Object.defineProperty(exports, "SimpleViewer", {
56
+ enumerable: true,
57
+ get: function get() {
58
+ return _simpleViewer["default"];
59
+ }
60
+ });
61
+ Object.defineProperty(exports, "WikiViewer", {
62
+ enumerable: true,
63
+ get: function get() {
64
+ return _wikiViewer["default"];
65
+ }
66
+ });
67
+ var _sdocEditor = require("@seafile/sdoc-editor");
68
+ var _docInfo = _interopRequireDefault(require("./components/doc-info"));
69
+ var _constants = require("./constants");
70
+ var _diffViewer = _interopRequireDefault(require("./pages/diff-viewer"));
71
+ var _publishedRevisionViewer = _interopRequireDefault(require("./pages/published-revision-viewer"));
72
+ var _sdocWikiEditor = _interopRequireDefault(require("./pages/sdoc-wiki-editor"));
73
+ var _simpleEditor = _interopRequireDefault(require("./pages/simple-editor"));
74
+ var _simpleViewer = _interopRequireDefault(require("./pages/simple-viewer"));
75
+ var _wikiViewer = _interopRequireDefault(require("./pages/wiki-viewer"));
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
12
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _classnames = _interopRequireDefault(require("classnames"));
16
+ var _excluded = ["children", "className"];
17
+ var Content = exports["default"] = /*#__PURE__*/function (_Component) {
18
+ function Content() {
19
+ (0, _classCallCheck2["default"])(this, Content);
20
+ return (0, _callSuper2["default"])(this, Content, arguments);
21
+ }
22
+ (0, _inherits2["default"])(Content, _Component);
23
+ return (0, _createClass2["default"])(Content, [{
24
+ key: "render",
25
+ value: function render() {
26
+ var _this$props = this.props,
27
+ children = _this$props.children,
28
+ className = _this$props.className,
29
+ restProps = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
30
+ return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
31
+ className: (0, _classnames["default"])('sdoc-editor-page-content', className)
32
+ }, restProps), children);
33
+ }
34
+ }]);
35
+ }(_react.Component);
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
12
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _classnames = _interopRequireDefault(require("classnames"));
16
+ var _excluded = ["children", "className"];
17
+ var Header = exports["default"] = /*#__PURE__*/function (_Component) {
18
+ function Header() {
19
+ (0, _classCallCheck2["default"])(this, Header);
20
+ return (0, _callSuper2["default"])(this, Header, arguments);
21
+ }
22
+ (0, _inherits2["default"])(Header, _Component);
23
+ return (0, _createClass2["default"])(Header, [{
24
+ key: "render",
25
+ value: function render() {
26
+ var _this$props = this.props,
27
+ children = _this$props.children,
28
+ className = _this$props.className,
29
+ restProps = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
30
+ return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
31
+ className: (0, _classnames["default"])('sdoc-editor-page-header d-flex justify-content-between align-items-center px-4', className)
32
+ }, restProps), children);
33
+ }
34
+ }]);
35
+ }(_react.Component);
@@ -0,0 +1,24 @@
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, "Content", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _content["default"];
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "Header", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _header["default"];
17
+ }
18
+ });
19
+ exports["default"] = void 0;
20
+ var _content = _interopRequireDefault(require("./content"));
21
+ var _header = _interopRequireDefault(require("./header"));
22
+ var _layout = _interopRequireDefault(require("./layout"));
23
+ require("./layout.css");
24
+ var _default = exports["default"] = _layout["default"];
@@ -0,0 +1,32 @@
1
+ body {
2
+ -webkit-print-color-adjust: exact;
3
+ print-color-adjust: exact;
4
+ }
5
+
6
+ #root, #wrapper {
7
+ height: 100%;
8
+ width: 100%;
9
+ display: flex;
10
+ }
11
+
12
+ .sdoc-editor-page-wrapper {
13
+ flex: 1;
14
+ display: flex;
15
+ flex-direction: column;
16
+ min-height: 0;
17
+ }
18
+
19
+ .sdoc-editor-page-wrapper .sdoc-editor-page-header {
20
+ border-bottom: 1px solid #e5e6e8;
21
+ flex-shrink: 0;
22
+ height: 56px;
23
+ position: relative;
24
+ z-index: 103;
25
+ background-color: #fff;
26
+ }
27
+
28
+ .sdoc-editor-page-wrapper .sdoc-editor-page-content {
29
+ flex: 1;
30
+ min-height: 0;
31
+ display: flex;
32
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _sdocEditor = require("@seafile/sdoc-editor");
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _excluded = ["children", "className"];
15
+ var Layout = function Layout(_ref) {
16
+ var children = _ref.children,
17
+ className = _ref.className,
18
+ restProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
19
+ var cacheHistoryFiles = function cacheHistoryFiles() {
20
+ var isPublished = _sdocEditor.context.getSetting('isPublished') || false;
21
+ var isSdocRevision = _sdocEditor.context.getSetting('isSdocRevision') || false;
22
+ if (isPublished) return;
23
+ if (isSdocRevision) return;
24
+ var docUuid = _sdocEditor.context.getSetting('docUuid');
25
+ var docName = _sdocEditor.context.getSetting('docName');
26
+ var recentFiles = _sdocEditor.LocalStorage.getItem('sdoc-recent-files', []);
27
+ var arr = [];
28
+ var newFile = {
29
+ doc_uuid: docUuid,
30
+ name: docName
31
+ };
32
+ if (recentFiles.length > 0) {
33
+ var isExist = recentFiles.find(function (item) {
34
+ return item.doc_uuid === docUuid;
35
+ });
36
+ if (isExist) return;
37
+ if (!isExist) {
38
+ var newRecentFiles = recentFiles.slice(0);
39
+ if (recentFiles.length === 10) {
40
+ newRecentFiles.shift();
41
+ }
42
+ arr = [newFile].concat((0, _toConsumableArray2["default"])(newRecentFiles));
43
+ }
44
+ } else {
45
+ arr.push(newFile);
46
+ }
47
+ _sdocEditor.LocalStorage.setItem('sdoc-recent-files', arr);
48
+ };
49
+ (0, _react.useEffect)(function () {
50
+ setTimeout(function () {
51
+ var url = window.location.href;
52
+ var id = url.slice(url.indexOf('#') + 1);
53
+ if (id) {
54
+ var element = document.getElementById(id);
55
+ element && element.scrollIntoView(true);
56
+ }
57
+ }, 500);
58
+ cacheHistoryFiles();
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ }, []);
61
+ return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
62
+ className: (0, _classnames["default"])('sdoc-editor-page-wrapper', className)
63
+ }, restProps), children);
64
+ };
65
+ var _default = exports["default"] = Layout;
@@ -0,0 +1,13 @@
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, "Revision", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _revision["default"];
11
+ }
12
+ });
13
+ var _revision = _interopRequireDefault(require("./revision"));
@@ -0,0 +1,42 @@
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 _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
10
+ var _utils = require("../utils");
11
+ var Revision = /*#__PURE__*/(0, _createClass2["default"])(function Revision(options) {
12
+ (0, _classCallCheck2["default"])(this, Revision);
13
+ this.id = options.revision_id || '';
14
+
15
+ // file info
16
+ this.repoId = options.repo_id || '';
17
+ this.docUuid = options.doc_uuid || '';
18
+ this.filePath = options.file_path || '';
19
+ this.filename = options.filename || '';
20
+ this.parentPath = options.parent_path || '';
21
+
22
+ // user
23
+ this.nickname = options.nickname || '';
24
+
25
+ // time
26
+ this.createdTime = _utils.DateUtils.format(options.created_at || '', 'YYYY-MM-DD HH:MM');
27
+ this.updatedTime = _utils.DateUtils.format(options.updated_at || '', 'YYYY-MM-DD HH:MM');
28
+
29
+ // publish
30
+ this.isPublished = options.is_published || false;
31
+ this.publisher = options.publisher || '';
32
+ this.publisherNickname = options.publisher_nickname || '';
33
+ this.publishFileVersion = options.publish_file_version || '';
34
+
35
+ // origin
36
+ this.originDocUuid = options.origin_doc_uuid || '';
37
+ this.originFilePath = options.origin_file_path || '';
38
+ this.originFileVersion = options.origin_file_version || '';
39
+ this.originFilename = options.origin_filename || '';
40
+ this.originParentPath = options.origin_parent_path || '';
41
+ });
42
+ var _default = exports["default"] = Revision;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _sdocEditor = require("@seafile/sdoc-editor");
8
+ var _default = exports["default"] = _sdocEditor.DiffViewer;
@@ -0,0 +1,100 @@
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 _layout = _interopRequireWildcard(require("../layout"));
17
+ var _utils = require("../utils");
18
+ require("../assets/css/simple-editor.css");
19
+ var PublishedRevisionViewer = function PublishedRevisionViewer() {
20
+ _sdocEditor.context.initApi();
21
+ var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
22
+ t = _useTranslation.t;
23
+ var _useState = (0, _react.useState)(true),
24
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
25
+ isFirstLoading = _useState2[0],
26
+ setIsFirstLoading = _useState2[1];
27
+ var _useState3 = (0, _react.useState)(''),
28
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
29
+ errorMessage = _useState4[0],
30
+ setErrorMessage = _useState4[1];
31
+ var _useState5 = (0, _react.useState)(false),
32
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
33
+ isShowChanges = _useState6[0],
34
+ setShowChanges = _useState6[1];
35
+ var _useState7 = (0, _react.useState)({}),
36
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
37
+ changes = _useState8[0],
38
+ setChanges = _useState8[1];
39
+ var _useState9 = (0, _react.useState)({}),
40
+ _useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
41
+ document = _useState0[0],
42
+ setDocument = _useState0[1];
43
+
44
+ // useMount: reset title
45
+ (0, _react.useEffect)(function () {
46
+ (0, _utils.resetWebTitle)(t);
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, []);
49
+ (0, _react.useEffect)(function () {
50
+ _sdocEditor.context.getPublishedRevisionContent().then(function (res) {
51
+ var revisionContentString = res.data.content;
52
+ var document = JSON.parse(revisionContentString);
53
+ setDocument(document);
54
+ setIsFirstLoading(false);
55
+ })["catch"](function (error) {
56
+ // eslint-disable-next-line
57
+ console.log(error);
58
+ var errorMessage = 'Load_doc_content_error';
59
+ if (error && error.response) {
60
+ var _ref = error.response.data || {},
61
+ error_type = _ref.error_type;
62
+ if (error_type === 'content_invalid') {
63
+ errorMessage = 'Sdoc_format_invalid';
64
+ }
65
+ }
66
+ setErrorMessage(errorMessage);
67
+ setIsFirstLoading(false);
68
+ });
69
+ }, []);
70
+ var setDiffChanges = (0, _react.useCallback)(function (diff) {
71
+ setChanges(diff);
72
+ }, []);
73
+ var handleViewChangesToggle = (0, _react.useCallback)(function (isShowChanges) {
74
+ setShowChanges(isShowChanges);
75
+ }, []);
76
+ if (isFirstLoading) {
77
+ return /*#__PURE__*/_react["default"].createElement(_sdocEditor.Loading, null);
78
+ }
79
+ if (errorMessage) {
80
+ return /*#__PURE__*/_react["default"].createElement("div", {
81
+ className: "error-page"
82
+ }, /*#__PURE__*/_react["default"].createElement("div", {
83
+ className: "error-tip"
84
+ }, t(errorMessage)));
85
+ }
86
+ 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(_docInfo["default"], {
87
+ isEditMode: false,
88
+ isPublished: true
89
+ }), /*#__PURE__*/_react["default"].createElement(_docOperations["default"], {
90
+ isShowChanges: isShowChanges,
91
+ changes: changes,
92
+ isPublished: true,
93
+ handleViewChangesToggle: handleViewChangesToggle
94
+ })), /*#__PURE__*/_react["default"].createElement(_layout.Content, null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.PublishedRevisionDiffViewer, {
95
+ isShowChanges: isShowChanges,
96
+ revisionContent: document,
97
+ didMountCallback: setDiffChanges
98
+ }))));
99
+ };
100
+ var _default = exports["default"] = PublishedRevisionViewer;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
11
+ var _sdocEditor = require("@seafile/sdoc-editor");
12
+ var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
13
+ require("../assets/css/simple-viewer.css");
14
+ var SdocWikiEditor = function SdocWikiEditor(_ref) {
15
+ var document = _ref.document,
16
+ docUuid = _ref.docUuid,
17
+ isWikiReadOnly = _ref.isWikiReadOnly,
18
+ scrollRef = _ref.scrollRef;
19
+ _sdocEditor.context.initApi();
20
+ var validEditor = (0, _react.useMemo)(function () {
21
+ var defaultEditor = (0, _sdocEditor.createWikiEditor)();
22
+ // getEditorConfig cashe the config, so we need to update the uuid,for wiki editor
23
+ docUuid && _sdocEditor.context.updateConfigUuid(docUuid);
24
+ var editorConfig = _sdocEditor.context.getEditorConfig();
25
+ var newEditor = null;
26
+ if (!isWikiReadOnly) {
27
+ newEditor = (0, _sdocEditor.withNodeId)((0, _sdocEditor.withSocketIO)(defaultEditor, {
28
+ document: document,
29
+ config: editorConfig
30
+ }));
31
+ } else {
32
+ newEditor = (0, _sdocEditor.withNodeId)(defaultEditor);
33
+ }
34
+ var cursors = document.cursors;
35
+ newEditor.cursors = cursors || {};
36
+ newEditor.width = _sdocEditor.WIKI_EDITOR_EDIT_AREA_WIDTH; // default width
37
+ newEditor.editorType = _sdocEditor.WIKI_EDITOR;
38
+ return newEditor;
39
+
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps
41
+ }, [docUuid]);
42
+ (0, _react.useEffect)(function () {
43
+ if (isWikiReadOnly) return;
44
+ validEditor.openConnection();
45
+ return function () {
46
+ validEditor.closeConnection();
47
+ };
48
+ }, [isWikiReadOnly, validEditor]);
49
+ return /*#__PURE__*/_react["default"].createElement(_errorBoundary["default"], null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.WikiEditor, {
50
+ document: document,
51
+ docUuid: docUuid,
52
+ editor: validEditor,
53
+ isWikiReadOnly: isWikiReadOnly,
54
+ scrollRef: scrollRef
55
+ }));
56
+ };
57
+ var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(SdocWikiEditor);