@osdk/react-components 0.2.0-beta.21 → 0.2.0-beta.22
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/AGENTS.md +14 -97
- package/CHANGELOG.md +19 -0
- package/README.md +1 -1
- package/build/browser/action-form/ActionFormApi.js.map +1 -1
- package/build/browser/action-form/BaseForm.js +18 -5
- package/build/browser/action-form/BaseForm.js.map +1 -1
- package/build/browser/action-form/BaseForm.module.css +38 -0
- package/build/browser/action-form/BaseForm.module.css.js +8 -0
- package/build/browser/action-form/FormField.js +42 -0
- package/build/browser/action-form/FormField.js.map +1 -0
- package/build/browser/action-form/FormField.module.css +41 -0
- package/build/browser/action-form/FormField.module.css.js +10 -0
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/FormHeader.js +26 -0
- package/build/browser/action-form/FormHeader.js.map +1 -0
- package/build/browser/action-form/FormHeader.module.css +26 -0
- package/build/browser/action-form/FormHeader.module.css.js +6 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js +7 -5
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/browser/action-form/fields/TextInputField.js +2 -0
- package/build/browser/action-form/fields/TextInputField.js.map +1 -1
- package/build/browser/action-form/fields/TextInputField.module.css +56 -0
- package/build/browser/action-form/fields/TextInputField.module.css.js +6 -0
- package/build/browser/base-components/checkbox/Checkbox.js +2 -2
- package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/browser/base-components/combobox/Combobox.js +3 -8
- package/build/browser/base-components/combobox/Combobox.js.map +1 -1
- package/build/browser/base-components/combobox/Combobox.module.css +0 -3
- package/build/browser/base-components/draggable-list/DraggableList.js +2 -4
- package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/browser/base-components/select/Select.js +1 -3
- package/build/browser/base-components/select/Select.js.map +1 -1
- package/build/browser/base-components/select/Select.module.css +0 -2
- package/build/browser/base-components/switch/Switch.module.css +0 -1
- package/build/browser/filter-list/FilterInput.js +14 -5
- package/build/browser/filter-list/FilterInput.js.map +1 -1
- package/build/browser/filter-list/FilterList.js +13 -5
- package/build/browser/filter-list/FilterList.js.map +1 -1
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/AddFilterPopover.js +4 -3
- package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/ExcludeDropdown.js +61 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css +94 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
- package/build/browser/filter-list/base/FilterIcons.js +0 -39
- package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
- package/build/browser/filter-list/base/FilterInputExcludeRow.js +55 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/browser/filter-list/base/FilterListItem.js +72 -23
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +96 -20
- package/build/browser/filter-list/base/FilterListItem.module.css.js +7 -2
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js +2 -2
- package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js +2 -6
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/RangeInput.js +2 -2
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -3
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/{useStaleData.js → useStableData.js} +5 -5
- package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +3 -2
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +15 -5
- package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js +10 -6
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +41 -18
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +15 -5
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +10 -6
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +36 -10
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js +12 -4
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +29 -1
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/object-table/LoadingCell.module.css +0 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +1 -3
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -1
- package/build/browser/object-table/TableCell.module.css +1 -1
- package/build/browser/object-table/TableHeader.module.css +2 -2
- package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -0
- package/build/browser/pdf-viewer/PdfViewerAnnotationLayer.module.css +0 -1
- package/build/browser/public/experimental.js +2 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/styles.css +372 -38
- package/build/cjs/public/experimental.cjs +1882 -1068
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +244 -38
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +420 -11
- package/build/esm/action-form/ActionFormApi.js.map +1 -1
- package/build/esm/action-form/BaseForm.js +18 -5
- package/build/esm/action-form/BaseForm.js.map +1 -1
- package/build/esm/action-form/BaseForm.module.css +38 -0
- package/build/esm/action-form/FormField.js +42 -0
- package/build/esm/action-form/FormField.js.map +1 -0
- package/build/esm/action-form/FormField.module.css +41 -0
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/FormHeader.js +26 -0
- package/build/esm/action-form/FormHeader.js.map +1 -0
- package/build/esm/action-form/FormHeader.module.css +26 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js +7 -5
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
- package/build/esm/action-form/fields/TextInputField.js +2 -0
- package/build/esm/action-form/fields/TextInputField.js.map +1 -1
- package/build/esm/action-form/fields/TextInputField.module.css +56 -0
- package/build/esm/base-components/checkbox/Checkbox.js +2 -2
- package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
- package/build/esm/base-components/combobox/Combobox.js +3 -8
- package/build/esm/base-components/combobox/Combobox.js.map +1 -1
- package/build/esm/base-components/combobox/Combobox.module.css +0 -3
- package/build/esm/base-components/draggable-list/DraggableList.js +2 -4
- package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
- package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/esm/base-components/select/Select.js +1 -3
- package/build/esm/base-components/select/Select.js.map +1 -1
- package/build/esm/base-components/select/Select.module.css +0 -2
- package/build/esm/base-components/switch/Switch.module.css +0 -1
- package/build/esm/filter-list/FilterInput.js +14 -5
- package/build/esm/filter-list/FilterInput.js.map +1 -1
- package/build/esm/filter-list/FilterList.js +13 -5
- package/build/esm/filter-list/FilterList.js.map +1 -1
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/AddFilterPopover.js +4 -3
- package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/ExcludeDropdown.js +61 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.module.css +94 -0
- package/build/esm/filter-list/base/FilterIcons.js +0 -39
- package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
- package/build/esm/filter-list/base/FilterInputExcludeRow.js +55 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/esm/filter-list/base/FilterListItem.js +72 -23
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +96 -20
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js +2 -2
- package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js +2 -6
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/RangeInput.js +2 -2
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -3
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/{useStaleData.js → useStableData.js} +5 -5
- package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +3 -2
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +15 -5
- package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js +10 -6
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +41 -18
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +15 -5
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +10 -6
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +36 -10
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js +12 -4
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +29 -1
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/object-table/LoadingCell.module.css +0 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +1 -3
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -1
- package/build/esm/object-table/TableCell.module.css +1 -1
- package/build/esm/object-table/TableHeader.module.css +2 -2
- package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -0
- package/build/esm/pdf-viewer/PdfViewerAnnotationLayer.module.css +0 -1
- package/build/esm/public/experimental.js +2 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/types/action-form/ActionFormApi.d.ts +1 -0
- package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
- package/build/types/action-form/BaseForm.d.ts.map +1 -1
- package/build/types/action-form/FormField.d.ts +11 -0
- package/build/types/action-form/FormField.d.ts.map +1 -0
- package/build/types/action-form/FormFieldApi.d.ts +1 -1
- package/build/types/action-form/FormHeader.d.ts +6 -0
- package/build/types/action-form/FormHeader.d.ts.map +1 -0
- package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
- package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
- package/build/types/filter-list/FilterInput.d.ts +3 -1
- package/build/types/filter-list/FilterInput.d.ts.map +1 -1
- package/build/types/filter-list/FilterListApi.d.ts +12 -9
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts +2 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +2 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
- package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterIcons.d.ts +0 -2
- package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +12 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
- package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -2
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +5 -2
- package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +3 -2
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +2 -1
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +5 -2
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +3 -2
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +3 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +4 -2
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +2 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- package/build/types/public/experimental.d.ts +4 -0
- package/build/types/public/experimental.d.ts.map +1 -1
- package/package.json +4 -4
- package/build/browser/filter-list/base/inputs/useStaleData.js.map +0 -1
- package/build/esm/filter-list/base/inputs/useStaleData.js.map +0 -1
- package/build/types/filter-list/base/inputs/useStaleData.d.ts +0 -1
- package/build/types/filter-list/base/inputs/useStaleData.d.ts.map +0 -1
|
@@ -40,6 +40,7 @@ function LinkedPropertyInputInner({
|
|
|
40
40
|
definition,
|
|
41
41
|
filterState,
|
|
42
42
|
onFilterStateChanged,
|
|
43
|
+
searchQuery,
|
|
43
44
|
className,
|
|
44
45
|
style
|
|
45
46
|
}) {
|
|
@@ -152,9 +153,11 @@ function LinkedPropertyInputInner({
|
|
|
152
153
|
const selectedValues = innerState?.type === "SELECT" ? coerceToStringArray(innerState.selectedValues) : [];
|
|
153
154
|
return /*#__PURE__*/React.createElement(LinkedCheckboxListInput, {
|
|
154
155
|
objectType: linkedObjectType,
|
|
156
|
+
objectSet: linkedObjectSet,
|
|
155
157
|
propertyKey: linkedPropertyKey,
|
|
156
158
|
selectedValues: selectedValues,
|
|
157
|
-
onChange: onSelectChange
|
|
159
|
+
onChange: onSelectChange,
|
|
160
|
+
searchQuery: searchQuery
|
|
158
161
|
});
|
|
159
162
|
}
|
|
160
163
|
case "MULTI_SELECT":
|
|
@@ -162,6 +165,7 @@ function LinkedPropertyInputInner({
|
|
|
162
165
|
const values = innerState?.type === "SELECT" ? coerceToStringArray(innerState.selectedValues) : [];
|
|
163
166
|
return /*#__PURE__*/React.createElement(LinkedMultiSelectInput, {
|
|
164
167
|
objectType: linkedObjectType,
|
|
168
|
+
objectSet: linkedObjectSet,
|
|
165
169
|
propertyKey: linkedPropertyKey,
|
|
166
170
|
selectedValues: values,
|
|
167
171
|
onChange: onSelectChange
|
|
@@ -172,6 +176,7 @@ function LinkedPropertyInputInner({
|
|
|
172
176
|
const value = innerState?.type === "SELECT" ? coerceToString(innerState.selectedValues[0]) : undefined;
|
|
173
177
|
return /*#__PURE__*/React.createElement(LinkedSingleSelectInput, {
|
|
174
178
|
objectType: linkedObjectType,
|
|
179
|
+
objectSet: linkedObjectSet,
|
|
175
180
|
propertyKey: linkedPropertyKey,
|
|
176
181
|
selectedValue: value,
|
|
177
182
|
onChange: onSingleSelectChange
|
|
@@ -199,6 +204,7 @@ function LinkedPropertyInputInner({
|
|
|
199
204
|
const nr = innerState?.type === "NUMBER_RANGE" ? innerState : undefined;
|
|
200
205
|
return /*#__PURE__*/React.createElement(LinkedNumberRangeInput, {
|
|
201
206
|
objectType: linkedObjectType,
|
|
207
|
+
objectSet: linkedObjectSet,
|
|
202
208
|
propertyKey: linkedPropertyKey,
|
|
203
209
|
minValue: nr?.minValue,
|
|
204
210
|
maxValue: nr?.maxValue,
|
|
@@ -212,6 +218,7 @@ function LinkedPropertyInputInner({
|
|
|
212
218
|
const dr = innerState?.type === "DATE_RANGE" ? innerState : undefined;
|
|
213
219
|
return /*#__PURE__*/React.createElement(LinkedDateRangeInput, {
|
|
214
220
|
objectType: linkedObjectType,
|
|
221
|
+
objectSet: linkedObjectSet,
|
|
215
222
|
propertyKey: linkedPropertyKey,
|
|
216
223
|
minValue: dr?.minValue,
|
|
217
224
|
maxValue: dr?.maxValue,
|
|
@@ -226,9 +233,11 @@ function LinkedPropertyInputInner({
|
|
|
226
233
|
const selectedValues = exactState ? coerceToStringArray(exactState.values) : [];
|
|
227
234
|
return /*#__PURE__*/React.createElement(LinkedListogramInput, {
|
|
228
235
|
objectType: linkedObjectType,
|
|
236
|
+
objectSet: linkedObjectSet,
|
|
229
237
|
propertyKey: linkedPropertyKey,
|
|
230
238
|
selectedValues: selectedValues,
|
|
231
|
-
onChange: onExactMatchChange
|
|
239
|
+
onChange: onExactMatchChange,
|
|
240
|
+
searchQuery: searchQuery
|
|
232
241
|
});
|
|
233
242
|
}
|
|
234
243
|
case "TEXT_TAGS":
|
|
@@ -237,6 +246,7 @@ function LinkedPropertyInputInner({
|
|
|
237
246
|
const tags = exactState ? coerceToStringArray(exactState.values) : [];
|
|
238
247
|
return /*#__PURE__*/React.createElement(LinkedTextTagsInput, {
|
|
239
248
|
objectType: linkedObjectType,
|
|
249
|
+
objectSet: linkedObjectSet,
|
|
240
250
|
propertyKey: linkedPropertyKey,
|
|
241
251
|
tags: tags,
|
|
242
252
|
onChange: onExactMatchChange
|
|
@@ -281,25 +291,29 @@ function LinkedPropertyInputInner({
|
|
|
281
291
|
export const LinkedPropertyInput = /*#__PURE__*/memo(LinkedPropertyInputInner);
|
|
282
292
|
function LinkedCheckboxListInput({
|
|
283
293
|
objectType,
|
|
294
|
+
objectSet,
|
|
284
295
|
propertyKey,
|
|
285
296
|
selectedValues,
|
|
286
|
-
onChange
|
|
297
|
+
onChange,
|
|
298
|
+
searchQuery
|
|
287
299
|
}) {
|
|
288
300
|
const {
|
|
289
301
|
data,
|
|
290
302
|
isLoading,
|
|
291
303
|
error
|
|
292
|
-
} = usePropertyAggregation(objectType, propertyKey);
|
|
304
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet);
|
|
293
305
|
return /*#__PURE__*/React.createElement(CheckboxListInput, {
|
|
294
306
|
values: data,
|
|
295
307
|
isLoading: isLoading,
|
|
296
308
|
error: error,
|
|
297
309
|
selectedValues: selectedValues,
|
|
298
|
-
onChange: onChange
|
|
310
|
+
onChange: onChange,
|
|
311
|
+
searchQuery: searchQuery
|
|
299
312
|
});
|
|
300
313
|
}
|
|
301
314
|
function LinkedMultiSelectInput({
|
|
302
315
|
objectType,
|
|
316
|
+
objectSet,
|
|
303
317
|
propertyKey,
|
|
304
318
|
selectedValues,
|
|
305
319
|
onChange
|
|
@@ -308,7 +322,7 @@ function LinkedMultiSelectInput({
|
|
|
308
322
|
data,
|
|
309
323
|
isLoading,
|
|
310
324
|
error
|
|
311
|
-
} = usePropertyAggregation(objectType, propertyKey);
|
|
325
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet);
|
|
312
326
|
return /*#__PURE__*/React.createElement(MultiSelectInput, {
|
|
313
327
|
values: data,
|
|
314
328
|
isLoading: isLoading,
|
|
@@ -319,6 +333,7 @@ function LinkedMultiSelectInput({
|
|
|
319
333
|
}
|
|
320
334
|
function LinkedSingleSelectInput({
|
|
321
335
|
objectType,
|
|
336
|
+
objectSet,
|
|
322
337
|
propertyKey,
|
|
323
338
|
selectedValue,
|
|
324
339
|
onChange
|
|
@@ -327,7 +342,7 @@ function LinkedSingleSelectInput({
|
|
|
327
342
|
data,
|
|
328
343
|
isLoading,
|
|
329
344
|
error
|
|
330
|
-
} = usePropertyAggregation(objectType, propertyKey);
|
|
345
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet);
|
|
331
346
|
return /*#__PURE__*/React.createElement(SingleSelectInput, {
|
|
332
347
|
values: data,
|
|
333
348
|
isLoading: isLoading,
|
|
@@ -339,27 +354,31 @@ function LinkedSingleSelectInput({
|
|
|
339
354
|
}
|
|
340
355
|
function LinkedListogramInput({
|
|
341
356
|
objectType,
|
|
357
|
+
objectSet,
|
|
342
358
|
propertyKey,
|
|
343
359
|
selectedValues,
|
|
344
|
-
onChange
|
|
360
|
+
onChange,
|
|
361
|
+
searchQuery
|
|
345
362
|
}) {
|
|
346
363
|
const {
|
|
347
364
|
data,
|
|
348
365
|
maxCount,
|
|
349
366
|
isLoading,
|
|
350
367
|
error
|
|
351
|
-
} = usePropertyAggregation(objectType, propertyKey);
|
|
368
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet);
|
|
352
369
|
return /*#__PURE__*/React.createElement(ListogramInput, {
|
|
353
370
|
values: data,
|
|
354
371
|
maxCount: maxCount,
|
|
355
372
|
isLoading: isLoading,
|
|
356
373
|
error: error,
|
|
357
374
|
selectedValues: selectedValues,
|
|
358
|
-
onChange: onChange
|
|
375
|
+
onChange: onChange,
|
|
376
|
+
searchQuery: searchQuery
|
|
359
377
|
});
|
|
360
378
|
}
|
|
361
379
|
function LinkedTextTagsInput({
|
|
362
380
|
objectType,
|
|
381
|
+
objectSet,
|
|
363
382
|
propertyKey,
|
|
364
383
|
tags,
|
|
365
384
|
onChange
|
|
@@ -371,7 +390,7 @@ function LinkedTextTagsInput({
|
|
|
371
390
|
data,
|
|
372
391
|
isLoading,
|
|
373
392
|
error
|
|
374
|
-
} = usePropertyAggregation(objectType, propertyKey, aggregationOptions);
|
|
393
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
|
|
375
394
|
return /*#__PURE__*/React.createElement(TextTagsInput, {
|
|
376
395
|
suggestions: data,
|
|
377
396
|
isLoading: isLoading,
|
|
@@ -381,11 +400,12 @@ function LinkedTextTagsInput({
|
|
|
381
400
|
suggestionLimit: 10
|
|
382
401
|
});
|
|
383
402
|
}
|
|
384
|
-
function useLinkedRangeData(objectType, propertyKey) {
|
|
403
|
+
function useLinkedRangeData(objectType, propertyKey, objectSet) {
|
|
385
404
|
const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);
|
|
386
405
|
const histogramArgs = useMemo(() => ({
|
|
387
|
-
aggregate: aggregateOptions
|
|
388
|
-
|
|
406
|
+
aggregate: aggregateOptions,
|
|
407
|
+
objectSet
|
|
408
|
+
}), [aggregateOptions, objectSet]);
|
|
389
409
|
const {
|
|
390
410
|
data: aggregateData,
|
|
391
411
|
isLoading: histLoading
|
|
@@ -394,8 +414,9 @@ function useLinkedRangeData(objectType, propertyKey) {
|
|
|
394
414
|
const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);
|
|
395
415
|
const nullCountArgs = useMemo(() => ({
|
|
396
416
|
where: nullWhereClause,
|
|
397
|
-
aggregate: nullCountAggregateOptions
|
|
398
|
-
|
|
417
|
+
aggregate: nullCountAggregateOptions,
|
|
418
|
+
objectSet
|
|
419
|
+
}), [nullWhereClause, nullCountAggregateOptions, objectSet]);
|
|
399
420
|
const {
|
|
400
421
|
data: nullCountData,
|
|
401
422
|
isLoading: nullLoading
|
|
@@ -417,6 +438,7 @@ function useLinkedRangeData(objectType, propertyKey) {
|
|
|
417
438
|
}
|
|
418
439
|
function LinkedNumberRangeInput({
|
|
419
440
|
objectType,
|
|
441
|
+
objectSet,
|
|
420
442
|
propertyKey,
|
|
421
443
|
minValue,
|
|
422
444
|
maxValue,
|
|
@@ -429,7 +451,7 @@ function LinkedNumberRangeInput({
|
|
|
429
451
|
histLoading,
|
|
430
452
|
nullCount,
|
|
431
453
|
nullLoading
|
|
432
|
-
} = useLinkedRangeData(objectType, propertyKey);
|
|
454
|
+
} = useLinkedRangeData(objectType, propertyKey, objectSet);
|
|
433
455
|
const valueCountPairs = useMemo(() => {
|
|
434
456
|
if (!aggregateData) return [];
|
|
435
457
|
const pairs = [];
|
|
@@ -462,6 +484,7 @@ function LinkedNumberRangeInput({
|
|
|
462
484
|
}
|
|
463
485
|
function LinkedDateRangeInput({
|
|
464
486
|
objectType,
|
|
487
|
+
objectSet,
|
|
465
488
|
propertyKey,
|
|
466
489
|
minValue,
|
|
467
490
|
maxValue,
|
|
@@ -474,7 +497,7 @@ function LinkedDateRangeInput({
|
|
|
474
497
|
histLoading,
|
|
475
498
|
nullCount,
|
|
476
499
|
nullLoading
|
|
477
|
-
} = useLinkedRangeData(objectType, propertyKey);
|
|
500
|
+
} = useLinkedRangeData(objectType, propertyKey, objectSet);
|
|
478
501
|
const valueCountPairs = useMemo(() => {
|
|
479
502
|
if (!aggregateData) return [];
|
|
480
503
|
const pairs = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedPropertyInput.js","names":["useOsdkAggregation","classnames","React","memo","useCallback","useMemo","assertUnreachable","CheckboxListInput","ContainsTextInput","DateRangeInput","styles","ListogramInput","MultiDateInput","MultiSelectInput","NullValueWrapper","NumberRangeInput","SingleDateInput","SingleSelectInput","TextTagsInput","TimelineInput","ToggleInput","usePropertyAggregation","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullWhereClause","coerceToString","coerceToStringArray","LinkedPropertyInputInner","objectSet","definition","filterState","onFilterStateChanged","className","style","linkedObjectSet","pivotTo","linkName","linkedObjectType","$objectSetInternals","def","linkedPropertyKey","innerState","type","linkedFilterState","undefined","isExcluding","includeNull","wrappedOnChange","innerFilterState","onSelectChange","selectedValues","onSingleSelectChange","selectedValue","onContainsTextChange","value","onToggleChange","enabled","onNumberRangeChange","minValue","maxValue","onDateRangeChange","onExactMatchChange","values","onDateSelectChange","date","onMultiDateChange","dates","onTimelineChange","start","end","startDate","endDate","onNullChange","newIncludeNull","content","linkedFilterComponent","createElement","LinkedCheckboxListInput","objectType","propertyKey","onChange","LinkedMultiSelectInput","LinkedSingleSelectInput","placeholder","String","nr","LinkedNumberRangeInput","dr","LinkedDateRangeInput","exactState","LinkedListogramInput","tags","LinkedTextTagsInput","selectedDate","Date","showClearButton","selectedDates","filter","v","showClearAll","tl","linkedProperty","LinkedPropertyInput","data","isLoading","error","ariaLabel","maxCount","aggregationOptions","limit","suggestions","suggestionLimit","useLinkedRangeData","aggregateOptions","histogramArgs","aggregate","aggregateData","histLoading","nullCountAggregateOptions","nullWhereClause","nullCountArgs","where","nullCountData","nullLoading","nullCount","result","$count","valueCountPairs","pairs","item","rawValue","$group","parsed","parseFloat","isNaN","push","count","onIncludeNullChange","getTime"],"sources":["LinkedPropertyInput.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 {\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { CheckboxListInput } from \"../base/inputs/CheckboxListInput.js\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport { DateRangeInput } from \"../base/inputs/DateRangeInput.js\";\nimport styles from \"../base/inputs/LinkedPropertyInput.module.css\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nimport { ToggleInput } from \"../base/inputs/ToggleInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport type { LinkedPropertyFilterDefinition } from \"../types/LinkedFilterTypes.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullWhereClause,\n} from \"../utils/aggregationHelpers.js\";\nimport {\n coerceToString,\n coerceToStringArray,\n} from \"../utils/coerceFilterValue.js\";\n\ninterface LinkedPropertyInputProps<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n> {\n objectSet: ObjectSet<Q>;\n definition: LinkedPropertyFilterDefinition<\n Q,\n L,\n ObjectTypeDefinition,\n PropertyKeys<ObjectTypeDefinition>\n >;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nfunction LinkedPropertyInputInner<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n>({\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n className,\n style,\n}: LinkedPropertyInputProps<Q, L>): React.ReactElement {\n const linkedObjectSet = useMemo(\n () => objectSet.pivotTo(definition.linkName),\n [objectSet, definition.linkName],\n );\n\n const linkedObjectType = linkedObjectSet.$objectSetInternals.def;\n\n const linkedPropertyKey = definition.linkedPropertyKey as PropertyKeys<\n typeof linkedObjectType\n >;\n\n const innerState = filterState?.type === \"linkedProperty\"\n ? filterState.linkedFilterState\n : undefined;\n\n const isExcluding = innerState?.isExcluding ?? false;\n const includeNull = innerState?.includeNull;\n\n const wrappedOnChange = useCallback(\n (innerFilterState: FilterState) => {\n onFilterStateChanged({\n type: \"linkedProperty\",\n linkedFilterState: innerFilterState,\n });\n },\n [onFilterStateChanged],\n );\n\n const onSelectChange = useCallback(\n (selectedValues: string[]) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onSingleSelectChange = useCallback(\n (selectedValue: string | undefined) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: selectedValue !== undefined ? [selectedValue] : [],\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onContainsTextChange = useCallback(\n (value: string | undefined) => {\n wrappedOnChange({ type: \"CONTAINS_TEXT\", value });\n },\n [wrappedOnChange],\n );\n\n const onToggleChange = useCallback(\n (enabled: boolean) => {\n wrappedOnChange({ type: \"TOGGLE\", enabled });\n },\n [wrappedOnChange],\n );\n\n const onNumberRangeChange = useCallback(\n (minValue: number | undefined, maxValue: number | undefined) => {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [wrappedOnChange, includeNull],\n );\n\n const onDateRangeChange = useCallback(\n (minValue: Date | undefined, maxValue: Date | undefined) => {\n wrappedOnChange({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [wrappedOnChange, includeNull],\n );\n\n const onExactMatchChange = useCallback(\n (values: string[]) => {\n wrappedOnChange({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onDateSelectChange = useCallback(\n (date: Date | undefined) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: date !== undefined ? [date] : [],\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onMultiDateChange = useCallback(\n (dates: Date[]) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: dates,\n });\n },\n [wrappedOnChange],\n );\n\n const onTimelineChange = useCallback(\n (start: Date | undefined, end: Date | undefined) => {\n wrappedOnChange({\n type: \"TIMELINE\",\n startDate: start,\n endDate: end,\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onNullChange = useCallback(\n (newIncludeNull: boolean) => {\n if (innerState?.type === \"NUMBER_RANGE\") {\n wrappedOnChange({ ...innerState, includeNull: newIncludeNull });\n } else if (innerState?.type === \"DATE_RANGE\") {\n wrappedOnChange({ ...innerState, includeNull: newIncludeNull });\n } else {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue: undefined,\n maxValue: undefined,\n includeNull: newIncludeNull,\n });\n }\n },\n [wrappedOnChange, innerState],\n );\n\n const content = (() => {\n switch (definition.linkedFilterComponent) {\n case \"CHECKBOX_LIST\": {\n const selectedValues = innerState?.type === \"SELECT\"\n ? coerceToStringArray(innerState.selectedValues)\n : [];\n return (\n <LinkedCheckboxListInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n selectedValues={selectedValues}\n onChange={onSelectChange}\n />\n );\n }\n\n case \"MULTI_SELECT\": {\n const values = innerState?.type === \"SELECT\"\n ? coerceToStringArray(innerState.selectedValues)\n : [];\n return (\n <LinkedMultiSelectInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n selectedValues={values}\n onChange={onSelectChange}\n />\n );\n }\n\n case \"SINGLE_SELECT\": {\n const value = innerState?.type === \"SELECT\"\n ? coerceToString(innerState.selectedValues[0])\n : undefined;\n return (\n <LinkedSingleSelectInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n selectedValue={value}\n onChange={onSingleSelectChange}\n />\n );\n }\n\n case \"CONTAINS_TEXT\": {\n const value = innerState?.type === \"CONTAINS_TEXT\"\n ? innerState.value\n : undefined;\n return (\n <ContainsTextInput\n value={value}\n onChange={onContainsTextChange}\n placeholder={`Search ${String(definition.linkedPropertyKey)}...`}\n />\n );\n }\n\n case \"TOGGLE\": {\n const enabled = innerState?.type === \"TOGGLE\"\n ? innerState.enabled\n : false;\n return (\n <ToggleInput\n enabled={enabled}\n onChange={onToggleChange}\n />\n );\n }\n\n case \"NUMBER_RANGE\": {\n const nr = innerState?.type === \"NUMBER_RANGE\" ? innerState : undefined;\n return (\n <LinkedNumberRangeInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n minValue={nr?.minValue}\n maxValue={nr?.maxValue}\n includeNull={nr?.includeNull}\n onChange={onNumberRangeChange}\n onNullChange={onNullChange}\n />\n );\n }\n\n case \"DATE_RANGE\": {\n const dr = innerState?.type === \"DATE_RANGE\" ? innerState : undefined;\n return (\n <LinkedDateRangeInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n minValue={dr?.minValue}\n maxValue={dr?.maxValue}\n includeNull={dr?.includeNull}\n onChange={onDateRangeChange}\n onNullChange={onNullChange}\n />\n );\n }\n\n case \"LISTOGRAM\": {\n const exactState = innerState?.type === \"EXACT_MATCH\"\n ? innerState\n : undefined;\n const selectedValues = exactState\n ? coerceToStringArray(exactState.values)\n : [];\n return (\n <LinkedListogramInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n selectedValues={selectedValues}\n onChange={onExactMatchChange}\n />\n );\n }\n\n case \"TEXT_TAGS\": {\n const exactState = innerState?.type === \"EXACT_MATCH\"\n ? innerState\n : undefined;\n const tags = exactState ? coerceToStringArray(exactState.values) : [];\n return (\n <LinkedTextTagsInput\n objectType={linkedObjectType}\n propertyKey={linkedPropertyKey}\n tags={tags}\n onChange={onExactMatchChange}\n />\n );\n }\n\n case \"SINGLE_DATE\": {\n const selectedDate = innerState?.type === \"SELECT\"\n ? (innerState.selectedValues[0] instanceof Date\n ? innerState.selectedValues[0]\n : undefined)\n : undefined;\n return (\n <SingleDateInput\n selectedDate={selectedDate}\n onChange={onDateSelectChange}\n showClearButton={true}\n />\n );\n }\n\n case \"MULTI_DATE\": {\n const selectedDates = innerState?.type === \"SELECT\"\n ? innerState.selectedValues.filter(\n (v): v is Date => v instanceof Date,\n )\n : [];\n return (\n <MultiDateInput\n selectedDates={selectedDates}\n onChange={onMultiDateChange}\n showClearAll={true}\n />\n );\n }\n\n case \"TIMELINE\": {\n const tl = innerState?.type === \"TIMELINE\" ? innerState : undefined;\n return (\n <TimelineInput\n startDate={tl?.startDate}\n endDate={tl?.endDate}\n onChange={onTimelineChange}\n />\n );\n }\n\n default:\n return assertUnreachable(definition.linkedFilterComponent);\n }\n })();\n\n return (\n <div className={classnames(styles.linkedProperty, className)} style={style}>\n {content}\n </div>\n );\n}\n\nexport const LinkedPropertyInput: typeof LinkedPropertyInputInner = memo(\n LinkedPropertyInputInner,\n) as typeof LinkedPropertyInputInner;\n\ninterface LinkedAggregationInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: PropertyKeys<Q>;\n}\n\ninterface LinkedCheckboxListInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n}\n\nfunction LinkedCheckboxListInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n selectedValues,\n onChange,\n}: LinkedCheckboxListInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n );\n return (\n <CheckboxListInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n />\n );\n}\n\ninterface LinkedMultiSelectInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n}\n\nfunction LinkedMultiSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n selectedValues,\n onChange,\n}: LinkedMultiSelectInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n );\n return (\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n />\n );\n}\n\ninterface LinkedSingleSelectInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValue: string | undefined;\n onChange: (value: string | undefined) => void;\n}\n\nfunction LinkedSingleSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n selectedValue,\n onChange,\n}: LinkedSingleSelectInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n );\n return (\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={onChange}\n ariaLabel={`Select ${propertyKey as string}`}\n />\n );\n}\n\ninterface LinkedListogramInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n}\n\nfunction LinkedListogramInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n selectedValues,\n onChange,\n}: LinkedListogramInputProps<Q>): React.ReactElement {\n const { data, maxCount, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n );\n return (\n <ListogramInput\n values={data}\n maxCount={maxCount}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n />\n );\n}\n\ninterface LinkedTextTagsInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n tags: string[];\n onChange: (values: string[]) => void;\n}\n\nfunction LinkedTextTagsInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n tags,\n onChange,\n}: LinkedTextTagsInputProps<Q>): React.ReactElement {\n const aggregationOptions = useMemo(() => ({ limit: 50 }), []);\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n aggregationOptions,\n );\n return (\n <TextTagsInput\n suggestions={data}\n isLoading={isLoading}\n error={error}\n tags={tags}\n onChange={onChange}\n suggestionLimit={10}\n />\n );\n}\n\ninterface LinkedRangeInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n includeNull?: boolean;\n onNullChange: (include: boolean) => void;\n}\n\nfunction useLinkedRangeData<Q extends ObjectTypeDefinition>(\n objectType: Q,\n propertyKey: PropertyKeys<Q>,\n) {\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey as string),\n [propertyKey],\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions }),\n [aggregateOptions],\n );\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs,\n );\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n [],\n );\n\n const nullWhereClause = useMemo(\n () => createNullWhereClause<Q>(propertyKey as string),\n [propertyKey],\n );\n\n const nullCountArgs = useMemo(\n () => ({ where: nullWhereClause, aggregate: nullCountAggregateOptions }),\n [nullWhereClause, nullCountAggregateOptions],\n );\n const { data: nullCountData, isLoading: nullLoading } = 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 return { aggregateData, histLoading, nullCount, nullLoading };\n}\n\ninterface LinkedNumberRangeInputProps<Q extends ObjectTypeDefinition>\n extends LinkedRangeInputProps<Q>\n{\n minValue: number | undefined;\n maxValue: number | undefined;\n onChange: (min: number | undefined, max: number | undefined) => void;\n}\n\nfunction LinkedNumberRangeInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange,\n}: LinkedNumberRangeInputProps<Q>): React.ReactElement {\n const { aggregateData, histLoading, nullCount, nullLoading } =\n useLinkedRangeData(objectType, propertyKey);\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 as string];\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 return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={nullLoading}\n includeNull={includeNull}\n onIncludeNullChange={onNullChange}\n >\n <NumberRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={histLoading}\n minValue={minValue}\n maxValue={maxValue}\n onChange={onChange}\n />\n </NullValueWrapper>\n );\n}\n\ninterface LinkedDateRangeInputProps<Q extends ObjectTypeDefinition>\n extends LinkedRangeInputProps<Q>\n{\n minValue: Date | undefined;\n maxValue: Date | undefined;\n onChange: (min: Date | undefined, max: Date | undefined) => void;\n}\n\nfunction LinkedDateRangeInput<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange,\n}: LinkedDateRangeInputProps<Q>): React.ReactElement {\n const { aggregateData, histLoading, nullCount, nullLoading } =\n useLinkedRangeData(objectType, propertyKey);\n\n const valueCountPairs = useMemo<Array<{ value: Date; count: number }>>(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: Date; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey as string];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({ value: date, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={nullLoading}\n includeNull={includeNull}\n onIncludeNullChange={onNullChange}\n >\n <DateRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={histLoading}\n minValue={minValue}\n maxValue={maxValue}\n onChange={onChange}\n />\n </NullValueWrapper>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"LinkedPropertyInput.js","names":["useOsdkAggregation","classnames","React","memo","useCallback","useMemo","assertUnreachable","CheckboxListInput","ContainsTextInput","DateRangeInput","styles","ListogramInput","MultiDateInput","MultiSelectInput","NullValueWrapper","NumberRangeInput","SingleDateInput","SingleSelectInput","TextTagsInput","TimelineInput","ToggleInput","usePropertyAggregation","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullWhereClause","coerceToString","coerceToStringArray","LinkedPropertyInputInner","objectSet","definition","filterState","onFilterStateChanged","searchQuery","className","style","linkedObjectSet","pivotTo","linkName","linkedObjectType","$objectSetInternals","def","linkedPropertyKey","innerState","type","linkedFilterState","undefined","isExcluding","includeNull","wrappedOnChange","innerFilterState","onSelectChange","selectedValues","onSingleSelectChange","selectedValue","onContainsTextChange","value","onToggleChange","enabled","onNumberRangeChange","minValue","maxValue","onDateRangeChange","onExactMatchChange","values","onDateSelectChange","date","onMultiDateChange","dates","onTimelineChange","start","end","startDate","endDate","onNullChange","newIncludeNull","content","linkedFilterComponent","createElement","LinkedCheckboxListInput","objectType","propertyKey","onChange","LinkedMultiSelectInput","LinkedSingleSelectInput","placeholder","String","nr","LinkedNumberRangeInput","dr","LinkedDateRangeInput","exactState","LinkedListogramInput","tags","LinkedTextTagsInput","selectedDate","Date","showClearButton","selectedDates","filter","v","showClearAll","tl","linkedProperty","LinkedPropertyInput","data","isLoading","error","ariaLabel","maxCount","aggregationOptions","limit","suggestions","suggestionLimit","useLinkedRangeData","aggregateOptions","histogramArgs","aggregate","aggregateData","histLoading","nullCountAggregateOptions","nullWhereClause","nullCountArgs","where","nullCountData","nullLoading","nullCount","result","$count","valueCountPairs","pairs","item","rawValue","$group","parsed","parseFloat","isNaN","push","count","onIncludeNullChange","getTime"],"sources":["LinkedPropertyInput.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 {\n LinkNames,\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n} from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react/experimental\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { CheckboxListInput } from \"../base/inputs/CheckboxListInput.js\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport { DateRangeInput } from \"../base/inputs/DateRangeInput.js\";\nimport styles from \"../base/inputs/LinkedPropertyInput.module.css\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"../base/inputs/NumberRangeInput.js\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport { TimelineInput } from \"../base/inputs/TimelineInput.js\";\nimport { ToggleInput } from \"../base/inputs/ToggleInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport type { LinkedPropertyFilterDefinition } from \"../types/LinkedFilterTypes.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullWhereClause,\n} from \"../utils/aggregationHelpers.js\";\nimport {\n coerceToString,\n coerceToStringArray,\n} from \"../utils/coerceFilterValue.js\";\n\ninterface LinkedPropertyInputProps<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n> {\n objectSet: ObjectSet<Q>;\n definition: LinkedPropertyFilterDefinition<\n Q,\n L,\n ObjectTypeDefinition,\n PropertyKeys<ObjectTypeDefinition>\n >;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n searchQuery?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nfunction LinkedPropertyInputInner<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n>({\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n searchQuery,\n className,\n style,\n}: LinkedPropertyInputProps<Q, L>): React.ReactElement {\n const linkedObjectSet = useMemo(\n () => objectSet.pivotTo(definition.linkName),\n [objectSet, definition.linkName],\n );\n\n const linkedObjectType = linkedObjectSet.$objectSetInternals.def;\n\n const linkedPropertyKey = definition.linkedPropertyKey as PropertyKeys<\n typeof linkedObjectType\n >;\n\n const innerState = filterState?.type === \"linkedProperty\"\n ? filterState.linkedFilterState\n : undefined;\n\n const isExcluding = innerState?.isExcluding ?? false;\n const includeNull = innerState?.includeNull;\n\n const wrappedOnChange = useCallback(\n (innerFilterState: FilterState) => {\n onFilterStateChanged({\n type: \"linkedProperty\",\n linkedFilterState: innerFilterState,\n });\n },\n [onFilterStateChanged],\n );\n\n const onSelectChange = useCallback(\n (selectedValues: string[]) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onSingleSelectChange = useCallback(\n (selectedValue: string | undefined) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: selectedValue !== undefined ? [selectedValue] : [],\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onContainsTextChange = useCallback(\n (value: string | undefined) => {\n wrappedOnChange({ type: \"CONTAINS_TEXT\", value });\n },\n [wrappedOnChange],\n );\n\n const onToggleChange = useCallback(\n (enabled: boolean) => {\n wrappedOnChange({ type: \"TOGGLE\", enabled });\n },\n [wrappedOnChange],\n );\n\n const onNumberRangeChange = useCallback(\n (minValue: number | undefined, maxValue: number | undefined) => {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [wrappedOnChange, includeNull],\n );\n\n const onDateRangeChange = useCallback(\n (minValue: Date | undefined, maxValue: Date | undefined) => {\n wrappedOnChange({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [wrappedOnChange, includeNull],\n );\n\n const onExactMatchChange = useCallback(\n (values: string[]) => {\n wrappedOnChange({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onDateSelectChange = useCallback(\n (date: Date | undefined) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: date !== undefined ? [date] : [],\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onMultiDateChange = useCallback(\n (dates: Date[]) => {\n wrappedOnChange({\n type: \"SELECT\",\n selectedValues: dates,\n });\n },\n [wrappedOnChange],\n );\n\n const onTimelineChange = useCallback(\n (start: Date | undefined, end: Date | undefined) => {\n wrappedOnChange({\n type: \"TIMELINE\",\n startDate: start,\n endDate: end,\n isExcluding,\n });\n },\n [wrappedOnChange, isExcluding],\n );\n\n const onNullChange = useCallback(\n (newIncludeNull: boolean) => {\n if (innerState?.type === \"NUMBER_RANGE\") {\n wrappedOnChange({ ...innerState, includeNull: newIncludeNull });\n } else if (innerState?.type === \"DATE_RANGE\") {\n wrappedOnChange({ ...innerState, includeNull: newIncludeNull });\n } else {\n wrappedOnChange({\n type: \"NUMBER_RANGE\",\n minValue: undefined,\n maxValue: undefined,\n includeNull: newIncludeNull,\n });\n }\n },\n [wrappedOnChange, innerState],\n );\n\n const content = (() => {\n switch (definition.linkedFilterComponent) {\n case \"CHECKBOX_LIST\": {\n const selectedValues = innerState?.type === \"SELECT\"\n ? coerceToStringArray(innerState.selectedValues)\n : [];\n return (\n <LinkedCheckboxListInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValues={selectedValues}\n onChange={onSelectChange}\n searchQuery={searchQuery}\n />\n );\n }\n\n case \"MULTI_SELECT\": {\n const values = innerState?.type === \"SELECT\"\n ? coerceToStringArray(innerState.selectedValues)\n : [];\n return (\n <LinkedMultiSelectInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValues={values}\n onChange={onSelectChange}\n />\n );\n }\n\n case \"SINGLE_SELECT\": {\n const value = innerState?.type === \"SELECT\"\n ? coerceToString(innerState.selectedValues[0])\n : undefined;\n return (\n <LinkedSingleSelectInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValue={value}\n onChange={onSingleSelectChange}\n />\n );\n }\n\n case \"CONTAINS_TEXT\": {\n const value = innerState?.type === \"CONTAINS_TEXT\"\n ? innerState.value\n : undefined;\n return (\n <ContainsTextInput\n value={value}\n onChange={onContainsTextChange}\n placeholder={`Search ${String(definition.linkedPropertyKey)}...`}\n />\n );\n }\n\n case \"TOGGLE\": {\n const enabled = innerState?.type === \"TOGGLE\"\n ? innerState.enabled\n : false;\n return (\n <ToggleInput\n enabled={enabled}\n onChange={onToggleChange}\n />\n );\n }\n\n case \"NUMBER_RANGE\": {\n const nr = innerState?.type === \"NUMBER_RANGE\" ? innerState : undefined;\n return (\n <LinkedNumberRangeInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n minValue={nr?.minValue}\n maxValue={nr?.maxValue}\n includeNull={nr?.includeNull}\n onChange={onNumberRangeChange}\n onNullChange={onNullChange}\n />\n );\n }\n\n case \"DATE_RANGE\": {\n const dr = innerState?.type === \"DATE_RANGE\" ? innerState : undefined;\n return (\n <LinkedDateRangeInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n minValue={dr?.minValue}\n maxValue={dr?.maxValue}\n includeNull={dr?.includeNull}\n onChange={onDateRangeChange}\n onNullChange={onNullChange}\n />\n );\n }\n\n case \"LISTOGRAM\": {\n const exactState = innerState?.type === \"EXACT_MATCH\"\n ? innerState\n : undefined;\n const selectedValues = exactState\n ? coerceToStringArray(exactState.values)\n : [];\n return (\n <LinkedListogramInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValues={selectedValues}\n onChange={onExactMatchChange}\n searchQuery={searchQuery}\n />\n );\n }\n\n case \"TEXT_TAGS\": {\n const exactState = innerState?.type === \"EXACT_MATCH\"\n ? innerState\n : undefined;\n const tags = exactState ? coerceToStringArray(exactState.values) : [];\n return (\n <LinkedTextTagsInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n propertyKey={linkedPropertyKey}\n tags={tags}\n onChange={onExactMatchChange}\n />\n );\n }\n\n case \"SINGLE_DATE\": {\n const selectedDate = innerState?.type === \"SELECT\"\n ? (innerState.selectedValues[0] instanceof Date\n ? innerState.selectedValues[0]\n : undefined)\n : undefined;\n return (\n <SingleDateInput\n selectedDate={selectedDate}\n onChange={onDateSelectChange}\n showClearButton={true}\n />\n );\n }\n\n case \"MULTI_DATE\": {\n const selectedDates = innerState?.type === \"SELECT\"\n ? innerState.selectedValues.filter(\n (v): v is Date => v instanceof Date,\n )\n : [];\n return (\n <MultiDateInput\n selectedDates={selectedDates}\n onChange={onMultiDateChange}\n showClearAll={true}\n />\n );\n }\n\n case \"TIMELINE\": {\n const tl = innerState?.type === \"TIMELINE\" ? innerState : undefined;\n return (\n <TimelineInput\n startDate={tl?.startDate}\n endDate={tl?.endDate}\n onChange={onTimelineChange}\n />\n );\n }\n\n default:\n return assertUnreachable(definition.linkedFilterComponent);\n }\n })();\n\n return (\n <div className={classnames(styles.linkedProperty, className)} style={style}>\n {content}\n </div>\n );\n}\n\nexport const LinkedPropertyInput: typeof LinkedPropertyInputInner = memo(\n LinkedPropertyInputInner,\n) as typeof LinkedPropertyInputInner;\n\ninterface LinkedAggregationInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n propertyKey: PropertyKeys<Q>;\n}\n\ninterface LinkedCheckboxListInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n searchQuery?: string;\n}\n\nfunction LinkedCheckboxListInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n searchQuery,\n}: LinkedCheckboxListInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n );\n return (\n <CheckboxListInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n searchQuery={searchQuery}\n />\n );\n}\n\ninterface LinkedMultiSelectInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n}\n\nfunction LinkedMultiSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n}: LinkedMultiSelectInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n );\n return (\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n />\n );\n}\n\ninterface LinkedSingleSelectInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValue: string | undefined;\n onChange: (value: string | undefined) => void;\n}\n\nfunction LinkedSingleSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValue,\n onChange,\n}: LinkedSingleSelectInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n );\n return (\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={onChange}\n ariaLabel={`Select ${propertyKey as string}`}\n />\n );\n}\n\ninterface LinkedListogramInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n searchQuery?: string;\n}\n\nfunction LinkedListogramInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n searchQuery,\n}: LinkedListogramInputProps<Q>): React.ReactElement {\n const { data, maxCount, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n );\n return (\n <ListogramInput\n values={data}\n maxCount={maxCount}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n searchQuery={searchQuery}\n />\n );\n}\n\ninterface LinkedTextTagsInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n tags: string[];\n onChange: (values: string[]) => void;\n}\n\nfunction LinkedTextTagsInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n tags,\n onChange,\n}: LinkedTextTagsInputProps<Q>): React.ReactElement {\n const aggregationOptions = useMemo(() => ({ limit: 50 }), []);\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n aggregationOptions,\n );\n return (\n <TextTagsInput\n suggestions={data}\n isLoading={isLoading}\n error={error}\n tags={tags}\n onChange={onChange}\n suggestionLimit={10}\n />\n );\n}\n\ninterface LinkedRangeInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n includeNull?: boolean;\n onNullChange: (include: boolean) => void;\n}\n\nfunction useLinkedRangeData<Q extends ObjectTypeDefinition>(\n objectType: Q,\n propertyKey: PropertyKeys<Q>,\n objectSet: ObjectSet<Q>,\n) {\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey as string),\n [propertyKey],\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions, objectSet }),\n [aggregateOptions, objectSet],\n );\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs,\n );\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n [],\n );\n\n const nullWhereClause = useMemo(\n () => createNullWhereClause<Q>(propertyKey as string),\n [propertyKey],\n );\n\n const nullCountArgs = useMemo(\n () => ({\n where: nullWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet,\n }),\n [nullWhereClause, nullCountAggregateOptions, objectSet],\n );\n const { data: nullCountData, isLoading: nullLoading } = 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 return { aggregateData, histLoading, nullCount, nullLoading };\n}\n\ninterface LinkedNumberRangeInputProps<Q extends ObjectTypeDefinition>\n extends LinkedRangeInputProps<Q>\n{\n minValue: number | undefined;\n maxValue: number | undefined;\n onChange: (min: number | undefined, max: number | undefined) => void;\n}\n\nfunction LinkedNumberRangeInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange,\n}: LinkedNumberRangeInputProps<Q>): React.ReactElement {\n const { aggregateData, histLoading, nullCount, nullLoading } =\n useLinkedRangeData(objectType, propertyKey, objectSet);\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 as string];\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 return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={nullLoading}\n includeNull={includeNull}\n onIncludeNullChange={onNullChange}\n >\n <NumberRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={histLoading}\n minValue={minValue}\n maxValue={maxValue}\n onChange={onChange}\n />\n </NullValueWrapper>\n );\n}\n\ninterface LinkedDateRangeInputProps<Q extends ObjectTypeDefinition>\n extends LinkedRangeInputProps<Q>\n{\n minValue: Date | undefined;\n maxValue: Date | undefined;\n onChange: (min: Date | undefined, max: Date | undefined) => void;\n}\n\nfunction LinkedDateRangeInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n minValue,\n maxValue,\n includeNull,\n onChange,\n onNullChange,\n}: LinkedDateRangeInputProps<Q>): React.ReactElement {\n const { aggregateData, histLoading, nullCount, nullLoading } =\n useLinkedRangeData(objectType, propertyKey, objectSet);\n\n const valueCountPairs = useMemo<Array<{ value: Date; count: number }>>(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: Date; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey as string];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({ value: date, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={nullLoading}\n includeNull={includeNull}\n onIncludeNullChange={onNullChange}\n >\n <DateRangeInput\n valueCountPairs={valueCountPairs}\n isLoading={histLoading}\n minValue={minValue}\n maxValue={maxValue}\n onChange={onChange}\n />\n </NullValueWrapper>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,18 +15,22 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
|
|
18
19
|
import { ListogramInput } from "../base/inputs/ListogramInput.js";
|
|
19
20
|
import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
|
|
20
21
|
import { coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
21
22
|
function ListogramFilterInputInner({
|
|
22
23
|
objectType,
|
|
24
|
+
objectSet,
|
|
23
25
|
propertyKey,
|
|
24
26
|
filterState,
|
|
25
27
|
onFilterStateChanged,
|
|
26
28
|
whereClause,
|
|
27
29
|
colorMap,
|
|
28
30
|
displayMode,
|
|
29
|
-
maxVisibleItems
|
|
31
|
+
maxVisibleItems,
|
|
32
|
+
searchQuery,
|
|
33
|
+
excludeRowOpen
|
|
30
34
|
}) {
|
|
31
35
|
const selectedValues = useMemo(() => filterState?.type === "EXACT_MATCH" ? coerceToStringArray(filterState.values) : [], [filterState]);
|
|
32
36
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
@@ -45,8 +49,13 @@ function ListogramFilterInputInner({
|
|
|
45
49
|
maxCount,
|
|
46
50
|
isLoading,
|
|
47
51
|
error
|
|
48
|
-
} = usePropertyAggregation(objectType, propertyKey, aggregationOptions);
|
|
49
|
-
return /*#__PURE__*/React.createElement(
|
|
52
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
|
|
53
|
+
return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {
|
|
54
|
+
excludeRowOpen: excludeRowOpen,
|
|
55
|
+
filterState: filterState,
|
|
56
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
57
|
+
totalValueCount: data.length
|
|
58
|
+
}, /*#__PURE__*/React.createElement(ListogramInput, {
|
|
50
59
|
values: data,
|
|
51
60
|
maxCount: maxCount,
|
|
52
61
|
isLoading: isLoading,
|
|
@@ -55,8 +64,9 @@ function ListogramFilterInputInner({
|
|
|
55
64
|
onChange: handleChange,
|
|
56
65
|
colorMap: colorMap,
|
|
57
66
|
displayMode: displayMode,
|
|
58
|
-
maxVisibleItems: maxVisibleItems
|
|
59
|
-
|
|
67
|
+
maxVisibleItems: maxVisibleItems,
|
|
68
|
+
searchQuery: searchQuery
|
|
69
|
+
}));
|
|
60
70
|
}
|
|
61
71
|
export const ListogramFilterInput = /*#__PURE__*/memo(ListogramFilterInputInner);
|
|
62
72
|
//# sourceMappingURL=ListogramFilterInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListogramFilterInput.js","names":["React","memo","useCallback","useMemo","ListogramInput","usePropertyAggregation","coerceToStringArray","ListogramFilterInputInner","objectType","propertyKey","filterState","onFilterStateChanged","whereClause","colorMap","displayMode","maxVisibleItems","selectedValues","type","values","isExcluding","handleChange","aggregationOptions","where","data","maxCount","isLoading","error","createElement","onChange","ListogramFilterInput"],"sources":["ListogramFilterInput.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 {\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface ListogramFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n colorMap?: Record<string, string>;\n displayMode?: \"full\" | \"count\" | \"minimal\";\n maxVisibleItems?: number;\n}\n\nfunction ListogramFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n colorMap,\n displayMode,\n maxVisibleItems,\n}: ListogramFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (values: string[]) => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, maxCount, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n aggregationOptions,\n );\n\n return (\n <ListogramInput\n
|
|
1
|
+
{"version":3,"file":"ListogramFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","ListogramInput","usePropertyAggregation","coerceToStringArray","ListogramFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","colorMap","displayMode","maxVisibleItems","searchQuery","excludeRowOpen","selectedValues","type","values","isExcluding","handleChange","aggregationOptions","where","data","maxCount","isLoading","error","createElement","totalValueCount","length","onChange","ListogramFilterInput"],"sources":["ListogramFilterInput.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 {\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface ListogramFilterInputProps<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 colorMap?: Record<string, string>;\n displayMode?: \"full\" | \"count\" | \"minimal\";\n maxVisibleItems?: number;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n}\n\nfunction ListogramFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n colorMap,\n displayMode,\n maxVisibleItems,\n searchQuery,\n excludeRowOpen,\n}: ListogramFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (values: string[]) => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, maxCount, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n aggregationOptions,\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n >\n <ListogramInput\n values={data}\n maxCount={maxCount}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={handleChange}\n colorMap={colorMap}\n displayMode={displayMode}\n maxVisibleItems={maxVisibleItems}\n searchQuery={searchQuery}\n />\n </FilterInputExcludeRow>\n );\n}\n\nexport const ListogramFilterInput: typeof ListogramFilterInputInner = memo(\n ListogramFilterInputInner,\n) as typeof ListogramFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,mBAAmB,QAAQ,+BAA+B;AAgBnE,SAASC,yBAAyBA,CAAiC;EACjEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,QAAQ;EACRC,WAAW;EACXC,eAAe;EACfC,WAAW;EACXC;AAC4B,CAAC,EAAsB;EACnD,MAAMC,cAAc,GAAGjB,OAAO,CAC5B,MACES,WAAW,EAAES,IAAI,KAAK,aAAa,GAC/Bd,mBAAmB,CAACK,WAAW,CAACU,MAAM,CAAC,GACvC,EAAE,EACR,CAACV,WAAW,CACd,CAAC;EACD,MAAMW,WAAW,GAAGX,WAAW,EAAEW,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGtB,WAAW,CAC7BoB,MAAgB,IAAK;IACpBT,oBAAoB,CAAC;MACnBQ,IAAI,EAAE,aAAa;MACnBC,MAAM;MACNC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACV,oBAAoB,EAAEU,WAAW,CACpC,CAAC;EAED,MAAME,kBAAkB,GAAGtB,OAAO,CAChC,OAAO;IAAEuB,KAAK,EAAEZ;EAAY,CAAC,CAAC,EAC9B,CAACA,WAAW,CACd,CAAC;EAED,MAAM;IAAEa,IAAI;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGxB,sBAAsB,CACjEG,UAAU,EACVE,WAAW,EACXD,SAAS,EACTe,kBACF,CAAC;EAED,oBACEzB,KAAA,CAAA+B,aAAA,CAAC3B,qBAAqB;IACpBe,cAAc,EAAEA,cAAe;IAC/BP,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CmB,eAAe,EAAEL,IAAI,CAACM;EAAO,gBAE7BjC,KAAA,CAAA+B,aAAA,CAAC1B,cAAc;IACbiB,MAAM,EAAEK,IAAK;IACbC,QAAQ,EAAEA,QAAS;IACnBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbV,cAAc,EAAEA,cAAe;IAC/Bc,QAAQ,EAAEV,YAAa;IACvBT,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBC,eAAe,EAAEA,eAAgB;IACjCC,WAAW,EAAEA;EAAY,CAC1B,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMiB,oBAAsD,gBAAGlC,IAAI,CACxEO,yBACF,CAAqC","ignoreList":[]}
|
|
@@ -15,15 +15,18 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import React, { memo, useCallback, useMemo } from "react";
|
|
18
|
+
import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
|
|
18
19
|
import { MultiSelectInput } from "../base/inputs/MultiSelectInput.js";
|
|
19
20
|
import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
|
|
20
21
|
import { coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
21
22
|
function MultiSelectFilterInputInner({
|
|
22
23
|
objectType,
|
|
24
|
+
objectSet,
|
|
23
25
|
propertyKey,
|
|
24
26
|
filterState,
|
|
25
27
|
onFilterStateChanged,
|
|
26
|
-
whereClause
|
|
28
|
+
whereClause,
|
|
29
|
+
excludeRowOpen
|
|
27
30
|
}) {
|
|
28
31
|
const selectedValues = useMemo(() => filterState?.type === "SELECT" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);
|
|
29
32
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
@@ -41,15 +44,20 @@ function MultiSelectFilterInputInner({
|
|
|
41
44
|
data,
|
|
42
45
|
isLoading,
|
|
43
46
|
error
|
|
44
|
-
} = usePropertyAggregation(objectType, propertyKey, aggregationOptions);
|
|
45
|
-
return /*#__PURE__*/React.createElement(
|
|
47
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
|
|
48
|
+
return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {
|
|
49
|
+
excludeRowOpen: excludeRowOpen,
|
|
50
|
+
filterState: filterState,
|
|
51
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
52
|
+
totalValueCount: data.length
|
|
53
|
+
}, /*#__PURE__*/React.createElement(MultiSelectInput, {
|
|
46
54
|
values: data,
|
|
47
55
|
isLoading: isLoading,
|
|
48
56
|
error: error,
|
|
49
57
|
selectedValues: selectedValues,
|
|
50
58
|
onChange: handleChange,
|
|
51
59
|
ariaLabel: `Search ${propertyKey} values`
|
|
52
|
-
});
|
|
60
|
+
}));
|
|
53
61
|
}
|
|
54
62
|
export const MultiSelectFilterInput = /*#__PURE__*/memo(MultiSelectFilterInputInner);
|
|
55
63
|
//# sourceMappingURL=MultiSelectFilterInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","MultiSelectInput","usePropertyAggregation","coerceToStringArray","MultiSelectFilterInputInner","objectType","propertyKey","filterState","onFilterStateChanged","whereClause","selectedValues","type","isExcluding","handleChange","aggregationOptions","where","data","isLoading","error","createElement","values","onChange","ariaLabel","MultiSelectFilterInput"],"sources":["MultiSelectFilterInput.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 {\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface MultiSelectFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: MultiSelectFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n aggregationOptions,\n );\n\n return (\n <MultiSelectInput\n
|
|
1
|
+
{"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","MultiSelectInput","usePropertyAggregation","coerceToStringArray","MultiSelectFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","excludeRowOpen","selectedValues","type","isExcluding","handleChange","aggregationOptions","where","data","isLoading","error","createElement","totalValueCount","length","values","onChange","ariaLabel","MultiSelectFilterInput"],"sources":["MultiSelectFilterInput.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 {\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { MultiSelectInput } from \"../base/inputs/MultiSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface MultiSelectFilterInputProps<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 excludeRowOpen?: boolean;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n excludeRowOpen,\n}: MultiSelectFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n const aggregationOptions = useMemo(\n () => ({ where: whereClause }),\n [whereClause],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n aggregationOptions,\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n >\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={handleChange}\n ariaLabel={`Search ${propertyKey} values`}\n />\n </FilterInputExcludeRow>\n );\n}\n\nexport const MultiSelectFilterInput: typeof MultiSelectFilterInputInner = memo(\n MultiSelectFilterInputInner,\n) as typeof MultiSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,gBAAgB,QAAQ,oCAAoC;AAErE,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,mBAAmB,QAAQ,+BAA+B;AAYnE,SAASC,2BAA2BA,CAAiC;EACnEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC;AAC8B,CAAC,EAAsB;EACrD,MAAMC,cAAc,GAAGb,OAAO,CAC5B,MACES,WAAW,EAAEK,IAAI,KAAK,QAAQ,GAC1BV,mBAAmB,CAACK,WAAW,CAACI,cAAc,CAAC,GAC/C,EAAE,EACR,CAACJ,WAAW,CACd,CAAC;EACD,MAAMM,WAAW,GAAGN,WAAW,EAAEM,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGjB,WAAW,CAC7Bc,cAAwB,IAAK;IAC5BH,oBAAoB,CAAC;MACnBI,IAAI,EAAE,QAAQ;MACdD,cAAc;MACdE;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACL,oBAAoB,EAAEK,WAAW,CACpC,CAAC;EAED,MAAME,kBAAkB,GAAGjB,OAAO,CAChC,OAAO;IAAEkB,KAAK,EAAEP;EAAY,CAAC,CAAC,EAC9B,CAACA,WAAW,CACd,CAAC;EAED,MAAM;IAAEQ,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGlB,sBAAsB,CACvDG,UAAU,EACVE,WAAW,EACXD,SAAS,EACTU,kBACF,CAAC;EAED,oBACEpB,KAAA,CAAAyB,aAAA,CAACrB,qBAAqB;IACpBW,cAAc,EAAEA,cAAe;IAC/BH,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3Ca,eAAe,EAAEJ,IAAI,CAACK;EAAO,gBAE7B3B,KAAA,CAAAyB,aAAA,CAACpB,gBAAgB;IACfuB,MAAM,EAAEN,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbR,cAAc,EAAEA,cAAe;IAC/Ba,QAAQ,EAAEV,YAAa;IACvBW,SAAS,EAAE,UAAUnB,WAAW;EAAU,CAC3C,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMoB,sBAA0D,gBAAG9B,IAAI,CAC5EO,2BACF,CAAuC","ignoreList":[]}
|
|
@@ -21,6 +21,7 @@ import { NumberRangeInput } from "../base/inputs/NumberRangeInput.js";
|
|
|
21
21
|
import { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from "../utils/aggregationHelpers.js";
|
|
22
22
|
function NumberRangeFilterInputInner({
|
|
23
23
|
objectType,
|
|
24
|
+
objectSet,
|
|
24
25
|
propertyKey,
|
|
25
26
|
filterState,
|
|
26
27
|
onFilterStateChanged
|
|
@@ -45,8 +46,9 @@ function NumberRangeFilterInputInner({
|
|
|
45
46
|
}, [onFilterStateChanged, includeNull]);
|
|
46
47
|
const aggregateOptions = useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);
|
|
47
48
|
const histogramArgs = useMemo(() => ({
|
|
48
|
-
aggregate: aggregateOptions
|
|
49
|
-
|
|
49
|
+
aggregate: aggregateOptions,
|
|
50
|
+
objectSet
|
|
51
|
+
}), [aggregateOptions, objectSet]);
|
|
50
52
|
const {
|
|
51
53
|
data: aggregateData,
|
|
52
54
|
isLoading: histLoading
|
|
@@ -72,8 +74,9 @@ function NumberRangeFilterInputInner({
|
|
|
72
74
|
const nullWhereClause = useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);
|
|
73
75
|
const nullCountArgs = useMemo(() => ({
|
|
74
76
|
where: nullWhereClause,
|
|
75
|
-
aggregate: nullCountAggregateOptions
|
|
76
|
-
|
|
77
|
+
aggregate: nullCountAggregateOptions,
|
|
78
|
+
objectSet
|
|
79
|
+
}), [nullWhereClause, nullCountAggregateOptions, objectSet]);
|
|
77
80
|
const {
|
|
78
81
|
data: nullCountData,
|
|
79
82
|
isLoading: nullLoading,
|
|
@@ -87,15 +90,16 @@ function NumberRangeFilterInputInner({
|
|
|
87
90
|
}
|
|
88
91
|
return 0;
|
|
89
92
|
}, [nullCountData]);
|
|
93
|
+
const isLoading = histLoading || nullLoading;
|
|
90
94
|
return /*#__PURE__*/React.createElement(NullValueWrapper, {
|
|
91
95
|
nullCount: nullCount,
|
|
92
|
-
isLoading:
|
|
96
|
+
isLoading: isLoading,
|
|
93
97
|
error: nullError,
|
|
94
98
|
includeNull: includeNull,
|
|
95
99
|
onIncludeNullChange: handleNullChange
|
|
96
100
|
}, /*#__PURE__*/React.createElement(NumberRangeInput, {
|
|
97
101
|
valueCountPairs: valueCountPairs,
|
|
98
|
-
isLoading:
|
|
102
|
+
isLoading: isLoading,
|
|
99
103
|
minValue: numberRangeState?.minValue,
|
|
100
104
|
maxValue: numberRangeState?.maxValue,
|
|
101
105
|
onChange: handleRangeChange
|