vap1 0.3.7 → 0.3.9
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 +136 -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 +187 -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} +8 -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 +45 -54
- 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/screen/Page.js +1 -1
- package/uform/hooks/useEditor.js +1 -4
- package/utils/ArrayUtil.js +12 -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,32 @@
|
|
|
1
|
+
import type { Descendant } from 'slate';
|
|
2
|
+
import type { FC, ReactNode } from 'react';
|
|
3
|
+
export type EditorModalProps = {
|
|
4
|
+
/**
|
|
5
|
+
* 弹框标题
|
|
6
|
+
*/
|
|
7
|
+
title?: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* 是否打开
|
|
10
|
+
*/
|
|
11
|
+
open: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 初始数据
|
|
14
|
+
*/
|
|
15
|
+
data?: Descendant[] | string;
|
|
16
|
+
/**
|
|
17
|
+
* 弹框宽度
|
|
18
|
+
*/
|
|
19
|
+
width?: number;
|
|
20
|
+
/**
|
|
21
|
+
* onOk时 数据类型
|
|
22
|
+
* string = 字段串,
|
|
23
|
+
* ojbect = 对象(默认),可自动通过 JSON.stringify 转成字符串
|
|
24
|
+
*/
|
|
25
|
+
dataType?: 'string' | 'object';
|
|
26
|
+
onCancel: () => void;
|
|
27
|
+
onOk: (data: any) => void;
|
|
28
|
+
};
|
|
29
|
+
export declare const useDestoryModal: (props: {
|
|
30
|
+
open?: boolean;
|
|
31
|
+
}) => [boolean, () => void];
|
|
32
|
+
export declare const EditorModal: FC<EditorModalProps>;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
37
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
38
|
+
if (!m) return o;
|
|
39
|
+
var i = m.call(o), r, ar = [], e;
|
|
40
|
+
try {
|
|
41
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
42
|
+
}
|
|
43
|
+
catch (error) { e = { error: error }; }
|
|
44
|
+
finally {
|
|
45
|
+
try {
|
|
46
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
47
|
+
}
|
|
48
|
+
finally { if (e) throw e.error; }
|
|
49
|
+
}
|
|
50
|
+
return ar;
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.EditorModal = exports.useDestoryModal = void 0;
|
|
54
|
+
var react_1 = __importStar(require("react"));
|
|
55
|
+
var index_1 = require("../../index");
|
|
56
|
+
var Editor_1 = require("./Editor");
|
|
57
|
+
var utils_1 = require("../../utils");
|
|
58
|
+
var useDestoryModal = function (props) {
|
|
59
|
+
var _a = __read((0, react_1.useState)(false), 2), open = _a[0], setOpen = _a[1];
|
|
60
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
61
|
+
if (props.open)
|
|
62
|
+
setOpen(true);
|
|
63
|
+
}, [props.open]);
|
|
64
|
+
return [open, function () { return setOpen(false); }];
|
|
65
|
+
};
|
|
66
|
+
exports.useDestoryModal = useDestoryModal;
|
|
67
|
+
var _EditorModal = function (props) {
|
|
68
|
+
// const editor = useMemo(() => withHistory(withReact(createEditor())), [])
|
|
69
|
+
var editorRef = (0, react_1.useRef)();
|
|
70
|
+
var onOk = (0, react_1.useCallback)(function () {
|
|
71
|
+
if (props.dataType == 'string') {
|
|
72
|
+
props.onOk(JSON.stringify(editorRef.current.getValue()));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
props.onOk(editorRef.current.getValue());
|
|
76
|
+
}
|
|
77
|
+
}, []);
|
|
78
|
+
return react_1.default.createElement(index_1.Modal, { open: props.open, maskClosable: false,
|
|
79
|
+
// onCancel={props.onCancel}
|
|
80
|
+
title: props.title, width: props.width || 960, afterClose: props.afterClose, bodyStyle: { width: '100%', height: 480, padding: 0 }, onOk: onOk, onCancel: props.onCancel },
|
|
81
|
+
react_1.default.createElement(Editor_1.Editor, { value: props.data, ref: editorRef }));
|
|
82
|
+
};
|
|
83
|
+
var EditorModal = function (props) {
|
|
84
|
+
var _a = __read((0, exports.useDestoryModal)(props), 2), open = _a[0], afterClose = _a[1];
|
|
85
|
+
if (!open)
|
|
86
|
+
return utils_1.Const.NONE;
|
|
87
|
+
return react_1.default.createElement(_EditorModal, __assign({}, props, { afterClose: afterClose }));
|
|
88
|
+
};
|
|
89
|
+
exports.EditorModal = EditorModal;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditorModal = exports.Article = exports.Editor = void 0;
|
|
4
|
+
var Editor_1 = require("./Editor");
|
|
5
|
+
Object.defineProperty(exports, "Editor", { enumerable: true, get: function () { return Editor_1.Editor; } });
|
|
6
|
+
var Article_1 = require("./Article");
|
|
7
|
+
Object.defineProperty(exports, "Article", { enumerable: true, get: function () { return Article_1.Article; } });
|
|
8
|
+
var EditorModal_1 = require("./EditorModal");
|
|
9
|
+
Object.defineProperty(exports, "EditorModal", { enumerable: true, get: function () { return EditorModal_1.EditorModal; } });
|
|
@@ -15,12 +15,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var react_1 = __importDefault(require("react"));
|
|
18
|
-
var components_1 = require("
|
|
19
|
-
var
|
|
18
|
+
var components_1 = require("../../components");
|
|
19
|
+
var index_1 = require("./index");
|
|
20
20
|
(0, components_1.registerFormField)('editor', function (props) {
|
|
21
21
|
var disabled = props.disabled, value = props.value, onChange = props.onChange, field = props.field;
|
|
22
|
-
return react_1.default.createElement(
|
|
22
|
+
return react_1.default.createElement(index_1.Editor, __assign({ placeholder: (0, components_1.getPlaceholder)(field) }, field.config, { value: value, disabled: disabled, onChange: function (val) { return onChange(val); } }));
|
|
23
23
|
}, {
|
|
24
24
|
breakCol: true,
|
|
25
|
-
render: function (value) { return react_1.default.createElement(
|
|
25
|
+
render: function (value) { return react_1.default.createElement(index_1.Article, { value: value }); }
|
|
26
26
|
});
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ImageButton = exports.insertImage = void 0;
|
|
27
|
+
var react_1 = __importStar(require("react"));
|
|
28
|
+
var slate_react_1 = require("slate-react");
|
|
29
|
+
var UploadImage_1 = require("../../../../components/Upload/UploadImage");
|
|
30
|
+
var UForm_1 = require("../../../../components/UForm");
|
|
31
|
+
var utils_1 = require("../../../../utils");
|
|
32
|
+
var slate_1 = require("slate");
|
|
33
|
+
var index_1 = require("../../../../index");
|
|
34
|
+
var useToggle_1 = require("../../../../hooks/useToggle");
|
|
35
|
+
var insertImage = function (editor, url) {
|
|
36
|
+
var image = { type: 'image', url: url, children: [{ text: '' }] };
|
|
37
|
+
slate_1.Transforms.insertNodes(editor, image);
|
|
38
|
+
slate_1.Transforms.insertNodes(editor, { type: 'paragraph', children: [{ text: '' }], });
|
|
39
|
+
};
|
|
40
|
+
exports.insertImage = insertImage;
|
|
41
|
+
var UploadImageModal = function (_a) {
|
|
42
|
+
var open = _a.open, onCancel = _a.onCancel, onOk = _a.onOk, value = _a.value;
|
|
43
|
+
var currentUrl = (0, react_1.useRef)();
|
|
44
|
+
return react_1.default.createElement(index_1.Modal, { width: 640, bodyStyle: { padding: 0, height: 400 }, title: "\u4E0A\u4F20\u56FE\u7247", open: open, onCancel: onCancel, onOk: function () {
|
|
45
|
+
if (currentUrl.current == null) {
|
|
46
|
+
index_1.message.error('请上传图片');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
onOk(currentUrl.current);
|
|
50
|
+
} },
|
|
51
|
+
react_1.default.createElement(UploadImage_1.UploadImage, { allowClear: false, width: 640, height: 400, onChange: function (data) {
|
|
52
|
+
currentUrl.current = (0, UploadImage_1.getImageUrl)(data.fileId);
|
|
53
|
+
} }));
|
|
54
|
+
};
|
|
55
|
+
var ImageButton = function (_a) {
|
|
56
|
+
var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
|
|
57
|
+
var uploadState = (0, useToggle_1.useToggle)();
|
|
58
|
+
var inputState = (0, useToggle_1.useToggle)();
|
|
59
|
+
var selectState = (0, useToggle_1.useToggle)();
|
|
60
|
+
var editor = (0, slate_react_1.useSlate)();
|
|
61
|
+
var clazz = ['se-icon', 'vicon', 'vicon-' + icon];
|
|
62
|
+
if (disabled) {
|
|
63
|
+
clazz.push('se-icon-disabled');
|
|
64
|
+
}
|
|
65
|
+
return react_1.default.createElement(react_1.default.Fragment, null,
|
|
66
|
+
react_1.default.createElement(index_1.Dropdown, { placement: "bottomLeft", arrow: true, trigger: ['click'], menu: {
|
|
67
|
+
items: [
|
|
68
|
+
{ key: 1, label: "上传图片", onClick: uploadState[1] },
|
|
69
|
+
// { key: 2, label: "从图库中选择", onClick: selectState[1] },
|
|
70
|
+
{ key: 3, label: "输入图片URL", onClick: inputState[1] },
|
|
71
|
+
// {
|
|
72
|
+
// key: 3, label: "输入图片URL", onClick: () => {
|
|
73
|
+
// // editor.insertData({})
|
|
74
|
+
// insertImage(editor, 'http://www.vrv.com.cn/images/banner_03.png')
|
|
75
|
+
// }
|
|
76
|
+
// },
|
|
77
|
+
]
|
|
78
|
+
} },
|
|
79
|
+
react_1.default.createElement("span", { className: clazz.join(' '), title: utils_1.i18n.txt(ik) })),
|
|
80
|
+
react_1.default.createElement(UploadImageModal, { open: uploadState[0], onCancel: (uploadState[1]), onOk: function (url) {
|
|
81
|
+
uploadState[1]();
|
|
82
|
+
(0, exports.insertImage)(editor, url);
|
|
83
|
+
} }),
|
|
84
|
+
react_1.default.createElement(UForm_1.UFormModal, { title: "\u8F93\u5165\u56FE\u7247\u5730\u5740", open: inputState[0], onCancel: inputState[1], default: {}, fields: [
|
|
85
|
+
{ field: 'url', title: '图片地址', required: true, type: 'url' }
|
|
86
|
+
], onOk: function (data) {
|
|
87
|
+
inputState[1]();
|
|
88
|
+
(0, exports.insertImage)(editor, data.url);
|
|
89
|
+
} }));
|
|
90
|
+
};
|
|
91
|
+
exports.ImageButton = ImageButton;
|
|
92
|
+
// const isImageUrl = url => {
|
|
93
|
+
// if (!url) return false
|
|
94
|
+
// if (!StringUtil.isURL(url)) return false
|
|
95
|
+
// // const ext = new URL(url).pathname.split('.').pop()
|
|
96
|
+
// // return imageExtensions.includes(ext)
|
|
97
|
+
// return true;
|
|
98
|
+
// }
|
|
99
|
+
// const insertImage = (editor, url) => {
|
|
100
|
+
// console.log('inserimg')
|
|
101
|
+
// const text = { text: '' }
|
|
102
|
+
// const image: ImageElement = { type: 'image', url, children: [text] }
|
|
103
|
+
// Transforms.insertNodes(editor, image)
|
|
104
|
+
// Transforms.insertNodes(editor, {
|
|
105
|
+
// type: 'paragraph',
|
|
106
|
+
// children: [{ text: '' }],
|
|
107
|
+
// })
|
|
108
|
+
// }
|
|
109
|
+
// export const withInsert = (editor: Editor) => {
|
|
110
|
+
// const { insertData, isVoid } = editor
|
|
111
|
+
// editor.isVoid = element => {
|
|
112
|
+
// return element.type === 'image' ? true : isVoid(element)
|
|
113
|
+
// }
|
|
114
|
+
// editor.insertData = data => {
|
|
115
|
+
// const text = data.getData('text/plain');
|
|
116
|
+
// const { files } = data
|
|
117
|
+
// if (files && files.length > 0) {
|
|
118
|
+
// for (const file of files) {
|
|
119
|
+
// const reader = new FileReader()
|
|
120
|
+
// const [mime] = file.type.split('/')
|
|
121
|
+
// if (mime === 'image') {
|
|
122
|
+
// reader.addEventListener('load', () => {
|
|
123
|
+
// const url = reader.result
|
|
124
|
+
// insertImage(editor, url)
|
|
125
|
+
// })
|
|
126
|
+
// reader.readAsDataURL(file)
|
|
127
|
+
// }
|
|
128
|
+
// }
|
|
129
|
+
// } else if (isImageUrl(text)) {
|
|
130
|
+
// insertImage(editor, text)
|
|
131
|
+
// } else {
|
|
132
|
+
// insertData(data)
|
|
133
|
+
// }
|
|
134
|
+
// }
|
|
135
|
+
// return editor
|
|
136
|
+
// }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ImageButton } from './ImageButton';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImageButton = void 0;
|
|
4
|
+
var ImageButton_1 = require("./ImageButton");
|
|
5
|
+
Object.defineProperty(exports, "ImageButton", { enumerable: true, get: function () { return ImageButton_1.ImageButton; } });
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Image = void 0;
|
|
18
|
+
var react_1 = __importDefault(require("react"));
|
|
19
|
+
var index_1 = require("../../../../index");
|
|
20
|
+
var slate_react_1 = require("slate-react");
|
|
21
|
+
var slate_1 = require("slate");
|
|
22
|
+
var slate_react_2 = require("slate-react");
|
|
23
|
+
var UploadImage_1 = require("../../../../components/Upload/UploadImage");
|
|
24
|
+
var ImageView = function (_a) {
|
|
25
|
+
var attributes = _a.attributes, children = _a.children, element = _a.element;
|
|
26
|
+
return react_1.default.createElement("div", __assign({}, attributes, { className: 'sv-img' }),
|
|
27
|
+
react_1.default.createElement("img", { src: (0, UploadImage_1.getImageUrl)(element.url) }));
|
|
28
|
+
};
|
|
29
|
+
var ImageEdit = function (_a) {
|
|
30
|
+
var attributes = _a.attributes, children = _a.children, element = _a.element;
|
|
31
|
+
var editor = (0, slate_react_1.useSlateStatic)();
|
|
32
|
+
var path = slate_react_1.ReactEditor.findPath(editor, element);
|
|
33
|
+
var selected = (0, slate_react_2.useSelected)();
|
|
34
|
+
return react_1.default.createElement("div", __assign({}, attributes, { className: 'sv-img' + (selected ? ' se-del' : '') }),
|
|
35
|
+
children,
|
|
36
|
+
react_1.default.createElement("div", { contentEditable: false, className: 'sv-img-content' + (element.align ? (' sv-img-' + element.align) : '') },
|
|
37
|
+
selected && react_1.default.createElement(index_1.Button, { danger: true, type: 'primary', onClick: function () { return slate_1.Transforms.removeNodes(editor, { at: path }); }, size: "small" }, "\u5220\u9664"),
|
|
38
|
+
react_1.default.createElement("img", { src: (0, UploadImage_1.getImageUrl)(element.url) })));
|
|
39
|
+
};
|
|
40
|
+
var Image = function (props) {
|
|
41
|
+
if (props.isEditor)
|
|
42
|
+
return react_1.default.createElement(ImageEdit, __assign({}, props));
|
|
43
|
+
return react_1.default.createElement(ImageView, __assign({}, props));
|
|
44
|
+
// const editor = useSlateStatic()
|
|
45
|
+
// const path = ReactEditor.findPath(editor, element)
|
|
46
|
+
// // console.log(path)
|
|
47
|
+
// // const selected = useSelected()
|
|
48
|
+
// // const focused = useFocused()
|
|
49
|
+
// return <div {...attributes}>
|
|
50
|
+
// {/* {children} */}
|
|
51
|
+
// <div
|
|
52
|
+
// contentEditable={false}
|
|
53
|
+
// // className={css`
|
|
54
|
+
// // position: relative;
|
|
55
|
+
// // `}
|
|
56
|
+
// >
|
|
57
|
+
// <img
|
|
58
|
+
// src={element.url}
|
|
59
|
+
// // className={css`
|
|
60
|
+
// // display: block;
|
|
61
|
+
// // max-width: 100%;
|
|
62
|
+
// // max-height: 20em;
|
|
63
|
+
// // box-shadow: ${selected && focused ? '0 0 0 3px #B4D5FF' : 'none'};
|
|
64
|
+
// // `}
|
|
65
|
+
// />
|
|
66
|
+
// <a
|
|
67
|
+
// // active
|
|
68
|
+
// onClick={() => Transforms.removeNodes(editor, { at: path })}
|
|
69
|
+
// // className={css`
|
|
70
|
+
// // display: ${selected && focused ? 'inline' : 'none'};
|
|
71
|
+
// // position: absolute;
|
|
72
|
+
// // top: 0.5em;
|
|
73
|
+
// // left: 0.5em;
|
|
74
|
+
// // background-color: white;
|
|
75
|
+
// // `}
|
|
76
|
+
// >
|
|
77
|
+
// {/* <Icon>delete</Icon> */}
|
|
78
|
+
// </a>
|
|
79
|
+
// </div>
|
|
80
|
+
// </div>
|
|
81
|
+
};
|
|
82
|
+
exports.Image = Image;
|
|
83
|
+
// import React from 'react'
|
|
84
|
+
// import { Transforms } from 'slate'
|
|
85
|
+
// import { useSlateStatic, ReactEditor, useReadOnly } from 'slate-react'
|
|
86
|
+
// import { Button } from 'antd'
|
|
87
|
+
// import { Editor } from 'slate'
|
|
88
|
+
// import type { CommandType } from '../../types'
|
|
89
|
+
// const ImageViewer = ({ attributes, element, children, style }) => {
|
|
90
|
+
// return <div {...attributes} className='v-image' style={style}>
|
|
91
|
+
// <img src={element.url} />
|
|
92
|
+
// </div>
|
|
93
|
+
// }
|
|
94
|
+
// const markValue = (editor: Editor, cmd: CommandType) => {
|
|
95
|
+
// const marks = Editor.marks(editor);
|
|
96
|
+
// if (marks && marks[cmd]) {
|
|
97
|
+
// return marks[cmd];
|
|
98
|
+
// }
|
|
99
|
+
// return null;
|
|
100
|
+
// }
|
|
101
|
+
// const setValue = (editor: Editor, cmd: CommandType, value: string | number | null) => {
|
|
102
|
+
// if (value == null || value == '') {
|
|
103
|
+
// const notSelected = editor.selection?.focus.offset == editor.selection?.anchor.offset;
|
|
104
|
+
// if (notSelected) {
|
|
105
|
+
// editor.select(editor.selection.focus.path);
|
|
106
|
+
// }
|
|
107
|
+
// Editor.removeMark(editor, cmd)
|
|
108
|
+
// } else {
|
|
109
|
+
// Editor.addMark(editor, cmd, value)
|
|
110
|
+
// }
|
|
111
|
+
// }
|
|
112
|
+
// const ImageEditor = ({ attributes, element, children, style }) => {
|
|
113
|
+
// const editor = useSlateStatic()
|
|
114
|
+
// const path = ReactEditor.findPath(editor, element);
|
|
115
|
+
// return <div {...attributes} className='v-image' style={style}>
|
|
116
|
+
// <img src={element.url}
|
|
117
|
+
// // className={css`
|
|
118
|
+
// // display: block;
|
|
119
|
+
// // max-width: 100%;
|
|
120
|
+
// // max-height: 20em;
|
|
121
|
+
// // box-shadow: ${selected && focused ? '0 0 0 3px #B4D5FF' : 'none'};
|
|
122
|
+
// // `}
|
|
123
|
+
// />
|
|
124
|
+
// {children}
|
|
125
|
+
// <div contentEditable={false}
|
|
126
|
+
// // className={css`
|
|
127
|
+
// // position: relative;
|
|
128
|
+
// // `}
|
|
129
|
+
// >
|
|
130
|
+
// <Button
|
|
131
|
+
// icon="delete"
|
|
132
|
+
// // active
|
|
133
|
+
// onClick={() => Transforms.removeNodes(editor, { at: path })}
|
|
134
|
+
// // className={css`
|
|
135
|
+
// // display: ${selected && focused ? 'inline' : 'none'};
|
|
136
|
+
// // position: absolute;
|
|
137
|
+
// // top: 0.5em;
|
|
138
|
+
// // left: 0.5em;
|
|
139
|
+
// // background-color: white;
|
|
140
|
+
// // `}
|
|
141
|
+
// >
|
|
142
|
+
// </Button>
|
|
143
|
+
// </div>
|
|
144
|
+
// </div>
|
|
145
|
+
// }
|
|
146
|
+
// export const Image = (props) => {
|
|
147
|
+
// const isReadOnly = useReadOnly();
|
|
148
|
+
// if (!isReadOnly && props.isEditor) {
|
|
149
|
+
// return <ImageEditor {...props} />
|
|
150
|
+
// }
|
|
151
|
+
// return <ImageViewer {...props} />
|
|
152
|
+
// // const editor = useSlateStatic()
|
|
153
|
+
// // const path = ReactEditor.findPath(editor, element);
|
|
154
|
+
// // // editor.above
|
|
155
|
+
// // const selected = useSelected()
|
|
156
|
+
// // return <div {...attributes} className='v-image' style={style}>
|
|
157
|
+
// // <img src={element.url}
|
|
158
|
+
// // // className={css`
|
|
159
|
+
// // // display: block;
|
|
160
|
+
// // // max-width: 100%;
|
|
161
|
+
// // // max-height: 20em;
|
|
162
|
+
// // // box-shadow: ${selected && focused ? '0 0 0 3px #B4D5FF' : 'none'};
|
|
163
|
+
// // // `}
|
|
164
|
+
// // />
|
|
165
|
+
// // {children}
|
|
166
|
+
// // <div
|
|
167
|
+
// // contentEditable={false}
|
|
168
|
+
// // // className={css`
|
|
169
|
+
// // // position: relative;
|
|
170
|
+
// // // `}
|
|
171
|
+
// // >
|
|
172
|
+
// // <Button
|
|
173
|
+
// // icon="delete"
|
|
174
|
+
// // // active
|
|
175
|
+
// // onClick={() => Transforms.removeNodes(editor, { at: path })}
|
|
176
|
+
// // // className={css`
|
|
177
|
+
// // // display: ${selected && focused ? 'inline' : 'none'};
|
|
178
|
+
// // // position: absolute;
|
|
179
|
+
// // // top: 0.5em;
|
|
180
|
+
// // // left: 0.5em;
|
|
181
|
+
// // // background-color: white;
|
|
182
|
+
// // // `}
|
|
183
|
+
// // >
|
|
184
|
+
// // </Button>
|
|
185
|
+
// // </div>
|
|
186
|
+
// // </div>
|
|
187
|
+
// }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RenderElementProps } from "slate-react";
|
|
2
|
+
import type { FC, CSSProperties } from 'react';
|
|
3
|
+
import type { Element } from 'slate';
|
|
4
|
+
import type { CustomElement, EditorElement } from '../../types';
|
|
5
|
+
export type ElementRender<T extends Element = CustomElement> = FC<Omit<RenderElementProps, 'element'> & {
|
|
6
|
+
element: T;
|
|
7
|
+
isEditor?: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const getStyle: (element: EditorElement) => CSSProperties;
|
|
@@ -16,14 +16,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Element = void 0;
|
|
18
18
|
var react_1 = __importDefault(require("react"));
|
|
19
|
-
var
|
|
19
|
+
var ImageElement_1 = require("./ImageElement");
|
|
20
|
+
var _Base_1 = require("./_Base");
|
|
20
21
|
var Element = function (props) {
|
|
21
22
|
var attributes = props.attributes, children = props.children;
|
|
22
23
|
var element = props.element;
|
|
23
|
-
var style =
|
|
24
|
-
// @ts-ignore
|
|
25
|
-
if (element.align)
|
|
26
|
-
style.textAlign = element.align;
|
|
24
|
+
var style = (0, _Base_1.getStyle)(element);
|
|
27
25
|
switch (element.type) {
|
|
28
26
|
case 'blockQuote':
|
|
29
27
|
return react_1.default.createElement("blockquote", __assign({ style: style }, attributes), children);
|
|
@@ -46,7 +44,11 @@ var Element = function (props) {
|
|
|
46
44
|
case 'hr':
|
|
47
45
|
return react_1.default.createElement("hr", __assign({ style: style }, attributes));
|
|
48
46
|
case 'image':
|
|
49
|
-
return react_1.default.createElement(
|
|
47
|
+
return react_1.default.createElement(ImageElement_1.Image, __assign({}, props, { isEditor: props.isEditor }));
|
|
48
|
+
case 'video':
|
|
49
|
+
case 'audio':
|
|
50
|
+
// return <div style={{ color: 'red' }}>视频还不支持</div>
|
|
51
|
+
return react_1.default.createElement("div", { style: { color: 'red' } }, "\u6682\u4E0D\u652F\u6301");
|
|
50
52
|
default:
|
|
51
53
|
return react_1.default.createElement("p", __assign({ style: style }, attributes), children);
|
|
52
54
|
}
|
|
@@ -16,7 +16,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Leaf = void 0;
|
|
18
18
|
var react_1 = __importDefault(require("react"));
|
|
19
|
-
var
|
|
19
|
+
var utils_1 = require("../../utils");
|
|
20
20
|
var Leaf = function (props) {
|
|
21
21
|
var leaf = props.leaf;
|
|
22
22
|
var children = props.children;
|
|
@@ -36,7 +36,7 @@ var Leaf = function (props) {
|
|
|
36
36
|
if (leaf.fontSize)
|
|
37
37
|
style.fontSize = leaf.fontSize;
|
|
38
38
|
if (leaf.fontFamily && leaf.fontFamily > 0 && leaf.fontFamily < 5) {
|
|
39
|
-
style.fontFamily =
|
|
39
|
+
style.fontFamily = utils_1.FontFamilyTexts[leaf.fontFamily];
|
|
40
40
|
}
|
|
41
41
|
if (leaf.color)
|
|
42
42
|
style.color = leaf.color;
|