amis 1.6.2 → 1.6.3
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/Schema.d.ts +3 -2
- package/lib/Schema.js.map +1 -1
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/Collapse.js +3 -2
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/ColorPicker.d.ts +84 -84
- package/lib/components/ColorPicker.js +1 -1
- package/lib/components/ColorPicker.js.map +2 -2
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +1 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.js +2 -2
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/LocationPicker.d.ts +84 -84
- package/lib/components/LocationPicker.js +1 -1
- package/lib/components/LocationPicker.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/PickerContainer.d.ts +1 -0
- package/lib/components/PickerContainer.js +2 -2
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/ResultBox.js +1 -1
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/Select.d.ts +237 -237
- package/lib/components/Tabs.d.ts +3 -2
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/calendar/Calendar.js +1 -2
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +2 -0
- package/lib/components/condition-builder/Expression.js +2 -2
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +3 -0
- package/lib/components/condition-builder/Group.js +3 -3
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +2 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/Item.d.ts +2 -0
- package/lib/components/condition-builder/Item.js +4 -4
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +2 -0
- package/lib/components/condition-builder/Value.js +15 -2
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +3 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +88 -84
- package/lib/components/formula/Editor.js +22 -25
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/FuncList.d.ts +3 -0
- package/lib/components/formula/FuncList.js +19 -9
- package/lib/components/formula/FuncList.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +44 -0
- package/lib/components/formula/Picker.js +33 -8
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/formula/VariableList.d.ts +8 -1
- package/lib/components/formula/VariableList.js +13 -4
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/icons.d.ts +3 -1
- package/lib/components/icons.js +7 -1
- package/lib/components/icons.js.map +2 -2
- package/lib/env.d.ts +4 -0
- package/lib/env.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +5 -1
- package/lib/factory.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/icons/function.js +7 -0
- package/lib/icons/input-clear.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +8 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +8 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/CRUD.js +4 -3
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Calendar.d.ts +45 -0
- package/lib/renderers/Calendar.js +21 -0
- package/lib/renderers/Calendar.js.map +13 -0
- package/lib/renderers/Card.js +2 -2
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Form/ConditionBuilder.d.ts +8 -0
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/IconPicker.d.ts +2 -0
- package/lib/renderers/Form/IconPicker.js +22 -2
- package/lib/renderers/Form/IconPicker.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 +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.d.ts +0 -18
- package/lib/renderers/Form/InputDate.js +1 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +1 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +42 -0
- package/lib/renderers/Form/InputFormula.js +6 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputText.d.ts +5 -0
- package/lib/renderers/Form/InputText.js +22 -4
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/Picker.js +1 -1
- package/lib/renderers/Form/Picker.js.map +2 -2
- package/lib/renderers/Form/Textarea.d.ts +12 -0
- package/lib/renderers/Form/Textarea.js +31 -15
- package/lib/renderers/Form/Textarea.js.map +2 -2
- package/lib/renderers/Form/Transfer.d.ts +1 -1
- package/lib/renderers/Form/Transfer.js +7 -1
- package/lib/renderers/Form/Transfer.js.map +2 -2
- package/lib/renderers/Form/index.js +4 -0
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/IFrame.js +8 -3
- package/lib/renderers/IFrame.js.map +2 -2
- package/lib/renderers/Tpl.js +1 -1
- package/lib/renderers/Tpl.js.map +2 -2
- package/lib/schemaExtend.js +11 -8
- package/lib/schemaExtend.js.map +2 -2
- package/lib/themes/ang-ie11.css +427 -141
- package/lib/themes/ang.css +427 -141
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +427 -141
- package/lib/themes/antd.css +427 -141
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +432 -152
- package/lib/themes/cxd.css +432 -152
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +427 -141
- package/lib/themes/dark.css +427 -141
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +432 -152
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +22 -9
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.d.ts +1 -0
- package/lib/utils/helper.js +10 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +2 -2
- package/schema.json +201 -66
- package/scss/_mixins.scss +10 -5
- package/scss/_properties.scss +11 -0
- package/scss/components/_collapse-group.scss +4 -0
- package/scss/components/_condition-builder.scss +8 -1
- package/scss/components/_formula.scss +247 -74
- package/scss/components/_result-box.scss +0 -13
- package/scss/components/form/_color.scss +0 -2
- package/scss/components/form/_date-range.scss +14 -7
- package/scss/components/form/_date.scss +14 -7
- package/scss/components/form/_form.scss +1 -0
- package/scss/components/form/_icon-picker.scss +2 -0
- package/scss/components/form/_location.scss +0 -1
- package/scss/components/form/_picker.scss +0 -1
- package/scss/components/form/_text.scss +6 -7
- package/scss/components/form/_textarea.scss +16 -0
- package/scss/components/form/_transfer.scss +2 -1
- package/scss/themes/_cxd-variables.scss +5 -3
- package/scss/themes/cxd.scss +0 -13
- package/sdk/ang-ie11.css +467 -126
- package/sdk/ang.css +486 -141
- package/sdk/antd-ie11.css +467 -126
- package/sdk/antd.css +486 -141
- package/sdk/charts.js +17 -17
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -69
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +474 -142
- package/sdk/cxd.css +491 -153
- package/sdk/dark-ie11.css +467 -126
- package/sdk/dark.css +486 -141
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css.map +1 -1
- package/sdk/locale/de-DE.js +8 -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 +20 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +474 -142
- package/sdk/sdk.css +491 -153
- package/sdk/sdk.js +1351 -1273
- 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/Schema.ts +3 -0
- package/src/components/Collapse.tsx +4 -1
- package/src/components/ColorPicker.tsx +1 -1
- package/src/components/DatePicker.tsx +1 -1
- package/src/components/DateRangePicker.tsx +2 -2
- package/src/components/LocationPicker.tsx +1 -1
- package/src/components/PickerContainer.tsx +3 -1
- package/src/components/ResultBox.tsx +1 -1
- package/src/components/Tabs.tsx +4 -2
- package/src/components/calendar/Calendar.tsx +1 -2
- package/src/components/condition-builder/Expression.tsx +5 -2
- package/src/components/condition-builder/Group.tsx +8 -2
- package/src/components/condition-builder/GroupOrItem.tsx +5 -1
- package/src/components/condition-builder/Item.tsx +7 -1
- package/src/components/condition-builder/Value.tsx +17 -4
- package/src/components/condition-builder/index.tsx +8 -1
- package/src/components/formula/Editor.tsx +43 -23
- package/src/components/formula/FuncList.tsx +74 -44
- package/src/components/formula/Picker.tsx +161 -23
- package/src/components/formula/VariableList.tsx +54 -9
- package/src/components/icons.tsx +7 -1
- package/src/env.tsx +5 -0
- package/src/factory.tsx +9 -1
- package/src/icons/function.svg +4 -0
- package/src/icons/input-clear.svg +1 -0
- package/src/index.tsx +1 -0
- package/src/locale/de-DE.ts +8 -1
- package/src/locale/en-US.ts +5 -1
- package/src/locale/zh-CN.ts +8 -1
- package/src/renderers/Breadcrumb.tsx +0 -1
- package/src/renderers/CRUD.tsx +6 -3
- package/src/renderers/Calendar.tsx +43 -0
- package/src/renderers/Card.tsx +12 -2
- package/src/renderers/Form/ConditionBuilder.tsx +11 -0
- package/src/renderers/Form/IconPicker.tsx +29 -0
- package/src/renderers/Form/InputColor.tsx +1 -1
- package/src/renderers/Form/InputDate.tsx +1 -21
- package/src/renderers/Form/InputDateRange.tsx +1 -1
- package/src/renderers/Form/InputFormula.tsx +103 -3
- package/src/renderers/Form/InputText.tsx +30 -5
- package/src/renderers/Form/Picker.tsx +1 -1
- package/src/renderers/Form/Textarea.tsx +46 -22
- package/src/renderers/Form/Transfer.tsx +6 -1
- package/src/renderers/Form/index.tsx +16 -1
- package/src/renderers/IFrame.tsx +8 -10
- package/src/renderers/Tpl.tsx +3 -1
- package/src/schemaExtend.ts +11 -7
- package/src/utils/api.ts +25 -10
- package/src/utils/helper.ts +11 -1
@@ -7,13 +7,13 @@ var tslib_1 = require("tslib");
|
|
7
7
|
*/
|
8
8
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
9
9
|
var uncontrollable_1 = require("uncontrollable");
|
10
|
-
var
|
10
|
+
var amis_formula_1 = require("amis-formula");
|
11
11
|
var doc_1 = require("amis-formula/dist/doc");
|
12
|
+
var plugin_1 = require("./plugin");
|
12
13
|
var FuncList_1 = (0, tslib_1.__importDefault)(require("./FuncList"));
|
13
14
|
var VariableList_1 = require("./VariableList");
|
14
|
-
var amis_formula_1 = require("amis-formula");
|
15
|
-
var helper_1 = require("../../utils/helper");
|
16
15
|
var CodeMirror_1 = (0, tslib_1.__importDefault)(require("../CodeMirror"));
|
16
|
+
var helper_1 = require("../../utils/helper");
|
17
17
|
var theme_1 = require("../../theme");
|
18
18
|
var locale_1 = require("../../locale");
|
19
19
|
var FormulaEditor = /** @class */ (function (_super) {
|
@@ -46,8 +46,8 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
46
46
|
return value;
|
47
47
|
};
|
48
48
|
FormulaEditor.prototype.componentWillUnmount = function () {
|
49
|
-
var
|
50
|
-
(
|
49
|
+
var _a;
|
50
|
+
(_a = this.editorPlugin) === null || _a === void 0 ? void 0 : _a.dispose();
|
51
51
|
};
|
52
52
|
FormulaEditor.prototype.handleFocus = function () {
|
53
53
|
this.setState({
|
@@ -60,8 +60,8 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
60
60
|
});
|
61
61
|
};
|
62
62
|
FormulaEditor.prototype.insertValue = function (value, type) {
|
63
|
-
var
|
64
|
-
(
|
63
|
+
var _a;
|
64
|
+
(_a = this.editorPlugin) === null || _a === void 0 ? void 0 : _a.insertContent(value, type);
|
65
65
|
};
|
66
66
|
FormulaEditor.prototype.handleEditorMounted = function (cm, editor) {
|
67
67
|
var _this = this;
|
@@ -82,12 +82,12 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
82
82
|
return;
|
83
83
|
};
|
84
84
|
FormulaEditor.prototype.handleFunctionSelect = function (item) {
|
85
|
-
var
|
86
|
-
(
|
85
|
+
var _a;
|
86
|
+
(_a = this.editorPlugin) === null || _a === void 0 ? void 0 : _a.insertContent("" + item.name, 'func');
|
87
87
|
};
|
88
88
|
FormulaEditor.prototype.handleVariableSelect = function (item) {
|
89
|
-
var
|
90
|
-
(
|
89
|
+
var _a;
|
90
|
+
(_a = this.editorPlugin) === null || _a === void 0 ? void 0 : _a.insertContent({
|
91
91
|
key: item.value,
|
92
92
|
name: item.label
|
93
93
|
}, 'variable');
|
@@ -100,27 +100,24 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
100
100
|
return (0, plugin_1.editorFactory)(dom, cm, this.props);
|
101
101
|
};
|
102
102
|
FormulaEditor.prototype.render = function () {
|
103
|
-
var
|
103
|
+
var _a = this.props, variables = _a.variables, header = _a.header, value = _a.value, functions = _a.functions, variableMode = _a.variableMode, __ = _a.translate, cx = _a.classnames, variableClassName = _a.variableClassName, functionClassName = _a.functionClassName, classPrefix = _a.classPrefix;
|
104
104
|
var focused = this.state.focused;
|
105
105
|
return (react_1.default.createElement("div", { className: cx("FormulaEditor", {
|
106
106
|
'is-focused': focused
|
107
107
|
}) },
|
108
|
-
react_1.default.createElement("
|
109
|
-
react_1.default.createElement("
|
108
|
+
react_1.default.createElement("section", { className: cx("FormulaEditor-content") },
|
109
|
+
react_1.default.createElement("header", { className: cx("FormulaEditor-header") }, __(header || 'FormulaEditor.title')),
|
110
110
|
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 })),
|
111
|
-
react_1.default.createElement("
|
112
|
-
|
113
|
-
react_1.default.createElement("
|
114
|
-
react_1.default.createElement(
|
115
|
-
|
116
|
-
|
117
|
-
react_1.default.createElement(FuncList_1.default, { data: functions, onSelect: this.handleFunctionSelect }))) : null)));
|
111
|
+
react_1.default.createElement("section", { className: cx('FormulaEditor-settings') },
|
112
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel') },
|
113
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-header') }, __('FormulaEditor.variable')),
|
114
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-body') },
|
115
|
+
react_1.default.createElement(VariableList_1.VariableList, { classPrefix: classPrefix, className: cx('FormulaEditor-VariableList', 'FormulaEditor-VariableList-root', variableClassName), selectMode: variableMode, data: variables, onSelect: this.handleVariableSelect }))),
|
116
|
+
react_1.default.createElement(FuncList_1.default, { className: functionClassName, title: __('FormulaEditor.function'), data: functions, onSelect: this.handleFunctionSelect }))));
|
118
117
|
};
|
119
118
|
var _a;
|
120
|
-
var _b;
|
121
|
-
_a = FormulaEditor;
|
122
119
|
FormulaEditor.defaultProps = {
|
123
|
-
functions:
|
120
|
+
functions: FormulaEditor.buildDefaultFunctions(doc_1.doc),
|
124
121
|
variables: [],
|
125
122
|
evalMode: true
|
126
123
|
};
|
@@ -175,7 +172,7 @@ var FormulaEditor = /** @class */ (function (_super) {
|
|
175
172
|
(0, tslib_1.__decorate)([
|
176
173
|
helper_1.autobind,
|
177
174
|
(0, tslib_1.__metadata)("design:type", Function),
|
178
|
-
(0, tslib_1.__metadata)("design:paramtypes", [typeof (
|
175
|
+
(0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof HTMLElement !== "undefined" && HTMLElement) === "function" ? _a : Object, Object]),
|
179
176
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
180
177
|
], FormulaEditor.prototype, "editorFactory", null);
|
181
178
|
return FormulaEditor;
|
@@ -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,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 公式编辑器\n */\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\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} 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 [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<\n FormulaEditorProps,\n 'functions' | 'variables' | 'evalMode'\n > = {\n functions: FormulaEditor.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 translate: __,\n classnames: cx,\n variableClassName,\n functionClassName,\n classPrefix\n } = this.props;\n const {focused} = this.state;\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 <div className={cx('FormulaEditor-panel-header')}>\n {__('FormulaEditor.variable')}\n </div>\n <div className={cx('FormulaEditor-panel-body')}>\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={functions}\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
|
}
|
@@ -3,6 +3,9 @@ import React from 'react';
|
|
3
3
|
import { ThemeProps } from '../../theme';
|
4
4
|
import type { FuncGroup, FuncItem } from './Editor';
|
5
5
|
export interface FuncListProps extends ThemeProps {
|
6
|
+
title?: string;
|
7
|
+
descClassName?: string;
|
8
|
+
bodyClassName?: string;
|
6
9
|
data: Array<FuncGroup>;
|
7
10
|
onSelect?: (item: FuncItem) => void;
|
8
11
|
}
|
@@ -7,9 +7,10 @@ var theme_1 = require("../../theme");
|
|
7
7
|
var Collapse_1 = (0, tslib_1.__importDefault)(require("../Collapse"));
|
8
8
|
var CollapseGroup_1 = (0, tslib_1.__importDefault)(require("../CollapseGroup"));
|
9
9
|
var SearchBox_1 = (0, tslib_1.__importDefault)(require("../SearchBox"));
|
10
|
+
var icon_1 = require("../../utils/icon");
|
10
11
|
function FuncList(props) {
|
11
12
|
var _a;
|
12
|
-
var cx = props.classnames;
|
13
|
+
var title = props.title, className = props.className, cx = props.classnames, bodyClassName = props.bodyClassName, descClassName = props.descClassName;
|
13
14
|
var _b = react_1.default.useState(props.data), filteredFuncs = _b[0], setFiteredFuncs = _b[1];
|
14
15
|
var _c = react_1.default.useState(null), activeFunc = _c[0], setActiveFunc = _c[1];
|
15
16
|
function onSearch(term) {
|
@@ -22,14 +23,23 @@ function FuncList(props) {
|
|
22
23
|
.filter(function (item) { return item.items.length; });
|
23
24
|
setFiteredFuncs(filtered);
|
24
25
|
}
|
25
|
-
return (react_1.default.createElement("div", { className: cx('
|
26
|
-
react_1.default.createElement(
|
27
|
-
|
28
|
-
react_1.default.createElement(
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
return (react_1.default.createElement("div", { className: cx('FormulaEditor-FuncList', className) },
|
27
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel') },
|
28
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-header') }, title),
|
29
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-body') },
|
30
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-FuncList-searchBox') },
|
31
|
+
react_1.default.createElement(SearchBox_1.default, { mini: false, onSearch: onSearch })),
|
32
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-FuncList-body', bodyClassName) },
|
33
|
+
react_1.default.createElement(CollapseGroup_1.default, { className: cx('FormulaEditor-FuncList-collapseGroup'), defaultActiveKey: (_a = filteredFuncs[0]) === null || _a === void 0 ? void 0 : _a.groupName, expandIcon: (0, icon_1.generateIcon)(cx, 'fa fa-chevron-right FormulaEditor-FuncList-expandIcon', 'Icon'), accordion: true }, filteredFuncs.map(function (item) { return (react_1.default.createElement(Collapse_1.default, { className: cx('FormulaEditor-FuncList-collapse'), headingClassName: cx('FormulaEditor-FuncList-groupTitle'), bodyClassName: cx('FormulaEditor-FuncList-groupBody'), propKey: item.groupName, header: item.groupName, key: item.groupName }, item.items.map(function (item) { return (react_1.default.createElement("div", { className: cx('FormulaEditor-FuncList-item', {
|
34
|
+
'is-active': item.name === (activeFunc === null || activeFunc === void 0 ? void 0 : activeFunc.name)
|
35
|
+
}), 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)); }))); }))))),
|
36
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel') },
|
37
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-header') }, (activeFunc === null || activeFunc === void 0 ? void 0 : activeFunc.name) || ''),
|
38
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-panel-body') },
|
39
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-FuncList-doc', descClassName) }, activeFunc ? (react_1.default.createElement(react_1.default.Fragment, null,
|
40
|
+
react_1.default.createElement("pre", null,
|
41
|
+
react_1.default.createElement("code", null, activeFunc.example)),
|
42
|
+
react_1.default.createElement("div", { className: cx('FormulaEditor-FuncList-doc-desc') }, activeFunc.description))) : null)))));
|
33
43
|
}
|
34
44
|
exports.FuncList = FuncList;
|
35
45
|
exports.default = (0, theme_1.themeable)(FuncList);
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/FuncList.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;
|
9
|
+
"mappings": "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",
|
10
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
|
11
|
+
"import React from 'react';\n\nimport {themeable, ThemeProps} from '../../theme';\nimport Collapse from '../Collapse';\nimport CollapseGroup from '../CollapseGroup';\nimport SearchBox from '../SearchBox';\nimport type {FuncGroup, FuncItem} from './Editor';\nimport {generateIcon} from '../../utils/icon';\n\nexport interface FuncListProps extends ThemeProps {\n title?: string;\n descClassName?: string;\n bodyClassName?: string;\n data: Array<FuncGroup>;\n onSelect?: (item: FuncItem) => void;\n}\n\nexport function FuncList(props: FuncListProps) {\n const {\n title,\n className,\n classnames: cx,\n bodyClassName,\n descClassName\n } = props;\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('FormulaEditor-FuncList', className)}>\n <div className={cx('FormulaEditor-panel')}>\n <div className={cx('FormulaEditor-panel-header')}>{title}</div>\n <div className={cx('FormulaEditor-panel-body')}>\n <div className={cx('FormulaEditor-FuncList-searchBox')}>\n <SearchBox mini={false} onSearch={onSearch} />\n </div>\n <div className={cx('FormulaEditor-FuncList-body', bodyClassName)}>\n <CollapseGroup\n className={cx('FormulaEditor-FuncList-collapseGroup')}\n defaultActiveKey={filteredFuncs[0]?.groupName}\n expandIcon={\n generateIcon(\n cx,\n 'fa fa-chevron-right FormulaEditor-FuncList-expandIcon',\n 'Icon'\n )!\n }\n accordion\n >\n {filteredFuncs.map(item => (\n <Collapse\n className={cx('FormulaEditor-FuncList-collapse')}\n headingClassName={cx('FormulaEditor-FuncList-groupTitle')}\n bodyClassName={cx('FormulaEditor-FuncList-groupBody')}\n propKey={item.groupName}\n header={item.groupName}\n key={item.groupName}\n >\n {item.items.map(item => (\n <div\n className={cx('FormulaEditor-FuncList-item', {\n 'is-active': item.name === activeFunc?.name\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>\n </div>\n </div>\n\n <div className={cx('FormulaEditor-panel')}>\n <div className={cx('FormulaEditor-panel-header')}>\n {activeFunc?.name || ''}\n </div>\n <div className={cx('FormulaEditor-panel-body')}>\n <div className={cx('FormulaEditor-FuncList-doc', descClassName)}>\n {activeFunc ? (\n <>\n <pre>\n <code>{activeFunc.example}</code>\n </pre>\n <div className={cx('FormulaEditor-FuncList-doc-desc')}>\n {activeFunc.description}\n </div>\n </>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport default themeable(FuncList);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -1,13 +1,57 @@
|
|
1
1
|
/// <reference types="hoist-non-react-statics" />
|
2
2
|
import React from 'react';
|
3
3
|
import { FormulaEditorProps } from './Editor';
|
4
|
+
import type { SchemaIcon } from '../../Schema';
|
4
5
|
export interface FormulaPickerProps extends FormulaEditorProps {
|
5
6
|
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
7
|
+
/**
|
8
|
+
* 编辑器标题
|
9
|
+
*/
|
10
|
+
title?: string;
|
11
|
+
/**
|
12
|
+
* 按钮图标
|
13
|
+
*/
|
14
|
+
icon?: SchemaIcon;
|
15
|
+
/**
|
16
|
+
* 控件模式
|
17
|
+
*/
|
18
|
+
mode?: 'button' | 'input-button';
|
6
19
|
/**
|
7
20
|
* 边框模式,全边框,还是半边框,或者没边框。
|
8
21
|
*/
|
9
22
|
borderMode?: 'full' | 'half' | 'none';
|
23
|
+
/**
|
24
|
+
* 按钮Label,inputMode为button时生效
|
25
|
+
*/
|
26
|
+
btnLabel?: string;
|
27
|
+
/**
|
28
|
+
* 按钮样式
|
29
|
+
*/
|
30
|
+
level?: 'info' | 'success' | 'warning' | 'danger' | 'link' | 'primary' | 'dark' | 'light';
|
31
|
+
/**
|
32
|
+
* 按钮大小
|
33
|
+
*/
|
34
|
+
btnSize?: 'xs' | 'sm' | 'md' | 'lg';
|
35
|
+
/**
|
36
|
+
* 禁用状态
|
37
|
+
*/
|
10
38
|
disabled?: boolean;
|
39
|
+
/**
|
40
|
+
* 占位文本
|
41
|
+
*/
|
42
|
+
placeholder?: string;
|
43
|
+
/**
|
44
|
+
* 可清除
|
45
|
+
*/
|
46
|
+
clearable?: boolean;
|
47
|
+
/**
|
48
|
+
* 支持通过上下文变量配置value
|
49
|
+
*/
|
50
|
+
source?: string;
|
51
|
+
/**
|
52
|
+
* 外层透传的 data,和source配合使用
|
53
|
+
*/
|
54
|
+
data?: any;
|
11
55
|
}
|
12
56
|
export declare class FormulaPicker extends React.Component<FormulaPickerProps> {
|
13
57
|
handleConfirm(value: any): void;
|
@@ -4,14 +4,16 @@ exports.FormulaPicker = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
5
5
|
var uncontrollable_1 = require("uncontrollable");
|
6
6
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
7
|
-
var Editor_1 = require("./Editor");
|
8
7
|
var helper_1 = require("../../utils/helper");
|
8
|
+
var icon_1 = require("../../utils/icon");
|
9
9
|
var PickerContainer_1 = (0, tslib_1.__importDefault)(require("../PickerContainer"));
|
10
|
-
var
|
10
|
+
var Editor_1 = (0, tslib_1.__importDefault)(require("./Editor"));
|
11
11
|
var ResultBox_1 = (0, tslib_1.__importDefault)(require("../ResultBox"));
|
12
|
+
var Button_1 = (0, tslib_1.__importDefault)(require("../Button"));
|
12
13
|
var icons_1 = require("../icons");
|
13
14
|
var theme_1 = require("../../theme");
|
14
15
|
var locale_1 = require("../../locale");
|
16
|
+
var tpl_builtin_1 = require("../../utils/tpl-builtin");
|
15
17
|
var FormulaPicker = /** @class */ (function (_super) {
|
16
18
|
(0, tslib_1.__extends)(FormulaPicker, _super);
|
17
19
|
function FormulaPicker() {
|
@@ -22,15 +24,38 @@ var FormulaPicker = /** @class */ (function (_super) {
|
|
22
24
|
(_b = (_a = this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, value);
|
23
25
|
};
|
24
26
|
FormulaPicker.prototype.render = function () {
|
25
|
-
var
|
26
|
-
|
27
|
+
var _this = this;
|
28
|
+
var _a = this.props, cx = _a.classnames, value = _a.value, __ = _a.translate, disabled = _a.disabled, className = _a.className, onChange = _a.onChange, size = _a.size, borderMode = _a.borderMode, placeholder = _a.placeholder, mode = _a.mode, btnLabel = _a.btnLabel, level = _a.level, btnSize = _a.btnSize, icon = _a.icon, title = _a.title, clearable = _a.clearable, variables = _a.variables, functions = _a.functions, rest = (0, tslib_1.__rest)(_a, ["classnames", "value", "translate", "disabled", "className", "onChange", "size", "borderMode", "placeholder", "mode", "btnLabel", "level", "btnSize", "icon", "title", "clearable", "variables", "functions"]);
|
29
|
+
if ((0, tpl_builtin_1.isPureVariable)(variables)) {
|
30
|
+
// 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值
|
31
|
+
variables = (0, tpl_builtin_1.resolveVariableAndFilter)(variables, this.props.data, '| raw');
|
32
|
+
}
|
33
|
+
if ((0, tpl_builtin_1.isPureVariable)(functions)) {
|
34
|
+
// 如果 functions 是 ${xxx} 这种形式,将其处理成实际的值
|
35
|
+
functions = (0, tpl_builtin_1.resolveVariableAndFilter)(functions, this.props.data, '| raw');
|
36
|
+
}
|
37
|
+
var iconElement = (0, icon_1.generateIcon)(cx, icon, 'Icon');
|
38
|
+
return (react_1.default.createElement(PickerContainer_1.default, { title: __(title || 'FormulaEditor.title'), headerClassName: "font-bold", bodyRender: function (_a) {
|
27
39
|
var onClose = _a.onClose, value = _a.value, onChange = _a.onChange;
|
28
|
-
return react_1.default.createElement(
|
40
|
+
return (react_1.default.createElement(Editor_1.default, (0, tslib_1.__assign)({}, rest, { variables: variables, functions: functions, value: value, onChange: onChange })));
|
29
41
|
}, value: value, onConfirm: this.handleConfirm, size: 'md' }, function (_a) {
|
42
|
+
var _b, _c, _d;
|
43
|
+
var _e, _f;
|
30
44
|
var onClick = _a.onClick, isOpened = _a.isOpened;
|
31
|
-
return (react_1.default.createElement(
|
32
|
-
react_1.default.
|
33
|
-
|
45
|
+
return (react_1.default.createElement("div", { className: cx('FormulaPicker', className) }, mode === 'button' ? (react_1.default.createElement(Button_1.default, { className: cx('FormulaPicker-action', 'w-full'), level: level, size: btnSize, onClick: onClick },
|
46
|
+
iconElement ? (react_1.default.cloneElement(iconElement, {
|
47
|
+
className: cx((_f = (_e = iconElement === null || iconElement === void 0 ? void 0 : iconElement.props) === null || _e === void 0 ? void 0 : _e.className) !== null && _f !== void 0 ? _f : '', 'FormulaPicker-icon', (_b = {},
|
48
|
+
_b['is-filled'] = !!value,
|
49
|
+
_b))
|
50
|
+
})) : (react_1.default.createElement(icons_1.Icon, { icon: "function", className: cx('FormulaPicker-icon', 'icon', (_c = {},
|
51
|
+
_c['is-filled'] = !!value,
|
52
|
+
_c)) })),
|
53
|
+
react_1.default.createElement("span", { className: cx('FormulaPicker-label') }, __(btnLabel || 'FormulaEditor.btnLabel')))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
54
|
+
react_1.default.createElement(ResultBox_1.default, { className: cx('FormulaPicker-input', isOpened ? 'is-active' : ''), allowInput: true, clearable: clearable, value: value, onResultChange: helper_1.noop, onChange: _this.handleConfirm, disabled: disabled, borderMode: borderMode, placeholder: placeholder }),
|
55
|
+
react_1.default.createElement(Button_1.default, { className: cx('FormulaPicker-action'), onClick: onClick },
|
56
|
+
react_1.default.createElement(icons_1.Icon, { icon: "function", className: cx('FormulaPicker-icon', 'icon', (_d = {},
|
57
|
+
_d['is-filled'] = !!value,
|
58
|
+
_d)) }))))));
|
34
59
|
}));
|
35
60
|
};
|
36
61
|
(0, tslib_1.__decorate)([
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/Picker.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,iDAA8C;AAC9C,6DAA0B;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport {FormulaEditor, FormulaEditorProps} from './Editor';\nimport {autobind, noop} from '../../utils/helper';\nimport PickerContainer from '../PickerContainer';\nimport Editor from './Editor';\nimport ResultBox from '../ResultBox';\nimport {Icon} from '../icons';\nimport {themeable} from '../../theme';\nimport {localeable} from '../../locale';\n\nexport interface FormulaPickerProps extends FormulaEditorProps {\n // 新的属性?\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n disabled?: boolean;\n}\n\nexport class FormulaPicker extends React.Component<FormulaPickerProps> {\n @autobind\n handleConfirm(value: any) {\n this.props.onChange?.(value);\n }\n\n render() {\n
|
11
|
+
"import {uncontrollable} from 'uncontrollable';\nimport React from 'react';\nimport {FormulaEditor, FormulaEditorProps} from './Editor';\nimport {autobind, noop} from '../../utils/helper';\nimport {generateIcon} from '../../utils/icon';\nimport PickerContainer from '../PickerContainer';\nimport Editor from './Editor';\nimport ResultBox from '../ResultBox';\nimport Button from '../Button';\nimport {Icon} from '../icons';\nimport {themeable} from '../../theme';\nimport {localeable} from '../../locale';\n\nimport type {SchemaIcon} from '../../Schema';\nimport {\n resolveVariableAndFilter,\n isPureVariable\n} from '../../utils/tpl-builtin';\n\nexport interface FormulaPickerProps extends FormulaEditorProps {\n // 新的属性?\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * 编辑器标题\n */\n title?: string;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n /**\n * 控件模式\n */\n mode?: 'button' | 'input-button';\n\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 按钮Label,inputMode为button时生效\n */\n btnLabel?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light';\n\n /**\n * 按钮大小\n */\n btnSize?: 'xs' | 'sm' | 'md' | 'lg';\n\n /**\n * 禁用状态\n */\n disabled?: boolean;\n\n /**\n * 占位文本\n */\n placeholder?: string;\n\n /**\n * 可清除\n */\n clearable?: boolean;\n\n /**\n * 支持通过上下文变量配置value\n */\n source?: string;\n\n /**\n * 外层透传的 data,和source配合使用\n */\n data?: any;\n}\n\nexport class FormulaPicker extends React.Component<FormulaPickerProps> {\n @autobind\n handleConfirm(value: any) {\n this.props.onChange?.(value);\n }\n\n render() {\n let {\n classnames: cx,\n value,\n translate: __,\n disabled,\n className,\n onChange,\n size,\n borderMode,\n placeholder,\n mode,\n btnLabel,\n level,\n btnSize,\n icon,\n title,\n clearable,\n variables,\n functions,\n ...rest\n } = this.props;\n if (isPureVariable(variables)) {\n // 如果 variables 是 ${xxx} 这种形式,将其处理成实际的值\n variables = resolveVariableAndFilter(variables, this.props.data, '| raw');\n }\n\n if (isPureVariable(functions)) {\n // 如果 functions 是 ${xxx} 这种形式,将其处理成实际的值\n functions = resolveVariableAndFilter(functions, this.props.data, '| raw');\n }\n const iconElement = generateIcon(cx, icon, 'Icon');\n\n return (\n <PickerContainer\n title={__(title || 'FormulaEditor.title')}\n headerClassName=\"font-bold\"\n bodyRender={({onClose, value, onChange}) => {\n return (\n <Editor\n {...rest}\n variables={variables}\n functions={functions}\n value={value}\n onChange={onChange}\n />\n );\n }}\n value={value}\n onConfirm={this.handleConfirm}\n size={'md'}\n >\n {({onClick, isOpened}) => (\n <div className={cx('FormulaPicker', className)}>\n {mode === 'button' ? (\n <Button\n className={cx('FormulaPicker-action', 'w-full')}\n level={level}\n size={btnSize}\n onClick={onClick}\n >\n {iconElement ? (\n React.cloneElement(iconElement, {\n className: cx(\n iconElement?.props?.className ?? '',\n 'FormulaPicker-icon',\n {\n ['is-filled']: !!value\n }\n )\n })\n ) : (\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n )}\n <span className={cx('FormulaPicker-label')}>\n {__(btnLabel || 'FormulaEditor.btnLabel')}\n </span>\n </Button>\n ) : (\n <>\n <ResultBox\n className={cx(\n 'FormulaPicker-input',\n isOpened ? 'is-active' : ''\n )}\n allowInput\n clearable={clearable}\n value={value}\n onResultChange={noop}\n onChange={this.handleConfirm}\n disabled={disabled}\n borderMode={borderMode}\n placeholder={placeholder}\n />\n\n <Button\n className={cx('FormulaPicker-action')}\n onClick={onClick}\n >\n <Icon\n icon=\"function\"\n className={cx('FormulaPicker-icon', 'icon', {\n ['is-filled']: !!value\n })}\n />\n </Button>\n </>\n )}\n </div>\n )}\n </PickerContainer>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(FormulaPicker, {\n value: 'onChange'\n })\n )\n);\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -1,9 +1,16 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import type { VariableItem } from './Editor';
|
3
|
+
import type { ItemRenderStates } from '../Selection';
|
4
|
+
import type { Option } from '../Select';
|
5
|
+
import type { TabsMode } from '../Tabs';
|
3
6
|
export interface VariableListProps {
|
4
7
|
className?: string;
|
8
|
+
itemClassName?: string;
|
9
|
+
classPrefix?: string;
|
5
10
|
data: Array<VariableItem>;
|
6
11
|
selectMode?: 'list' | 'tree' | 'tabs';
|
12
|
+
tabsMode?: TabsMode;
|
13
|
+
itemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;
|
7
14
|
onSelect?: (item: VariableItem) => void;
|
8
15
|
}
|
9
|
-
export declare function VariableList(
|
16
|
+
export declare function VariableList(props: VariableListProps): JSX.Element;
|
@@ -3,13 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VariableList = void 0;
|
4
4
|
var tslib_1 = require("tslib");
|
5
5
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
6
|
+
var classnames_1 = (0, tslib_1.__importDefault)(require("classnames"));
|
6
7
|
var GroupedSelection_1 = (0, tslib_1.__importDefault)(require("../GroupedSelection"));
|
7
8
|
var Tabs_1 = tslib_1.__importStar(require("../Tabs"));
|
8
9
|
var TreeSelection_1 = (0, tslib_1.__importDefault)(require("../TreeSelection"));
|
9
|
-
function VariableList(
|
10
|
-
var list =
|
11
|
-
|
12
|
-
|
10
|
+
function VariableList(props) {
|
11
|
+
var list = props.data, className = props.className, _a = props.tabsMode, tabsMode = _a === void 0 ? 'card' : _a, themePrefix = props.classPrefix, itemClassName = props.itemClassName, selectMode = props.selectMode, onSelect = props.onSelect;
|
12
|
+
var classPrefix = themePrefix + "FormulaEditor-VariableList";
|
13
|
+
var itemRender = props.itemRender && typeof props.itemRender === 'function'
|
14
|
+
? props.itemRender
|
15
|
+
: function (option, states) {
|
16
|
+
return (react_1.default.createElement("span", { className: (0, classnames_1.default)(classPrefix + "-item", itemClassName) },
|
17
|
+
react_1.default.createElement("label", null, option.label),
|
18
|
+
(option === null || option === void 0 ? void 0 : option.tag) ? (react_1.default.createElement("span", { className: (0, classnames_1.default)(classPrefix + "-item-tag") }, option.tag)) : null));
|
19
|
+
};
|
20
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, { 'is-scrollable': selectMode !== 'tabs' }) }, selectMode === 'tabs' ? (react_1.default.createElement(Tabs_1.default, { tabsMode: tabsMode, className: (0, classnames_1.default)(classPrefix + "-base " + classPrefix + "-tabs") }, list.map(function (item, index) { return (react_1.default.createElement(Tabs_1.Tab, { className: (0, classnames_1.default)(classPrefix + "-tab"), eventKey: index, key: index, title: item.label },
|
21
|
+
react_1.default.createElement(VariableList, { className: (0, classnames_1.default)(classPrefix + "-sub"), itemRender: itemRender, selectMode: item.selectMode, data: item.children, onSelect: onSelect }))); }))) : selectMode === 'tree' ? (react_1.default.createElement(TreeSelection_1.default, { itemRender: itemRender, className: (0, classnames_1.default)(classPrefix + "-base"), multiple: false, options: list, onChange: function (item) { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(item); } })) : (react_1.default.createElement(GroupedSelection_1.default, { itemRender: itemRender, className: (0, classnames_1.default)(classPrefix + "-base"), multiple: false, options: list, onChange: function (item) { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(item); } }))));
|
13
22
|
}
|
14
23
|
exports.VariableList = VariableList;
|
15
24
|
//# sourceMappingURL=./components/formula/VariableList.js.map
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/formula/VariableList.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,sFAAmD;AACnD,2DAAkC;AAClC,gFAA6C;
|
9
|
+
"mappings": ";;;;AAAA,6DAA0B;AAC1B,uEAA4B;AAE5B,sFAAmD;AACnD,2DAAkC;AAClC,gFAA6C;AAkB7C,SAAgB,YAAY,CAAC,KAAwB;IAEjD,IAAM,IAAI,GAOR,KAAK,KAPG,EACV,SAAS,GAMP,KAAK,UANE,EACT,KAKE,KAAK,SALU,EAAjB,QAAQ,mBAAG,MAAM,KAAA,EACJ,WAAW,GAItB,KAAK,YAJiB,EACxB,aAAa,GAGX,KAAK,cAHM,EACb,UAAU,GAER,KAAK,WAFG,EACV,QAAQ,GACN,KAAK,SADC,CACA;IACV,IAAM,WAAW,GAAM,WAAW,+BAA4B,CAAC;IAC/D,IAAM,UAAU,GACd,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;QACxD,CAAC,CAAC,KAAK,CAAC,UAAU;QAClB,CAAC,CAAC,UAAC,MAAc,EAAE,MAAwB;YACvC,OAAO,CACL,wCAAM,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,UAAO,EAAE,aAAa,CAAC;gBACvD,6CAAQ,MAAM,CAAC,KAAK,CAAS;gBAC5B,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,EAAC,CAAC,CAAC,CACb,wCAAM,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,cAAW,CAAC,IAC3C,MAAM,CAAC,GAAG,CACN,CACR,CAAC,CAAC,CAAC,IAAI,CACH,CACR,CAAC;QACJ,CAAC,CAAC;IAER,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAE,EAAC,SAAS,EAAE,EAAC,eAAe,EAAE,UAAU,KAAK,MAAM,EAAC,CAAC,IACpE,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,8BAAC,cAAI,IACH,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,cAAS,WAAW,UAAO,CAAC,IAEvD,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CACzB,8BAAC,UAAG,IACF,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,SAAM,CAAC,EACnC,QAAQ,EAAE,KAAK,EACf,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,IAAI,CAAC,KAAK;QAEjB,8BAAC,YAAY,IACX,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,SAAM,CAAC,EACnC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,IAAI,EAAE,IAAI,CAAC,QAAS,EACpB,QAAQ,EAAE,QAAQ,GAClB,CACE,CACP,EAf0B,CAe1B,CAAC,CACG,CACR,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAC1B,8BAAC,uBAAa,IACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,UAAO,CAAC,EACpC,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,UAAC,IAAS,IAAK,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,EAAhB,CAAgB,GACzC,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,0BAAgB,IACf,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,IAAA,oBAAE,EAAI,WAAW,UAAO,CAAC,EACpC,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,UAAC,IAAS,IAAK,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,EAAhB,CAAgB,GACzC,CACH,CACG,CACP,CAAC;AACJ,CAAC;AAtED,oCAsEC",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport GroupedSelection from '../GroupedSelection';\nimport Tabs, {Tab} from '../Tabs';\nimport TreeSelection from '../TreeSelection';\nimport type {VariableItem} from './Editor';\n\nexport interface VariableListProps {\n className?: string;\n data: Array<VariableItem>;\n selectMode?: 'list' | 'tree' | 'tabs';\n onSelect?: (item: VariableItem) => void;\n}\n\nexport function VariableList({\n data: list,\n
|
11
|
+
"import React from 'react';\nimport cx from 'classnames';\n\nimport GroupedSelection from '../GroupedSelection';\nimport Tabs, {Tab} from '../Tabs';\nimport TreeSelection from '../TreeSelection';\n\nimport type {VariableItem} from './Editor';\nimport type {ItemRenderStates} from '../Selection';\nimport type {Option} from '../Select';\nimport type {TabsMode} from '../Tabs';\n\nexport interface VariableListProps {\n className?: string;\n itemClassName?: string;\n classPrefix?: string;\n data: Array<VariableItem>;\n selectMode?: 'list' | 'tree' | 'tabs';\n tabsMode?: TabsMode;\n itemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;\n onSelect?: (item: VariableItem) => void;\n}\n\nexport function VariableList(props: VariableListProps) {\n const {\n data: list,\n className,\n tabsMode = 'card',\n classPrefix: themePrefix,\n itemClassName,\n selectMode,\n onSelect\n } = props;\n const classPrefix = `${themePrefix}FormulaEditor-VariableList`;\n const itemRender =\n props.itemRender && typeof props.itemRender === 'function'\n ? props.itemRender\n : (option: Option, states: ItemRenderStates): JSX.Element => {\n return (\n <span className={cx(`${classPrefix}-item`, itemClassName)}>\n <label>{option.label}</label>\n {option?.tag ? (\n <span className={cx(`${classPrefix}-item-tag`)}>\n {option.tag}\n </span>\n ) : null}\n </span>\n );\n };\n\n return (\n <div className={cx(className, {'is-scrollable': selectMode !== 'tabs'})}>\n {selectMode === 'tabs' ? (\n <Tabs\n tabsMode={tabsMode}\n className={cx(`${classPrefix}-base ${classPrefix}-tabs`)}\n >\n {list.map((item, index) => (\n <Tab\n className={cx(`${classPrefix}-tab`)}\n eventKey={index}\n key={index}\n title={item.label}\n >\n <VariableList\n className={cx(`${classPrefix}-sub`)}\n itemRender={itemRender}\n selectMode={item.selectMode}\n data={item.children!}\n onSelect={onSelect}\n />\n </Tab>\n ))}\n </Tabs>\n ) : selectMode === 'tree' ? (\n <TreeSelection\n itemRender={itemRender}\n className={cx(`${classPrefix}-base`)}\n multiple={false}\n options={list}\n onChange={(item: any) => onSelect?.(item)}\n />\n ) : (\n <GroupedSelection\n itemRender={itemRender}\n className={cx(`${classPrefix}-base`)}\n multiple={false}\n options={list}\n onChange={(item: any) => onSelect?.(item)}\n />\n )}\n </div>\n );\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -18,6 +18,8 @@ import CheckIcon from '../icons/check.svg';
|
|
18
18
|
import PlusIcon from '../icons/plus.svg';
|
19
19
|
import MinusIcon from '../icons/minus.svg';
|
20
20
|
import PencilIcon from '../icons/pencil.svg';
|
21
|
+
import FunctionIcon from '../icons/function.svg';
|
22
|
+
import InputClearIcon from '../icons/input-clear.svg';
|
21
23
|
export declare const closeIcon: JSX.Element;
|
22
24
|
export declare const unDoIcon: JSX.Element;
|
23
25
|
export declare const reDoIcon: JSX.Element;
|
@@ -34,4 +36,4 @@ export declare function registerIcon(key: string, component: React.ReactType<{}>
|
|
34
36
|
export declare function Icon({ icon, className, ...rest }: {
|
35
37
|
icon: string;
|
36
38
|
} & React.ComponentProps<any>): JSX.Element;
|
37
|
-
export { CloseIcon, UnDoIcon, ReDoIcon, EnterIcon, VolumeIcon, MuteIcon, PlayIcon, PauseIcon, LeftArrowIcon, RightArrowIcon, CheckIcon, PlusIcon, MinusIcon, PencilIcon };
|
39
|
+
export { InputClearIcon, CloseIcon, UnDoIcon, ReDoIcon, EnterIcon, VolumeIcon, MuteIcon, PlayIcon, PauseIcon, LeftArrowIcon, RightArrowIcon, CheckIcon, PlusIcon, MinusIcon, PencilIcon, FunctionIcon };
|
package/lib/components/icons.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PencilIcon = exports.MinusIcon = exports.PlusIcon = exports.CheckIcon = exports.RightArrowIcon = exports.LeftArrowIcon = exports.PauseIcon = exports.PlayIcon = exports.MuteIcon = exports.VolumeIcon = exports.EnterIcon = exports.ReDoIcon = exports.UnDoIcon = exports.CloseIcon = exports.Icon = exports.registerIcon = exports.hasIcon = exports.getIcon = exports.rightArrowIcon = exports.leftArrowIcon = exports.pauseIcon = exports.playIcon = exports.muteIcon = exports.volumeIcon = exports.enterIcon = exports.reDoIcon = exports.unDoIcon = exports.closeIcon = void 0;
|
3
|
+
exports.FunctionIcon = exports.PencilIcon = exports.MinusIcon = exports.PlusIcon = exports.CheckIcon = exports.RightArrowIcon = exports.LeftArrowIcon = exports.PauseIcon = exports.PlayIcon = exports.MuteIcon = exports.VolumeIcon = exports.EnterIcon = exports.ReDoIcon = exports.UnDoIcon = exports.CloseIcon = exports.InputClearIcon = exports.Icon = exports.registerIcon = exports.hasIcon = exports.getIcon = exports.rightArrowIcon = exports.leftArrowIcon = exports.pauseIcon = exports.playIcon = exports.muteIcon = exports.volumeIcon = exports.enterIcon = exports.reDoIcon = exports.unDoIcon = exports.closeIcon = void 0;
|
4
4
|
var tslib_1 = require("tslib");
|
5
5
|
/**
|
6
6
|
* @file Icon
|
@@ -92,6 +92,10 @@ var alert_success_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-s
|
|
92
92
|
var alert_info_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-info.js"));
|
93
93
|
var alert_warning_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-warning.js"));
|
94
94
|
var alert_danger_svg_1 = (0, tslib_1.__importDefault)(require("../icons/alert-danger.js"));
|
95
|
+
var function_svg_1 = (0, tslib_1.__importDefault)(require("../icons/function.js"));
|
96
|
+
exports.FunctionIcon = function_svg_1.default;
|
97
|
+
var input_clear_svg_1 = (0, tslib_1.__importDefault)(require("../icons/input-clear.js"));
|
98
|
+
exports.InputClearIcon = input_clear_svg_1.default;
|
95
99
|
// 兼容原来的用法,后续不直接试用。
|
96
100
|
exports.closeIcon = react_1.default.createElement(close_svg_1.default, null);
|
97
101
|
exports.unDoIcon = react_1.default.createElement(undo_svg_1.default, null);
|
@@ -189,6 +193,8 @@ registerIcon('alert-info', alert_info_svg_1.default);
|
|
189
193
|
registerIcon('alert-warning', alert_warning_svg_1.default);
|
190
194
|
registerIcon('alert-danger', alert_danger_svg_1.default);
|
191
195
|
registerIcon('tree-down', tree_down_svg_1.default);
|
196
|
+
registerIcon('function', function_svg_1.default);
|
197
|
+
registerIcon('input-clear', input_clear_svg_1.default);
|
192
198
|
function Icon(_a) {
|
193
199
|
var icon = _a.icon, className = _a.className, rest = (0, tslib_1.__rest)(_a, ["icon", "className"]);
|
194
200
|
// jest 运行环境下,把指定的 icon 也输出到 snapshot 中。
|