@apia/table 0.3.2 → 0.3.4

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/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ import * as _reduxjs_toolkit from '@reduxjs/toolkit';
8
8
  import { PayloadAction } from '@reduxjs/toolkit';
9
9
  import * as immer_dist_internal from 'immer/dist/internal';
10
10
  import * as react_redux from 'react-redux';
11
+ import * as _reduxjs_toolkit_dist_configureStore from '@reduxjs/toolkit/dist/configureStore';
12
+ import * as redux_thunk from 'redux-thunk';
11
13
  import * as redux from 'redux';
12
14
 
13
15
  type TAccordionCellRendererProps<CellProps = Record<string, unknown>> = {
@@ -113,6 +115,10 @@ type TResponsiveTableRowRendererProps<RendererPropsType extends Partial<Record<k
113
115
  } & React__default.AllHTMLAttributes<HTMLTableRowElement>;
114
116
  type TResponsiveTableRowRenderer<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = React__default.FunctionComponent<TResponsiveTableRowRendererProps<RendererPropsType>>;
115
117
  type TResponsiveTableRow<RendererPropsType extends Partial<Record<keyof RendererPropsType, unknown>> = Record<string, unknown>> = TBasicRow & TColoredElement & {
118
+ accordionButtonProps?: {
119
+ rightButtons?: React__default.ReactNode;
120
+ onUserPressEnter?: (ev: React__default.KeyboardEvent) => unknown;
121
+ };
116
122
  cells: TResponsiveTableCell[];
117
123
  /**
118
124
  * Si se pasa en true, la fila se mostrará como un separador
@@ -483,11 +489,14 @@ interface ISelectableState<ColumnType extends IBasicColumn = IBasicColumn, Filte
483
489
 
484
490
  declare const ResponsiveTable: React__default.MemoExoticComponent<React__default.ForwardRefExoticComponent<BoxProps & React__default.RefAttributes<HTMLDivElement>>>;
485
491
 
492
+ declare function useResponsiveTableContext(): TResponsiveTableContext;
486
493
  declare const ResponsiveTableContext: React__default.MemoExoticComponent<({ allowEdition, allowRowsKeyboardSorting, allowSelection, allowSorting, avoidReparseSelectionOnRowChange, children, className, currentBreakPoint, customLabels, columns, filters, rows, label, isMultiple, name, onChangeSelection, onFilterBlur, onFilterChange, onFilterPressEnter, onSelectRows, onSortChange, reserveColumnsForStates, variant, }: TResponsiveTableContextProps) => React__default.JSX.Element>;
487
494
 
488
- declare const responsiveTableStore: redux.Store<redux.CombinedState<{
495
+ declare const responsiveTableStore: _reduxjs_toolkit_dist_configureStore.ToolkitStore<{
489
496
  responsiveTableSlice: TResponsiveTableSlice;
490
- }>, redux.AnyAction>;
497
+ }, redux.AnyAction, [redux_thunk.ThunkMiddleware<{
498
+ responsiveTableSlice: TResponsiveTableSlice;
499
+ }, redux.AnyAction, undefined>]>;
491
500
  declare const useResponsiveTable: <TSelected>(selector: (state: {
492
501
  responsiveTableSlice: TResponsiveTableSlice;
493
502
  }) => TSelected, equalityFn?: react_redux.EqualityFn<TSelected> | undefined) => TSelected;
@@ -616,4 +625,4 @@ declare const StatusRenderer: TResponsiveTableCellRenderer<{
616
625
 
617
626
  declare const TableRenderer: React__default.MemoExoticComponent<() => React__default.JSX.Element>;
618
627
 
619
- export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, AdditionalColumnDefaultRenderer, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IAccordionElement, IsLoadingRenderer, NoRegistersRenderer, PriorityAccordionRenderer, PriorityRenderer, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, StatusAccordionRenderer, StatusRenderer, TAccordionCellRenderer, TAccordionCellRendererProps, TColoredElement, TDocNameCellRenderer, TDocNameCellRendererProps, TResponsiveTableCell, TResponsiveTableCellRenderer, TResponsiveTableCellRendererProps, TResponsiveTableColumn, TResponsiveTableContext, TResponsiveTableContextProps, TResponsiveTableRow, TResponsiveTableRowRenderer, TResponsiveTableRowRendererProps, TResponsiveTableRowState, TResponsiveTableRowsSelectionEvent, TResponsiveTableSortChangeEvent, TResponsiveTableSortValue, TResponsiveTableStoreProps, TResponsiveTableWithRendererElement, TableRenderer, defaultLabels, getPriorityHandler, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, responsiveTableActions, responsiveTableStore, useResponsiveTable };
628
+ export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, AdditionalColumnDefaultRenderer, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IAccordionElement, IsLoadingRenderer, NoRegistersRenderer, PriorityAccordionRenderer, PriorityRenderer, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, StatusAccordionRenderer, StatusRenderer, TAccordionCellRenderer, TAccordionCellRendererProps, TColoredElement, TDocNameCellRenderer, TDocNameCellRendererProps, TResponsiveTableCell, TResponsiveTableCellRenderer, TResponsiveTableCellRendererProps, TResponsiveTableColumn, TResponsiveTableContext, TResponsiveTableContextProps, TResponsiveTableRow, TResponsiveTableRowRenderer, TResponsiveTableRowRendererProps, TResponsiveTableRowState, TResponsiveTableRowsSelectionEvent, TResponsiveTableSortChangeEvent, TResponsiveTableSortValue, TResponsiveTableStoreProps, TResponsiveTableWithRendererElement, TableRenderer, defaultLabels, getPriorityHandler, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };
package/dist/index.js CHANGED
@@ -2454,17 +2454,17 @@ const NoMemoTableRenderer = () => {
2454
2454
  const TableRenderer = React.memo(NoMemoTableRenderer);
2455
2455
 
2456
2456
  const NoMemoAccordionCell = ({ cell, column }) => {
2457
- var _a;
2457
+ var _a, _b;
2458
2458
  return /* @__PURE__ */ jsxs(
2459
2459
  Box,
2460
2460
  {
2461
- className: "responsiveTable__accordionElement__column",
2461
+ className: `responsiveTable__accordionElement__column ${(_a = cell.className) != null ? _a : ""}`,
2462
2462
  children: [
2463
2463
  /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
2464
- (_a = column.label) != null ? _a : column.name,
2464
+ (_b = column.label) != null ? _b : column.name,
2465
2465
  ": "
2466
2466
  ] }),
2467
- /* @__PURE__ */ jsx(Box, { as: "span", children: cell == null ? void 0 : cell.children })
2467
+ /* @__PURE__ */ jsx(Box, { as: "span", sx: { color: cell.color, background: cell.background }, children: cell == null ? void 0 : cell.children })
2468
2468
  ]
2469
2469
  },
2470
2470
  column.name
@@ -2473,6 +2473,7 @@ const NoMemoAccordionCell = ({ cell, column }) => {
2473
2473
  const AccordionCell = NoMemoAccordionCell;
2474
2474
 
2475
2475
  const NoMemoAccordionElement = ({ row, rowIndex }) => {
2476
+ var _a, _b;
2476
2477
  const { name } = useResponsiveTableContext();
2477
2478
  const indexColumns = useResponsiveTable((global) => {
2478
2479
  const tableState = global.responsiveTableSlice[name];
@@ -2483,7 +2484,7 @@ const NoMemoAccordionElement = ({ row, rowIndex }) => {
2483
2484
  return tableState == null ? void 0 : tableState.columns;
2484
2485
  }, shallowEqual);
2485
2486
  const title = React.useMemo(() => {
2486
- var _a;
2487
+ var _a2;
2487
2488
  if (row.title)
2488
2489
  return row.title;
2489
2490
  if (Array.isArray(indexColumns))
@@ -2493,7 +2494,7 @@ const NoMemoAccordionElement = ({ row, rowIndex }) => {
2493
2494
  row.cells[current.index].title || row.cells[current.index].children
2494
2495
  )
2495
2496
  ).join(" | ");
2496
- return (_a = row.cells[0].title) != null ? _a : row.cells[0].children;
2497
+ return (_a2 = row.cells[0].title) != null ? _a2 : row.cells[0].children;
2497
2498
  }, [indexColumns, row.cells, row.title]);
2498
2499
  const isSelected = useResponsiveTable(
2499
2500
  (global) => global.responsiveTableSlice[name].allowSelection !== false ? global.responsiveTableSlice[name].selectedRows.includes(rowIndex) : void 0
@@ -2502,34 +2503,56 @@ const NoMemoAccordionElement = ({ row, rowIndex }) => {
2502
2503
  (global) => global.responsiveTableSlice[name].focusedRow === rowIndex
2503
2504
  );
2504
2505
  const buttonProps = useMemo(
2505
- () => ({
2506
- title,
2507
- ariaLabel: title,
2508
- label: title,
2509
- checked: isSelected,
2510
- onChange: (isChecked) => {
2511
- responsiveTableStore.dispatch(
2512
- responsiveTableActions.update({
2513
- tableName: name,
2514
- selectedRows: isChecked ? [
2515
- ...responsiveTableStore.getState().responsiveTableSlice[name].selectedRows,
2516
- rowIndex
2517
- ] : responsiveTableStore.getState().responsiveTableSlice[name].selectedRows.filter(
2518
- (current) => current !== rowIndex
2519
- )
2520
- })
2521
- );
2522
- },
2523
- tabIndex: isFocused ? 0 : -1
2524
- }),
2525
- [isFocused, isSelected, name, rowIndex, title]
2506
+ () => {
2507
+ var _a2, _b2;
2508
+ return {
2509
+ title,
2510
+ ariaLabel: title,
2511
+ label: title,
2512
+ checked: isSelected,
2513
+ onChange: (isChecked) => {
2514
+ const isMultiple = responsiveTableStore.getState().responsiveTableSlice[name].isMultiple;
2515
+ responsiveTableStore.dispatch(
2516
+ responsiveTableActions.update({
2517
+ tableName: name,
2518
+ selectedRows: isMultiple ? isChecked ? [
2519
+ ...responsiveTableStore.getState().responsiveTableSlice[name].selectedRows,
2520
+ rowIndex
2521
+ ] : responsiveTableStore.getState().responsiveTableSlice[name].selectedRows.filter(
2522
+ (current) => current !== rowIndex
2523
+ ) : [rowIndex]
2524
+ })
2525
+ );
2526
+ },
2527
+ tabIndex: isFocused ? 0 : -1,
2528
+ rightButtons: (_a2 = row.accordionButtonProps) == null ? void 0 : _a2.rightButtons,
2529
+ onUserPressEnter: (_b2 = row.accordionButtonProps) == null ? void 0 : _b2.onUserPressEnter,
2530
+ domButtonProps: {
2531
+ buttonSx: {
2532
+ "&.accordion__item__button .accordion__item__button__label": {
2533
+ color: row.color
2534
+ }
2535
+ }
2536
+ }
2537
+ };
2538
+ },
2539
+ [
2540
+ isFocused,
2541
+ isSelected,
2542
+ name,
2543
+ (_a = row.accordionButtonProps) == null ? void 0 : _a.onUserPressEnter,
2544
+ (_b = row.accordionButtonProps) == null ? void 0 : _b.rightButtons,
2545
+ row.color,
2546
+ rowIndex,
2547
+ title
2548
+ ]
2526
2549
  );
2527
2550
  if (!Array.isArray(indexColumns) || !columns)
2528
2551
  return null;
2529
2552
  return /* @__PURE__ */ jsxs(AccordionItem, { id: row.id, buttonProps, children: [
2530
2553
  columns.map((currentColumn, columnIndex) => {
2531
- var _a, _b;
2532
- const Renderer = (_b = (_a = row.cells[columnIndex].AccordionRenderer) != null ? _a : currentColumn.AccordionRenderer) != null ? _b : AccordionCell;
2554
+ var _a2, _b2;
2555
+ const Renderer = (_b2 = (_a2 = row.cells[columnIndex].AccordionRenderer) != null ? _a2 : currentColumn.AccordionRenderer) != null ? _b2 : AccordionCell;
2533
2556
  return currentColumn.hideFromAccordion || currentColumn.showAsAdditional ? null : /* @__PURE__ */ jsx(
2534
2557
  Renderer,
2535
2558
  {
@@ -2543,8 +2566,8 @@ const NoMemoAccordionElement = ({ row, rowIndex }) => {
2543
2566
  );
2544
2567
  }),
2545
2568
  columns.filter((current) => !!current.showAsAdditional).map((currentColumn, columnIndex) => {
2546
- var _a, _b;
2547
- const Renderer = (_b = (_a = row.cells[columnIndex].AccordionRenderer) != null ? _a : currentColumn.AccordionRenderer) != null ? _b : AccordionCell;
2569
+ var _a2, _b2;
2570
+ const Renderer = (_b2 = (_a2 = row.cells[columnIndex].AccordionRenderer) != null ? _a2 : currentColumn.AccordionRenderer) != null ? _b2 : AccordionCell;
2548
2571
  return currentColumn.hideFromAccordion ? null : /* @__PURE__ */ jsx(
2549
2572
  Renderer,
2550
2573
  {
@@ -3237,4 +3260,4 @@ const NoMemoStatusAccordionRenderer = React.forwardRef(({ cell, column }, curren
3237
3260
  NoMemoStatusAccordionRenderer.displayName = "StatusAccordionRenderer";
3238
3261
  const StatusAccordionRenderer = NoMemoStatusAccordionRenderer;
3239
3262
 
3240
- export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, AdditionalColumnDefaultRenderer, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IsLoadingRenderer, NoRegistersRenderer, PriorityAccordionRenderer, PriorityRenderer, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, StatusAccordionRenderer, StatusRenderer, TableRenderer, defaultLabels, getPriorityHandler, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, responsiveTableActions, responsiveTableStore, useResponsiveTable };
3263
+ export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, AdditionalColumnDefaultRenderer, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IsLoadingRenderer, NoRegistersRenderer, PriorityAccordionRenderer, PriorityRenderer, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, StatusAccordionRenderer, StatusRenderer, TableRenderer, defaultLabels, getPriorityHandler, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };