@redsift/table 11.2.1 → 11.2.2-alpha.1

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.d.ts CHANGED
@@ -183,8 +183,8 @@ declare const getSearchParamsFromSorting: (sorting: GridSortItem[]) => URLSearch
183
183
  declare const getPaginationFromString: (searchString: string) => ExtendedGridPaginationModel | 'invalid';
184
184
  declare const getSearchParamsFromPagination: (pagination: ExtendedGridPaginationModel) => URLSearchParams;
185
185
  /** COLUMN VISIBILITY */
186
+ declare const getColumnVisibilityFromString: (searchString: string, columns: DataGridProps['columns']) => GridColumnVisibilityModel | 'invalid';
186
187
  declare const getSearchParamsFromColumnVisibility: (columnVisibility: GridColumnVisibilityModel, columns: DataGridProps['columns']) => URLSearchParams;
187
- declare const getColumnVisibilityFromString: (notParsed: string, tableColumns: DataGridProps['columns']) => GridColumnVisibilityModel | 'invalid';
188
188
  declare const getPinnedColumnsFromString: (notParsed: string, tableColumns: DataGridProps['columns']) => PinnedColumns | 'invalid';
189
189
  declare const getSearchParamsFromPinnedColumns: (pinnedColumns: GridPinnedColumns) => URLSearchParams;
190
190
  declare const getSearchParamsFromTab: (search: string) => URLSearchParams;
package/index.js CHANGED
@@ -18140,7 +18140,7 @@ const getFilterModelFromString = (searchString, columns) => {
18140
18140
  searchParams.set(key, value);
18141
18141
  }
18142
18142
  if (key === '_logicOperator') {
18143
- logicOperator = value;
18143
+ logicOperator = value === GridLogicOperator.And || value === GridLogicOperator.Or ? value : GridLogicOperator.And;
18144
18144
  }
18145
18145
  }
18146
18146
  let id = 5000;
@@ -18327,6 +18327,7 @@ const getSearchParamsFromPagination = pagination => {
18327
18327
  // - if we don't have that, use the localStorage and update the URL
18328
18328
  // - if we don't have that, return an empty PaginationModel
18329
18329
  const getPaginationModel = (search, localStoragePagination, setLocalStoragePagination, initialState) => {
18330
+ var _initialState$paginat;
18330
18331
  const pagination = getPaginationFromString(search);
18331
18332
  if (pagination !== 'invalid') {
18332
18333
  const searchFromPaginationModel = getSearchParamsFromPagination(pagination);
@@ -18340,11 +18341,11 @@ const getPaginationModel = (search, localStoragePagination, setLocalStoragePagin
18340
18341
  if (paginationModelFromLocalStorage !== 'invalid') {
18341
18342
  return paginationModelFromLocalStorage;
18342
18343
  }
18343
- return initialState !== null && initialState !== void 0 && initialState.pagination ? _objectSpread2({
18344
+ return initialState !== null && initialState !== void 0 && (_initialState$paginat = initialState.pagination) !== null && _initialState$paginat !== void 0 && _initialState$paginat.paginationModel ? _objectSpread2({
18344
18345
  page: 0,
18345
18346
  pageSize: 25,
18346
18347
  direction: 'next'
18347
- }, initialState.pagination) : {
18348
+ }, initialState.pagination.paginationModel) : {
18348
18349
  page: 0,
18349
18350
  pageSize: 25,
18350
18351
  direction: 'next'
@@ -18353,6 +18354,31 @@ const getPaginationModel = (search, localStoragePagination, setLocalStoragePagin
18353
18354
 
18354
18355
  /** COLUMN VISIBILITY */
18355
18356
 
18357
+ const getColumnVisibilityFromString = (searchString, columns) => {
18358
+ if (!searchString) {
18359
+ return 'invalid';
18360
+ }
18361
+ const searchParams = new URLSearchParams(searchString);
18362
+ const value = searchParams.get('_columnVisibility');
18363
+ if (value === '' || value === null || value === '[]') {
18364
+ return 'invalid';
18365
+ }
18366
+ const parsedFields = value.slice(1, value.length - 1).split(',');
18367
+ const fields = columns.map(column => column.field);
18368
+ const visibility = {};
18369
+ for (const field of fields) {
18370
+ visibility[field] = false;
18371
+ }
18372
+ for (const parsedField of parsedFields) {
18373
+ if (fields.includes(parsedField)) {
18374
+ visibility[parsedField] = true;
18375
+ }
18376
+ }
18377
+ if (Object.values(visibility).filter(v => v === true).length === 0) {
18378
+ return 'invalid';
18379
+ }
18380
+ return visibility;
18381
+ };
18356
18382
  const getSearchParamsFromColumnVisibility = (columnVisibility, columns) => {
18357
18383
  const searchParams = new URLSearchParams();
18358
18384
  const fields = columns.map(column => column.field);
@@ -18370,63 +18396,10 @@ const getSearchParamsFromColumnVisibility = (columnVisibility, columns) => {
18370
18396
  [colName]: true
18371
18397
  });
18372
18398
  }, columnVisibility);
18373
- const visibleColumns = Object.entries(finalColumnVisibility)
18374
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18375
- .filter(_ref => {
18376
- let [_, visible] = _ref;
18377
- return visible;
18378
- })
18379
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18380
- .map(_ref2 => {
18381
- let [column, _] = _ref2;
18382
- return encodeValue(column);
18383
- });
18399
+ const visibleColumns = fields.filter(column => finalColumnVisibility[column] !== false);
18384
18400
  searchParams.set('_columnVisibility', `[${visibleColumns.join(',')}]`);
18385
18401
  return searchParams;
18386
18402
  };
18387
- const getColumnVisibilityFromString = (notParsed, tableColumns) => {
18388
- if (!notParsed || notParsed.length === 1 && notParsed[0] === '?') {
18389
- return 'invalid';
18390
- }
18391
- // remove the initial ? if present
18392
- const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;
18393
- const visibility = {};
18394
- let exist = false;
18395
- let visibleColumnsCount = 0;
18396
- for (const item of parsed.split('&')) {
18397
- // if it's not column visibility field, skip
18398
- const fieldURL = item.split('=')[0];
18399
- if (fieldURL !== '_columnVisibility') {
18400
- continue;
18401
- }
18402
- // e.g. item = _columnVisibility[abc,def]
18403
- const left = item.split(']')[0];
18404
- if (left.split('[').length < 2) {
18405
- continue;
18406
- }
18407
- const encodedValues = item.split('[')[1].split(']')[0];
18408
- if (typeof encodedValues !== 'string') {
18409
- continue;
18410
- }
18411
- exist = true;
18412
- const fields = tableColumns.map(column => column.field);
18413
- // TODO: Add validation that , is present
18414
- const columns = encodedValues.split(',').map(value => decodeValue(value));
18415
-
18416
- // for each column, check if it's visible and add it to visibility model
18417
- for (const column of fields) {
18418
- const isColumnVisible = columns.includes(column);
18419
- visibility[column] = isColumnVisible;
18420
- if (isColumnVisible) {
18421
- visibleColumnsCount += 1;
18422
- }
18423
- }
18424
- }
18425
- if (visibleColumnsCount === 0 && !exist) {
18426
- return 'invalid';
18427
- }
18428
- return visibility;
18429
- };
18430
18403
 
18431
18404
  // Rules:
18432
18405
  // - if we have something in the URL, use that info
@@ -18490,9 +18463,9 @@ const getPinnedColumnsFromString = (notParsed, tableColumns) => {
18490
18463
  pinnedColumns['right'] = columns;
18491
18464
  }
18492
18465
  }
18493
- return pinnedColumns['left'] || pinnedColumns['right'] ? {
18494
- left: pinnedColumns['left'] || [],
18495
- right: pinnedColumns['right'] || []
18466
+ return pinnedColumns.left && pinnedColumns.left.length > 0 || pinnedColumns.right && pinnedColumns.right.length > 0 ? {
18467
+ left: pinnedColumns.left || [],
18468
+ right: pinnedColumns.right || []
18496
18469
  } : 'invalid';
18497
18470
  };
18498
18471
  const getSearchParamsFromPinnedColumns = pinnedColumns => {
@@ -18544,7 +18517,7 @@ const getSearchParamsFromTab = search => {
18544
18517
  }
18545
18518
  return searchParams;
18546
18519
  };
18547
- const getFinalSearch = _ref3 => {
18520
+ const getFinalSearch = _ref => {
18548
18521
  let {
18549
18522
  search,
18550
18523
  filterModel,
@@ -18553,7 +18526,7 @@ const getFinalSearch = _ref3 => {
18553
18526
  columnsVisibilityModel,
18554
18527
  pinnedColumnsModel,
18555
18528
  columns
18556
- } = _ref3;
18529
+ } = _ref;
18557
18530
  const filterModelSearch = getSearchParamsFromFilterModel(filterModel);
18558
18531
  const sortModelSearch = getSearchParamsFromSorting(sortModel);
18559
18532
  const paginationModelSearch = getSearchParamsFromPagination(paginationModel);
@@ -18608,14 +18581,14 @@ const getModelsParsedOrUpdateLocalStorage = (search, columns, historyReplace, in
18608
18581
  pinnedColumnsModel
18609
18582
  };
18610
18583
  };
18611
- const updateUrl = (_ref4, search, historyReplace, columns) => {
18584
+ const updateUrl = (_ref2, search, historyReplace, columns) => {
18612
18585
  let {
18613
18586
  filterModel,
18614
18587
  sortModel,
18615
18588
  paginationModel,
18616
18589
  columnsModel: columnsVisibilityModel,
18617
18590
  pinnedColumnsModel
18618
- } = _ref4;
18591
+ } = _ref2;
18619
18592
  const newSearch = getFinalSearch({
18620
18593
  search,
18621
18594
  filterModel,