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.
Files changed (2) hide show
  1. package/index.js +37 -33
  2. 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.filter((i) => Object.keys(i).includes(headerResultName)).map(
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].value
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(new Set(rows.map((i) => i?.[headerResultName]?.payload?.id ?? i?.[headerResultName].value))),
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] && (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() ?? "")) || row.isNew?.value === 1;
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] && (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() ?? ""));
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(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nntc-ui",
3
- "version": "0.0.45",
3
+ "version": "0.0.47",
4
4
  "author": "NNTC",
5
5
  "description": "React UI-kit for NNTC",
6
6
  "type": "module",