@turquoisehealth/pit-viper 2.216.0 → 2.216.1-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 (199) hide show
  1. package/package.json +5 -1
  2. package/pv-components/dist/stats/vue/ai/stats.html +4950 -0
  3. package/pv-components/dist/stats/vue/visualizations/stats.html +1 -1
  4. package/pv-components/dist/stats/web/pv-confirmation-stats.html +4950 -0
  5. package/pv-components/dist/stats/web/pv-prompt-input-stats.html +4950 -0
  6. package/pv-components/dist/stats/web/pv-question-stats.html +4950 -0
  7. package/pv-components/dist/stats/web/pv-reasoning-stats.html +4950 -0
  8. package/pv-components/dist/stats/web/pv-tool-stats.html +4950 -0
  9. package/pv-components/dist/vue/ai/components/ai/PvConfirmation/PvConfirmation.vue.d.ts +30 -0
  10. package/pv-components/dist/vue/ai/components/ai/PvConfirmation/types.d.ts +21 -0
  11. package/pv-components/dist/vue/ai/components/ai/PvPromptInput/PvPromptInput.vue.d.ts +46 -0
  12. package/pv-components/dist/vue/ai/components/ai/PvPromptInput/types.d.ts +20 -0
  13. package/pv-components/dist/vue/ai/components/ai/PvQuestion/PvQuestion.vue.d.ts +35 -0
  14. package/pv-components/dist/vue/ai/components/ai/PvQuestion/types.d.ts +24 -0
  15. package/pv-components/dist/vue/ai/components/ai/PvReasoning/PvReasoning.vue.d.ts +33 -0
  16. package/pv-components/dist/vue/ai/components/ai/PvReasoning/types.d.ts +14 -0
  17. package/pv-components/dist/vue/ai/components/ai/PvTool/PvTool.vue.d.ts +35 -0
  18. package/pv-components/dist/vue/ai/components/ai/PvTool/types.d.ts +15 -0
  19. package/pv-components/dist/vue/ai/components/ai/index.d.ts +15 -0
  20. package/pv-components/dist/vue/ai/components/ai/toolLifecycle.d.ts +21 -0
  21. package/pv-components/dist/vue/ai/components/ai/useStickToBottom.d.ts +19 -0
  22. package/pv-components/dist/vue/ai/components/base/PvAccordion/PvAccordion.vue.d.ts +60 -0
  23. package/pv-components/dist/vue/ai/components/base/PvAccordion/types.d.ts +5 -0
  24. package/pv-components/dist/vue/ai/components/base/PvActionBar/PvActionBar.vue.d.ts +36 -0
  25. package/pv-components/dist/vue/ai/components/base/PvActionBar/types.d.ts +2 -0
  26. package/pv-components/dist/vue/ai/components/base/PvActionButton/PvActionButton.vue.d.ts +22 -0
  27. package/pv-components/dist/vue/ai/components/base/PvAiButton/PvAiButton.vue.d.ts +20 -0
  28. package/pv-components/dist/vue/ai/components/base/PvAiButton/types.d.ts +2 -0
  29. package/pv-components/dist/vue/ai/components/base/PvAvatar/PvAvatar.vue.d.ts +7 -0
  30. package/pv-components/dist/vue/ai/components/base/PvAvatar/types.d.ts +20 -0
  31. package/pv-components/dist/vue/ai/components/base/PvAvatarGroup/PvAvatarGroup.vue.d.ts +12 -0
  32. package/pv-components/dist/vue/ai/components/base/PvAvatarGroup/types.d.ts +16 -0
  33. package/pv-components/dist/vue/ai/components/base/PvBanner/PvBanner.vue.d.ts +35 -0
  34. package/pv-components/dist/vue/ai/components/base/PvBanner/types.d.ts +11 -0
  35. package/pv-components/dist/vue/ai/components/base/PvBreadcrumbs/PvBreadcrumbs.vue.d.ts +8 -0
  36. package/pv-components/dist/vue/ai/components/base/PvBreadcrumbs/types.d.ts +6 -0
  37. package/pv-components/dist/vue/ai/components/base/PvButton/PvButton.vue.d.ts +10 -0
  38. package/pv-components/dist/vue/ai/components/base/PvButton/PvButtonWithTooltip.vue.d.ts +8 -0
  39. package/pv-components/dist/vue/ai/components/base/PvButton/helpers.d.ts +3 -0
  40. package/pv-components/dist/vue/ai/components/base/PvButton/types.d.ts +38 -0
  41. package/pv-components/dist/vue/ai/components/base/PvCard/PvCard.vue.d.ts +30 -0
  42. package/pv-components/dist/vue/ai/components/base/PvCard/types.d.ts +2 -0
  43. package/pv-components/dist/vue/ai/components/base/PvCheckbox/PvCheckbox.vue.d.ts +19 -0
  44. package/pv-components/dist/vue/ai/components/base/PvCompanyLabel/PvCompanyLabel.vue.d.ts +14 -0
  45. package/pv-components/dist/vue/ai/components/base/PvCompanyLabel/types.d.ts +2 -0
  46. package/pv-components/dist/vue/ai/components/base/PvCompanyLogo/PvCompanyLogo.vue.d.ts +17 -0
  47. package/pv-components/dist/vue/ai/components/base/PvCompanyLogo/types.d.ts +2 -0
  48. package/pv-components/dist/vue/ai/components/base/PvCompanyTag/PvCompanyTag.vue.d.ts +31 -0
  49. package/pv-components/dist/vue/ai/components/base/PvComponentsConfig/primeVue.config.d.ts +14 -0
  50. package/pv-components/dist/vue/ai/components/base/PvComponentsConfig/usePvComponents.d.ts +2 -0
  51. package/pv-components/dist/vue/ai/components/base/PvCounterBadge/PvCounterBadge.vue.d.ts +21 -0
  52. package/pv-components/dist/vue/ai/components/base/PvCounterBadge/types.d.ts +3 -0
  53. package/pv-components/dist/vue/ai/components/base/PvDatePicker/PvDatePicker.vue.d.ts +103 -0
  54. package/pv-components/dist/vue/ai/components/base/PvDateTime/PvDateTime.vue.d.ts +18 -0
  55. package/pv-components/dist/vue/ai/components/base/PvDateTime/useDateTime.d.ts +9 -0
  56. package/pv-components/dist/vue/ai/components/base/PvDistributionBar/PvDistributionBar.vue.d.ts +7 -0
  57. package/pv-components/dist/vue/ai/components/base/PvDrawer/PvDrawer.vue.d.ts +54 -0
  58. package/pv-components/dist/vue/ai/components/base/PvDropdown/PvDropdown.vue.d.ts +125 -0
  59. package/pv-components/dist/vue/ai/components/base/PvEmptyErrorState/PvEmptyErrorState.vue.d.ts +22 -0
  60. package/pv-components/dist/vue/ai/components/base/PvEmptyErrorState/types.d.ts +11 -0
  61. package/pv-components/dist/vue/ai/components/base/PvExpandableContent/PvExpandableContent.vue.d.ts +34 -0
  62. package/pv-components/dist/vue/ai/components/base/PvExpandableContent/types.d.ts +3 -0
  63. package/pv-components/dist/vue/ai/components/base/PvFilterModal/PvFilterModal.vue.d.ts +80 -0
  64. package/pv-components/dist/vue/ai/components/base/PvFilterModal/PvFilterModalSelectItem.vue.d.ts +33 -0
  65. package/pv-components/dist/vue/ai/components/base/PvFilterModal/types.d.ts +11 -0
  66. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/PvFilterPanel.vue.d.ts +78 -0
  67. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/PvFilterPanelAccordion.vue.d.ts +18 -0
  68. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/PvFilterPanelAppliedFiltersSection.vue.d.ts +12 -0
  69. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/PvFilterPanelCategoryButtonRow.vue.d.ts +14 -0
  70. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/PvFilterPanelOptionRow.vue.d.ts +35 -0
  71. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/advancedFilterModel.d.ts +26 -0
  72. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/aggregateFilterModel.d.ts +56 -0
  73. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/filterOptionDisplay.d.ts +28 -0
  74. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/filterOptionValue.d.ts +15 -0
  75. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/types.d.ts +525 -0
  76. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/usePvFilterPanel.d.ts +30 -0
  77. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/usePvFilterStore.d.ts +5 -0
  78. package/pv-components/dist/vue/ai/components/base/PvGhostInput/PvGhostInput.vue.d.ts +45 -0
  79. package/pv-components/dist/vue/ai/components/base/PvGhostInput/types.d.ts +2 -0
  80. package/pv-components/dist/vue/ai/components/base/PvHeader/PvHeader.vue.d.ts +36 -0
  81. package/pv-components/dist/vue/ai/components/base/PvHorizontalScroller/PvHorizontalScroller.vue.d.ts +36 -0
  82. package/pv-components/dist/vue/ai/components/base/PvHorizontalScroller/types.d.ts +21 -0
  83. package/pv-components/dist/vue/ai/components/base/PvHoverActionMenu/PvHoverActionMenu.vue.d.ts +42 -0
  84. package/pv-components/dist/vue/ai/components/base/PvHoverActionMenu/types.d.ts +15 -0
  85. package/pv-components/dist/vue/ai/components/base/PvIcon/PvIcon.vue.d.ts +14 -0
  86. package/pv-components/dist/vue/ai/components/base/PvInput/PvInput.vue.d.ts +59 -0
  87. package/pv-components/dist/vue/ai/components/base/PvInput/types.d.ts +3 -0
  88. package/pv-components/dist/vue/ai/components/base/PvInsightCard/PvInsightCard.vue.d.ts +29 -0
  89. package/pv-components/dist/vue/ai/components/base/PvMenu/PvMenu.vue.d.ts +57 -0
  90. package/pv-components/dist/vue/ai/components/base/PvMenu/PvMenuControlPanel.vue.d.ts +26 -0
  91. package/pv-components/dist/vue/ai/components/base/PvMenu/PvMenuEmptyState.vue.d.ts +3 -0
  92. package/pv-components/dist/vue/ai/components/base/PvMenu/cascadeUtils.d.ts +42 -0
  93. package/pv-components/dist/vue/ai/components/base/PvMenu/items/PvMenuBaseItem.vue.d.ts +11 -0
  94. package/pv-components/dist/vue/ai/components/base/PvMenu/items/PvMenuItem.vue.d.ts +26 -0
  95. package/pv-components/dist/vue/ai/components/base/PvMenu/items/PvMenuItemAction.vue.d.ts +9 -0
  96. package/pv-components/dist/vue/ai/components/base/PvMenu/items/PvMenuItemVariant.vue.d.ts +22 -0
  97. package/pv-components/dist/vue/ai/components/base/PvMenu/symbols.d.ts +11 -0
  98. package/pv-components/dist/vue/ai/components/base/PvMenu/types.d.ts +31 -0
  99. package/pv-components/dist/vue/ai/components/base/PvMenu/useMenuPosition.d.ts +66 -0
  100. package/pv-components/dist/vue/ai/components/base/PvModal/PvModal.vue.d.ts +31 -0
  101. package/pv-components/dist/vue/ai/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +170 -0
  102. package/pv-components/dist/vue/ai/components/base/PvMultiSelectButton/mocks.d.ts +20 -0
  103. package/pv-components/dist/vue/ai/components/base/PvMultiSelectButton/types.d.ts +129 -0
  104. package/pv-components/dist/vue/ai/components/base/PvPagination/PvPagination.vue.d.ts +24 -0
  105. package/pv-components/dist/vue/ai/components/base/PvPagination/types.d.ts +3 -0
  106. package/pv-components/dist/vue/ai/components/base/PvPagination/usePagination.d.ts +12 -0
  107. package/pv-components/dist/vue/ai/components/base/PvPill/PvPill.vue.d.ts +29 -0
  108. package/pv-components/dist/vue/ai/components/base/PvPill/types.d.ts +4 -0
  109. package/pv-components/dist/vue/ai/components/base/PvPopover/PvPopover.vue.d.ts +37 -0
  110. package/pv-components/dist/vue/ai/components/base/PvPopoverMenu/PvPopoverMenu.vue.d.ts +28 -0
  111. package/pv-components/dist/vue/ai/components/base/PvPopoverV2/PvPopoverV2.vue.d.ts +39 -0
  112. package/pv-components/dist/vue/ai/components/base/PvPopoverV2/types.d.ts +36 -0
  113. package/pv-components/dist/vue/ai/components/base/PvProgressBar/PvProgressBar.vue.d.ts +15 -0
  114. package/pv-components/dist/vue/ai/components/base/PvQueryBuilderInput/PvQueryBuilderInput.vue.d.ts +73 -0
  115. package/pv-components/dist/vue/ai/components/base/PvQueryBuilderInput/QueryBuilderMenuOptionRenderer.vue.d.ts +6 -0
  116. package/pv-components/dist/vue/ai/components/base/PvQueryBuilderInput/QueryFormatter.vue.d.ts +20 -0
  117. package/pv-components/dist/vue/ai/components/base/PvQueryBuilderInput/useQueryBuilder.d.ts +44 -0
  118. package/pv-components/dist/vue/ai/components/base/PvRadioGroup/PvRadioGroup.vue.d.ts +30 -0
  119. package/pv-components/dist/vue/ai/components/base/PvRadioGroup/types.d.ts +5 -0
  120. package/pv-components/dist/vue/ai/components/base/PvRange/PvRange.vue.d.ts +36 -0
  121. package/pv-components/dist/vue/ai/components/base/PvRange/types.d.ts +44 -0
  122. package/pv-components/dist/vue/ai/components/base/PvRating/PvRating.vue.d.ts +15 -0
  123. package/pv-components/dist/vue/ai/components/base/PvRating/types.d.ts +4 -0
  124. package/pv-components/dist/vue/ai/components/base/PvReleaseBadge/PvReleaseBadge.vue.d.ts +10 -0
  125. package/pv-components/dist/vue/ai/components/base/PvReleaseBadge/types.d.ts +1 -0
  126. package/pv-components/dist/vue/ai/components/base/PvSearchInput/PvSearchInput.vue.d.ts +33 -0
  127. package/pv-components/dist/vue/ai/components/base/PvSegmentedControl/PvSegmentedControl.vue.d.ts +23 -0
  128. package/pv-components/dist/vue/ai/components/base/PvSegmentedControl/types.d.ts +18 -0
  129. package/pv-components/dist/vue/ai/components/base/PvSelectButton/PvSelectButton.vue.d.ts +85 -0
  130. package/pv-components/dist/vue/ai/components/base/PvSelectButton/PvSelectButtonTrigger/PvSelectButtonTrigger.vue.d.ts +14 -0
  131. package/pv-components/dist/vue/ai/components/base/PvSelectButton/PvSelectButtonTrigger/types.d.ts +27 -0
  132. package/pv-components/dist/vue/ai/components/base/PvSelectButton/mocks.d.ts +21 -0
  133. package/pv-components/dist/vue/ai/components/base/PvSelectButton/types.d.ts +3 -0
  134. package/pv-components/dist/vue/ai/components/base/PvSelectableCard/PvSelectableCard.vue.d.ts +30 -0
  135. package/pv-components/dist/vue/ai/components/base/PvSidebar/PvSidebar.vue.d.ts +38 -0
  136. package/pv-components/dist/vue/ai/components/base/PvSkeleton/PvSkeleton.vue.d.ts +17 -0
  137. package/pv-components/dist/vue/ai/components/base/PvSkeleton/types.d.ts +8 -0
  138. package/pv-components/dist/vue/ai/components/base/PvSpinner/PvSpinner.vue.d.ts +13 -0
  139. package/pv-components/dist/vue/ai/components/base/PvSpinner/types.d.ts +3 -0
  140. package/pv-components/dist/vue/ai/components/base/PvSplitButton/PvSplitButton.vue.d.ts +27 -0
  141. package/pv-components/dist/vue/ai/components/base/PvSplitButton/types.d.ts +12 -0
  142. package/pv-components/dist/vue/ai/components/base/PvSprite/PvSprite.vue.d.ts +9 -0
  143. package/pv-components/dist/vue/ai/components/base/PvStepper/PvStepper.vue.d.ts +16 -0
  144. package/pv-components/dist/vue/ai/components/base/PvSuggestionTag/PvSuggestionTag.vue.d.ts +37 -0
  145. package/pv-components/dist/vue/ai/components/base/PvSwitch/PvSwitch.vue.d.ts +34 -0
  146. package/pv-components/dist/vue/ai/components/base/PvSwitch/types.d.ts +2 -0
  147. package/pv-components/dist/vue/ai/components/base/PvTabList/PvTabList.vue.d.ts +12 -0
  148. package/pv-components/dist/vue/ai/components/base/PvTableOfContents/PvTableOfContents.vue.d.ts +19 -0
  149. package/pv-components/dist/vue/ai/components/base/PvTableOfContents/types.d.ts +6 -0
  150. package/pv-components/dist/vue/ai/components/base/PvTabs/PvTabs.vue.d.ts +20 -0
  151. package/pv-components/dist/vue/ai/components/base/PvTabs/types.d.ts +10 -0
  152. package/pv-components/dist/vue/ai/components/base/PvTag/PvTag.vue.d.ts +53 -0
  153. package/pv-components/dist/vue/ai/components/base/PvTag/types.d.ts +3 -0
  154. package/pv-components/dist/vue/ai/components/base/PvTextArea/PvTextArea.vue.d.ts +51 -0
  155. package/pv-components/dist/vue/ai/components/base/PvTextArea/types.d.ts +2 -0
  156. package/pv-components/dist/vue/ai/components/base/PvToast/PvToast.vue.d.ts +33 -0
  157. package/pv-components/dist/vue/ai/components/base/PvToast/types.d.ts +1 -0
  158. package/pv-components/dist/vue/ai/components/base/PvToggleButton/PvToggleButton.vue.d.ts +48 -0
  159. package/pv-components/dist/vue/ai/components/base/PvToggleButton/types.d.ts +3 -0
  160. package/pv-components/dist/vue/ai/components/base/PvToggleGroup/PvToggleGroup.vue.d.ts +12 -0
  161. package/pv-components/dist/vue/ai/components/base/PvToggleGroup/types.d.ts +12 -0
  162. package/pv-components/dist/vue/ai/components/base/PvTooltip/PvTooltip.vue.d.ts +41 -0
  163. package/pv-components/dist/vue/ai/components/base/PvTooltip/types.d.ts +4 -0
  164. package/pv-components/dist/vue/ai/components/base/PvTooltipV2/PvTooltipV2.vue.d.ts +28 -0
  165. package/pv-components/dist/vue/ai/components/base/PvTooltipV2/types.d.ts +14 -0
  166. package/pv-components/dist/vue/ai/components/base/PvTree/PvButtonTreeItem.vue.d.ts +36 -0
  167. package/pv-components/dist/vue/ai/components/base/PvTree/PvCheckboxTreeItem.vue.d.ts +36 -0
  168. package/pv-components/dist/vue/ai/components/base/PvTree/PvSimpleItemTree.vue.d.ts +7 -0
  169. package/pv-components/dist/vue/ai/components/base/PvTree/PvSimpleNestedTree.vue.d.ts +31 -0
  170. package/pv-components/dist/vue/ai/components/base/PvTree/PvSimpleNestedTreeItem.vue.d.ts +35 -0
  171. package/pv-components/dist/vue/ai/components/base/PvTree/PvTree.vue.d.ts +31 -0
  172. package/pv-components/dist/vue/ai/components/base/PvTree/PvTreeGroup.vue.d.ts +18 -0
  173. package/pv-components/dist/vue/ai/components/base/PvTree/PvTreeItem.vue.d.ts +37 -0
  174. package/pv-components/dist/vue/ai/components/base/PvTree/PvTreeReorderIcon.vue.d.ts +3 -0
  175. package/pv-components/dist/vue/ai/components/base/PvTree/composables/useDragAndDrop.d.ts +23 -0
  176. package/pv-components/dist/vue/ai/components/base/PvTree/composables/useDragAndDropIndicator.d.ts +8 -0
  177. package/pv-components/dist/vue/ai/components/base/PvTree/composables/useDraggingState.d.ts +40 -0
  178. package/pv-components/dist/vue/ai/components/base/PvTree/composables/useHoverIcon.d.ts +6 -0
  179. package/pv-components/dist/vue/ai/components/base/PvTree/composables/useTreeUpdate.d.ts +8 -0
  180. package/pv-components/dist/vue/ai/components/base/PvTree/symbols.d.ts +12 -0
  181. package/pv-components/dist/vue/ai/components/base/PvTree/types.d.ts +61 -0
  182. package/pv-components/dist/vue/ai/components/base/PvWidget/PvWidget.vue.d.ts +18 -0
  183. package/pv-components/dist/vue/ai/components/base/baseProps.d.ts +18 -0
  184. package/pv-components/dist/vue/ai/components/base/index.d.ts +92 -0
  185. package/pv-components/dist/vue/ai/components/layout/PvSidePanel/PvSidePanel.vue.d.ts +24 -0
  186. package/pv-components/dist/vue/ai/pv-components-ai.mjs +951 -0
  187. package/pv-components/dist/vue/ai/pv-components-ai.mjs.map +1 -0
  188. package/pv-components/dist/vue/visualizations/components/charts/PvDataTableWithChart/PvDataTableWithChart.vue.d.ts +2 -1
  189. package/pv-components/dist/vue/visualizations/components/charts/PvDataTableWithChart/types.d.ts +1 -3
  190. package/pv-components/dist/vue/visualizations/components/visualizations/index.d.ts +1 -1
  191. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs +13 -11
  192. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs.map +1 -1
  193. package/pv-components/dist/web/components/pv-confirmation/pv-confirmation.js +6441 -0
  194. package/pv-components/dist/web/components/pv-prompt-input/pv-prompt-input.js +6541 -0
  195. package/pv-components/dist/web/components/pv-question/pv-question.js +6704 -0
  196. package/pv-components/dist/web/components/pv-reasoning/pv-reasoning.js +6418 -0
  197. package/pv-components/dist/web/components/pv-tool/pv-tool.js +6450 -0
  198. package/pv-components/dist/web/pv-components.iife.js +37 -37
  199. package/pv-components/dist/web/pv-components.iife.js.map +1 -1
@@ -0,0 +1,525 @@
1
+ import { Component, Ref } from 'vue';
2
+ import { AdvancedFilterModel, FilterModel } from 'ag-grid-enterprise';
3
+ import { MenuOption, MultiSelectState } from '../../../types';
4
+ import { ColDef, ValueFormatterFunc } from 'ag-grid-community';
5
+ import { PvRangeValue } from '../PvRange/types';
6
+ export type PvFilterPanelCategory = string;
7
+ export type PvFilterPanelFilterType = "value" | "range" | "boolean" | "exists";
8
+ export type PvFilterPanelFilterModelType = "advanced" | "regular";
9
+ export type PvFilterPanelFilterModel = AdvancedFilterModel | FilterModel | null;
10
+ export type PvFilterPanelResultCount = number | string;
11
+ export type PvFilterPanelOptionRawValue = boolean | number | string | null;
12
+ export interface PvFilterPanelOption {
13
+ children?: PvFilterPanelOption[];
14
+ colField?: string;
15
+ /** Explicit field this option filters. Prefer this over colField or scoped value parsing for new consumers. */
16
+ field?: string;
17
+ isPreference?: boolean;
18
+ isSelectable?: boolean;
19
+ label?: string;
20
+ matchedField?: string;
21
+ matchedValue?: string;
22
+ menuOption?: Partial<MenuOption<PvFilterPanelOption>>;
23
+ /** Metadata that can be associated with the value and passed through renderers/handlers. */
24
+ metadata?: any;
25
+ /** Explicit raw filter value. Prefer this over metadata.rawValue or scoped value parsing for new consumers. */
26
+ rawValue?: PvFilterPanelOptionRawValue;
27
+ resultCount?: PvFilterPanelResultCount | null;
28
+ /** Optional section label used to group options under a heading in section-aware UIs (e.g. PvFilterModal). */
29
+ section?: string;
30
+ subduedText?: string;
31
+ subText?: string;
32
+ totalChildCount?: number;
33
+ value: string;
34
+ }
35
+ export interface PvFilterPanelFilterGroup {
36
+ fields: string[];
37
+ label: string;
38
+ }
39
+ /**
40
+ * Describes a section heading in section-aware UIs (e.g. PvFilterModal). Options are grouped by their
41
+ * `section` value; the matching def is forwarded to the section header renderer so it can decide how
42
+ * to display the heading. Configured per column via `colDef.context.filterSectionDefs`.
43
+ *
44
+ * Only `key`/`label` are typed; put anything else the renderer needs (icon, tooltip, counter, badge…)
45
+ * on `metadata` so new display needs don't require changing this type.
46
+ */
47
+ export interface PvFilterPanelSectionDef {
48
+ /** Section key matching an option's `section` value. */
49
+ key: string;
50
+ /** Display label for the section heading. Defaults to `key`. */
51
+ label?: string;
52
+ /** Arbitrary display data forwarded to the section header renderer (e.g. icon, tooltip, count). */
53
+ metadata?: Record<string, unknown>;
54
+ }
55
+ export interface PvFilterPanelAggregateFieldHierarchy {
56
+ /** Field represented by this hierarchy node. Parent/child relationships are determined by nesting. */
57
+ field: string;
58
+ /** Child fields nested under this field. */
59
+ children?: PvFilterPanelAggregateFieldHierarchy[];
60
+ }
61
+ export interface PvFilterPanelRangeConfig {
62
+ /** Minimum bound for range controls in reusable filter panel UIs. */
63
+ min?: number | null;
64
+ /** Maximum bound for range controls in reusable filter panel UIs. */
65
+ max?: number | null;
66
+ /** Step increment for range controls in reusable filter panel UIs. */
67
+ step?: number | null;
68
+ }
69
+ export interface PvFilterPanelColDefContext {
70
+ /**
71
+ * Hierarchy of fields represented by this aggregate filter column.
72
+ *
73
+ * Example: `{ field: "health_system", children: [{ field: "provider_id" }] }`
74
+ * renders health systems as parent options and providers as nested child options.
75
+ * Fields must be present as their own columns in the table. Filters for the
76
+ * hierarchy fields are hidden from the filter panel in favor of this aggregate filter.
77
+ *
78
+ * Requires `enableAdvancedFilter: true` on the table — columns with an aggregate hierarchy
79
+ * are excluded (and may log a console warning) when advanced filtering is disabled.
80
+ */
81
+ aggregateFieldHierarchy?: PvFilterPanelAggregateFieldHierarchy;
82
+ /**
83
+ * Aggregate filter column for columns that have "peer" relationships, as opposed to hierarchical
84
+ * Requires `enableAdvancedFilter: true` on the table — columns with aggregate fields
85
+ * are excluded (and may log a console warning) when advanced filtering is disabled.
86
+ */
87
+ aggregateFields?: string[];
88
+ /**
89
+ * The data type of the column values, used for things like formatting, icons, etc.
90
+ */
91
+ dataType?: string | null;
92
+ /**
93
+ * If true, this column is considered a "dev" column and will only be shown when devMode is enabled
94
+ */
95
+ devOnly?: boolean;
96
+ /**
97
+ * An optional renderer to use for dropdown values when no results are found
98
+ */
99
+ emptyFilterResultsRenderer?: Component;
100
+ /**
101
+ * Optional renderer to provide content below the filter options list
102
+ */
103
+ filterFooterRenderer?: Component;
104
+ /**
105
+ * A group of boolean sub-fields to render as a hover submenu above the filter options.
106
+ * Each field in `fields` must be present as a column in the table.
107
+ * Selecting an item toggles a `<field> = "true"` condition in the advanced filter model.
108
+ */
109
+ filterGroup?: PvFilterPanelFilterGroup;
110
+ /**
111
+ * Optional renderer to provide content above the filter options list
112
+ */
113
+ filterHeaderRenderer?: Component;
114
+ /**
115
+ * Optional renderer to override the default filter options list
116
+ */
117
+ filterOptionsRenderer?: Component;
118
+ /**
119
+ * Section heading defs for section-aware UIs (e.g. PvFilterModal), keyed by section value. Supplies
120
+ * the label and any extra display data (via `metadata`) forwarded to `filterSectionHeaderRenderer`.
121
+ * Also determines section order; sections present in the options but absent here render last.
122
+ */
123
+ filterSectionDefs?: PvFilterPanelSectionDef[];
124
+ /**
125
+ * Optional renderer for section headings in section-aware UIs (e.g. PvFilterModal). Receives
126
+ * `{ colDef, field, section, options }` and replaces the default section label text, allowing
127
+ * hover tooltips, counters, or custom markup. Sections come from each option's `section` field.
128
+ */
129
+ filterSectionHeaderRenderer?: Component;
130
+ /**
131
+ * An optional description to show in the tooltip explaining how the dropdown values are sorted
132
+ */
133
+ filterOptionsSortDescription?: string;
134
+ /**
135
+ * The primary text for the optional tooltip
136
+ */
137
+ filterOptionsSortTooltip?: string;
138
+ /**
139
+ * Category label used by reusable filter panel UIs to group this column.
140
+ */
141
+ filterPanelCategory?: PvFilterPanelCategory | null;
142
+ /**
143
+ * If true, the filter selection is supplied by the consumer and never written to the filter model.
144
+ */
145
+ filterPanelControlled?: boolean;
146
+ /**
147
+ * If true, this filter is hidden behind the panel's collapsed filters toggle by default.
148
+ */
149
+ filterCollapsedByDefault?: boolean;
150
+ /**
151
+ * Custom label for exists filters. Defaults to `Has ${headerName}`.
152
+ */
153
+ filterPanelExistsLabel?: string;
154
+ /**
155
+ * If true, hide this column from reusable filter panel UIs.
156
+ */
157
+ filterPanelHidden?: boolean;
158
+ /**
159
+ * If true, hide the value filter options sort label (defaults to "Suggested").
160
+ */
161
+ filterPanelHideOptionsSortDescription?: boolean;
162
+ /**
163
+ * If true, hide the value filter search input.
164
+ */
165
+ filterPanelHideSearch?: boolean;
166
+ /**
167
+ * Range control configuration used by reusable filter panel UIs. Presence infers a range filter type.
168
+ */
169
+ filterPanelRange?: PvFilterPanelRangeConfig;
170
+ /**
171
+ * Placeholder shown in value filter search inputs.
172
+ */
173
+ filterPanelSearchPlaceholder?: string;
174
+ /**
175
+ * If true, value options render as radios and selecting one replaces the previous selection.
176
+ */
177
+ filterPanelSingleSelect?: boolean;
178
+ /**
179
+ * Filter control type used by reusable filter panel UIs.
180
+ */
181
+ filterPanelType?: PvFilterPanelFilterType;
182
+ /**
183
+ * Labels for boolean values, keyed by `true` and `false`.
184
+ */
185
+ filterPanelValueLabels?: Record<string, string> | null;
186
+ /**
187
+ * Shows a search box over the filter options. Unset uses the derived default,
188
+ * which omits it for columns that cannot benefit (currently `dataType: "boolean"`).
189
+ */
190
+ filterSearch?: boolean;
191
+ /**
192
+ * Per-field minimum search length. Overrides PvDataTable's table-level
193
+ * filterSearchMinLength so hosts can keep short values such as codes searchable.
194
+ */
195
+ filterSearchMinLength?: number;
196
+ /**
197
+ * If true, filter values for this column will be fetched eagerly in the background,
198
+ * even when table-level background refresh is disabled.
199
+ */
200
+ prefetchFilterValues?: boolean;
201
+ /**
202
+ * If true, grouped data will not be displayed until a filter is applied
203
+ */
204
+ filterRequiredToGroup?: boolean;
205
+ /**
206
+ * The max number of allowable selections for filters on this column
207
+ */
208
+ filterSelectMax?: number;
209
+ /**
210
+ * The min number of allowable selections for filters on this column
211
+ */
212
+ filterSelectMin?: number;
213
+ /**
214
+ * Formatter for the filter values in the dropdown
215
+ */
216
+ filterValueFormatter?: string | ValueFormatterFunc | null;
217
+ /**
218
+ * Determines how values are formatted when the field contains array data
219
+ */
220
+ isArrayField?: boolean;
221
+ /**
222
+ * A list of associated fields that can be expected and used for custom formatting
223
+ */
224
+ metadataDisplayFields?: string[];
225
+ /**
226
+ * For server-side filtering, list of associated column IDs to query against when searching for filter values.
227
+ * When provided, these fields are included in the auto-generated search placeholder
228
+ * (e.g., `["npi", "taxId"]` → `Search Provider Name, NPI, Tax ID`).
229
+ */
230
+ queryColIds?: string[];
231
+ /**
232
+ * When false, search-match subtext shows only the matched value instead of "Column: value".
233
+ */
234
+ showSearchMatchSubTextPrefix?: boolean;
235
+ /**
236
+ * Number of decimal places to show for numeric values (if applicable)
237
+ */
238
+ valueDecimals?: number | null;
239
+ }
240
+ export type PvFilterPanelColDef = Omit<ColDef, "context"> & {
241
+ context?: PvFilterPanelColDefContext;
242
+ };
243
+ export interface PvFilterPanelAppliedValue {
244
+ field?: string;
245
+ label: string;
246
+ resultCount?: PvFilterPanelResultCount | null;
247
+ subText?: string;
248
+ subduedText?: string;
249
+ type?: PvFilterPanelFilterType;
250
+ value: string;
251
+ }
252
+ export interface PvFilterPanelAppliedGroup {
253
+ key: string;
254
+ label: string;
255
+ values: PvFilterPanelAppliedValue[];
256
+ }
257
+ export type PvFilterPanelControlChange = {
258
+ checked: boolean;
259
+ field?: string;
260
+ type: "value";
261
+ value: string;
262
+ } | {
263
+ field?: string;
264
+ type: "range";
265
+ value: PvRangeValue;
266
+ } | {
267
+ field?: string;
268
+ type: "boolean";
269
+ value: boolean | null;
270
+ } | {
271
+ field?: string;
272
+ type: "exists";
273
+ value: boolean;
274
+ } | {
275
+ type: "aggregate-selection";
276
+ value: MultiSelectState;
277
+ };
278
+ export interface PvFilterPanelSuggestion {
279
+ field: string;
280
+ filter: PvFilterPanelControlChange;
281
+ icon?: string;
282
+ iconClasses?: string[];
283
+ key?: string;
284
+ label: string;
285
+ option?: PvFilterPanelOption;
286
+ }
287
+ export type PvFilterPanelFilterChangeReason = "boolean-change" | "clear-all" | "exists-change" | "range-change" | "remove-filter" | "value-toggle";
288
+ export interface PvFilterPanelFilterChangeEvent {
289
+ colDef?: PvFilterPanelColDef;
290
+ field?: string;
291
+ filterModel: PvFilterPanelFilterModel;
292
+ previousFilterModel: PvFilterPanelFilterModel;
293
+ reason: PvFilterPanelFilterChangeReason;
294
+ type?: PvFilterPanelFilterType;
295
+ }
296
+ export interface PvFilterPanelGroupOption {
297
+ field: string;
298
+ isActive: boolean;
299
+ label: string;
300
+ }
301
+ export type PvFilterPanelOptionsHandlerReason = "open" | "search" | "load-more" | "child-load-more";
302
+ export interface PvFilterPanelOptionsHandlerParams {
303
+ field: string;
304
+ colDef: PvFilterPanelColDef;
305
+ filterModel?: PvFilterPanelFilterModel;
306
+ limit?: number;
307
+ offset?: number;
308
+ parentId?: string;
309
+ query?: string;
310
+ reason: PvFilterPanelOptionsHandlerReason;
311
+ selectedValues?: (string | null)[];
312
+ }
313
+ export interface PvFilterPanelOptionsResponse {
314
+ hasMore?: boolean;
315
+ totalCount?: number;
316
+ values: (PvFilterPanelOption | null)[];
317
+ }
318
+ export type PvFilterPanelOptionsHandler = (params: PvFilterPanelOptionsHandlerParams) => Promise<PvFilterPanelOptionsResponse | (PvFilterPanelOption | null)[]>;
319
+ export interface PvFilterStoreFetchOptionsParams extends Omit<PvFilterPanelOptionsHandlerParams, "offset"> {
320
+ offset?: number;
321
+ }
322
+ export interface PvFilterStore {
323
+ clearStagedFilterSelections: () => void;
324
+ commitStagedFilterSelections: () => void;
325
+ fetchFilterOptions: (params: PvFilterStoreFetchOptionsParams) => Promise<(string | null)[]>;
326
+ filterHasMoreMap: Ref<Record<string, boolean | undefined>>;
327
+ filterLoadingMap: Ref<Record<string, boolean | undefined>>;
328
+ filterLoadingMoreMap: Ref<Record<string, boolean | undefined>>;
329
+ filterModel: Ref<PvFilterPanelFilterModel>;
330
+ filterModelType: Ref<PvFilterPanelFilterModelType | undefined>;
331
+ filterOptionsHandler: Ref<PvFilterPanelOptionsHandler | undefined>;
332
+ filterOptionsMap: Ref<Record<string, (PvFilterPanelOption | null)[]>>;
333
+ filterRequestIdMap: Ref<Record<string, number | undefined>>;
334
+ filterSearchQueries: Ref<Record<string, string | null | undefined>>;
335
+ filterStaleMap: Ref<Record<string, boolean | undefined>>;
336
+ filterSelectedMetadataMap: Ref<Record<string, (PvFilterPanelOption | null)[]>>;
337
+ filterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
338
+ filterTotalCountMap: Ref<Record<string, number | undefined>>;
339
+ filterChildHasMoreMap: Ref<Record<string, boolean | undefined>>;
340
+ filterChildTotalCountMap: Ref<Record<string, number | undefined>>;
341
+ getFilterOptions: (field: string) => (PvFilterPanelOption | null)[];
342
+ getFilterSelectedValues: (field: string, staged?: boolean) => (string | null)[];
343
+ initStagedFilterSelections: () => void;
344
+ setFilterOptions: (field: string, options: (PvFilterPanelOption | null)[]) => void;
345
+ setFilterOptionsHandler: (handler?: PvFilterPanelOptionsHandler) => void;
346
+ setFilterSearchQuery: (field: string, query: string | null | undefined) => void;
347
+ setFilterSelectedValues: (field: string, values: (string | null)[], staged?: boolean) => void;
348
+ stagedFilterModel: Ref<PvFilterPanelFilterModel>;
349
+ stagedFilterSelectedMetadataMap: Ref<Record<string, (PvFilterPanelOption | null)[]>>;
350
+ stagedFilterSelectedValueMap: Ref<Record<string, (string | null)[]>>;
351
+ }
352
+ export interface PvFilterPanelResolvedFilter {
353
+ aggregateSelectionState?: MultiSelectState;
354
+ booleanValue?: boolean | null;
355
+ category?: PvFilterPanelCategory | null;
356
+ colDef: PvFilterPanelColDef;
357
+ /** Whether the consumer owns this filter's selection outside the filter model. */
358
+ controlled?: boolean;
359
+ dataType?: string | null;
360
+ disabled?: boolean;
361
+ displayPreferencesIcon?: boolean;
362
+ emptyResultsRenderer?: Component;
363
+ existsLabel?: string;
364
+ existsValue?: boolean;
365
+ filterFooterRenderer?: Component;
366
+ filterGroupLabel?: string;
367
+ filterGroupOptions?: PvFilterPanelGroupOption[];
368
+ filterHeaderRenderer?: Component;
369
+ filterOptionsRenderer?: Component;
370
+ filterSectionDefs?: PvFilterPanelSectionDef[];
371
+ filterSectionHeaderRenderer?: Component;
372
+ filterOptionsSortDescription?: string;
373
+ filterOptionsSortTooltip?: string;
374
+ hideOptionsSortDescription?: boolean;
375
+ hideSearch?: boolean;
376
+ focusText?: string;
377
+ focusedValues?: string[];
378
+ focusedValuesByField?: Record<string, string[] | undefined>;
379
+ hasMore?: boolean;
380
+ isAggregate?: boolean;
381
+ isFocusable?: boolean;
382
+ isLoading?: boolean;
383
+ isLoadingMore?: boolean;
384
+ isOpen?: boolean;
385
+ key: string;
386
+ knownOptions?: PvFilterPanelOption[];
387
+ label: string;
388
+ options?: PvFilterPanelOption[];
389
+ rangeMax?: number | null;
390
+ rangeMin?: number | null;
391
+ rangeStep?: number | null;
392
+ rangeValue?: PvRangeValue;
393
+ searchPlaceholder?: string;
394
+ searchQuery?: string;
395
+ selectedValues?: string[];
396
+ /** Whether value options use single-select radio behavior. */
397
+ singleSelect?: boolean;
398
+ type: PvFilterPanelFilterType;
399
+ valueDecimals?: number | null;
400
+ valueLabels?: Record<string, string> | null;
401
+ }
402
+ export interface PvFilterPanelAccordionProps {
403
+ filter: PvFilterPanelResolvedFilter;
404
+ }
405
+ export interface PvFilterPanelAppliedFiltersSectionProps {
406
+ appliedCount?: number;
407
+ appliedGroups?: PvFilterPanelAppliedGroup[];
408
+ readOnly?: boolean;
409
+ }
410
+ export interface PvFilterPanelCategoryButtonRowProps {
411
+ categoryOrder?: PvFilterPanelCategory[];
412
+ filters?: PvFilterPanelResolvedFilter[];
413
+ }
414
+ export interface PvFilterPanelOptionRowProps {
415
+ ariaLabel?: string;
416
+ /** Input control rendered for the option. */
417
+ control?: "checkbox" | "radio";
418
+ depth?: number;
419
+ disabled?: boolean;
420
+ indeterminate?: boolean;
421
+ focusText?: string;
422
+ isFocused?: boolean;
423
+ label: string;
424
+ /** Name shared by inputs in the same radio group. */
425
+ name?: string;
426
+ queryText?: string | null;
427
+ renderer?: Component;
428
+ resultCount?: PvFilterPanelResultCount | null;
429
+ selected?: boolean;
430
+ showFocusAction?: boolean;
431
+ subText?: string;
432
+ subduedText?: string;
433
+ value: string;
434
+ }
435
+ export type PvFilterPanelEmits = {
436
+ apply: [filterModel: PvFilterPanelFilterModel];
437
+ cancel: [];
438
+ /** Emitted when a consumer-controlled value filter selection changes. */
439
+ "controlled-change": [filterKey: string, values: string[], colDef: PvFilterPanelColDef];
440
+ "filter-change": [event: PvFilterPanelFilterChangeEvent];
441
+ "focus-change": [field: string, value: string, option: PvFilterPanelOption];
442
+ "handle-settings-icon": [field: string, colDef: PvFilterPanelColDef];
443
+ "load-more": [field: string, colDef: PvFilterPanelColDef, query: string, parentId?: string];
444
+ "open-change": [field: string, open: boolean, colDef: PvFilterPanelColDef];
445
+ "search-change": [field: string, query: string, colDef: PvFilterPanelColDef];
446
+ "suggestion-click": [suggestion: PvFilterPanelSuggestion];
447
+ };
448
+ export type PvFilterPanelEmitFn = <K extends keyof PvFilterPanelEmits>(event: K, ...args: PvFilterPanelEmits[K]) => void;
449
+ export interface PvFilterPanelProps {
450
+ applyLabel?: string;
451
+ ariaLabel?: string;
452
+ /** Auto-hide backing fields represented by aggregate filters and child fields represented by filter groups. */
453
+ autoHideRelatedFilterFields?: boolean;
454
+ cancelLabel?: string;
455
+ categoryOrder?: PvFilterPanelCategory[];
456
+ /** Base label used by the collapsed filters toggle; rendered as `Show/Hide ${label}`. */
457
+ collapsedFilterDisplayLabel?: string;
458
+ clearAllBody?: string;
459
+ clearAllHeader?: string;
460
+ clearAllLabel?: string;
461
+ colDefs?: PvFilterPanelColDef[];
462
+ /** Selected values for consumer-controlled filters, keyed by column key. */
463
+ controlledValues?: Record<string, string[]>;
464
+ /** Whether dev-only filters should be shown. */
465
+ devMode?: boolean;
466
+ displayPreferencesIcon?: boolean;
467
+ enableFocusView?: boolean;
468
+ /** @deprecated Prefer filterStore/filterOptionsHandler. Whether more value-filter options can be loaded, keyed by column key (`colId` when present, otherwise `field`). */
469
+ filterHasMoreMap?: Record<string, boolean | undefined>;
470
+ /** @deprecated Prefer filterStore/filterOptionsHandler. Initial/options loading state keyed by column key (`colId` when present, otherwise `field`). */
471
+ filterLoadingMap?: Record<string, boolean | undefined>;
472
+ /** @deprecated Prefer filterStore/filterOptionsHandler. See-more loading state keyed by column key (`colId` when present, otherwise `field`). */
473
+ filterLoadingMoreMap?: Record<string, boolean | undefined>;
474
+ /** Current AG Grid advanced/regular filter model (used with v-model:filter-model). */
475
+ filterModel?: PvFilterPanelFilterModel;
476
+ /** Declares whether filterModel is a regular AG Grid FilterModel or AdvancedFilterModel. */
477
+ filterModelType?: PvFilterPanelFilterModelType;
478
+ /** @deprecated Prefer filterStore/filterOptionsHandler. Value-filter options keyed by column key (`colId` when present, otherwise `field`). */
479
+ filterOptions?: Record<string, PvFilterPanelOption[]>;
480
+ /** Fetches value-filter options. When provided without filterStore, PvFilterPanel creates an internal PvFilterStore. */
481
+ filterOptionsHandler?: PvFilterPanelOptionsHandler;
482
+ /** @deprecated Prefer filterStore/filterOptionsHandler. Value-filter search queries keyed by column key (`colId` when present, otherwise `field`). */
483
+ filterSearchQueries?: Record<string, string | undefined>;
484
+ /** Suggested filter shortcuts shown above the category carousel. Active suggestions are hidden automatically. */
485
+ filterSuggestions?: PvFilterPanelSuggestion[];
486
+ /** External generic filter store. When provided, store state wins over controlled option/loading props. */
487
+ filterStore?: PvFilterStore;
488
+ /** Fields that can receive focus actions. Defaults to all fields when enableFocusView is true. */
489
+ focusableFields?: string[];
490
+ /** Values currently focused, keyed by field. */
491
+ focusedValues?: Record<string, string[] | undefined>;
492
+ focusText?: string;
493
+ /** When true, hides the collapse button from the filter panel header. */
494
+ hideCollapseButton?: boolean;
495
+ /** Debounce range filter model updates by this many milliseconds. Set 0 to emit every range update. */
496
+ rangeDebounceMs?: number;
497
+ readOnly?: boolean;
498
+ /** Stage edits locally until Apply is clicked. */
499
+ staged?: boolean;
500
+ width?: string;
501
+ }
502
+ /**
503
+ * Props consumed by the `usePvFilterPanel` composable. Mirrors `PvFilterPanelProps` but marks the
504
+ * fields that consuming components default via `withDefaults` as required, so the composable can rely
505
+ * on them being present. Both `PvFilterPanel` and `PvFilterModal` satisfy this after applying defaults.
506
+ */
507
+ export type PvFilterPanelCoreProps = Omit<PvFilterPanelProps, "colDefs" | "controlledValues" | "devMode" | "displayPreferencesIcon" | "enableFocusView" | "filterHasMoreMap" | "filterLoadingMap" | "filterLoadingMoreMap" | "filterOptions" | "filterSearchQueries" | "filterSuggestions" | "focusableFields" | "focusedValues" | "focusText" | "rangeDebounceMs" | "readOnly" | "staged"> & {
508
+ colDefs: PvFilterPanelColDef[];
509
+ controlledValues: Record<string, string[]>;
510
+ devMode: boolean;
511
+ displayPreferencesIcon: boolean;
512
+ enableFocusView: boolean;
513
+ filterHasMoreMap: Record<string, boolean | undefined>;
514
+ filterLoadingMap: Record<string, boolean | undefined>;
515
+ filterLoadingMoreMap: Record<string, boolean | undefined>;
516
+ filterOptions: Record<string, PvFilterPanelOption[]>;
517
+ filterSearchQueries: Record<string, string | undefined>;
518
+ filterSuggestions: PvFilterPanelSuggestion[];
519
+ focusableFields: string[];
520
+ focusedValues: Record<string, string[] | undefined>;
521
+ focusText: string;
522
+ rangeDebounceMs: number;
523
+ readOnly: boolean;
524
+ staged: boolean;
525
+ };
@@ -0,0 +1,30 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ import { PvFilterPanelAppliedGroup, PvFilterPanelColDef, PvFilterPanelControlChange, PvFilterPanelCoreProps, PvFilterPanelEmitFn, PvFilterPanelFilterModel, PvFilterPanelFilterType, PvFilterPanelResolvedFilter, PvFilterPanelSuggestion, PvFilterStore, PvFilterPanelFilterModelType } from './types';
3
+ /**
4
+ * View-agnostic "brain" for filter panel presentations. Owns option/store wiring, the resolved filter
5
+ * model, applied-filter derivation, and all mutation handlers. Presentation components (`PvFilterPanel`
6
+ * drawer, `PvFilterModal`) consume this and supply their own layout + local view state.
7
+ */
8
+ export declare function usePvFilterPanel(props: PvFilterPanelCoreProps, filterModel: Ref<PvFilterPanelFilterModel>, emit: PvFilterPanelEmitFn): {
9
+ resolvedFilters: ComputedRef<PvFilterPanelResolvedFilter[]>;
10
+ appliedGroups: ComputedRef<PvFilterPanelAppliedGroup[]>;
11
+ appliedCount: ComputedRef<number>;
12
+ hasActiveFilters: ComputedRef<boolean>;
13
+ showClearAll: ComputedRef<boolean>;
14
+ visibleSuggestions: ComputedRef<PvFilterPanelSuggestion[]>;
15
+ effectiveFilterModelType: ComputedRef<PvFilterPanelFilterModelType>;
16
+ activeFilterModel: ComputedRef<PvFilterPanelFilterModel>;
17
+ effectiveFilterStore: ComputedRef<PvFilterStore>;
18
+ findResolvedFilter: (field: string) => PvFilterPanelResolvedFilter | undefined;
19
+ getRepresentedFields: (colDef: PvFilterPanelColDef) => string[];
20
+ activateFilter: (filter: PvFilterPanelResolvedFilter, query?: string) => void;
21
+ applyStagedFilters: () => void;
22
+ cancelStagedFilters: () => void;
23
+ clearAllFilters: () => void;
24
+ getSuggestionKey: (suggestion: PvFilterPanelSuggestion) => string;
25
+ handleControlChange: (field: string, change: PvFilterPanelControlChange) => void;
26
+ handleLoadMore: (filter: PvFilterPanelResolvedFilter, query: string, parentId?: string) => void;
27
+ handleSearchChange: (filter: PvFilterPanelResolvedFilter, query: string) => void;
28
+ handleSuggestionClick: (suggestion: PvFilterPanelSuggestion) => void;
29
+ removeAppliedFilter: (field: string, value: string, type?: PvFilterPanelFilterType) => void;
30
+ };
@@ -0,0 +1,5 @@
1
+ import { PvFilterStore } from './types';
2
+ export declare const createPvFilterStore: () => PvFilterStore;
3
+ export declare const providePvFilterStore: (filterStore: PvFilterStore) => void;
4
+ export declare const useOptionalPvFilterStore: () => PvFilterStore | null;
5
+ export declare const usePvFilterStore: () => PvFilterStore;
@@ -0,0 +1,45 @@
1
+ import { PvGhostInputVariant } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ interface PvGhostInputProps {
4
+ /**
5
+ * The typographic style applied to the input text (e.g. h1, h2, text-md, caption).
6
+ */
7
+ variant?: PvGhostInputVariant;
8
+ /** Placeholder text shown when the input is empty. */
9
+ placeholder?: string;
10
+ /** When true, the input is non-interactive and visually dimmed. */
11
+ disabled?: boolean;
12
+ /** When true, displays an edit (pencil) icon button beside the input that focuses it on click. */
13
+ showEditIcon?: boolean;
14
+ }
15
+ type __VLS_Props = PvGhostInputProps;
16
+ type __VLS_PublicProps = {
17
+ modelValue?: string;
18
+ } & __VLS_Props;
19
+ declare function __VLS_template(): {
20
+ attrs: Partial<{}>;
21
+ slots: {
22
+ action?(_: {}): any;
23
+ };
24
+ refs: {
25
+ inputRef: HTMLInputElement;
26
+ };
27
+ rootEl: HTMLDivElement;
28
+ };
29
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
30
+ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
31
+ "update:modelValue": (value: string) => any;
32
+ }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
33
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
34
+ }>, {
35
+ variant: PvGhostInputVariant;
36
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {
37
+ inputRef: HTMLInputElement;
38
+ }, HTMLDivElement>;
39
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
40
+ export default _default;
41
+ type __VLS_WithTemplateSlots<T, S> = T & {
42
+ new (): {
43
+ $slots: S;
44
+ };
45
+ };
@@ -0,0 +1,2 @@
1
+ import { PvInputVariants } from '../baseProps';
2
+ export type PvGhostInputVariant = PvInputVariants;
@@ -0,0 +1,36 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ type __VLS_Props = {
3
+ title?: string;
4
+ showAskTqButton?: boolean;
5
+ askTqButtonId?: string;
6
+ headerTitleId?: string;
7
+ headerActionsId?: string;
8
+ sticky?: boolean;
9
+ };
10
+ declare function __VLS_template(): {
11
+ attrs: Partial<{}>;
12
+ slots: {
13
+ left?(_: {}): any;
14
+ right?(_: {}): any;
15
+ };
16
+ refs: {
17
+ rootRef: HTMLDivElement;
18
+ };
19
+ rootEl: HTMLDivElement;
20
+ };
21
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
+ declare const __VLS_component: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
23
+ sticky: boolean;
24
+ askTqButtonId: string;
25
+ headerTitleId: string;
26
+ headerActionsId: string;
27
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {
28
+ rootRef: HTMLDivElement;
29
+ }, HTMLDivElement>;
30
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
31
+ export default _default;
32
+ type __VLS_WithTemplateSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };