@osdk/react-components 0.15.0 → 0.16.0-main-cf496ff080ba8375b89e85ea47c2568a7caca990
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 +14 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +10 -5
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/browser/object-table/DefaultCellRenderer.js +18 -0
- package/build/browser/object-table/DefaultCellRenderer.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/ObjectTableApi.js.map +1 -1
- package/build/browser/object-table/utils/types.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-4MKY6RU2.cjs → chunk-JLSIIL5M.cjs} +20 -6
- package/build/cjs/chunk-JLSIIL5M.cjs.map +1 -0
- package/build/cjs/{chunk-VWMSVA2B.cjs → chunk-KOH3HIJX.cjs} +3 -3
- package/build/cjs/chunk-KOH3HIJX.cjs.map +1 -0
- package/build/cjs/{chunk-HTGC4GAZ.cjs → chunk-O7L3KWPU.cjs} +4 -4
- package/build/cjs/{chunk-HTGC4GAZ.cjs.map → chunk-O7L3KWPU.cjs.map} +1 -1
- package/build/cjs/{chunk-IMOIQYNW.cjs → chunk-U6QUBJUK.cjs} +4 -4
- package/build/cjs/{chunk-IMOIQYNW.cjs.map → chunk-U6QUBJUK.cjs.map} +1 -1
- package/build/cjs/{chunk-JWNRU2TC.cjs → chunk-ZGCXYPDR.cjs} +15 -8
- package/build/cjs/chunk-ZGCXYPDR.cjs.map +1 -0
- package/build/cjs/public/experimental/action-form.cjs +4 -4
- package/build/cjs/public/experimental/filter-list.cjs +13 -13
- package/build/cjs/public/experimental/object-table.cjs +8 -8
- package/build/cjs/public/experimental/object-table.d.cts +9 -6
- package/build/cjs/public/experimental/pdf-viewer.cjs +24 -24
- package/build/cjs/public/experimental.cjs +46 -46
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +10 -5
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/esm/object-table/DefaultCellRenderer.js +18 -0
- package/build/esm/object-table/DefaultCellRenderer.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/ObjectTableApi.js.map +1 -1
- package/build/esm/object-table/utils/types.js.map +1 -1
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
- package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
- package/build/types/object-table/EditableCell.d.ts +8 -1
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +4 -3
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/utils/types.d.ts +5 -3
- package/build/types/object-table/utils/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/build/cjs/chunk-4MKY6RU2.cjs.map +0 -1
- package/build/cjs/chunk-JWNRU2TC.cjs.map +0 -1
- package/build/cjs/chunk-VWMSVA2B.cjs.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkO7L3KWPU_cjs = require('../../chunk-O7L3KWPU.cjs');
|
|
4
4
|
require('../../chunk-X337DNCW.cjs');
|
|
5
5
|
require('../../chunk-ZBJEZKOD.cjs');
|
|
6
6
|
require('../../chunk-I3OSD6CF.cjs');
|
|
7
7
|
require('../../chunk-Z4JDLERD.cjs');
|
|
8
|
-
require('../../chunk-
|
|
8
|
+
require('../../chunk-KOH3HIJX.cjs');
|
|
9
9
|
require('../../chunk-LBWASTWS.cjs');
|
|
10
10
|
require('../../chunk-JBRNNWYC.cjs');
|
|
11
11
|
require('../../chunk-7LXS66DW.cjs');
|
|
@@ -16,11 +16,11 @@ require('../../chunk-Q2W6GYRK.cjs');
|
|
|
16
16
|
|
|
17
17
|
Object.defineProperty(exports, "ActionForm", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunkO7L3KWPU_cjs.ActionForm; }
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(exports, "BaseForm", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunkO7L3KWPU_cjs.BaseForm; }
|
|
24
24
|
});
|
|
25
25
|
//# sourceMappingURL=action-form.cjs.map
|
|
26
26
|
//# sourceMappingURL=action-form.cjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkZGCXYPDR_cjs = require('../../chunk-ZGCXYPDR.cjs');
|
|
4
4
|
require('../../chunk-X337DNCW.cjs');
|
|
5
5
|
require('../../chunk-EWLPXTKT.cjs');
|
|
6
6
|
require('../../chunk-Z4JDLERD.cjs');
|
|
7
|
-
require('../../chunk-
|
|
7
|
+
require('../../chunk-KOH3HIJX.cjs');
|
|
8
8
|
require('../../chunk-LBWASTWS.cjs');
|
|
9
9
|
require('../../chunk-JBRNNWYC.cjs');
|
|
10
10
|
require('../../chunk-7LXS66DW.cjs');
|
|
@@ -15,47 +15,47 @@ require('../../chunk-Q2W6GYRK.cjs');
|
|
|
15
15
|
|
|
16
16
|
Object.defineProperty(exports, "BaseFilterList", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkZGCXYPDR_cjs.BaseFilterList; }
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "FilterInput", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunkZGCXYPDR_cjs.FilterInput; }
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "FilterList", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkZGCXYPDR_cjs.FilterList; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "FilterPopover", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkZGCXYPDR_cjs.FilterPopover; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "deserializeFilterStates", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkZGCXYPDR_cjs.deserializeFilterStates; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "filterHasActiveState", {
|
|
37
37
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunkZGCXYPDR_cjs.filterHasActiveState; }
|
|
39
39
|
});
|
|
40
40
|
Object.defineProperty(exports, "getFilterKey", {
|
|
41
41
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkZGCXYPDR_cjs.getFilterKey; }
|
|
43
43
|
});
|
|
44
44
|
Object.defineProperty(exports, "getFilterLabel", {
|
|
45
45
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunkZGCXYPDR_cjs.getFilterLabel; }
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "serializeFilterStates", {
|
|
49
49
|
enumerable: true,
|
|
50
|
-
get: function () { return
|
|
50
|
+
get: function () { return chunkZGCXYPDR_cjs.serializeFilterStates; }
|
|
51
51
|
});
|
|
52
52
|
Object.defineProperty(exports, "summarizeFilterValue", {
|
|
53
53
|
enumerable: true,
|
|
54
|
-
get: function () { return
|
|
54
|
+
get: function () { return chunkZGCXYPDR_cjs.summarizeFilterValue; }
|
|
55
55
|
});
|
|
56
56
|
Object.defineProperty(exports, "useFilterListState", {
|
|
57
57
|
enumerable: true,
|
|
58
|
-
get: function () { return
|
|
58
|
+
get: function () { return chunkZGCXYPDR_cjs.useFilterListState; }
|
|
59
59
|
});
|
|
60
60
|
//# sourceMappingURL=filter-list.cjs.map
|
|
61
61
|
//# sourceMappingURL=filter-list.cjs.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJLSIIL5M_cjs = require('../../chunk-JLSIIL5M.cjs');
|
|
4
4
|
require('../../chunk-O5EUACSV.cjs');
|
|
5
5
|
require('../../chunk-ZBJEZKOD.cjs');
|
|
6
6
|
require('../../chunk-I3OSD6CF.cjs');
|
|
7
7
|
require('../../chunk-EWLPXTKT.cjs');
|
|
8
8
|
require('../../chunk-Z4JDLERD.cjs');
|
|
9
|
-
require('../../chunk-
|
|
9
|
+
require('../../chunk-KOH3HIJX.cjs');
|
|
10
10
|
require('../../chunk-LBWASTWS.cjs');
|
|
11
11
|
require('../../chunk-JBRNNWYC.cjs');
|
|
12
12
|
require('../../chunk-7LXS66DW.cjs');
|
|
@@ -17,27 +17,27 @@ require('../../chunk-Q2W6GYRK.cjs');
|
|
|
17
17
|
|
|
18
18
|
Object.defineProperty(exports, "BaseTable", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function () { return
|
|
20
|
+
get: function () { return chunkJLSIIL5M_cjs.BaseTable; }
|
|
21
21
|
});
|
|
22
22
|
Object.defineProperty(exports, "ColumnConfigDialog", {
|
|
23
23
|
enumerable: true,
|
|
24
|
-
get: function () { return
|
|
24
|
+
get: function () { return chunkJLSIIL5M_cjs.ColumnConfigDialog; }
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(exports, "LoadingCell", {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () { return
|
|
28
|
+
get: function () { return chunkJLSIIL5M_cjs.LoadingCell; }
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "LoadingCellContent", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
32
|
+
get: function () { return chunkJLSIIL5M_cjs.LoadingCellContent; }
|
|
33
33
|
});
|
|
34
34
|
Object.defineProperty(exports, "MultiColumnSortDialog", {
|
|
35
35
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
36
|
+
get: function () { return chunkJLSIIL5M_cjs.MultiColumnSortDialog; }
|
|
37
37
|
});
|
|
38
38
|
Object.defineProperty(exports, "ObjectTable", {
|
|
39
39
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunkJLSIIL5M_cjs.ObjectTable; }
|
|
41
41
|
});
|
|
42
42
|
//# sourceMappingURL=object-table.cjs.map
|
|
43
43
|
//# sourceMappingURL=object-table.cjs.map
|
|
@@ -127,13 +127,15 @@ type EditFieldComponent = keyof EditFieldPropsByType;
|
|
|
127
127
|
/**
|
|
128
128
|
* Configuration for an editable cell's field component.
|
|
129
129
|
*
|
|
130
|
-
* `getFieldComponentProps` is called with the row's object
|
|
131
|
-
*
|
|
130
|
+
* `getFieldComponentProps` is called with the row's object and a map of any
|
|
131
|
+
* pending cell edits for the same row, keyed by `columnId`. This lets the
|
|
132
|
+
* configuration depend on row state or on other in-progress edits within the
|
|
133
|
+
* row (e.g. dropdown items that change once another column is edited).
|
|
132
134
|
*/
|
|
133
135
|
type EditFieldConfig<TData = unknown> = {
|
|
134
136
|
[K in EditFieldComponent]: {
|
|
135
137
|
fieldComponent: K;
|
|
136
|
-
getFieldComponentProps: (object: TData) => EditFieldPropsByType[K];
|
|
138
|
+
getFieldComponentProps: (object: TData, edits?: Record<string, CellEditInfo<TData, unknown>>) => EditFieldPropsByType[K];
|
|
137
139
|
};
|
|
138
140
|
}[EditFieldComponent];
|
|
139
141
|
|
|
@@ -196,9 +198,10 @@ interface EditableColumnDefinition<Q extends ObjectOrInterfaceDefinition, RDPs e
|
|
|
196
198
|
* When provided, the column uses the specified field component
|
|
197
199
|
* (e.g. dropdown) instead of the default auto-detected text/number input.
|
|
198
200
|
*
|
|
199
|
-
* `getFieldComponentProps` receives the row's object and
|
|
200
|
-
*
|
|
201
|
-
*
|
|
201
|
+
* `getFieldComponentProps` receives the row's object and a map of any
|
|
202
|
+
* pending edits for that row (keyed by column id), and returns the props to
|
|
203
|
+
* pass to the field component. Editor configuration can depend on the
|
|
204
|
+
* current row or on other in-progress edits within the row.
|
|
202
205
|
*/
|
|
203
206
|
editFieldConfig?: EditFieldConfig<Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>>;
|
|
204
207
|
/**
|
|
@@ -1,98 +1,98 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../../chunk-
|
|
3
|
+
var chunkU6QUBJUK_cjs = require('../../chunk-U6QUBJUK.cjs');
|
|
4
|
+
require('../../chunk-KOH3HIJX.cjs');
|
|
5
5
|
require('../../chunk-Q2W6GYRK.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "BasePdfViewer", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunkU6QUBJUK_cjs.BasePdfViewer; }
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "PdfViewer", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewer; }
|
|
16
16
|
});
|
|
17
17
|
Object.defineProperty(exports, "PdfViewerAnnotationLayer", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerAnnotationLayer; }
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(exports, "PdfViewerContent", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerContent; }
|
|
24
24
|
});
|
|
25
25
|
Object.defineProperty(exports, "PdfViewerOutlineSidebar", {
|
|
26
26
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerOutlineSidebar; }
|
|
28
28
|
});
|
|
29
29
|
Object.defineProperty(exports, "PdfViewerProvider", {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
31
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerProvider; }
|
|
32
32
|
});
|
|
33
33
|
Object.defineProperty(exports, "PdfViewerSearchBar", {
|
|
34
34
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
35
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerSearchBar; }
|
|
36
36
|
});
|
|
37
37
|
Object.defineProperty(exports, "PdfViewerSidebar", {
|
|
38
38
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
39
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerSidebar; }
|
|
40
40
|
});
|
|
41
41
|
Object.defineProperty(exports, "PdfViewerToolbar", {
|
|
42
42
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
43
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerToolbar; }
|
|
44
44
|
});
|
|
45
45
|
Object.defineProperty(exports, "usePdfAnnotationPortals", {
|
|
46
46
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
47
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfAnnotationPortals; }
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "usePdfAnnotationsByPage", {
|
|
50
50
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
51
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfAnnotationsByPage; }
|
|
52
52
|
});
|
|
53
53
|
Object.defineProperty(exports, "usePdfDocument", {
|
|
54
54
|
enumerable: true,
|
|
55
|
-
get: function () { return
|
|
55
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfDocument; }
|
|
56
56
|
});
|
|
57
57
|
Object.defineProperty(exports, "usePdfFormFields", {
|
|
58
58
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
59
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfFormFields; }
|
|
60
60
|
});
|
|
61
61
|
Object.defineProperty(exports, "usePdfHighlightMode", {
|
|
62
62
|
enumerable: true,
|
|
63
|
-
get: function () { return
|
|
63
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfHighlightMode; }
|
|
64
64
|
});
|
|
65
65
|
Object.defineProperty(exports, "usePdfOutline", {
|
|
66
66
|
enumerable: true,
|
|
67
|
-
get: function () { return
|
|
67
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfOutline; }
|
|
68
68
|
});
|
|
69
69
|
Object.defineProperty(exports, "usePdfViewer", {
|
|
70
70
|
enumerable: true,
|
|
71
|
-
get: function () { return
|
|
71
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewer; }
|
|
72
72
|
});
|
|
73
73
|
Object.defineProperty(exports, "usePdfViewerContext", {
|
|
74
74
|
enumerable: true,
|
|
75
|
-
get: function () { return
|
|
75
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerContext; }
|
|
76
76
|
});
|
|
77
77
|
Object.defineProperty(exports, "usePdfViewerCore", {
|
|
78
78
|
enumerable: true,
|
|
79
|
-
get: function () { return
|
|
79
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerCore; }
|
|
80
80
|
});
|
|
81
81
|
Object.defineProperty(exports, "usePdfViewerInstance", {
|
|
82
82
|
enumerable: true,
|
|
83
|
-
get: function () { return
|
|
83
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerInstance; }
|
|
84
84
|
});
|
|
85
85
|
Object.defineProperty(exports, "usePdfViewerSearch", {
|
|
86
86
|
enumerable: true,
|
|
87
|
-
get: function () { return
|
|
87
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerSearch; }
|
|
88
88
|
});
|
|
89
89
|
Object.defineProperty(exports, "usePdfViewerState", {
|
|
90
90
|
enumerable: true,
|
|
91
|
-
get: function () { return
|
|
91
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerState; }
|
|
92
92
|
});
|
|
93
93
|
Object.defineProperty(exports, "usePdfViewerSync", {
|
|
94
94
|
enumerable: true,
|
|
95
|
-
get: function () { return
|
|
95
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerSync; }
|
|
96
96
|
});
|
|
97
97
|
//# sourceMappingURL=pdf-viewer.cjs.map
|
|
98
98
|
//# sourceMappingURL=pdf-viewer.cjs.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkU6QUBJUK_cjs = require('../chunk-U6QUBJUK.cjs');
|
|
4
4
|
var chunkIDDBCC5C_cjs = require('../chunk-IDDBCC5C.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var chunkO7L3KWPU_cjs = require('../chunk-O7L3KWPU.cjs');
|
|
6
|
+
var chunkZGCXYPDR_cjs = require('../chunk-ZGCXYPDR.cjs');
|
|
7
7
|
require('../chunk-X337DNCW.cjs');
|
|
8
8
|
var chunk2LKVRPJY_cjs = require('../chunk-2LKVRPJY.cjs');
|
|
9
|
-
var
|
|
9
|
+
var chunkJLSIIL5M_cjs = require('../chunk-JLSIIL5M.cjs');
|
|
10
10
|
require('../chunk-O5EUACSV.cjs');
|
|
11
11
|
require('../chunk-ZBJEZKOD.cjs');
|
|
12
12
|
require('../chunk-I3OSD6CF.cjs');
|
|
13
13
|
require('../chunk-EWLPXTKT.cjs');
|
|
14
14
|
require('../chunk-Z4JDLERD.cjs');
|
|
15
|
-
require('../chunk-
|
|
15
|
+
require('../chunk-KOH3HIJX.cjs');
|
|
16
16
|
require('../chunk-LBWASTWS.cjs');
|
|
17
17
|
require('../chunk-JBRNNWYC.cjs');
|
|
18
18
|
require('../chunk-7LXS66DW.cjs');
|
|
@@ -23,91 +23,91 @@ require('../chunk-Q2W6GYRK.cjs');
|
|
|
23
23
|
|
|
24
24
|
Object.defineProperty(exports, "BasePdfViewer", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunkU6QUBJUK_cjs.BasePdfViewer; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "PdfViewer", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewer; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "PdfViewerAnnotationLayer", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerAnnotationLayer; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "PdfViewerContent", {
|
|
37
37
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerContent; }
|
|
39
39
|
});
|
|
40
40
|
Object.defineProperty(exports, "PdfViewerOutlineSidebar", {
|
|
41
41
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerOutlineSidebar; }
|
|
43
43
|
});
|
|
44
44
|
Object.defineProperty(exports, "PdfViewerProvider", {
|
|
45
45
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerProvider; }
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "PdfViewerSearchBar", {
|
|
49
49
|
enumerable: true,
|
|
50
|
-
get: function () { return
|
|
50
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerSearchBar; }
|
|
51
51
|
});
|
|
52
52
|
Object.defineProperty(exports, "PdfViewerSidebar", {
|
|
53
53
|
enumerable: true,
|
|
54
|
-
get: function () { return
|
|
54
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerSidebar; }
|
|
55
55
|
});
|
|
56
56
|
Object.defineProperty(exports, "PdfViewerToolbar", {
|
|
57
57
|
enumerable: true,
|
|
58
|
-
get: function () { return
|
|
58
|
+
get: function () { return chunkU6QUBJUK_cjs.PdfViewerToolbar; }
|
|
59
59
|
});
|
|
60
60
|
Object.defineProperty(exports, "usePdfAnnotationPortals", {
|
|
61
61
|
enumerable: true,
|
|
62
|
-
get: function () { return
|
|
62
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfAnnotationPortals; }
|
|
63
63
|
});
|
|
64
64
|
Object.defineProperty(exports, "usePdfAnnotationsByPage", {
|
|
65
65
|
enumerable: true,
|
|
66
|
-
get: function () { return
|
|
66
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfAnnotationsByPage; }
|
|
67
67
|
});
|
|
68
68
|
Object.defineProperty(exports, "usePdfDocument", {
|
|
69
69
|
enumerable: true,
|
|
70
|
-
get: function () { return
|
|
70
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfDocument; }
|
|
71
71
|
});
|
|
72
72
|
Object.defineProperty(exports, "usePdfFormFields", {
|
|
73
73
|
enumerable: true,
|
|
74
|
-
get: function () { return
|
|
74
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfFormFields; }
|
|
75
75
|
});
|
|
76
76
|
Object.defineProperty(exports, "usePdfHighlightMode", {
|
|
77
77
|
enumerable: true,
|
|
78
|
-
get: function () { return
|
|
78
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfHighlightMode; }
|
|
79
79
|
});
|
|
80
80
|
Object.defineProperty(exports, "usePdfOutline", {
|
|
81
81
|
enumerable: true,
|
|
82
|
-
get: function () { return
|
|
82
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfOutline; }
|
|
83
83
|
});
|
|
84
84
|
Object.defineProperty(exports, "usePdfViewer", {
|
|
85
85
|
enumerable: true,
|
|
86
|
-
get: function () { return
|
|
86
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewer; }
|
|
87
87
|
});
|
|
88
88
|
Object.defineProperty(exports, "usePdfViewerContext", {
|
|
89
89
|
enumerable: true,
|
|
90
|
-
get: function () { return
|
|
90
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerContext; }
|
|
91
91
|
});
|
|
92
92
|
Object.defineProperty(exports, "usePdfViewerCore", {
|
|
93
93
|
enumerable: true,
|
|
94
|
-
get: function () { return
|
|
94
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerCore; }
|
|
95
95
|
});
|
|
96
96
|
Object.defineProperty(exports, "usePdfViewerInstance", {
|
|
97
97
|
enumerable: true,
|
|
98
|
-
get: function () { return
|
|
98
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerInstance; }
|
|
99
99
|
});
|
|
100
100
|
Object.defineProperty(exports, "usePdfViewerSearch", {
|
|
101
101
|
enumerable: true,
|
|
102
|
-
get: function () { return
|
|
102
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerSearch; }
|
|
103
103
|
});
|
|
104
104
|
Object.defineProperty(exports, "usePdfViewerState", {
|
|
105
105
|
enumerable: true,
|
|
106
|
-
get: function () { return
|
|
106
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerState; }
|
|
107
107
|
});
|
|
108
108
|
Object.defineProperty(exports, "usePdfViewerSync", {
|
|
109
109
|
enumerable: true,
|
|
110
|
-
get: function () { return
|
|
110
|
+
get: function () { return chunkU6QUBJUK_cjs.usePdfViewerSync; }
|
|
111
111
|
});
|
|
112
112
|
Object.defineProperty(exports, "TiffRenderer", {
|
|
113
113
|
enumerable: true,
|
|
@@ -115,55 +115,55 @@ Object.defineProperty(exports, "TiffRenderer", {
|
|
|
115
115
|
});
|
|
116
116
|
Object.defineProperty(exports, "ActionForm", {
|
|
117
117
|
enumerable: true,
|
|
118
|
-
get: function () { return
|
|
118
|
+
get: function () { return chunkO7L3KWPU_cjs.ActionForm; }
|
|
119
119
|
});
|
|
120
120
|
Object.defineProperty(exports, "BaseForm", {
|
|
121
121
|
enumerable: true,
|
|
122
|
-
get: function () { return
|
|
122
|
+
get: function () { return chunkO7L3KWPU_cjs.BaseForm; }
|
|
123
123
|
});
|
|
124
124
|
Object.defineProperty(exports, "BaseFilterList", {
|
|
125
125
|
enumerable: true,
|
|
126
|
-
get: function () { return
|
|
126
|
+
get: function () { return chunkZGCXYPDR_cjs.BaseFilterList; }
|
|
127
127
|
});
|
|
128
128
|
Object.defineProperty(exports, "FilterInput", {
|
|
129
129
|
enumerable: true,
|
|
130
|
-
get: function () { return
|
|
130
|
+
get: function () { return chunkZGCXYPDR_cjs.FilterInput; }
|
|
131
131
|
});
|
|
132
132
|
Object.defineProperty(exports, "FilterList", {
|
|
133
133
|
enumerable: true,
|
|
134
|
-
get: function () { return
|
|
134
|
+
get: function () { return chunkZGCXYPDR_cjs.FilterList; }
|
|
135
135
|
});
|
|
136
136
|
Object.defineProperty(exports, "FilterPopover", {
|
|
137
137
|
enumerable: true,
|
|
138
|
-
get: function () { return
|
|
138
|
+
get: function () { return chunkZGCXYPDR_cjs.FilterPopover; }
|
|
139
139
|
});
|
|
140
140
|
Object.defineProperty(exports, "deserializeFilterStates", {
|
|
141
141
|
enumerable: true,
|
|
142
|
-
get: function () { return
|
|
142
|
+
get: function () { return chunkZGCXYPDR_cjs.deserializeFilterStates; }
|
|
143
143
|
});
|
|
144
144
|
Object.defineProperty(exports, "filterHasActiveState", {
|
|
145
145
|
enumerable: true,
|
|
146
|
-
get: function () { return
|
|
146
|
+
get: function () { return chunkZGCXYPDR_cjs.filterHasActiveState; }
|
|
147
147
|
});
|
|
148
148
|
Object.defineProperty(exports, "getFilterKey", {
|
|
149
149
|
enumerable: true,
|
|
150
|
-
get: function () { return
|
|
150
|
+
get: function () { return chunkZGCXYPDR_cjs.getFilterKey; }
|
|
151
151
|
});
|
|
152
152
|
Object.defineProperty(exports, "getFilterLabel", {
|
|
153
153
|
enumerable: true,
|
|
154
|
-
get: function () { return
|
|
154
|
+
get: function () { return chunkZGCXYPDR_cjs.getFilterLabel; }
|
|
155
155
|
});
|
|
156
156
|
Object.defineProperty(exports, "serializeFilterStates", {
|
|
157
157
|
enumerable: true,
|
|
158
|
-
get: function () { return
|
|
158
|
+
get: function () { return chunkZGCXYPDR_cjs.serializeFilterStates; }
|
|
159
159
|
});
|
|
160
160
|
Object.defineProperty(exports, "summarizeFilterValue", {
|
|
161
161
|
enumerable: true,
|
|
162
|
-
get: function () { return
|
|
162
|
+
get: function () { return chunkZGCXYPDR_cjs.summarizeFilterValue; }
|
|
163
163
|
});
|
|
164
164
|
Object.defineProperty(exports, "useFilterListState", {
|
|
165
165
|
enumerable: true,
|
|
166
|
-
get: function () { return
|
|
166
|
+
get: function () { return chunkZGCXYPDR_cjs.useFilterListState; }
|
|
167
167
|
});
|
|
168
168
|
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
169
169
|
enumerable: true,
|
|
@@ -171,27 +171,27 @@ Object.defineProperty(exports, "MarkdownRenderer", {
|
|
|
171
171
|
});
|
|
172
172
|
Object.defineProperty(exports, "BaseTable", {
|
|
173
173
|
enumerable: true,
|
|
174
|
-
get: function () { return
|
|
174
|
+
get: function () { return chunkJLSIIL5M_cjs.BaseTable; }
|
|
175
175
|
});
|
|
176
176
|
Object.defineProperty(exports, "ColumnConfigDialog", {
|
|
177
177
|
enumerable: true,
|
|
178
|
-
get: function () { return
|
|
178
|
+
get: function () { return chunkJLSIIL5M_cjs.ColumnConfigDialog; }
|
|
179
179
|
});
|
|
180
180
|
Object.defineProperty(exports, "LoadingCell", {
|
|
181
181
|
enumerable: true,
|
|
182
|
-
get: function () { return
|
|
182
|
+
get: function () { return chunkJLSIIL5M_cjs.LoadingCell; }
|
|
183
183
|
});
|
|
184
184
|
Object.defineProperty(exports, "LoadingCellContent", {
|
|
185
185
|
enumerable: true,
|
|
186
|
-
get: function () { return
|
|
186
|
+
get: function () { return chunkJLSIIL5M_cjs.LoadingCellContent; }
|
|
187
187
|
});
|
|
188
188
|
Object.defineProperty(exports, "MultiColumnSortDialog", {
|
|
189
189
|
enumerable: true,
|
|
190
|
-
get: function () { return
|
|
190
|
+
get: function () { return chunkJLSIIL5M_cjs.MultiColumnSortDialog; }
|
|
191
191
|
});
|
|
192
192
|
Object.defineProperty(exports, "ObjectTable", {
|
|
193
193
|
enumerable: true,
|
|
194
|
-
get: function () { return
|
|
194
|
+
get: function () { return chunkJLSIIL5M_cjs.ObjectTable; }
|
|
195
195
|
});
|
|
196
196
|
//# sourceMappingURL=experimental.cjs.map
|
|
197
197
|
//# sourceMappingURL=experimental.cjs.map
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { useOsdkAggregation } from "@osdk/react";
|
|
17
|
+
import { useOsdkAggregation, useOsdkMetadata } from "@osdk/react";
|
|
18
18
|
import React, { memo, useCallback, useMemo } from "react";
|
|
19
19
|
import { NullValueWrapper } from "../base/inputs/NullValueWrapper.js";
|
|
20
20
|
import { NumberRangeInput } from "../base/inputs/NumberRangeInput.js";
|
|
@@ -30,6 +30,11 @@ function NumberRangeFilterInputInner({
|
|
|
30
30
|
}) {
|
|
31
31
|
const numberRangeState = filterState?.type === "NUMBER_RANGE" ? filterState : undefined;
|
|
32
32
|
const includeNull = filterState?.includeNull;
|
|
33
|
+
const {
|
|
34
|
+
metadata
|
|
35
|
+
} = useOsdkMetadata(objectType);
|
|
36
|
+
const propertyType = metadata?.properties?.[propertyKey]?.type;
|
|
37
|
+
const isInteger = propertyType === "integer" || propertyType === "long" || propertyType === "short" || propertyType === "byte";
|
|
33
38
|
const handleNullChange = useCallback(includeNull => {
|
|
34
39
|
onFilterStateChanged({
|
|
35
40
|
type: "NUMBER_RANGE",
|
|
@@ -41,11 +46,11 @@ function NumberRangeFilterInputInner({
|
|
|
41
46
|
const handleRangeChange = useCallback((minValue, maxValue) => {
|
|
42
47
|
onFilterStateChanged({
|
|
43
48
|
type: "NUMBER_RANGE",
|
|
44
|
-
minValue,
|
|
45
|
-
maxValue,
|
|
49
|
+
minValue: (v => isInteger && v !== undefined ? Math.ceil(v) : v)(minValue),
|
|
50
|
+
maxValue: (v => isInteger && v !== undefined ? Math.floor(v) : v)(maxValue),
|
|
46
51
|
includeNull
|
|
47
52
|
});
|
|
48
|
-
}, [onFilterStateChanged, includeNull]);
|
|
53
|
+
}, [onFilterStateChanged, includeNull, isInteger]);
|
|
49
54
|
const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);
|
|
50
55
|
const histogramArgs = useMemo(() => ({
|
|
51
56
|
aggregate: aggregateOptions,
|
|
@@ -111,7 +116,7 @@ function NumberRangeFilterInputInner({
|
|
|
111
116
|
minValue: numberRangeState?.minValue,
|
|
112
117
|
maxValue: numberRangeState?.maxValue,
|
|
113
118
|
onChange: handleRangeChange,
|
|
114
|
-
clickToFilter: clickToFilter
|
|
119
|
+
clickToFilter: clickToFilter && metadata != null
|
|
115
120
|
}));
|
|
116
121
|
}
|
|
117
122
|
export const NumberRangeFilterInput = /*#__PURE__*/memo(NumberRangeFilterInputInner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberRangeFilterInput.js","names":["useOsdkAggregation","React","memo","useCallback","useMemo","NullValueWrapper","NumberRangeInput","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullWhereClause","NumberRangeFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","clickToFilter","numberRangeState","type","undefined","includeNull","handleNullChange","minValue","maxValue","handleRangeChange","aggregateOptions","histogramArgs","aggregate","where","data","aggregateData","isLoading","histLoading","valueCountPairs","pairs","item","rawValue","$group","parsed","parseFloat","String","isNaN","push","value","count","$count","nullCountAggregateOptions","nullCountWhereClause","$and","nullCountArgs","nullCountData","nullLoading","error","nullError","nullCount","result","createElement","onIncludeNullChange","onChange","NumberRangeFilterInput"],"sources":["NumberRangeFilterInput.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 type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullWhereClause,\n} from \"../utils/aggregationHelpers.js\";\n\ninterface NumberRangeFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet?: ObjectSet<Q>;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n clickToFilter?: boolean;\n}\n\nfunction NumberRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n clickToFilter,\n}: NumberRangeFilterInputProps<Q>): React.ReactElement {\n const numberRangeState = filterState?.type === \"NUMBER_RANGE\"\n ? filterState\n : undefined;\n const includeNull = filterState?.includeNull;\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n includeNull,\n });\n },\n [\n onFilterStateChanged,\n numberRangeState?.minValue,\n numberRangeState?.maxValue,\n ],\n );\n\n const handleRangeChange = useCallback(\n (minValue: number | undefined, maxValue: number | undefined) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull],\n );\n\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey),\n [propertyKey],\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions, objectSet, where: whereClause }),\n [aggregateOptions, objectSet, whereClause],\n );\n\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs,\n );\n\n const valueCountPairs = useMemo<Array<{ value: number; count: number }>>(\n () => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: number; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({ value: parsed, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n },\n [aggregateData, propertyKey],\n );\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n [],\n );\n\n // Combine null-check with cross-filter where clause so the null count\n // reflects the filtered dataset, not the full dataset\n const nullCountWhereClause = useMemo(\n () =>\n ({\n $and: [createNullWhereClause<Q>(propertyKey), whereClause],\n }) as WhereClause<Q>,\n [propertyKey, whereClause],\n );\n\n const nullCountArgs = useMemo(\n () => ({\n where: nullCountWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet,\n }),\n [nullCountWhereClause, nullCountAggregateOptions, objectSet],\n );\n\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError,\n } = useOsdkAggregation(\n objectType,\n nullCountArgs,\n );\n\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData as { $count?: number } | Iterable<unknown>;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n\n const isLoading = histLoading || nullLoading;\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={isLoading}\n error={nullError}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <NumberRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={isLoading}\n minValue={numberRangeState?.minValue}\n maxValue={numberRangeState?.maxValue}\n onChange={handleRangeChange}\n clickToFilter={clickToFilter}\n />\n </NullValueWrapper>\n );\n}\n\nexport const NumberRangeFilterInput: typeof NumberRangeFilterInputInner = memo(\n NumberRangeFilterInputInner,\n) as typeof NumberRangeFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NumberRangeFilterInput.js","names":["useOsdkAggregation","useOsdkMetadata","React","memo","useCallback","useMemo","NullValueWrapper","NumberRangeInput","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullWhereClause","NumberRangeFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","clickToFilter","numberRangeState","type","undefined","includeNull","metadata","propertyType","properties","isInteger","handleNullChange","minValue","maxValue","handleRangeChange","v","Math","ceil","floor","aggregateOptions","histogramArgs","aggregate","where","data","aggregateData","isLoading","histLoading","valueCountPairs","pairs","item","rawValue","$group","parsed","parseFloat","String","isNaN","push","value","count","$count","nullCountAggregateOptions","nullCountWhereClause","$and","nullCountArgs","nullCountData","nullLoading","error","nullError","nullCount","result","createElement","onIncludeNullChange","onChange","NumberRangeFilterInput"],"sources":["NumberRangeFilterInput.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 type { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport { useOsdkAggregation, useOsdkMetadata } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullWhereClause,\n} from \"../utils/aggregationHelpers.js\";\n\ninterface NumberRangeFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet?: ObjectSet<Q>;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n clickToFilter?: boolean;\n}\n\nfunction NumberRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n clickToFilter,\n}: NumberRangeFilterInputProps<Q>): React.ReactElement {\n const numberRangeState = filterState?.type === \"NUMBER_RANGE\"\n ? filterState\n : undefined;\n const includeNull = filterState?.includeNull;\n\n const { metadata } = useOsdkMetadata(objectType);\n const propertyType = metadata?.properties?.[propertyKey]?.type;\n const isInteger = propertyType === \"integer\"\n || propertyType === \"long\"\n || propertyType === \"short\"\n || propertyType === \"byte\";\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n includeNull,\n });\n },\n [\n onFilterStateChanged,\n numberRangeState?.minValue,\n numberRangeState?.maxValue,\n ],\n );\n\n const handleRangeChange = useCallback(\n (minValue: number | undefined, maxValue: number | undefined) => {\n const coerceMin = (v: number | undefined): number | undefined =>\n isInteger && v !== undefined ? Math.ceil(v) : v;\n const coerceMax = (v: number | undefined): number | undefined =>\n isInteger && v !== undefined ? Math.floor(v) : v;\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: coerceMin(minValue),\n maxValue: coerceMax(maxValue),\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull, isInteger],\n );\n\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey),\n [propertyKey],\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions, objectSet, where: whereClause }),\n [aggregateOptions, objectSet, whereClause],\n );\n\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs,\n );\n\n const valueCountPairs = useMemo<Array<{ value: number; count: number }>>(\n () => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: number; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const parsed = parseFloat(String(rawValue));\n if (!isNaN(parsed)) {\n pairs.push({ value: parsed, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n },\n [aggregateData, propertyKey],\n );\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n [],\n );\n\n // Combine null-check with cross-filter where clause so the null count\n // reflects the filtered dataset, not the full dataset\n const nullCountWhereClause = useMemo(\n () =>\n ({\n $and: [createNullWhereClause<Q>(propertyKey), whereClause],\n }) as WhereClause<Q>,\n [propertyKey, whereClause],\n );\n\n const nullCountArgs = useMemo(\n () => ({\n where: nullCountWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet,\n }),\n [nullCountWhereClause, nullCountAggregateOptions, objectSet],\n );\n\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError,\n } = useOsdkAggregation(\n objectType,\n nullCountArgs,\n );\n\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData as { $count?: number } | Iterable<unknown>;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n\n const isLoading = histLoading || nullLoading;\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={isLoading}\n error={nullError}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <NumberRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={isLoading}\n minValue={numberRangeState?.minValue}\n maxValue={numberRangeState?.maxValue}\n onChange={handleRangeChange}\n clickToFilter={clickToFilter && metadata != null}\n />\n </NullValueWrapper>\n );\n}\n\nexport const NumberRangeFilterInput: typeof NumberRangeFilterInputInner = memo(\n NumberRangeFilterInputInner,\n) as typeof NumberRangeFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
|