@rainbow-oh/yee-c 0.8.10 → 0.8.12
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/dist/cjs/Table/hooks/useFilter.d.ts +3 -1
- package/dist/cjs/Table/hooks/useFilter.js +11 -12
- package/dist/cjs/Table/style/index.less +3 -4
- package/dist/cjs/Table/theader/filter.js +1 -1
- package/dist/cjs/style/size.css +1 -0
- package/dist/cjs/style/themes.css +1 -1
- package/dist/cjs/style/variables.css +2 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Table/hooks/useFilter.d.ts +3 -1
- package/dist/esm/Table/hooks/useFilter.js +19 -12
- package/dist/esm/Table/style/index.less +3 -4
- package/dist/esm/Table/theader/filter.js +1 -1
- package/dist/esm/style/size.css +1 -0
- package/dist/esm/style/themes.css +1 -1
- package/dist/esm/style/variables.css +2 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.css +2 -2
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +1 -1
- package/src/Table/hooks/useFilter.ts +23 -14
- package/src/Table/style/index.less +3 -4
- package/src/Table/theader/filter.tsx +1 -1
- package/src/style/size.css +1 -0
- package/src/version.ts +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
type FilterValue = string | number;
|
|
2
|
+
type FilterInput = FilterValue | FilterValue[];
|
|
1
3
|
type FilterOptions = {
|
|
2
4
|
dataIndex: string;
|
|
3
|
-
value:
|
|
5
|
+
value: FilterInput;
|
|
4
6
|
};
|
|
5
7
|
export default function useFilter({ data, }: {
|
|
6
8
|
data: Array<Record<string, unknown>>;
|
|
@@ -40,13 +40,15 @@ __export(useFilter_exports, {
|
|
|
40
40
|
});
|
|
41
41
|
module.exports = __toCommonJS(useFilter_exports);
|
|
42
42
|
var import_react = require("react");
|
|
43
|
+
var isEmptyFilterValue = (value) => value === "" || Array.isArray(value) && value.length === 0;
|
|
44
|
+
var normalizeValue = (value) => value === null || value === void 0 ? "" : String(value).toLowerCase();
|
|
43
45
|
function useFilter({
|
|
44
46
|
data
|
|
45
47
|
}) {
|
|
46
48
|
const [filterRecords, setFilterRecords] = (0, import_react.useState)([]);
|
|
47
49
|
const onFilter = ({ value, dataIndex }) => {
|
|
48
50
|
let newFilterMap = [...filterRecords];
|
|
49
|
-
if (
|
|
51
|
+
if (isEmptyFilterValue(value)) {
|
|
50
52
|
newFilterMap = newFilterMap.filter(
|
|
51
53
|
(item) => item.dataIndex !== dataIndex
|
|
52
54
|
);
|
|
@@ -67,23 +69,20 @@ function useFilter({
|
|
|
67
69
|
};
|
|
68
70
|
const filtered = (0, import_react.useMemo)(() => {
|
|
69
71
|
const handled = filterRecords.filter(
|
|
70
|
-
(
|
|
72
|
+
({ dataIndex, value }) => Boolean(dataIndex) && !isEmptyFilterValue(value)
|
|
71
73
|
);
|
|
72
74
|
if (!handled.length) {
|
|
73
75
|
return data;
|
|
74
76
|
}
|
|
75
77
|
return data.filter((item) => {
|
|
76
|
-
return handled.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
} else {
|
|
83
|
-
const v = o.value.toLowerCase();
|
|
84
|
-
const t = item[o.dataIndex] || "";
|
|
85
|
-
return t.toLowerCase().includes(v);
|
|
78
|
+
return handled.some(({ dataIndex, value }) => {
|
|
79
|
+
const targetValue = normalizeValue(item[dataIndex]);
|
|
80
|
+
if (Array.isArray(value)) {
|
|
81
|
+
return value.some(
|
|
82
|
+
(filterValue) => targetValue === normalizeValue(filterValue)
|
|
83
|
+
);
|
|
86
84
|
}
|
|
85
|
+
return targetValue.includes(normalizeValue(value));
|
|
87
86
|
});
|
|
88
87
|
});
|
|
89
88
|
}, [data, filterRecords]);
|
|
@@ -72,14 +72,13 @@
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
&-filter {
|
|
75
|
+
max-height: var(--yee-table-filter-popup-height);
|
|
76
|
+
background-color: var(--yee-table-filter-list-bg-color);
|
|
77
|
+
|
|
75
78
|
&-trigger {
|
|
76
79
|
display: inline-flex;
|
|
77
80
|
cursor: pointer;
|
|
78
81
|
}
|
|
79
|
-
|
|
80
|
-
&-popup {
|
|
81
|
-
background-color: var(--yee-table-filter-list-bg-color);
|
|
82
|
-
}
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
&-content {
|
|
@@ -172,7 +172,7 @@ var HeaderFilter = import_react.default.memo((props) => {
|
|
|
172
172
|
{
|
|
173
173
|
trigger: "click",
|
|
174
174
|
placement: "bottomRight",
|
|
175
|
-
|
|
175
|
+
className: `${prefixCls}-filter`,
|
|
176
176
|
content: popup,
|
|
177
177
|
arrow: true,
|
|
178
178
|
open,
|
package/dist/cjs/style/size.css
CHANGED
|
@@ -403,6 +403,7 @@
|
|
|
403
403
|
--yee-popover-header-line-height: 24px;
|
|
404
404
|
--yee-popover-arrow-width: var(--yee-popup-arrow-width);
|
|
405
405
|
--yee-popover-arrow-height: var(--yee-popup-arrow-height);
|
|
406
|
+
--yee-table-filter-popup-height: 400px;
|
|
406
407
|
|
|
407
408
|
/* --Progress-- */
|
|
408
409
|
--yee-progress-text-width: 48px;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @rainbow-oh/yee-c CSS Variables
|
|
3
3
|
* Auto-generated, do not edit manually
|
|
4
|
-
* Generated on 2026-07-
|
|
4
|
+
* Generated on 2026-07-29T04:29:09.688Z
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/* ========== color.css ========== */
|
|
@@ -1525,6 +1525,7 @@
|
|
|
1525
1525
|
--yee-popover-header-line-height: 24px;
|
|
1526
1526
|
--yee-popover-arrow-width: var(--yee-popup-arrow-width);
|
|
1527
1527
|
--yee-popover-arrow-height: var(--yee-popup-arrow-height);
|
|
1528
|
+
--yee-table-filter-popup-height: 400px;
|
|
1528
1529
|
|
|
1529
1530
|
/* --Progress-- */
|
|
1530
1531
|
--yee-progress-text-width: 48px;
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
type FilterValue = string | number;
|
|
2
|
+
type FilterInput = FilterValue | FilterValue[];
|
|
1
3
|
type FilterOptions = {
|
|
2
4
|
dataIndex: string;
|
|
3
|
-
value:
|
|
5
|
+
value: FilterInput;
|
|
4
6
|
};
|
|
5
7
|
export default function useFilter({ data, }: {
|
|
6
8
|
data: Array<Record<string, unknown>>;
|
|
@@ -15,6 +15,12 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
15
15
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
16
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
17
|
import { useMemo, useState } from 'react';
|
|
18
|
+
var isEmptyFilterValue = function isEmptyFilterValue(value) {
|
|
19
|
+
return value === '' || Array.isArray(value) && value.length === 0;
|
|
20
|
+
};
|
|
21
|
+
var normalizeValue = function normalizeValue(value) {
|
|
22
|
+
return value === null || value === undefined ? '' : String(value).toLowerCase();
|
|
23
|
+
};
|
|
18
24
|
export default function useFilter(_ref) {
|
|
19
25
|
var data = _ref.data;
|
|
20
26
|
var _useState = useState([]),
|
|
@@ -25,7 +31,7 @@ export default function useFilter(_ref) {
|
|
|
25
31
|
var value = _ref2.value,
|
|
26
32
|
dataIndex = _ref2.dataIndex;
|
|
27
33
|
var newFilterMap = _toConsumableArray(filterRecords);
|
|
28
|
-
if (
|
|
34
|
+
if (isEmptyFilterValue(value)) {
|
|
29
35
|
newFilterMap = newFilterMap.filter(function (item) {
|
|
30
36
|
return item.dataIndex !== dataIndex;
|
|
31
37
|
});
|
|
@@ -50,24 +56,25 @@ export default function useFilter(_ref) {
|
|
|
50
56
|
setFilterRecords(newFilterMap);
|
|
51
57
|
};
|
|
52
58
|
var filtered = useMemo(function () {
|
|
53
|
-
var handled = filterRecords.filter(function (
|
|
54
|
-
|
|
59
|
+
var handled = filterRecords.filter(function (_ref3) {
|
|
60
|
+
var dataIndex = _ref3.dataIndex,
|
|
61
|
+
value = _ref3.value;
|
|
62
|
+
return Boolean(dataIndex) && !isEmptyFilterValue(value);
|
|
55
63
|
});
|
|
56
64
|
if (!handled.length) {
|
|
57
65
|
return data;
|
|
58
66
|
}
|
|
59
67
|
return data.filter(function (item) {
|
|
60
|
-
return handled.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
return handled.some(function (_ref4) {
|
|
69
|
+
var dataIndex = _ref4.dataIndex,
|
|
70
|
+
value = _ref4.value;
|
|
71
|
+
var targetValue = normalizeValue(item[dataIndex]);
|
|
72
|
+
if (Array.isArray(value)) {
|
|
73
|
+
return value.some(function (filterValue) {
|
|
74
|
+
return targetValue === normalizeValue(filterValue);
|
|
65
75
|
});
|
|
66
|
-
} else {
|
|
67
|
-
var v = o.value.toLowerCase();
|
|
68
|
-
var t = item[o.dataIndex] || '';
|
|
69
|
-
return t.toLowerCase().includes(v);
|
|
70
76
|
}
|
|
77
|
+
return targetValue.includes(normalizeValue(value));
|
|
71
78
|
});
|
|
72
79
|
});
|
|
73
80
|
}, [data, filterRecords]);
|
|
@@ -72,14 +72,13 @@
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
&-filter {
|
|
75
|
+
max-height: var(--yee-table-filter-popup-height);
|
|
76
|
+
background-color: var(--yee-table-filter-list-bg-color);
|
|
77
|
+
|
|
75
78
|
&-trigger {
|
|
76
79
|
display: inline-flex;
|
|
77
80
|
cursor: pointer;
|
|
78
81
|
}
|
|
79
|
-
|
|
80
|
-
&-popup {
|
|
81
|
-
background-color: var(--yee-table-filter-list-bg-color);
|
|
82
|
-
}
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
&-content {
|
|
@@ -199,7 +199,7 @@ var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
199
199
|
return /*#__PURE__*/React.createElement(Popover, {
|
|
200
200
|
trigger: "click",
|
|
201
201
|
placement: "bottomRight",
|
|
202
|
-
|
|
202
|
+
className: "".concat(prefixCls, "-filter"),
|
|
203
203
|
content: popup,
|
|
204
204
|
arrow: true,
|
|
205
205
|
open: open,
|
package/dist/esm/style/size.css
CHANGED
|
@@ -403,6 +403,7 @@
|
|
|
403
403
|
--yee-popover-header-line-height: 24px;
|
|
404
404
|
--yee-popover-arrow-width: var(--yee-popup-arrow-width);
|
|
405
405
|
--yee-popover-arrow-height: var(--yee-popup-arrow-height);
|
|
406
|
+
--yee-table-filter-popup-height: 400px;
|
|
406
407
|
|
|
407
408
|
/* --Progress-- */
|
|
408
409
|
--yee-progress-text-width: 48px;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @rainbow-oh/yee-c CSS Variables
|
|
3
3
|
* Auto-generated, do not edit manually
|
|
4
|
-
* Generated on 2026-07-
|
|
4
|
+
* Generated on 2026-07-29T04:29:09.688Z
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/* ========== color.css ========== */
|
|
@@ -1525,6 +1525,7 @@
|
|
|
1525
1525
|
--yee-popover-header-line-height: 24px;
|
|
1526
1526
|
--yee-popover-arrow-width: var(--yee-popup-arrow-width);
|
|
1527
1527
|
--yee-popover-arrow-height: var(--yee-popup-arrow-height);
|
|
1528
|
+
--yee-table-filter-popup-height: 400px;
|
|
1528
1529
|
|
|
1529
1530
|
/* --Progress-- */
|
|
1530
1531
|
--yee-progress-text-width: 48px;
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED