nntc-ui 0.0.45 → 0.0.47
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/index.js +37 -33
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -2735,6 +2735,32 @@ import { useMemo as useMemo5 } from "react";
|
|
|
2735
2735
|
var root18 = "headerDropdown_root";
|
|
2736
2736
|
var checklistWrap = "headerDropdown_checklistWrap";
|
|
2737
2737
|
|
|
2738
|
+
// src/components/view/VirtualTable/utils/alphanumericCompare.ts
|
|
2739
|
+
var alphanumericCompare = (a, b) => {
|
|
2740
|
+
const aParts = a.match(/(\d+|\D+)/g) || [];
|
|
2741
|
+
const bParts = b.match(/(\d+|\D+)/g) || [];
|
|
2742
|
+
const maxLength = Math.max(aParts.length, bParts.length);
|
|
2743
|
+
for (let i = 0; i < maxLength; i++) {
|
|
2744
|
+
const aPart = aParts[i] || "";
|
|
2745
|
+
const bPart = bParts[i] || "";
|
|
2746
|
+
const aIsNumber = /^\d+$/.test(aPart);
|
|
2747
|
+
const bIsNumber = /^\d+$/.test(bPart);
|
|
2748
|
+
if (aIsNumber && bIsNumber) {
|
|
2749
|
+
const numA = parseInt(aPart, 10);
|
|
2750
|
+
const numB = parseInt(bPart, 10);
|
|
2751
|
+
if (numA !== numB) {
|
|
2752
|
+
return numA - numB;
|
|
2753
|
+
}
|
|
2754
|
+
} else {
|
|
2755
|
+
const comparison = aPart.localeCompare(bPart);
|
|
2756
|
+
if (comparison !== 0) {
|
|
2757
|
+
return comparison;
|
|
2758
|
+
}
|
|
2759
|
+
}
|
|
2760
|
+
}
|
|
2761
|
+
return 0;
|
|
2762
|
+
};
|
|
2763
|
+
|
|
2738
2764
|
// src/components/view/VirtualTable/ui/DateFiltration/DateFiltration.tsx
|
|
2739
2765
|
import classnames19 from "classnames";
|
|
2740
2766
|
import { useEffect as useEffect7, useState as useState14 } from "react";
|
|
@@ -2923,12 +2949,12 @@ function HeaderDropdown(props) {
|
|
|
2923
2949
|
} = props;
|
|
2924
2950
|
const headerResultName = sortAnotherName ?? headerName;
|
|
2925
2951
|
const filterItems3 = useMemo5(() => {
|
|
2926
|
-
const checklistItems = items2.
|
|
2952
|
+
const checklistItems = items2.map(
|
|
2927
2953
|
(i) => ({
|
|
2928
|
-
name: valueFormat ? valueFormat(i[headerResultName].value?.toString() ?? "") : toFixed !== void 0 && !Number.isNaN(parseFloat(i[headerResultName].value)) ? parseFloat(Number(i[headerResultName].value).toFixed(toFixed)) : i[headerResultName].value,
|
|
2929
|
-
value: i[headerResultName]
|
|
2954
|
+
name: i[headerResultName] ? valueFormat ? valueFormat(i[headerResultName].value?.toString() ?? "") : toFixed !== void 0 && !Number.isNaN(parseFloat(i[headerResultName].value)) ? parseFloat(Number(i[headerResultName].value).toFixed(toFixed)) : i[headerResultName].value || "< \u043D\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F >" : "< \u043D\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F >",
|
|
2955
|
+
value: i[headerResultName]?.value || ""
|
|
2930
2956
|
})
|
|
2931
|
-
);
|
|
2957
|
+
).sort((a, b) => alphanumericCompare(a.name.toString(), b.name.toString()));
|
|
2932
2958
|
const uniqueChecklistItems = [
|
|
2933
2959
|
...checklistItems.reduce((a, c) => {
|
|
2934
2960
|
a.set(c.value, c);
|
|
@@ -2938,7 +2964,11 @@ function HeaderDropdown(props) {
|
|
|
2938
2964
|
return uniqueChecklistItems;
|
|
2939
2965
|
}, [items2, headerResultName]);
|
|
2940
2966
|
const uniqueRows = useMemo5(
|
|
2941
|
-
() => Array.from(
|
|
2967
|
+
() => Array.from(
|
|
2968
|
+
new Set(
|
|
2969
|
+
rows.filter((i) => !!i?.[headerResultName]).map((i) => i[headerResultName].payload?.id ?? i[headerResultName].value)
|
|
2970
|
+
)
|
|
2971
|
+
),
|
|
2942
2972
|
[rows, headerResultName]
|
|
2943
2973
|
);
|
|
2944
2974
|
const filterSelectedItems = useMemo5(() => {
|
|
@@ -3165,39 +3195,13 @@ var recursiveFilter = (rows, filterBy) => {
|
|
|
3165
3195
|
const endDate = filterByItem.type === "dateRange" ? dayjs3(filterByItem.values[1]) : null;
|
|
3166
3196
|
const filtered = filterByItem.values.length ? rows.filter((row) => {
|
|
3167
3197
|
const dateValue = filterByItem.type === "dateRange" ? dayjs3(row[filterByItem.columnName].value) : null;
|
|
3168
|
-
return row[filterByItem.columnName]
|
|
3198
|
+
return (row[filterByItem.columnName] ? filterByItem.type === "dateRange" ? (dateValue.isAfter(startDate) || dateValue.isSame(startDate)) && (dateValue.isBefore(endDate) || dateValue.isSame(endDate)) : filterByItem.type === "numberRange" ? row[filterByItem.columnName].value >= filterByItem.values[0] && row[filterByItem.columnName].value <= filterByItem.values[1] : filterByItem.values.includes((row[filterByItem.columnName].value || "")?.toString()) : filterByItem.values.includes("")) || row.isNew?.value === 1;
|
|
3169
3199
|
}) : rows;
|
|
3170
3200
|
return recursiveFilter(filtered, filterBy.slice(0, filterBy.length - 1));
|
|
3171
3201
|
}
|
|
3172
3202
|
return rows;
|
|
3173
3203
|
};
|
|
3174
3204
|
|
|
3175
|
-
// src/components/view/VirtualTable/utils/alphanumericCompare.ts
|
|
3176
|
-
var alphanumericCompare = (a, b) => {
|
|
3177
|
-
const aParts = a.match(/(\d+|\D+)/g) || [];
|
|
3178
|
-
const bParts = b.match(/(\d+|\D+)/g) || [];
|
|
3179
|
-
const maxLength = Math.max(aParts.length, bParts.length);
|
|
3180
|
-
for (let i = 0; i < maxLength; i++) {
|
|
3181
|
-
const aPart = aParts[i] || "";
|
|
3182
|
-
const bPart = bParts[i] || "";
|
|
3183
|
-
const aIsNumber = /^\d+$/.test(aPart);
|
|
3184
|
-
const bIsNumber = /^\d+$/.test(bPart);
|
|
3185
|
-
if (aIsNumber && bIsNumber) {
|
|
3186
|
-
const numA = parseInt(aPart, 10);
|
|
3187
|
-
const numB = parseInt(bPart, 10);
|
|
3188
|
-
if (numA !== numB) {
|
|
3189
|
-
return numA - numB;
|
|
3190
|
-
}
|
|
3191
|
-
} else {
|
|
3192
|
-
const comparison = aPart.localeCompare(bPart);
|
|
3193
|
-
if (comparison !== 0) {
|
|
3194
|
-
return comparison;
|
|
3195
|
-
}
|
|
3196
|
-
}
|
|
3197
|
-
}
|
|
3198
|
-
return 0;
|
|
3199
|
-
};
|
|
3200
|
-
|
|
3201
3205
|
// src/components/view/VirtualTable/utils/recursiveSort.ts
|
|
3202
3206
|
var recursiveSort = (items2, sortBy) => {
|
|
3203
3207
|
if (sortBy.length) {
|
|
@@ -3256,7 +3260,7 @@ function VirtualTable(props) {
|
|
|
3256
3260
|
const endDate = filterByItem.type === "dateRange" ? dayjs4(filterByItem.values[1]) : null;
|
|
3257
3261
|
return rows.some((row) => {
|
|
3258
3262
|
const dateValue = filterByItem.type === "dateRange" ? dayjs4(row[filterByItem.columnName].value) : null;
|
|
3259
|
-
return row[filterByItem.columnName]
|
|
3263
|
+
return row[filterByItem.columnName] ? filterByItem.type === "dateRange" ? (dateValue.isAfter(startDate) || dateValue.isSame(startDate)) && (dateValue.isBefore(endDate) || dateValue.isSame(endDate)) : filterByItem.type === "numberRange" ? row[filterByItem.columnName].value >= filterByItem.values[0] && row[filterByItem.columnName].value <= filterByItem.values[1] : filterByItem.values.includes((row[filterByItem.columnName].value || "")?.toString()) : filterByItem.values.includes("");
|
|
3260
3264
|
});
|
|
3261
3265
|
});
|
|
3262
3266
|
const filtered = nextFilterBy.length ? recursiveFilter(newRows, nextFilterBy) : filterBy.some(
|