evui 3.3.26 → 3.3.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evui",
3
- "version": "3.3.26",
3
+ "version": "3.3.27",
4
4
  "description": "A EXEM Library project",
5
5
  "author": "exem <dev_client@ex-em.com>",
6
6
  "license": "MIT",
@@ -498,7 +498,6 @@ export const checkEvent = (params) => {
498
498
 
499
499
  export const sortEvent = (params) => {
500
500
  const { sortInfo, stores, getColumnIndex, updatePagingInfo } = params;
501
- const { props } = getCurrentInstance();
502
501
  function OrderQueue() {
503
502
  this.orders = ['asc', 'desc', 'init'];
504
503
  this.dequeue = () => this.orders.shift();
@@ -542,35 +541,46 @@ export const sortEvent = (params) => {
542
541
  return;
543
542
  }
544
543
  const index = getColumnIndex(sortInfo.sortField);
545
- const type = props.columns[index]?.type || 'string';
544
+ const type = stores.orderedColumns[index]?.type || 'string';
546
545
  const sortFn = sortInfo.sortOrder === 'desc' ? setDesc : setAsc;
547
546
  const numberSortFn = sortInfo.sortOrder === 'desc' ? numberSetDesc : numberSetAsc;
547
+ const getColumnValue = (a, b) => {
548
+ let aCol = a[ROW_DATA_INDEX][index];
549
+ let bCol = b[ROW_DATA_INDEX][index];
550
+ if (a[ROW_DATA_INDEX][index] && typeof a[ROW_DATA_INDEX][index] === 'object') {
551
+ aCol = a[ROW_DATA_INDEX][index][stores.orderedColumns[index]?.field];
552
+ bCol = b[ROW_DATA_INDEX][index][stores.orderedColumns[index]?.field];
553
+ }
554
+ return { aCol, bCol };
555
+ };
548
556
  switch (type) {
549
557
  case 'string':
550
558
  stores.store.sort((a, b) => {
551
- if (!a[ROW_DATA_INDEX][index] || typeof a[ROW_DATA_INDEX][index] === 'string') {
552
- a[ROW_DATA_INDEX][index] = a[ROW_DATA_INDEX][index] || '';
553
- b[ROW_DATA_INDEX][index] = b[ROW_DATA_INDEX][index] || '';
554
- return sortFn(a[ROW_DATA_INDEX][index]?.toLowerCase(),
555
- b[ROW_DATA_INDEX][index]?.toLowerCase());
559
+ let { aCol, bCol } = getColumnValue(a, b);
560
+ if ((!aCol || typeof aCol === 'string') && (!bCol || typeof bCol === 'string')) {
561
+ aCol = aCol || '';
562
+ bCol = bCol || '';
563
+ return sortFn(aCol?.toLowerCase(), bCol?.toLowerCase());
556
564
  }
557
565
  return 0;
558
566
  });
559
567
  break;
560
568
  case 'stringNumber':
561
569
  stores.store.sort((a, b) => {
562
- if (!a[ROW_DATA_INDEX][index] || typeof a[ROW_DATA_INDEX][index] === 'string' || typeof a[ROW_DATA_INDEX][index] === 'number') {
563
- a[ROW_DATA_INDEX][index] = a[ROW_DATA_INDEX][index] === '' ? null : a[ROW_DATA_INDEX][index];
564
- b[ROW_DATA_INDEX][index] = b[ROW_DATA_INDEX][index] === '' ? null : b[ROW_DATA_INDEX][index];
565
- return numberSortFn(a[ROW_DATA_INDEX][index] ?? null, b[ROW_DATA_INDEX][index] ?? null);
570
+ let { aCol, bCol } = getColumnValue(a, b);
571
+ if (!aCol || typeof aCol === 'string' || typeof aCol === 'number') {
572
+ aCol = aCol === '' ? null : aCol;
573
+ bCol = bCol === '' ? null : bCol;
574
+ return numberSortFn(aCol ?? null, bCol ?? null);
566
575
  }
567
576
  return 0;
568
577
  });
569
578
  break;
570
579
  default:
571
580
  stores.store.sort((a, b) => {
572
- if (!a[ROW_DATA_INDEX][index] || typeof a[ROW_DATA_INDEX][index] === 'number' || typeof a[ROW_DATA_INDEX][index] === 'boolean') {
573
- return numberSortFn(a[ROW_DATA_INDEX][index] ?? null, b[ROW_DATA_INDEX][index] ?? null);
581
+ const { aCol, bCol } = getColumnValue(a, b);
582
+ if (!aCol || typeof aCol === 'number' || typeof aCol === 'boolean') {
583
+ return numberSortFn(aCol ?? null, bCol ?? null);
574
584
  }
575
585
  return 0;
576
586
  });