@kne/react-filter 0.1.13 → 0.1.16

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.modern.mjs","sources":["../src/context.js","../src/FilterItem/index.js","../src/List/index.js","../src/City/index.js","../src/SearchButton/index.js","../src/Range/index.js","../src/Text/index.js","../src/Selector/index.js","../src/Check/index.js","../src/RadioList/index.js","../src/CheckboxList/index.js","../src/MoreExtraButton/index.js","../src/index.js"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nconst context = createContext({});\n\nexport const { Consumer, Provider } = context;\n\nexport const useConsumer = () => useContext(context);\n\nexport default context;","import React from \"react\";\nimport {Space} from \"antd\";\nimport classnames from 'classnames';\n\nconst FilterItem = ({className, label, labelHidden, children}) => {\n return <Space className={classnames('react-filter-item', className)}>\n {labelHidden ? null : <div className=\"react-filter-item-label\">{label}:</div>}\n <div className=\"react-filter-item-children\">{children}</div>\n </Space>;\n};\n\nexport const withFilterItem = (WrappedComponent) => ({label, labelHidden, ...props}) => {\n return <FilterItem label={label} labelHidden={labelHidden}><WrappedComponent {...props} label={label}/></FilterItem>\n};\n\nexport default FilterItem;\n","import React, {createContext, useContext} from \"react\";\nimport {Button, message, Tag} from \"antd\";\nimport {useConsumer} from \"../context\";\nimport FilterItem from \"../FilterItem\";\nimport get from \"lodash/get\";\nimport isFunction from \"lodash/isFunction\";\nimport isEqual from \"lodash/isEqual\";\n\nconst {CheckableTag} = Tag;\n\nconst context = createContext({});\n\nconst {Provider} = context;\n\nconst List = ({label, labelHidden, name, size, children, options, more}) => {\n const {value, onChange} = useConsumer();\n const currentValue = (() => {\n const originValue = get(value, name);\n if (size === 1) {\n return originValue !== void (0) ? [originValue] : [];\n } else {\n return originValue || [];\n }\n })();\n\n const changeHandler = (value) => {\n if (size === 1) {\n return onChange(name, value[0]);\n } else {\n return onChange(name, value);\n }\n };\n const createCheckedChangeHandler = (value) => (checked) => {\n if (checked) {\n let newList = currentValue.slice(0);\n if (currentValue.length < size) {\n newList.push(value);\n }\n if (currentValue.length === size && size === 1) {\n newList = [value];\n }\n if (currentValue.length >= size && size > 1) {\n message.error(`最多选择${size}个`);\n return;\n }\n changeHandler(newList);\n } else {\n const newList = currentValue.slice(0);\n newList.splice(currentValue.indexOf(value), 1);\n changeHandler(newList);\n }\n };\n const computedChildren = (() => {\n if (Array.isArray(options)) {\n return options.map(({label, value}) => <List.Item key={value} value={value} label={label}/>);\n }\n if (isFunction(children)) {\n return children({value: currentValue, onChange: changeHandler});\n }\n return children;\n })();\n return <FilterItem label={label} labelHidden={labelHidden}>\n <Provider value={{\n currentValue, createCheckedChangeHandler\n }}>\n {computedChildren}\n {more ? (() => {\n if (isFunction(more)) {\n return more({name, size, label, value: currentValue, onChange: changeHandler});\n }\n const {children, onClick} = more;\n return <List.Item {...more} onClick={(e) => {\n onClick({name, label, value: currentValue, onChange: changeHandler}, e);\n }} label={children || \"其他\"}/>;\n })() : null}\n </Provider>\n </FilterItem>;\n};\n\nList.Item = ({value, label, ...props}) => {\n const {currentValue, createCheckedChangeHandler} = useContext(context);\n const itemProps = {};\n if (value !== void (0)) {\n itemProps.checked = currentValue.findIndex((item) => isEqual(get(item, 'value'), value)) > -1;\n itemProps.onChange = createCheckedChangeHandler({label, value});\n }\n\n return <CheckableTag {...props} {...itemProps}>{label}</CheckableTag>;\n};\n\nList.defaultProps = {\n size: 2\n};\n\nexport default List;\n","import React from \"react\";\nimport {createCitySelect, apis, RemoteData, DisplayCity} from \"@kne/react-city-select\";\nimport List from \"../List\";\n\nconst {Item} = List;\n\nconst City = ({label, labelHidden, name, size, ...props}) => {\n return <List labelHidden={labelHidden} label={label} name={name} size={size} more={{\n children: \"其他\", onClick: ({value, onChange}) => {\n createCitySelect({\n size, defaultValue: value.map(({value}) => value), onChange: (value) => {\n Promise.all(value.map((id) => apis.getCity(id).then(({city}) => ({\n label: city.name, value: city.code\n })))).then((value) => onChange(value));\n }\n });\n }\n }}>\n {({value: currentValue}) => <>\n <RemoteData loader={apis.getChinaHotCities}>{(data) => {\n const otherList = currentValue.filter(({value: code}) => !data.find((item) => item.code === code));\n let extraLength = 0;\n data.forEach((item, index) => {\n if (currentValue.findIndex(({value}) => value === item.code) > -1 && index >= data.length - otherList.length) {\n extraLength += 1;\n }\n });\n return <>\n {otherList.map(({value: code}) => {\n return <DisplayCity id={code} key={code}>{({city: item}) => {\n return <Item value={code} label={item.name}/>;\n }}</DisplayCity>;\n })}\n {data.filter((item, index) => currentValue.findIndex(({value}) => value === item.code) > -1 || index < data.length - otherList.length - extraLength).map((item) =>\n <Item key={item.code} value={item.code} label={item.name}/>)}\n </>;\n }}</RemoteData>\n </>}\n </List>;\n};\n\nexport default City;\n","import React, {useState, useEffect, useRef} from \"react\";\nimport {Button, Space} from \"antd\";\nimport {useConsumer} from \"../context\";\nimport useClickOutSide from \"@kne/use-click-outside\";\nimport classnames from \"classnames\";\nimport isFunction from \"lodash/isFunction\";\nimport get from \"lodash/get\";\n\nconst SearchButton = ({\n name,\n size,\n template,\n children,\n defaultValue,\n defaultActive,\n onBlur,\n onSearch,\n onBeforeSearch,\n onActiveChange,\n buttonText\n }) => {\n const {value: aValue, onChange} = useConsumer();\n const currentValue = aValue[name];\n const [value, setValue] = useState(defaultValue || get(currentValue, \"value\"));\n const [active, setActive] = useState(defaultActive);\n const withTemplate = (value = '') => ({\n value, label: isFunction(template) ? template(value) : value.toString()\n });\n const ref = useClickOutSide(() => {\n setValue(get(currentValue, \"value\"));\n setActive(false);\n onBlur && onBlur();\n });\n\n const activeChangeRef = useRef(onActiveChange);\n activeChangeRef.current = onActiveChange;\n\n useEffect(() => {\n activeChangeRef.current && activeChangeRef.current(active);\n }, [active]);\n return <div className={classnames(\"react-filter-search-button\", {\n \"is-active\": active\n })} ref={ref} onMouseEnter={() => {\n !active && setActive(true);\n }} onMouseLeave={() => {\n active && setActive(false);\n }}>\n <div className=\"inner\">\n <div>{children({value, setValue, setActive})}</div>\n {active ? <Button className=\"react-filter-search-confirm\" size=\"small\" type=\"primary\" onClick={(e) => {\n e.stopPropagation();\n if (onBeforeSearch && onBeforeSearch(value) === false) {\n return;\n }\n onChange(name, Number.isInteger(size) && size > 1 ? [withTemplate(value)] : withTemplate(value));\n setActive(false);\n onSearch && onSearch({value});\n }}>{buttonText}</Button> : null}</div>\n </div>;\n};\n\nSearchButton.defaultProps = {\n defaultActive: false, buttonText: \"确定\"\n};\n\nexport default SearchButton;\n","import React, {useState} from \"react\";\nimport {InputNumber, Space, Tooltip} from \"antd\";\nimport {withFilterItem} from \"../FilterItem\";\nimport SearchButton from \"../SearchButton\";\nimport get from \"lodash/get\";\nimport isNumber from \"lodash/isNumber\";\n\nexport const RangeInner = ({\n name,\n size,\n defaultActive,\n template,\n onBlur,\n onSearch,\n onActiveChange,\n startProps,\n endProps,\n placeholder\n }) => {\n const [error, setError] = useState(null);\n const check = (value) => {\n setError(null);\n if (!Array.isArray(value)) {\n return false;\n }\n if (isNumber(value[1]) && value[0] > value[1]) {\n setError(\"最大值不能小于最小值\");\n return false;\n }\n return true;\n };\n return <SearchButton size={size} template={template} onBlur={onBlur} defaultActive={defaultActive} name={name}\n onSearch={onSearch}\n onBeforeSearch={(value) => {\n return check(value);\n }} onActiveChange={(active) => {\n if (!active) {\n setError(null);\n }\n onActiveChange && onActiveChange(active);\n }}>\n {({value, setValue, setActive}) => <Tooltip visible={!!error} title={error} placement=\"bottomRight\"><Space\n size=\"small\">\n <InputNumber size=\"small\" {...startProps} value={get(value, 0)} onChange={(inputValue) => {\n const target = [inputValue, get(value, 1)];\n check(target);\n setValue(target);\n }} onFocus={() => {\n setActive(true);\n }} placeholder={Array.isArray(placeholder) ? placeholder[0] : (placeholder || \"请输入\")}/>\n ~\n <InputNumber size=\"small\" {...endProps} value={get(value, 1)} onChange={(inputValue) => {\n const target = [get(value, 0), inputValue];\n check(target);\n setValue(target);\n }} onFocus={() => {\n setActive(true);\n }} placeholder={Array.isArray(placeholder) ? placeholder[0] : (placeholder || \"请输入\")}/>\n </Space></Tooltip>}\n </SearchButton>;\n};\n\nconst Range = withFilterItem(RangeInner);\n\nexport default Range;\n\n","import React from \"react\";\nimport {Input} from \"antd\";\nimport {withFilterItem} from \"../FilterItem\";\nimport SearchButton from \"../SearchButton\";\n\nexport const TextInner = ({\n name,\n label,\n template,\n defaultActive,\n onBlur,\n onSearch,\n onActiveChange,\n placeholder,\n ...props\n }) => {\n return <SearchButton defaultActive={defaultActive} onBlur={onBlur} template={template} name={name}\n onSearch={onSearch}\n onActiveChange={(active) => {\n onActiveChange && onActiveChange(active);\n }}>\n {({value, setValue, setActive}) => <>\n <Input size=\"small\" {...props} placeholder={placeholder || label} value={value} onChange={(e) => {\n setValue(e.target.value);\n }} onFocus={() => {\n setActive(true);\n }}/>\n </>}\n </SearchButton>;\n};\n\nconst Text = withFilterItem(TextInner);\n\nexport default Text;\n\n","import React from \"react\";\nimport {Select} from \"antd\";\nimport {withFilterItem} from \"../FilterItem\";\nimport {useConsumer} from \"../context\";\n\nexport const SelectorInner = ({name, label, placeholder, ...props}) => {\n const {value: aValue, onChange} = useConsumer();\n const currentValue = aValue[name];\n return <Select {...props} placeholder={label || placeholder} size=\"small\" value={currentValue}\n onChange={(value, item) => {\n onChange(name, item);\n }}/>;\n};\n\nconst Selector = withFilterItem(SelectorInner);\n\nexport default Selector;\n","import React from \"react\";\nimport {Checkbox} from \"antd\";\nimport {useConsumer} from \"../context\";\nimport classnames from \"classnames\";\n\nconst Check = ({name, label, className, ...props}) => {\n const {value: aValue, onChange} = useConsumer();\n const currentValue = aValue[name];\n return <Checkbox {...props} className={classnames('react-filter-item', className)} size=\"small\"\n checked={currentValue} onChange={(e) => {\n onChange(name, e.target.checked ? {value: true, label} : null);\n }}>{label}</Checkbox>;\n};\n\nexport default Check;\n","import React from \"react\";\nimport {Radio} from \"antd\";\nimport {withFilterItem} from \"../FilterItem\";\nimport {useConsumer} from \"../context\";\nimport get from 'lodash/get'\n\nconst RadioList = withFilterItem(({label, name, options, ...props}) => {\n const {value: aValue, onChange} = useConsumer();\n const currentValue = aValue[name];\n console.log(currentValue);\n return <Radio.Group {...props} options={options} value={get(currentValue, 'value')} onChange={(e) => {\n const item = options.find((item) => item.value === e.target.value);\n onChange(name, item);\n }}/>\n});\n\nexport default RadioList;\n","import React from \"react\";\nimport {Checkbox} from \"antd\";\nimport {withFilterItem} from \"../FilterItem\";\nimport {useConsumer} from \"../context\";\n\nconst CheckboxList = withFilterItem(({label, name, options, ...props}) => {\n const {value: aValue, onChange} = useConsumer();\n const currentValue = aValue[name];\n return <Checkbox.Group {...props} value={(currentValue || []).map(({value}) => value)} onChange={(value) => {\n const item = value.map((value) => {\n return options.find((item) => item.value === value);\n });\n console.log(item);\n onChange(name, item);\n }} options={options}/>\n});\n\nexport default CheckboxList;\n","import React, { useState } from \"react\";\nimport List from \"../List\";\nimport { RangeInner } from \"../Range\";\nimport { TextInner } from \"../Text\";\nimport { SelectorInner } from \"../Selector\";\n\nexport const withMoreExtraButton = (WrappedComponent) => ({ name, value, children, ...props }) => {\n const [isEdit, setIsEdit] = useState(false);\n return isEdit ? <WrappedComponent defaultActive={true} {...props} name={name} onBlur={() => {\n setIsEdit(false);\n }} /> : <List.Item onClick={(e) => {\n e.stopPropagation();\n setIsEdit(true);\n }} label={children || \"其他\"} />;\n};\n\nconst RangeButton = withMoreExtraButton(RangeInner);\nconst TextButton = withMoreExtraButton(TextInner);\nconst SelectorButton = withMoreExtraButton(SelectorInner);\n\nexport const createExtraButton = ({ type, ...props }) => (innerProps) => {\n const mapping = {\n range: RangeButton, text: TextButton, selector: SelectorButton\n };\n\n const ExtraButtonComponent = mapping[type];\n if (!ExtraButtonComponent) {\n return null;\n }\n return <ExtraButtonComponent {...props} {...innerProps} />;\n};\n\n","import React, {cloneElement, useState, useMemo} from \"react\";\nimport {Space, Button, Divider, Tag, Row, Col} from \"antd\";\nimport City from \"./City\";\nimport List from \"./List\";\nimport Range from \"./Range\";\nimport Text from \"./Text\";\nimport Selector from \"./Selector\";\nimport Check from \"./Check\";\nimport RadioList from './RadioList';\nimport CheckboxList from './CheckboxList';\nimport {Provider} from \"./context\";\nimport FilterItem from \"./FilterItem\";\nimport \"./index.scss\";\n\nconst filterNull = (item) => {\n const target = Object.assign({}, item);\n Object.keys(target).forEach((key) => {\n const item = target[key];\n (() => {\n if (Array.isArray(item) && item.length > 0 && item.every((item) => item.value === void (0) || item.value === null || item.value === \"\")) {\n delete target[key];\n return;\n }\n if (Array.isArray(item) && item.length === 0) {\n delete target[key];\n return;\n }\n if (item && Array.isArray(item.value) && (item.value.length === 0 || item.value.every((item) => item === void (0) || item === null || item === \"\"))) {\n delete target[key];\n return;\n }\n if (item === void (0) || item === null || (!Array.isArray(item) && item && (item.value === void (0) || item.value === null || item.value === \"\"))) {\n delete target[key];\n return;\n }\n })();\n });\n return target;\n};\n\nexport const Filter = ({\n displayLine,\n defaultDisplay,\n isExtra,\n list,\n label,\n labelHidden,\n itemLabelHidden,\n unfoldText,\n foldText,\n extra,\n value: originValue,\n onChange\n }) => {\n const value = useMemo(() => {\n return filterNull(originValue);\n }, [originValue]);\n const [display, setDisplay] = useState(defaultDisplay);\n const basicList = list.slice(0, displayLine), moreList = list.slice(displayLine);\n const renderList = (list) => list.map((item, index) => {\n return <Space key={index}\n className=\"react-filter-line\">{item.map((item, index) => cloneElement(item, {\n key: index,\n labelHidden: itemLabelHidden\n }))}</Space>;\n });\n const changeHandler = (name, item) => {\n const target = Object.assign({}, value, {[name]: item});\n onChange(filterNull(target));\n };\n\n return <Provider value={{\n value, onChange: changeHandler\n }}>\n <div className=\"react-filter\">\n <div className=\"react-filter-inner\">\n <div>\n {labelHidden ? null : <Space>\n <FilterItem className=\"react-filter-selected\" label={label}>\n {Object.keys(value).map((key) => {\n const item = value[key];\n if (!item) return null;\n if (Array.isArray(item) && item.length === 0) return null;\n return <Tag key={key} closable onClose={() => {\n changeHandler(key, null);\n }}>{Array.isArray(item) ? item.map(({label}) => label).join(\",\") : item.label}</Tag>;\n })}\n </FilterItem>\n <div>{extra}</div>\n </Space>}\n </div>\n {renderList(isExtra ? basicList : list)}\n </div>\n {display ? <><Divider className=\"react-filter-divider\"/>\n <div className=\"react-filter-inner\">{renderList(moreList)}</div>\n </> :\n <div className=\"react-filter-divider-close\"/>}\n {isExtra && list.length > displayLine ? <Row className=\"react-filter-switch-btn\" justify=\"end\">\n <Col><Button type=\"link\" onClick={() => {\n setDisplay((display) => !display);\n }}>{display ? foldText : unfoldText}</Button></Col>\n </Row> : null}\n </div>\n </Provider>;\n};\n\nFilter.type = {\n City, List, Range, Text, Selector, Check, RadioList, CheckboxList\n};\n\nFilter.defaultProps = {\n label: '筛选项',\n labelHidden: false,\n itemLabelHidden: false,\n unfoldText: '展开',\n foldText: '收起',\n displayLine: 2,\n defaultDisplay: false,\n isExtra: true,\n list: [[]],\n value: {},\n extra: null,\n onChange: () => {\n }\n};\n\nexport {createExtraButton, withMoreExtraButton} from \"./MoreExtraButton\";\n\nexport {default as SearchButton} from \"./SearchButton\";\n\nexport {default as FilterItem, withFilterItem} from \"./FilterItem\";\n\nexport {useConsumer as useFilterContext} from './context';\n\nexport default Filter;\n"],"names":["context","createContext","Consumer","Provider","useConsumer","useContext","FilterItem","className","label","labelHidden","children","classnames","withFilterItem","WrappedComponent","props","CheckableTag","Tag","List","name","size","options","more","value","onChange","currentValue","originValue","get","changeHandler","createCheckedChangeHandler","checked","newList","slice","length","push","message","error","splice","indexOf","computedChildren","Array","isArray","map","isFunction","onClick","e","Item","itemProps","findIndex","item","isEqual","defaultProps","City","createCitySelect","defaultValue","Promise","all","id","apis","getCity","then","city","code","getChinaHotCities","data","otherList","filter","find","extraLength","forEach","index","SearchButton","template","defaultActive","onBlur","onSearch","onBeforeSearch","onActiveChange","buttonText","aValue","setValue","useState","active","setActive","withTemplate","toString","ref","useClickOutSide","activeChangeRef","useRef","current","useEffect","stopPropagation","Number","isInteger","RangeInner","startProps","endProps","placeholder","setError","check","isNumber","inputValue","target","Range","TextInner","Text","SelectorInner","Selector","Check","RadioList","console","log","CheckboxList","withMoreExtraButton","isEdit","setIsEdit","RangeButton","TextButton","SelectorButton","createExtraButton","type","innerProps","mapping","range","text","selector","ExtraButtonComponent","filterNull","Object","assign","keys","key","every","Filter","displayLine","defaultDisplay","isExtra","list","itemLabelHidden","unfoldText","foldText","extra","useMemo","display","setDisplay","basicList","moreList","renderList","cloneElement","join"],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,17 @@
1
1
  {
2
2
  "name": "@kne/react-filter",
3
- "version": "0.1.13",
3
+ "version": "0.1.16",
4
4
  "description": "筛选器",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.modern.js",
7
7
  "source": "src/index.js",
8
8
  "scripts": {
9
- "init": "npm install && cd example && npm install",
10
- "start": "run-p start:lib start:example",
11
- "build": "run-s build:lib build:example",
9
+ "init": "cd example &&npm i --legacy-peer-deps && node scripts/init.js",
10
+ "start": "run-p start:lib start:md start:example",
11
+ "build": "run-s build:lib build:md build:example",
12
12
  "build:lib": "microbundle --no-compress --format modern,cjs --jsx React.createElement --jsxFragment React.Fragment",
13
+ "build:md": "create-md",
14
+ "start:md": "create-md --watch",
13
15
  "start:lib": "microbundle watch --no-compress --format modern,cjs --jsx React.createElement --jsxFragment React.Fragment",
14
16
  "test": "run-s test:unit test:lint test:build",
15
17
  "test:build": "run-s build",
@@ -52,17 +54,18 @@
52
54
  "react": ">=16.x"
53
55
  },
54
56
  "devDependencies": {
57
+ "@kne/md-doc": "^0.1.6",
58
+ "@kne/microbundle": "^0.15.2",
55
59
  "@kne/react-city-select": "^0.1.6",
56
60
  "antd": "^4.18.9",
57
61
  "cross-env": "^7.0.3",
58
62
  "gh-pages": "^3.2.3",
59
63
  "husky": "^7.0.4",
60
- "microbundle": "^0.14.2",
61
64
  "node-sass": "^7.0.1",
62
65
  "npm-run-all": "^4.1.5",
63
66
  "prettier": "^2.5.1",
64
- "react": "^17.0.2",
65
- "react-dom": "^17.0.2",
67
+ "react": "^18.2.0",
68
+ "react-dom": "^18.2.0",
66
69
  "react-scripts": "^5.0.0"
67
70
  },
68
71
  "dependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/context.js","../src/FilterItem/index.js","../src/List/index.js","../src/City/index.js","../src/SearchButton/index.js","../src/Range/index.js","../src/Text/index.js","../src/Selector/index.js","../src/Check/index.js","../src/MoreExtraButton/index.js","../src/index.js"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nconst context = createContext({});\n\nexport const { Consumer, Provider } = context;\n\nexport const useConsumer = () => useContext(context);\n\nexport default context;","import React from \"react\";\nimport {Space} from \"antd\";\nimport classnames from 'classnames';\n\nconst FilterItem = ({className, label, children}) => {\n return <Space className={classnames('react-filter-item', className)}>\n <div className=\"react-filter-item-label\">{label}:</div>\n <div className=\"react-filter-item-children\">{children}</div>\n </Space>;\n};\n\nexport const withFilterItem = (WrappedComponent) => ({label, ...props}) => <FilterItem\n label={label}><WrappedComponent {...props} /></FilterItem>;\n\nexport default FilterItem;\n","import React, { createContext, useContext } from \"react\";\nimport { Button, message, Tag } from \"antd\";\nimport { useConsumer } from \"../context\";\nimport FilterItem from \"../FilterItem\";\nimport get from \"lodash/get\";\nimport isFunction from \"lodash/isFunction\";\nimport isEqual from \"lodash/isEqual\";\n\nconst { CheckableTag } = Tag;\n\nconst context = createContext({});\n\nconst { Provider } = context;\n\nconst List = ({ label, name, size, children, options, more }) => {\n const { value, onChange } = useConsumer();\n const currentValue = (() => {\n const originValue = get(value, name);\n if (size === 1) {\n return originValue !== void (0) ? [originValue] : [];\n } else {\n return originValue || [];\n }\n })();\n\n const changeHandler = (value) => {\n if (size === 1) {\n return onChange(name, value[0]);\n } else {\n return onChange(name, value);\n }\n };\n const createCheckedChangeHandler = (value) => (checked) => {\n if (checked) {\n let newList = currentValue.slice(0);\n if (currentValue.length < size) {\n newList.push(value);\n }\n if (currentValue.length === size && size === 1) {\n newList = [value];\n }\n if (currentValue.length >= size && size > 1) {\n message.error(`最多选择${size}个`);\n return;\n }\n changeHandler(newList);\n } else {\n const newList = currentValue.slice(0);\n newList.splice(currentValue.indexOf(value), 1);\n changeHandler(newList);\n }\n };\n const computedChildren = (() => {\n if (Array.isArray(options)) {\n return options.map(({ label, value }) => <List.Item key={value} value={value} label={label} />);\n }\n if (isFunction(children)) {\n return children({ value: currentValue, onChange: changeHandler });\n }\n return children;\n })();\n return <FilterItem label={label}>\n <Provider value={{\n currentValue, createCheckedChangeHandler\n }}>\n {computedChildren}\n {more ? (() => {\n if (isFunction(more)) {\n return more({ name, size, label, value: currentValue, onChange: changeHandler });\n }\n const { children, onClick } = more;\n return <List.Item {...more} onClick={(e) => {\n onClick({ name, label, value: currentValue, onChange: changeHandler }, e);\n }} label={children || \"其他\"} />;\n })() : null}\n </Provider>\n </FilterItem>;\n};\n\nList.Item = ({ value, label, ...props }) => {\n const { currentValue, createCheckedChangeHandler } = useContext(context);\n const itemProps = {};\n if (value !== void (0)) {\n itemProps.checked = currentValue.findIndex((item) => isEqual(get(item,'value'), value)) > -1;\n itemProps.onChange = createCheckedChangeHandler({ label, value });\n }\n\n return <CheckableTag {...props} {...itemProps}>{label}</CheckableTag>;\n};\n\nList.defaultProps = {\n size: 2\n};\n\nexport default List;\n","import React from \"react\";\nimport { createCitySelect, apis, RemoteData, DisplayCity } from \"@kne/react-city-select\";\nimport List from \"../List\";\n\nconst { Item } = List;\n\nconst City = ({ label, name, size }) => {\n return <List label={label} name={name} size={size} more={{\n children: \"其他\", onClick: ({ value, onChange }) => {\n createCitySelect({\n size, defaultValue: value.map(({ value }) => value), onChange: (value) => {\n Promise.all(value.map((id) => apis.getCity(id).then(({ city }) => ({\n label: city.name, value: city.code\n })))).then((value) => onChange(value));\n }\n });\n }\n }}>\n {({ value: currentValue }) => <>\n <RemoteData loader={apis.getChinaHotCities}>{(data) => {\n const otherList = currentValue.filter(({ value: code }) => !data.find((item) => item.code === code));\n let extraLength = 0;\n data.forEach((item, index) => {\n if (currentValue.findIndex(({ value }) => value === item.code) > -1 && index >= data.length - otherList.length) {\n extraLength += 1;\n }\n });\n return <>\n {otherList.map(({ value: code }) => {\n return <DisplayCity id={code} key={code}>{({ city: item }) => {\n return <Item value={code} label={item.name} />;\n }}</DisplayCity>;\n })}\n {data.filter((item, index) => currentValue.findIndex(({ value }) => value === item.code) > -1 || index < data.length - otherList.length - extraLength).map((item) =>\n <Item key={item.code} value={item.code} label={item.name} />)}\n </>;\n }}</RemoteData>\n </>}\n </List>;\n};\n\nexport default City;","import React, {useState, useEffect, useRef} from \"react\";\nimport {Button, Space} from \"antd\";\nimport {useConsumer} from \"../context\";\nimport useClickOutSide from \"@kne/use-click-outside\";\nimport classnames from \"classnames\";\nimport isFunction from \"lodash/isFunction\";\nimport get from \"lodash/get\";\n\nconst SearchButton = ({\n name,\n size,\n template,\n children,\n defaultValue,\n defaultActive,\n onBlur,\n onSearch,\n onBeforeSearch,\n onActiveChange,\n buttonText\n }) => {\n const {value: aValue, onChange} = useConsumer();\n const currentValue = aValue[name];\n const [value, setValue] = useState(defaultValue || get(currentValue, \"value\"));\n const [active, setActive] = useState(defaultActive);\n const withTemplate = (value = '') => ({\n value, label: isFunction(template) ? template(value) : value.toString()\n });\n const ref = useClickOutSide(() => {\n setValue(get(currentValue, \"value\"));\n setActive(false);\n onBlur && onBlur();\n });\n\n const activeChangeRef = useRef(onActiveChange);\n activeChangeRef.current = onActiveChange;\n\n useEffect(() => {\n activeChangeRef.current && activeChangeRef.current(active);\n }, [active]);\n return <div className={classnames(\"react-filter-search-button\", {\n \"is-active\": active\n })} ref={ref} onMouseEnter={() => {\n !active && setActive(true);\n }} onMouseLeave={() => {\n active && setActive(false);\n }}>\n <div className=\"inner\">\n <div>{children({value, setValue, setActive})}</div>\n {active ? <Button className=\"react-filter-search-confirm\" size=\"small\" type=\"primary\" onClick={(e) => {\n e.stopPropagation();\n if (onBeforeSearch && onBeforeSearch(value) === false) {\n return;\n }\n onChange(name, Number.isInteger(size) && size > 1 ? [withTemplate(value)] : withTemplate(value));\n setActive(false);\n onSearch && onSearch({value});\n }}>{buttonText}</Button> : null}</div>\n </div>;\n};\n\nSearchButton.defaultProps = {\n defaultActive: false, buttonText: \"确定\"\n};\n\nexport default SearchButton;\n","import React, { useState } from \"react\";\nimport { InputNumber, Space, Tooltip } from \"antd\";\nimport { withFilterItem } from \"../FilterItem\";\nimport SearchButton from \"../SearchButton\";\nimport get from \"lodash/get\";\nimport isNumber from \"lodash/isNumber\";\n\nexport const RangeInner = ({\n name, size, defaultActive, template, onBlur, onSearch, onActiveChange, startProps, endProps\n }) => {\n const [error, setError] = useState(null);\n const check = (value) => {\n setError(null);\n if (!Array.isArray(value)) {\n return false;\n }\n if (isNumber(value[1]) && value[0] > value[1]) {\n setError(\"最大值不能小于最小值\");\n return false;\n }\n return true;\n };\n return <SearchButton size={size} template={template} onBlur={onBlur} defaultActive={defaultActive} name={name} onSearch={onSearch}\n onBeforeSearch={(value) => {\n return check(value);\n }} onActiveChange={(active) => {\n if (!active) {\n setError(null);\n }\n onActiveChange && onActiveChange(active);\n }}>\n {({ value, setValue, setActive }) => <Tooltip visible={!!error} title={error} placement=\"bottomRight\"><Space\n size=\"small\">\n <InputNumber size=\"small\" {...startProps} value={get(value, 0)} onChange={(inputValue) => {\n const target = [inputValue, get(value, 1)];\n check(target);\n setValue(target);\n }} onFocus={() => {\n setActive(true);\n }} />\n ~\n <InputNumber size=\"small\" {...endProps} value={get(value, 1)} onChange={(inputValue) => {\n const target = [get(value, 0), inputValue];\n check(target);\n setValue(target);\n }} onFocus={() => {\n setActive(true);\n }} />\n </Space></Tooltip>}\n </SearchButton>;\n};\n\nconst Range = withFilterItem(RangeInner);\n\nexport default Range;\n\n","import React from \"react\";\nimport { Input } from \"antd\";\nimport { withFilterItem } from \"../FilterItem\";\nimport SearchButton from \"../SearchButton\";\n\nexport const TextInner = ({ name, label, template, defaultActive, onBlur, onSearch, onActiveChange, ...props }) => {\n return <SearchButton defaultActive={defaultActive} onBlur={onBlur} template={template} name={name} onSearch={onSearch}\n onActiveChange={(active) => {\n onActiveChange && onActiveChange(active);\n }}>\n {({ value, setValue, setActive }) => <>\n <Input size=\"small\" {...props} value={value} onChange={(e) => {\n setValue(e.target.value);\n }} onFocus={() => {\n setActive(true);\n }} />\n </>}\n </SearchButton>;\n};\n\nconst Text = withFilterItem(TextInner);\n\nexport default Text;\n\n","import React from \"react\";\nimport { Select } from \"antd\";\nimport { withFilterItem } from \"../FilterItem\";\nimport { useConsumer } from \"../context\";\n\nexport const SelectorInner = ({ name, ...props }) => {\n const { value: aValue, onChange } = useConsumer();\n const currentValue = aValue[name];\n return <Select {...props} style={{ minWidth: \"150px\" }} size=\"small\" value={currentValue} onChange={(value, item) => {\n onChange(name, item);\n }} />;\n};\n\nconst Selector = withFilterItem(SelectorInner);\n\nexport default Selector;","import React from \"react\";\nimport { Checkbox } from \"antd\";\nimport { useConsumer } from \"../context\";\n\nconst Check = ({ name, label, ...props }) => {\n const { value: aValue, onChange } = useConsumer();\n const currentValue = aValue[name];\n return <Checkbox {...props} size=\"small\" checked={currentValue} onChange={(e) => {\n onChange(name, e.target.checked ? { value: true, label } : null);\n }}>{label}</Checkbox>;\n};\n\nexport default Check;","import React, { useState } from \"react\";\nimport List from \"../List\";\nimport { RangeInner } from \"../Range\";\nimport { TextInner } from \"../Text\";\nimport { SelectorInner } from \"../Selector\";\n\nexport const withMoreExtraButton = (WrappedComponent) => ({ name, value, children, ...props }) => {\n const [isEdit, setIsEdit] = useState(false);\n return isEdit ? <WrappedComponent defaultActive={true} {...props} name={name} onBlur={() => {\n setIsEdit(false);\n }} /> : <List.Item onClick={(e) => {\n e.stopPropagation();\n setIsEdit(true);\n }} label={children || \"其他\"} />;\n};\n\nconst RangeButton = withMoreExtraButton(RangeInner);\nconst TextButton = withMoreExtraButton(TextInner);\nconst SelectorButton = withMoreExtraButton(SelectorInner);\n\nexport const createExtraButton = ({ type, ...props }) => (innerProps) => {\n const mapping = {\n range: RangeButton, text: TextButton, selector: SelectorButton\n };\n\n const ExtraButtonComponent = mapping[type];\n if (!ExtraButtonComponent) {\n return null;\n }\n return <ExtraButtonComponent {...props} {...innerProps} />;\n};\n\n","import React, {cloneElement, useState, useMemo} from \"react\";\nimport {Space, Button, Divider, Tag, Row, Col} from \"antd\";\nimport City from \"./City\";\nimport List from \"./List\";\nimport Range from \"./Range\";\nimport Text from \"./Text\";\nimport Selector from \"./Selector\";\nimport Check from \"./Check\";\nimport {Provider} from \"./context\";\nimport FilterItem from \"./FilterItem\";\nimport \"./index.scss\";\n\nconst filterNull = (item) => {\n const target = Object.assign({}, item);\n Object.keys(target).forEach((key) => {\n const item = target[key];\n (() => {\n if (Array.isArray(item) && item.length > 0 && item.every((item) => item.value === void (0) || item.value === null || item.value === \"\")) {\n delete target[key];\n return;\n }\n if (Array.isArray(item) && item.length === 0) {\n delete target[key];\n return;\n }\n if (item && Array.isArray(item.value) && (item.value.length === 0 || item.value.every((item) => item === void (0) || item === null || item === \"\"))) {\n delete target[key];\n return;\n }\n if (item === void (0) || item === null || (!Array.isArray(item) && item && (item.value === void (0) || item.value === null || item.value === \"\"))) {\n delete target[key];\n return;\n }\n })();\n });\n return target;\n};\n\nconst Filter = ({displayLine, isExtra, list, value: originValue, onChange}) => {\n const value = useMemo(() => {\n return filterNull(originValue);\n }, [originValue]);\n const [display, setDisplay] = useState(false);\n const basicList = list.slice(0, displayLine), moreList = list.slice(displayLine);\n const renderList = (list) => list.map((item, index) => {\n return <Space key={index}>{item.map((item, index) => cloneElement(item, {key: index}))}</Space>;\n });\n const changeHandler = (name, item) => {\n const target = Object.assign({}, value, {[name]: item});\n onChange(filterNull(target));\n };\n\n return <Provider value={{\n value, onChange: changeHandler\n }}>\n <div className=\"react-filter\">\n <div className=\"react-filter-inner\">\n <FilterItem className=\"react-filter-selected\" label=\"筛选项\">{Object.keys(value).map((key) => {\n const item = value[key];\n if (!item) return null;\n if (Array.isArray(item) && item.length === 0) return null;\n return <Tag key={key} closable onClose={() => {\n changeHandler(key, null);\n }}>{Array.isArray(item) ? item.map(({label}) => label).join(\",\") : item.label}</Tag>;\n })}</FilterItem>\n {renderList(isExtra ? basicList : list)}\n </div>\n {display ? <><Divider className=\"react-filter-divider\"/>\n <div className=\"react-filter-inner\">{renderList(moreList)}</div>\n </> :\n <div className=\"react-filter-divider-close\"/>}\n {isExtra && list.length > displayLine ? <Row className=\"react-filter-switch-btn\" justify=\"end\">\n <Col><Button type=\"link\" onClick={() => {\n setDisplay((display) => !display);\n }}>{display ? \"收起筛选条件\" : \"展开筛选条件\"}</Button></Col>\n </Row> : null}\n </div>\n </Provider>;\n};\n\nFilter.type = {\n City, List, Range, Text, Selector, Check\n};\n\nFilter.defaultProps = {\n displayLine: 2, isExtra: true, list: [[]], value: {}, onChange: () => {\n }\n};\n\nexport {createExtraButton, withMoreExtraButton} from \"./MoreExtraButton\";\n\nexport {default as SearchButton} from \"./SearchButton\";\n\nexport {default as FilterItem, withFilterItem} from \"./FilterItem\";\n\nexport {useConsumer as useFilterContext} from './context';\n\nexport default Filter;\n"],"names":["context","createContext","Consumer","Provider","useConsumer","useContext","FilterItem","className","label","children","classnames","withFilterItem","WrappedComponent","props","CheckableTag","Tag","List","name","size","options","more","value","onChange","currentValue","originValue","get","changeHandler","createCheckedChangeHandler","checked","newList","slice","length","push","message","error","splice","indexOf","computedChildren","Array","isArray","map","isFunction","onClick","e","Item","itemProps","findIndex","item","isEqual","defaultProps","City","createCitySelect","defaultValue","Promise","all","id","apis","getCity","then","city","code","getChinaHotCities","data","otherList","filter","find","extraLength","forEach","index","SearchButton","template","defaultActive","onBlur","onSearch","onBeforeSearch","onActiveChange","buttonText","aValue","setValue","useState","active","setActive","withTemplate","toString","ref","useClickOutSide","activeChangeRef","useRef","current","useEffect","stopPropagation","Number","isInteger","RangeInner","startProps","endProps","setError","check","isNumber","inputValue","target","Range","TextInner","Text","SelectorInner","minWidth","Selector","Check","withMoreExtraButton","isEdit","setIsEdit","RangeButton","TextButton","SelectorButton","createExtraButton","type","innerProps","mapping","range","text","selector","ExtraButtonComponent","filterNull","Object","assign","keys","key","every","Filter","displayLine","isExtra","list","useMemo","display","setDisplay","basicList","moreList","renderList","cloneElement","join"],"mappings":"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"}