@osdk/react-components 0.1.0-beta.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +2 -5
- package/build/browser/base-components/checkbox/Checkbox.js +32 -27
- package/build/browser/object-table/CellContextMenu.js +20 -23
- package/build/browser/object-table/LoadingCell.js +38 -0
- package/build/browser/object-table/LoadingCell.js.map +1 -0
- package/build/browser/object-table/LoadingRow.js +69 -0
- package/build/browser/object-table/LoadingRow.js.map +1 -0
- package/build/browser/object-table/LoadingStateTable.js +395 -0
- package/build/browser/object-table/LoadingStateTable.js.map +1 -0
- package/build/browser/object-table/NonIdealState.js +25 -0
- package/build/browser/object-table/NonIdealState.js.map +1 -0
- package/build/browser/object-table/ObjectTable.js +6 -5
- package/build/browser/object-table/ObjectTable.js.map +1 -1
- package/build/browser/object-table/ObjectTableApi.js.map +1 -1
- package/build/browser/object-table/Table.js +948 -45
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/TableBody.js +269 -34
- package/build/browser/object-table/TableBody.js.map +1 -1
- package/build/browser/object-table/TableCell.js +111 -31
- package/build/browser/object-table/TableCell.js.map +1 -1
- package/build/browser/object-table/TableHeader.js +215 -38
- package/build/browser/object-table/TableHeaderContent.js +18 -21
- package/build/browser/object-table/TableHeaderContent.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.js +80 -66
- package/build/browser/object-table/TableRow.js +144 -26
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +18 -20
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnDefs.js +6 -2
- package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnPinning.js.map +1 -1
- package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
- package/build/browser/object-table/hooks/useObjectTableData.js +7 -6
- package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
- package/build/browser/object-table/hooks/useTableSorting.js.map +1 -1
- package/build/browser/object-table/utils/getRowId.js.map +1 -1
- package/build/cjs/public/experimental.cjs +435 -264
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +114 -56
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +8 -11
- package/build/esm/base-components/checkbox/Checkbox.module.css +10 -3
- package/build/esm/object-table/CellContextMenu.module.css +1 -1
- package/build/{browser/object-table/CellContextMenu.module.css → esm/object-table/LoadingCell.js} +16 -3
- package/build/esm/object-table/LoadingCell.js.map +1 -0
- package/build/esm/object-table/LoadingCell.module.css +48 -0
- package/build/esm/object-table/LoadingRow.js +43 -0
- package/build/esm/object-table/LoadingRow.js.map +1 -0
- package/build/esm/object-table/LoadingStateTable.js +101 -0
- package/build/esm/object-table/LoadingStateTable.js.map +1 -0
- package/build/{browser/object-table/TableHeaderContent.module.css → esm/object-table/NonIdealState.js} +11 -13
- package/build/esm/object-table/NonIdealState.js.map +1 -0
- package/build/{browser/object-table/Table.module.css → esm/object-table/NonIdealState.module.css} +10 -4
- package/build/esm/object-table/ObjectTable.js +6 -5
- package/build/esm/object-table/ObjectTable.js.map +1 -1
- package/build/esm/object-table/ObjectTableApi.js.map +1 -1
- package/build/esm/object-table/Table.js +34 -13
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/Table.module.css +2 -2
- package/build/esm/object-table/TableBody.js +13 -2
- package/build/esm/object-table/TableBody.js.map +1 -1
- package/build/esm/object-table/TableCell.js.map +1 -1
- package/build/esm/object-table/TableCell.module.css +7 -8
- package/build/esm/object-table/TableHeader.module.css +15 -9
- package/build/esm/object-table/TableHeaderContent.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.module.css +31 -26
- package/build/esm/object-table/TableRow.module.css +1 -1
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +18 -20
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnDefs.js +6 -2
- package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnPinning.js.map +1 -1
- package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
- package/build/esm/object-table/hooks/useObjectTableData.js +7 -6
- package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
- package/build/esm/object-table/hooks/useTableSorting.js.map +1 -1
- package/build/esm/object-table/utils/getRowId.js.map +1 -1
- package/build/types/object-table/LoadingCell.d.ts +4 -0
- package/build/types/object-table/LoadingCell.d.ts.map +1 -0
- package/build/types/object-table/LoadingRow.d.ts +11 -0
- package/build/types/object-table/LoadingRow.d.ts.map +1 -0
- package/build/types/object-table/LoadingStateTable.d.ts +11 -0
- package/build/types/object-table/LoadingStateTable.d.ts.map +1 -0
- package/build/types/object-table/NonIdealState.d.ts +6 -0
- package/build/types/object-table/NonIdealState.d.ts.map +1 -0
- package/build/types/object-table/ObjectTable.d.ts +4 -4
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +4 -8
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/Table.d.ts +2 -1
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableBody.d.ts +4 -2
- package/build/types/object-table/TableBody.d.ts.map +1 -1
- package/build/types/object-table/TableHeaderContent.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnDefs.d.ts +3 -3
- package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnPinning.d.ts +3 -3
- package/build/types/object-table/hooks/useColumnPinning.d.ts.map +1 -1
- package/build/types/object-table/hooks/useColumnVisibility.d.ts +3 -3
- package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
- package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -6
- package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
- package/build/types/object-table/hooks/useRowSelection.d.ts +3 -3
- package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
- package/build/types/object-table/hooks/useSelectionColumn.d.ts +2 -2
- package/build/types/object-table/hooks/useSelectionColumn.d.ts.map +1 -1
- package/build/types/object-table/hooks/useTableSorting.d.ts +3 -3
- package/build/types/object-table/hooks/useTableSorting.d.ts.map +1 -1
- package/build/types/object-table/utils/getRowId.d.ts +3 -3
- package/build/types/object-table/utils/getRowId.d.ts.map +1 -1
- package/package.json +6 -6
- package/build/browser/base-components/checkbox/Checkbox.module.css +0 -72
- package/build/browser/object-table/TableBody.module.css +0 -20
- package/build/browser/object-table/TableCell.module.css +0 -63
- package/build/browser/object-table/TableHeader.module.css +0 -95
- package/build/browser/object-table/TableHeaderWithPopover.module.css +0 -105
- package/build/browser/object-table/TableRow.module.css +0 -60
|
@@ -1,60 +1,237 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
1
|
+
// build/browser/object-table/TableHeader.js
|
|
2
|
+
import React3 from "react";
|
|
16
3
|
|
|
4
|
+
// build/browser/object-table/TableHeader.module.css
|
|
5
|
+
var css = '/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkTableHeader {\n display: grid;\n position: sticky;\n top: 0;\n z-index: var(--osdk-surface-z-index-1);\n background-color: var(--osdk-table-header-bg);\n}\n\n.osdkTableHeader[data-resizing="true"] {\n cursor: col-resize;\n user-select: none;\n}\n\n.osdkTableHeaderRow {\n display: flex;\n}\n\n.osdkTableHeaderCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-weight: var(--osdk-table-header-fontWeight);\n font-size: var(--osdk-table-header-fontSize);\n color: var(--osdk-table-header-color);\n border-top: var(--osdk-table-border);\n border-right: var(--osdk-table-header-divider);\n background-color: inherit;\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableHeaderCell[data-pinned="left"],\n.osdkTableHeaderCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-2);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableHeaderCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableHeaderCell[data-pinned="right"]:not(\n :has(~ [data-pinned="right"]):nth-child(n + 2)\n ) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableHeaderCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableHeaderResizer {\n background: none;\n cursor: col-resize;\n height: 100%;\n position: absolute;\n right: calc(-1 * var(--osdk-table-border-width));\n top: 0;\n touch-action: none;\n width: 3px;\n z-index: var(--osdk-surface-z-index-2);\n\n &:hover {\n background: var(--osdk-intent-primary-hover);\n }\n\n &:active {\n background: var(--osdk-intent-primary-active);\n }\n}\n\n.osdkLoadingHeaderCell {\n height: var(--osdk-table-header-fontSize);\n flex: 1;\n}\n';
|
|
6
|
+
if (typeof document !== "undefined") {
|
|
7
|
+
const style = document.createElement("style");
|
|
8
|
+
style.textContent = css;
|
|
9
|
+
document.head.appendChild(style);
|
|
10
|
+
}
|
|
11
|
+
var TableHeader_default = { "osdkTableHeader": "osdkTableHeader", "osdkTableHeaderRow": "osdkTableHeaderRow", "osdkTableHeaderCell": "osdkTableHeaderCell", "osdkTableHeaderResizer": "osdkTableHeaderResizer", "osdkLoadingHeaderCell": "osdkLoadingHeaderCell" };
|
|
12
|
+
|
|
13
|
+
// build/browser/object-table/TableHeaderContent.js
|
|
14
|
+
import { flexRender } from "@tanstack/react-table";
|
|
17
15
|
import React from "react";
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
|
|
17
|
+
// build/browser/object-table/TableHeaderContent.module.css
|
|
18
|
+
var css2 = '/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkHeaderContent {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.osdkHeaderContent:has([role="checkbox"]) {\n display: flex;\n justify-content: center;\n}\n';
|
|
19
|
+
if (typeof document !== "undefined") {
|
|
20
|
+
const style = document.createElement("style");
|
|
21
|
+
style.textContent = css2;
|
|
22
|
+
document.head.appendChild(style);
|
|
23
|
+
}
|
|
24
|
+
var TableHeaderContent_default = { "osdkHeaderContent": "osdkHeaderContent" };
|
|
25
|
+
|
|
26
|
+
// build/browser/object-table/TableHeaderContent.js
|
|
27
|
+
function TableHeaderContent({
|
|
28
|
+
header
|
|
29
|
+
}) {
|
|
30
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
31
|
+
className: TableHeaderContent_default.osdkHeaderContent
|
|
32
|
+
}, flexRender(header.column.columnDef.header, header.getContext()));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// build/browser/object-table/TableHeaderWithPopover.js
|
|
36
|
+
import { Menu } from "@base-ui/react/menu";
|
|
37
|
+
import { ChevronDown, Pin, Remove, SortAlphabetical, SortAlphabeticalDesc, Unpin, VerticalDistribution } from "@blueprintjs/icons";
|
|
38
|
+
import classNames from "classnames";
|
|
39
|
+
import React2, { useCallback, useState } from "react";
|
|
40
|
+
|
|
41
|
+
// build/browser/object-table/TableHeaderWithPopover.module.css
|
|
42
|
+
var css3 = '/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkCenterContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.osdkContentGap {\n display: flex;\n gap: var(--osdk-surface-spacing);\n}\n\n.osdkHeaderContainer {\n justify-content: space-between;\n flex: 1;\n min-width: 0;\n align-self: stretch;\n}\n\n.osdkHeaderContentLeft {\n min-width: 0;\n flex-shrink: 1;\n}\n\n.osdkHeaderContentRight {\n flex-shrink: 0;\n}\n\n.osdkHeaderPopoverTrigger {\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n border-radius: var(--osdk-surface-border-radius);\n color: var(--osdk-intent-default-foreground);\n user-select: none;\n outline: none;\n\n &:hover {\n background-color: var(--osdk-intent-default-hover);\n }\n\n &[data-popup-open] {\n background-color: var(--osdk-intent-primary-rest);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-visible-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.osdkHeaderIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n}\n\n.osdkHeaderPopup {\n box-sizing: border-box;\n padding: var(--osdk-surface-spacing);\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n background-color: var(--osdk-surface-background-color-default);\n color: var(--osdk-typography-color-default-rest);\n box-shadow: var(--osdk-surface-shadow-2);\n font-size: var(--osdk-typography-size-body-medium);\n outline: none;\n}\n\n.osdkHeaderMenuItem {\n justify-content: flex-start;\n padding: var(--osdk-surface-spacing);\n cursor: pointer;\n}\n\n.osdkHeaderMenuItem:hover {\n outline: none;\n background-color: var(--osdk-surface-background-color-default-hover);\n border-radius: var(--osdk-surface-border-radius);\n}\n\n.osdkHeaderActiveMenuItem {\n background-color: var(--osdk-intent-primary-rest);\n color: var(--osdk-intent-primary-foreground);\n}\n\n.osdkHeaderActiveMenuItem:hover {\n background-color: var(--osdk-intent-primary-hover);\n}\n\n.osdkHeaderActiveMenuItem:active {\n background-color: var(--osdk-intent-primary-active);\n}\n';
|
|
43
|
+
if (typeof document !== "undefined") {
|
|
44
|
+
const style = document.createElement("style");
|
|
45
|
+
style.textContent = css3;
|
|
46
|
+
document.head.appendChild(style);
|
|
47
|
+
}
|
|
48
|
+
var TableHeaderWithPopover_default = { "osdkCenterContainer": "osdkCenterContainer", "osdkContentGap": "osdkContentGap", "osdkHeaderContainer": "osdkHeaderContainer", "osdkHeaderContentLeft": "osdkHeaderContentLeft", "osdkHeaderContentRight": "osdkHeaderContentRight", "osdkHeaderPopoverTrigger": "osdkHeaderPopoverTrigger", "osdkHeaderIcon": "osdkHeaderIcon", "osdkHeaderPopup": "osdkHeaderPopup", "osdkHeaderMenuItem": "osdkHeaderMenuItem", "osdkHeaderActiveMenuItem": "osdkHeaderActiveMenuItem" };
|
|
49
|
+
|
|
50
|
+
// build/browser/object-table/TableHeaderWithPopover.js
|
|
51
|
+
function HeaderMenuItem({
|
|
52
|
+
onClick,
|
|
53
|
+
icon: Icon,
|
|
54
|
+
label,
|
|
55
|
+
active = false
|
|
25
56
|
}) {
|
|
26
|
-
|
|
57
|
+
return /* @__PURE__ */ React2.createElement(Menu.Item, {
|
|
58
|
+
closeOnClick: true,
|
|
59
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderMenuItem, active && TableHeaderWithPopover_default.osdkHeaderActiveMenuItem),
|
|
60
|
+
onClick
|
|
61
|
+
}, /* @__PURE__ */ React2.createElement(Icon, {
|
|
62
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
63
|
+
color: "currentColor"
|
|
64
|
+
}), /* @__PURE__ */ React2.createElement("span", null, label));
|
|
65
|
+
}
|
|
66
|
+
function TableHeaderWithPopover({
|
|
67
|
+
header,
|
|
68
|
+
isColumnPinned,
|
|
69
|
+
setColumnPinning,
|
|
70
|
+
onSortChange,
|
|
71
|
+
onResetSize
|
|
72
|
+
}) {
|
|
73
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
74
|
+
const handlePinLeft = useCallback(() => {
|
|
75
|
+
setColumnPinning((prev) => {
|
|
76
|
+
return {
|
|
77
|
+
left: [...prev.left || [], header.column.id],
|
|
78
|
+
right: prev.right?.filter((id) => id !== header.column.id) || []
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
}, [header.column.id, setColumnPinning]);
|
|
82
|
+
const handleUnpin = useCallback(() => {
|
|
83
|
+
setColumnPinning((prev) => {
|
|
84
|
+
return {
|
|
85
|
+
left: prev.left?.filter((id) => id !== header.column.id) || [],
|
|
86
|
+
right: prev.right?.filter((id) => id !== header.column.id) || []
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
}, [header.column.id, setColumnPinning]);
|
|
90
|
+
const handleSortAscending = useCallback(() => {
|
|
91
|
+
header.column.toggleSorting(false);
|
|
92
|
+
onSortChange?.([{
|
|
93
|
+
id: header.column.id,
|
|
94
|
+
desc: false
|
|
95
|
+
}]);
|
|
96
|
+
}, [header.column, onSortChange]);
|
|
97
|
+
const handleSortDescending = useCallback(() => {
|
|
98
|
+
header.column.toggleSorting(true);
|
|
99
|
+
onSortChange?.([{
|
|
100
|
+
id: header.column.id,
|
|
101
|
+
desc: true
|
|
102
|
+
}]);
|
|
103
|
+
}, [header.column, onSortChange]);
|
|
104
|
+
const handleClearAllSorts = useCallback(() => {
|
|
105
|
+
header.column.clearSorting();
|
|
106
|
+
onSortChange?.([]);
|
|
107
|
+
}, [header.column, onSortChange]);
|
|
108
|
+
const handleResetSize = useCallback(() => {
|
|
109
|
+
header.column.resetSize();
|
|
110
|
+
if (onResetSize) {
|
|
111
|
+
onResetSize();
|
|
112
|
+
}
|
|
113
|
+
}, [header.column, onResetSize]);
|
|
114
|
+
const handleInteraction = useCallback((e) => {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
setIsOpen((prev) => !prev);
|
|
117
|
+
}, []);
|
|
118
|
+
const isSorted = header.column.getIsSorted();
|
|
119
|
+
const isSortable = header.column.getCanSort();
|
|
120
|
+
return /* @__PURE__ */ React2.createElement(Menu.Root, {
|
|
121
|
+
open: isOpen,
|
|
122
|
+
onOpenChange: setIsOpen
|
|
123
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
124
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContainer),
|
|
125
|
+
onContextMenu: handleInteraction
|
|
126
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
127
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentLeft)
|
|
128
|
+
}, isColumnPinned && /* @__PURE__ */ React2.createElement(Pin, {
|
|
129
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
130
|
+
color: "currentColor"
|
|
131
|
+
}), /* @__PURE__ */ React2.createElement(TableHeaderContent, {
|
|
132
|
+
header
|
|
133
|
+
})), /* @__PURE__ */ React2.createElement("div", {
|
|
134
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentRight)
|
|
135
|
+
}, isSorted && /* @__PURE__ */ React2.createElement("div", {
|
|
136
|
+
className: TableHeaderWithPopover_default.osdkCenterContainer
|
|
137
|
+
}, isSorted === "asc" ? /* @__PURE__ */ React2.createElement(SortAlphabetical, {
|
|
138
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
139
|
+
color: "currentColor"
|
|
140
|
+
}) : /* @__PURE__ */ React2.createElement(SortAlphabeticalDesc, {
|
|
141
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
142
|
+
color: "currentColor"
|
|
143
|
+
})), /* @__PURE__ */ React2.createElement(Menu.Trigger, {
|
|
144
|
+
"aria-label": `Open header menu for column with id=${header.column.id}`,
|
|
145
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkHeaderPopoverTrigger)
|
|
146
|
+
}, /* @__PURE__ */ React2.createElement(ChevronDown, {
|
|
147
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon
|
|
148
|
+
}))), /* @__PURE__ */ React2.createElement(Menu.Portal, {
|
|
149
|
+
container: document.body
|
|
150
|
+
}, /* @__PURE__ */ React2.createElement(Menu.Positioner, {
|
|
151
|
+
sideOffset: 4
|
|
152
|
+
}, /* @__PURE__ */ React2.createElement(Menu.Popup, {
|
|
153
|
+
className: TableHeaderWithPopover_default.osdkHeaderPopup
|
|
154
|
+
}, !isColumnPinned && /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
155
|
+
onClick: handlePinLeft,
|
|
156
|
+
icon: Pin,
|
|
157
|
+
label: "Pin column"
|
|
158
|
+
}), isColumnPinned && /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
159
|
+
onClick: handleUnpin,
|
|
160
|
+
icon: Unpin,
|
|
161
|
+
label: "Unpin Column",
|
|
162
|
+
active: true
|
|
163
|
+
}), isSortable && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
164
|
+
onClick: handleSortAscending,
|
|
165
|
+
icon: SortAlphabetical,
|
|
166
|
+
label: "Sort ascending",
|
|
167
|
+
active: isSorted === "asc"
|
|
168
|
+
}), /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
169
|
+
onClick: handleSortDescending,
|
|
170
|
+
icon: SortAlphabeticalDesc,
|
|
171
|
+
label: "Sort descending",
|
|
172
|
+
active: isSorted === "desc"
|
|
173
|
+
})), !!isSorted && /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
174
|
+
onClick: handleClearAllSorts,
|
|
175
|
+
icon: Remove,
|
|
176
|
+
label: "Clear all sorts"
|
|
177
|
+
}), /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
178
|
+
onClick: handleResetSize,
|
|
179
|
+
icon: VerticalDistribution,
|
|
180
|
+
label: "Reset Column Size"
|
|
181
|
+
}))))));
|
|
182
|
+
}
|
|
27
183
|
|
|
184
|
+
// build/browser/object-table/utils/constants.js
|
|
185
|
+
var SELECTION_COLUMN_ID = "__selection__";
|
|
186
|
+
|
|
187
|
+
// build/browser/object-table/utils/getColumnPinningStyles.js
|
|
188
|
+
function getColumnPinningStyles(column) {
|
|
189
|
+
const isPinned = column.getIsPinned();
|
|
190
|
+
return {
|
|
191
|
+
columnStyles: {
|
|
192
|
+
left: isPinned === "left" ? `${column.getStart("left")}px` : void 0,
|
|
193
|
+
right: isPinned === "right" ? `${column.getAfter("right")}px` : void 0,
|
|
194
|
+
width: column.getSize()
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// build/browser/object-table/TableHeader.js
|
|
200
|
+
function TableHeader({
|
|
201
|
+
table
|
|
202
|
+
}) {
|
|
28
203
|
const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;
|
|
29
|
-
return
|
|
30
|
-
className:
|
|
204
|
+
return /* @__PURE__ */ React3.createElement("thead", {
|
|
205
|
+
className: TableHeader_default.osdkTableHeader,
|
|
31
206
|
"data-resizing": isResizing
|
|
32
|
-
}, table.getHeaderGroups().map(headerGroup =>
|
|
207
|
+
}, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React3.createElement("tr", {
|
|
33
208
|
key: headerGroup.id,
|
|
34
|
-
className:
|
|
35
|
-
}, headerGroup.headers.map(header => {
|
|
209
|
+
className: TableHeader_default.osdkTableHeaderRow
|
|
210
|
+
}, headerGroup.headers.map((header) => {
|
|
36
211
|
const {
|
|
37
212
|
columnStyles
|
|
38
213
|
} = getColumnPinningStyles(header.column);
|
|
39
214
|
const isColumnPinned = header.column.getIsPinned();
|
|
40
215
|
const isSelectColumn = header.id === SELECTION_COLUMN_ID;
|
|
41
|
-
return
|
|
216
|
+
return /* @__PURE__ */ React3.createElement("th", {
|
|
42
217
|
key: header.id,
|
|
43
218
|
"data-pinned": header.column.getIsPinned(),
|
|
44
|
-
className:
|
|
219
|
+
className: TableHeader_default.osdkTableHeaderCell,
|
|
45
220
|
style: columnStyles
|
|
46
|
-
}, header.isPlaceholder ? null : isSelectColumn ?
|
|
47
|
-
header
|
|
48
|
-
}) :
|
|
49
|
-
header
|
|
50
|
-
isColumnPinned
|
|
221
|
+
}, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */ React3.createElement(TableHeaderContent, {
|
|
222
|
+
header
|
|
223
|
+
}) : /* @__PURE__ */ React3.createElement(TableHeaderWithPopover, {
|
|
224
|
+
header,
|
|
225
|
+
isColumnPinned,
|
|
51
226
|
setColumnPinning: table.setColumnPinning
|
|
52
|
-
}), header.column.getCanResize() &&
|
|
53
|
-
className:
|
|
227
|
+
}), header.column.getCanResize() && /* @__PURE__ */ React3.createElement("div", {
|
|
228
|
+
className: TableHeader_default.osdkTableHeaderResizer,
|
|
54
229
|
onDoubleClick: () => header.column.resetSize(),
|
|
55
230
|
onMouseDown: header.getResizeHandler(),
|
|
56
231
|
onTouchStart: header.getResizeHandler()
|
|
57
232
|
}));
|
|
58
233
|
}))));
|
|
59
234
|
}
|
|
60
|
-
|
|
235
|
+
export {
|
|
236
|
+
TableHeader
|
|
237
|
+
};
|
|
@@ -1,27 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
1
|
+
// build/browser/object-table/TableHeaderContent.js
|
|
17
2
|
import { flexRender } from "@tanstack/react-table";
|
|
18
3
|
import React from "react";
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
|
|
5
|
+
// build/browser/object-table/TableHeaderContent.module.css
|
|
6
|
+
var css = '/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkHeaderContent {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.osdkHeaderContent:has([role="checkbox"]) {\n display: flex;\n justify-content: center;\n}\n';
|
|
7
|
+
if (typeof document !== "undefined") {
|
|
8
|
+
const style = document.createElement("style");
|
|
9
|
+
style.textContent = css;
|
|
10
|
+
document.head.appendChild(style);
|
|
11
|
+
}
|
|
12
|
+
var TableHeaderContent_default = { "osdkHeaderContent": "osdkHeaderContent" };
|
|
13
|
+
|
|
14
|
+
// build/browser/object-table/TableHeaderContent.js
|
|
15
|
+
function TableHeaderContent({
|
|
21
16
|
header
|
|
22
17
|
}) {
|
|
23
|
-
return
|
|
24
|
-
className:
|
|
18
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
19
|
+
className: TableHeaderContent_default.osdkHeaderContent
|
|
25
20
|
}, flexRender(header.column.columnDef.header, header.getContext()));
|
|
26
21
|
}
|
|
27
|
-
|
|
22
|
+
export {
|
|
23
|
+
TableHeaderContent
|
|
24
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderContent.js","names":["flexRender","React","styles","TableHeaderContent","header","createElement","className","osdkHeaderContent","column","columnDef","getContext"],"sources":["TableHeaderContent.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender, type Header, type RowData } from \"@tanstack/react-table\";\nimport React from \"react\";\nimport styles from \"./TableHeaderContent.module.css\";\n\ninterface TableHeaderContentProps<TData extends RowData> {\n header: Header<TData, unknown>;\n}\n\nexport function TableHeaderContent<TData extends RowData>(\n { header }: TableHeaderContentProps<TData>,\n): React.ReactElement {\n return (\n <div className={styles.osdkHeaderContent}>\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAmC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"TableHeaderContent.js","names":["flexRender","React","styles","TableHeaderContent","header","createElement","className","osdkHeaderContent","column","columnDef","getContext"],"sources":["TableHeaderContent.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { flexRender, type Header, type RowData } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\nimport React from \"react\";\nimport styles from \"./TableHeaderContent.module.css\";\n\ninterface TableHeaderContentProps<TData extends RowData> {\n header: Header<TData, unknown>;\n}\n\nexport function TableHeaderContent<TData extends RowData>(\n { header }: TableHeaderContentProps<TData>,\n): React.ReactElement {\n return (\n <div className={styles.osdkHeaderContent}>\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n ) as ReactNode}\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAmC,uBAAuB;AAE7E,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,iCAAiC;AAMpD,OAAO,SAASC,kBAAkBA,CAChC;EAAEC;AAAuC,CAAC,EACtB;EACpB,oBACEH,KAAA,CAAAI,aAAA;IAAKC,SAAS,EAAEJ,MAAM,CAACK;EAAkB,GACtCP,UAAU,CACTI,MAAM,CAACI,MAAM,CAACC,SAAS,CAACL,MAAM,EAC9BA,MAAM,CAACM,UAAU,CAAC,CACpB,CACG,CAAC;AAEV","ignoreList":[]}
|
|
@@ -1,41 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
1
|
+
// build/browser/object-table/TableHeaderWithPopover.js
|
|
17
2
|
import { Menu } from "@base-ui/react/menu";
|
|
18
3
|
import { ChevronDown, Pin, Remove, SortAlphabetical, SortAlphabeticalDesc, Unpin, VerticalDistribution } from "@blueprintjs/icons";
|
|
19
4
|
import classNames from "classnames";
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
|
|
5
|
+
import React2, { useCallback, useState } from "react";
|
|
6
|
+
|
|
7
|
+
// build/browser/object-table/TableHeaderContent.js
|
|
8
|
+
import { flexRender } from "@tanstack/react-table";
|
|
9
|
+
import React from "react";
|
|
10
|
+
var css = '/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkHeaderContent {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.osdkHeaderContent:has([role="checkbox"]) {\n display: flex;\n justify-content: center;\n}\n';
|
|
11
|
+
if (typeof document !== "undefined") {
|
|
12
|
+
const style = document.createElement("style");
|
|
13
|
+
style.textContent = css;
|
|
14
|
+
document.head.appendChild(style);
|
|
15
|
+
}
|
|
16
|
+
var TableHeaderContent_default = { "osdkHeaderContent": "osdkHeaderContent" };
|
|
17
|
+
function TableHeaderContent({
|
|
18
|
+
header
|
|
19
|
+
}) {
|
|
20
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
21
|
+
className: TableHeaderContent_default.osdkHeaderContent
|
|
22
|
+
}, flexRender(header.column.columnDef.header, header.getContext()));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// build/browser/object-table/TableHeaderWithPopover.module.css
|
|
26
|
+
var css2 = '/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.osdkCenterContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.osdkContentGap {\n display: flex;\n gap: var(--osdk-surface-spacing);\n}\n\n.osdkHeaderContainer {\n justify-content: space-between;\n flex: 1;\n min-width: 0;\n align-self: stretch;\n}\n\n.osdkHeaderContentLeft {\n min-width: 0;\n flex-shrink: 1;\n}\n\n.osdkHeaderContentRight {\n flex-shrink: 0;\n}\n\n.osdkHeaderPopoverTrigger {\n padding: 0;\n flex-shrink: 0;\n flex-grow: 0;\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n border-radius: var(--osdk-surface-border-radius);\n color: var(--osdk-intent-default-foreground);\n user-select: none;\n outline: none;\n\n &:hover {\n background-color: var(--osdk-intent-default-hover);\n }\n\n &[data-popup-open] {\n background-color: var(--osdk-intent-primary-rest);\n }\n\n &:focus-visible {\n outline: var(--osdk-focus-visible-outline);\n outline-offset: var(--osdk-focus-visible-outline-offset);\n }\n}\n\n.osdkHeaderIcon {\n width: var(--osdk-iconography-size-small);\n height: var(--osdk-iconography-size-small);\n}\n\n.osdkHeaderPopup {\n box-sizing: border-box;\n padding: var(--osdk-surface-spacing);\n border-radius: var(--osdk-surface-border-radius);\n border: var(--osdk-surface-border-width) solid\n var(--osdk-surface-border-color-default);\n background-color: var(--osdk-surface-background-color-default);\n color: var(--osdk-typography-color-default-rest);\n box-shadow: var(--osdk-surface-shadow-2);\n font-size: var(--osdk-typography-size-body-medium);\n outline: none;\n}\n\n.osdkHeaderMenuItem {\n justify-content: flex-start;\n padding: var(--osdk-surface-spacing);\n cursor: pointer;\n}\n\n.osdkHeaderMenuItem:hover {\n outline: none;\n background-color: var(--osdk-surface-background-color-default-hover);\n border-radius: var(--osdk-surface-border-radius);\n}\n\n.osdkHeaderActiveMenuItem {\n background-color: var(--osdk-intent-primary-rest);\n color: var(--osdk-intent-primary-foreground);\n}\n\n.osdkHeaderActiveMenuItem:hover {\n background-color: var(--osdk-intent-primary-hover);\n}\n\n.osdkHeaderActiveMenuItem:active {\n background-color: var(--osdk-intent-primary-active);\n}\n';
|
|
27
|
+
if (typeof document !== "undefined") {
|
|
28
|
+
const style = document.createElement("style");
|
|
29
|
+
style.textContent = css2;
|
|
30
|
+
document.head.appendChild(style);
|
|
31
|
+
}
|
|
32
|
+
var TableHeaderWithPopover_default = { "osdkCenterContainer": "osdkCenterContainer", "osdkContentGap": "osdkContentGap", "osdkHeaderContainer": "osdkHeaderContainer", "osdkHeaderContentLeft": "osdkHeaderContentLeft", "osdkHeaderContentRight": "osdkHeaderContentRight", "osdkHeaderPopoverTrigger": "osdkHeaderPopoverTrigger", "osdkHeaderIcon": "osdkHeaderIcon", "osdkHeaderPopup": "osdkHeaderPopup", "osdkHeaderMenuItem": "osdkHeaderMenuItem", "osdkHeaderActiveMenuItem": "osdkHeaderActiveMenuItem" };
|
|
33
|
+
|
|
34
|
+
// build/browser/object-table/TableHeaderWithPopover.js
|
|
23
35
|
function HeaderMenuItem({
|
|
24
36
|
onClick,
|
|
25
37
|
icon: Icon,
|
|
26
38
|
label,
|
|
27
39
|
active = false
|
|
28
40
|
}) {
|
|
29
|
-
return
|
|
41
|
+
return /* @__PURE__ */ React2.createElement(Menu.Item, {
|
|
30
42
|
closeOnClick: true,
|
|
31
|
-
className: classNames(
|
|
32
|
-
onClick
|
|
33
|
-
},
|
|
34
|
-
className:
|
|
43
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderMenuItem, active && TableHeaderWithPopover_default.osdkHeaderActiveMenuItem),
|
|
44
|
+
onClick
|
|
45
|
+
}, /* @__PURE__ */ React2.createElement(Icon, {
|
|
46
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
35
47
|
color: "currentColor"
|
|
36
|
-
}),
|
|
48
|
+
}), /* @__PURE__ */ React2.createElement("span", null, label));
|
|
37
49
|
}
|
|
38
|
-
|
|
50
|
+
function TableHeaderWithPopover({
|
|
39
51
|
header,
|
|
40
52
|
isColumnPinned,
|
|
41
53
|
setColumnPinning,
|
|
@@ -44,18 +56,18 @@ export function TableHeaderWithPopover({
|
|
|
44
56
|
}) {
|
|
45
57
|
const [isOpen, setIsOpen] = useState(false);
|
|
46
58
|
const handlePinLeft = useCallback(() => {
|
|
47
|
-
setColumnPinning(prev => {
|
|
59
|
+
setColumnPinning((prev) => {
|
|
48
60
|
return {
|
|
49
|
-
left: [...
|
|
50
|
-
right: prev.right?.filter(id => id !== header.column.id) || []
|
|
61
|
+
left: [...prev.left || [], header.column.id],
|
|
62
|
+
right: prev.right?.filter((id) => id !== header.column.id) || []
|
|
51
63
|
};
|
|
52
64
|
});
|
|
53
65
|
}, [header.column.id, setColumnPinning]);
|
|
54
66
|
const handleUnpin = useCallback(() => {
|
|
55
|
-
setColumnPinning(prev => {
|
|
67
|
+
setColumnPinning((prev) => {
|
|
56
68
|
return {
|
|
57
|
-
left: prev.left?.filter(id => id !== header.column.id) || [],
|
|
58
|
-
right: prev.right?.filter(id => id !== header.column.id) || []
|
|
69
|
+
left: prev.left?.filter((id) => id !== header.column.id) || [],
|
|
70
|
+
right: prev.right?.filter((id) => id !== header.column.id) || []
|
|
59
71
|
};
|
|
60
72
|
});
|
|
61
73
|
}, [header.column.id, setColumnPinning]);
|
|
@@ -83,73 +95,75 @@ export function TableHeaderWithPopover({
|
|
|
83
95
|
onResetSize();
|
|
84
96
|
}
|
|
85
97
|
}, [header.column, onResetSize]);
|
|
86
|
-
const handleInteraction = useCallback(e => {
|
|
98
|
+
const handleInteraction = useCallback((e) => {
|
|
87
99
|
e.preventDefault();
|
|
88
|
-
setIsOpen(prev => !prev);
|
|
100
|
+
setIsOpen((prev) => !prev);
|
|
89
101
|
}, []);
|
|
90
102
|
const isSorted = header.column.getIsSorted();
|
|
91
103
|
const isSortable = header.column.getCanSort();
|
|
92
|
-
return
|
|
104
|
+
return /* @__PURE__ */ React2.createElement(Menu.Root, {
|
|
93
105
|
open: isOpen,
|
|
94
106
|
onOpenChange: setIsOpen
|
|
95
|
-
},
|
|
96
|
-
className: classNames(
|
|
107
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
108
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContainer),
|
|
97
109
|
onContextMenu: handleInteraction
|
|
98
|
-
},
|
|
99
|
-
className: classNames(
|
|
100
|
-
}, isColumnPinned &&
|
|
101
|
-
className:
|
|
110
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
111
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentLeft)
|
|
112
|
+
}, isColumnPinned && /* @__PURE__ */ React2.createElement(Pin, {
|
|
113
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
102
114
|
color: "currentColor"
|
|
103
|
-
}),
|
|
104
|
-
header
|
|
105
|
-
})),
|
|
106
|
-
className: classNames(
|
|
107
|
-
}, isSorted &&
|
|
108
|
-
className:
|
|
109
|
-
}, isSorted === "asc" ?
|
|
110
|
-
className:
|
|
115
|
+
}), /* @__PURE__ */ React2.createElement(TableHeaderContent, {
|
|
116
|
+
header
|
|
117
|
+
})), /* @__PURE__ */ React2.createElement("div", {
|
|
118
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentRight)
|
|
119
|
+
}, isSorted && /* @__PURE__ */ React2.createElement("div", {
|
|
120
|
+
className: TableHeaderWithPopover_default.osdkCenterContainer
|
|
121
|
+
}, isSorted === "asc" ? /* @__PURE__ */ React2.createElement(SortAlphabetical, {
|
|
122
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
111
123
|
color: "currentColor"
|
|
112
|
-
}) :
|
|
113
|
-
className:
|
|
124
|
+
}) : /* @__PURE__ */ React2.createElement(SortAlphabeticalDesc, {
|
|
125
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
114
126
|
color: "currentColor"
|
|
115
|
-
})),
|
|
127
|
+
})), /* @__PURE__ */ React2.createElement(Menu.Trigger, {
|
|
116
128
|
"aria-label": `Open header menu for column with id=${header.column.id}`,
|
|
117
|
-
className: classNames(
|
|
118
|
-
},
|
|
119
|
-
className:
|
|
120
|
-
}))),
|
|
129
|
+
className: classNames(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkHeaderPopoverTrigger)
|
|
130
|
+
}, /* @__PURE__ */ React2.createElement(ChevronDown, {
|
|
131
|
+
className: TableHeaderWithPopover_default.osdkHeaderIcon
|
|
132
|
+
}))), /* @__PURE__ */ React2.createElement(Menu.Portal, {
|
|
121
133
|
container: document.body
|
|
122
|
-
},
|
|
134
|
+
}, /* @__PURE__ */ React2.createElement(Menu.Positioner, {
|
|
123
135
|
sideOffset: 4
|
|
124
|
-
},
|
|
125
|
-
className:
|
|
126
|
-
}, !isColumnPinned &&
|
|
136
|
+
}, /* @__PURE__ */ React2.createElement(Menu.Popup, {
|
|
137
|
+
className: TableHeaderWithPopover_default.osdkHeaderPopup
|
|
138
|
+
}, !isColumnPinned && /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
127
139
|
onClick: handlePinLeft,
|
|
128
140
|
icon: Pin,
|
|
129
141
|
label: "Pin column"
|
|
130
|
-
}), isColumnPinned &&
|
|
142
|
+
}), isColumnPinned && /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
131
143
|
onClick: handleUnpin,
|
|
132
144
|
icon: Unpin,
|
|
133
145
|
label: "Unpin Column",
|
|
134
146
|
active: true
|
|
135
|
-
}), isSortable &&
|
|
147
|
+
}), isSortable && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
136
148
|
onClick: handleSortAscending,
|
|
137
149
|
icon: SortAlphabetical,
|
|
138
150
|
label: "Sort ascending",
|
|
139
151
|
active: isSorted === "asc"
|
|
140
|
-
}),
|
|
152
|
+
}), /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
141
153
|
onClick: handleSortDescending,
|
|
142
154
|
icon: SortAlphabeticalDesc,
|
|
143
155
|
label: "Sort descending",
|
|
144
156
|
active: isSorted === "desc"
|
|
145
|
-
})), !!isSorted &&
|
|
157
|
+
})), !!isSorted && /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
146
158
|
onClick: handleClearAllSorts,
|
|
147
159
|
icon: Remove,
|
|
148
160
|
label: "Clear all sorts"
|
|
149
|
-
}),
|
|
161
|
+
}), /* @__PURE__ */ React2.createElement(HeaderMenuItem, {
|
|
150
162
|
onClick: handleResetSize,
|
|
151
163
|
icon: VerticalDistribution,
|
|
152
164
|
label: "Reset Column Size"
|
|
153
165
|
}))))));
|
|
154
166
|
}
|
|
155
|
-
|
|
167
|
+
export {
|
|
168
|
+
TableHeaderWithPopover
|
|
169
|
+
};
|