amis 1.8.0-beta.16 → 1.8.0-beta.17
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/lib/components/TabsTransfer.d.ts +22 -3
- package/lib/components/TabsTransfer.js +149 -42
- package/lib/components/TabsTransfer.js.map +2 -2
- package/lib/components/formula/Editor.js +4 -4
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/VariableList.d.ts +63 -4
- package/lib/components/formula/VariableList.js +23 -8
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Form/NestedSelect.d.ts +1 -1
- package/lib/renderers/Form/NestedSelect.js +7 -2
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/TabsTransfer.d.ts +6 -1
- package/lib/renderers/Form/TabsTransfer.js +155 -6
- package/lib/renderers/Form/TabsTransfer.js.map +2 -2
- package/lib/renderers/Form/TabsTransferPicker.d.ts +2 -2
- package/lib/renderers/Form/TabsTransferPicker.js +4 -4
- package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
- package/lib/renderers/Form/index.js +6 -2
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Markdown.js +4 -3
- package/lib/renderers/Markdown.js.map +2 -2
- package/lib/themes/ang-ie11.css +92 -14
- package/lib/themes/ang.css +94 -14
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +92 -14
- package/lib/themes/antd.css +94 -14
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +92 -14
- package/lib/themes/cxd.css +94 -14
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +92 -14
- package/lib/themes/dark.css +94 -14
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +92 -14
- package/lib/themes/default.css +94 -14
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +1 -1
- package/scss/_properties.scss +3 -0
- package/scss/components/_formula.scss +77 -12
- package/scss/components/form/_transfer.scss +21 -0
- package/sdk/ang-ie11.css +109 -14
- package/sdk/ang.css +111 -14
- package/sdk/antd-ie11.css +109 -14
- package/sdk/antd.css +111 -14
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +109 -14
- package/sdk/cxd.css +111 -14
- package/sdk/dark-ie11.css +109 -14
- package/sdk/dark.css +111 -14
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +109 -14
- package/sdk/sdk.css +111 -14
- package/sdk/sdk.js +1268 -1268
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/components/TabsTransfer.tsx +253 -143
- package/src/components/formula/Editor.tsx +12 -5
- package/src/components/formula/VariableList.tsx +55 -21
- package/src/renderers/Form/NestedSelect.tsx +11 -2
- package/src/renderers/Form/TabsTransfer.tsx +174 -11
- package/src/renderers/Form/TabsTransferPicker.tsx +5 -10
- package/src/renderers/Form/index.tsx +37 -16
- package/src/renderers/Markdown.tsx +4 -5
@@ -1,9 +1,11 @@
|
|
1
|
+
/// <reference types="lodash" />
|
1
2
|
/// <reference types="hoist-non-react-statics" />
|
2
3
|
import React from 'react';
|
3
4
|
import { Options, Option } from './Select';
|
4
5
|
import { TransferProps } from './Transfer';
|
5
6
|
import { ItemRenderStates } from './Selection';
|
6
|
-
export interface TabsTransferProps extends Omit<TransferProps, 'selectMode' | 'columns' | 'selectRender' | 'statistics' | 'optionItemRender'> {
|
7
|
+
export interface TabsTransferProps extends Omit<TransferProps, 'selectMode' | 'columns' | 'selectRender' | 'statistics' | 'onSearch' | 'optionItemRender'> {
|
8
|
+
onSearch: (term: string, option: Option, setCancel: (cancel: () => void) => void) => Promise<Options | void>;
|
7
9
|
optionItemRender?: (option: Option, states: ItemRenderStates, tab: Option) => JSX.Element;
|
8
10
|
cellRender?: (column: {
|
9
11
|
name: string;
|
@@ -11,9 +13,26 @@ export interface TabsTransferProps extends Omit<TransferProps, 'selectMode' | 'c
|
|
11
13
|
[propName: string]: any;
|
12
14
|
}, option: Option, colIndex: number, rowIndex: number) => JSX.Element;
|
13
15
|
}
|
14
|
-
export
|
16
|
+
export interface TabsTransferState {
|
17
|
+
inputValue: string;
|
18
|
+
searchResult: Options | null;
|
19
|
+
}
|
20
|
+
export declare class TabsTransfer extends React.Component<TabsTransferProps, TabsTransferState> {
|
21
|
+
state: {
|
22
|
+
inputValue: string;
|
23
|
+
searchResult: null;
|
24
|
+
};
|
25
|
+
unmounted: boolean;
|
26
|
+
cancelSearch?: () => void;
|
27
|
+
componentWillUnmount(): void;
|
28
|
+
handleSearch(text: string, option: Option): void;
|
29
|
+
handleSeachCancel(): void;
|
30
|
+
lazySearch: import("lodash").DebouncedFunc<(text: string, option: Option) => void>;
|
31
|
+
handleSearchKeyDown(e: React.KeyboardEvent<any>): void;
|
32
|
+
handleTabChange(): void;
|
15
33
|
renderSearchResult(searchResult: Options | null): JSX.Element;
|
16
|
-
renderSelect(
|
34
|
+
renderSelect(): JSX.Element;
|
35
|
+
renderOptions(option: Option): JSX.Element;
|
17
36
|
render(): JSX.Element;
|
18
37
|
}
|
19
38
|
declare const _default: {
|
@@ -5,20 +5,91 @@ var tslib_1 = require("tslib");
|
|
5
5
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
6
6
|
var helper_1 = require("../utils/helper");
|
7
7
|
var Tabs_1 = tslib_1.__importStar(require("./Tabs"));
|
8
|
-
var
|
8
|
+
var InputBox_1 = (0, tslib_1.__importDefault)(require("./InputBox"));
|
9
9
|
var TableSelection_1 = (0, tslib_1.__importDefault)(require("./TableSelection"));
|
10
10
|
var TreeSelection_1 = (0, tslib_1.__importDefault)(require("./TreeSelection"));
|
11
11
|
var ChainedSelection_1 = (0, tslib_1.__importDefault)(require("./ChainedSelection"));
|
12
12
|
var GroupedSelection_1 = (0, tslib_1.__importDefault)(require("./GroupedSelection"));
|
13
|
+
var Select_1 = require("./Select");
|
13
14
|
var Transfer_1 = (0, tslib_1.__importDefault)(require("./Transfer"));
|
14
15
|
var theme_1 = require("../theme");
|
15
16
|
var AssociatedSelection_1 = (0, tslib_1.__importDefault)(require("./AssociatedSelection"));
|
16
17
|
var locale_1 = require("../locale");
|
18
|
+
var icons_1 = require("./icons");
|
19
|
+
var debounce_1 = (0, tslib_1.__importDefault)(require("lodash/debounce"));
|
17
20
|
var TabsTransfer = /** @class */ (function (_super) {
|
18
21
|
(0, tslib_1.__extends)(TabsTransfer, _super);
|
19
22
|
function TabsTransfer() {
|
20
|
-
|
23
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
24
|
+
_this.state = {
|
25
|
+
inputValue: '',
|
26
|
+
searchResult: null
|
27
|
+
};
|
28
|
+
_this.unmounted = false;
|
29
|
+
_this.lazySearch = (0, debounce_1.default)(function (text, option) {
|
30
|
+
(function (text) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
31
|
+
var onSearch, result;
|
32
|
+
var _this = this;
|
33
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
34
|
+
switch (_a.label) {
|
35
|
+
case 0:
|
36
|
+
onSearch = this.props.onSearch;
|
37
|
+
return [4 /*yield*/, onSearch(text, option, function (cancelExecutor) { return (_this.cancelSearch = cancelExecutor); })];
|
38
|
+
case 1:
|
39
|
+
result = _a.sent();
|
40
|
+
if (this.unmounted) {
|
41
|
+
return [2 /*return*/];
|
42
|
+
}
|
43
|
+
if (!Array.isArray(result)) {
|
44
|
+
throw new Error('onSearch 需要返回数组');
|
45
|
+
}
|
46
|
+
this.setState({
|
47
|
+
searchResult: result
|
48
|
+
});
|
49
|
+
return [2 /*return*/];
|
50
|
+
}
|
51
|
+
});
|
52
|
+
}); })(text).catch(function (e) { return console.error(e); });
|
53
|
+
}, 250, {
|
54
|
+
trailing: true,
|
55
|
+
leading: false
|
56
|
+
});
|
57
|
+
return _this;
|
21
58
|
}
|
59
|
+
TabsTransfer.prototype.componentWillUnmount = function () {
|
60
|
+
this.lazySearch.cancel();
|
61
|
+
this.unmounted = true;
|
62
|
+
};
|
63
|
+
TabsTransfer.prototype.handleSearch = function (text, option) {
|
64
|
+
var _this = this;
|
65
|
+
// text 有值的时候,走搜索否则直接走 handleSeachCancel ,等同于右侧的 clear 按钮
|
66
|
+
if (text) {
|
67
|
+
this.setState({
|
68
|
+
inputValue: text
|
69
|
+
}, function () {
|
70
|
+
// 如果有取消搜索,先取消掉。
|
71
|
+
_this.cancelSearch && _this.cancelSearch();
|
72
|
+
_this.lazySearch(text, option);
|
73
|
+
});
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
this.handleSeachCancel();
|
77
|
+
}
|
78
|
+
};
|
79
|
+
TabsTransfer.prototype.handleSeachCancel = function () {
|
80
|
+
this.setState({
|
81
|
+
inputValue: '',
|
82
|
+
searchResult: null
|
83
|
+
});
|
84
|
+
};
|
85
|
+
TabsTransfer.prototype.handleSearchKeyDown = function (e) {
|
86
|
+
if (e.key === 'Enter') {
|
87
|
+
e.preventDefault();
|
88
|
+
}
|
89
|
+
};
|
90
|
+
TabsTransfer.prototype.handleTabChange = function () {
|
91
|
+
this.handleSeachCancel();
|
92
|
+
};
|
22
93
|
TabsTransfer.prototype.renderSearchResult = function (searchResult) {
|
23
94
|
var _a = this.props, searchResultMode = _a.searchResultMode, noResultsText = _a.noResultsText, searchResultColumns = _a.searchResultColumns, cx = _a.classnames, value = _a.value, disabled = _a.disabled, onChange = _a.onChange, option2value = _a.option2value, cellRender = _a.cellRender, optionItemRender = _a.optionItemRender;
|
24
95
|
var options = searchResult || [];
|
@@ -43,58 +114,94 @@ var TabsTransfer = /** @class */ (function (_super) {
|
|
43
114
|
}
|
44
115
|
: undefined }));
|
45
116
|
};
|
46
|
-
TabsTransfer.prototype.renderSelect = function (
|
47
|
-
var
|
48
|
-
var
|
117
|
+
TabsTransfer.prototype.renderSelect = function () {
|
118
|
+
var _this = this;
|
119
|
+
var _a = this.props, options = _a.options, placeholder = _a.placeholder, cx = _a.classnames, __ = _a.translate;
|
120
|
+
var showOptions = options.filter(function (item) { return item.visible !== false; });
|
49
121
|
if (!Array.isArray(options) || !options.length) {
|
50
122
|
return (react_1.default.createElement("div", { className: cx('TabsTransfer-placeholder') }, __(placeholder || 'placeholder.noOption')));
|
51
123
|
}
|
52
|
-
return (react_1.default.createElement(Tabs_1.default, { mode: "
|
53
|
-
|
54
|
-
react_1.default.createElement(
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
124
|
+
return (react_1.default.createElement(Tabs_1.default, { mode: "line", className: cx('TabsTransfer-tabs'), onSelect: this.handleTabChange }, showOptions.map(function (option, index) { return (react_1.default.createElement(Tabs_1.Tab, { eventKey: index, key: index, title: option.label || option.title, className: "TabsTransfer-tab" },
|
125
|
+
option.searchable ? (react_1.default.createElement("div", { className: cx('TabsTransfer-search') },
|
126
|
+
react_1.default.createElement(InputBox_1.default, { value: _this.state.inputValue, onChange: function (text) { return _this.handleSearch(text, option); }, placeholder: __('Transfer.searchKeyword'), clearable: false, onKeyDown: _this.handleSearchKeyDown }, _this.state.searchResult !== null ? (react_1.default.createElement("a", { onClick: _this.handleSeachCancel },
|
127
|
+
react_1.default.createElement(icons_1.Icon, { icon: "close", className: "icon" }))) : (react_1.default.createElement(icons_1.Icon, { icon: "search", className: "icon" }))))) : null,
|
128
|
+
_this.state.searchResult !== null
|
129
|
+
? _this.renderSearchResult(_this.state.searchResult)
|
130
|
+
: _this.renderOptions(option))); })));
|
131
|
+
};
|
132
|
+
TabsTransfer.prototype.renderOptions = function (option) {
|
133
|
+
var _a = this.props, cx = _a.classnames, value = _a.value, disabled = _a.disabled, onChange = _a.onChange, option2value = _a.option2value, onDeferLoad = _a.onDeferLoad, onLeftDeferLoad = _a.onLeftDeferLoad, cellRender = _a.cellRender, __ = _a.translate, optionItemRender = _a.optionItemRender;
|
134
|
+
return option.selectMode === 'table' ? (react_1.default.createElement(TableSelection_1.default, { className: cx('Transfer-checkboxes'), columns: option.columns, options: option.children || [], value: value, disabled: disabled, onChange: onChange, option2value: option2value, onDeferLoad: onDeferLoad, cellRender: cellRender })) : option.selectMode === 'tree' ? (react_1.default.createElement(TreeSelection_1.default, { className: cx('Transfer-checkboxes'), options: option.children || [], value: value, disabled: disabled, onChange: onChange, option2value: option2value, onDeferLoad: onDeferLoad, itemRender: optionItemRender
|
135
|
+
? function (item, states) {
|
136
|
+
return optionItemRender(item, states, {
|
137
|
+
panel: 'tab',
|
138
|
+
tag: option
|
139
|
+
});
|
140
|
+
}
|
141
|
+
: undefined })) : option.selectMode === 'chained' ? (react_1.default.createElement(ChainedSelection_1.default, { className: cx('Transfer-checkboxes'), options: option.children || [], value: value, disabled: disabled, onChange: onChange, option2value: option2value, onDeferLoad: onDeferLoad, defaultSelectedIndex: option.defaultSelectedIndex, itemRender: optionItemRender
|
142
|
+
? function (item, states) {
|
143
|
+
return optionItemRender(item, states, {
|
144
|
+
panel: 'tab',
|
145
|
+
tag: option
|
146
|
+
});
|
147
|
+
}
|
148
|
+
: undefined })) : option.selectMode === 'associated' ? (react_1.default.createElement(AssociatedSelection_1.default, { className: cx('Transfer-checkboxes'), options: option.children || [], value: value, disabled: disabled, onChange: onChange, option2value: option2value, onDeferLoad: onDeferLoad, onLeftDeferLoad: onLeftDeferLoad, leftMode: option.leftMode, leftOptions: option.leftOptions, leftDefaultValue: option.leftDefaultValue, itemRender: optionItemRender
|
149
|
+
? function (item, states) {
|
150
|
+
return optionItemRender(item, states, {
|
151
|
+
panel: 'tab',
|
152
|
+
tag: option
|
153
|
+
});
|
154
|
+
}
|
155
|
+
: undefined })) : (react_1.default.createElement(GroupedSelection_1.default, { className: cx('Transfer-checkboxes'), options: option.children || [], value: value, disabled: disabled, onChange: onChange, option2value: option2value, onDeferLoad: onDeferLoad, itemRender: optionItemRender
|
156
|
+
? function (item, states) {
|
157
|
+
return optionItemRender(item, states, {
|
158
|
+
panel: 'tab',
|
159
|
+
tag: option
|
160
|
+
});
|
161
|
+
}
|
162
|
+
: undefined }));
|
87
163
|
};
|
88
164
|
TabsTransfer.prototype.render = function () {
|
89
|
-
var _a = this.props, className = _a.className, cx = _a.classnames, optionItemRender = _a.optionItemRender, reset = (0, tslib_1.__rest)(_a, ["className", "classnames", "optionItemRender"]);
|
165
|
+
var _a = this.props, className = _a.className, cx = _a.classnames, optionItemRender = _a.optionItemRender, onSearch = _a.onSearch, reset = (0, tslib_1.__rest)(_a, ["className", "classnames", "optionItemRender", "onSearch"]);
|
90
166
|
return (react_1.default.createElement(Transfer_1.default, (0, tslib_1.__assign)({}, reset, { statistics: false, classnames: cx, className: cx('TabsTransfer', className), selectRender: this.renderSelect })));
|
91
167
|
};
|
168
|
+
var _a, _b, _c;
|
169
|
+
(0, tslib_1.__decorate)([
|
170
|
+
helper_1.autobind,
|
171
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
172
|
+
(0, tslib_1.__metadata)("design:paramtypes", [String, typeof (_a = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _a : Object]),
|
173
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
174
|
+
], TabsTransfer.prototype, "handleSearch", null);
|
175
|
+
(0, tslib_1.__decorate)([
|
176
|
+
helper_1.autobind,
|
177
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
178
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
179
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
180
|
+
], TabsTransfer.prototype, "handleSeachCancel", null);
|
92
181
|
(0, tslib_1.__decorate)([
|
93
182
|
helper_1.autobind,
|
94
183
|
(0, tslib_1.__metadata)("design:type", Function),
|
95
|
-
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
184
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_b = typeof react_1.default !== "undefined" && react_1.default.KeyboardEvent) === "function" ? _b : Object]),
|
185
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
186
|
+
], TabsTransfer.prototype, "handleSearchKeyDown", null);
|
187
|
+
(0, tslib_1.__decorate)([
|
188
|
+
helper_1.autobind,
|
189
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
190
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
191
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
192
|
+
], TabsTransfer.prototype, "handleTabChange", null);
|
193
|
+
(0, tslib_1.__decorate)([
|
194
|
+
helper_1.autobind,
|
195
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
196
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
96
197
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
97
198
|
], TabsTransfer.prototype, "renderSelect", null);
|
199
|
+
(0, tslib_1.__decorate)([
|
200
|
+
helper_1.autobind,
|
201
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
202
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_c = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _c : Object]),
|
203
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
204
|
+
], TabsTransfer.prototype, "renderOptions", null);
|
98
205
|
return TabsTransfer;
|
99
206
|
}(react_1.default.Component));
|
100
207
|
exports.TabsTransfer = TabsTransfer;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/TabsTransfer.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,0CAAyC;AACzC,0DAAiC;AACjC,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {autobind} from '../utils/helper';\nimport Tabs, {Tab} from './Tabs';\nimport SearchBox from './SearchBox';\nimport TableCheckboxes from './TableSelection';\nimport TreeCheckboxes from './TreeSelection';\nimport ChainedCheckboxes from './ChainedSelection';\nimport ListCheckboxes from './GroupedSelection';\nimport {Options, Option} from './Select';\nimport Transfer, {TransferProps} from './Transfer';\nimport {themeable} from '../theme';\nimport AssociatedCheckboxes from './AssociatedSelection';\nimport {localeable} from '../locale';\nimport {ItemRenderStates} from './Selection';\n\nexport interface TabsTransferProps\n extends Omit<\n TransferProps,\n | 'selectMode'\n | 'columns'\n | 'selectRender'\n | 'statistics'\n | 'optionItemRender'\n > {\n optionItemRender?: (\n option: Option,\n states: ItemRenderStates,\n tab: Option\n ) => JSX.Element;\n cellRender?: (\n column: {\n name: string;\n label: string;\n [propName: string]: any;\n },\n option: Option,\n colIndex: number,\n rowIndex: number\n ) => JSX.Element;\n}\n\nexport class TabsTransfer extends React.Component<TabsTransferProps> {\n renderSearchResult(searchResult: Options | null) {\n const {\n searchResultMode,\n noResultsText,\n searchResultColumns,\n classnames: cx,\n value,\n disabled,\n onChange,\n option2value,\n cellRender,\n optionItemRender\n } = this.props;\n const options = searchResult || [];\n const mode = searchResultMode;\n\n return mode === 'table' ? (\n <TableCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n columns={searchResultColumns!}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n cellRender={cellRender}\n />\n ) : mode === 'tree' ? (\n <TreeCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'result'\n })\n : undefined\n }\n />\n ) : mode === 'chained' ? (\n <ChainedCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'result'\n })\n : undefined\n }\n />\n ) : (\n <ListCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'result'\n })\n : undefined\n }\n />\n );\n }\n\n @autobind\n renderSelect({onSearch, onSearchCancel, searchResult}: any) {\n const {\n options,\n placeholder,\n classnames: cx,\n value,\n disabled,\n onChange,\n onSearch: searchable,\n option2value,\n onDeferLoad,\n onLeftDeferLoad,\n cellRender,\n translate: __,\n optionItemRender\n } = this.props;\n\n if (!Array.isArray(options) || !options.length) {\n return (\n <div className={cx('TabsTransfer-placeholder')}>\n {__(placeholder || 'placeholder.noOption')}\n </div>\n );\n }\n\n return (\n <Tabs\n mode=\"card\"\n className={cx('TabsTransfer-tabs')}\n activeKey={searchResult !== null ? 0 : undefined}\n toolbar={\n searchable ? (\n <>\n <span className={cx('TabsTransfer-tabsMid')}></span>\n <SearchBox onSearch={onSearch} onCancel={onSearchCancel} />\n </>\n ) : null\n }\n >\n {searchResult !== null\n ? [\n <Tab\n className=\"TabsTransfer-tab\"\n title={__('searchResult')}\n key={0}\n eventKey={0}\n >\n {this.renderSearchResult(searchResult)}\n </Tab>\n ]\n : options.map((option, index) => (\n <Tab\n eventKey={index}\n key={index}\n title={option.label || option.title}\n className=\"TabsTransfer-tab\"\n >\n {option.selectMode === 'table' ? (\n <TableCheckboxes\n className={cx('Transfer-checkboxes')}\n columns={option.columns as any}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n cellRender={cellRender}\n />\n ) : option.selectMode === 'tree' ? (\n <TreeCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n ) : option.selectMode === 'chained' ? (\n <ChainedCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n defaultSelectedIndex={option.defaultSelectedIndex}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n ) : option.selectMode === 'associated' ? (\n <AssociatedCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n onLeftDeferLoad={onLeftDeferLoad}\n leftMode={option.leftMode}\n leftOptions={option.leftOptions}\n leftDefaultValue={option.leftDefaultValue}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n ) : (\n <ListCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n )}\n </Tab>\n ))}\n </Tabs>\n );\n }\n\n render() {\n const {className, classnames: cx, optionItemRender, ...reset} = this.props;\n\n return (\n <Transfer\n {...reset}\n statistics={false}\n classnames={cx}\n className={cx('TabsTransfer', className)}\n selectRender={this.renderSelect}\n />\n );\n }\n}\n\nexport default themeable(localeable(TabsTransfer));\n"
|
11
|
+
"import React from 'react';\nimport {autobind} from '../utils/helper';\nimport Tabs, {Tab} from './Tabs';\nimport InputBox from './InputBox';\nimport TableCheckboxes from './TableSelection';\nimport TreeCheckboxes from './TreeSelection';\nimport ChainedCheckboxes from './ChainedSelection';\nimport ListCheckboxes from './GroupedSelection';\nimport {Options, Option} from './Select';\nimport Transfer, {TransferProps} from './Transfer';\nimport {themeable} from '../theme';\nimport AssociatedCheckboxes from './AssociatedSelection';\nimport {localeable} from '../locale';\nimport {ItemRenderStates} from './Selection';\nimport {Icon} from './icons';\nimport debounce from 'lodash/debounce';\n\nexport interface TabsTransferProps\n extends Omit<\n TransferProps,\n | 'selectMode'\n | 'columns'\n | 'selectRender'\n | 'statistics'\n | 'onSearch'\n | 'optionItemRender'\n > {\n onSearch: (\n term: string,\n option: Option,\n setCancel: (cancel: () => void) => void\n ) => Promise<Options | void>;\n optionItemRender?: (\n option: Option,\n states: ItemRenderStates,\n tab: Option\n ) => JSX.Element;\n cellRender?: (\n column: {\n name: string;\n label: string;\n [propName: string]: any;\n },\n option: Option,\n colIndex: number,\n rowIndex: number\n ) => JSX.Element;\n}\n\nexport interface TabsTransferState {\n inputValue: string;\n searchResult: Options | null;\n}\n\nexport class TabsTransfer extends React.Component<\n TabsTransferProps,\n TabsTransferState\n> {\n state = {\n inputValue: '',\n searchResult: null\n };\n\n unmounted = false;\n cancelSearch?: () => void;\n\n componentWillUnmount() {\n this.lazySearch.cancel();\n this.unmounted = true;\n }\n\n @autobind\n handleSearch(text: string, option: Option) {\n // text 有值的时候,走搜索否则直接走 handleSeachCancel ,等同于右侧的 clear 按钮\n if (text) {\n this.setState(\n {\n inputValue: text\n },\n () => {\n // 如果有取消搜索,先取消掉。\n this.cancelSearch && this.cancelSearch();\n this.lazySearch(text, option);\n }\n );\n } else {\n this.handleSeachCancel();\n }\n }\n\n @autobind\n handleSeachCancel() {\n this.setState({\n inputValue: '',\n searchResult: null\n });\n }\n\n lazySearch = debounce(\n (text: string, option: Option) => {\n (async (text: string) => {\n const onSearch = this.props.onSearch;\n let result = await onSearch(\n text,\n option,\n (cancelExecutor: () => void) => (this.cancelSearch = cancelExecutor)\n );\n\n if (this.unmounted) {\n return;\n }\n\n if (!Array.isArray(result)) {\n throw new Error('onSearch 需要返回数组');\n }\n\n this.setState({\n searchResult: result\n });\n })(text).catch(e => console.error(e));\n },\n 250,\n {\n trailing: true,\n leading: false\n }\n );\n\n @autobind\n handleSearchKeyDown(e: React.KeyboardEvent<any>) {\n if (e.key === 'Enter') {\n e.preventDefault();\n }\n }\n\n @autobind\n handleTabChange() {\n this.handleSeachCancel();\n }\n\n renderSearchResult(searchResult: Options | null) {\n const {\n searchResultMode,\n noResultsText,\n searchResultColumns,\n classnames: cx,\n value,\n disabled,\n onChange,\n option2value,\n cellRender,\n optionItemRender\n } = this.props;\n const options = searchResult || [];\n const mode = searchResultMode;\n\n return mode === 'table' ? (\n <TableCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n columns={searchResultColumns!}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n cellRender={cellRender}\n />\n ) : mode === 'tree' ? (\n <TreeCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'result'\n })\n : undefined\n }\n />\n ) : mode === 'chained' ? (\n <ChainedCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'result'\n })\n : undefined\n }\n />\n ) : (\n <ListCheckboxes\n placeholder={noResultsText}\n className={cx('Transfer-checkboxes')}\n options={options}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'result'\n })\n : undefined\n }\n />\n );\n }\n\n @autobind\n renderSelect() {\n const {options, placeholder, classnames: cx, translate: __} = this.props;\n const showOptions = options.filter(item => item.visible !== false);\n\n if (!Array.isArray(options) || !options.length) {\n return (\n <div className={cx('TabsTransfer-placeholder')}>\n {__(placeholder || 'placeholder.noOption')}\n </div>\n );\n }\n\n return (\n <Tabs\n mode=\"line\"\n className={cx('TabsTransfer-tabs')}\n onSelect={this.handleTabChange}\n >\n {showOptions.map((option, index) => (\n <Tab\n eventKey={index}\n key={index}\n title={option.label || option.title}\n className=\"TabsTransfer-tab\"\n >\n {option.searchable ? (\n <div className={cx('TabsTransfer-search')}>\n <InputBox\n value={this.state.inputValue}\n onChange={(text: string) => this.handleSearch(text, option)}\n placeholder={__('Transfer.searchKeyword')}\n clearable={false}\n onKeyDown={this.handleSearchKeyDown}\n >\n {this.state.searchResult !== null ? (\n <a onClick={this.handleSeachCancel}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : (\n <Icon icon=\"search\" className=\"icon\" />\n )}\n </InputBox>\n </div>\n ) : null}\n {this.state.searchResult !== null\n ? this.renderSearchResult(this.state.searchResult)\n : this.renderOptions(option)}\n </Tab>\n ))}\n </Tabs>\n );\n }\n\n @autobind\n renderOptions(option: Option) {\n const {\n classnames: cx,\n value,\n disabled,\n onChange,\n option2value,\n onDeferLoad,\n onLeftDeferLoad,\n cellRender,\n translate: __,\n optionItemRender\n } = this.props;\n return option.selectMode === 'table' ? (\n <TableCheckboxes\n className={cx('Transfer-checkboxes')}\n columns={option.columns as any}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n cellRender={cellRender}\n />\n ) : option.selectMode === 'tree' ? (\n <TreeCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n ) : option.selectMode === 'chained' ? (\n <ChainedCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n defaultSelectedIndex={option.defaultSelectedIndex}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n ) : option.selectMode === 'associated' ? (\n <AssociatedCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n onLeftDeferLoad={onLeftDeferLoad}\n leftMode={option.leftMode}\n leftOptions={option.leftOptions}\n leftDefaultValue={option.leftDefaultValue}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n ) : (\n <ListCheckboxes\n className={cx('Transfer-checkboxes')}\n options={option.children || []}\n value={value}\n disabled={disabled}\n onChange={onChange}\n option2value={option2value}\n onDeferLoad={onDeferLoad}\n itemRender={\n optionItemRender\n ? (item: Option, states: ItemRenderStates) =>\n optionItemRender(item, states, {\n panel: 'tab',\n tag: option\n })\n : undefined\n }\n />\n );\n }\n\n render() {\n const {\n className,\n classnames: cx,\n optionItemRender,\n onSearch,\n ...reset\n } = this.props;\n\n return (\n <Transfer\n {...reset}\n statistics={false}\n classnames={cx}\n className={cx('TabsTransfer', className)}\n selectRender={this.renderSelect}\n />\n );\n }\n}\n\nexport default themeable(localeable(TabsTransfer));\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -11,7 +11,7 @@ var amis_formula_1 = require("amis-formula");
|
|
11
11
|
var doc_1 = require("amis-formula/dist/doc");
|
12
12
|
var plugin_1 = require("./plugin");
|
13
13
|
var FuncList_1 = (0, tslib_1.__importDefault)(require("./FuncList"));
|
14
|
-
var VariableList_1 = require("./VariableList");
|
14
|
+
var VariableList_1 = (0, tslib_1.__importDefault)(require("./VariableList"));
|
15
15
|
var CodeMirror_1 = (0, tslib_1.__importDefault)(require("../CodeMirror"));
|
16
16
|
var helper_1 = require("../../utils/helper");
|
17
17
|
var theme_1 = require("../../theme");
|
@@ -133,9 +133,9 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
133
133
|
react_1.default.createElement(CodeMirror_1.default, { className: cx('FormulaEditor-editor'), value: value, onChange: this.handleOnChange, editorFactory: this.editorFactory, editorDidMount: this.handleEditorMounted, onFocus: this.handleFocus, onBlur: this.handleBlur })),
|
134
134
|
react_1.default.createElement("section", { className: cx('FormulaEditor-settings') },
|
135
135
|
react_1.default.createElement("div", { className: cx('FormulaEditor-panel') },
|
136
|
-
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-header') }, __('FormulaEditor.variable')),
|
137
|
-
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-body') },
|
138
|
-
react_1.default.createElement(VariableList_1.
|
136
|
+
variableMode !== 'tabs' ? (react_1.default.createElement("div", { className: cx('FormulaEditor-panel-header') }, __('FormulaEditor.variable'))) : null,
|
137
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-body', variableMode && "FormulaEditor-panel-body--".concat(variableMode)) },
|
138
|
+
react_1.default.createElement(VariableList_1.default, { classPrefix: classPrefix, className: cx('FormulaEditor-VariableList', 'FormulaEditor-VariableList-root', variableClassName), selectMode: variableMode, data: variables, onSelect: this.handleVariableSelect }))),
|
139
139
|
react_1.default.createElement(FuncList_1.default, { className: functionClassName, title: __('FormulaEditor.function'), data: functionList, onSelect: this.handleFunctionSelect }))));
|
140
140
|
};
|
141
141
|
var _a;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/Editor.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,iDAA8C;AAC9C,6CAAmC;AACnC,6CAA0C;AAE1C,mCAAsD;AACtD,qEAAkC;AAClC
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {parse} from 'amis-formula';\nimport {doc} from 'amis-formula/dist/doc';\n\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport FuncList from './FuncList';\nimport
|
11
|
+
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {parse} from 'amis-formula';\nimport {doc} from 'amis-formula/dist/doc';\n\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport FuncList from './FuncList';\nimport VariableList from './VariableList';\nimport CodeMirrorEditor from '../CodeMirror';\nimport {autobind, eachTree} from '../../utils/helper';\nimport {themeable, ThemeProps} from '../../theme';\nimport {localeable, LocaleProps} from '../../locale';\n\nexport interface VariableItem {\n label: string;\n value?: string;\n children?: Array<VariableItem>;\n type: '';\n tag?: string;\n selectMode?: 'tree' | 'tabs';\n}\n\nexport interface FuncGroup {\n groupName: string;\n items: Array<FuncItem>;\n}\n\nexport interface FuncItem {\n name: string; // 函数名\n example?: string; // 示例\n description?: string; // 描述\n [propName: string]: any;\n}\n\nexport interface FormulaEditorProps extends ThemeProps, LocaleProps {\n onChange?: (value: string) => void;\n value: string;\n /**\n * evalMode 即直接就是表达式,否则\n * 需要 ${这里面才是表达式}\n * 默认为 true\n */\n evalMode?: boolean;\n\n /**\n * 用于提示的变量集合,默认为空\n */\n variables: Array<VariableItem>;\n\n /**\n * 变量展现模式,可选值:'tabs' | 'tree'\n */\n variableMode?: 'tabs' | 'tree';\n\n /**\n * 函数集合,默认不需要传,即 amis-formula 里面那个函数\n * 如果有扩充,则需要传。\n */\n functions: Array<FuncGroup>;\n\n /**\n * 顶部标题,默认为表达式\n */\n header: string;\n\n variableClassName?: string;\n\n functionClassName?: string;\n}\n\nexport interface FunctionsProps {\n name: string;\n items: FunctionProps[];\n}\n\nexport interface FunctionProps {\n name: string;\n intro: string;\n usage: string;\n example: string;\n}\n\nexport interface FormulaState {\n focused: boolean;\n}\n\nexport class FormulaEditor extends React.Component<\n FormulaEditorProps,\n FormulaState\n> {\n state: FormulaState = {\n focused: false\n };\n editorPlugin?: FormulaPlugin;\n\n static buildDefaultFunctions(\n doc: Array<{\n namespace: string;\n name: string;\n [propName: string]: any;\n }>\n ) {\n const funcs: Array<FuncGroup> = [];\n\n doc.forEach(item => {\n const namespace = item.namespace || 'Others';\n let exists = funcs.find(item => item.groupName === namespace);\n if (!exists) {\n exists = {\n groupName: namespace,\n items: []\n };\n funcs.push(exists);\n }\n exists.items.push(item);\n });\n\n return funcs;\n }\n\n static defaultProps: Pick<FormulaEditorProps, 'variables' | 'evalMode'> = {\n variables: [],\n evalMode: true\n };\n\n static highlightValue(\n value: string,\n variables: Array<VariableItem>,\n functions: Array<FuncGroup>\n ) {\n if (!Array.isArray(variables) || !variables.length || !value) {\n return;\n }\n\n const varMap: {\n [propname: string]: string;\n } = {};\n\n eachTree(\n variables,\n item => item.value && (varMap[item.value] = item.label)\n );\n const vars = Object.keys(varMap)\n .filter(item => item)\n .sort((a, b) => b.length - a.length);\n\n const content = value || '';\n let html = '';\n\n // 标记方法调用\n html = content.replace(/([A-Z]+)\\s*\\(/g, (_, func, pos) => {\n return _?.replace(func, `<span class=\"c-func\">${func}</span>`);\n });\n\n vars.forEach(v => {\n let from = 0;\n let idx = -1;\n while (~(idx = content.indexOf(v, from))) {\n html = content.replace(v, `<span class=\"c-field\">${varMap[v]}</span>`);\n from = idx + v.length;\n }\n });\n\n return {html};\n }\n\n componentWillUnmount() {\n this.editorPlugin?.dispose();\n }\n\n @autobind\n handleFocus() {\n this.setState({\n focused: true\n });\n }\n\n @autobind\n handleBlur() {\n this.setState({\n focused: false\n });\n }\n\n @autobind\n insertValue(value: any, type: 'variable' | 'func') {\n this.editorPlugin?.insertContent(value, type);\n }\n\n @autobind\n handleEditorMounted(cm: any, editor: any) {\n this.editorPlugin = new FormulaPlugin(editor, cm, () => this.props);\n }\n\n @autobind\n validate() {\n const value = this.props.value;\n\n try {\n value\n ? parse(value, {\n evalMode: this.props.evalMode\n })\n : null;\n } catch (e) {\n return e.message;\n }\n\n return;\n }\n\n @autobind\n handleFunctionSelect(item: FuncItem) {\n this.editorPlugin?.insertContent(`${item.name}`, 'func');\n }\n\n @autobind\n handleVariableSelect(item: VariableItem) {\n this.editorPlugin?.insertContent(\n {\n key: item.value,\n name: item.label\n },\n 'variable'\n );\n }\n\n @autobind\n handleOnChange(value: any) {\n const onChange = this.props.onChange;\n onChange?.(value);\n }\n\n @autobind\n editorFactory(dom: HTMLElement, cm: any) {\n return editorFactory(dom, cm, this.props);\n }\n\n render() {\n const {\n variables,\n header,\n value,\n functions,\n variableMode,\n translate: __,\n classnames: cx,\n variableClassName,\n functionClassName,\n classPrefix\n } = this.props;\n const {focused} = this.state;\n const customFunctions = Array.isArray(functions) ? functions : [];\n const functionList = [\n ...FormulaEditor.buildDefaultFunctions(doc),\n ...customFunctions\n ];\n\n return (\n <div\n className={cx(`FormulaEditor`, {\n 'is-focused': focused\n })}\n >\n <section className={cx(`FormulaEditor-content`)}>\n <header className={cx(`FormulaEditor-header`)}>\n {__(header || 'FormulaEditor.title')}\n </header>\n\n <CodeMirrorEditor\n className={cx('FormulaEditor-editor')}\n value={value}\n onChange={this.handleOnChange}\n editorFactory={this.editorFactory}\n editorDidMount={this.handleEditorMounted}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </section>\n\n <section className={cx('FormulaEditor-settings')}>\n <div className={cx('FormulaEditor-panel')}>\n {variableMode !== 'tabs' ? (\n <div className={cx('FormulaEditor-panel-header')}>\n {__('FormulaEditor.variable')}\n </div>\n ) : null}\n <div\n className={cx(\n 'FormulaEditor-panel-body',\n variableMode && `FormulaEditor-panel-body--${variableMode}`\n )}\n >\n <VariableList\n classPrefix={classPrefix}\n className={cx(\n 'FormulaEditor-VariableList',\n 'FormulaEditor-VariableList-root',\n variableClassName\n )}\n selectMode={variableMode}\n data={variables}\n onSelect={this.handleVariableSelect}\n />\n </div>\n </div>\n\n <FuncList\n className={functionClassName}\n title={__('FormulaEditor.function')}\n data={functionList}\n onSelect={this.handleFunctionSelect}\n />\n </section>\n </div>\n );\n }\n}\n\nexport default uncontrollable(\n themeable(localeable(FormulaEditor)),\n {\n value: 'onChange'\n },\n ['validate']\n);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -1,16 +1,75 @@
|
|
1
|
-
/// <reference types="react" />
|
1
|
+
/// <reference types="hoist-non-react-statics" />
|
2
|
+
import React from 'react';
|
3
|
+
import { ThemeProps } from '../../theme';
|
2
4
|
import type { VariableItem } from './Editor';
|
3
5
|
import type { ItemRenderStates } from '../Selection';
|
4
6
|
import type { Option } from '../Select';
|
5
7
|
import type { TabsMode } from '../Tabs';
|
6
|
-
export interface VariableListProps {
|
8
|
+
export interface VariableListProps extends ThemeProps {
|
7
9
|
className?: string;
|
8
10
|
itemClassName?: string;
|
9
|
-
classPrefix?: string;
|
10
11
|
data: Array<VariableItem>;
|
11
12
|
selectMode?: 'list' | 'tree' | 'tabs';
|
12
13
|
tabsMode?: TabsMode;
|
13
14
|
itemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;
|
14
15
|
onSelect?: (item: VariableItem) => void;
|
15
16
|
}
|
16
|
-
|
17
|
+
declare function VariableList(props: VariableListProps): JSX.Element;
|
18
|
+
declare const _default: {
|
19
|
+
new (props: (Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps) | Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>): {
|
20
|
+
render(): JSX.Element;
|
21
|
+
context: any;
|
22
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
23
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
24
|
+
readonly props: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps> & Readonly<{
|
25
|
+
children?: React.ReactNode;
|
26
|
+
}>;
|
27
|
+
state: Readonly<{}>;
|
28
|
+
refs: {
|
29
|
+
[key: string]: React.ReactInstance;
|
30
|
+
};
|
31
|
+
componentDidMount?(): void;
|
32
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
33
|
+
componentWillUnmount?(): void;
|
34
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
35
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
|
36
|
+
componentDidUpdate?(prevProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
37
|
+
componentWillMount?(): void;
|
38
|
+
UNSAFE_componentWillMount?(): void;
|
39
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
40
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
41
|
+
componentWillUpdate?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
42
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
43
|
+
};
|
44
|
+
new (props: Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps, context: any): {
|
45
|
+
render(): JSX.Element;
|
46
|
+
context: any;
|
47
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
48
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
49
|
+
readonly props: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps> & Readonly<{
|
50
|
+
children?: React.ReactNode;
|
51
|
+
}>;
|
52
|
+
state: Readonly<{}>;
|
53
|
+
refs: {
|
54
|
+
[key: string]: React.ReactInstance;
|
55
|
+
};
|
56
|
+
componentDidMount?(): void;
|
57
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
58
|
+
componentWillUnmount?(): void;
|
59
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
60
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
|
61
|
+
componentDidUpdate?(prevProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
62
|
+
componentWillMount?(): void;
|
63
|
+
UNSAFE_componentWillMount?(): void;
|
64
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
65
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
66
|
+
componentWillUpdate?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
67
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<VariableListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
68
|
+
};
|
69
|
+
displayName: string;
|
70
|
+
contextType: React.Context<string>;
|
71
|
+
ComposedComponent: React.ComponentType<typeof VariableList>;
|
72
|
+
} & import("hoist-non-react-statics").NonReactStatics<typeof VariableList, {}> & {
|
73
|
+
ComposedComponent: typeof VariableList;
|
74
|
+
};
|
75
|
+
export default _default;
|