89c762c37baebf179173e28382d4ceab.json 48.9 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport List from './list';\nimport Operation from './operation';\nimport Search from './search';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport { ConfigConsumer } from '../config-provider';\nimport devWarning from '../_util/devWarning';\n\nvar Transfer = /*#__PURE__*/function (_React$Component) {\n  _inherits(Transfer, _React$Component);\n\n  var _super = _createSuper(Transfer);\n\n  function Transfer(props) {\n    var _this;\n\n    _classCallCheck(this, Transfer);\n\n    _this = _super.call(this, props);\n    _this.separatedDataSource = null;\n\n    _this.setStateKeys = function (direction, keys) {\n      if (direction === 'left') {\n        _this.setState(function (_ref) {\n          var sourceSelectedKeys = _ref.sourceSelectedKeys;\n          return {\n            sourceSelectedKeys: typeof keys === 'function' ? keys(sourceSelectedKeys || []) : keys\n          };\n        });\n      } else {\n        _this.setState(function (_ref2) {\n          var targetSelectedKeys = _ref2.targetSelectedKeys;\n          return {\n            targetSelectedKeys: typeof keys === 'function' ? keys(targetSelectedKeys || []) : keys\n          };\n        });\n      }\n    };\n\n    _this.getLocale = function (transferLocale, renderEmpty) {\n      return _extends(_extends(_extends({}, transferLocale), {\n        notFoundContent: renderEmpty('Transfer')\n      }), _this.props.locale);\n    };\n\n    _this.moveTo = function (direction) {\n      var _this$props = _this.props,\n          _this$props$targetKey = _this$props.targetKeys,\n          targetKeys = _this$props$targetKey === void 0 ? [] : _this$props$targetKey,\n          _this$props$dataSourc = _this$props.dataSource,\n          dataSource = _this$props$dataSourc === void 0 ? [] : _this$props$dataSourc,\n          onChange = _this$props.onChange;\n      var _this$state = _this.state,\n          sourceSelectedKeys = _this$state.sourceSelectedKeys,\n          targetSelectedKeys = _this$state.targetSelectedKeys;\n      var moveKeys = direction === 'right' ? sourceSelectedKeys : targetSelectedKeys; // filter the disabled options\n\n      var newMoveKeys = moveKeys.filter(function (key) {\n        return !dataSource.some(function (data) {\n          return !!(key === data.key && data.disabled);\n        });\n      }); // move items to target box\n\n      var newTargetKeys = direction === 'right' ? newMoveKeys.concat(targetKeys) : targetKeys.filter(function (targetKey) {\n        return newMoveKeys.indexOf(targetKey) === -1;\n      }); // empty checked keys\n\n      var oppositeDirection = direction === 'right' ? 'left' : 'right';\n\n      _this.setStateKeys(oppositeDirection, []);\n\n      _this.handleSelectChange(oppositeDirection, []);\n\n      if (onChange) {\n        onChange(newTargetKeys, direction, newMoveKeys);\n      }\n    };\n\n    _this.moveToLeft = function () {\n      return _this.moveTo('left');\n    };\n\n    _this.moveToRight = function () {\n      return _this.moveTo('right');\n    };\n\n    _this.onItemSelectAll = function (direction, selectedKeys, checkAll) {\n      _this.setStateKeys(direction, function (prevKeys) {\n        var mergedCheckedKeys = [];\n\n        if (checkAll) {\n          // Merge current keys with origin key\n          mergedCheckedKeys = Array.from(new Set([].concat(_toConsumableArray(prevKeys), _toConsumableArray(selectedKeys))));\n        } else {\n          // Remove current keys from origin keys\n          mergedCheckedKeys = prevKeys.filter(function (key) {\n            return selectedKeys.indexOf(key) === -1;\n          });\n        }\n\n        _this.handleSelectChange(direction, mergedCheckedKeys);\n\n        return mergedCheckedKeys;\n      });\n    };\n\n    _this.onLeftItemSelectAll = function (selectedKeys, checkAll) {\n      return _this.onItemSelectAll('left', selectedKeys, checkAll);\n    };\n\n    _this.onRightItemSelectAll = function (selectedKeys, checkAll) {\n      return _this.onItemSelectAll('right', selectedKeys, checkAll);\n    };\n\n    _this.handleFilter = function (direction, e) {\n      var onSearch = _this.props.onSearch;\n      var value = e.target.value;\n\n      if (onSearch) {\n        onSearch(direction, value);\n      }\n    };\n\n    _this.handleLeftFilter = function (e) {\n      return _this.handleFilter('left', e);\n    };\n\n    _this.handleRightFilter = function (e) {\n      return _this.handleFilter('right', e);\n    };\n\n    _this.handleClear = function (direction) {\n      var onSearch = _this.props.onSearch;\n\n      if (onSearch) {\n        onSearch(direction, '');\n      }\n    };\n\n    _this.handleLeftClear = function () {\n      return _this.handleClear('left');\n    };\n\n    _this.handleRightClear = function () {\n      return _this.handleClear('right');\n    };\n\n    _this.onItemSelect = function (direction, selectedKey, checked) {\n      var _this$state2 = _this.state,\n          sourceSelectedKeys = _this$state2.sourceSelectedKeys,\n          targetSelectedKeys = _this$state2.targetSelectedKeys;\n      var holder = direction === 'left' ? _toConsumableArray(sourceSelectedKeys) : _toConsumableArray(targetSelectedKeys);\n      var index = holder.indexOf(selectedKey);\n\n      if (index > -1) {\n        holder.splice(index, 1);\n      }\n\n      if (checked) {\n        holder.push(selectedKey);\n      }\n\n      _this.handleSelectChange(direction, holder);\n\n      if (!_this.props.selectedKeys) {\n        _this.setStateKeys(direction, holder);\n      }\n    };\n\n    _this.onLeftItemSelect = function (selectedKey, checked) {\n      return _this.onItemSelect('left', selectedKey, checked);\n    };\n\n    _this.onRightItemSelect = function (selectedKey, checked) {\n      return _this.onItemSelect('right', selectedKey, checked);\n    };\n\n    _this.onRightItemRemove = function (selectedKeys) {\n      var _this$props2 = _this.props,\n          _this$props2$targetKe = _this$props2.targetKeys,\n          targetKeys = _this$props2$targetKe === void 0 ? [] : _this$props2$targetKe,\n          onChange = _this$props2.onChange;\n\n      _this.setStateKeys('right', []);\n\n      if (onChange) {\n        onChange(targetKeys.filter(function (key) {\n          return !selectedKeys.includes(key);\n        }), 'left', _toConsumableArray(selectedKeys));\n      }\n    };\n\n    _this.handleScroll = function (direction, e) {\n      var onScroll = _this.props.onScroll;\n\n      if (onScroll) {\n        onScroll(direction, e);\n      }\n    };\n\n    _this.handleLeftScroll = function (e) {\n      return _this.handleScroll('left', e);\n    };\n\n    _this.handleRightScroll = function (e) {\n      return _this.handleScroll('right', e);\n    };\n\n    _this.handleListStyle = function (listStyle, direction) {\n      if (typeof listStyle === 'function') {\n        return listStyle({\n          direction: direction\n        });\n      }\n\n      return listStyle;\n    };\n\n    _this.renderTransfer = function (transferLocale) {\n      return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref3) {\n        var _classNames;\n\n        var getPrefixCls = _ref3.getPrefixCls,\n            renderEmpty = _ref3.renderEmpty,\n            direction = _ref3.direction;\n        var _this$props3 = _this.props,\n            customizePrefixCls = _this$props3.prefixCls,\n            className = _this$props3.className,\n            disabled = _this$props3.disabled,\n            _this$props3$operatio = _this$props3.operations,\n            operations = _this$props3$operatio === void 0 ? [] : _this$props3$operatio,\n            showSearch = _this$props3.showSearch,\n            footer = _this$props3.footer,\n            style = _this$props3.style,\n            listStyle = _this$props3.listStyle,\n            operationStyle = _this$props3.operationStyle,\n            filterOption = _this$props3.filterOption,\n            render = _this$props3.render,\n            children = _this$props3.children,\n            showSelectAll = _this$props3.showSelectAll,\n            oneWay = _this$props3.oneWay,\n            pagination = _this$props3.pagination;\n        var prefixCls = getPrefixCls('transfer', customizePrefixCls);\n\n        var locale = _this.getLocale(transferLocale, renderEmpty);\n\n        var _this$state3 = _this.state,\n            sourceSelectedKeys = _this$state3.sourceSelectedKeys,\n            targetSelectedKeys = _this$state3.targetSelectedKeys;\n        var mergedPagination = !children && pagination;\n\n        var _this$separateDataSou = _this.separateDataSource(),\n            leftDataSource = _this$separateDataSou.leftDataSource,\n            rightDataSource = _this$separateDataSou.rightDataSource;\n\n        var leftActive = targetSelectedKeys.length > 0;\n        var rightActive = sourceSelectedKeys.length > 0;\n        var cls = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-customize-list\"), !!children), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n\n        var titles = _this.getTitles(locale);\n\n        var selectAllLabels = _this.props.selectAllLabels || [];\n        return /*#__PURE__*/React.createElement(\"div\", {\n          className: cls,\n          style: style\n        }, /*#__PURE__*/React.createElement(List, _extends({\n          prefixCls: \"\".concat(prefixCls, \"-list\"),\n          titleText: titles[0],\n          dataSource: leftDataSource,\n          filterOption: filterOption,\n          style: _this.handleListStyle(listStyle, 'left'),\n          checkedKeys: sourceSelectedKeys,\n          handleFilter: _this.handleLeftFilter,\n          handleClear: _this.handleLeftClear,\n          onItemSelect: _this.onLeftItemSelect,\n          onItemSelectAll: _this.onLeftItemSelectAll,\n          render: render,\n          showSearch: showSearch,\n          renderList: children,\n          footer: footer,\n          onScroll: _this.handleLeftScroll,\n          disabled: disabled,\n          direction: \"left\",\n          showSelectAll: showSelectAll,\n          selectAllLabel: selectAllLabels[0],\n          pagination: mergedPagination\n        }, locale)), /*#__PURE__*/React.createElement(Operation, {\n          className: \"\".concat(prefixCls, \"-operation\"),\n          rightActive: rightActive,\n          rightArrowText: operations[0],\n          moveToRight: _this.moveToRight,\n          leftActive: leftActive,\n          leftArrowText: operations[1],\n          moveToLeft: _this.moveToLeft,\n          style: operationStyle,\n          disabled: disabled,\n          direction: direction,\n          oneWay: oneWay\n        }), /*#__PURE__*/React.createElement(List, _extends({\n          prefixCls: \"\".concat(prefixCls, \"-list\"),\n          titleText: titles[1],\n          dataSource: rightDataSource,\n          filterOption: filterOption,\n          style: _this.handleListStyle(listStyle, 'right'),\n          checkedKeys: targetSelectedKeys,\n          handleFilter: _this.handleRightFilter,\n          handleClear: _this.handleRightClear,\n          onItemSelect: _this.onRightItemSelect,\n          onItemSelectAll: _this.onRightItemSelectAll,\n          onItemRemove: _this.onRightItemRemove,\n          render: render,\n          showSearch: showSearch,\n          renderList: children,\n          footer: footer,\n          onScroll: _this.handleRightScroll,\n          disabled: disabled,\n          direction: \"right\",\n          showSelectAll: showSelectAll,\n          selectAllLabel: selectAllLabels[1],\n          showRemove: oneWay,\n          pagination: mergedPagination\n        }, locale)));\n      });\n    };\n\n    var _props$selectedKeys = props.selectedKeys,\n        selectedKeys = _props$selectedKeys === void 0 ? [] : _props$selectedKeys,\n        _props$targetKeys = props.targetKeys,\n        targetKeys = _props$targetKeys === void 0 ? [] : _props$targetKeys;\n    _this.state = {\n      sourceSelectedKeys: selectedKeys.filter(function (key) {\n        return targetKeys.indexOf(key) === -1;\n      }),\n      targetSelectedKeys: selectedKeys.filter(function (key) {\n        return targetKeys.indexOf(key) > -1;\n      })\n    };\n    return _this;\n  }\n\n  _createClass(Transfer, [{\n    key: \"getTitles\",\n    value: function getTitles(transferLocale) {\n      var titles = this.props.titles;\n\n      if (titles) {\n        return titles;\n      }\n\n      return transferLocale.titles;\n    }\n  }, {\n    key: \"handleSelectChange\",\n    value: function handleSelectChange(direction, holder) {\n      var _this$state4 = this.state,\n          sourceSelectedKeys = _this$state4.sourceSelectedKeys,\n          targetSelectedKeys = _this$state4.targetSelectedKeys;\n      var onSelectChange = this.props.onSelectChange;\n\n      if (!onSelectChange) {\n        return;\n      }\n\n      if (direction === 'left') {\n        onSelectChange(holder, targetSelectedKeys);\n      } else {\n        onSelectChange(sourceSelectedKeys, holder);\n      }\n    }\n  }, {\n    key: \"separateDataSource\",\n    value: function separateDataSource() {\n      var _this$props4 = this.props,\n          dataSource = _this$props4.dataSource,\n          rowKey = _this$props4.rowKey,\n          _this$props4$targetKe = _this$props4.targetKeys,\n          targetKeys = _this$props4$targetKe === void 0 ? [] : _this$props4$targetKe;\n      var leftDataSource = [];\n      var rightDataSource = new Array(targetKeys.length);\n      dataSource.forEach(function (record) {\n        if (rowKey) {\n          record.key = rowKey(record);\n        } // rightDataSource should be ordered by targetKeys\n        // leftDataSource should be ordered by dataSource\n\n\n        var indexOfKey = targetKeys.indexOf(record.key);\n\n        if (indexOfKey !== -1) {\n          rightDataSource[indexOfKey] = record;\n        } else {\n          leftDataSource.push(record);\n        }\n      });\n      return {\n        leftDataSource: leftDataSource,\n        rightDataSource: rightDataSource\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(LocaleReceiver, {\n        componentName: \"Transfer\",\n        defaultLocale: defaultLocale.Transfer\n      }, this.renderTransfer);\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(_ref4) {\n      var selectedKeys = _ref4.selectedKeys,\n          targetKeys = _ref4.targetKeys,\n          pagination = _ref4.pagination,\n          children = _ref4.children;\n\n      if (selectedKeys) {\n        var mergedTargetKeys = targetKeys || [];\n        return {\n          sourceSelectedKeys: selectedKeys.filter(function (key) {\n            return !mergedTargetKeys.includes(key);\n          }),\n          targetSelectedKeys: selectedKeys.filter(function (key) {\n            return mergedTargetKeys.includes(key);\n          })\n        };\n      }\n\n      devWarning(!pagination || !children, 'Transfer', '`pagination` not support customize render list.');\n      return null;\n    }\n  }]);\n\n  return Transfer;\n}(React.Component); // For high-level customized Transfer @dqaria\n\n\nTransfer.List = List;\nTransfer.Operation = Operation;\nTransfer.Search = Search;\nTransfer.defaultProps = {\n  dataSource: [],\n  locale: {},\n  showSearch: false,\n  listStyle: function listStyle() {}\n};\nexport default Transfer;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/antd/es/transfer/index.js"],"names":["_defineProperty","_toConsumableArray","_extends","_classCallCheck","_createClass","_inherits","_createSuper","React","classNames","List","Operation","Search","LocaleReceiver","defaultLocale","ConfigConsumer","devWarning","Transfer","_React$Component","_super","props","_this","call","separatedDataSource","setStateKeys","direction","keys","setState","_ref","sourceSelectedKeys","_ref2","targetSelectedKeys","getLocale","transferLocale","renderEmpty","notFoundContent","locale","moveTo","_this$props","_this$props$targetKey","targetKeys","_this$props$dataSourc","dataSource","onChange","_this$state","state","moveKeys","newMoveKeys","filter","key","some","data","disabled","newTargetKeys","concat","targetKey","indexOf","oppositeDirection","handleSelectChange","moveToLeft","moveToRight","onItemSelectAll","selectedKeys","checkAll","prevKeys","mergedCheckedKeys","Array","from","Set","onLeftItemSelectAll","onRightItemSelectAll","handleFilter","e","onSearch","value","target","handleLeftFilter","handleRightFilter","handleClear","handleLeftClear","handleRightClear","onItemSelect","selectedKey","checked","_this$state2","holder","index","splice","push","onLeftItemSelect","onRightItemSelect","onRightItemRemove","_this$props2","_this$props2$targetKe","includes","handleScroll","onScroll","handleLeftScroll","handleRightScroll","handleListStyle","listStyle","renderTransfer","createElement","_ref3","_classNames","getPrefixCls","_this$props3","customizePrefixCls","prefixCls","className","_this$props3$operatio","operations","showSearch","footer","style","operationStyle","filterOption","render","children","showSelectAll","oneWay","pagination","_this$state3","mergedPagination","_this$separateDataSou","separateDataSource","leftDataSource","rightDataSource","leftActive","length","rightActive","cls","titles","getTitles","selectAllLabels","titleText","checkedKeys","renderList","selectAllLabel","rightArrowText","leftArrowText","onItemRemove","showRemove","_props$selectedKeys","_props$targetKeys","_this$state4","onSelectChange","_this$props4","rowKey","_this$props4$targetKe","forEach","record","indexOfKey","componentName","getDerivedStateFromProps","_ref4","mergedTargetKeys","Component","defaultProps"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport List from './list';\nimport Operation from './operation';\nimport Search from './search';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport { ConfigConsumer } from '../config-provider';\nimport devWarning from '../_util/devWarning';\n\nvar Transfer = /*#__PURE__*/function (_React$Component) {\n  _inherits(Transfer, _React$Component);\n\n  var _super = _createSuper(Transfer);\n\n  function Transfer(props) {\n    var _this;\n\n    _classCallCheck(this, Transfer);\n\n    _this = _super.call(this, props);\n    _this.separatedDataSource = null;\n\n    _this.setStateKeys = function (direction, keys) {\n      if (direction === 'left') {\n        _this.setState(function (_ref) {\n          var sourceSelectedKeys = _ref.sourceSelectedKeys;\n          return {\n            sourceSelectedKeys: typeof keys === 'function' ? keys(sourceSelectedKeys || []) : keys\n          };\n        });\n      } else {\n        _this.setState(function (_ref2) {\n          var targetSelectedKeys = _ref2.targetSelectedKeys;\n          return {\n            targetSelectedKeys: typeof keys === 'function' ? keys(targetSelectedKeys || []) : keys\n          };\n        });\n      }\n    };\n\n    _this.getLocale = function (transferLocale, renderEmpty) {\n      return _extends(_extends(_extends({}, transferLocale), {\n        notFoundContent: renderEmpty('Transfer')\n      }), _this.props.locale);\n    };\n\n    _this.moveTo = function (direction) {\n      var _this$props = _this.props,\n          _this$props$targetKey = _this$props.targetKeys,\n          targetKeys = _this$props$targetKey === void 0 ? [] : _this$props$targetKey,\n          _this$props$dataSourc = _this$props.dataSource,\n          dataSource = _this$props$dataSourc === void 0 ? [] : _this$props$dataSourc,\n          onChange = _this$props.onChange;\n      var _this$state = _this.state,\n          sourceSelectedKeys = _this$state.sourceSelectedKeys,\n          targetSelectedKeys = _this$state.targetSelectedKeys;\n      var moveKeys = direction === 'right' ? sourceSelectedKeys : targetSelectedKeys; // filter the disabled options\n\n      var newMoveKeys = moveKeys.filter(function (key) {\n        return !dataSource.some(function (data) {\n          return !!(key === data.key && data.disabled);\n        });\n      }); // move items to target box\n\n      var newTargetKeys = direction === 'right' ? newMoveKeys.concat(targetKeys) : targetKeys.filter(function (targetKey) {\n        return newMoveKeys.indexOf(targetKey) === -1;\n      }); // empty checked keys\n\n      var oppositeDirection = direction === 'right' ? 'left' : 'right';\n\n      _this.setStateKeys(oppositeDirection, []);\n\n      _this.handleSelectChange(oppositeDirection, []);\n\n      if (onChange) {\n        onChange(newTargetKeys, direction, newMoveKeys);\n      }\n    };\n\n    _this.moveToLeft = function () {\n      return _this.moveTo('left');\n    };\n\n    _this.moveToRight = function () {\n      return _this.moveTo('right');\n    };\n\n    _this.onItemSelectAll = function (direction, selectedKeys, checkAll) {\n      _this.setStateKeys(direction, function (prevKeys) {\n        var mergedCheckedKeys = [];\n\n        if (checkAll) {\n          // Merge current keys with origin key\n          mergedCheckedKeys = Array.from(new Set([].concat(_toConsumableArray(prevKeys), _toConsumableArray(selectedKeys))));\n        } else {\n          // Remove current keys from origin keys\n          mergedCheckedKeys = prevKeys.filter(function (key) {\n            return selectedKeys.indexOf(key) === -1;\n          });\n        }\n\n        _this.handleSelectChange(direction, mergedCheckedKeys);\n\n        return mergedCheckedKeys;\n      });\n    };\n\n    _this.onLeftItemSelectAll = function (selectedKeys, checkAll) {\n      return _this.onItemSelectAll('left', selectedKeys, checkAll);\n    };\n\n    _this.onRightItemSelectAll = function (selectedKeys, checkAll) {\n      return _this.onItemSelectAll('right', selectedKeys, checkAll);\n    };\n\n    _this.handleFilter = function (direction, e) {\n      var onSearch = _this.props.onSearch;\n      var value = e.target.value;\n\n      if (onSearch) {\n        onSearch(direction, value);\n      }\n    };\n\n    _this.handleLeftFilter = function (e) {\n      return _this.handleFilter('left', e);\n    };\n\n    _this.handleRightFilter = function (e) {\n      return _this.handleFilter('right', e);\n    };\n\n    _this.handleClear = function (direction) {\n      var onSearch = _this.props.onSearch;\n\n      if (onSearch) {\n        onSearch(direction, '');\n      }\n    };\n\n    _this.handleLeftClear = function () {\n      return _this.handleClear('left');\n    };\n\n    _this.handleRightClear = function () {\n      return _this.handleClear('right');\n    };\n\n    _this.onItemSelect = function (direction, selectedKey, checked) {\n      var _this$state2 = _this.state,\n          sourceSelectedKeys = _this$state2.sourceSelectedKeys,\n          targetSelectedKeys = _this$state2.targetSelectedKeys;\n      var holder = direction === 'left' ? _toConsumableArray(sourceSelectedKeys) : _toConsumableArray(targetSelectedKeys);\n      var index = holder.indexOf(selectedKey);\n\n      if (index > -1) {\n        holder.splice(index, 1);\n      }\n\n      if (checked) {\n        holder.push(selectedKey);\n      }\n\n      _this.handleSelectChange(direction, holder);\n\n      if (!_this.props.selectedKeys) {\n        _this.setStateKeys(direction, holder);\n      }\n    };\n\n    _this.onLeftItemSelect = function (selectedKey, checked) {\n      return _this.onItemSelect('left', selectedKey, checked);\n    };\n\n    _this.onRightItemSelect = function (selectedKey, checked) {\n      return _this.onItemSelect('right', selectedKey, checked);\n    };\n\n    _this.onRightItemRemove = function (selectedKeys) {\n      var _this$props2 = _this.props,\n          _this$props2$targetKe = _this$props2.targetKeys,\n          targetKeys = _this$props2$targetKe === void 0 ? [] : _this$props2$targetKe,\n          onChange = _this$props2.onChange;\n\n      _this.setStateKeys('right', []);\n\n      if (onChange) {\n        onChange(targetKeys.filter(function (key) {\n          return !selectedKeys.includes(key);\n        }), 'left', _toConsumableArray(selectedKeys));\n      }\n    };\n\n    _this.handleScroll = function (direction, e) {\n      var onScroll = _this.props.onScroll;\n\n      if (onScroll) {\n        onScroll(direction, e);\n      }\n    };\n\n    _this.handleLeftScroll = function (e) {\n      return _this.handleScroll('left', e);\n    };\n\n    _this.handleRightScroll = function (e) {\n      return _this.handleScroll('right', e);\n    };\n\n    _this.handleListStyle = function (listStyle, direction) {\n      if (typeof listStyle === 'function') {\n        return listStyle({\n          direction: direction\n        });\n      }\n\n      return listStyle;\n    };\n\n    _this.renderTransfer = function (transferLocale) {\n      return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref3) {\n        var _classNames;\n\n        var getPrefixCls = _ref3.getPrefixCls,\n            renderEmpty = _ref3.renderEmpty,\n            direction = _ref3.direction;\n        var _this$props3 = _this.props,\n            customizePrefixCls = _this$props3.prefixCls,\n            className = _this$props3.className,\n            disabled = _this$props3.disabled,\n            _this$props3$operatio = _this$props3.operations,\n            operations = _this$props3$operatio === void 0 ? [] : _this$props3$operatio,\n            showSearch = _this$props3.showSearch,\n            footer = _this$props3.footer,\n            style = _this$props3.style,\n            listStyle = _this$props3.listStyle,\n            operationStyle = _this$props3.operationStyle,\n            filterOption = _this$props3.filterOption,\n            render = _this$props3.render,\n            children = _this$props3.children,\n            showSelectAll = _this$props3.showSelectAll,\n            oneWay = _this$props3.oneWay,\n            pagination = _this$props3.pagination;\n        var prefixCls = getPrefixCls('transfer', customizePrefixCls);\n\n        var locale = _this.getLocale(transferLocale, renderEmpty);\n\n        var _this$state3 = _this.state,\n            sourceSelectedKeys = _this$state3.sourceSelectedKeys,\n            targetSelectedKeys = _this$state3.targetSelectedKeys;\n        var mergedPagination = !children && pagination;\n\n        var _this$separateDataSou = _this.separateDataSource(),\n            leftDataSource = _this$separateDataSou.leftDataSource,\n            rightDataSource = _this$separateDataSou.rightDataSource;\n\n        var leftActive = targetSelectedKeys.length > 0;\n        var rightActive = sourceSelectedKeys.length > 0;\n        var cls = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-customize-list\"), !!children), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n\n        var titles = _this.getTitles(locale);\n\n        var selectAllLabels = _this.props.selectAllLabels || [];\n        return /*#__PURE__*/React.createElement(\"div\", {\n          className: cls,\n          style: style\n        }, /*#__PURE__*/React.createElement(List, _extends({\n          prefixCls: \"\".concat(prefixCls, \"-list\"),\n          titleText: titles[0],\n          dataSource: leftDataSource,\n          filterOption: filterOption,\n          style: _this.handleListStyle(listStyle, 'left'),\n          checkedKeys: sourceSelectedKeys,\n          handleFilter: _this.handleLeftFilter,\n          handleClear: _this.handleLeftClear,\n          onItemSelect: _this.onLeftItemSelect,\n          onItemSelectAll: _this.onLeftItemSelectAll,\n          render: render,\n          showSearch: showSearch,\n          renderList: children,\n          footer: footer,\n          onScroll: _this.handleLeftScroll,\n          disabled: disabled,\n          direction: \"left\",\n          showSelectAll: showSelectAll,\n          selectAllLabel: selectAllLabels[0],\n          pagination: mergedPagination\n        }, locale)), /*#__PURE__*/React.createElement(Operation, {\n          className: \"\".concat(prefixCls, \"-operation\"),\n          rightActive: rightActive,\n          rightArrowText: operations[0],\n          moveToRight: _this.moveToRight,\n          leftActive: leftActive,\n          leftArrowText: operations[1],\n          moveToLeft: _this.moveToLeft,\n          style: operationStyle,\n          disabled: disabled,\n          direction: direction,\n          oneWay: oneWay\n        }), /*#__PURE__*/React.createElement(List, _extends({\n          prefixCls: \"\".concat(prefixCls, \"-list\"),\n          titleText: titles[1],\n          dataSource: rightDataSource,\n          filterOption: filterOption,\n          style: _this.handleListStyle(listStyle, 'right'),\n          checkedKeys: targetSelectedKeys,\n          handleFilter: _this.handleRightFilter,\n          handleClear: _this.handleRightClear,\n          onItemSelect: _this.onRightItemSelect,\n          onItemSelectAll: _this.onRightItemSelectAll,\n          onItemRemove: _this.onRightItemRemove,\n          render: render,\n          showSearch: showSearch,\n          renderList: children,\n          footer: footer,\n          onScroll: _this.handleRightScroll,\n          disabled: disabled,\n          direction: \"right\",\n          showSelectAll: showSelectAll,\n          selectAllLabel: selectAllLabels[1],\n          showRemove: oneWay,\n          pagination: mergedPagination\n        }, locale)));\n      });\n    };\n\n    var _props$selectedKeys = props.selectedKeys,\n        selectedKeys = _props$selectedKeys === void 0 ? [] : _props$selectedKeys,\n        _props$targetKeys = props.targetKeys,\n        targetKeys = _props$targetKeys === void 0 ? [] : _props$targetKeys;\n    _this.state = {\n      sourceSelectedKeys: selectedKeys.filter(function (key) {\n        return targetKeys.indexOf(key) === -1;\n      }),\n      targetSelectedKeys: selectedKeys.filter(function (key) {\n        return targetKeys.indexOf(key) > -1;\n      })\n    };\n    return _this;\n  }\n\n  _createClass(Transfer, [{\n    key: \"getTitles\",\n    value: function getTitles(transferLocale) {\n      var titles = this.props.titles;\n\n      if (titles) {\n        return titles;\n      }\n\n      return transferLocale.titles;\n    }\n  }, {\n    key: \"handleSelectChange\",\n    value: function handleSelectChange(direction, holder) {\n      var _this$state4 = this.state,\n          sourceSelectedKeys = _this$state4.sourceSelectedKeys,\n          targetSelectedKeys = _this$state4.targetSelectedKeys;\n      var onSelectChange = this.props.onSelectChange;\n\n      if (!onSelectChange) {\n        return;\n      }\n\n      if (direction === 'left') {\n        onSelectChange(holder, targetSelectedKeys);\n      } else {\n        onSelectChange(sourceSelectedKeys, holder);\n      }\n    }\n  }, {\n    key: \"separateDataSource\",\n    value: function separateDataSource() {\n      var _this$props4 = this.props,\n          dataSource = _this$props4.dataSource,\n          rowKey = _this$props4.rowKey,\n          _this$props4$targetKe = _this$props4.targetKeys,\n          targetKeys = _this$props4$targetKe === void 0 ? [] : _this$props4$targetKe;\n      var leftDataSource = [];\n      var rightDataSource = new Array(targetKeys.length);\n      dataSource.forEach(function (record) {\n        if (rowKey) {\n          record.key = rowKey(record);\n        } // rightDataSource should be ordered by targetKeys\n        // leftDataSource should be ordered by dataSource\n\n\n        var indexOfKey = targetKeys.indexOf(record.key);\n\n        if (indexOfKey !== -1) {\n          rightDataSource[indexOfKey] = record;\n        } else {\n          leftDataSource.push(record);\n        }\n      });\n      return {\n        leftDataSource: leftDataSource,\n        rightDataSource: rightDataSource\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(LocaleReceiver, {\n        componentName: \"Transfer\",\n        defaultLocale: defaultLocale.Transfer\n      }, this.renderTransfer);\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(_ref4) {\n      var selectedKeys = _ref4.selectedKeys,\n          targetKeys = _ref4.targetKeys,\n          pagination = _ref4.pagination,\n          children = _ref4.children;\n\n      if (selectedKeys) {\n        var mergedTargetKeys = targetKeys || [];\n        return {\n          sourceSelectedKeys: selectedKeys.filter(function (key) {\n            return !mergedTargetKeys.includes(key);\n          }),\n          targetSelectedKeys: selectedKeys.filter(function (key) {\n            return mergedTargetKeys.includes(key);\n          })\n        };\n      }\n\n      devWarning(!pagination || !children, 'Transfer', '`pagination` not support customize render list.');\n      return null;\n    }\n  }]);\n\n  return Transfer;\n}(React.Component); // For high-level customized Transfer @dqaria\n\n\nTransfer.List = List;\nTransfer.Operation = Operation;\nTransfer.Search = Search;\nTransfer.defaultProps = {\n  dataSource: [],\n  locale: {},\n  showSearch: false,\n  listStyle: function listStyle() {}\n};\nexport default Transfer;"]},"metadata":{},"sourceType":"module"}