@osdk/react-components 0.40.0 → 0.41.0-main-7e4163b0319ea02499200d07dc4969e11a5cb33c
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 +7 -0
- package/build/browser/object-table/ColumnConfigDialog.js +20 -15
- package/build/browser/object-table/ColumnConfigDialog.js.map +1 -1
- package/build/browser/object-table/EditableCell.js +4 -3
- package/build/browser/object-table/EditableCell.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +15 -12
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/ObjectTable.js +3 -1
- 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/ObjectTableLabels.js +130 -0
- package/build/browser/object-table/ObjectTableLabels.js.map +1 -0
- package/build/browser/object-table/SelectionCells.js +5 -2
- package/build/browser/object-table/SelectionCells.js.map +1 -1
- package/build/browser/object-table/Table.js +7 -3
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/TableEditContainer.js +8 -6
- package/build/browser/object-table/TableEditContainer.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.js +11 -9
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/components/AsyncValueCell.js +4 -2
- package/build/browser/object-table/components/AsyncValueCell.js.map +1 -1
- package/build/browser/public/experimental/object-table.js.map +1 -1
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/cjs/chunk-323YOMG2.cjs +11 -0
- package/build/cjs/{chunk-4YFH7US6.cjs.map → chunk-323YOMG2.cjs.map} +1 -1
- package/build/cjs/{chunk-AY3WIKRW.cjs → chunk-4SGNGOAP.cjs} +490 -397
- package/build/cjs/chunk-4SGNGOAP.cjs.map +1 -0
- package/build/cjs/{chunk-5U23QYOL.cjs → chunk-6UIKJ4X4.cjs} +4 -4
- package/build/cjs/{chunk-5U23QYOL.cjs.map → chunk-6UIKJ4X4.cjs.map} +1 -1
- package/build/cjs/{chunk-PMQT5CIV.cjs → chunk-74V4AJ4A.cjs} +4 -4
- package/build/cjs/{chunk-PMQT5CIV.cjs.map → chunk-74V4AJ4A.cjs.map} +1 -1
- package/build/cjs/chunk-CWOMGAE4.cjs +11 -0
- package/build/cjs/{chunk-GNOUY65C.cjs.map → chunk-CWOMGAE4.cjs.map} +1 -1
- package/build/cjs/chunk-EMR3I6AL.cjs +11 -0
- package/build/cjs/{chunk-6U4W2HH5.cjs.map → chunk-EMR3I6AL.cjs.map} +1 -1
- package/build/cjs/{chunk-CEDJUDDR.cjs → chunk-GIKFNRWU.cjs} +4 -4
- package/build/cjs/{chunk-CEDJUDDR.cjs.map → chunk-GIKFNRWU.cjs.map} +1 -1
- package/build/cjs/{chunk-UQM4DWUN.cjs → chunk-GNXZZXHI.cjs} +3 -3
- package/build/cjs/chunk-GNXZZXHI.cjs.map +1 -0
- package/build/cjs/{chunk-ZKLRFU6R.cjs → chunk-JQAAJFKE.cjs} +4 -4
- package/build/cjs/{chunk-ZKLRFU6R.cjs.map → chunk-JQAAJFKE.cjs.map} +1 -1
- package/build/cjs/{chunk-IA32Z765.cjs → chunk-LIJJHXK6.cjs} +4 -4
- package/build/cjs/{chunk-IA32Z765.cjs.map → chunk-LIJJHXK6.cjs.map} +1 -1
- package/build/cjs/{chunk-MJC5CXYJ.cjs → chunk-LKDGFSTS.cjs} +4 -4
- package/build/cjs/{chunk-MJC5CXYJ.cjs.map → chunk-LKDGFSTS.cjs.map} +1 -1
- package/build/cjs/{chunk-PXCVMAUL.cjs → chunk-V2YDHJFF.cjs} +4 -4
- package/build/cjs/{chunk-PXCVMAUL.cjs.map → chunk-V2YDHJFF.cjs.map} +1 -1
- package/build/cjs/chunk-VOLJ5FDD.cjs +11 -0
- package/build/cjs/{chunk-XEDHHJ5U.cjs.map → chunk-VOLJ5FDD.cjs.map} +1 -1
- package/build/cjs/chunk-YXCVZKTN.cjs +11 -0
- package/build/cjs/{chunk-ACLCVBDB.cjs.map → chunk-YXCVZKTN.cjs.map} +1 -1
- package/build/cjs/public/experimental/action-form.cjs +4 -4
- package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
- package/build/cjs/public/experimental/document-viewer.cjs +4 -4
- package/build/cjs/public/experimental/email-viewer.cjs +3 -3
- package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
- package/build/cjs/public/experimental/filter-list.cjs +15 -15
- package/build/cjs/public/experimental/image-viewer.cjs +3 -3
- package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
- package/build/cjs/public/experimental/object-table.cjs +21 -21
- package/build/cjs/public/experimental/object-table.d.cts +136 -4
- package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
- package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
- package/build/cjs/public/experimental/video-viewer.cjs +3 -3
- package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
- package/build/cjs/public/experimental.cjs +71 -71
- package/build/cjs/public/experimental.d.cts +1 -1
- package/build/esm/object-table/ColumnConfigDialog.js +20 -15
- package/build/esm/object-table/ColumnConfigDialog.js.map +1 -1
- package/build/esm/object-table/EditableCell.js +4 -3
- package/build/esm/object-table/EditableCell.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +15 -12
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/ObjectTable.js +3 -1
- 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/ObjectTableLabels.js +130 -0
- package/build/esm/object-table/ObjectTableLabels.js.map +1 -0
- package/build/esm/object-table/SelectionCells.js +5 -2
- package/build/esm/object-table/SelectionCells.js.map +1 -1
- package/build/esm/object-table/Table.js +7 -3
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/TableEditContainer.js +8 -6
- package/build/esm/object-table/TableEditContainer.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.js +11 -9
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/components/AsyncValueCell.js +4 -2
- package/build/esm/object-table/components/AsyncValueCell.js.map +1 -1
- package/build/esm/public/experimental/object-table.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/types/object-table/ColumnConfigDialog.d.ts +10 -1
- package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -1
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/MultiColumnSortDialog.d.ts +10 -1
- package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
- package/build/types/object-table/ObjectTable.d.ts +1 -1
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +9 -0
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableLabels.d.ts +135 -0
- package/build/types/object-table/ObjectTableLabels.d.ts.map +1 -0
- package/build/types/object-table/SelectionCells.d.ts.map +1 -1
- package/build/types/object-table/Table.d.ts +7 -0
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableEditContainer.d.ts.map +1 -1
- package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
- package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -1
- package/build/types/public/experimental/object-table.d.ts +1 -0
- package/build/types/public/experimental/object-table.d.ts.map +1 -1
- package/docs/ObjectTable.md +1 -0
- package/package.json +6 -6
- package/build/cjs/chunk-4YFH7US6.cjs +0 -11
- package/build/cjs/chunk-6U4W2HH5.cjs +0 -11
- package/build/cjs/chunk-ACLCVBDB.cjs +0 -11
- package/build/cjs/chunk-AY3WIKRW.cjs.map +0 -1
- package/build/cjs/chunk-GNOUY65C.cjs +0 -11
- package/build/cjs/chunk-UQM4DWUN.cjs.map +0 -1
- package/build/cjs/chunk-XEDHHJ5U.cjs +0 -11
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { Error } from "@blueprintjs/icons";
|
|
18
18
|
import React, { useCallback, useState } from "react";
|
|
19
19
|
import { ActionButton } from "../base-components/action-button/ActionButton.js";
|
|
20
|
+
import { useObjectTableLabels } from "./ObjectTableLabels.js";
|
|
20
21
|
import styles from "./TableEditContainer.module.css.js";
|
|
21
22
|
export function TableEditContainer({
|
|
22
23
|
editableConfig,
|
|
@@ -29,6 +30,7 @@ export function TableEditContainer({
|
|
|
29
30
|
editModeState,
|
|
30
31
|
validationErrors
|
|
31
32
|
} = editableConfig;
|
|
33
|
+
const labels = useObjectTableLabels();
|
|
32
34
|
const hasEdits = Object.keys(cellEdits ?? {}).length > 0;
|
|
33
35
|
const hasValidationError = (validationErrors?.size ?? 0) > 0;
|
|
34
36
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
@@ -65,26 +67,26 @@ export function TableEditContainer({
|
|
|
65
67
|
className: styles.editsInfoContainer
|
|
66
68
|
}, hasEdits && /*#__PURE__*/React.createElement("div", {
|
|
67
69
|
className: styles.modificationCount
|
|
68
|
-
},
|
|
70
|
+
}, labels.editFooterModificationCount(cellEdits ? Object.keys(cellEdits).length : 0)), hasEdits && hasValidationError && /*#__PURE__*/React.createElement("div", {
|
|
69
71
|
className: styles.divider
|
|
70
72
|
}), hasValidationError && /*#__PURE__*/React.createElement("div", {
|
|
71
73
|
className: styles.validationError
|
|
72
74
|
}, /*#__PURE__*/React.createElement(Error, {
|
|
73
75
|
className: styles.errorIcon
|
|
74
|
-
}),
|
|
76
|
+
}), labels.editFooterValidationError)) : isInEditMode && !hasFocusedRow && /*#__PURE__*/React.createElement("div", {
|
|
75
77
|
className: styles.placeholder
|
|
76
|
-
},
|
|
78
|
+
}, labels.editFooterSelectRowToEdit), /*#__PURE__*/React.createElement("div", {
|
|
77
79
|
className: styles.editButtons
|
|
78
80
|
}, !isInEditMode && canToggleEditMode && /*#__PURE__*/React.createElement(ActionButton, {
|
|
79
81
|
variant: "primary",
|
|
80
82
|
onClick: handleEnterEditMode
|
|
81
|
-
},
|
|
83
|
+
}, labels.editFooterEditTable), isInEditMode && canToggleEditMode && /*#__PURE__*/React.createElement(ActionButton, {
|
|
82
84
|
variant: "secondary",
|
|
83
85
|
onClick: handleCancelEdits
|
|
84
|
-
},
|
|
86
|
+
}, labels.editFooterCancel), isInEditMode && !!onSubmitEdits && /*#__PURE__*/React.createElement(ActionButton, {
|
|
85
87
|
variant: "primary",
|
|
86
88
|
onClick: handleSubmitEdits,
|
|
87
89
|
disabled: !hasEdits || isSubmitting || hasValidationError
|
|
88
|
-
},
|
|
90
|
+
}, labels.editFooterSubmitEdits)));
|
|
89
91
|
}
|
|
90
92
|
//# sourceMappingURL=TableEditContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableEditContainer.js","names":["Error","React","useCallback","useState","ActionButton","styles","TableEditContainer","editableConfig","hasFocusedRow","cellEdits","onSubmitEdits","clearEdits","editModeState","validationErrors","hasEdits","Object","keys","length","hasValidationError","size","isSubmitting","setIsSubmitting","isInEditMode","isActive","canToggleEditMode","type","handleSubmitEdits","success","setActive","handleCancelEdits","handleEnterEditMode","createElement","className","tableEditContainer","editsInfoContainer","modificationCount","divider","validationError","errorIcon","placeholder","editButtons","variant","onClick","disabled"],"sources":["TableEditContainer.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 { Error } from \"@blueprintjs/icons\";\nimport type { RowData } from \"@tanstack/react-table\";\nimport React, { type ReactElement, useCallback, useState } from \"react\";\n\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport type { EditableConfig } from \"./utils/types.js\";\n\nimport styles from \"./TableEditContainer.module.css\";\n\ninterface TableEditContainerProps<TData extends RowData> {\n editableConfig: EditableConfig<TData, unknown>;\n hasFocusedRow?: boolean;\n}\n\nexport function TableEditContainer<TData extends RowData>({\n editableConfig,\n hasFocusedRow,\n}: TableEditContainerProps<TData>): ReactElement {\n const {\n cellEdits,\n onSubmitEdits,\n clearEdits,\n editModeState,\n validationErrors,\n } = editableConfig;\n\n const hasEdits = Object.keys(cellEdits ?? {}).length > 0;\n const hasValidationError = (validationErrors?.size ?? 0) > 0;\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const isInEditMode = editModeState.isActive;\n const canToggleEditMode = editModeState.type === \"manual\";\n\n const handleSubmitEdits = useCallback(async () => {\n setIsSubmitting(true);\n try {\n const success = await onSubmitEdits?.();\n if (success) {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }\n } finally {\n setIsSubmitting(false);\n }\n }, [editModeState, onSubmitEdits, clearEdits]);\n\n const handleCancelEdits = useCallback(() => {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }, [clearEdits, editModeState]);\n\n const handleEnterEditMode = useCallback(() => {\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(true);\n }\n }, [editModeState]);\n\n return (\n <div className={styles.tableEditContainer}>\n {hasEdits || hasValidationError ? (\n <div className={styles.editsInfoContainer}>\n {hasEdits && (\n <div className={styles.modificationCount}>\n {
|
|
1
|
+
{"version":3,"file":"TableEditContainer.js","names":["Error","React","useCallback","useState","ActionButton","useObjectTableLabels","styles","TableEditContainer","editableConfig","hasFocusedRow","cellEdits","onSubmitEdits","clearEdits","editModeState","validationErrors","labels","hasEdits","Object","keys","length","hasValidationError","size","isSubmitting","setIsSubmitting","isInEditMode","isActive","canToggleEditMode","type","handleSubmitEdits","success","setActive","handleCancelEdits","handleEnterEditMode","createElement","className","tableEditContainer","editsInfoContainer","modificationCount","editFooterModificationCount","divider","validationError","errorIcon","editFooterValidationError","placeholder","editFooterSelectRowToEdit","editButtons","variant","onClick","editFooterEditTable","editFooterCancel","disabled","editFooterSubmitEdits"],"sources":["TableEditContainer.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 { Error } from \"@blueprintjs/icons\";\nimport type { RowData } from \"@tanstack/react-table\";\nimport React, { type ReactElement, useCallback, useState } from \"react\";\n\nimport { ActionButton } from \"../base-components/action-button/ActionButton.js\";\nimport { useObjectTableLabels } from \"./ObjectTableLabels.js\";\nimport type { EditableConfig } from \"./utils/types.js\";\n\nimport styles from \"./TableEditContainer.module.css\";\n\ninterface TableEditContainerProps<TData extends RowData> {\n editableConfig: EditableConfig<TData, unknown>;\n hasFocusedRow?: boolean;\n}\n\nexport function TableEditContainer<TData extends RowData>({\n editableConfig,\n hasFocusedRow,\n}: TableEditContainerProps<TData>): ReactElement {\n const {\n cellEdits,\n onSubmitEdits,\n clearEdits,\n editModeState,\n validationErrors,\n } = editableConfig;\n\n const labels = useObjectTableLabels();\n const hasEdits = Object.keys(cellEdits ?? {}).length > 0;\n const hasValidationError = (validationErrors?.size ?? 0) > 0;\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const isInEditMode = editModeState.isActive;\n const canToggleEditMode = editModeState.type === \"manual\";\n\n const handleSubmitEdits = useCallback(async () => {\n setIsSubmitting(true);\n try {\n const success = await onSubmitEdits?.();\n if (success) {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }\n } finally {\n setIsSubmitting(false);\n }\n }, [editModeState, onSubmitEdits, clearEdits]);\n\n const handleCancelEdits = useCallback(() => {\n clearEdits?.();\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(false);\n }\n }, [clearEdits, editModeState]);\n\n const handleEnterEditMode = useCallback(() => {\n if (editModeState?.type === \"manual\") {\n editModeState.setActive(true);\n }\n }, [editModeState]);\n\n return (\n <div className={styles.tableEditContainer}>\n {hasEdits || hasValidationError ? (\n <div className={styles.editsInfoContainer}>\n {hasEdits && (\n <div className={styles.modificationCount}>\n {labels.editFooterModificationCount(\n cellEdits ? Object.keys(cellEdits).length : 0\n )}\n </div>\n )}\n {hasEdits && hasValidationError && <div className={styles.divider} />}\n {hasValidationError && (\n <div className={styles.validationError}>\n <Error className={styles.errorIcon} />\n {labels.editFooterValidationError}\n </div>\n )}\n </div>\n ) : (\n isInEditMode &&\n !hasFocusedRow && (\n <div className={styles.placeholder}>\n {labels.editFooterSelectRowToEdit}\n </div>\n )\n )}\n <div className={styles.editButtons}>\n {!isInEditMode && canToggleEditMode && (\n <ActionButton variant=\"primary\" onClick={handleEnterEditMode}>\n {labels.editFooterEditTable}\n </ActionButton>\n )}\n {isInEditMode && canToggleEditMode && (\n <ActionButton variant=\"secondary\" onClick={handleCancelEdits}>\n {labels.editFooterCancel}\n </ActionButton>\n )}\n {isInEditMode && !!onSubmitEdits && (\n <ActionButton\n variant=\"primary\"\n onClick={handleSubmitEdits}\n disabled={!hasEdits || isSubmitting || hasValidationError}\n >\n {labels.editFooterSubmitEdits}\n </ActionButton>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ import { ChevronDown, Pin, Remove, Settings, Sort, SortAlphabetical, SortAlphabe
|
|
|
19
19
|
import classNames from "classnames";
|
|
20
20
|
import React, { useCallback, useState } from "react";
|
|
21
21
|
import { usePortalContainer } from "../shared/PortalContainerContext.js";
|
|
22
|
+
import { useObjectTableLabels } from "./ObjectTableLabels.js";
|
|
22
23
|
import { TableHeaderContent } from "./TableHeaderContent.js";
|
|
23
24
|
import styles from "./TableHeaderWithPopover.module.css.js";
|
|
24
25
|
function HeaderMenuItem({
|
|
@@ -47,6 +48,7 @@ export function TableHeaderWithPopover({
|
|
|
47
48
|
onColumnHeaderClick
|
|
48
49
|
}) {
|
|
49
50
|
const portalContainer = usePortalContainer();
|
|
51
|
+
const labels = useObjectTableLabels();
|
|
50
52
|
const {
|
|
51
53
|
showSortingItems = false,
|
|
52
54
|
showPinningItems = false,
|
|
@@ -142,7 +144,7 @@ export function TableHeaderWithPopover({
|
|
|
142
144
|
}), currentSorting.length > 1 && sortIndex >= 0 && /*#__PURE__*/React.createElement("span", {
|
|
143
145
|
className: styles.sortIndex
|
|
144
146
|
}, sortIndex + 1)), (showPinningItems || showSortingItems && isSortable || showResizeItem || showConfigItem) && /*#__PURE__*/React.createElement(Menu.Trigger, {
|
|
145
|
-
"aria-label":
|
|
147
|
+
"aria-label": labels.headerMenuAriaLabel(header.column.id),
|
|
146
148
|
className: classNames(styles.osdkCenterContainer, styles.osdkHeaderPopoverTrigger)
|
|
147
149
|
}, /*#__PURE__*/React.createElement(ChevronDown, {
|
|
148
150
|
className: styles.osdkHeaderIcon
|
|
@@ -155,38 +157,38 @@ export function TableHeaderWithPopover({
|
|
|
155
157
|
}, showPinningItems && !isColumnPinned && /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
156
158
|
onClick: handlePinLeft,
|
|
157
159
|
icon: Pin,
|
|
158
|
-
label:
|
|
160
|
+
label: labels.headerMenuPinColumn
|
|
159
161
|
}), showPinningItems && isColumnPinned && /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
160
162
|
onClick: handleUnpin,
|
|
161
163
|
icon: Unpin,
|
|
162
|
-
label:
|
|
164
|
+
label: labels.headerMenuUnpinColumn,
|
|
163
165
|
active: true
|
|
164
166
|
}), showSortingItems && isSortable && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
165
167
|
onClick: handleSortAscending,
|
|
166
168
|
icon: SortAlphabetical,
|
|
167
|
-
label:
|
|
169
|
+
label: labels.headerMenuSortAscending,
|
|
168
170
|
active: isSorted === "asc"
|
|
169
171
|
}), /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
170
172
|
onClick: handleSortDescending,
|
|
171
173
|
icon: SortAlphabeticalDesc,
|
|
172
|
-
label:
|
|
174
|
+
label: labels.headerMenuSortDescending,
|
|
173
175
|
active: isSorted === "desc"
|
|
174
176
|
}), columnOptions?.some(col => col.canSort) && /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
175
177
|
onClick: handleOpenMultiSort,
|
|
176
178
|
icon: Sort,
|
|
177
|
-
label:
|
|
179
|
+
label: labels.headerMenuSortOnMultipleColumns
|
|
178
180
|
})), showSortingItems && !!currentSorting?.length && /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
179
181
|
onClick: handleClearAllSorts,
|
|
180
182
|
icon: Remove,
|
|
181
|
-
label:
|
|
183
|
+
label: labels.headerMenuClearAllSorts
|
|
182
184
|
}), showResizeItem && /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
183
185
|
onClick: handleResetSize,
|
|
184
186
|
icon: VerticalDistribution,
|
|
185
|
-
label:
|
|
187
|
+
label: labels.headerMenuResetColumnSize
|
|
186
188
|
}), showConfigItem && /*#__PURE__*/React.createElement(HeaderMenuItem, {
|
|
187
189
|
onClick: handleOpenColumnConfig,
|
|
188
190
|
icon: Settings,
|
|
189
|
-
label:
|
|
191
|
+
label: labels.headerMenuConfigureColumns
|
|
190
192
|
})))))));
|
|
191
193
|
}
|
|
192
194
|
//# sourceMappingURL=TableHeaderWithPopover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderWithPopover.js","names":["Menu","ChevronDown","Pin","Remove","Settings","Sort","SortAlphabetical","SortAlphabeticalDesc","Unpin","VerticalDistribution","classNames","React","useCallback","useState","usePortalContainer","TableHeaderContent","styles","HeaderMenuItem","onClick","icon","Icon","label","active","createElement","Item","closeOnClick","className","osdkCenterContainer","osdkContentGap","osdkHeaderMenuItem","osdkHeaderActiveMenuItem","osdkHeaderIcon","TableHeaderWithPopover","header","table","isColumnPinned","onResetSize","columnOptions","featureFlags","onOpenColumnConfig","onOpenMultiSort","onColumnHeaderClick","portalContainer","showSortingItems","showPinningItems","showResizeItem","showConfigItem","setColumnPinning","setSorting","currentSorting","getState","sorting","isOpen","setIsOpen","handlePinLeft","prev","left","column","id","right","filter","handleUnpin","handleSortAscending","toggleSorting","desc","handleSortDescending","handleClearAllSorts","clearSorting","handleResetSize","resetSize","handleInteraction","e","preventDefault","handleHeaderClick","handleOpenColumnConfig","handleOpenMultiSort","isSorted","getIsSorted","isSortable","getCanSort","sortIndex","findIndex","s","Fragment","Root","open","onOpenChange","modal","osdkHeaderContainer","onContextMenu","osdkHeaderContentLeft","osdkHeaderContentLeftClickable","undefined","osdkHeaderContentRight","length","Trigger","osdkHeaderPopoverTrigger","Portal","container","Positioner","sideOffset","Popup","osdkHeaderPopup","some","col","canSort"],"sources":["TableHeaderWithPopover.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 { Menu } from \"@base-ui/react/menu\";\nimport {\n ChevronDown,\n Pin,\n Remove,\n Settings,\n Sort,\n SortAlphabetical,\n SortAlphabeticalDesc,\n Unpin,\n VerticalDistribution,\n} from \"@blueprintjs/icons\";\nimport type { Header, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useState } from \"react\";\n\nimport { usePortalContainer } from \"../shared/PortalContainerContext.js\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\nimport styles from \"./TableHeaderWithPopover.module.css\";\n\ninterface HeaderMenuItemProps {\n onClick: () => void;\n icon: React.ComponentType<{ className?: string; color?: string }>;\n label: string;\n active?: boolean;\n}\n\nfunction HeaderMenuItem({\n onClick,\n icon: Icon,\n label,\n active = false,\n}: HeaderMenuItemProps): React.ReactElement {\n return (\n <Menu.Item\n closeOnClick={true}\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderMenuItem,\n active && styles.osdkHeaderActiveMenuItem\n )}\n onClick={onClick}\n >\n <Icon className={styles.osdkHeaderIcon} />\n <span>{label}</span>\n </Menu.Item>\n );\n}\n\nexport interface HeaderMenuFeatureFlags {\n /**\n * Whether sorting menu items should be shown.\n * When false, hides \"Sort ascending\", \"Sort descending\", \"Sort on multiple columns\", and \"Clear all sorts\".\n */\n showSortingItems?: boolean;\n /**\n * Whether pinning menu items should be shown.\n * When false, hides \"Pin column\" and \"Unpin Column\".\n */\n showPinningItems?: boolean;\n /**\n * Whether resize menu item should be shown.\n * When false, hides \"Reset Column Size\".\n */\n showResizeItem?: boolean;\n /**\n * Whether column config menu item should be shown.\n * When false, hides \"Configure Columns\".\n */\n showConfigItem?: boolean;\n}\n\ninterface TableHeaderWithPopoverProps<TData extends RowData> {\n table: Table<TData>;\n header: Header<TData, unknown>;\n isColumnPinned: false | \"left\" | \"right\";\n onResetSize?: () => void;\n columnOptions?: ColumnOption[];\n featureFlags?: HeaderMenuFeatureFlags;\n onOpenColumnConfig?: () => void;\n onOpenMultiSort?: () => void;\n onColumnHeaderClick?: (columnId: string) => void;\n}\n\nexport function TableHeaderWithPopover<TData extends RowData>({\n header,\n table,\n isColumnPinned,\n onResetSize,\n columnOptions,\n featureFlags,\n onOpenColumnConfig,\n onOpenMultiSort,\n onColumnHeaderClick,\n}: TableHeaderWithPopoverProps<TData>): React.ReactElement {\n const portalContainer = usePortalContainer();\n const {\n showSortingItems = false,\n showPinningItems = false,\n showResizeItem = false,\n showConfigItem = false,\n } = featureFlags ?? {};\n\n const { setColumnPinning, setSorting } = table;\n\n const currentSorting = table.getState().sorting;\n\n const [isOpen, setIsOpen] = useState(false);\n\n const handlePinLeft = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: [...(prev.left || []), header.column.id],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleUnpin = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: prev.left?.filter((id) => id !== header.column.id) || [],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleSortAscending = useCallback(() => {\n header.column.toggleSorting(false);\n setSorting?.([{ id: header.column.id, desc: false }]);\n }, [header.column, setSorting]);\n\n const handleSortDescending = useCallback(() => {\n header.column.toggleSorting(true);\n setSorting?.([{ id: header.column.id, desc: true }]);\n }, [header.column, setSorting]);\n\n const handleClearAllSorts = useCallback(() => {\n header.column.clearSorting();\n setSorting?.([]);\n }, [header.column, setSorting]);\n\n const handleResetSize = useCallback(() => {\n header.column.resetSize();\n if (onResetSize) {\n onResetSize();\n }\n }, [header.column, onResetSize]);\n\n const handleInteraction = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n setIsOpen((prev) => !prev);\n }, []);\n\n const handleHeaderClick = useCallback(() => {\n onColumnHeaderClick?.(header.column.id);\n }, [header.column.id, onColumnHeaderClick]);\n\n const handleOpenColumnConfig = useCallback(() => {\n onOpenColumnConfig?.();\n setIsOpen(false);\n }, [onOpenColumnConfig]);\n\n const handleOpenMultiSort = useCallback(() => {\n onOpenMultiSort?.();\n setIsOpen(false);\n }, [onOpenMultiSort]);\n\n const isSorted = header.column.getIsSorted();\n const isSortable = header.column.getCanSort();\n const sortIndex =\n currentSorting?.findIndex((s) => s.id === header.column.id) ?? -1;\n\n const hasAnyMenuItems =\n showPinningItems ||\n (showSortingItems && isSortable) ||\n showResizeItem ||\n showConfigItem;\n\n return (\n <>\n {/* Header menus should not lock drawer/table scrolling; they dismiss like lightweight contextual menus. */}\n <Menu.Root open={isOpen} onOpenChange={setIsOpen} modal={false}>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContainer\n )}\n onContextMenu={handleInteraction}\n >\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentLeft,\n onColumnHeaderClick && styles.osdkHeaderContentLeftClickable\n )}\n onClick={onColumnHeaderClick ? handleHeaderClick : undefined}\n >\n {isColumnPinned && <Pin className={styles.osdkHeaderIcon} />}\n <TableHeaderContent header={header} />\n </div>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentRight\n )}\n >\n {isSorted && (\n <div className={styles.osdkCenterContainer}>\n {isSorted === \"asc\" ? (\n <SortAlphabetical className={styles.osdkHeaderIcon} />\n ) : (\n <SortAlphabeticalDesc className={styles.osdkHeaderIcon} />\n )}\n {currentSorting.length > 1 && sortIndex >= 0 && (\n <span className={styles.sortIndex}>{sortIndex + 1}</span>\n )}\n </div>\n )}\n {hasAnyMenuItems && (\n <Menu.Trigger\n aria-label={`Open header menu for column with id=${header.column.id}`}\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkHeaderPopoverTrigger\n )}\n >\n <ChevronDown className={styles.osdkHeaderIcon} />\n </Menu.Trigger>\n )}\n </div>\n <Menu.Portal container={portalContainer}>\n <Menu.Positioner sideOffset={4}>\n <Menu.Popup className={styles.osdkHeaderPopup}>\n {showPinningItems && !isColumnPinned && (\n <HeaderMenuItem\n onClick={handlePinLeft}\n icon={Pin}\n label=\"Pin column\"\n />\n )}\n\n {showPinningItems && isColumnPinned && (\n <HeaderMenuItem\n onClick={handleUnpin}\n icon={Unpin}\n label=\"Unpin Column\"\n active={true}\n />\n )}\n {showSortingItems && isSortable && (\n <>\n <HeaderMenuItem\n onClick={handleSortAscending}\n icon={SortAlphabetical}\n label=\"Sort ascending\"\n active={isSorted === \"asc\"}\n />\n <HeaderMenuItem\n onClick={handleSortDescending}\n icon={SortAlphabeticalDesc}\n label=\"Sort descending\"\n active={isSorted === \"desc\"}\n />\n {columnOptions?.some((col) => col.canSort) && (\n <HeaderMenuItem\n onClick={handleOpenMultiSort}\n icon={Sort}\n label=\"Sort on multiple columns\"\n />\n )}\n </>\n )}\n {showSortingItems && !!currentSorting?.length && (\n <HeaderMenuItem\n onClick={handleClearAllSorts}\n icon={Remove}\n label=\"Clear all sorts\"\n />\n )}\n {showResizeItem && (\n <HeaderMenuItem\n onClick={handleResetSize}\n icon={VerticalDistribution}\n label=\"Reset Column Size\"\n />\n )}\n {showConfigItem && (\n <HeaderMenuItem\n onClick={handleOpenColumnConfig}\n icon={Settings}\n label=\"Configure Columns\"\n />\n )}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </div>\n </Menu.Root>\n </>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,qBAAqB;AAC1C,SACEC,WAAW,EACXC,GAAG,EACHC,MAAM,EACNC,QAAQ,EACRC,IAAI,EACJC,gBAAgB,EAChBC,oBAAoB,EACpBC,KAAK,EACLC,oBAAoB,QACf,oBAAoB;AAE3B,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAEpD,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,kBAAkB,QAAQ,yBAAyB;AAG5D,OAAOC,MAAM,MAAM,qCAAqC;AASxD,SAASC,cAAcA,CAAC;EACtBC,OAAO;EACPC,IAAI,EAAEC,IAAI;EACVC,KAAK;EACLC,MAAM,GAAG;AACU,CAAC,EAAsB;EAC1C,oBACEX,KAAA,CAAAY,aAAA,CAACvB,IAAI,CAACwB,IAAI;IACRC,YAAY,EAAE,IAAK;IACnBC,SAAS,EAAEhB,UAAU,CACnBM,MAAM,CAACW,mBAAmB,EAC1BX,MAAM,CAACY,cAAc,EACrBZ,MAAM,CAACa,kBAAkB,EACzBP,MAAM,IAAIN,MAAM,CAACc,wBACnB,CAAE;IACFZ,OAAO,EAAEA;EAAQ,gBAEjBP,KAAA,CAAAY,aAAA,CAACH,IAAI;IAACM,SAAS,EAAEV,MAAM,CAACe;EAAe,CAAE,CAAC,eAC1CpB,KAAA,CAAAY,aAAA,eAAOF,KAAY,CACV,CAAC;AAEhB;AAqCA,OAAO,SAASW,sBAAsBA,CAAwB;EAC5DC,MAAM;EACNC,KAAK;EACLC,cAAc;EACdC,WAAW;EACXC,aAAa;EACbC,YAAY;EACZC,kBAAkB;EAClBC,eAAe;EACfC;AACkC,CAAC,EAAsB;EACzD,MAAMC,eAAe,GAAG5B,kBAAkB,CAAC,CAAC;EAC5C,MAAM;IACJ6B,gBAAgB,GAAG,KAAK;IACxBC,gBAAgB,GAAG,KAAK;IACxBC,cAAc,GAAG,KAAK;IACtBC,cAAc,GAAG;EACnB,CAAC,GAAGR,YAAY,IAAI,CAAC,CAAC;EAEtB,MAAM;IAAES,gBAAgB;IAAEC;EAAW,CAAC,GAAGd,KAAK;EAE9C,MAAMe,cAAc,GAAGf,KAAK,CAACgB,QAAQ,CAAC,CAAC,CAACC,OAAO;EAE/C,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGxC,QAAQ,CAAC,KAAK,CAAC;EAE3C,MAAMyC,aAAa,GAAG1C,WAAW,CAAC,MAAM;IACtCmC,gBAAgB,CAAEQ,IAAI,IAAK;MACzB,OAAO;QACLC,IAAI,EAAE,CAAC,IAAID,IAAI,CAACC,IAAI,IAAI,EAAE,CAAC,EAAEvB,MAAM,CAACwB,MAAM,CAACC,EAAE,CAAC;QAC9CC,KAAK,EAAEJ,IAAI,CAACI,KAAK,EAAEC,MAAM,CAAEF,EAAE,IAAKA,EAAE,KAAKzB,MAAM,CAACwB,MAAM,CAACC,EAAE,CAAC,IAAI;MAChE,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,CAACzB,MAAM,CAACwB,MAAM,CAACC,EAAE,EAAEX,gBAAgB,CAAC,CAAC;EAExC,MAAMc,WAAW,GAAGjD,WAAW,CAAC,MAAM;IACpCmC,gBAAgB,CAAEQ,IAAI,IAAK;MACzB,OAAO;QACLC,IAAI,EAAED,IAAI,CAACC,IAAI,EAAEI,MAAM,CAAEF,EAAE,IAAKA,EAAE,KAAKzB,MAAM,CAACwB,MAAM,CAACC,EAAE,CAAC,IAAI,EAAE;QAC9DC,KAAK,EAAEJ,IAAI,CAACI,KAAK,EAAEC,MAAM,CAAEF,EAAE,IAAKA,EAAE,KAAKzB,MAAM,CAACwB,MAAM,CAACC,EAAE,CAAC,IAAI;MAChE,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,CAACzB,MAAM,CAACwB,MAAM,CAACC,EAAE,EAAEX,gBAAgB,CAAC,CAAC;EAExC,MAAMe,mBAAmB,GAAGlD,WAAW,CAAC,MAAM;IAC5CqB,MAAM,CAACwB,MAAM,CAACM,aAAa,CAAC,KAAK,CAAC;IAClCf,UAAU,GAAG,CAAC;MAAEU,EAAE,EAAEzB,MAAM,CAACwB,MAAM,CAACC,EAAE;MAAEM,IAAI,EAAE;IAAM,CAAC,CAAC,CAAC;EACvD,CAAC,EAAE,CAAC/B,MAAM,CAACwB,MAAM,EAAET,UAAU,CAAC,CAAC;EAE/B,MAAMiB,oBAAoB,GAAGrD,WAAW,CAAC,MAAM;IAC7CqB,MAAM,CAACwB,MAAM,CAACM,aAAa,CAAC,IAAI,CAAC;IACjCf,UAAU,GAAG,CAAC;MAAEU,EAAE,EAAEzB,MAAM,CAACwB,MAAM,CAACC,EAAE;MAAEM,IAAI,EAAE;IAAK,CAAC,CAAC,CAAC;EACtD,CAAC,EAAE,CAAC/B,MAAM,CAACwB,MAAM,EAAET,UAAU,CAAC,CAAC;EAE/B,MAAMkB,mBAAmB,GAAGtD,WAAW,CAAC,MAAM;IAC5CqB,MAAM,CAACwB,MAAM,CAACU,YAAY,CAAC,CAAC;IAC5BnB,UAAU,GAAG,EAAE,CAAC;EAClB,CAAC,EAAE,CAACf,MAAM,CAACwB,MAAM,EAAET,UAAU,CAAC,CAAC;EAE/B,MAAMoB,eAAe,GAAGxD,WAAW,CAAC,MAAM;IACxCqB,MAAM,CAACwB,MAAM,CAACY,SAAS,CAAC,CAAC;IACzB,IAAIjC,WAAW,EAAE;MACfA,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACH,MAAM,CAACwB,MAAM,EAAErB,WAAW,CAAC,CAAC;EAEhC,MAAMkC,iBAAiB,GAAG1D,WAAW,CAAE2D,CAAmB,IAAK;IAC7DA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClBnB,SAAS,CAAEE,IAAI,IAAK,CAACA,IAAI,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMkB,iBAAiB,GAAG7D,WAAW,CAAC,MAAM;IAC1C6B,mBAAmB,GAAGR,MAAM,CAACwB,MAAM,CAACC,EAAE,CAAC;EACzC,CAAC,EAAE,CAACzB,MAAM,CAACwB,MAAM,CAACC,EAAE,EAAEjB,mBAAmB,CAAC,CAAC;EAE3C,MAAMiC,sBAAsB,GAAG9D,WAAW,CAAC,MAAM;IAC/C2B,kBAAkB,GAAG,CAAC;IACtBc,SAAS,CAAC,KAAK,CAAC;EAClB,CAAC,EAAE,CAACd,kBAAkB,CAAC,CAAC;EAExB,MAAMoC,mBAAmB,GAAG/D,WAAW,CAAC,MAAM;IAC5C4B,eAAe,GAAG,CAAC;IACnBa,SAAS,CAAC,KAAK,CAAC;EAClB,CAAC,EAAE,CAACb,eAAe,CAAC,CAAC;EAErB,MAAMoC,QAAQ,GAAG3C,MAAM,CAACwB,MAAM,CAACoB,WAAW,CAAC,CAAC;EAC5C,MAAMC,UAAU,GAAG7C,MAAM,CAACwB,MAAM,CAACsB,UAAU,CAAC,CAAC;EAC7C,MAAMC,SAAS,GACb/B,cAAc,EAAEgC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACxB,EAAE,KAAKzB,MAAM,CAACwB,MAAM,CAACC,EAAE,CAAC,IAAI,CAAC,CAAC;EAQnE,oBACE/C,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAAwE,QAAA,qBAEExE,KAAA,CAAAY,aAAA,CAACvB,IAAI,CAACoF,IAAI;IAACC,IAAI,EAAEjC,MAAO;IAACkC,YAAY,EAAEjC,SAAU;IAACkC,KAAK,EAAE;EAAM,gBAC7D5E,KAAA,CAAAY,aAAA;IACEG,SAAS,EAAEhB,UAAU,CACnBM,MAAM,CAACW,mBAAmB,EAC1BX,MAAM,CAACY,cAAc,EACrBZ,MAAM,CAACwE,mBACT,CAAE;IACFC,aAAa,EAAEnB;EAAkB,gBAEjC3D,KAAA,CAAAY,aAAA;IACEG,SAAS,EAAEhB,UAAU,CACnBM,MAAM,CAACW,mBAAmB,EAC1BX,MAAM,CAACY,cAAc,EACrBZ,MAAM,CAAC0E,qBAAqB,EAC5BjD,mBAAmB,IAAIzB,MAAM,CAAC2E,8BAChC,CAAE;IACFzE,OAAO,EAAEuB,mBAAmB,GAAGgC,iBAAiB,GAAGmB;EAAU,GAE5DzD,cAAc,iBAAIxB,KAAA,CAAAY,aAAA,CAACrB,GAAG;IAACwB,SAAS,EAAEV,MAAM,CAACe;EAAe,CAAE,CAAC,eAC5DpB,KAAA,CAAAY,aAAA,CAACR,kBAAkB;IAACkB,MAAM,EAAEA;EAAO,CAAE,CAClC,CAAC,eACNtB,KAAA,CAAAY,aAAA;IACEG,SAAS,EAAEhB,UAAU,CACnBM,MAAM,CAACW,mBAAmB,EAC1BX,MAAM,CAACY,cAAc,EACrBZ,MAAM,CAAC6E,sBACT;EAAE,GAEDjB,QAAQ,iBACPjE,KAAA,CAAAY,aAAA;IAAKG,SAAS,EAAEV,MAAM,CAACW;EAAoB,GACxCiD,QAAQ,KAAK,KAAK,gBACjBjE,KAAA,CAAAY,aAAA,CAACjB,gBAAgB;IAACoB,SAAS,EAAEV,MAAM,CAACe;EAAe,CAAE,CAAC,gBAEtDpB,KAAA,CAAAY,aAAA,CAAChB,oBAAoB;IAACmB,SAAS,EAAEV,MAAM,CAACe;EAAe,CAAE,CAC1D,EACAkB,cAAc,CAAC6C,MAAM,GAAG,CAAC,IAAId,SAAS,IAAI,CAAC,iBAC1CrE,KAAA,CAAAY,aAAA;IAAMG,SAAS,EAAEV,MAAM,CAACgE;EAAU,GAAEA,SAAS,GAAG,CAAQ,CAEvD,CACN,EACA,CAhDTpC,gBAAgB,IACfD,gBAAgB,IAAImC,UAAW,IAChCjC,cAAc,IACdC,cAAc,kBA8CJnC,KAAA,CAAAY,aAAA,CAACvB,IAAI,CAAC+F,OAAO;IACX,cAAY,uCAAuC9D,MAAM,CAACwB,MAAM,CAACC,EAAE,EAAG;IACtEhC,SAAS,EAAEhB,UAAU,CACnBM,MAAM,CAACW,mBAAmB,EAC1BX,MAAM,CAACgF,wBACT;EAAE,gBAEFrF,KAAA,CAAAY,aAAA,CAACtB,WAAW;IAACyB,SAAS,EAAEV,MAAM,CAACe;EAAe,CAAE,CACpC,CAEb,CAAC,eACNpB,KAAA,CAAAY,aAAA,CAACvB,IAAI,CAACiG,MAAM;IAACC,SAAS,EAAExD;EAAgB,gBACtC/B,KAAA,CAAAY,aAAA,CAACvB,IAAI,CAACmG,UAAU;IAACC,UAAU,EAAE;EAAE,gBAC7BzF,KAAA,CAAAY,aAAA,CAACvB,IAAI,CAACqG,KAAK;IAAC3E,SAAS,EAAEV,MAAM,CAACsF;EAAgB,GAC3C1D,gBAAgB,IAAI,CAACT,cAAc,iBAClCxB,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAEoC,aAAc;IACvBnC,IAAI,EAAEjB,GAAI;IACVmB,KAAK,EAAC;EAAY,CACnB,CACF,EAEAuB,gBAAgB,IAAIT,cAAc,iBACjCxB,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAE2C,WAAY;IACrB1C,IAAI,EAAEX,KAAM;IACZa,KAAK,EAAC,cAAc;IACpBC,MAAM,EAAE;EAAK,CACd,CACF,EACAqB,gBAAgB,IAAImC,UAAU,iBAC7BnE,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAAwE,QAAA,qBACExE,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAE4C,mBAAoB;IAC7B3C,IAAI,EAAEb,gBAAiB;IACvBe,KAAK,EAAC,gBAAgB;IACtBC,MAAM,EAAEsD,QAAQ,KAAK;EAAM,CAC5B,CAAC,eACFjE,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAE+C,oBAAqB;IAC9B9C,IAAI,EAAEZ,oBAAqB;IAC3Bc,KAAK,EAAC,iBAAiB;IACvBC,MAAM,EAAEsD,QAAQ,KAAK;EAAO,CAC7B,CAAC,EACDvC,aAAa,EAAEkE,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,OAAO,CAAC,iBACxC9F,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAEyD,mBAAoB;IAC7BxD,IAAI,EAAEd,IAAK;IACXgB,KAAK,EAAC;EAA0B,CACjC,CAEH,CACH,EACAsB,gBAAgB,IAAI,CAAC,CAACM,cAAc,EAAE6C,MAAM,iBAC3CnF,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAEgD,mBAAoB;IAC7B/C,IAAI,EAAEhB,MAAO;IACbkB,KAAK,EAAC;EAAiB,CACxB,CACF,EACAwB,cAAc,iBACblC,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAEkD,eAAgB;IACzBjD,IAAI,EAAEV,oBAAqB;IAC3BY,KAAK,EAAC;EAAmB,CAC1B,CACF,EACAyB,cAAc,iBACbnC,KAAA,CAAAY,aAAA,CAACN,cAAc;IACbC,OAAO,EAAEwD,sBAAuB;IAChCvD,IAAI,EAAEf,QAAS;IACfiB,KAAK,EAAC;EAAmB,CAC1B,CAEO,CACG,CACN,CACV,CACI,CACX,CAAC;AAEP","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TableHeaderWithPopover.js","names":["Menu","ChevronDown","Pin","Remove","Settings","Sort","SortAlphabetical","SortAlphabeticalDesc","Unpin","VerticalDistribution","classNames","React","useCallback","useState","usePortalContainer","useObjectTableLabels","TableHeaderContent","styles","HeaderMenuItem","onClick","icon","Icon","label","active","createElement","Item","closeOnClick","className","osdkCenterContainer","osdkContentGap","osdkHeaderMenuItem","osdkHeaderActiveMenuItem","osdkHeaderIcon","TableHeaderWithPopover","header","table","isColumnPinned","onResetSize","columnOptions","featureFlags","onOpenColumnConfig","onOpenMultiSort","onColumnHeaderClick","portalContainer","labels","showSortingItems","showPinningItems","showResizeItem","showConfigItem","setColumnPinning","setSorting","currentSorting","getState","sorting","isOpen","setIsOpen","handlePinLeft","prev","left","column","id","right","filter","handleUnpin","handleSortAscending","toggleSorting","desc","handleSortDescending","handleClearAllSorts","clearSorting","handleResetSize","resetSize","handleInteraction","e","preventDefault","handleHeaderClick","handleOpenColumnConfig","handleOpenMultiSort","isSorted","getIsSorted","isSortable","getCanSort","sortIndex","findIndex","s","Fragment","Root","open","onOpenChange","modal","osdkHeaderContainer","onContextMenu","osdkHeaderContentLeft","osdkHeaderContentLeftClickable","undefined","osdkHeaderContentRight","length","Trigger","headerMenuAriaLabel","osdkHeaderPopoverTrigger","Portal","container","Positioner","sideOffset","Popup","osdkHeaderPopup","headerMenuPinColumn","headerMenuUnpinColumn","headerMenuSortAscending","headerMenuSortDescending","some","col","canSort","headerMenuSortOnMultipleColumns","headerMenuClearAllSorts","headerMenuResetColumnSize","headerMenuConfigureColumns"],"sources":["TableHeaderWithPopover.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 { Menu } from \"@base-ui/react/menu\";\nimport {\n ChevronDown,\n Pin,\n Remove,\n Settings,\n Sort,\n SortAlphabetical,\n SortAlphabeticalDesc,\n Unpin,\n VerticalDistribution,\n} from \"@blueprintjs/icons\";\nimport type { Header, RowData, Table } from \"@tanstack/react-table\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useState } from \"react\";\n\nimport { usePortalContainer } from \"../shared/PortalContainerContext.js\";\nimport { useObjectTableLabels } from \"./ObjectTableLabels.js\";\nimport { TableHeaderContent } from \"./TableHeaderContent.js\";\nimport type { ColumnOption } from \"./utils/types.js\";\n\nimport styles from \"./TableHeaderWithPopover.module.css\";\n\ninterface HeaderMenuItemProps {\n onClick: () => void;\n icon: React.ComponentType<{ className?: string; color?: string }>;\n label: string;\n active?: boolean;\n}\n\nfunction HeaderMenuItem({\n onClick,\n icon: Icon,\n label,\n active = false,\n}: HeaderMenuItemProps): React.ReactElement {\n return (\n <Menu.Item\n closeOnClick={true}\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderMenuItem,\n active && styles.osdkHeaderActiveMenuItem\n )}\n onClick={onClick}\n >\n <Icon className={styles.osdkHeaderIcon} />\n <span>{label}</span>\n </Menu.Item>\n );\n}\n\nexport interface HeaderMenuFeatureFlags {\n /**\n * Whether sorting menu items should be shown.\n * When false, hides \"Sort ascending\", \"Sort descending\", \"Sort on multiple columns\", and \"Clear all sorts\".\n */\n showSortingItems?: boolean;\n /**\n * Whether pinning menu items should be shown.\n * When false, hides \"Pin column\" and \"Unpin Column\".\n */\n showPinningItems?: boolean;\n /**\n * Whether resize menu item should be shown.\n * When false, hides \"Reset Column Size\".\n */\n showResizeItem?: boolean;\n /**\n * Whether column config menu item should be shown.\n * When false, hides \"Configure Columns\".\n */\n showConfigItem?: boolean;\n}\n\ninterface TableHeaderWithPopoverProps<TData extends RowData> {\n table: Table<TData>;\n header: Header<TData, unknown>;\n isColumnPinned: false | \"left\" | \"right\";\n onResetSize?: () => void;\n columnOptions?: ColumnOption[];\n featureFlags?: HeaderMenuFeatureFlags;\n onOpenColumnConfig?: () => void;\n onOpenMultiSort?: () => void;\n onColumnHeaderClick?: (columnId: string) => void;\n}\n\nexport function TableHeaderWithPopover<TData extends RowData>({\n header,\n table,\n isColumnPinned,\n onResetSize,\n columnOptions,\n featureFlags,\n onOpenColumnConfig,\n onOpenMultiSort,\n onColumnHeaderClick,\n}: TableHeaderWithPopoverProps<TData>): React.ReactElement {\n const portalContainer = usePortalContainer();\n const labels = useObjectTableLabels();\n const {\n showSortingItems = false,\n showPinningItems = false,\n showResizeItem = false,\n showConfigItem = false,\n } = featureFlags ?? {};\n\n const { setColumnPinning, setSorting } = table;\n\n const currentSorting = table.getState().sorting;\n\n const [isOpen, setIsOpen] = useState(false);\n\n const handlePinLeft = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: [...(prev.left || []), header.column.id],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleUnpin = useCallback(() => {\n setColumnPinning((prev) => {\n return {\n left: prev.left?.filter((id) => id !== header.column.id) || [],\n right: prev.right?.filter((id) => id !== header.column.id) || [],\n };\n });\n }, [header.column.id, setColumnPinning]);\n\n const handleSortAscending = useCallback(() => {\n header.column.toggleSorting(false);\n setSorting?.([{ id: header.column.id, desc: false }]);\n }, [header.column, setSorting]);\n\n const handleSortDescending = useCallback(() => {\n header.column.toggleSorting(true);\n setSorting?.([{ id: header.column.id, desc: true }]);\n }, [header.column, setSorting]);\n\n const handleClearAllSorts = useCallback(() => {\n header.column.clearSorting();\n setSorting?.([]);\n }, [header.column, setSorting]);\n\n const handleResetSize = useCallback(() => {\n header.column.resetSize();\n if (onResetSize) {\n onResetSize();\n }\n }, [header.column, onResetSize]);\n\n const handleInteraction = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n setIsOpen((prev) => !prev);\n }, []);\n\n const handleHeaderClick = useCallback(() => {\n onColumnHeaderClick?.(header.column.id);\n }, [header.column.id, onColumnHeaderClick]);\n\n const handleOpenColumnConfig = useCallback(() => {\n onOpenColumnConfig?.();\n setIsOpen(false);\n }, [onOpenColumnConfig]);\n\n const handleOpenMultiSort = useCallback(() => {\n onOpenMultiSort?.();\n setIsOpen(false);\n }, [onOpenMultiSort]);\n\n const isSorted = header.column.getIsSorted();\n const isSortable = header.column.getCanSort();\n const sortIndex =\n currentSorting?.findIndex((s) => s.id === header.column.id) ?? -1;\n\n const hasAnyMenuItems =\n showPinningItems ||\n (showSortingItems && isSortable) ||\n showResizeItem ||\n showConfigItem;\n\n return (\n <>\n {/* Header menus should not lock drawer/table scrolling; they dismiss like lightweight contextual menus. */}\n <Menu.Root open={isOpen} onOpenChange={setIsOpen} modal={false}>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContainer\n )}\n onContextMenu={handleInteraction}\n >\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentLeft,\n onColumnHeaderClick && styles.osdkHeaderContentLeftClickable\n )}\n onClick={onColumnHeaderClick ? handleHeaderClick : undefined}\n >\n {isColumnPinned && <Pin className={styles.osdkHeaderIcon} />}\n <TableHeaderContent header={header} />\n </div>\n <div\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkContentGap,\n styles.osdkHeaderContentRight\n )}\n >\n {isSorted && (\n <div className={styles.osdkCenterContainer}>\n {isSorted === \"asc\" ? (\n <SortAlphabetical className={styles.osdkHeaderIcon} />\n ) : (\n <SortAlphabeticalDesc className={styles.osdkHeaderIcon} />\n )}\n {currentSorting.length > 1 && sortIndex >= 0 && (\n <span className={styles.sortIndex}>{sortIndex + 1}</span>\n )}\n </div>\n )}\n {hasAnyMenuItems && (\n <Menu.Trigger\n aria-label={labels.headerMenuAriaLabel(header.column.id)}\n className={classNames(\n styles.osdkCenterContainer,\n styles.osdkHeaderPopoverTrigger\n )}\n >\n <ChevronDown className={styles.osdkHeaderIcon} />\n </Menu.Trigger>\n )}\n </div>\n <Menu.Portal container={portalContainer}>\n <Menu.Positioner sideOffset={4}>\n <Menu.Popup className={styles.osdkHeaderPopup}>\n {showPinningItems && !isColumnPinned && (\n <HeaderMenuItem\n onClick={handlePinLeft}\n icon={Pin}\n label={labels.headerMenuPinColumn}\n />\n )}\n\n {showPinningItems && isColumnPinned && (\n <HeaderMenuItem\n onClick={handleUnpin}\n icon={Unpin}\n label={labels.headerMenuUnpinColumn}\n active={true}\n />\n )}\n {showSortingItems && isSortable && (\n <>\n <HeaderMenuItem\n onClick={handleSortAscending}\n icon={SortAlphabetical}\n label={labels.headerMenuSortAscending}\n active={isSorted === \"asc\"}\n />\n <HeaderMenuItem\n onClick={handleSortDescending}\n icon={SortAlphabeticalDesc}\n label={labels.headerMenuSortDescending}\n active={isSorted === \"desc\"}\n />\n {columnOptions?.some((col) => col.canSort) && (\n <HeaderMenuItem\n onClick={handleOpenMultiSort}\n icon={Sort}\n label={labels.headerMenuSortOnMultipleColumns}\n />\n )}\n </>\n )}\n {showSortingItems && !!currentSorting?.length && (\n <HeaderMenuItem\n onClick={handleClearAllSorts}\n icon={Remove}\n label={labels.headerMenuClearAllSorts}\n />\n )}\n {showResizeItem && (\n <HeaderMenuItem\n onClick={handleResetSize}\n icon={VerticalDistribution}\n label={labels.headerMenuResetColumnSize}\n />\n )}\n {showConfigItem && (\n <HeaderMenuItem\n onClick={handleOpenColumnConfig}\n icon={Settings}\n label={labels.headerMenuConfigureColumns}\n />\n )}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </div>\n </Menu.Root>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,13 +16,15 @@
|
|
|
16
16
|
|
|
17
17
|
import React from "react";
|
|
18
18
|
import { LoadingCellContent } from "../LoadingCell.js";
|
|
19
|
+
import { useObjectTableLabels } from "../ObjectTableLabels.js";
|
|
19
20
|
export function AsyncValueCell({
|
|
20
21
|
data,
|
|
21
22
|
isLoading,
|
|
22
23
|
error
|
|
23
24
|
}) {
|
|
25
|
+
const labels = useObjectTableLabels();
|
|
24
26
|
if (error != null) {
|
|
25
|
-
return
|
|
27
|
+
return labels.cellError;
|
|
26
28
|
}
|
|
27
29
|
if (data != null) {
|
|
28
30
|
return /*#__PURE__*/React.createElement(React.Fragment, null, data);
|
|
@@ -30,6 +32,6 @@ export function AsyncValueCell({
|
|
|
30
32
|
if (isLoading) {
|
|
31
33
|
return /*#__PURE__*/React.createElement(LoadingCellContent, null);
|
|
32
34
|
}
|
|
33
|
-
return
|
|
35
|
+
return labels.cellNoValue;
|
|
34
36
|
}
|
|
35
37
|
//# sourceMappingURL=AsyncValueCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncValueCell.js","names":["React","LoadingCellContent","AsyncValueCell","data","isLoading","error","createElement","Fragment"],"sources":["AsyncValueCell.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 React from \"react\";\n\nimport { LoadingCellContent } from \"../LoadingCell.js\";\nimport type { AsyncCellData } from \"../utils/AsyncCellData.js\";\n\ninterface AsyncValueCellProps extends AsyncCellData {}\n\nexport function AsyncValueCell({\n data,\n isLoading,\n error,\n}: AsyncValueCellProps): React.ReactNode {\n if (error != null) {\n return
|
|
1
|
+
{"version":3,"file":"AsyncValueCell.js","names":["React","LoadingCellContent","useObjectTableLabels","AsyncValueCell","data","isLoading","error","labels","cellError","createElement","Fragment","cellNoValue"],"sources":["AsyncValueCell.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 React from \"react\";\n\nimport { LoadingCellContent } from \"../LoadingCell.js\";\nimport { useObjectTableLabels } from \"../ObjectTableLabels.js\";\nimport type { AsyncCellData } from \"../utils/AsyncCellData.js\";\n\ninterface AsyncValueCellProps extends AsyncCellData {}\n\nexport function AsyncValueCell({\n data,\n isLoading,\n error,\n}: AsyncValueCellProps): React.ReactNode {\n const labels = useObjectTableLabels();\n if (error != null) {\n return labels.cellError;\n }\n if (data != null) {\n return <>{data}</>;\n }\n if (isLoading) {\n return <LoadingCellContent />;\n }\n return labels.cellNoValue;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,kBAAkB,QAAQ,mBAAmB;AACtD,SAASC,oBAAoB,QAAQ,yBAAyB;AAK9D,OAAO,SAASC,cAAcA,CAAC;EAC7BC,IAAI;EACJC,SAAS;EACTC;AACmB,CAAC,EAAmB;EACvC,MAAMC,MAAM,GAAGL,oBAAoB,CAAC,CAAC;EACrC,IAAII,KAAK,IAAI,IAAI,EAAE;IACjB,OAAOC,MAAM,CAACC,SAAS;EACzB;EACA,IAAIJ,IAAI,IAAI,IAAI,EAAE;IAChB,oBAAOJ,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,QAAGN,IAAO,CAAC;EACpB;EACA,IAAIC,SAAS,EAAE;IACb,oBAAOL,KAAA,CAAAS,aAAA,CAACR,kBAAkB,MAAE,CAAC;EAC/B;EACA,OAAOM,MAAM,CAACI,WAAW;AAC3B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-table.js","names":["ObjectTable","_ObjectTable","withOsdkMetrics","BaseTable","ColumnConfigDialog","MultiColumnSortDialog","LoadingCell","LoadingCellContent","useFunctionColumnsData","useObjectTableData","useColumnDefs","useSelectionColumn","useColumnPinning","useColumnResize","useColumnVisibility","useFocusedRow","useRowSelection","useTableSorting","useEditableTable","useObjectTableSnapshot","useCellContextMenu"],"sources":["object-table.ts"],"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\n// ObjectTable that loads and displays data for a given objectSet\nimport { ObjectTable as _ObjectTable } from \"../../object-table/ObjectTable.js\";\nimport { withOsdkMetrics } from \"../../util/withOsdkMetrics.js\";\nexport const ObjectTable: typeof _ObjectTable = withOsdkMetrics(\n _ObjectTable,\n \"ObjectTable\"\n);\nexport type {\n ColumnDefinition,\n ColumnDefinitionLocator,\n CustomColumnLocator,\n EditFieldConfig,\n FunctionColumnLocator,\n ObjectTableDataColumn,\n ObjectTableDataRow,\n ObjectTableHandle,\n ObjectTableProps,\n ObjectTableSnapshot,\n ObjectTableSnapshotOptions,\n PropertyColumnLocator,\n RdpColumnLocator,\n} from \"../../object-table/ObjectTableApi.js\";\nexport type { CellEditInfo } from \"../../object-table/utils/types.js\";\n\n// BaseTable that does not handle data fetching\nexport type { BaseTableProps } from \"../../object-table/Table.js\";\nexport { BaseTable } from \"../../object-table/Table.js\";\n\nexport { ColumnConfigDialog } from \"../../object-table/ColumnConfigDialog.js\";\nexport type {\n ColumnConfigDialogProps,\n ColumnConfigOptions,\n} from \"../../object-table/ColumnConfigDialog.js\";\n\nexport { MultiColumnSortDialog } from \"../../object-table/MultiColumnSortDialog.js\";\nexport type {\n MultiColumnSortDialogProps,\n SortColumnItem,\n} from \"../../object-table/MultiColumnSortDialog.js\";\n\n// Loading cell components for custom column renderers.\n// Use `LoadingCell` when rendering a full `<td>` element (e.g. in a custom row renderer).\n// Use `LoadingCellContent` when rendering just the skeleton content inside an existing cell.\nexport {\n LoadingCell,\n LoadingCellContent,\n} from \"../../object-table/LoadingCell.js\";\n\n/* --------------------- Headless hooks --------------------- */\n\n// Data loading (OSDK-aware)\nexport {\n type FunctionColumnData,\n useFunctionColumnsData,\n type UseFunctionColumnsDataProps,\n} from \"../../object-table/hooks/useFunctionColumnsData.js\";\nexport {\n useObjectTableData,\n type UseObjectTableDataProps,\n type UseObjectTableDataResult,\n} from \"../../object-table/hooks/useObjectTableData.js\";\n\n// Column definitions\nexport {\n useColumnDefs,\n type UseColumnDefsResult,\n} from \"../../object-table/hooks/useColumnDefs.js\";\nexport {\n useSelectionColumn,\n type UseSelectionColumnProps,\n} from \"../../object-table/hooks/useSelectionColumn.js\";\n\n// Column state\nexport {\n useColumnPinning,\n type UseColumnPinningProps,\n type UseColumnPinningResult,\n} from \"../../object-table/hooks/useColumnPinning.js\";\nexport {\n useColumnResize,\n type UseColumnResizeProps,\n type UseColumnResizeResult,\n} from \"../../object-table/hooks/useColumnResize.js\";\nexport {\n useColumnVisibility,\n type UseColumnVisibilityProps,\n type UseColumnVisibilityResult,\n} from \"../../object-table/hooks/useColumnVisibility.js\";\n\n// Row state\nexport {\n useFocusedRow,\n type UseFocusedRowProps,\n type UseFocusedRowResult,\n} from \"../../object-table/hooks/useFocusedRow.js\";\nexport {\n useRowSelection,\n type UseRowSelectionChange,\n type UseRowSelectionProps,\n type UseRowSelectionResult,\n} from \"../../object-table/hooks/useRowSelection.js\";\n\n// Sorting\nexport {\n useTableSorting,\n type UseTableSortingProps,\n type UseTableSortingResult,\n} from \"../../object-table/hooks/useTableSorting.js\";\n\n// Editing\nexport {\n useEditableTable,\n type UseEditableTableProps,\n} from \"../../object-table/hooks/useEditableTable.js\";\n\n// Snapshot / export\nexport {\n useObjectTableSnapshot,\n type UseObjectTableSnapshotProps,\n} from \"../../object-table/hooks/useObjectTableSnapshot.js\";\n\n// Cell context menu\nexport {\n useCellContextMenu,\n type UseCellContextMenuProps,\n type UseCellContextMenuResult,\n} from \"../../object-table/hooks/useCellContextMenu.js\";\n\n// Supporting types referenced by the hook signatures above\nexport type { PopoverPosition } from \"../../object-table/hooks/useCellContextMenu.js\";\nexport type {\n ObjectSetOptions,\n RowSelectionChange,\n} from \"../../object-table/ObjectTableApi.js\";\nexport type { AsyncCellData } from \"../../object-table/utils/AsyncCellData.js\";\nexport type {\n EditableConfig,\n EditModeState,\n OrderBy,\n} from \"../../object-table/utils/types.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,WAAW,IAAIC,YAAY,QAAQ,mCAAmC;AAC/E,SAASC,eAAe,QAAQ,+BAA+B;AAC/D,OAAO,MAAMF,WAAgC,GAAGE,eAAe,CAC7DD,YAAY,EACZ,aACF,CAAC;;
|
|
1
|
+
{"version":3,"file":"object-table.js","names":["ObjectTable","_ObjectTable","withOsdkMetrics","BaseTable","ColumnConfigDialog","MultiColumnSortDialog","LoadingCell","LoadingCellContent","useFunctionColumnsData","useObjectTableData","useColumnDefs","useSelectionColumn","useColumnPinning","useColumnResize","useColumnVisibility","useFocusedRow","useRowSelection","useTableSorting","useEditableTable","useObjectTableSnapshot","useCellContextMenu"],"sources":["object-table.ts"],"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\n// ObjectTable that loads and displays data for a given objectSet\nimport { ObjectTable as _ObjectTable } from \"../../object-table/ObjectTable.js\";\nimport { withOsdkMetrics } from \"../../util/withOsdkMetrics.js\";\nexport const ObjectTable: typeof _ObjectTable = withOsdkMetrics(\n _ObjectTable,\n \"ObjectTable\"\n);\nexport type {\n ColumnDefinition,\n ColumnDefinitionLocator,\n CustomColumnLocator,\n EditFieldConfig,\n FunctionColumnLocator,\n ObjectTableDataColumn,\n ObjectTableDataRow,\n ObjectTableHandle,\n ObjectTableProps,\n ObjectTableSnapshot,\n ObjectTableSnapshotOptions,\n PropertyColumnLocator,\n RdpColumnLocator,\n} from \"../../object-table/ObjectTableApi.js\";\nexport type { CellEditInfo } from \"../../object-table/utils/types.js\";\n\nexport type { ObjectTableLabels } from \"../../object-table/ObjectTableLabels.js\";\n\n// BaseTable that does not handle data fetching\nexport type { BaseTableProps } from \"../../object-table/Table.js\";\nexport { BaseTable } from \"../../object-table/Table.js\";\n\nexport { ColumnConfigDialog } from \"../../object-table/ColumnConfigDialog.js\";\nexport type {\n ColumnConfigDialogProps,\n ColumnConfigOptions,\n} from \"../../object-table/ColumnConfigDialog.js\";\n\nexport { MultiColumnSortDialog } from \"../../object-table/MultiColumnSortDialog.js\";\nexport type {\n MultiColumnSortDialogProps,\n SortColumnItem,\n} from \"../../object-table/MultiColumnSortDialog.js\";\n\n// Loading cell components for custom column renderers.\n// Use `LoadingCell` when rendering a full `<td>` element (e.g. in a custom row renderer).\n// Use `LoadingCellContent` when rendering just the skeleton content inside an existing cell.\nexport {\n LoadingCell,\n LoadingCellContent,\n} from \"../../object-table/LoadingCell.js\";\n\n/* --------------------- Headless hooks --------------------- */\n\n// Data loading (OSDK-aware)\nexport {\n type FunctionColumnData,\n useFunctionColumnsData,\n type UseFunctionColumnsDataProps,\n} from \"../../object-table/hooks/useFunctionColumnsData.js\";\nexport {\n useObjectTableData,\n type UseObjectTableDataProps,\n type UseObjectTableDataResult,\n} from \"../../object-table/hooks/useObjectTableData.js\";\n\n// Column definitions\nexport {\n useColumnDefs,\n type UseColumnDefsResult,\n} from \"../../object-table/hooks/useColumnDefs.js\";\nexport {\n useSelectionColumn,\n type UseSelectionColumnProps,\n} from \"../../object-table/hooks/useSelectionColumn.js\";\n\n// Column state\nexport {\n useColumnPinning,\n type UseColumnPinningProps,\n type UseColumnPinningResult,\n} from \"../../object-table/hooks/useColumnPinning.js\";\nexport {\n useColumnResize,\n type UseColumnResizeProps,\n type UseColumnResizeResult,\n} from \"../../object-table/hooks/useColumnResize.js\";\nexport {\n useColumnVisibility,\n type UseColumnVisibilityProps,\n type UseColumnVisibilityResult,\n} from \"../../object-table/hooks/useColumnVisibility.js\";\n\n// Row state\nexport {\n useFocusedRow,\n type UseFocusedRowProps,\n type UseFocusedRowResult,\n} from \"../../object-table/hooks/useFocusedRow.js\";\nexport {\n useRowSelection,\n type UseRowSelectionChange,\n type UseRowSelectionProps,\n type UseRowSelectionResult,\n} from \"../../object-table/hooks/useRowSelection.js\";\n\n// Sorting\nexport {\n useTableSorting,\n type UseTableSortingProps,\n type UseTableSortingResult,\n} from \"../../object-table/hooks/useTableSorting.js\";\n\n// Editing\nexport {\n useEditableTable,\n type UseEditableTableProps,\n} from \"../../object-table/hooks/useEditableTable.js\";\n\n// Snapshot / export\nexport {\n useObjectTableSnapshot,\n type UseObjectTableSnapshotProps,\n} from \"../../object-table/hooks/useObjectTableSnapshot.js\";\n\n// Cell context menu\nexport {\n useCellContextMenu,\n type UseCellContextMenuProps,\n type UseCellContextMenuResult,\n} from \"../../object-table/hooks/useCellContextMenu.js\";\n\n// Supporting types referenced by the hook signatures above\nexport type { PopoverPosition } from \"../../object-table/hooks/useCellContextMenu.js\";\nexport type {\n ObjectSetOptions,\n RowSelectionChange,\n} from \"../../object-table/ObjectTableApi.js\";\nexport type { AsyncCellData } from \"../../object-table/utils/AsyncCellData.js\";\nexport type {\n EditableConfig,\n EditModeState,\n OrderBy,\n} from \"../../object-table/utils/types.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,WAAW,IAAIC,YAAY,QAAQ,mCAAmC;AAC/E,SAASC,eAAe,QAAQ,+BAA+B;AAC/D,OAAO,MAAMF,WAAgC,GAAGE,eAAe,CAC7DD,YAAY,EACZ,aACF,CAAC;;AAoBD;;AAEA,SAASE,SAAS,QAAQ,6BAA6B;AAEvD,SAASC,kBAAkB,QAAQ,0CAA0C;AAM7E,SAASC,qBAAqB,QAAQ,6CAA6C;AAMnF;AACA;AACA;AACA,SACEC,WAAW,EACXC,kBAAkB,QACb,mCAAmC;;AAE1C;;AAEA;AACA,SAEEC,sBAAsB,QAEjB,oDAAoD;AAC3D,SACEC,kBAAkB,QAGb,gDAAgD;;AAEvD;AACA,SACEC,aAAa,QAER,2CAA2C;AAClD,SACEC,kBAAkB,QAEb,gDAAgD;;AAEvD;AACA,SACEC,gBAAgB,QAGX,8CAA8C;AACrD,SACEC,eAAe,QAGV,6CAA6C;AACpD,SACEC,mBAAmB,QAGd,iDAAiD;;AAExD;AACA,SACEC,aAAa,QAGR,2CAA2C;AAClD,SACEC,eAAe,QAIV,6CAA6C;;AAEpD;AACA,SACEC,eAAe,QAGV,6CAA6C;;AAEpD;AACA,SACEC,gBAAgB,QAEX,8CAA8C;;AAErD;AACA,SACEC,sBAAsB,QAEjB,oDAAoD;;AAE3D;AACA,SACEC,kBAAkB,QAGb,gDAAgD;;AAEvD","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
const PACKAGE_USER_AGENT = `osdk-react-components/${"0.
|
|
17
|
+
const PACKAGE_USER_AGENT = `osdk-react-components/${"0.41.0-main-7e4163b0319ea02499200d07dc4969e11a5cb33c"}`;
|
|
18
18
|
export function componentUserAgent(componentName) {
|
|
19
19
|
return `${PACKAGE_USER_AGENT}/${componentName}`;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserAgent.js","names":["PACKAGE_USER_AGENT","componentUserAgent","componentName"],"sources":["UserAgent.ts"],"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\nconst PACKAGE_USER_AGENT = `osdk-react-components/${process.env.PACKAGE_VERSION}`;\n\nexport function componentUserAgent(componentName: string): string {\n return `${PACKAGE_USER_AGENT}/${componentName}`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"UserAgent.js","names":["PACKAGE_USER_AGENT","componentUserAgent","componentName"],"sources":["UserAgent.ts"],"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\nconst PACKAGE_USER_AGENT = `osdk-react-components/${process.env.PACKAGE_VERSION}`;\n\nexport function componentUserAgent(componentName: string): string {\n return `${PACKAGE_USER_AGENT}/${componentName}`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,kBAAkB,GAAG,iFAAsD;AAEjF,OAAO,SAASC,kBAAkBA,CAACC,aAAqB,EAAU;EAChE,OAAO,GAAGF,kBAAkB,IAAIE,aAAa,EAAE;AACjD","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkVOROB7KJ_cjs = require('./chunk-VOROB7KJ.cjs');
|
|
4
|
+
var chunkGNXZZXHI_cjs = require('./chunk-GNXZZXHI.cjs');
|
|
5
|
+
|
|
6
|
+
// src/public/experimental/image-viewer.ts
|
|
7
|
+
var ImageViewer2 = chunkGNXZZXHI_cjs.withOsdkMetrics(chunkVOROB7KJ_cjs.ImageViewer, "ImageViewer");
|
|
8
|
+
|
|
9
|
+
exports.ImageViewer = ImageViewer2;
|
|
10
|
+
//# sourceMappingURL=chunk-323YOMG2.cjs.map
|
|
11
|
+
//# sourceMappingURL=chunk-323YOMG2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/public/experimental/image-viewer.ts"],"names":["ImageViewer","withOsdkMetrics"],"mappings":";;;;;;AAqBO,IAAMA,YAAAA,GAAcC,iCAAA,CAAgBD,6BAAA,EAAc,aAAa","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../src/public/experimental/image-viewer.ts"],"names":["ImageViewer","withOsdkMetrics"],"mappings":";;;;;;AAqBO,IAAMA,YAAAA,GAAcC,iCAAA,CAAgBD,6BAAA,EAAc,aAAa","file":"chunk-323YOMG2.cjs","sourcesContent":["/*\n * Copyright 2026 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// BaseImageViewer\nexport { BaseImageViewer } from \"../../images/image-viewer/BaseImageViewer.js\";\n// ImageViewer (Media wrapper)\nimport { ImageViewer as _ImageViewer } from \"../../images/image-viewer/ImageViewer.js\";\nimport { withOsdkMetrics } from \"../../util/withOsdkMetrics.js\";\nexport const ImageViewer = withOsdkMetrics(_ImageViewer, \"ImageViewer\");"]}
|