@turquoisehealth/pit-viper 2.194.5 → 2.194.6-dev.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.
Files changed (32) hide show
  1. package/_site/assets/css/pit-viper-a11y.css +8 -0
  2. package/_site/assets/css/pit-viper-consumer.css +8 -0
  3. package/_site/assets/css/pit-viper-v2-scoped.css +7 -0
  4. package/_site/assets/css/pit-viper-v2.css +8 -0
  5. package/_site/assets/css/pit-viper.css +8 -0
  6. package/package.json +1 -1
  7. package/pv-components/dist/stats/vue/base/stats.html +1 -1
  8. package/pv-components/dist/stats/vue/visualizations/stats.html +1 -1
  9. package/pv-components/dist/stats/web/pv-split-button-stats.html +4950 -0
  10. package/pv-components/dist/vue/base/components/base/PvButton/types.d.ts +1 -1
  11. package/pv-components/dist/vue/base/components/base/PvDropdown/PvDropdown.vue.d.ts +2 -2
  12. package/pv-components/dist/vue/base/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +5 -5
  13. package/pv-components/dist/vue/base/components/base/PvPopoverV2/PvPopoverV2.vue.d.ts +3 -3
  14. package/pv-components/dist/vue/base/components/base/PvRange/PvRange.vue.d.ts +2 -2
  15. package/pv-components/dist/vue/base/components/base/PvSelectButton/PvSelectButton.vue.d.ts +2 -2
  16. package/pv-components/dist/vue/base/components/base/PvSplitButton/PvSplitButton.vue.d.ts +27 -0
  17. package/pv-components/dist/vue/base/components/base/PvSplitButton/types.d.ts +12 -0
  18. package/pv-components/dist/vue/base/components/base/index.d.ts +1 -0
  19. package/pv-components/dist/vue/base/pv-components-base.mjs +1586 -1508
  20. package/pv-components/dist/vue/base/pv-components-base.mjs.map +1 -1
  21. package/pv-components/dist/vue/visualizations/components/base/PvButton/types.d.ts +1 -1
  22. package/pv-components/dist/vue/visualizations/components/base/PvSplitButton/PvSplitButton.vue.d.ts +27 -0
  23. package/pv-components/dist/vue/visualizations/components/base/PvSplitButton/types.d.ts +12 -0
  24. package/pv-components/dist/vue/visualizations/components/base/index.d.ts +1 -0
  25. package/pv-components/dist/vue/visualizations/components/tables/PvDataTable/types.d.ts +27 -144
  26. package/pv-components/dist/vue/visualizations/components/tables/PvDataTable/useFilterStore.d.ts +115 -14
  27. package/pv-components/dist/vue/visualizations/components/tables/PvDataTable/useSetFilter.d.ts +2 -0
  28. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs +2480 -2206
  29. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs.map +1 -1
  30. package/pv-components/dist/web/components/pv-split-button/pv-split-button.js +7713 -0
  31. package/pv-components/dist/web/pv-components.iife.js +35 -35
  32. package/pv-components/dist/web/pv-components.iife.js.map +1 -1
@@ -1,7 +1,7 @@
1
1
  import { PvSize, PvVariants } from '../baseProps';
2
2
  import { PvTooltipPositions, PvTooltipVariants } from '../PvTooltip/types';
3
3
  export type PvButtonSize = Extract<PvSize, "md" | "lg" | "xl">;
4
- export type PvButtonVariant = Extract<PvVariants, "primary" | "secondary" | "ghost" | "destructive" | "tertiary">;
4
+ export type PvButtonVariant = Extract<PvVariants, "primary" | "secondary" | "ghost" | "destructive" | "tertiary"> | "link" | "link-secondary";
5
5
  export interface PvButtonProps {
6
6
  /** Visual style of the button */
7
7
  variant?: PvButtonVariant;
@@ -0,0 +1,27 @@
1
+ import { PvSplitButtonProps } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ import { PvAlignmentPositions } from '../baseProps';
4
+ declare function __VLS_template(): {
5
+ attrs: Partial<{}>;
6
+ slots: {
7
+ 'menu-content'?(_: {}): any;
8
+ };
9
+ refs: {};
10
+ rootEl: HTMLDivElement;
11
+ };
12
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
13
+ declare const __VLS_component: DefineComponent<PvSplitButtonProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
14
+ click: () => any;
15
+ }, string, PublicProps, Readonly<PvSplitButtonProps> & Readonly<{
16
+ onClick?: (() => any) | undefined;
17
+ }>, {
18
+ position: PvAlignmentPositions;
19
+ offset: number;
20
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
21
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
22
+ export default _default;
23
+ type __VLS_WithTemplateSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,12 @@
1
+ import { PvButtonProps, PvButtonVariant } from '../PvButton/types';
2
+ import { PvAlignmentPositions } from '../baseProps';
3
+ export interface PvSplitButtonProps extends Omit<PvButtonProps, "variant" | "label" | "ariaLabel"> {
4
+ /** Text within the action button */
5
+ label: string;
6
+ /** Visual style — restricted to primary and secondary */
7
+ variant?: Extract<PvButtonVariant, "primary" | "secondary">;
8
+ /** Offset in pixels between the trigger and the popover */
9
+ offset?: number;
10
+ /** Where the popover opens relative to the trigger */
11
+ position?: PvAlignmentPositions;
12
+ }
@@ -1,6 +1,7 @@
1
1
  export { default as PvButton } from './PvButton/PvButton.vue';
2
2
  export { default as PvAiButton } from './PvAiButton/PvAiButton.vue';
3
3
  export { default as PvButtonWithTooltip } from './PvButton/PvButtonWithTooltip.vue';
4
+ export { default as PvSplitButton } from './PvSplitButton/PvSplitButton.vue';
4
5
  export { default as PvCounterBadge } from './PvCounterBadge/PvCounterBadge.vue';
5
6
  export { default as PvReleaseBadge } from './PvReleaseBadge/PvReleaseBadge.vue';
6
7
  export { default as PvTag } from './PvTag/PvTag.vue';
@@ -1,12 +1,13 @@
1
1
  import { AgCartesianSeriesTooltipRendererParams } from 'ag-charts-enterprise';
2
2
  import { ColDefDataType } from './table-components/formatting';
3
- import { Component, ComputedRef, CSSProperties, Ref } from 'vue';
3
+ import { ComputedRef, CSSProperties, Ref } from 'vue';
4
4
  import { AdvancedFilterModel, CellSelectionOptions, FilterModel, GetContextMenuItemsParams, GridState, IServerSideGetRowsParams, ProcessCellForExportParams, ProcessDataFromClipboardParams, RowSelectionOptions, Theme, ValueFormatterFunc } from 'ag-grid-enterprise';
5
5
  import { PvDataTableTheme } from '../themes';
6
6
  import { PvDataTableFilterStore } from './useFilterStore';
7
7
  import { ColDef, GridApi, IsGroupOpenByDefaultParams, IsServerSideGroupOpenByDefaultParams, RefreshServerSideParams } from 'ag-grid-community';
8
8
  import { QueryBuilderSuggestionMenuOption } from '../../base/PvQueryBuilderInput/useQueryBuilder';
9
9
  import { MenuOption, PvMultiSelectButtonSlotProps } from '../../base';
10
+ import { PvFilterPanelAggregateFieldHierarchy, PvFilterPanelColDefContext, PvFilterPanelOption, PvFilterPanelOptionsHandlerParams, PvFilterPanelOptionsHandlerReason, PvFilterPanelOptionsResponse } from '../../base/PvFilterPanel/types';
10
11
  export type TableSearchStyle = "query-builder" | "text";
11
12
  /**
12
13
  * Context passed to custom filter renderer components via slotContext
@@ -45,13 +46,8 @@ export interface TooltipDatum {
45
46
  [key: string]: string | number | undefined;
46
47
  }
47
48
  export type ChartTooltipRenderer = (params: AgCartesianSeriesTooltipRendererParams<TooltipDatum>) => string;
48
- export interface AggregateFieldHierarchy {
49
- /** Field represented by this hierarchy node. Parent/child relationships are determined by nesting. */
50
- field: string;
51
- /** Child fields nested under this field. */
52
- children?: AggregateFieldHierarchy[];
53
- }
54
- export interface ColDefContextProps<T> {
49
+ export type AggregateFieldHierarchy = PvFilterPanelAggregateFieldHierarchy;
50
+ export interface ColDefContextProps<T> extends Omit<PvFilterPanelColDefContext, "dataType" | "filterValueFormatter" | "valueDecimals"> {
55
51
  /**
56
52
  * Display name for the aggregation function (e.g. "Sum", "Average", etc.) to show in the UI, if different from the aggFunc name
57
53
  */
@@ -61,69 +57,33 @@ export interface ColDefContextProps<T> {
61
57
  */
62
58
  aggFuncDisplayNameMap?: Record<string, string>;
63
59
  /**
64
- * Display name for the series when used in charting
60
+ * If true, we will plot this column on the secondary y-axis.
65
61
  */
66
- chartSeriesDisplayName?: string;
62
+ chartOnSecondaryAxes?: boolean;
67
63
  /**
68
64
  * Optional description for the series when used in charting, displayed as a tooltip
69
65
  */
70
66
  chartSeriesDescription?: string;
71
67
  /**
72
- * The data type of the column values, used for things like formatting, icons, etc.
73
- */
74
- dataType?: ColDefDataType;
75
- /**
76
- * An optional renderer to use for dropdown values when no results are found
77
- */
78
- emptyFilterResultsRenderer?: Component;
79
- /**
80
- * The max number of allowable selections for filters on this column
81
- */
82
- filterSelectMax?: number;
83
- /**
84
- * The min number of allowable selections for filters on this column
85
- */
86
- filterSelectMin?: number;
87
- /**
88
- * An optional description to show in the tooltip explaining how the dropdown values are sorted
89
- */
90
- filterOptionsSortDescription?: string;
91
- /**
92
- * The primary text for the optional tooltip
93
- */
94
- filterOptionsSortTooltip?: string;
95
- /**
96
- * Optional renderer to override the default filter options list
68
+ * Display name for the series when used in charting
97
69
  */
98
- filterOptionsRenderer?: Component;
70
+ chartSeriesDisplayName?: string;
99
71
  /**
100
- * If true, will show a search box to filter the available filter options
72
+ * If true, the custom tooltip renderer will be used in place of the default tooltip. Currently only applied to secondary series.
101
73
  */
102
- filterSearch?: boolean;
74
+ customTooltipRenderer?: ChartTooltipRenderer;
103
75
  /**
104
- * If true, grouped data will not be displayed until a filter is applied
76
+ * The data type of the column values, used for things like formatting, icons, etc.
105
77
  */
106
- filterRequiredToGroup?: boolean;
78
+ dataType?: ColDefDataType;
107
79
  /**
108
80
  * Formatter for the filter values in the dropdown
109
81
  */
110
82
  filterValueFormatter?: string | ValueFormatterFunc<T> | undefined;
111
83
  /**
112
- * Optional renderer to provide content above the filter options list
113
- */
114
- filterHeaderRenderer?: Component;
115
- /**
116
- * Optional renderer to provide content below the filter options list
117
- */
118
- filterFooterRenderer?: Component;
119
- /**
120
- * Determines how values are formatted when the field contains array data
121
- */
122
- isArrayField?: boolean;
123
- /**
124
- * A list of associated fields that can be expected and used for custom formatting
84
+ * If true, will hide this column from category or y-axis options in charting
125
85
  */
126
- metadataDisplayFields?: string[];
86
+ hideFromCharting?: boolean;
127
87
  /**
128
88
  * Number of decimal places to show for numeric values (if applicable)
129
89
  */
@@ -132,72 +92,13 @@ export interface ColDefContextProps<T> {
132
92
  * Whether to force the column to always be visible or always be hidden, regardless of user selection
133
93
  */
134
94
  visibilityState?: "alwaysShow" | "alwaysHide";
135
- /**
136
- * If true, will hide this column from category or y-axis options in charting
137
- */
138
- hideFromCharting?: boolean;
139
- /**
140
- * If true, we will plot this column on the secondary y-axis.
141
- */
142
- chartOnSecondaryAxes?: boolean;
143
- /**
144
- * If true, the custom tooltip renderer will be used in place of the default tooltip. Currently only applied to secondary series.
145
- */
146
- customTooltipRenderer?: ChartTooltipRenderer;
147
- /**
148
- * For server-side filtering, list of associated column IDs to query against when searching for filter values.
149
- * When provided, these fields are included in the auto-generated search placeholder
150
- * (e.g., `["npi", "taxId"]` → `Search Provider Name, NPI, Tax ID`).
151
- */
152
- queryColIds?: string[];
153
- /**
154
- * When false, search-match subtext shows only the matched value instead of "Column: value".
155
- */
156
- showSearchMatchSubTextPrefix?: boolean;
157
- /**
158
- * Hierarchy of fields represented by this aggregate filter column.
159
- *
160
- * Example: `{ field: "health_system", children: [{ field: "provider_id" }] }`
161
- * renders health systems as parent options and providers as nested child options.
162
- * Fields must be present as their own columns in the table. Filters for the
163
- * hierarchy fields are hidden from the filter panel in favor of this aggregate filter.
164
- *
165
- * Requires `enableAdvancedFilter: true` on the table — columns with an aggregate hierarchy
166
- * are excluded (and may log a console warning) when advanced filtering is disabled.
167
- */
168
- aggregateFieldHierarchy?: AggregateFieldHierarchy;
169
- /**
170
- * Aggregate filter column for columns that have "peer" relationships, as opposed to hierarchical
171
- * Requires `enableAdvancedFilter: true` on the table — columns with aggregate fields
172
- * are excluded (and may log a console warning) when advanced filtering is disabled.
173
- */
174
- aggregateFields?: string[];
175
- /**
176
- * If true, this column is considered a "dev" column and will only be shown when devMode is enabled
177
- */
178
- devOnly?: boolean;
179
- /**
180
- * A group of boolean sub-fields to render as a hover submenu above the filter options.
181
- * Each field in `fields` must be present as a column in the table.
182
- * Selecting an item toggles a `<field> = "true"` condition in the advanced filter model.
183
- */
184
- filterGroup?: {
185
- label: string;
186
- fields: string[];
187
- };
188
95
  }
189
- export interface FilterValuesSetHandlerParams<T> {
96
+ export interface FilterValuesSetHandlerParams<T> extends Omit<PvFilterPanelOptionsHandlerParams, "colDef" | "field" | "filterModel" | "reason"> {
190
97
  api?: GridApi<T>;
191
98
  colDef: ColDef<T>;
99
+ field?: string;
192
100
  filterModel?: FilterModel | AdvancedFilterModel | null;
193
- query?: string;
194
- selectedValues?: (string | null)[];
195
- /** Pagination offset for "see more" requests */
196
- offset?: number;
197
- /** Pagination limit for "see more" requests */
198
- limit?: number;
199
- /** When loading more children of a specific cascade parent */
200
- parentId?: string;
101
+ reason?: PvFilterPanelOptionsHandlerReason;
201
102
  }
202
103
  export interface TableSearchHandlerParams<T> {
203
104
  api?: GridApi<T>;
@@ -208,42 +109,18 @@ export interface FilterValueMatchResult {
208
109
  matchedField?: string;
209
110
  matchedValue?: string;
210
111
  }
211
- export interface FilterValuesResponse {
112
+ /** @deprecated Use PvFilterPanelOptionsResponse. */
113
+ export interface FilterValuesResponse extends Omit<PvFilterPanelOptionsResponse, "values"> {
212
114
  values: (FilterValueResponseOption | null)[];
213
- /** Whether additional matching values are available after this page */
214
- hasMore?: boolean;
215
- /** Total count of matching values (before pagination/truncation) */
216
- totalCount?: number;
217
115
  }
218
- export interface FilterValueResponseOption {
219
- value: string;
220
- /**
221
- * The primary display label for the value, uses 'value' if not specified.
222
- * If a label formatter is provided on the column definition, it will override this value.
223
- */
224
- label?: string;
225
- /** Optional secondary text to display alongside the label */
226
- subduedText?: string;
227
- /** Optional text to display below the label in the filter options list */
228
- subText?: string;
229
- /** If true, this option is marked as a user preference */
230
- isPreference?: boolean;
231
- /** If true, this option can be selected by the user */
232
- isSelectable?: boolean;
116
+ /** @deprecated Use PvFilterPanelOption. */
117
+ export interface FilterValueResponseOption extends Omit<PvFilterPanelOption, "children" | "menuOption" | "metadata"> {
233
118
  /** Metadata that can be associated with the value, and is passed back in renderers/handlers */
234
119
  metadata?: any;
235
- /** The column this value applies to */
236
- colField?: string;
237
- /** The actual value that was matched (for search scenarios), if different from 'value' */
238
- matchedValue?: string;
239
- /** The field used to match the value (for search scenarios) */
240
- matchedField?: string;
241
120
  /** Optional PvMenu option props to apply when rendering this value in custom/nested filters. */
242
121
  menuOption?: Partial<Omit<MenuOption<FilterValueResponseOption>, "id" | "text" | "children" | "context">>;
243
122
  /** Nested child options for hierarchical/cascade filtering */
244
123
  children?: FilterValueResponseOption[];
245
- /** Total number of children available (may exceed children.length when paginating) */
246
- totalChildCount?: number;
247
124
  }
248
125
  export interface PvDataTableProps<T> {
249
126
  /**
@@ -324,6 +201,12 @@ export interface PvDataTableProps<T> {
324
201
  * Display input to search within the table
325
202
  */
326
203
  enableTableSearch?: boolean;
204
+ /**
205
+ * Minimum search string length before the filter search is executed.
206
+ * When set to N, queries with length in [1, N) are skipped; length 0
207
+ * always fetches so clearing the input restores the full list.
208
+ */
209
+ filterSearchMinLength?: number;
327
210
  /**
328
211
  * Allows for slot content to be placed above the chart
329
212
  */
@@ -3,11 +3,16 @@ import { ColDef, GridApi, RefreshServerSideParams } from 'ag-grid-community';
3
3
  import { Ref, ShallowRef, ComputedRef } from 'vue';
4
4
  import { FilterValueMatchResult, FilterValueResponseOption, FilterValuesResponse, FilterValuesSetHandlerParams, TableSearchHandlerParams } from './types';
5
5
  import { QueryTerm } from '../../base/PvQueryBuilderInput/useQueryBuilder';
6
+ import { PvFilterPanelFilterModel, PvFilterStoreFetchOptionsParams, PvFilterPanelFilterModelType, PvFilterPanelOptionsHandler, PvFilterPanelOption } from '../../base/PvFilterPanel/types';
7
+ export type PvDataTableFilterModel = PvFilterPanelFilterModel;
8
+ /**
9
+ * Type guard to check if a filter model is an AdvancedFilterModel.
10
+ */
11
+ export declare const isAdvancedFilterModel: (model: PvDataTableFilterModel) => model is AdvancedFilterModel;
6
12
  /**
7
13
  * Type guard to check if a filter model is a regular FilterModel (not AdvancedFilterModel)
8
14
  */
9
- export declare const isRegularFilterModel: (model: FilterModel | AdvancedFilterModel | null) => model is FilterModel;
10
- export type PvDataTableFilterModel = FilterModel | AdvancedFilterModel | null;
15
+ export declare const isRegularFilterModel: (model: PvDataTableFilterModel) => model is FilterModel;
11
16
  export interface PvDataTableFilterController {
12
17
  getFilterModel: () => PvDataTableFilterModel;
13
18
  refreshData: (params?: RefreshServerSideParams | null) => Promise<void> | void;
@@ -15,8 +20,9 @@ export interface PvDataTableFilterController {
15
20
  setTableSearchFilterModel: (model: PvDataTableFilterModel) => boolean | void;
16
21
  }
17
22
  export declare const createFilterStore: () => {
23
+ fetchFilterOptions: (params: Parameters<(params: PvFilterStoreFetchOptionsParams) => Promise<(string | null)[]>>[0]) => Promise<(string | null)[]>;
18
24
  filterController: ShallowRef<PvDataTableFilterController | null, PvDataTableFilterController | null>;
19
- filterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
25
+ filterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
20
26
  filterLastUpdatedMap: Ref<Record<string, number>, Record<string, number>>;
21
27
  filterLastFetchTimeMap: Ref<Record<string, number>, Record<string, number>>;
22
28
  filterModelCleared: Ref<number, number>;
@@ -36,10 +42,10 @@ export declare const createFilterStore: () => {
36
42
  getFilterSelectedValues: (colField: string) => (string | null)[];
37
43
  getSearchMatchDataFromFilterContext: (colDef: ColDef, option: FilterValueResponseOption | null | undefined) => FilterValueMatchResult;
38
44
  isServerSideFilter: ComputedRef<boolean>;
39
- stagedFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
45
+ stagedFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
40
46
  setFilterSelectedValues: (colField: string, selectedValues: (string | null)[]) => (string | null)[];
41
47
  setFilterValueSearchText: (colField: string, searchText: string | null) => void;
42
- tableSearchFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
48
+ tableSearchFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
43
49
  tableSearchFilterModelEmpty: ComputedRef<boolean>;
44
50
  tableSearchHandler: Ref<((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined, ((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined>;
45
51
  filterValuesMap: Ref<Record<string, (string | null)[]>, Record<string, (string | null)[]>>;
@@ -48,6 +54,7 @@ export declare const createFilterStore: () => {
48
54
  filterStaleMap: Ref<Record<string, boolean>, Record<string, boolean>>;
49
55
  refreshFiltersInBackground: Ref<boolean, boolean>;
50
56
  stageFilterChangesUntilDropdownCloses: Ref<boolean, boolean>;
57
+ filterSearchMinLength: Ref<number | undefined, number | undefined>;
51
58
  markOtherFieldsStale: (changedFields: Set<string>) => void;
52
59
  aggregateFieldMap: Ref<Record<string, string[]>, Record<string, string[]>>;
53
60
  registerAggregateField: (parent: string, children: string[]) => void;
@@ -68,11 +75,34 @@ export declare const createFilterStore: () => {
68
75
  filterValueSearchTextMap: Ref<Record<string, string | null>, Record<string, string | null>>;
69
76
  filterValuesHasMoreMap: Ref<Record<string, boolean | undefined>, Record<string, boolean | undefined>>;
70
77
  filterValuesTotalCountMap: Ref<Record<string, number | undefined>, Record<string, number | undefined>>;
78
+ clearStagedFilterSelections: () => void;
79
+ commitStagedFilterSelections: () => void;
80
+ filterHasMoreMap: Ref<Record<string, boolean | undefined>>;
81
+ filterLoadingMap: Ref<Record<string, boolean | undefined>>;
82
+ filterLoadingMoreMap: Ref<Record<string, boolean | undefined>>;
83
+ filterModelType: Ref< PvFilterPanelFilterModelType | undefined>;
84
+ filterOptionsHandler: Ref< PvFilterPanelOptionsHandler | undefined>;
85
+ filterOptionsMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
86
+ filterRequestIdMap: Ref<Record<string, number | undefined>>;
87
+ filterSearchQueries: Ref<Record<string, string | null | undefined>>;
88
+ filterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
89
+ filterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
90
+ filterTotalCountMap: Ref<Record<string, number | undefined>>;
91
+ filterChildHasMoreMap: Ref<Record<string, boolean | undefined>>;
92
+ filterChildTotalCountMap: Ref<Record<string, number | undefined>>;
93
+ getFilterOptions: (field: string) => ( PvFilterPanelOption | null)[];
94
+ initStagedFilterSelections: () => void;
95
+ setFilterOptions: (field: string, options: ( PvFilterPanelOption | null)[]) => void;
96
+ setFilterOptionsHandler: (handler?: PvFilterPanelOptionsHandler) => void;
97
+ setFilterSearchQuery: (field: string, query: string | null | undefined) => void;
98
+ stagedFilterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
99
+ stagedFilterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
71
100
  };
72
101
  export type PvDataTableFilterStore = ReturnType<typeof createFilterStore>;
73
102
  export declare const createPvDataTableFilterStore: () => {
103
+ fetchFilterOptions: (params: Parameters<(params: PvFilterStoreFetchOptionsParams) => Promise<(string | null)[]>>[0]) => Promise<(string | null)[]>;
74
104
  filterController: ShallowRef<PvDataTableFilterController | null, PvDataTableFilterController | null>;
75
- filterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
105
+ filterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
76
106
  filterLastUpdatedMap: Ref<Record<string, number>, Record<string, number>>;
77
107
  filterLastFetchTimeMap: Ref<Record<string, number>, Record<string, number>>;
78
108
  filterModelCleared: Ref<number, number>;
@@ -92,10 +122,10 @@ export declare const createPvDataTableFilterStore: () => {
92
122
  getFilterSelectedValues: (colField: string) => (string | null)[];
93
123
  getSearchMatchDataFromFilterContext: (colDef: ColDef, option: FilterValueResponseOption | null | undefined) => FilterValueMatchResult;
94
124
  isServerSideFilter: ComputedRef<boolean>;
95
- stagedFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
125
+ stagedFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
96
126
  setFilterSelectedValues: (colField: string, selectedValues: (string | null)[]) => (string | null)[];
97
127
  setFilterValueSearchText: (colField: string, searchText: string | null) => void;
98
- tableSearchFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
128
+ tableSearchFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
99
129
  tableSearchFilterModelEmpty: ComputedRef<boolean>;
100
130
  tableSearchHandler: Ref<((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined, ((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined>;
101
131
  filterValuesMap: Ref<Record<string, (string | null)[]>, Record<string, (string | null)[]>>;
@@ -104,6 +134,7 @@ export declare const createPvDataTableFilterStore: () => {
104
134
  filterStaleMap: Ref<Record<string, boolean>, Record<string, boolean>>;
105
135
  refreshFiltersInBackground: Ref<boolean, boolean>;
106
136
  stageFilterChangesUntilDropdownCloses: Ref<boolean, boolean>;
137
+ filterSearchMinLength: Ref<number | undefined, number | undefined>;
107
138
  markOtherFieldsStale: (changedFields: Set<string>) => void;
108
139
  aggregateFieldMap: Ref<Record<string, string[]>, Record<string, string[]>>;
109
140
  registerAggregateField: (parent: string, children: string[]) => void;
@@ -124,11 +155,34 @@ export declare const createPvDataTableFilterStore: () => {
124
155
  filterValueSearchTextMap: Ref<Record<string, string | null>, Record<string, string | null>>;
125
156
  filterValuesHasMoreMap: Ref<Record<string, boolean | undefined>, Record<string, boolean | undefined>>;
126
157
  filterValuesTotalCountMap: Ref<Record<string, number | undefined>, Record<string, number | undefined>>;
158
+ clearStagedFilterSelections: () => void;
159
+ commitStagedFilterSelections: () => void;
160
+ filterHasMoreMap: Ref<Record<string, boolean | undefined>>;
161
+ filterLoadingMap: Ref<Record<string, boolean | undefined>>;
162
+ filterLoadingMoreMap: Ref<Record<string, boolean | undefined>>;
163
+ filterModelType: Ref< PvFilterPanelFilterModelType | undefined>;
164
+ filterOptionsHandler: Ref< PvFilterPanelOptionsHandler | undefined>;
165
+ filterOptionsMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
166
+ filterRequestIdMap: Ref<Record<string, number | undefined>>;
167
+ filterSearchQueries: Ref<Record<string, string | null | undefined>>;
168
+ filterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
169
+ filterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
170
+ filterTotalCountMap: Ref<Record<string, number | undefined>>;
171
+ filterChildHasMoreMap: Ref<Record<string, boolean | undefined>>;
172
+ filterChildTotalCountMap: Ref<Record<string, number | undefined>>;
173
+ getFilterOptions: (field: string) => ( PvFilterPanelOption | null)[];
174
+ initStagedFilterSelections: () => void;
175
+ setFilterOptions: (field: string, options: ( PvFilterPanelOption | null)[]) => void;
176
+ setFilterOptionsHandler: (handler?: PvFilterPanelOptionsHandler) => void;
177
+ setFilterSearchQuery: (field: string, query: string | null | undefined) => void;
178
+ stagedFilterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
179
+ stagedFilterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
127
180
  };
128
181
  export declare const providePvDataTableFilterStore: (filterStore: PvDataTableFilterStore) => void;
129
182
  export declare const useFilterStore: () => {
183
+ fetchFilterOptions: (params: Parameters<(params: PvFilterStoreFetchOptionsParams) => Promise<(string | null)[]>>[0]) => Promise<(string | null)[]>;
130
184
  filterController: ShallowRef<PvDataTableFilterController | null, PvDataTableFilterController | null>;
131
- filterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
185
+ filterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
132
186
  filterLastUpdatedMap: Ref<Record<string, number>, Record<string, number>>;
133
187
  filterLastFetchTimeMap: Ref<Record<string, number>, Record<string, number>>;
134
188
  filterModelCleared: Ref<number, number>;
@@ -148,10 +202,10 @@ export declare const useFilterStore: () => {
148
202
  getFilterSelectedValues: (colField: string) => (string | null)[];
149
203
  getSearchMatchDataFromFilterContext: (colDef: ColDef, option: FilterValueResponseOption | null | undefined) => FilterValueMatchResult;
150
204
  isServerSideFilter: ComputedRef<boolean>;
151
- stagedFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
205
+ stagedFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
152
206
  setFilterSelectedValues: (colField: string, selectedValues: (string | null)[]) => (string | null)[];
153
207
  setFilterValueSearchText: (colField: string, searchText: string | null) => void;
154
- tableSearchFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
208
+ tableSearchFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
155
209
  tableSearchFilterModelEmpty: ComputedRef<boolean>;
156
210
  tableSearchHandler: Ref<((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined, ((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined>;
157
211
  filterValuesMap: Ref<Record<string, (string | null)[]>, Record<string, (string | null)[]>>;
@@ -160,6 +214,7 @@ export declare const useFilterStore: () => {
160
214
  filterStaleMap: Ref<Record<string, boolean>, Record<string, boolean>>;
161
215
  refreshFiltersInBackground: Ref<boolean, boolean>;
162
216
  stageFilterChangesUntilDropdownCloses: Ref<boolean, boolean>;
217
+ filterSearchMinLength: Ref<number | undefined, number | undefined>;
163
218
  markOtherFieldsStale: (changedFields: Set<string>) => void;
164
219
  aggregateFieldMap: Ref<Record<string, string[]>, Record<string, string[]>>;
165
220
  registerAggregateField: (parent: string, children: string[]) => void;
@@ -180,10 +235,33 @@ export declare const useFilterStore: () => {
180
235
  filterValueSearchTextMap: Ref<Record<string, string | null>, Record<string, string | null>>;
181
236
  filterValuesHasMoreMap: Ref<Record<string, boolean | undefined>, Record<string, boolean | undefined>>;
182
237
  filterValuesTotalCountMap: Ref<Record<string, number | undefined>, Record<string, number | undefined>>;
238
+ clearStagedFilterSelections: () => void;
239
+ commitStagedFilterSelections: () => void;
240
+ filterHasMoreMap: Ref<Record<string, boolean | undefined>>;
241
+ filterLoadingMap: Ref<Record<string, boolean | undefined>>;
242
+ filterLoadingMoreMap: Ref<Record<string, boolean | undefined>>;
243
+ filterModelType: Ref< PvFilterPanelFilterModelType | undefined>;
244
+ filterOptionsHandler: Ref< PvFilterPanelOptionsHandler | undefined>;
245
+ filterOptionsMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
246
+ filterRequestIdMap: Ref<Record<string, number | undefined>>;
247
+ filterSearchQueries: Ref<Record<string, string | null | undefined>>;
248
+ filterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
249
+ filterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
250
+ filterTotalCountMap: Ref<Record<string, number | undefined>>;
251
+ filterChildHasMoreMap: Ref<Record<string, boolean | undefined>>;
252
+ filterChildTotalCountMap: Ref<Record<string, number | undefined>>;
253
+ getFilterOptions: (field: string) => ( PvFilterPanelOption | null)[];
254
+ initStagedFilterSelections: () => void;
255
+ setFilterOptions: (field: string, options: ( PvFilterPanelOption | null)[]) => void;
256
+ setFilterOptionsHandler: (handler?: PvFilterPanelOptionsHandler) => void;
257
+ setFilterSearchQuery: (field: string, query: string | null | undefined) => void;
258
+ stagedFilterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
259
+ stagedFilterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
183
260
  };
184
261
  export declare const usePvDataTableFilterStore: () => {
262
+ fetchFilterOptions: (params: Parameters<(params: PvFilterStoreFetchOptionsParams) => Promise<(string | null)[]>>[0]) => Promise<(string | null)[]>;
185
263
  filterController: ShallowRef<PvDataTableFilterController | null, PvDataTableFilterController | null>;
186
- filterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
264
+ filterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
187
265
  filterLastUpdatedMap: Ref<Record<string, number>, Record<string, number>>;
188
266
  filterLastFetchTimeMap: Ref<Record<string, number>, Record<string, number>>;
189
267
  filterModelCleared: Ref<number, number>;
@@ -203,10 +281,10 @@ export declare const usePvDataTableFilterStore: () => {
203
281
  getFilterSelectedValues: (colField: string) => (string | null)[];
204
282
  getSearchMatchDataFromFilterContext: (colDef: ColDef, option: FilterValueResponseOption | null | undefined) => FilterValueMatchResult;
205
283
  isServerSideFilter: ComputedRef<boolean>;
206
- stagedFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
284
+ stagedFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
207
285
  setFilterSelectedValues: (colField: string, selectedValues: (string | null)[]) => (string | null)[];
208
286
  setFilterValueSearchText: (colField: string, searchText: string | null) => void;
209
- tableSearchFilterModel: Ref<PvDataTableFilterModel, PvDataTableFilterModel>;
287
+ tableSearchFilterModel: Ref<PvFilterPanelFilterModel, PvFilterPanelFilterModel>;
210
288
  tableSearchFilterModelEmpty: ComputedRef<boolean>;
211
289
  tableSearchHandler: Ref<((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined, ((params: TableSearchHandlerParams<unknown>) => Promise<(QueryTerm | null)[]>) | undefined>;
212
290
  filterValuesMap: Ref<Record<string, (string | null)[]>, Record<string, (string | null)[]>>;
@@ -215,6 +293,7 @@ export declare const usePvDataTableFilterStore: () => {
215
293
  filterStaleMap: Ref<Record<string, boolean>, Record<string, boolean>>;
216
294
  refreshFiltersInBackground: Ref<boolean, boolean>;
217
295
  stageFilterChangesUntilDropdownCloses: Ref<boolean, boolean>;
296
+ filterSearchMinLength: Ref<number | undefined, number | undefined>;
218
297
  markOtherFieldsStale: (changedFields: Set<string>) => void;
219
298
  aggregateFieldMap: Ref<Record<string, string[]>, Record<string, string[]>>;
220
299
  registerAggregateField: (parent: string, children: string[]) => void;
@@ -235,4 +314,26 @@ export declare const usePvDataTableFilterStore: () => {
235
314
  filterValueSearchTextMap: Ref<Record<string, string | null>, Record<string, string | null>>;
236
315
  filterValuesHasMoreMap: Ref<Record<string, boolean | undefined>, Record<string, boolean | undefined>>;
237
316
  filterValuesTotalCountMap: Ref<Record<string, number | undefined>, Record<string, number | undefined>>;
317
+ clearStagedFilterSelections: () => void;
318
+ commitStagedFilterSelections: () => void;
319
+ filterHasMoreMap: Ref<Record<string, boolean | undefined>>;
320
+ filterLoadingMap: Ref<Record<string, boolean | undefined>>;
321
+ filterLoadingMoreMap: Ref<Record<string, boolean | undefined>>;
322
+ filterModelType: Ref< PvFilterPanelFilterModelType | undefined>;
323
+ filterOptionsHandler: Ref< PvFilterPanelOptionsHandler | undefined>;
324
+ filterOptionsMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
325
+ filterRequestIdMap: Ref<Record<string, number | undefined>>;
326
+ filterSearchQueries: Ref<Record<string, string | null | undefined>>;
327
+ filterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
328
+ filterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
329
+ filterTotalCountMap: Ref<Record<string, number | undefined>>;
330
+ filterChildHasMoreMap: Ref<Record<string, boolean | undefined>>;
331
+ filterChildTotalCountMap: Ref<Record<string, number | undefined>>;
332
+ getFilterOptions: (field: string) => ( PvFilterPanelOption | null)[];
333
+ initStagedFilterSelections: () => void;
334
+ setFilterOptions: (field: string, options: ( PvFilterPanelOption | null)[]) => void;
335
+ setFilterOptionsHandler: (handler?: PvFilterPanelOptionsHandler) => void;
336
+ setFilterSearchQuery: (field: string, query: string | null | undefined) => void;
337
+ stagedFilterSelectedMetadataMap: Ref<Record<string, ( PvFilterPanelOption | null)[]>>;
338
+ stagedFilterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
238
339
  };
@@ -18,6 +18,8 @@ export declare const useSetFilter: <T>(options: UseSetFilterOptions<T>) => {
18
18
  isLoading: ComputedRef<boolean>;
19
19
  isSeeMoreLoading: Ref<boolean, boolean>;
20
20
  filterSearchText: WritableComputedRef<string, string>;
21
+ filterSearchMinLength: Ref<number | undefined, number | undefined>;
22
+ belowFilterSearchMinLength: ComputedRef<boolean>;
21
23
  rowsLoading: Ref<boolean, boolean>;
22
24
  gridApi: Ref<GridApi<T> | null, GridApi<T> | null>;
23
25
  filterField: ComputedRef<"" | ColDefField<T, any>>;