@seafile/seafile-sdoc-editor 2.0.32 → 2.0.34
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/components/doc-operations/collaborators-operation/collaborators-popover.css +35 -1
- package/dist/components/doc-operations/collaborators-operation/collaborators-popover.js +38 -4
- package/dist/components/doc-operations/collaborators-operation/index.js +32 -1
- package/dist/components/doc-operations/collaborators-operation/rename.js +100 -0
- package/dist/components/doc-operations/index.js +0 -1
- package/dist/components/doc-operations/share-link-more-operations.js +100 -0
- package/dist/index.js +7 -0
- package/dist/pages/share-link-editor.js +63 -0
- package/package.json +3 -3
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.content-list .collaborator-details {
|
|
38
|
+
position: relative;
|
|
38
39
|
height: 32px;
|
|
39
40
|
line-height: 32px;
|
|
40
41
|
width: 100%;
|
|
41
42
|
display: flex;
|
|
42
43
|
align-items: center;
|
|
43
44
|
padding: 3px 12px;
|
|
44
|
-
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.content-list .collaborator-details:hover {
|
|
@@ -72,3 +72,37 @@
|
|
|
72
72
|
text-overflow: ellipsis;
|
|
73
73
|
color: #212529;
|
|
74
74
|
}
|
|
75
|
+
|
|
76
|
+
.content-list .collaborator-details .sdocfont {
|
|
77
|
+
position: absolute;
|
|
78
|
+
right: 12px;
|
|
79
|
+
font-size: 14px;
|
|
80
|
+
display: inline-block;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.content-list .collaborator-details .sdocfont:hover {
|
|
84
|
+
color: #333;
|
|
85
|
+
cursor: pointer;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
.content-list .collaborator-details .rename-container input {
|
|
90
|
+
box-sizing: content-box;
|
|
91
|
+
padding: 2px 3px;
|
|
92
|
+
max-width: 100%;
|
|
93
|
+
width: auto;
|
|
94
|
+
height: 22px;
|
|
95
|
+
line-height: 19px;
|
|
96
|
+
border-radius: 2px;
|
|
97
|
+
word-wrap: break-word;
|
|
98
|
+
vertical-align: middle;
|
|
99
|
+
border: 1px solid #ccc;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
.content-list .collaborator-details .rename-container input:focus {
|
|
104
|
+
background-color: #fff;
|
|
105
|
+
border-color: #1991eb;
|
|
106
|
+
outline: 0;
|
|
107
|
+
box-shadow: 0 0 0 2px rgba(70, 127, 207, 0.25);
|
|
108
|
+
}
|
|
@@ -9,22 +9,47 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/es
|
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
|
|
10
10
|
var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
|
|
11
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
12
13
|
var _react = _interopRequireDefault(require("react"));
|
|
13
14
|
var _reactI18next = require("react-i18next");
|
|
14
15
|
var _reactstrap = require("reactstrap");
|
|
16
|
+
var _sdocEditor = require("@seafile/sdoc-editor");
|
|
17
|
+
var _rename = _interopRequireDefault(require("./rename"));
|
|
15
18
|
require("./collaborators-popover.css");
|
|
16
19
|
var CollaboratorsPopover = /*#__PURE__*/function (_React$PureComponent) {
|
|
17
|
-
function CollaboratorsPopover() {
|
|
20
|
+
function CollaboratorsPopover(props) {
|
|
21
|
+
var _this;
|
|
18
22
|
(0, _classCallCheck2["default"])(this, CollaboratorsPopover);
|
|
19
|
-
|
|
23
|
+
_this = (0, _callSuper2["default"])(this, CollaboratorsPopover, [props]);
|
|
24
|
+
(0, _defineProperty2["default"])(_this, "onEditNameToggle", function () {
|
|
25
|
+
_this.setState({
|
|
26
|
+
isRenaming: true
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
(0, _defineProperty2["default"])(_this, "onRenameConfirm", function (newName) {
|
|
30
|
+
_this.props.onEditUserName(newName);
|
|
31
|
+
_this.onRenameCancel();
|
|
32
|
+
});
|
|
33
|
+
(0, _defineProperty2["default"])(_this, "onRenameCancel", function () {
|
|
34
|
+
_this.setState({
|
|
35
|
+
isRenaming: false
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
_this.state = {
|
|
39
|
+
isRenaming: false
|
|
40
|
+
};
|
|
41
|
+
return _this;
|
|
20
42
|
}
|
|
21
43
|
(0, _inherits2["default"])(CollaboratorsPopover, _React$PureComponent);
|
|
22
44
|
return (0, _createClass2["default"])(CollaboratorsPopover, [{
|
|
23
45
|
key: "render",
|
|
24
46
|
value: function render() {
|
|
47
|
+
var _this2 = this;
|
|
25
48
|
var _this$props = this.props,
|
|
26
49
|
t = _this$props.t,
|
|
27
50
|
collaborators = _this$props.collaborators;
|
|
51
|
+
var isRenaming = this.state.isRenaming;
|
|
52
|
+
var canEdit = _sdocEditor.context.getSetting('canEdit');
|
|
28
53
|
return /*#__PURE__*/_react["default"].createElement(_reactstrap.UncontrolledPopover, {
|
|
29
54
|
target: "collaborators",
|
|
30
55
|
placement: "bottom-end",
|
|
@@ -41,6 +66,8 @@ var CollaboratorsPopover = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
41
66
|
className: "content-list"
|
|
42
67
|
}, collaborators.map(function (item, index) {
|
|
43
68
|
var name = index === 0 ? "".concat(item.name, " (").concat(t('Me'), ")") : item.name;
|
|
69
|
+
var canEditName = index === 0 && canEdit;
|
|
70
|
+
var isEditName = index === 0 && isRenaming;
|
|
44
71
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
72
|
key: index,
|
|
46
73
|
className: "collaborator-details"
|
|
@@ -50,9 +77,16 @@ var CollaboratorsPopover = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
50
77
|
className: "collaborator-avatar",
|
|
51
78
|
alt: name,
|
|
52
79
|
src: item.avatar_url
|
|
53
|
-
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
80
|
+
}), !isEditName && /*#__PURE__*/_react["default"].createElement("span", {
|
|
54
81
|
className: "collaborator-name"
|
|
55
|
-
}, name)
|
|
82
|
+
}, name), isEditName && /*#__PURE__*/_react["default"].createElement(_rename["default"], {
|
|
83
|
+
name: item.name,
|
|
84
|
+
onRenameConfirm: _this2.onRenameConfirm,
|
|
85
|
+
onRenameCancel: _this2.onRenameCancel
|
|
86
|
+
}), canEditName && /*#__PURE__*/_react["default"].createElement("i", {
|
|
87
|
+
className: "sdocfont sdoc-rename",
|
|
88
|
+
onClick: _this2.onEditNameToggle
|
|
89
|
+
}));
|
|
56
90
|
}))));
|
|
57
91
|
}
|
|
58
92
|
}]);
|
|
@@ -46,6 +46,34 @@ var CollaboratorsOperation = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
(0, _defineProperty2["default"])(_this, "onUserUpdated", function (userInfo) {
|
|
50
|
+
var collaborators = _this.state.collaborators;
|
|
51
|
+
var newCollaborators = collaborators.map(function (item) {
|
|
52
|
+
if (item.username === userInfo.username) {
|
|
53
|
+
item.name = userInfo.name;
|
|
54
|
+
}
|
|
55
|
+
return item;
|
|
56
|
+
});
|
|
57
|
+
_this.setState({
|
|
58
|
+
collaborators: newCollaborators
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, _defineProperty2["default"])(_this, "onRename", function (newName) {
|
|
62
|
+
var collaborators = _this.state.collaborators;
|
|
63
|
+
var currentUser = _this.currentUser;
|
|
64
|
+
var socketManager = _sdocEditor.SocketManager.getInstance();
|
|
65
|
+
socketManager.sendUserUpdated(newName);
|
|
66
|
+
var newCollaborators = collaborators.map(function (item) {
|
|
67
|
+
if (item.username === currentUser.username) {
|
|
68
|
+
item.name = newName;
|
|
69
|
+
_this.currentUser.name = newName;
|
|
70
|
+
}
|
|
71
|
+
return item;
|
|
72
|
+
});
|
|
73
|
+
_this.setState({
|
|
74
|
+
collaborators: newCollaborators
|
|
75
|
+
});
|
|
76
|
+
});
|
|
49
77
|
var _userInfo = _sdocEditor.context.getUserInfo();
|
|
50
78
|
_this.state = {
|
|
51
79
|
collaborators: [_userInfo]
|
|
@@ -76,12 +104,14 @@ var CollaboratorsOperation = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
76
104
|
var eventBus = _sdocEditor.EventBus.getInstance();
|
|
77
105
|
this.unsubscribeJoinEvent = eventBus.subscribe('join-room', this.onUserJoinRoom);
|
|
78
106
|
this.unsubscribeLeaveEvent = eventBus.subscribe('leave-room', this.onUserLeaveRoom);
|
|
107
|
+
this.unsubscribeUpdatedEvent = eventBus.subscribe('user-updated', this.onUserUpdated);
|
|
79
108
|
}
|
|
80
109
|
}, {
|
|
81
110
|
key: "componentWillUnmount",
|
|
82
111
|
value: function componentWillUnmount() {
|
|
83
112
|
this.unsubscribeJoinEvent();
|
|
84
113
|
this.unsubscribeLeaveEvent();
|
|
114
|
+
this.unsubscribeUpdatedEvent();
|
|
85
115
|
}
|
|
86
116
|
}, {
|
|
87
117
|
key: "render",
|
|
@@ -96,7 +126,8 @@ var CollaboratorsOperation = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
96
126
|
}), collaborators.length), /*#__PURE__*/_react["default"].createElement(_sdocEditor.Tooltip, {
|
|
97
127
|
target: "collaborators"
|
|
98
128
|
}, t('Online_members')), /*#__PURE__*/_react["default"].createElement(_collaboratorsPopover["default"], {
|
|
99
|
-
collaborators: collaborators
|
|
129
|
+
collaborators: collaborators,
|
|
130
|
+
onEditUserName: this.onRename
|
|
100
131
|
}));
|
|
101
132
|
}
|
|
102
133
|
}]);
|
|
@@ -0,0 +1,100 @@
|
|
|
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 _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
|
|
11
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
|
14
|
+
var _sdocEditor = require("@seafile/sdoc-editor");
|
|
15
|
+
var Rename = /*#__PURE__*/function (_React$Component) {
|
|
16
|
+
function Rename(props) {
|
|
17
|
+
var _this;
|
|
18
|
+
(0, _classCallCheck2["default"])(this, Rename);
|
|
19
|
+
_this = (0, _callSuper2["default"])(this, Rename, [props]);
|
|
20
|
+
(0, _defineProperty2["default"])(_this, "onChange", function (e) {
|
|
21
|
+
_this.setState({
|
|
22
|
+
name: e.target.value
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
(0, _defineProperty2["default"])(_this, "onKeyDown", function (e) {
|
|
26
|
+
if (e.keyCode === 13) {
|
|
27
|
+
_this.onRenameConfirm(e);
|
|
28
|
+
} else if (e.keyCode === 27) {
|
|
29
|
+
_this.onRenameCancel(e);
|
|
30
|
+
}
|
|
31
|
+
e.nativeEvent.stopImmediatePropagation();
|
|
32
|
+
});
|
|
33
|
+
(0, _defineProperty2["default"])(_this, "onRenameConfirm", function (e) {
|
|
34
|
+
e && e.nativeEvent.stopImmediatePropagation();
|
|
35
|
+
var newName = _this.state.name.trim();
|
|
36
|
+
if (newName === _this.props.name) {
|
|
37
|
+
_this.props.onRenameCancel();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
var _this$validateInput = _this.validateInput(),
|
|
41
|
+
isValid = _this$validateInput.isValid,
|
|
42
|
+
errMessage = _this$validateInput.errMessage;
|
|
43
|
+
if (!isValid) {
|
|
44
|
+
_sdocEditor.toaster.danger(errMessage);
|
|
45
|
+
_this.props.onRenameCancel();
|
|
46
|
+
} else {
|
|
47
|
+
_this.props.onRenameConfirm(newName);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
(0, _defineProperty2["default"])(_this, "onRenameCancel", function (e) {
|
|
51
|
+
e.nativeEvent.stopImmediatePropagation();
|
|
52
|
+
_this.props.onRenameCancel();
|
|
53
|
+
});
|
|
54
|
+
(0, _defineProperty2["default"])(_this, "validateInput", function () {
|
|
55
|
+
var newName = _this.state.name.trim();
|
|
56
|
+
var t = _this.props.t;
|
|
57
|
+
var isValid = true;
|
|
58
|
+
var errMessage = '';
|
|
59
|
+
if (!newName) {
|
|
60
|
+
isValid = false;
|
|
61
|
+
errMessage = t('Name_is_required');
|
|
62
|
+
return {
|
|
63
|
+
isValid: isValid,
|
|
64
|
+
errMessage: errMessage
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
isValid: isValid,
|
|
69
|
+
errMessage: errMessage
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
_this.state = {
|
|
73
|
+
name: props.name
|
|
74
|
+
};
|
|
75
|
+
_this.inputRef = /*#__PURE__*/_react["default"].createRef();
|
|
76
|
+
return _this;
|
|
77
|
+
}
|
|
78
|
+
(0, _inherits2["default"])(Rename, _React$Component);
|
|
79
|
+
return (0, _createClass2["default"])(Rename, [{
|
|
80
|
+
key: "componentDidMount",
|
|
81
|
+
value: function componentDidMount() {
|
|
82
|
+
this.inputRef.current.focus();
|
|
83
|
+
this.inputRef.current.setSelectionRange(0, -1);
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
key: "render",
|
|
87
|
+
value: function render() {
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
89
|
+
className: "rename-container"
|
|
90
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
91
|
+
ref: this.inputRef,
|
|
92
|
+
value: this.state.name,
|
|
93
|
+
onChange: this.onChange,
|
|
94
|
+
onKeyDown: this.onKeyDown,
|
|
95
|
+
onBlur: this.onRenameConfirm
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
}]);
|
|
99
|
+
}(_react["default"].Component);
|
|
100
|
+
var _default = exports["default"] = Rename;
|
|
@@ -20,7 +20,6 @@ var _shareOperation = _interopRequireDefault(require("./share-operation"));
|
|
|
20
20
|
require("./style.css");
|
|
21
21
|
var DocOperations = function DocOperations(_ref) {
|
|
22
22
|
var isShowChanges = _ref.isShowChanges,
|
|
23
|
-
isStarred = _ref.isStarred,
|
|
24
23
|
_ref$isPublished = _ref.isPublished,
|
|
25
24
|
isPublished = _ref$isPublished === void 0 ? false : _ref$isPublished,
|
|
26
25
|
changes = _ref.changes,
|
|
@@ -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 _reactstrap = require("reactstrap");
|
|
13
|
+
var _printJs = _interopRequireDefault(require("@seafile/print-js"));
|
|
14
|
+
var _sdocEditor = require("@seafile/sdoc-editor");
|
|
15
|
+
var _switch = _interopRequireDefault(require("../switch"));
|
|
16
|
+
var ShareLinkMoreOperations = function ShareLinkMoreOperations(_ref) {
|
|
17
|
+
var t = _ref.t;
|
|
18
|
+
var _useState = (0, _react.useState)(false),
|
|
19
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
20
|
+
isDropdownOpen = _useState2[0],
|
|
21
|
+
setIsDropdownOpen = _useState2[1];
|
|
22
|
+
var _useState3 = (0, _react.useState)(_sdocEditor.LocalStorage.getItem(_sdocEditor.FULL_WIDTH_MODE)),
|
|
23
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
24
|
+
isFullWidthMode = _useState4[0],
|
|
25
|
+
setIsFullWidthMode = _useState4[1];
|
|
26
|
+
var mobileLogin = _sdocEditor.context.getSetting('mobileLogin');
|
|
27
|
+
var cssUrls = _sdocEditor.context.getPrintCss();
|
|
28
|
+
var id = 'sdoc_more_operation';
|
|
29
|
+
(0, _react.useEffect)(function () {
|
|
30
|
+
var eventBus = _sdocEditor.EventBus.getInstance();
|
|
31
|
+
var unSubscribe = eventBus.subscribe(_sdocEditor.INTERNAL_EVENT.ON_PRINT, handlePrint);
|
|
32
|
+
return function () {
|
|
33
|
+
unSubscribe();
|
|
34
|
+
};
|
|
35
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36
|
+
}, []);
|
|
37
|
+
var toggleDropdown = (0, _react.useCallback)(function (event, isDropdownOpen) {
|
|
38
|
+
if (isDropdownOpen) {
|
|
39
|
+
// Clicking the fullscreen menu does not close the collapsed menu
|
|
40
|
+
var el = document.getElementById('sdoc-full-width-mode-wrapper');
|
|
41
|
+
if (el && el.contains(event.target)) return;
|
|
42
|
+
}
|
|
43
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
44
|
+
}, []);
|
|
45
|
+
var handlePrint = (0, _react.useCallback)(function () {
|
|
46
|
+
(0, _printJs["default"])({
|
|
47
|
+
printable: 'sdoc-editor-print-wrapper',
|
|
48
|
+
type: 'html',
|
|
49
|
+
scanStyles: true,
|
|
50
|
+
targetStyles: ['*'],
|
|
51
|
+
style: '@page { size: auto A4 landscape;margin:20px auto; padding: 0;} .d-print-none{display:none !important;} .article {border: none !important; box-shadow: none !important; } html, body {margin: 0; padding: 0}',
|
|
52
|
+
css: cssUrls
|
|
53
|
+
});
|
|
54
|
+
}, [cssUrls]);
|
|
55
|
+
var printShortcutTexts = (0, _react.useMemo)(function () {
|
|
56
|
+
var printTexts = (0, _sdocEditor.isMac)() ? ['⌘', 'P'] : ['Ctrl', 'P'];
|
|
57
|
+
return printTexts;
|
|
58
|
+
}, []);
|
|
59
|
+
var onSwitchMode = (0, _react.useCallback)(function () {
|
|
60
|
+
var newMode = !isFullWidthMode;
|
|
61
|
+
_sdocEditor.LocalStorage.setItem(_sdocEditor.FULL_WIDTH_MODE, newMode);
|
|
62
|
+
var eventBus = _sdocEditor.EventBus.getInstance();
|
|
63
|
+
eventBus.dispatch(_sdocEditor.INTERNAL_EVENT.RESIZE_ARTICLE);
|
|
64
|
+
setIsFullWidthMode(newMode);
|
|
65
|
+
}, [isFullWidthMode]);
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(_reactstrap.Dropdown, {
|
|
67
|
+
className: "sdoc-operator-folder ".concat(mobileLogin ? 'mobile-login' : ''),
|
|
68
|
+
isOpen: isDropdownOpen,
|
|
69
|
+
toggle: function toggle(event) {
|
|
70
|
+
return toggleDropdown(event, isDropdownOpen);
|
|
71
|
+
}
|
|
72
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownToggle, {
|
|
73
|
+
id: id,
|
|
74
|
+
className: "op-item",
|
|
75
|
+
tag: "span"
|
|
76
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
77
|
+
className: "sdocfont sdoc-more"
|
|
78
|
+
})), /*#__PURE__*/_react["default"].createElement(_sdocEditor.Tooltip, {
|
|
79
|
+
target: id
|
|
80
|
+
}, t('More_operation')), /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownMenu, {
|
|
81
|
+
className: "sdoc-dropdown-menu",
|
|
82
|
+
end: true
|
|
83
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
|
|
84
|
+
className: "sdoc-dropdown-menu-item",
|
|
85
|
+
onClick: handlePrint
|
|
86
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
87
|
+
className: "sdoc-dropdown-print-container"
|
|
88
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, t('Print')), /*#__PURE__*/_react["default"].createElement(_sdocEditor.MenuShortcutPrompt, {
|
|
89
|
+
shortcuts: printShortcutTexts
|
|
90
|
+
}))), !_sdocEditor.isMobile && /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
|
|
91
|
+
id: "sdoc-full-width-mode-wrapper",
|
|
92
|
+
className: "sdoc-dropdown-menu-item"
|
|
93
|
+
}, /*#__PURE__*/_react["default"].createElement(_switch["default"], {
|
|
94
|
+
checked: isFullWidthMode,
|
|
95
|
+
placeholder: t('Full_width_mode'),
|
|
96
|
+
className: "sdoc-full-width-mode-wrapper w-100",
|
|
97
|
+
onChange: onSwitchMode
|
|
98
|
+
}))));
|
|
99
|
+
};
|
|
100
|
+
var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(ShareLinkMoreOperations);
|
package/dist/index.js
CHANGED
|
@@ -46,6 +46,12 @@ Object.defineProperty(exports, "SdocWikiEditor", {
|
|
|
46
46
|
return _sdocWikiEditor["default"];
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
Object.defineProperty(exports, "ShareLinkEditor", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function get() {
|
|
52
|
+
return _shareLinkEditor["default"];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
49
55
|
Object.defineProperty(exports, "SimpleEditor", {
|
|
50
56
|
enumerable: true,
|
|
51
57
|
get: function get() {
|
|
@@ -70,6 +76,7 @@ var _constants = require("./constants");
|
|
|
70
76
|
var _diffViewer = _interopRequireDefault(require("./pages/diff-viewer"));
|
|
71
77
|
var _publishedRevisionViewer = _interopRequireDefault(require("./pages/published-revision-viewer"));
|
|
72
78
|
var _sdocWikiEditor = _interopRequireDefault(require("./pages/sdoc-wiki-editor"));
|
|
79
|
+
var _shareLinkEditor = _interopRequireDefault(require("./pages/share-link-editor"));
|
|
73
80
|
var _simpleEditor = _interopRequireDefault(require("./pages/simple-editor"));
|
|
74
81
|
var _simpleViewer = _interopRequireDefault(require("./pages/simple-viewer"));
|
|
75
82
|
var _wikiViewer = _interopRequireDefault(require("./pages/wiki-viewer"));
|
|
@@ -0,0 +1,63 @@
|
|
|
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 _docInfo = _interopRequireDefault(require("../components/doc-info"));
|
|
13
|
+
var _collaboratorsOperation = _interopRequireDefault(require("../components/doc-operations/collaborators-operation"));
|
|
14
|
+
var _shareLinkMoreOperations = _interopRequireDefault(require("../components/doc-operations/share-link-more-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 ShareLinkEditor = function ShareLinkEditor(_ref) {
|
|
21
|
+
var showComment = _ref.showComment,
|
|
22
|
+
t = _ref.t,
|
|
23
|
+
_ref$plugins = _ref.plugins,
|
|
24
|
+
plugins = _ref$plugins === void 0 ? [] : _ref$plugins,
|
|
25
|
+
collaborators = _ref.collaborators;
|
|
26
|
+
_sdocEditor.context.initApi();
|
|
27
|
+
var editorRef = (0, _react.useRef)(null);
|
|
28
|
+
var _useDocument = (0, _hooks.useDocument)(),
|
|
29
|
+
isFirstLoading = _useDocument.isFirstLoading,
|
|
30
|
+
isReloading = _useDocument.isReloading,
|
|
31
|
+
errorMessage = _useDocument.errorMessage,
|
|
32
|
+
document = _useDocument.document;
|
|
33
|
+
|
|
34
|
+
// useMount: reset title
|
|
35
|
+
(0, _react.useEffect)(function () {
|
|
36
|
+
(0, _utils.resetWebTitle)(t);
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38
|
+
}, []);
|
|
39
|
+
if (isFirstLoading) {
|
|
40
|
+
return /*#__PURE__*/_react["default"].createElement(_sdocEditor.Loading, null);
|
|
41
|
+
}
|
|
42
|
+
if (errorMessage) {
|
|
43
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
44
|
+
className: "error-page"
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
46
|
+
className: "error-tip"
|
|
47
|
+
}, t(errorMessage)));
|
|
48
|
+
}
|
|
49
|
+
return /*#__PURE__*/_react["default"].createElement(_errorBoundary["default"], null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.CollaboratorsProvider, {
|
|
50
|
+
collaborators: collaborators
|
|
51
|
+
}, /*#__PURE__*/_react["default"].createElement(_sdocEditor.PluginsProvider, {
|
|
52
|
+
plugins: plugins,
|
|
53
|
+
showComment: showComment
|
|
54
|
+
}, /*#__PURE__*/_react["default"].createElement(_layout["default"], null, !(0, _utils.isSeafileClient)() && /*#__PURE__*/_react["default"].createElement(_layout.Header, null, /*#__PURE__*/_react["default"].createElement(_docInfo["default"], null), /*#__PURE__*/_react["default"].createElement("div", {
|
|
55
|
+
className: "doc-ops"
|
|
56
|
+
}, /*#__PURE__*/_react["default"].createElement(_collaboratorsOperation["default"], null), /*#__PURE__*/_react["default"].createElement(_shareLinkMoreOperations["default"], null))), /*#__PURE__*/_react["default"].createElement(_layout.Content, null, /*#__PURE__*/_react["default"].createElement(_sdocEditor.SDocEditor, {
|
|
57
|
+
ref: editorRef,
|
|
58
|
+
isReloading: isReloading,
|
|
59
|
+
document: document,
|
|
60
|
+
showComment: showComment
|
|
61
|
+
}))))));
|
|
62
|
+
};
|
|
63
|
+
var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(ShareLinkEditor);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/seafile-sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.34",
|
|
4
4
|
"author": "shuntian <978987373@qq.com>",
|
|
5
5
|
"homepage": "https://github.com/seafileltd/sea-sdoc-editor#readme",
|
|
6
6
|
"license": "ISC",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"description": "",
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@seafile/print-js": "1.6.6",
|
|
32
|
-
"@seafile/sdoc-editor": "^2.0.
|
|
32
|
+
"@seafile/sdoc-editor": "^2.0.117",
|
|
33
33
|
"classnames": "2.3.2",
|
|
34
34
|
"dayjs": "1.10.7"
|
|
35
35
|
},
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "192c29edee49bb35a6a30f68e34b11c2764ea0d5"
|
|
49
49
|
}
|