@redsift/table 11.2.2-patch.0 → 11.2.2

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
@@ -18354,6 +18354,31 @@ const getPaginationModel = (search, localStoragePagination, setLocalStoragePagin
18354
18354
 
18355
18355
  /** COLUMN VISIBILITY */
18356
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
+ };
18357
18382
  const getSearchParamsFromColumnVisibility = (columnVisibility, columns) => {
18358
18383
  const searchParams = new URLSearchParams();
18359
18384
  const fields = columns.map(column => column.field);
@@ -18371,63 +18396,10 @@ const getSearchParamsFromColumnVisibility = (columnVisibility, columns) => {
18371
18396
  [colName]: true
18372
18397
  });
18373
18398
  }, columnVisibility);
18374
- const visibleColumns = Object.entries(finalColumnVisibility)
18375
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18376
- .filter(_ref => {
18377
- let [_, visible] = _ref;
18378
- return visible;
18379
- })
18380
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18381
- .map(_ref2 => {
18382
- let [column, _] = _ref2;
18383
- return encodeValue(column);
18384
- });
18399
+ const visibleColumns = fields.filter(column => finalColumnVisibility[column] !== false);
18385
18400
  searchParams.set('_columnVisibility', `[${visibleColumns.join(',')}]`);
18386
18401
  return searchParams;
18387
18402
  };
18388
- const getColumnVisibilityFromString = (notParsed, tableColumns) => {
18389
- if (!notParsed || notParsed.length === 1 && notParsed[0] === '?') {
18390
- return 'invalid';
18391
- }
18392
- // remove the initial ? if present
18393
- const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;
18394
- const visibility = {};
18395
- let exist = false;
18396
- let visibleColumnsCount = 0;
18397
- for (const item of parsed.split('&')) {
18398
- // if it's not column visibility field, skip
18399
- const fieldURL = item.split('=')[0];
18400
- if (fieldURL !== '_columnVisibility') {
18401
- continue;
18402
- }
18403
- // e.g. item = _columnVisibility[abc,def]
18404
- const left = item.split(']')[0];
18405
- if (left.split('[').length < 2) {
18406
- continue;
18407
- }
18408
- const encodedValues = item.split('[')[1].split(']')[0];
18409
- if (typeof encodedValues !== 'string') {
18410
- continue;
18411
- }
18412
- exist = true;
18413
- const fields = tableColumns.map(column => column.field);
18414
- // TODO: Add validation that , is present
18415
- const columns = encodedValues.split(',').map(value => decodeValue(value));
18416
-
18417
- // for each column, check if it's visible and add it to visibility model
18418
- for (const column of fields) {
18419
- const isColumnVisible = columns.includes(column);
18420
- visibility[column] = isColumnVisible;
18421
- if (isColumnVisible) {
18422
- visibleColumnsCount += 1;
18423
- }
18424
- }
18425
- }
18426
- if (visibleColumnsCount === 0 && !exist) {
18427
- return 'invalid';
18428
- }
18429
- return visibility;
18430
- };
18431
18403
 
18432
18404
  // Rules:
18433
18405
  // - if we have something in the URL, use that info
@@ -18545,7 +18517,7 @@ const getSearchParamsFromTab = search => {
18545
18517
  }
18546
18518
  return searchParams;
18547
18519
  };
18548
- const getFinalSearch = _ref3 => {
18520
+ const getFinalSearch = _ref => {
18549
18521
  let {
18550
18522
  search,
18551
18523
  filterModel,
@@ -18554,7 +18526,7 @@ const getFinalSearch = _ref3 => {
18554
18526
  columnsVisibilityModel,
18555
18527
  pinnedColumnsModel,
18556
18528
  columns
18557
- } = _ref3;
18529
+ } = _ref;
18558
18530
  const filterModelSearch = getSearchParamsFromFilterModel(filterModel);
18559
18531
  const sortModelSearch = getSearchParamsFromSorting(sortModel);
18560
18532
  const paginationModelSearch = getSearchParamsFromPagination(paginationModel);
@@ -18609,14 +18581,14 @@ const getModelsParsedOrUpdateLocalStorage = (search, columns, historyReplace, in
18609
18581
  pinnedColumnsModel
18610
18582
  };
18611
18583
  };
18612
- const updateUrl = (_ref4, search, historyReplace, columns) => {
18584
+ const updateUrl = (_ref2, search, historyReplace, columns) => {
18613
18585
  let {
18614
18586
  filterModel,
18615
18587
  sortModel,
18616
18588
  paginationModel,
18617
18589
  columnsModel: columnsVisibilityModel,
18618
18590
  pinnedColumnsModel
18619
- } = _ref4;
18591
+ } = _ref2;
18620
18592
  const newSearch = getFinalSearch({
18621
18593
  search,
18622
18594
  filterModel,