@osdk/react-components 0.22.0 → 0.22.1-main-2e92b908fc461ab107d493cb0aa71a1be400ef2f
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 +10 -0
- package/build/browser/object-table/hooks/useRowSelection.js +8 -3
- package/build/browser/object-table/hooks/useRowSelection.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-23N6K2BP.cjs +11 -0
- package/build/cjs/{chunk-SBENFO5U.cjs.map → chunk-23N6K2BP.cjs.map} +1 -1
- package/build/cjs/{chunk-B6AIDSEZ.cjs → chunk-5263W3VC.cjs} +4 -4
- package/build/cjs/{chunk-B6AIDSEZ.cjs.map → chunk-5263W3VC.cjs.map} +1 -1
- package/build/cjs/{chunk-V3TF4PWW.cjs → chunk-7GZEFXBQ.cjs} +4 -4
- package/build/cjs/{chunk-V3TF4PWW.cjs.map → chunk-7GZEFXBQ.cjs.map} +1 -1
- package/build/cjs/{chunk-XUVWBVTL.cjs → chunk-CSSQ2OPC.cjs} +6 -6
- package/build/cjs/{chunk-XUVWBVTL.cjs.map → chunk-CSSQ2OPC.cjs.map} +1 -1
- package/build/cjs/{chunk-O3L7F3SI.cjs → chunk-DHQJOBAG.cjs} +3 -3
- package/build/cjs/chunk-DHQJOBAG.cjs.map +1 -0
- package/build/cjs/chunk-F2DOMIN5.cjs +11 -0
- package/build/cjs/{chunk-A3TEU5AA.cjs.map → chunk-F2DOMIN5.cjs.map} +1 -1
- package/build/cjs/{chunk-XZI3NYBD.cjs → chunk-LRP4RUF7.cjs} +4 -4
- package/build/cjs/{chunk-XZI3NYBD.cjs.map → chunk-LRP4RUF7.cjs.map} +1 -1
- package/build/cjs/chunk-ML5N3Z3U.cjs +11 -0
- package/build/cjs/{chunk-AJQTGMS6.cjs.map → chunk-ML5N3Z3U.cjs.map} +1 -1
- package/build/cjs/chunk-NMLJTXBP.cjs +11 -0
- package/build/cjs/{chunk-RVEV2776.cjs.map → chunk-NMLJTXBP.cjs.map} +1 -1
- package/build/cjs/{chunk-5OTHYCAN.cjs → chunk-UADOKJLS.cjs} +4 -4
- package/build/cjs/{chunk-5OTHYCAN.cjs.map → chunk-UADOKJLS.cjs.map} +1 -1
- package/build/cjs/{chunk-6JJVLART.cjs → chunk-UUXJXQCZ.cjs} +4 -4
- package/build/cjs/{chunk-6JJVLART.cjs.map → chunk-UUXJXQCZ.cjs.map} +1 -1
- package/build/cjs/{chunk-WWOD2EMG.cjs → chunk-WEET5XI2.cjs} +4 -4
- package/build/cjs/{chunk-WWOD2EMG.cjs.map → chunk-WEET5XI2.cjs.map} +1 -1
- package/build/cjs/chunk-WZFWCAWK.cjs +11 -0
- package/build/cjs/{chunk-QWVW5PEX.cjs.map → chunk-WZFWCAWK.cjs.map} +1 -1
- package/build/cjs/public/experimental/action-form.cjs +4 -4
- 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 +14 -14
- 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 +8 -8
- 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 +47 -47
- package/build/esm/object-table/hooks/useRowSelection.js +8 -3
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/package.json +7 -7
- package/build/cjs/chunk-A3TEU5AA.cjs +0 -11
- package/build/cjs/chunk-AJQTGMS6.cjs +0 -11
- package/build/cjs/chunk-O3L7F3SI.cjs.map +0 -1
- package/build/cjs/chunk-QWVW5PEX.cjs +0 -11
- package/build/cjs/chunk-RVEV2776.cjs +0 -11
- package/build/cjs/chunk-SBENFO5U.cjs +0 -11
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
3
|
+
var chunkNMLJTXBP_cjs = require('../chunk-NMLJTXBP.cjs');
|
|
4
|
+
var chunk5263W3VC_cjs = require('../chunk-5263W3VC.cjs');
|
|
5
|
+
var chunkWZFWCAWK_cjs = require('../chunk-WZFWCAWK.cjs');
|
|
6
|
+
var chunkWEET5XI2_cjs = require('../chunk-WEET5XI2.cjs');
|
|
7
|
+
var chunkCSSQ2OPC_cjs = require('../chunk-CSSQ2OPC.cjs');
|
|
8
8
|
require('../chunk-POHAXPLQ.cjs');
|
|
9
|
-
var
|
|
9
|
+
var chunkLRP4RUF7_cjs = require('../chunk-LRP4RUF7.cjs');
|
|
10
10
|
var chunk2YA74OKB_cjs = require('../chunk-2YA74OKB.cjs');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var chunkUUXJXQCZ_cjs = require('../chunk-UUXJXQCZ.cjs');
|
|
12
|
+
var chunkML5N3Z3U_cjs = require('../chunk-ML5N3Z3U.cjs');
|
|
13
13
|
require('../chunk-C6IPNPMZ.cjs');
|
|
14
14
|
require('../chunk-DWNKXV5E.cjs');
|
|
15
|
-
var
|
|
15
|
+
var chunkUADOKJLS_cjs = require('../chunk-UADOKJLS.cjs');
|
|
16
16
|
require('../chunk-JKNARBQW.cjs');
|
|
17
17
|
require('../chunk-3S52UDZM.cjs');
|
|
18
18
|
require('../chunk-E5OKIBYJ.cjs');
|
|
@@ -21,7 +21,7 @@ require('../chunk-NE7GRF7G.cjs');
|
|
|
21
21
|
require('../chunk-HNBSGCSZ.cjs');
|
|
22
22
|
require('../chunk-7LXS66DW.cjs');
|
|
23
23
|
require('../chunk-MD4KDE44.cjs');
|
|
24
|
-
var
|
|
24
|
+
var chunk7GZEFXBQ_cjs = require('../chunk-7GZEFXBQ.cjs');
|
|
25
25
|
var chunkOUJQJQ7N_cjs = require('../chunk-OUJQJQ7N.cjs');
|
|
26
26
|
var chunkVOROB7KJ_cjs = require('../chunk-VOROB7KJ.cjs');
|
|
27
27
|
var chunkIYJOHKJE_cjs = require('../chunk-IYJOHKJE.cjs');
|
|
@@ -29,119 +29,119 @@ var chunkFWZS3WQ4_cjs = require('../chunk-FWZS3WQ4.cjs');
|
|
|
29
29
|
var chunkIISDOJPR_cjs = require('../chunk-IISDOJPR.cjs');
|
|
30
30
|
var chunkKHMOMROL_cjs = require('../chunk-KHMOMROL.cjs');
|
|
31
31
|
require('../chunk-UCTQICPR.cjs');
|
|
32
|
-
var
|
|
32
|
+
var chunk23N6K2BP_cjs = require('../chunk-23N6K2BP.cjs');
|
|
33
33
|
var chunkPKJFOG2Z_cjs = require('../chunk-PKJFOG2Z.cjs');
|
|
34
|
-
var
|
|
34
|
+
var chunkF2DOMIN5_cjs = require('../chunk-F2DOMIN5.cjs');
|
|
35
35
|
var chunk4VJIPB7R_cjs = require('../chunk-4VJIPB7R.cjs');
|
|
36
36
|
require('../chunk-MVQKV5BJ.cjs');
|
|
37
|
-
require('../chunk-
|
|
37
|
+
require('../chunk-DHQJOBAG.cjs');
|
|
38
38
|
require('../chunk-Q2W6GYRK.cjs');
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
Object.defineProperty(exports, "XmlViewer", {
|
|
43
43
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkNMLJTXBP_cjs.XmlViewer; }
|
|
45
45
|
});
|
|
46
46
|
Object.defineProperty(exports, "BaseFilterList", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunk5263W3VC_cjs.BaseFilterList; }
|
|
49
49
|
});
|
|
50
50
|
Object.defineProperty(exports, "FilterInput", {
|
|
51
51
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunk5263W3VC_cjs.FilterInput; }
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "FilterList", {
|
|
55
55
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
56
|
+
get: function () { return chunk5263W3VC_cjs.FilterList; }
|
|
57
57
|
});
|
|
58
58
|
Object.defineProperty(exports, "FilterPopover", {
|
|
59
59
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
60
|
+
get: function () { return chunk5263W3VC_cjs.FilterPopover; }
|
|
61
61
|
});
|
|
62
62
|
Object.defineProperty(exports, "deserializeFilterStates", {
|
|
63
63
|
enumerable: true,
|
|
64
|
-
get: function () { return
|
|
64
|
+
get: function () { return chunk5263W3VC_cjs.deserializeFilterStates; }
|
|
65
65
|
});
|
|
66
66
|
Object.defineProperty(exports, "filterHasActiveState", {
|
|
67
67
|
enumerable: true,
|
|
68
|
-
get: function () { return
|
|
68
|
+
get: function () { return chunk5263W3VC_cjs.filterHasActiveState; }
|
|
69
69
|
});
|
|
70
70
|
Object.defineProperty(exports, "getFilterKey", {
|
|
71
71
|
enumerable: true,
|
|
72
|
-
get: function () { return
|
|
72
|
+
get: function () { return chunk5263W3VC_cjs.getFilterKey; }
|
|
73
73
|
});
|
|
74
74
|
Object.defineProperty(exports, "getFilterLabel", {
|
|
75
75
|
enumerable: true,
|
|
76
|
-
get: function () { return
|
|
76
|
+
get: function () { return chunk5263W3VC_cjs.getFilterLabel; }
|
|
77
77
|
});
|
|
78
78
|
Object.defineProperty(exports, "narrowObjectSet", {
|
|
79
79
|
enumerable: true,
|
|
80
|
-
get: function () { return
|
|
80
|
+
get: function () { return chunk5263W3VC_cjs.narrowObjectSet; }
|
|
81
81
|
});
|
|
82
82
|
Object.defineProperty(exports, "serializeFilterStates", {
|
|
83
83
|
enumerable: true,
|
|
84
|
-
get: function () { return
|
|
84
|
+
get: function () { return chunk5263W3VC_cjs.serializeFilterStates; }
|
|
85
85
|
});
|
|
86
86
|
Object.defineProperty(exports, "summarizeFilterValue", {
|
|
87
87
|
enumerable: true,
|
|
88
|
-
get: function () { return
|
|
88
|
+
get: function () { return chunk5263W3VC_cjs.summarizeFilterValue; }
|
|
89
89
|
});
|
|
90
90
|
Object.defineProperty(exports, "useFilterListState", {
|
|
91
91
|
enumerable: true,
|
|
92
|
-
get: function () { return
|
|
92
|
+
get: function () { return chunk5263W3VC_cjs.useFilterListState; }
|
|
93
93
|
});
|
|
94
94
|
Object.defineProperty(exports, "ImageViewer", {
|
|
95
95
|
enumerable: true,
|
|
96
|
-
get: function () { return
|
|
96
|
+
get: function () { return chunkWZFWCAWK_cjs.ImageViewer; }
|
|
97
97
|
});
|
|
98
98
|
Object.defineProperty(exports, "MarkdownViewerMedia", {
|
|
99
99
|
enumerable: true,
|
|
100
|
-
get: function () { return
|
|
100
|
+
get: function () { return chunkWEET5XI2_cjs.MarkdownViewerMedia; }
|
|
101
101
|
});
|
|
102
102
|
Object.defineProperty(exports, "BaseTable", {
|
|
103
103
|
enumerable: true,
|
|
104
|
-
get: function () { return
|
|
104
|
+
get: function () { return chunkCSSQ2OPC_cjs.BaseTable; }
|
|
105
105
|
});
|
|
106
106
|
Object.defineProperty(exports, "ColumnConfigDialog", {
|
|
107
107
|
enumerable: true,
|
|
108
|
-
get: function () { return
|
|
108
|
+
get: function () { return chunkCSSQ2OPC_cjs.ColumnConfigDialog; }
|
|
109
109
|
});
|
|
110
110
|
Object.defineProperty(exports, "LoadingCell", {
|
|
111
111
|
enumerable: true,
|
|
112
|
-
get: function () { return
|
|
112
|
+
get: function () { return chunkCSSQ2OPC_cjs.LoadingCell; }
|
|
113
113
|
});
|
|
114
114
|
Object.defineProperty(exports, "LoadingCellContent", {
|
|
115
115
|
enumerable: true,
|
|
116
|
-
get: function () { return
|
|
116
|
+
get: function () { return chunkCSSQ2OPC_cjs.LoadingCellContent; }
|
|
117
117
|
});
|
|
118
118
|
Object.defineProperty(exports, "MultiColumnSortDialog", {
|
|
119
119
|
enumerable: true,
|
|
120
|
-
get: function () { return
|
|
120
|
+
get: function () { return chunkCSSQ2OPC_cjs.MultiColumnSortDialog; }
|
|
121
121
|
});
|
|
122
122
|
Object.defineProperty(exports, "ObjectTable", {
|
|
123
123
|
enumerable: true,
|
|
124
|
-
get: function () { return
|
|
124
|
+
get: function () { return chunkCSSQ2OPC_cjs.ObjectTable; }
|
|
125
125
|
});
|
|
126
126
|
Object.defineProperty(exports, "PdfViewer", {
|
|
127
127
|
enumerable: true,
|
|
128
|
-
get: function () { return
|
|
128
|
+
get: function () { return chunkLRP4RUF7_cjs.PdfViewer; }
|
|
129
129
|
});
|
|
130
130
|
Object.defineProperty(exports, "PdfViewerContent", {
|
|
131
131
|
enumerable: true,
|
|
132
|
-
get: function () { return
|
|
132
|
+
get: function () { return chunkLRP4RUF7_cjs.PdfViewerContent; }
|
|
133
133
|
});
|
|
134
134
|
Object.defineProperty(exports, "PdfViewerProvider", {
|
|
135
135
|
enumerable: true,
|
|
136
|
-
get: function () { return
|
|
136
|
+
get: function () { return chunkLRP4RUF7_cjs.PdfViewerProvider; }
|
|
137
137
|
});
|
|
138
138
|
Object.defineProperty(exports, "usePdfViewerContext", {
|
|
139
139
|
enumerable: true,
|
|
140
|
-
get: function () { return
|
|
140
|
+
get: function () { return chunkLRP4RUF7_cjs.usePdfViewerContext; }
|
|
141
141
|
});
|
|
142
142
|
Object.defineProperty(exports, "usePdfViewerInstance", {
|
|
143
143
|
enumerable: true,
|
|
144
|
-
get: function () { return
|
|
144
|
+
get: function () { return chunkLRP4RUF7_cjs.usePdfViewerInstance; }
|
|
145
145
|
});
|
|
146
146
|
Object.defineProperty(exports, "OsdkThemeProvider", {
|
|
147
147
|
enumerable: true,
|
|
@@ -153,27 +153,27 @@ Object.defineProperty(exports, "useOsdkTheme", {
|
|
|
153
153
|
});
|
|
154
154
|
Object.defineProperty(exports, "TiffViewerMedia", {
|
|
155
155
|
enumerable: true,
|
|
156
|
-
get: function () { return
|
|
156
|
+
get: function () { return chunkUUXJXQCZ_cjs.TiffViewerMedia; }
|
|
157
157
|
});
|
|
158
158
|
Object.defineProperty(exports, "VideoViewer", {
|
|
159
159
|
enumerable: true,
|
|
160
|
-
get: function () { return
|
|
160
|
+
get: function () { return chunkML5N3Z3U_cjs.VideoViewer; }
|
|
161
161
|
});
|
|
162
162
|
Object.defineProperty(exports, "ActionForm", {
|
|
163
163
|
enumerable: true,
|
|
164
|
-
get: function () { return
|
|
164
|
+
get: function () { return chunkUADOKJLS_cjs.ActionForm; }
|
|
165
165
|
});
|
|
166
166
|
Object.defineProperty(exports, "BaseForm", {
|
|
167
167
|
enumerable: true,
|
|
168
|
-
get: function () { return
|
|
168
|
+
get: function () { return chunkUADOKJLS_cjs.BaseForm; }
|
|
169
169
|
});
|
|
170
170
|
Object.defineProperty(exports, "DocumentViewer", {
|
|
171
171
|
enumerable: true,
|
|
172
|
-
get: function () { return
|
|
172
|
+
get: function () { return chunk7GZEFXBQ_cjs.DocumentViewer; }
|
|
173
173
|
});
|
|
174
174
|
Object.defineProperty(exports, "ViewerType", {
|
|
175
175
|
enumerable: true,
|
|
176
|
-
get: function () { return
|
|
176
|
+
get: function () { return chunk7GZEFXBQ_cjs.ViewerType; }
|
|
177
177
|
});
|
|
178
178
|
Object.defineProperty(exports, "BaseXmlViewer", {
|
|
179
179
|
enumerable: true,
|
|
@@ -265,7 +265,7 @@ Object.defineProperty(exports, "BaseVideoViewer", {
|
|
|
265
265
|
});
|
|
266
266
|
Object.defineProperty(exports, "EmailViewer", {
|
|
267
267
|
enumerable: true,
|
|
268
|
-
get: function () { return
|
|
268
|
+
get: function () { return chunk23N6K2BP_cjs.EmailViewer; }
|
|
269
269
|
});
|
|
270
270
|
Object.defineProperty(exports, "BaseEmailViewer", {
|
|
271
271
|
enumerable: true,
|
|
@@ -273,7 +273,7 @@ Object.defineProperty(exports, "BaseEmailViewer", {
|
|
|
273
273
|
});
|
|
274
274
|
Object.defineProperty(exports, "ExcelViewer", {
|
|
275
275
|
enumerable: true,
|
|
276
|
-
get: function () { return
|
|
276
|
+
get: function () { return chunkF2DOMIN5_cjs.ExcelViewer; }
|
|
277
277
|
});
|
|
278
278
|
Object.defineProperty(exports, "BaseExcelViewer", {
|
|
279
279
|
enumerable: true,
|
|
@@ -54,6 +54,8 @@ export function useRowSelection({
|
|
|
54
54
|
const selectedCount = useMemo(() => Object.values(rowSelectionState).filter(Boolean).length, [rowSelectionState]);
|
|
55
55
|
const totalCount = data?.length ?? 0;
|
|
56
56
|
const isAllSelected = deriveIsAllSelected(isControlled, isAllSelectedProp, internalIsAllSelected, selectedCount, totalCount);
|
|
57
|
+
const hasSelection = isAllSelected || selectedCount > 0;
|
|
58
|
+
|
|
57
59
|
// Dedupes refires when "select all" is active and data grows.
|
|
58
60
|
const lastFiredAllSelectedIdsRef = useRef(null);
|
|
59
61
|
const fireSelectionCallbacks = useEventCallback((ids, isSelectAll) => {
|
|
@@ -69,7 +71,10 @@ export function useRowSelection({
|
|
|
69
71
|
});
|
|
70
72
|
const onToggleAll = useCallback(() => {
|
|
71
73
|
if (!enableRowSelection || !data) return;
|
|
72
|
-
|
|
74
|
+
|
|
75
|
+
// Any existing selection (full or partial/indeterminate) clears on click;
|
|
76
|
+
// only an empty selection promotes to "select all".
|
|
77
|
+
const newIsAllSelected = !hasSelection;
|
|
73
78
|
const newSelectedRows = newIsAllSelected ? data.map(item => item.$primaryKey) : [];
|
|
74
79
|
if (!isControlled) {
|
|
75
80
|
setInternalIsAllSelected(newIsAllSelected);
|
|
@@ -77,7 +82,7 @@ export function useRowSelection({
|
|
|
77
82
|
}
|
|
78
83
|
lastFiredAllSelectedIdsRef.current = newIsAllSelected ? JSON.stringify(newSelectedRows) : null;
|
|
79
84
|
fireSelectionCallbacks(newSelectedRows, newIsAllSelected);
|
|
80
|
-
}, [enableRowSelection, data,
|
|
85
|
+
}, [enableRowSelection, data, hasSelection, isControlled, fireSelectionCallbacks]);
|
|
81
86
|
const onToggleRow = useCallback((rowId, rowIndex, isShiftClick = false) => {
|
|
82
87
|
if (!enableRowSelection || !data) return;
|
|
83
88
|
let newSelectedRows;
|
|
@@ -140,7 +145,7 @@ export function useRowSelection({
|
|
|
140
145
|
rowSelection: rowSelectionState,
|
|
141
146
|
isAllSelected,
|
|
142
147
|
enableRowSelection,
|
|
143
|
-
hasSelection
|
|
148
|
+
hasSelection,
|
|
144
149
|
onToggleAll,
|
|
145
150
|
onToggleRow
|
|
146
151
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRowSelection.js","names":["useCallback","useEffect","useMemo","useRef","useState","useEventCallback","getRowId","getRowIdFromPrimaryKey","useRowSelection","selectionMode","selectedRows","isAllSelected","isAllSelectedProp","onRowSelection","onRowSelectionChanged","data","internalRowSelection","setInternalRowSelection","internalIsAllSelected","setInternalIsAllSelected","lastSelectedRowIndex","setLastSelectedRowIndex","isControlled","undefined","enableRowSelection","rowSelectionState","selectedRowIds","map","item","$primaryKey","getRowSelectionState","selectedCount","Object","values","filter","Boolean","length","totalCount","deriveIsAllSelected","lastFiredAllSelectedIdsRef","fireSelectionCallbacks","ids","isSelectAll","selectedKeySet","Set","id","String","instances","has","onToggleAll","newIsAllSelected","newSelectedRows","current","JSON","stringify","onToggleRow","rowId","rowIndex","isShiftClick","getSingleSelectionRows","getRangeSelectionRows","getMultipleSelectionRows","isCurrentlySelected","serializedIds","rowSelection","hasSelection","primaryKey","rowsInRange","getRowsInRange","primaryKeysInRange","currentlySelected","getSelectedPrimaryKeys","forEach","includes","push","i","startIndex","endIndex","start","Math","min","end","max","rows","primaryKeys","reduce","acc","selectionState"],"sources":["useRowSelection.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\nimport type {\n ObjectOrInterfaceDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { RowSelectionState } from \"@tanstack/react-table\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useEventCallback } from \"../../shared/hooks/useEventCallback.js\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\n\n/**\n * Payload delivered by {@link UseRowSelectionProps.onRowSelectionChanged}.\n * Mirrors the OSDK-level `RowSelectionChange` but without the `objectSet`\n * field, which requires OSDK context and is composed in `ObjectTable`.\n */\nexport interface UseRowSelectionChange<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n selectedRows: Osdk.Instance<\n Q,\n \"$allBaseProperties\",\n PropertyKeys<Q>,\n RDPs\n >[];\n isSelectAll: boolean;\n}\n\nexport interface UseRowSelectionProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n selectedRows?: PrimaryKeyType<Q>[];\n isAllSelected?: boolean;\n /**\n * @deprecated Use {@link onRowSelectionChanged} instead.\n */\n onRowSelection?: (\n selectedRowIds: PrimaryKeyType<Q>[],\n isSelectAll: boolean,\n ) => void;\n onRowSelectionChanged?: (\n change: UseRowSelectionChange<Q, RDPs>,\n ) => void;\n data:\n | Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>\n | undefined;\n}\n\nexport interface UseRowSelectionResult {\n rowSelection: RowSelectionState;\n isAllSelected: boolean;\n hasSelection: boolean;\n enableRowSelection: boolean;\n onToggleAll: () => void;\n onToggleRow: (\n rowId: string,\n rowIndex: number,\n isShiftClick?: boolean,\n ) => void;\n}\n\nexport function useRowSelection<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>({\n selectionMode = \"none\",\n selectedRows,\n isAllSelected: isAllSelectedProp,\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- intentional pass-through to fire alongside onRowSelectionChanged for backwards compatibility\n onRowSelection,\n onRowSelectionChanged,\n data,\n}: UseRowSelectionProps<Q, RDPs>): UseRowSelectionResult {\n const [internalRowSelection, setInternalRowSelection] = useState<\n RowSelectionState\n >({});\n\n // When true, newly fetched rows are auto-selected (uncontrolled mode only).\n const [internalIsAllSelected, setInternalIsAllSelected] = useState(false);\n\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState<\n number | null\n >(null);\n\n const isControlled = selectedRows !== undefined;\n const enableRowSelection = selectionMode !== \"none\";\n\n const rowSelectionState: RowSelectionState = useMemo(() => {\n if (!enableRowSelection) return {};\n if (isControlled) {\n const selectedRowIds = isAllSelectedProp\n ? (data ?? []).map(item => item.$primaryKey)\n : selectedRows;\n return getRowSelectionState(selectedRowIds);\n }\n if (internalIsAllSelected) {\n return getRowSelectionState(\n (data ?? []).map(item => item.$primaryKey),\n );\n }\n return internalRowSelection;\n }, [\n enableRowSelection,\n isControlled,\n selectedRows,\n isAllSelectedProp,\n internalIsAllSelected,\n internalRowSelection,\n data,\n ]);\n\n const selectedCount = useMemo(\n () => Object.values(rowSelectionState).filter(Boolean).length,\n [rowSelectionState],\n );\n const totalCount = data?.length ?? 0;\n const isAllSelected = deriveIsAllSelected(\n isControlled,\n isAllSelectedProp,\n internalIsAllSelected,\n selectedCount,\n totalCount,\n );\n const hasSelection = isAllSelected || selectedCount > 0;\n\n // Dedupes refires when \"select all\" is active and data grows.\n const lastFiredAllSelectedIdsRef = useRef<string | null>(null);\n\n const fireSelectionCallbacks = useEventCallback(\n (ids: PrimaryKeyType<Q>[], isSelectAll: boolean) => {\n onRowSelection?.(ids, isSelectAll);\n if (onRowSelectionChanged) {\n const currentData = data ?? [];\n const selectedKeySet = new Set(ids.map(id => String(id)));\n const instances = currentData.filter(item =>\n selectedKeySet.has(String(item.$primaryKey))\n );\n onRowSelectionChanged({\n selectedRows: instances,\n isSelectAll,\n });\n }\n },\n );\n\n const onToggleAll = useCallback(() => {\n if (!enableRowSelection || !data) return;\n\n const newIsAllSelected = !isAllSelected;\n const newSelectedRows: PrimaryKeyType<Q>[] = newIsAllSelected\n ? data.map(item => item.$primaryKey)\n : [];\n\n if (!isControlled) {\n setInternalIsAllSelected(newIsAllSelected);\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n lastFiredAllSelectedIdsRef.current = newIsAllSelected\n ? JSON.stringify(newSelectedRows)\n : null;\n fireSelectionCallbacks(newSelectedRows, newIsAllSelected);\n }, [\n enableRowSelection,\n data,\n isAllSelected,\n isControlled,\n fireSelectionCallbacks,\n ]);\n\n const onToggleRow = useCallback(\n (rowId: string, rowIndex: number, isShiftClick: boolean = false) => {\n if (!enableRowSelection || !data) return;\n\n let newSelectedRows: PrimaryKeyType<Q>[];\n\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState,\n });\n } else {\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows(\n { rowId, rowIndex, data, lastSelectedRowIndex, rowSelectionState },\n );\n setLastSelectedRowIndex(rowIndex);\n } else {\n newSelectedRows = getMultipleSelectionRows(\n { rowId, rowIndex, data, rowSelectionState },\n );\n if (\n !isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ) {\n setLastSelectedRowIndex(rowIndex);\n }\n }\n }\n if (!isControlled) {\n setInternalIsAllSelected(false);\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n lastFiredAllSelectedIdsRef.current = null;\n fireSelectionCallbacks(newSelectedRows, false);\n },\n [\n enableRowSelection,\n data,\n selectionMode,\n isControlled,\n fireSelectionCallbacks,\n rowSelectionState,\n lastSelectedRowIndex,\n ],\n );\n\n // Refire callbacks when uncontrolled \"select all\" is active and new rows arrive.\n useEffect(function syncSelectAllOnDataChange() {\n if (isControlled || !internalIsAllSelected || !data) {\n if (!internalIsAllSelected) {\n lastFiredAllSelectedIdsRef.current = null;\n }\n return;\n }\n const ids = data.map(item => item.$primaryKey);\n const serializedIds = JSON.stringify(ids);\n if (lastFiredAllSelectedIdsRef.current === serializedIds) return;\n lastFiredAllSelectedIdsRef.current = serializedIds;\n fireSelectionCallbacks(ids, true);\n }, [isControlled, internalIsAllSelected, data, fireSelectionCallbacks]);\n\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n enableRowSelection,\n hasSelection,\n onToggleAll,\n onToggleRow,\n };\n}\n\ninterface GetSelectedRowsProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n rowId: string;\n rowIndex: number;\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>;\n rowSelectionState: RowSelectionState;\n lastSelectedRowIndex?: number;\n}\n\nfunction getSingleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowId, rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n return rowSelectionState[rowId] ? [] : [primaryKey];\n}\n\nfunction getRangeSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { lastSelectedRowIndex, rowIndex, data, rowSelectionState }:\n GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\n\nfunction isCurrentlySelected<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: Pick<\n GetSelectedRowsProps<Q, RDPs>,\n \"rowIndex\" | \"data\" | \"rowSelectionState\"\n >,\n): boolean {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return currentlySelected.includes(primaryKey);\n}\n\nfunction getMultipleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ? currentlySelected.filter(i => i !== primaryKey)\n : [...currentlySelected, primaryKey];\n}\n\nfunction getRowsInRange<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n startIndex: number,\n endIndex: number,\n): Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>> {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows: Array<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n > = [];\n\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n\n return rows;\n}\n\nfunction deriveIsAllSelected(\n isControlled: boolean,\n isAllSelectedProp: boolean | undefined,\n internalIsAllSelected: boolean,\n selectedCount: number,\n totalCount: number,\n): boolean {\n if (isControlled && isAllSelectedProp !== undefined) return isAllSelectedProp;\n if (!isControlled && internalIsAllSelected) return true;\n return totalCount > 0 && selectedCount === totalCount;\n}\n\nfunction getRowSelectionState<Q extends ObjectOrInterfaceDefinition>(\n primaryKeys: PrimaryKeyType<Q>[],\n): RowSelectionState {\n return primaryKeys.reduce<RowSelectionState>(\n (acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n },\n {},\n );\n}\n\nfunction getSelectedPrimaryKeys<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n selectionState: RowSelectionState,\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n): PrimaryKeyType<Q>[] {\n return data\n .filter(item => selectionState[getRowId(item)])\n .map(item => item.$primaryKey);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useRowSelection.js","names":["useCallback","useEffect","useMemo","useRef","useState","useEventCallback","getRowId","getRowIdFromPrimaryKey","useRowSelection","selectionMode","selectedRows","isAllSelected","isAllSelectedProp","onRowSelection","onRowSelectionChanged","data","internalRowSelection","setInternalRowSelection","internalIsAllSelected","setInternalIsAllSelected","lastSelectedRowIndex","setLastSelectedRowIndex","isControlled","undefined","enableRowSelection","rowSelectionState","selectedRowIds","map","item","$primaryKey","getRowSelectionState","selectedCount","Object","values","filter","Boolean","length","totalCount","deriveIsAllSelected","hasSelection","lastFiredAllSelectedIdsRef","fireSelectionCallbacks","ids","isSelectAll","selectedKeySet","Set","id","String","instances","has","onToggleAll","newIsAllSelected","newSelectedRows","current","JSON","stringify","onToggleRow","rowId","rowIndex","isShiftClick","getSingleSelectionRows","getRangeSelectionRows","getMultipleSelectionRows","isCurrentlySelected","serializedIds","rowSelection","primaryKey","rowsInRange","getRowsInRange","primaryKeysInRange","currentlySelected","getSelectedPrimaryKeys","forEach","includes","push","i","startIndex","endIndex","start","Math","min","end","max","rows","primaryKeys","reduce","acc","selectionState"],"sources":["useRowSelection.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\nimport type {\n ObjectOrInterfaceDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { RowSelectionState } from \"@tanstack/react-table\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useEventCallback } from \"../../shared/hooks/useEventCallback.js\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\n\n/**\n * Payload delivered by {@link UseRowSelectionProps.onRowSelectionChanged}.\n * Mirrors the OSDK-level `RowSelectionChange` but without the `objectSet`\n * field, which requires OSDK context and is composed in `ObjectTable`.\n */\nexport interface UseRowSelectionChange<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n selectedRows: Osdk.Instance<\n Q,\n \"$allBaseProperties\",\n PropertyKeys<Q>,\n RDPs\n >[];\n isSelectAll: boolean;\n}\n\nexport interface UseRowSelectionProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n selectedRows?: PrimaryKeyType<Q>[];\n isAllSelected?: boolean;\n /**\n * @deprecated Use {@link onRowSelectionChanged} instead.\n */\n onRowSelection?: (\n selectedRowIds: PrimaryKeyType<Q>[],\n isSelectAll: boolean,\n ) => void;\n onRowSelectionChanged?: (\n change: UseRowSelectionChange<Q, RDPs>,\n ) => void;\n data:\n | Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>\n | undefined;\n}\n\nexport interface UseRowSelectionResult {\n rowSelection: RowSelectionState;\n isAllSelected: boolean;\n hasSelection: boolean;\n enableRowSelection: boolean;\n onToggleAll: () => void;\n onToggleRow: (\n rowId: string,\n rowIndex: number,\n isShiftClick?: boolean,\n ) => void;\n}\n\nexport function useRowSelection<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>({\n selectionMode = \"none\",\n selectedRows,\n isAllSelected: isAllSelectedProp,\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- intentional pass-through to fire alongside onRowSelectionChanged for backwards compatibility\n onRowSelection,\n onRowSelectionChanged,\n data,\n}: UseRowSelectionProps<Q, RDPs>): UseRowSelectionResult {\n const [internalRowSelection, setInternalRowSelection] = useState<\n RowSelectionState\n >({});\n\n // When true, newly fetched rows are auto-selected (uncontrolled mode only).\n const [internalIsAllSelected, setInternalIsAllSelected] = useState(false);\n\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState<\n number | null\n >(null);\n\n const isControlled = selectedRows !== undefined;\n const enableRowSelection = selectionMode !== \"none\";\n\n const rowSelectionState: RowSelectionState = useMemo(() => {\n if (!enableRowSelection) return {};\n if (isControlled) {\n const selectedRowIds = isAllSelectedProp\n ? (data ?? []).map(item => item.$primaryKey)\n : selectedRows;\n return getRowSelectionState(selectedRowIds);\n }\n if (internalIsAllSelected) {\n return getRowSelectionState(\n (data ?? []).map(item => item.$primaryKey),\n );\n }\n return internalRowSelection;\n }, [\n enableRowSelection,\n isControlled,\n selectedRows,\n isAllSelectedProp,\n internalIsAllSelected,\n internalRowSelection,\n data,\n ]);\n\n const selectedCount = useMemo(\n () => Object.values(rowSelectionState).filter(Boolean).length,\n [rowSelectionState],\n );\n const totalCount = data?.length ?? 0;\n const isAllSelected = deriveIsAllSelected(\n isControlled,\n isAllSelectedProp,\n internalIsAllSelected,\n selectedCount,\n totalCount,\n );\n const hasSelection = isAllSelected || selectedCount > 0;\n\n // Dedupes refires when \"select all\" is active and data grows.\n const lastFiredAllSelectedIdsRef = useRef<string | null>(null);\n\n const fireSelectionCallbacks = useEventCallback(\n (ids: PrimaryKeyType<Q>[], isSelectAll: boolean) => {\n onRowSelection?.(ids, isSelectAll);\n if (onRowSelectionChanged) {\n const currentData = data ?? [];\n const selectedKeySet = new Set(ids.map(id => String(id)));\n const instances = currentData.filter(item =>\n selectedKeySet.has(String(item.$primaryKey))\n );\n onRowSelectionChanged({\n selectedRows: instances,\n isSelectAll,\n });\n }\n },\n );\n\n const onToggleAll = useCallback(() => {\n if (!enableRowSelection || !data) return;\n\n // Any existing selection (full or partial/indeterminate) clears on click;\n // only an empty selection promotes to \"select all\".\n const newIsAllSelected = !hasSelection;\n const newSelectedRows: PrimaryKeyType<Q>[] = newIsAllSelected\n ? data.map(item => item.$primaryKey)\n : [];\n\n if (!isControlled) {\n setInternalIsAllSelected(newIsAllSelected);\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n lastFiredAllSelectedIdsRef.current = newIsAllSelected\n ? JSON.stringify(newSelectedRows)\n : null;\n fireSelectionCallbacks(newSelectedRows, newIsAllSelected);\n }, [\n enableRowSelection,\n data,\n hasSelection,\n isControlled,\n fireSelectionCallbacks,\n ]);\n\n const onToggleRow = useCallback(\n (rowId: string, rowIndex: number, isShiftClick: boolean = false) => {\n if (!enableRowSelection || !data) return;\n\n let newSelectedRows: PrimaryKeyType<Q>[];\n\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState,\n });\n } else {\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows(\n { rowId, rowIndex, data, lastSelectedRowIndex, rowSelectionState },\n );\n setLastSelectedRowIndex(rowIndex);\n } else {\n newSelectedRows = getMultipleSelectionRows(\n { rowId, rowIndex, data, rowSelectionState },\n );\n if (\n !isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ) {\n setLastSelectedRowIndex(rowIndex);\n }\n }\n }\n if (!isControlled) {\n setInternalIsAllSelected(false);\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n lastFiredAllSelectedIdsRef.current = null;\n fireSelectionCallbacks(newSelectedRows, false);\n },\n [\n enableRowSelection,\n data,\n selectionMode,\n isControlled,\n fireSelectionCallbacks,\n rowSelectionState,\n lastSelectedRowIndex,\n ],\n );\n\n // Refire callbacks when uncontrolled \"select all\" is active and new rows arrive.\n useEffect(function syncSelectAllOnDataChange() {\n if (isControlled || !internalIsAllSelected || !data) {\n if (!internalIsAllSelected) {\n lastFiredAllSelectedIdsRef.current = null;\n }\n return;\n }\n const ids = data.map(item => item.$primaryKey);\n const serializedIds = JSON.stringify(ids);\n if (lastFiredAllSelectedIdsRef.current === serializedIds) return;\n lastFiredAllSelectedIdsRef.current = serializedIds;\n fireSelectionCallbacks(ids, true);\n }, [isControlled, internalIsAllSelected, data, fireSelectionCallbacks]);\n\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n enableRowSelection,\n hasSelection,\n onToggleAll,\n onToggleRow,\n };\n}\n\ninterface GetSelectedRowsProps<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n> {\n rowId: string;\n rowIndex: number;\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>;\n rowSelectionState: RowSelectionState;\n lastSelectedRowIndex?: number;\n}\n\nfunction getSingleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowId, rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n return rowSelectionState[rowId] ? [] : [primaryKey];\n}\n\nfunction getRangeSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { lastSelectedRowIndex, rowIndex, data, rowSelectionState }:\n GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\n\nfunction isCurrentlySelected<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: Pick<\n GetSelectedRowsProps<Q, RDPs>,\n \"rowIndex\" | \"data\" | \"rowSelectionState\"\n >,\n): boolean {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return currentlySelected.includes(primaryKey);\n}\n\nfunction getMultipleSelectionRows<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n return isCurrentlySelected<Q, RDPs>({ rowIndex, data, rowSelectionState })\n ? currentlySelected.filter(i => i !== primaryKey)\n : [...currentlySelected, primaryKey];\n}\n\nfunction getRowsInRange<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n startIndex: number,\n endIndex: number,\n): Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>> {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows: Array<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n > = [];\n\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n\n return rows;\n}\n\nfunction deriveIsAllSelected(\n isControlled: boolean,\n isAllSelectedProp: boolean | undefined,\n internalIsAllSelected: boolean,\n selectedCount: number,\n totalCount: number,\n): boolean {\n if (isControlled && isAllSelectedProp !== undefined) return isAllSelectedProp;\n if (!isControlled && internalIsAllSelected) return true;\n return totalCount > 0 && selectedCount === totalCount;\n}\n\nfunction getRowSelectionState<Q extends ObjectOrInterfaceDefinition>(\n primaryKeys: PrimaryKeyType<Q>[],\n): RowSelectionState {\n return primaryKeys.reduce<RowSelectionState>(\n (acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n },\n {},\n );\n}\n\nfunction getSelectedPrimaryKeys<\n Q extends ObjectOrInterfaceDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,\n>(\n selectionState: RowSelectionState,\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>>,\n): PrimaryKeyType<Q>[] {\n return data\n .filter(item => selectionState[getRowId(item)])\n .map(item => item.$primaryKey);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
const PACKAGE_USER_AGENT = `osdk-react-components/${"0.22.
|
|
17
|
+
const PACKAGE_USER_AGENT = `osdk-react-components/${"0.22.1-main-2e92b908fc461ab107d493cb0aa71a1be400ef2f"}`;
|
|
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 =\n `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,GACtB,
|
|
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 =\n `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,GACtB,iFAAsD;AAExD,OAAO,SAASC,kBAAkBA,CAACC,aAAqB,EAAU;EAChE,OAAO,GAAGF,kBAAkB,IAAIE,aAAa,EAAE;AACjD","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/react-components",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.1-main-2e92b908fc461ab107d493cb0aa71a1be400ef2f",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -193,9 +193,9 @@
|
|
|
193
193
|
"xlsx": "^0.18.5"
|
|
194
194
|
},
|
|
195
195
|
"peerDependencies": {
|
|
196
|
-
"@osdk/api": "
|
|
197
|
-
"@osdk/client": "
|
|
198
|
-
"@osdk/react": "
|
|
196
|
+
"@osdk/api": ">=2.25.1-beta.0",
|
|
197
|
+
"@osdk/client": ">=2.25.1-beta.0",
|
|
198
|
+
"@osdk/react": ">=2.25.1-beta.0",
|
|
199
199
|
"@types/react": "^17 || ^18 || ^19",
|
|
200
200
|
"classnames": "^2.0.0",
|
|
201
201
|
"react": "^17 || ^18 || ^19",
|
|
@@ -220,11 +220,11 @@
|
|
|
220
220
|
"react-dom": "^18.3.1",
|
|
221
221
|
"typescript": "~5.5.4",
|
|
222
222
|
"@osdk/aip-core": "0.4.0",
|
|
223
|
+
"@osdk/api": "2.25.1-main-2e92b908fc461ab107d493cb0aa71a1be400ef2f",
|
|
224
|
+
"@osdk/client": "2.25.1-main-2e92b908fc461ab107d493cb0aa71a1be400ef2f",
|
|
223
225
|
"@osdk/monorepo.api-extractor": "~0.7.0",
|
|
224
|
-
"@osdk/client": "2.25.0",
|
|
225
226
|
"@osdk/monorepo.tsconfig": "~0.7.0",
|
|
226
|
-
"@osdk/
|
|
227
|
-
"@osdk/react": "2.25.0"
|
|
227
|
+
"@osdk/react": "2.25.1-main-2e92b908fc461ab107d493cb0aa71a1be400ef2f"
|
|
228
228
|
},
|
|
229
229
|
"publishConfig": {
|
|
230
230
|
"access": "public"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunk4VJIPB7R_cjs = require('./chunk-4VJIPB7R.cjs');
|
|
4
|
-
var chunkO3L7F3SI_cjs = require('./chunk-O3L7F3SI.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/excel-viewer.ts
|
|
7
|
-
var ExcelViewer2 = chunkO3L7F3SI_cjs.withOsdkMetrics(chunk4VJIPB7R_cjs.ExcelViewer, "ExcelViewer");
|
|
8
|
-
|
|
9
|
-
exports.ExcelViewer = ExcelViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-A3TEU5AA.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-A3TEU5AA.cjs.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkKHMOMROL_cjs = require('./chunk-KHMOMROL.cjs');
|
|
4
|
-
var chunkO3L7F3SI_cjs = require('./chunk-O3L7F3SI.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/video-viewer.ts
|
|
7
|
-
var VideoViewer2 = chunkO3L7F3SI_cjs.withOsdkMetrics(chunkKHMOMROL_cjs.VideoViewer, "VideoViewer");
|
|
8
|
-
|
|
9
|
-
exports.VideoViewer = VideoViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-AJQTGMS6.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-AJQTGMS6.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/UserAgent.ts","../../src/util/withOsdkMetrics.ts"],"names":["useRegisterUserAgent","React"],"mappings":";;;;;;;;;;;;AAgBA,IAAM,kBAAA,GAAqB,yBAAyB,QAA2B,CAAA,CAAA;AACxE,SAAS,mBAAmB,aAAA,EAAe;AAChD,EAAA,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAC/C;;;ACKO,SAAS,eAAA,CAAgB,WAAW,IAAA,EAAM;AAC/C,EAAA,MAAM,UAAU,CAAA,KAAA,KAAS;AACvB,IAAAA,0BAAA,CAAqB,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAC7C,IAAA,uBAAoBC,sBAAA,CAAM,aAAA,CAAc,SAAA,EAAW,KAAK,CAAA;AAAA,EAC1D,CAAA;AACA,EAAA,OAAA,CAAQ,WAAA,GAAc,mBAAmB,IAAI,CAAA,CAAA,CAAA;AAC7C,EAAA,OAAO,OAAA;AACT","file":"chunk-O3L7F3SI.cjs","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}`;\nexport function componentUserAgent(componentName) {\n return `${PACKAGE_USER_AGENT}/${componentName}`;\n}","/*\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 { useRegisterUserAgent } from \"@osdk/react\";\nimport React from \"react\";\nimport { componentUserAgent } from \"./UserAgent.js\";\n\n// `any` is required: FunctionComponent defaults to FunctionComponent<{}> which\n// rejects components with required props. A generic P parameter doesn't help\n// because TS can't infer both P and C simultaneously from a single argument.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withOsdkMetrics(Component, name) {\n const Wrapped = props => {\n useRegisterUserAgent(componentUserAgent(name));\n return /*#__PURE__*/React.createElement(Component, props);\n };\n Wrapped.displayName = `withOsdkMetrics(${name})`;\n return Wrapped;\n}"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkVOROB7KJ_cjs = require('./chunk-VOROB7KJ.cjs');
|
|
4
|
-
var chunkO3L7F3SI_cjs = require('./chunk-O3L7F3SI.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/image-viewer.ts
|
|
7
|
-
var ImageViewer2 = chunkO3L7F3SI_cjs.withOsdkMetrics(chunkVOROB7KJ_cjs.ImageViewer, "ImageViewer");
|
|
8
|
-
|
|
9
|
-
exports.ImageViewer = ImageViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-QWVW5PEX.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-QWVW5PEX.cjs.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkOUJQJQ7N_cjs = require('./chunk-OUJQJQ7N.cjs');
|
|
4
|
-
var chunkO3L7F3SI_cjs = require('./chunk-O3L7F3SI.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/xml-viewer.ts
|
|
7
|
-
var XmlViewer2 = chunkO3L7F3SI_cjs.withOsdkMetrics(chunkOUJQJQ7N_cjs.XmlViewer, "XmlViewer");
|
|
8
|
-
|
|
9
|
-
exports.XmlViewer = XmlViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-RVEV2776.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-RVEV2776.cjs.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkPKJFOG2Z_cjs = require('./chunk-PKJFOG2Z.cjs');
|
|
4
|
-
var chunkO3L7F3SI_cjs = require('./chunk-O3L7F3SI.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/email-viewer.ts
|
|
7
|
-
var EmailViewer2 = chunkO3L7F3SI_cjs.withOsdkMetrics(chunkPKJFOG2Z_cjs.EmailViewer, "EmailViewer");
|
|
8
|
-
|
|
9
|
-
exports.EmailViewer = EmailViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-SBENFO5U.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-SBENFO5U.cjs.map
|