amis 1.9.1-beta.21 → 1.9.1-beta.24
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/AssociatedSelection.d.ts +40 -40
- package/lib/components/Badge.d.ts +1 -1
- package/lib/components/Badge.js.map +1 -1
- package/lib/components/ChainedSelection.d.ts +40 -40
- package/lib/components/GroupedSelection.d.ts +40 -40
- package/lib/components/GroupedSelection.js +2 -3
- package/lib/components/GroupedSelection.js.map +2 -2
- package/lib/components/PickerContainer.d.ts +0 -1
- package/lib/components/PickerContainer.js +4 -4
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/ResultBox.js +3 -1
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/ResultList.d.ts +53 -43
- package/lib/components/ResultList.js +22 -34
- package/lib/components/ResultList.js.map +2 -2
- package/lib/components/ResultTableList.d.ts +40 -40
- package/lib/components/ResultTreeList.d.ts +40 -40
- package/lib/components/Select.js +10 -6
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Selection.d.ts +40 -41
- package/lib/components/Selection.js.map +2 -2
- package/lib/components/TableSelection.d.ts +40 -40
- package/lib/components/TabsTransfer.d.ts +2 -2
- package/lib/components/TabsTransfer.js.map +1 -1
- package/lib/components/Transfer.d.ts +40 -40
- package/lib/components/Transfer.js +1 -1
- package/lib/components/Transfer.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +40 -40
- package/lib/components/TreeSelection.d.ts +40 -40
- package/lib/components/TreeSelection.js +2 -3
- package/lib/components/TreeSelection.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +45 -45
- package/lib/components/formula/Editor.js +16 -11
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +85 -40
- package/lib/components/formula/Picker.js +12 -6
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/formula/VariableList.d.ts +0 -2
- package/lib/components/formula/VariableList.js +5 -15
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/index.d.ts +1 -3
- package/lib/components/index.js +1 -5
- package/lib/components/index.js.map +2 -2
- package/lib/components/schema-editor/SchemaVariableList.d.ts +0 -1
- package/lib/components/schema-editor/SchemaVariableList.js +2 -2
- package/lib/components/schema-editor/SchemaVariableList.js.map +2 -2
- package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +0 -1
- package/lib/components/schema-editor/SchemaVariableListPicker.js +2 -2
- package/lib/components/schema-editor/SchemaVariableListPicker.js.map +2 -2
- package/lib/helper.css.map +1 -1
- package/lib/index.js +1 -1
- package/lib/renderers/CRUD.js +3 -3
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +66 -20
- package/lib/renderers/Form/Editor.d.ts +66 -20
- package/lib/renderers/Form/Group.js +1 -1
- package/lib/renderers/Form/Group.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +5 -5
- package/lib/renderers/Form/InputFormula.js +4 -3
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputTag.d.ts +1 -1
- package/lib/renderers/Form/InputTag.js.map +1 -1
- package/lib/renderers/Form/Options.js +7 -7
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +6 -1
- package/lib/renderers/Form/Select.js +3 -1
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +0 -1
- package/lib/renderers/Form/TreeSelect.js +1 -9
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/index.js +9 -4
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Table/exportExcel.js +1 -1
- package/lib/renderers/Table/exportExcel.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +2 -0
- package/lib/renderers/Table/index.js +37 -5
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tpl.d.ts +4 -0
- package/lib/renderers/Tpl.js +6 -3
- package/lib/renderers/Tpl.js.map +2 -2
- package/lib/store/combo.d.ts +72 -22
- package/lib/store/form.d.ts +30 -9
- package/lib/store/form.js +28 -10
- package/lib/store/form.js.map +2 -2
- package/lib/store/formItem.d.ts +3 -1
- package/lib/store/formItem.js +3 -5
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/table.d.ts +60 -18
- package/lib/themes/ang-ie11.css +33 -9
- package/lib/themes/ang.css +27 -9
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +33 -9
- package/lib/themes/antd.css +27 -9
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +35 -15
- package/lib/themes/cxd.css +31 -17
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +33 -9
- package/lib/themes/dark.css +27 -9
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +35 -15
- package/lib/themes/default.css +31 -17
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/formula.js +2 -3
- package/lib/utils/formula.js.map +2 -2
- package/lib/utils/helper.js +1 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +22 -16
- package/scss/_mixins.scss +1 -1
- package/scss/components/form/_date.scss +9 -10
- package/scss/components/form/_select.scss +14 -0
- package/scss/components/form/_transfer.scss +1 -2
- package/scss/themes/cxd.scss +4 -9
- package/sdk/ang-ie11.css +36 -9
- package/sdk/ang.css +30 -9
- package/sdk/antd-ie11.css +36 -9
- package/sdk/antd.css +30 -9
- 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 +38 -16
- package/sdk/cxd.css +34 -18
- package/sdk/dark-ie11.css +36 -9
- package/sdk/dark.css +30 -9
- package/sdk/exceljs.js +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 +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +38 -16
- package/sdk/sdk.css +34 -18
- package/sdk/sdk.js +1356 -1354
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/components/Badge.tsx +1 -1
- package/src/components/GroupedSelection.tsx +2 -3
- package/src/components/PickerContainer.tsx +8 -13
- package/src/components/ResultBox.tsx +3 -1
- package/src/components/ResultList.tsx +51 -48
- package/src/components/Select.tsx +16 -8
- package/src/components/Selection.tsx +0 -1
- package/src/components/TabsTransfer.tsx +2 -2
- package/src/components/Transfer.tsx +4 -0
- package/src/components/TreeSelection.tsx +1 -2
- package/src/components/formula/Editor.tsx +51 -38
- package/src/components/formula/Picker.tsx +26 -7
- package/src/components/formula/VariableList.tsx +2 -36
- package/src/components/index.tsx +0 -4
- package/src/components/schema-editor/SchemaVariableList.tsx +2 -4
- package/src/components/schema-editor/SchemaVariableListPicker.tsx +1 -4
- package/src/renderers/CRUD.tsx +3 -3
- package/src/renderers/Form/Group.tsx +1 -1
- package/src/renderers/Form/InputFormula.tsx +11 -10
- package/src/renderers/Form/InputTag.tsx +1 -1
- package/src/renderers/Form/Options.tsx +7 -9
- package/src/renderers/Form/Select.tsx +10 -2
- package/src/renderers/Form/TreeSelect.tsx +14 -16
- package/src/renderers/Form/index.tsx +13 -2
- package/src/renderers/Table/exportExcel.ts +1 -1
- package/src/renderers/Table/index.tsx +42 -6
- package/src/renderers/Tpl.tsx +11 -1
- package/src/store/form.ts +31 -24
- package/src/store/formItem.ts +65 -52
- package/src/utils/formula.ts +2 -2
- package/src/utils/helper.ts +2 -2
@@ -8,6 +8,6 @@
|
|
8
8
|
"names": [],
|
9
9
|
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {\n OptionsControl,\n OptionsControlProps,\n Option,\n FormOptionsControl\n} from './Options';\nimport Downshift from 'downshift';\nimport find from 'lodash/find';\nimport {findDOMNode} from 'react-dom';\nimport ResultBox from '../../components/ResultBox';\nimport {autobind, filterTree, createObject} from '../../utils/helper';\nimport Spinner from '../../components/Spinner';\nimport Overlay from '../../components/Overlay';\nimport PopOver from '../../components/PopOver';\nimport ListMenu from '../../components/ListMenu';\nimport {Action} from '../../types';\n\n/**\n * Tag 输入框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/tag\n */\nexport interface TagControlSchema extends FormOptionsControl {\n type: 'input-tag';\n\n /**\n * 选项提示信息\n */\n optionsTip?: string;\n\n /**\n * 是否为下拉模式\n */\n dropdown?: boolean;\n\n /**\n * 标签的最大展示数量,超出数量后以收纳浮层的方式展示,仅在多选模式开启后生效\n */\n maxTagCount?: number;\n\n /**\n * 收纳标签的Popover配置\n */\n overflowTagPopover: object;\n}\n\n// declare function matchSorter(items:Array<any>, input:any, options:any): Array<any>;\n\nexport interface TagProps extends OptionsControlProps {\n placeholder?: string;\n clearable: boolean;\n resetValue?: any;\n optionsTip: string;\n dropdown?: boolean;\n}\n\nexport interface TagState {\n inputValue: string;\n isFocused?: boolean;\n isOpened?: boolean;\n}\n\nexport default class TagControl extends React.PureComponent<\n TagProps,\n TagState\n> {\n input: React.RefObject<any> = React.createRef();\n\n static defaultProps = {\n resetValue: '',\n labelField: 'label',\n valueField: 'value',\n multiple: true,\n placeholder: 'Tag.placeholder',\n optionsTip: 'Tag.tip'\n };\n\n state = {\n isOpened: false,\n inputValue: '',\n isFocused: false\n };\n\n componentDidUpdate(prevProps: TagProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value) {\n this.setState({\n inputValue: ''\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 (actionType === 'clear') {\n onChange?.('');\n } else if (actionType === 'reset') {\n onChange?.(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, options, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n options,\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n getValue(type: 'push' | 'pop' | 'normal' = 'normal', option: any = {}) {\n const {selectedOptions, joinValues, extractValue, delimiter, valueField} =\n this.props;\n\n const newValue = selectedOptions.concat();\n if (type === 'push') {\n newValue.push(option);\n } else if (type === 'pop') {\n newValue.pop();\n }\n\n const newValueRes = joinValues\n ? newValue.map(item => item[valueField || 'value']).join(delimiter || ',')\n : extractValue\n ? newValue.map(item => item[valueField || 'value'])\n : newValue;\n return newValueRes;\n }\n\n async addItem(option: Option) {\n const {selectedOptions, onChange} = this.props;\n const newValue = selectedOptions.concat();\n\n if (find(newValue, item => item.value == option.value)) {\n return;\n }\n\n const newValueRes = this.getValue('push', option);\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValueRes\n });\n isPrevented || onChange(newValueRes);\n }\n\n @autobind\n async handleFocus(e: any) {\n this.setState({\n isFocused: true,\n isOpened: true\n });\n\n const newValueRes = this.getValue('normal');\n const isPrevented = await this.dispatchEvent('focus', {\n value: newValueRes\n });\n isPrevented || this.props.onFocus?.(e);\n }\n\n @autobind\n async handleBlur(e: any) {\n const {\n selectedOptions,\n onChange,\n joinValues,\n extractValue,\n delimiter,\n valueField\n } = this.props;\n\n const value = this.state.inputValue.trim();\n const newValueRes = this.getValue('normal');\n\n const isPrevented = await this.dispatchEvent('blur', {\n value: newValueRes\n });\n isPrevented || this.props.onBlur?.(e);\n this.setState(\n {\n isFocused: false,\n isOpened: false,\n inputValue: ''\n },\n value\n ? () => {\n const newValue = selectedOptions.concat();\n if (!find(newValue, item => item.value === value)) {\n const option = {\n label: value,\n value: value\n };\n newValue.push(option);\n onChange(\n joinValues\n ? newValue\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',')\n : extractValue\n ? newValue.map(item => item[valueField || 'value'])\n : newValue\n );\n }\n }\n : undefined\n );\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n @autobind\n handleInputChange(text: string) {\n this.setState({\n inputValue: text\n });\n }\n\n @autobind\n async handleChange(value: Array<Option>) {\n const {joinValues, extractValue, delimiter, valueField, onChange} =\n this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\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 @autobind\n renderItem(item: Option): any {\n const {labelField} = this.props;\n return `${item[labelField || 'label']}`;\n }\n\n @autobind\n async handleKeyDown(evt: React.KeyboardEvent<HTMLInputElement>) {\n const {selectedOptions, onChange, delimiter} = this.props;\n\n const value = this.state.inputValue.trim();\n\n if (selectedOptions.length && !value && evt.key == 'Backspace') {\n const newValueRes = this.getValue('pop');\n const isPrevented = await this.dispatchEvent('change', {\n value: newValueRes\n });\n isPrevented || onChange(newValueRes);\n } else if (value && (evt.key === 'Enter' || evt.key === delimiter)) {\n evt.preventDefault();\n evt.stopPropagation();\n const newValue = selectedOptions.concat();\n\n if (!find(newValue, item => item.value == value)) {\n const newValueRes = this.getValue('push', {\n label: value,\n value: value\n });\n const isPrevented = await this.dispatchEvent('change', {\n value: newValueRes\n });\n isPrevented || onChange(newValueRes);\n }\n\n this.setState({\n inputValue: ''\n });\n }\n }\n\n @autobind\n handleOptionChange(option: Option) {\n if (this.state.inputValue || !option) {\n return;\n }\n this.addItem(option);\n }\n\n @autobind\n getTarget() {\n return this.input.current;\n }\n\n @autobind\n getParent() {\n return this.input.current && findDOMNode(this.input.current)!.parentElement;\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload?.();\n }\n\n render() {\n const {\n className,\n classnames: cx,\n disabled,\n placeholder,\n name,\n clearable,\n selectedOptions,\n loading,\n popOverContainer,\n dropdown,\n options,\n optionsTip,\n maxTagCount,\n overflowTagPopover,\n translate: __\n } = this.props;\n\n const finnalOptions = Array.isArray(options)\n ? filterTree(\n options,\n item =>\n (Array.isArray(item.children) && !!item.children.length) ||\n (item.value !== undefined && !~selectedOptions.indexOf(item)),\n 0,\n true\n )\n : [];\n\n return (\n <Downshift\n selectedItem={selectedOptions}\n isOpen={this.state.isFocused}\n inputValue={this.state.inputValue}\n onChange={this.handleOptionChange}\n itemToString={this.renderItem}\n >\n {({isOpen, highlightedIndex, getItemProps, getInputProps}) => {\n return (\n <div className={cx(className, `TagControl`)}>\n {/* @ts-ignore 怪了为啥类型不对,后续看 */}\n <ResultBox\n {...getInputProps({\n name,\n ref: this.input,\n placeholder: __(placeholder || 'Tag.placeholder'),\n value: this.state.inputValue,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n disabled\n })}\n onChange={this.handleInputChange}\n className={cx('TagControl-input')}\n result={selectedOptions}\n onResultChange={this.handleChange}\n itemRender={this.renderItem}\n clearable={clearable}\n maxTagCount={maxTagCount}\n overflowTagPopover={overflowTagPopover}\n allowInput\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n\n {dropdown !== false ? (\n <Overlay\n container={popOverContainer || this.getParent}\n target={this.getTarget}\n placement={'auto'}\n show={isOpen && !!finnalOptions.length}\n >\n <PopOver\n overlay\n className={cx('TagControl-popover')}\n onHide={this.close}\n >\n <ListMenu\n options={finnalOptions}\n itemRender={this.renderItem}\n highlightIndex={highlightedIndex}\n getItemProps={({item, index}) => ({\n ...getItemProps({\n index,\n item,\n disabled: item.disabled\n })\n })}\n />\n </PopOver>\n </Overlay>\n ) : (\n // 保留原来的展现方式,不推荐\n <div className={cx('TagControl-sug')}>\n {optionsTip ? (\n <div className={cx('TagControl-sugTip')}>\n {__(optionsTip)}\n </div>\n ) : null}\n {options.map((item, index) => (\n <div\n className={cx('TagControl-sugItem', {\n 'is-disabled': item.disabled || disabled\n })}\n key={index}\n onClick={this.addItem.bind(this, item)}\n >\n {item.label}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\n@OptionsControl({\n type: 'input-tag'\n})\nexport class TagControlRenderer extends TagControl {}\n"
|
11
|
+
"import React from 'react';\nimport {\n OptionsControl,\n OptionsControlProps,\n Option,\n FormOptionsControl\n} from './Options';\nimport Downshift from 'downshift';\nimport find from 'lodash/find';\nimport {findDOMNode} from 'react-dom';\nimport ResultBox from '../../components/ResultBox';\nimport {autobind, filterTree, createObject} from '../../utils/helper';\nimport Spinner from '../../components/Spinner';\nimport Overlay from '../../components/Overlay';\nimport PopOver from '../../components/PopOver';\nimport ListMenu from '../../components/ListMenu';\nimport {Action} from '../../types';\n\n/**\n * Tag 输入框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/tag\n */\nexport interface TagControlSchema extends FormOptionsControl {\n type: 'input-tag';\n\n /**\n * 选项提示信息\n */\n optionsTip?: string;\n\n /**\n * 是否为下拉模式\n */\n dropdown?: boolean;\n\n /**\n * 标签的最大展示数量,超出数量后以收纳浮层的方式展示,仅在多选模式开启后生效\n */\n maxTagCount?: number;\n\n /**\n * 收纳标签的Popover配置\n */\n overflowTagPopover?: object;\n}\n\n// declare function matchSorter(items:Array<any>, input:any, options:any): Array<any>;\n\nexport interface TagProps extends OptionsControlProps {\n placeholder?: string;\n clearable: boolean;\n resetValue?: any;\n optionsTip: string;\n dropdown?: boolean;\n}\n\nexport interface TagState {\n inputValue: string;\n isFocused?: boolean;\n isOpened?: boolean;\n}\n\nexport default class TagControl extends React.PureComponent<\n TagProps,\n TagState\n> {\n input: React.RefObject<any> = React.createRef();\n\n static defaultProps = {\n resetValue: '',\n labelField: 'label',\n valueField: 'value',\n multiple: true,\n placeholder: 'Tag.placeholder',\n optionsTip: 'Tag.tip'\n };\n\n state = {\n isOpened: false,\n inputValue: '',\n isFocused: false\n };\n\n componentDidUpdate(prevProps: TagProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value) {\n this.setState({\n inputValue: ''\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 (actionType === 'clear') {\n onChange?.('');\n } else if (actionType === 'reset') {\n onChange?.(resetValue ?? '');\n }\n }\n\n @autobind\n async dispatchEvent(eventName: string, eventData: any = {}) {\n const {dispatchEvent, options, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n options,\n ...eventData\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\n }\n\n @autobind\n getValue(type: 'push' | 'pop' | 'normal' = 'normal', option: any = {}) {\n const {selectedOptions, joinValues, extractValue, delimiter, valueField} =\n this.props;\n\n const newValue = selectedOptions.concat();\n if (type === 'push') {\n newValue.push(option);\n } else if (type === 'pop') {\n newValue.pop();\n }\n\n const newValueRes = joinValues\n ? newValue.map(item => item[valueField || 'value']).join(delimiter || ',')\n : extractValue\n ? newValue.map(item => item[valueField || 'value'])\n : newValue;\n return newValueRes;\n }\n\n async addItem(option: Option) {\n const {selectedOptions, onChange} = this.props;\n const newValue = selectedOptions.concat();\n\n if (find(newValue, item => item.value == option.value)) {\n return;\n }\n\n const newValueRes = this.getValue('push', option);\n\n const isPrevented = await this.dispatchEvent('change', {\n value: newValueRes\n });\n isPrevented || onChange(newValueRes);\n }\n\n @autobind\n async handleFocus(e: any) {\n this.setState({\n isFocused: true,\n isOpened: true\n });\n\n const newValueRes = this.getValue('normal');\n const isPrevented = await this.dispatchEvent('focus', {\n value: newValueRes\n });\n isPrevented || this.props.onFocus?.(e);\n }\n\n @autobind\n async handleBlur(e: any) {\n const {\n selectedOptions,\n onChange,\n joinValues,\n extractValue,\n delimiter,\n valueField\n } = this.props;\n\n const value = this.state.inputValue.trim();\n const newValueRes = this.getValue('normal');\n\n const isPrevented = await this.dispatchEvent('blur', {\n value: newValueRes\n });\n isPrevented || this.props.onBlur?.(e);\n this.setState(\n {\n isFocused: false,\n isOpened: false,\n inputValue: ''\n },\n value\n ? () => {\n const newValue = selectedOptions.concat();\n if (!find(newValue, item => item.value === value)) {\n const option = {\n label: value,\n value: value\n };\n newValue.push(option);\n onChange(\n joinValues\n ? newValue\n .map(item => item[valueField || 'value'])\n .join(delimiter || ',')\n : extractValue\n ? newValue.map(item => item[valueField || 'value'])\n : newValue\n );\n }\n }\n : undefined\n );\n }\n\n @autobind\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n @autobind\n handleInputChange(text: string) {\n this.setState({\n inputValue: text\n });\n }\n\n @autobind\n async handleChange(value: Array<Option>) {\n const {joinValues, extractValue, delimiter, valueField, onChange} =\n this.props;\n\n let newValue: any = Array.isArray(value) ? value.concat() : [];\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 @autobind\n renderItem(item: Option): any {\n const {labelField} = this.props;\n return `${item[labelField || 'label']}`;\n }\n\n @autobind\n async handleKeyDown(evt: React.KeyboardEvent<HTMLInputElement>) {\n const {selectedOptions, onChange, delimiter} = this.props;\n\n const value = this.state.inputValue.trim();\n\n if (selectedOptions.length && !value && evt.key == 'Backspace') {\n const newValueRes = this.getValue('pop');\n const isPrevented = await this.dispatchEvent('change', {\n value: newValueRes\n });\n isPrevented || onChange(newValueRes);\n } else if (value && (evt.key === 'Enter' || evt.key === delimiter)) {\n evt.preventDefault();\n evt.stopPropagation();\n const newValue = selectedOptions.concat();\n\n if (!find(newValue, item => item.value == value)) {\n const newValueRes = this.getValue('push', {\n label: value,\n value: value\n });\n const isPrevented = await this.dispatchEvent('change', {\n value: newValueRes\n });\n isPrevented || onChange(newValueRes);\n }\n\n this.setState({\n inputValue: ''\n });\n }\n }\n\n @autobind\n handleOptionChange(option: Option) {\n if (this.state.inputValue || !option) {\n return;\n }\n this.addItem(option);\n }\n\n @autobind\n getTarget() {\n return this.input.current;\n }\n\n @autobind\n getParent() {\n return this.input.current && findDOMNode(this.input.current)!.parentElement;\n }\n\n reload() {\n const reload = this.props.reloadOptions;\n reload?.();\n }\n\n render() {\n const {\n className,\n classnames: cx,\n disabled,\n placeholder,\n name,\n clearable,\n selectedOptions,\n loading,\n popOverContainer,\n dropdown,\n options,\n optionsTip,\n maxTagCount,\n overflowTagPopover,\n translate: __\n } = this.props;\n\n const finnalOptions = Array.isArray(options)\n ? filterTree(\n options,\n item =>\n (Array.isArray(item.children) && !!item.children.length) ||\n (item.value !== undefined && !~selectedOptions.indexOf(item)),\n 0,\n true\n )\n : [];\n\n return (\n <Downshift\n selectedItem={selectedOptions}\n isOpen={this.state.isFocused}\n inputValue={this.state.inputValue}\n onChange={this.handleOptionChange}\n itemToString={this.renderItem}\n >\n {({isOpen, highlightedIndex, getItemProps, getInputProps}) => {\n return (\n <div className={cx(className, `TagControl`)}>\n {/* @ts-ignore 怪了为啥类型不对,后续看 */}\n <ResultBox\n {...getInputProps({\n name,\n ref: this.input,\n placeholder: __(placeholder || 'Tag.placeholder'),\n value: this.state.inputValue,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n disabled\n })}\n onChange={this.handleInputChange}\n className={cx('TagControl-input')}\n result={selectedOptions}\n onResultChange={this.handleChange}\n itemRender={this.renderItem}\n clearable={clearable}\n maxTagCount={maxTagCount}\n overflowTagPopover={overflowTagPopover}\n allowInput\n >\n {loading ? <Spinner size=\"sm\" /> : undefined}\n </ResultBox>\n\n {dropdown !== false ? (\n <Overlay\n container={popOverContainer || this.getParent}\n target={this.getTarget}\n placement={'auto'}\n show={isOpen && !!finnalOptions.length}\n >\n <PopOver\n overlay\n className={cx('TagControl-popover')}\n onHide={this.close}\n >\n <ListMenu\n options={finnalOptions}\n itemRender={this.renderItem}\n highlightIndex={highlightedIndex}\n getItemProps={({item, index}) => ({\n ...getItemProps({\n index,\n item,\n disabled: item.disabled\n })\n })}\n />\n </PopOver>\n </Overlay>\n ) : (\n // 保留原来的展现方式,不推荐\n <div className={cx('TagControl-sug')}>\n {optionsTip ? (\n <div className={cx('TagControl-sugTip')}>\n {__(optionsTip)}\n </div>\n ) : null}\n {options.map((item, index) => (\n <div\n className={cx('TagControl-sugItem', {\n 'is-disabled': item.disabled || disabled\n })}\n key={index}\n onClick={this.addItem.bind(this, item)}\n >\n {item.label}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\n@OptionsControl({\n type: 'input-tag'\n})\nexport class TagControlRenderer extends TagControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -46,7 +46,12 @@ function registerOptionsControl(config) {
|
|
46
46
|
if (formItem) {
|
47
47
|
formItem.setOptions((0, Select_1.normalizeOptions)(options, undefined, valueField), _this.changeOptionValue, data);
|
48
48
|
_this.toDispose.push((0, mobx_1.reaction)(function () { return JSON.stringify([formItem.loading, formItem.filteredOptions]); }, function () { return _this.mounted && _this.forceUpdate(); }));
|
49
|
-
_this.toDispose.push((0, mobx_1.reaction)(function () {
|
49
|
+
_this.toDispose.push((0, mobx_1.reaction)(function () {
|
50
|
+
return JSON.stringify(formItem.getSelectedOptions(formItem.tmpValue));
|
51
|
+
}, function () {
|
52
|
+
return _this.mounted &&
|
53
|
+
_this.syncAutoFill(formItem.getSelectedOptions(formItem.tmpValue));
|
54
|
+
}));
|
50
55
|
// 默认全选。这里会和默认值\回填值逻辑冲突,所以如果有配置source则不执行默认全选
|
51
56
|
if (multiple &&
|
52
57
|
defaultCheckAll &&
|
@@ -76,9 +81,6 @@ function registerOptionsControl(config) {
|
|
76
81
|
FormOptionsItem.prototype.componentDidMount = function () {
|
77
82
|
this.mounted = true;
|
78
83
|
this.normalizeValue();
|
79
|
-
if (this.props.value) {
|
80
|
-
this.syncAutoFill(this.props.value);
|
81
|
-
}
|
82
84
|
};
|
83
85
|
FormOptionsItem.prototype.shouldComponentUpdate = function (nextProps) {
|
84
86
|
var _a;
|
@@ -126,7 +128,6 @@ function registerOptionsControl(config) {
|
|
126
128
|
}
|
127
129
|
if (prevProps.value !== props.value || (formItem === null || formItem === void 0 ? void 0 : formItem.expressionsInOptions)) {
|
128
130
|
formItem.syncOptions(undefined, props.data);
|
129
|
-
this.syncAutoFill(props.value);
|
130
131
|
}
|
131
132
|
};
|
132
133
|
FormOptionsItem.prototype.componentWillUnmount = function () {
|
@@ -165,14 +166,13 @@ function registerOptionsControl(config) {
|
|
165
166
|
onChange === null || onChange === void 0 ? void 0 : onChange(resetValue !== null && resetValue !== void 0 ? resetValue : '');
|
166
167
|
}
|
167
168
|
};
|
168
|
-
FormOptionsItem.prototype.syncAutoFill = function (
|
169
|
+
FormOptionsItem.prototype.syncAutoFill = function (selectedOptions) {
|
169
170
|
var _a = this.props, autoFill = _a.autoFill, multiple = _a.multiple, onBulkChange = _a.onBulkChange, data = _a.data;
|
170
171
|
var formItem = this.props.formItem;
|
171
172
|
if (onBulkChange &&
|
172
173
|
autoFill &&
|
173
174
|
!(0, helper_1.isEmpty)(autoFill) &&
|
174
175
|
formItem.filteredOptions.length) {
|
175
|
-
var selectedOptions = formItem.getSelectedOptions(value);
|
176
176
|
var toSync_1 = (0, tpl_builtin_1.dataMapping)(autoFill, multiple
|
177
177
|
? {
|
178
178
|
items: selectedOptions.map(function (item) {
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/Options.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file 所有列表选择类控件的父级,比如 Select、Radios、Checkboxes、\n * List、ButtonGroup 等等\n */\nimport {Api, PlainObject, Schema, Action} from '../../types';\nimport {isEffectiveApi, isApiOutdated, isValidApi} from '../../utils/api';\nimport {isAlive} from 'mobx-state-tree';\nimport {\n anyChanged,\n autobind,\n createObject,\n setVariable,\n spliceTree,\n findTreeIndex,\n getTree,\n isEmpty,\n getTreeAncestors,\n normalizeNodePath,\n mapTree,\n getTreeDepth,\n flattenTree\n} from '../../utils/helper';\nimport {reaction} from 'mobx';\nimport {\n FormControlProps,\n registerFormItem,\n FormItemBasicConfig,\n detectProps as itemDetectProps,\n FormBaseControl\n} from './Item';\nimport {IFormItemStore} from '../../store/formItem';\n\nexport type OptionsControlComponent = React.ComponentType<FormControlProps>;\n\nimport React from 'react';\nimport {\n resolveVariableAndFilter,\n isPureVariable,\n dataMapping\n} from '../../utils/tpl-builtin';\nimport {\n Option,\n OptionProps,\n normalizeOptions,\n optionValueCompare\n} from '../../components/Select';\nimport {filter} from '../../utils/tpl';\nimport findIndex from 'lodash/findIndex';\nimport {\n SchemaApi,\n SchemaExpression,\n SchemaObject,\n SchemaTokenizeableString\n} from '../../Schema';\nimport isPlainObject from 'lodash/isPlainObject';\nimport merge from 'lodash/merge';\n\nexport {Option};\n\nexport interface FormOptionsControl extends FormBaseControl {\n /**\n * 选项集合\n */\n options?: Array<Option> | string[] | PlainObject;\n\n /**\n * 可用来通过 API 拉取 options。\n */\n source?: SchemaApi | SchemaTokenizeableString;\n\n /**\n * 默认选择选项第一个值。\n */\n selectFirst?: boolean;\n\n /**\n * 用表达式来配置 source 接口初始要不要拉取\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 配置 source 接口初始拉不拉取。\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetch?: boolean;\n\n /**\n * 是否为多选模式\n */\n multiple?: boolean;\n\n /**\n * 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。\n * 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 是否可清除。\n */\n clearable?: boolean;\n\n /**\n * 点清除按钮时,将表单项设置成当前配置的值。\n *\n * @default ''\n */\n resetValue?: string;\n\n /**\n * 延时加载的 API,当选项中有 defer: true 的选项时,点开会通过此接口扩充。\n */\n deferApi?: SchemaApi;\n\n /**\n * 添加时调用的接口\n */\n addApi?: SchemaApi;\n\n /**\n * 新增时的表单项。\n */\n addControls?: Array<SchemaObject>;\n\n /**\n * 是否可以新增\n */\n creatable?: boolean;\n\n /**\n * 新增文字\n */\n createBtnLabel?: string;\n\n /**\n * 是否可以编辑\n */\n editable?: boolean;\n\n /**\n * 编辑时调用的 API\n */\n editApi?: SchemaApi;\n\n /**\n * 选项修改的表单项\n */\n editControls?: Array<SchemaObject>;\n\n /**\n * 是否可删除\n */\n removable?: boolean;\n\n /**\n * 选项删除 API\n */\n deleteApi?: SchemaApi;\n\n /**\n * 选项删除提示文字。\n */\n deleteConfirmText?: string;\n\n /**\n * 自动填充,当选项被选择的时候,将选项中的其他值同步设置到表单内。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n}\n\nexport interface OptionsBasicConfig extends FormItemBasicConfig {\n autoLoadOptionsFromSource?: boolean;\n}\n\nexport interface OptionsConfig extends OptionsBasicConfig {\n component: React.ComponentType<OptionsControlProps>;\n}\n\n// 下发给注册进来的组件的属性。\nexport interface OptionsControlProps\n extends FormControlProps,\n Omit<\n FormOptionsControl,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n options: Array<Option>;\n onToggle: (\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void;\n onToggleAll: () => void;\n selectedOptions: Array<Option>;\n setOptions: (value: Array<any>, skipNormalize?: boolean) => void;\n setLoading: (value: boolean) => void;\n reloadOptions: (setError?: boolean) => void;\n deferLoad: (option: Option) => void;\n leftDeferLoad: (option: Option, leftOptions: Option) => void;\n expandTreeOptions: (nodePathArr: any[]) => void;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n onDelete?: (value: Option) => void;\n}\n\n// 自己接收的属性。\nexport interface OptionsProps\n extends FormControlProps,\n Omit<OptionProps, 'className'> {\n source?: Api;\n deferApi?: Api;\n creatable?: boolean;\n addApi?: Api;\n addControls?: Array<any>;\n editApi?: Api;\n editControls?: Array<any>;\n deleteApi?: Api;\n deleteConfirmText?: string;\n optionLabel?: string;\n}\n\nexport const detectProps = itemDetectProps.concat([\n 'value',\n 'options',\n 'size',\n 'buttons',\n 'columnsCount',\n 'multiple',\n 'hideRoot',\n 'checkAll',\n 'defaultCheckAll',\n 'showIcon',\n 'showRadio',\n 'btnDisabled',\n 'joinValues',\n 'extractValue',\n 'borderMode',\n 'hideSelected'\n]);\n\nexport function registerOptionsControl(config: OptionsConfig) {\n const Control = config.component;\n\n class FormOptionsItem extends React.Component<OptionsProps, any> {\n static displayName = `OptionsControl(${config.type})`;\n static defaultProps = {\n delimiter: ',',\n labelField: 'label',\n valueField: 'value',\n joinValues: true,\n extractValue: false,\n multiple: false,\n placeholder: 'Select.placeholder',\n resetValue: '',\n deleteConfirmText: 'deleteConfirm',\n ...Control.defaultProps\n };\n static propsList: any = (Control as any).propsList\n ? [...(Control as any).propsList]\n : [];\n static ComposedComponent = Control;\n\n toDispose: Array<() => void> = [];\n\n input: any;\n mounted = false;\n\n constructor(props: OptionsProps) {\n super(props);\n\n const {\n initFetch,\n formItem,\n source,\n data,\n setPrinstineValue,\n defaultValue,\n multiple,\n joinValues,\n extractValue,\n addHook,\n formInited,\n valueField,\n options,\n value,\n defaultCheckAll\n } = props;\n\n if (formItem) {\n formItem.setOptions(\n normalizeOptions(options, undefined, valueField),\n this.changeOptionValue,\n data\n );\n\n this.toDispose.push(\n reaction(\n () => JSON.stringify([formItem.loading, formItem.filteredOptions]),\n () => this.mounted && this.forceUpdate()\n )\n );\n\n this.toDispose.push(\n reaction(\n () => JSON.stringify(formItem.options),\n () => this.mounted && this.syncAutoFill(formItem.tmpValue)\n )\n );\n // 默认全选。这里会和默认值\\回填值逻辑冲突,所以如果有配置source则不执行默认全选\n if (\n multiple &&\n defaultCheckAll &&\n formItem.filteredOptions?.length &&\n !source\n ) {\n this.defaultCheckAll();\n }\n }\n\n let loadOptions: boolean = initFetch !== false;\n\n if (formItem && joinValues === false && defaultValue) {\n const selectedOptions = extractValue\n ? formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) =>\n selectedOption[valueField || 'value']\n )\n : formItem.getSelectedOptions(value);\n setPrinstineValue(\n multiple ? selectedOptions.concat() : selectedOptions[0]\n );\n }\n\n loadOptions &&\n config.autoLoadOptionsFromSource !== false &&\n (formInited || !addHook\n ? this.reload()\n : addHook && addHook(this.initOptions, 'init'));\n }\n\n componentDidMount() {\n this.mounted = true;\n this.normalizeValue();\n\n if (this.props.value) {\n this.syncAutoFill(this.props.value);\n }\n }\n\n shouldComponentUpdate(nextProps: OptionsProps) {\n if (config.strictMode === false || nextProps.strictMode === false) {\n return true;\n } else if (nextProps.source || nextProps.autoComplete) {\n return true;\n } else if (nextProps.formItem?.expressionsInOptions) {\n return true;\n }\n\n if (anyChanged(detectProps, this.props, nextProps)) {\n return true;\n }\n\n return false;\n }\n\n componentDidUpdate(prevProps: OptionsProps) {\n const props = this.props;\n const formItem = props.formItem as IFormItemStore;\n\n if (prevProps.options !== props.options && formItem) {\n formItem.setOptions(\n normalizeOptions(props.options || [], undefined, props.valueField),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n } else if (\n config.autoLoadOptionsFromSource !== false &&\n (props.formInited || typeof props.formInited === 'undefined') &&\n props.source &&\n formItem &&\n (prevProps.source !== props.source || prevProps.data !== props.data)\n ) {\n if (isPureVariable(props.source as string)) {\n const prevOptions = resolveVariableAndFilter(\n prevProps.source as string,\n prevProps.data,\n '| raw'\n );\n const options = resolveVariableAndFilter(\n props.source as string,\n props.data,\n '| raw'\n );\n\n if (prevOptions !== options) {\n formItem.setOptions(\n normalizeOptions(\n options || [],\n undefined,\n props.valueField || 'value'\n ),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n }\n } else if (\n isEffectiveApi(props.source, props.data) &&\n isApiOutdated(\n prevProps.source,\n props.source,\n prevProps.data,\n props.data\n )\n ) {\n formItem\n .loadOptions(\n props.source,\n props.data,\n undefined,\n true,\n this.changeOptionValue\n )\n .then(() => this.normalizeValue());\n }\n }\n\n if (prevProps.value !== props.value || formItem?.expressionsInOptions) {\n formItem.syncOptions(undefined, props.data);\n this.syncAutoFill(props.value);\n }\n }\n\n componentWillUnmount() {\n this.props.removeHook?.(this.reload, 'init');\n this.toDispose.forEach(fn => fn());\n this.toDispose = [];\n }\n\n async dispatchOptionEvent(eventName: string, eventData: any = '') {\n const {dispatchEvent, options, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n value: eventData,\n options\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\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 (actionType === 'clear') {\n onChange?.('');\n } else if (actionType === 'reset') {\n onChange?.(resetValue ?? '');\n }\n }\n\n syncAutoFill(value: any) {\n const {autoFill, multiple, onBulkChange, data} = this.props;\n const formItem = this.props.formItem as IFormItemStore;\n\n if (\n onBulkChange &&\n autoFill &&\n !isEmpty(autoFill) &&\n formItem.filteredOptions.length\n ) {\n const selectedOptions = formItem.getSelectedOptions(value);\n const toSync = dataMapping(\n autoFill,\n multiple\n ? {\n items: selectedOptions.map(item =>\n createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n item,\n true\n )\n },\n item\n )\n )\n }\n : createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n selectedOptions[0],\n true\n )\n },\n selectedOptions[0]\n )\n );\n\n Object.keys(toSync).forEach(key => {\n if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {\n toSync[key] = merge({}, data[key], toSync[key]);\n }\n });\n\n onBulkChange(toSync);\n }\n }\n\n // 当前值,跟设置预期的值格式不一致时自动转换。\n normalizeValue() {\n const {\n joinValues,\n extractValue,\n value,\n multiple,\n formItem,\n valueField,\n enableNodePath,\n pathSeparator,\n onChange\n } = this.props;\n\n if (!formItem || joinValues !== false || !formItem.options.length) {\n return;\n }\n\n if (\n extractValue === false &&\n (typeof value === 'string' || typeof value === 'number')\n ) {\n const selectedOptions = formItem.getSelectedOptions(value);\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n } else if (\n extractValue === true &&\n value &&\n !(\n (Array.isArray(value) &&\n value.every(\n val => typeof val === 'string' || typeof val === 'number'\n )) ||\n typeof value === 'string' ||\n typeof value === 'number'\n )\n ) {\n const selectedOptions = formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) => selectedOption[valueField || 'value']\n );\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n }\n }\n\n getWrappedInstance() {\n return this.input;\n }\n\n @autobind\n inputRef(ref: any) {\n this.input = ref;\n }\n\n @autobind\n async handleToggle(\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) {\n const {onChange, formItem, value} = this.props;\n\n if (!formItem) {\n return;\n }\n\n let newValue: string | Array<Option> | Option = this.toggleValue(\n option,\n value\n );\n\n const isPrevented = await this.dispatchOptionEvent('change', newValue);\n isPrevented ||\n (onChange && onChange(newValue, submitOnChange, changeImmediately));\n }\n\n /**\n * 初始化时处理默认全选逻辑\n */\n defaultCheckAll() {\n const {value, formItem, setPrinstineValue} = this.props;\n // 如果有默认值\\回填值直接返回\n if (!formItem || formItem.getSelectedOptions(value).length) {\n return;\n }\n let valueArray = formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n setPrinstineValue?.(newValue);\n }\n\n /**\n * 选中的值经过joinValues和delimiter等规则处理输出规定格式的值\n * @param valueArray 选中值的数组\n * @returns 通过joinValues和delimiter等规则输出规定格式的值\n */\n formatValueArray(valueArray: Array<Option>) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n resetValue,\n multiple\n } = this.props;\n let newValue: string | Array<Option> | Option = '';\n if (multiple) {\n /** 兼容tree数据结构 */\n newValue =\n getTreeDepth(valueArray) > 1 ? flattenTree(valueArray) : valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .filter(item => item != null) /** tree的父节点可能没有value值 */\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .filter(item => item != null);\n }\n } else {\n newValue = valueArray[0] || resetValue;\n\n if (joinValues && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n return newValue;\n }\n\n @autobind\n async handleToggleAll() {\n const {value, onChange, formItem, valueField} = this.props;\n\n if (!formItem) {\n return;\n }\n const selectedOptions = formItem.getSelectedOptions(value);\n /** 打平并过滤掉valueField不存在的case,保证全选时对比length一致 */\n const filteredOptions = flattenTree(\n formItem.filteredOptions.concat()\n ).filter(item => item != null && item[valueField || 'value'] != null);\n let valueArray =\n selectedOptions.length === filteredOptions.length\n ? []\n : formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n const isPrevented = await this.dispatchOptionEvent('change', newValue);\n isPrevented || (onChange && onChange(newValue));\n }\n\n toggleValue(option: Option, originValue?: any) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n clearable,\n resetValue,\n multiple,\n formItem\n } = this.props;\n\n let valueArray =\n originValue !== undefined\n ? formItem!.getSelectedOptions(originValue).concat()\n : [];\n\n const idx = findIndex(\n valueArray,\n optionValueCompare(option[valueField || 'value'], valueField || 'value')\n );\n let newValue: string | Array<Option> | Option = '';\n\n if (multiple) {\n if (~idx) {\n valueArray.splice(idx, 1);\n } else {\n valueArray.push(option);\n }\n\n newValue = valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>).map(\n item => item[valueField || 'value']\n );\n }\n } else {\n if (~idx && clearable) {\n valueArray.splice(idx, 1);\n } else {\n valueArray = [option];\n }\n\n newValue = valueArray[0] || resetValue;\n\n if ((joinValues || extractValue) && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n\n return newValue;\n }\n\n // 当有 action 触发,如果指定了 reload 目标组件,有可能会来到这里面来\n @autobind\n reload() {\n return this.reloadOptions();\n }\n\n @autobind\n reloadOptions(setError?: boolean, isInit = false) {\n const {source, formItem, data, onChange, setPrinstineValue, valueField} =\n this.props;\n\n if (formItem && isPureVariable(source as string)) {\n isAlive(formItem) &&\n formItem.setOptions(\n normalizeOptions(\n resolveVariableAndFilter(source as string, data, '| raw') || [],\n undefined,\n valueField\n ),\n this.changeOptionValue,\n data\n );\n return;\n } else if (!formItem || !isEffectiveApi(source, data)) {\n return;\n }\n\n return formItem.loadOptions(\n source,\n data,\n undefined,\n false,\n isInit ? setPrinstineValue : onChange,\n setError\n );\n }\n\n @autobind\n async deferLoad(option: Option) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = option.deferApi || deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n const json = await formItem?.deferLoadOptions(\n option,\n api,\n createObject(data, option)\n );\n // 触发事件通知,加载完成\n this.dispatchOptionEvent('loadFinished', json);\n }\n\n @autobind\n leftDeferLoad(option: Option, leftOptions: Option) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = option.deferApi || deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.deferLoadLeftOptions(\n option,\n leftOptions,\n api,\n createObject(data, option)\n );\n }\n\n @autobind\n expandTreeOptions(nodePathArr: any[]) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.expandTreeOptions(nodePathArr, api, createObject(data));\n }\n\n @autobind\n async initOptions(data: any) {\n await this.reloadOptions(false, true);\n const {formItem, name, multiple, defaultCheckAll} = this.props;\n if (!formItem) {\n return;\n }\n if (isAlive(formItem) && formItem.value) {\n setVariable(data, name!, formItem.value);\n }\n\n // 默认全选\n if (multiple && defaultCheckAll && formItem.filteredOptions?.length) {\n this.defaultCheckAll();\n }\n }\n\n focus() {\n this.input && this.input.focus && this.input.focus();\n }\n\n @autobind\n changeOptionValue(value: any) {\n const {\n onChange,\n formInited,\n setPrinstineValue,\n value: originValue\n } = this.props;\n\n if (formInited === false) {\n originValue === undefined && setPrinstineValue?.(value);\n } else {\n onChange?.(value);\n }\n }\n\n @autobind\n setOptions(options: Array<any>, skipNormalize = false) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem &&\n formItem.setOptions(\n skipNormalize\n ? options\n : normalizeOptions(options || [], undefined, this.props.valueField),\n this.changeOptionValue,\n this.props.data\n );\n }\n\n @autobind\n syncOptions() {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.syncOptions(undefined, this.props.data);\n }\n\n @autobind\n setLoading(value: boolean) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.setLoading(value);\n }\n\n @autobind\n async handleOptionAdd(\n idx: number | Array<number> = -1,\n value?: any,\n skipForm: boolean = false\n ) {\n let {\n addControls,\n disabled,\n labelField,\n onOpenDialog,\n optionLabel,\n addApi,\n source,\n data,\n valueField,\n formItem: model,\n createBtnLabel,\n env,\n translate: __\n } = this.props;\n\n // 禁用或者没有配置 name\n if (disabled || !model) {\n return;\n }\n\n // 用户没有配置表单项,则自动创建一个 label 输入\n if (!skipForm && (!Array.isArray(addControls) || !addControls.length)) {\n addControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n required: true,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n const parent = Array.isArray(idx)\n ? getTree(model.options, idx.slice(0, -1))\n : undefined;\n\n const ctx: any = createObject(\n data,\n Array.isArray(idx)\n ? {\n parent: parent,\n ...value\n }\n : value\n );\n\n let result: any = skipForm\n ? ctx\n : await onOpenDialog(\n {\n type: 'dialog',\n title: createBtnLabel || `新增${optionLabel || '选项'}`,\n body: {\n type: 'form',\n api: addApi,\n controls: [\n {\n type: 'hidden',\n name: 'idx',\n value: idx\n },\n {\n type: 'hidden',\n name: 'parent',\n value: parent\n },\n ...(addControls || [])\n ]\n }\n },\n ctx\n );\n\n // 单独发请求\n if (skipForm && addApi) {\n try {\n const payload = await env.fetcher(addApi!, result, {\n method: 'post'\n });\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('Options.createFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 有 result 说明弹框点了确认。否则就是取消了。\n if (!result) {\n return;\n }\n\n // 没走服务端的。\n if (!result.hasOwnProperty(valueField || 'value')) {\n result = {\n ...result,\n [valueField || 'value']: result[labelField || 'label']\n };\n }\n // 触发事件通知\n const isPrevented = await this.dispatchOptionEvent('add', {\n ...result,\n idx\n });\n if (isPrevented) {\n return;\n }\n\n // 如果是懒加载的,只懒加载当前节点。\n if (parent?.defer) {\n await this.deferLoad(parent);\n } else if (source && addApi) {\n // 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了\n // 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。\n this.reload();\n } else {\n // 否则直接前端变更 options\n let options = model.options.concat();\n if (Array.isArray(idx)) {\n options = spliceTree(options, idx, 0, {...result});\n } else {\n ~idx\n ? options.splice(idx, 0, {...result})\n : options.push({...result});\n }\n model.setOptions(options, this.changeOptionValue, data);\n }\n }\n\n @autobind\n async handleOptionEdit(\n value: any,\n origin: any = value,\n skipForm: boolean = false\n ) {\n let {\n editControls,\n disabled,\n labelField,\n onOpenDialog,\n editApi,\n env,\n source,\n data,\n formItem: model,\n optionLabel,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n if (!skipForm && (!Array.isArray(editControls) || !editControls.length)) {\n editControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n\n let result = skipForm\n ? value\n : await onOpenDialog(\n {\n type: 'dialog',\n title: __('Options.editLabel', {\n label: optionLabel || __('Options.label')\n }),\n body: {\n type: 'form',\n api: editApi,\n controls: editControls\n }\n },\n createObject(data, value)\n );\n\n // 单独发请求\n if (skipForm && editApi) {\n try {\n const payload = await env.fetcher(\n editApi!,\n createObject(data, result),\n {\n method: 'post'\n }\n );\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('saveFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 没有结果,说明取消了。\n if (!result) {\n return;\n }\n\n // 触发事件通知\n const isPrevented = await this.dispatchOptionEvent('edit', result);\n if (isPrevented) {\n return;\n }\n\n if (source && editApi) {\n this.reload();\n } else {\n const indexes = findTreeIndex(model.options, item => item === origin);\n\n if (indexes) {\n model.setOptions(\n spliceTree(model.options, indexes, 1, {\n ...origin,\n ...result\n }),\n this.changeOptionValue,\n data\n );\n }\n }\n }\n\n @autobind\n async handleOptionDelete(value: any) {\n let {\n deleteConfirmText,\n disabled,\n data,\n deleteApi,\n env,\n formItem: model,\n source,\n valueField,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n const ctx = createObject(data, value);\n\n // 如果配置了 deleteConfirmText 让用户先确认。\n const confirmed = deleteConfirmText\n ? await env.confirm(filter(__(deleteConfirmText), ctx))\n : true;\n if (!confirmed) {\n return;\n }\n\n // 触发事件通知\n const isPrevented = await this.dispatchOptionEvent('delete', ctx);\n if (isPrevented) {\n return;\n }\n\n // 通过 deleteApi 删除。\n try {\n if (!deleteApi) {\n throw new Error(__('Options.deleteAPI'));\n }\n\n const result = await env.fetcher(deleteApi!, ctx, {\n method: 'delete'\n });\n\n if (!result.ok) {\n env.notify('error', result.msg || __('deleteFailed'));\n } else if (source) {\n this.reload();\n } else {\n const options = model.options.concat();\n const indexes = findTreeIndex(\n options,\n item => item[valueField || 'value'] == value[valueField || 'value']\n );\n\n if (indexes) {\n model.setOptions(\n spliceTree(options, indexes, 1),\n this.changeOptionValue,\n data\n );\n }\n }\n } catch (e) {\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n render() {\n const {\n value,\n formItem,\n addApi,\n editApi,\n deleteApi,\n creatable,\n editable,\n removable,\n enableNodePath,\n pathSeparator,\n delimiter = ',',\n labelField = 'label',\n valueField = 'value'\n } = this.props;\n\n const {nodePathArray, nodeValueArray} = normalizeNodePath(\n value,\n enableNodePath,\n labelField,\n valueField,\n pathSeparator,\n delimiter\n );\n\n return (\n <Control\n {...this.props}\n ref={this.inputRef}\n options={formItem ? formItem.filteredOptions : []}\n onToggle={this.handleToggle}\n onToggleAll={this.handleToggleAll}\n selectedOptions={\n formItem\n ? formItem.getSelectedOptions(\n value,\n enableNodePath ? nodeValueArray : undefined\n )\n : []\n }\n nodePath={nodePathArray}\n loading={formItem ? formItem.loading : false}\n setLoading={this.setLoading}\n setOptions={this.setOptions}\n syncOptions={this.syncOptions}\n reloadOptions={this.reload}\n deferLoad={this.deferLoad}\n leftDeferLoad={this.leftDeferLoad}\n expandTreeOptions={this.expandTreeOptions}\n creatable={\n creatable !== false && isEffectiveApi(addApi) ? true : creatable\n }\n editable={editable || (editable !== false && isEffectiveApi(editApi))}\n removable={\n removable || (removable !== false && isEffectiveApi(deleteApi))\n }\n onAdd={this.handleOptionAdd}\n onEdit={this.handleOptionEdit}\n onDelete={this.handleOptionDelete}\n />\n );\n }\n }\n\n return registerFormItem({\n ...(config as FormItemBasicConfig),\n strictMode: false,\n component: FormOptionsItem\n });\n}\n\nexport function OptionsControl(config: OptionsBasicConfig) {\n return function <T extends React.ComponentType<OptionsControlProps>>(\n component: T\n ): T {\n const renderer = registerOptionsControl({\n ...config,\n component: component\n });\n return renderer.component as any;\n };\n}\n\nexport function highlight(\n text: string,\n input?: string,\n hlClassName: string = 'is-matched'\n) {\n if (!input) {\n return text;\n }\n\n text = String(text);\n const reg = new RegExp(input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'), 'ig');\n if (!reg.test(text)) {\n return text;\n }\n\n const dom: Array<any> = [];\n\n let start = 0;\n let match = null;\n\n reg.lastIndex = 0;\n while ((match = reg.exec(text))) {\n const prev = text.substring(start, match.index);\n prev && dom.push(<span key={dom.length}>{prev}</span>);\n\n match[0] &&\n dom.push(\n <span className={hlClassName} key={dom.length}>\n {match[0]}\n </span>\n );\n start = match.index + match[0].length;\n }\n const rest = text.substring(start);\n rest && dom.push(<span key={dom.length}>{rest}</span>);\n\n // const parts = text.split(reg);\n\n // parts.forEach((text: string, index) => {\n // text && dom.push(<span key={index}>{text}</span>);\n // dom.push(\n // <span className={hlClassName} key={`${index}-hl`}>\n // {input}\n // </span>\n // );\n // });\n\n // dom.pop();\n\n return dom;\n}\n"
|
11
|
+
"/**\n * @file 所有列表选择类控件的父级,比如 Select、Radios、Checkboxes、\n * List、ButtonGroup 等等\n */\nimport {Api, PlainObject, Schema, Action} from '../../types';\nimport {isEffectiveApi, isApiOutdated, isValidApi} from '../../utils/api';\nimport {isAlive} from 'mobx-state-tree';\nimport {\n anyChanged,\n autobind,\n createObject,\n setVariable,\n spliceTree,\n findTreeIndex,\n getTree,\n isEmpty,\n getTreeAncestors,\n normalizeNodePath,\n mapTree,\n getTreeDepth,\n flattenTree\n} from '../../utils/helper';\nimport {reaction} from 'mobx';\nimport {\n FormControlProps,\n registerFormItem,\n FormItemBasicConfig,\n detectProps as itemDetectProps,\n FormBaseControl\n} from './Item';\nimport {IFormItemStore} from '../../store/formItem';\n\nexport type OptionsControlComponent = React.ComponentType<FormControlProps>;\n\nimport React from 'react';\nimport {\n resolveVariableAndFilter,\n isPureVariable,\n dataMapping\n} from '../../utils/tpl-builtin';\nimport {\n Option,\n OptionProps,\n normalizeOptions,\n optionValueCompare\n} from '../../components/Select';\nimport {filter} from '../../utils/tpl';\nimport findIndex from 'lodash/findIndex';\nimport {\n SchemaApi,\n SchemaExpression,\n SchemaObject,\n SchemaTokenizeableString\n} from '../../Schema';\nimport isPlainObject from 'lodash/isPlainObject';\nimport merge from 'lodash/merge';\n\nexport {Option};\n\nexport interface FormOptionsControl extends FormBaseControl {\n /**\n * 选项集合\n */\n options?: Array<Option> | string[] | PlainObject;\n\n /**\n * 可用来通过 API 拉取 options。\n */\n source?: SchemaApi | SchemaTokenizeableString;\n\n /**\n * 默认选择选项第一个值。\n */\n selectFirst?: boolean;\n\n /**\n * 用表达式来配置 source 接口初始要不要拉取\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 配置 source 接口初始拉不拉取。\n *\n * @deprecated 建议用 source 接口的 sendOn\n */\n initFetch?: boolean;\n\n /**\n * 是否为多选模式\n */\n multiple?: boolean;\n\n /**\n * 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。\n * 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 是否可清除。\n */\n clearable?: boolean;\n\n /**\n * 点清除按钮时,将表单项设置成当前配置的值。\n *\n * @default ''\n */\n resetValue?: string;\n\n /**\n * 延时加载的 API,当选项中有 defer: true 的选项时,点开会通过此接口扩充。\n */\n deferApi?: SchemaApi;\n\n /**\n * 添加时调用的接口\n */\n addApi?: SchemaApi;\n\n /**\n * 新增时的表单项。\n */\n addControls?: Array<SchemaObject>;\n\n /**\n * 是否可以新增\n */\n creatable?: boolean;\n\n /**\n * 新增文字\n */\n createBtnLabel?: string;\n\n /**\n * 是否可以编辑\n */\n editable?: boolean;\n\n /**\n * 编辑时调用的 API\n */\n editApi?: SchemaApi;\n\n /**\n * 选项修改的表单项\n */\n editControls?: Array<SchemaObject>;\n\n /**\n * 是否可删除\n */\n removable?: boolean;\n\n /**\n * 选项删除 API\n */\n deleteApi?: SchemaApi;\n\n /**\n * 选项删除提示文字。\n */\n deleteConfirmText?: string;\n\n /**\n * 自动填充,当选项被选择的时候,将选项中的其他值同步设置到表单内。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n}\n\nexport interface OptionsBasicConfig extends FormItemBasicConfig {\n autoLoadOptionsFromSource?: boolean;\n}\n\nexport interface OptionsConfig extends OptionsBasicConfig {\n component: React.ComponentType<OptionsControlProps>;\n}\n\n// 下发给注册进来的组件的属性。\nexport interface OptionsControlProps\n extends FormControlProps,\n Omit<\n FormOptionsControl,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n options: Array<Option>;\n onToggle: (\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) => void;\n onToggleAll: () => void;\n selectedOptions: Array<Option>;\n setOptions: (value: Array<any>, skipNormalize?: boolean) => void;\n setLoading: (value: boolean) => void;\n reloadOptions: (setError?: boolean) => void;\n deferLoad: (option: Option) => void;\n leftDeferLoad: (option: Option, leftOptions: Option) => void;\n expandTreeOptions: (nodePathArr: any[]) => void;\n onAdd?: (\n idx?: number | Array<number>,\n value?: any,\n skipForm?: boolean\n ) => void;\n onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void;\n onDelete?: (value: Option) => void;\n}\n\n// 自己接收的属性。\nexport interface OptionsProps\n extends FormControlProps,\n Omit<OptionProps, 'className'> {\n source?: Api;\n deferApi?: Api;\n creatable?: boolean;\n addApi?: Api;\n addControls?: Array<any>;\n editApi?: Api;\n editControls?: Array<any>;\n deleteApi?: Api;\n deleteConfirmText?: string;\n optionLabel?: string;\n}\n\nexport const detectProps = itemDetectProps.concat([\n 'value',\n 'options',\n 'size',\n 'buttons',\n 'columnsCount',\n 'multiple',\n 'hideRoot',\n 'checkAll',\n 'defaultCheckAll',\n 'showIcon',\n 'showRadio',\n 'btnDisabled',\n 'joinValues',\n 'extractValue',\n 'borderMode',\n 'hideSelected'\n]);\n\nexport function registerOptionsControl(config: OptionsConfig) {\n const Control = config.component;\n\n class FormOptionsItem extends React.Component<OptionsProps, any> {\n static displayName = `OptionsControl(${config.type})`;\n static defaultProps = {\n delimiter: ',',\n labelField: 'label',\n valueField: 'value',\n joinValues: true,\n extractValue: false,\n multiple: false,\n placeholder: 'Select.placeholder',\n resetValue: '',\n deleteConfirmText: 'deleteConfirm',\n ...Control.defaultProps\n };\n static propsList: any = (Control as any).propsList\n ? [...(Control as any).propsList]\n : [];\n static ComposedComponent = Control;\n\n toDispose: Array<() => void> = [];\n\n input: any;\n mounted = false;\n\n constructor(props: OptionsProps) {\n super(props);\n\n const {\n initFetch,\n formItem,\n source,\n data,\n setPrinstineValue,\n defaultValue,\n multiple,\n joinValues,\n extractValue,\n addHook,\n formInited,\n valueField,\n options,\n value,\n defaultCheckAll\n } = props;\n\n if (formItem) {\n formItem.setOptions(\n normalizeOptions(options, undefined, valueField),\n this.changeOptionValue,\n data\n );\n\n this.toDispose.push(\n reaction(\n () => JSON.stringify([formItem.loading, formItem.filteredOptions]),\n () => this.mounted && this.forceUpdate()\n )\n );\n\n this.toDispose.push(\n reaction(\n () =>\n JSON.stringify(formItem.getSelectedOptions(formItem.tmpValue)),\n () =>\n this.mounted &&\n this.syncAutoFill(formItem.getSelectedOptions(formItem.tmpValue))\n )\n );\n\n // 默认全选。这里会和默认值\\回填值逻辑冲突,所以如果有配置source则不执行默认全选\n if (\n multiple &&\n defaultCheckAll &&\n formItem.filteredOptions?.length &&\n !source\n ) {\n this.defaultCheckAll();\n }\n }\n\n let loadOptions: boolean = initFetch !== false;\n\n if (formItem && joinValues === false && defaultValue) {\n const selectedOptions = extractValue\n ? formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) =>\n selectedOption[valueField || 'value']\n )\n : formItem.getSelectedOptions(value);\n setPrinstineValue(\n multiple ? selectedOptions.concat() : selectedOptions[0]\n );\n }\n\n loadOptions &&\n config.autoLoadOptionsFromSource !== false &&\n (formInited || !addHook\n ? this.reload()\n : addHook && addHook(this.initOptions, 'init'));\n }\n\n componentDidMount() {\n this.mounted = true;\n this.normalizeValue();\n }\n\n shouldComponentUpdate(nextProps: OptionsProps) {\n if (config.strictMode === false || nextProps.strictMode === false) {\n return true;\n } else if (nextProps.source || nextProps.autoComplete) {\n return true;\n } else if (nextProps.formItem?.expressionsInOptions) {\n return true;\n }\n\n if (anyChanged(detectProps, this.props, nextProps)) {\n return true;\n }\n\n return false;\n }\n\n componentDidUpdate(prevProps: OptionsProps) {\n const props = this.props;\n const formItem = props.formItem as IFormItemStore;\n\n if (prevProps.options !== props.options && formItem) {\n formItem.setOptions(\n normalizeOptions(props.options || [], undefined, props.valueField),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n } else if (\n config.autoLoadOptionsFromSource !== false &&\n (props.formInited || typeof props.formInited === 'undefined') &&\n props.source &&\n formItem &&\n (prevProps.source !== props.source || prevProps.data !== props.data)\n ) {\n if (isPureVariable(props.source as string)) {\n const prevOptions = resolveVariableAndFilter(\n prevProps.source as string,\n prevProps.data,\n '| raw'\n );\n const options = resolveVariableAndFilter(\n props.source as string,\n props.data,\n '| raw'\n );\n\n if (prevOptions !== options) {\n formItem.setOptions(\n normalizeOptions(\n options || [],\n undefined,\n props.valueField || 'value'\n ),\n this.changeOptionValue,\n props.data\n );\n this.normalizeValue();\n }\n } else if (\n isEffectiveApi(props.source, props.data) &&\n isApiOutdated(\n prevProps.source,\n props.source,\n prevProps.data,\n props.data\n )\n ) {\n formItem\n .loadOptions(\n props.source,\n props.data,\n undefined,\n true,\n this.changeOptionValue\n )\n .then(() => this.normalizeValue());\n }\n }\n\n if (prevProps.value !== props.value || formItem?.expressionsInOptions) {\n formItem.syncOptions(undefined, props.data);\n }\n }\n\n componentWillUnmount() {\n this.props.removeHook?.(this.reload, 'init');\n this.toDispose.forEach(fn => fn());\n this.toDispose = [];\n }\n\n async dispatchOptionEvent(eventName: string, eventData: any = '') {\n const {dispatchEvent, options, data} = this.props;\n const rendererEvent = await dispatchEvent(\n eventName,\n createObject(data, {\n value: eventData,\n options\n })\n );\n // 返回阻塞标识\n return !!rendererEvent?.prevented;\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 (actionType === 'clear') {\n onChange?.('');\n } else if (actionType === 'reset') {\n onChange?.(resetValue ?? '');\n }\n }\n\n syncAutoFill(selectedOptions: Array<any>) {\n const {autoFill, multiple, onBulkChange, data} = this.props;\n const formItem = this.props.formItem as IFormItemStore;\n\n if (\n onBulkChange &&\n autoFill &&\n !isEmpty(autoFill) &&\n formItem.filteredOptions.length\n ) {\n const toSync = dataMapping(\n autoFill,\n multiple\n ? {\n items: selectedOptions.map(item =>\n createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n item,\n true\n )\n },\n item\n )\n )\n }\n : createObject(\n {\n ...data,\n ancestors: getTreeAncestors(\n formItem.filteredOptions,\n selectedOptions[0],\n true\n )\n },\n selectedOptions[0]\n )\n );\n\n Object.keys(toSync).forEach(key => {\n if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {\n toSync[key] = merge({}, data[key], toSync[key]);\n }\n });\n\n onBulkChange(toSync);\n }\n }\n\n // 当前值,跟设置预期的值格式不一致时自动转换。\n normalizeValue() {\n const {\n joinValues,\n extractValue,\n value,\n multiple,\n formItem,\n valueField,\n enableNodePath,\n pathSeparator,\n onChange\n } = this.props;\n\n if (!formItem || joinValues !== false || !formItem.options.length) {\n return;\n }\n\n if (\n extractValue === false &&\n (typeof value === 'string' || typeof value === 'number')\n ) {\n const selectedOptions = formItem.getSelectedOptions(value);\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n } else if (\n extractValue === true &&\n value &&\n !(\n (Array.isArray(value) &&\n value.every(\n val => typeof val === 'string' || typeof val === 'number'\n )) ||\n typeof value === 'string' ||\n typeof value === 'number'\n )\n ) {\n const selectedOptions = formItem\n .getSelectedOptions(value)\n .map(\n (selectedOption: Option) => selectedOption[valueField || 'value']\n );\n onChange?.(multiple ? selectedOptions.concat() : selectedOptions[0]);\n }\n }\n\n getWrappedInstance() {\n return this.input;\n }\n\n @autobind\n inputRef(ref: any) {\n this.input = ref;\n }\n\n @autobind\n async handleToggle(\n option: Option,\n submitOnChange?: boolean,\n changeImmediately?: boolean\n ) {\n const {onChange, formItem, value} = this.props;\n\n if (!formItem) {\n return;\n }\n\n let newValue: string | Array<Option> | Option = this.toggleValue(\n option,\n value\n );\n\n const isPrevented = await this.dispatchOptionEvent('change', newValue);\n isPrevented ||\n (onChange && onChange(newValue, submitOnChange, changeImmediately));\n }\n\n /**\n * 初始化时处理默认全选逻辑\n */\n defaultCheckAll() {\n const {value, formItem, setPrinstineValue} = this.props;\n // 如果有默认值\\回填值直接返回\n if (!formItem || formItem.getSelectedOptions(value).length) {\n return;\n }\n let valueArray = formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n setPrinstineValue?.(newValue);\n }\n\n /**\n * 选中的值经过joinValues和delimiter等规则处理输出规定格式的值\n * @param valueArray 选中值的数组\n * @returns 通过joinValues和delimiter等规则输出规定格式的值\n */\n formatValueArray(valueArray: Array<Option>) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n resetValue,\n multiple\n } = this.props;\n let newValue: string | Array<Option> | Option = '';\n if (multiple) {\n /** 兼容tree数据结构 */\n newValue =\n getTreeDepth(valueArray) > 1 ? flattenTree(valueArray) : valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .filter(item => item != null) /** tree的父节点可能没有value值 */\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .filter(item => item != null);\n }\n } else {\n newValue = valueArray[0] || resetValue;\n\n if (joinValues && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n return newValue;\n }\n\n @autobind\n async handleToggleAll() {\n const {value, onChange, formItem, valueField} = this.props;\n\n if (!formItem) {\n return;\n }\n const selectedOptions = formItem.getSelectedOptions(value);\n /** 打平并过滤掉valueField不存在的case,保证全选时对比length一致 */\n const filteredOptions = flattenTree(\n formItem.filteredOptions.concat()\n ).filter(item => item != null && item[valueField || 'value'] != null);\n let valueArray =\n selectedOptions.length === filteredOptions.length\n ? []\n : formItem.filteredOptions.concat();\n const newValue = this.formatValueArray(valueArray);\n const isPrevented = await this.dispatchOptionEvent('change', newValue);\n isPrevented || (onChange && onChange(newValue));\n }\n\n toggleValue(option: Option, originValue?: any) {\n const {\n joinValues,\n extractValue,\n valueField,\n delimiter,\n clearable,\n resetValue,\n multiple,\n formItem\n } = this.props;\n\n let valueArray =\n originValue !== undefined\n ? formItem!.getSelectedOptions(originValue).concat()\n : [];\n\n const idx = findIndex(\n valueArray,\n optionValueCompare(option[valueField || 'value'], valueField || 'value')\n );\n let newValue: string | Array<Option> | Option = '';\n\n if (multiple) {\n if (~idx) {\n valueArray.splice(idx, 1);\n } else {\n valueArray.push(option);\n }\n\n newValue = valueArray;\n\n if (joinValues) {\n newValue = (newValue as Array<any>)\n .map(item => item[valueField || 'value'])\n .join(delimiter);\n } else if (extractValue) {\n newValue = (newValue as Array<any>).map(\n item => item[valueField || 'value']\n );\n }\n } else {\n if (~idx && clearable) {\n valueArray.splice(idx, 1);\n } else {\n valueArray = [option];\n }\n\n newValue = valueArray[0] || resetValue;\n\n if ((joinValues || extractValue) && newValue) {\n newValue = (newValue as any)[valueField || 'value'];\n }\n }\n\n return newValue;\n }\n\n // 当有 action 触发,如果指定了 reload 目标组件,有可能会来到这里面来\n @autobind\n reload() {\n return this.reloadOptions();\n }\n\n @autobind\n reloadOptions(setError?: boolean, isInit = false) {\n const {source, formItem, data, onChange, setPrinstineValue, valueField} =\n this.props;\n\n if (formItem && isPureVariable(source as string)) {\n isAlive(formItem) &&\n formItem.setOptions(\n normalizeOptions(\n resolveVariableAndFilter(source as string, data, '| raw') || [],\n undefined,\n valueField\n ),\n this.changeOptionValue,\n data\n );\n return;\n } else if (!formItem || !isEffectiveApi(source, data)) {\n return;\n }\n\n return formItem.loadOptions(\n source,\n data,\n undefined,\n false,\n isInit ? setPrinstineValue : onChange,\n setError\n );\n }\n\n @autobind\n async deferLoad(option: Option) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = option.deferApi || deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n const json = await formItem?.deferLoadOptions(\n option,\n api,\n createObject(data, option)\n );\n // 触发事件通知,加载完成\n this.dispatchOptionEvent('loadFinished', json);\n }\n\n @autobind\n leftDeferLoad(option: Option, leftOptions: Option) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = option.deferApi || deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.deferLoadLeftOptions(\n option,\n leftOptions,\n api,\n createObject(data, option)\n );\n }\n\n @autobind\n expandTreeOptions(nodePathArr: any[]) {\n const {deferApi, source, env, formItem, data} = this.props;\n const api = deferApi || source;\n\n if (!api) {\n env.notify(\n 'error',\n '请在选项中设置 `deferApi` 或者表单项中设置 `deferApi`,用来加载子选项。'\n );\n return;\n }\n\n formItem?.expandTreeOptions(nodePathArr, api, createObject(data));\n }\n\n @autobind\n async initOptions(data: any) {\n await this.reloadOptions(false, true);\n const {formItem, name, multiple, defaultCheckAll} = this.props;\n if (!formItem) {\n return;\n }\n if (isAlive(formItem) && formItem.value) {\n setVariable(data, name!, formItem.value);\n }\n\n // 默认全选\n if (multiple && defaultCheckAll && formItem.filteredOptions?.length) {\n this.defaultCheckAll();\n }\n }\n\n focus() {\n this.input && this.input.focus && this.input.focus();\n }\n\n @autobind\n changeOptionValue(value: any) {\n const {\n onChange,\n formInited,\n setPrinstineValue,\n value: originValue\n } = this.props;\n\n if (formInited === false) {\n originValue === undefined && setPrinstineValue?.(value);\n } else {\n onChange?.(value);\n }\n }\n\n @autobind\n setOptions(options: Array<any>, skipNormalize = false) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem &&\n formItem.setOptions(\n skipNormalize\n ? options\n : normalizeOptions(options || [], undefined, this.props.valueField),\n this.changeOptionValue,\n this.props.data\n );\n }\n\n @autobind\n syncOptions() {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.syncOptions(undefined, this.props.data);\n }\n\n @autobind\n setLoading(value: boolean) {\n const formItem = this.props.formItem as IFormItemStore;\n formItem && formItem.setLoading(value);\n }\n\n @autobind\n async handleOptionAdd(\n idx: number | Array<number> = -1,\n value?: any,\n skipForm: boolean = false\n ) {\n let {\n addControls,\n disabled,\n labelField,\n onOpenDialog,\n optionLabel,\n addApi,\n source,\n data,\n valueField,\n formItem: model,\n createBtnLabel,\n env,\n translate: __\n } = this.props;\n\n // 禁用或者没有配置 name\n if (disabled || !model) {\n return;\n }\n\n // 用户没有配置表单项,则自动创建一个 label 输入\n if (!skipForm && (!Array.isArray(addControls) || !addControls.length)) {\n addControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n required: true,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n const parent = Array.isArray(idx)\n ? getTree(model.options, idx.slice(0, -1))\n : undefined;\n\n const ctx: any = createObject(\n data,\n Array.isArray(idx)\n ? {\n parent: parent,\n ...value\n }\n : value\n );\n\n let result: any = skipForm\n ? ctx\n : await onOpenDialog(\n {\n type: 'dialog',\n title: createBtnLabel || `新增${optionLabel || '选项'}`,\n body: {\n type: 'form',\n api: addApi,\n controls: [\n {\n type: 'hidden',\n name: 'idx',\n value: idx\n },\n {\n type: 'hidden',\n name: 'parent',\n value: parent\n },\n ...(addControls || [])\n ]\n }\n },\n ctx\n );\n\n // 单独发请求\n if (skipForm && addApi) {\n try {\n const payload = await env.fetcher(addApi!, result, {\n method: 'post'\n });\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('Options.createFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 有 result 说明弹框点了确认。否则就是取消了。\n if (!result) {\n return;\n }\n\n // 没走服务端的。\n if (!result.hasOwnProperty(valueField || 'value')) {\n result = {\n ...result,\n [valueField || 'value']: result[labelField || 'label']\n };\n }\n // 触发事件通知\n const isPrevented = await this.dispatchOptionEvent('add', {\n ...result,\n idx\n });\n if (isPrevented) {\n return;\n }\n\n // 如果是懒加载的,只懒加载当前节点。\n if (parent?.defer) {\n await this.deferLoad(parent);\n } else if (source && addApi) {\n // 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了\n // 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。\n this.reload();\n } else {\n // 否则直接前端变更 options\n let options = model.options.concat();\n if (Array.isArray(idx)) {\n options = spliceTree(options, idx, 0, {...result});\n } else {\n ~idx\n ? options.splice(idx, 0, {...result})\n : options.push({...result});\n }\n model.setOptions(options, this.changeOptionValue, data);\n }\n }\n\n @autobind\n async handleOptionEdit(\n value: any,\n origin: any = value,\n skipForm: boolean = false\n ) {\n let {\n editControls,\n disabled,\n labelField,\n onOpenDialog,\n editApi,\n env,\n source,\n data,\n formItem: model,\n optionLabel,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n if (!skipForm && (!Array.isArray(editControls) || !editControls.length)) {\n editControls = [\n {\n type: 'text',\n name: labelField || 'label',\n label: false,\n placeholder: __('Options.addPlaceholder')\n }\n ];\n }\n\n let result = skipForm\n ? value\n : await onOpenDialog(\n {\n type: 'dialog',\n title: __('Options.editLabel', {\n label: optionLabel || __('Options.label')\n }),\n body: {\n type: 'form',\n api: editApi,\n controls: editControls\n }\n },\n createObject(data, value)\n );\n\n // 单独发请求\n if (skipForm && editApi) {\n try {\n const payload = await env.fetcher(\n editApi!,\n createObject(data, result),\n {\n method: 'post'\n }\n );\n\n if (!payload.ok) {\n env.notify('error', payload.msg || __('saveFailed'));\n result = null;\n } else {\n result = payload.data || result;\n }\n } catch (e) {\n result = null;\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n // 没有结果,说明取消了。\n if (!result) {\n return;\n }\n\n // 触发事件通知\n const isPrevented = await this.dispatchOptionEvent('edit', result);\n if (isPrevented) {\n return;\n }\n\n if (source && editApi) {\n this.reload();\n } else {\n const indexes = findTreeIndex(model.options, item => item === origin);\n\n if (indexes) {\n model.setOptions(\n spliceTree(model.options, indexes, 1, {\n ...origin,\n ...result\n }),\n this.changeOptionValue,\n data\n );\n }\n }\n }\n\n @autobind\n async handleOptionDelete(value: any) {\n let {\n deleteConfirmText,\n disabled,\n data,\n deleteApi,\n env,\n formItem: model,\n source,\n valueField,\n translate: __\n } = this.props;\n\n if (disabled || !model) {\n return;\n }\n\n const ctx = createObject(data, value);\n\n // 如果配置了 deleteConfirmText 让用户先确认。\n const confirmed = deleteConfirmText\n ? await env.confirm(filter(__(deleteConfirmText), ctx))\n : true;\n if (!confirmed) {\n return;\n }\n\n // 触发事件通知\n const isPrevented = await this.dispatchOptionEvent('delete', ctx);\n if (isPrevented) {\n return;\n }\n\n // 通过 deleteApi 删除。\n try {\n if (!deleteApi) {\n throw new Error(__('Options.deleteAPI'));\n }\n\n const result = await env.fetcher(deleteApi!, ctx, {\n method: 'delete'\n });\n\n if (!result.ok) {\n env.notify('error', result.msg || __('deleteFailed'));\n } else if (source) {\n this.reload();\n } else {\n const options = model.options.concat();\n const indexes = findTreeIndex(\n options,\n item => item[valueField || 'value'] == value[valueField || 'value']\n );\n\n if (indexes) {\n model.setOptions(\n spliceTree(options, indexes, 1),\n this.changeOptionValue,\n data\n );\n }\n }\n } catch (e) {\n console.error(e);\n env.notify('error', e.message);\n }\n }\n\n render() {\n const {\n value,\n formItem,\n addApi,\n editApi,\n deleteApi,\n creatable,\n editable,\n removable,\n enableNodePath,\n pathSeparator,\n delimiter = ',',\n labelField = 'label',\n valueField = 'value'\n } = this.props;\n\n const {nodePathArray, nodeValueArray} = normalizeNodePath(\n value,\n enableNodePath,\n labelField,\n valueField,\n pathSeparator,\n delimiter\n );\n\n return (\n <Control\n {...this.props}\n ref={this.inputRef}\n options={formItem ? formItem.filteredOptions : []}\n onToggle={this.handleToggle}\n onToggleAll={this.handleToggleAll}\n selectedOptions={\n formItem\n ? formItem.getSelectedOptions(\n value,\n enableNodePath ? nodeValueArray : undefined\n )\n : []\n }\n nodePath={nodePathArray}\n loading={formItem ? formItem.loading : false}\n setLoading={this.setLoading}\n setOptions={this.setOptions}\n syncOptions={this.syncOptions}\n reloadOptions={this.reload}\n deferLoad={this.deferLoad}\n leftDeferLoad={this.leftDeferLoad}\n expandTreeOptions={this.expandTreeOptions}\n creatable={\n creatable !== false && isEffectiveApi(addApi) ? true : creatable\n }\n editable={editable || (editable !== false && isEffectiveApi(editApi))}\n removable={\n removable || (removable !== false && isEffectiveApi(deleteApi))\n }\n onAdd={this.handleOptionAdd}\n onEdit={this.handleOptionEdit}\n onDelete={this.handleOptionDelete}\n />\n );\n }\n }\n\n return registerFormItem({\n ...(config as FormItemBasicConfig),\n strictMode: false,\n component: FormOptionsItem\n });\n}\n\nexport function OptionsControl(config: OptionsBasicConfig) {\n return function <T extends React.ComponentType<OptionsControlProps>>(\n component: T\n ): T {\n const renderer = registerOptionsControl({\n ...config,\n component: component\n });\n return renderer.component as any;\n };\n}\n\nexport function highlight(\n text: string,\n input?: string,\n hlClassName: string = 'is-matched'\n) {\n if (!input) {\n return text;\n }\n\n text = String(text);\n const reg = new RegExp(input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'), 'ig');\n if (!reg.test(text)) {\n return text;\n }\n\n const dom: Array<any> = [];\n\n let start = 0;\n let match = null;\n\n reg.lastIndex = 0;\n while ((match = reg.exec(text))) {\n const prev = text.substring(start, match.index);\n prev && dom.push(<span key={dom.length}>{prev}</span>);\n\n match[0] &&\n dom.push(\n <span className={hlClassName} key={dom.length}>\n {match[0]}\n </span>\n );\n start = match.index + match[0].length;\n }\n const rest = text.substring(start);\n rest && dom.push(<span key={dom.length}>{rest}</span>);\n\n // const parts = text.split(reg);\n\n // parts.forEach((text: string, index) => {\n // text && dom.push(<span key={index}>{text}</span>);\n // dom.push(\n // <span className={hlClassName} key={`${index}-hl`}>\n // {input}\n // </span>\n // );\n // });\n\n // dom.pop();\n\n return dom;\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -4,6 +4,7 @@ import { Api, Action } from '../../types';
|
|
4
4
|
import { SchemaApi } from '../../Schema';
|
5
5
|
import { TransferControlSchema } from './Transfer';
|
6
6
|
import type { TooltipObject } from '../../components/TooltipWrapper';
|
7
|
+
import type { SchemaClassName } from '../../Schema';
|
7
8
|
/**
|
8
9
|
* Select 下拉选择框。
|
9
10
|
* 文档:https://baidu.gitee.io/amis/docs/components/form/select
|
@@ -86,7 +87,11 @@ export interface SelectControlSchema extends FormOptionsControl {
|
|
86
87
|
/**
|
87
88
|
* 收纳标签的Popover配置
|
88
89
|
*/
|
89
|
-
overflowTagPopover
|
90
|
+
overflowTagPopover?: object;
|
91
|
+
/**
|
92
|
+
* 选项的自定义CSS类名
|
93
|
+
*/
|
94
|
+
optionClassName?: SchemaClassName;
|
90
95
|
}
|
91
96
|
export interface SelectProps extends OptionsControlProps {
|
92
97
|
autoComplete?: Api;
|
@@ -191,8 +191,10 @@ var SelectControl = /** @class */ (function (_super) {
|
|
191
191
|
return combinedOptions;
|
192
192
|
};
|
193
193
|
SelectControl.prototype.renderMenu = function (option, state) {
|
194
|
-
var _a = this.props, menuTpl = _a.menuTpl, render = _a.render, data = _a.data;
|
194
|
+
var _a = this.props, menuTpl = _a.menuTpl, render = _a.render, data = _a.data, optionClassName = _a.optionClassName;
|
195
195
|
return render("menu/".concat(state.index), menuTpl, {
|
196
|
+
showNativeTitle: true,
|
197
|
+
className: (0, classnames_1.default)('Select-option-content', optionClassName),
|
196
198
|
data: (0, helper_1.createObject)((0, helper_1.createObject)(data, state), option)
|
197
199
|
});
|
198
200
|
};
|