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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { SearchBarByFieldProps } from './index';
|
|
2
|
+
import type { FC, RefAttributes, ForwardRefExoticComponent } from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* 仅内容使用
|
|
5
5
|
*/
|
|
@@ -17,6 +17,9 @@ type InnerSearchBarByFieldProps = SearchBarByFieldProps & {
|
|
|
17
17
|
*/
|
|
18
18
|
__innnerPopup?: boolean;
|
|
19
19
|
};
|
|
20
|
-
export
|
|
21
|
-
|
|
20
|
+
export type InnerSearchBarByFieldRef = {
|
|
21
|
+
clear: () => void;
|
|
22
|
+
};
|
|
23
|
+
export declare const InnerSearchBarByField: ForwardRefExoticComponent<InnerSearchBarByFieldProps & RefAttributes<InnerSearchBarByFieldRef>>;
|
|
24
|
+
export declare const SearchBarByField: FC<SearchBarByFieldProps>;
|
|
22
25
|
export {};
|
|
@@ -63,11 +63,11 @@ var utils_1 = require("../../utils");
|
|
|
63
63
|
var _i18n_1 = require("../_i18n");
|
|
64
64
|
var SearchField_1 = require("./SearchField");
|
|
65
65
|
var _register_1 = require("./_register");
|
|
66
|
-
|
|
66
|
+
exports.InnerSearchBarByField = (0, react_1.forwardRef)(function (props, ref) {
|
|
67
67
|
var isAwaysExpand = utils_1.GLOBAL.CONFIG.SEARCHBAR.AWAYS_EXPAND || props.__innerExpand;
|
|
68
68
|
var _a = __read((0, react_1.useState)(props.default || {}), 2), data = _a[0], setData = _a[1];
|
|
69
69
|
var _b = __read((0, react_1.useState)(isAwaysExpand), 2), isExpand = _b[0], _setIsExpand = _b[1];
|
|
70
|
-
var clear = function () { return setData(function (prev) {
|
|
70
|
+
var clear = (0, react_1.useCallback)(function () { return setData(function (prev) {
|
|
71
71
|
var data = {};
|
|
72
72
|
lodash_1.default.keys(prev).map(function (item) {
|
|
73
73
|
data[item] = null;
|
|
@@ -76,7 +76,8 @@ var InnerSearchBarByField = function (props) {
|
|
|
76
76
|
return lodash_1.default.extend({}, data, props.default);
|
|
77
77
|
}
|
|
78
78
|
return data;
|
|
79
|
-
}); };
|
|
79
|
+
}); }, []);
|
|
80
|
+
(0, react_1.useImperativeHandle)(ref, function () { return ({ clear: clear }); }, []);
|
|
80
81
|
var search = function () { return props.onSearch(data); };
|
|
81
82
|
var setIsExpand = function (isExpand) {
|
|
82
83
|
if (isAwaysExpand)
|
|
@@ -240,7 +241,6 @@ var InnerSearchBarByField = function (props) {
|
|
|
240
241
|
rowRender(layout.rows[0]),
|
|
241
242
|
btnRender(layout.rows.length, isExpand)),
|
|
242
243
|
isExpand && moreRender(layout)));
|
|
243
|
-
};
|
|
244
|
-
exports.InnerSearchBarByField = InnerSearchBarByField;
|
|
244
|
+
});
|
|
245
245
|
var SearchBarByField = function (props) { return react_1.default.createElement(exports.InnerSearchBarByField, __assign({}, props)); };
|
|
246
246
|
exports.SearchBarByField = SearchBarByField;
|
|
@@ -60,6 +60,7 @@ var _i18n_1 = require("../_i18n");
|
|
|
60
60
|
var SearchBarByKeyword = function (props) {
|
|
61
61
|
var _a = __read((0, react_1.useState)(false), 2), open = _a[0], setOpen = _a[1];
|
|
62
62
|
var spanRef = (0, react_1.useRef)(null);
|
|
63
|
+
var barRef = (0, react_1.useRef)(null);
|
|
63
64
|
var inputProps = (0, react_1.useMemo)(function () {
|
|
64
65
|
var searchProps = {
|
|
65
66
|
className: "c-searchbar-keyword",
|
|
@@ -73,6 +74,11 @@ var SearchBarByKeyword = function (props) {
|
|
|
73
74
|
}
|
|
74
75
|
return searchProps;
|
|
75
76
|
}, []);
|
|
77
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
78
|
+
if (open && barRef && barRef.current && utils_1.GLOBAL.CONFIG.SEARCHBAR.POPUP_CLEAR_ONOPEN) {
|
|
79
|
+
barRef.current.clear();
|
|
80
|
+
}
|
|
81
|
+
}, [open]);
|
|
76
82
|
var suffixProps = {};
|
|
77
83
|
if (props.fields && props.fields.length) {
|
|
78
84
|
suffixProps.suffix = react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -80,7 +86,7 @@ var SearchBarByKeyword = function (props) {
|
|
|
80
86
|
react_1.default.createElement(Popover_1.Popover, { open: open, onOpenChange: setOpen, trigger: "click", placement: "bottom", content: react_1.default.createElement(react_1.default.Fragment, null,
|
|
81
87
|
react_1.default.createElement("h3", null, utils_1.i18n.txt(_i18n_1.V.INPUT_SEARCH_ADVANCE)),
|
|
82
88
|
react_1.default.createElement("div", { className: 'c-searchbar' },
|
|
83
|
-
react_1.default.createElement(ByField_1.InnerSearchBarByField, __assign({}, props, { __innerExpand: true, __innerOutside: true, __innnerPopup: true, onSearch: function (param) {
|
|
89
|
+
react_1.default.createElement(ByField_1.InnerSearchBarByField, __assign({}, props, { ref: barRef, __innerExpand: true, __innerOutside: true, __innnerPopup: true, onSearch: function (param) {
|
|
84
90
|
props.onSearch(param);
|
|
85
91
|
setOpen(false);
|
|
86
92
|
} })))), overlayClassName: 'c-searchbar-keyword-more', getPopupContainer: function (triggerNode) { return utils_1.PageUtil.getParentByClassName(triggerNode, 'c-searchbar'); } }));
|
|
@@ -64,7 +64,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
64
64
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
65
65
|
};
|
|
66
66
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
-
exports.UploadImage = void 0;
|
|
67
|
+
exports.UploadImage = exports.getImageUrl = void 0;
|
|
68
68
|
var react_1 = __importStar(require("react"));
|
|
69
69
|
var lodash_1 = __importDefault(require("lodash"));
|
|
70
70
|
var antd_1 = require("antd");
|
|
@@ -81,6 +81,7 @@ var getImageUrl = function (uri) {
|
|
|
81
81
|
return utils_1.PageUtil.resolveURL(uri);
|
|
82
82
|
return utils_1.GLOBAL.CONFIG.UPLOAD.PREVIEW + uri;
|
|
83
83
|
};
|
|
84
|
+
exports.getImageUrl = getImageUrl;
|
|
84
85
|
var ImagePreview = function (props) {
|
|
85
86
|
var state = props.state, width = props.width, height = props.height, showPreview = props.showPreview;
|
|
86
87
|
var _a = __read((0, hooks_1.useToggle)(), 2), open = _a[0], show = _a[1];
|
|
@@ -88,8 +89,8 @@ var ImagePreview = function (props) {
|
|
|
88
89
|
if (lodash_1.default.isFunction(props.preview))
|
|
89
90
|
return props.preview(state.info);
|
|
90
91
|
if (lodash_1.default.isString(state.info))
|
|
91
|
-
return getImageUrl(state.info);
|
|
92
|
-
return getImageUrl(state.info.guid || state.info.fileId);
|
|
92
|
+
return (0, exports.getImageUrl)(state.info);
|
|
93
|
+
return (0, exports.getImageUrl)(state.info.guid || state.info.fileId);
|
|
93
94
|
}, [state.info]);
|
|
94
95
|
var divProps = (0, react_1.useMemo)(function () {
|
|
95
96
|
var param = {
|
|
@@ -231,8 +232,8 @@ var UploadImage = function (props) {
|
|
|
231
232
|
}
|
|
232
233
|
if (state.info == null) {
|
|
233
234
|
return react_1.default.createElement("div", { style: { height: height }, className: 'c-upload-img-root' },
|
|
234
|
-
react_1.default.createElement(antd_1.Upload, __assign({}, uploadProps, { onChange: onChange, style: { width: width, height: height }, disabled: state.uploading }),
|
|
235
|
-
react_1.default.createElement("div", { style: { width: width, height: height } },
|
|
235
|
+
react_1.default.createElement(antd_1.Upload, __assign({}, uploadProps, { onChange: onChange, style: { width: width, height: height, }, disabled: state.uploading }),
|
|
236
|
+
react_1.default.createElement("div", { style: { width: width, height: height, display: "flex", justifyContent: 'center', alignItems: 'center' } },
|
|
236
237
|
react_1.default.createElement("div", { className: 'c-upload-placehoder' },
|
|
237
238
|
react_1.default.createElement(Icon_1.Icon, { type: state.uploading ? 'loading' : 'plus' }),
|
|
238
239
|
react_1.default.createElement("span", { className: "c-upload-img-text" }, utils_1.i18n.getText(props.ik, props.label, _i18n_1.V.UPLOAD_PIC))))),
|
|
@@ -7,7 +7,22 @@ export interface Tab extends Omit<AntdTabPaneProps, 'tab'> {
|
|
|
7
7
|
label: React.ReactNode;
|
|
8
8
|
}
|
|
9
9
|
export type TabsProps = AntdTabsProps & {
|
|
10
|
+
/**
|
|
11
|
+
* antd5:建议直接使用 items 传入
|
|
12
|
+
*/
|
|
10
13
|
items?: Tab[];
|
|
14
|
+
/**
|
|
15
|
+
* 隐藏最左边的 Border
|
|
16
|
+
*/
|
|
17
|
+
hideLeftBorder?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 隐藏上边的 Border
|
|
20
|
+
*/
|
|
21
|
+
hideTopBorder?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 隐藏左边的间隙
|
|
24
|
+
*/
|
|
25
|
+
hideLeftSpace?: boolean;
|
|
11
26
|
};
|
|
12
27
|
type TabComponent = ExoticComponent<PropsWithChildren<TabsProps>> & {
|
|
13
28
|
TabPane: typeof AntdTabs.TabPane;
|
|
@@ -10,19 +10,54 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
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
|
+
};
|
|
13
36
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
38
|
};
|
|
16
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
40
|
exports.Tabs = void 0;
|
|
18
|
-
var react_1 =
|
|
41
|
+
var react_1 = __importStar(require("react"));
|
|
19
42
|
var lodash_1 = __importDefault(require("lodash"));
|
|
20
43
|
var antd_1 = require("antd");
|
|
21
44
|
var _Tabs = function (props) {
|
|
45
|
+
var className = (0, react_1.useMemo)(function () {
|
|
46
|
+
var clazz = [];
|
|
47
|
+
if (props.className)
|
|
48
|
+
clazz.push(props.className);
|
|
49
|
+
if (props.hideLeftBorder)
|
|
50
|
+
clazz.push('tabs-hide-l');
|
|
51
|
+
if (props.hideTopBorder)
|
|
52
|
+
clazz.push('tabs-hide-t');
|
|
53
|
+
if (props.hideLeftSpace)
|
|
54
|
+
clazz.push('tabs-hide-ls');
|
|
55
|
+
return clazz.join(' ');
|
|
56
|
+
}, [props.className]);
|
|
22
57
|
if (props.children == null && lodash_1.default.isArray(props.items) && props.items.length > 0) {
|
|
23
|
-
return react_1.default.createElement(antd_1.Tabs, __assign({}, props), props.items.map(function (item) { return react_1.default.createElement(antd_1.Tabs.TabPane, __assign({}, item, { tab: item.label })); }));
|
|
58
|
+
return react_1.default.createElement(antd_1.Tabs, __assign({}, props, { className: className }), props.items.map(function (item) { return react_1.default.createElement(antd_1.Tabs.TabPane, __assign({}, item, { tab: item.label })); }));
|
|
24
59
|
}
|
|
25
|
-
return react_1.default.createElement(antd_1.Tabs, __assign({}, props));
|
|
60
|
+
return react_1.default.createElement(antd_1.Tabs, __assign({}, props, { className: className }));
|
|
26
61
|
};
|
|
27
62
|
exports.Tabs = _Tabs;
|
|
28
63
|
exports.Tabs.TabPane = antd_1.Tabs.TabPane;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SOURCE_TYPE = exports.IMAGE_PREFIX = exports.API_PREFIX = void 0;
|
|
4
|
+
exports.API_PREFIX = '/api-data';
|
|
5
|
+
exports.IMAGE_PREFIX = '/data/images';
|
|
6
|
+
var SOURCE_TYPE;
|
|
7
|
+
(function (SOURCE_TYPE) {
|
|
8
|
+
SOURCE_TYPE[SOURCE_TYPE["ELASTIC"] = 1] = "ELASTIC";
|
|
9
|
+
SOURCE_TYPE[SOURCE_TYPE["MYSQL"] = 2] = "MYSQL";
|
|
10
|
+
})(SOURCE_TYPE || (exports.SOURCE_TYPE = SOURCE_TYPE = {}));
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// import React, { useCallback, useLayoutEffect, useRef, useState } from 'react';
|
|
2
|
+
// import _ from 'lodash';
|
|
3
|
+
// import { VTable } from '../../index';
|
|
4
|
+
// import { useDoLoad, useEffectFunction } from 'vap2/hooks';
|
|
5
|
+
// import { Const, Renders } from '../../utils';
|
|
6
|
+
// import { SOURCE_TYPE } from '../utils/Global';
|
|
7
|
+
// import { getColumns, getFieldBySourceField, getSourceFieldsById } from '../utils/SourceUtil';
|
|
8
|
+
// import { filtersToQuery, } from '../utils/ConvertUtil';
|
|
9
|
+
// import { generate, search, orderBy } from 'utils/ContentUtil';
|
|
10
|
+
// import type { BaseTableProps } from '../..//components/Tables';
|
|
11
|
+
// import type { ListModel } from '../../hooks/_list';
|
|
12
|
+
// import type { Dayjs } from 'dayjs';
|
|
13
|
+
// import type { PlainObject } from '../../basetype';
|
|
14
|
+
// export type SourceTableProps = Partial<Omit<BaseTableProps, 'searchBar' | 'selectBar'>> & {
|
|
15
|
+
// sourceId: number,
|
|
16
|
+
// startTime: Dayjs,
|
|
17
|
+
// endTime: Dayjs,
|
|
18
|
+
// searchFields?: string[]
|
|
19
|
+
// // columns?: []
|
|
20
|
+
// };
|
|
21
|
+
// const useSourceTable = (sourceId: number, startTime: Dayjs, endTime: Dayjs): ListModel => {
|
|
22
|
+
// const [state, setState] = useDoLoad({
|
|
23
|
+
// rowKey: '_id',
|
|
24
|
+
// list: [],
|
|
25
|
+
// isQuerying: false,
|
|
26
|
+
// cost: 0,
|
|
27
|
+
// pageNo: 1,
|
|
28
|
+
// pageSize: 15,
|
|
29
|
+
// total: 0,
|
|
30
|
+
// totalAcc: 0,
|
|
31
|
+
// param: {}
|
|
32
|
+
// });
|
|
33
|
+
// // source: number[], startTime: Dayjs, endTime: Dayjs, q: string, query: RequestQuery = {}, professor: boolean = false, agg: boolean = false, domain: string = null
|
|
34
|
+
// let lastQuery = useRef({
|
|
35
|
+
// sourceType: SOURCE_TYPE.ELASTIC,
|
|
36
|
+
// sourceId: [sourceId],
|
|
37
|
+
// startTime, endTime,
|
|
38
|
+
// segment: null, query: '',
|
|
39
|
+
// sort: null
|
|
40
|
+
// });
|
|
41
|
+
// const queryHook = useCallback(async (
|
|
42
|
+
// param: PlainObject,
|
|
43
|
+
// ) => {
|
|
44
|
+
// let filters: Filter[] = [];
|
|
45
|
+
// let fields = _.keys(param);
|
|
46
|
+
// for (let field of fields) {
|
|
47
|
+
// // getFieldBySourceField
|
|
48
|
+
// let value = _.trim(param[field]);
|
|
49
|
+
// if (value == null || value == '') continue;
|
|
50
|
+
// let col = await getFieldBySourceField(sourceId, field);
|
|
51
|
+
// if (col && col.type == 'keyword') {
|
|
52
|
+
// let filter = { field } as Filter;
|
|
53
|
+
// filter.oper = col.dict ? 'eq' : 'like';
|
|
54
|
+
// filter.value = param[field];
|
|
55
|
+
// filters.push(filter);
|
|
56
|
+
// }
|
|
57
|
+
// }
|
|
58
|
+
// let query = filtersToQuery(filters, sourceId);
|
|
59
|
+
// setState({ isQuerying: true })
|
|
60
|
+
// let resp = await generate(lastQuery.current.sourceId, lastQuery.current.startTime, lastQuery.current.endTime, '', query);
|
|
61
|
+
// lastQuery.current.sort = orderBy(lastQuery.current.sourceId[0]);
|
|
62
|
+
// lastQuery.current.query = resp.query;
|
|
63
|
+
// lastQuery.current.segment = resp.segment;
|
|
64
|
+
// // this.setState({ query: info.query, segment: info.segment, total: info.total, totalAcc: info.totalAcc }, () => {
|
|
65
|
+
// if (resp.total == 0) {
|
|
66
|
+
// setState({ isQuerying: false, list: [], total: 0, totalAcc: 0 })
|
|
67
|
+
// } else {
|
|
68
|
+
// setState({ isQuerying: false, total: resp.total, totalAcc: resp.totalAcc })
|
|
69
|
+
// pageTo(1)
|
|
70
|
+
// // this.toPage(1);
|
|
71
|
+
// }
|
|
72
|
+
// // })
|
|
73
|
+
// }, [state])
|
|
74
|
+
// const changeTime = () => {
|
|
75
|
+
// }
|
|
76
|
+
// const query = async (param: PlainObject, clean?: boolean) => {
|
|
77
|
+
// queryHook(param)
|
|
78
|
+
// }
|
|
79
|
+
// const pageTo = useCallback(async (pageNo: number, size?: number) => {
|
|
80
|
+
// const { sourceType, segment, query, sort } = lastQuery.current;
|
|
81
|
+
// let pageSize = size || state.pageSize;
|
|
82
|
+
// setState({ isQuerying: true })
|
|
83
|
+
// const resp = await search({
|
|
84
|
+
// sourceType, segment, query,
|
|
85
|
+
// sort,
|
|
86
|
+
// start: pageSize * (pageNo - 1),
|
|
87
|
+
// count: pageSize
|
|
88
|
+
// });
|
|
89
|
+
// setState({ isQuerying: false, list: resp.list, pageNo, pageSize })
|
|
90
|
+
// }, [state.pageSize])
|
|
91
|
+
// const _orderBy = async (order: string, by: 'asc' | 'desc') => {
|
|
92
|
+
// let sort = null;
|
|
93
|
+
// if (order) {
|
|
94
|
+
// sort = orderBy(lastQuery.current.sort, order, by != 'asc')
|
|
95
|
+
// }
|
|
96
|
+
// pageTo(1)
|
|
97
|
+
// }
|
|
98
|
+
// return { ...state, query, pageTo, orderBy: _orderBy, changeTime } as ListModel
|
|
99
|
+
// }
|
|
100
|
+
// export default (props: SourceTableProps) => {
|
|
101
|
+
// const model = useSourceTable(props.sourceId, props.startTime, props.endTime);
|
|
102
|
+
// const [config, setConfig] = useState({ columns: [] });
|
|
103
|
+
// useEffectFunction(async () => {
|
|
104
|
+
// let tableProps: BaseTableProps = { columns: [] }
|
|
105
|
+
// if (_.isArray(props.columns) && props.columns.length) {
|
|
106
|
+
// tableProps.columns = props.columns;
|
|
107
|
+
// } else {
|
|
108
|
+
// [tableProps.columns] = await getColumns([props.sourceId])
|
|
109
|
+
// }
|
|
110
|
+
// if (_.has(props, 'searchFields') && _.isArray(props.searchFields) && props.searchFields.length > 0) {
|
|
111
|
+
// const fields = await getSourceFieldsById(props.sourceId)
|
|
112
|
+
// tableProps.searchBar = { fields: [] }
|
|
113
|
+
// props.searchFields.map(item => {
|
|
114
|
+
// let field = _.find(fields, { field: item });
|
|
115
|
+
// if (field) {
|
|
116
|
+
// if (field.dict) {
|
|
117
|
+
// tableProps.searchBar.fields.push({ label: field.name, field: field.field, type: 'select', options: Renders.DictRender(field.dict).options() })
|
|
118
|
+
// } else if (field.type == 'keyword') {
|
|
119
|
+
// tableProps.searchBar.fields.push({ label: field.name, field: field.field, config: { like: true } })
|
|
120
|
+
// }
|
|
121
|
+
// }
|
|
122
|
+
// });
|
|
123
|
+
// }
|
|
124
|
+
// setConfig(tableProps);
|
|
125
|
+
// }, [props.columns]);
|
|
126
|
+
// useLayoutEffect(() => {
|
|
127
|
+
// model.query({});
|
|
128
|
+
// }, [])
|
|
129
|
+
// if (config.columns.length == 0) return Const.NONE;
|
|
130
|
+
// return <VTable
|
|
131
|
+
// model={model}
|
|
132
|
+
// {...config}
|
|
133
|
+
// mode={props.mode}
|
|
134
|
+
// rowKey='_id'
|
|
135
|
+
// autoLoad={false}
|
|
136
|
+
// />
|
|
137
|
+
// }
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
// import React, { useEffect
|
|
1
|
+
// import React, { useEffect } from 'react';
|
|
2
2
|
// import _ from 'lodash';
|
|
3
3
|
// import { Ajax, CacheUtil, } from "../../utils";
|
|
4
|
-
//
|
|
4
|
+
// import { message } from 'antd';
|
|
5
|
+
// import { Icon } from '../../components/_adapt/Icon'
|
|
6
|
+
// // import { BaseOption, message, Icon } from '../'
|
|
5
7
|
// import { useApi, useSetState } from '../../hooks';
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
8
|
+
// import { API_PREFIX, SOURCE_TYPE } from '../../utils/Global'
|
|
9
|
+
// import { useCallback } from 'react';
|
|
10
|
+
// export const sourceTypeRender = (type: SOURCE_TYPE): React.ReactNode => {
|
|
11
|
+
// switch (type) {
|
|
12
|
+
// case 1:
|
|
13
|
+
// return <img src={`${IMAGE_PREFIX}/source-type/elastic-search.svg`} height={20} width={58} style={{ verticalAlign: 'middle' }} />
|
|
14
|
+
// case 2:
|
|
15
|
+
// return <img src={`${IMAGE_PREFIX}/source-type/mysql.svg`} height={20} width={30} style={{ verticalAlign: 'middle' }} />
|
|
16
|
+
// default:
|
|
17
|
+
// return <img src={`${IMAGE_PREFIX}/source-type/elastic-search.svg`} height={20} width={58} style={{ verticalAlign: 'middle' }} />
|
|
18
|
+
// }
|
|
19
|
+
// }
|
|
9
20
|
// const SOURCE_API = API_PREFIX + '/source'
|
|
10
21
|
// Ajax.SESSION(SOURCE_API);
|
|
11
|
-
// type UseDataSource = {
|
|
22
|
+
// export type UseDataSource = {
|
|
12
23
|
// sourceLoading: boolean;
|
|
13
24
|
// all: Source[],
|
|
14
25
|
// sourceMap: Map<number, Source>,
|
|
@@ -44,6 +55,7 @@
|
|
|
44
55
|
// afterAll: (action, isSuccess) => {
|
|
45
56
|
// if (isSuccess) {
|
|
46
57
|
// Ajax.CLEAR(SOURCE_API);
|
|
58
|
+
// location.reload();
|
|
47
59
|
// }
|
|
48
60
|
// }
|
|
49
61
|
// }
|
|
@@ -59,8 +71,6 @@
|
|
|
59
71
|
// resp.data.map(item => {
|
|
60
72
|
// all.push(item);
|
|
61
73
|
// sourceMap.set(item.id, item);
|
|
62
|
-
// // console.log(item.topicName, item.topicAlias)
|
|
63
|
-
// // if (item.topicName) kafka.push(item)
|
|
64
74
|
// if (item.type == 1) {
|
|
65
75
|
// es.push(item);
|
|
66
76
|
// } else if (item.type == 2) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Descendant } from 'slate';
|
|
3
|
+
/**
|
|
4
|
+
* 富文本框
|
|
5
|
+
*/
|
|
6
|
+
export type ArticleProps = {
|
|
7
|
+
/**
|
|
8
|
+
* 值,传JSON串,或是 JSON
|
|
9
|
+
*/
|
|
10
|
+
value: string | Descendant[];
|
|
11
|
+
/**
|
|
12
|
+
* 样式名称
|
|
13
|
+
*/
|
|
14
|
+
className?: string;
|
|
15
|
+
/**
|
|
16
|
+
* 自定义样式
|
|
17
|
+
*/
|
|
18
|
+
sytle?: React.CSSProperties;
|
|
19
|
+
};
|
|
20
|
+
export declare const Article: React.FC<ArticleProps>;
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.Article = void 0;
|
|
38
|
+
var react_1 = __importStar(require("react"));
|
|
39
|
+
var utils_1 = require("./utils");
|
|
40
|
+
var slate_1 = require("slate");
|
|
41
|
+
var slate_react_1 = require("slate-react");
|
|
42
|
+
var support_1 = require("./support");
|
|
43
|
+
var utils_2 = require("../../utils");
|
|
44
|
+
var Article = function (props) {
|
|
45
|
+
var renderElement = (0, react_1.useCallback)(function (props) { return react_1.default.createElement(support_1.Element, __assign({}, props)); }, []);
|
|
46
|
+
var renderLeaf = (0, react_1.useCallback)(function (props) { return react_1.default.createElement(support_1.Leaf, __assign({}, props)); }, []);
|
|
47
|
+
var editor = (0, react_1.useMemo)(function () { return (0, slate_react_1.withReact)((0, slate_1.createEditor)()); }, []);
|
|
48
|
+
var initialValue = (0, utils_1.initValue)(props);
|
|
49
|
+
return react_1.default.createElement("div", { className: utils_2.StringUtil.className(['sv', props.className]), style: props.sytle },
|
|
50
|
+
react_1.default.createElement(slate_react_1.Slate, { editor: editor, initialValue: initialValue },
|
|
51
|
+
react_1.default.createElement(slate_react_1.Editable, { readOnly: true, renderElement: renderElement, renderLeaf: renderLeaf })));
|
|
52
|
+
};
|
|
53
|
+
exports.Article = Article;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
|
+
import type { Descendant } from 'slate';
|
|
3
|
+
import type { ArticleProps, CommandType } from './types';
|
|
4
|
+
export type EditorRef = {
|
|
5
|
+
getValue: () => Descendant[];
|
|
6
|
+
};
|
|
7
|
+
export type EditorProps = Partial<ArticleProps> & {
|
|
8
|
+
/**
|
|
9
|
+
* 微服务版本专用,
|
|
10
|
+
* 用于声明图片/文件上传的 namespace 空间
|
|
11
|
+
*/
|
|
12
|
+
namespace?: string;
|
|
13
|
+
/**
|
|
14
|
+
* 是否禁用
|
|
15
|
+
*/
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 提示
|
|
19
|
+
*/
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
/**
|
|
22
|
+
* 操作栏:
|
|
23
|
+
* full 全操作
|
|
24
|
+
* simple : 简洁操作(默认)
|
|
25
|
+
*
|
|
26
|
+
* */
|
|
27
|
+
toolbar?: 'full' | 'simple' | CommandType[][];
|
|
28
|
+
/**
|
|
29
|
+
* 事件
|
|
30
|
+
*/
|
|
31
|
+
onChange?: (value: Descendant[], isCtrlS: boolean) => void;
|
|
32
|
+
/**
|
|
33
|
+
* 变化时,延时触发onChange,避免onChange频繁调用,
|
|
34
|
+
* 默认 200
|
|
35
|
+
*/
|
|
36
|
+
onChangeDelay?: number;
|
|
37
|
+
/**
|
|
38
|
+
* 图库
|
|
39
|
+
* 传此后,插入图片会多出从图库中选择的选项
|
|
40
|
+
*/
|
|
41
|
+
imgages?: string[];
|
|
42
|
+
};
|
|
43
|
+
export declare const Editor: ForwardRefExoticComponent<EditorProps & RefAttributes<EditorRef>>;
|
|
@@ -0,0 +1,110 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.Editor = void 0;
|
|
41
|
+
var react_1 = __importStar(require("react"));
|
|
42
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
43
|
+
var slate_1 = require("slate");
|
|
44
|
+
var slate_react_1 = require("slate-react");
|
|
45
|
+
var slate_history_1 = require("slate-history");
|
|
46
|
+
var ToolBar_1 = require("./tools/ToolBar");
|
|
47
|
+
var support_1 = require("./support");
|
|
48
|
+
var utils_1 = require("./utils");
|
|
49
|
+
var utils_2 = require("../../utils");
|
|
50
|
+
exports.Editor = (0, react_1.forwardRef)(function (props, ref) {
|
|
51
|
+
var editor = (0, react_1.useMemo)(function () { return (0, support_1.supportAdvance)((0, slate_history_1.withHistory)((0, slate_react_1.withReact)((0, slate_1.createEditor)()))); }, []);
|
|
52
|
+
var renderElement = (0, react_1.useCallback)(function (props) { return react_1.default.createElement(support_1.Element, __assign({}, props, { isEditor: true })); }, []);
|
|
53
|
+
var renderLeaf = (0, react_1.useCallback)(function (props) { return react_1.default.createElement(support_1.Leaf, __assign({}, props)); }, []);
|
|
54
|
+
var initialValue = (0, utils_1.initValue)(props);
|
|
55
|
+
var PID = (0, react_1.useRef)(null);
|
|
56
|
+
(0, react_1.useImperativeHandle)(ref, function () { return ({
|
|
57
|
+
getValue: function () { return editor.children; }
|
|
58
|
+
}); }, []);
|
|
59
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
60
|
+
if (!lodash_1.default.isFunction(props.onChange))
|
|
61
|
+
return;
|
|
62
|
+
var onKeyDown = function (evt) {
|
|
63
|
+
if (!evt.ctrlKey)
|
|
64
|
+
return;
|
|
65
|
+
if (evt.key == 's' || evt.key == 'S') {
|
|
66
|
+
evt.preventDefault();
|
|
67
|
+
evt.stopPropagation();
|
|
68
|
+
props.onChange(editor.children, true);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
document.addEventListener('keydown', onKeyDown, false);
|
|
73
|
+
return function () { return document.removeEventListener('keydown', onKeyDown); };
|
|
74
|
+
}, []);
|
|
75
|
+
var toolbar = (0, react_1.useMemo)(function () {
|
|
76
|
+
if (lodash_1.default.isArray(props.toolbar)) {
|
|
77
|
+
return props.toolbar;
|
|
78
|
+
}
|
|
79
|
+
if (lodash_1.default.isString(props.toolbar)) {
|
|
80
|
+
if (props.toolbar == 'full')
|
|
81
|
+
return utils_1.FULL_TOOLS;
|
|
82
|
+
if (props.toolbar == 'simple')
|
|
83
|
+
return utils_1.SIMPLE_TOOLS;
|
|
84
|
+
}
|
|
85
|
+
return utils_1.SIMPLE_TOOLS;
|
|
86
|
+
}, []);
|
|
87
|
+
var onChange = (0, react_1.useMemo)(function () {
|
|
88
|
+
if (!lodash_1.default.isFunction(props.onChange))
|
|
89
|
+
return undefined;
|
|
90
|
+
var delay = props.onChangeDelay || 200;
|
|
91
|
+
return function (value) {
|
|
92
|
+
var isAstChange = editor.operations.some(function (op) { return 'set_selection' !== op.type; });
|
|
93
|
+
if (isAstChange) {
|
|
94
|
+
clearTimeout(PID.current);
|
|
95
|
+
PID.current = setTimeout(function () { return props.onChange(value, false); }, delay);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}, []);
|
|
99
|
+
return react_1.default.createElement("div", { className: utils_2.StringUtil.className(['sv se', props.className]), style: props.sytle },
|
|
100
|
+
react_1.default.createElement(slate_react_1.Slate, { editor: editor, initialValue: initialValue, onChange: onChange },
|
|
101
|
+
react_1.default.createElement(ToolBar_1.Toolbar, { buttons: toolbar, disabled: props.disabled }),
|
|
102
|
+
react_1.default.createElement(slate_react_1.Editable, { renderElement: renderElement, renderLeaf: renderLeaf, spellCheck: true, autoFocus: true, placeholder: props.placeholder || '请输入文本',
|
|
103
|
+
// readOnly={props.disabled}
|
|
104
|
+
disabled: props.disabled, className: 'se-content', onKeyDown: function (event) {
|
|
105
|
+
if (event.ctrlKey && event.key == 'a' || event.key == 'A') {
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
slate_1.Transforms.select(editor, []);
|
|
108
|
+
}
|
|
109
|
+
} })));
|
|
110
|
+
});
|