@vuu-ui/vuu-utils 0.8.26-debug → 0.8.27-debug

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/cjs/index.js CHANGED
@@ -73,7 +73,6 @@ __export(src_exports, {
73
73
  applyDefaultColumnConfig: () => applyDefaultColumnConfig,
74
74
  applyFilterToColumns: () => applyFilterToColumns,
75
75
  applyGroupByToColumns: () => applyGroupByToColumns,
76
- applySort: () => applySort,
77
76
  applySortToColumns: () => applySortToColumns,
78
77
  applyWidthToColumns: () => applyWidthToColumns,
79
78
  asDataSourceRowObject: () => asDataSourceRowObject,
@@ -91,6 +90,7 @@ __export(src_exports, {
91
90
  deselectItem: () => deselectItem,
92
91
  dispatchCustomEvent: () => dispatchCustomEvent,
93
92
  dispatchMouseEvent: () => dispatchMouseEvent,
93
+ existingSort: () => existingSort,
94
94
  expandSelection: () => expandSelection,
95
95
  extractFilterForColumn: () => extractFilterForColumn,
96
96
  extractGroupColumn: () => extractGroupColumn,
@@ -230,6 +230,7 @@ __export(src_exports, {
230
230
  registerComponent: () => registerComponent,
231
231
  registerConfigurationEditor: () => registerConfigurationEditor,
232
232
  removeColumnFromFilter: () => removeColumnFromFilter,
233
+ removeSort: () => removeSort,
233
234
  replaceColumn: () => replaceColumn,
234
235
  resetRange: () => resetRange,
235
236
  roundDecimal: () => roundDecimal,
@@ -248,6 +249,7 @@ __export(src_exports, {
248
249
  toCalendarDate: () => toCalendarDate,
249
250
  toColumnDescriptor: () => toColumnDescriptor,
250
251
  toDataSourceColumns: () => toDataSourceColumns,
252
+ toggleOrApplySort: () => toggleOrApplySort,
251
253
  updateColumn: () => updateColumn,
252
254
  updateColumnFormatting: () => updateColumnFormatting,
253
255
  updateColumnRenderProps: () => updateColumnRenderProps,
@@ -806,7 +808,7 @@ var applyGroupByToColumns = (columns, groupBy, confirmed = true) => {
806
808
  }
807
809
  return columns;
808
810
  };
809
- var applySortToColumns = (colunms, sort) => colunms.map((column) => {
811
+ var applySortToColumns = (columns, sort) => columns.map((column) => {
810
812
  const sorted = getSortType(column, sort);
811
813
  if (sorted !== void 0) {
812
814
  return {
@@ -822,6 +824,8 @@ var applySortToColumns = (colunms, sort) => colunms.map((column) => {
822
824
  return column;
823
825
  }
824
826
  });
827
+ var removeSort = (columns) => columns.map((col) => col.sorted ? { ...col, sorted: void 0 } : col);
828
+ var existingSort = (columns) => columns.some((col) => col.sorted);
825
829
  var applyFilterToColumns = (columns, { filterStruct }) => columns.map((column) => {
826
830
  const filter = extractFilterForColumn(filterStruct, column.name);
827
831
  if (filter !== void 0) {
@@ -3641,20 +3645,33 @@ function splitRange([from, to], itemIndex) {
3641
3645
  }
3642
3646
 
3643
3647
  // src/sort-utils.ts
3644
- var toggle = (sortType) => sortType === "A" ? "D" : "A";
3645
- var applySort = ({ sortDefs }, { name: column }, extendSort = false, sortType) => {
3648
+ var cycleSortType = (sortType) => sortType === "A" ? "D" : sortType === "D" ? void 0 : "A";
3649
+ var NO_SORT = { sortDefs: [] };
3650
+ var toggleOrApplySort = ({ sortDefs }, { name: column }, extendSort = false, sortType) => {
3646
3651
  if (extendSort) {
3647
- return {
3648
- sortDefs: sortDefs.concat({
3649
- column,
3650
- sortType: sortType != null ? sortType : "A"
3651
- })
3652
- };
3652
+ const existingDef = sortDefs.find((sortDef) => sortDef.column === column);
3653
+ if (existingDef) {
3654
+ return {
3655
+ sortDefs: sortDefs.map(
3656
+ (sortDef) => sortDef.column === column ? {
3657
+ column,
3658
+ sortType: sortDef.sortType === "A" ? "D" : "A"
3659
+ } : sortDef
3660
+ )
3661
+ };
3662
+ } else {
3663
+ return {
3664
+ sortDefs: sortDefs.concat({
3665
+ column,
3666
+ sortType: sortType != null ? sortType : "A"
3667
+ })
3668
+ };
3669
+ }
3653
3670
  }
3654
- const newSortType = typeof sortType === "string" ? sortType : sortDefs.length === 1 && sortDefs[0].column === column ? toggle(sortDefs[0].sortType) : "A";
3655
- return {
3671
+ const newSortType = typeof sortType === "string" ? sortType : sortDefs.length === 1 && sortDefs[0].column === column ? cycleSortType(sortDefs[0].sortType) : "A";
3672
+ return newSortType ? {
3656
3673
  sortDefs: [{ column, sortType: newSortType }]
3657
- };
3674
+ } : NO_SORT;
3658
3675
  };
3659
3676
  var setSortColumn = ({ sortDefs }, column, sortType) => {
3660
3677
  if (sortType === void 0) {