@rio-cloud/rio-uikit 2.3.0-beta.2 → 2.3.0-beta.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.
Files changed (102) hide show
  1. package/Marker.js +9 -5
  2. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.d.ts +38 -3
  3. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js +104 -109
  4. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisBanner.js.map +1 -1
  5. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.d.ts +24 -5
  6. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js +60 -56
  7. package/components/analyticsAnalysisOverlay/AnalyticsAnalysisOverlay.js.map +1 -1
  8. package/components/datepicker/DayPicker.js +72 -70
  9. package/components/datepicker/DayPicker.js.map +1 -1
  10. package/components/datepicker/DayPickerDropdown.d.ts +1 -0
  11. package/components/datepicker/DayPickerDropdown.js +61 -48
  12. package/components/datepicker/DayPickerDropdown.js.map +1 -1
  13. package/components/datepicker/useStackedDayPickerCalendars.js +26 -26
  14. package/components/datepicker/useStackedDayPickerCalendars.js.map +1 -1
  15. package/components/listMenu/ListMenu.d.ts +8 -0
  16. package/components/listMenu/ListMenu.js +74 -66
  17. package/components/listMenu/ListMenu.js.map +1 -1
  18. package/components/map/components/Map.js +189 -157
  19. package/components/map/components/Map.js.map +1 -1
  20. package/components/map/components/MapContext.d.ts +1 -0
  21. package/components/map/components/MapContext.js +8 -7
  22. package/components/map/components/MapContext.js.map +1 -1
  23. package/components/map/components/features/Route.d.ts +65 -1
  24. package/components/map/components/features/Route.js +184 -98
  25. package/components/map/components/features/Route.js.map +1 -1
  26. package/components/map/components/features/basics/Marker.d.ts +21 -1
  27. package/components/map/components/features/basics/Marker.js +99 -40
  28. package/components/map/components/features/basics/Marker.js.map +1 -1
  29. package/components/map/components/features/basics/Polygon.d.ts +24 -1
  30. package/components/map/components/features/basics/Polygon.js +72 -19
  31. package/components/map/components/features/basics/Polygon.js.map +1 -1
  32. package/components/map/components/features/basics/Polyline.d.ts +29 -0
  33. package/components/map/components/features/basics/Polyline.js +69 -39
  34. package/components/map/components/features/basics/Polyline.js.map +1 -1
  35. package/components/map/components/features/layers/MarkerLayer.js +8 -8
  36. package/components/map/components/features/layers/MarkerLayer.js.map +1 -1
  37. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js +13 -6
  38. package/components/map/components/features/layers/clustering/SimpleClusterLayer.js.map +1 -1
  39. package/components/map/utils/clustering.d.ts +1 -1
  40. package/components/map/utils/clustering.js +30 -30
  41. package/components/map/utils/clustering.js.map +1 -1
  42. package/components/map/utils/mapTypes.d.ts +135 -0
  43. package/components/map/utils/mapTypes.js.map +1 -1
  44. package/components/mapMarker/ClusterMapMarker.d.ts +2 -0
  45. package/components/mapMarker/ClusterMapMarker.js.map +1 -1
  46. package/components/mapMarker/SingleMapMarker.d.ts +2 -0
  47. package/components/mapMarker/SingleMapMarker.js.map +1 -1
  48. package/components/selects/ClearButton.js +9 -7
  49. package/components/selects/ClearButton.js.map +1 -1
  50. package/components/table/Table.js +208 -205
  51. package/components/table/Table.js.map +1 -1
  52. package/components/table/Table.types.d.ts +13 -4
  53. package/components/table/TableColumn.d.ts +8 -1
  54. package/components/table/TableColumn.js +66 -64
  55. package/components/table/TableColumn.js.map +1 -1
  56. package/components/table/TableExpandedRow.js +11 -11
  57. package/components/table/TableExpandedRow.js.map +1 -1
  58. package/components/table/TableHeader.d.ts +17 -0
  59. package/components/table/TableHeader.js +89 -76
  60. package/components/table/TableHeader.js.map +1 -1
  61. package/components/table/TableHeaderColumn.d.ts +11 -1
  62. package/components/table/TableHeaderColumn.js +63 -58
  63. package/components/table/TableHeaderColumn.js.map +1 -1
  64. package/components/table/TableRow.d.ts +6 -0
  65. package/components/table/TableRow.js +49 -48
  66. package/components/table/TableRow.js.map +1 -1
  67. package/components/table/context/TableLayoutContext.d.ts +1 -0
  68. package/components/table/context/TableLayoutContext.js.map +1 -1
  69. package/components/table/layout/useHorizontalSectionSync.d.ts +2 -1
  70. package/components/table/layout/useHorizontalSectionSync.js +32 -31
  71. package/components/table/layout/useHorizontalSectionSync.js.map +1 -1
  72. package/components/table/layout/useTableLayout.d.ts +2 -1
  73. package/components/table/layout/useTableLayout.js +37 -30
  74. package/components/table/layout/useTableLayout.js.map +1 -1
  75. package/components/table/render/header/TableDraggableHeaderCell.js +38 -36
  76. package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -1
  77. package/components/table/render/header/TableHeader.types.d.ts +2 -0
  78. package/components/table/render/header/TableHeaderCellContent.js +16 -16
  79. package/components/table/render/header/TableHeaderCellContent.js.map +1 -1
  80. package/components/table/render/header/TableStaticHeaderCell.js +31 -29
  81. package/components/table/render/header/TableStaticHeaderCell.js.map +1 -1
  82. package/components/table/render/header/resolveHeaderCellClassName.d.ts +1 -0
  83. package/components/table/render/header/resolveHeaderCellClassName.js +10 -9
  84. package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -1
  85. package/components/table/runtime/useResolvedRenderColumns.d.ts +4 -4
  86. package/components/table/runtime/useResolvedRenderColumns.js +13 -13
  87. package/components/table/runtime/useResolvedRenderColumns.js.map +1 -1
  88. package/components/table/runtime/useResolvedRenderHeader.d.ts +1 -1
  89. package/components/table/runtime/useResolvedRenderHeader.js.map +1 -1
  90. package/hooks/useDraggableElement.d.ts +27 -5
  91. package/hooks/useDraggableElement.js +100 -23
  92. package/hooks/useDraggableElement.js.map +1 -1
  93. package/hooks/usePopperDropdown.d.ts +1 -0
  94. package/hooks/usePopperDropdown.js +15 -12
  95. package/hooks/usePopperDropdown.js.map +1 -1
  96. package/package.json +1 -1
  97. package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -1
  98. package/utils/init/initConfig.js +5 -5
  99. package/utils/init/initConfig.js.map +1 -1
  100. package/version.d.ts +1 -1
  101. package/version.js +1 -1
  102. package/version.js.map +1 -1
@@ -1,43 +1,44 @@
1
- import { useRef as a, useState as p, useCallback as i, useEffect as y } from "react";
2
- const m = "table-horizontal-scroll", R = (t) => {
3
- const e = t?.currentTarget;
4
- if (e && "scrollLeft" in e)
5
- return e.scrollLeft;
6
- const o = t?.target;
7
- return o && "scrollLeft" in o ? o.scrollLeft : 0;
8
- }, H = ({ enabled: t, hasFooterCells: e = !0 }) => {
9
- const o = a(null), n = a(null), l = a(0), [L, u] = p(!1), s = i(
10
- (c) => {
11
- const r = (f) => {
12
- if (f) {
13
- if (c === 0) {
14
- f.style.removeProperty("transform");
1
+ import { useRef as f, useState as S, useCallback as m, useEffect as g } from "react";
2
+ const h = "table-horizontal-scroll", R = (r) => {
3
+ const o = r?.currentTarget;
4
+ if (o && "scrollLeft" in o)
5
+ return o.scrollLeft;
6
+ const e = r?.target;
7
+ return e && "scrollLeft" in e ? e.scrollLeft : 0;
8
+ }, z = ({ enabled: r, hasFooterCells: o = !0 }) => {
9
+ const e = f(null), c = f(null), a = f(0), [L, i] = S(!1), [H, u] = S(!1), l = m(
10
+ (s) => {
11
+ const n = (t) => {
12
+ if (t) {
13
+ if (s === 0) {
14
+ t.style.removeProperty("transform");
15
15
  return;
16
16
  }
17
- f.style.transform = `translateX(-${c}px)`;
17
+ t.style.transform = `translateX(-${s}px)`;
18
18
  }
19
19
  };
20
- r(o.current), e ? r(n.current) : n.current && n.current.style.removeProperty("transform");
20
+ n(e.current), o ? n(c.current) : c.current && c.current.style.removeProperty("transform");
21
21
  },
22
- [e]
23
- ), S = i(
24
- (c) => {
25
- const r = R(c);
26
- u(r > 0), t && s(r), r !== l.current && (l.current = r, window.dispatchEvent(new CustomEvent(m)));
22
+ [o]
23
+ ), p = m(
24
+ (s) => {
25
+ const n = s?.currentTarget, t = R(s), y = n ? Math.max(n.scrollWidth - n.clientWidth, 0) : 0, E = Math.max(y - t, 0);
26
+ i(t > 0), u(E > 1), r && l(t), t !== a.current && (a.current = t, window.dispatchEvent(new CustomEvent(h)));
27
27
  },
28
- [t, s]
28
+ [r, l]
29
29
  );
30
- return y(() => {
31
- t || (l.current = 0, u(!1), s(0));
32
- }, [t, s]), {
33
- handleBodyScroll: S,
34
- hasHorizontalScrollOffset: L,
35
- tableFooterRowRef: n,
36
- tableHeadRowRef: o
30
+ return g(() => {
31
+ r || (a.current = 0, i(!1), u(!1), l(0));
32
+ }, [r, l]), {
33
+ handleBodyScroll: p,
34
+ hasHorizontalScrollEndOffset: H,
35
+ hasHorizontalScrollStartOffset: L,
36
+ tableFooterRowRef: c,
37
+ tableHeadRowRef: e
37
38
  };
38
39
  };
39
40
  export {
40
- m as TABLE_HORIZONTAL_SCROLL_EVENT,
41
- H as useHorizontalSectionSync
41
+ h as TABLE_HORIZONTAL_SCROLL_EVENT,
42
+ z as useHorizontalSectionSync
42
43
  };
43
44
  //# sourceMappingURL=useHorizontalSectionSync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHorizontalSectionSync.js","sources":["../../../../src/components/table/layout/useHorizontalSectionSync.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type UIEvent } from 'react';\n\nexport const TABLE_HORIZONTAL_SCROLL_EVENT = 'table-horizontal-scroll';\n\nconst getScrollLeftFromEvent = (event: UIEvent<HTMLElement> | undefined) => {\n const currentTarget = event?.currentTarget;\n\n if (currentTarget && 'scrollLeft' in currentTarget) {\n return (currentTarget as HTMLElement).scrollLeft;\n }\n\n const target = event?.target;\n\n if (target && 'scrollLeft' in target) {\n return (target as HTMLElement).scrollLeft;\n }\n\n return 0;\n};\n\ntype UseHorizontalSectionSyncProps = {\n enabled: boolean;\n hasFooterCells?: boolean;\n};\n\nexport const useHorizontalSectionSync = ({ enabled, hasFooterCells = true }: UseHorizontalSectionSyncProps) => {\n const tableHeadRowRef = useRef<HTMLDivElement>(null);\n const tableFooterRowRef = useRef<HTMLDivElement>(null);\n const previousScrollLeftRef = useRef(0);\n const [hasHorizontalScrollOffset, setHasHorizontalScrollOffset] = useState(false);\n\n const syncHorizontalSections = useCallback(\n (scrollLeft: number) => {\n const applyTransform = (element: HTMLDivElement | null) => {\n if (!element) {\n return;\n }\n\n if (scrollLeft === 0) {\n element.style.removeProperty('transform');\n return;\n }\n\n element.style.transform = `translateX(-${scrollLeft}px)`;\n };\n\n applyTransform(tableHeadRowRef.current);\n\n if (hasFooterCells) {\n applyTransform(tableFooterRowRef.current);\n } else if (tableFooterRowRef.current) {\n tableFooterRowRef.current.style.removeProperty('transform');\n }\n },\n [hasFooterCells]\n );\n\n const handleBodyScroll = useCallback(\n (event: UIEvent<HTMLElement> | undefined) => {\n const scrollLeft = getScrollLeftFromEvent(event);\n setHasHorizontalScrollOffset(scrollLeft > 0);\n\n if (enabled) {\n syncHorizontalSections(scrollLeft);\n }\n\n if (scrollLeft !== previousScrollLeftRef.current) {\n previousScrollLeftRef.current = scrollLeft;\n window.dispatchEvent(new CustomEvent(TABLE_HORIZONTAL_SCROLL_EVENT));\n }\n },\n [enabled, syncHorizontalSections]\n );\n\n useEffect(() => {\n if (!enabled) {\n previousScrollLeftRef.current = 0;\n setHasHorizontalScrollOffset(false);\n syncHorizontalSections(0);\n }\n }, [enabled, syncHorizontalSections]);\n\n return {\n handleBodyScroll,\n hasHorizontalScrollOffset,\n tableFooterRowRef,\n tableHeadRowRef,\n };\n};\n"],"names":["TABLE_HORIZONTAL_SCROLL_EVENT","getScrollLeftFromEvent","event","currentTarget","target","useHorizontalSectionSync","enabled","hasFooterCells","tableHeadRowRef","useRef","tableFooterRowRef","previousScrollLeftRef","hasHorizontalScrollOffset","setHasHorizontalScrollOffset","useState","syncHorizontalSections","useCallback","scrollLeft","applyTransform","element","handleBodyScroll","useEffect"],"mappings":";AAEO,MAAMA,IAAgC,2BAEvCC,IAAyB,CAACC,MAA4C;AACxE,QAAMC,IAAgBD,GAAO;AAE7B,MAAIC,KAAiB,gBAAgBA;AACjC,WAAQA,EAA8B;AAG1C,QAAMC,IAASF,GAAO;AAEtB,SAAIE,KAAU,gBAAgBA,IAClBA,EAAuB,aAG5B;AACX,GAOaC,IAA2B,CAAC,EAAE,SAAAC,GAAS,gBAAAC,IAAiB,SAA0C;AAC3G,QAAMC,IAAkBC,EAAuB,IAAI,GAC7CC,IAAoBD,EAAuB,IAAI,GAC/CE,IAAwBF,EAAO,CAAC,GAChC,CAACG,GAA2BC,CAA4B,IAAIC,EAAS,EAAK,GAE1EC,IAAyBC;AAAA,IAC3B,CAACC,MAAuB;AACpB,YAAMC,IAAiB,CAACC,MAAmC;AACvD,YAAKA,GAIL;AAAA,cAAIF,MAAe,GAAG;AAClB,YAAAE,EAAQ,MAAM,eAAe,WAAW;AACxC;AAAA,UACJ;AAEA,UAAAA,EAAQ,MAAM,YAAY,eAAeF,CAAU;AAAA;AAAA,MACvD;AAEA,MAAAC,EAAeV,EAAgB,OAAO,GAElCD,IACAW,EAAeR,EAAkB,OAAO,IACjCA,EAAkB,WACzBA,EAAkB,QAAQ,MAAM,eAAe,WAAW;AAAA,IAElE;AAAA,IACA,CAACH,CAAc;AAAA,EAAA,GAGba,IAAmBJ;AAAA,IACrB,CAACd,MAA4C;AACzC,YAAMe,IAAahB,EAAuBC,CAAK;AAC/C,MAAAW,EAA6BI,IAAa,CAAC,GAEvCX,KACAS,EAAuBE,CAAU,GAGjCA,MAAeN,EAAsB,YACrCA,EAAsB,UAAUM,GAChC,OAAO,cAAc,IAAI,YAAYjB,CAA6B,CAAC;AAAA,IAE3E;AAAA,IACA,CAACM,GAASS,CAAsB;AAAA,EAAA;AAGpC,SAAAM,EAAU,MAAM;AACZ,IAAKf,MACDK,EAAsB,UAAU,GAChCE,EAA6B,EAAK,GAClCE,EAAuB,CAAC;AAAA,EAEhC,GAAG,CAACT,GAASS,CAAsB,CAAC,GAE7B;AAAA,IACH,kBAAAK;AAAA,IACA,2BAAAR;AAAA,IACA,mBAAAF;AAAA,IACA,iBAAAF;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"useHorizontalSectionSync.js","sources":["../../../../src/components/table/layout/useHorizontalSectionSync.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type UIEvent } from 'react';\n\nexport const TABLE_HORIZONTAL_SCROLL_EVENT = 'table-horizontal-scroll';\n\nconst getScrollLeftFromEvent = (event: UIEvent<HTMLElement> | undefined) => {\n const currentTarget = event?.currentTarget;\n\n if (currentTarget && 'scrollLeft' in currentTarget) {\n return (currentTarget as HTMLElement).scrollLeft;\n }\n\n const target = event?.target;\n\n if (target && 'scrollLeft' in target) {\n return (target as HTMLElement).scrollLeft;\n }\n\n return 0;\n};\n\ntype UseHorizontalSectionSyncProps = {\n enabled: boolean;\n hasFooterCells?: boolean;\n};\n\nexport const useHorizontalSectionSync = ({ enabled, hasFooterCells = true }: UseHorizontalSectionSyncProps) => {\n const tableHeadRowRef = useRef<HTMLDivElement>(null);\n const tableFooterRowRef = useRef<HTMLDivElement>(null);\n const previousScrollLeftRef = useRef(0);\n\n const [hasHorizontalScrollStartOffset, setHasHorizontalScrollStartOffset] = useState(false);\n const [hasHorizontalScrollEndOffset, setHasHorizontalScrollEndOffset] = useState(false);\n\n const syncHorizontalSections = useCallback(\n (scrollLeft: number) => {\n const applyTransform = (element: HTMLDivElement | null) => {\n if (!element) {\n return;\n }\n\n if (scrollLeft === 0) {\n element.style.removeProperty('transform');\n return;\n }\n\n element.style.transform = `translateX(-${scrollLeft}px)`;\n };\n\n applyTransform(tableHeadRowRef.current);\n\n if (hasFooterCells) {\n applyTransform(tableFooterRowRef.current);\n } else if (tableFooterRowRef.current) {\n tableFooterRowRef.current.style.removeProperty('transform');\n }\n },\n [hasFooterCells]\n );\n\n const handleBodyScroll = useCallback(\n (event: UIEvent<HTMLElement> | undefined) => {\n const currentTarget = event?.currentTarget as HTMLElement | undefined;\n const scrollLeft = getScrollLeftFromEvent(event);\n const maxScrollLeft = currentTarget\n ? Math.max(currentTarget.scrollWidth - currentTarget.clientWidth, 0)\n : 0;\n const remainingScrollLeft = Math.max(maxScrollLeft - scrollLeft, 0);\n\n setHasHorizontalScrollStartOffset(scrollLeft > 0);\n setHasHorizontalScrollEndOffset(remainingScrollLeft > 1);\n\n if (enabled) {\n syncHorizontalSections(scrollLeft);\n }\n\n if (scrollLeft !== previousScrollLeftRef.current) {\n previousScrollLeftRef.current = scrollLeft;\n window.dispatchEvent(new CustomEvent(TABLE_HORIZONTAL_SCROLL_EVENT));\n }\n },\n [enabled, syncHorizontalSections]\n );\n\n useEffect(() => {\n if (!enabled) {\n previousScrollLeftRef.current = 0;\n setHasHorizontalScrollStartOffset(false);\n setHasHorizontalScrollEndOffset(false);\n syncHorizontalSections(0);\n }\n }, [enabled, syncHorizontalSections]);\n\n return {\n handleBodyScroll,\n hasHorizontalScrollEndOffset,\n hasHorizontalScrollStartOffset,\n tableFooterRowRef,\n tableHeadRowRef,\n };\n};\n"],"names":["TABLE_HORIZONTAL_SCROLL_EVENT","getScrollLeftFromEvent","event","currentTarget","target","useHorizontalSectionSync","enabled","hasFooterCells","tableHeadRowRef","useRef","tableFooterRowRef","previousScrollLeftRef","hasHorizontalScrollStartOffset","setHasHorizontalScrollStartOffset","useState","hasHorizontalScrollEndOffset","setHasHorizontalScrollEndOffset","syncHorizontalSections","useCallback","scrollLeft","applyTransform","element","handleBodyScroll","maxScrollLeft","remainingScrollLeft","useEffect"],"mappings":";AAEO,MAAMA,IAAgC,2BAEvCC,IAAyB,CAACC,MAA4C;AACxE,QAAMC,IAAgBD,GAAO;AAE7B,MAAIC,KAAiB,gBAAgBA;AACjC,WAAQA,EAA8B;AAG1C,QAAMC,IAASF,GAAO;AAEtB,SAAIE,KAAU,gBAAgBA,IAClBA,EAAuB,aAG5B;AACX,GAOaC,IAA2B,CAAC,EAAE,SAAAC,GAAS,gBAAAC,IAAiB,SAA0C;AAC3G,QAAMC,IAAkBC,EAAuB,IAAI,GAC7CC,IAAoBD,EAAuB,IAAI,GAC/CE,IAAwBF,EAAO,CAAC,GAEhC,CAACG,GAAgCC,CAAiC,IAAIC,EAAS,EAAK,GACpF,CAACC,GAA8BC,CAA+B,IAAIF,EAAS,EAAK,GAEhFG,IAAyBC;AAAA,IAC3B,CAACC,MAAuB;AACpB,YAAMC,IAAiB,CAACC,MAAmC;AACvD,YAAKA,GAIL;AAAA,cAAIF,MAAe,GAAG;AAClB,YAAAE,EAAQ,MAAM,eAAe,WAAW;AACxC;AAAA,UACJ;AAEA,UAAAA,EAAQ,MAAM,YAAY,eAAeF,CAAU;AAAA;AAAA,MACvD;AAEA,MAAAC,EAAeZ,EAAgB,OAAO,GAElCD,IACAa,EAAeV,EAAkB,OAAO,IACjCA,EAAkB,WACzBA,EAAkB,QAAQ,MAAM,eAAe,WAAW;AAAA,IAElE;AAAA,IACA,CAACH,CAAc;AAAA,EAAA,GAGbe,IAAmBJ;AAAA,IACrB,CAAChB,MAA4C;AACzC,YAAMC,IAAgBD,GAAO,eACvBiB,IAAalB,EAAuBC,CAAK,GACzCqB,IAAgBpB,IAChB,KAAK,IAAIA,EAAc,cAAcA,EAAc,aAAa,CAAC,IACjE,GACAqB,IAAsB,KAAK,IAAID,IAAgBJ,GAAY,CAAC;AAElE,MAAAN,EAAkCM,IAAa,CAAC,GAChDH,EAAgCQ,IAAsB,CAAC,GAEnDlB,KACAW,EAAuBE,CAAU,GAGjCA,MAAeR,EAAsB,YACrCA,EAAsB,UAAUQ,GAChC,OAAO,cAAc,IAAI,YAAYnB,CAA6B,CAAC;AAAA,IAE3E;AAAA,IACA,CAACM,GAASW,CAAsB;AAAA,EAAA;AAGpC,SAAAQ,EAAU,MAAM;AACZ,IAAKnB,MACDK,EAAsB,UAAU,GAChCE,EAAkC,EAAK,GACvCG,EAAgC,EAAK,GACrCC,EAAuB,CAAC;AAAA,EAEhC,GAAG,CAACX,GAASW,CAAsB,CAAC,GAE7B;AAAA,IACH,kBAAAK;AAAA,IACA,8BAAAP;AAAA,IACA,gCAAAH;AAAA,IACA,mBAAAF;AAAA,IACA,iBAAAF;AAAA,EAAA;AAER;"}
@@ -26,7 +26,8 @@ type InternalTableStyle = CSSProperties & {
26
26
  export declare const useTableLayout: <RowType extends TableRowData>(props: UseTableLayoutProps<RowType>) => {
27
27
  columnsWithAreas: TableColumnWithArea<RowType>[];
28
28
  handleBodyScroll: (event: import('react').UIEvent<HTMLElement> | undefined) => void;
29
- hasHorizontalScrollOffset: boolean;
29
+ hasHorizontalScrollEndOffset: boolean;
30
+ hasHorizontalScrollStartOffset: boolean;
30
31
  tableUseOverflow: boolean;
31
32
  tableWrapperRef: import('react').MutableRefObject<HTMLDivElement | null>;
32
33
  tableFooterRowRef: import('react').RefObject<HTMLDivElement>;
@@ -1,59 +1,66 @@
1
1
  import { useMeasuredColumnMaxWidths as N } from "./useMeasuredColumnMaxWidths.js";
2
- import { MIN_COLUMN_WIDTH_PX as O } from "../tableSizing.constants.js";
3
- import { toCssSize as l, getColumnTrack as R } from "./columnSizing.js";
4
- import { useHorizontalSectionSync as L } from "./useHorizontalSectionSync.js";
5
- import $ from "../../../hooks/useResizeObserver.js";
6
- const h = 50, B = (r) => {
2
+ import { MIN_COLUMN_WIDTH_PX as R } from "../tableSizing.constants.js";
3
+ import { toCssSize as l, getColumnTrack as L } from "./columnSizing.js";
4
+ import { useHorizontalSectionSync as $ } from "./useHorizontalSectionSync.js";
5
+ import B from "../../../hooks/useResizeObserver.js";
6
+ const h = 50, E = (r) => {
7
7
  if (!r)
8
8
  return;
9
9
  const a = r.trim().match(/^(-?\d+(?:\.\d+)?)px$/);
10
10
  if (a)
11
11
  return Number(a[1]);
12
- }, j = (r) => {
13
- const { bodyMaxHeight: a, cardsStyle: d, columns: n, hasFooterCells: p, rowSeparatorWidth: u, showSelectionColumn: i, style: b } = r, [c, , { inlineSize: f }] = $(), t = n.map((e, o) => ({
14
- column: e,
12
+ }, k = (r) => {
13
+ const { bodyMaxHeight: a, cardsStyle: d, columns: n, hasFooterCells: p, rowSeparatorWidth: u, showSelectionColumn: i, style: b } = r, [c, , { inlineSize: f }] = B(), e = n.map((t, o) => ({
14
+ column: t,
15
15
  columnIndex: o,
16
16
  areaName: `table-col-${o + 1}`
17
- })), s = f ?? c.current?.clientWidth, W = (i ? h : 0) + n.reduce((e, o) => {
17
+ })), s = f ?? c.current?.clientWidth, S = (i ? h : 0) + n.reduce((t, o) => {
18
18
  if (o.width === void 0)
19
- return e + O;
20
- const H = B(l(o.width));
21
- return e + (H ?? 0);
22
- }, 0), m = s !== void 0 && W > s, S = s !== void 0 ? `${s}px` : "100%", { handleBodyScroll: w, hasHorizontalScrollOffset: x, tableFooterRowRef: C, tableHeadRowRef: M } = L({
19
+ return t + R;
20
+ const v = E(l(o.width));
21
+ return t + (v ?? 0);
22
+ }, 0), m = s !== void 0 && S > s, W = s !== void 0 ? `${s}px` : "100%", {
23
+ handleBodyScroll: w,
24
+ hasHorizontalScrollEndOffset: x,
25
+ hasHorizontalScrollStartOffset: C,
26
+ tableFooterRowRef: M,
27
+ tableHeadRowRef: T
28
+ } = $({
23
29
  enabled: !!a,
24
30
  hasFooterCells: p
25
- }), T = N({
31
+ }), g = N({
26
32
  columns: n,
27
33
  enabled: m,
28
34
  tableWrapperRef: c
29
- }), g = t.length > 0 ? [
35
+ }), y = e.length > 0 ? [
30
36
  i ? `${h}px` : void 0,
31
- ...t.map(({ column: e }) => R(e, T[e.key]))
32
- ].filter(Boolean).join(" ") : "minmax(0, 1fr)", y = t.length > 0 ? `"${[
37
+ ...e.map(({ column: t }) => L(t, g[t.key]))
38
+ ].filter(Boolean).join(" ") : "minmax(0, 1fr)", z = e.length > 0 ? `"${[
33
39
  i ? "table-selection" : void 0,
34
- ...t.map(({ areaName: e }) => e)
35
- ].filter(Boolean).join(" ")}"` : "none", _ = l(d?.minWidth) ?? "280px", v = l(d?.maxWidth) ?? "1fr", z = {
40
+ ...e.map(({ areaName: t }) => t)
41
+ ].filter(Boolean).join(" ")}"` : "none", H = l(d?.minWidth) ?? "280px", O = l(d?.maxWidth) ?? "1fr", _ = {
36
42
  ...b ?? {},
37
- "--table-columns": g,
38
- "--table-areas": y,
39
- "--table-cards-min": _,
40
- "--table-cards-max": v,
43
+ "--table-columns": y,
44
+ "--table-areas": z,
45
+ "--table-cards-min": H,
46
+ "--table-cards-max": O,
41
47
  "--table-column-count": String(n.length + (i ? 1 : 0)),
42
48
  "--table-row-separator-width": l(u),
43
- "--table-width": S
49
+ "--table-width": W
44
50
  };
45
51
  return {
46
- columnsWithAreas: t,
52
+ columnsWithAreas: e,
47
53
  handleBodyScroll: w,
48
- hasHorizontalScrollOffset: x,
54
+ hasHorizontalScrollEndOffset: x,
55
+ hasHorizontalScrollStartOffset: C,
49
56
  tableUseOverflow: m,
50
57
  tableWrapperRef: c,
51
- tableFooterRowRef: C,
52
- tableHeadRowRef: M,
53
- wrapperStyle: z
58
+ tableFooterRowRef: M,
59
+ tableHeadRowRef: T,
60
+ wrapperStyle: _
54
61
  };
55
62
  };
56
63
  export {
57
- j as useTableLayout
64
+ k as useTableLayout
58
65
  };
59
66
  //# sourceMappingURL=useTableLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableLayout.js","sources":["../../../../src/components/table/layout/useTableLayout.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport type { TableCardsStyleSettings, TableColumnDefinition, TableRowData } from '../Table.types';\nimport { useMeasuredColumnMaxWidths } from './useMeasuredColumnMaxWidths';\nimport { MIN_COLUMN_WIDTH_PX } from '../tableSizing.constants';\nimport { getColumnTrack, toCssSize } from './columnSizing';\nimport { useHorizontalSectionSync } from './useHorizontalSectionSync';\nimport useResizeObserver from '../../../useResizeObserver';\n\nconst TABLE_SELECTION_COLUMN_WIDTH_PX = 50;\n\nconst parsePixelSize = (value?: string) => {\n if (!value) {\n return;\n }\n\n const match = value.trim().match(/^(-?\\d+(?:\\.\\d+)?)px$/);\n\n if (!match) {\n return;\n }\n\n return Number(match[1]);\n};\n\nexport type TableColumnWithArea<RowType extends TableRowData> = {\n column: TableColumnDefinition<RowType>;\n columnIndex: number;\n areaName: string;\n};\n\ntype UseTableLayoutProps<RowType extends TableRowData> = {\n bodyMaxHeight?: string;\n cardsStyle?: TableCardsStyleSettings;\n columns: TableColumnDefinition<RowType>[];\n hasFooterCells?: boolean;\n rowSeparatorWidth?: number | string;\n showSelectionColumn?: boolean;\n style?: CSSProperties;\n};\n\ntype InternalTableStyle = CSSProperties & {\n '--table-columns'?: string;\n '--table-areas'?: string;\n '--table-cards-min'?: string;\n '--table-cards-max'?: string;\n '--table-column-count'?: string;\n '--table-row-separator-width'?: string;\n '--table-width'?: string;\n};\n\nexport const useTableLayout = <RowType extends TableRowData>(props: UseTableLayoutProps<RowType>) => {\n const { bodyMaxHeight, cardsStyle, columns, hasFooterCells, rowSeparatorWidth, showSelectionColumn, style } = props;\n const [tableWrapperRef, , { inlineSize }] = useResizeObserver<HTMLDivElement>();\n\n const columnsWithAreas: TableColumnWithArea<RowType>[] = columns.map((column, columnIndex) => ({\n column,\n columnIndex,\n areaName: `table-col-${columnIndex + 1}`,\n }));\n\n const wrapperWidth = inlineSize ?? tableWrapperRef.current?.clientWidth;\n\n const minWidthTotal =\n (showSelectionColumn ? TABLE_SELECTION_COLUMN_WIDTH_PX : 0) +\n columns.reduce((totalWidth, column) => {\n if (column.width === undefined) {\n return totalWidth + MIN_COLUMN_WIDTH_PX;\n }\n\n const columnWidth = parsePixelSize(toCssSize(column.width));\n\n return totalWidth + (columnWidth ?? 0);\n }, 0);\n\n const tableUseOverflow = wrapperWidth !== undefined && minWidthTotal > wrapperWidth;\n const tableWidth = wrapperWidth !== undefined ? `${wrapperWidth}px` : '100%';\n\n const { handleBodyScroll, hasHorizontalScrollOffset, tableFooterRowRef, tableHeadRowRef } =\n useHorizontalSectionSync({\n enabled: !!bodyMaxHeight,\n hasFooterCells,\n });\n\n const measuredColumnMaxWidths = useMeasuredColumnMaxWidths({\n columns,\n enabled: tableUseOverflow,\n tableWrapperRef,\n });\n\n const gridTemplateColumns =\n columnsWithAreas.length > 0\n ? [\n showSelectionColumn ? `${TABLE_SELECTION_COLUMN_WIDTH_PX}px` : undefined,\n ...columnsWithAreas.map(({ column }) => getColumnTrack(column, measuredColumnMaxWidths[column.key])),\n ]\n .filter(Boolean)\n .join(' ')\n : 'minmax(0, 1fr)';\n\n const gridTemplateAreas =\n columnsWithAreas.length > 0\n ? `\"${[\n showSelectionColumn ? 'table-selection' : undefined,\n ...columnsWithAreas.map(({ areaName }) => areaName),\n ]\n .filter(Boolean)\n .join(' ')}\"`\n : 'none';\n\n const cardsMinWidth = toCssSize(cardsStyle?.minWidth) ?? '280px';\n const cardsMaxWidth = toCssSize(cardsStyle?.maxWidth) ?? '1fr';\n\n const wrapperStyle: InternalTableStyle = {\n ...(style ?? {}),\n '--table-columns': gridTemplateColumns,\n '--table-areas': gridTemplateAreas,\n '--table-cards-min': cardsMinWidth,\n '--table-cards-max': cardsMaxWidth,\n '--table-column-count': String(columns.length + (showSelectionColumn ? 1 : 0)),\n '--table-row-separator-width': toCssSize(rowSeparatorWidth),\n '--table-width': tableWidth,\n };\n\n return {\n columnsWithAreas,\n handleBodyScroll,\n hasHorizontalScrollOffset,\n tableUseOverflow,\n tableWrapperRef,\n tableFooterRowRef,\n tableHeadRowRef,\n wrapperStyle,\n };\n};\n"],"names":["TABLE_SELECTION_COLUMN_WIDTH_PX","parsePixelSize","value","match","useTableLayout","props","bodyMaxHeight","cardsStyle","columns","hasFooterCells","rowSeparatorWidth","showSelectionColumn","style","tableWrapperRef","inlineSize","useResizeObserver","columnsWithAreas","column","columnIndex","wrapperWidth","minWidthTotal","totalWidth","MIN_COLUMN_WIDTH_PX","columnWidth","toCssSize","tableUseOverflow","tableWidth","handleBodyScroll","hasHorizontalScrollOffset","tableFooterRowRef","tableHeadRowRef","useHorizontalSectionSync","measuredColumnMaxWidths","useMeasuredColumnMaxWidths","gridTemplateColumns","getColumnTrack","gridTemplateAreas","areaName","cardsMinWidth","cardsMaxWidth","wrapperStyle"],"mappings":";;;;;AASA,MAAMA,IAAkC,IAElCC,IAAiB,CAACC,MAAmB;AACvC,MAAI,CAACA;AACD;AAGJ,QAAMC,IAAQD,EAAM,KAAA,EAAO,MAAM,uBAAuB;AAExD,MAAKC;AAIL,WAAO,OAAOA,EAAM,CAAC,CAAC;AAC1B,GA4BaC,IAAiB,CAA+BC,MAAwC;AACjG,QAAM,EAAE,eAAAC,GAAe,YAAAC,GAAY,SAAAC,GAAS,gBAAAC,GAAgB,mBAAAC,GAAmB,qBAAAC,GAAqB,OAAAC,MAAUP,GACxG,CAACQ,GAAA,EAAmB,EAAE,YAAAC,EAAA,CAAY,IAAIC,EAAA,GAEtCC,IAAmDR,EAAQ,IAAI,CAACS,GAAQC,OAAiB;AAAA,IAC3F,QAAAD;AAAA,IACA,aAAAC;AAAA,IACA,UAAU,aAAaA,IAAc,CAAC;AAAA,EAAA,EACxC,GAEIC,IAAeL,KAAcD,EAAgB,SAAS,aAEtDO,KACDT,IAAsBX,IAAkC,KACzDQ,EAAQ,OAAO,CAACa,GAAYJ,MAAW;AACnC,QAAIA,EAAO,UAAU;AACjB,aAAOI,IAAaC;AAGxB,UAAMC,IAActB,EAAeuB,EAAUP,EAAO,KAAK,CAAC;AAE1D,WAAOI,KAAcE,KAAe;AAAA,EACxC,GAAG,CAAC,GAEFE,IAAmBN,MAAiB,UAAaC,IAAgBD,GACjEO,IAAaP,MAAiB,SAAY,GAAGA,CAAY,OAAO,QAEhE,EAAE,kBAAAQ,GAAkB,2BAAAC,GAA2B,mBAAAC,GAAmB,iBAAAC,EAAA,IACpEC,EAAyB;AAAA,IACrB,SAAS,CAAC,CAACzB;AAAA,IACX,gBAAAG;AAAA,EAAA,CACH,GAECuB,IAA0BC,EAA2B;AAAA,IACvD,SAAAzB;AAAA,IACA,SAASiB;AAAA,IACT,iBAAAZ;AAAA,EAAA,CACH,GAEKqB,IACFlB,EAAiB,SAAS,IACpB;AAAA,IACIL,IAAsB,GAAGX,CAA+B,OAAO;AAAA,IAC/D,GAAGgB,EAAiB,IAAI,CAAC,EAAE,QAAAC,EAAA,MAAakB,EAAelB,GAAQe,EAAwBf,EAAO,GAAG,CAAC,CAAC;AAAA,EAAA,EAElG,OAAO,OAAO,EACd,KAAK,GAAG,IACb,kBAEJmB,IACFpB,EAAiB,SAAS,IACpB,IAAI;AAAA,IACAL,IAAsB,oBAAoB;AAAA,IAC1C,GAAGK,EAAiB,IAAI,CAAC,EAAE,UAAAqB,EAAA,MAAeA,CAAQ;AAAA,EAAA,EAEjD,OAAO,OAAO,EACd,KAAK,GAAG,CAAC,MACd,QAEJC,IAAgBd,EAAUjB,GAAY,QAAQ,KAAK,SACnDgC,IAAgBf,EAAUjB,GAAY,QAAQ,KAAK,OAEnDiC,IAAmC;AAAA,IACrC,GAAI5B,KAAS,CAAA;AAAA,IACb,mBAAmBsB;AAAA,IACnB,iBAAiBE;AAAA,IACjB,qBAAqBE;AAAA,IACrB,qBAAqBC;AAAA,IACrB,wBAAwB,OAAO/B,EAAQ,UAAUG,IAAsB,IAAI,EAAE;AAAA,IAC7E,+BAA+Ba,EAAUd,CAAiB;AAAA,IAC1D,iBAAiBgB;AAAA,EAAA;AAGrB,SAAO;AAAA,IACH,kBAAAV;AAAA,IACA,kBAAAW;AAAA,IACA,2BAAAC;AAAA,IACA,kBAAAH;AAAA,IACA,iBAAAZ;AAAA,IACA,mBAAAgB;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAU;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"useTableLayout.js","sources":["../../../../src/components/table/layout/useTableLayout.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport type { TableCardsStyleSettings, TableColumnDefinition, TableRowData } from '../Table.types';\nimport { useMeasuredColumnMaxWidths } from './useMeasuredColumnMaxWidths';\nimport { MIN_COLUMN_WIDTH_PX } from '../tableSizing.constants';\nimport { getColumnTrack, toCssSize } from './columnSizing';\nimport { useHorizontalSectionSync } from './useHorizontalSectionSync';\nimport useResizeObserver from '../../../useResizeObserver';\n\nconst TABLE_SELECTION_COLUMN_WIDTH_PX = 50;\n\nconst parsePixelSize = (value?: string) => {\n if (!value) {\n return;\n }\n\n const match = value.trim().match(/^(-?\\d+(?:\\.\\d+)?)px$/);\n\n if (!match) {\n return;\n }\n\n return Number(match[1]);\n};\n\nexport type TableColumnWithArea<RowType extends TableRowData> = {\n column: TableColumnDefinition<RowType>;\n columnIndex: number;\n areaName: string;\n};\n\ntype UseTableLayoutProps<RowType extends TableRowData> = {\n bodyMaxHeight?: string;\n cardsStyle?: TableCardsStyleSettings;\n columns: TableColumnDefinition<RowType>[];\n hasFooterCells?: boolean;\n rowSeparatorWidth?: number | string;\n showSelectionColumn?: boolean;\n style?: CSSProperties;\n};\n\ntype InternalTableStyle = CSSProperties & {\n '--table-columns'?: string;\n '--table-areas'?: string;\n '--table-cards-min'?: string;\n '--table-cards-max'?: string;\n '--table-column-count'?: string;\n '--table-row-separator-width'?: string;\n '--table-width'?: string;\n};\n\nexport const useTableLayout = <RowType extends TableRowData>(props: UseTableLayoutProps<RowType>) => {\n const { bodyMaxHeight, cardsStyle, columns, hasFooterCells, rowSeparatorWidth, showSelectionColumn, style } = props;\n const [tableWrapperRef, , { inlineSize }] = useResizeObserver<HTMLDivElement>();\n\n const columnsWithAreas: TableColumnWithArea<RowType>[] = columns.map((column, columnIndex) => ({\n column,\n columnIndex,\n areaName: `table-col-${columnIndex + 1}`,\n }));\n\n const wrapperWidth = inlineSize ?? tableWrapperRef.current?.clientWidth;\n\n const minWidthTotal =\n (showSelectionColumn ? TABLE_SELECTION_COLUMN_WIDTH_PX : 0) +\n columns.reduce((totalWidth, column) => {\n if (column.width === undefined) {\n return totalWidth + MIN_COLUMN_WIDTH_PX;\n }\n\n const columnWidth = parsePixelSize(toCssSize(column.width));\n\n return totalWidth + (columnWidth ?? 0);\n }, 0);\n\n const tableUseOverflow = wrapperWidth !== undefined && minWidthTotal > wrapperWidth;\n const tableWidth = wrapperWidth !== undefined ? `${wrapperWidth}px` : '100%';\n\n const {\n handleBodyScroll,\n hasHorizontalScrollEndOffset,\n hasHorizontalScrollStartOffset,\n tableFooterRowRef,\n tableHeadRowRef,\n } = useHorizontalSectionSync({\n enabled: !!bodyMaxHeight,\n hasFooterCells,\n });\n\n const measuredColumnMaxWidths = useMeasuredColumnMaxWidths({\n columns,\n enabled: tableUseOverflow,\n tableWrapperRef,\n });\n\n const gridTemplateColumns =\n columnsWithAreas.length > 0\n ? [\n showSelectionColumn ? `${TABLE_SELECTION_COLUMN_WIDTH_PX}px` : undefined,\n ...columnsWithAreas.map(({ column }) => getColumnTrack(column, measuredColumnMaxWidths[column.key])),\n ]\n .filter(Boolean)\n .join(' ')\n : 'minmax(0, 1fr)';\n\n const gridTemplateAreas =\n columnsWithAreas.length > 0\n ? `\"${[\n showSelectionColumn ? 'table-selection' : undefined,\n ...columnsWithAreas.map(({ areaName }) => areaName),\n ]\n .filter(Boolean)\n .join(' ')}\"`\n : 'none';\n\n const cardsMinWidth = toCssSize(cardsStyle?.minWidth) ?? '280px';\n const cardsMaxWidth = toCssSize(cardsStyle?.maxWidth) ?? '1fr';\n\n const wrapperStyle: InternalTableStyle = {\n ...(style ?? {}),\n '--table-columns': gridTemplateColumns,\n '--table-areas': gridTemplateAreas,\n '--table-cards-min': cardsMinWidth,\n '--table-cards-max': cardsMaxWidth,\n '--table-column-count': String(columns.length + (showSelectionColumn ? 1 : 0)),\n '--table-row-separator-width': toCssSize(rowSeparatorWidth),\n '--table-width': tableWidth,\n };\n\n return {\n columnsWithAreas,\n handleBodyScroll,\n hasHorizontalScrollEndOffset,\n hasHorizontalScrollStartOffset,\n tableUseOverflow,\n tableWrapperRef,\n tableFooterRowRef,\n tableHeadRowRef,\n wrapperStyle,\n };\n};\n"],"names":["TABLE_SELECTION_COLUMN_WIDTH_PX","parsePixelSize","value","match","useTableLayout","props","bodyMaxHeight","cardsStyle","columns","hasFooterCells","rowSeparatorWidth","showSelectionColumn","style","tableWrapperRef","inlineSize","useResizeObserver","columnsWithAreas","column","columnIndex","wrapperWidth","minWidthTotal","totalWidth","MIN_COLUMN_WIDTH_PX","columnWidth","toCssSize","tableUseOverflow","tableWidth","handleBodyScroll","hasHorizontalScrollEndOffset","hasHorizontalScrollStartOffset","tableFooterRowRef","tableHeadRowRef","useHorizontalSectionSync","measuredColumnMaxWidths","useMeasuredColumnMaxWidths","gridTemplateColumns","getColumnTrack","gridTemplateAreas","areaName","cardsMinWidth","cardsMaxWidth","wrapperStyle"],"mappings":";;;;;AASA,MAAMA,IAAkC,IAElCC,IAAiB,CAACC,MAAmB;AACvC,MAAI,CAACA;AACD;AAGJ,QAAMC,IAAQD,EAAM,KAAA,EAAO,MAAM,uBAAuB;AAExD,MAAKC;AAIL,WAAO,OAAOA,EAAM,CAAC,CAAC;AAC1B,GA4BaC,IAAiB,CAA+BC,MAAwC;AACjG,QAAM,EAAE,eAAAC,GAAe,YAAAC,GAAY,SAAAC,GAAS,gBAAAC,GAAgB,mBAAAC,GAAmB,qBAAAC,GAAqB,OAAAC,MAAUP,GACxG,CAACQ,GAAA,EAAmB,EAAE,YAAAC,EAAA,CAAY,IAAIC,EAAA,GAEtCC,IAAmDR,EAAQ,IAAI,CAACS,GAAQC,OAAiB;AAAA,IAC3F,QAAAD;AAAA,IACA,aAAAC;AAAA,IACA,UAAU,aAAaA,IAAc,CAAC;AAAA,EAAA,EACxC,GAEIC,IAAeL,KAAcD,EAAgB,SAAS,aAEtDO,KACDT,IAAsBX,IAAkC,KACzDQ,EAAQ,OAAO,CAACa,GAAYJ,MAAW;AACnC,QAAIA,EAAO,UAAU;AACjB,aAAOI,IAAaC;AAGxB,UAAMC,IAActB,EAAeuB,EAAUP,EAAO,KAAK,CAAC;AAE1D,WAAOI,KAAcE,KAAe;AAAA,EACxC,GAAG,CAAC,GAEFE,IAAmBN,MAAiB,UAAaC,IAAgBD,GACjEO,IAAaP,MAAiB,SAAY,GAAGA,CAAY,OAAO,QAEhE;AAAA,IACF,kBAAAQ;AAAA,IACA,8BAAAC;AAAA,IACA,gCAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,EAAA,IACAC,EAAyB;AAAA,IACzB,SAAS,CAAC,CAAC1B;AAAA,IACX,gBAAAG;AAAA,EAAA,CACH,GAEKwB,IAA0BC,EAA2B;AAAA,IACvD,SAAA1B;AAAA,IACA,SAASiB;AAAA,IACT,iBAAAZ;AAAA,EAAA,CACH,GAEKsB,IACFnB,EAAiB,SAAS,IACpB;AAAA,IACIL,IAAsB,GAAGX,CAA+B,OAAO;AAAA,IAC/D,GAAGgB,EAAiB,IAAI,CAAC,EAAE,QAAAC,EAAA,MAAamB,EAAenB,GAAQgB,EAAwBhB,EAAO,GAAG,CAAC,CAAC;AAAA,EAAA,EAElG,OAAO,OAAO,EACd,KAAK,GAAG,IACb,kBAEJoB,IACFrB,EAAiB,SAAS,IACpB,IAAI;AAAA,IACAL,IAAsB,oBAAoB;AAAA,IAC1C,GAAGK,EAAiB,IAAI,CAAC,EAAE,UAAAsB,EAAA,MAAeA,CAAQ;AAAA,EAAA,EAEjD,OAAO,OAAO,EACd,KAAK,GAAG,CAAC,MACd,QAEJC,IAAgBf,EAAUjB,GAAY,QAAQ,KAAK,SACnDiC,IAAgBhB,EAAUjB,GAAY,QAAQ,KAAK,OAEnDkC,IAAmC;AAAA,IACrC,GAAI7B,KAAS,CAAA;AAAA,IACb,mBAAmBuB;AAAA,IACnB,iBAAiBE;AAAA,IACjB,qBAAqBE;AAAA,IACrB,qBAAqBC;AAAA,IACrB,wBAAwB,OAAOhC,EAAQ,UAAUG,IAAsB,IAAI,EAAE;AAAA,IAC7E,+BAA+Ba,EAAUd,CAAiB;AAAA,IAC1D,iBAAiBgB;AAAA,EAAA;AAGrB,SAAO;AAAA,IACH,kBAAAV;AAAA,IACA,kBAAAW;AAAA,IACA,8BAAAC;AAAA,IACA,gCAAAC;AAAA,IACA,kBAAAJ;AAAA,IACA,iBAAAZ;AAAA,IACA,mBAAAiB;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAU;AAAA,EAAA;AAER;"}
@@ -1,64 +1,66 @@
1
- import { jsxs as y, jsx as s } from "react/jsx-runtime";
1
+ import { jsxs as R, jsx as m } from "react/jsx-runtime";
2
2
  import { useSortable as A } from "@dnd-kit/sortable";
3
- import h from "./TableHeaderCellContent.js";
3
+ import k from "./TableHeaderCellContent.js";
4
4
  import H from "./TableHeaderCellResizeHandle.js";
5
- import { resolveAriaSort as R } from "./resolveAriaSort.js";
6
- import { resolveHeaderCellClassName as w } from "./resolveHeaderCellClassName.js";
7
- import { resolveHeaderCellStyle as k } from "./resolveHeaderCellStyle.js";
8
- import { resolveAriaSpan as n, resolveAriaColIndex as D } from "../../shared/resolveTableAria.js";
9
- const P = (r) => {
5
+ import { resolveAriaSort as w } from "./resolveAriaSort.js";
6
+ import { resolveHeaderCellClassName as D } from "./resolveHeaderCellClassName.js";
7
+ import { resolveHeaderCellStyle as N } from "./resolveHeaderCellStyle.js";
8
+ import { resolveAriaSpan as c, resolveAriaColIndex as L } from "../../shared/resolveTableAria.js";
9
+ const _ = (t) => {
10
10
  const {
11
11
  column: e,
12
- header: m,
13
- hideWhileDragging: t,
14
- htmlAttributes: c,
12
+ header: r,
13
+ hideWhileDragging: a,
14
+ htmlAttributes: u,
15
15
  isResizable: d,
16
- showSelectionColumn: a,
17
- stickyLeftColumnCount: u
18
- } = r, l = u ?? 0, i = e.columnKey ?? String(e.key), { attributes: f, listeners: p, setActivatorNodeRef: g, setNodeRef: v, transform: o, transition: C, isDragging: b } = A({
19
- id: i
20
- }), { role: N, ...S } = f, x = {
21
- ...S,
16
+ showSelectionColumn: l,
17
+ stickyLeftColumnCount: C,
18
+ stickyRightColumnCount: f
19
+ } = t, i = C ?? 0, n = f ?? 0, s = e.columnKey ?? String(e.key), { attributes: g, listeners: p, setActivatorNodeRef: S, setNodeRef: v, transform: o, transition: b, isDragging: y } = A({
20
+ id: s
21
+ }), { role: T, ...h } = g, x = {
22
+ ...h,
22
23
  ...p
23
24
  };
24
- return /* @__PURE__ */ y(
25
+ return /* @__PURE__ */ R(
25
26
  "div",
26
27
  {
27
28
  ref: v,
28
- ...c,
29
- className: w(e, m, {
29
+ ...u,
30
+ className: D(e, r, {
30
31
  isDraggable: !0,
31
- isDragging: b,
32
+ isDragging: y,
32
33
  isResizable: d,
33
- isStickyLeftColumn: l > 0 && e.columnStart <= l
34
+ isStickyLeftColumn: i > 0 && e.columnStart <= i,
35
+ isStickyRightColumn: n > 0 && e.columnStart + e.colSpan - 1 > r.totalColumnCount - n
34
36
  }),
35
- "data-column": i,
37
+ "data-column": s,
36
38
  role: "columnheader",
37
- "aria-colindex": D(e.columnStart, a),
38
- "aria-colspan": n(e.colSpan),
39
+ "aria-colindex": L(e.columnStart, l),
40
+ "aria-colspan": c(e.colSpan),
39
41
  "aria-rowindex": e.rowStart,
40
- "aria-rowspan": n(e.rowSpan),
41
- "aria-sort": R(e),
42
- style: k(e, a, {
43
- pointerEvents: t ? "none" : void 0,
44
- transform: t ? void 0 : o ? `translate3d(${o.x}px, ${o.y}px, 0)` : void 0,
45
- transition: C
42
+ "aria-rowspan": c(e.rowSpan),
43
+ "aria-sort": w(e),
44
+ style: N(e, l, {
45
+ pointerEvents: a ? "none" : void 0,
46
+ transform: a ? void 0 : o ? `translate3d(${o.x}px, ${o.y}px, 0)` : void 0,
47
+ transition: b
46
48
  }),
47
49
  children: [
48
- /* @__PURE__ */ s(
49
- h,
50
+ /* @__PURE__ */ m(
51
+ k,
50
52
  {
51
- ...r,
53
+ ...t,
52
54
  dragActivatorProps: x,
53
- dragActivatorRef: g
55
+ dragActivatorRef: S
54
56
  }
55
57
  ),
56
- /* @__PURE__ */ s(H, { ...r })
58
+ /* @__PURE__ */ m(H, { ...t })
57
59
  ]
58
60
  }
59
61
  );
60
62
  };
61
63
  export {
62
- P as default
64
+ _ as default
63
65
  };
64
66
  //# sourceMappingURL=TableDraggableHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableDraggableHeaderCell.js","sources":["../../../../../src/components/table/render/header/TableDraggableHeaderCell.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\n\nimport type { TableRowData } from '../../Table.types';\nimport TableHeaderCellContent from './TableHeaderCellContent';\nimport TableHeaderCellResizeHandle from './TableHeaderCellResizeHandle';\nimport { resolveAriaSort } from './resolveAriaSort';\nimport { resolveHeaderCellClassName } from './resolveHeaderCellClassName';\nimport { resolveHeaderCellStyle } from './resolveHeaderCellStyle';\nimport type { SharedHeaderCellProps } from './TableHeader.types';\nimport { resolveAriaColIndex, resolveAriaSpan } from '../../shared/resolveTableAria';\n\nconst TableDraggableHeaderCell = (props: SharedHeaderCellProps<TableRowData>) => {\n const {\n column,\n header,\n hideWhileDragging,\n htmlAttributes,\n isResizable,\n showSelectionColumn,\n stickyLeftColumnCount,\n } = props;\n\n const stickyLeftColumns = stickyLeftColumnCount ?? 0;\n\n const columnKey = column.columnKey ?? String(column.key);\n\n const { attributes, listeners, setActivatorNodeRef, setNodeRef, transform, transition, isDragging } = useSortable({\n id: columnKey,\n });\n\n const { role: _sortableRole, ...sortableAttributes } = attributes;\n\n const dragActivatorProps = {\n ...sortableAttributes,\n ...listeners,\n };\n\n return (\n <div\n ref={setNodeRef}\n {...htmlAttributes}\n className={resolveHeaderCellClassName(column, header, {\n isDraggable: true,\n isDragging,\n isResizable,\n isStickyLeftColumn: stickyLeftColumns > 0 && column.columnStart <= stickyLeftColumns,\n })}\n data-column={columnKey}\n role='columnheader'\n aria-colindex={resolveAriaColIndex(column.columnStart, showSelectionColumn)}\n aria-colspan={resolveAriaSpan(column.colSpan)}\n aria-rowindex={column.rowStart}\n aria-rowspan={resolveAriaSpan(column.rowSpan)}\n aria-sort={resolveAriaSort(column)}\n style={resolveHeaderCellStyle(column, showSelectionColumn, {\n pointerEvents: hideWhileDragging ? 'none' : undefined,\n transform: hideWhileDragging\n ? undefined\n : transform\n ? `translate3d(${transform.x}px, ${transform.y}px, 0)`\n : undefined,\n transition,\n })}\n >\n <TableHeaderCellContent\n {...props}\n dragActivatorProps={dragActivatorProps}\n dragActivatorRef={setActivatorNodeRef}\n />\n <TableHeaderCellResizeHandle {...props} />\n </div>\n );\n};\n\nexport default TableDraggableHeaderCell;\n"],"names":["TableDraggableHeaderCell","props","column","header","hideWhileDragging","htmlAttributes","isResizable","showSelectionColumn","stickyLeftColumnCount","stickyLeftColumns","columnKey","attributes","listeners","setActivatorNodeRef","setNodeRef","transform","transition","isDragging","useSortable","_sortableRole","sortableAttributes","dragActivatorProps","jsxs","resolveHeaderCellClassName","resolveAriaColIndex","resolveAriaSpan","resolveAriaSort","resolveHeaderCellStyle","jsx","TableHeaderCellContent","TableHeaderCellResizeHandle"],"mappings":";;;;;;;;AAWA,MAAMA,IAA2B,CAACC,MAA+C;AAC7E,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,EAAA,IACAP,GAEEQ,IAAoBD,KAAyB,GAE7CE,IAAYR,EAAO,aAAa,OAAOA,EAAO,GAAG,GAEjD,EAAE,YAAAS,GAAY,WAAAC,GAAW,qBAAAC,GAAqB,YAAAC,GAAY,WAAAC,GAAW,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAY;AAAA,IAC9G,IAAIR;AAAA,EAAA,CACP,GAEK,EAAE,MAAMS,GAAe,GAAGC,MAAuBT,GAEjDU,IAAqB;AAAA,IACvB,GAAGD;AAAA,IACH,GAAGR;AAAA,EAAA;AAGP,SACI,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAKR;AAAA,MACJ,GAAGT;AAAA,MACJ,WAAWkB,EAA2BrB,GAAQC,GAAQ;AAAA,QAClD,aAAa;AAAA,QACb,YAAAc;AAAA,QACA,aAAAX;AAAA,QACA,oBAAoBG,IAAoB,KAAKP,EAAO,eAAeO;AAAA,MAAA,CACtE;AAAA,MACD,eAAaC;AAAA,MACb,MAAK;AAAA,MACL,iBAAec,EAAoBtB,EAAO,aAAaK,CAAmB;AAAA,MAC1E,gBAAckB,EAAgBvB,EAAO,OAAO;AAAA,MAC5C,iBAAeA,EAAO;AAAA,MACtB,gBAAcuB,EAAgBvB,EAAO,OAAO;AAAA,MAC5C,aAAWwB,EAAgBxB,CAAM;AAAA,MACjC,OAAOyB,EAAuBzB,GAAQK,GAAqB;AAAA,QACvD,eAAeH,IAAoB,SAAS;AAAA,QAC5C,WAAWA,IACL,SACAW,IACE,eAAeA,EAAU,CAAC,OAAOA,EAAU,CAAC,WAC5C;AAAA,QACR,YAAAC;AAAA,MAAA,CACH;AAAA,MAED,UAAA;AAAA,QAAA,gBAAAY;AAAA,UAACC;AAAA,UAAA;AAAA,YACI,GAAG5B;AAAA,YACJ,oBAAAoB;AAAA,YACA,kBAAkBR;AAAA,UAAA;AAAA,QAAA;AAAA,QAEtB,gBAAAe,EAACE,GAAA,EAA6B,GAAG7B,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpD;"}
1
+ {"version":3,"file":"TableDraggableHeaderCell.js","sources":["../../../../../src/components/table/render/header/TableDraggableHeaderCell.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\n\nimport type { TableRowData } from '../../Table.types';\nimport TableHeaderCellContent from './TableHeaderCellContent';\nimport TableHeaderCellResizeHandle from './TableHeaderCellResizeHandle';\nimport { resolveAriaSort } from './resolveAriaSort';\nimport { resolveHeaderCellClassName } from './resolveHeaderCellClassName';\nimport { resolveHeaderCellStyle } from './resolveHeaderCellStyle';\nimport type { SharedHeaderCellProps } from './TableHeader.types';\nimport { resolveAriaColIndex, resolveAriaSpan } from '../../shared/resolveTableAria';\n\nconst TableDraggableHeaderCell = (props: SharedHeaderCellProps<TableRowData>) => {\n const {\n column,\n header,\n hideWhileDragging,\n htmlAttributes,\n isResizable,\n showSelectionColumn,\n stickyLeftColumnCount,\n stickyRightColumnCount,\n } = props;\n\n const stickyLeftColumns = stickyLeftColumnCount ?? 0;\n const stickyRightColumns = stickyRightColumnCount ?? 0;\n\n const columnKey = column.columnKey ?? String(column.key);\n\n const { attributes, listeners, setActivatorNodeRef, setNodeRef, transform, transition, isDragging } = useSortable({\n id: columnKey,\n });\n\n const { role: _sortableRole, ...sortableAttributes } = attributes;\n\n const dragActivatorProps = {\n ...sortableAttributes,\n ...listeners,\n };\n\n return (\n <div\n ref={setNodeRef}\n {...htmlAttributes}\n className={resolveHeaderCellClassName(column, header, {\n isDraggable: true,\n isDragging,\n isResizable,\n isStickyLeftColumn: stickyLeftColumns > 0 && column.columnStart <= stickyLeftColumns,\n isStickyRightColumn:\n stickyRightColumns > 0 &&\n column.columnStart + column.colSpan - 1 > header.totalColumnCount - stickyRightColumns,\n })}\n data-column={columnKey}\n role='columnheader'\n aria-colindex={resolveAriaColIndex(column.columnStart, showSelectionColumn)}\n aria-colspan={resolveAriaSpan(column.colSpan)}\n aria-rowindex={column.rowStart}\n aria-rowspan={resolveAriaSpan(column.rowSpan)}\n aria-sort={resolveAriaSort(column)}\n style={resolveHeaderCellStyle(column, showSelectionColumn, {\n pointerEvents: hideWhileDragging ? 'none' : undefined,\n transform: hideWhileDragging\n ? undefined\n : transform\n ? `translate3d(${transform.x}px, ${transform.y}px, 0)`\n : undefined,\n transition,\n })}\n >\n <TableHeaderCellContent\n {...props}\n dragActivatorProps={dragActivatorProps}\n dragActivatorRef={setActivatorNodeRef}\n />\n <TableHeaderCellResizeHandle {...props} />\n </div>\n );\n};\n\nexport default TableDraggableHeaderCell;\n"],"names":["TableDraggableHeaderCell","props","column","header","hideWhileDragging","htmlAttributes","isResizable","showSelectionColumn","stickyLeftColumnCount","stickyRightColumnCount","stickyLeftColumns","stickyRightColumns","columnKey","attributes","listeners","setActivatorNodeRef","setNodeRef","transform","transition","isDragging","useSortable","_sortableRole","sortableAttributes","dragActivatorProps","jsxs","resolveHeaderCellClassName","resolveAriaColIndex","resolveAriaSpan","resolveAriaSort","resolveHeaderCellStyle","jsx","TableHeaderCellContent","TableHeaderCellResizeHandle"],"mappings":";;;;;;;;AAWA,MAAMA,IAA2B,CAACC,MAA+C;AAC7E,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,wBAAAC;AAAA,EAAA,IACAR,GAEES,IAAoBF,KAAyB,GAC7CG,IAAqBF,KAA0B,GAE/CG,IAAYV,EAAO,aAAa,OAAOA,EAAO,GAAG,GAEjD,EAAE,YAAAW,GAAY,WAAAC,GAAW,qBAAAC,GAAqB,YAAAC,GAAY,WAAAC,GAAW,YAAAC,GAAY,YAAAC,EAAA,IAAeC,EAAY;AAAA,IAC9G,IAAIR;AAAA,EAAA,CACP,GAEK,EAAE,MAAMS,GAAe,GAAGC,MAAuBT,GAEjDU,IAAqB;AAAA,IACvB,GAAGD;AAAA,IACH,GAAGR;AAAA,EAAA;AAGP,SACI,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAKR;AAAA,MACJ,GAAGX;AAAA,MACJ,WAAWoB,EAA2BvB,GAAQC,GAAQ;AAAA,QAClD,aAAa;AAAA,QACb,YAAAgB;AAAA,QACA,aAAAb;AAAA,QACA,oBAAoBI,IAAoB,KAAKR,EAAO,eAAeQ;AAAA,QACnE,qBACIC,IAAqB,KACrBT,EAAO,cAAcA,EAAO,UAAU,IAAIC,EAAO,mBAAmBQ;AAAA,MAAA,CAC3E;AAAA,MACD,eAAaC;AAAA,MACb,MAAK;AAAA,MACL,iBAAec,EAAoBxB,EAAO,aAAaK,CAAmB;AAAA,MAC1E,gBAAcoB,EAAgBzB,EAAO,OAAO;AAAA,MAC5C,iBAAeA,EAAO;AAAA,MACtB,gBAAcyB,EAAgBzB,EAAO,OAAO;AAAA,MAC5C,aAAW0B,EAAgB1B,CAAM;AAAA,MACjC,OAAO2B,EAAuB3B,GAAQK,GAAqB;AAAA,QACvD,eAAeH,IAAoB,SAAS;AAAA,QAC5C,WAAWA,IACL,SACAa,IACE,eAAeA,EAAU,CAAC,OAAOA,EAAU,CAAC,WAC5C;AAAA,QACR,YAAAC;AAAA,MAAA,CACH;AAAA,MAED,UAAA;AAAA,QAAA,gBAAAY;AAAA,UAACC;AAAA,UAAA;AAAA,YACI,GAAG9B;AAAA,YACJ,oBAAAsB;AAAA,YACA,kBAAkBR;AAAA,UAAA;AAAA,QAAA;AAAA,QAEtB,gBAAAe,EAACE,GAAA,EAA6B,GAAG/B,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpD;"}
@@ -17,6 +17,7 @@ export type TableHeaderSectionProps<RowType extends TableRowData = TableRowData>
17
17
  selectionHeaderContent?: ReactNode;
18
18
  showSelectionColumn?: boolean;
19
19
  stickyLeftColumnCount?: number;
20
+ stickyRightColumnCount?: number;
20
21
  tableHeadRowRef: Ref<HTMLDivElement>;
21
22
  onSortChange?: (columnKey: string, direction: TableSortDirection, event: ReactMouseEvent<HTMLButtonElement>) => void;
22
23
  };
@@ -34,4 +35,5 @@ export type SharedHeaderCellProps<RowType extends TableRowData = TableRowData> =
34
35
  onSortChange?: (columnKey: string, direction: TableSortDirection, event: ReactMouseEvent<HTMLButtonElement>) => void;
35
36
  showSelectionColumn?: boolean;
36
37
  stickyLeftColumnCount?: number;
38
+ stickyRightColumnCount?: number;
37
39
  };
@@ -7,7 +7,7 @@ const u = (c) => {
7
7
  /* @__PURE__ */ a("span", { children: e.label })
8
8
  ] }) : e.label, o = s === null ? null : /* @__PURE__ */ a("span", { className: "table-head-label", children: s });
9
9
  return /* @__PURE__ */ a("div", { className: l("table-head-cell-content", d && "table-head-cell-content-hidden"), children: /* @__PURE__ */ r("div", { className: "table-head-cell-content-row", children: [
10
- e.sortable ? /* @__PURE__ */ r(
10
+ e.sortable ? /* @__PURE__ */ a(
11
11
  "button",
12
12
  {
13
13
  type: "button",
@@ -18,21 +18,21 @@ const u = (c) => {
18
18
  e.sortDirection === "asc" ? "desc" : "asc",
19
19
  h
20
20
  ),
21
- children: [
22
- /* @__PURE__ */ a(p, { direction: e.sortDirection }),
23
- /* @__PURE__ */ a(
24
- "span",
25
- {
26
- ref: n,
27
- className: l(
28
- "table-head-button-label",
29
- t && "table-head-drag-label"
30
- ),
31
- ...t,
32
- children: o
33
- }
34
- )
35
- ]
21
+ children: /* @__PURE__ */ r(
22
+ "span",
23
+ {
24
+ ref: n,
25
+ className: l(
26
+ "table-head-button-label",
27
+ t && "table-head-drag-label"
28
+ ),
29
+ ...t,
30
+ children: [
31
+ /* @__PURE__ */ a(p, { direction: e.sortDirection }),
32
+ o
33
+ ]
34
+ }
35
+ )
36
36
  }
37
37
  ) : /* @__PURE__ */ a(
38
38
  "span",
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderCellContent.js","sources":["../../../../../src/components/table/render/header/TableHeaderCellContent.tsx"],"sourcesContent":["import classNames from '../../../../utils/classNames';\nimport SortArrows from '../../SortArrows';\nimport type { TableRowData } from '../../Table.types';\nimport type { SharedHeaderCellProps } from './TableHeader.types';\n\nconst TableHeaderCellContent = (props: SharedHeaderCellProps<TableRowData>) => {\n const { column, dragActivatorProps, dragActivatorRef, hideWhileDragging, onSortChange } = props;\n\n const ariaLabel = column.hideLabel && typeof column.label === 'string' ? column.label : undefined;\n\n const labelContent = column.hideLabel ? null : column.icon ? (\n <span className='display-inline-flex align-items-center gap-5'>\n <span className={classNames('text-color-dark rioglyph', column.icon)} />\n <span>{column.label}</span>\n </span>\n ) : (\n column.label\n );\n\n const wrappedLabelContent = labelContent === null ? null : <span className='table-head-label'>{labelContent}</span>;\n\n return (\n <div className={classNames('table-head-cell-content', hideWhileDragging && 'table-head-cell-content-hidden')}>\n <div className='table-head-cell-content-row'>\n {column.sortable ? (\n <button\n type='button'\n className={classNames('table-head-button', column.filter && 'table-head-button-has-filter')}\n aria-label={ariaLabel}\n onClick={event =>\n onSortChange?.(\n column.columnKey ?? String(column.key),\n column.sortDirection === 'asc' ? 'desc' : 'asc',\n event\n )\n }\n >\n <SortArrows direction={column.sortDirection} />\n <span\n ref={dragActivatorRef}\n className={classNames(\n 'table-head-button-label',\n dragActivatorProps && 'table-head-drag-label'\n )}\n {...dragActivatorProps}\n >\n {wrappedLabelContent}\n </span>\n </button>\n ) : (\n <span\n ref={dragActivatorRef}\n className={classNames(\n 'table-head-label-wrapper',\n column.filter && 'table-head-label-wrapper-has-filter',\n dragActivatorProps && 'table-head-drag-label'\n )}\n aria-label={ariaLabel}\n {...dragActivatorProps}\n >\n {wrappedLabelContent}\n </span>\n )}\n {column.filter && <span className='table-head-filter'>{column.filter}</span>}\n </div>\n </div>\n );\n};\n\nexport default TableHeaderCellContent;\n"],"names":["TableHeaderCellContent","props","column","dragActivatorProps","dragActivatorRef","hideWhileDragging","onSortChange","ariaLabel","labelContent","jsxs","jsx","classNames","wrappedLabelContent","event","SortArrows"],"mappings":";;;AAKA,MAAMA,IAAyB,CAACC,MAA+C;AAC3E,QAAM,EAAE,QAAAC,GAAQ,oBAAAC,GAAoB,kBAAAC,GAAkB,mBAAAC,GAAmB,cAAAC,MAAiBL,GAEpFM,IAAYL,EAAO,aAAa,OAAOA,EAAO,SAAU,WAAWA,EAAO,QAAQ,QAElFM,IAAeN,EAAO,YAAY,OAAOA,EAAO,OAClD,gBAAAO,EAAC,QAAA,EAAK,WAAU,gDACZ,UAAA;AAAA,IAAA,gBAAAC,EAAC,UAAK,WAAWC,EAAW,4BAA4BT,EAAO,IAAI,GAAG;AAAA,IACtE,gBAAAQ,EAAC,QAAA,EAAM,UAAAR,EAAO,MAAA,CAAM;AAAA,EAAA,EAAA,CACxB,IAEAA,EAAO,OAGLU,IAAsBJ,MAAiB,OAAO,yBAAQ,QAAA,EAAK,WAAU,oBAAoB,UAAAA,EAAA,CAAa;AAE5G,SACI,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAW,2BAA2BN,KAAqB,gCAAgC,GACvG,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,+BACV,UAAA;AAAA,IAAAP,EAAO,WACJ,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,WAAWE,EAAW,qBAAqBT,EAAO,UAAU,8BAA8B;AAAA,QAC1F,cAAYK;AAAA,QACZ,SAAS,CAAAM,MACLP;AAAA,UACIJ,EAAO,aAAa,OAAOA,EAAO,GAAG;AAAA,UACrCA,EAAO,kBAAkB,QAAQ,SAAS;AAAA,UAC1CW;AAAA,QAAA;AAAA,QAIR,UAAA;AAAA,UAAA,gBAAAH,EAACI,GAAA,EAAW,WAAWZ,EAAO,cAAA,CAAe;AAAA,UAC7C,gBAAAQ;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,KAAKN;AAAA,cACL,WAAWO;AAAA,gBACP;AAAA,gBACAR,KAAsB;AAAA,cAAA;AAAA,cAEzB,GAAGA;AAAA,cAEH,UAAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACL;AAAA,MAAA;AAAA,IAAA,IAGJ,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,KAAKN;AAAA,QACL,WAAWO;AAAA,UACP;AAAA,UACAT,EAAO,UAAU;AAAA,UACjBC,KAAsB;AAAA,QAAA;AAAA,QAE1B,cAAYI;AAAA,QACX,GAAGJ;AAAA,QAEH,UAAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAGRV,EAAO,UAAU,gBAAAQ,EAAC,UAAK,WAAU,qBAAqB,YAAO,OAAA,CAAO;AAAA,EAAA,EAAA,CACzE,EAAA,CACJ;AAER;"}
1
+ {"version":3,"file":"TableHeaderCellContent.js","sources":["../../../../../src/components/table/render/header/TableHeaderCellContent.tsx"],"sourcesContent":["import classNames from '../../../../utils/classNames';\nimport SortArrows from '../../SortArrows';\nimport type { TableRowData } from '../../Table.types';\nimport type { SharedHeaderCellProps } from './TableHeader.types';\n\nconst TableHeaderCellContent = (props: SharedHeaderCellProps<TableRowData>) => {\n const { column, dragActivatorProps, dragActivatorRef, hideWhileDragging, onSortChange } = props;\n\n const ariaLabel = column.hideLabel && typeof column.label === 'string' ? column.label : undefined;\n\n const labelContent = column.hideLabel ? null : column.icon ? (\n <span className='display-inline-flex align-items-center gap-5'>\n <span className={classNames('text-color-dark rioglyph', column.icon)} />\n <span>{column.label}</span>\n </span>\n ) : (\n column.label\n );\n\n const wrappedLabelContent = labelContent === null ? null : <span className='table-head-label'>{labelContent}</span>;\n\n return (\n <div className={classNames('table-head-cell-content', hideWhileDragging && 'table-head-cell-content-hidden')}>\n <div className='table-head-cell-content-row'>\n {column.sortable ? (\n <button\n type='button'\n className={classNames('table-head-button', column.filter && 'table-head-button-has-filter')}\n aria-label={ariaLabel}\n onClick={event =>\n onSortChange?.(\n column.columnKey ?? String(column.key),\n column.sortDirection === 'asc' ? 'desc' : 'asc',\n event\n )\n }\n >\n <span\n ref={dragActivatorRef}\n className={classNames(\n 'table-head-button-label',\n dragActivatorProps && 'table-head-drag-label'\n )}\n {...dragActivatorProps}\n >\n <SortArrows direction={column.sortDirection} />\n {wrappedLabelContent}\n </span>\n </button>\n ) : (\n <span\n ref={dragActivatorRef}\n className={classNames(\n 'table-head-label-wrapper',\n column.filter && 'table-head-label-wrapper-has-filter',\n dragActivatorProps && 'table-head-drag-label'\n )}\n aria-label={ariaLabel}\n {...dragActivatorProps}\n >\n {wrappedLabelContent}\n </span>\n )}\n {column.filter && <span className='table-head-filter'>{column.filter}</span>}\n </div>\n </div>\n );\n};\n\nexport default TableHeaderCellContent;\n"],"names":["TableHeaderCellContent","props","column","dragActivatorProps","dragActivatorRef","hideWhileDragging","onSortChange","ariaLabel","labelContent","jsxs","jsx","classNames","wrappedLabelContent","event","SortArrows"],"mappings":";;;AAKA,MAAMA,IAAyB,CAACC,MAA+C;AAC3E,QAAM,EAAE,QAAAC,GAAQ,oBAAAC,GAAoB,kBAAAC,GAAkB,mBAAAC,GAAmB,cAAAC,MAAiBL,GAEpFM,IAAYL,EAAO,aAAa,OAAOA,EAAO,SAAU,WAAWA,EAAO,QAAQ,QAElFM,IAAeN,EAAO,YAAY,OAAOA,EAAO,OAClD,gBAAAO,EAAC,QAAA,EAAK,WAAU,gDACZ,UAAA;AAAA,IAAA,gBAAAC,EAAC,UAAK,WAAWC,EAAW,4BAA4BT,EAAO,IAAI,GAAG;AAAA,IACtE,gBAAAQ,EAAC,QAAA,EAAM,UAAAR,EAAO,MAAA,CAAM;AAAA,EAAA,EAAA,CACxB,IAEAA,EAAO,OAGLU,IAAsBJ,MAAiB,OAAO,yBAAQ,QAAA,EAAK,WAAU,oBAAoB,UAAAA,EAAA,CAAa;AAE5G,SACI,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAW,2BAA2BN,KAAqB,gCAAgC,GACvG,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,+BACV,UAAA;AAAA,IAAAP,EAAO,WACJ,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,WAAWC,EAAW,qBAAqBT,EAAO,UAAU,8BAA8B;AAAA,QAC1F,cAAYK;AAAA,QACZ,SAAS,CAAAM,MACLP;AAAA,UACIJ,EAAO,aAAa,OAAOA,EAAO,GAAG;AAAA,UACrCA,EAAO,kBAAkB,QAAQ,SAAS;AAAA,UAC1CW;AAAA,QAAA;AAAA,QAIR,UAAA,gBAAAJ;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,KAAKL;AAAA,YACL,WAAWO;AAAA,cACP;AAAA,cACAR,KAAsB;AAAA,YAAA;AAAA,YAEzB,GAAGA;AAAA,YAEJ,UAAA;AAAA,cAAA,gBAAAO,EAACI,GAAA,EAAW,WAAWZ,EAAO,cAAA,CAAe;AAAA,cAC5CU;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACL;AAAA,IAAA,IAGJ,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,KAAKN;AAAA,QACL,WAAWO;AAAA,UACP;AAAA,UACAT,EAAO,UAAU;AAAA,UACjBC,KAAsB;AAAA,QAAA;AAAA,QAE1B,cAAYI;AAAA,QACX,GAAGJ;AAAA,QAEH,UAAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAGRV,EAAO,UAAU,gBAAAQ,EAAC,UAAK,WAAU,qBAAqB,YAAO,OAAA,CAAO;AAAA,EAAA,EAAA,CACzE,EAAA,CACJ;AAER;"}
@@ -1,48 +1,50 @@
1
- import { jsxs as d, jsx as o } from "react/jsx-runtime";
2
- import u from "../../../../utils/classNames.js";
3
- import C from "./TableHeaderCellContent.js";
4
- import f from "./TableHeaderCellResizeHandle.js";
5
- import { resolveAriaSort as S } from "./resolveAriaSort.js";
6
- import { resolveHeaderCellClassName as p } from "./resolveHeaderCellClassName.js";
7
- import { resolveHeaderCellStyle as h } from "./resolveHeaderCellStyle.js";
8
- import { resolveAriaSpan as t, resolveAriaColIndex as y } from "../../shared/resolveTableAria.js";
9
- const L = (r) => {
1
+ import { jsxs as C, jsx as i } from "react/jsx-runtime";
2
+ import S from "../../../../utils/classNames.js";
3
+ import f from "./TableHeaderCellContent.js";
4
+ import h from "./TableHeaderCellResizeHandle.js";
5
+ import { resolveAriaSort as p } from "./resolveAriaSort.js";
6
+ import { resolveHeaderCellClassName as y } from "./resolveHeaderCellClassName.js";
7
+ import { resolveHeaderCellStyle as g } from "./resolveHeaderCellStyle.js";
8
+ import { resolveAriaSpan as n, resolveAriaColIndex as k } from "../../shared/resolveTableAria.js";
9
+ const N = (o) => {
10
10
  const {
11
11
  column: e,
12
- header: i,
12
+ header: l,
13
13
  hideWhileDragging: m,
14
- htmlAttributes: n,
15
- isResizable: s,
16
- showSelectionColumn: l,
17
- stickyLeftColumnCount: c
18
- } = r, a = c ?? 0;
19
- return /* @__PURE__ */ d(
14
+ htmlAttributes: s,
15
+ isResizable: c,
16
+ showSelectionColumn: t,
17
+ stickyLeftColumnCount: u,
18
+ stickyRightColumnCount: d
19
+ } = o, r = u ?? 0, a = d ?? 0;
20
+ return /* @__PURE__ */ C(
20
21
  "div",
21
22
  {
22
- ...n,
23
- className: u(
24
- p(e, i, {
25
- isResizable: s,
26
- isStickyLeftColumn: a > 0 && e.columnStart <= a
23
+ ...s,
24
+ className: S(
25
+ y(e, l, {
26
+ isResizable: c,
27
+ isStickyLeftColumn: r > 0 && e.columnStart <= r,
28
+ isStickyRightColumn: a > 0 && e.columnStart + e.colSpan - 1 > l.totalColumnCount - a
27
29
  }),
28
30
  m && "table-head-cell-drag-placeholder"
29
31
  ),
30
32
  "data-column": e.columnKey ?? String(e.key),
31
33
  role: "columnheader",
32
- "aria-colindex": y(e.columnStart, l),
33
- "aria-colspan": t(e.colSpan),
34
+ "aria-colindex": k(e.columnStart, t),
35
+ "aria-colspan": n(e.colSpan),
34
36
  "aria-rowindex": e.rowStart,
35
- "aria-rowspan": t(e.rowSpan),
36
- "aria-sort": S(e),
37
- style: h(e, l),
37
+ "aria-rowspan": n(e.rowSpan),
38
+ "aria-sort": p(e),
39
+ style: g(e, t),
38
40
  children: [
39
- /* @__PURE__ */ o(C, { ...r }),
40
- /* @__PURE__ */ o(f, { ...r })
41
+ /* @__PURE__ */ i(f, { ...o }),
42
+ /* @__PURE__ */ i(h, { ...o })
41
43
  ]
42
44
  }
43
45
  );
44
46
  };
45
47
  export {
46
- L as default
48
+ N as default
47
49
  };
48
50
  //# sourceMappingURL=TableStaticHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableStaticHeaderCell.js","sources":["../../../../../src/components/table/render/header/TableStaticHeaderCell.tsx"],"sourcesContent":["import classNames from '../../../../utils/classNames';\nimport type { TableRowData } from '../../Table.types';\nimport TableHeaderCellContent from './TableHeaderCellContent';\nimport TableHeaderCellResizeHandle from './TableHeaderCellResizeHandle';\nimport { resolveAriaSort } from './resolveAriaSort';\nimport { resolveHeaderCellClassName } from './resolveHeaderCellClassName';\nimport { resolveHeaderCellStyle } from './resolveHeaderCellStyle';\nimport type { SharedHeaderCellProps } from './TableHeader.types';\nimport { resolveAriaColIndex, resolveAriaSpan } from '../../shared/resolveTableAria';\n\nconst TableStaticHeaderCell = (props: SharedHeaderCellProps<TableRowData>) => {\n const {\n column,\n header,\n hideWhileDragging,\n htmlAttributes,\n isResizable,\n showSelectionColumn,\n stickyLeftColumnCount,\n } = props;\n\n const stickyLeftColumns = stickyLeftColumnCount ?? 0;\n\n return (\n <div\n {...htmlAttributes}\n className={classNames(\n resolveHeaderCellClassName(column, header, {\n isResizable,\n isStickyLeftColumn: stickyLeftColumns > 0 && column.columnStart <= stickyLeftColumns,\n }),\n hideWhileDragging && 'table-head-cell-drag-placeholder'\n )}\n data-column={column.columnKey ?? String(column.key)}\n role='columnheader'\n aria-colindex={resolveAriaColIndex(column.columnStart, showSelectionColumn)}\n aria-colspan={resolveAriaSpan(column.colSpan)}\n aria-rowindex={column.rowStart}\n aria-rowspan={resolveAriaSpan(column.rowSpan)}\n aria-sort={resolveAriaSort(column)}\n style={resolveHeaderCellStyle(column, showSelectionColumn)}\n >\n <TableHeaderCellContent {...props} />\n <TableHeaderCellResizeHandle {...props} />\n </div>\n );\n};\n\nexport default TableStaticHeaderCell;\n"],"names":["TableStaticHeaderCell","props","column","header","hideWhileDragging","htmlAttributes","isResizable","showSelectionColumn","stickyLeftColumnCount","stickyLeftColumns","jsxs","classNames","resolveHeaderCellClassName","resolveAriaColIndex","resolveAriaSpan","resolveAriaSort","resolveHeaderCellStyle","jsx","TableHeaderCellContent","TableHeaderCellResizeHandle"],"mappings":";;;;;;;;AAUA,MAAMA,IAAwB,CAACC,MAA+C;AAC1E,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,EAAA,IACAP,GAEEQ,IAAoBD,KAAyB;AAEnD,SACI,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGL;AAAA,MACJ,WAAWM;AAAA,QACPC,EAA2BV,GAAQC,GAAQ;AAAA,UACvC,aAAAG;AAAA,UACA,oBAAoBG,IAAoB,KAAKP,EAAO,eAAeO;AAAA,QAAA,CACtE;AAAA,QACDL,KAAqB;AAAA,MAAA;AAAA,MAEzB,eAAaF,EAAO,aAAa,OAAOA,EAAO,GAAG;AAAA,MAClD,MAAK;AAAA,MACL,iBAAeW,EAAoBX,EAAO,aAAaK,CAAmB;AAAA,MAC1E,gBAAcO,EAAgBZ,EAAO,OAAO;AAAA,MAC5C,iBAAeA,EAAO;AAAA,MACtB,gBAAcY,EAAgBZ,EAAO,OAAO;AAAA,MAC5C,aAAWa,EAAgBb,CAAM;AAAA,MACjC,OAAOc,EAAuBd,GAAQK,CAAmB;AAAA,MAEzD,UAAA;AAAA,QAAA,gBAAAU,EAACC,GAAA,EAAwB,GAAGjB,GAAO;AAAA,QACnC,gBAAAgB,EAACE,GAAA,EAA6B,GAAGlB,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpD;"}
1
+ {"version":3,"file":"TableStaticHeaderCell.js","sources":["../../../../../src/components/table/render/header/TableStaticHeaderCell.tsx"],"sourcesContent":["import classNames from '../../../../utils/classNames';\nimport type { TableRowData } from '../../Table.types';\nimport TableHeaderCellContent from './TableHeaderCellContent';\nimport TableHeaderCellResizeHandle from './TableHeaderCellResizeHandle';\nimport { resolveAriaSort } from './resolveAriaSort';\nimport { resolveHeaderCellClassName } from './resolveHeaderCellClassName';\nimport { resolveHeaderCellStyle } from './resolveHeaderCellStyle';\nimport type { SharedHeaderCellProps } from './TableHeader.types';\nimport { resolveAriaColIndex, resolveAriaSpan } from '../../shared/resolveTableAria';\n\nconst TableStaticHeaderCell = (props: SharedHeaderCellProps<TableRowData>) => {\n const {\n column,\n header,\n hideWhileDragging,\n htmlAttributes,\n isResizable,\n showSelectionColumn,\n stickyLeftColumnCount,\n stickyRightColumnCount,\n } = props;\n\n const stickyLeftColumns = stickyLeftColumnCount ?? 0;\n const stickyRightColumns = stickyRightColumnCount ?? 0;\n\n return (\n <div\n {...htmlAttributes}\n className={classNames(\n resolveHeaderCellClassName(column, header, {\n isResizable,\n isStickyLeftColumn: stickyLeftColumns > 0 && column.columnStart <= stickyLeftColumns,\n isStickyRightColumn:\n stickyRightColumns > 0 &&\n column.columnStart + column.colSpan - 1 > header.totalColumnCount - stickyRightColumns,\n }),\n hideWhileDragging && 'table-head-cell-drag-placeholder'\n )}\n data-column={column.columnKey ?? String(column.key)}\n role='columnheader'\n aria-colindex={resolveAriaColIndex(column.columnStart, showSelectionColumn)}\n aria-colspan={resolveAriaSpan(column.colSpan)}\n aria-rowindex={column.rowStart}\n aria-rowspan={resolveAriaSpan(column.rowSpan)}\n aria-sort={resolveAriaSort(column)}\n style={resolveHeaderCellStyle(column, showSelectionColumn)}\n >\n <TableHeaderCellContent {...props} />\n <TableHeaderCellResizeHandle {...props} />\n </div>\n );\n};\n\nexport default TableStaticHeaderCell;\n"],"names":["TableStaticHeaderCell","props","column","header","hideWhileDragging","htmlAttributes","isResizable","showSelectionColumn","stickyLeftColumnCount","stickyRightColumnCount","stickyLeftColumns","stickyRightColumns","jsxs","classNames","resolveHeaderCellClassName","resolveAriaColIndex","resolveAriaSpan","resolveAriaSort","resolveHeaderCellStyle","jsx","TableHeaderCellContent","TableHeaderCellResizeHandle"],"mappings":";;;;;;;;AAUA,MAAMA,IAAwB,CAACC,MAA+C;AAC1E,QAAM;AAAA,IACF,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,wBAAAC;AAAA,EAAA,IACAR,GAEES,IAAoBF,KAAyB,GAC7CG,IAAqBF,KAA0B;AAErD,SACI,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGP;AAAA,MACJ,WAAWQ;AAAA,QACPC,EAA2BZ,GAAQC,GAAQ;AAAA,UACvC,aAAAG;AAAA,UACA,oBAAoBI,IAAoB,KAAKR,EAAO,eAAeQ;AAAA,UACnE,qBACIC,IAAqB,KACrBT,EAAO,cAAcA,EAAO,UAAU,IAAIC,EAAO,mBAAmBQ;AAAA,QAAA,CAC3E;AAAA,QACDP,KAAqB;AAAA,MAAA;AAAA,MAEzB,eAAaF,EAAO,aAAa,OAAOA,EAAO,GAAG;AAAA,MAClD,MAAK;AAAA,MACL,iBAAea,EAAoBb,EAAO,aAAaK,CAAmB;AAAA,MAC1E,gBAAcS,EAAgBd,EAAO,OAAO;AAAA,MAC5C,iBAAeA,EAAO;AAAA,MACtB,gBAAcc,EAAgBd,EAAO,OAAO;AAAA,MAC5C,aAAWe,EAAgBf,CAAM;AAAA,MACjC,OAAOgB,EAAuBhB,GAAQK,CAAmB;AAAA,MAEzD,UAAA;AAAA,QAAA,gBAAAY,EAACC,GAAA,EAAwB,GAAGnB,GAAO;AAAA,QACnC,gBAAAkB,EAACE,GAAA,EAA6B,GAAGpB,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpD;"}
@@ -9,4 +9,5 @@ export declare const resolveHeaderCellClassName: (column: HeaderColumn<TableRowD
9
9
  isDragging?: boolean;
10
10
  isResizable: boolean;
11
11
  isStickyLeftColumn?: boolean;
12
+ isStickyRightColumn?: boolean;
12
13
  }) => string;