UNPKG

14.7 kBSource Map (JSON)View Raw
1{"version":3,"sources":["transfer/list.js"],"names":["isRenderResultPlainObject","result","Object","prototype","toString","call","TransferList","arguments","state","mounted","handleSelect","selectedItem","props","checkedKeys","some","key","handleFilter","e","prefixCls","target","value","triggerScrollTimer","window","setTimeout","listNode","querySelectorAll","handleClear","matchFilter","text","item","filter","filterOption","indexOf","renderItem","render","noop","renderResult","renderedText","renderedEl","label","timer","setState","clearTimeout","args","PureRenderMixin","shouldComponentUpdate","apply","filteredDataSource","length","every","dataSource","titleText","lazy","body","footer","showSearch","style","searchPlaceholder","notFoundContent","itemUnit","itemsUnit","onScroll","handleSelectAll","footerDom","bodyDom","listCls","totalDataSource","showItems","map","trim","push","disabled","checked","React","createElement","Item","onClick","unit","search","className","Search","onChange","placeholder","listBody","Animate","component","componentProps","transitionName","transitionLeave","listFooter","checkStatus","getCheckStatus","checkedAll","checkAllCheckbox","Checkbox","indeterminate","Component","displayName","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component, isValidElement } from 'react';\nimport { findDOMNode } from 'react-dom';\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport Checkbox from '../checkbox';\nimport Search from './search';\nimport Item from './item';\nimport triggerEvent from '../_util/triggerEvent';\nimport Animate from '../animate';\nimport PureRenderMixin from '../rc-components/util/PureRenderMixin';\nfunction isRenderResultPlainObject(result) {\n return (result &&\n !isValidElement(result) &&\n Object.prototype.toString.call(result) === '[object Object]');\n}\nexport default class TransferList extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n mounted: false,\n };\n this.handleSelect = (selectedItem) => {\n const { checkedKeys, handleSelect } = this.props;\n const result = checkedKeys.some(key => key === selectedItem.key);\n handleSelect(selectedItem, !result);\n };\n this.handleFilter = (e) => {\n const { handleFilter, prefixCls } = this.props;\n handleFilter(e);\n if (!e.target.value) {\n return;\n }\n // Manually trigger scroll event for lazy search bug\n this.triggerScrollTimer = window.setTimeout(() => {\n const listNode = findDOMNode(this).querySelectorAll(`${prefixCls}-content`)[0];\n if (listNode) {\n triggerEvent(listNode, 'scroll');\n }\n }, 0);\n };\n this.handleClear = () => {\n const { handleClear } = this.props;\n handleClear();\n };\n this.matchFilter = (text, item) => {\n const { filter, filterOption } = this.props;\n if (filterOption) {\n return filterOption(filter, item);\n }\n return text.indexOf(filter) >= 0;\n };\n this.renderItem = (item) => {\n const { render = noop } = this.props;\n const renderResult = render(item);\n if (isRenderResultPlainObject(renderResult)) {\n return {\n renderedText: renderResult.value,\n renderedEl: renderResult.label,\n };\n }\n return {\n renderedText: renderResult,\n renderedEl: renderResult,\n };\n };\n }\n componentDidMount() {\n this.timer = window.setTimeout(() => {\n this.setState({\n mounted: true,\n });\n }, 0);\n }\n componentWillUnmount() {\n clearTimeout(this.timer);\n clearTimeout(this.triggerScrollTimer);\n }\n shouldComponentUpdate(...args) {\n return PureRenderMixin.shouldComponentUpdate.apply(this, args);\n }\n getCheckStatus(filteredDataSource) {\n const { checkedKeys } = this.props;\n if (checkedKeys.length === 0) {\n return 'none';\n }\n if (filteredDataSource.every(item => checkedKeys.indexOf(item.key) >= 0)) {\n return 'all';\n }\n return 'part';\n }\n render() {\n const { prefixCls, dataSource, titleText, checkedKeys, lazy, body = noop, footer = noop, showSearch, style, filter, searchPlaceholder, notFoundContent, itemUnit, itemsUnit, onScroll, handleSelectAll, } = this.props;\n const { mounted } = this.state;\n // Custom Layout\n const footerDom = footer({ ...this.props });\n const bodyDom = body({ ...this.props });\n const listCls = classNames(prefixCls, {\n [`${prefixCls}-with-footer`]: !!footerDom,\n });\n const filteredDataSource = [];\n const totalDataSource = [];\n const showItems = dataSource.map(item => {\n const { renderedText, renderedEl } = this.renderItem(item);\n if (filter && filter.trim() && !this.matchFilter(renderedText, item)) {\n return null;\n }\n // all show items\n totalDataSource.push(item);\n if (!item.disabled) {\n // response to checkAll items\n filteredDataSource.push(item);\n }\n const checked = checkedKeys.indexOf(item.key) >= 0;\n return (React.createElement(Item, { key: item.key, item: item, lazy: lazy, renderedText: renderedText, renderedEl: renderedEl, checked: checked, prefixCls: prefixCls, onClick: this.handleSelect }));\n });\n const unit = dataSource.length > 1 ? itemsUnit : itemUnit;\n const search = showSearch ? (React.createElement(\"div\", { className: `${prefixCls}-body-search-wrapper` },\n React.createElement(Search, { prefixCls: `${prefixCls}-search`, onChange: this.handleFilter, handleClear: this.handleClear, placeholder: searchPlaceholder, value: filter }))) : null;\n const listBody = bodyDom || (React.createElement(\"div\", { className: showSearch ? `${prefixCls}-body ${prefixCls}-body-with-search` : `${prefixCls}-body` },\n search,\n React.createElement(Animate, { component: \"ul\", componentProps: { onScroll }, className: `${prefixCls}-content`, transitionName: mounted ? `${prefixCls}-content-item-highlight` : '', transitionLeave: false }, showItems),\n React.createElement(\"div\", { className: `${prefixCls}-body-not-found` }, notFoundContent)));\n const listFooter = footerDom ? React.createElement(\"div\", { className: `${prefixCls}-footer` }, footerDom) : null;\n const checkStatus = this.getCheckStatus(filteredDataSource);\n const checkedAll = checkStatus === 'all';\n const checkAllCheckbox = (React.createElement(Checkbox, { checked: checkedAll, indeterminate: checkStatus === 'part', onChange: () => handleSelectAll(filteredDataSource, checkedAll) }));\n return (React.createElement(\"div\", { className: listCls, style: style },\n React.createElement(\"div\", { className: `${prefixCls}-header` },\n checkAllCheckbox,\n React.createElement(\"span\", { className: `${prefixCls}-header-selected` },\n React.createElement(\"span\", null,\n (checkedKeys.length > 0 ? `${checkedKeys.length}/` : '') + totalDataSource.length,\n ' ',\n unit),\n React.createElement(\"span\", { className: `${prefixCls}-header-title` }, titleText))),\n listBody,\n listFooter));\n }\n}\nTransferList.displayName = 'TransferList';\nTransferList.defaultProps = {\n dataSource: [],\n titleText: '',\n showSearch: false,\n render: noop,\n lazy: {},\n};\n"],"file":"list.js"}
\No newline at end of file