amis 1.8.0-beta.13 → 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/WithStore.js +1 -1
- package/lib/WithStore.js.map +2 -2
- package/lib/components/DatePicker.js +3 -1
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/Progress.js +3 -4
- package/lib/components/Progress.js.map +2 -2
- 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/Tree.js +3 -1
- package/lib/components/Tree.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/helper.css +1 -1
- package/lib/helper.css.map +1 -1
- package/lib/index.js +1 -1
- package/lib/renderers/Date.js +6 -1
- package/lib/renderers/Date.js.map +2 -2
- 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/TreeSelect.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/renderers/Nav.d.ts +21 -20
- package/lib/renderers/Nav.js +8 -1
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.js +1 -1
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.js +1 -1
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Table/exportExcel.d.ts +6 -0
- package/lib/renderers/Table/exportExcel.js +288 -0
- package/lib/renderers/Table/exportExcel.js.map +13 -0
- package/lib/renderers/Table/index.d.ts +1 -1
- package/lib/renderers/Table/index.js +4 -251
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/themes/ang-ie11.css +112 -36
- package/lib/themes/ang.css +100 -21
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +112 -36
- package/lib/themes/antd.css +100 -21
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +97 -21
- package/lib/themes/cxd.css +100 -21
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +112 -36
- package/lib/themes/dark.css +100 -21
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +97 -21
- package/lib/themes/default.css +100 -21
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/api.js +35 -6
- package/lib/utils/api.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +1 -1
- package/scss/_properties.scss +4 -0
- package/scss/components/_formula.scss +77 -12
- package/scss/components/_progress.scss +2 -7
- package/scss/components/form/_date.scss +1 -0
- package/scss/components/form/_transfer.scss +21 -0
- package/scss/helper/layout/_display.scss +1 -1
- package/sdk/ang-ie11.css +130 -36
- package/sdk/ang.css +118 -21
- package/sdk/antd-ie11.css +130 -36
- package/sdk/antd.css +118 -21
- 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 +115 -21
- package/sdk/cxd.css +118 -21
- package/sdk/dark-ie11.css +130 -36
- package/sdk/dark.css +118 -21
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css +1 -1
- 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 +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +115 -21
- package/sdk/sdk.css +118 -21
- package/sdk/sdk.js +1270 -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/WithStore.tsx +1 -1
- package/src/components/DatePicker.tsx +2 -1
- package/src/components/Progress.tsx +6 -4
- package/src/components/TabsTransfer.tsx +253 -143
- package/src/components/Tree.tsx +3 -1
- package/src/components/formula/Editor.tsx +12 -5
- package/src/components/formula/VariableList.tsx +55 -21
- package/src/renderers/Date.tsx +14 -1
- 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/TreeSelect.tsx +15 -12
- package/src/renderers/Form/index.tsx +37 -16
- package/src/renderers/Markdown.tsx +4 -5
- package/src/renderers/Nav.tsx +7 -1
- package/src/renderers/Page.tsx +9 -2
- package/src/renderers/Service.tsx +8 -2
- package/src/renderers/Table/exportExcel.ts +289 -0
- package/src/renderers/Table/index.tsx +5 -252
- package/src/utils/api.ts +42 -10
package/lib/index.js
CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerLocale = exports.setDefaultLocale = exports.getDefaultLocale = exports.classnames = exports.getClassPrefix = exports.classPrefix = exports.getTheme = exports.theme = exports.setDefaultTheme = exports.validateObject = exports.validate = exports.ScopedContext = exports.Scoped = exports.registerIcon = exports.Icon = exports.setIconVendor = exports.resolveVariableAndFilter = exports.resolveVariable = exports.relativeValueRe = exports.filterDate = exports.filterSchema = exports.resolveRenderer = exports.registerOptionsControl = exports.registerFormItem = exports.getRenderers = exports.unRegisterRenderer = exports.registerRenderer = exports.getRendererByName = exports.normalizeOptions = exports.str2rules = exports.addRule = exports.setCustomEvalExpression = exports.setCustomEvalJs = exports.evalJS = exports.evalExpression = exports.registerTplEnginer = exports.registerFilter = exports.resizeSensor = exports.utils = exports.filter = exports.buildApi = exports.wrapFetcher = exports.OptionsControl = exports.FormItemWrap = exports.FormItem = exports.RegisterStore = exports.Renderer = exports.updateEnv = exports.clearStoresCache = exports.render = void 0;
|
4
4
|
exports.animation = exports.makeTranslator = void 0;
|
5
5
|
var tslib_1 = require("tslib");
|
6
|
-
/** @license amis v1.8.0-beta.
|
6
|
+
/** @license amis v1.8.0-beta.17
|
7
7
|
*
|
8
8
|
* Copyright Baidu
|
9
9
|
*
|
package/lib/renderers/Date.js
CHANGED
@@ -34,6 +34,8 @@ var DateField = /** @class */ (function (_super) {
|
|
34
34
|
var _a = this.props, valueFormat = _a.valueFormat, format = _a.format, placeholder = _a.placeholder, fromNow = _a.fromNow, className = _a.className, cx = _a.classnames, __ = _a.translate;
|
35
35
|
var viewValue = (react_1.default.createElement("span", { className: "text-muted" }, placeholder));
|
36
36
|
var value = (0, helper_1.getPropValue)(this.props);
|
37
|
+
// 主要是给 fromNow 用的
|
38
|
+
var date;
|
37
39
|
if (value) {
|
38
40
|
var ISODate = (0, moment_1.default)(value, moment_1.default.ISO_8601);
|
39
41
|
var NormalDate = (0, moment_1.default)(value, valueFormat);
|
@@ -42,12 +44,15 @@ var DateField = /** @class */ (function (_super) {
|
|
42
44
|
: NormalDate.isValid()
|
43
45
|
? NormalDate.format(format)
|
44
46
|
: false;
|
47
|
+
if (viewValue) {
|
48
|
+
date = viewValue;
|
49
|
+
}
|
45
50
|
}
|
46
51
|
if (fromNow) {
|
47
52
|
viewValue = (0, moment_1.default)(viewValue).fromNow();
|
48
53
|
}
|
49
54
|
viewValue = !viewValue ? (react_1.default.createElement("span", { className: "text-danger" }, __('Date.invalid'))) : (viewValue);
|
50
|
-
return react_1.default.createElement("span", { className: cx('DateField', className) }, viewValue);
|
55
|
+
return (react_1.default.createElement("span", { className: cx('DateField', className), title: fromNow ? date : undefined }, viewValue));
|
51
56
|
};
|
52
57
|
DateField.defaultProps = {
|
53
58
|
placeholder: '-',
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Date.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,sCAAmD;AACnD,+DAA4B;AAE5B,0CAA6C;AAoD7C;IAA+B,0CAAqC;IAApE;QAAA,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport moment from 'moment';\nimport {BaseSchema} from '../Schema';\nimport {getPropValue} from '../utils/helper';\n\n/**\n * Date 展示渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/date\n */\nexport interface DateSchema extends BaseSchema {\n /**\n * 指定为日期展示类型\n */\n type:\n | 'date'\n | 'datetime'\n | 'time'\n | 'static-date'\n | 'static-datetime'\n | 'static-time';\n\n /**\n * 展示的时间格式,参考 moment 中的格式说明。\n */\n format?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 值的时间格式,参考 moment 中的格式说明。\n */\n valueFormat?: string;\n\n /**\n * 显示成相对时间,比如1分钟前\n */\n fromNow?: boolean;\n\n /**\n * 更新频率, 默认为1分钟\n */\n updateFrequency?: number;\n}\n\nexport interface DateProps\n extends RendererProps,\n Omit<DateSchema, 'type' | 'className'> {}\n\nexport interface DateState {\n random?: number;\n}\n\nexport class DateField extends React.Component<DateProps, DateState> {\n refreshInterval: ReturnType<typeof setTimeout>;\n\n static defaultProps: Pick<\n DateProps,\n 'placeholder' | 'format' | 'valueFormat' | 'fromNow' | 'updateFrequency'\n > = {\n placeholder: '-',\n format: 'YYYY-MM-DD',\n valueFormat: 'X',\n fromNow: false,\n updateFrequency: 60000\n };\n\n // 动态显示相对时间时,用来触发视图更新\n state: DateState = {\n random: 0\n };\n\n componentDidMount() {\n const {fromNow, updateFrequency} = this.props;\n\n if (fromNow && updateFrequency) {\n this.refreshInterval = setInterval(() => {\n this.setState({\n random: Math.random()\n });\n }, updateFrequency);\n }\n }\n\n componentWillUnmount() {\n clearInterval(this.refreshInterval);\n }\n\n render() {\n const {\n valueFormat,\n format,\n placeholder,\n fromNow,\n className,\n classnames: cx,\n translate: __\n } = this.props;\n let viewValue: React.ReactNode = (\n <span className=\"text-muted\">{placeholder}</span>\n );\n\n const value = getPropValue(this.props);\n\n if (value) {\n let ISODate = moment(value, moment.ISO_8601);\n let NormalDate = moment(value, valueFormat);\n\n viewValue = ISODate.isValid()\n ? ISODate.format(format)\n : NormalDate.isValid()\n ? NormalDate.format(format)\n : false;\n }\n\n if (fromNow) {\n viewValue = moment(viewValue as string).fromNow();\n }\n\n viewValue = !viewValue ? (\n <span className=\"text-danger\">{__('Date.invalid')}</span>\n ) : (\n viewValue\n );\n\n return <span
|
11
|
+
"import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport moment from 'moment';\nimport {BaseSchema} from '../Schema';\nimport {getPropValue} from '../utils/helper';\n\n/**\n * Date 展示渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/date\n */\nexport interface DateSchema extends BaseSchema {\n /**\n * 指定为日期展示类型\n */\n type:\n | 'date'\n | 'datetime'\n | 'time'\n | 'static-date'\n | 'static-datetime'\n | 'static-time';\n\n /**\n * 展示的时间格式,参考 moment 中的格式说明。\n */\n format?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 值的时间格式,参考 moment 中的格式说明。\n */\n valueFormat?: string;\n\n /**\n * 显示成相对时间,比如1分钟前\n */\n fromNow?: boolean;\n\n /**\n * 更新频率, 默认为1分钟\n */\n updateFrequency?: number;\n}\n\nexport interface DateProps\n extends RendererProps,\n Omit<DateSchema, 'type' | 'className'> {}\n\nexport interface DateState {\n random?: number;\n}\n\nexport class DateField extends React.Component<DateProps, DateState> {\n refreshInterval: ReturnType<typeof setTimeout>;\n\n static defaultProps: Pick<\n DateProps,\n 'placeholder' | 'format' | 'valueFormat' | 'fromNow' | 'updateFrequency'\n > = {\n placeholder: '-',\n format: 'YYYY-MM-DD',\n valueFormat: 'X',\n fromNow: false,\n updateFrequency: 60000\n };\n\n // 动态显示相对时间时,用来触发视图更新\n state: DateState = {\n random: 0\n };\n\n componentDidMount() {\n const {fromNow, updateFrequency} = this.props;\n\n if (fromNow && updateFrequency) {\n this.refreshInterval = setInterval(() => {\n this.setState({\n random: Math.random()\n });\n }, updateFrequency);\n }\n }\n\n componentWillUnmount() {\n clearInterval(this.refreshInterval);\n }\n\n render() {\n const {\n valueFormat,\n format,\n placeholder,\n fromNow,\n className,\n classnames: cx,\n translate: __\n } = this.props;\n let viewValue: React.ReactNode = (\n <span className=\"text-muted\">{placeholder}</span>\n );\n\n const value = getPropValue(this.props);\n\n // 主要是给 fromNow 用的\n let date;\n if (value) {\n let ISODate = moment(value, moment.ISO_8601);\n let NormalDate = moment(value, valueFormat);\n\n viewValue = ISODate.isValid()\n ? ISODate.format(format)\n : NormalDate.isValid()\n ? NormalDate.format(format)\n : false;\n\n if (viewValue) {\n date = viewValue as string;\n }\n }\n\n if (fromNow) {\n viewValue = moment(viewValue as string).fromNow();\n }\n\n viewValue = !viewValue ? (\n <span className=\"text-danger\">{__('Date.invalid')}</span>\n ) : (\n viewValue\n );\n\n return (\n <span\n className={cx('DateField', className)}\n title={fromNow ? date : undefined}\n >\n {viewValue}\n </span>\n );\n }\n}\n\n@Renderer({\n type: 'date'\n})\nexport class DateFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM-DD'\n };\n}\n\n@Renderer({\n type: 'datetime'\n})\nexport class DateTimeFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM-DD HH:mm:ss'\n };\n}\n\n@Renderer({\n type: 'time'\n})\nexport class TimeFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'HH:mm'\n };\n}\n@Renderer({\n type: 'month'\n})\nexport class MonthFieldRenderer extends DateField {\n static defaultProps: Partial<DateProps> = {\n ...DateField.defaultProps,\n format: 'YYYY-MM'\n };\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -173,13 +173,18 @@ var NestedSelectControl = /** @class */ (function (_super) {
|
|
173
173
|
};
|
174
174
|
NestedSelectControl.prototype.handleCheck = function (option, index) {
|
175
175
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
176
|
-
var _a, onChange, selectedOptions, joinValues, delimiter, extractValue, withChildren, onlyChildren, cascade, options, stack, valueField, items, value, flattenTreeWithLeafNodes, isEvery, isEvery, toCheck, parent, newValue, isPrevented;
|
176
|
+
var _a, onChange, selectedOptions, joinValues, delimiter, extractValue, withChildren, onlyChildren, cascade, options, onlyLeaf, stack, valueField, items, value, flattenTreeWithLeafNodes, isEvery, isEvery, toCheck, parent, newValue, isPrevented;
|
177
177
|
return (0, tslib_1.__generator)(this, function (_b) {
|
178
178
|
switch (_b.label) {
|
179
179
|
case 0:
|
180
|
-
_a = this.props, onChange = _a.onChange, selectedOptions = _a.selectedOptions, joinValues = _a.joinValues, delimiter = _a.delimiter, extractValue = _a.extractValue, withChildren = _a.withChildren, onlyChildren = _a.onlyChildren, cascade = _a.cascade, options = _a.options;
|
180
|
+
_a = this.props, onChange = _a.onChange, selectedOptions = _a.selectedOptions, joinValues = _a.joinValues, delimiter = _a.delimiter, extractValue = _a.extractValue, withChildren = _a.withChildren, onlyChildren = _a.onlyChildren, cascade = _a.cascade, options = _a.options, onlyLeaf = _a.onlyLeaf;
|
181
181
|
stack = this.state.stack;
|
182
182
|
valueField = this.props.valueField || 'value';
|
183
|
+
if (onlyLeaf
|
184
|
+
&& !Array.isArray(option)
|
185
|
+
&& option.children) {
|
186
|
+
return [2 /*return*/];
|
187
|
+
}
|
183
188
|
if (!Array.isArray(option) &&
|
184
189
|
option.children &&
|
185
190
|
option.children.length &&
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/NestedSelect.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport Overlay from '../../components/Overlay';\nimport Checkbox from '../../components/Checkbox';\nimport PopOver from '../../components/PopOver';\nimport PopUp from '../../components/PopUp';\nimport {Icon} from '../../components/icons';\nimport {\n autobind,\n flattenTree,\n filterTree,\n string2regExp,\n getTreeAncestors,\n getTreeParent,\n ucFirst,\n isMobile,\n createObject\n} from '../../utils/helper';\nimport {\n FormOptionsControl,\n OptionsControl,\n OptionsControlProps\n} from '../Form/Options';\nimport {Option, Options} from '../../components/Select';\nimport {findDOMNode} from 'react-dom';\nimport {ResultBox, Spinner} from '../../components';\nimport xor from 'lodash/xor';\nimport union from 'lodash/union';\nimport compact from 'lodash/compact';\nimport {RootClose} from '../../utils/RootClose';\nimport Cascader from '../../components/Cascader';\nimport {Action} from '../../types';\n\n/**\n * Nested Select\n * 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select\n */\nexport interface NestedSelectControlSchema extends FormOptionsControl {\n type: 'nested-select';\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 弹框的 css 类\n */\n menuClassName?: string;\n\n /**\n * 父子之间是否完全独立。\n */\n cascade?: boolean;\n\n /**\n * 选父级的时候是否把子节点的值也包含在内。\n */\n withChildren?: boolean;\n\n /**\n * 选父级的时候,是否只把子节点的值包含在内\n */\n onlyChildren?: boolean;\n\n /**\n * 单选时只允许选择叶子节点\n */\n onlyLeaf?: boolean;\n\n /**\n * 是否隐藏选择框中已选中节点的祖先节点的文本信息\n */\n hideNodePathLabel?: boolean;\n}\n\nexport interface NestedSelectProps extends OptionsControlProps {\n cascade?: boolean;\n noResultsText?: string;\n withChildren?: boolean;\n onlyChildren?: boolean;\n hideNodePathLabel?: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface NestedSelectState {\n isOpened?: boolean;\n isFocused?: boolean;\n inputValue?: string;\n stack: Array<Array<Option>>;\n}\n\nexport default class NestedSelectControl extends React.Component<\n NestedSelectProps,\n NestedSelectState\n> {\n static defaultProps: Partial<NestedSelectProps> = {\n cascade: false,\n withChildren: false,\n onlyChildren: false,\n onlyLeaf: false,\n searchPromptText: 'Select.searchPromptText',\n noResultsText: 'noResult',\n checkAll: true,\n checkAllLabel: '全选',\n hideNodePathLabel: false\n };\n target: any;\n input: HTMLInputElement;\n state: NestedSelectState = {\n isOpened: false,\n isFocused: false,\n inputValue: '',\n stack: [this.props.options]\n };\n\n @autobind\n domRef(ref: any) {\n this.target = ref;\n }\n\n componentDidUpdate(prevProps: NestedSelectProps) {\n if (prevProps.options !== this.props.options) {\n this.setState({\n stack: [this.props.options]\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n const actionType = action?.actionType as string;\n\n if (!!~['clear', 'reset'].indexOf(actionType)) {\n onChange(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n handleOutClick(e: React.MouseEvent<any>) {\n const {options} = this.props;\n e.defaultPrevented ||\n this.setState({\n isOpened: true\n });\n }\n\n @autobind\n handleResultClear() {\n this.setState({\n inputValue: undefined\n });\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n async removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n let {\n onChange,\n selectedOptions,\n joinValues,\n valueField,\n extractValue,\n delimiter,\n value\n } = this.props;\n\n e && e.stopPropagation();\n\n selectedOptions.splice(index, 1);\n\n if (joinValues) {\n value = (selectedOptions as Options)\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',');\n } else if (extractValue) {\n value = (selectedOptions as Options).map(\n item => item[valueField || 'value']\n );\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n }\n\n @autobind\n renderValue(option: Option, key?: any) {\n const {\n classnames: cx,\n labelField,\n valueField,\n options,\n hideNodePathLabel\n } = this.props;\n const inputValue = this.state.inputValue;\n const regexp = string2regExp(inputValue || '');\n\n if (hideNodePathLabel) {\n return option[labelField || 'label'];\n }\n const ancestors = getTreeAncestors(options, option, true);\n\n return (\n <span\n className={cx('Select-valueLabel')}\n key={key || option[valueField || 'value']}\n >\n {ancestors\n ? ancestors.map((item, index) => {\n const label = item[labelField || 'label'];\n const isEnd = index === ancestors.length - 1;\n const unmatchText = label.split(regexp || '');\n let pointer = 0;\n return (\n <span key={index}>\n {regexp.test(label)\n ? unmatchText.map((text: string, textIndex: number) => {\n const current = pointer;\n pointer += text.length || inputValue?.length || 0;\n return (\n <span\n key={textIndex}\n className={cx({\n 'NestedSelect-optionLabel-highlight': !text\n })}\n >\n {text || label.slice(current, pointer)}\n </span>\n );\n })\n : label}\n {!isEnd && ' > '}\n </span>\n );\n })\n : option[labelField || 'label']}\n </span>\n );\n }\n\n @autobind\n async handleOptionClick(option: Option) {\n const {multiple, onChange, joinValues, extractValue, valueField, onlyLeaf} =\n this.props;\n\n if (multiple) {\n return;\n }\n\n const value = joinValues\n ? option[valueField || 'value']\n : extractValue\n ? option[valueField || 'value']\n : option;\n\n if (value === undefined) {\n return;\n }\n\n if (onlyLeaf && option.children) {\n return;\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n\n isPrevented || this.handleResultClear();\n\n !multiple && this.close();\n }\n\n @autobind\n async handleCheck(option: Option | Options, index?: number) {\n const {\n onChange,\n selectedOptions,\n joinValues,\n delimiter,\n extractValue,\n withChildren,\n onlyChildren,\n cascade,\n options\n } = this.props;\n const {stack} = this.state;\n\n let valueField = this.props.valueField || 'value';\n\n if (\n !Array.isArray(option) &&\n option.children &&\n option.children.length &&\n typeof index === 'number'\n ) {\n if (stack[index]) {\n stack.splice(index + 1, 1, option.children);\n } else {\n stack.push(option.children);\n }\n }\n\n const items = selectedOptions;\n let value: any[];\n /**\n * 打平树且只保留叶节点\n */\n const flattenTreeWithLeafNodes = (option: Option | Options) =>\n compact(\n flattenTree(Array.isArray(option) ? option : [option], node =>\n node.children && node.children.length ? null : node\n )\n );\n\n // 三种情况:\n // 1.全选,option为数组\n // 2.单个选中,且有children\n // 3.单个选中,没有children\n\n if (Array.isArray(option)) {\n if (withChildren) {\n option = flattenTree(option);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n }\n value = items.length === option.length ? [] : (option as Options);\n } else if (Array.isArray(option.children)) {\n if (cascade) {\n value = xor(items, [option]);\n } else if (withChildren) {\n option = flattenTree([option]);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else {\n value = items.filter(item => !~flattenTree([option]).indexOf(item));\n !~items.indexOf(option) && value.push(option);\n }\n } else {\n value = xor(items, [option]);\n }\n\n if (!cascade) {\n let toCheck = option;\n\n while (true) {\n const parent = getTreeParent(options, toCheck as any);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (parent.children.every((child: any) => ~value.indexOf(child))) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index && !withChildren && !onlyChildren) {\n value.splice(index, 1);\n }\n });\n\n if (!onlyChildren) {\n value.push(parent);\n }\n\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n\n const newValue = joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value;\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n\n isPrevented || this.handleResultClear();\n }\n\n allChecked(options: Options): boolean {\n const {selectedOptions, withChildren, onlyChildren} = this.props;\n return options.every(option => {\n if ((withChildren || onlyChildren) && option.children) {\n return this.allChecked(option.children);\n }\n return selectedOptions.some(item => item === option);\n });\n }\n\n partialChecked(options: Options): boolean {\n return options.some(option => {\n const childrenPartialChecked =\n option.children && this.partialChecked(option.children);\n return (\n childrenPartialChecked ||\n this.props.selectedOptions.some(item => item === option)\n );\n });\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n async onFocus(e: any) {\n const {onFocus, disabled} = this.props;\n\n if (!disabled && !this.state.isOpened) {\n this.setState({\n isFocused: true\n });\n\n const isPrevented = await this.dispatchEvent('focus', e);\n isPrevented || (onFocus && onFocus(e));\n }\n }\n\n @autobind\n async onBlur(e: any) {\n const {onBlur} = this.props;\n\n this.setState({\n isFocused: false\n });\n\n const isPrevented = await this.dispatchEvent('blur', e);\n isPrevented || (onBlur && onBlur(e));\n }\n\n @autobind\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n @autobind\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleOutClick(e as any);\n e.preventDefault();\n }\n }\n\n @autobind\n handleInputKeyDown(event: React.KeyboardEvent) {\n const inputValue = this.state.inputValue;\n const {multiple, selectedOptions} = this.props;\n\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n selectedOptions.length &&\n multiple\n ) {\n this.removeItem(selectedOptions.length - 1);\n }\n }\n\n @autobind\n handleInputChange(inputValue: string) {\n const {options, labelField, valueField} = this.props;\n\n const regexp = string2regExp(inputValue);\n\n let filtedOptions =\n inputValue && this.state.isOpened\n ? filterTree(\n options,\n option =>\n regexp.test(option[labelField || 'label']) ||\n regexp.test(option[valueField || 'value']) ||\n !!(option.children && option.children.length),\n 1,\n true\n )\n : options.concat();\n\n this.setState({\n inputValue,\n stack: [filtedOptions]\n });\n }\n\n @autobind\n async handleResultChange(value: Array<Option>) {\n const {\n joinValues,\n extractValue,\n delimiter,\n valueField,\n onChange,\n multiple\n } = this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\n\n if (!multiple && !newValue.length) {\n const isPrevented = await this.dispatchEvent('change', {\n value: ''\n });\n isPrevented || onChange('');\n return;\n }\n\n if (joinValues || extractValue) {\n newValue = value.map(item => item[valueField || 'value']);\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n renderOptions() {\n const {\n multiple,\n selectedOptions,\n classnames: cx,\n options: propOptions,\n disabled,\n checkAll,\n checkAllLabel,\n translate: __,\n labelField,\n menuClassName,\n cascade,\n onlyChildren\n } = this.props;\n const valueField = this.props.valueField || 'value';\n\n const stack = this.state.stack;\n\n let partialChecked = this.partialChecked(propOptions);\n let allChecked = this.allChecked(propOptions);\n\n return (\n <>\n {stack.map((options, index) => (\n <div key={index} className={cx('NestedSelect-menu', menuClassName)}>\n {multiple && checkAll && index === 0 ? (\n <div className={cx('NestedSelect-option', 'checkall')}>\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, options)}\n checked={partialChecked}\n partial={partialChecked && !allChecked}\n ></Checkbox>\n <span onClick={this.handleCheck.bind(this, options)}>\n {__(checkAllLabel)}\n </span>\n </div>\n ) : null}\n\n {options.map((option: Option, idx: number) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n const parentChecked = ancestors?.some(\n item => !!~selectedOptions.indexOf(item)\n );\n const uncheckable = cascade ? false : multiple && parentChecked;\n const parentDisabled = ancestors?.some(item => !!item.disabled);\n\n let nodeDisabled =\n uncheckable || option.disabled || parentDisabled || !!disabled;\n let selfChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n let selfChecked =\n uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !selfChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n selfChecked = true;\n }\n\n return (\n <div\n key={idx}\n className={cx('NestedSelect-option', {\n 'is-active':\n !nodeDisabled &&\n (selfChecked || (!cascade && selfChildrenChecked))\n })}\n onMouseEnter={this.onMouseEnter.bind(this, option, index)}\n >\n {multiple ? (\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, option, index)}\n trueValue={option[valueField]}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n disabled={nodeDisabled}\n ></Checkbox>\n ) : null}\n\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': nodeDisabled\n })}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(option, index)\n : this.handleOptionClick(option))\n }\n >\n {option[labelField || 'label']}\n </div>\n\n {option.children && option.children.length ? (\n <div className={cx('NestedSelect-optionArrowRight')}>\n <Icon icon=\"right-arrow\" className=\"icon\" />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ))}\n </>\n );\n }\n\n renderSearchResult() {\n const {stack, inputValue} = this.state;\n const {\n classnames: cx,\n options: propOptions,\n labelField,\n cascade,\n selectedOptions,\n multiple,\n disabled,\n onlyChildren,\n noResultsText\n } = this.props;\n const regexp = string2regExp(inputValue || '');\n const flattenTreeWithNodes = flattenTree(stack[0]).filter(option => {\n return regexp.test(option[labelField || 'label']);\n });\n\n // 一个stack一个menu\n const resultBody = (\n <div className={cx('NestedSelect-menu')}>\n {flattenTreeWithNodes.length ? (\n flattenTreeWithNodes.map((option, index) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n\n const uncheckable = cascade\n ? false\n : multiple &&\n ancestors?.some(item => !!~selectedOptions.indexOf(item));\n\n let isNodeDisabled =\n uncheckable ||\n option.disabled ||\n !!disabled ||\n ancestors?.some(item => !!item.disabled);\n\n let isChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n\n let isChecked = uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !isChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n isChecked = true;\n }\n\n return (\n <div\n className={cx('NestedSelect-option', {\n 'is-active':\n !isNodeDisabled &&\n (isChecked || (!cascade && isChildrenChecked))\n })}\n key={index}\n >\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': isNodeDisabled\n })}\n onClick={() => {\n !isNodeDisabled &&\n (multiple\n ? this.handleCheck(option, option.value)\n : this.handleOptionClick(option));\n }}\n >\n {this.renderValue(option, option.value)}\n </div>\n </div>\n );\n })\n ) : (\n <div\n className={cx('NestedSelect-option', {\n 'no-result': true\n })}\n >\n {noResultsText}\n </div>\n )}\n </div>\n );\n return resultBody;\n }\n\n onMouseEnter(option: Option, index: number, e: MouseEvent) {\n let {stack} = this.state;\n index = index + 1;\n\n const children = option.children;\n if (children && children.length) {\n if (stack[index]) {\n stack.splice(index, 1, children);\n } else {\n stack.push(children);\n }\n } else {\n stack[index] && stack.splice(index, 1);\n }\n\n this.setState({stack: stack.slice(0, index + 1)});\n }\n\n renderOuter() {\n const {\n popOverContainer,\n translate: __,\n classnames: cx,\n options,\n render\n } = this.props;\n const isSearch = !!this.state.inputValue;\n let noResultsText: any = this.props.noResultsText;\n\n if (noResultsText) {\n noResultsText = render('noResultText', __(noResultsText));\n }\n\n let body = (\n <RootClose disabled={!this.state.isOpened} onRootClose={this.close}>\n {(ref: any) => {\n return (\n <div className={cx('NestedSelect-menuOuter')} ref={ref}>\n {isSearch ? (\n this.renderSearchResult()\n ) : options.length ? (\n this.renderOptions()\n ) : (\n <div className={cx('NestedSelect-noResult')}>\n {noResultsText}\n </div>\n )}\n </div>\n );\n }}\n </RootClose>\n );\n\n return (\n <Overlay\n target={this.getTarget}\n container={popOverContainer || (() => findDOMNode(this))}\n placement={'auto'}\n show\n >\n <PopOver className={cx('NestedSelect-popover')}>{body}</PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n classnames: cx,\n multiple,\n placeholder,\n translate: __,\n inline,\n searchable,\n autoComplete,\n selectedOptions,\n clearable,\n loading,\n borderMode,\n useMobileUI,\n env\n } = this.props;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx('NestedSelectControl', className)}>\n <ResultBox\n useMobileUI={useMobileUI}\n disabled={disabled}\n ref={this.domRef}\n placeholder={__(placeholder || '空')}\n className={cx(`NestedSelect`, {\n 'NestedSelect--inline': inline,\n 'NestedSelect--single': !multiple,\n 'NestedSelect--multi': multiple,\n 'NestedSelect--searchable': searchable,\n 'is-opened': this.state.isOpened,\n 'is-focused': this.state.isFocused,\n [`NestedSelect--border${ucFirst(borderMode)}`]: borderMode\n })}\n result={\n multiple\n ? selectedOptions\n : selectedOptions.length\n ? selectedOptions[0]\n : ''\n }\n onResultClick={this.handleOutClick}\n value={this.state.inputValue}\n onChange={this.handleInputChange}\n onResultChange={this.handleResultChange}\n onClear={this.handleResultClear}\n itemRender={this.renderValue}\n onKeyPress={this.handleKeyPress}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.handleInputKeyDown}\n clearable={clearable}\n hasDropDownArrow={true}\n allowInput={searchable}\n inputPlaceholder={''}\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n {mobileUI ? (\n <PopUp\n className={cx(`NestedSelect-popup`)}\n container={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n isShow={this.state.isOpened}\n onHide={this.close}\n showConfirm={false}\n showClose={false}\n >\n <Cascader\n onClose={this.close}\n {...this.props}\n options={this.props.options.slice()}\n value={selectedOptions}\n />\n </PopUp>\n ) : this.state.isOpened ? (\n this.renderOuter()\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'nested-select'\n})\nexport class NestedSelectControlRenderer extends NestedSelectControl {}\n@OptionsControl({\n type: 'cascader-select'\n})\nexport class CascaderSelectControlRenderer extends NestedSelectControl {}\n"
|
11
|
+
"import React from 'react';\nimport Overlay from '../../components/Overlay';\nimport Checkbox from '../../components/Checkbox';\nimport PopOver from '../../components/PopOver';\nimport PopUp from '../../components/PopUp';\nimport {Icon} from '../../components/icons';\nimport {\n autobind,\n flattenTree,\n filterTree,\n string2regExp,\n getTreeAncestors,\n getTreeParent,\n ucFirst,\n isMobile,\n createObject\n} from '../../utils/helper';\nimport {\n FormOptionsControl,\n OptionsControl,\n OptionsControlProps\n} from '../Form/Options';\nimport {Option, Options} from '../../components/Select';\nimport {findDOMNode} from 'react-dom';\nimport {ResultBox, Spinner} from '../../components';\nimport xor from 'lodash/xor';\nimport union from 'lodash/union';\nimport compact from 'lodash/compact';\nimport {RootClose} from '../../utils/RootClose';\nimport Cascader from '../../components/Cascader';\nimport {Action} from '../../types';\n\n/**\n * Nested Select\n * 文档:https://baidu.gitee.io/amis/docs/components/form/nested-select\n */\nexport interface NestedSelectControlSchema extends FormOptionsControl {\n type: 'nested-select';\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n\n /**\n * 弹框的 css 类\n */\n menuClassName?: string;\n\n /**\n * 父子之间是否完全独立。\n */\n cascade?: boolean;\n\n /**\n * 选父级的时候是否把子节点的值也包含在内。\n */\n withChildren?: boolean;\n\n /**\n * 选父级的时候,是否只把子节点的值包含在内\n */\n onlyChildren?: boolean;\n\n /**\n * 只允许选择叶子节点\n */\n onlyLeaf?: boolean;\n\n /**\n * 是否隐藏选择框中已选中节点的祖先节点的文本信息\n */\n hideNodePathLabel?: boolean;\n}\n\nexport interface NestedSelectProps extends OptionsControlProps {\n cascade?: boolean;\n noResultsText?: string;\n withChildren?: boolean;\n onlyChildren?: boolean;\n hideNodePathLabel?: boolean;\n useMobileUI?: boolean;\n}\n\nexport interface NestedSelectState {\n isOpened?: boolean;\n isFocused?: boolean;\n inputValue?: string;\n stack: Array<Array<Option>>;\n}\n\nexport default class NestedSelectControl extends React.Component<\n NestedSelectProps,\n NestedSelectState\n> {\n static defaultProps: Partial<NestedSelectProps> = {\n cascade: false,\n withChildren: false,\n onlyChildren: false,\n onlyLeaf: false,\n searchPromptText: 'Select.searchPromptText',\n noResultsText: 'noResult',\n checkAll: true,\n checkAllLabel: '全选',\n hideNodePathLabel: false\n };\n target: any;\n input: HTMLInputElement;\n state: NestedSelectState = {\n isOpened: false,\n isFocused: false,\n inputValue: '',\n stack: [this.props.options]\n };\n\n @autobind\n domRef(ref: any) {\n this.target = ref;\n }\n\n componentDidUpdate(prevProps: NestedSelectProps) {\n if (prevProps.options !== this.props.options) {\n this.setState({\n stack: [this.props.options]\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {resetValue, onChange} = this.props;\n const actionType = action?.actionType as string;\n\n if (!!~['clear', 'reset'].indexOf(actionType)) {\n onChange(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n handleOutClick(e: React.MouseEvent<any>) {\n const {options} = this.props;\n e.defaultPrevented ||\n this.setState({\n isOpened: true\n });\n }\n\n @autobind\n handleResultClear() {\n this.setState({\n inputValue: undefined\n });\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n async removeItem(index: number, e?: React.MouseEvent<HTMLElement>) {\n let {\n onChange,\n selectedOptions,\n joinValues,\n valueField,\n extractValue,\n delimiter,\n value\n } = this.props;\n\n e && e.stopPropagation();\n\n selectedOptions.splice(index, 1);\n\n if (joinValues) {\n value = (selectedOptions as Options)\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',');\n } else if (extractValue) {\n value = (selectedOptions as Options).map(\n item => item[valueField || 'value']\n );\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n }\n\n @autobind\n renderValue(option: Option, key?: any) {\n const {\n classnames: cx,\n labelField,\n valueField,\n options,\n hideNodePathLabel\n } = this.props;\n const inputValue = this.state.inputValue;\n const regexp = string2regExp(inputValue || '');\n\n if (hideNodePathLabel) {\n return option[labelField || 'label'];\n }\n const ancestors = getTreeAncestors(options, option, true);\n\n return (\n <span\n className={cx('Select-valueLabel')}\n key={key || option[valueField || 'value']}\n >\n {ancestors\n ? ancestors.map((item, index) => {\n const label = item[labelField || 'label'];\n const isEnd = index === ancestors.length - 1;\n const unmatchText = label.split(regexp || '');\n let pointer = 0;\n return (\n <span key={index}>\n {regexp.test(label)\n ? unmatchText.map((text: string, textIndex: number) => {\n const current = pointer;\n pointer += text.length || inputValue?.length || 0;\n return (\n <span\n key={textIndex}\n className={cx({\n 'NestedSelect-optionLabel-highlight': !text\n })}\n >\n {text || label.slice(current, pointer)}\n </span>\n );\n })\n : label}\n {!isEnd && ' > '}\n </span>\n );\n })\n : option[labelField || 'label']}\n </span>\n );\n }\n\n @autobind\n async handleOptionClick(option: Option) {\n const {multiple, onChange, joinValues, extractValue, valueField, onlyLeaf} =\n this.props;\n\n if (multiple) {\n return;\n }\n\n const value = joinValues\n ? option[valueField || 'value']\n : extractValue\n ? option[valueField || 'value']\n : option;\n\n if (value === undefined) {\n return;\n }\n\n if (onlyLeaf && option.children) {\n return;\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value\n });\n isPrevented || onChange(value);\n\n isPrevented || this.handleResultClear();\n\n !multiple && this.close();\n }\n\n @autobind\n async handleCheck(option: Option | Options, index?: number) {\n const {\n onChange,\n selectedOptions,\n joinValues,\n delimiter,\n extractValue,\n withChildren,\n onlyChildren,\n cascade,\n options,\n onlyLeaf\n } = this.props;\n const {stack} = this.state;\n\n let valueField = this.props.valueField || 'value';\n \n if (\n onlyLeaf\n && !Array.isArray(option)\n && option.children\n ) {\n return;\n }\n\n if (\n !Array.isArray(option) &&\n option.children &&\n option.children.length &&\n typeof index === 'number'\n ) {\n if (stack[index]) {\n stack.splice(index + 1, 1, option.children);\n } else {\n stack.push(option.children);\n }\n }\n\n const items = selectedOptions;\n let value: any[];\n /**\n * 打平树且只保留叶节点\n */\n const flattenTreeWithLeafNodes = (option: Option | Options) =>\n compact(\n flattenTree(Array.isArray(option) ? option : [option], node =>\n node.children && node.children.length ? null : node\n )\n );\n\n // 三种情况:\n // 1.全选,option为数组\n // 2.单个选中,且有children\n // 3.单个选中,没有children\n\n if (Array.isArray(option)) {\n if (withChildren) {\n option = flattenTree(option);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n }\n value = items.length === option.length ? [] : (option as Options);\n } else if (Array.isArray(option.children)) {\n if (cascade) {\n value = xor(items, [option]);\n } else if (withChildren) {\n option = flattenTree([option]);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else if (onlyChildren) {\n option = flattenTreeWithLeafNodes(option);\n const isEvery = (option as Options).every(opt => !!~items.indexOf(opt));\n value = (isEvery ? xor : union)(items, option as any);\n } else {\n value = items.filter(item => !~flattenTree([option]).indexOf(item));\n !~items.indexOf(option) && value.push(option);\n }\n } else {\n value = xor(items, [option]);\n }\n\n if (!cascade) {\n let toCheck = option;\n\n while (true) {\n const parent = getTreeParent(options, toCheck as any);\n if (parent?.value) {\n // 如果所有孩子节点都勾选了,应该自动勾选父级。\n\n if (parent.children.every((child: any) => ~value.indexOf(child))) {\n parent.children.forEach((child: any) => {\n const index = value.indexOf(child);\n if (~index && !withChildren && !onlyChildren) {\n value.splice(index, 1);\n }\n });\n\n if (!onlyChildren) {\n value.push(parent);\n }\n\n toCheck = parent;\n continue;\n }\n }\n break;\n }\n }\n\n const newValue = joinValues\n ? value.map(item => item[valueField as string]).join(delimiter)\n : extractValue\n ? value.map(item => item[valueField as string])\n : value;\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n\n isPrevented || this.handleResultClear();\n }\n\n allChecked(options: Options): boolean {\n const {selectedOptions, withChildren, onlyChildren} = this.props;\n return options.every(option => {\n if ((withChildren || onlyChildren) && option.children) {\n return this.allChecked(option.children);\n }\n return selectedOptions.some(item => item === option);\n });\n }\n\n partialChecked(options: Options): boolean {\n return options.some(option => {\n const childrenPartialChecked =\n option.children && this.partialChecked(option.children);\n return (\n childrenPartialChecked ||\n this.props.selectedOptions.some(item => item === option)\n );\n });\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n async onFocus(e: any) {\n const {onFocus, disabled} = this.props;\n\n if (!disabled && !this.state.isOpened) {\n this.setState({\n isFocused: true\n });\n\n const isPrevented = await this.dispatchEvent('focus', e);\n isPrevented || (onFocus && onFocus(e));\n }\n }\n\n @autobind\n async onBlur(e: any) {\n const {onBlur} = this.props;\n\n this.setState({\n isFocused: false\n });\n\n const isPrevented = await this.dispatchEvent('blur', e);\n isPrevented || (onBlur && onBlur(e));\n }\n\n @autobind\n getTarget() {\n if (!this.target) {\n this.target = findDOMNode(this) as HTMLElement;\n }\n return this.target as HTMLElement;\n }\n\n @autobind\n handleKeyPress(e: React.KeyboardEvent) {\n if (e.key === ' ') {\n this.handleOutClick(e as any);\n e.preventDefault();\n }\n }\n\n @autobind\n handleInputKeyDown(event: React.KeyboardEvent) {\n const inputValue = this.state.inputValue;\n const {multiple, selectedOptions} = this.props;\n\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n selectedOptions.length &&\n multiple\n ) {\n this.removeItem(selectedOptions.length - 1);\n }\n }\n\n @autobind\n handleInputChange(inputValue: string) {\n const {options, labelField, valueField} = this.props;\n\n const regexp = string2regExp(inputValue);\n\n let filtedOptions =\n inputValue && this.state.isOpened\n ? filterTree(\n options,\n option =>\n regexp.test(option[labelField || 'label']) ||\n regexp.test(option[valueField || 'value']) ||\n !!(option.children && option.children.length),\n 1,\n true\n )\n : options.concat();\n\n this.setState({\n inputValue,\n stack: [filtedOptions]\n });\n }\n\n @autobind\n async handleResultChange(value: Array<Option>) {\n const {\n joinValues,\n extractValue,\n delimiter,\n valueField,\n onChange,\n multiple\n } = this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\n\n if (!multiple && !newValue.length) {\n const isPrevented = await this.dispatchEvent('change', {\n value: ''\n });\n isPrevented || onChange('');\n return;\n }\n\n if (joinValues || extractValue) {\n newValue = value.map(item => item[valueField || 'value']);\n }\n\n if (joinValues) {\n newValue = newValue.join(delimiter || ',');\n }\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValue\n });\n isPrevented || onChange(newValue);\n }\n\n renderOptions() {\n const {\n multiple,\n selectedOptions,\n classnames: cx,\n options: propOptions,\n disabled,\n checkAll,\n checkAllLabel,\n translate: __,\n labelField,\n menuClassName,\n cascade,\n onlyChildren\n } = this.props;\n const valueField = this.props.valueField || 'value';\n\n const stack = this.state.stack;\n\n let partialChecked = this.partialChecked(propOptions);\n let allChecked = this.allChecked(propOptions);\n\n return (\n <>\n {stack.map((options, index) => (\n <div key={index} className={cx('NestedSelect-menu', menuClassName)}>\n {multiple && checkAll && index === 0 ? (\n <div className={cx('NestedSelect-option', 'checkall')}>\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, options)}\n checked={partialChecked}\n partial={partialChecked && !allChecked}\n ></Checkbox>\n <span onClick={this.handleCheck.bind(this, options)}>\n {__(checkAllLabel)}\n </span>\n </div>\n ) : null}\n\n {options.map((option: Option, idx: number) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n const parentChecked = ancestors?.some(\n item => !!~selectedOptions.indexOf(item)\n );\n const uncheckable = cascade ? false : multiple && parentChecked;\n const parentDisabled = ancestors?.some(item => !!item.disabled);\n\n let nodeDisabled =\n uncheckable || option.disabled || parentDisabled || !!disabled;\n let selfChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n let selfChecked =\n uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !selfChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n selfChecked = true;\n }\n\n return (\n <div\n key={idx}\n className={cx('NestedSelect-option', {\n 'is-active':\n !nodeDisabled &&\n (selfChecked || (!cascade && selfChildrenChecked))\n })}\n onMouseEnter={this.onMouseEnter.bind(this, option, index)}\n >\n {multiple ? (\n <Checkbox\n size=\"sm\"\n onChange={this.handleCheck.bind(this, option, index)}\n trueValue={option[valueField]}\n checked={selfChecked || (!cascade && selfChildrenChecked)}\n partial={!selfChecked}\n disabled={nodeDisabled}\n ></Checkbox>\n ) : null}\n\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': nodeDisabled\n })}\n onClick={() =>\n !nodeDisabled &&\n (multiple\n ? this.handleCheck(option, index)\n : this.handleOptionClick(option))\n }\n >\n {option[labelField || 'label']}\n </div>\n\n {option.children && option.children.length ? (\n <div className={cx('NestedSelect-optionArrowRight')}>\n <Icon icon=\"right-arrow\" className=\"icon\" />\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n ))}\n </>\n );\n }\n\n renderSearchResult() {\n const {stack, inputValue} = this.state;\n const {\n classnames: cx,\n options: propOptions,\n labelField,\n cascade,\n selectedOptions,\n multiple,\n disabled,\n onlyChildren,\n noResultsText\n } = this.props;\n const regexp = string2regExp(inputValue || '');\n const flattenTreeWithNodes = flattenTree(stack[0]).filter(option => {\n return regexp.test(option[labelField || 'label']);\n });\n\n // 一个stack一个menu\n const resultBody = (\n <div className={cx('NestedSelect-menu')}>\n {flattenTreeWithNodes.length ? (\n flattenTreeWithNodes.map((option, index) => {\n const ancestors = getTreeAncestors(propOptions, option as any);\n\n const uncheckable = cascade\n ? false\n : multiple &&\n ancestors?.some(item => !!~selectedOptions.indexOf(item));\n\n let isNodeDisabled =\n uncheckable ||\n option.disabled ||\n !!disabled ||\n ancestors?.some(item => !!item.disabled);\n\n let isChildrenChecked = !!(\n option.children && this.partialChecked(option.children)\n );\n\n let isChecked = uncheckable || !!~selectedOptions.indexOf(option);\n\n if (\n !isChecked &&\n onlyChildren &&\n option.children &&\n this.allChecked(option.children)\n ) {\n isChecked = true;\n }\n\n return (\n <div\n className={cx('NestedSelect-option', {\n 'is-active':\n !isNodeDisabled &&\n (isChecked || (!cascade && isChildrenChecked))\n })}\n key={index}\n >\n <div\n className={cx('NestedSelect-optionLabel', {\n 'is-disabled': isNodeDisabled\n })}\n onClick={() => {\n !isNodeDisabled &&\n (multiple\n ? this.handleCheck(option, option.value)\n : this.handleOptionClick(option));\n }}\n >\n {this.renderValue(option, option.value)}\n </div>\n </div>\n );\n })\n ) : (\n <div\n className={cx('NestedSelect-option', {\n 'no-result': true\n })}\n >\n {noResultsText}\n </div>\n )}\n </div>\n );\n return resultBody;\n }\n\n onMouseEnter(option: Option, index: number, e: MouseEvent) {\n let {stack} = this.state;\n index = index + 1;\n\n const children = option.children;\n if (children && children.length) {\n if (stack[index]) {\n stack.splice(index, 1, children);\n } else {\n stack.push(children);\n }\n } else {\n stack[index] && stack.splice(index, 1);\n }\n\n this.setState({stack: stack.slice(0, index + 1)});\n }\n\n renderOuter() {\n const {\n popOverContainer,\n translate: __,\n classnames: cx,\n options,\n render\n } = this.props;\n const isSearch = !!this.state.inputValue;\n let noResultsText: any = this.props.noResultsText;\n\n if (noResultsText) {\n noResultsText = render('noResultText', __(noResultsText));\n }\n\n let body = (\n <RootClose disabled={!this.state.isOpened} onRootClose={this.close}>\n {(ref: any) => {\n return (\n <div className={cx('NestedSelect-menuOuter')} ref={ref}>\n {isSearch ? (\n this.renderSearchResult()\n ) : options.length ? (\n this.renderOptions()\n ) : (\n <div className={cx('NestedSelect-noResult')}>\n {noResultsText}\n </div>\n )}\n </div>\n );\n }}\n </RootClose>\n );\n\n return (\n <Overlay\n target={this.getTarget}\n container={popOverContainer || (() => findDOMNode(this))}\n placement={'auto'}\n show\n >\n <PopOver className={cx('NestedSelect-popover')}>{body}</PopOver>\n </Overlay>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n classnames: cx,\n multiple,\n placeholder,\n translate: __,\n inline,\n searchable,\n autoComplete,\n selectedOptions,\n clearable,\n loading,\n borderMode,\n useMobileUI,\n env\n } = this.props;\n\n const mobileUI = useMobileUI && isMobile();\n return (\n <div className={cx('NestedSelectControl', className)}>\n <ResultBox\n useMobileUI={useMobileUI}\n disabled={disabled}\n ref={this.domRef}\n placeholder={__(placeholder || '空')}\n className={cx(`NestedSelect`, {\n 'NestedSelect--inline': inline,\n 'NestedSelect--single': !multiple,\n 'NestedSelect--multi': multiple,\n 'NestedSelect--searchable': searchable,\n 'is-opened': this.state.isOpened,\n 'is-focused': this.state.isFocused,\n [`NestedSelect--border${ucFirst(borderMode)}`]: borderMode\n })}\n result={\n multiple\n ? selectedOptions\n : selectedOptions.length\n ? selectedOptions[0]\n : ''\n }\n onResultClick={this.handleOutClick}\n value={this.state.inputValue}\n onChange={this.handleInputChange}\n onResultChange={this.handleResultChange}\n onClear={this.handleResultClear}\n itemRender={this.renderValue}\n onKeyPress={this.handleKeyPress}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.handleInputKeyDown}\n clearable={clearable}\n hasDropDownArrow={true}\n allowInput={searchable}\n inputPlaceholder={''}\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n {mobileUI ? (\n <PopUp\n className={cx(`NestedSelect-popup`)}\n container={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n isShow={this.state.isOpened}\n onHide={this.close}\n showConfirm={false}\n showClose={false}\n >\n <Cascader\n onClose={this.close}\n {...this.props}\n options={this.props.options.slice()}\n value={selectedOptions}\n />\n </PopUp>\n ) : this.state.isOpened ? (\n this.renderOuter()\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'nested-select'\n})\nexport class NestedSelectControlRenderer extends NestedSelectControl {}\n@OptionsControl({\n type: 'cascader-select'\n})\nexport class CascaderSelectControlRenderer extends NestedSelectControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { OptionsControlProps } from './Options';
|
3
3
|
import { BaseTransferRenderer, TransferControlSchema } from './Transfer';
|
4
|
+
import { Option } from '../../components/Select';
|
4
5
|
import { ItemRenderStates } from '../../components/Selection';
|
5
6
|
/**
|
6
7
|
* TabsTransfer
|
@@ -11,7 +12,11 @@ export interface TabsTransferControlSchema extends Omit<TransferControlSchema, '
|
|
11
12
|
}
|
12
13
|
export interface TabsTransferProps extends OptionsControlProps, Omit<TabsTransferControlSchema, 'type' | 'options' | 'inputClassName' | 'className' | 'descriptionClassName'> {
|
13
14
|
}
|
14
|
-
export declare class
|
15
|
+
export declare class BaseTabsTransferRenderer<T extends OptionsControlProps = TabsTransferProps> extends BaseTransferRenderer<T> {
|
16
|
+
handleTabSearch(term: string, option: Option, cancelExecutor: Function): Promise<any[]>;
|
17
|
+
handleChange(value: Array<Option> | Option, optionModified?: boolean): Promise<void>;
|
18
|
+
}
|
19
|
+
export declare class TabsTransferRenderer extends BaseTabsTransferRenderer<TabsTransferProps> {
|
15
20
|
optionItemRender(option: any, states: ItemRenderStates): JSX.Element;
|
16
21
|
render(): JSX.Element;
|
17
22
|
}
|
@@ -1,14 +1,163 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.TabsTransferRenderer = void 0;
|
3
|
+
exports.TabsTransferRenderer = exports.BaseTabsTransferRenderer = void 0;
|
4
4
|
var tslib_1 = require("tslib");
|
5
5
|
var Options_1 = require("./Options");
|
6
6
|
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
7
|
+
var find_1 = (0, tslib_1.__importDefault)(require("lodash/find"));
|
7
8
|
var Spinner_1 = (0, tslib_1.__importDefault)(require("../../components/Spinner"));
|
8
9
|
var Transfer_1 = require("./Transfer");
|
9
10
|
var TabsTransfer_1 = (0, tslib_1.__importDefault)(require("../../components/TabsTransfer"));
|
11
|
+
var Select_1 = require("../../components/Select");
|
10
12
|
var helper_1 = require("../../utils/helper");
|
11
13
|
var Selection_1 = require("../../components/Selection");
|
14
|
+
var BaseTabsTransferRenderer = /** @class */ (function (_super) {
|
15
|
+
(0, tslib_1.__extends)(BaseTabsTransferRenderer, _super);
|
16
|
+
function BaseTabsTransferRenderer() {
|
17
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
18
|
+
}
|
19
|
+
BaseTabsTransferRenderer.prototype.handleTabSearch = function (term, option, cancelExecutor) {
|
20
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
21
|
+
var _a, options, labelField, valueField, env, data, searchApi, payload, result, e_1, regexp_1;
|
22
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
23
|
+
switch (_b.label) {
|
24
|
+
case 0:
|
25
|
+
_a = this.props, options = _a.options, labelField = _a.labelField, valueField = _a.valueField, env = _a.env, data = _a.data;
|
26
|
+
searchApi = option.searchApi;
|
27
|
+
if (!searchApi) return [3 /*break*/, 5];
|
28
|
+
_b.label = 1;
|
29
|
+
case 1:
|
30
|
+
_b.trys.push([1, 3, , 4]);
|
31
|
+
return [4 /*yield*/, env.fetcher(searchApi, (0, helper_1.createObject)(data, { term: term }), {
|
32
|
+
cancelExecutor: cancelExecutor
|
33
|
+
})];
|
34
|
+
case 2:
|
35
|
+
payload = _b.sent();
|
36
|
+
if (!payload.ok) {
|
37
|
+
throw new Error(payload.msg || '搜索请求异常');
|
38
|
+
}
|
39
|
+
result = payload.data.options || payload.data.items || payload.data;
|
40
|
+
if (!Array.isArray(result)) {
|
41
|
+
throw new Error('CRUD.invalidArray');
|
42
|
+
}
|
43
|
+
return [2 /*return*/, result.map(function (item) {
|
44
|
+
var resolved = null;
|
45
|
+
var value = item[valueField || 'value'];
|
46
|
+
// 只有 value 值有意义的时候,再去找;否则直接返回
|
47
|
+
if (Array.isArray(options) && value !== null && value !== undefined) {
|
48
|
+
resolved = (0, find_1.default)(options, (0, Select_1.optionValueCompare)(value, valueField));
|
49
|
+
}
|
50
|
+
return resolved || item;
|
51
|
+
})];
|
52
|
+
case 3:
|
53
|
+
e_1 = _b.sent();
|
54
|
+
if (!env.isCancel(e_1)) {
|
55
|
+
env.notify('error', e_1.message);
|
56
|
+
}
|
57
|
+
return [2 /*return*/, []];
|
58
|
+
case 4: return [3 /*break*/, 6];
|
59
|
+
case 5:
|
60
|
+
if (term) {
|
61
|
+
regexp_1 = (0, helper_1.string2regExp)(term);
|
62
|
+
return [2 /*return*/, (0, helper_1.filterTree)(options, function (option) {
|
63
|
+
return !!((Array.isArray(option.children) && option.children.length) ||
|
64
|
+
(option[valueField || 'value'] &&
|
65
|
+
(regexp_1.test(option[labelField || 'label']) ||
|
66
|
+
regexp_1.test(option[valueField || 'value']))));
|
67
|
+
}, 0, true)];
|
68
|
+
}
|
69
|
+
else {
|
70
|
+
return [2 /*return*/, options];
|
71
|
+
}
|
72
|
+
_b.label = 6;
|
73
|
+
case 6: return [2 /*return*/];
|
74
|
+
}
|
75
|
+
});
|
76
|
+
});
|
77
|
+
};
|
78
|
+
BaseTabsTransferRenderer.prototype.handleChange = function (value, optionModified) {
|
79
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
80
|
+
var _a, onChange, joinValues, delimiter, valueField, extractValue, options, dispatchEvent, setOptions, __, newValue, newOptions, UN_MATCH_RESULT, rendererEvent;
|
81
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
82
|
+
switch (_b.label) {
|
83
|
+
case 0:
|
84
|
+
_a = this.props, onChange = _a.onChange, joinValues = _a.joinValues, delimiter = _a.delimiter, valueField = _a.valueField, extractValue = _a.extractValue, options = _a.options, dispatchEvent = _a.dispatchEvent, setOptions = _a.setOptions, __ = _a.translate;
|
85
|
+
newValue = value;
|
86
|
+
newOptions = options.concat();
|
87
|
+
UN_MATCH_RESULT = 'UN_MATCH_RESULT';
|
88
|
+
if (Array.isArray(value)) {
|
89
|
+
newValue = value.map(function (item) {
|
90
|
+
var indexes = (0, helper_1.findTreeIndex)(options, (0, Select_1.optionValueCompare)(item[valueField || 'value'], valueField || 'value'));
|
91
|
+
// 这里主要是把查询出来的没有匹配的搜索的结果(一般是DEFFER时)聚合在一个分类下
|
92
|
+
if (!indexes) {
|
93
|
+
var searchIndexes = (0, helper_1.findTreeIndex)(newOptions, function (item) { return item.value === UN_MATCH_RESULT; });
|
94
|
+
if (!searchIndexes) {
|
95
|
+
newOptions.push({
|
96
|
+
label: __('searchResult'),
|
97
|
+
value: UN_MATCH_RESULT,
|
98
|
+
visible: false,
|
99
|
+
children: [item]
|
100
|
+
});
|
101
|
+
}
|
102
|
+
else {
|
103
|
+
var origin = (0, helper_1.getTree)(newOptions, searchIndexes);
|
104
|
+
if (origin === null || origin === void 0 ? void 0 : origin.children) {
|
105
|
+
origin.children.push(item);
|
106
|
+
newOptions = (0, helper_1.spliceTree)(newOptions, searchIndexes, 1, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, origin), item));
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
else if (optionModified) {
|
111
|
+
var origin = (0, helper_1.getTree)(newOptions, indexes);
|
112
|
+
newOptions = (0, helper_1.spliceTree)(newOptions, indexes, 1, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, origin), item));
|
113
|
+
}
|
114
|
+
return joinValues || extractValue
|
115
|
+
? item[valueField || 'value']
|
116
|
+
: item;
|
117
|
+
});
|
118
|
+
if (joinValues) {
|
119
|
+
newValue = newValue.join(delimiter || ',');
|
120
|
+
}
|
121
|
+
}
|
122
|
+
else if (value) {
|
123
|
+
newValue =
|
124
|
+
joinValues || extractValue
|
125
|
+
? value[valueField || 'value']
|
126
|
+
: value;
|
127
|
+
}
|
128
|
+
(newOptions.length > options.length || optionModified) &&
|
129
|
+
setOptions(newOptions, true);
|
130
|
+
return [4 /*yield*/, dispatchEvent('change', {
|
131
|
+
value: newValue,
|
132
|
+
options: options
|
133
|
+
})];
|
134
|
+
case 1:
|
135
|
+
rendererEvent = _b.sent();
|
136
|
+
if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
|
137
|
+
return [2 /*return*/];
|
138
|
+
}
|
139
|
+
onChange(newValue);
|
140
|
+
return [2 /*return*/];
|
141
|
+
}
|
142
|
+
});
|
143
|
+
});
|
144
|
+
};
|
145
|
+
var _a, _b, _c, _d;
|
146
|
+
(0, tslib_1.__decorate)([
|
147
|
+
helper_1.autobind,
|
148
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
149
|
+
(0, tslib_1.__metadata)("design:paramtypes", [String, typeof (_a = typeof Select_1.Option !== "undefined" && Select_1.Option) === "function" ? _a : Object, typeof (_b = typeof Function !== "undefined" && Function) === "function" ? _b : Object]),
|
150
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
151
|
+
], BaseTabsTransferRenderer.prototype, "handleTabSearch", null);
|
152
|
+
(0, tslib_1.__decorate)([
|
153
|
+
helper_1.autobind,
|
154
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
155
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Boolean]),
|
156
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
157
|
+
], BaseTabsTransferRenderer.prototype, "handleChange", null);
|
158
|
+
return BaseTabsTransferRenderer;
|
159
|
+
}(Transfer_1.BaseTransferRenderer));
|
160
|
+
exports.BaseTabsTransferRenderer = BaseTabsTransferRenderer;
|
12
161
|
var TabsTransferRenderer = /** @class */ (function (_super) {
|
13
162
|
(0, tslib_1.__extends)(TabsTransferRenderer, _super);
|
14
163
|
function TabsTransferRenderer() {
|
@@ -25,16 +174,16 @@ var TabsTransferRenderer = /** @class */ (function (_super) {
|
|
25
174
|
return Selection_1.BaseSelection.itemRender(option, states);
|
26
175
|
};
|
27
176
|
TabsTransferRenderer.prototype.render = function () {
|
28
|
-
var _a = this.props, className = _a.className, cx = _a.classnames, options = _a.options, selectedOptions = _a.selectedOptions, sortable = _a.sortable, loading = _a.loading,
|
177
|
+
var _a = this.props, className = _a.className, cx = _a.classnames, options = _a.options, selectedOptions = _a.selectedOptions, sortable = _a.sortable, loading = _a.loading, searchResultMode = _a.searchResultMode, showArrow = _a.showArrow, deferLoad = _a.deferLoad, leftDeferLoad = _a.leftDeferLoad, disabled = _a.disabled, selectTitle = _a.selectTitle, resultTitle = _a.resultTitle;
|
29
178
|
return (react_1.default.createElement("div", { className: cx('TabsTransferControl', className) },
|
30
|
-
react_1.default.createElement(TabsTransfer_1.default, { value: selectedOptions, disabled: disabled, options: options, onChange: this.handleChange, option2value: this.option2value, sortable: sortable, searchResultMode: searchResultMode, onSearch:
|
179
|
+
react_1.default.createElement(TabsTransfer_1.default, { value: selectedOptions, disabled: disabled, options: options, onChange: this.handleChange, option2value: this.option2value, sortable: sortable, searchResultMode: searchResultMode, onSearch: this.handleTabSearch, showArrow: showArrow, onDeferLoad: deferLoad, onLeftDeferLoad: leftDeferLoad, selectTitle: selectTitle, resultTitle: resultTitle, optionItemRender: this.optionItemRender, resultItemRender: this.resultItemRender }),
|
31
180
|
react_1.default.createElement(Spinner_1.default, { overlay: true, key: "info", show: loading })));
|
32
181
|
};
|
33
|
-
var
|
182
|
+
var _e;
|
34
183
|
(0, tslib_1.__decorate)([
|
35
184
|
helper_1.autobind,
|
36
185
|
(0, tslib_1.__metadata)("design:type", Function),
|
37
|
-
(0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (
|
186
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (_e = typeof Selection_1.ItemRenderStates !== "undefined" && Selection_1.ItemRenderStates) === "function" ? _e : Object]),
|
38
187
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
39
188
|
], TabsTransferRenderer.prototype, "optionItemRender", null);
|
40
189
|
TabsTransferRenderer = (0, tslib_1.__decorate)([
|
@@ -43,6 +192,6 @@ var TabsTransferRenderer = /** @class */ (function (_super) {
|
|
43
192
|
})
|
44
193
|
], TabsTransferRenderer);
|
45
194
|
return TabsTransferRenderer;
|
46
|
-
}(
|
195
|
+
}(BaseTabsTransferRenderer));
|
47
196
|
exports.TabsTransferRenderer = TabsTransferRenderer;
|
48
197
|
//# sourceMappingURL=./renderers/Form/TabsTransfer.js.map
|