@rainbow-oh/yee-c 0.8.11 → 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/style/themes.css +1 -1
- package/dist/cjs/style/variables.css +1 -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/style/themes.css +1 -1
- package/dist/esm/style/variables.css +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +1 -1
- package/src/Table/hooks/useFilter.ts +23 -14
- 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]);
|
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]);
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED