vap1 0.3.6 → 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.
Files changed (105) hide show
  1. package/components/Box/SelectBar.d.ts +4 -0
  2. package/components/Box/SelectBar.js +1 -1
  3. package/components/SearchBar/ByField.d.ts +6 -3
  4. package/components/SearchBar/ByField.js +5 -5
  5. package/components/SearchBar/ByKeyword.js +7 -1
  6. package/components/UForm/_input.js +2 -2
  7. package/components/Upload/UploadImage.d.ts +1 -0
  8. package/components/Upload/UploadImage.js +6 -5
  9. package/components/_adapt/Tabs.d.ts +15 -0
  10. package/components/_adapt/Tabs.js +38 -3
  11. package/components/_common/CountUp.d.ts +3 -1
  12. package/components/_common/CountUp.js +5 -1
  13. package/deps/app-audit/ESTable.js +1 -0
  14. package/deps/app-audit/LookUp.d.ts +27 -0
  15. package/deps/app-audit/LookUp.js +324 -0
  16. package/deps/app-audit/index.d.ts +1 -0
  17. package/deps/app-audit/index.js +7 -0
  18. package/deps/app-data/Const.d.ts +6 -0
  19. package/deps/app-data/Const.js +10 -0
  20. package/deps/app-data/SourceTable.js +137 -0
  21. package/deps/{apis → app-data}/useSource.js +18 -8
  22. package/deps/editor/Article.d.ts +20 -0
  23. package/deps/editor/Article.js +53 -0
  24. package/deps/editor/Editor.d.ts +43 -0
  25. package/deps/editor/Editor.js +110 -0
  26. package/deps/editor/EditorModal.d.ts +32 -0
  27. package/deps/editor/EditorModal.js +89 -0
  28. package/deps/editor/index.d.ts +4 -0
  29. package/deps/editor/index.js +9 -0
  30. package/deps/{registerEditor.js → editor/registerEditor.js} +4 -4
  31. package/deps/editor/support/buttons/ImageButton.d.ts +5 -0
  32. package/deps/editor/support/buttons/ImageButton.js +138 -0
  33. package/deps/editor/support/buttons/index.d.ts +1 -0
  34. package/deps/editor/support/buttons/index.js +5 -0
  35. package/deps/editor/support/element/ImageElement.d.ts +3 -0
  36. package/deps/editor/support/element/ImageElement.js +228 -0
  37. package/deps/editor/support/element/TableElement.d.ts +0 -0
  38. package/deps/editor/support/element/TableElement.js +0 -0
  39. package/deps/editor/support/element/VideoElement.d.ts +0 -0
  40. package/deps/editor/support/element/VideoElement.js +0 -0
  41. package/deps/editor/support/element/_Base.d.ts +9 -0
  42. package/deps/editor/support/element/_Base.js +9 -0
  43. package/deps/editor/support/element/_Element.d.ts +2 -0
  44. package/deps/{_editor/base/Element.js → editor/support/element/_Element.js} +9 -6
  45. package/deps/editor/support/element/_Leaf.d.ts +3 -0
  46. package/deps/{_editor/base/Leaf.js → editor/support/element/_Leaf.js} +2 -2
  47. package/deps/editor/support/index.d.ts +4 -0
  48. package/deps/editor/support/index.js +89 -0
  49. package/deps/{_editor → editor}/tools/Button.d.ts +1 -1
  50. package/deps/{_editor → editor}/tools/Button.js +7 -3
  51. package/deps/{_editor → editor}/tools/ToolBar.d.ts +1 -1
  52. package/deps/{_editor → editor}/tools/ToolBar.js +1 -1
  53. package/deps/{_editor → editor}/tools/_BlockButton.d.ts +1 -1
  54. package/deps/{_editor → editor}/tools/_BlockButton.js +3 -3
  55. package/deps/{_editor → editor}/tools/_InsertButton.d.ts +1 -2
  56. package/deps/editor/tools/_InsertButton.js +36 -0
  57. package/deps/{_editor → editor}/tools/_MarkButton.d.ts +1 -1
  58. package/deps/{_editor → editor}/tools/_MarkButton.js +4 -4
  59. package/deps/{_editor → editor}/tools/_TxtButton.d.ts +1 -1
  60. package/deps/{_editor → editor}/tools/_TxtButton.js +37 -50
  61. package/deps/{_editor/base → editor}/types.d.ts +47 -56
  62. package/deps/editor/types.js +2 -0
  63. package/deps/editor/utils/ParseHtml.d.ts +0 -0
  64. package/deps/editor/utils/index.d.ts +7 -0
  65. package/deps/editor/utils/index.js +60 -0
  66. package/hooks/_list.d.ts +2 -1
  67. package/hooks/useAjaxQuery.d.ts +7 -3
  68. package/hooks/useAjaxQuery.js +46 -25
  69. package/hooks/useApiBase.js +25 -26
  70. package/index.d.ts +1 -0
  71. package/package.json +1 -1
  72. package/uform/FormViewer.d.ts +6 -6
  73. package/uform/hooks/useEditor.js +0 -1
  74. package/utils/Format.d.ts +8 -1
  75. package/utils/Format.js +10 -2
  76. package/utils/Global.d.ts +4 -0
  77. package/utils/Global.js +1 -0
  78. package/utils/TipUtil.d.ts +4 -0
  79. package/utils/TipUtil.js +6 -4
  80. package/deps/_editor/advance/_Image.d.ts +0 -2
  81. package/deps/_editor/advance/_Image.js +0 -102
  82. package/deps/_editor/base/Element.d.ts +0 -5
  83. package/deps/_editor/base/Leaf.d.ts +0 -3
  84. package/deps/_editor/base/Support.d.ts +0 -2
  85. package/deps/_editor/base/Support.js +0 -78
  86. package/deps/_editor/base/types.js +0 -10
  87. package/deps/_editor/tools/_InsertButton.js +0 -69
  88. package/deps/api-audit.d.ts +0 -1
  89. package/deps/api-audit.js +0 -6
  90. package/deps/api-data.js +0 -1
  91. package/deps/editor.d.ts +0 -34
  92. package/deps/editor.js +0 -137
  93. /package/deps/{_editor/advance/_Audio.d.ts → app-audit/ESTable.d.ts} +0 -0
  94. /package/deps/{_editor/advance/_Table.d.ts → app-data/SourceTable.d.ts} +0 -0
  95. /package/deps/{apis → app-data}/useSource.d.ts +0 -0
  96. /package/deps/{_editor → editor}/i18n.d.ts +0 -0
  97. /package/deps/{_editor → editor}/i18n.js +0 -0
  98. /package/deps/{registerEditor.d.ts → editor/registerEditor.d.ts} +0 -0
  99. /package/deps/{_editor/advance/_Video.d.ts → editor/support/buttons/AudioButton.d.ts} +0 -0
  100. /package/deps/{_editor/advance/_Audio.js → editor/support/buttons/AudioButton.js} +0 -0
  101. /package/deps/{_editor/utils/ParseHtml.d.ts → editor/support/buttons/TableButton.d.ts} +0 -0
  102. /package/deps/{_editor/advance/_Table.js → editor/support/buttons/TableButton.js} +0 -0
  103. /package/deps/{api-data.d.ts → editor/support/buttons/VideoButton.d.ts} +0 -0
  104. /package/deps/{_editor/advance/_Video.js → editor/support/buttons/VideoButton.js} +0 -0
  105. /package/deps/{_editor → editor}/utils/ParseHtml.js +0 -0
@@ -0,0 +1,138 @@
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,
45
+ // styles={{ body: { padding: 0, height: 400 } }}
46
+ bodyStyle: { padding: 0, height: 500 }, title: "\u4E0A\u4F20\u56FE\u7247", open: open, onCancel: onCancel, onOk: function () {
47
+ if (currentUrl.current == null) {
48
+ index_1.message.error('请上传图片');
49
+ return;
50
+ }
51
+ onOk(currentUrl.current);
52
+ } },
53
+ react_1.default.createElement(UploadImage_1.UploadImage, { allowClear: false, width: 640, height: 400, onChange: function (data) {
54
+ currentUrl.current = (0, UploadImage_1.getImageUrl)(data.fileId);
55
+ } }));
56
+ };
57
+ var ImageButton = function (_a) {
58
+ var icon = _a.icon, ik = _a.ik, cmd = _a.cmd, disabled = _a.disabled;
59
+ var uploadState = (0, useToggle_1.useToggle)();
60
+ var inputState = (0, useToggle_1.useToggle)();
61
+ var selectState = (0, useToggle_1.useToggle)();
62
+ var editor = (0, slate_react_1.useSlate)();
63
+ var clazz = ['se-icon', 'vicon', 'vicon-' + icon];
64
+ if (disabled) {
65
+ clazz.push('se-icon-disabled');
66
+ }
67
+ return react_1.default.createElement(react_1.default.Fragment, null,
68
+ react_1.default.createElement(index_1.Dropdown, { placement: "bottomLeft", arrow: true, trigger: ['click'], menu: {
69
+ items: [
70
+ { key: 1, label: "上传图片", onClick: uploadState[1] },
71
+ // { key: 2, label: "从图库中选择", onClick: selectState[1] },
72
+ { key: 3, label: "输入图片URL", onClick: inputState[1] },
73
+ // {
74
+ // key: 3, label: "输入图片URL", onClick: () => {
75
+ // // editor.insertData({})
76
+ // insertImage(editor, 'http://www.vrv.com.cn/images/banner_03.png')
77
+ // }
78
+ // },
79
+ ]
80
+ } },
81
+ react_1.default.createElement("span", { className: clazz.join(' '), title: utils_1.i18n.txt(ik) })),
82
+ react_1.default.createElement(UploadImageModal, { open: uploadState[0], onCancel: (uploadState[1]), onOk: function (url) {
83
+ uploadState[1]();
84
+ (0, exports.insertImage)(editor, url);
85
+ } }),
86
+ react_1.default.createElement(UForm_1.UFormModal, { title: "\u8F93\u5165\u56FE\u7247\u5730\u5740", open: inputState[0], onCancel: inputState[1], default: {}, fields: [
87
+ { field: 'url', title: '图片地址', required: true, type: 'url' }
88
+ ], onOk: function (data) {
89
+ inputState[1]();
90
+ (0, exports.insertImage)(editor, data.url);
91
+ } }));
92
+ };
93
+ exports.ImageButton = ImageButton;
94
+ // const isImageUrl = url => {
95
+ // if (!url) return false
96
+ // if (!StringUtil.isURL(url)) return false
97
+ // // const ext = new URL(url).pathname.split('.').pop()
98
+ // // return imageExtensions.includes(ext)
99
+ // return true;
100
+ // }
101
+ // const insertImage = (editor, url) => {
102
+ // console.log('inserimg')
103
+ // const text = { text: '' }
104
+ // const image: ImageElement = { type: 'image', url, children: [text] }
105
+ // Transforms.insertNodes(editor, image)
106
+ // Transforms.insertNodes(editor, {
107
+ // type: 'paragraph',
108
+ // children: [{ text: '' }],
109
+ // })
110
+ // }
111
+ // export const withInsert = (editor: Editor) => {
112
+ // const { insertData, isVoid } = editor
113
+ // editor.isVoid = element => {
114
+ // return element.type === 'image' ? true : isVoid(element)
115
+ // }
116
+ // editor.insertData = data => {
117
+ // const text = data.getData('text/plain');
118
+ // const { files } = data
119
+ // if (files && files.length > 0) {
120
+ // for (const file of files) {
121
+ // const reader = new FileReader()
122
+ // const [mime] = file.type.split('/')
123
+ // if (mime === 'image') {
124
+ // reader.addEventListener('load', () => {
125
+ // const url = reader.result
126
+ // insertImage(editor, url)
127
+ // })
128
+ // reader.readAsDataURL(file)
129
+ // }
130
+ // }
131
+ // } else if (isImageUrl(text)) {
132
+ // insertImage(editor, text)
133
+ // } else {
134
+ // insertData(data)
135
+ // }
136
+ // }
137
+ // return editor
138
+ // }
@@ -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,228 @@
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
+ // type ImageProps = {}
24
+ var ImageView = function (_a) {
25
+ var attributes = _a.attributes, children = _a.children, element = _a.element;
26
+ return react_1.default.createElement("div", null);
27
+ };
28
+ var ImageEdit = function (_a) {
29
+ var attributes = _a.attributes, children = _a.children, element = _a.element;
30
+ var editor = (0, slate_react_1.useSlateStatic)();
31
+ var path = slate_react_1.ReactEditor.findPath(editor, element);
32
+ // console.log(element, attributes)
33
+ // if(element)
34
+ var selected = (0, slate_react_2.useSelected)();
35
+ // const focused = useFocused()
36
+ return react_1.default.createElement("div", __assign({}, attributes, { className: 'sv-img' + (selected ? ' se-del' : '') }),
37
+ children,
38
+ react_1.default.createElement("div", { contentEditable: false, className: 'sv-img-content' + (element.align ? (' sv-img-' + element.align) : '') },
39
+ 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"),
40
+ react_1.default.createElement("img", { src: element.url })));
41
+ };
42
+ // const ImageEdit = ({ attributes, children, element }) => {
43
+ // const editor = useSlateStatic()
44
+ // const path = ReactEditor.findPath(editor, element)
45
+ // const selected = useSelected()
46
+ // const focused = useFocused()
47
+ // return (
48
+ // <div {...attributes}>
49
+ // {children}
50
+ // <div
51
+ // contentEditable={false}
52
+ // className={css`
53
+ // position: relative;
54
+ // `}
55
+ // >
56
+ // <img
57
+ // src={element.url}
58
+ // className={css`
59
+ // display: block;
60
+ // max-width: 100%;
61
+ // max-height: 20em;
62
+ // box-shadow: ${selected && focused ? '0 0 0 3px #B4D5FF' : 'none'};
63
+ // `}
64
+ // />
65
+ // <Button
66
+ // active
67
+ // onClick={() => Transforms.removeNodes(editor, { at: path })}
68
+ // className={css`
69
+ // display: ${selected && focused ? 'inline' : 'none'};
70
+ // position: absolute;
71
+ // top: 0.5em;
72
+ // left: 0.5em;
73
+ // background-color: white;
74
+ // `}
75
+ // >
76
+ // <Icon>delete</Icon>
77
+ // </Button>
78
+ // </div>
79
+ // </div>
80
+ // }
81
+ var Image = function (props) {
82
+ if (props.isEditor)
83
+ return react_1.default.createElement(ImageEdit, __assign({}, props));
84
+ return react_1.default.createElement(ImageView, __assign({}, props));
85
+ // const editor = useSlateStatic()
86
+ // const path = ReactEditor.findPath(editor, element)
87
+ // // console.log(path)
88
+ // // const selected = useSelected()
89
+ // // const focused = useFocused()
90
+ // return <div {...attributes}>
91
+ // {/* {children} */}
92
+ // <div
93
+ // contentEditable={false}
94
+ // // className={css`
95
+ // // position: relative;
96
+ // // `}
97
+ // >
98
+ // <img
99
+ // src={element.url}
100
+ // // className={css`
101
+ // // display: block;
102
+ // // max-width: 100%;
103
+ // // max-height: 20em;
104
+ // // box-shadow: ${selected && focused ? '0 0 0 3px #B4D5FF' : 'none'};
105
+ // // `}
106
+ // />
107
+ // <a
108
+ // // active
109
+ // onClick={() => Transforms.removeNodes(editor, { at: path })}
110
+ // // className={css`
111
+ // // display: ${selected && focused ? 'inline' : 'none'};
112
+ // // position: absolute;
113
+ // // top: 0.5em;
114
+ // // left: 0.5em;
115
+ // // background-color: white;
116
+ // // `}
117
+ // >
118
+ // {/* <Icon>delete</Icon> */}
119
+ // </a>
120
+ // </div>
121
+ // </div>
122
+ };
123
+ exports.Image = Image;
124
+ // import React from 'react'
125
+ // import { Transforms } from 'slate'
126
+ // import { useSlateStatic, ReactEditor, useReadOnly } from 'slate-react'
127
+ // import { Button } from 'antd'
128
+ // import { Editor } from 'slate'
129
+ // import type { CommandType } from '../../types'
130
+ // const ImageViewer = ({ attributes, element, children, style }) => {
131
+ // return <div {...attributes} className='v-image' style={style}>
132
+ // <img src={element.url} />
133
+ // </div>
134
+ // }
135
+ // const markValue = (editor: Editor, cmd: CommandType) => {
136
+ // const marks = Editor.marks(editor);
137
+ // if (marks && marks[cmd]) {
138
+ // return marks[cmd];
139
+ // }
140
+ // return null;
141
+ // }
142
+ // const setValue = (editor: Editor, cmd: CommandType, value: string | number | null) => {
143
+ // if (value == null || value == '') {
144
+ // const notSelected = editor.selection?.focus.offset == editor.selection?.anchor.offset;
145
+ // if (notSelected) {
146
+ // editor.select(editor.selection.focus.path);
147
+ // }
148
+ // Editor.removeMark(editor, cmd)
149
+ // } else {
150
+ // Editor.addMark(editor, cmd, value)
151
+ // }
152
+ // }
153
+ // const ImageEditor = ({ attributes, element, children, style }) => {
154
+ // const editor = useSlateStatic()
155
+ // const path = ReactEditor.findPath(editor, element);
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 contentEditable={false}
167
+ // // className={css`
168
+ // // position: relative;
169
+ // // `}
170
+ // >
171
+ // <Button
172
+ // icon="delete"
173
+ // // active
174
+ // onClick={() => Transforms.removeNodes(editor, { at: path })}
175
+ // // className={css`
176
+ // // display: ${selected && focused ? 'inline' : 'none'};
177
+ // // position: absolute;
178
+ // // top: 0.5em;
179
+ // // left: 0.5em;
180
+ // // background-color: white;
181
+ // // `}
182
+ // >
183
+ // </Button>
184
+ // </div>
185
+ // </div>
186
+ // }
187
+ // export const Image = (props) => {
188
+ // const isReadOnly = useReadOnly();
189
+ // if (!isReadOnly && props.isEditor) {
190
+ // return <ImageEditor {...props} />
191
+ // }
192
+ // return <ImageViewer {...props} />
193
+ // // const editor = useSlateStatic()
194
+ // // const path = ReactEditor.findPath(editor, element);
195
+ // // // editor.above
196
+ // // const selected = useSelected()
197
+ // // return <div {...attributes} className='v-image' style={style}>
198
+ // // <img src={element.url}
199
+ // // // className={css`
200
+ // // // display: block;
201
+ // // // max-width: 100%;
202
+ // // // max-height: 20em;
203
+ // // // box-shadow: ${selected && focused ? '0 0 0 3px #B4D5FF' : 'none'};
204
+ // // // `}
205
+ // // />
206
+ // // {children}
207
+ // // <div
208
+ // // contentEditable={false}
209
+ // // // className={css`
210
+ // // // position: relative;
211
+ // // // `}
212
+ // // >
213
+ // // <Button
214
+ // // icon="delete"
215
+ // // // active
216
+ // // onClick={() => Transforms.removeNodes(editor, { at: path })}
217
+ // // // className={css`
218
+ // // // display: ${selected && focused ? 'inline' : 'none'};
219
+ // // // position: absolute;
220
+ // // // top: 0.5em;
221
+ // // // left: 0.5em;
222
+ // // // background-color: white;
223
+ // // // `}
224
+ // // >
225
+ // // </Button>
226
+ // // </div>
227
+ // // </div>
228
+ // }
File without changes
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,12 @@ 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");
52
+ // return <Image {...props} style={style} isEditor={props.isEditor} />
50
53
  default:
51
54
  return react_1.default.createElement("p", __assign({ style: style }, attributes), children);
52
55
  }
@@ -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;
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { CommandType } from '../base/types';
2
+ import type { CommandType } from '../types';
3
3
  export declare const Button: React.FC<{
4
4
  type: CommandType;
5
5
  disabled: boolean;
@@ -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: 'editor-toolbar-split' });
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
- // case 'image':
89
- // return <Picture {...define} cmd={type} disabled={disabled} />
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':
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { CommandType } from '../base/types';
2
+ import type { CommandType } from '../types';
3
3
  type ToolbarProps = {
4
4
  buttons: CommandType[][];
5
5
  disabled?: boolean;
@@ -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: "editor-toolbar" }, props.buttons.map(function (lineGroup) { return react_1.default.createElement("div", { className: "editor-toolbar-line" }, lineGroup.map(function (type) { return react_1.default.createElement(Button_1.Button, { type: type, disabled: props.disabled }); })); })); };
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;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- import type { ButtonProps } from '../base/types';
2
+ import type { ButtonProps } from '../types';
3
3
  export declare const TEXT_ALIGN_TYPES: string[];
4
4
  export declare const BlockButton: React.FC<ButtonProps>;