amis 1.9.1-beta.3 → 1.9.1-beta.4
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/SchemaRenderer.js +6 -9
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/CmptAction.js +4 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/components/WithRemoteConfig.d.ts +2 -2
- package/lib/components/WithRemoteConfig.js +6 -3
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/table/ItemActionsWrapper.d.ts +10 -0
- package/lib/components/table/ItemActionsWrapper.js +25 -0
- package/lib/components/table/ItemActionsWrapper.js.map +13 -0
- package/lib/components/table/index.d.ts +48 -41
- package/lib/components/table/index.js +46 -18
- package/lib/components/table/index.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Form/JSONSchema.js +3 -3
- package/lib/renderers/Form/JSONSchema.js.map +2 -2
- package/lib/renderers/Form/Options.js +11 -5
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +14 -2
- package/lib/renderers/Table-v2/index.js +33 -3
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +13 -2
- 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/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk.js +1299 -1297
- 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/SchemaRenderer.tsx +1 -4
- package/src/actions/CmptAction.ts +4 -4
- package/src/components/WithRemoteConfig.tsx +20 -11
- package/src/components/table/ItemActionsWrapper.tsx +32 -0
- package/src/components/table/index.tsx +115 -58
- package/src/renderers/Form/JSONSchema.tsx +3 -3
- package/src/renderers/Form/Options.tsx +17 -7
- package/src/renderers/Form/wrapControl.tsx +0 -1
- package/src/renderers/Table-v2/index.tsx +65 -2
| @@ -260,14 +260,19 @@ function registerOptionsControl(config) { | |
| 260 260 | 
             
                        var _a = this.props, joinValues = _a.joinValues, extractValue = _a.extractValue, valueField = _a.valueField, delimiter = _a.delimiter, resetValue = _a.resetValue, multiple = _a.multiple;
         | 
| 261 261 | 
             
                        var newValue = '';
         | 
| 262 262 | 
             
                        if (multiple) {
         | 
| 263 | 
            -
                             | 
| 263 | 
            +
                            /** 兼容tree数据结构 */
         | 
| 264 | 
            +
                            newValue =
         | 
| 265 | 
            +
                                (0, helper_1.getTreeDepth)(valueArray) > 1 ? (0, helper_1.flattenTree)(valueArray) : valueArray;
         | 
| 264 266 | 
             
                            if (joinValues) {
         | 
| 265 267 | 
             
                                newValue = newValue
         | 
| 266 268 | 
             
                                    .map(function (item) { return item[valueField || 'value']; })
         | 
| 269 | 
            +
                                    .filter(function (item) { return item != null; }) /** tree的父节点可能没有value值 */
         | 
| 267 270 | 
             
                                    .join(delimiter);
         | 
| 268 271 | 
             
                            }
         | 
| 269 272 | 
             
                            else if (extractValue) {
         | 
| 270 | 
            -
                                newValue = newValue | 
| 273 | 
            +
                                newValue = newValue
         | 
| 274 | 
            +
                                    .map(function (item) { return item[valueField || 'value']; })
         | 
| 275 | 
            +
                                    .filter(function (item) { return item != null; });
         | 
| 271 276 | 
             
                            }
         | 
| 272 277 | 
             
                        }
         | 
| 273 278 | 
             
                        else {
         | 
| @@ -280,16 +285,17 @@ function registerOptionsControl(config) { | |
| 280 285 | 
             
                    };
         | 
| 281 286 | 
             
                    FormOptionsItem.prototype.handleToggleAll = function () {
         | 
| 282 287 | 
             
                        return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
         | 
| 283 | 
            -
                            var _a, value, onChange, formItem, selectedOptions, valueArray, newValue, isPrevented;
         | 
| 288 | 
            +
                            var _a, value, onChange, formItem, valueField, selectedOptions, filteredOptions, valueArray, newValue, isPrevented;
         | 
| 284 289 | 
             
                            return (0, tslib_1.__generator)(this, function (_b) {
         | 
| 285 290 | 
             
                                switch (_b.label) {
         | 
| 286 291 | 
             
                                    case 0:
         | 
| 287 | 
            -
                                        _a = this.props, value = _a.value, onChange = _a.onChange, formItem = _a.formItem;
         | 
| 292 | 
            +
                                        _a = this.props, value = _a.value, onChange = _a.onChange, formItem = _a.formItem, valueField = _a.valueField;
         | 
| 288 293 | 
             
                                        if (!formItem) {
         | 
| 289 294 | 
             
                                            return [2 /*return*/];
         | 
| 290 295 | 
             
                                        }
         | 
| 291 296 | 
             
                                        selectedOptions = formItem.getSelectedOptions(value);
         | 
| 292 | 
            -
                                         | 
| 297 | 
            +
                                        filteredOptions = (0, helper_1.flattenTree)(formItem.filteredOptions.concat()).filter(function (item) { return item != null && item[valueField || 'value'] != null; });
         | 
| 298 | 
            +
                                        valueArray = selectedOptions.length === filteredOptions.length
         | 
| 293 299 | 
             
                                            ? []
         | 
| 294 300 | 
             
                                            : formItem.filteredOptions.concat();
         | 
| 295 301 | 
             
                                        newValue = this.formatValueArray(valueArray);
         | 
| @@ -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} 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        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        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} = this.props;\n\n      if (!formItem) {\n        return;\n      }\n      const selectedOptions = formItem.getSelectedOptions(value);\n      let valueArray =\n        selectedOptions.length === formItem.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            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            () => 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            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 | 
             
            }
         | 
| @@ -6,8 +6,8 @@ | |
| 6 6 | 
             
                    "/src/renderers/Form/wrapControl.tsx"
         | 
| 7 7 | 
             
                ],
         | 
| 8 8 | 
             
                "names": [],
         | 
| 9 | 
            -
                "mappings": ";;;;AAAA,6DAA0B;AAE1B,0EAAsC;AAGtC,2CAAwE;AACxE,6CAS4B;AAE5B,uCAA2D;AAE3D,iDAAmD;AACnD,mDAAwC;AACxC,yCAAoC;AACpC,iGAA0D;AAC1D,qDAAkD;AAGlD,2CAA6C;AAiD7C,SAAgB,WAAW,CAEzB,iBAAoB;;IAOpB,IAAM,MAAM,GAAG,IAAA,iCAAmB,EAChC,IAAA,6BAAa,EACX,IAAA,qBAAQ;YACQ,wCAA2B;YAiBvC,iBAAY,KAAiB;;gBAA7B,YACE,kBAAM,KAAK,CAAC,SA2Gb;gBA1HD,WAAK,GAAS,SAAS,CAAC;gBASxB,oBAAc,GAAG,IAAA,kBAAO,EAAC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,EAAE,GAAG,EAAE;oBACxD,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAKK,IAAA,KA+BF,KAAI,CAAC,KAAK,EA9BD,IAAI,eAAA,EACf,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,eAuBC,EAtBC,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,SAAS,eAAA,EACT,gBAAgB,sBAAA,EAChB,KAAK,WAEK,CAAC;gBAEf,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBACzC,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBACzC,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBACjD,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBAC3D,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBAC7C,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;gBAE7C,IAAI,CAAC,IAAI,EAAE;;iBAEV;gBAED,IAAI,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACjC,IAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAC/B,EAAE,EAAE,IAAA,aAAI,GAAE;oBACV,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK;oBACtB,SAAS,EAAE,wBAAa,CAAC,IAAI;oBAC7B,QAAQ,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE;oBACnB,IAAI,MAAA;iBACL,CAAmB,CAAC;gBACrB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,gBAAgB;gBAChB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,CAAC,KAAK,CAAC,CAAC;gBAChC,KAAK,CAAC,MAAM,CAAC;oBACX,EAAE,IAAA;oBACF,IAAI,MAAA;oBACJ,QAAQ,UAAA;oBACR,MAAM,QAAA;oBACN,KAAK,OAAA;oBACL,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,UAAA;oBACR,SAAS,WAAA;oBACT,UAAU,YAAA;oBACV,UAAU,YAAA;oBACV,UAAU,YAAA;oBACV,YAAY,cAAA;oBACZ,WAAW,aAAA;oBACX,QAAQ,UAAA;oBACR,kBAAkB,oBAAA;oBAClB,WAAW,aAAA;oBACX,SAAS,WAAA;oBACT,SAAS,WAAA;oBACT,gBAAgB,kBAAA;oBAChB,KAAK,OAAA;iBACN,CAAC,CAAC;gBAEH,8BAA8B;gBAC9B,IACE,KAAI,CAAC,KAAK,CAAC,MAAM;oBACjB,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,0CAAE,SAAS,MAAK,kBAAU,CAAC,IAAI,EAChD;oBACA,IAAM,KAAK,GAAG,IAAI,CAAC,WAA0B,CAAC;oBAC9C,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;iBAC9B;gBAED,WAAW;gBACX,KAAK,CAAC,cAAc,CAClB,MAAA,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,KAAK,CACxD,CAAC;gBAEF,2BAA2B;gBAC3B,IACE,QAAQ;oBACR,OAAO,SAAS,KAAK,WAAW;oBAChC,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,KAAK,WAAW;oBAC/D,kBAAkB;oBAClB,mCAAmC;oBACnC,uDAAuD;oBACvD,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,MAAK,kBAAU,CAAC,IAAI,EACpC;oBACA,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBACnD;;YACH,CAAC;YAED,mCAAiB,GAAjB;gBAAA,iBA+BC;gBA9BO,IAAA,KAKF,IAAI,CAAC,KAAK,EAJZ,KAAK,WAAA,EACM,IAAI,eAAA,EACf,eAAyB,EAAf,IAAI,UAAA,EAAE,QAAQ,cAAA,EACxB,OAAO,aACK,CAAC;gBAEf,0BAA0B;gBAC1B,IAAI,CAAC,KAAK,GAAG;oBACX,KAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC,CAAC;gBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAE/B,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAuB,CAAC;gBAC9C,IAAI,QAAQ,IAAI,QAAQ,EAAE;oBACxB,IAAI,eAAa,GAAG,IAAA,kBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,KAAK,GAAG;wBACX,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;wBACxC,OAAO,eAAa,CAClB,KAAI,CAAC,KAAK,CAAC,IAAI,EACf,KAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CACL,CAAC,IAAI,CAAC,UAAC,GAAQ;4BACd,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;gCAC1D,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;6BAC5C;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC;oBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,KAAK,CAAC,CAAC;iBACvB;YACH,CAAC;YAED,oCAAkB,GAAlB,UAAmB,SAAqB;gBACtC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;gBAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEzB,IACE,KAAK;oBACL,IAAA,mBAAU,EACR;wBACE,IAAI;wBACJ,aAAa;wBACb,kBAAkB;wBAClB,OAAO;wBACP,UAAU;wBACV,QAAQ;wBACR,UAAU;wBACV,WAAW;wBACX,YAAY;wBACZ,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,UAAU;wBACV,oBAAoB;wBACpB,aAAa;wBACb,WAAW;wBACX,WAAW;wBACX,OAAO;qBACR,EACD,SAAS,CAAC,OAAO,EACjB,KAAK,CAAC,OAAO,CACd,EACD;oBACA,KAAK,CAAC,MAAM,CAAC;wBACX,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;wBAChC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;wBACpB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;wBAC5B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;wBAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;wBAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;wBAChC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;wBAClC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;wBACpC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;wBACpC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;wBACpC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;wBACxC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB;wBACxC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;wBACtC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;wBAChC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB;wBACpD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;wBACtC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;wBAClC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;wBAClC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;qBAC3B,CAAC,CAAC;iBACJ;gBAED,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE;oBAC/C,iBAAiB;oBACjB,IACE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;wBAC/B,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAC9B;wBACA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBACnC;iBACF;qBAAM;gBACL,yBAAyB;gBACzB,KAAK;oBACL,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;oBAC7B,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,QAAQ,CAAC,EAC5D;oBACA,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1D,IACE,CAAC,KAAK,KAAK,SAAS;wBAClB,IAAA,oBAAW,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;4BACxC,IAAA,oBAAW,EAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACnD,KAAK,KAAK,KAAK,CAAC,QAAQ,EACxB;wBACA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;qBAC7B;iBACF;YACH,CAAC;YAED,sCAAoB,GAApB;;gBACE,IAAI,CAAC,IAAI,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC;gBAChD,IAAI,CAAC,KAAK,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC;gBAClD,IAAI,CAAC,KAAK,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA,CAAC;gBAC3D,+BAA+B;gBAE/B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAA,IAAI,CAAC,QAAQ,+CAAb,IAAI,CAAa,CAAC;gBAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC;YAED,8BAAY,GAAZ;;gBACQ,IAAA,KAAyC,IAAI,CAAC,KAAK,EAAvC,IAAI,eAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAc,CAAC;gBAE1D,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,CAAC,MAAM;qBACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA;oBACjB,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC,SAAS,MAAK,kBAAU,CAAC,IAAI,EAC/C;oBACA,IAAM,KAAK,GAAG,IAAI,CAAC,WAA0B,CAAC;oBAC9C,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACrC;gBAED,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,QAAQ;wBACN,IAAA,yBAAO,EAAC,QAAQ,CAAC;wBACjB,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAEzC,IAAI,CAAC,KAAK,CAAC,kBAAkB;yBAC3B,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC;oBAEtD,IAAA,yBAAO,EAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACzD;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC;YAED,4BAAU,GAAV,UAAW,OAAY;gBAAvB,iBA8CC;gBA7CO,IAAA,KAKF,IAAI,CAAC,KAAK,EAJZ,OAAO,aAAA,EACP,UAAU,gBAAA,EACC,IAAI,eAAA,EACL,IAAI,kBACF,CAAC;gBAEf,8BAA8B;gBAC9B,OAAO,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE;oBAC5C,OAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;iBACxC;gBAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;oBAC7C,IAAM,UAAQ,GAAG,IAAI,CAAC,KAAuB,CAAC;oBAC9C,IAAI,UAAQ,GAAG,IAAA,kBAAS,EAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,IAAI,GAAG;wBACV,UAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;wBAE1C,OAAO,UAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAC1D,UAAA,GAAG;4BACD,IACE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gCAC/C,GAAG,EACH;gCACA,UAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;6BAC9C;wBACH,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC;oBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;qBAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;oBAChC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;iBACvB;gBAED,eAAe;gBACf,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAyB,CAAC;gBAE9C,IAAI,OAAO,EAAE;oBACX,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACxC;qBAAM,IAAI,SAAS,EAAE;oBACpB,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;iBACvC;YACH,CAAC;YAEK,0BAAQ,GAAd;;;;;;gCACQ,KAAiD,IAAI,CAAC,KAAK,EAA/C,IAAI,eAAA,EAAE,IAAI,UAAA,EAAE,qBAAqB,2BAAA,CAAe;qCAE9D,IAAI,CAAC,KAAK,EAAV,wBAAU;qCAEV,CAAA,IAAI,CAAC,KAAK,CAAC,MAAM;qCACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA;oCACjB,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,kBAAU,CAAC,IAAI,CAAA,EAF9C,wBAE8C;gCAExC,KAAK,GAAG,IAAI,CAAC,WAA0B,CAAC;gCACxC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CACA,CAAC;gCACZ,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;oCACxC,OAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gCAAnB,CAAmB,CACpB,CAAC;gCACO,qBAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAA;;gCAAzC,MAAM,GAAG,SAAgC,CAAC;;;gCAEpC,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CACtB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAC/B,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAnB,CAAmB,CAAC,CAAC;qCAChC,CAAA,aAAa,IAAI,aAAa,CAAC,MAAM,CAAA,EAArC,wBAAqC;gCAC9B,qBAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAA;;gCAAzC,MAAM,GAAG,SAAgC,CAAC;;;gCAIhD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oCAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;wCAC9B,qBAAqB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;qCACtD;yCAAM;wCACL,qBAAqB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;qCACrD;iCACF;;;;;aACF;YAED,8BAAY,GAAZ,UACE,KAAU,EACV,cAA2D,EAC3D,iBAAkC;gBADlC,+BAAA,EAAA,iBAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc;gBAC3D,kCAAA,EAAA,yBAAkC;gBAE5B,IAAA,KAUF,IAAI,CAAC,KAAK,EATD,IAAI,eAAA,EACf,QAAQ,cAAA,EACR,eAIC,EAHC,IAAI,UAAA,EACJ,OAAO,aAAA,EACY,uBAAuB,uBAAA,EAE5C,UAAU,gBAAA,EACV,IAAI,UACQ,CAAC;gBAEf,IACE,CAAC,IAAI,CAAC,KAAK;oBACX,qBAAqB;oBACrB,CAAC;wBACC,SAAS;wBACT,OAAO;wBACP,MAAM;wBACN,OAAO;wBACP,MAAM;wBACN,aAAa;qBACd,CAAC,OAAO,CAAC,IAAI,CAAC,EACf;oBACA,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAC;oBACnD,OAAO;iBACR;gBAED,IAAI,OAAO,EAAE;oBACX,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAClC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACxC;gBAED,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEjC,IAAI,iBAAiB,IAAI,uBAAuB,IAAI,CAAC,UAAU,EAAE;oBAC/D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;iBACjC;qBAAM;oBACL,yDAAyD;oBACzD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;iBACrC;YACH,CAAC;YAED,4BAAU,GAAV,UACE,cAA2D;;gBAA3D,+BAAA,EAAA,iBAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc;gBAErD,IAAA,KAgBF,IAAI,CAAC,KAAK,EAfD,IAAI,eAAA,EACf,QAAQ,cAAA,EACR,eAQC,EAPC,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,KAAK,WAAA,EACL,IAAI,UAAA,EACM,gBAAgB,cAAA,EAC1B,SAAS,eAAA,EACT,SAAS,eAAA,EAEX,IAAI,UAAA,EACJ,GAAG,SAAA,EACH,gBAAgB,sBAAA,EAChB,YAAY,kBACA,CAAC;gBAEf,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,OAAO;iBACR;gBACD,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAClC,IAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAE3D,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACtB,OAAO;iBACR;gBAED,IAAI,IAAI,KAAK,gBAAgB,EAAE;oBAC7B,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CACV;wBACE,SAAS,EAAE,gBAAgB;wBAC3B,SAAS,EAAE;4BACT,EAAE,IAAA;4BACF,IAAI,MAAA;4BACJ,KAAK,OAAA;4BACL,IAAI,MAAA;4BACJ,KAAK,OAAA;yBACN;qBACF,EACD,IAAI,CAAC,KAAK,CACX,CAAC;iBACH;gBAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACpC,IACE,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAK,KAAK,EAC/D;oBACA,OAAO;iBACR;gBACD,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACvC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,EAAE,IAAK,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;gBAElD;gBACE,uCAAuC;gBACvC,gCAAgC;gBAChC,gCAAgC;gBAChC,gBAAgB,KAAK,IAAI;oBACzB,CAAC,gBAAgB,KAAK,KAAK,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,EAC3D;oBACA,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;qBAAM,IAAI,gBAAgB,KAAK,KAAK,EAAE;oBACrC,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE,CAAC;iBACrB;YACH,CAAC;YAED,4BAAU,GAAV,UAAW,CAAM;gBACT,IAAA,KAGF,IAAI,CAAC,KAAK,EAFZ,MAAM,YAAA,EACI,cAAc,4BACZ,CAAC;gBAEf,IAAI,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE;oBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;gBAED,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;YAED,mCAAiB,GAAjB,UAAkB,KAAU;gBAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,OAAO;iBACR;gBAEK,IAAA,KAOF,IAAI,CAAC,KAAK,EAND,IAAI,eAAA,EACf,IAAI,UAAA,EACM,OAAO,qBAAA,EACjB,QAAQ,cAAA,EACD,QAAQ,WAAA,EACf,IAAI,UACQ,CAAC;gBAEf,IAAI,OAAO,EAAE;oBACX,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACxC;gBAED,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,EAAE,IAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;YAED,0BAAQ,GAAR;gBACQ,IAAA,KAAsC,IAAI,CAAC,KAAK,EAApC,IAAI,eAAA,EAAW,OAAO,aAAc,CAAC;gBACvD,IAAI,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAElE,IAAI,OAAO,CAAC,MAAM,EAAE;oBAClB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBACrC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YAED,+BAA+B;YAC/B,0BAAQ,GAAR,UAAS,KAAU,EAAE,GAAY;;gBACzB,IAAA,KAGF,IAAI,CAAC,KAAK,EAFF,IAAI,kBAAA,EACd,YAAY,kBACA,CAAC;gBAEf,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE;oBACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBAC1B;qBAAM;oBACL,YAAY;wBACV,YAAY;4BACV,GAAC,GAAG,IAAG,KAAK;gCACZ,CAAC;iBACN;YACH,CAAC;YAED,wBAAM,GAAN;gBACQ,IAAA,KAQF,IAAI,CAAC,KAAK,EAPZ,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,QAAQ,cAAA,EACC,OAAO,aAAA,EAChB,KAAK,WAAA,EACL,IAAI,UAAA,EACJ,SAAS,eACG,CAAC;gBAEf,IAAI,SAAS,EAAE;oBACb,OAAO,IAAI,CAAC;iBACb;gBAED,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEzB,IAAM,aAAa,GAAQ;oBACzB,WAAW,EAAE,YAAY;oBACzB,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ;oBACtC,QAAQ,EAAE,IAAI,CAAC,KAAK;oBACpB,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;oBAClC,GAAG,EAAE,IAAI,CAAC,UAAU;oBACpB,IAAI,EAAE,IAAI,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA;oBACzB,KAAK,OAAA;oBACL,YAAY,EAAE,OAAO,CAAC,KAAK;oBAC3B,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAE3B,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC9C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;iBAC1C,CAAC;gBAEF,OAAO,CACL,8BAAC,iBAAiB,4BACX,IAAI,CAAC,KAGR,EACE,aAAa,EACjB,CACH,CAAC;YACJ,CAAC;YACH,cAAC;QAAD,CAAC,AA9kBD,CAAc,eAAK,CAAC,SAAS;QASpB,cAAW,GAAG,sBAAc;QAC5B,eAAY,GAAG,EAAG;YAqkBrB,CACT,EACD,iBAAiB,CAClB,CAAC;IAEF,OAAO,MAEN,CAAC;AACJ,CAAC;AAnmBD,kCAmmBC",
         | 
| 9 | 
            +
                "mappings": "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",
         | 
| 10 10 | 
             
                "sourcesContent": [
         | 
| 11 | 
            -
                    "import React from 'react';\nimport {IFormStore, IFormItemStore} from '../../store/form';\nimport debouce from 'lodash/debounce';\n\nimport {RendererProps, Renderer} from '../../factory';\nimport {ComboStore, IComboStore, IUniqueGroup} from '../../store/combo';\nimport {\n  anyChanged,\n  promisify,\n  isObject,\n  guid,\n  isEmpty,\n  autobind,\n  getVariable,\n  createObject\n} from '../../utils/helper';\nimport {IIRendererStore, IRendererStore} from '../../store';\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {reaction} from 'mobx';\nimport {FormItemStore} from '../../store/formItem';\nimport {isAlive} from 'mobx-state-tree';\nimport {observer} from 'mobx-react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {withRootStore} from '../../WithRootStore';\nimport {FormBaseControl, FormItemWrap} from './Item';\nimport {Api} from '../../types';\nimport {TableStore} from '../../store/table';\n\nexport interface ControlOutterProps extends RendererProps {\n  formStore?: IFormStore;\n  name?: string;\n  value?: any;\n  id?: string;\n  type?: string;\n  required?: boolean;\n  validations: string | {[propsName: string]: any};\n  validationErrors: {[propsName: string]: any};\n  validateOnChange: boolean;\n  multiple?: boolean;\n  delimiter?: string;\n  joinValues?: boolean;\n  extractValue?: boolean;\n  valueField?: string;\n  labelField?: string;\n  unique?: boolean;\n  selectFirst?: boolean;\n  autoFill?: any;\n  clearValueOnHidden?: boolean;\n  validateApi?: Api;\n  submitOnChange?: boolean;\n  validate?: (value: any, values: any, name: string) => any;\n  formItem?: IFormItemStore;\n  addHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n  removeHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n  $schema: {\n    pipeIn?: (value: any, data: any) => any;\n    pipeOut?: (value: any, originValue: any, data: any) => any;\n    [propName: string]: any;\n  };\n  store?: IIRendererStore;\n  onChange?: (\n    value: any,\n    name: string,\n    submit?: boolean,\n    changePristine?: boolean\n  ) => void;\n  formItemDispatchEvent: (type: string, data: any) => void;\n}\n\nexport interface ControlProps {\n  onBulkChange?: (values: Object) => void;\n  onChange?: (value: any, name: string, submit: boolean) => void;\n  store: IIRendererStore;\n}\n\nexport function wrapControl<\n  T extends React.ComponentType<React.ComponentProps<T> & ControlProps>\n>(ComposedComponent: T) {\n  type OuterProps = JSX.LibraryManagedAttributes<\n    T,\n    Omit<React.ComponentProps<T>, keyof ControlProps>\n  > &\n    ControlOutterProps;\n\n  const result = hoistNonReactStatic(\n    withRootStore(\n      observer(\n        class extends React.Component<OuterProps> {\n          public model: IFormItemStore | undefined;\n          control?: any;\n          value?: any = undefined;\n          hook?: () => any;\n          hook2?: () => any;\n          hook3?: () => any;\n          reaction?: () => void;\n\n          static contextType = ScopedContext;\n          static defaultProps = {};\n\n          lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n            trailing: true,\n            leading: false\n          });\n\n          constructor(props: OuterProps) {\n            super(props);\n\n            const {\n              formStore: form,\n              formItem,\n              rootStore,\n              store,\n              onChange,\n              data,\n              $schema: {\n                name,\n                id,\n                type,\n                required,\n                validations,\n                validationErrors,\n                unique,\n                value,\n                multiple,\n                delimiter,\n                valueField,\n                labelField,\n                joinValues,\n                extractValue,\n                selectFirst,\n                autoFill,\n                clearValueOnHidden,\n                validateApi,\n                minLength,\n                maxLength,\n                validateOnChange,\n                label\n              }\n            } = this.props;\n\n            this.getValue = this.getValue.bind(this);\n            this.setValue = this.setValue.bind(this);\n            this.handleChange = this.handleChange.bind(this);\n            this.setPrinstineValue = this.setPrinstineValue.bind(this);\n            this.controlRef = this.controlRef.bind(this);\n            this.handleBlur = this.handleBlur.bind(this);\n\n            if (!name) {\n              return;\n            }\n\n            let propValue = this.props.value;\n            const model = rootStore.addStore({\n              id: guid(),\n              path: this.props.$path,\n              storeType: FormItemStore.name,\n              parentId: store?.id,\n              name\n            }) as IFormItemStore;\n            this.model = model;\n            // @issue 打算干掉这个\n            formItem?.addSubFormItem(model);\n            model.config({\n              id,\n              type,\n              required,\n              unique,\n              value,\n              rules: validations,\n              messages: validationErrors,\n              multiple,\n              delimiter,\n              valueField,\n              labelField,\n              joinValues,\n              extractValue,\n              selectFirst,\n              autoFill,\n              clearValueOnHidden,\n              validateApi,\n              minLength,\n              maxLength,\n              validateOnChange,\n              label\n            });\n\n            // issue 这个逻辑应该在 combo 里面自己实现。\n            if (\n              this.model.unique &&\n              form?.parentStore?.storeType === ComboStore.name\n            ) {\n              const combo = form.parentStore as IComboStore;\n              combo.bindUniuqueItem(model);\n            }\n\n            // 同步 value\n            model.changeTmpValue(\n              propValue ?? store?.getValueByName(model.name) ?? value\n            );\n\n            // 如果没有初始值,通过 onChange 设置过去\n            if (\n              onChange &&\n              typeof propValue === 'undefined' &&\n              typeof store?.getValueByName(model.name, false) === 'undefined' &&\n              // todo 后续再优化这个判断,\n              // 目前 input-table 中默认值会给冲掉,所以加上这个判断\n              // 对应 issue 为 https://github.com/baidu/amis/issues/2674\n              store?.storeType !== TableStore.name\n            ) {\n              onChange(model.tmpValue, model.name, false, true);\n            }\n          }\n\n          componentDidMount() {\n            const {\n              store,\n              formStore: form,\n              $schema: {name, validate},\n              addHook\n            } = this.props;\n\n            // 提交前先把之前的 lazyEmit 执行一下。\n            this.hook3 = () => {\n              this.lazyEmitChange.flush();\n            };\n            addHook?.(this.hook3, 'flush');\n\n            const formItem = this.model as IFormItemStore;\n            if (formItem && validate) {\n              let finalValidate = promisify(validate.bind(formItem));\n              this.hook2 = () => {\n                formItem.clearError('control:valdiate');\n                return finalValidate(\n                  this.props.data,\n                  this.getValue(),\n                  name\n                ).then((ret: any) => {\n                  if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {\n                    formItem.addError(ret, 'control:valdiate');\n                  }\n                });\n              };\n              addHook?.(this.hook2);\n            }\n          }\n\n          componentDidUpdate(prevProps: OuterProps) {\n            const props = this.props;\n            const form = props.formStore;\n            const model = this.model;\n\n            if (\n              model &&\n              anyChanged(\n                [\n                  'id',\n                  'validations',\n                  'validationErrors',\n                  'value',\n                  'required',\n                  'unique',\n                  'multiple',\n                  'delimiter',\n                  'valueField',\n                  'labelField',\n                  'joinValues',\n                  'extractValue',\n                  'selectFirst',\n                  'autoFill',\n                  'clearValueOnHidden',\n                  'validateApi',\n                  'minLength',\n                  'maxLength',\n                  'label'\n                ],\n                prevProps.$schema,\n                props.$schema\n              )\n            ) {\n              model.config({\n                required: props.$schema.required,\n                id: props.$schema.id,\n                unique: props.$schema.unique,\n                value: props.$schema.value,\n                rules: props.$schema.validations,\n                multiple: props.$schema.multiple,\n                delimiter: props.$schema.delimiter,\n                valueField: props.$schema.valueField,\n                labelField: props.$schema.labelField,\n                joinValues: props.$schema.joinValues,\n                extractValue: props.$schema.extractValue,\n                messages: props.$schema.validationErrors,\n                selectFirst: props.$schema.selectFirst,\n                autoFill: props.$schema.autoFill,\n                clearValueOnHidden: props.$schema.clearValueOnHidden,\n                validateApi: props.$schema.validateApi,\n                minLength: props.$schema.minLength,\n                maxLength: props.$schema.maxLength,\n                label: props.$schema.label\n              });\n            }\n\n            if (model && typeof props.value !== 'undefined') {\n              // 自己控制的 value 优先\n              if (\n                props.value !== prevProps.value &&\n                props.value !== model.tmpValue\n              ) {\n                model.changeTmpValue(props.value);\n              }\n            } else if (\n              // 然后才是查看关联的 name 属性值是否变化\n              model &&\n              props.data !== prevProps.data &&\n              (!model.emitedValue || model.emitedValue === model.tmpValue)\n            ) {\n              model.changeEmitedValue(undefined);\n              const value = getVariable(props.data, model.name);\n              const prevValue = getVariable(prevProps.data, model.name);\n              if (\n                (value !== prevValue ||\n                  getVariable(props.data, model.name, false) !==\n                    getVariable(prevProps.data, model.name, false)) &&\n                value !== model.tmpValue\n              ) {\n                model.changeTmpValue(value);\n              }\n            }\n          }\n\n          componentWillUnmount() {\n            this.hook && this.props.removeHook?.(this.hook);\n            this.hook2 && this.props.removeHook?.(this.hook2);\n            this.hook3 && this.props.removeHook?.(this.hook3, 'flush');\n            // this.lazyEmitChange.flush();\n\n            this.lazyEmitChange.cancel();\n            this.reaction?.();\n            this.disposeModel();\n          }\n\n          disposeModel() {\n            const {formStore: form, formItem, rootStore} = this.props;\n\n            if (\n              this.model &&\n              this.model.unique &&\n              form?.parentStore &&\n              form?.parentStore.storeType === ComboStore.name\n            ) {\n              const combo = form.parentStore as IComboStore;\n              combo.unBindUniuqueItem(this.model);\n            }\n\n            if (this.model) {\n              formItem &&\n                isAlive(formItem) &&\n                formItem.removeSubFormItem(this.model);\n\n              this.model.clearValueOnHidden &&\n                this.model.form?.deleteValueByName(this.model.name);\n\n              isAlive(rootStore) && rootStore.removeStore(this.model);\n            }\n            delete this.model;\n          }\n\n          controlRef(control: any) {\n            const {\n              addHook,\n              removeHook,\n              formStore: form,\n              $schema: {name}\n            } = this.props;\n\n            // 因为 control 有可能被 n 层 hoc 包裹。\n            while (control && control.getWrappedInstance) {\n              control = control.getWrappedInstance();\n            }\n\n            if (control && control.validate && this.model) {\n              const formItem = this.model as IFormItemStore;\n              let validate = promisify(control.validate.bind(control));\n              this.hook = () => {\n                formItem.clearError('component:valdiate');\n\n                return validate(this.props.data, this.getValue(), name).then(\n                  ret => {\n                    if (\n                      (typeof ret === 'string' || Array.isArray(ret)) &&\n                      ret\n                    ) {\n                      formItem.setError(ret, 'component:valdiate');\n                    }\n                  }\n                );\n              };\n              addHook?.(this.hook);\n            } else if (!control && this.hook) {\n              removeHook?.(this.hook);\n              this.hook = undefined;\n            }\n\n            // 注册到 Scoped 上\n            const originRef = this.control;\n            this.control = control;\n            const scoped = this.context as IScopedContext;\n\n            if (control) {\n              scoped.registerComponent(this.control);\n            } else if (originRef) {\n              scoped.unRegisterComponent(originRef);\n            }\n          }\n\n          async validate() {\n            const {formStore: form, data, formItemDispatchEvent} = this.props;\n            let result;\n            if (this.model) {\n              if (\n                this.model.unique &&\n                form?.parentStore &&\n                form.parentStore.storeType === ComboStore.name\n              ) {\n                const combo = form.parentStore as IComboStore;\n                const group = combo.uniques.get(\n                  this.model.name\n                ) as IUniqueGroup;\n                const validPromises = group.items.map(item =>\n                  item.validate(data)\n                );\n                result = await Promise.all(validPromises);\n              } else {\n                const validPromises = form\n                  ?.getItemsByName(this.model.name)\n                  .map(item => item.validate(data));\n                if (validPromises && validPromises.length) {\n                  result = await Promise.all(validPromises);\n                }\n              }\n            }\n            if (result && result.length) {\n              if (result.indexOf(false) > -1) {\n                formItemDispatchEvent('formItemValidateError', data);\n              } else {\n                formItemDispatchEvent('formItemValidateSucc', data);\n              }\n            }\n          }\n\n          handleChange(\n            value: any,\n            submitOnChange: boolean = this.props.$schema.submitOnChange,\n            changeImmediately: boolean = false\n          ) {\n            const {\n              formStore: form,\n              onChange,\n              $schema: {\n                type,\n                pipeOut,\n                changeImmediately: conrolChangeImmediately\n              },\n              formInited,\n              data\n            } = this.props;\n\n            if (\n              !this.model ||\n              // todo 以后想办法不要強耦合类型。\n              ~[\n                'service',\n                'group',\n                'hbox',\n                'panel',\n                'grid',\n                'input-group'\n              ].indexOf(type)\n            ) {\n              onChange && onChange.apply(null, arguments as any);\n              return;\n            }\n\n            if (pipeOut) {\n              const oldValue = this.model.value;\n              value = pipeOut(value, oldValue, data);\n            }\n\n            this.model.changeTmpValue(value);\n\n            if (changeImmediately || conrolChangeImmediately || !formInited) {\n              this.emitChange(submitOnChange);\n            } else {\n              // this.props.onTmpValueChange?.(value, this.model.name);\n              this.lazyEmitChange(submitOnChange);\n            }\n          }\n\n          emitChange(\n            submitOnChange: boolean = this.props.$schema.submitOnChange\n          ) {\n            const {\n              formStore: form,\n              onChange,\n              $schema: {\n                name,\n                id,\n                label,\n                type,\n                onChange: onFormItemChange,\n                maxLength,\n                minLength\n              },\n              data,\n              env,\n              validateOnChange,\n              formSubmited\n            } = this.props;\n\n            if (!this.model) {\n              return;\n            }\n            const value = this.model.tmpValue;\n            const oldValue = getVariable(data, this.model.name, false);\n\n            if (oldValue === value) {\n              return;\n            }\n\n            if (type !== 'input-password') {\n              env?.tracker(\n                {\n                  eventType: 'formItemChange',\n                  eventData: {\n                    id,\n                    name,\n                    label,\n                    type,\n                    value\n                  }\n                },\n                this.props\n              );\n            }\n\n            this.model.changeEmitedValue(value);\n            if (\n              onFormItemChange?.(value, oldValue, this.model, form) === false\n            ) {\n              return;\n            }\n            const validated = this.model.validated;\n            onChange?.(value, name!, submitOnChange === true);\n\n            if (\n              // 如果配置了 minLength 或者 maxLength 就切成及时验证\n              // this.model.rules.minLength ||\n              // this.model.rules.maxLength ||\n              validateOnChange === true ||\n              (validateOnChange !== false && (formSubmited || validated))\n            ) {\n              this.validate();\n            } else if (validateOnChange === false) {\n              this.model?.reset();\n            }\n          }\n\n          handleBlur(e: any) {\n            const {\n              onBlur,\n              $schema: {validateOnBlur}\n            } = this.props;\n\n            if (validateOnBlur && this.model) {\n              this.validate();\n            }\n\n            onBlur && onBlur(e);\n          }\n\n          setPrinstineValue(value: any) {\n            if (!this.model) {\n              return;\n            }\n\n            const {\n              formStore: form,\n              name,\n              $schema: {pipeOut},\n              onChange,\n              value: oldValue,\n              data\n            } = this.props;\n\n            if (pipeOut) {\n              value = pipeOut(value, oldValue, data);\n            }\n\n            onChange?.(value, name!, false, true);\n          }\n\n          getValue() {\n            const {formStore: data, $schema: control} = this.props;\n            let value: any = this.model ? this.model.tmpValue : control.value;\n\n            if (control.pipeIn) {\n              value = control.pipeIn(value, data);\n            }\n\n            return value;\n          }\n\n          // 兼容老版本用法,新版本直接用 onChange 就可以。\n          setValue(value: any, key?: string) {\n            const {\n              $schema: {name},\n              onBulkChange\n            } = this.props;\n\n            if (!key || key === name) {\n              this.handleChange(value);\n            } else {\n              onBulkChange &&\n                onBulkChange({\n                  [key]: value\n                });\n            }\n          }\n\n          render() {\n            const {\n              controlWidth,\n              disabled,\n              formMode,\n              $schema: control,\n              store,\n              data,\n              invisible\n            } = this.props;\n\n            if (invisible) {\n              return null;\n            }\n\n            const value = this.getValue();\n            const model = this.model;\n\n            const injectedProps: any = {\n              defaultSize: controlWidth,\n              disabled: disabled || control.disabled,\n              formItem: this.model,\n              formMode: control.mode || formMode,\n              ref: this.controlRef,\n              data: data || store?.data,\n              value,\n              defaultValue: control.value,\n              formItemValue: value, // 为了兼容老版本的自定义组件\n              onChange: this.handleChange,\n\n              onBlur: this.handleBlur,\n              setValue: this.setValue,\n              getValue: this.getValue,\n              prinstine: model ? model.prinstine : undefined,\n              setPrinstineValue: this.setPrinstineValue\n            };\n\n            return (\n              <ComposedComponent\n                {...(this.props as JSX.LibraryManagedAttributes<\n                  T,\n                  React.ComponentProps<T>\n                >)}\n                {...injectedProps}\n              />\n            );\n          }\n        }\n      ) as any\n    ),\n    ComposedComponent\n  );\n\n  return result as typeof result & {\n    ComposedComponent: T;\n  };\n}\n"
         | 
| 11 | 
            +
                    "import React from 'react';\nimport {IFormStore, IFormItemStore} from '../../store/form';\nimport debouce from 'lodash/debounce';\n\nimport {RendererProps, Renderer} from '../../factory';\nimport {ComboStore, IComboStore, IUniqueGroup} from '../../store/combo';\nimport {\n  anyChanged,\n  promisify,\n  isObject,\n  guid,\n  isEmpty,\n  autobind,\n  getVariable,\n  createObject\n} from '../../utils/helper';\nimport {IIRendererStore, IRendererStore} from '../../store';\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {reaction} from 'mobx';\nimport {FormItemStore} from '../../store/formItem';\nimport {isAlive} from 'mobx-state-tree';\nimport {observer} from 'mobx-react';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport {withRootStore} from '../../WithRootStore';\nimport {FormBaseControl, FormItemWrap} from './Item';\nimport {Api} from '../../types';\nimport {TableStore} from '../../store/table';\n\nexport interface ControlOutterProps extends RendererProps {\n  formStore?: IFormStore;\n  name?: string;\n  value?: any;\n  id?: string;\n  type?: string;\n  required?: boolean;\n  validations: string | {[propsName: string]: any};\n  validationErrors: {[propsName: string]: any};\n  validateOnChange: boolean;\n  multiple?: boolean;\n  delimiter?: string;\n  joinValues?: boolean;\n  extractValue?: boolean;\n  valueField?: string;\n  labelField?: string;\n  unique?: boolean;\n  selectFirst?: boolean;\n  autoFill?: any;\n  clearValueOnHidden?: boolean;\n  validateApi?: Api;\n  submitOnChange?: boolean;\n  validate?: (value: any, values: any, name: string) => any;\n  formItem?: IFormItemStore;\n  addHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n  removeHook?: (fn: () => any, type?: 'validate' | 'init' | 'flush') => void;\n  $schema: {\n    pipeIn?: (value: any, data: any) => any;\n    pipeOut?: (value: any, originValue: any, data: any) => any;\n    [propName: string]: any;\n  };\n  store?: IIRendererStore;\n  onChange?: (\n    value: any,\n    name: string,\n    submit?: boolean,\n    changePristine?: boolean\n  ) => void;\n  formItemDispatchEvent: (type: string, data: any) => void;\n}\n\nexport interface ControlProps {\n  onBulkChange?: (values: Object) => void;\n  onChange?: (value: any, name: string, submit: boolean) => void;\n  store: IIRendererStore;\n}\n\nexport function wrapControl<\n  T extends React.ComponentType<React.ComponentProps<T> & ControlProps>\n>(ComposedComponent: T) {\n  type OuterProps = JSX.LibraryManagedAttributes<\n    T,\n    Omit<React.ComponentProps<T>, keyof ControlProps>\n  > &\n    ControlOutterProps;\n\n  const result = hoistNonReactStatic(\n    withRootStore(\n      observer(\n        class extends React.Component<OuterProps> {\n          public model: IFormItemStore | undefined;\n          control?: any;\n          value?: any = undefined;\n          hook?: () => any;\n          hook2?: () => any;\n          hook3?: () => any;\n          reaction?: () => void;\n\n          static contextType = ScopedContext;\n          static defaultProps = {};\n\n          lazyEmitChange = debouce(this.emitChange.bind(this), 250, {\n            trailing: true,\n            leading: false\n          });\n\n          constructor(props: OuterProps) {\n            super(props);\n\n            const {\n              formStore: form,\n              formItem,\n              rootStore,\n              store,\n              onChange,\n              data,\n              $schema: {\n                name,\n                id,\n                type,\n                required,\n                validations,\n                validationErrors,\n                unique,\n                value,\n                multiple,\n                delimiter,\n                valueField,\n                labelField,\n                joinValues,\n                extractValue,\n                selectFirst,\n                autoFill,\n                clearValueOnHidden,\n                validateApi,\n                minLength,\n                maxLength,\n                validateOnChange,\n                label\n              }\n            } = this.props;\n\n            this.getValue = this.getValue.bind(this);\n            this.setValue = this.setValue.bind(this);\n            this.handleChange = this.handleChange.bind(this);\n            this.setPrinstineValue = this.setPrinstineValue.bind(this);\n            this.controlRef = this.controlRef.bind(this);\n            this.handleBlur = this.handleBlur.bind(this);\n\n            if (!name) {\n              return;\n            }\n\n            let propValue = this.props.value;\n            const model = rootStore.addStore({\n              id: guid(),\n              path: this.props.$path,\n              storeType: FormItemStore.name,\n              parentId: store?.id,\n              name\n            }) as IFormItemStore;\n            this.model = model;\n            // @issue 打算干掉这个\n            formItem?.addSubFormItem(model);\n            model.config({\n              id,\n              type,\n              required,\n              unique,\n              value,\n              rules: validations,\n              messages: validationErrors,\n              multiple,\n              delimiter,\n              valueField,\n              labelField,\n              joinValues,\n              extractValue,\n              selectFirst,\n              autoFill,\n              clearValueOnHidden,\n              validateApi,\n              minLength,\n              maxLength,\n              validateOnChange,\n              label\n            });\n\n            // issue 这个逻辑应该在 combo 里面自己实现。\n            if (\n              this.model.unique &&\n              form?.parentStore?.storeType === ComboStore.name\n            ) {\n              const combo = form.parentStore as IComboStore;\n              combo.bindUniuqueItem(model);\n            }\n\n            // 同步 value\n            model.changeTmpValue(\n              propValue ?? store?.getValueByName(model.name) ?? value\n            );\n\n            // 如果没有初始值,通过 onChange 设置过去\n            if (\n              onChange &&\n              typeof propValue === 'undefined' &&\n              typeof store?.getValueByName(model.name, false) === 'undefined' &&\n              // todo 后续再优化这个判断,\n              // 目前 input-table 中默认值会给冲掉,所以加上这个判断\n              // 对应 issue 为 https://github.com/baidu/amis/issues/2674\n              store?.storeType !== TableStore.name\n            ) {\n              onChange(model.tmpValue, model.name, false, true);\n            }\n          }\n\n          componentDidMount() {\n            const {\n              store,\n              formStore: form,\n              $schema: {name, validate},\n              addHook\n            } = this.props;\n\n            // 提交前先把之前的 lazyEmit 执行一下。\n            this.hook3 = () => {\n              this.lazyEmitChange.flush();\n            };\n            addHook?.(this.hook3, 'flush');\n\n            const formItem = this.model as IFormItemStore;\n            if (formItem && validate) {\n              let finalValidate = promisify(validate.bind(formItem));\n              this.hook2 = () => {\n                formItem.clearError('control:valdiate');\n                return finalValidate(\n                  this.props.data,\n                  this.getValue(),\n                  name\n                ).then((ret: any) => {\n                  if ((typeof ret === 'string' || Array.isArray(ret)) && ret) {\n                    formItem.addError(ret, 'control:valdiate');\n                  }\n                });\n              };\n              addHook?.(this.hook2);\n            }\n          }\n\n          componentDidUpdate(prevProps: OuterProps) {\n            const props = this.props;\n            const form = props.formStore;\n            const model = this.model;\n\n            if (\n              model &&\n              anyChanged(\n                [\n                  'id',\n                  'validations',\n                  'validationErrors',\n                  'value',\n                  'required',\n                  'unique',\n                  'multiple',\n                  'delimiter',\n                  'valueField',\n                  'labelField',\n                  'joinValues',\n                  'extractValue',\n                  'selectFirst',\n                  'autoFill',\n                  'clearValueOnHidden',\n                  'validateApi',\n                  'minLength',\n                  'maxLength',\n                  'label'\n                ],\n                prevProps.$schema,\n                props.$schema\n              )\n            ) {\n              model.config({\n                required: props.$schema.required,\n                id: props.$schema.id,\n                unique: props.$schema.unique,\n                value: props.$schema.value,\n                rules: props.$schema.validations,\n                multiple: props.$schema.multiple,\n                delimiter: props.$schema.delimiter,\n                valueField: props.$schema.valueField,\n                labelField: props.$schema.labelField,\n                joinValues: props.$schema.joinValues,\n                extractValue: props.$schema.extractValue,\n                messages: props.$schema.validationErrors,\n                selectFirst: props.$schema.selectFirst,\n                autoFill: props.$schema.autoFill,\n                clearValueOnHidden: props.$schema.clearValueOnHidden,\n                validateApi: props.$schema.validateApi,\n                minLength: props.$schema.minLength,\n                maxLength: props.$schema.maxLength,\n                label: props.$schema.label\n              });\n            }\n\n            if (model && typeof props.value !== 'undefined') {\n              // 自己控制的 value 优先\n              if (\n                props.value !== prevProps.value &&\n                props.value !== model.tmpValue\n              ) {\n                model.changeTmpValue(props.value);\n              }\n            } else if (\n              // 然后才是查看关联的 name 属性值是否变化\n              model &&\n              props.data !== prevProps.data &&\n              (!model.emitedValue || model.emitedValue === model.tmpValue)\n            ) {\n              model.changeEmitedValue(undefined);\n              const value = getVariable(props.data, model.name);\n              const prevValue = getVariable(prevProps.data, model.name);\n              if (\n                (value !== prevValue ||\n                  getVariable(props.data, model.name, false) !==\n                    getVariable(prevProps.data, model.name, false)) &&\n                value !== model.tmpValue\n              ) {\n                model.changeTmpValue(value);\n              }\n            }\n          }\n\n          componentWillUnmount() {\n            this.hook && this.props.removeHook?.(this.hook);\n            this.hook2 && this.props.removeHook?.(this.hook2);\n            this.hook3 && this.props.removeHook?.(this.hook3, 'flush');\n            // this.lazyEmitChange.flush();\n\n            this.lazyEmitChange.cancel();\n            this.reaction?.();\n            this.disposeModel();\n          }\n\n          disposeModel() {\n            const {formStore: form, formItem, rootStore} = this.props;\n\n            if (\n              this.model &&\n              this.model.unique &&\n              form?.parentStore &&\n              form?.parentStore.storeType === ComboStore.name\n            ) {\n              const combo = form.parentStore as IComboStore;\n              combo.unBindUniuqueItem(this.model);\n            }\n\n            if (this.model) {\n              formItem &&\n                isAlive(formItem) &&\n                formItem.removeSubFormItem(this.model);\n\n              this.model.clearValueOnHidden &&\n                this.model.form?.deleteValueByName(this.model.name);\n\n              isAlive(rootStore) && rootStore.removeStore(this.model);\n            }\n            delete this.model;\n          }\n\n          controlRef(control: any) {\n            const {\n              addHook,\n              removeHook,\n              formStore: form,\n              $schema: {name}\n            } = this.props;\n\n            // 因为 control 有可能被 n 层 hoc 包裹。\n            while (control && control.getWrappedInstance) {\n              control = control.getWrappedInstance();\n            }\n\n            if (control && control.validate && this.model) {\n              const formItem = this.model as IFormItemStore;\n              let validate = promisify(control.validate.bind(control));\n              this.hook = () => {\n                formItem.clearError('component:valdiate');\n\n                return validate(this.props.data, this.getValue(), name).then(\n                  ret => {\n                    if (\n                      (typeof ret === 'string' || Array.isArray(ret)) &&\n                      ret\n                    ) {\n                      formItem.setError(ret, 'component:valdiate');\n                    }\n                  }\n                );\n              };\n              addHook?.(this.hook);\n            } else if (!control && this.hook) {\n              removeHook?.(this.hook);\n              this.hook = undefined;\n            }\n\n            // 注册到 Scoped 上\n            const originRef = this.control;\n            this.control = control;\n            const scoped = this.context as IScopedContext;\n\n            if (control) {\n              scoped.registerComponent(this.control);\n            } else if (originRef) {\n              scoped.unRegisterComponent(originRef);\n            }\n          }\n\n          async validate() {\n            const {formStore: form, data, formItemDispatchEvent} = this.props;\n            let result;\n            if (this.model) {\n              if (\n                this.model.unique &&\n                form?.parentStore &&\n                form.parentStore.storeType === ComboStore.name\n              ) {\n                const combo = form.parentStore as IComboStore;\n                const group = combo.uniques.get(\n                  this.model.name\n                ) as IUniqueGroup;\n                const validPromises = group.items.map(item =>\n                  item.validate(data)\n                );\n                result = await Promise.all(validPromises);\n              } else {\n                const validPromises = form\n                  ?.getItemsByName(this.model.name)\n                  .map(item => item.validate(data));\n                if (validPromises && validPromises.length) {\n                  result = await Promise.all(validPromises);\n                }\n              }\n            }\n            if (result && result.length) {\n              if (result.indexOf(false) > -1) {\n                formItemDispatchEvent('formItemValidateError', data);\n              } else {\n                formItemDispatchEvent('formItemValidateSucc', data);\n              }\n            }\n          }\n\n          handleChange(\n            value: any,\n            submitOnChange: boolean = this.props.$schema.submitOnChange,\n            changeImmediately: boolean = false\n          ) {\n            const {\n              formStore: form,\n              onChange,\n              $schema: {\n                type,\n                pipeOut,\n                changeImmediately: conrolChangeImmediately\n              },\n              formInited,\n              data\n            } = this.props;\n\n            if (\n              !this.model ||\n              // todo 以后想办法不要強耦合类型。\n              ~[\n                'service',\n                'group',\n                'hbox',\n                'panel',\n                'grid',\n                'input-group'\n              ].indexOf(type)\n            ) {\n              onChange && onChange.apply(null, arguments as any);\n              return;\n            }\n\n            if (pipeOut) {\n              const oldValue = this.model.value;\n              value = pipeOut(value, oldValue, data);\n            }\n\n            this.model.changeTmpValue(value);\n\n            if (changeImmediately || conrolChangeImmediately || !formInited) {\n              this.emitChange(submitOnChange);\n            } else {\n              // this.props.onTmpValueChange?.(value, this.model.name);\n              this.lazyEmitChange(submitOnChange);\n            }\n          }\n\n          emitChange(\n            submitOnChange: boolean = this.props.$schema.submitOnChange\n          ) {\n            const {\n              formStore: form,\n              onChange,\n              $schema: {\n                name,\n                id,\n                label,\n                type,\n                onChange: onFormItemChange,\n                maxLength,\n                minLength\n              },\n              data,\n              env,\n              validateOnChange,\n              formSubmited\n            } = this.props;\n\n            if (!this.model) {\n              return;\n            }\n            const value = this.model.tmpValue;\n            const oldValue = getVariable(data, this.model.name, false);\n\n            if (oldValue === value) {\n              return;\n            }\n\n            if (type !== 'input-password') {\n              env?.tracker(\n                {\n                  eventType: 'formItemChange',\n                  eventData: {\n                    id,\n                    name,\n                    label,\n                    type,\n                    value\n                  }\n                },\n                this.props\n              );\n            }\n\n            this.model.changeEmitedValue(value);\n            if (\n              onFormItemChange?.(value, oldValue, this.model, form) === false\n            ) {\n              return;\n            }\n            const validated = this.model.validated;\n            onChange?.(value, name!, submitOnChange === true);\n\n            if (\n              // 如果配置了 minLength 或者 maxLength 就切成及时验证\n              // this.model.rules.minLength ||\n              // this.model.rules.maxLength ||\n              validateOnChange === true ||\n              (validateOnChange !== false && (formSubmited || validated))\n            ) {\n              this.validate();\n            } else if (validateOnChange === false) {\n              this.model?.reset();\n            }\n          }\n\n          handleBlur(e: any) {\n            const {\n              onBlur,\n              $schema: {validateOnBlur}\n            } = this.props;\n\n            if (validateOnBlur && this.model) {\n              this.validate();\n            }\n\n            onBlur && onBlur(e);\n          }\n\n          setPrinstineValue(value: any) {\n            if (!this.model) {\n              return;\n            }\n\n            const {\n              formStore: form,\n              name,\n              $schema: {pipeOut},\n              onChange,\n              value: oldValue,\n              data\n            } = this.props;\n\n            if (pipeOut) {\n              value = pipeOut(value, oldValue, data);\n            }\n\n            onChange?.(value, name!, false, true);\n          }\n\n          getValue() {\n            const {formStore: data, $schema: control} = this.props;\n            let value: any = this.model ? this.model.tmpValue : control.value;\n\n            if (control.pipeIn) {\n              value = control.pipeIn(value, data);\n            }\n\n            return value;\n          }\n\n          // 兼容老版本用法,新版本直接用 onChange 就可以。\n          setValue(value: any, key?: string) {\n            const {\n              $schema: {name},\n              onBulkChange\n            } = this.props;\n\n            if (!key || key === name) {\n              this.handleChange(value);\n            } else {\n              onBulkChange &&\n                onBulkChange({\n                  [key]: value\n                });\n            }\n          }\n\n          render() {\n            const {\n              controlWidth,\n              disabled,\n              formMode,\n              $schema: control,\n              store,\n              data,\n              invisible\n            } = this.props;\n\n            if (invisible) {\n              return null;\n            }\n\n            const value = this.getValue();\n            const model = this.model;\n\n            const injectedProps: any = {\n              defaultSize: controlWidth,\n              disabled: disabled || control.disabled,\n              formItem: this.model,\n              formMode: control.mode || formMode,\n              ref: this.controlRef,\n              data: data || store?.data,\n              value,\n              defaultValue: control.value,\n              formItemValue: value, // 为了兼容老版本的自定义组件\n              onChange: this.handleChange,\n              onBlur: this.handleBlur,\n              setValue: this.setValue,\n              getValue: this.getValue,\n              prinstine: model ? model.prinstine : undefined,\n              setPrinstineValue: this.setPrinstineValue\n            };\n\n            return (\n              <ComposedComponent\n                {...(this.props as JSX.LibraryManagedAttributes<\n                  T,\n                  React.ComponentProps<T>\n                >)}\n                {...injectedProps}\n              />\n            );\n          }\n        }\n      ) as any\n    ),\n    ComposedComponent\n  );\n\n  return result as typeof result & {\n    ComposedComponent: T;\n  };\n}\n"
         | 
| 12 12 | 
             
                ]
         | 
| 13 13 | 
             
            }
         | 
| @@ -75,6 +75,18 @@ export interface ColumnSchema { | |
| 75 75 | 
             
                 * 当前列是否展示
         | 
| 76 76 | 
             
                 */
         | 
| 77 77 | 
             
                toggled?: boolean;
         | 
| 78 | 
            +
                /**
         | 
| 79 | 
            +
                 * 列样式
         | 
| 80 | 
            +
                 */
         | 
| 81 | 
            +
                className?: string;
         | 
| 82 | 
            +
                /**
         | 
| 83 | 
            +
                 * 表头单元格样式
         | 
| 84 | 
            +
                 */
         | 
| 85 | 
            +
                titleClassName?: string;
         | 
| 86 | 
            +
                /**
         | 
| 87 | 
            +
                 * 单元格样式
         | 
| 88 | 
            +
                 */
         | 
| 89 | 
            +
                classNameExpr?: string;
         | 
| 78 90 | 
             
            }
         | 
| 79 91 | 
             
            export interface RowSelectionOptionsSchema {
         | 
| 80 92 | 
             
                /**
         | 
| @@ -110,7 +122,7 @@ export interface RowSelectionSchema { | |
| 110 122 | 
             
                /**
         | 
| 111 123 | 
             
                 * 已选择的key值表达式
         | 
| 112 124 | 
             
                 */
         | 
| 113 | 
            -
                selectedRowKeysExpr | 
| 125 | 
            +
                selectedRowKeysExpr?: string;
         | 
| 114 126 | 
             
                /**
         | 
| 115 127 | 
             
                 * 已选择的key值表达式
         | 
| 116 128 | 
             
                 */
         | 
| @@ -260,6 +272,6 @@ export default class TableRenderer extends React.Component<TableV2Props, object> | |
| 260 272 | 
             
                handleFilter(payload: any): Promise<any>;
         | 
| 261 273 | 
             
                handleDragOver(dataSource: Array<any>): Promise<any>;
         | 
| 262 274 | 
             
                doAction(action: Action, args: any, throwErrors: boolean): any;
         | 
| 263 | 
            -
                renderTable(): JSX.Element;
         | 
| 275 | 
            +
                renderTable(): JSX.Element | null;
         | 
| 264 276 | 
             
                render(): JSX.Element;
         | 
| 265 277 | 
             
            }
         |