amis 1.5.4 → 1.5.6-beta.5
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/Root.js +1 -1
- package/lib/Root.js.map +2 -2
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +4 -3
- package/lib/RootRenderer.js.map +2 -2
- package/lib/Schema.d.ts +1 -1
- package/lib/Schema.js.map +1 -1
- package/lib/SchemaRenderer.js +4 -4
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/components/AsideNav.d.ts +1 -1
- package/lib/components/AsideNav.js.map +1 -1
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CodeMirror.d.ts +26 -0
- package/lib/components/CodeMirror.js +104 -0
- package/lib/components/CodeMirror.js.map +13 -0
- package/lib/components/Collapse.d.ts +22 -21
- package/lib/components/Collapse.js +4 -6
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/CollapseGroup.d.ts +20 -20
- package/lib/components/CollapseGroup.js +5 -3
- package/lib/components/CollapseGroup.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +85 -84
- package/lib/components/ColorPicker.js +15 -3
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +7 -3
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +85 -84
- package/lib/components/DateRangePicker.js +5 -3
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/LocationPicker.d.ts +84 -84
- package/lib/components/MonthRangePicker.d.ts +85 -84
- package/lib/components/MonthRangePicker.js +5 -3
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/PickerContainer.d.ts +2 -1
- package/lib/components/PickerContainer.js +3 -3
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/PopUp.d.ts +93 -0
- package/lib/components/PopUp.js +58 -0
- package/lib/components/PopUp.js.map +13 -0
- package/lib/components/Progress.js +1 -1
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Select.d.ts +237 -237
- package/lib/components/Steps.d.ts +1 -0
- package/lib/components/Steps.js +5 -3
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransferPicker.js +1 -1
- package/lib/components/TabsTransferPicker.js.map +2 -2
- package/lib/components/TransferPicker.d.ts +0 -1
- package/lib/components/TransferPicker.js +2 -15
- package/lib/components/TransferPicker.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +560 -0
- package/lib/components/formula/Editor.js +186 -0
- package/lib/components/formula/Editor.js.map +13 -0
- package/lib/components/formula/FuncList.d.ts +67 -0
- package/lib/components/formula/FuncList.js +35 -0
- package/lib/components/formula/FuncList.js.map +13 -0
- package/lib/components/formula/Picker.d.ts +493 -0
- package/lib/components/formula/Picker.js +48 -0
- package/lib/components/formula/Picker.js.map +13 -0
- package/lib/components/formula/VariableList.d.ts +9 -0
- package/lib/components/formula/VariableList.js +15 -0
- package/lib/components/formula/VariableList.js.map +13 -0
- package/lib/components/formula/plugin.d.ts +18 -0
- package/lib/components/formula/plugin.js +136 -0
- package/lib/components/formula/plugin.js.map +13 -0
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/helper.css +57 -57
- package/lib/helper.css.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +1 -1
- package/lib/renderers/CRUD.js +4 -3
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Collapse.js +8 -2
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/CollapseGroup.js.map +2 -2
- package/lib/renderers/Dialog.d.ts +2 -2
- package/lib/renderers/Dialog.js +7 -7
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/Drawer.js +2 -2
- package/lib/renderers/Drawer.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputColor.d.ts +84 -84
- package/lib/renderers/Form/InputColor.js +2 -2
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +2 -2
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +2 -2
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +1 -1
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +35 -0
- package/lib/renderers/Form/InputFormula.js +25 -0
- package/lib/renderers/Form/InputFormula.js.map +13 -0
- package/lib/renderers/Form/InputImage.js +1 -1
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +2 -2
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputQuarterRange.js +2 -2
- package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
- package/lib/renderers/Form/InputYearRange.js +2 -2
- package/lib/renderers/Form/InputYearRange.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +1 -1
- package/lib/renderers/Form/Item.js +4 -3
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +1 -0
- package/lib/renderers/Form/TreeSelect.js +11 -8
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +1 -1
- package/lib/renderers/Form/index.js +3 -2
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Page.d.ts +3 -3
- package/lib/renderers/Page.js +4 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Steps.js +2 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Wizard.d.ts +1 -1
- package/lib/renderers/Wizard.js +93 -36
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/formItem.js +11 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/themes/ang-ie11.css +261 -0
- package/lib/themes/ang.css +261 -0
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +261 -0
- package/lib/themes/antd.css +261 -0
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +261 -0
- package/lib/themes/cxd.css +261 -0
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +261 -0
- package/lib/themes/dark.css +261 -0
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +261 -0
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +2 -2
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.js +2 -7
- package/lib/utils/helper.js.map +2 -2
- package/package.json +5 -3
- package/scss/_variables.scss +1 -1
- package/scss/components/_formula.scss +122 -0
- package/scss/components/_popup.scss +123 -0
- package/scss/components/_steps.scss +60 -0
- package/scss/components/form/_color.scss +4 -0
- package/scss/components/form/_date-range.scss +4 -0
- package/scss/components/form/_date.scss +3 -0
- package/scss/components/form/_tree-select.scss +4 -0
- package/scss/helper/background/_background-color.scss +1 -1
- package/scss/helper/border/_border-color.scss +1 -1
- package/scss/helper/typography/_text-color.scss +1 -1
- package/scss/themes/_common.scss +2 -0
- package/sdk/ang-ie11.css +875 -0
- package/sdk/ang.css +875 -0
- package/sdk/antd-ie11.css +875 -0
- package/sdk/antd.css +875 -0
- package/sdk/charts.js +18 -18
- package/sdk/codemirror.js +14 -0
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +875 -0
- package/sdk/cxd.css +875 -0
- package/sdk/dark-ie11.css +875 -0
- package/sdk/dark.css +875 -0
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css +57 -57
- package/sdk/helper.css.map +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 +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +875 -0
- package/sdk/sdk.css +875 -0
- package/sdk/sdk.js +1315 -1207
- package/sdk/thirds/hls.js/hls.js +18 -18
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/Root.tsx +1 -0
- package/src/RootRenderer.tsx +3 -3
- package/src/Schema.ts +1 -0
- package/src/SchemaRenderer.tsx +4 -0
- package/src/components/AsideNav.tsx +1 -1
- package/src/components/CodeMirror.tsx +99 -0
- package/src/components/Collapse.tsx +21 -13
- package/src/components/CollapseGroup.tsx +9 -11
- package/src/components/ColorPicker.tsx +45 -3
- package/src/components/DatePicker.tsx +33 -3
- package/src/components/DateRangePicker.tsx +17 -3
- package/src/components/MonthRangePicker.tsx +18 -4
- package/src/components/PickerContainer.tsx +10 -6
- package/src/components/PopUp.tsx +133 -0
- package/src/components/Progress.tsx +1 -1
- package/src/components/Steps.tsx +8 -3
- package/src/components/TabsTransferPicker.tsx +1 -1
- package/src/components/TransferPicker.tsx +1 -11
- package/src/components/formula/Editor.tsx +261 -0
- package/src/components/formula/FuncList.tsx +82 -0
- package/src/components/formula/Picker.tsx +86 -0
- package/src/components/formula/VariableList.tsx +49 -0
- package/src/components/formula/plugin.ts +177 -0
- package/src/components/index.tsx +2 -0
- package/src/index.tsx +1 -0
- package/src/renderers/CRUD.tsx +3 -3
- package/src/renderers/Collapse.tsx +27 -27
- package/src/renderers/CollapseGroup.tsx +13 -12
- package/src/renderers/Dialog.tsx +8 -8
- package/src/renderers/Drawer.tsx +2 -2
- package/src/renderers/Form/InputColor.tsx +2 -3
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputFile.tsx +1 -1
- package/src/renderers/Form/InputFormula.tsx +75 -0
- package/src/renderers/Form/InputImage.tsx +1 -1
- package/src/renderers/Form/InputMonthRange.tsx +2 -0
- package/src/renderers/Form/InputQuarterRange.tsx +2 -0
- package/src/renderers/Form/InputYearRange.tsx +2 -0
- package/src/renderers/Form/Item.tsx +2 -2
- package/src/renderers/Form/TreeSelect.tsx +82 -63
- package/src/renderers/Form/index.tsx +2 -2
- package/src/renderers/Page.tsx +11 -10
- package/src/renderers/Steps.tsx +4 -2
- package/src/renderers/Wizard.tsx +52 -12
- package/src/store/formItem.ts +15 -0
- package/src/utils/api.ts +5 -2
- package/src/utils/helper.ts +5 -14
@@ -0,0 +1,186 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FormulaEditor = void 0;
|
4
|
+
var tslib_1 = require("tslib");
|
5
|
+
/**
|
6
|
+
* @file 公式编辑器
|
7
|
+
*/
|
8
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
9
|
+
var uncontrollable_1 = require("uncontrollable");
|
10
|
+
var plugin_1 = require("./plugin");
|
11
|
+
var doc_1 = require("amis-formula/dist/doc");
|
12
|
+
var FuncList_1 = (0, tslib_1.__importDefault)(require("./FuncList"));
|
13
|
+
var VariableList_1 = require("./VariableList");
|
14
|
+
var amis_formula_1 = require("amis-formula");
|
15
|
+
var helper_1 = require("../../utils/helper");
|
16
|
+
var CodeMirror_1 = (0, tslib_1.__importDefault)(require("../CodeMirror"));
|
17
|
+
var theme_1 = require("../../theme");
|
18
|
+
var locale_1 = require("../../locale");
|
19
|
+
var FormulaEditor = /** @class */ (function (_super) {
|
20
|
+
(0, tslib_1.__extends)(FormulaEditor, _super);
|
21
|
+
function FormulaEditor() {
|
22
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
23
|
+
_this.state = {
|
24
|
+
focused: false
|
25
|
+
};
|
26
|
+
return _this;
|
27
|
+
}
|
28
|
+
FormulaEditor.buildDefaultFunctions = function (doc) {
|
29
|
+
var funcs = [];
|
30
|
+
doc.forEach(function (item) {
|
31
|
+
var namespace = item.namespace || 'Others';
|
32
|
+
var exists = funcs.find(function (item) { return item.groupName === namespace; });
|
33
|
+
if (!exists) {
|
34
|
+
exists = {
|
35
|
+
groupName: namespace,
|
36
|
+
items: []
|
37
|
+
};
|
38
|
+
funcs.push(exists);
|
39
|
+
}
|
40
|
+
exists.items.push(item);
|
41
|
+
});
|
42
|
+
return funcs;
|
43
|
+
};
|
44
|
+
FormulaEditor.highlightValue = function (value, variables, functions) {
|
45
|
+
// todo 高亮原始文本
|
46
|
+
return value;
|
47
|
+
};
|
48
|
+
FormulaEditor.prototype.componentWillUnmount = function () {
|
49
|
+
var _b;
|
50
|
+
(_b = this.editorPlugin) === null || _b === void 0 ? void 0 : _b.dispose();
|
51
|
+
};
|
52
|
+
FormulaEditor.prototype.handleFocus = function () {
|
53
|
+
this.setState({
|
54
|
+
focused: true
|
55
|
+
});
|
56
|
+
};
|
57
|
+
FormulaEditor.prototype.handleBlur = function () {
|
58
|
+
this.setState({
|
59
|
+
focused: false
|
60
|
+
});
|
61
|
+
};
|
62
|
+
FormulaEditor.prototype.insertValue = function (value, type) {
|
63
|
+
var _b;
|
64
|
+
(_b = this.editorPlugin) === null || _b === void 0 ? void 0 : _b.insertContent(value, type);
|
65
|
+
};
|
66
|
+
FormulaEditor.prototype.handleEditorMounted = function (cm, editor) {
|
67
|
+
var _this = this;
|
68
|
+
this.editorPlugin = new plugin_1.FormulaPlugin(editor, cm, function () { return _this.props; });
|
69
|
+
};
|
70
|
+
FormulaEditor.prototype.validate = function () {
|
71
|
+
var value = this.props.value;
|
72
|
+
try {
|
73
|
+
value
|
74
|
+
? (0, amis_formula_1.parse)(value, {
|
75
|
+
evalMode: this.props.evalMode
|
76
|
+
})
|
77
|
+
: null;
|
78
|
+
}
|
79
|
+
catch (e) {
|
80
|
+
return e.message;
|
81
|
+
}
|
82
|
+
return;
|
83
|
+
};
|
84
|
+
FormulaEditor.prototype.handleFunctionSelect = function (item) {
|
85
|
+
var _b;
|
86
|
+
(_b = this.editorPlugin) === null || _b === void 0 ? void 0 : _b.insertContent("" + item.name, 'func');
|
87
|
+
};
|
88
|
+
FormulaEditor.prototype.handleVariableSelect = function (item) {
|
89
|
+
var _b;
|
90
|
+
(_b = this.editorPlugin) === null || _b === void 0 ? void 0 : _b.insertContent({
|
91
|
+
key: item.value,
|
92
|
+
name: item.label
|
93
|
+
}, 'variable');
|
94
|
+
};
|
95
|
+
FormulaEditor.prototype.handleOnChange = function (value) {
|
96
|
+
var onChange = this.props.onChange;
|
97
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(value);
|
98
|
+
};
|
99
|
+
FormulaEditor.prototype.editorFactory = function (dom, cm) {
|
100
|
+
return (0, plugin_1.editorFactory)(dom, cm, this.props);
|
101
|
+
};
|
102
|
+
FormulaEditor.prototype.render = function () {
|
103
|
+
var _b = this.props, variables = _b.variables, header = _b.header, value = _b.value, functions = _b.functions, variableMode = _b.variableMode, cx = _b.classnames;
|
104
|
+
var focused = this.state.focused;
|
105
|
+
return (react_1.default.createElement("div", { className: cx("FormulaEditor", {
|
106
|
+
'is-focused': focused
|
107
|
+
}) },
|
108
|
+
react_1.default.createElement("div", { className: cx("FormulaEditor-header") }, header !== null && header !== void 0 ? header : '表达式'),
|
109
|
+
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 }),
|
110
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-settings') },
|
111
|
+
Array.isArray(functions) && functions.length ? (react_1.default.createElement("div", null,
|
112
|
+
react_1.default.createElement("h3", null, "\u53D8\u91CF"),
|
113
|
+
react_1.default.createElement(VariableList_1.VariableList, { className: cx('VariableList'), selectMode: variableMode, data: variables, onSelect: this.handleVariableSelect }))) : null,
|
114
|
+
Array.isArray(variables) && variables.length ? (react_1.default.createElement("div", null,
|
115
|
+
react_1.default.createElement("h3", null, "\u51FD\u6570"),
|
116
|
+
react_1.default.createElement(FuncList_1.default, { data: functions, onSelect: this.handleFunctionSelect }))) : null)));
|
117
|
+
};
|
118
|
+
var _a;
|
119
|
+
var _b;
|
120
|
+
_a = FormulaEditor;
|
121
|
+
FormulaEditor.defaultProps = {
|
122
|
+
functions: _a.buildDefaultFunctions(doc_1.doc),
|
123
|
+
variables: [],
|
124
|
+
evalMode: true
|
125
|
+
};
|
126
|
+
(0, tslib_1.__decorate)([
|
127
|
+
helper_1.autobind,
|
128
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
129
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
130
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
131
|
+
], FormulaEditor.prototype, "handleFocus", null);
|
132
|
+
(0, tslib_1.__decorate)([
|
133
|
+
helper_1.autobind,
|
134
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
135
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
136
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
137
|
+
], FormulaEditor.prototype, "handleBlur", null);
|
138
|
+
(0, tslib_1.__decorate)([
|
139
|
+
helper_1.autobind,
|
140
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
141
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, String]),
|
142
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
143
|
+
], FormulaEditor.prototype, "insertValue", null);
|
144
|
+
(0, tslib_1.__decorate)([
|
145
|
+
helper_1.autobind,
|
146
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
147
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Object]),
|
148
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
149
|
+
], FormulaEditor.prototype, "handleEditorMounted", null);
|
150
|
+
(0, tslib_1.__decorate)([
|
151
|
+
helper_1.autobind,
|
152
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
153
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
154
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
155
|
+
], FormulaEditor.prototype, "validate", null);
|
156
|
+
(0, tslib_1.__decorate)([
|
157
|
+
helper_1.autobind,
|
158
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
159
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
160
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
161
|
+
], FormulaEditor.prototype, "handleFunctionSelect", null);
|
162
|
+
(0, tslib_1.__decorate)([
|
163
|
+
helper_1.autobind,
|
164
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
165
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
166
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
167
|
+
], FormulaEditor.prototype, "handleVariableSelect", null);
|
168
|
+
(0, tslib_1.__decorate)([
|
169
|
+
helper_1.autobind,
|
170
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
171
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
172
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
173
|
+
], FormulaEditor.prototype, "handleOnChange", null);
|
174
|
+
(0, tslib_1.__decorate)([
|
175
|
+
helper_1.autobind,
|
176
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
177
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_b = typeof HTMLElement !== "undefined" && HTMLElement) === "function" ? _b : Object, Object]),
|
178
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
179
|
+
], FormulaEditor.prototype, "editorFactory", null);
|
180
|
+
return FormulaEditor;
|
181
|
+
}(react_1.default.Component));
|
182
|
+
exports.FormulaEditor = FormulaEditor;
|
183
|
+
exports.default = (0, uncontrollable_1.uncontrollable)((0, theme_1.themeable)((0, locale_1.localeable)(FormulaEditor)), {
|
184
|
+
value: 'onChange'
|
185
|
+
}, ['validate']);
|
186
|
+
//# sourceMappingURL=./components/formula/Editor.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "Editor.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/formula/Editor.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": "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",
|
10
|
+
"sourcesContent": [
|
11
|
+
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport {FormulaPlugin, editorFactory} from './plugin';\nimport {doc} from 'amis-formula/dist/doc';\nimport FuncList from './FuncList';\nimport {VariableList} from './VariableList';\nimport {parse} from 'amis-formula';\nimport {autobind} from '../../utils/helper';\nimport CodeMirrorEditor from '../CodeMirror';\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 selectMode?: 'tree' | 'tabs';\n}\n\nexport interface FuncGroup {\n groupName: string;\n items: Array<FuncItem>;\n}\n\nexport interface FuncItem {\n name: 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 variableMode?: 'tabs' | 'tree';\n\n /**\n * 函数集合,默认不需要传,即 amis-formula 里面那个函数\n * 如果有扩充,则需要传。\n */\n functions: Array<FuncGroup>;\n\n /**\n * 顶部标题,默认为表达式\n */\n header: 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<\n FormulaEditorProps,\n 'functions' | 'variables' | 'evalMode'\n > = {\n functions: this.buildDefaultFunctions(doc),\n variables: [],\n evalMode: true\n };\n\n static highlightValue(\n value: string,\n variables: Array<VariableItem>,\n functions: Array<FuncGroup>\n ) {\n // todo 高亮原始文本\n return value;\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 classnames: cx\n } = this.props;\n const {focused} = this.state;\n\n return (\n <div\n className={cx(`FormulaEditor`, {\n 'is-focused': focused\n })}\n >\n <div className={cx(`FormulaEditor-header`)}>{header ?? '表达式'}</div>\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 ></CodeMirrorEditor>\n\n <div className={cx('FormulaEditor-settings')}>\n {Array.isArray(functions) && functions.length ? (\n <div>\n <h3>变量</h3>\n <VariableList\n className={cx('VariableList')}\n selectMode={variableMode}\n data={variables}\n onSelect={this.handleVariableSelect}\n />\n </div>\n ) : null}\n {Array.isArray(variables) && variables.length ? (\n <div>\n <h3>函数</h3>\n <FuncList data={functions} onSelect={this.handleFunctionSelect} />\n </div>\n ) : null}\n </div>\n </div>\n );\n }\n}\n\nexport default uncontrollable(\n themeable(localeable(FormulaEditor)),\n {\n value: 'onChange'\n },\n ['validate']\n);\n"
|
12
|
+
]
|
13
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
/// <reference types="hoist-non-react-statics" />
|
2
|
+
import React from 'react';
|
3
|
+
import { ThemeProps } from '../../theme';
|
4
|
+
import type { FuncGroup, FuncItem } from './Editor';
|
5
|
+
export interface FuncListProps extends ThemeProps {
|
6
|
+
data: Array<FuncGroup>;
|
7
|
+
onSelect?: (item: FuncItem) => void;
|
8
|
+
}
|
9
|
+
export declare function FuncList(props: FuncListProps): JSX.Element;
|
10
|
+
declare const _default: {
|
11
|
+
new (props: (Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps) | Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>): {
|
12
|
+
render(): JSX.Element;
|
13
|
+
context: any;
|
14
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
15
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
16
|
+
readonly props: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps> & Readonly<{
|
17
|
+
children?: React.ReactNode;
|
18
|
+
}>;
|
19
|
+
state: Readonly<{}>;
|
20
|
+
refs: {
|
21
|
+
[key: string]: React.ReactInstance;
|
22
|
+
};
|
23
|
+
componentDidMount?(): void;
|
24
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
25
|
+
componentWillUnmount?(): void;
|
26
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
27
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
|
28
|
+
componentDidUpdate?(prevProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
29
|
+
componentWillMount?(): void;
|
30
|
+
UNSAFE_componentWillMount?(): void;
|
31
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
32
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
33
|
+
componentWillUpdate?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
34
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
35
|
+
};
|
36
|
+
new (props: Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps, context: any): {
|
37
|
+
render(): JSX.Element;
|
38
|
+
context: any;
|
39
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
40
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
41
|
+
readonly props: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps> & Readonly<{
|
42
|
+
children?: React.ReactNode;
|
43
|
+
}>;
|
44
|
+
state: Readonly<{}>;
|
45
|
+
refs: {
|
46
|
+
[key: string]: React.ReactInstance;
|
47
|
+
};
|
48
|
+
componentDidMount?(): void;
|
49
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
50
|
+
componentWillUnmount?(): void;
|
51
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
52
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
|
53
|
+
componentDidUpdate?(prevProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
54
|
+
componentWillMount?(): void;
|
55
|
+
UNSAFE_componentWillMount?(): void;
|
56
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
57
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextContext: any): void;
|
58
|
+
componentWillUpdate?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
59
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<FuncListProps, keyof ThemeProps> & import("../../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
60
|
+
};
|
61
|
+
displayName: string;
|
62
|
+
contextType: React.Context<string>;
|
63
|
+
ComposedComponent: React.ComponentType<typeof FuncList>;
|
64
|
+
} & import("hoist-non-react-statics").NonReactStatics<typeof FuncList, {}> & {
|
65
|
+
ComposedComponent: typeof FuncList;
|
66
|
+
};
|
67
|
+
export default _default;
|
@@ -0,0 +1,35 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FuncList = void 0;
|
4
|
+
var tslib_1 = require("tslib");
|
5
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
6
|
+
var theme_1 = require("../../theme");
|
7
|
+
var Collapse_1 = (0, tslib_1.__importDefault)(require("../Collapse"));
|
8
|
+
var CollapseGroup_1 = (0, tslib_1.__importDefault)(require("../CollapseGroup"));
|
9
|
+
var SearchBox_1 = (0, tslib_1.__importDefault)(require("../SearchBox"));
|
10
|
+
function FuncList(props) {
|
11
|
+
var _a;
|
12
|
+
var cx = props.classnames;
|
13
|
+
var _b = react_1.default.useState(props.data), filteredFuncs = _b[0], setFiteredFuncs = _b[1];
|
14
|
+
var _c = react_1.default.useState(null), activeFunc = _c[0], setActiveFunc = _c[1];
|
15
|
+
function onSearch(term) {
|
16
|
+
var filtered = props.data
|
17
|
+
.map(function (item) {
|
18
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, item), { items: term
|
19
|
+
? item.items.filter(function (item) { return ~item.name.indexOf(term.toUpperCase()); })
|
20
|
+
: item.items });
|
21
|
+
})
|
22
|
+
.filter(function (item) { return item.items.length; });
|
23
|
+
setFiteredFuncs(filtered);
|
24
|
+
}
|
25
|
+
return (react_1.default.createElement("div", { className: cx('FormulaFuncList') },
|
26
|
+
react_1.default.createElement(SearchBox_1.default, { className: "FormulaFuncList-searchBox", mini: false, onSearch: onSearch }),
|
27
|
+
react_1.default.createElement("div", { className: cx('FormulaFuncList-columns') },
|
28
|
+
react_1.default.createElement(CollapseGroup_1.default, { className: "FormulaFuncList-group", defaultActiveKey: (_a = filteredFuncs[0]) === null || _a === void 0 ? void 0 : _a.groupName, accordion: true }, filteredFuncs.map(function (item) { return (react_1.default.createElement(Collapse_1.default, { headingClassName: "FormulaFuncList-groupTitle", bodyClassName: "FormulaFuncList-groupBody", propKey: item.groupName, header: item.groupName, key: item.groupName }, item.items.map(function (item) { return (react_1.default.createElement("div", { className: cx("FormulaFuncList-funcItem " + (item.name === (activeFunc === null || activeFunc === void 0 ? void 0 : activeFunc.name) ? 'is-active' : '')), onMouseEnter: function () { return setActiveFunc(item); }, onClick: function () { var _a; return (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, item); }, key: item.name }, item.name)); }))); })),
|
29
|
+
react_1.default.createElement("div", { className: cx('FormulaFuncList-column') }, activeFunc ? (react_1.default.createElement("div", { className: cx('FormulaFuncList-funcDetail') },
|
30
|
+
react_1.default.createElement("p", null, activeFunc.example),
|
31
|
+
react_1.default.createElement("div", null, activeFunc.description))) : null))));
|
32
|
+
}
|
33
|
+
exports.FuncList = FuncList;
|
34
|
+
exports.default = (0, theme_1.themeable)(FuncList);
|
35
|
+
//# sourceMappingURL=./components/formula/FuncList.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "FuncList.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/formula/FuncList.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": "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",
|
10
|
+
"sourcesContent": [
|
11
|
+
"import React from 'react';\nimport {themeable, ThemeProps} from '../../theme';\nimport Collapse from '../Collapse';\nimport CollapseGroup from '../CollapseGroup';\nimport SearchBox from '../SearchBox';\nimport type {FuncGroup, FuncItem} from './Editor';\n\nexport interface FuncListProps extends ThemeProps {\n data: Array<FuncGroup>;\n onSelect?: (item: FuncItem) => void;\n}\n\nexport function FuncList(props: FuncListProps) {\n const cx = props.classnames;\n const [filteredFuncs, setFiteredFuncs] = React.useState(props.data);\n const [activeFunc, setActiveFunc] = React.useState<any>(null);\n function onSearch(term: string) {\n const filtered = props.data\n .map(item => {\n return {\n ...item,\n items: term\n ? item.items.filter(item => ~item.name.indexOf(term.toUpperCase()))\n : item.items\n };\n })\n .filter(item => item.items.length);\n setFiteredFuncs(filtered);\n }\n\n return (\n <div className={cx('FormulaFuncList')}>\n <SearchBox\n className=\"FormulaFuncList-searchBox\"\n mini={false}\n onSearch={onSearch}\n />\n <div className={cx('FormulaFuncList-columns')}>\n <CollapseGroup\n className=\"FormulaFuncList-group\"\n defaultActiveKey={filteredFuncs[0]?.groupName}\n accordion\n >\n {filteredFuncs.map(item => (\n <Collapse\n headingClassName=\"FormulaFuncList-groupTitle\"\n bodyClassName=\"FormulaFuncList-groupBody\"\n propKey={item.groupName}\n header={item.groupName}\n key={item.groupName}\n >\n {item.items.map(item => (\n <div\n className={cx(\n `FormulaFuncList-funcItem ${\n item.name === activeFunc?.name ? 'is-active' : ''\n }`\n )}\n onMouseEnter={() => setActiveFunc(item)}\n onClick={() => props.onSelect?.(item)}\n key={item.name}\n >\n {item.name}\n </div>\n ))}\n </Collapse>\n ))}\n </CollapseGroup>\n <div className={cx('FormulaFuncList-column')}>\n {activeFunc ? (\n <div className={cx('FormulaFuncList-funcDetail')}>\n <p>{activeFunc.example}</p>\n <div>{activeFunc.description}</div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n}\n\nexport default themeable(FuncList);\n"
|
12
|
+
]
|
13
|
+
}
|