vap1 0.3.7 → 0.3.8
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/components/SearchBar/ByField.d.ts +6 -3
- package/components/SearchBar/ByField.js +5 -5
- package/components/SearchBar/ByKeyword.js +7 -1
- package/components/Upload/UploadImage.d.ts +1 -0
- package/components/Upload/UploadImage.js +6 -5
- package/components/_adapt/Tabs.d.ts +15 -0
- package/components/_adapt/Tabs.js +38 -3
- package/deps/app-data/Const.d.ts +6 -0
- package/deps/app-data/Const.js +10 -0
- package/deps/app-data/SourceTable.js +137 -0
- package/deps/{apis → app-data}/useSource.js +18 -8
- package/deps/editor/Article.d.ts +20 -0
- package/deps/editor/Article.js +53 -0
- package/deps/editor/Editor.d.ts +43 -0
- package/deps/editor/Editor.js +110 -0
- package/deps/editor/EditorModal.d.ts +32 -0
- package/deps/editor/EditorModal.js +89 -0
- package/deps/editor/index.d.ts +4 -0
- package/deps/editor/index.js +9 -0
- package/deps/{registerEditor.js → editor/registerEditor.js} +4 -4
- package/deps/editor/support/buttons/ImageButton.d.ts +5 -0
- package/deps/editor/support/buttons/ImageButton.js +138 -0
- package/deps/editor/support/buttons/index.d.ts +1 -0
- package/deps/editor/support/buttons/index.js +5 -0
- package/deps/editor/support/element/ImageElement.d.ts +3 -0
- package/deps/editor/support/element/ImageElement.js +228 -0
- package/deps/editor/support/element/TableElement.js +0 -0
- package/deps/editor/support/element/VideoElement.d.ts +0 -0
- package/deps/editor/support/element/VideoElement.js +0 -0
- package/deps/editor/support/element/_Base.d.ts +9 -0
- package/deps/editor/support/element/_Base.js +9 -0
- package/deps/editor/support/element/_Element.d.ts +2 -0
- package/deps/{_editor/base/Element.js → editor/support/element/_Element.js} +9 -6
- package/deps/editor/support/element/_Leaf.d.ts +3 -0
- package/deps/{_editor/base/Leaf.js → editor/support/element/_Leaf.js} +2 -2
- package/deps/editor/support/index.d.ts +4 -0
- package/deps/editor/support/index.js +89 -0
- package/deps/{_editor → editor}/tools/Button.d.ts +1 -1
- package/deps/{_editor → editor}/tools/Button.js +7 -3
- package/deps/{_editor → editor}/tools/ToolBar.d.ts +1 -1
- package/deps/{_editor → editor}/tools/ToolBar.js +1 -1
- package/deps/{_editor → editor}/tools/_BlockButton.d.ts +1 -1
- package/deps/{_editor → editor}/tools/_BlockButton.js +3 -3
- package/deps/{_editor → editor}/tools/_InsertButton.d.ts +1 -2
- package/deps/editor/tools/_InsertButton.js +36 -0
- package/deps/{_editor → editor}/tools/_MarkButton.d.ts +1 -1
- package/deps/{_editor → editor}/tools/_MarkButton.js +4 -4
- package/deps/{_editor → editor}/tools/_TxtButton.d.ts +1 -1
- package/deps/{_editor → editor}/tools/_TxtButton.js +37 -50
- package/deps/{_editor/base → editor}/types.d.ts +47 -56
- package/deps/editor/types.js +2 -0
- package/deps/editor/utils/ParseHtml.d.ts +0 -0
- package/deps/editor/utils/index.d.ts +7 -0
- package/deps/editor/utils/index.js +60 -0
- package/package.json +1 -1
- package/uform/hooks/useEditor.js +0 -1
- package/utils/Global.d.ts +4 -0
- package/utils/Global.js +1 -0
- package/deps/_editor/advance/_Image.d.ts +0 -2
- package/deps/_editor/advance/_Image.js +0 -102
- package/deps/_editor/base/Element.d.ts +0 -5
- package/deps/_editor/base/Leaf.d.ts +0 -3
- package/deps/_editor/base/Support.d.ts +0 -2
- package/deps/_editor/base/Support.js +0 -78
- package/deps/_editor/base/types.js +0 -10
- package/deps/_editor/tools/_InsertButton.js +0 -69
- package/deps/api-audit.d.ts +0 -1
- package/deps/api-audit.js +0 -6
- package/deps/api-data.js +0 -1
- package/deps/editor.d.ts +0 -34
- package/deps/editor.js +0 -137
- /package/deps/{_editor/advance/_Audio.d.ts → app-data/SourceTable.d.ts} +0 -0
- /package/deps/{apis → app-data}/useSource.d.ts +0 -0
- /package/deps/{_editor → editor}/i18n.d.ts +0 -0
- /package/deps/{_editor → editor}/i18n.js +0 -0
- /package/deps/{registerEditor.d.ts → editor/registerEditor.d.ts} +0 -0
- /package/deps/{_editor/advance/_Table.d.ts → editor/support/buttons/AudioButton.d.ts} +0 -0
- /package/deps/{_editor/advance/_Audio.js → editor/support/buttons/AudioButton.js} +0 -0
- /package/deps/{_editor/advance/_Video.d.ts → editor/support/buttons/TableButton.d.ts} +0 -0
- /package/deps/{_editor/advance/_Table.js → editor/support/buttons/TableButton.js} +0 -0
- /package/deps/{_editor/utils/ParseHtml.d.ts → editor/support/buttons/VideoButton.d.ts} +0 -0
- /package/deps/{_editor/advance/_Video.js → editor/support/buttons/VideoButton.js} +0 -0
- /package/deps/{api-data.d.ts → editor/support/element/TableElement.d.ts} +0 -0
- /package/deps/{_editor → editor}/utils/ParseHtml.js +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.supportAdvance = exports.Leaf = exports.Element = void 0;
|
|
20
|
+
var utils_1 = require("../../../utils");
|
|
21
|
+
var ImageButton_1 = require("./buttons/ImageButton");
|
|
22
|
+
var _Element_1 = require("./element/_Element");
|
|
23
|
+
Object.defineProperty(exports, "Element", { enumerable: true, get: function () { return _Element_1.Element; } });
|
|
24
|
+
var _Leaf_1 = require("./element/_Leaf");
|
|
25
|
+
Object.defineProperty(exports, "Leaf", { enumerable: true, get: function () { return _Leaf_1.Leaf; } });
|
|
26
|
+
// 后端代码可以先给我下,
|
|
27
|
+
var VOID_SET = new Set(['image', 'video', 'audio']);
|
|
28
|
+
var supportAdvance = function (editor) {
|
|
29
|
+
var insertData = editor.insertData, isVoid = editor.isVoid;
|
|
30
|
+
editor.isVoid = function (element) {
|
|
31
|
+
// console.log(element.type, VOID_SET.has(element.type))
|
|
32
|
+
if (VOID_SET.has(element.type))
|
|
33
|
+
return true;
|
|
34
|
+
return isVoid(element);
|
|
35
|
+
};
|
|
36
|
+
editor.insertData = function (data) {
|
|
37
|
+
var text = data.getData('text/plain');
|
|
38
|
+
var files = data.files;
|
|
39
|
+
if (files && files.length > 0) {
|
|
40
|
+
var _loop_1 = function (i, _i) {
|
|
41
|
+
var file = files.item(i);
|
|
42
|
+
var reader = new FileReader();
|
|
43
|
+
var _a = __read(file.type.split('/'), 1), mime = _a[0];
|
|
44
|
+
if (mime === 'image') {
|
|
45
|
+
reader.addEventListener('load', function () {
|
|
46
|
+
var url = reader.result;
|
|
47
|
+
(0, ImageButton_1.insertImage)(editor, url);
|
|
48
|
+
});
|
|
49
|
+
reader.readAsDataURL(file);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
for (var i = 0, _i = files.length; i < _i; i++) {
|
|
53
|
+
_loop_1(i, _i);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (utils_1.StringUtil.isURL(text)) {
|
|
57
|
+
(0, ImageButton_1.insertImage)(editor, text);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
insertData(data);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return editor;
|
|
64
|
+
// editor.insertData = data => {
|
|
65
|
+
// const text = data.getData('text/plain')
|
|
66
|
+
// console.log('insert', data);
|
|
67
|
+
// console.log('text', text);
|
|
68
|
+
// const { files } = data
|
|
69
|
+
// if (files && files.length > 0) {
|
|
70
|
+
// for (const file of files) {
|
|
71
|
+
// const reader = new FileReader()
|
|
72
|
+
// const [mime] = file.type.split('/')
|
|
73
|
+
// if (mime === 'image') {
|
|
74
|
+
// reader.addEventListener('load', () => {
|
|
75
|
+
// const url = reader.result
|
|
76
|
+
// insertImage(editor, url)
|
|
77
|
+
// })
|
|
78
|
+
// reader.readAsDataURL(file)
|
|
79
|
+
// }
|
|
80
|
+
// }
|
|
81
|
+
// } else if (isImageUrl(text)) {
|
|
82
|
+
// insertImage(editor, text)
|
|
83
|
+
// } else {
|
|
84
|
+
// insertData(data)
|
|
85
|
+
// }
|
|
86
|
+
// }
|
|
87
|
+
return editor;
|
|
88
|
+
};
|
|
89
|
+
exports.supportAdvance = supportAdvance;
|
|
@@ -22,6 +22,7 @@ var utils_1 = require("../../../utils");
|
|
|
22
22
|
var _BlockButton_1 = require("./_BlockButton");
|
|
23
23
|
var _MarkButton_1 = require("./_MarkButton");
|
|
24
24
|
var _InsertButton_1 = require("./_InsertButton");
|
|
25
|
+
var ImageButton_1 = require("../support/buttons/ImageButton");
|
|
25
26
|
var _TxtButton_1 = require("./_TxtButton");
|
|
26
27
|
var BUTTONS = {
|
|
27
28
|
bold: { type: 'mark', icon: 'bold', ik: i18n_1.EDITOR.BOLD },
|
|
@@ -54,7 +55,7 @@ var BUTTONS = {
|
|
|
54
55
|
var Button = function (_a) {
|
|
55
56
|
var type = _a.type, disabled = _a.disabled;
|
|
56
57
|
if (type == null) {
|
|
57
|
-
return react_1.default.createElement("span", { className: '
|
|
58
|
+
return react_1.default.createElement("span", { className: 'se-toolbar-split' });
|
|
58
59
|
}
|
|
59
60
|
if (!lodash_1.default.has(BUTTONS, type)) {
|
|
60
61
|
return utils_1.Const.NONE;
|
|
@@ -78,15 +79,18 @@ var Button = function (_a) {
|
|
|
78
79
|
return react_1.default.createElement(_TxtButton_1.FontSize, __assign({}, define, { cmd: type, disabled: disabled }));
|
|
79
80
|
case 'fontFamily':
|
|
80
81
|
return react_1.default.createElement(_TxtButton_1.FontFamily, __assign({}, define, { cmd: type, disabled: disabled }));
|
|
82
|
+
// 只要有点学习能力,学习一两个月时间后,弄点玩具级别的模型是不成问题的,
|
|
83
|
+
// 解释权在自己手上,后面逐步优化
|
|
81
84
|
}
|
|
82
85
|
return utils_1.Const.NONE;
|
|
83
86
|
}
|
|
84
87
|
else if (define.type == 'action') {
|
|
88
|
+
// console.log(type)
|
|
85
89
|
switch (type) {
|
|
86
90
|
case 'hr':
|
|
87
91
|
return react_1.default.createElement(_InsertButton_1.HR, __assign({}, define, { cmd: type, disabled: disabled }));
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
case 'image':
|
|
93
|
+
return react_1.default.createElement(ImageButton_1.ImageButton, __assign({}, define, { cmd: type, disabled: disabled }));
|
|
90
94
|
// case 'audio':
|
|
91
95
|
// return <Audio {...define} cmd={type} disabled={disabled}/>
|
|
92
96
|
// case 'video':
|
|
@@ -6,5 +6,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Toolbar = void 0;
|
|
7
7
|
var react_1 = __importDefault(require("react"));
|
|
8
8
|
var Button_1 = require("./Button");
|
|
9
|
-
var Toolbar = function (props) { return react_1.default.createElement("div", { className: "
|
|
9
|
+
var Toolbar = function (props) { return react_1.default.createElement("div", { className: "se-toolbar" }, props.buttons.map(function (lineGroup, i) { return react_1.default.createElement("div", { key: i, className: "se-toolbar-line" }, lineGroup.map(function (type, j) { return react_1.default.createElement(Button_1.Button, { key: type + j, type: type, disabled: props.disabled }); })); })); };
|
|
10
10
|
exports.Toolbar = Toolbar;
|
|
@@ -74,13 +74,13 @@ var isBlockActive = function (editor, format, blockType) {
|
|
|
74
74
|
var BlockButton = function (_a) {
|
|
75
75
|
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
76
76
|
var editor = (0, slate_react_1.useSlate)();
|
|
77
|
-
var clazz = ['
|
|
77
|
+
var clazz = ['se-icon', 'se-icon-block'];
|
|
78
78
|
var isActive = isBlockActive(editor, cmd, exports.TEXT_ALIGN_TYPES.includes(cmd) ? 'align' : 'type');
|
|
79
79
|
if (isActive) {
|
|
80
|
-
clazz.push('
|
|
80
|
+
clazz.push('se-icon-marked');
|
|
81
81
|
}
|
|
82
82
|
if (disabled) {
|
|
83
|
-
clazz.push('
|
|
83
|
+
clazz.push('se-icon-disabled');
|
|
84
84
|
}
|
|
85
85
|
return react_1.default.createElement(Icon_1.Icon, { className: clazz.join(' '), type: icon, title: utils_1.i18n.txt(ik), onClick: function () { return toggleBlock(editor, cmd); } });
|
|
86
86
|
// return (
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ButtonProps } from '../
|
|
2
|
+
import type { ButtonProps } from '../types';
|
|
3
3
|
export declare const HR: React.FC<ButtonProps>;
|
|
4
4
|
export declare const Audio: React.FC<ButtonProps>;
|
|
5
5
|
export declare const Video: React.FC<ButtonProps>;
|
|
6
|
-
export declare const Picture: React.FC<ButtonProps>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Video = exports.Audio = exports.HR = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var slate_react_1 = require("slate-react");
|
|
9
|
+
// import { UploadImage } from '../../../components/Upload/UploadImage';
|
|
10
|
+
// import { UFormModal } from '../../../components/UForm';
|
|
11
|
+
var Icon_1 = require("../../../components/_adapt/Icon");
|
|
12
|
+
var utils_1 = require("../../../utils");
|
|
13
|
+
var slate_1 = require("slate");
|
|
14
|
+
var insertImage = function (editor, url) {
|
|
15
|
+
var text = { text: '' };
|
|
16
|
+
var image = { type: 'image', url: url, children: [text] };
|
|
17
|
+
slate_1.Transforms.insertNodes(editor, image);
|
|
18
|
+
};
|
|
19
|
+
var HR = function (_a) {
|
|
20
|
+
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
21
|
+
var editor = (0, slate_react_1.useSlate)();
|
|
22
|
+
return react_1.default.createElement(Icon_1.Icon, { className: 'se-icon', type: icon, title: utils_1.i18n.txt(ik), onClick: function () { return slate_1.Transforms.insertNodes(editor, { type: 'hr', children: [{ text: '' }] }); } });
|
|
23
|
+
};
|
|
24
|
+
exports.HR = HR;
|
|
25
|
+
var Audio = function (_a) {
|
|
26
|
+
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd;
|
|
27
|
+
var clazz = ['se-icon'];
|
|
28
|
+
return react_1.default.createElement(Icon_1.Icon, { className: clazz.join(' '), type: icon, title: utils_1.i18n.txt(ik) });
|
|
29
|
+
};
|
|
30
|
+
exports.Audio = Audio;
|
|
31
|
+
var Video = function (_a) {
|
|
32
|
+
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd;
|
|
33
|
+
var clazz = ['se-icon'];
|
|
34
|
+
return react_1.default.createElement(Icon_1.Icon, { className: clazz.join(' '), type: icon, title: utils_1.i18n.txt(ik) });
|
|
35
|
+
};
|
|
36
|
+
exports.Video = Video;
|
|
@@ -29,16 +29,16 @@ var MarkButton = function (_a) {
|
|
|
29
29
|
var _b, _c;
|
|
30
30
|
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
31
31
|
var editor = (0, slate_react_1.useSlate)();
|
|
32
|
-
var clazz = ['
|
|
32
|
+
var clazz = ['se-icon', 'se-icon-mark'];
|
|
33
33
|
if (disabled) {
|
|
34
|
-
clazz.push('
|
|
34
|
+
clazz.push('se-icon-disabled');
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
37
|
if (isMarkActive(editor, cmd)) {
|
|
38
|
-
clazz.push('
|
|
38
|
+
clazz.push('se-icon-marked');
|
|
39
39
|
}
|
|
40
40
|
else if (((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.focus.offset) == ((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.offset)) {
|
|
41
|
-
clazz.push('
|
|
41
|
+
clazz.push('se-icon-disabled');
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
return react_1.default.createElement(Icon_1.Icon, { className: clazz.join(' '), type: icon, title: utils_1.i18n.txt(ik), onClick: function () { return toggleMark(editor, cmd); } });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ButtonProps } from '../
|
|
2
|
+
import type { ButtonProps } from '../types';
|
|
3
3
|
export declare const Link: React.FC<ButtonProps>;
|
|
4
4
|
export declare const FontFamily: React.FC<ButtonProps>;
|
|
5
5
|
export declare const FontSize: React.FC<ButtonProps>;
|
|
@@ -34,16 +34,12 @@ exports.BgColor = exports.Color = exports.FontSize = exports.FontFamily = export
|
|
|
34
34
|
var react_1 = __importDefault(require("react"));
|
|
35
35
|
var slate_1 = require("slate");
|
|
36
36
|
var slate_react_1 = require("slate-react");
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
var Button_1 = require("../../../components/_adapt/Button");
|
|
42
|
-
var Select_1 = require("../../../components/_adapt/Select");
|
|
43
|
-
var ColorPicker_1 = require("../../../components/_adapt/ColorPicker");
|
|
44
|
-
var UForm_1 = require("../../../components/UForm");
|
|
37
|
+
var utils_1 = require("../utils");
|
|
38
|
+
var utils_2 = require("../../../utils");
|
|
39
|
+
var index_1 = require("../../../index");
|
|
40
|
+
// import { UFormModal } from '../../../components/UForm';
|
|
45
41
|
var Icon_1 = require("../../../components/_adapt/Icon");
|
|
46
|
-
var
|
|
42
|
+
var useToggle_1 = require("../../../hooks/useToggle");
|
|
47
43
|
var markValue = function (editor, cmd) {
|
|
48
44
|
var marks = slate_1.Editor.marks(editor);
|
|
49
45
|
if (marks && marks[cmd]) {
|
|
@@ -71,29 +67,22 @@ var Link = function (_a) {
|
|
|
71
67
|
var _b, _c;
|
|
72
68
|
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
73
69
|
var editor = (0, slate_react_1.useSlate)();
|
|
74
|
-
var _d = __read((0,
|
|
70
|
+
var _d = __read((0, useToggle_1.useToggle)(), 2), openModal = _d[0], showModal = _d[1];
|
|
75
71
|
var value = markValue(editor, cmd);
|
|
76
|
-
var clazz = ['
|
|
72
|
+
var clazz = ['se-icon', 'se-icon-mark'];
|
|
77
73
|
if (value)
|
|
78
|
-
clazz.push('
|
|
74
|
+
clazz.push('se-icon-marked');
|
|
79
75
|
if (disabled || (value == null && ((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.focus.offset) == ((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.offset))) {
|
|
80
|
-
clazz.push('
|
|
76
|
+
clazz.push('se-icon-disabled');
|
|
81
77
|
}
|
|
82
|
-
return react_1.default.createElement(react_1.default.Fragment, null,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
react_1.default.createElement("
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
react_1.default.createElement("span", { className: 'vicon vicon-link editor-icon editor-icon-mark editor-icon-marked vicon-clickable', title: utils_1.i18n.txt(ik), onClick: function () { return showModal(); } })) : react_1.default.createElement(Icon_1.Icon, { className: clazz.join(' '), type: icon, title: utils_1.i18n.txt(ik), onClick: showModal }),
|
|
91
|
-
react_1.default.createElement(UForm_1.UFormModal, { title: '添加链接', open: openModal, onCancel: showModal, data: { url: value }, fields: [
|
|
92
|
-
{ field: 'url', type: 'url', title: '链接地址' },
|
|
93
|
-
], onOk: function (data) {
|
|
94
|
-
showModal();
|
|
95
|
-
setValue(editor, cmd, data.url);
|
|
96
|
-
} }));
|
|
78
|
+
return react_1.default.createElement(react_1.default.Fragment, null, value ? react_1.default.createElement(index_1.Popover, { placement: "bottomLeft", content: react_1.default.createElement("div", { style: { width: 320 } },
|
|
79
|
+
react_1.default.createElement("p", null,
|
|
80
|
+
"\u94FE\u63A5\u5230 : ",
|
|
81
|
+
react_1.default.createElement("a", { href: value, target: '_blank' }, value)),
|
|
82
|
+
react_1.default.createElement("p", null,
|
|
83
|
+
react_1.default.createElement(index_1.Button, { type: 'primary', style: { marginRight: 6 }, onClick: function () { return showModal(); } }, "\u4FEE\u6539\u5730\u5740"),
|
|
84
|
+
react_1.default.createElement(index_1.Button, { danger: true, onClick: function () { return setValue(editor, cmd, null); } }, "\u5220\u9664\u94FE\u63A5"))) },
|
|
85
|
+
react_1.default.createElement("span", { className: 'vicon vicon-link se-icon se-icon-mark se-icon-marked vicon-clickable', title: utils_2.i18n.txt(ik), onClick: function () { return showModal(); } })) : react_1.default.createElement(Icon_1.Icon, { className: clazz.join(' '), type: icon, title: utils_2.i18n.txt(ik), onClick: showModal }));
|
|
97
86
|
};
|
|
98
87
|
exports.Link = Link;
|
|
99
88
|
var FontFamily = function (_a) {
|
|
@@ -102,9 +91,7 @@ var FontFamily = function (_a) {
|
|
|
102
91
|
var editor = (0, slate_react_1.useSlate)();
|
|
103
92
|
var value = markValue(editor, cmd) || undefined;
|
|
104
93
|
var notSelected = ((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.focus.offset) == ((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.offset);
|
|
105
|
-
return react_1.default.createElement(
|
|
106
|
-
// onSelect={()=>{
|
|
107
|
-
// }}
|
|
94
|
+
return react_1.default.createElement(index_1.Select, { size: 'small', value: value, disabled: value === undefined && notSelected, style: { width: 72, marginRight: 6 }, placeholder: "\u5B57\u4F53",
|
|
108
95
|
// onClick={(evt) => PageUtil.stopEvent(evt)}
|
|
109
96
|
onChange: function (val) {
|
|
110
97
|
if (val == 0) {
|
|
@@ -114,15 +101,15 @@ var FontFamily = function (_a) {
|
|
|
114
101
|
setValue(editor, cmd, val);
|
|
115
102
|
}
|
|
116
103
|
} },
|
|
117
|
-
react_1.default.createElement(
|
|
118
|
-
react_1.default.createElement("span", { style: { fontFamily:
|
|
119
|
-
react_1.default.createElement(
|
|
120
|
-
react_1.default.createElement("span", { style: { fontFamily:
|
|
121
|
-
react_1.default.createElement(
|
|
122
|
-
react_1.default.createElement("span", { style: { fontFamily:
|
|
123
|
-
react_1.default.createElement(
|
|
124
|
-
react_1.default.createElement("span", { style: { fontFamily:
|
|
125
|
-
react_1.default.createElement(
|
|
104
|
+
react_1.default.createElement(index_1.Select.Option, { value: 1 },
|
|
105
|
+
react_1.default.createElement("span", { style: { fontFamily: utils_1.FontFamilyTexts[1] } }, "\u9ED1\u4F53")),
|
|
106
|
+
react_1.default.createElement(index_1.Select.Option, { value: 2 },
|
|
107
|
+
react_1.default.createElement("span", { style: { fontFamily: utils_1.FontFamilyTexts[2] } }, "\u5B8B\u4F53")),
|
|
108
|
+
react_1.default.createElement(index_1.Select.Option, { value: 3 },
|
|
109
|
+
react_1.default.createElement("span", { style: { fontFamily: utils_1.FontFamilyTexts[3] } }, "\u6977\u4F53")),
|
|
110
|
+
react_1.default.createElement(index_1.Select.Option, { value: 4 },
|
|
111
|
+
react_1.default.createElement("span", { style: { fontFamily: utils_1.FontFamilyTexts[4] } }, "\u82F1\u6587")),
|
|
112
|
+
react_1.default.createElement(index_1.Select.Option, { value: 0 }, "\u6E05\u9664"));
|
|
126
113
|
};
|
|
127
114
|
exports.FontFamily = FontFamily;
|
|
128
115
|
var FontSize = function (_a) {
|
|
@@ -130,12 +117,12 @@ var FontSize = function (_a) {
|
|
|
130
117
|
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
131
118
|
var editor = (0, slate_react_1.useSlate)();
|
|
132
119
|
var value = markValue(editor, cmd) || 12;
|
|
133
|
-
var clazz = ['
|
|
120
|
+
var clazz = ['se-tool-font'];
|
|
134
121
|
if (disabled || (((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.focus.offset) == ((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.offset))) {
|
|
135
|
-
clazz.push('
|
|
122
|
+
clazz.push('se-icon-disabled');
|
|
136
123
|
}
|
|
137
|
-
return react_1.default.createElement(
|
|
138
|
-
react_1.default.createElement(
|
|
124
|
+
return react_1.default.createElement(index_1.Popover, { placement: "bottomLeft", content: react_1.default.createElement("div", { style: { width: 240, }, onClick: utils_2.PageUtil.stopEvent },
|
|
125
|
+
react_1.default.createElement(index_1.Slider, { value: value, min: 12, max: 60, onChange: function (val) { return setValue(editor, cmd, val); } })) },
|
|
139
126
|
react_1.default.createElement("span", { className: clazz.join(' ') },
|
|
140
127
|
"\u5B57\u53F7 : ",
|
|
141
128
|
react_1.default.createElement("b", { className: 'vapfont' },
|
|
@@ -188,16 +175,16 @@ var Color = function (_a) {
|
|
|
188
175
|
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
189
176
|
var editor = (0, slate_react_1.useSlate)();
|
|
190
177
|
var value = markValue(editor, cmd);
|
|
191
|
-
var clazz = ['
|
|
178
|
+
var clazz = ['se-icon', 'se-icon-mark', 'vicon', 'vicon-' + icon];
|
|
192
179
|
if (disabled || (((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.focus.offset) == ((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.offset))) {
|
|
193
|
-
clazz.push('
|
|
180
|
+
clazz.push('se-icon-disabled');
|
|
194
181
|
}
|
|
195
182
|
var style = {};
|
|
196
183
|
if (value) {
|
|
197
184
|
style.color = value;
|
|
198
185
|
style.fontWeight = 'bold';
|
|
199
186
|
}
|
|
200
|
-
return react_1.default.createElement(
|
|
187
|
+
return react_1.default.createElement(index_1.ColorPicker, __assign({}, colorProps, { onChange: function (val, hex) { return setValue(editor, cmd, hex); } }),
|
|
201
188
|
react_1.default.createElement("span", { className: clazz.join(' '), style: style }));
|
|
202
189
|
};
|
|
203
190
|
exports.Color = Color;
|
|
@@ -206,15 +193,15 @@ var BgColor = function (_a) {
|
|
|
206
193
|
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
207
194
|
var editor = (0, slate_react_1.useSlate)();
|
|
208
195
|
var value = markValue(editor, cmd);
|
|
209
|
-
var clazz = ['
|
|
196
|
+
var clazz = ['se-icon', 'se-icon-mark', 'vicon', 'vicon-' + icon];
|
|
210
197
|
if (disabled || (((_b = editor.selection) === null || _b === void 0 ? void 0 : _b.focus.offset) == ((_c = editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.offset))) {
|
|
211
|
-
clazz.push('
|
|
198
|
+
clazz.push('se-icon-disabled');
|
|
212
199
|
}
|
|
213
200
|
var style = {};
|
|
214
201
|
if (value) {
|
|
215
202
|
style.backgroundColor = value;
|
|
216
203
|
}
|
|
217
|
-
return react_1.default.createElement(
|
|
204
|
+
return react_1.default.createElement(index_1.ColorPicker, __assign({}, colorProps, { onChange: function (val, hex) { return setValue(editor, cmd, hex); } }),
|
|
218
205
|
react_1.default.createElement("span", { className: clazz.join(' '), style: style }));
|
|
219
206
|
};
|
|
220
207
|
exports.BgColor = BgColor;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BaseElement } from 'slate';
|
|
1
3
|
import type { ReactEditor } from 'slate-react';
|
|
2
4
|
import type { BaseEditor, Descendant } from 'slate';
|
|
3
5
|
export type CommandType = 'bold' | 'italic' | 'underline' | 'code' | 'strikethrough' | 'color' | 'bgColor' | 'fontSize' | 'fontFamily' | 'link' | 'h1' | 'h2' | 'h3' | 'h4' | 'hr' | 'image' | 'video' | 'audio' | 'blockQuote' | 'numberedList' | 'bulletedList' | 'left' | 'center' | 'right' | 'justify';
|
|
4
|
-
export type EmptyText = {
|
|
5
|
-
text: string;
|
|
6
|
-
};
|
|
7
6
|
export type CustomText = {
|
|
8
7
|
bold?: boolean;
|
|
9
8
|
italic?: boolean;
|
|
@@ -27,114 +26,89 @@ export type ButtonProps = ButtonDefine & {
|
|
|
27
26
|
cmd: CommandType;
|
|
28
27
|
disabled: boolean;
|
|
29
28
|
};
|
|
30
|
-
export
|
|
29
|
+
export type EditorElement = BaseElement & {
|
|
30
|
+
type: string;
|
|
31
|
+
align?: 'left' | 'center' | 'right';
|
|
32
|
+
};
|
|
31
33
|
type TableRow = any;
|
|
32
34
|
type TableCell = any;
|
|
33
|
-
type BlockQuoteElement = {
|
|
35
|
+
type BlockQuoteElement = EditorElement & {
|
|
34
36
|
type: 'blockQuote';
|
|
35
|
-
align?: string;
|
|
36
|
-
children: Descendant[];
|
|
37
37
|
};
|
|
38
|
-
type BulletedListElement = {
|
|
38
|
+
type BulletedListElement = EditorElement & {
|
|
39
39
|
type: 'bulletedList';
|
|
40
|
-
align?: string;
|
|
41
|
-
children: Descendant[];
|
|
42
40
|
};
|
|
43
|
-
type NumberedListElement = {
|
|
41
|
+
type NumberedListElement = EditorElement & {
|
|
44
42
|
type: 'numberedList';
|
|
45
|
-
align?: string;
|
|
46
|
-
children: Descendant[];
|
|
47
43
|
};
|
|
48
|
-
type CheckListItemElement = {
|
|
44
|
+
type CheckListItemElement = EditorElement & {
|
|
49
45
|
type: 'checkListItem';
|
|
50
46
|
checked: boolean;
|
|
51
|
-
children: Descendant[];
|
|
52
47
|
};
|
|
53
|
-
type EditableVoidElement = {
|
|
48
|
+
type EditableVoidElement = EditorElement & {
|
|
54
49
|
type: 'editableVoid';
|
|
55
|
-
children: EmptyText[];
|
|
56
50
|
};
|
|
57
|
-
type HeadingElement = {
|
|
51
|
+
type HeadingElement = EditorElement & {
|
|
58
52
|
type: 'h1';
|
|
59
|
-
align?: string;
|
|
60
|
-
children: Descendant[];
|
|
61
53
|
};
|
|
62
|
-
type HeadingTwoElement = {
|
|
54
|
+
type HeadingTwoElement = EditorElement & {
|
|
63
55
|
type: 'h2';
|
|
64
|
-
align?: string;
|
|
65
|
-
children: Descendant[];
|
|
66
56
|
};
|
|
67
|
-
type HeadingThreeElement = {
|
|
57
|
+
type HeadingThreeElement = EditorElement & {
|
|
68
58
|
type: 'h3';
|
|
69
|
-
align?: string;
|
|
70
|
-
children: Descendant[];
|
|
71
59
|
};
|
|
72
|
-
type HeadingFourElement = {
|
|
60
|
+
type HeadingFourElement = EditorElement & {
|
|
73
61
|
type: 'h4';
|
|
74
|
-
align?: string;
|
|
75
|
-
children: Descendant[];
|
|
76
62
|
};
|
|
77
|
-
type LinkElement = {
|
|
63
|
+
type LinkElement = EditorElement & {
|
|
78
64
|
type: 'link';
|
|
79
65
|
url: string;
|
|
80
|
-
children: Descendant[];
|
|
81
66
|
};
|
|
82
|
-
type ButtonElement = {
|
|
67
|
+
type ButtonElement = EditorElement & {
|
|
83
68
|
type: 'button';
|
|
84
|
-
children: Descendant[];
|
|
85
69
|
};
|
|
86
|
-
type BadgeElement = {
|
|
70
|
+
type BadgeElement = EditorElement & {
|
|
87
71
|
type: 'badge';
|
|
88
|
-
children: Descendant[];
|
|
89
72
|
};
|
|
90
|
-
type ListItemElement = {
|
|
73
|
+
type ListItemElement = EditorElement & {
|
|
91
74
|
type: 'listItem';
|
|
92
|
-
children: Descendant[];
|
|
93
75
|
};
|
|
94
|
-
type MentionElement = {
|
|
76
|
+
type MentionElement = EditorElement & {
|
|
95
77
|
type: 'mention';
|
|
96
78
|
character: string;
|
|
97
|
-
children: CustomText[];
|
|
98
79
|
};
|
|
99
|
-
type ParagraphElement = {
|
|
80
|
+
type ParagraphElement = EditorElement & {
|
|
100
81
|
type: 'paragraph';
|
|
101
|
-
align?: string;
|
|
102
|
-
children: Descendant[];
|
|
103
82
|
};
|
|
104
|
-
type TableElement = {
|
|
83
|
+
type TableElement = EditorElement & {
|
|
105
84
|
type: 'table';
|
|
106
85
|
children: TableRow[];
|
|
107
86
|
};
|
|
108
|
-
type TableCellElement = {
|
|
87
|
+
type TableCellElement = EditorElement & {
|
|
109
88
|
type: 'table-cell';
|
|
110
89
|
children: CustomText[];
|
|
111
90
|
};
|
|
112
|
-
type TableRowElement = {
|
|
91
|
+
type TableRowElement = EditorElement & {
|
|
113
92
|
type: 'table-row';
|
|
114
93
|
children: TableCell[];
|
|
115
94
|
};
|
|
116
|
-
type TitleElement = {
|
|
95
|
+
type TitleElement = EditorElement & {
|
|
117
96
|
type: 'title';
|
|
118
|
-
children: Descendant[];
|
|
119
97
|
};
|
|
120
|
-
export type ImageElement = {
|
|
98
|
+
export type ImageElement = EditorElement & {
|
|
121
99
|
type: 'image';
|
|
122
100
|
url: string;
|
|
123
|
-
children?: EmptyText[];
|
|
124
101
|
};
|
|
125
|
-
export type VideoElement = {
|
|
102
|
+
export type VideoElement = EditorElement & {
|
|
126
103
|
type: 'video';
|
|
127
104
|
url: string;
|
|
128
|
-
children?: EmptyText[];
|
|
129
105
|
};
|
|
130
|
-
export type AudioElement = {
|
|
106
|
+
export type AudioElement = EditorElement & {
|
|
131
107
|
type: 'audio';
|
|
132
108
|
url: string;
|
|
133
|
-
children?: EmptyText[];
|
|
134
109
|
};
|
|
135
|
-
export type HRElement = {
|
|
110
|
+
export type HRElement = EditorElement & {
|
|
136
111
|
type: 'hr';
|
|
137
|
-
children: EmptyText[];
|
|
138
112
|
};
|
|
139
113
|
type CodeBlockElement = {
|
|
140
114
|
type: 'codeBlock';
|
|
@@ -150,7 +124,24 @@ declare module 'slate' {
|
|
|
150
124
|
interface CustomTypes {
|
|
151
125
|
Editor: BaseEditor & ReactEditor;
|
|
152
126
|
Element: CustomElement;
|
|
153
|
-
Text: CustomText
|
|
127
|
+
Text: CustomText;
|
|
154
128
|
}
|
|
155
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* 富文本框
|
|
132
|
+
*/
|
|
133
|
+
export type ArticleProps = {
|
|
134
|
+
/**
|
|
135
|
+
* 值,传JSON串,或是 JSON
|
|
136
|
+
*/
|
|
137
|
+
value: string | Descendant[];
|
|
138
|
+
/**
|
|
139
|
+
* 样式名称
|
|
140
|
+
*/
|
|
141
|
+
className?: string;
|
|
142
|
+
/**
|
|
143
|
+
* 自定义样式
|
|
144
|
+
*/
|
|
145
|
+
sytle?: React.CSSProperties;
|
|
146
|
+
};
|
|
156
147
|
export {};
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Descendant } from 'slate';
|
|
2
|
+
import type { CommandType, ArticleProps } from '../types';
|
|
3
|
+
export declare const FontFamilyTexts: string[];
|
|
4
|
+
export declare const FULL_TOOLS: CommandType[][];
|
|
5
|
+
export declare const SIMPLE_TOOLS: CommandType[][];
|
|
6
|
+
export declare const DEFAULT_VALUE: Descendant[];
|
|
7
|
+
export declare const initValue: (props: Partial<ArticleProps>) => any[];
|