@bwp-web/components 0.13.1 → 0.13.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BiampTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAWd,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAc,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAItD,OAAO,iBAAiB,CAAC;AAIzB,KAAK,aAAa,CAAC,KAAK,IACpB;IACE,qFAAqF;IACrF,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC;CAC1C,GACD;IACE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAGN,KAAK,uBAAuB,GACxB;IACE,8DAA8D;IAC9D,kBAAkB,EAAE,IAAI,CAAC;IACzB,uFAAuF;IACvF,eAAe,EAAE,IAAI,CAAC;IACtB,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4FAA4F;IAC5F,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACD;IACE,8DAA8D;IAC9D,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,KAAK,CAAC;CAClC,GACD;IACE,kBAAkB,CAAC,EAAE,KAAK,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,wBAAwB,CAAC,EAAE,KAAK,CAAC;CAClC,CAAC;AAEN,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI,QAAQ,GAC3C,aAAa,CAAC,KAAK,CAAC,GACpB,uBAAuB,GAAG;IACxB,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wKAAwK;IACxK,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,6IAA6I;IAC7I,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,gIAAgI;IAChI,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;CACtC,CAAC;AA8CJ,wBAAgB,UAAU,CAAC,KAAK,EAAE,EAChC,KAAK,EACL,UAAU,EACV,cAAc,EACd,OAAO,EACP,KAAK,EACL,KAAK,EACL,kBAA0B,EAC1B,eAAuB,EACvB,aAAa,EACb,wBAAgC,EAChC,WAAW,EACX,EAAE,EACF,GAAG,QAAQ,EACZ,EAAE,eAAe,CAAC,KAAK,CAAC,2CAmTxB"}
1
+ {"version":3,"file":"BiampTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/BiampTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAUd,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAc,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAItD,OAAO,iBAAiB,CAAC;AAIzB,KAAK,aAAa,CAAC,KAAK,IACpB;IACE,qFAAqF;IACrF,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC;CAC1C,GACD;IACE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAGN,KAAK,uBAAuB,GACxB;IACE,8DAA8D;IAC9D,kBAAkB,EAAE,IAAI,CAAC;IACzB,uFAAuF;IACvF,eAAe,EAAE,IAAI,CAAC;IACtB,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4FAA4F;IAC5F,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GACD;IACE,8DAA8D;IAC9D,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,KAAK,CAAC;CAClC,GACD;IACE,kBAAkB,CAAC,EAAE,KAAK,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,wBAAwB,CAAC,EAAE,KAAK,CAAC;CAClC,CAAC;AAEN,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI,QAAQ,GAC3C,aAAa,CAAC,KAAK,CAAC,GACpB,uBAAuB,GAAG;IACxB,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wKAAwK;IACxK,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACpC,6IAA6I;IAC7I,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,gIAAgI;IAChI,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;CACtC,CAAC;AAyQJ,wBAAgB,UAAU,CAAC,KAAK,EAAE,EAChC,KAAK,EACL,UAAU,EACV,cAAc,EACd,OAAO,EACP,KAAK,EACL,KAAK,EACL,kBAA0B,EAC1B,eAAuB,EACvB,aAAa,EACb,wBAAgC,EAChC,WAAW,EACX,EAAE,EACF,GAAG,QAAQ,EACZ,EAAE,eAAe,CAAC,KAAK,CAAC,2CAyJxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBiampServerSideTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/useBiampServerSideTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAGlB,KAAK,GAAG,EACR,KAAK,KAAK,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,eAAe,EAQrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,iBAAiB,CAAC;AAMzB,MAAM,MAAM,8BAA8B,CAAC,KAAK,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAC7E,sBAAsB;IACtB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,qGAAqG;IAErG,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;IAGlC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAGrD,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,oFAAoF;IACpF,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAGlE,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC;IAG9D,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,SAAS,CAAC;CAClD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACxE,IAAI,EACJ,OAAO,EACP,QAAsD,EACtD,KAAK,EACL,aAAa,EACb,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,GACX,EAAE,8BAA8B,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAsIzD"}
1
+ {"version":3,"file":"useBiampServerSideTable.d.ts","sourceRoot":"","sources":["../../src/BiampTable/useBiampServerSideTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAGlB,KAAK,GAAG,EACR,KAAK,KAAK,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,eAAe,EAQrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,iBAAiB,CAAC;AAOzB,MAAM,MAAM,8BAA8B,CAAC,KAAK,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAC7E,sBAAsB;IACtB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,qGAAqG;IAErG,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;IAGlC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAGrD,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,oFAAoF;IACpF,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAGlE,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC;IAG9D,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,SAAS,CAAC;CAClD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACxE,IAAI,EACJ,OAAO,EACP,QAAoD,EACpD,KAAK,EACL,aAAa,EACb,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,UAAU,GACX,EAAE,8BAA8B,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAsIzD"}
package/dist/index.cjs CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
30
  // src/index.ts
@@ -526,7 +536,7 @@ function BiampLayout({
526
536
  var import_material7 = require("@mui/material");
527
537
  var import_assets5 = require("@bwp-web/assets");
528
538
  var import_react_table = require("@tanstack/react-table");
529
- var import_react4 = require("react");
539
+ var import_react4 = __toESM(require("react"), 1);
530
540
 
531
541
  // src/BiampTable/BiampTableEmptyState.tsx
532
542
  var import_assets3 = require("@bwp-web/assets");
@@ -692,6 +702,144 @@ function cellSx(sticky, minWidth, zIndex) {
692
702
  const mw = minWidth ?? 40;
693
703
  return { minWidth: mw, maxWidth: mw };
694
704
  }
705
+ var rowCursorPointerSx = { cursor: "pointer" };
706
+ var selectionCellSx = {
707
+ position: "sticky",
708
+ left: 0,
709
+ zIndex: 2,
710
+ bgcolor: "background.paper",
711
+ ...stickyHoverBg
712
+ };
713
+ var checkboxHiddenSx = { visibility: "hidden" };
714
+ var expandCellBaseSx = {
715
+ display: "flex",
716
+ alignItems: "center",
717
+ gap: 1
718
+ };
719
+ var chevronExpandedSx = {
720
+ color: ({ palette }) => palette.text.secondary,
721
+ transition: "transform 150ms ease",
722
+ transform: "rotate(90deg)",
723
+ width: 16,
724
+ height: 16,
725
+ cursor: "pointer"
726
+ };
727
+ var chevronCollapsedSx = {
728
+ color: ({ palette }) => palette.text.secondary,
729
+ transition: "transform 150ms ease",
730
+ transform: "rotate(0deg)",
731
+ width: 16,
732
+ height: 16,
733
+ cursor: "pointer"
734
+ };
735
+ var expandPlaceholderSx = { width: 16 };
736
+ var headerSelectionCellSx = {
737
+ position: "sticky",
738
+ left: 0,
739
+ zIndex: 3,
740
+ bgcolor: "background.paper"
741
+ };
742
+ var checkboxHiddenHeaderSx = { visibility: "hidden" };
743
+ function BiampTableRowInner({
744
+ row,
745
+ onRowClick,
746
+ isRowClickable,
747
+ enableRowSelection,
748
+ enableExpanding,
749
+ selectChildrenWithParent,
750
+ getRowLabel,
751
+ hasExpandableRows
752
+ }) {
753
+ const clickable = onRowClick ? isRowClickable ? isRowClickable(row.original) : true : false;
754
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
755
+ import_material7.TableRow,
756
+ {
757
+ hover: clickable,
758
+ selected: enableRowSelection ? row.getIsSelected() : void 0,
759
+ role: clickable ? "button" : void 0,
760
+ tabIndex: clickable ? 0 : void 0,
761
+ sx: clickable ? rowCursorPointerSx : void 0,
762
+ onClick: clickable && onRowClick ? () => onRowClick(row.original) : void 0,
763
+ onKeyDown: clickable && onRowClick ? (e) => {
764
+ if (e.key === "Enter" || e.key === " ") {
765
+ e.preventDefault();
766
+ onRowClick(row.original);
767
+ }
768
+ } : void 0,
769
+ children: [
770
+ enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableCell, { padding: "checkbox", sx: selectionCellSx, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
771
+ import_material7.Checkbox,
772
+ {
773
+ checked: row.getIsSelected(),
774
+ disabled: !row.getCanSelect(),
775
+ onChange: (e) => row.toggleSelected(e.target.checked, {
776
+ selectChildren: selectChildrenWithParent
777
+ }),
778
+ onClick: (e) => e.stopPropagation(),
779
+ sx: !row.getCanSelect() ? checkboxHiddenSx : void 0,
780
+ slotProps: {
781
+ input: {
782
+ "aria-label": getRowLabel ? `Select ${getRowLabel(row.original)}` : `Select row ${row.index + 1}`
783
+ }
784
+ }
785
+ }
786
+ ) }),
787
+ row.getVisibleCells().map((cell, cellIndex, cells) => {
788
+ const sticky = cell.column.columnDef.meta?.sticky;
789
+ const isExpandCell = enableExpanding && !sticky && cellIndex === cells.findIndex((c) => !c.column.columnDef.meta?.sticky);
790
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
791
+ import_material7.TableCell,
792
+ {
793
+ "data-sticky": sticky || void 0,
794
+ sx: cellSx(sticky, cell.column.columnDef.meta?.minWidth, 2),
795
+ children: (() => {
796
+ const content = (0, import_react_table.flexRender)(
797
+ cell.column.columnDef.cell,
798
+ cell.getContext()
799
+ );
800
+ if (sticky) return content;
801
+ const truncated = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(BiampTableTruncatedCell, { children: content });
802
+ if (!isExpandCell) return truncated;
803
+ const rowLabel = getRowLabel ? getRowLabel(row.original) : `row ${row.index + 1}`;
804
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
805
+ import_material7.Box,
806
+ {
807
+ sx: row.depth > 0 ? { ...expandCellBaseSx, pl: `${row.depth * 12}px` } : expandCellBaseSx,
808
+ children: [
809
+ row.getCanExpand() ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
810
+ import_assets5.ChevronRightIcon,
811
+ {
812
+ onClick: (e) => {
813
+ e.stopPropagation();
814
+ row.toggleExpanded();
815
+ },
816
+ "aria-label": row.getIsExpanded() ? `Collapse ${rowLabel}` : `Expand ${rowLabel}`,
817
+ "aria-expanded": row.getIsExpanded(),
818
+ variant: "xs",
819
+ sx: row.getIsExpanded() ? chevronExpandedSx : chevronCollapsedSx
820
+ }
821
+ ) : hasExpandableRows ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.Box, { sx: expandPlaceholderSx }) : null,
822
+ truncated
823
+ ]
824
+ }
825
+ );
826
+ })()
827
+ },
828
+ cell.id
829
+ );
830
+ })
831
+ ]
832
+ },
833
+ row.id
834
+ );
835
+ }
836
+ function biampTableRowPropsAreEqual(prev, next) {
837
+ return prev.row.id === next.row.id && prev.row.original === next.row.original && prev.row.getIsSelected() === next.row.getIsSelected() && prev.row.getIsExpanded() === next.row.getIsExpanded() && prev.row.getVisibleCells().length === next.row.getVisibleCells().length && prev.enableRowSelection === next.enableRowSelection && prev.enableExpanding === next.enableExpanding && prev.hasExpandableRows === next.hasExpandableRows && prev.selectChildrenWithParent === next.selectChildrenWithParent && prev.onRowClick === next.onRowClick && prev.isRowClickable === next.isRowClickable && prev.getRowLabel === next.getRowLabel;
838
+ }
839
+ var BiampTableRow = import_react4.default.memo(
840
+ BiampTableRowInner,
841
+ biampTableRowPropsAreEqual
842
+ );
695
843
  function BiampTable({
696
844
  table,
697
845
  onRowClick,
@@ -743,28 +891,16 @@ function BiampTable({
743
891
  sx: { minWidth: tableMinWidth, tableLayout: "auto" },
744
892
  children: [
745
893
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_material7.TableRow, { children: [
746
- enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
747
- import_material7.TableCell,
894
+ enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableCell, { padding: "checkbox", sx: headerSelectionCellSx, children: !hideSelectAll && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
895
+ import_material7.Checkbox,
748
896
  {
749
- padding: "checkbox",
750
- sx: {
751
- position: "sticky",
752
- left: 0,
753
- zIndex: 3,
754
- bgcolor: "background.paper"
755
- },
756
- children: !hideSelectAll && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
757
- import_material7.Checkbox,
758
- {
759
- checked: table.getIsAllPageRowsSelected(),
760
- indeterminate: table.getIsSomePageRowsSelected(),
761
- onChange: table.getToggleAllPageRowsSelectedHandler(),
762
- sx: rows.length === 0 ? { visibility: "hidden" } : void 0,
763
- slotProps: { input: { "aria-label": "Select all rows" } }
764
- }
765
- )
897
+ checked: table.getIsAllPageRowsSelected(),
898
+ indeterminate: table.getIsSomePageRowsSelected(),
899
+ onChange: table.getToggleAllPageRowsSelectedHandler(),
900
+ sx: rows.length === 0 ? checkboxHiddenHeaderSx : void 0,
901
+ slotProps: { input: { "aria-label": "Select all rows" } }
766
902
  }
767
- ),
903
+ ) }),
768
904
  headerGroup.headers.map((header) => {
769
905
  const sticky = header.column.columnDef.meta?.sticky;
770
906
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
@@ -803,125 +939,20 @@ function BiampTable({
803
939
  );
804
940
  })
805
941
  ] }, headerGroup.id)) }),
806
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableBody, { sx: { opacity: showLoading ? 0.3 : 1 }, children: !showError && rows.map((row) => {
807
- const clickable = onRowClick ? isRowClickable ? isRowClickable(row.original) : true : false;
808
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
809
- import_material7.TableRow,
810
- {
811
- hover: clickable,
812
- selected: enableRowSelection ? row.getIsSelected() : void 0,
813
- role: clickable ? "button" : void 0,
814
- tabIndex: clickable ? 0 : void 0,
815
- sx: { cursor: clickable ? "pointer" : void 0 },
816
- onClick: clickable && onRowClick ? () => onRowClick(row.original) : void 0,
817
- onKeyDown: clickable && onRowClick ? (e) => {
818
- if (e.key === "Enter" || e.key === " ") {
819
- e.preventDefault();
820
- onRowClick(row.original);
821
- }
822
- } : void 0,
823
- children: [
824
- enableRowSelection && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
825
- import_material7.TableCell,
826
- {
827
- padding: "checkbox",
828
- sx: {
829
- position: "sticky",
830
- left: 0,
831
- zIndex: 2,
832
- bgcolor: "background.paper",
833
- ".MuiTableRow-hover:hover > &, .Mui-selected > &": {
834
- bgcolor: ({ palette }) => palette.mode === "dark" ? palette.grey[800] : palette.grey[100]
835
- }
836
- },
837
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
838
- import_material7.Checkbox,
839
- {
840
- checked: row.getIsSelected(),
841
- disabled: !row.getCanSelect(),
842
- onChange: (e) => row.toggleSelected(e.target.checked, {
843
- selectChildren: selectChildrenWithParent
844
- }),
845
- onClick: (e) => e.stopPropagation(),
846
- sx: !row.getCanSelect() ? { visibility: "hidden" } : void 0,
847
- slotProps: {
848
- input: {
849
- "aria-label": getRowLabel ? `Select ${getRowLabel(row.original)}` : `Select row ${row.index + 1}`
850
- }
851
- }
852
- }
853
- )
854
- }
855
- ),
856
- row.getVisibleCells().map((cell, cellIndex, cells) => {
857
- const sticky = cell.column.columnDef.meta?.sticky;
858
- const isExpandCell = enableExpanding && !sticky && cellIndex === cells.findIndex(
859
- (c) => !c.column.columnDef.meta?.sticky
860
- );
861
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
862
- import_material7.TableCell,
863
- {
864
- "data-sticky": sticky || void 0,
865
- sx: cellSx(
866
- sticky,
867
- cell.column.columnDef.meta?.minWidth,
868
- 2
869
- ),
870
- children: (() => {
871
- const content = (0, import_react_table.flexRender)(
872
- cell.column.columnDef.cell,
873
- cell.getContext()
874
- );
875
- if (sticky) return content;
876
- const truncated = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(BiampTableTruncatedCell, { children: content });
877
- if (!isExpandCell) return truncated;
878
- const rowLabel = getRowLabel ? getRowLabel(row.original) : `row ${row.index + 1}`;
879
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
880
- import_material7.Box,
881
- {
882
- sx: {
883
- display: "flex",
884
- alignItems: "center",
885
- pl: `${row.depth * 12}px`
886
- },
887
- children: [
888
- row.getCanExpand() ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
889
- import_material7.IconButton,
890
- {
891
- variant: "none",
892
- onClick: (e) => {
893
- e.stopPropagation();
894
- row.toggleExpanded();
895
- },
896
- "aria-label": row.getIsExpanded() ? `Collapse ${rowLabel}` : `Expand ${rowLabel}`,
897
- "aria-expanded": row.getIsExpanded(),
898
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
899
- import_assets5.ChevronRightIcon,
900
- {
901
- variant: "xs",
902
- sx: {
903
- color: ({ palette }) => palette.text.secondary,
904
- transition: "transform 150ms ease",
905
- transform: row.getIsExpanded() ? "rotate(90deg)" : "rotate(0deg)"
906
- }
907
- }
908
- )
909
- }
910
- ) : hasExpandableRows ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.Box, { sx: { width: 28 } }) : null,
911
- truncated
912
- ]
913
- }
914
- );
915
- })()
916
- },
917
- cell.id
918
- );
919
- })
920
- ]
921
- },
922
- row.id
923
- );
924
- }) })
942
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_material7.TableBody, { sx: { opacity: showLoading ? 0.3 : 1 }, children: !showError && rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
943
+ BiampTableRow,
944
+ {
945
+ row,
946
+ onRowClick,
947
+ isRowClickable,
948
+ enableRowSelection,
949
+ enableExpanding,
950
+ selectChildrenWithParent,
951
+ getRowLabel,
952
+ hasExpandableRows
953
+ },
954
+ row.id
955
+ )) })
925
956
  ]
926
957
  }
927
958
  ),
@@ -1683,10 +1714,11 @@ function getDirtyColumnVisibility(visibility, defaults) {
1683
1714
  // src/BiampTable/useBiampServerSideTable.ts
1684
1715
  var coreRowModel = (0, import_react_table2.getCoreRowModel)();
1685
1716
  var expandedRowModel = (0, import_react_table2.getExpandedRowModel)();
1717
+ var defaultGetRowId = (row) => row.id;
1686
1718
  function useBiampServerSideTable({
1687
1719
  data,
1688
1720
  columns,
1689
- getRowId = (row) => row.id,
1721
+ getRowId = defaultGetRowId,
1690
1722
  order,
1691
1723
  onOrderChange,
1692
1724
  page,
@@ -1702,12 +1734,11 @@ function useBiampServerSideTable({
1702
1734
  onExpandedChange,
1703
1735
  getSubRows
1704
1736
  }) {
1705
- const defaultColumnVisibility = (0, import_react10.useMemo)(
1706
- () => getDefaultColumnVisibilityFromDefs(columns),
1707
- [columns]
1708
- );
1709
- const { columnIdToField, fieldToColumnId } = (0, import_react10.useMemo)(
1710
- () => getOrderFieldMappings(columns),
1737
+ const { defaultColumnVisibility, columnIdToField, fieldToColumnId } = (0, import_react10.useMemo)(
1738
+ () => ({
1739
+ defaultColumnVisibility: getDefaultColumnVisibilityFromDefs(columns),
1740
+ ...getOrderFieldMappings(columns)
1741
+ }),
1711
1742
  [columns]
1712
1743
  );
1713
1744
  const sorting = (0, import_react10.useMemo)(
@@ -1776,8 +1807,10 @@ function useBiampServerSideTable({
1776
1807
  },
1777
1808
  // Expanding — only when expanded state is provided
1778
1809
  ...expanded != null && {
1779
- getExpandedRowModel: expandedRowModel,
1780
- getSubRows,
1810
+ // Only attach getExpandedRowModel when getSubRows is provided.
1811
+ // Without it, the expanded model recomputes on every state change
1812
+ // (including selection), adding unnecessary overhead.
1813
+ ...getSubRows && { getExpandedRowModel: expandedRowModel, getSubRows },
1781
1814
  onExpandedChange: onExpandedChange ? (updater) => {
1782
1815
  const next = typeof updater === "function" ? updater(expanded) : updater;
1783
1816
  onExpandedChange(next);