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.
Files changed (86) hide show
  1. package/components/SearchBar/ByField.d.ts +6 -3
  2. package/components/SearchBar/ByField.js +5 -5
  3. package/components/SearchBar/ByKeyword.js +7 -1
  4. package/components/Upload/UploadImage.d.ts +1 -0
  5. package/components/Upload/UploadImage.js +6 -5
  6. package/components/_adapt/Tabs.d.ts +15 -0
  7. package/components/_adapt/Tabs.js +38 -3
  8. package/deps/app-data/Const.d.ts +6 -0
  9. package/deps/app-data/Const.js +10 -0
  10. package/deps/app-data/SourceTable.js +137 -0
  11. package/deps/{apis → app-data}/useSource.js +18 -8
  12. package/deps/editor/Article.d.ts +20 -0
  13. package/deps/editor/Article.js +53 -0
  14. package/deps/editor/Editor.d.ts +43 -0
  15. package/deps/editor/Editor.js +110 -0
  16. package/deps/editor/EditorModal.d.ts +32 -0
  17. package/deps/editor/EditorModal.js +89 -0
  18. package/deps/editor/index.d.ts +4 -0
  19. package/deps/editor/index.js +9 -0
  20. package/deps/{registerEditor.js → editor/registerEditor.js} +4 -4
  21. package/deps/editor/support/buttons/ImageButton.d.ts +5 -0
  22. package/deps/editor/support/buttons/ImageButton.js +136 -0
  23. package/deps/editor/support/buttons/index.d.ts +1 -0
  24. package/deps/editor/support/buttons/index.js +5 -0
  25. package/deps/editor/support/element/ImageElement.d.ts +3 -0
  26. package/deps/editor/support/element/ImageElement.js +187 -0
  27. package/deps/editor/support/element/TableElement.js +0 -0
  28. package/deps/editor/support/element/VideoElement.d.ts +0 -0
  29. package/deps/editor/support/element/VideoElement.js +0 -0
  30. package/deps/editor/support/element/_Base.d.ts +9 -0
  31. package/deps/editor/support/element/_Base.js +9 -0
  32. package/deps/editor/support/element/_Element.d.ts +2 -0
  33. package/deps/{_editor/base/Element.js → editor/support/element/_Element.js} +8 -6
  34. package/deps/editor/support/element/_Leaf.d.ts +3 -0
  35. package/deps/{_editor/base/Leaf.js → editor/support/element/_Leaf.js} +2 -2
  36. package/deps/editor/support/index.d.ts +4 -0
  37. package/deps/editor/support/index.js +89 -0
  38. package/deps/{_editor → editor}/tools/Button.d.ts +1 -1
  39. package/deps/{_editor → editor}/tools/Button.js +7 -3
  40. package/deps/{_editor → editor}/tools/ToolBar.d.ts +1 -1
  41. package/deps/{_editor → editor}/tools/ToolBar.js +1 -1
  42. package/deps/{_editor → editor}/tools/_BlockButton.d.ts +1 -1
  43. package/deps/{_editor → editor}/tools/_BlockButton.js +3 -3
  44. package/deps/{_editor → editor}/tools/_InsertButton.d.ts +1 -2
  45. package/deps/editor/tools/_InsertButton.js +36 -0
  46. package/deps/{_editor → editor}/tools/_MarkButton.d.ts +1 -1
  47. package/deps/{_editor → editor}/tools/_MarkButton.js +4 -4
  48. package/deps/{_editor → editor}/tools/_TxtButton.d.ts +1 -1
  49. package/deps/{_editor → editor}/tools/_TxtButton.js +45 -54
  50. package/deps/{_editor/base → editor}/types.d.ts +47 -56
  51. package/deps/editor/types.js +2 -0
  52. package/deps/editor/utils/ParseHtml.d.ts +0 -0
  53. package/deps/editor/utils/index.d.ts +7 -0
  54. package/deps/editor/utils/index.js +60 -0
  55. package/package.json +1 -1
  56. package/screen/Page.js +1 -1
  57. package/uform/hooks/useEditor.js +1 -4
  58. package/utils/ArrayUtil.js +12 -1
  59. package/utils/Global.d.ts +4 -0
  60. package/utils/Global.js +1 -0
  61. package/deps/_editor/advance/_Image.d.ts +0 -2
  62. package/deps/_editor/advance/_Image.js +0 -102
  63. package/deps/_editor/base/Element.d.ts +0 -5
  64. package/deps/_editor/base/Leaf.d.ts +0 -3
  65. package/deps/_editor/base/Support.d.ts +0 -2
  66. package/deps/_editor/base/Support.js +0 -78
  67. package/deps/_editor/base/types.js +0 -10
  68. package/deps/_editor/tools/_InsertButton.js +0 -69
  69. package/deps/api-audit.d.ts +0 -1
  70. package/deps/api-audit.js +0 -6
  71. package/deps/api-data.js +0 -1
  72. package/deps/editor.d.ts +0 -34
  73. package/deps/editor.js +0 -137
  74. /package/deps/{_editor/advance/_Audio.d.ts → app-data/SourceTable.d.ts} +0 -0
  75. /package/deps/{apis → app-data}/useSource.d.ts +0 -0
  76. /package/deps/{_editor → editor}/i18n.d.ts +0 -0
  77. /package/deps/{_editor → editor}/i18n.js +0 -0
  78. /package/deps/{registerEditor.d.ts → editor/registerEditor.d.ts} +0 -0
  79. /package/deps/{_editor/advance/_Table.d.ts → editor/support/buttons/AudioButton.d.ts} +0 -0
  80. /package/deps/{_editor/advance/_Audio.js → editor/support/buttons/AudioButton.js} +0 -0
  81. /package/deps/{_editor/advance/_Video.d.ts → editor/support/buttons/TableButton.d.ts} +0 -0
  82. /package/deps/{_editor/advance/_Table.js → editor/support/buttons/TableButton.js} +0 -0
  83. /package/deps/{_editor/utils/ParseHtml.d.ts → editor/support/buttons/VideoButton.d.ts} +0 -0
  84. /package/deps/{_editor/advance/_Video.js → editor/support/buttons/VideoButton.js} +0 -0
  85. /package/deps/{api-data.d.ts → editor/support/element/TableElement.d.ts} +0 -0
  86. /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,4 @@
1
+ export { Editor, type EditorProps } from './Editor';
2
+ export { Article } from './Article';
3
+ export type { ArticleProps } from './types';
4
+ export { EditorModal, type EditorModalProps } from './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("../components");
19
- var editor_1 = require("./editor");
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(editor_1.Editor, __assign({ placeholder: (0, components_1.getPlaceholder)(field) }, field.config, { value: value, disabled: disabled, onChange: function (val) { return onChange(val); } }));
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(editor_1.Article, { value: value }); }
25
+ render: function (value) { return react_1.default.createElement(index_1.Article, { value: value }); }
26
26
  });
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { Editor } from 'slate';
3
+ import type { ButtonProps } from '../../types';
4
+ export declare const insertImage: (editor: Editor, url: string) => void;
5
+ export declare const ImageButton: React.FC<ButtonProps>;
@@ -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,3 @@
1
+ import type { ElementRender } from './_Base';
2
+ import type { ImageElement } from '../../types';
3
+ export declare const Image: ElementRender<ImageElement>;
@@ -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;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStyle = void 0;
4
+ var getStyle = function (element) {
5
+ if (element.align)
6
+ return { textAlign: element.align };
7
+ return undefined;
8
+ };
9
+ exports.getStyle = getStyle;
@@ -0,0 +1,2 @@
1
+ import { type ElementRender } from './_Base';
2
+ export declare const Element: ElementRender;
@@ -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 _Image_1 = require("../advance/_Image");
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(_Image_1.Image, __assign({}, props, { style: style, isEditor: props.isEditor }));
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
  }
@@ -0,0 +1,3 @@
1
+ import type { RenderLeafProps } from "slate-react";
2
+ import type { FC } from 'react';
3
+ export declare const Leaf: FC<RenderLeafProps>;
@@ -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 types_1 = require("./types");
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 = types_1.FontFamilyTexts[leaf.fontFamily];
39
+ style.fontFamily = utils_1.FontFamilyTexts[leaf.fontFamily];
40
40
  }
41
41
  if (leaf.color)
42
42
  style.color = leaf.color;
@@ -0,0 +1,4 @@
1
+ import type { Editor } from 'slate';
2
+ export { Element } from './element/_Element';
3
+ export { Leaf } from './element/_Leaf';
4
+ export declare const supportAdvance: (editor: Editor) => import("slate").BaseEditor & import("slate-react").ReactEditor;