@kne/react-filter 0.1.16 → 0.1.17
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/README.md +25 -9
- package/dist/index.css +10 -2
- package/dist/index.css.map +1 -1
- package/dist/index.js +126 -76
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +128 -79
- package/dist/index.modern.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,11 +29,11 @@ npm i --save @kne/react-filter
|
|
|
29
29
|
|
|
30
30
|
- 基础示例
|
|
31
31
|
- 展示一个筛选器的普通模式
|
|
32
|
-
- reactFilter(@kne/react-filter),
|
|
32
|
+
- reactFilter(@kne/react-filter),_(lodash)
|
|
33
33
|
|
|
34
34
|
```jsx
|
|
35
35
|
const {useState} = React;
|
|
36
|
-
const {Filter, createExtraButton} = reactFilter;
|
|
36
|
+
const {default: Filter, createExtraButton} = reactFilter.default;
|
|
37
37
|
|
|
38
38
|
const {City, List, Range, Text, Selector, Check} = Filter.type;
|
|
39
39
|
const {isNumber} = _;
|
|
@@ -43,7 +43,19 @@ const BaseExample = () => {
|
|
|
43
43
|
console.log(value);
|
|
44
44
|
return <Filter value={value} onChange={(value) => {
|
|
45
45
|
setValue(value);
|
|
46
|
-
}}
|
|
46
|
+
}} more={[
|
|
47
|
+
<Text label="测试字段" name="test1"/>,
|
|
48
|
+
<Text label="测试字段2" name="test2"/>,
|
|
49
|
+
<Range label="测试字段3" name="test3"/>,
|
|
50
|
+
<Selector label="测试字段4" name="test4"
|
|
51
|
+
options={[{
|
|
52
|
+
label: "英语", value: "en"
|
|
53
|
+
}, {
|
|
54
|
+
label: "日语", value: "jap"
|
|
55
|
+
}, {
|
|
56
|
+
label: "法语", value: "fac"
|
|
57
|
+
}]}/>
|
|
58
|
+
]} list={[[<City label="目前城市" name="currentCity" size={5}/>], [<List label="学历" name="degree" size={1}>
|
|
47
59
|
<List.Item value="0" label="初中"/>
|
|
48
60
|
<List.Item value="1" label="高中"/>
|
|
49
61
|
<List.Item value="2" label="大学专科"/>
|
|
@@ -105,7 +117,7 @@ render(<BaseExample/>);
|
|
|
105
117
|
|
|
106
118
|
```jsx
|
|
107
119
|
const {useState} = React;
|
|
108
|
-
const {Filter} = reactFilter;
|
|
120
|
+
const {default: Filter} = reactFilter.default;
|
|
109
121
|
const {default: Space} = space;
|
|
110
122
|
|
|
111
123
|
const {RadioList, Selector, Text, CheckboxList} = Filter.type;
|
|
@@ -178,11 +190,14 @@ render(<Example/>);
|
|
|
178
190
|
|
|
179
191
|
### API
|
|
180
192
|
|
|
181
|
-
| 属性名
|
|
182
|
-
|
|
183
|
-
| value
|
|
184
|
-
| onChange
|
|
185
|
-
| list
|
|
193
|
+
| 属性名 | 说明 | 类型 | 默认值 |
|
|
194
|
+
|-----------|------------------------------------------------------------------------------|----------|-------|
|
|
195
|
+
| value | 筛选器的值,该组件为一个受控组件 | object | - |
|
|
196
|
+
| onChange | 筛选器的值发生改变的时候调用的函数 | function | - |
|
|
197
|
+
| list | 筛选器的选项,为一个二维数组,二维数组中的每一个数组为一行,内部数组的每一项为一个筛选选项,筛选选项为Filter.type中的一项或者是自行扩展的选项 | array | [] |
|
|
198
|
+
| more | 筛选项更多选项,为一个一维数组,数组中的每一项为一个筛选项,和list不同的是该筛选项默认为收起状态|array| [] |
|
|
199
|
+
| moreLabel | 更多选项的label|string| 更多 |
|
|
200
|
+
|moreTrigger|更多选项的触发方式,默认为hover触发,页可以设置为click|string| hover |
|
|
186
201
|
|
|
187
202
|
#### Filter.type
|
|
188
203
|
|
|
@@ -203,6 +218,7 @@ CheckboxList(多选列表)
|
|
|
203
218
|
|-------|--------------------------------------------------------------|----------|-----|
|
|
204
219
|
| template | 将一组数据范围显示成一段用户可阅读的问题的模版,参数为筛选项的值,要求返回一个描述的字符串 | function | - |
|
|
205
220
|
|placeholder| 当为字符串时前后两个输入框显示同样内容,当为一个数组时,第一个输入框显示数组的第一个值,第二个输入框显示为数组的第二个值 | string|array | - |
|
|
221
|
+
|
|
206
222
|
#### List
|
|
207
223
|
|
|
208
224
|
| 属性名 | 说明 | 类型 | 默认值 |
|
package/dist/index.css
CHANGED
|
@@ -11,10 +11,15 @@
|
|
|
11
11
|
white-space: nowrap;
|
|
12
12
|
line-height: 32px; }
|
|
13
13
|
.react-filter-item .ant-input, .react-filter-item .ant-select {
|
|
14
|
-
min-width:
|
|
14
|
+
min-width: 150px; }
|
|
15
|
+
|
|
16
|
+
.react-filter-item-popover .ant-input, .react-filter-item-popover .ant-select {
|
|
17
|
+
min-width: 150px; }
|
|
15
18
|
|
|
16
19
|
.react-filter-item-label {
|
|
17
20
|
font-size: 14px; }
|
|
21
|
+
.react-filter-item-label.is-more {
|
|
22
|
+
cursor: pointer; }
|
|
18
23
|
|
|
19
24
|
.react-filter-item-children {
|
|
20
25
|
display: flex;
|
|
@@ -45,7 +50,10 @@
|
|
|
45
50
|
box-shadow: 2px 3px 10px 4px rgba(0, 0, 0, 0.2);
|
|
46
51
|
background: #FFFFFF; }
|
|
47
52
|
|
|
48
|
-
.react-filter-search-confirm {
|
|
53
|
+
.react-filter-search-confirm.is-more {
|
|
54
|
+
margin-left: 8px; }
|
|
55
|
+
|
|
56
|
+
.react-filter-search-confirm:not(.is-more) {
|
|
49
57
|
position: absolute;
|
|
50
58
|
top: 50%;
|
|
51
59
|
right: -10px;
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.scss"],"names":[],"mappings":"AAAA;EACE,oBAAoB,EAAE;;AAExB;EACE,gBAAgB,EAAE;;AAEpB;EACE,eAAe,EAAE;;AAEnB;EACE,mBAAmB;EACnB,iBAAiB,EAAE;EACnB;IACE,
|
|
1
|
+
{"version":3,"sources":["index.scss"],"names":[],"mappings":"AAAA;EACE,oBAAoB,EAAE;;AAExB;EACE,gBAAgB,EAAE;;AAEpB;EACE,eAAe,EAAE;;AAEnB;EACE,mBAAmB;EACnB,iBAAiB,EAAE;EACnB;IACE,gBAAgB,EAAE;;AAEtB;EACE,gBAAgB,EAAE;;AAEpB;EACE,eAAe,EAAE;EACjB;IACE,eAAe,EAAE;;AAErB;EACE,aAAa;EACb,mBAAmB,EAAE;;AAEvB;EACE,kBAAkB,EAAE;EACpB;IACE,kBAAkB,EAAE;EACtB;IACE,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,oBAAoB;IACpB,kBAAkB;IAClB,yBAAyB;IACzB,uBAAuB;IACvB,gCAAgC;IAChC,8CAA8C,EAAE;EAClD;IACE,UAAU,EAAE;IACZ;MACE,UAAU,EAAE;IACd;MACE,oBAAoB;MACpB,+CAA+C;MAC/C,mBAAmB,EAAE;;AAE3B;EACE,gBAAgB,EAAE;;AAEpB;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY;EACZ,gCAAgC,EAAE;;AAEpC;EACE,iBAAiB,EAAE;;AAErB;EACE,WAAW,EAAE","file":"index.css","sourcesContent":[".react-filter-inner {\n padding-right: 116px; }\n\n.react-filter-divider {\n margin: 5px auto; }\n\n.react-filter-line {\n min-width: 100%; }\n\n.react-filter-item {\n white-space: nowrap;\n line-height: 32px; }\n .react-filter-item .ant-input, .react-filter-item .ant-select {\n min-width: 150px; }\n\n.react-filter-item-popover .ant-input, .react-filter-item-popover .ant-select {\n min-width: 150px; }\n\n.react-filter-item-label {\n font-size: 14px; }\n .react-filter-item-label.is-more {\n cursor: pointer; }\n\n.react-filter-item-children {\n display: flex;\n align-items: center; }\n\n.react-filter-search-button {\n position: relative; }\n .react-filter-search-button .inner {\n position: relative; }\n .react-filter-search-button:before {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n border-radius: 3px;\n padding: 4px 4px 4px 60px;\n box-sizing: content-box;\n transform: translate(-3px, -3px);\n transition: box-shadow 300ms, background 300ms; }\n .react-filter-search-button.is-active {\n z-index: 1; }\n .react-filter-search-button.is-active .inner {\n z-index: 1; }\n .react-filter-search-button.is-active:before {\n pointer-events: auto;\n box-shadow: 2px 3px 10px 4px rgba(0, 0, 0, 0.2);\n background: #FFFFFF; }\n\n.react-filter-search-confirm.is-more {\n margin-left: 8px; }\n\n.react-filter-search-confirm:not(.is-more) {\n position: absolute;\n top: 50%;\n right: -10px;\n transform: translate(100%, -50%); }\n\n.react-filter-switch-btn {\n margin-top: -32px; }\n\n.react-filter-selected {\n width: 100%; }\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var React = require('react');
|
|
2
2
|
var antd = require('antd');
|
|
3
|
-
var reactCitySelect = require('@kne/react-city-select');
|
|
4
3
|
var classnames = require('classnames');
|
|
4
|
+
var reactCitySelect = require('@kne/react-city-select');
|
|
5
5
|
var get = require('lodash/get');
|
|
6
6
|
var isFunction = require('lodash/isFunction');
|
|
7
7
|
var isEqual = require('lodash/isEqual');
|
|
@@ -18,6 +18,12 @@ var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
|
|
|
18
18
|
var useClickOutSide__default = /*#__PURE__*/_interopDefaultLegacy(useClickOutSide);
|
|
19
19
|
var isNumber__default = /*#__PURE__*/_interopDefaultLegacy(isNumber);
|
|
20
20
|
|
|
21
|
+
var context$1 = React.createContext({});
|
|
22
|
+
var Provider$1 = context$1.Provider;
|
|
23
|
+
var useConsumer = function useConsumer() {
|
|
24
|
+
return React.useContext(context$1);
|
|
25
|
+
};
|
|
26
|
+
|
|
21
27
|
function _extends() {
|
|
22
28
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
23
29
|
for (var i = 1; i < arguments.length; i++) {
|
|
@@ -50,19 +56,27 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
50
56
|
return target;
|
|
51
57
|
}
|
|
52
58
|
|
|
53
|
-
var
|
|
54
|
-
var Provider$1 = context$1.Provider;
|
|
55
|
-
var useConsumer = function useConsumer() {
|
|
56
|
-
return React.useContext(context$1);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
var _excluded$8 = ["label", "labelHidden"];
|
|
59
|
+
var _excluded$8 = ["label", "labelHidden", "isMore", "moreTrigger"];
|
|
60
60
|
|
|
61
61
|
var FilterItem = function FilterItem(_ref) {
|
|
62
62
|
var className = _ref.className,
|
|
63
63
|
label = _ref.label,
|
|
64
64
|
labelHidden = _ref.labelHidden,
|
|
65
|
+
isMore = _ref.isMore,
|
|
66
|
+
moreTrigger = _ref.moreTrigger,
|
|
65
67
|
children = _ref.children;
|
|
68
|
+
|
|
69
|
+
if (isMore) {
|
|
70
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
71
|
+
className: classnames__default["default"]("react-filter-item-label", "is-more", className)
|
|
72
|
+
}, /*#__PURE__*/React__default["default"].createElement(antd.Popover, {
|
|
73
|
+
content: children,
|
|
74
|
+
trigger: moreTrigger,
|
|
75
|
+
placement: "bottom",
|
|
76
|
+
overlayClassName: "react-filter-item-popover"
|
|
77
|
+
}, /*#__PURE__*/React__default["default"].createElement("a", null, label)));
|
|
78
|
+
}
|
|
79
|
+
|
|
66
80
|
return /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
67
81
|
className: classnames__default["default"]('react-filter-item', className)
|
|
68
82
|
}, labelHidden ? null : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -76,13 +90,18 @@ var withFilterItem = function withFilterItem(WrappedComponent) {
|
|
|
76
90
|
return function (_ref2) {
|
|
77
91
|
var label = _ref2.label,
|
|
78
92
|
labelHidden = _ref2.labelHidden,
|
|
93
|
+
isMore = _ref2.isMore,
|
|
94
|
+
moreTrigger = _ref2.moreTrigger,
|
|
79
95
|
props = _objectWithoutPropertiesLoose(_ref2, _excluded$8);
|
|
80
96
|
|
|
81
97
|
return /*#__PURE__*/React__default["default"].createElement(FilterItem, {
|
|
82
98
|
label: label,
|
|
83
|
-
labelHidden: labelHidden
|
|
99
|
+
labelHidden: labelHidden,
|
|
100
|
+
isMore: isMore,
|
|
101
|
+
moreTrigger: moreTrigger
|
|
84
102
|
}, /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({}, props, {
|
|
85
|
-
label: label
|
|
103
|
+
label: label,
|
|
104
|
+
isMore: isMore
|
|
86
105
|
})));
|
|
87
106
|
};
|
|
88
107
|
};
|
|
@@ -238,7 +257,7 @@ List.defaultProps = {
|
|
|
238
257
|
size: 2
|
|
239
258
|
};
|
|
240
259
|
|
|
241
|
-
var _excluded$6 = ["label", "labelHidden", "name", "size"];
|
|
260
|
+
var _excluded$6 = ["label", "labelHidden", "name", "size", "isMore"];
|
|
242
261
|
var Item = List.Item;
|
|
243
262
|
|
|
244
263
|
var City = function City(_ref) {
|
|
@@ -331,6 +350,7 @@ var City = function City(_ref) {
|
|
|
331
350
|
var SearchButton = function SearchButton(_ref) {
|
|
332
351
|
var name = _ref.name,
|
|
333
352
|
size = _ref.size,
|
|
353
|
+
isMore = _ref.isMore,
|
|
334
354
|
template = _ref.template,
|
|
335
355
|
children = _ref.children,
|
|
336
356
|
defaultValue = _ref.defaultValue,
|
|
@@ -378,7 +398,7 @@ var SearchButton = function SearchButton(_ref) {
|
|
|
378
398
|
}, [active]);
|
|
379
399
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
380
400
|
className: classnames__default["default"]("react-filter-search-button", {
|
|
381
|
-
"is-active": active
|
|
401
|
+
"is-active": active && !isMore
|
|
382
402
|
}),
|
|
383
403
|
ref: ref,
|
|
384
404
|
onMouseEnter: function onMouseEnter() {
|
|
@@ -387,14 +407,17 @@ var SearchButton = function SearchButton(_ref) {
|
|
|
387
407
|
onMouseLeave: function onMouseLeave() {
|
|
388
408
|
active && setActive(false);
|
|
389
409
|
}
|
|
390
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
391
|
-
className: "inner"
|
|
410
|
+
}, /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
411
|
+
className: "inner",
|
|
412
|
+
size: 0
|
|
392
413
|
}, /*#__PURE__*/React__default["default"].createElement("div", null, children({
|
|
393
414
|
value: value,
|
|
394
415
|
setValue: setValue,
|
|
395
416
|
setActive: setActive
|
|
396
|
-
})), active ? /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
397
|
-
className: "react-filter-search-confirm",
|
|
417
|
+
})), active || isMore ? /*#__PURE__*/React__default["default"].createElement(antd.Button, {
|
|
418
|
+
className: classnames__default["default"]("react-filter-search-confirm", {
|
|
419
|
+
"is-more": isMore
|
|
420
|
+
}),
|
|
398
421
|
size: "small",
|
|
399
422
|
type: "primary",
|
|
400
423
|
onClick: function onClick(e) {
|
|
@@ -421,6 +444,7 @@ SearchButton.defaultProps = {
|
|
|
421
444
|
var RangeInner = function RangeInner(_ref) {
|
|
422
445
|
var name = _ref.name,
|
|
423
446
|
size = _ref.size,
|
|
447
|
+
isMore = _ref.isMore,
|
|
424
448
|
defaultActive = _ref.defaultActive,
|
|
425
449
|
template = _ref.template,
|
|
426
450
|
onBlur = _ref.onBlur,
|
|
@@ -452,6 +476,7 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
452
476
|
return /*#__PURE__*/React__default["default"].createElement(SearchButton, {
|
|
453
477
|
size: size,
|
|
454
478
|
template: template,
|
|
479
|
+
isMore: isMore,
|
|
455
480
|
onBlur: onBlur,
|
|
456
481
|
defaultActive: defaultActive,
|
|
457
482
|
name: name,
|
|
@@ -507,10 +532,11 @@ var RangeInner = function RangeInner(_ref) {
|
|
|
507
532
|
};
|
|
508
533
|
var Range = withFilterItem(RangeInner);
|
|
509
534
|
|
|
510
|
-
var _excluded$5 = ["name", "label", "template", "defaultActive", "onBlur", "onSearch", "onActiveChange", "placeholder"];
|
|
535
|
+
var _excluded$5 = ["name", "label", "isMore", "template", "defaultActive", "onBlur", "onSearch", "onActiveChange", "placeholder"];
|
|
511
536
|
var TextInner = function TextInner(_ref) {
|
|
512
537
|
var name = _ref.name,
|
|
513
538
|
label = _ref.label,
|
|
539
|
+
isMore = _ref.isMore,
|
|
514
540
|
template = _ref.template,
|
|
515
541
|
defaultActive = _ref.defaultActive,
|
|
516
542
|
onBlur = _ref.onBlur,
|
|
@@ -521,6 +547,7 @@ var TextInner = function TextInner(_ref) {
|
|
|
521
547
|
|
|
522
548
|
return /*#__PURE__*/React__default["default"].createElement(SearchButton, {
|
|
523
549
|
defaultActive: defaultActive,
|
|
550
|
+
isMore: isMore,
|
|
524
551
|
onBlur: onBlur,
|
|
525
552
|
template: template,
|
|
526
553
|
name: name,
|
|
@@ -548,7 +575,7 @@ var TextInner = function TextInner(_ref) {
|
|
|
548
575
|
};
|
|
549
576
|
var Text = withFilterItem(TextInner);
|
|
550
577
|
|
|
551
|
-
var _excluded$4 = ["name", "label", "placeholder"];
|
|
578
|
+
var _excluded$4 = ["name", "label", "placeholder", "isMore"];
|
|
552
579
|
var SelectorInner = function SelectorInner(_ref) {
|
|
553
580
|
var name = _ref.name,
|
|
554
581
|
label = _ref.label,
|
|
@@ -571,7 +598,7 @@ var SelectorInner = function SelectorInner(_ref) {
|
|
|
571
598
|
};
|
|
572
599
|
var Selector = withFilterItem(SelectorInner);
|
|
573
600
|
|
|
574
|
-
var _excluded$3 = ["name", "label", "className"];
|
|
601
|
+
var _excluded$3 = ["name", "label", "className", "isMore"];
|
|
575
602
|
|
|
576
603
|
var Check = function Check(_ref) {
|
|
577
604
|
var name = _ref.name,
|
|
@@ -597,7 +624,7 @@ var Check = function Check(_ref) {
|
|
|
597
624
|
}), label);
|
|
598
625
|
};
|
|
599
626
|
|
|
600
|
-
var _excluded$2 = ["label", "name", "options"];
|
|
627
|
+
var _excluded$2 = ["label", "name", "options", "isMore"];
|
|
601
628
|
var RadioList = withFilterItem(function (_ref) {
|
|
602
629
|
var name = _ref.name,
|
|
603
630
|
options = _ref.options,
|
|
@@ -608,7 +635,6 @@ var RadioList = withFilterItem(function (_ref) {
|
|
|
608
635
|
_onChange = _useConsumer.onChange;
|
|
609
636
|
|
|
610
637
|
var currentValue = aValue[name];
|
|
611
|
-
console.log(currentValue);
|
|
612
638
|
return /*#__PURE__*/React__default["default"].createElement(antd.Radio.Group, _extends({}, props, {
|
|
613
639
|
options: options,
|
|
614
640
|
value: get__default["default"](currentValue, 'value'),
|
|
@@ -622,7 +648,7 @@ var RadioList = withFilterItem(function (_ref) {
|
|
|
622
648
|
}));
|
|
623
649
|
});
|
|
624
650
|
|
|
625
|
-
var _excluded$1 = ["label", "name", "options"];
|
|
651
|
+
var _excluded$1 = ["label", "name", "options", "isMore"];
|
|
626
652
|
var CheckboxList = withFilterItem(function (_ref) {
|
|
627
653
|
var name = _ref.name,
|
|
628
654
|
options = _ref.options,
|
|
@@ -652,57 +678,6 @@ var CheckboxList = withFilterItem(function (_ref) {
|
|
|
652
678
|
}));
|
|
653
679
|
});
|
|
654
680
|
|
|
655
|
-
var _excluded = ["name", "value", "children"],
|
|
656
|
-
_excluded2 = ["type"];
|
|
657
|
-
var withMoreExtraButton = function withMoreExtraButton(WrappedComponent) {
|
|
658
|
-
return function (_ref) {
|
|
659
|
-
var name = _ref.name,
|
|
660
|
-
children = _ref.children,
|
|
661
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
662
|
-
|
|
663
|
-
var _useState = React.useState(false),
|
|
664
|
-
isEdit = _useState[0],
|
|
665
|
-
setIsEdit = _useState[1];
|
|
666
|
-
|
|
667
|
-
return isEdit ? /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({
|
|
668
|
-
defaultActive: true
|
|
669
|
-
}, props, {
|
|
670
|
-
name: name,
|
|
671
|
-
onBlur: function onBlur() {
|
|
672
|
-
setIsEdit(false);
|
|
673
|
-
}
|
|
674
|
-
})) : /*#__PURE__*/React__default["default"].createElement(List.Item, {
|
|
675
|
-
onClick: function onClick(e) {
|
|
676
|
-
e.stopPropagation();
|
|
677
|
-
setIsEdit(true);
|
|
678
|
-
},
|
|
679
|
-
label: children || "其他"
|
|
680
|
-
});
|
|
681
|
-
};
|
|
682
|
-
};
|
|
683
|
-
var RangeButton = withMoreExtraButton(RangeInner);
|
|
684
|
-
var TextButton = withMoreExtraButton(TextInner);
|
|
685
|
-
var SelectorButton = withMoreExtraButton(SelectorInner);
|
|
686
|
-
var createExtraButton = function createExtraButton(_ref2) {
|
|
687
|
-
var type = _ref2.type,
|
|
688
|
-
props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
689
|
-
|
|
690
|
-
return function (innerProps) {
|
|
691
|
-
var mapping = {
|
|
692
|
-
range: RangeButton,
|
|
693
|
-
text: TextButton,
|
|
694
|
-
selector: SelectorButton
|
|
695
|
-
};
|
|
696
|
-
var ExtraButtonComponent = mapping[type];
|
|
697
|
-
|
|
698
|
-
if (!ExtraButtonComponent) {
|
|
699
|
-
return null;
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
return /*#__PURE__*/React__default["default"].createElement(ExtraButtonComponent, _extends({}, props, innerProps));
|
|
703
|
-
};
|
|
704
|
-
};
|
|
705
|
-
|
|
706
681
|
var filterNull = function filterNull(item) {
|
|
707
682
|
var target = Object.assign({}, item);
|
|
708
683
|
Object.keys(target).forEach(function (key) {
|
|
@@ -748,6 +723,9 @@ var Filter = function Filter(_ref) {
|
|
|
748
723
|
unfoldText = _ref.unfoldText,
|
|
749
724
|
foldText = _ref.foldText,
|
|
750
725
|
extra = _ref.extra,
|
|
726
|
+
more = _ref.more,
|
|
727
|
+
moreTrigger = _ref.moreTrigger,
|
|
728
|
+
moreLabel = _ref.moreLabel,
|
|
751
729
|
originValue = _ref.value,
|
|
752
730
|
onChange = _ref.onChange;
|
|
753
731
|
var value = React.useMemo(function () {
|
|
@@ -782,6 +760,24 @@ var Filter = function Filter(_ref) {
|
|
|
782
760
|
onChange(filterNull(target));
|
|
783
761
|
};
|
|
784
762
|
|
|
763
|
+
var moreFilter = more && more.length > 0 ? /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
764
|
+
className: "react-filter-line is-more"
|
|
765
|
+
}, /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
766
|
+
className: "react-filter-item"
|
|
767
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
768
|
+
className: "react-filter-item-label"
|
|
769
|
+
}, moreLabel, ":"), /*#__PURE__*/React__default["default"].createElement(antd.Space, {
|
|
770
|
+
className: "react-filter-item-children",
|
|
771
|
+
split: /*#__PURE__*/React__default["default"].createElement(antd.Divider, {
|
|
772
|
+
type: "vertical"
|
|
773
|
+
})
|
|
774
|
+
}, more.map(function (item, index) {
|
|
775
|
+
return React.cloneElement(item, {
|
|
776
|
+
key: index,
|
|
777
|
+
isMore: true,
|
|
778
|
+
moreTrigger: moreTrigger
|
|
779
|
+
});
|
|
780
|
+
})))) : null;
|
|
785
781
|
return /*#__PURE__*/React__default["default"].createElement(Provider$1, {
|
|
786
782
|
value: {
|
|
787
783
|
value: value,
|
|
@@ -808,11 +804,11 @@ var Filter = function Filter(_ref) {
|
|
|
808
804
|
var label = _ref2.label;
|
|
809
805
|
return label;
|
|
810
806
|
}).join(",") : item.label);
|
|
811
|
-
})), /*#__PURE__*/React__default["default"].createElement("div", null, extra))), renderList(isExtra ? basicList : list)), display ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(antd.Divider, {
|
|
807
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", null, extra))), renderList(isExtra ? basicList : list), moreList.length === 0 ? moreFilter : null), display ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(antd.Divider, {
|
|
812
808
|
className: "react-filter-divider"
|
|
813
809
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
814
810
|
className: "react-filter-inner"
|
|
815
|
-
}, renderList(moreList))) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
811
|
+
}, renderList(moreList)), moreList.length > 0 ? moreFilter : null) : /*#__PURE__*/React__default["default"].createElement("div", {
|
|
816
812
|
className: "react-filter-divider-close"
|
|
817
813
|
}), isExtra && list.length > displayLine ? /*#__PURE__*/React__default["default"].createElement(antd.Row, {
|
|
818
814
|
className: "react-filter-switch-btn",
|
|
@@ -826,6 +822,7 @@ var Filter = function Filter(_ref) {
|
|
|
826
822
|
}
|
|
827
823
|
}, display ? foldText : unfoldText))) : null));
|
|
828
824
|
};
|
|
825
|
+
|
|
829
826
|
Filter.type = {
|
|
830
827
|
City: City,
|
|
831
828
|
List: List,
|
|
@@ -846,12 +843,65 @@ Filter.defaultProps = {
|
|
|
846
843
|
defaultDisplay: false,
|
|
847
844
|
isExtra: true,
|
|
848
845
|
list: [[]],
|
|
846
|
+
more: [],
|
|
847
|
+
moreTrigger: 'hover',
|
|
848
|
+
moreLabel: '更多',
|
|
849
849
|
value: {},
|
|
850
850
|
extra: null,
|
|
851
851
|
onChange: function onChange() {}
|
|
852
852
|
};
|
|
853
853
|
|
|
854
|
-
|
|
854
|
+
var _excluded = ["name", "value", "children"],
|
|
855
|
+
_excluded2 = ["type"];
|
|
856
|
+
var withMoreExtraButton = function withMoreExtraButton(WrappedComponent) {
|
|
857
|
+
return function (_ref) {
|
|
858
|
+
var name = _ref.name,
|
|
859
|
+
children = _ref.children,
|
|
860
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
861
|
+
|
|
862
|
+
var _useState = React.useState(false),
|
|
863
|
+
isEdit = _useState[0],
|
|
864
|
+
setIsEdit = _useState[1];
|
|
865
|
+
|
|
866
|
+
return isEdit ? /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({
|
|
867
|
+
defaultActive: true
|
|
868
|
+
}, props, {
|
|
869
|
+
name: name,
|
|
870
|
+
onBlur: function onBlur() {
|
|
871
|
+
setIsEdit(false);
|
|
872
|
+
}
|
|
873
|
+
})) : /*#__PURE__*/React__default["default"].createElement(List.Item, {
|
|
874
|
+
onClick: function onClick(e) {
|
|
875
|
+
e.stopPropagation();
|
|
876
|
+
setIsEdit(true);
|
|
877
|
+
},
|
|
878
|
+
label: children || "其他"
|
|
879
|
+
});
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
var RangeButton = withMoreExtraButton(RangeInner);
|
|
883
|
+
var TextButton = withMoreExtraButton(TextInner);
|
|
884
|
+
var SelectorButton = withMoreExtraButton(SelectorInner);
|
|
885
|
+
var createExtraButton = function createExtraButton(_ref2) {
|
|
886
|
+
var type = _ref2.type,
|
|
887
|
+
props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
888
|
+
|
|
889
|
+
return function (innerProps) {
|
|
890
|
+
var mapping = {
|
|
891
|
+
range: RangeButton,
|
|
892
|
+
text: TextButton,
|
|
893
|
+
selector: SelectorButton
|
|
894
|
+
};
|
|
895
|
+
var ExtraButtonComponent = mapping[type];
|
|
896
|
+
|
|
897
|
+
if (!ExtraButtonComponent) {
|
|
898
|
+
return null;
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
return /*#__PURE__*/React__default["default"].createElement(ExtraButtonComponent, _extends({}, props, innerProps));
|
|
902
|
+
};
|
|
903
|
+
};
|
|
904
|
+
|
|
855
905
|
exports.FilterItem = FilterItem;
|
|
856
906
|
exports.SearchButton = SearchButton;
|
|
857
907
|
exports.createExtraButton = createExtraButton;
|