@redsift/table 11.2.2-muiv5-patch.0 → 11.2.2-muiv5

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