@osdk/react-components 0.19.0 → 0.19.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +1 -0
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
- package/build/browser/filter-list/FilterInput.js +7 -0
- package/build/browser/filter-list/FilterInput.js.map +1 -1
- package/build/browser/filter-list/FilterList.js +8 -2
- 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/FilterListItemApi.js.map +1 -1
- package/build/browser/filter-list/__tests__/aggregationMocks.js +50 -0
- package/build/browser/filter-list/__tests__/aggregationMocks.js.map +1 -0
- package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/FilterInputExcludeRow.js +12 -16
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -1
- package/build/browser/filter-list/base/FilterListContent.js +42 -40
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.js +8 -36
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/SortableFilterListItem.js +3 -1
- package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js +3 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css +6 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.js +2 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js +7 -3
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +6 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +1 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.js +4 -2
- package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/browser/filter-list/hooks/useDualScopeAggregation.js +70 -0
- package/build/browser/filter-list/hooks/useDualScopeAggregation.js.map +1 -0
- package/build/browser/filter-list/hooks/useFilterListState.js +35 -17
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js +37 -0
- package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +7 -6
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +45 -22
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +9 -7
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +8 -6
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +10 -1
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js +4 -2
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +9 -6
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/browser/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
- package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -1
- package/build/browser/filter-list/types/LinkedFilterTypes.js +42 -1
- package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/browser/filter-list/types/StaticValuesTypes.js.map +1 -1
- package/build/browser/filter-list/utils/filterStateToWhereClause.js +58 -22
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +148 -2
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/filter-list/utils/narrowObjectSet.js +48 -0
- package/build/browser/filter-list/utils/narrowObjectSet.js.map +1 -0
- package/build/browser/public/experimental/filter-list.js +1 -0
- package/build/browser/public/experimental/filter-list.js.map +1 -1
- package/build/browser/styles.css +17 -0
- package/build/browser/tokens/component-tokens/filter-list.css +5 -0
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/cjs/{chunk-6XRF4IAL.cjs → chunk-2AK24MNP.cjs} +4 -4
- package/build/cjs/{chunk-6XRF4IAL.cjs.map → chunk-2AK24MNP.cjs.map} +1 -1
- package/build/cjs/chunk-3DIODTDY.cjs +11 -0
- package/build/cjs/{chunk-774FGQHO.cjs.map → chunk-3DIODTDY.cjs.map} +1 -1
- package/build/cjs/{chunk-P7R4RWMU.cjs → chunk-3RKGMRPD.cjs} +4 -4
- package/build/cjs/{chunk-P7R4RWMU.cjs.map → chunk-3RKGMRPD.cjs.map} +1 -1
- package/build/cjs/chunk-ACIIYYEL.cjs +11 -0
- package/build/cjs/{chunk-62DGPKOC.cjs.map → chunk-ACIIYYEL.cjs.map} +1 -1
- package/build/cjs/{chunk-3OUALM3K.cjs → chunk-COLGW56W.cjs} +4 -4
- package/build/cjs/{chunk-3OUALM3K.cjs.map → chunk-COLGW56W.cjs.map} +1 -1
- package/build/cjs/{chunk-DKPG7O4B.cjs → chunk-GTFPQHZL.cjs} +5 -4
- package/build/cjs/chunk-GTFPQHZL.cjs.map +1 -0
- package/build/cjs/{chunk-L6QDNMMG.cjs → chunk-K3IJA7WZ.cjs} +4 -4
- package/build/cjs/{chunk-L6QDNMMG.cjs.map → chunk-K3IJA7WZ.cjs.map} +1 -1
- package/build/cjs/chunk-MAQSZDRT.cjs +11 -0
- package/build/cjs/{chunk-S25XCKOA.cjs.map → chunk-MAQSZDRT.cjs.map} +1 -1
- package/build/cjs/chunk-MHMRIDIM.cjs +11 -0
- package/build/cjs/{chunk-SLHKSOQC.cjs.map → chunk-MHMRIDIM.cjs.map} +1 -1
- package/build/cjs/{chunk-BXCHISUQ.cjs → chunk-NOONKE5X.cjs} +3 -3
- package/build/cjs/{chunk-BXCHISUQ.cjs.map → chunk-NOONKE5X.cjs.map} +1 -1
- package/build/cjs/chunk-OEESYGT4.cjs +11 -0
- package/build/cjs/{chunk-3Y4W37E3.cjs.map → chunk-OEESYGT4.cjs.map} +1 -1
- package/build/cjs/{chunk-QOI2FQSL.cjs → chunk-PUZZZTC7.cjs} +372 -157
- package/build/cjs/chunk-PUZZZTC7.cjs.map +1 -0
- package/build/cjs/{chunk-FIAYYZHY.cjs → chunk-QWKUCBXE.cjs} +4 -4
- package/build/cjs/{chunk-FIAYYZHY.cjs.map → chunk-QWKUCBXE.cjs.map} +1 -1
- package/build/cjs/public/experimental/action-form.cjs +4 -4
- package/build/cjs/public/experimental/action-form.d.cts +1 -1
- package/build/cjs/public/experimental/document-viewer.cjs +4 -4
- package/build/cjs/public/experimental/email-viewer.cjs +3 -3
- package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
- package/build/cjs/public/experimental/filter-list.cjs +17 -13
- package/build/cjs/public/experimental/filter-list.css +8 -0
- package/build/cjs/public/experimental/filter-list.css.map +1 -1
- package/build/cjs/public/experimental/filter-list.d.cts +95 -25
- package/build/cjs/public/experimental/image-viewer.cjs +3 -3
- package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
- package/build/cjs/public/experimental/object-table.cjs +8 -8
- package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
- package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
- package/build/cjs/public/experimental/video-viewer.cjs +3 -3
- package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
- package/build/cjs/public/experimental.cjs +50 -46
- package/build/cjs/public/experimental.css +8 -0
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +1 -1
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +1 -0
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
- package/build/esm/filter-list/FilterInput.js +7 -0
- package/build/esm/filter-list/FilterInput.js.map +1 -1
- package/build/esm/filter-list/FilterList.js +8 -2
- 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/FilterListItemApi.js.map +1 -1
- package/build/esm/filter-list/__tests__/aggregationMocks.js +50 -0
- package/build/esm/filter-list/__tests__/aggregationMocks.js.map +1 -0
- package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/FilterInputExcludeRow.js +12 -16
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -1
- package/build/esm/filter-list/base/FilterListContent.js +42 -40
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.js +8 -36
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/SortableFilterListItem.js +3 -1
- package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js +3 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ListogramInput.module.css +6 -0
- package/build/esm/filter-list/base/inputs/MultiDateInput.js +2 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js +7 -3
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +6 -0
- package/build/esm/filter-list/base/inputs/SingleDateInput.js +4 -2
- package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/esm/filter-list/hooks/useDualScopeAggregation.js +70 -0
- package/build/esm/filter-list/hooks/useDualScopeAggregation.js.map +1 -0
- package/build/esm/filter-list/hooks/useFilterListState.js +35 -17
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js +37 -0
- package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +7 -6
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +45 -22
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +9 -7
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +8 -6
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +10 -1
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js +4 -2
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +9 -6
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
- package/build/esm/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
- package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -1
- package/build/esm/filter-list/types/LinkedFilterTypes.js +42 -1
- package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/esm/filter-list/types/StaticValuesTypes.js.map +1 -1
- package/build/esm/filter-list/utils/filterStateToWhereClause.js +58 -22
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +148 -2
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/filter-list/utils/narrowObjectSet.js +48 -0
- package/build/esm/filter-list/utils/narrowObjectSet.js.map +1 -0
- package/build/esm/public/experimental/filter-list.js +1 -0
- package/build/esm/public/experimental/filter-list.js.map +1 -1
- package/build/esm/tokens/component-tokens/filter-list.css +5 -0
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/types/action-form/FormFieldApi.d.ts +1 -1
- package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterInput.d.ts +6 -1
- package/build/types/filter-list/FilterInput.d.ts.map +1 -1
- package/build/types/filter-list/FilterList.d.ts.map +1 -1
- package/build/types/filter-list/FilterListApi.d.ts +30 -15
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterListItemApi.d.ts +15 -1
- package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
- package/build/types/filter-list/__tests__/aggregationMocks.d.ts +11 -0
- package/build/types/filter-list/__tests__/aggregationMocks.d.ts.map +1 -0
- package/build/types/filter-list/base/BaseFilterList.d.ts +2 -1
- package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +2 -2
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListContent.d.ts +3 -3
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListItem.d.ts +2 -1
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts +2 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +2 -0
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts +32 -0
- package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts.map +1 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts +7 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts +13 -0
- package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts.map +1 -0
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +6 -4
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +4 -1
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -1
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +4 -1
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +7 -1
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -1
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
- package/build/types/filter-list/inputs/StaticValuesFilterInput.d.ts +1 -1
- package/build/types/filter-list/types/CustomRendererTypes.d.ts +2 -2
- package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/KeywordSearchTypes.d.ts +2 -2
- package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts +34 -4
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/StaticValuesTypes.d.ts +2 -2
- package/build/types/filter-list/types/StaticValuesTypes.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +24 -1
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +26 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- package/build/types/filter-list/utils/narrowObjectSet.d.ts +7 -0
- package/build/types/filter-list/utils/narrowObjectSet.d.ts.map +1 -0
- package/build/types/public/experimental/filter-list.d.ts +3 -1
- package/build/types/public/experimental/filter-list.d.ts.map +1 -1
- package/docs/CSSVariables.md +78 -17
- package/docs/FilterList.md +52 -6
- package/package.json +9 -9
- package/build/cjs/chunk-3Y4W37E3.cjs +0 -11
- package/build/cjs/chunk-62DGPKOC.cjs +0 -11
- package/build/cjs/chunk-774FGQHO.cjs +0 -11
- package/build/cjs/chunk-DKPG7O4B.cjs.map +0 -1
- package/build/cjs/chunk-QOI2FQSL.cjs.map +0 -1
- package/build/cjs/chunk-S25XCKOA.cjs +0 -11
- package/build/cjs/chunk-SLHKSOQC.cjs +0 -11
|
@@ -31,20 +31,30 @@ import { SingleSelectInput } from "../base/inputs/SingleSelectInput.js";
|
|
|
31
31
|
import { TextTagsInput } from "../base/inputs/TextTagsInput.js";
|
|
32
32
|
import { TimelineInput } from "../base/inputs/TimelineInput.js";
|
|
33
33
|
import { ToggleInput } from "../base/inputs/ToggleInput.js";
|
|
34
|
+
import { useDualScopeAggregation } from "../hooks/useDualScopeAggregation.js";
|
|
34
35
|
import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
|
|
36
|
+
import { EMPTY_LINKED_FILTERS } from "../types/LinkedFilterTypes.js";
|
|
35
37
|
import { createGroupByAggregateOptions, createNullCountAggregateOptions, createNullWhereClause } from "../utils/aggregationHelpers.js";
|
|
36
38
|
import { coerceToString, coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
39
|
+
import { narrowObjectSet } from "../utils/narrowObjectSet.js";
|
|
37
40
|
function LinkedPropertyInputInner({
|
|
38
41
|
objectSet,
|
|
42
|
+
whereClause,
|
|
43
|
+
linkedFilters = EMPTY_LINKED_FILTERS,
|
|
39
44
|
definition,
|
|
40
45
|
filterState,
|
|
41
46
|
onFilterStateChanged,
|
|
47
|
+
showFilteredOutValues,
|
|
42
48
|
searchQuery,
|
|
43
49
|
className,
|
|
44
50
|
style,
|
|
45
51
|
layout
|
|
46
52
|
}) {
|
|
47
|
-
const
|
|
53
|
+
const scoped = useMemo(() => narrowObjectSet(objectSet, whereClause, linkedFilters), [objectSet, whereClause, linkedFilters]);
|
|
54
|
+
const linkedObjectSet = useMemo(() => scoped.pivotTo(definition.linkName), [scoped, definition.linkName]);
|
|
55
|
+
// Filtered-out rows on a linked facet compare against the raw source so
|
|
56
|
+
// direct filters surface as count=0 entries on the linked side.
|
|
57
|
+
const emptySourceLinkedObjectSet = useMemo(() => showFilteredOutValues ? objectSet.pivotTo(definition.linkName) : undefined, [showFilteredOutValues, objectSet, definition.linkName]);
|
|
48
58
|
const linkedObjectType = linkedObjectSet.$objectSetInternals.def;
|
|
49
59
|
const linkedPropertyKey = definition.linkedPropertyKey;
|
|
50
60
|
const innerState = filterState?.type === "linkedProperty" ? filterState.linkedFilterState : undefined;
|
|
@@ -154,10 +164,12 @@ function LinkedPropertyInputInner({
|
|
|
154
164
|
return /*#__PURE__*/React.createElement(LinkedMultiSelectInput, {
|
|
155
165
|
objectType: linkedObjectType,
|
|
156
166
|
objectSet: linkedObjectSet,
|
|
167
|
+
emptySourceObjectSet: emptySourceLinkedObjectSet,
|
|
157
168
|
propertyKey: linkedPropertyKey,
|
|
158
169
|
selectedValues: values,
|
|
159
170
|
onChange: onSelectChange,
|
|
160
171
|
showCount: definition.showCount,
|
|
172
|
+
renderValue: definition.renderValue,
|
|
161
173
|
layout: layout
|
|
162
174
|
});
|
|
163
175
|
}
|
|
@@ -167,10 +179,12 @@ function LinkedPropertyInputInner({
|
|
|
167
179
|
return /*#__PURE__*/React.createElement(LinkedSingleSelectInput, {
|
|
168
180
|
objectType: linkedObjectType,
|
|
169
181
|
objectSet: linkedObjectSet,
|
|
182
|
+
emptySourceObjectSet: emptySourceLinkedObjectSet,
|
|
170
183
|
propertyKey: linkedPropertyKey,
|
|
171
184
|
selectedValue: value,
|
|
172
185
|
onChange: onSingleSelectChange,
|
|
173
|
-
showCount: definition.showCount
|
|
186
|
+
showCount: definition.showCount,
|
|
187
|
+
renderValue: definition.renderValue
|
|
174
188
|
});
|
|
175
189
|
}
|
|
176
190
|
case "CONTAINS_TEXT":
|
|
@@ -225,11 +239,13 @@ function LinkedPropertyInputInner({
|
|
|
225
239
|
return /*#__PURE__*/React.createElement(LinkedListogramInput, {
|
|
226
240
|
objectType: linkedObjectType,
|
|
227
241
|
objectSet: linkedObjectSet,
|
|
242
|
+
emptySourceObjectSet: emptySourceLinkedObjectSet,
|
|
228
243
|
propertyKey: linkedPropertyKey,
|
|
229
244
|
selectedValues: selectedValues,
|
|
230
245
|
onChange: onExactMatchChange,
|
|
231
246
|
searchQuery: searchQuery,
|
|
232
|
-
showCount: definition.showCount
|
|
247
|
+
showCount: definition.showCount,
|
|
248
|
+
renderValue: definition.renderValue
|
|
233
249
|
});
|
|
234
250
|
}
|
|
235
251
|
case "TEXT_TAGS":
|
|
@@ -284,20 +300,21 @@ export const LinkedPropertyInput = /*#__PURE__*/memo(LinkedPropertyInputInner);
|
|
|
284
300
|
function LinkedMultiSelectInput({
|
|
285
301
|
objectType,
|
|
286
302
|
objectSet,
|
|
303
|
+
emptySourceObjectSet,
|
|
287
304
|
propertyKey,
|
|
288
305
|
selectedValues,
|
|
289
306
|
onChange,
|
|
290
307
|
showCount,
|
|
308
|
+
renderValue,
|
|
291
309
|
layout
|
|
292
310
|
}) {
|
|
293
|
-
const aggregationOptions = useMemo(() => ({
|
|
294
|
-
activeValues: selectedValues
|
|
295
|
-
}), [selectedValues]);
|
|
296
311
|
const {
|
|
297
312
|
data,
|
|
298
313
|
isLoading,
|
|
299
314
|
error
|
|
300
|
-
} =
|
|
315
|
+
} = useDualScopeAggregation(objectType, propertyKey, objectSet, emptySourceObjectSet, {
|
|
316
|
+
selectedValues
|
|
317
|
+
});
|
|
301
318
|
return /*#__PURE__*/React.createElement(MultiSelectInput, {
|
|
302
319
|
values: data,
|
|
303
320
|
isLoading: isLoading,
|
|
@@ -305,25 +322,28 @@ function LinkedMultiSelectInput({
|
|
|
305
322
|
selectedValues: selectedValues,
|
|
306
323
|
onChange: onChange,
|
|
307
324
|
showCounts: showCount,
|
|
325
|
+
renderValue: renderValue,
|
|
308
326
|
layout: layout
|
|
309
327
|
});
|
|
310
328
|
}
|
|
311
329
|
function LinkedSingleSelectInput({
|
|
312
330
|
objectType,
|
|
313
331
|
objectSet,
|
|
332
|
+
emptySourceObjectSet,
|
|
314
333
|
propertyKey,
|
|
315
334
|
selectedValue,
|
|
316
335
|
onChange,
|
|
317
|
-
showCount
|
|
336
|
+
showCount,
|
|
337
|
+
renderValue
|
|
318
338
|
}) {
|
|
319
|
-
const
|
|
320
|
-
activeValues: selectedValue != null ? [selectedValue] : undefined
|
|
321
|
-
}), [selectedValue]);
|
|
339
|
+
const selectedValues = useMemo(() => selectedValue != null ? [selectedValue] : [], [selectedValue]);
|
|
322
340
|
const {
|
|
323
341
|
data,
|
|
324
342
|
isLoading,
|
|
325
343
|
error
|
|
326
|
-
} =
|
|
344
|
+
} = useDualScopeAggregation(objectType, propertyKey, objectSet, emptySourceObjectSet, {
|
|
345
|
+
selectedValues
|
|
346
|
+
});
|
|
327
347
|
return /*#__PURE__*/React.createElement(SingleSelectInput, {
|
|
328
348
|
values: data,
|
|
329
349
|
isLoading: isLoading,
|
|
@@ -331,27 +351,29 @@ function LinkedSingleSelectInput({
|
|
|
331
351
|
selectedValue: selectedValue,
|
|
332
352
|
onChange: onChange,
|
|
333
353
|
showCounts: showCount,
|
|
354
|
+
renderValue: renderValue,
|
|
334
355
|
ariaLabel: `Select ${propertyKey}`
|
|
335
356
|
});
|
|
336
357
|
}
|
|
337
358
|
function LinkedListogramInput({
|
|
338
359
|
objectType,
|
|
339
360
|
objectSet,
|
|
361
|
+
emptySourceObjectSet,
|
|
340
362
|
propertyKey,
|
|
341
363
|
selectedValues,
|
|
342
364
|
onChange,
|
|
343
365
|
searchQuery,
|
|
344
|
-
showCount
|
|
366
|
+
showCount,
|
|
367
|
+
renderValue
|
|
345
368
|
}) {
|
|
346
|
-
const aggregationOptions = useMemo(() => ({
|
|
347
|
-
activeValues: selectedValues
|
|
348
|
-
}), [selectedValues]);
|
|
349
369
|
const {
|
|
350
370
|
data,
|
|
351
371
|
maxCount,
|
|
352
372
|
isLoading,
|
|
353
373
|
error
|
|
354
|
-
} =
|
|
374
|
+
} = useDualScopeAggregation(objectType, propertyKey, objectSet, emptySourceObjectSet, {
|
|
375
|
+
selectedValues
|
|
376
|
+
});
|
|
355
377
|
return /*#__PURE__*/React.createElement(ListogramInput, {
|
|
356
378
|
values: data,
|
|
357
379
|
maxCount: maxCount,
|
|
@@ -360,9 +382,13 @@ function LinkedListogramInput({
|
|
|
360
382
|
selectedValues: selectedValues,
|
|
361
383
|
onChange: onChange,
|
|
362
384
|
searchQuery: searchQuery,
|
|
363
|
-
showCount: showCount
|
|
385
|
+
showCount: showCount,
|
|
386
|
+
renderValue: renderValue
|
|
364
387
|
});
|
|
365
388
|
}
|
|
389
|
+
const TEXT_TAGS_OPTIONS = {
|
|
390
|
+
limit: 50
|
|
391
|
+
};
|
|
366
392
|
function LinkedTextTagsInput({
|
|
367
393
|
objectType,
|
|
368
394
|
objectSet,
|
|
@@ -370,14 +396,11 @@ function LinkedTextTagsInput({
|
|
|
370
396
|
tags,
|
|
371
397
|
onChange
|
|
372
398
|
}) {
|
|
373
|
-
const aggregationOptions = useMemo(() => ({
|
|
374
|
-
limit: 50
|
|
375
|
-
}), []);
|
|
376
399
|
const {
|
|
377
400
|
data,
|
|
378
401
|
isLoading,
|
|
379
402
|
error
|
|
380
|
-
} = usePropertyAggregation(objectType, propertyKey, objectSet,
|
|
403
|
+
} = usePropertyAggregation(objectType, propertyKey, objectSet, TEXT_TAGS_OPTIONS);
|
|
381
404
|
return /*#__PURE__*/React.createElement(TextTagsInput, {
|
|
382
405
|
suggestions: data,
|
|
383
406
|
isLoading: isLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedPropertyInput.js","names":["useOsdkAggregation","classnames","React","memo","useCallback","useMemo","assertUnreachable","ContainsTextInput","DateRangeHistogramInput","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","layout","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","LinkedMultiSelectInput","objectType","propertyKey","onChange","showCount","LinkedSingleSelectInput","placeholder","String","nr","LinkedNumberRangeInput","dr","LinkedDateRangeInput","exactState","LinkedListogramInput","tags","LinkedTextTagsInput","selectedDate","Date","showClearButton","selectedDates","filter","v","showClearAll","tl","linkedProperty","LinkedPropertyInput","aggregationOptions","activeValues","data","isLoading","error","showCounts","ariaLabel","maxCount","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\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport { DateRangeHistogramInput } from \"../base/inputs/DateRangeHistogramInput.js\";\nimport styles from \"../base/inputs/LinkedPropertyInput.module.css\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} 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 /** Layout for `MULTI_SELECT` rendering. Forwarded to `MultiSelectInput`. */\n layout?: MultiSelectInputLayout;\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 layout,\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 \"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 showCount={definition.showCount}\n layout={layout}\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 showCount={definition.showCount}\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 showCount={definition.showCount}\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 LinkedMultiSelectInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n showCount?: boolean;\n layout?: MultiSelectInputLayout;\n}\n\nfunction LinkedMultiSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n showCount,\n layout,\n}: LinkedMultiSelectInputProps<Q>): React.ReactElement {\n const aggregationOptions = useMemo(\n () => ({ activeValues: selectedValues }),\n [selectedValues],\n );\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n aggregationOptions,\n );\n\n return (\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n showCounts={showCount}\n layout={layout}\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 showCount?: boolean;\n}\n\nfunction LinkedSingleSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValue,\n onChange,\n showCount,\n}: LinkedSingleSelectInputProps<Q>): React.ReactElement {\n const aggregationOptions = useMemo(\n () => ({\n activeValues: selectedValue != null ? [selectedValue] : undefined,\n }),\n [selectedValue],\n );\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n aggregationOptions,\n );\n\n return (\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={onChange}\n showCounts={showCount}\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 showCount?: boolean;\n}\n\nfunction LinkedListogramInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n selectedValues,\n onChange,\n searchQuery,\n showCount,\n}: LinkedListogramInputProps<Q>): React.ReactElement {\n const aggregationOptions = useMemo(\n () => ({ activeValues: selectedValues }),\n [selectedValues],\n );\n const { data, maxCount, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n aggregationOptions,\n );\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 showCount={showCount}\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 <DateRangeHistogramInput\n valueCountPairs={valueCountPairs}\n isLoading={histLoading}\n minValue={minValue}\n maxValue={maxValue}\n onChange={onChange}\n />\n </NullValueWrapper>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,kBAAkB,QAAQ,aAAa;AAChD,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,iBAAiB,QAAQ,mCAAmC;AACrE,SAASC,iBAAiB,QAAQ,qCAAqC;AACvE,SAASC,uBAAuB,QAAQ,2CAA2C;AACnF,OAAOC,MAAM,MAAM,+CAA+C;AAClE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SACEC,gBAAgB,QAEX,oCAAoC;AAC3C,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,gBAAgB,QAAQ,oCAAoC;AACrE,SAASC,eAAe,QAAQ,mCAAmC;AACnE,SAASC,iBAAiB,QAAQ,qCAAqC;AACvE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,WAAW,QAAQ,+BAA+B;AAE3D,SAASC,sBAAsB,QAAQ,oCAAoC;AAE3E,SACEC,6BAA6B,EAC7BC,+BAA+B,EAC/BC,qBAAqB,QAChB,gCAAgC;AACvC,SACEC,cAAc,EACdC,mBAAmB,QACd,+BAA+B;AAsBtC,SAASC,wBAAwBA,CAG/B;EACAC,SAAS;EACTC,UAAU;EACVC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,SAAS;EACTC,KAAK;EACLC;AAC8B,CAAC,EAAsB;EACrD,MAAMC,eAAe,GAAG9B,OAAO,CAC7B,MAAMsB,SAAS,CAACS,OAAO,CAACR,UAAU,CAACS,QAAQ,CAAC,EAC5C,CAACV,SAAS,EAAEC,UAAU,CAACS,QAAQ,CACjC,CAAC;EAED,MAAMC,gBAAgB,GAAGH,eAAe,CAACI,mBAAmB,CAACC,GAAG;EAEhE,MAAMC,iBAAiB,GAAGb,UAAU,CAACa,iBAEpC;EAED,MAAMC,UAAU,GAAGb,WAAW,EAAEc,IAAI,KAAK,gBAAgB,GACrDd,WAAW,CAACe,iBAAiB,GAC7BC,SAAS;EAEb,MAAMC,WAAW,GAAGJ,UAAU,EAAEI,WAAW,IAAI,KAAK;EACpD,MAAMC,WAAW,GAAGL,UAAU,EAAEK,WAAW;EAE3C,MAAMC,eAAe,GAAG5C,WAAW,CAChC6C,gBAA6B,IAAK;IACjCnB,oBAAoB,CAAC;MACnBa,IAAI,EAAE,gBAAgB;MACtBC,iBAAiB,EAAEK;IACrB,CAAC,CAAC;EACJ,CAAC,EACD,CAACnB,oBAAoB,CACvB,CAAC;EAED,MAAMoB,cAAc,GAAG9C,WAAW,CAC/B+C,cAAwB,IAAK;IAC5BH,eAAe,CAAC;MACdL,IAAI,EAAE,QAAQ;MACdQ,cAAc;MACdL;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACE,eAAe,EAAEF,WAAW,CAC/B,CAAC;EAED,MAAMM,oBAAoB,GAAGhD,WAAW,CACrCiD,aAAiC,IAAK;IACrCL,eAAe,CAAC;MACdL,IAAI,EAAE,QAAQ;MACdQ,cAAc,EAAEE,aAAa,KAAKR,SAAS,GAAG,CAACQ,aAAa,CAAC,GAAG,EAAE;MAClEP;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACE,eAAe,EAAEF,WAAW,CAC/B,CAAC;EAED,MAAMQ,oBAAoB,GAAGlD,WAAW,CACrCmD,KAAyB,IAAK;IAC7BP,eAAe,CAAC;MAAEL,IAAI,EAAE,eAAe;MAAEY;IAAM,CAAC,CAAC;EACnD,CAAC,EACD,CAACP,eAAe,CAClB,CAAC;EAED,MAAMQ,cAAc,GAAGpD,WAAW,CAC/BqD,OAAgB,IAAK;IACpBT,eAAe,CAAC;MAAEL,IAAI,EAAE,QAAQ;MAAEc;IAAQ,CAAC,CAAC;EAC9C,CAAC,EACD,CAACT,eAAe,CAClB,CAAC;EAED,MAAMU,mBAAmB,GAAGtD,WAAW,CACrC,CAACuD,QAA4B,EAAEC,QAA4B,KAAK;IAC9DZ,eAAe,CAAC;MACdL,IAAI,EAAE,cAAc;MACpBgB,QAAQ;MACRC,QAAQ;MACRb;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACC,eAAe,EAAED,WAAW,CAC/B,CAAC;EAED,MAAMc,iBAAiB,GAAGzD,WAAW,CACnC,CAACuD,QAA0B,EAAEC,QAA0B,KAAK;IAC1DZ,eAAe,CAAC;MACdL,IAAI,EAAE,YAAY;MAClBgB,QAAQ;MACRC,QAAQ;MACRb;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACC,eAAe,EAAED,WAAW,CAC/B,CAAC;EAED,MAAMe,kBAAkB,GAAG1D,WAAW,CACnC2D,MAAgB,IAAK;IACpBf,eAAe,CAAC;MACdL,IAAI,EAAE,aAAa;MACnBoB,MAAM;MACNjB;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACE,eAAe,EAAEF,WAAW,CAC/B,CAAC;EAED,MAAMkB,kBAAkB,GAAG5D,WAAW,CACnC6D,IAAsB,IAAK;IAC1BjB,eAAe,CAAC;MACdL,IAAI,EAAE,QAAQ;MACdQ,cAAc,EAAEc,IAAI,KAAKpB,SAAS,GAAG,CAACoB,IAAI,CAAC,GAAG,EAAE;MAChDnB;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACE,eAAe,EAAEF,WAAW,CAC/B,CAAC;EAED,MAAMoB,iBAAiB,GAAG9D,WAAW,CAClC+D,KAAa,IAAK;IACjBnB,eAAe,CAAC;MACdL,IAAI,EAAE,QAAQ;MACdQ,cAAc,EAAEgB;IAClB,CAAC,CAAC;EACJ,CAAC,EACD,CAACnB,eAAe,CAClB,CAAC;EAED,MAAMoB,gBAAgB,GAAGhE,WAAW,CAClC,CAACiE,KAAuB,EAAEC,GAAqB,KAAK;IAClDtB,eAAe,CAAC;MACdL,IAAI,EAAE,UAAU;MAChB4B,SAAS,EAAEF,KAAK;MAChBG,OAAO,EAAEF,GAAG;MACZxB;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACE,eAAe,EAAEF,WAAW,CAC/B,CAAC;EAED,MAAM2B,YAAY,GAAGrE,WAAW,CAC7BsE,cAAuB,IAAK;IAC3B,IAAIhC,UAAU,EAAEC,IAAI,KAAK,cAAc,EAAE;MACvCK,eAAe,CAAC;QAAE,GAAGN,UAAU;QAAEK,WAAW,EAAE2B;MAAe,CAAC,CAAC;IACjE,CAAC,MAAM,IAAIhC,UAAU,EAAEC,IAAI,KAAK,YAAY,EAAE;MAC5CK,eAAe,CAAC;QAAE,GAAGN,UAAU;QAAEK,WAAW,EAAE2B;MAAe,CAAC,CAAC;IACjE,CAAC,MAAM;MACL1B,eAAe,CAAC;QACdL,IAAI,EAAE,cAAc;QACpBgB,QAAQ,EAAEd,SAAS;QACnBe,QAAQ,EAAEf,SAAS;QACnBE,WAAW,EAAE2B;MACf,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAAC1B,eAAe,EAAEN,UAAU,CAC9B,CAAC;EAED,MAAMiC,OAAO,GAAG,CAAC,MAAM;IACrB,QAAQ/C,UAAU,CAACgD,qBAAqB;MACtC,KAAK,cAAc;QAAE;UACnB,MAAMb,MAAM,GAAGrB,UAAU,EAAEC,IAAI,KAAK,QAAQ,GACxClB,mBAAmB,CAACiB,UAAU,CAACS,cAAc,CAAC,GAC9C,EAAE;UACN,oBACEjD,KAAA,CAAA2E,aAAA,CAACC,sBAAsB;YACrBC,UAAU,EAAEzC,gBAAiB;YAC7BX,SAAS,EAAEQ,eAAgB;YAC3B6C,WAAW,EAAEvC,iBAAkB;YAC/BU,cAAc,EAAEY,MAAO;YACvBkB,QAAQ,EAAE/B,cAAe;YACzBgC,SAAS,EAAEtD,UAAU,CAACsD,SAAU;YAChChD,MAAM,EAAEA;UAAO,CAChB,CAAC;QAEN;MAEA,KAAK,eAAe;QAAE;UACpB,MAAMqB,KAAK,GAAGb,UAAU,EAAEC,IAAI,KAAK,QAAQ,GACvCnB,cAAc,CAACkB,UAAU,CAACS,cAAc,CAAC,CAAC,CAAC,CAAC,GAC5CN,SAAS;UACb,oBACE3C,KAAA,CAAA2E,aAAA,CAACM,uBAAuB;YACtBJ,UAAU,EAAEzC,gBAAiB;YAC7BX,SAAS,EAAEQ,eAAgB;YAC3B6C,WAAW,EAAEvC,iBAAkB;YAC/BY,aAAa,EAAEE,KAAM;YACrB0B,QAAQ,EAAE7B,oBAAqB;YAC/B8B,SAAS,EAAEtD,UAAU,CAACsD;UAAU,CACjC,CAAC;QAEN;MAEA,KAAK,eAAe;QAAE;UACpB,MAAM3B,KAAK,GAAGb,UAAU,EAAEC,IAAI,KAAK,eAAe,GAC9CD,UAAU,CAACa,KAAK,GAChBV,SAAS;UACb,oBACE3C,KAAA,CAAA2E,aAAA,CAACtE,iBAAiB;YAChBgD,KAAK,EAAEA,KAAM;YACb0B,QAAQ,EAAE3B,oBAAqB;YAC/B8B,WAAW,EAAE,UAAUC,MAAM,CAACzD,UAAU,CAACa,iBAAiB,CAAC;UAAM,CAClE,CAAC;QAEN;MAEA,KAAK,QAAQ;QAAE;UACb,MAAMgB,OAAO,GAAGf,UAAU,EAAEC,IAAI,KAAK,QAAQ,GACzCD,UAAU,CAACe,OAAO,GAClB,KAAK;UACT,oBACEvD,KAAA,CAAA2E,aAAA,CAAC1D,WAAW;YACVsC,OAAO,EAAEA,OAAQ;YACjBwB,QAAQ,EAAEzB;UAAe,CAC1B,CAAC;QAEN;MAEA,KAAK,cAAc;QAAE;UACnB,MAAM8B,EAAE,GAAG5C,UAAU,EAAEC,IAAI,KAAK,cAAc,GAAGD,UAAU,GAAGG,SAAS;UACvE,oBACE3C,KAAA,CAAA2E,aAAA,CAACU,sBAAsB;YACrBR,UAAU,EAAEzC,gBAAiB;YAC7BX,SAAS,EAAEQ,eAAgB;YAC3B6C,WAAW,EAAEvC,iBAAkB;YAC/BkB,QAAQ,EAAE2B,EAAE,EAAE3B,QAAS;YACvBC,QAAQ,EAAE0B,EAAE,EAAE1B,QAAS;YACvBb,WAAW,EAAEuC,EAAE,EAAEvC,WAAY;YAC7BkC,QAAQ,EAAEvB,mBAAoB;YAC9Be,YAAY,EAAEA;UAAa,CAC5B,CAAC;QAEN;MAEA,KAAK,YAAY;QAAE;UACjB,MAAMe,EAAE,GAAG9C,UAAU,EAAEC,IAAI,KAAK,YAAY,GAAGD,UAAU,GAAGG,SAAS;UACrE,oBACE3C,KAAA,CAAA2E,aAAA,CAACY,oBAAoB;YACnBV,UAAU,EAAEzC,gBAAiB;YAC7BX,SAAS,EAAEQ,eAAgB;YAC3B6C,WAAW,EAAEvC,iBAAkB;YAC/BkB,QAAQ,EAAE6B,EAAE,EAAE7B,QAAS;YACvBC,QAAQ,EAAE4B,EAAE,EAAE5B,QAAS;YACvBb,WAAW,EAAEyC,EAAE,EAAEzC,WAAY;YAC7BkC,QAAQ,EAAEpB,iBAAkB;YAC5BY,YAAY,EAAEA;UAAa,CAC5B,CAAC;QAEN;MAEA,KAAK,WAAW;QAAE;UAChB,MAAMiB,UAAU,GAAGhD,UAAU,EAAEC,IAAI,KAAK,aAAa,GACjDD,UAAU,GACVG,SAAS;UACb,MAAMM,cAAc,GAAGuC,UAAU,GAC7BjE,mBAAmB,CAACiE,UAAU,CAAC3B,MAAM,CAAC,GACtC,EAAE;UACN,oBACE7D,KAAA,CAAA2E,aAAA,CAACc,oBAAoB;YACnBZ,UAAU,EAAEzC,gBAAiB;YAC7BX,SAAS,EAAEQ,eAAgB;YAC3B6C,WAAW,EAAEvC,iBAAkB;YAC/BU,cAAc,EAAEA,cAAe;YAC/B8B,QAAQ,EAAEnB,kBAAmB;YAC7B/B,WAAW,EAAEA,WAAY;YACzBmD,SAAS,EAAEtD,UAAU,CAACsD;UAAU,CACjC,CAAC;QAEN;MAEA,KAAK,WAAW;QAAE;UAChB,MAAMQ,UAAU,GAAGhD,UAAU,EAAEC,IAAI,KAAK,aAAa,GACjDD,UAAU,GACVG,SAAS;UACb,MAAM+C,IAAI,GAAGF,UAAU,GAAGjE,mBAAmB,CAACiE,UAAU,CAAC3B,MAAM,CAAC,GAAG,EAAE;UACrE,oBACE7D,KAAA,CAAA2E,aAAA,CAACgB,mBAAmB;YAClBd,UAAU,EAAEzC,gBAAiB;YAC7BX,SAAS,EAAEQ,eAAgB;YAC3B6C,WAAW,EAAEvC,iBAAkB;YAC/BmD,IAAI,EAAEA,IAAK;YACXX,QAAQ,EAAEnB;UAAmB,CAC9B,CAAC;QAEN;MAEA,KAAK,aAAa;QAAE;UAClB,MAAMgC,YAAY,GAAGpD,UAAU,EAAEC,IAAI,KAAK,QAAQ,GAC7CD,UAAU,CAACS,cAAc,CAAC,CAAC,CAAC,YAAY4C,IAAI,GAC3CrD,UAAU,CAACS,cAAc,CAAC,CAAC,CAAC,GAC5BN,SAAS,GACXA,SAAS;UACb,oBACE3C,KAAA,CAAA2E,aAAA,CAAC9D,eAAe;YACd+E,YAAY,EAAEA,YAAa;YAC3Bb,QAAQ,EAAEjB,kBAAmB;YAC7BgC,eAAe,EAAE;UAAK,CACvB,CAAC;QAEN;MAEA,KAAK,YAAY;QAAE;UACjB,MAAMC,aAAa,GAAGvD,UAAU,EAAEC,IAAI,KAAK,QAAQ,GAC/CD,UAAU,CAACS,cAAc,CAAC+C,MAAM,CAC/BC,CAAC,IAAgBA,CAAC,YAAYJ,IACjC,CAAC,GACC,EAAE;UACN,oBACE7F,KAAA,CAAA2E,aAAA,CAAClE,cAAc;YACbsF,aAAa,EAAEA,aAAc;YAC7BhB,QAAQ,EAAEf,iBAAkB;YAC5BkC,YAAY,EAAE;UAAK,CACpB,CAAC;QAEN;MAEA,KAAK,UAAU;QAAE;UACf,MAAMC,EAAE,GAAG3D,UAAU,EAAEC,IAAI,KAAK,UAAU,GAAGD,UAAU,GAAGG,SAAS;UACnE,oBACE3C,KAAA,CAAA2E,aAAA,CAAC3D,aAAa;YACZqD,SAAS,EAAE8B,EAAE,EAAE9B,SAAU;YACzBC,OAAO,EAAE6B,EAAE,EAAE7B,OAAQ;YACrBS,QAAQ,EAAEb;UAAiB,CAC5B,CAAC;QAEN;MAEA;QACE,OAAO9D,iBAAiB,CAACsB,UAAU,CAACgD,qBAAqB,CAAC;IAC9D;EACF,CAAC,EAAE,CAAC;EAEJ,oBACE1E,KAAA,CAAA2E,aAAA;IAAK7C,SAAS,EAAE/B,UAAU,CAACQ,MAAM,CAAC6F,cAAc,EAAEtE,SAAS,CAAE;IAACC,KAAK,EAAEA;EAAM,GACxE0C,OACE,CAAC;AAEV;AAEA,OAAO,MAAM4B,mBAAoD,gBAAGpG,IAAI,CACtEuB,wBACF,CAAoC;AAiBpC,SAASoD,sBAAsBA,CAAiC;EAC9DC,UAAU;EACVpD,SAAS;EACTqD,WAAW;EACX7B,cAAc;EACd8B,QAAQ;EACRC,SAAS;EACThD;AAC8B,CAAC,EAAsB;EACrD,MAAMsE,kBAAkB,GAAGnG,OAAO,CAChC,OAAO;IAAEoG,YAAY,EAAEtD;EAAe,CAAC,CAAC,EACxC,CAACA,cAAc,CACjB,CAAC;EACD,MAAM;IAAEuD,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGxF,sBAAsB,CACvD2D,UAAU,EACVC,WAAW,EACXrD,SAAS,EACT6E,kBACF,CAAC;EAED,oBACEtG,KAAA,CAAA2E,aAAA,CAACjE,gBAAgB;IACfmD,MAAM,EAAE2C,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbzD,cAAc,EAAEA,cAAe;IAC/B8B,QAAQ,EAAEA,QAAS;IACnB4B,UAAU,EAAE3B,SAAU;IACtBhD,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN;AAUA,SAASiD,uBAAuBA,CAAiC;EAC/DJ,UAAU;EACVpD,SAAS;EACTqD,WAAW;EACX3B,aAAa;EACb4B,QAAQ;EACRC;AAC+B,CAAC,EAAsB;EACtD,MAAMsB,kBAAkB,GAAGnG,OAAO,CAChC,OAAO;IACLoG,YAAY,EAAEpD,aAAa,IAAI,IAAI,GAAG,CAACA,aAAa,CAAC,GAAGR;EAC1D,CAAC,CAAC,EACF,CAACQ,aAAa,CAChB,CAAC;EACD,MAAM;IAAEqD,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGxF,sBAAsB,CACvD2D,UAAU,EACVC,WAAW,EACXrD,SAAS,EACT6E,kBACF,CAAC;EAED,oBACEtG,KAAA,CAAA2E,aAAA,CAAC7D,iBAAiB;IAChB+C,MAAM,EAAE2C,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbvD,aAAa,EAAEA,aAAc;IAC7B4B,QAAQ,EAAEA,QAAS;IACnB4B,UAAU,EAAE3B,SAAU;IACtB4B,SAAS,EAAE,UAAU9B,WAAW;EAAa,CAC9C,CAAC;AAEN;AAWA,SAASW,oBAAoBA,CAAiC;EAC5DZ,UAAU;EACVpD,SAAS;EACTqD,WAAW;EACX7B,cAAc;EACd8B,QAAQ;EACRlD,WAAW;EACXmD;AAC4B,CAAC,EAAsB;EACnD,MAAMsB,kBAAkB,GAAGnG,OAAO,CAChC,OAAO;IAAEoG,YAAY,EAAEtD;EAAe,CAAC,CAAC,EACxC,CAACA,cAAc,CACjB,CAAC;EACD,MAAM;IAAEuD,IAAI;IAAEK,QAAQ;IAAEJ,SAAS;IAAEC;EAAM,CAAC,GAAGxF,sBAAsB,CACjE2D,UAAU,EACVC,WAAW,EACXrD,SAAS,EACT6E,kBACF,CAAC;EAED,oBACEtG,KAAA,CAAA2E,aAAA,CAACnE,cAAc;IACbqD,MAAM,EAAE2C,IAAK;IACbK,QAAQ,EAAEA,QAAS;IACnBJ,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbzD,cAAc,EAAEA,cAAe;IAC/B8B,QAAQ,EAAEA,QAAS;IACnBlD,WAAW,EAAEA,WAAY;IACzBmD,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN;AASA,SAASW,mBAAmBA,CAAiC;EAC3Dd,UAAU;EACVpD,SAAS;EACTqD,WAAW;EACXY,IAAI;EACJX;AAC2B,CAAC,EAAsB;EAClD,MAAMuB,kBAAkB,GAAGnG,OAAO,CAAC,OAAO;IAAE2G,KAAK,EAAE;EAAG,CAAC,CAAC,EAAE,EAAE,CAAC;EAC7D,MAAM;IAAEN,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGxF,sBAAsB,CACvD2D,UAAU,EACVC,WAAW,EACXrD,SAAS,EACT6E,kBACF,CAAC;EACD,oBACEtG,KAAA,CAAA2E,aAAA,CAAC5D,aAAa;IACZgG,WAAW,EAAEP,IAAK;IAClBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbhB,IAAI,EAAEA,IAAK;IACXX,QAAQ,EAAEA,QAAS;IACnBiC,eAAe,EAAE;EAAG,CACrB,CAAC;AAEN;AASA,SAASC,kBAAkBA,CACzBpC,UAAa,EACbC,WAA4B,EAC5BrD,SAAuB,EACvB;EACA,MAAMyF,gBAAgB,GAAG/G,OAAO,CAC9B,MAAMgB,6BAA6B,CAAI2D,WAAqB,CAAC,EAC7D,CAACA,WAAW,CACd,CAAC;EAED,MAAMqC,aAAa,GAAGhH,OAAO,CAC3B,OAAO;IAAEiH,SAAS,EAAEF,gBAAgB;IAAEzF;EAAU,CAAC,CAAC,EAClD,CAACyF,gBAAgB,EAAEzF,SAAS,CAC9B,CAAC;EACD,MAAM;IAAE+E,IAAI,EAAEa,aAAa;IAAEZ,SAAS,EAAEa;EAAY,CAAC,GAAGxH,kBAAkB,CACxE+E,UAAU,EACVsC,aACF,CAAC;EAED,MAAMI,yBAAyB,GAAGpH,OAAO,CACvC,MAAMiB,+BAA+B,CAAI,CAAC,EAC1C,EACF,CAAC;EAED,MAAMoG,eAAe,GAAGrH,OAAO,CAC7B,MAAMkB,qBAAqB,CAAIyD,WAAqB,CAAC,EACrD,CAACA,WAAW,CACd,CAAC;EAED,MAAM2C,aAAa,GAAGtH,OAAO,CAC3B,OAAO;IACLuH,KAAK,EAAEF,eAAe;IACtBJ,SAAS,EAAEG,yBAAyB;IACpC9F;EACF,CAAC,CAAC,EACF,CAAC+F,eAAe,EAAED,yBAAyB,EAAE9F,SAAS,CACxD,CAAC;EACD,MAAM;IAAE+E,IAAI,EAAEmB,aAAa;IAAElB,SAAS,EAAEmB;EAAY,CAAC,GAAG9H,kBAAkB,CACxE+E,UAAU,EACV4C,aACF,CAAC;EAED,MAAMI,SAAS,GAAG1H,OAAO,CAAC,MAAM;IAC9B,IAAI,CAACwH,aAAa,EAAE,OAAO,CAAC;IAC5B,MAAMG,MAAM,GAAGH,aAAwD;IACvE,IAAI,QAAQ,IAAIG,MAAM,IAAI,OAAOA,MAAM,CAACC,MAAM,KAAK,QAAQ,EAAE;MAC3D,OAAOD,MAAM,CAACC,MAAM;IACtB;IACA,OAAO,CAAC;EACV,CAAC,EAAE,CAACJ,aAAa,CAAC,CAAC;EAEnB,OAAO;IAAEN,aAAa;IAAEC,WAAW;IAAEO,SAAS;IAAED;EAAY,CAAC;AAC/D;AAUA,SAASvC,sBAAsBA,CAAiC;EAC9DR,UAAU;EACVpD,SAAS;EACTqD,WAAW;EACXrB,QAAQ;EACRC,QAAQ;EACRb,WAAW;EACXkC,QAAQ;EACRR;AAC8B,CAAC,EAAsB;EACrD,MAAM;IAAE8C,aAAa;IAAEC,WAAW;IAAEO,SAAS;IAAED;EAAY,CAAC,GAC1DX,kBAAkB,CAACpC,UAAU,EAAEC,WAAW,EAAErD,SAAS,CAAC;EAExD,MAAMuG,eAAe,GAAG7H,OAAO,CAC7B,MAAM;IACJ,IAAI,CAACkH,aAAa,EAAE,OAAO,EAAE;IAK7B,MAAMY,KAA8C,GAAG,EAAE;IACzD,KAAK,MAAMC,IAAI,IALGb,aAAa,EAKD;MAC5B,MAAMc,QAAQ,GAAGD,IAAI,CAACE,MAAM,CAACtD,WAAW,CAAW;MACnD,IAAIqD,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAME,MAAM,GAAGC,UAAU,CAACnD,MAAM,CAACgD,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAACI,KAAK,CAACF,MAAM,CAAC,EAAE;UAClBJ,KAAK,CAACO,IAAI,CAAC;YAAEnF,KAAK,EAAEgF,MAAM;YAAEI,KAAK,EAAEP,IAAI,CAACH,MAAM,IAAI;UAAE,CAAC,CAAC;QACxD;MACF;IACF;IACA,OAAOE,KAAK;EACd,CAAC,EACD,CAACZ,aAAa,EAAEvC,WAAW,CAC7B,CAAC;EAED,oBACE9E,KAAA,CAAA2E,aAAA,CAAChE,gBAAgB;IACfkH,SAAS,EAAEA,SAAU;IACrBpB,SAAS,EAAEmB,WAAY;IACvB/E,WAAW,EAAEA,WAAY;IACzB6F,mBAAmB,EAAEnE;EAAa,gBAElCvE,KAAA,CAAA2E,aAAA,CAAC/D,gBAAgB;IACfoH,eAAe,EAAEA,eAAgB;IACjCvB,SAAS,EAAEa,WAAY;IACvB7D,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBqB,QAAQ,EAAEA;EAAS,CACpB,CACe,CAAC;AAEvB;AAUA,SAASQ,oBAAoBA,CAAiC;EAC5DV,UAAU;EACVpD,SAAS;EACTqD,WAAW;EACXrB,QAAQ;EACRC,QAAQ;EACRb,WAAW;EACXkC,QAAQ;EACRR;AAC4B,CAAC,EAAsB;EACnD,MAAM;IAAE8C,aAAa;IAAEC,WAAW;IAAEO,SAAS;IAAED;EAAY,CAAC,GAC1DX,kBAAkB,CAACpC,UAAU,EAAEC,WAAW,EAAErD,SAAS,CAAC;EAExD,MAAMuG,eAAe,GAAG7H,OAAO,CAAwC,MAAM;IAC3E,IAAI,CAACkH,aAAa,EAAE,OAAO,EAAE;IAK7B,MAAMY,KAA4C,GAAG,EAAE;IACvD,KAAK,MAAMC,IAAI,IALGb,aAAa,EAKD;MAC5B,MAAMc,QAAQ,GAAGD,IAAI,CAACE,MAAM,CAACtD,WAAW,CAAW;MACnD,IAAIqD,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAMpE,IAAI,GAAG,IAAI8B,IAAI,CAACV,MAAM,CAACgD,QAAQ,CAAC,CAAC;QACvC,IAAI,CAACI,KAAK,CAACxE,IAAI,CAAC4E,OAAO,CAAC,CAAC,CAAC,EAAE;UAC1BV,KAAK,CAACO,IAAI,CAAC;YAAEnF,KAAK,EAAEU,IAAI;YAAE0E,KAAK,EAAEP,IAAI,CAACH,MAAM,IAAI;UAAE,CAAC,CAAC;QACtD;MACF;IACF;IACA,OAAOE,KAAK;EACd,CAAC,EAAE,CAACZ,aAAa,EAAEvC,WAAW,CAAC,CAAC;EAEhC,oBACE9E,KAAA,CAAA2E,aAAA,CAAChE,gBAAgB;IACfkH,SAAS,EAAEA,SAAU;IACrBpB,SAAS,EAAEmB,WAAY;IACvB/E,WAAW,EAAEA,WAAY;IACzB6F,mBAAmB,EAAEnE;EAAa,gBAElCvE,KAAA,CAAA2E,aAAA,CAACrE,uBAAuB;IACtB0H,eAAe,EAAEA,eAAgB;IACjCvB,SAAS,EAAEa,WAAY;IACvB7D,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBqB,QAAQ,EAAEA;EAAS,CACpB,CACe,CAAC;AAEvB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"LinkedPropertyInput.js","names":["useOsdkAggregation","classnames","React","memo","useCallback","useMemo","assertUnreachable","ContainsTextInput","DateRangeHistogramInput","styles","ListogramInput","MultiDateInput","MultiSelectInput","NullValueWrapper","NumberRangeInput","SingleDateInput","SingleSelectInput","TextTagsInput","TimelineInput","ToggleInput","useDualScopeAggregation","usePropertyAggregation","EMPTY_LINKED_FILTERS","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullWhereClause","coerceToString","coerceToStringArray","narrowObjectSet","LinkedPropertyInputInner","objectSet","whereClause","linkedFilters","definition","filterState","onFilterStateChanged","showFilteredOutValues","searchQuery","className","style","layout","scoped","linkedObjectSet","pivotTo","linkName","emptySourceLinkedObjectSet","undefined","linkedObjectType","$objectSetInternals","def","linkedPropertyKey","innerState","type","linkedFilterState","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","LinkedMultiSelectInput","objectType","emptySourceObjectSet","propertyKey","onChange","showCount","renderValue","LinkedSingleSelectInput","placeholder","String","nr","LinkedNumberRangeInput","dr","LinkedDateRangeInput","exactState","LinkedListogramInput","tags","LinkedTextTagsInput","selectedDate","Date","showClearButton","selectedDates","filter","v","showClearAll","tl","linkedProperty","LinkedPropertyInput","data","isLoading","error","showCounts","ariaLabel","maxCount","TEXT_TAGS_OPTIONS","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 WhereClause,\n} from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport classnames from \"classnames\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport { DateRangeHistogramInput } from \"../base/inputs/DateRangeHistogramInput.js\";\nimport styles from \"../base/inputs/LinkedPropertyInput.module.css\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"../base/inputs/MultiDateInput.js\";\nimport {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} 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 { useDualScopeAggregation } from \"../hooks/useDualScopeAggregation.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport {\n EMPTY_LINKED_FILTERS,\n type LinkedFilter,\n type LinkedPropertyFilterDefinition,\n} 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\";\nimport { narrowObjectSet } from \"../utils/narrowObjectSet.js\";\n\ninterface LinkedPropertyInputProps<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n> {\n objectSet: ObjectSet<Q>;\n whereClause: WhereClause<Q>;\n linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;\n definition: LinkedPropertyFilterDefinition<\n Q,\n L,\n ObjectTypeDefinition,\n PropertyKeys<ObjectTypeDefinition>\n >;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n showFilteredOutValues?: boolean;\n searchQuery?: string;\n className?: string;\n style?: React.CSSProperties;\n layout?: MultiSelectInputLayout;\n}\n\nfunction LinkedPropertyInputInner<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n>({\n objectSet,\n whereClause,\n linkedFilters = EMPTY_LINKED_FILTERS,\n definition,\n filterState,\n onFilterStateChanged,\n showFilteredOutValues,\n searchQuery,\n className,\n style,\n layout,\n}: LinkedPropertyInputProps<Q, L>): React.ReactElement {\n const scoped = useMemo(\n () => narrowObjectSet(objectSet, whereClause, linkedFilters),\n [objectSet, whereClause, linkedFilters],\n );\n const linkedObjectSet = useMemo(\n () => scoped.pivotTo(definition.linkName),\n [scoped, definition.linkName],\n );\n // Filtered-out rows on a linked facet compare against the raw source so\n // direct filters surface as count=0 entries on the linked side.\n const emptySourceLinkedObjectSet = useMemo(\n () =>\n showFilteredOutValues\n ? objectSet.pivotTo(definition.linkName)\n : undefined,\n [showFilteredOutValues, 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 \"MULTI_SELECT\": {\n const values = innerState?.type === \"SELECT\"\n ? coerceToStringArray(innerState.selectedValues)\n : [];\n return (\n <LinkedMultiSelectInput\n objectType={linkedObjectType}\n objectSet={linkedObjectSet}\n emptySourceObjectSet={emptySourceLinkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValues={values}\n onChange={onSelectChange}\n showCount={definition.showCount}\n renderValue={definition.renderValue}\n layout={layout}\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 emptySourceObjectSet={emptySourceLinkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValue={value}\n onChange={onSingleSelectChange}\n showCount={definition.showCount}\n renderValue={definition.renderValue}\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 emptySourceObjectSet={emptySourceLinkedObjectSet}\n propertyKey={linkedPropertyKey}\n selectedValues={selectedValues}\n onChange={onExactMatchChange}\n searchQuery={searchQuery}\n showCount={definition.showCount}\n renderValue={definition.renderValue}\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 emptySourceObjectSet?: ObjectSet<Q>;\n propertyKey: PropertyKeys<Q>;\n}\n\ninterface LinkedMultiSelectInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n selectedValues: string[];\n onChange: (values: string[]) => void;\n showCount?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n layout?: MultiSelectInputLayout;\n}\n\nfunction LinkedMultiSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n emptySourceObjectSet,\n propertyKey,\n selectedValues,\n onChange,\n showCount,\n renderValue,\n layout,\n}: LinkedMultiSelectInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = useDualScopeAggregation(\n objectType,\n propertyKey,\n objectSet,\n emptySourceObjectSet,\n { selectedValues },\n );\n\n return (\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={onChange}\n showCounts={showCount}\n renderValue={renderValue}\n layout={layout}\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 showCount?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n}\n\nfunction LinkedSingleSelectInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n emptySourceObjectSet,\n propertyKey,\n selectedValue,\n onChange,\n showCount,\n renderValue,\n}: LinkedSingleSelectInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () => selectedValue != null ? [selectedValue] : [],\n [selectedValue],\n );\n const { data, isLoading, error } = useDualScopeAggregation(\n objectType,\n propertyKey,\n objectSet,\n emptySourceObjectSet,\n { selectedValues },\n );\n\n return (\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={onChange}\n showCounts={showCount}\n renderValue={renderValue}\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 showCount?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n}\n\nfunction LinkedListogramInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n emptySourceObjectSet,\n propertyKey,\n selectedValues,\n onChange,\n searchQuery,\n showCount,\n renderValue,\n}: LinkedListogramInputProps<Q>): React.ReactElement {\n const { data, maxCount, isLoading, error } = useDualScopeAggregation(\n objectType,\n propertyKey,\n objectSet,\n emptySourceObjectSet,\n { selectedValues },\n );\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 showCount={showCount}\n renderValue={renderValue}\n />\n );\n}\n\ninterface LinkedTextTagsInputProps<Q extends ObjectTypeDefinition>\n extends LinkedAggregationInputProps<Q>\n{\n tags: string[];\n onChange: (values: string[]) => void;\n}\n\nconst TEXT_TAGS_OPTIONS = { limit: 50 } as const;\n\nfunction LinkedTextTagsInput<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n tags,\n onChange,\n}: LinkedTextTagsInputProps<Q>): React.ReactElement {\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey,\n objectSet,\n TEXT_TAGS_OPTIONS,\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 <DateRangeHistogramInput\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":[]}
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
import React, { memo, useCallback, useMemo } from "react";
|
|
18
18
|
import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
|
|
19
19
|
import { ListogramInput } from "../base/inputs/ListogramInput.js";
|
|
20
|
-
import {
|
|
20
|
+
import { useFilterPropertyAggregation } from "../hooks/useFilterPropertyAggregation.js";
|
|
21
|
+
import { EMPTY_LINKED_FILTERS } from "../types/LinkedFilterTypes.js";
|
|
21
22
|
import { coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
22
23
|
function ListogramFilterInputInner({
|
|
23
24
|
objectType,
|
|
@@ -26,6 +27,8 @@ function ListogramFilterInputInner({
|
|
|
26
27
|
filterState,
|
|
27
28
|
onFilterStateChanged,
|
|
28
29
|
whereClause,
|
|
30
|
+
linkedFilters = EMPTY_LINKED_FILTERS,
|
|
31
|
+
showFilteredOutValues,
|
|
29
32
|
colorMap,
|
|
30
33
|
displayMode,
|
|
31
34
|
showCount,
|
|
@@ -51,17 +54,16 @@ function ListogramFilterInputInner({
|
|
|
51
54
|
});
|
|
52
55
|
}, [onFilterStateChanged, isExcluding]);
|
|
53
56
|
const sortBy = displayMode === "minimal" ? "value" : "count";
|
|
54
|
-
const aggregationOptions = useMemo(() => ({
|
|
55
|
-
where: whereClause,
|
|
56
|
-
sortBy,
|
|
57
|
-
activeValues: selectedValues
|
|
58
|
-
}), [whereClause, sortBy, selectedValues]);
|
|
59
57
|
const {
|
|
60
58
|
data,
|
|
61
59
|
maxCount,
|
|
62
60
|
isLoading,
|
|
63
61
|
error
|
|
64
|
-
} =
|
|
62
|
+
} = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
|
|
63
|
+
sortBy,
|
|
64
|
+
selectedValues,
|
|
65
|
+
showFilteredOutValues
|
|
66
|
+
});
|
|
65
67
|
return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {
|
|
66
68
|
excludeRowOpen: excludeRowOpen,
|
|
67
69
|
filterState: filterState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListogramFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","ListogramInput","
|
|
1
|
+
{"version":3,"file":"ListogramFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","ListogramInput","useFilterPropertyAggregation","EMPTY_LINKED_FILTERS","coerceToStringArray","ListogramFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","linkedFilters","showFilteredOutValues","colorMap","displayMode","showCount","maxVisibleItems","searchQuery","excludeRowOpen","renderValue","selectedValues","type","values","isExcluding","handleClearAll","handleChange","sortBy","data","maxCount","isLoading","error","createElement","totalValueCount","length","onClearAll","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 { useFilterPropertyAggregation } from \"../hooks/useFilterPropertyAggregation.js\";\nimport {\n EMPTY_LINKED_FILTERS,\n type LinkedFilter,\n} from \"../types/LinkedFilterTypes.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 linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;\n showFilteredOutValues?: boolean;\n colorMap?: Record<string, string>;\n displayMode?: \"full\" | \"count\" | \"minimal\";\n showCount?: boolean;\n maxVisibleItems?: number;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n}\n\nfunction ListogramFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n linkedFilters = EMPTY_LINKED_FILTERS,\n showFilteredOutValues,\n colorMap,\n displayMode,\n showCount,\n maxVisibleItems,\n searchQuery,\n excludeRowOpen,\n renderValue,\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 handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 sortBy = displayMode === \"minimal\"\n ? \"value\" as const\n : \"count\" as const;\n\n const { data, maxCount, isLoading, error } = useFilterPropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n whereClause,\n linkedFilters,\n { sortBy, selectedValues, showFilteredOutValues },\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n onClearAll={handleClearAll}\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 showCount={showCount}\n isExcluding={isExcluding}\n maxVisibleItems={maxVisibleItems}\n searchQuery={searchQuery}\n renderValue={renderValue}\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,4BAA4B,QAAQ,0CAA0C;AACvF,SACEC,oBAAoB,QAEf,+BAA+B;AACtC,SAASC,mBAAmB,QAAQ,+BAA+B;AAoBnE,SAASC,yBAAyBA,CAAiC;EACjEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,aAAa,GAAGT,oBAAoB;EACpCU,qBAAqB;EACrBC,QAAQ;EACRC,WAAW;EACXC,SAAS;EACTC,eAAe;EACfC,WAAW;EACXC,cAAc;EACdC;AAC4B,CAAC,EAAsB;EACnD,MAAMC,cAAc,GAAGtB,OAAO,CAC5B,MACEU,WAAW,EAAEa,IAAI,KAAK,aAAa,GAC/BlB,mBAAmB,CAACK,WAAW,CAACc,MAAM,CAAC,GACvC,EAAE,EACR,CAACd,WAAW,CACd,CAAC;EACD,MAAMe,WAAW,GAAGf,WAAW,EAAEe,WAAW,IAAI,KAAK;EAErD,MAAMC,cAAc,GAAG3B,WAAW,CAAC,MAAM;IACvCY,oBAAoB,CAAC;MACnBY,IAAI,EAAE,aAAa;MACnBC,MAAM,EAAE,EAAE;MACVC;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACd,oBAAoB,EAAEc,WAAW,CAAC,CAAC;EAEvC,MAAME,YAAY,GAAG5B,WAAW,CAC7ByB,MAAgB,IAAK;IACpBb,oBAAoB,CAAC;MACnBY,IAAI,EAAE,aAAa;MACnBC,MAAM;MACNC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACd,oBAAoB,EAAEc,WAAW,CACpC,CAAC;EAED,MAAMG,MAAM,GAAGZ,WAAW,KAAK,SAAS,GACpC,OAAO,GACP,OAAgB;EAEpB,MAAM;IAAEa,IAAI;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAG7B,4BAA4B,CACvEI,UAAU,EACVE,WAAW,EACXD,SAAS,EACTI,WAAW,EACXC,aAAa,EACb;IAAEe,MAAM;IAAEN,cAAc;IAAER;EAAsB,CAClD,CAAC;EAED,oBACEjB,KAAA,CAAAoC,aAAA,CAAChC,qBAAqB;IACpBmB,cAAc,EAAEA,cAAe;IAC/BV,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CuB,eAAe,EAAEL,IAAI,CAACM,MAAO;IAC7BC,UAAU,EAAEV;EAAe,gBAE3B7B,KAAA,CAAAoC,aAAA,CAAC/B,cAAc;IACbsB,MAAM,EAAEK,IAAK;IACbC,QAAQ,EAAEA,QAAS;IACnBC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbV,cAAc,EAAEA,cAAe;IAC/Be,QAAQ,EAAEV,YAAa;IACvBZ,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBQ,WAAW,EAAEA,WAAY;IACzBP,eAAe,EAAEA,eAAgB;IACjCC,WAAW,EAAEA,WAAY;IACzBE,WAAW,EAAEA;EAAY,CAC1B,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMiB,oBAAsD,gBAAGxC,IAAI,CACxEQ,yBACF,CAAqC","ignoreList":[]}
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
import React, { memo, useCallback, useMemo } from "react";
|
|
18
18
|
import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
|
|
19
19
|
import { MultiSelectInput } from "../base/inputs/MultiSelectInput.js";
|
|
20
|
-
import {
|
|
20
|
+
import { useFilterPropertyAggregation } from "../hooks/useFilterPropertyAggregation.js";
|
|
21
|
+
import { EMPTY_LINKED_FILTERS } from "../types/LinkedFilterTypes.js";
|
|
21
22
|
import { coerceToStringArray } from "../utils/coerceFilterValue.js";
|
|
22
23
|
function MultiSelectFilterInputInner({
|
|
23
24
|
objectType,
|
|
@@ -26,6 +27,8 @@ function MultiSelectFilterInputInner({
|
|
|
26
27
|
filterState,
|
|
27
28
|
onFilterStateChanged,
|
|
28
29
|
whereClause,
|
|
30
|
+
linkedFilters = EMPTY_LINKED_FILTERS,
|
|
31
|
+
showFilteredOutValues,
|
|
29
32
|
excludeRowOpen,
|
|
30
33
|
renderValue,
|
|
31
34
|
showCount,
|
|
@@ -47,15 +50,14 @@ function MultiSelectFilterInputInner({
|
|
|
47
50
|
isExcluding
|
|
48
51
|
});
|
|
49
52
|
}, [onFilterStateChanged, isExcluding]);
|
|
50
|
-
const aggregationOptions = useMemo(() => ({
|
|
51
|
-
where: whereClause,
|
|
52
|
-
activeValues: selectedValues
|
|
53
|
-
}), [whereClause, selectedValues]);
|
|
54
53
|
const {
|
|
55
54
|
data,
|
|
56
55
|
isLoading,
|
|
57
56
|
error
|
|
58
|
-
} =
|
|
57
|
+
} = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
|
|
58
|
+
selectedValues,
|
|
59
|
+
showFilteredOutValues
|
|
60
|
+
});
|
|
59
61
|
return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {
|
|
60
62
|
excludeRowOpen: excludeRowOpen,
|
|
61
63
|
filterState: filterState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","MultiSelectInput","
|
|
1
|
+
{"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","MultiSelectInput","useFilterPropertyAggregation","EMPTY_LINKED_FILTERS","coerceToStringArray","MultiSelectFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","linkedFilters","showFilteredOutValues","excludeRowOpen","renderValue","showCount","layout","selectedValues","type","isExcluding","handleClearAll","handleChange","data","isLoading","error","createElement","totalValueCount","length","onClearAll","values","onChange","showCounts","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 {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} from \"../base/inputs/MultiSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { useFilterPropertyAggregation } from \"../hooks/useFilterPropertyAggregation.js\";\nimport {\n EMPTY_LINKED_FILTERS,\n type LinkedFilter,\n} from \"../types/LinkedFilterTypes.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 linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;\n showFilteredOutValues?: boolean;\n excludeRowOpen?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n showCount?: boolean;\n layout?: MultiSelectInputLayout;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n linkedFilters = EMPTY_LINKED_FILTERS,\n showFilteredOutValues,\n excludeRowOpen,\n renderValue,\n showCount,\n layout,\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 handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 { data, isLoading, error } = useFilterPropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n whereClause,\n linkedFilters,\n { selectedValues, showFilteredOutValues },\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n onClearAll={handleClearAll}\n >\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={handleChange}\n showCounts={showCount}\n ariaLabel={`Search ${propertyKey} values`}\n renderValue={renderValue}\n layout={layout}\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,SACEC,gBAAgB,QAEX,oCAAoC;AAE3C,SAASC,4BAA4B,QAAQ,0CAA0C;AACvF,SACEC,oBAAoB,QAEf,+BAA+B;AACtC,SAASC,mBAAmB,QAAQ,+BAA+B;AAiBnE,SAASC,2BAA2BA,CAAiC;EACnEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,aAAa,GAAGT,oBAAoB;EACpCU,qBAAqB;EACrBC,cAAc;EACdC,WAAW;EACXC,SAAS;EACTC;AAC8B,CAAC,EAAsB;EACrD,MAAMC,cAAc,GAAGnB,OAAO,CAC5B,MACEU,WAAW,EAAEU,IAAI,KAAK,QAAQ,GAC1Bf,mBAAmB,CAACK,WAAW,CAACS,cAAc,CAAC,GAC/C,EAAE,EACR,CAACT,WAAW,CACd,CAAC;EACD,MAAMW,WAAW,GAAGX,WAAW,EAAEW,WAAW,IAAI,KAAK;EAErD,MAAMC,cAAc,GAAGvB,WAAW,CAAC,MAAM;IACvCY,oBAAoB,CAAC;MACnBS,IAAI,EAAE,QAAQ;MACdD,cAAc,EAAE,EAAE;MAClBE;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACV,oBAAoB,EAAEU,WAAW,CAAC,CAAC;EAEvC,MAAME,YAAY,GAAGxB,WAAW,CAC7BoB,cAAwB,IAAK;IAC5BR,oBAAoB,CAAC;MACnBS,IAAI,EAAE,QAAQ;MACdD,cAAc;MACdE;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACV,oBAAoB,EAAEU,WAAW,CACpC,CAAC;EAED,MAAM;IAAEG,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGvB,4BAA4B,CAC7DI,UAAU,EACVE,WAAW,EACXD,SAAS,EACTI,WAAW,EACXC,aAAa,EACb;IAAEM,cAAc;IAAEL;EAAsB,CAC1C,CAAC;EAED,oBACEjB,KAAA,CAAA8B,aAAA,CAAC1B,qBAAqB;IACpBc,cAAc,EAAEA,cAAe;IAC/BL,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CiB,eAAe,EAAEJ,IAAI,CAACK,MAAO;IAC7BC,UAAU,EAAER;EAAe,gBAE3BzB,KAAA,CAAA8B,aAAA,CAACzB,gBAAgB;IACf6B,MAAM,EAAEP,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbP,cAAc,EAAEA,cAAe;IAC/Ba,QAAQ,EAAET,YAAa;IACvBU,UAAU,EAAEhB,SAAU;IACtBiB,SAAS,EAAE,UAAUzB,WAAW,SAAU;IAC1CO,WAAW,EAAEA,WAAY;IACzBE,MAAM,EAAEA;EAAO,CAChB,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMiB,sBAA0D,gBAAGrC,IAAI,CAC5EQ,2BACF,CAAuC","ignoreList":[]}
|
|
@@ -34,6 +34,8 @@ function PropertyFilterInputInner({
|
|
|
34
34
|
filterState,
|
|
35
35
|
onFilterStateChanged,
|
|
36
36
|
whereClause,
|
|
37
|
+
linkedFilters,
|
|
38
|
+
showFilteredOutValues,
|
|
37
39
|
searchQuery,
|
|
38
40
|
excludeRowOpen,
|
|
39
41
|
layout
|
|
@@ -83,6 +85,8 @@ function PropertyFilterInputInner({
|
|
|
83
85
|
filterState: filterState,
|
|
84
86
|
onFilterStateChanged: onFilterStateChanged,
|
|
85
87
|
whereClause: whereClause,
|
|
88
|
+
linkedFilters: linkedFilters,
|
|
89
|
+
showFilteredOutValues: showFilteredOutValues,
|
|
86
90
|
excludeRowOpen: excludeRowOpen,
|
|
87
91
|
renderValue: definition.renderValue,
|
|
88
92
|
showCount: definition.showCount
|
|
@@ -95,6 +99,8 @@ function PropertyFilterInputInner({
|
|
|
95
99
|
filterState: filterState,
|
|
96
100
|
onFilterStateChanged: onFilterStateChanged,
|
|
97
101
|
whereClause: whereClause,
|
|
102
|
+
linkedFilters: linkedFilters,
|
|
103
|
+
showFilteredOutValues: showFilteredOutValues,
|
|
98
104
|
excludeRowOpen: excludeRowOpen,
|
|
99
105
|
renderValue: definition.renderValue,
|
|
100
106
|
showCount: definition.showCount,
|
|
@@ -103,7 +109,8 @@ function PropertyFilterInputInner({
|
|
|
103
109
|
case "SINGLE_DATE":
|
|
104
110
|
return /*#__PURE__*/React.createElement(SingleDateFilterInput, {
|
|
105
111
|
filterState: filterState,
|
|
106
|
-
onFilterStateChanged: onFilterStateChanged
|
|
112
|
+
onFilterStateChanged: onFilterStateChanged,
|
|
113
|
+
formatDate: definition.formatDate
|
|
107
114
|
});
|
|
108
115
|
case "MULTI_DATE":
|
|
109
116
|
return /*#__PURE__*/React.createElement(MultiDateFilterInput, {
|
|
@@ -119,6 +126,8 @@ function PropertyFilterInputInner({
|
|
|
119
126
|
filterState: filterState,
|
|
120
127
|
onFilterStateChanged: onFilterStateChanged,
|
|
121
128
|
whereClause: whereClause,
|
|
129
|
+
linkedFilters: linkedFilters,
|
|
130
|
+
showFilteredOutValues: showFilteredOutValues,
|
|
122
131
|
colorMap: definition.colorMap,
|
|
123
132
|
displayMode: definition.listogramConfig?.displayMode,
|
|
124
133
|
showCount: definition.showCount,
|