@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
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import type { LinkedType, LinkNames, ObjectTypeDefinition, PropertyKeys } from "@osdk/api";
|
|
2
|
-
import type {
|
|
1
|
+
import type { LinkedType, LinkNames, ObjectTypeDefinition, PropertyKeys, WhereClause } from "@osdk/api";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import type { BaseFilterState, FilterDefinitionControls, FilterState, FilterStateByComponentType, PropertyTypeFromKey, ValidComponentsForPropertyType } from "../FilterListItemApi.js";
|
|
4
|
+
/**
|
|
5
|
+
* Runtime representation of an active linked-property filter. Each entry
|
|
6
|
+
* binds a `linkName` to its `reverseLinkName` and an `innerWhere` typed
|
|
7
|
+
* against the linked object type, so `narrowObjectSet` can pivot type-safely.
|
|
8
|
+
*/
|
|
9
|
+
export type LinkedFilter<Q extends ObjectTypeDefinition> = { [L in LinkNames<Q>] : {
|
|
10
|
+
linkName: L
|
|
11
|
+
reverseLinkName: LinkNames<LinkedType<Q, L>>
|
|
12
|
+
innerWhere: WhereClause<LinkedType<Q, L>>
|
|
13
|
+
} }[LinkNames<Q>];
|
|
14
|
+
/** Shared empty default for `LinkedFilter` arrays — avoids new-array-per-render. */
|
|
15
|
+
export declare const EMPTY_LINKED_FILTERS: readonly never[];
|
|
3
16
|
/**
|
|
4
17
|
* State for "has link" filter
|
|
5
18
|
*/
|
|
@@ -22,7 +35,7 @@ export interface LinkedPropertyFilterState<S extends FilterState = FilterState>
|
|
|
22
35
|
export interface HasLinkFilterDefinition<
|
|
23
36
|
Q extends ObjectTypeDefinition,
|
|
24
37
|
L extends LinkNames<Q> = LinkNames<Q>
|
|
25
|
-
> {
|
|
38
|
+
> extends FilterDefinitionControls {
|
|
26
39
|
type: "HAS_LINK";
|
|
27
40
|
/**
|
|
28
41
|
* Optional unique identifier for stable keying across filter reorders.
|
|
@@ -48,13 +61,22 @@ export interface LinkedPropertyFilterDefinition<
|
|
|
48
61
|
LinkedQ extends ObjectTypeDefinition = LinkedType<Q, L>,
|
|
49
62
|
LinkedK extends PropertyKeys<LinkedQ> = PropertyKeys<LinkedQ>,
|
|
50
63
|
LinkedC extends ValidComponentsForPropertyType<PropertyTypeFromKey<LinkedQ, LinkedK>> = ValidComponentsForPropertyType<PropertyTypeFromKey<LinkedQ, LinkedK>>
|
|
51
|
-
> {
|
|
64
|
+
> extends FilterDefinitionControls {
|
|
52
65
|
type: "LINKED_PROPERTY";
|
|
53
66
|
/**
|
|
54
67
|
* Optional unique identifier for stable keying across filter reorders.
|
|
55
68
|
*/
|
|
56
69
|
id?: string;
|
|
57
70
|
linkName: L;
|
|
71
|
+
/**
|
|
72
|
+
* Set this to make the filter narrow `objectSet`; the result is emitted
|
|
73
|
+
* via `onEffectiveObjectSet`. The value names the link on the linked
|
|
74
|
+
* object type that points back to `Q` (the inverse of `linkName`).
|
|
75
|
+
*
|
|
76
|
+
* Leave unset to keep the filter UI-only. It still renders and fires
|
|
77
|
+
* `onFilterStateChanged`, but FilterList won't narrow on it.
|
|
78
|
+
*/
|
|
79
|
+
reverseLinkName?: LinkNames<LinkedQ>;
|
|
58
80
|
linkedPropertyKey: LinkedK;
|
|
59
81
|
linkedFilterComponent: LinkedC;
|
|
60
82
|
linkedFilterState: FilterStateByComponentType[LinkedC];
|
|
@@ -68,6 +90,14 @@ export interface LinkedPropertyFilterDefinition<
|
|
|
68
90
|
*/
|
|
69
91
|
showCount?: boolean;
|
|
70
92
|
/**
|
|
93
|
+
* Custom display function for filter values.
|
|
94
|
+
* Replaces the default string display in dropdown items, chips, and listogram rows.
|
|
95
|
+
* When the function returns a string, that string is also used for search matching
|
|
96
|
+
* within filter dropdowns. When it returns a non-string `ReactNode`, search falls
|
|
97
|
+
* back to the raw value.
|
|
98
|
+
*/
|
|
99
|
+
renderValue?: (value: string) => ReactNode;
|
|
100
|
+
/**
|
|
71
101
|
* Controls whether this filter is rendered.
|
|
72
102
|
* When false, the filter is hidden but its state is preserved.
|
|
73
103
|
* @default true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cACE,YACA,WACA,sBACA,
|
|
1
|
+
{"mappings":"AAgBA,cACE,YACA,WACA,sBACA,cACA,mBACK,WAAY;AACnB,cAAc,iBAAiB,OAAQ;AACvC,cACE,iBACA,0BACA,aACA,4BACA,qBACA,sCACK,yBAA0B;;;;;;AAOjC,YAAY,aAAa,UAAU,2BAChC,KAAK,UAAU,MAAK;CACnB,UAAU;CACV,iBAAiB,UAAU,WAAW,GAAG;CACzC,YAAY,YAAY,WAAW,GAAG;AACvC,IACD,UAAU;;AAGZ,OAAO,cAAMA;;;;AAKb,iBAAiB,2BAA2B,gBAAgB;CAC1D,MAAM;CACN;AACD;;;;;AAMD,iBAAiB,0BAA0B,UAAU,cAAc,qBACzD,gBACV;CACE,MAAM;CACN,mBAAmB;AACpB;;;;;AAMD,iBAAiB;CACf,UAAU;CACV,UAAU,UAAU,KAAK,UAAU;UAC3B,yBAAyB;CACjC,MAAM;;;;CAIN;CACA,UAAU;CACV;CACA,aAAa;CACb,qBAAqB;;;;;;CAMrB;AACD;;;;AAKD,iBAAiB;CACf,UAAU;CACV,UAAU,UAAU;CACpB,gBAAgB,uBAAuB,WAAW,GAAG;CACrD,gBAAgB,aAAa,WAAW,aAAa;CACrD,gBAAgB,+BACd,oBAAoB,SAAS,YAC3B,+BAA+B,oBAAoB,SAAS;UACxD,yBAAyB;CACjC,MAAM;;;;CAIN;CACA,UAAU;;;;;;;;;CASV,kBAAkB,UAAU;CAC5B,mBAAmB;CACnB,uBAAuB;CACvB,mBAAmB,2BAA2B;CAC9C,2BAA2B,2BAA2B;CACtD,aAAa,0BAA0B,2BAA2B;CAClE;;;;;;CAOA;;;;;;;;CASA,eAAeC,kBAAkB;;;;;;CAOjC;AACD","names":["EMPTY_LINKED_FILTERS: readonly never[]","value: string"],"sources":["../../../../src/filter-list/types/LinkedFilterTypes.ts"],"version":3,"file":"LinkedFilterTypes.d.ts"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ObjectTypeDefinition, WhereClause } from "@osdk/api";
|
|
2
2
|
import type { ReactNode } from "react";
|
|
3
|
-
import type { FilterState, FilterStateByComponentType } from "../FilterListItemApi.js";
|
|
3
|
+
import type { FilterDefinitionControls, FilterState, FilterStateByComponentType } from "../FilterListItemApi.js";
|
|
4
4
|
/**
|
|
5
5
|
* Component types that support static values.
|
|
6
6
|
* These components can display a fixed list of string values without OSDK aggregation.
|
|
@@ -14,7 +14,7 @@ export type StaticValuesComponentType = "LISTOGRAM" | "SINGLE_SELECT" | "MULTI_S
|
|
|
14
14
|
export interface StaticValuesFilterDefinition<
|
|
15
15
|
Q extends ObjectTypeDefinition,
|
|
16
16
|
C extends StaticValuesComponentType = StaticValuesComponentType
|
|
17
|
-
> {
|
|
17
|
+
> extends FilterDefinitionControls {
|
|
18
18
|
type: "STATIC_VALUES";
|
|
19
19
|
/**
|
|
20
20
|
* Optional unique identifier for stable keying across filter reorders.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,sBAAsB,mBAAmB,WAAY;AACnE,cAAc,iBAAiB,OAAQ;AACvC,cACE,aACA,kCACK,yBAA0B;;;;;AAMjC,YAAY,4BACR,cACA,kBACA,iBACA;;;;;;AAOJ,iBAAiB;CACf,UAAU;CACV,UAAU,4BAA4B;
|
|
1
|
+
{"mappings":"AAgBA,cAAc,sBAAsB,mBAAmB,WAAY;AACnE,cAAc,iBAAiB,OAAQ;AACvC,cACE,0BACA,aACA,kCACK,yBAA0B;;;;;AAMjC,YAAY,4BACR,cACA,kBACA,iBACA;;;;;;AAOJ,iBAAiB;CACf,UAAU;CACV,UAAU,4BAA4B;UAC9B,yBAAyB;CACjC,MAAM;;;;;CAMN;;;;;;CAOA;;;;CAKA;;;;CAKA,iBAAiB;;;;CAKjB,aAAa,2BAA2B;;;;;CAMxC;;;;;;;;CASA,eAAeA,kBAAkB;;;;;;CAOjC;;;;;CAMA,WAAW;;;;;CAMX,kBAAkB;EAChB,cAAc,SAAS,UAAU;;;;;EAKjC;CACD;;;;;;CAOD,iBAAiBC,OAAO,gBAAgB,YAAY;;;;;;CAOpD;AACD","names":["value: string","state: FilterState"],"sources":["../../../../src/filter-list/types/StaticValuesTypes.ts"],"version":3,"file":"StaticValuesTypes.d.ts"}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
|
-
import type { ObjectTypeDefinition, WhereClause } from "@osdk/api";
|
|
1
|
+
import type { LinkedType, LinkNames, ObjectTypeDefinition, WhereClause } from "@osdk/api";
|
|
2
2
|
import type { FilterDefinitionUnion } from "../FilterListApi.js";
|
|
3
3
|
import type { FilterState } from "../FilterListItemApi.js";
|
|
4
|
+
import type { LinkedFilter, LinkedPropertyFilterDefinition, LinkedPropertyFilterState } from "../types/LinkedFilterTypes.js";
|
|
5
|
+
/**
|
|
6
|
+
* Builds a WHERE clause fragment for a single property key from filter state.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildPropertyKeyClause(key: string | number | symbol, state: FilterState, propertyType?: string): Record<string, unknown> | undefined;
|
|
4
9
|
export interface PropertyTypeInfo {
|
|
5
10
|
type: string;
|
|
6
11
|
multiplicity: boolean;
|
|
7
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Builds a `WhereClause<Q>` from direct (non-link-traversing) filter
|
|
15
|
+
* definitions and current states. LINKED_PROPERTY filters are excluded —
|
|
16
|
+
* use `getActiveLinkedFilters` for those and apply via `narrowObjectSet`.
|
|
17
|
+
*/
|
|
8
18
|
export declare function buildWhereClause<Q extends ObjectTypeDefinition>(definitions: Array<FilterDefinitionUnion<Q>> | undefined, filterStates: Map<string, FilterState>, propertyTypes?: Map<string, PropertyTypeInfo>, excludeFilterKey?: string): WhereClause<Q>;
|
|
19
|
+
/**
|
|
20
|
+
* Builds the inner `WhereClause` for a linked-property filter, typed against
|
|
21
|
+
* the linked object type. Returns `undefined` when the state doesn't yield a
|
|
22
|
+
* predicate (e.g. empty selection).
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildLinkedInnerWhere<
|
|
25
|
+
Q extends ObjectTypeDefinition,
|
|
26
|
+
L extends LinkNames<Q>
|
|
27
|
+
>(definition: LinkedPropertyFilterDefinition<Q, L>, state: LinkedPropertyFilterState): WhereClause<LinkedType<Q, L>> | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Returns the active LINKED_PROPERTY filters as `LinkedFilter<Q>` records.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getActiveLinkedFilters<Q extends ObjectTypeDefinition>(definitions: Array<FilterDefinitionUnion<Q>> | undefined, filterStates: Map<string, FilterState>, excludeFilterKey?: string): Array<LinkedFilter<Q>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,
|
|
1
|
+
{"mappings":"AAgBA,cACE,YACA,WACA,sBACA,mBACK,WAAY;AAGnB,cAAc,6BAA6B,qBAAsB;AACjE,cAAc,mBAAmB,yBAA0B;AAC3D,cACE,cACA,gCACA,iCACK,+BAAgC;;;;AA4LvC,OAAO,iBAAS,uBACdA,+BACAC,OAAO,aACPC,wBACC;AAyBH,iBAAiB,iBAAiB;CAChC;CACA;AACD;;;;;;AAOD,OAAO,iBAAS,iBAAiB,UAAU,sBACzCC,aAAa,MAAM,sBAAsB,iBACzCC,cAAc,YAAY,cAC1BC,gBAAgB,YAAY,mBAC5BC,4BACC,YAAY;;;;;;AAgLf,OAAO,iBAAS;CACd,UAAU;CACV,UAAU,UAAU;EAEpBC,YAAY,+BAA+B,GAAG,IAC9CC,OAAO,4BACN,YAAY,WAAW,GAAG;;;;AAc7B,OAAO,iBAAS,uBAAuB,UAAU,sBAC/CL,aAAa,MAAM,sBAAsB,iBACzCC,cAAc,YAAY,cAC1BE,4BACC,MAAM,aAAa","names":["key: string | number | symbol","state: FilterState","propertyType?: string","definitions: Array<FilterDefinitionUnion<Q>> | undefined","filterStates: Map<string, FilterState>","propertyTypes?: Map<string, PropertyTypeInfo>","excludeFilterKey?: string","definition: LinkedPropertyFilterDefinition<Q, L>","state: LinkedPropertyFilterState"],"sources":["../../../../src/filter-list/utils/filterStateToWhereClause.ts"],"version":3,"file":"filterStateToWhereClause.d.ts"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { FilterState } from "../FilterListItemApi.js";
|
|
2
2
|
import type { PropertyAggregationValue } from "../types/AggregationTypes.js";
|
|
3
|
+
/**
|
|
4
|
+
* Unwraps a `linkedProperty` wrapper one level so callers can reason about the
|
|
5
|
+
* underlying filter state directly (e.g. for header controls that should
|
|
6
|
+
* follow the inner filter's capabilities).
|
|
7
|
+
*/
|
|
8
|
+
export declare function getEffectiveFilterState(state: FilterState | undefined): FilterState | undefined;
|
|
3
9
|
/** Returns true for filter state types that support in-filter search. */
|
|
4
10
|
export declare function supportsSearch(state: FilterState | undefined): boolean;
|
|
5
11
|
/** Returns true for filter state types that support isExcluding. */
|
|
@@ -22,5 +28,25 @@ export declare function isEmptyValue(value: string | null | undefined): boolean;
|
|
|
22
28
|
export declare function dedupeEmptyAggregationRows(values: PropertyAggregationValue[]): PropertyAggregationValue[];
|
|
23
29
|
/** Case-insensitive substring filter for search functionality. */
|
|
24
30
|
export declare function filterValuesBySearch<T>(values: T[], searchValue: string, getValue: (item: T) => string): T[];
|
|
31
|
+
/**
|
|
32
|
+
* Returns a "cleared" version of the given filter state, preserving the
|
|
33
|
+
* discriminator and `isExcluding` flag so the UI doesn't snap between filter
|
|
34
|
+
* modes when a user clicks "Clear all selections". Returns `undefined` if no
|
|
35
|
+
* cleared form is meaningful for the state shape.
|
|
36
|
+
*/
|
|
37
|
+
export declare function clearFilterState(state: FilterState | undefined): FilterState | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Returns the state with `isExcluding` flipped, preserving the discriminator
|
|
40
|
+
* and unwrapping/re-wrapping any `linkedProperty` wrapper. Returns `undefined`
|
|
41
|
+
* if the wrapped state is one that does not support excluding.
|
|
42
|
+
*/
|
|
43
|
+
export declare function toggleIsExcluding(state: FilterState): FilterState | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the number of values the user has actively selected for filters
|
|
46
|
+
* whose UI surfaces a selected-of-total count (LISTOGRAM, SINGLE_SELECT,
|
|
47
|
+
* MULTI_SELECT, TEXT_TAGS). Returns 0 for state shapes that don't have a
|
|
48
|
+
* discrete list of selected values.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getSelectedCount(state: FilterState | undefined): number;
|
|
25
51
|
/** Check if a filter state has an active (non-empty) value. */
|
|
26
52
|
export declare function filterHasActiveState(state: FilterState | undefined): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,mBAAmB,yBAA0B;AAC3D,cAAc,gCAAgC,8BAA+B;;
|
|
1
|
+
{"mappings":"AAgBA,cAAc,mBAAmB,yBAA0B;AAC3D,cAAc,gCAAgC,8BAA+B;;;;;;AAO7E,OAAO,iBAAS,wBACdA,OAAO,0BACN;;AAQH,OAAO,iBAAS,eAAeA,OAAO;;AA0BtC,OAAO,iBAAS,kBAAkBA,OAAO;;;;;;;;AAgCzC,OAAO,iBAAS,aAAaC;;;;;;;;AAW7B,OAAO,iBAAS,2BACdC,QAAQ,6BACP;;AAyBH,OAAO,iBAAS,qBAAqB,GACnCC,QAAQ,KACRC,qBACAC,WAAWC,MAAM,eAChB;;;;;;;AAeH,OAAO,iBAAS,iBACdN,OAAO,0BACN;;;;;;AA2EH,OAAO,iBAAS,kBACdO,OAAO,cACN;;;;;;;AAoBH,OAAO,iBAAS,iBAAiBP,OAAO;;AAcxC,OAAO,iBAAS,qBAAqBA,OAAO","names":["state: FilterState | undefined","value: string | null | undefined","values: PropertyAggregationValue[]","values: T[]","searchValue: string","getValue: (item: T) => string","item: T","state: FilterState"],"sources":["../../../../src/filter-list/utils/filterValues.ts"],"version":3,"file":"filterValues.d.ts"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ObjectSet, ObjectTypeDefinition, WhereClause } from "@osdk/api";
|
|
2
|
+
import type { LinkedFilter } from "../types/LinkedFilterTypes.js";
|
|
3
|
+
export declare function narrowObjectSet<Q extends ObjectTypeDefinition>(objectSet: ObjectSet<Q>, whereClause: WhereClause<Q>, linkedFilters: ReadonlyArray<LinkedFilter<Q>>): ObjectSet<Q>;
|
|
4
|
+
export declare function computeDualScopes<Q extends ObjectTypeDefinition>(objectSet: ObjectSet<Q> | undefined, whereClause: WhereClause<Q>, linkedFilters: ReadonlyArray<LinkedFilter<Q>>, showFilteredOutValues: boolean | undefined): {
|
|
5
|
+
scoped: ObjectSet<Q> | undefined
|
|
6
|
+
emptySource: ObjectSet<Q> | undefined
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAgBA,cAAc,WAAW,sBAAsB,mBAAmB,WAAY;AAC9E,cAAc,oBAAoB,+BAAgC;AAElE,OAAO,iBAAS,gBAAgB,UAAU,sBACxCA,WAAW,UAAU,IACrBC,aAAa,YAAY,IACzBC,eAAe,cAAc,aAAa,MACzC,UAAU;AAsBb,OAAO,iBAAS,kBAAkB,UAAU,sBAC1CC,WAAW,UAAU,gBACrBF,aAAa,YAAY,IACzBC,eAAe,cAAc,aAAa,KAC1CE,6CACC;CACD,QAAQ,UAAU;CAClB,aAAa,UAAU;AACxB","names":["objectSet: ObjectSet<Q>","whereClause: WhereClause<Q>","linkedFilters: ReadonlyArray<LinkedFilter<Q>>","objectSet: ObjectSet<Q> | undefined","showFilteredOutValues: boolean | undefined"],"sources":["../../../../src/filter-list/utils/narrowObjectSet.ts"],"version":3,"file":"narrowObjectSet.d.ts"}
|
|
@@ -3,7 +3,7 @@ export type { BaseFilterListProps, RenderFilterInput } from "../../filter-list/b
|
|
|
3
3
|
import { FilterList as _FilterList } from "../../filter-list/FilterList.js";
|
|
4
4
|
export declare const FilterList: typeof _FilterList;
|
|
5
5
|
export type { FilterDefinitionUnion, FilterListProps } from "../../filter-list/FilterListApi.js";
|
|
6
|
-
export type { FilterComponentType, FilterListItemProps, FilterState, PropertyFilterDefinition } from "../../filter-list/FilterListItemApi.js";
|
|
6
|
+
export type { FilterComponentType, FilterDefinitionControls, FilterListItemProps, FilterState, PropertyFilterDefinition } from "../../filter-list/FilterListItemApi.js";
|
|
7
7
|
export { deserializeFilterStates, serializeFilterStates } from "../../filter-list/utils/filterStateSerialization.js";
|
|
8
8
|
export { FilterPopover } from "../../filter-list/base/FilterPopover.js";
|
|
9
9
|
export type { FilterPopoverProps } from "../../filter-list/base/FilterPopover.js";
|
|
@@ -15,3 +15,5 @@ export { filterHasActiveState } from "../../filter-list/utils/filterValues.js";
|
|
|
15
15
|
export { getFilterKey } from "../../filter-list/utils/getFilterKey.js";
|
|
16
16
|
export { getFilterLabel } from "../../filter-list/utils/getFilterLabel.js";
|
|
17
17
|
export { summarizeFilterValue } from "../../filter-list/utils/summarizeFilterValue.js";
|
|
18
|
+
export type { LinkedFilter } from "../../filter-list/types/LinkedFilterTypes.js";
|
|
19
|
+
export { narrowObjectSet } from "../../filter-list/utils/narrowObjectSet.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAgBA,SAAS,sBAAsB;AAC/B,cACE,qBACA,yBACK;AACP,SAAS,cAAc,mBAAmB,iCAAkC;AAE5E,OAAO,cAAMA,mBAAmB;AAKhC,cACE,uBACA,uBACK;AACP,cACE,qBACA,qBACA,aACA,gCACK;AACP,SACE,yBACA,6BACK;AAEP,SAAS,qBAAqB;AAC9B,cAAc,0BAA0B;AAExC,SAAS,mBAAmB;AAC5B,cAAc,wBAAwB;AAEtC,SAAS,0BAA0B;AACnC,cAAc,gCAAgC;AAE9C,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B","names":["FilterList: typeof _FilterList"],"sources":["../../../../src/public/experimental/filter-list.ts"],"version":3,"file":"filter-list.d.ts"}
|
|
1
|
+
{"mappings":"AAgBA,SAAS,sBAAsB;AAC/B,cACE,qBACA,yBACK;AACP,SAAS,cAAc,mBAAmB,iCAAkC;AAE5E,OAAO,cAAMA,mBAAmB;AAKhC,cACE,uBACA,uBACK;AACP,cACE,qBACA,0BACA,qBACA,aACA,gCACK;AACP,SACE,yBACA,6BACK;AAEP,SAAS,qBAAqB;AAC9B,cAAc,0BAA0B;AAExC,SAAS,mBAAmB;AAC5B,cAAc,wBAAwB;AAEtC,SAAS,0BAA0B;AACnC,cAAc,gCAAgC;AAE9C,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B;AAErC,cAAc,oBAAoB;AAClC,SAAS,uBAAuB","names":["FilterList: typeof _FilterList"],"sources":["../../../../src/public/experimental/filter-list.ts"],"version":3,"file":"filter-list.d.ts"}
|
package/docs/CSSVariables.md
CHANGED
|
@@ -875,23 +875,31 @@ Styling for filter list components including search, checkboxes, listogram, and
|
|
|
875
875
|
|
|
876
876
|
#### Range Input Tokens
|
|
877
877
|
|
|
878
|
-
| Variable
|
|
879
|
-
|
|
|
880
|
-
| `--osdk-filter-range-gap`
|
|
881
|
-
| `--osdk-filter-range-histogram-padding-bottom`
|
|
882
|
-
| `--osdk-filter-range-histogram-padding-inline`
|
|
883
|
-
| `--osdk-filter-range-histogram-height`
|
|
884
|
-
| `--osdk-filter-range-histogram-bar-gap`
|
|
885
|
-
| `--osdk-filter-range-histogram-bar-min-width`
|
|
886
|
-
| `--osdk-filter-range-histogram-bar-color`
|
|
887
|
-
| `--osdk-filter-range-histogram-bar-active-color`
|
|
888
|
-
| `--osdk-filter-range-histogram-bar-transition`
|
|
889
|
-
| `--osdk-filter-range-inputs-gap`
|
|
890
|
-
| `--osdk-filter-range-input-wrapper-gap`
|
|
891
|
-
| `--osdk-filter-range-label-font-family`
|
|
892
|
-
| `--osdk-filter-range-label-font-size`
|
|
893
|
-
| `--osdk-filter-range-label-color`
|
|
894
|
-
| `--osdk-filter-range-separator-color`
|
|
878
|
+
| Variable | Default Value | Description |
|
|
879
|
+
| -------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------- |
|
|
880
|
+
| `--osdk-filter-range-gap` | `calc(var(--osdk-surface-spacing) * 2.5)` | Range gap |
|
|
881
|
+
| `--osdk-filter-range-histogram-padding-bottom` | `calc(var(--osdk-surface-spacing) * 1)` | Histogram bottom padding |
|
|
882
|
+
| `--osdk-filter-range-histogram-padding-inline` | `calc(var(--osdk-surface-spacing) * 2)` | Histogram inline padding |
|
|
883
|
+
| `--osdk-filter-range-histogram-height` | `calc(var(--osdk-surface-spacing) * 15)` | Histogram height |
|
|
884
|
+
| `--osdk-filter-range-histogram-bar-gap` | `calc(var(--osdk-surface-spacing) * 0.5)` | Histogram bar gap |
|
|
885
|
+
| `--osdk-filter-range-histogram-bar-min-width` | `var(--osdk-surface-spacing)` | Histogram bar minimum width |
|
|
886
|
+
| `--osdk-filter-range-histogram-bar-color` | `var(--osdk-palette-gray-200)` | Histogram bar color |
|
|
887
|
+
| `--osdk-filter-range-histogram-bar-active-color` | `var(--osdk-intent-primary-rest)` | Histogram active bar color |
|
|
888
|
+
| `--osdk-filter-range-histogram-bar-transition` | `var(--osdk-emphasis-transition-duration) var(--osdk-emphasis-ease-default)` | Histogram bar transition |
|
|
889
|
+
| `--osdk-filter-range-inputs-gap` | `calc(var(--osdk-surface-spacing) * 0.5)` | Range inputs gap |
|
|
890
|
+
| `--osdk-filter-range-input-wrapper-gap` | `var(--osdk-surface-spacing)` | Input wrapper gap |
|
|
891
|
+
| `--osdk-filter-range-label-font-family` | `var(--osdk-typography-family-default)` | Range label font family |
|
|
892
|
+
| `--osdk-filter-range-label-font-size` | `var(--osdk-typography-size-body-small)` | Range label font size |
|
|
893
|
+
| `--osdk-filter-range-label-color` | `var(--osdk-typography-color-muted)` | Range label color |
|
|
894
|
+
| `--osdk-filter-range-separator-color` | `var(--osdk-typography-color-muted)` | Range separator color |
|
|
895
|
+
| `--osdk-filter-range-clear-button-bg-hover` | `var(--osdk-custom-color-gray-1)` | Range clear button hover bg |
|
|
896
|
+
| `--osdk-filter-range-histogram-axis-color` | `var(--osdk-typography-color-muted)` | Histogram axis text color |
|
|
897
|
+
| `--osdk-filter-range-histogram-axis-font-size` | `var(--osdk-typography-size-body-large)` | Histogram axis font size |
|
|
898
|
+
| `--osdk-filter-range-histogram-axis-line-color` | `var(--osdk-palette-gray-1)` | Histogram axis line color |
|
|
899
|
+
| `--osdk-filter-range-histogram-label-color` | `var(--osdk-typography-color-muted)` | Histogram label color |
|
|
900
|
+
| `--osdk-filter-range-histogram-label-font-size` | `var(--osdk-typography-size-body-large)` | Histogram label font size |
|
|
901
|
+
| `--osdk-filter-range-histogram-subtitle-color` | `var(--osdk-typography-color-default-rest)` | Histogram subtitle color |
|
|
902
|
+
| `--osdk-filter-range-histogram-subtitle-font-size` | `var(--osdk-typography-size-body-large)` | Histogram subtitle font size |
|
|
895
903
|
|
|
896
904
|
#### Timeline Input Tokens
|
|
897
905
|
|
|
@@ -980,6 +988,59 @@ Canonical "No value" styling used by the shared `NoValueLabel` component across
|
|
|
980
988
|
| `--osdk-filter-skeleton-count-width` | `calc(var(--osdk-surface-spacing) * 2.5)` | Skeleton count width |
|
|
981
989
|
| `--osdk-filter-content-fade-duration` | `var(--osdk-emphasis-transition-duration)` | Content fade transition duration |
|
|
982
990
|
|
|
991
|
+
#### Filtered-Out Item Tokens
|
|
992
|
+
|
|
993
|
+
Styling for count=0 muted rows surfaced by `showFilteredOutValues`. Applied to listogram rows via `[data-filtered-out]` and to multi-select items via the `filteredOutItem` class.
|
|
994
|
+
|
|
995
|
+
| Variable | Default Value | Description |
|
|
996
|
+
| ----------------------------------------- | ------------------------------------ | ----------------------------------- |
|
|
997
|
+
| `--osdk-filter-filtered-out-item-opacity` | `0.5` | Opacity for filtered-out facet rows |
|
|
998
|
+
| `--osdk-filter-filtered-out-item-color` | `var(--osdk-typography-color-muted)` | Text color for filtered-out rows |
|
|
999
|
+
|
|
1000
|
+
#### Filter Popover Tokens
|
|
1001
|
+
|
|
1002
|
+
Used by the composable label + popover-trigger primitive that wraps single-select / multi-select dropdown filters.
|
|
1003
|
+
|
|
1004
|
+
| Variable | Default Value | Description |
|
|
1005
|
+
| ---------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------- |
|
|
1006
|
+
| `--osdk-filter-popover-gap` | `calc(var(--osdk-surface-spacing) * 1)` | Gap between label and trigger |
|
|
1007
|
+
| `--osdk-filter-popover-stack-gap` | `calc(var(--osdk-surface-spacing) * 0.5)` | Stack gap inside the trigger |
|
|
1008
|
+
| `--osdk-filter-popover-label-font-family` | `var(--osdk-typography-family-default)` | Trigger label font family |
|
|
1009
|
+
| `--osdk-filter-popover-label-font-size` | `var(--osdk-typography-size-body-small)` | Trigger label font size |
|
|
1010
|
+
| `--osdk-filter-popover-label-color` | `var(--osdk-typography-color-muted)` | Trigger label color |
|
|
1011
|
+
| `--osdk-filter-popover-trigger-width` | `calc(var(--osdk-surface-spacing) * 40)` | Trigger element width |
|
|
1012
|
+
| `--osdk-filter-popover-trigger-min-height` | `calc(var(--osdk-surface-spacing) * 7)` | Trigger element minimum height |
|
|
1013
|
+
| `--osdk-filter-popover-trigger-padding` | `0 calc(var(--osdk-surface-spacing) * 6) 0 calc(var(--osdk-surface-spacing) * 2)` | Trigger padding (right reserves remove btn) |
|
|
1014
|
+
| `--osdk-filter-popover-trigger-border-radius` | `var(--osdk-surface-border-radius)` | Trigger border radius |
|
|
1015
|
+
| `--osdk-filter-popover-trigger-border-width` | `var(--osdk-surface-border-width)` | Trigger border width |
|
|
1016
|
+
| `--osdk-filter-popover-trigger-border-color` | `var(--osdk-surface-border-color-default)` | Trigger border color (rest) |
|
|
1017
|
+
| `--osdk-filter-popover-trigger-border-color-hover` | `var(--osdk-typography-color-muted)` | Trigger border color on hover |
|
|
1018
|
+
| `--osdk-filter-popover-trigger-border-color-active` | `var(--osdk-intent-primary-rest)` | Trigger border color when open/active |
|
|
1019
|
+
| `--osdk-filter-popover-trigger-bg` | `transparent` | Trigger background |
|
|
1020
|
+
| `--osdk-filter-popover-trigger-color` | `var(--osdk-typography-color-default-rest)` | Trigger text color |
|
|
1021
|
+
| `--osdk-filter-popover-trigger-font-family` | `var(--osdk-typography-family-default)` | Trigger font family |
|
|
1022
|
+
| `--osdk-filter-popover-trigger-font-size` | `var(--osdk-typography-size-body-medium)` | Trigger font size |
|
|
1023
|
+
| `--osdk-filter-popover-trigger-transition` | `var(--osdk-emphasis-transition-duration) var(--osdk-emphasis-ease-default)` | Trigger transition |
|
|
1024
|
+
| `--osdk-filter-popover-trigger-focus-outline-width` | `var(--osdk-emphasis-focus-width)` | Trigger focus outline width |
|
|
1025
|
+
| `--osdk-filter-popover-trigger-focus-outline-color` | `var(--osdk-emphasis-focus-color)` | Trigger focus outline color |
|
|
1026
|
+
| `--osdk-filter-popover-trigger-focus-outline-offset` | `var(--osdk-emphasis-focus-offset)` | Trigger focus outline offset |
|
|
1027
|
+
| `--osdk-filter-popover-placeholder-color` | `var(--osdk-typography-color-muted)` | Trigger placeholder text color |
|
|
1028
|
+
| `--osdk-filter-popover-remove-right` | `calc(var(--osdk-surface-spacing) * 0.75)` | Remove-button right offset within trigger |
|
|
1029
|
+
| `--osdk-filter-popover-remove-size` | `calc(var(--osdk-surface-spacing) * 4)` | Remove button hit size |
|
|
1030
|
+
| `--osdk-filter-popover-remove-color` | `var(--osdk-typography-color-muted)` | Remove button color (rest) |
|
|
1031
|
+
| `--osdk-filter-popover-remove-border-radius` | `var(--osdk-surface-border-radius)` | Remove button border radius |
|
|
1032
|
+
| `--osdk-filter-popover-remove-transition` | `var(--osdk-emphasis-transition-duration) var(--osdk-emphasis-ease-default)` | Remove button transition |
|
|
1033
|
+
| `--osdk-filter-popover-remove-color-hover` | `var(--osdk-typography-color-default-rest)` | Remove button hover color |
|
|
1034
|
+
| `--osdk-filter-popover-remove-bg-hover` | `var(--osdk-custom-color-gray-1)` | Remove button hover background |
|
|
1035
|
+
| `--osdk-filter-popover-popup-bg` | `var(--osdk-background-primary)` | Popup background |
|
|
1036
|
+
| `--osdk-filter-popover-popup-border` | `var(--osdk-surface-border)` | Popup border |
|
|
1037
|
+
| `--osdk-filter-popover-popup-border-radius` | `var(--osdk-surface-border-radius)` | Popup border radius |
|
|
1038
|
+
| `--osdk-filter-popover-popup-shadow` | `var(--osdk-surface-shadow-2)` | Popup shadow |
|
|
1039
|
+
| `--osdk-filter-popover-popup-padding` | `calc(var(--osdk-surface-spacing) * 2)` | Popup padding |
|
|
1040
|
+
| `--osdk-filter-popover-popup-min-width` | `calc(var(--osdk-surface-spacing) * 70)` | Popup minimum width |
|
|
1041
|
+
| `--osdk-filter-popover-popup-max-width` | `calc(var(--osdk-surface-spacing) * 120)` | Popup maximum width |
|
|
1042
|
+
| `--osdk-filter-popover-popup-z-index` | `var(--osdk-surface-z-index-3)` | Popup stacking context |
|
|
1043
|
+
|
|
983
1044
|
### Form
|
|
984
1045
|
|
|
985
1046
|
Styling for form components.
|
package/docs/FilterList.md
CHANGED
|
@@ -71,12 +71,13 @@ function EmployeeFilters() {
|
|
|
71
71
|
|
|
72
72
|
### Filter Management
|
|
73
73
|
|
|
74
|
-
| Prop | Type | Default | Description
|
|
75
|
-
| ----------------------- | -------------------------------- | ------- |
|
|
76
|
-
| `filterClause` | `WhereClause<Q>` | - | Current where clause (controlled mode)
|
|
77
|
-
| `onFilterClauseChanged` | `(newClause) => void` | - | Called when filter clause changes. Required in controlled mode
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
74
|
+
| Prop | Type | Default | Description |
|
|
75
|
+
| ----------------------- | -------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
76
|
+
| `filterClause` | `WhereClause<Q>` | - | Current where clause covering direct filters (controlled mode). LINKED_PROPERTY narrowing surfaces only through `onEffectiveObjectSet`. |
|
|
77
|
+
| `onFilterClauseChanged` | `(newClause) => void` | - | Called when the direct-filter where clause changes. Required in controlled mode. |
|
|
78
|
+
| `onEffectiveObjectSet` | `(objectSet) => void` | - | Observer invoked with the fully-narrowed `ObjectSet` (direct + linked filters applied) on every filter change. Requires `objectSet`. Use when LINKED filters are present. |
|
|
79
|
+
| `onFilterStateChanged` | `(definition, newState) => void` | - | Called when any filter's state changes |
|
|
80
|
+
| `initialFilterStates` | `Map<string, FilterState>` | - | Initial states for hydrating from external storage |
|
|
80
81
|
|
|
81
82
|
### UI Features
|
|
82
83
|
|
|
@@ -135,6 +136,51 @@ When using `type: "PROPERTY"`, the definition supports:
|
|
|
135
136
|
| `displayMode` | `"full" \| "count" \| "minimal"` | `"full"` | `full`: bar + count, `count`: count only, `minimal`: label only |
|
|
136
137
|
| `maxVisibleItems` | `number` | `5` | Number of items shown before "View all" link appears |
|
|
137
138
|
|
|
139
|
+
### Linked Property Filter Definition
|
|
140
|
+
|
|
141
|
+
When using `type: "LINKED_PROPERTY"`, the definition supports:
|
|
142
|
+
|
|
143
|
+
| Field | Type | Description |
|
|
144
|
+
| ----------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
145
|
+
| `linkName` | `LinkNames<Q>` | Link on `Q` that traverses to the related object type |
|
|
146
|
+
| `linkedPropertyKey` | `PropertyKeys<LinkedQ>` | Property on the linked type to filter by |
|
|
147
|
+
| `linkedFilterComponent` | `FilterComponentType` | Which UI component to render (see Filter Components table) |
|
|
148
|
+
| `linkedFilterState` | `FilterState` | Initial state for the linked filter |
|
|
149
|
+
| `filterState` | `LinkedPropertyFilterState` | Wrapped filter state |
|
|
150
|
+
| `reverseLinkName` | `LinkNames<LinkedQ>` (optional) | **Opt-in for FilterList-managed narrowing.** When set, the linked filter narrows `objectSet` and emits via `onEffectiveObjectSet`. Names the link on the linked type that points back to `Q`. Omit to keep the filter as UI state only. |
|
|
151
|
+
| `label` | `string` | Display label for the filter |
|
|
152
|
+
| `isVisible` | `boolean` | Whether the filter is initially visible (default: `true`) |
|
|
153
|
+
|
|
154
|
+
#### Two modes for LINKED_PROPERTY
|
|
155
|
+
|
|
156
|
+
**Auto-narrowing** — set `reverseLinkName`. FilterList composes `pivotTo(linkName).where(...).pivotTo(reverseLinkName)` and emits the narrowed set via `onEffectiveObjectSet`:
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
{
|
|
160
|
+
type: "LINKED_PROPERTY",
|
|
161
|
+
linkName: "manager", // Employee → Manager
|
|
162
|
+
reverseLinkName: "directReports", // Manager → Employee (back-link)
|
|
163
|
+
linkedPropertyKey: "fullName",
|
|
164
|
+
linkedFilterComponent: "MULTI_SELECT",
|
|
165
|
+
linkedFilterState: { type: "SELECT", selectedValues: [] },
|
|
166
|
+
filterState: { type: "linkedProperty", linkedFilterState: { type: "SELECT", selectedValues: [] } },
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**UI-only** — omit `reverseLinkName`. The filter still renders and fires `onFilterStateChanged`; downstream narrowing is up to the consumer:
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
{
|
|
174
|
+
type: "LINKED_PROPERTY",
|
|
175
|
+
linkName: "manager",
|
|
176
|
+
// no reverseLinkName — FilterList won't narrow objectSet on this filter
|
|
177
|
+
linkedPropertyKey: "fullName",
|
|
178
|
+
linkedFilterComponent: "MULTI_SELECT",
|
|
179
|
+
linkedFilterState: { type: "SELECT", selectedValues: [] },
|
|
180
|
+
filterState: { type: "linkedProperty", linkedFilterState: { type: "SELECT", selectedValues: [] } },
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
138
184
|
### Filter Components
|
|
139
185
|
|
|
140
186
|
When using `type: "PROPERTY"` or `type: "LINKED_PROPERTY"`, specify a `filterComponent`:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/react-components",
|
|
3
|
-
"version": "0.19.0",
|
|
3
|
+
"version": "0.19.1-beta.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -193,14 +193,14 @@
|
|
|
193
193
|
"xlsx": "^0.18.5"
|
|
194
194
|
},
|
|
195
195
|
"peerDependencies": {
|
|
196
|
-
"@osdk/api": "
|
|
197
|
-
"@osdk/client": "
|
|
198
|
-
"@osdk/react": "
|
|
196
|
+
"@osdk/api": ">=2.23.1-beta.0",
|
|
197
|
+
"@osdk/client": ">=2.23.1-beta.0",
|
|
198
|
+
"@osdk/react": ">=2.23.1-beta.0",
|
|
199
199
|
"@types/react": "^17 || ^18 || ^19",
|
|
200
200
|
"classnames": "^2.0.0",
|
|
201
201
|
"react": "^17 || ^18 || ^19",
|
|
202
202
|
"react-dom": "^17 || ^18 || ^19",
|
|
203
|
-
"@osdk/aip-core": "^0.4.0"
|
|
203
|
+
"@osdk/aip-core": "^0.4.1-beta.0"
|
|
204
204
|
},
|
|
205
205
|
"peerDependenciesMeta": {
|
|
206
206
|
"@osdk/aip-core": {
|
|
@@ -219,12 +219,12 @@
|
|
|
219
219
|
"react": "^18.3.1",
|
|
220
220
|
"react-dom": "^18.3.1",
|
|
221
221
|
"typescript": "~5.5.4",
|
|
222
|
-
"@osdk/aip-core": "0.4.0",
|
|
223
|
-
"@osdk/api": "2.23.
|
|
224
|
-
"@osdk/client": "2.23.
|
|
222
|
+
"@osdk/aip-core": "0.4.1-beta.0",
|
|
223
|
+
"@osdk/api": "2.23.1-beta.2",
|
|
224
|
+
"@osdk/client": "2.23.1-beta.2",
|
|
225
225
|
"@osdk/monorepo.api-extractor": "~0.7.0",
|
|
226
226
|
"@osdk/monorepo.tsconfig": "~0.7.0",
|
|
227
|
-
"@osdk/react": "2.23.
|
|
227
|
+
"@osdk/react": "2.23.1-beta.2"
|
|
228
228
|
},
|
|
229
229
|
"publishConfig": {
|
|
230
230
|
"access": "public"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkOUJQJQ7N_cjs = require('./chunk-OUJQJQ7N.cjs');
|
|
4
|
-
var chunkBXCHISUQ_cjs = require('./chunk-BXCHISUQ.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/xml-viewer.ts
|
|
7
|
-
var XmlViewer2 = chunkBXCHISUQ_cjs.withOsdkMetrics(chunkOUJQJQ7N_cjs.XmlViewer, "XmlViewer");
|
|
8
|
-
|
|
9
|
-
exports.XmlViewer = XmlViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-3Y4W37E3.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-3Y4W37E3.cjs.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkVOROB7KJ_cjs = require('./chunk-VOROB7KJ.cjs');
|
|
4
|
-
var chunkBXCHISUQ_cjs = require('./chunk-BXCHISUQ.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/image-viewer.ts
|
|
7
|
-
var ImageViewer2 = chunkBXCHISUQ_cjs.withOsdkMetrics(chunkVOROB7KJ_cjs.ImageViewer, "ImageViewer");
|
|
8
|
-
|
|
9
|
-
exports.ImageViewer = ImageViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-62DGPKOC.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-62DGPKOC.cjs.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunk4VJIPB7R_cjs = require('./chunk-4VJIPB7R.cjs');
|
|
4
|
-
var chunkBXCHISUQ_cjs = require('./chunk-BXCHISUQ.cjs');
|
|
5
|
-
|
|
6
|
-
// src/public/experimental/excel-viewer.ts
|
|
7
|
-
var ExcelViewer2 = chunkBXCHISUQ_cjs.withOsdkMetrics(chunk4VJIPB7R_cjs.ExcelViewer, "ExcelViewer");
|
|
8
|
-
|
|
9
|
-
exports.ExcelViewer = ExcelViewer2;
|
|
10
|
-
//# sourceMappingURL=chunk-774FGQHO.cjs.map
|
|
11
|
-
//# sourceMappingURL=chunk-774FGQHO.cjs.map
|