@leaflink/stash 51.9.3 → 51.10.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 (369) hide show
  1. package/assets/icons/cloud-share.svg +1 -0
  2. package/assets/spritesheet.svg +1 -1
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/Accordion.vue.d.ts +7 -38
  5. package/dist/ActionsDropdown.js +2 -2
  6. package/dist/ActionsDropdown.js.map +1 -1
  7. package/dist/ActionsDropdown.vue.d.ts +0 -74
  8. package/dist/AddressSelect.js +56 -60
  9. package/dist/AddressSelect.js.map +1 -1
  10. package/dist/AddressSelect.vue.d.ts +8 -65
  11. package/dist/Alert.js.map +1 -1
  12. package/dist/Alert.vue.d.ts +4 -41
  13. package/dist/AppNavigationItem.js.map +1 -1
  14. package/dist/AppNavigationItem.vue.d.ts +5 -32
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppSidebar.vue.d.ts +8 -35
  17. package/dist/AppTopbar.js +1 -1
  18. package/dist/AppTopbar.js.map +1 -1
  19. package/dist/AppTopbar.vue.d.ts +4 -33
  20. package/dist/Avatar.js.map +1 -1
  21. package/dist/Avatar.vue.d.ts +5 -44
  22. package/dist/Backdrop.js.map +1 -1
  23. package/dist/Backdrop.vue.d.ts +1 -1
  24. package/dist/Badge.js.map +1 -1
  25. package/dist/Badge.vue.d.ts +6 -55
  26. package/dist/Box.vue.d.ts +3 -36
  27. package/dist/Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map +1 -1
  28. package/dist/Button.js.map +1 -1
  29. package/dist/Button.vue.d.ts +5 -50
  30. package/dist/ButtonGroup.js +33 -37
  31. package/dist/ButtonGroup.js.map +1 -1
  32. package/dist/ButtonGroup.vue.d.ts +6 -39
  33. package/dist/Card.js.map +1 -1
  34. package/dist/Card.vue.d.ts +5 -32
  35. package/dist/CardContent.js.map +1 -1
  36. package/dist/CardContent.vue.d.ts +1 -1
  37. package/dist/CardFooter.js.map +1 -1
  38. package/dist/CardFooter.vue.d.ts +1 -1
  39. package/dist/CardHeader.js.map +1 -1
  40. package/dist/CardHeader.vue.d.ts +2 -15
  41. package/dist/CardMedia.js.map +1 -1
  42. package/dist/CardMedia.vue.d.ts +2 -15
  43. package/dist/Carousel.js +66 -72
  44. package/dist/Carousel.js.map +1 -1
  45. package/dist/Carousel.vue.d.ts +10 -10
  46. package/dist/Checkbox.js.map +1 -1
  47. package/dist/Checkbox.vue.d.ts +8 -53
  48. package/dist/ChevronToggle.vue.d.ts +7 -34
  49. package/dist/ChevronToggle.vue_vue_type_script_setup_true_lang-Ce_qOXfR.js.map +1 -1
  50. package/dist/Chip.js.map +1 -1
  51. package/dist/Chip.vue.d.ts +10 -52
  52. package/dist/ConfirmationCodeInput.js +40 -44
  53. package/dist/ConfirmationCodeInput.js.map +1 -1
  54. package/dist/ConfirmationCodeInput.vue.d.ts +8 -43
  55. package/dist/ContextSwitcher.js.map +1 -1
  56. package/dist/ContextSwitcher.vue.d.ts +6 -41
  57. package/dist/Copy.js.map +1 -1
  58. package/dist/Copy.vue.d.ts +3 -34
  59. package/dist/CurrencyInput.js +20 -21
  60. package/dist/CurrencyInput.js.map +1 -1
  61. package/dist/CurrencyInput.vue.d.ts +125 -46
  62. package/dist/CustomRender.js.map +1 -1
  63. package/dist/DataView.js +94 -96
  64. package/dist/DataView.js.map +1 -1
  65. package/dist/DataView.keys-aSOnA4AD.js.map +1 -1
  66. package/dist/DataView.vue.d.ts +15 -57
  67. package/dist/DataViewFilters.js +127 -139
  68. package/dist/DataViewFilters.js.map +1 -1
  69. package/dist/DataViewFilters.keys-BLu07FiP.js.map +1 -1
  70. package/dist/DataViewFilters.vue.d.ts +9 -54
  71. package/dist/DataViewSortButton.js +2 -2
  72. package/dist/DataViewSortButton.js.map +1 -1
  73. package/dist/DataViewSortButton.vue.d.ts +3 -30
  74. package/dist/DataViewToolbar.js +70 -62
  75. package/dist/DataViewToolbar.js.map +1 -1
  76. package/dist/DataViewToolbar.vue.d.ts +5 -40
  77. package/dist/DatePicker.js +4524 -4636
  78. package/dist/DatePicker.js.map +1 -1
  79. package/dist/DatePicker.vue.d.ts +32 -81
  80. package/dist/DescriptionList.js.map +1 -1
  81. package/dist/DescriptionList.vue.d.ts +3 -32
  82. package/dist/DescriptionListDetail.js.map +1 -1
  83. package/dist/DescriptionListDetail.vue.d.ts +1 -1
  84. package/dist/DescriptionListGroup.js.map +1 -1
  85. package/dist/DescriptionListGroup.vue.d.ts +1 -1
  86. package/dist/DescriptionListTerm.js.map +1 -1
  87. package/dist/DescriptionListTerm.vue.d.ts +1 -1
  88. package/dist/Dialog.js.map +1 -1
  89. package/dist/Dialog.vue.d.ts +10 -53
  90. package/dist/Divider.js.map +1 -1
  91. package/dist/Dropdown.js +89 -95
  92. package/dist/Dropdown.js.map +1 -1
  93. package/dist/Dropdown.vue.d.ts +12 -48
  94. package/dist/EmptyState.js +1 -1
  95. package/dist/EmptyState.js.map +1 -1
  96. package/dist/EmptyState.vue.d.ts +5 -62
  97. package/dist/Expand.vue.d.ts +10 -40
  98. package/dist/Expand.vue_vue_type_script_setup_true_lang-CiONJfAp.js.map +1 -1
  99. package/dist/Field.vue.d.ts +4 -53
  100. package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +1 -1
  101. package/dist/FileUpload.js +72 -74
  102. package/dist/FileUpload.js.map +1 -1
  103. package/dist/FileUpload.vue.d.ts +10 -44
  104. package/dist/FilterChip.js.map +1 -1
  105. package/dist/FilterChip.vue.d.ts +6 -41
  106. package/dist/FilterDrawerItem.js +21 -21
  107. package/dist/FilterDrawerItem.js.map +1 -1
  108. package/dist/FilterDrawerItem.vue.d.ts +6 -23
  109. package/dist/FilterDropdown.js +63 -69
  110. package/dist/FilterDropdown.js.map +1 -1
  111. package/dist/FilterDropdown.vue.d.ts +122 -35
  112. package/dist/FilterSelect.js.map +1 -1
  113. package/dist/FilterSelect.vue.d.ts +4 -31
  114. package/dist/Filters.js +157 -164
  115. package/dist/Filters.js.map +1 -1
  116. package/dist/Filters.vue.d.ts +0 -2190
  117. package/dist/HttpError.js +7 -7
  118. package/dist/HttpError.js.map +1 -1
  119. package/dist/HttpError.vue.d.ts +4 -41
  120. package/dist/Icon.js +16 -15
  121. package/dist/Icon.js.map +1 -1
  122. package/dist/Icon.vue.d.ts +4 -37
  123. package/dist/IconLabel.js.map +1 -1
  124. package/dist/IconLabel.vue.d.ts +6 -41
  125. package/dist/Illustration.js +2 -2
  126. package/dist/Illustration.vue.d.ts +3 -42
  127. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js} +11 -11
  128. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-BVzzNsRt.js.map} +1 -1
  129. package/dist/Image.js +2 -2
  130. package/dist/Image.vue.d.ts +5 -40
  131. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js} +37 -41
  132. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map → Image.vue_vue_type_script_setup_true_lang-Dg2Zk2r2.js.map} +1 -1
  133. package/dist/InlineEdit.js.map +1 -1
  134. package/dist/InlineEdit.vue.d.ts +126 -47
  135. package/dist/Input.js.map +1 -1
  136. package/dist/Input.vue.d.ts +12 -45
  137. package/dist/InputOptions.js +66 -69
  138. package/dist/InputOptions.js.map +1 -1
  139. package/dist/InputOptions.vue.d.ts +10 -55
  140. package/dist/IntegrationIcon.js +7 -7
  141. package/dist/IntegrationIcon.js.map +1 -1
  142. package/dist/IntegrationIcon.vue.d.ts +3 -36
  143. package/dist/Label.vue.d.ts +3 -42
  144. package/dist/Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map +1 -1
  145. package/dist/LicenseChip.js.map +1 -1
  146. package/dist/LicenseChip.vue.d.ts +3 -30
  147. package/dist/ListItem.js.map +1 -1
  148. package/dist/ListItem.vue.d.ts +0 -294
  149. package/dist/ListItemCell.js.map +1 -1
  150. package/dist/ListItemCell.vue.d.ts +0 -21
  151. package/dist/ListView.js +4 -7
  152. package/dist/ListView.js.map +1 -1
  153. package/dist/ListView.types.d.ts +0 -29
  154. package/dist/ListView.vue.d.ts +0 -5496
  155. package/dist/Loading.js +2 -2
  156. package/dist/Loading.js.map +1 -1
  157. package/dist/Loading.vue.d.ts +1 -1
  158. package/dist/Logo.js +1 -1
  159. package/dist/Logo.vue.d.ts +6 -41
  160. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js} +17 -17
  161. package/dist/Logo.vue_vue_type_script_setup_true_lang-Y3iE9utm.js.map +1 -0
  162. package/dist/Menu.js.map +1 -1
  163. package/dist/Menu.vue.d.ts +1 -1
  164. package/dist/MenuItem.js.map +1 -1
  165. package/dist/MenuItem.vue.d.ts +1 -1
  166. package/dist/MenusPlugin-B4jpNe7x.js +12 -0
  167. package/dist/{MenusPlugin-Bk6UW6o9.js.map → MenusPlugin-B4jpNe7x.js.map} +1 -1
  168. package/dist/Metric.js.map +1 -1
  169. package/dist/Metric.vue.d.ts +3 -34
  170. package/dist/Modal.js +62 -64
  171. package/dist/Modal.js.map +1 -1
  172. package/dist/Modal.vue.d.ts +13 -60
  173. package/dist/Modals.js +17 -18
  174. package/dist/Modals.js.map +1 -1
  175. package/dist/ModalsPlugin.js +11 -11
  176. package/dist/ModalsPlugin.js.map +1 -1
  177. package/dist/Module.js.map +1 -1
  178. package/dist/Module.keys-CEsrW2f0.js.map +1 -1
  179. package/dist/Module.types-B1FfGGac.js.map +1 -1
  180. package/dist/Module.vue.d.ts +2 -29
  181. package/dist/ModuleContent.js.map +1 -1
  182. package/dist/ModuleContent.vue.d.ts +3 -3
  183. package/dist/ModuleFooter.js.map +1 -1
  184. package/dist/ModuleFooter.vue.d.ts +1 -1
  185. package/dist/ModuleHeader.js.map +1 -1
  186. package/dist/ModuleHeader.vue.d.ts +5 -39
  187. package/dist/ObfuscateText.js.map +1 -1
  188. package/dist/ObfuscateText.vue.d.ts +3 -40
  189. package/dist/PageContent.js.map +1 -1
  190. package/dist/PageContent.vue.d.ts +3 -30
  191. package/dist/PageHeader.js.map +1 -1
  192. package/dist/PageHeader.vue.d.ts +6 -35
  193. package/dist/PageNavigation.js +50 -50
  194. package/dist/PageNavigation.js.map +1 -1
  195. package/dist/PageNavigation.vue.d.ts +7 -36
  196. package/dist/Paginate.js.map +1 -1
  197. package/dist/Paginate.vue.d.ts +5 -40
  198. package/dist/PlaidLink.js.map +1 -1
  199. package/dist/PlaidLink.vue.d.ts +12 -49
  200. package/dist/QuickAction.js.map +1 -1
  201. package/dist/QuickAction.vue.d.ts +3 -16
  202. package/dist/Radio.js.map +1 -1
  203. package/dist/Radio.vue.d.ts +0 -93
  204. package/dist/RadioGroup.js +94 -101
  205. package/dist/RadioGroup.js.map +1 -1
  206. package/dist/RadioGroup.vue.d.ts +116 -42
  207. package/dist/RadioNew.js +96 -99
  208. package/dist/RadioNew.js.map +1 -1
  209. package/dist/RadioNew.vue.d.ts +7 -48
  210. package/dist/RangeInput.js.map +1 -1
  211. package/dist/RangeInput.vue.d.ts +1 -1
  212. package/dist/SearchBar.js +38 -39
  213. package/dist/SearchBar.js.map +1 -1
  214. package/dist/SearchBar.vue.d.ts +127 -44
  215. package/dist/SectionHeader.js.map +1 -1
  216. package/dist/SectionHeader.vue.d.ts +6 -37
  217. package/dist/Select.js +171 -183
  218. package/dist/Select.js.map +1 -1
  219. package/dist/Select.vue.d.ts +23 -102
  220. package/dist/SelectStatus.js +38 -38
  221. package/dist/SelectStatus.js.map +1 -1
  222. package/dist/SelectStatus.vue.d.ts +227 -47
  223. package/dist/Skeleton.js.map +1 -1
  224. package/dist/Skeleton.vue.d.ts +3 -34
  225. package/dist/Step.js +44 -44
  226. package/dist/Step.js.map +1 -1
  227. package/dist/Step.vue.d.ts +4 -43
  228. package/dist/Stepper.js.map +1 -1
  229. package/dist/Stepper.vue.d.ts +9 -44
  230. package/dist/Switch.js.map +1 -1
  231. package/dist/Switch.vue.d.ts +8 -47
  232. package/dist/Tab.js +1 -1
  233. package/dist/Tab.js.map +1 -1
  234. package/dist/Tab.vue.d.ts +2 -15
  235. package/dist/TabPanel.js.map +1 -1
  236. package/dist/TabPanel.vue.d.ts +3 -30
  237. package/dist/Table.js +53 -59
  238. package/dist/Table.js.map +1 -1
  239. package/dist/Table.keys-LHQf6FEH.js.map +1 -1
  240. package/dist/Table.vue.d.ts +3 -50
  241. package/dist/TableCell.js +1 -1
  242. package/dist/TableCell.js.map +1 -1
  243. package/dist/TableCell.vue.d.ts +3 -32
  244. package/dist/TableHeaderCell.js +1 -1
  245. package/dist/TableHeaderCell.js.map +1 -1
  246. package/dist/TableHeaderCell.vue.d.ts +3 -30
  247. package/dist/TableHeaderRow.js +47 -45
  248. package/dist/TableHeaderRow.js.map +1 -1
  249. package/dist/TableHeaderRow.vue.d.ts +5 -34
  250. package/dist/TableRow.js +60 -61
  251. package/dist/TableRow.js.map +1 -1
  252. package/dist/TableRow.vue.d.ts +7 -48
  253. package/dist/Tabs.js +2 -2
  254. package/dist/Tabs.vue.d.ts +122 -31
  255. package/dist/Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js +156 -0
  256. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js.map → Tabs.vue_vue_type_script_setup_true_lang-Dprx064Y.js.map} +1 -1
  257. package/dist/TextEditor.js +2414 -2420
  258. package/dist/TextEditor.js.map +1 -1
  259. package/dist/TextEditor.vue.d.ts +9 -40
  260. package/dist/Textarea.js +69 -69
  261. package/dist/Textarea.js.map +1 -1
  262. package/dist/Textarea.vue.d.ts +9 -44
  263. package/dist/Thumbnail.js +1 -1
  264. package/dist/Thumbnail.js.map +1 -1
  265. package/dist/Thumbnail.vue.d.ts +4 -4
  266. package/dist/ThumbnailEmpty.js.map +1 -1
  267. package/dist/ThumbnailEmpty.vue.d.ts +1 -1
  268. package/dist/ThumbnailGroup.js.map +1 -1
  269. package/dist/ThumbnailGroup.keys-EJ4qFNhx.js.map +1 -1
  270. package/dist/ThumbnailGroup.vue.d.ts +26 -22
  271. package/dist/Timeline.js.map +1 -1
  272. package/dist/Timeline.vue.d.ts +3 -32
  273. package/dist/TimelineItem.js.map +1 -1
  274. package/dist/TimelineItem.vue.d.ts +1 -1
  275. package/dist/Toast.js.map +1 -1
  276. package/dist/Toast.vue.d.ts +3 -30
  277. package/dist/Toasts.js.map +1 -1
  278. package/dist/ToastsPlugin.js +11 -11
  279. package/dist/ToastsPlugin.js.map +1 -1
  280. package/dist/Tooltip.js +29 -30
  281. package/dist/Tooltip.js.map +1 -1
  282. package/dist/Tooltip.vue.d.ts +11 -43
  283. package/dist/colors-DDDVvqfQ.js.map +1 -1
  284. package/dist/components.css +1 -1
  285. package/dist/constants.js.map +1 -1
  286. package/dist/directives/autofocus.js.map +1 -1
  287. package/dist/directives/clickoutside.js.map +1 -1
  288. package/dist/directives/observe.js.map +1 -1
  289. package/dist/directives/sticky.js.map +1 -1
  290. package/dist/directives/tooltip.js +3 -3
  291. package/dist/directives/tooltip.js.map +1 -1
  292. package/dist/directives/viewable.js +39 -44
  293. package/dist/directives/viewable.js.map +1 -1
  294. package/dist/{floating-ui.vue-pzUuloyX.js → floating-ui.vue-CL01Y9ER.js} +2 -2
  295. package/dist/{floating-ui.vue-pzUuloyX.js.map → floating-ui.vue-CL01Y9ER.js.map} +1 -1
  296. package/dist/formatDateTime-DG7kBc2T.js +1414 -0
  297. package/dist/{formatDateTime-Dz8bXV0R.js.map → formatDateTime-DG7kBc2T.js.map} +1 -1
  298. package/dist/index-D6bxWkZ1.js.map +1 -1
  299. package/dist/{index-ConQ3o31.js → index-GUu9zvbg.js} +3 -3
  300. package/dist/{index-ConQ3o31.js.map → index-GUu9zvbg.js.map} +1 -1
  301. package/dist/index.js +99 -104
  302. package/dist/index.js.map +1 -1
  303. package/dist/isDefined-DzVx0B6k.js.map +1 -1
  304. package/dist/keys-BEdEsanp.js.map +1 -1
  305. package/dist/keys-C8Zfr_By.js.map +1 -1
  306. package/dist/locale.js.map +1 -1
  307. package/dist/misc-CHQs-G03.js.map +1 -1
  308. package/dist/obfuscateText.d.ts +1 -1
  309. package/dist/parseISO-wlfIB_QJ.js.map +1 -1
  310. package/dist/searchFuzzy-DBDE6jkd.js +408 -0
  311. package/dist/{searchFuzzy-DRasJ33G.js.map → searchFuzzy-DBDE6jkd.js.map} +1 -1
  312. package/dist/statusLevels-D8EgtE_L.js.map +1 -1
  313. package/dist/storage.js.map +1 -1
  314. package/dist/tailwind-base.js +1 -1
  315. package/dist/tailwind-base.js.map +1 -1
  316. package/dist/toTimeZone-Coq1oPTt.js.map +1 -1
  317. package/dist/useConfirmBeforeClosing.js.map +1 -1
  318. package/dist/useDialog.d.ts +2 -2
  319. package/dist/useDialog.js +21 -25
  320. package/dist/useDialog.js.map +1 -1
  321. package/dist/useGoogleMaps.js +108 -110
  322. package/dist/useGoogleMaps.js.map +1 -1
  323. package/dist/useMediaQuery.d.ts +0 -6
  324. package/dist/useMediaQuery.js +11 -15
  325. package/dist/useMediaQuery.js.map +1 -1
  326. package/dist/useModals.d.ts +1 -1
  327. package/dist/useModals.js.map +1 -1
  328. package/dist/usePaginationStats-d_q39naC.js.map +1 -1
  329. package/dist/usePlaidLink.js +20 -27
  330. package/dist/usePlaidLink.js.map +1 -1
  331. package/dist/useScriptTag.js.map +1 -1
  332. package/dist/useSearch.js +13 -13
  333. package/dist/useSearch.js.map +1 -1
  334. package/dist/useSelection.js +56 -56
  335. package/dist/useSelection.js.map +1 -1
  336. package/dist/useSortable.js +54 -63
  337. package/dist/useSortable.js.map +1 -1
  338. package/dist/useStepper.d.ts +2 -2
  339. package/dist/useStepper.js +36 -40
  340. package/dist/useStepper.js.map +1 -1
  341. package/dist/useToasts.js +23 -23
  342. package/dist/useToasts.js.map +1 -1
  343. package/dist/useValidation.js +96 -100
  344. package/dist/useValidation.js.map +1 -1
  345. package/dist/utils/calculateElementOverflow.js +4 -4
  346. package/dist/utils/calculateElementOverflow.js.map +1 -1
  347. package/dist/utils/colorScheme.js +2 -2
  348. package/dist/utils/colorScheme.js.map +1 -1
  349. package/dist/utils/createQueryString.js.map +1 -1
  350. package/dist/utils/createValidDate.js.map +1 -1
  351. package/dist/utils/formatDateTime.js +1 -1
  352. package/dist/utils/getContrastingTextColor.js.map +1 -1
  353. package/dist/utils/helpers.js.map +1 -1
  354. package/dist/utils/i18n.js.map +1 -1
  355. package/dist/utils/normalizeDate.js.map +1 -1
  356. package/dist/utils/obfuscateText.js +6 -6
  357. package/dist/utils/obfuscateText.js.map +1 -1
  358. package/dist/utils/searchFuzzy.js +1 -1
  359. package/dist/utils/storage.js +23 -23
  360. package/dist/utils/storage.js.map +1 -1
  361. package/package.json +12 -13
  362. package/tailwind-base.ts +1 -1
  363. package/types/vite.d.ts +7 -0
  364. package/types/vitest.d.ts +7 -0
  365. package/dist/Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map +0 -1
  366. package/dist/MenusPlugin-Bk6UW6o9.js +0 -12
  367. package/dist/Tabs.vue_vue_type_script_setup_true_lang-CmnBP4i1.js +0 -159
  368. package/dist/formatDateTime-Dz8bXV0R.js +0 -1418
  369. package/dist/searchFuzzy-DRasJ33G.js +0 -409
@@ -1,70 +1,68 @@
1
- import { ref as B, computed as C, defineComponent as j, useSlots as O, inject as z, provide as J, watch as Q, createBlock as w, openBlock as f, normalizeClass as U, unref as t, withCtx as u, createCommentVNode as p, createElementBlock as Z, mergeProps as $, createElementVNode as A, renderSlot as G, createVNode as I, createTextVNode as k, toDisplayString as m } from "vue";
1
+ import { ref as G, computed as k, defineComponent as j, useSlots as O, inject as z, provide as J, watch as Q, createBlock as f, openBlock as d, normalizeClass as U, unref as t, withCtx as i, createCommentVNode as c, createElementBlock as Z, mergeProps as T, createElementVNode as b, renderSlot as D, createVNode as S, createTextVNode as g, toDisplayString as v } from "vue";
2
2
  import q from "./useMediaQuery.js";
3
3
  import { SCREEN_SIZES as H } from "./constants.js";
4
- import { t as d } from "./locale.js";
4
+ import { t as n } from "./locale.js";
5
5
  import { _ as K } from "./Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js";
6
- import _ from "./Button.js";
7
- import L from "lodash-es/cloneDeep";
8
- import P from "./Icon.js";
9
- import { D as R } from "./DataView.keys-aSOnA4AD.js";
6
+ import F from "./Button.js";
7
+ import $ from "lodash-es/cloneDeep";
8
+ import L from "./Icon.js";
9
+ import { D as P } from "./DataView.keys-aSOnA4AD.js";
10
10
  import X from "./FilterChip.js";
11
11
  import { _ as Y } from "./Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js";
12
12
  import ee from "./Modal.js";
13
13
  import te from "./SearchBar.js";
14
14
  import { D as le } from "./DataViewFilters.keys-BLu07FiP.js";
15
- import { i as W } from "./isDefined-DzVx0B6k.js";
15
+ import { i as R } from "./isDefined-DzVx0B6k.js";
16
16
  var ae = /* @__PURE__ */ ((l) => (l.Cascade = "cascade", l.Nested = "nested", l))(ae || {});
17
17
  function Ae({
18
18
  schema: l,
19
- dataViewRef: N
19
+ dataViewRef: I
20
20
  }) {
21
- const e = B({}), o = B({});
21
+ const e = G({}), r = G({});
22
22
  for (const a in l)
23
- e.value[a] = l[a].defaultValue, o.value[a] = l[a].defaultValue;
24
- const y = N;
25
- function h() {
26
- e.value = L(o.value), y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
23
+ e.value[a] = l[a].defaultValue, r.value[a] = l[a].defaultValue;
24
+ const w = I;
25
+ function A() {
26
+ e.value = $(r.value), w.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
27
27
  }
28
- function V() {
28
+ function N() {
29
29
  for (const a in l)
30
- e.value[a] = l[a].defaultValue, o.value[a] = l[a].defaultValue;
31
- y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
30
+ e.value[a] = l[a].defaultValue, r.value[a] = l[a].defaultValue;
31
+ w.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
32
32
  }
33
- function b(a) {
34
- for (const i in l)
35
- l[i].group === a && (e.value[i] = l[i].defaultValue, o.value[i] = l[i].defaultValue);
36
- y.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
33
+ function _(a) {
34
+ for (const s in l)
35
+ l[s].group === a && (e.value[s] = l[s].defaultValue, r.value[s] = l[s].defaultValue);
36
+ w.value.updateCurrentFilters(e.value, { shouldEmit: !0 });
37
37
  }
38
- function E() {
39
- o.value = L(e.value);
38
+ function V() {
39
+ r.value = $(e.value);
40
40
  }
41
- const g = C(() => {
42
- var i;
41
+ const m = k(() => {
43
42
  const a = {};
44
- for (const c in l) {
45
- const n = l[c], r = e.value[c];
46
- (((i = n.isActive) == null ? void 0 : i.call(n, r)) || W(r)) && n.group && (a[n.group] = (a[n.group] ?? 0) + 1);
43
+ for (const s in l) {
44
+ const o = l[s], p = e.value[s];
45
+ (o.isActive?.(p) || R(p)) && o.group && (a[o.group] = (a[o.group] ?? 0) + 1);
47
46
  }
48
47
  return a;
49
- }), S = C(() => {
50
- var i;
48
+ }), h = k(() => {
51
49
  let a = 0;
52
- for (const c in l) {
53
- const n = l[c], r = e.value[c];
54
- (((i = n.isActive) == null ? void 0 : i.call(n, r)) || W(r)) && (a += 1);
50
+ for (const s in l) {
51
+ const o = l[s], p = e.value[s];
52
+ (o.isActive?.(p) || R(p)) && (a += 1);
55
53
  }
56
54
  return a;
57
55
  });
58
56
  return {
59
- applyFilters: h,
60
- resetAllFilters: V,
57
+ applyFilters: A,
58
+ resetAllFilters: N,
61
59
  // @ts-expect-error "could be instantiated with a different subtype": TODO: figure out how to resolve the types
62
- resetFilterGroup: b,
63
- undoWorkingFilters: E,
64
- activeFiltersCounts: g,
65
- totalActiveFiltersCount: S,
60
+ resetFilterGroup: _,
61
+ undoWorkingFilters: V,
62
+ activeFiltersCounts: m,
63
+ totalActiveFiltersCount: h,
66
64
  appliedFilters: e,
67
- workingFilters: o
65
+ workingFilters: r
68
66
  };
69
67
  }
70
68
  const se = {
@@ -73,7 +71,7 @@ const se = {
73
71
  }, re = { class: "tw-hidden md:tw-block" }, ie = { class: "tw-flex tw-gap-4" }, oe = { class: "tw-inline-flex tw-items-center tw-gap-3" }, ne = { class: "tw-flex tw-justify-end tw-gap-gutter" }, he = /* @__PURE__ */ j({
74
72
  __name: "DataViewFilters",
75
73
  props: {
76
- filtersLabelText: { default: d("ll.filterBy") },
74
+ filtersLabelText: { default: n("ll.filterBy") },
77
75
  searchBarProps: { default: void 0 },
78
76
  showSearch: { type: Boolean, default: !0 },
79
77
  drawerStyle: { default: "cascade" },
@@ -84,182 +82,172 @@ const se = {
84
82
  activeGroup: { default: void 0 }
85
83
  },
86
84
  emits: ["open-drawer", "dismiss", "previous", "reset-group", "reset-all"],
87
- setup(l, { emit: N }) {
88
- const e = l, o = N, y = O(), h = q(`(min-width: ${H.lg})`), V = C(() => e.drawerStyle === "nested" && !e.activeGroup), b = C(() => e.drawerStyle === "nested" && e.activeGroup), {
89
- density: E,
90
- isLoading: g,
91
- isWithinModule: S,
85
+ setup(l, { emit: I }) {
86
+ const e = l, r = I, w = O(), A = q(`(min-width: ${H.lg})`), N = k(() => e.drawerStyle === "nested" && !e.activeGroup), _ = k(() => e.drawerStyle === "nested" && e.activeGroup), {
87
+ density: V,
88
+ isLoading: m,
89
+ isWithinModule: h,
92
90
  currentSearch: a,
93
- updateCurrentSearch: i
94
- } = z(R.key, R.defaults);
91
+ updateCurrentSearch: s
92
+ } = z(P.key, P.defaults);
95
93
  J(le.key, {
96
94
  useFiltersInstance: e.useFiltersInstance,
97
95
  drawerStyle: e.drawerStyle
98
96
  });
99
- const c = C(() => {
100
- var s;
101
- return ((s = e.useFiltersInstance) == null ? void 0 : s.totalActiveFiltersCount.value) ?? 0;
102
- }), n = C(
103
- () => {
104
- var s;
105
- return Number(e.activeGroup && ((s = e.useFiltersInstance) == null ? void 0 : s.activeFiltersCounts.value[e.activeGroup])) || 0;
106
- }
107
- ), r = B(!1);
108
- async function D() {
109
- var v, F;
110
- const { preventDismiss: s } = await ((v = e.onApply) == null ? void 0 : v.call(e)) || ((F = e.useFiltersInstance) == null ? void 0 : F.applyFilters()) || {};
111
- s || (r.value = !1);
97
+ const o = k(() => e.useFiltersInstance?.totalActiveFiltersCount.value ?? 0), p = k(
98
+ () => Number(e.activeGroup && e.useFiltersInstance?.activeFiltersCounts.value[e.activeGroup]) || 0
99
+ ), u = G(!1);
100
+ async function W() {
101
+ const { preventDismiss: C } = await e.onApply?.() || e.useFiltersInstance?.applyFilters() || {};
102
+ C || (u.value = !1);
112
103
  }
113
104
  function M() {
114
- var s;
115
- e.activeGroup && ((s = e.useFiltersInstance) == null || s.resetFilterGroup(e.activeGroup), o("reset-group"), r.value = !1);
105
+ e.activeGroup && (e.useFiltersInstance?.resetFilterGroup(e.activeGroup), r("reset-group"), u.value = !1);
116
106
  }
117
- function x() {
118
- var s;
119
- (s = e.useFiltersInstance) == null || s.resetAllFilters(), o("reset-all"), r.value = !1;
107
+ function B() {
108
+ e.useFiltersInstance?.resetAllFilters(), r("reset-all"), u.value = !1;
120
109
  }
121
- function T() {
122
- var s;
123
- (s = e.useFiltersInstance) == null || s.undoWorkingFilters(), r.value = !1, o("dismiss");
110
+ function x() {
111
+ e.useFiltersInstance?.undoWorkingFilters(), u.value = !1, r("dismiss");
124
112
  }
125
- return Q(r, () => {
126
- r.value && o("open-drawer");
127
- }), (s, v) => (f(), w(K, {
128
- class: U(["stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3", { "lg:tw-p-6": t(E) === "comfortable", "tw-mb-3": !t(S) }]),
129
- radius: t(S) ? "none" : "rounded",
113
+ return Q(u, () => {
114
+ u.value && r("open-drawer");
115
+ }), (C, y) => (d(), f(K, {
116
+ class: U(["stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3", { "lg:tw-p-6": t(V) === "comfortable", "tw-mb-3": !t(h) }]),
117
+ radius: t(h) ? "none" : "rounded",
130
118
  "data-test": "stash-data-view-filters",
131
119
  "disable-padding": ""
132
120
  }, {
133
- default: u(() => [
134
- e.showSearch ? (f(), w(te, $({
121
+ default: i(() => [
122
+ e.showSearch ? (d(), f(te, T({
135
123
  key: 0,
136
124
  class: "tw-col-span-12 md:tw-col-span-6 lg:tw-col-span-4",
137
125
  "data-test": "stash-data-view-filters|search-bar",
138
- "is-loading": t(g),
139
- label: t(d)("ll.search"),
126
+ "is-loading": t(m),
127
+ label: t(n)("ll.search"),
140
128
  "model-value": t(a)
141
129
  }, e.searchBarProps, {
142
- onSearch: v[0] || (v[0] = (F) => t(i)(F, { shouldEmit: !0 }))
143
- }), null, 16, ["is-loading", "label", "model-value"])) : p("", !0),
144
- y.default ? (f(), Z("div", se, [
145
- A("div", re, [
146
- G(s.$slots, "filters-label", {}, () => [
147
- I(Y, null, {
148
- default: u(() => [
149
- k(m(e.filtersLabelText), 1)
130
+ onSearch: y[0] || (y[0] = (E) => t(s)(E, { shouldEmit: !0 }))
131
+ }), null, 16, ["is-loading", "label", "model-value"])) : c("", !0),
132
+ w.default ? (d(), Z("div", se, [
133
+ b("div", re, [
134
+ D(C.$slots, "filters-label", {}, () => [
135
+ S(Y, null, {
136
+ default: i(() => [
137
+ g(v(e.filtersLabelText), 1)
150
138
  ]),
151
139
  _: 1
152
140
  })
153
141
  ])
154
142
  ]),
155
- A("div", ie, [
156
- I(X, {
143
+ b("div", ie, [
144
+ S(X, {
157
145
  secondary: "",
158
146
  class: "!tw-flex tw-w-full tw-justify-center tw-gap-4 md:!tw-inline-flex md:tw-w-auto",
159
147
  "data-test": "stash-data-view-filters|drawer-toggle-button",
160
- "filter-count": c.value,
161
- onClick: v[1] || (v[1] = (F) => r.value = !0)
148
+ "filter-count": o.value,
149
+ onClick: y[1] || (y[1] = (E) => u.value = !0)
162
150
  }, {
163
- default: u(() => [
164
- A("span", oe, [
165
- I(P, {
151
+ default: i(() => [
152
+ b("span", oe, [
153
+ S(L, {
166
154
  name: "filter-line",
167
155
  class: "tw-text-ice-700"
168
156
  }),
169
- A("span", null, m(t(d)("ll.filters")), 1)
157
+ b("span", null, v(t(n)("ll.filters")), 1)
170
158
  ])
171
159
  ]),
172
160
  _: 1
173
161
  }, 8, ["filter-count"]),
174
- t(h) ? G(s.$slots, "default", { key: 0 }) : p("", !0),
175
- c.value > 0 && t(h) ? (f(), w(_, {
162
+ t(A) ? D(C.$slots, "default", { key: 0 }) : c("", !0),
163
+ o.value > 0 && t(A) ? (d(), f(F, {
176
164
  key: 1,
177
165
  inline: "",
178
- onClick: x
166
+ onClick: B
179
167
  }, {
180
- default: u(() => [
181
- k(m(t(d)("ll.resetAll")), 1)
168
+ default: i(() => [
169
+ g(v(t(n)("ll.resetAll")), 1)
182
170
  ]),
183
171
  _: 1
184
- })) : p("", !0)
172
+ })) : c("", !0)
185
173
  ])
186
- ])) : p("", !0),
187
- y.drawer ? (f(), w(ee, $({
174
+ ])) : c("", !0),
175
+ w.drawer ? (d(), f(ee, T({
188
176
  key: 2,
189
177
  "data-test": "stash-data-view-filters|drawer",
190
178
  "disable-body-padding": "",
191
179
  position: "right",
192
180
  size: "narrow",
193
- "is-open": r.value,
194
- title: t(d)("ll.allFilters")
195
- }, e.drawerProps, { onDismiss: T }), {
196
- headerAction: u(() => [
197
- b.value ? (f(), w(_, {
181
+ "is-open": u.value,
182
+ title: t(n)("ll.allFilters")
183
+ }, e.drawerProps, { onDismiss: x }), {
184
+ headerAction: i(() => [
185
+ _.value ? (d(), f(F, {
198
186
  key: 0,
199
187
  icon: "",
200
188
  class: "tw-text-ice-100",
201
189
  "data-test": "stash-data-view-filters|drawer-previous-button",
202
- "aria-label": t(d)("ll.previous"),
203
- title: t(d)("ll.previous"),
204
- onClick: v[2] || (v[2] = (F) => o("previous"))
190
+ "aria-label": t(n)("ll.previous"),
191
+ title: t(n)("ll.previous"),
192
+ onClick: y[2] || (y[2] = (E) => r("previous"))
205
193
  }, {
206
- default: u(() => [
207
- I(P, { name: "chevron-left" })
194
+ default: i(() => [
195
+ S(L, { name: "chevron-left" })
208
196
  ]),
209
197
  _: 1
210
- }, 8, ["aria-label", "title"])) : p("", !0)
198
+ }, 8, ["aria-label", "title"])) : c("", !0)
211
199
  ]),
212
- footer: u(() => [
213
- A("div", ne, [
214
- c.value === 0 ? (f(), w(_, {
200
+ footer: i(() => [
201
+ b("div", ne, [
202
+ o.value === 0 ? (d(), f(F, {
215
203
  key: 0,
216
204
  secondary: "",
217
- onClick: T
205
+ onClick: x
218
206
  }, {
219
- default: u(() => [
220
- k(m(t(d)("ll.cancel")), 1)
207
+ default: i(() => [
208
+ g(v(t(n)("ll.cancel")), 1)
221
209
  ]),
222
210
  _: 1
223
- })) : p("", !0),
224
- (V.value || e.drawerStyle === "cascade") && c.value > 0 ? (f(), w(_, {
211
+ })) : c("", !0),
212
+ (N.value || e.drawerStyle === "cascade") && o.value > 0 ? (d(), f(F, {
225
213
  key: 1,
226
214
  secondary: "",
227
- disabled: t(g),
228
- onClick: x
215
+ disabled: t(m),
216
+ onClick: B
229
217
  }, {
230
- default: u(() => [
231
- k(m(t(d)("ll.resetAll")), 1)
218
+ default: i(() => [
219
+ g(v(t(n)("ll.resetAll")), 1)
232
220
  ]),
233
221
  _: 1
234
- }, 8, ["disabled"])) : p("", !0),
235
- b.value && n.value > 0 ? (f(), w(_, {
222
+ }, 8, ["disabled"])) : c("", !0),
223
+ _.value && p.value > 0 ? (d(), f(F, {
236
224
  key: 2,
237
225
  secondary: "",
238
- disabled: t(g),
226
+ disabled: t(m),
239
227
  onClick: M
240
228
  }, {
241
- default: u(() => [
242
- k(m(t(d)("ll.reset")), 1)
229
+ default: i(() => [
230
+ g(v(t(n)("ll.reset")), 1)
243
231
  ]),
244
232
  _: 1
245
- }, 8, ["disabled"])) : p("", !0),
246
- b.value || e.drawerStyle === "cascade" ? (f(), w(_, {
233
+ }, 8, ["disabled"])) : c("", !0),
234
+ _.value || e.drawerStyle === "cascade" ? (d(), f(F, {
247
235
  key: 3,
248
- disabled: t(g),
249
- onClick: D
236
+ disabled: t(m),
237
+ onClick: W
250
238
  }, {
251
- default: u(() => [
252
- k(m(t(d)("ll.apply")), 1)
239
+ default: i(() => [
240
+ g(v(t(n)("ll.apply")), 1)
253
241
  ]),
254
242
  _: 1
255
- }, 8, ["disabled"])) : p("", !0)
243
+ }, 8, ["disabled"])) : c("", !0)
256
244
  ])
257
245
  ]),
258
- default: u(() => [
259
- G(s.$slots, "drawer")
246
+ default: i(() => [
247
+ D(C.$slots, "drawer")
260
248
  ]),
261
249
  _: 3
262
- }, 16, ["is-open", "title"])) : p("", !0)
250
+ }, 16, ["is-open", "title"])) : c("", !0)
263
251
  ]),
264
252
  _: 3
265
253
  }, 8, ["class", "radius"]));
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewFilters.js","sources":["../src/components/DataViewFilters/DataViewFilters.types.ts","../src/components/DataViewFilters/useFilters.ts","../src/components/DataViewFilters/DataViewFilters.vue"],"sourcesContent":["import { UseFiltersReturnType } from './useFilters';\n\n/**\n * A function that is called when the user clicks one of the \"Apply\" buttons in DataViewFilters.\n *\n * A return value of `{ preventDismiss: true }` can be used to prevent the DataViewFilters drawer or a FilterDropdown from closing, such as when some filters have invalid values.\n */\nexport type OnApplyFilters = () => Promise<{ preventDismiss?: boolean } | void> | { preventDismiss?: boolean } | void;\n\nexport enum DrawerStyle {\n /** Displays all groups and their fields without the need for navigating submenus. */\n Cascade = 'cascade',\n /** Displays only group names or fields; navigation between the group names and a submenu of fields is required. */\n Nested = 'nested',\n}\n\nexport type DrawerStyles = `${DrawerStyle}`;\n\nexport interface DataViewFiltersUtilsInjection {\n useFiltersInstance?: UseFiltersReturnType;\n drawerStyle?: DrawerStyles;\n}\n","import cloneDeep from 'lodash-es/cloneDeep';\nimport { computed, ComputedRef, Ref, ref } from 'vue';\n\nimport isDefined from '../../composables/useValidation/utils/isDefined';\nimport DataView from '../DataView/DataView.vue';\n\ntype DataViewInstance = InstanceType<typeof DataView>;\n\n/**\n * Contains metadata and configuration for the filters.\n * @see https://www.typescriptlang.org/docs/handbook/2/mapped-types.html\n */\nexport type UseFiltersSchema<Values extends object, Groups extends string> = {\n [Property in keyof Values]: {\n defaultValue?: Values[Property];\n group?: Groups;\n isActive?: (value: Values[Property]) => boolean;\n };\n};\n\nexport interface UseFiltersArgs<Values extends object, Groups extends string> {\n schema: UseFiltersSchema<Values, Groups>;\n /** A ref for an instance of DataView */\n dataViewRef: Ref<unknown>; // Note: using `Ref<InstanceType<typeof DataView>>` here causes type errors when providing a value for this argument\n}\n\nexport interface UseFiltersReturnType<Values = object, Groups extends string = string> {\n applyFilters: () => void;\n resetAllFilters: () => void;\n resetFilterGroup: (group: string) => void; // Note: group is intentionally not typed as `Groups` since there is no way to pass in a Groups type to UseFiltersReturnType within DataViewFilters.vue\n undoWorkingFilters: () => void;\n activeFiltersCounts: ComputedRef<Record<Groups, number>>;\n totalActiveFiltersCount: ComputedRef<number>;\n appliedFilters: Ref<Values>;\n workingFilters: Ref<Values>;\n}\n\n/**\n * Provides utility functions for working with `DataViewFilters`.\n */\nexport function useFilters<Values extends object, Groups extends string>({\n schema,\n dataViewRef,\n}: UseFiltersArgs<Values, Groups>): UseFiltersReturnType<Values, Groups> {\n const appliedFilters = ref({}) as Ref<Values>;\n const workingFilters = ref({}) as Ref<Values>;\n\n for (const filterName in schema) {\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n appliedFilters.value[filterName] = schema[filterName].defaultValue;\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n workingFilters.value[filterName] = schema[filterName].defaultValue;\n }\n\n const dvRef = dataViewRef as Ref<DataViewInstance>;\n\n /**\n * For when an \"Apply\" button is clicked. It does the following:\n * 1) applies the working filter state\n * 2) sets the current page to 1\n * 3) emits the \"update\" event from DataView\n */\n function applyFilters() {\n appliedFilters.value = cloneDeep(workingFilters.value);\n dvRef.value.updateCurrentFilters(appliedFilters.value, { shouldEmit: true });\n }\n\n /**\n * For when a \"Reset all\" button is clicked. It does the following:\n * 1) applies the defaultValue filter values to all filters\n * 2) sets the current page to 1\n * 3) emits the \"update\" event from DataView\n */\n function resetAllFilters() {\n for (const filterName in schema) {\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n appliedFilters.value[filterName] = schema[filterName].defaultValue;\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n workingFilters.value[filterName] = schema[filterName].defaultValue;\n }\n\n dvRef.value.updateCurrentFilters(appliedFilters.value, { shouldEmit: true });\n }\n\n /**\n * For when a \"Reset\" button is clicked. It does the following:\n * 1) applies the defaultValue filter values to the given filter group\n * 2) sets the current page to 1\n * 3) emits the \"update\" event from DataView\n */\n function resetFilterGroup(group: Groups) {\n for (const filterName in schema) {\n if (schema[filterName].group === group) {\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n appliedFilters.value[filterName] = schema[filterName].defaultValue;\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n workingFilters.value[filterName] = schema[filterName].defaultValue;\n }\n }\n\n dvRef.value.updateCurrentFilters(appliedFilters.value, { shouldEmit: true });\n }\n\n /**\n * Resets the `workingFilters` to match the `appliedFilters`. This can be used when the FilterDrawer or a FilterDropdown is dismissed without clicking \"Reset\" or \"Apply\".\n */\n function undoWorkingFilters() {\n workingFilters.value = cloneDeep(appliedFilters.value);\n }\n\n const activeFiltersCounts = computed(() => {\n const counts = {} as Record<Groups, number>;\n\n for (const filterName in schema) {\n const config = schema[filterName];\n const value = appliedFilters.value[filterName];\n const isActive = config.isActive?.(value) || isDefined(value);\n\n if (isActive && config.group) {\n counts[config.group] = (counts[config.group] ?? 0) + 1;\n }\n }\n\n return counts;\n });\n\n const totalActiveFiltersCount = computed(() => {\n let count = 0;\n\n for (const filterName in schema) {\n const config = schema[filterName];\n const value = appliedFilters.value[filterName];\n const isActive = config.isActive?.(value) || isDefined(value);\n\n if (isActive) {\n count += 1;\n }\n }\n\n return count;\n });\n\n return {\n applyFilters,\n resetAllFilters,\n // @ts-expect-error \"could be instantiated with a different subtype\": TODO: figure out how to resolve the types\n resetFilterGroup,\n undoWorkingFilters,\n activeFiltersCounts,\n totalActiveFiltersCount,\n appliedFilters,\n workingFilters,\n };\n}\n\nexport default useFilters;\n","<script lang=\"ts\">\n export * from './DataViewFilters.keys';\n export * from './DataViewFilters.types';\n export * from './useFilters';\n</script>\n\n<script setup lang=\"ts\">\n import { computed, inject, provide, ref, watch } from 'vue';\n\n import useMediaQuery from '../../composables/useMediaQuery/useMediaQuery';\n import { SCREEN_SIZES } from '../../constants';\n import { t } from '../../locale';\n import Box from '../Box/Box.vue';\n import Button from '../Button/Button.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.vue';\n import FilterChip from '../FilterChip/FilterChip.vue';\n import Icon from '../Icon/Icon.vue';\n import Label from '../Label/Label.vue';\n import Modal, { type ModalProps } from '../Modal/Modal.vue';\n import SearchBar, { SearchBarProps } from '../SearchBar/SearchBar.vue';\n import { DATA_VIEW_FILTERS_UTILS_INJECTION } from './DataViewFilters.keys';\n import type { DrawerStyles, OnApplyFilters } from './DataViewFilters.types';\n import type { UseFiltersReturnType } from './useFilters';\n\n export interface DataViewFiltersProps {\n filtersLabelText?: string;\n /**\n * Props to pass to the `SearchBar` component.\n */\n searchBarProps?: SearchBarProps;\n showSearch?: boolean;\n /** 'cascade' displays all fields within every filter group; 'nested' displays only the group names and requires clicking a group to view its fields. */\n drawerStyle?: DrawerStyles;\n drawerProps?: ModalProps;\n /**\n * @deprecated The `activeGroup` prop is a sufficient replacement for this prop. A falsy `activeGroup` will hide the button and a truthy `activeGroup` will show it (when the `drawerStyle` is 'nested').\n *\n * **Note:** This prop has no effect when using a \"cascade\" `drawerStyle`.\n */\n showDrawerPreviousButton?: boolean;\n /**\n * Required when using filters. This prop should contain the return value of the `useFilters()` composable.\n */\n useFiltersInstance?: UseFiltersReturnType;\n onApply?: OnApplyFilters;\n /**\n * The name of the active filter group. The active filter group is determined by which instance of FilterDropdown or FilterDrawerItem is open.\n *\n * **Note:** This prop is required when using a \"nested\" `drawerStyle`, but has no effect when using a \"cascade\" `drawerStyle`.\n */\n activeGroup?: string;\n }\n\n export interface DataViewFiltersSlots {\n default?: () => unknown;\n drawer?: () => unknown;\n 'filters-label'?: () => unknown;\n }\n\n const props = withDefaults(defineProps<DataViewFiltersProps>(), {\n filtersLabelText: t('ll.filterBy'),\n isLoading: false,\n drawerStyle: 'cascade',\n drawerProps: undefined,\n searchBarProps: undefined,\n showDrawerPreviousButton: false,\n showSearch: true,\n useFiltersInstance: undefined,\n onApply: undefined,\n activeGroup: undefined,\n });\n\n const emit = defineEmits<{\n /** When the drawer is opened */\n (e: 'open-drawer'): void;\n /** When the drawer is dismissed */\n (e: 'dismiss'): void;\n /** When the \"Previous\" button in the header is clicked */\n (e: 'previous'): void;\n /** When the \"Reset\" button is clicked while viewing a filter group */\n (e: 'reset-group'): void;\n /** When one of the \"Reset All\" buttons is clicked */\n (e: 'reset-all'): void;\n }>();\n\n const slots = defineSlots<DataViewFiltersSlots>();\n\n const isDesktop = useMediaQuery(`(min-width: ${SCREEN_SIZES.lg})`);\n const isViewingGroupsMenu = computed(() => props.drawerStyle === 'nested' && !props.activeGroup);\n const isViewingSingleGroup = computed(() => props.drawerStyle === 'nested' && props.activeGroup);\n\n const {\n density,\n isLoading: isDataViewLoading,\n isWithinModule,\n currentSearch,\n updateCurrentSearch,\n } = inject(DATA_VIEW_INJECTION.key, DATA_VIEW_INJECTION.defaults);\n\n provide(DATA_VIEW_FILTERS_UTILS_INJECTION.key, {\n useFiltersInstance: props.useFiltersInstance,\n drawerStyle: props.drawerStyle,\n });\n\n const totalActiveFiltersCount = computed(() => props.useFiltersInstance?.totalActiveFiltersCount.value ?? 0);\n /** The number of active filters in the currently active group. This is only used when the drawerStyle is 'nested'. */\n const activeGroupActiveFiltersCount = computed(\n () => Number(props.activeGroup && props.useFiltersInstance?.activeFiltersCounts.value[props.activeGroup]) || 0,\n );\n const isDrawerOpen = ref(false);\n\n async function handleApplyClick() {\n const { preventDismiss } = (await props.onApply?.()) || props.useFiltersInstance?.applyFilters() || {};\n\n if (!preventDismiss) {\n isDrawerOpen.value = false;\n }\n }\n\n function handleResetGroupClick() {\n if (!props.activeGroup) {\n return;\n }\n\n props.useFiltersInstance?.resetFilterGroup(props.activeGroup);\n emit('reset-group');\n isDrawerOpen.value = false;\n }\n\n function handleResetAllClick() {\n props.useFiltersInstance?.resetAllFilters();\n emit('reset-all');\n isDrawerOpen.value = false;\n }\n\n function onDismiss() {\n props.useFiltersInstance?.undoWorkingFilters();\n isDrawerOpen.value = false;\n emit('dismiss');\n }\n\n watch(isDrawerOpen, () => {\n if (isDrawerOpen.value) {\n emit('open-drawer');\n }\n });\n</script>\n\n<template>\n <Box\n class=\"stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3\"\n :class=\"{ 'lg:tw-p-6': density === 'comfortable', 'tw-mb-3': !isWithinModule }\"\n :radius=\"isWithinModule ? 'none' : 'rounded'\"\n data-test=\"stash-data-view-filters\"\n disable-padding\n >\n <SearchBar\n v-if=\"props.showSearch\"\n class=\"tw-col-span-12 md:tw-col-span-6 lg:tw-col-span-4\"\n data-test=\"stash-data-view-filters|search-bar\"\n :is-loading=\"isDataViewLoading\"\n :label=\"t('ll.search')\"\n :model-value=\"currentSearch\"\n v-bind=\"props.searchBarProps\"\n @search=\"(searchTerm) => updateCurrentSearch(searchTerm, { shouldEmit: true })\"\n />\n <div\n v-if=\"slots.default\"\n class=\"tw-col-span-12 tw-row-start-2 md:tw-col-start-7 md:tw-row-start-1 lg:tw-col-span-8 lg:tw-col-start-5\"\n >\n <div class=\"tw-hidden md:tw-block\">\n <slot name=\"filters-label\">\n <Label>{{ props.filtersLabelText }}</Label>\n </slot>\n </div>\n <div class=\"tw-flex tw-gap-4\">\n <FilterChip\n secondary\n class=\"!tw-flex tw-w-full tw-justify-center tw-gap-4 md:!tw-inline-flex md:tw-w-auto\"\n data-test=\"stash-data-view-filters|drawer-toggle-button\"\n :filter-count=\"totalActiveFiltersCount\"\n @click=\"isDrawerOpen = true\"\n >\n <span class=\"tw-inline-flex tw-items-center tw-gap-3\">\n <Icon name=\"filter-line\" class=\"tw-text-ice-700\" />\n <span>{{ t('ll.filters') }}</span>\n </span>\n </FilterChip>\n <slot v-if=\"isDesktop\"></slot>\n <Button v-if=\"totalActiveFiltersCount > 0 && isDesktop\" inline @click=\"handleResetAllClick\">\n {{ t('ll.resetAll') }}\n </Button>\n </div>\n </div>\n <Modal\n v-if=\"slots.drawer\"\n data-test=\"stash-data-view-filters|drawer\"\n disable-body-padding\n position=\"right\"\n size=\"narrow\"\n :is-open=\"isDrawerOpen\"\n :title=\"t('ll.allFilters')\"\n v-bind=\"props.drawerProps\"\n @dismiss=\"onDismiss\"\n >\n <template #headerAction>\n <Button\n v-if=\"isViewingSingleGroup\"\n icon\n class=\"tw-text-ice-100\"\n data-test=\"stash-data-view-filters|drawer-previous-button\"\n :aria-label=\"t('ll.previous')\"\n :title=\"t('ll.previous')\"\n @click=\"emit('previous')\"\n >\n <Icon name=\"chevron-left\" />\n </Button>\n </template>\n\n <slot name=\"drawer\"></slot>\n\n <template #footer>\n <div class=\"tw-flex tw-justify-end tw-gap-gutter\">\n <Button v-if=\"totalActiveFiltersCount === 0\" secondary @click=\"onDismiss\">\n {{ t('ll.cancel') }}\n </Button>\n <Button\n v-if=\"(isViewingGroupsMenu || props.drawerStyle === 'cascade') && totalActiveFiltersCount > 0\"\n secondary\n :disabled=\"isDataViewLoading\"\n @click=\"handleResetAllClick\"\n >\n {{ t('ll.resetAll') }}\n </Button>\n <Button\n v-if=\"isViewingSingleGroup && activeGroupActiveFiltersCount > 0\"\n secondary\n :disabled=\"isDataViewLoading\"\n @click=\"handleResetGroupClick\"\n >\n {{ t('ll.reset') }}\n </Button>\n <Button\n v-if=\"isViewingSingleGroup || props.drawerStyle === 'cascade'\"\n :disabled=\"isDataViewLoading\"\n @click=\"handleApplyClick\"\n >\n {{ t('ll.apply') }}\n </Button>\n </div>\n </template>\n </Modal>\n </Box>\n</template>\n"],"names":["DrawerStyle","useFilters","schema","dataViewRef","appliedFilters","ref","workingFilters","filterName","dvRef","applyFilters","cloneDeep","resetAllFilters","resetFilterGroup","group","undoWorkingFilters","activeFiltersCounts","computed","counts","config","value","_a","isDefined","totalActiveFiltersCount","count","props","__props","emit","__emit","slots","_useSlots","isDesktop","useMediaQuery","SCREEN_SIZES","isViewingGroupsMenu","isViewingSingleGroup","density","isDataViewLoading","isWithinModule","currentSearch","updateCurrentSearch","inject","DATA_VIEW_INJECTION","provide","DATA_VIEW_FILTERS_UTILS_INJECTION","activeGroupActiveFiltersCount","isDrawerOpen","handleApplyClick","preventDismiss","_b","handleResetGroupClick","handleResetAllClick","onDismiss","watch"],"mappings":"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"}
1
+ {"version":3,"file":"DataViewFilters.js","sources":["../src/components/DataViewFilters/DataViewFilters.types.ts","../src/components/DataViewFilters/useFilters.ts","../src/components/DataViewFilters/DataViewFilters.vue"],"sourcesContent":["import { UseFiltersReturnType } from './useFilters';\n\n/**\n * A function that is called when the user clicks one of the \"Apply\" buttons in DataViewFilters.\n *\n * A return value of `{ preventDismiss: true }` can be used to prevent the DataViewFilters drawer or a FilterDropdown from closing, such as when some filters have invalid values.\n */\nexport type OnApplyFilters = () => Promise<{ preventDismiss?: boolean } | void> | { preventDismiss?: boolean } | void;\n\nexport enum DrawerStyle {\n /** Displays all groups and their fields without the need for navigating submenus. */\n Cascade = 'cascade',\n /** Displays only group names or fields; navigation between the group names and a submenu of fields is required. */\n Nested = 'nested',\n}\n\nexport type DrawerStyles = `${DrawerStyle}`;\n\nexport interface DataViewFiltersUtilsInjection {\n useFiltersInstance?: UseFiltersReturnType;\n drawerStyle?: DrawerStyles;\n}\n","import cloneDeep from 'lodash-es/cloneDeep';\nimport { computed, ComputedRef, Ref, ref } from 'vue';\n\nimport isDefined from '../../composables/useValidation/utils/isDefined';\nimport DataView from '../DataView/DataView.vue';\n\ntype DataViewInstance = InstanceType<typeof DataView>;\n\n/**\n * Contains metadata and configuration for the filters.\n * @see https://www.typescriptlang.org/docs/handbook/2/mapped-types.html\n */\nexport type UseFiltersSchema<Values extends object, Groups extends string> = {\n [Property in keyof Values]: {\n defaultValue?: Values[Property];\n group?: Groups;\n isActive?: (value: Values[Property]) => boolean;\n };\n};\n\nexport interface UseFiltersArgs<Values extends object, Groups extends string> {\n schema: UseFiltersSchema<Values, Groups>;\n /** A ref for an instance of DataView */\n dataViewRef: Ref<unknown>; // Note: using `Ref<InstanceType<typeof DataView>>` here causes type errors when providing a value for this argument\n}\n\nexport interface UseFiltersReturnType<Values = object, Groups extends string = string> {\n applyFilters: () => void;\n resetAllFilters: () => void;\n resetFilterGroup: (group: string) => void; // Note: group is intentionally not typed as `Groups` since there is no way to pass in a Groups type to UseFiltersReturnType within DataViewFilters.vue\n undoWorkingFilters: () => void;\n activeFiltersCounts: ComputedRef<Record<Groups, number>>;\n totalActiveFiltersCount: ComputedRef<number>;\n appliedFilters: Ref<Values>;\n workingFilters: Ref<Values>;\n}\n\n/**\n * Provides utility functions for working with `DataViewFilters`.\n */\nexport function useFilters<Values extends object, Groups extends string>({\n schema,\n dataViewRef,\n}: UseFiltersArgs<Values, Groups>): UseFiltersReturnType<Values, Groups> {\n const appliedFilters = ref({}) as Ref<Values>;\n const workingFilters = ref({}) as Ref<Values>;\n\n for (const filterName in schema) {\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n appliedFilters.value[filterName] = schema[filterName].defaultValue;\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n workingFilters.value[filterName] = schema[filterName].defaultValue;\n }\n\n const dvRef = dataViewRef as Ref<DataViewInstance>;\n\n /**\n * For when an \"Apply\" button is clicked. It does the following:\n * 1) applies the working filter state\n * 2) sets the current page to 1\n * 3) emits the \"update\" event from DataView\n */\n function applyFilters() {\n appliedFilters.value = cloneDeep(workingFilters.value);\n dvRef.value.updateCurrentFilters(appliedFilters.value, { shouldEmit: true });\n }\n\n /**\n * For when a \"Reset all\" button is clicked. It does the following:\n * 1) applies the defaultValue filter values to all filters\n * 2) sets the current page to 1\n * 3) emits the \"update\" event from DataView\n */\n function resetAllFilters() {\n for (const filterName in schema) {\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n appliedFilters.value[filterName] = schema[filterName].defaultValue;\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n workingFilters.value[filterName] = schema[filterName].defaultValue;\n }\n\n dvRef.value.updateCurrentFilters(appliedFilters.value, { shouldEmit: true });\n }\n\n /**\n * For when a \"Reset\" button is clicked. It does the following:\n * 1) applies the defaultValue filter values to the given filter group\n * 2) sets the current page to 1\n * 3) emits the \"update\" event from DataView\n */\n function resetFilterGroup(group: Groups) {\n for (const filterName in schema) {\n if (schema[filterName].group === group) {\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n appliedFilters.value[filterName] = schema[filterName].defaultValue;\n // @ts-expect-error \"could be instantiated with an arbitrary type\"; TODO: figure out how to resolve the types\n workingFilters.value[filterName] = schema[filterName].defaultValue;\n }\n }\n\n dvRef.value.updateCurrentFilters(appliedFilters.value, { shouldEmit: true });\n }\n\n /**\n * Resets the `workingFilters` to match the `appliedFilters`. This can be used when the FilterDrawer or a FilterDropdown is dismissed without clicking \"Reset\" or \"Apply\".\n */\n function undoWorkingFilters() {\n workingFilters.value = cloneDeep(appliedFilters.value);\n }\n\n const activeFiltersCounts = computed(() => {\n const counts = {} as Record<Groups, number>;\n\n for (const filterName in schema) {\n const config = schema[filterName];\n const value = appliedFilters.value[filterName];\n const isActive = config.isActive?.(value) || isDefined(value);\n\n if (isActive && config.group) {\n counts[config.group] = (counts[config.group] ?? 0) + 1;\n }\n }\n\n return counts;\n });\n\n const totalActiveFiltersCount = computed(() => {\n let count = 0;\n\n for (const filterName in schema) {\n const config = schema[filterName];\n const value = appliedFilters.value[filterName];\n const isActive = config.isActive?.(value) || isDefined(value);\n\n if (isActive) {\n count += 1;\n }\n }\n\n return count;\n });\n\n return {\n applyFilters,\n resetAllFilters,\n // @ts-expect-error \"could be instantiated with a different subtype\": TODO: figure out how to resolve the types\n resetFilterGroup,\n undoWorkingFilters,\n activeFiltersCounts,\n totalActiveFiltersCount,\n appliedFilters,\n workingFilters,\n };\n}\n\nexport default useFilters;\n","<script lang=\"ts\">\n export * from './DataViewFilters.keys';\n export * from './DataViewFilters.types';\n export * from './useFilters';\n</script>\n\n<script setup lang=\"ts\">\n import { computed, inject, provide, ref, watch } from 'vue';\n\n import useMediaQuery from '../../composables/useMediaQuery/useMediaQuery';\n import { SCREEN_SIZES } from '../../constants';\n import { t } from '../../locale';\n import Box from '../Box/Box.vue';\n import Button from '../Button/Button.vue';\n import { DATA_VIEW_INJECTION } from '../DataView/DataView.vue';\n import FilterChip from '../FilterChip/FilterChip.vue';\n import Icon from '../Icon/Icon.vue';\n import Label from '../Label/Label.vue';\n import Modal, { type ModalProps } from '../Modal/Modal.vue';\n import SearchBar, { SearchBarProps } from '../SearchBar/SearchBar.vue';\n import { DATA_VIEW_FILTERS_UTILS_INJECTION } from './DataViewFilters.keys';\n import type { DrawerStyles, OnApplyFilters } from './DataViewFilters.types';\n import type { UseFiltersReturnType } from './useFilters';\n\n export interface DataViewFiltersProps {\n filtersLabelText?: string;\n /**\n * Props to pass to the `SearchBar` component.\n */\n searchBarProps?: SearchBarProps;\n showSearch?: boolean;\n /** 'cascade' displays all fields within every filter group; 'nested' displays only the group names and requires clicking a group to view its fields. */\n drawerStyle?: DrawerStyles;\n drawerProps?: ModalProps;\n /**\n * @deprecated The `activeGroup` prop is a sufficient replacement for this prop. A falsy `activeGroup` will hide the button and a truthy `activeGroup` will show it (when the `drawerStyle` is 'nested').\n *\n * **Note:** This prop has no effect when using a \"cascade\" `drawerStyle`.\n */\n showDrawerPreviousButton?: boolean;\n /**\n * Required when using filters. This prop should contain the return value of the `useFilters()` composable.\n */\n useFiltersInstance?: UseFiltersReturnType;\n onApply?: OnApplyFilters;\n /**\n * The name of the active filter group. The active filter group is determined by which instance of FilterDropdown or FilterDrawerItem is open.\n *\n * **Note:** This prop is required when using a \"nested\" `drawerStyle`, but has no effect when using a \"cascade\" `drawerStyle`.\n */\n activeGroup?: string;\n }\n\n export interface DataViewFiltersSlots {\n default?: () => unknown;\n drawer?: () => unknown;\n 'filters-label'?: () => unknown;\n }\n\n const props = withDefaults(defineProps<DataViewFiltersProps>(), {\n filtersLabelText: t('ll.filterBy'),\n isLoading: false,\n drawerStyle: 'cascade',\n drawerProps: undefined,\n searchBarProps: undefined,\n showDrawerPreviousButton: false,\n showSearch: true,\n useFiltersInstance: undefined,\n onApply: undefined,\n activeGroup: undefined,\n });\n\n const emit = defineEmits<{\n /** When the drawer is opened */\n (e: 'open-drawer'): void;\n /** When the drawer is dismissed */\n (e: 'dismiss'): void;\n /** When the \"Previous\" button in the header is clicked */\n (e: 'previous'): void;\n /** When the \"Reset\" button is clicked while viewing a filter group */\n (e: 'reset-group'): void;\n /** When one of the \"Reset All\" buttons is clicked */\n (e: 'reset-all'): void;\n }>();\n\n const slots = defineSlots<DataViewFiltersSlots>();\n\n const isDesktop = useMediaQuery(`(min-width: ${SCREEN_SIZES.lg})`);\n const isViewingGroupsMenu = computed(() => props.drawerStyle === 'nested' && !props.activeGroup);\n const isViewingSingleGroup = computed(() => props.drawerStyle === 'nested' && props.activeGroup);\n\n const {\n density,\n isLoading: isDataViewLoading,\n isWithinModule,\n currentSearch,\n updateCurrentSearch,\n } = inject(DATA_VIEW_INJECTION.key, DATA_VIEW_INJECTION.defaults);\n\n provide(DATA_VIEW_FILTERS_UTILS_INJECTION.key, {\n useFiltersInstance: props.useFiltersInstance,\n drawerStyle: props.drawerStyle,\n });\n\n const totalActiveFiltersCount = computed(() => props.useFiltersInstance?.totalActiveFiltersCount.value ?? 0);\n /** The number of active filters in the currently active group. This is only used when the drawerStyle is 'nested'. */\n const activeGroupActiveFiltersCount = computed(\n () => Number(props.activeGroup && props.useFiltersInstance?.activeFiltersCounts.value[props.activeGroup]) || 0,\n );\n const isDrawerOpen = ref(false);\n\n async function handleApplyClick() {\n const { preventDismiss } = (await props.onApply?.()) || props.useFiltersInstance?.applyFilters() || {};\n\n if (!preventDismiss) {\n isDrawerOpen.value = false;\n }\n }\n\n function handleResetGroupClick() {\n if (!props.activeGroup) {\n return;\n }\n\n props.useFiltersInstance?.resetFilterGroup(props.activeGroup);\n emit('reset-group');\n isDrawerOpen.value = false;\n }\n\n function handleResetAllClick() {\n props.useFiltersInstance?.resetAllFilters();\n emit('reset-all');\n isDrawerOpen.value = false;\n }\n\n function onDismiss() {\n props.useFiltersInstance?.undoWorkingFilters();\n isDrawerOpen.value = false;\n emit('dismiss');\n }\n\n watch(isDrawerOpen, () => {\n if (isDrawerOpen.value) {\n emit('open-drawer');\n }\n });\n</script>\n\n<template>\n <Box\n class=\"stash-data-view-filters tw-grid tw-grid-cols-12 tw-gap-6 tw-p-3\"\n :class=\"{ 'lg:tw-p-6': density === 'comfortable', 'tw-mb-3': !isWithinModule }\"\n :radius=\"isWithinModule ? 'none' : 'rounded'\"\n data-test=\"stash-data-view-filters\"\n disable-padding\n >\n <SearchBar\n v-if=\"props.showSearch\"\n class=\"tw-col-span-12 md:tw-col-span-6 lg:tw-col-span-4\"\n data-test=\"stash-data-view-filters|search-bar\"\n :is-loading=\"isDataViewLoading\"\n :label=\"t('ll.search')\"\n :model-value=\"currentSearch\"\n v-bind=\"props.searchBarProps\"\n @search=\"(searchTerm) => updateCurrentSearch(searchTerm, { shouldEmit: true })\"\n />\n <div\n v-if=\"slots.default\"\n class=\"tw-col-span-12 tw-row-start-2 md:tw-col-start-7 md:tw-row-start-1 lg:tw-col-span-8 lg:tw-col-start-5\"\n >\n <div class=\"tw-hidden md:tw-block\">\n <slot name=\"filters-label\">\n <Label>{{ props.filtersLabelText }}</Label>\n </slot>\n </div>\n <div class=\"tw-flex tw-gap-4\">\n <FilterChip\n secondary\n class=\"!tw-flex tw-w-full tw-justify-center tw-gap-4 md:!tw-inline-flex md:tw-w-auto\"\n data-test=\"stash-data-view-filters|drawer-toggle-button\"\n :filter-count=\"totalActiveFiltersCount\"\n @click=\"isDrawerOpen = true\"\n >\n <span class=\"tw-inline-flex tw-items-center tw-gap-3\">\n <Icon name=\"filter-line\" class=\"tw-text-ice-700\" />\n <span>{{ t('ll.filters') }}</span>\n </span>\n </FilterChip>\n <slot v-if=\"isDesktop\"></slot>\n <Button v-if=\"totalActiveFiltersCount > 0 && isDesktop\" inline @click=\"handleResetAllClick\">\n {{ t('ll.resetAll') }}\n </Button>\n </div>\n </div>\n <Modal\n v-if=\"slots.drawer\"\n data-test=\"stash-data-view-filters|drawer\"\n disable-body-padding\n position=\"right\"\n size=\"narrow\"\n :is-open=\"isDrawerOpen\"\n :title=\"t('ll.allFilters')\"\n v-bind=\"props.drawerProps\"\n @dismiss=\"onDismiss\"\n >\n <template #headerAction>\n <Button\n v-if=\"isViewingSingleGroup\"\n icon\n class=\"tw-text-ice-100\"\n data-test=\"stash-data-view-filters|drawer-previous-button\"\n :aria-label=\"t('ll.previous')\"\n :title=\"t('ll.previous')\"\n @click=\"emit('previous')\"\n >\n <Icon name=\"chevron-left\" />\n </Button>\n </template>\n\n <slot name=\"drawer\"></slot>\n\n <template #footer>\n <div class=\"tw-flex tw-justify-end tw-gap-gutter\">\n <Button v-if=\"totalActiveFiltersCount === 0\" secondary @click=\"onDismiss\">\n {{ t('ll.cancel') }}\n </Button>\n <Button\n v-if=\"(isViewingGroupsMenu || props.drawerStyle === 'cascade') && totalActiveFiltersCount > 0\"\n secondary\n :disabled=\"isDataViewLoading\"\n @click=\"handleResetAllClick\"\n >\n {{ t('ll.resetAll') }}\n </Button>\n <Button\n v-if=\"isViewingSingleGroup && activeGroupActiveFiltersCount > 0\"\n secondary\n :disabled=\"isDataViewLoading\"\n @click=\"handleResetGroupClick\"\n >\n {{ t('ll.reset') }}\n </Button>\n <Button\n v-if=\"isViewingSingleGroup || props.drawerStyle === 'cascade'\"\n :disabled=\"isDataViewLoading\"\n @click=\"handleApplyClick\"\n >\n {{ t('ll.apply') }}\n </Button>\n </div>\n </template>\n </Modal>\n </Box>\n</template>\n"],"names":["DrawerStyle","useFilters","schema","dataViewRef","appliedFilters","ref","workingFilters","filterName","dvRef","applyFilters","cloneDeep","resetAllFilters","resetFilterGroup","group","undoWorkingFilters","activeFiltersCounts","computed","counts","config","value","isDefined","totalActiveFiltersCount","count","props","__props","emit","__emit","slots","_useSlots","isDesktop","useMediaQuery","SCREEN_SIZES","isViewingGroupsMenu","isViewingSingleGroup","density","isDataViewLoading","isWithinModule","currentSearch","updateCurrentSearch","inject","DATA_VIEW_INJECTION","provide","DATA_VIEW_FILTERS_UTILS_INJECTION","activeGroupActiveFiltersCount","isDrawerOpen","handleApplyClick","preventDismiss","handleResetGroupClick","handleResetAllClick","onDismiss","watch","_createBlock","Box","_normalizeClass","_unref","_openBlock","SearchBar","_mergeProps","t","_cache","searchTerm","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_renderSlot","_ctx","_createVNode","Label","_createTextVNode","_toDisplayString","_hoisted_3","FilterChip","_hoisted_4","Icon","Button","Modal","_hoisted_5"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataViewFilters.keys-BLu07FiP.js","sources":["../src/components/DataViewFilters/DataViewFilters.keys.ts"],"sourcesContent":["import { Injection } from '../../../types/utils';\nimport { DataViewFiltersUtilsInjection } from './DataViewFilters.types';\n\n// See: https://vuejs.org/guide/typescript/composition-api.html#typing-provide-inject\n\nexport const DATA_VIEW_FILTERS_UTILS_INJECTION: Injection<DataViewFiltersUtilsInjection> = Object.freeze({\n key: Symbol('DATA_VIEW_FILTERS_UTILS_INJECTION_KEY'),\n});\n"],"names":["DATA_VIEW_FILTERS_UTILS_INJECTION"],"mappings":"AAKa,MAAAA,IAA8E,OAAO,OAAO;AAAA,EACvG,KAAK,OAAO,uCAAuC;AACrD,CAAC;"}
1
+ {"version":3,"file":"DataViewFilters.keys-BLu07FiP.js","sources":["../src/components/DataViewFilters/DataViewFilters.keys.ts"],"sourcesContent":["import { Injection } from '../../../types/utils';\nimport { DataViewFiltersUtilsInjection } from './DataViewFilters.types';\n\n// See: https://vuejs.org/guide/typescript/composition-api.html#typing-provide-inject\n\nexport const DATA_VIEW_FILTERS_UTILS_INJECTION: Injection<DataViewFiltersUtilsInjection> = Object.freeze({\n key: Symbol('DATA_VIEW_FILTERS_UTILS_INJECTION_KEY'),\n});\n"],"names":["DATA_VIEW_FILTERS_UTILS_INJECTION"],"mappings":"AAKO,MAAMA,IAA8E,OAAO,OAAO;AAAA,EACvG,KAAK,OAAO,uCAAuC;AACrD,CAAC;"}
@@ -2,33 +2,10 @@ import { ComponentOptionsMixin } from 'vue';
2
2
  import { ComponentProvideOptions } from 'vue';
3
3
  import { ComputedRef } from 'vue';
4
4
  import { DefineComponent } from 'vue';
5
- import { ExtractPropTypes } from 'vue';
6
5
  import { InjectionKey } from 'vue';
7
- import { PropType } from 'vue';
8
6
  import { PublicProps } from 'vue';
9
7
  import { Ref } from 'vue';
10
8
 
11
- declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
12
-
13
- declare type __VLS_Prettify<T> = {
14
- [K in keyof T]: T[K];
15
- } & {};
16
-
17
- declare type __VLS_TypePropsToRuntimeProps<T> = {
18
- [K in keyof T]-?: {} extends Pick<T, K> ? {
19
- type: PropType<__VLS_NonUndefinedable<T[K]>>;
20
- } : {
21
- type: PropType<T[K]>;
22
- required: true;
23
- };
24
- };
25
-
26
- declare type __VLS_WithDefaults<P, D> = {
27
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
28
- default: D[K];
29
- }> : P[K];
30
- };
31
-
32
9
  declare type __VLS_WithTemplateSlots<T, S> = T & {
33
10
  new (): {
34
11
  $slots: S;
@@ -77,35 +54,13 @@ export declare interface DataViewFiltersUtilsInjection {
77
54
  drawerStyle?: DrawerStyles;
78
55
  }
79
56
 
80
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<DataViewFiltersProps>, {
81
- filtersLabelText: any;
82
- isLoading: boolean;
83
- drawerStyle: string;
84
- drawerProps: undefined;
85
- searchBarProps: undefined;
86
- showDrawerPreviousButton: boolean;
87
- showSearch: boolean;
88
- useFiltersInstance: undefined;
89
- onApply: undefined;
90
- activeGroup: undefined;
91
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
92
- "open-drawer": () => void;
93
- dismiss: () => void;
94
- previous: () => void;
95
- "reset-group": () => void;
96
- "reset-all": () => void;
97
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<DataViewFiltersProps>, {
98
- filtersLabelText: any;
99
- isLoading: boolean;
100
- drawerStyle: string;
101
- drawerProps: undefined;
102
- searchBarProps: undefined;
103
- showDrawerPreviousButton: boolean;
104
- showSearch: boolean;
105
- useFiltersInstance: undefined;
106
- onApply: undefined;
107
- activeGroup: undefined;
108
- }>>> & Readonly<{
57
+ declare const _default: __VLS_WithTemplateSlots<DefineComponent<DataViewFiltersProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
58
+ dismiss: () => any;
59
+ "open-drawer": () => any;
60
+ previous: () => any;
61
+ "reset-group": () => any;
62
+ "reset-all": () => any;
63
+ }, string, PublicProps, Readonly<DataViewFiltersProps> & Readonly<{
109
64
  onDismiss?: (() => any) | undefined;
110
65
  "onOpen-drawer"?: (() => any) | undefined;
111
66
  onPrevious?: (() => any) | undefined;
@@ -115,13 +70,13 @@ onPrevious?: (() => any) | undefined;
115
70
  filtersLabelText: string;
116
71
  searchBarProps: SearchBarProps;
117
72
  showSearch: boolean;
118
- drawerStyle: "cascade" | "nested";
73
+ drawerStyle: "nested" | "cascade";
119
74
  drawerProps: ModalProps;
120
75
  showDrawerPreviousButton: boolean;
121
76
  useFiltersInstance: UseFiltersReturnType<object, string>;
122
77
  onApply: OnApplyFilters;
123
78
  activeGroup: string;
124
- }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, Readonly<DataViewFiltersSlots> & DataViewFiltersSlots>;
79
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>, Readonly<DataViewFiltersSlots> & DataViewFiltersSlots>;
125
80
  export default _default;
126
81
 
127
82
  export declare enum DrawerStyle {
@@ -45,8 +45,8 @@ const v = {
45
45
  _: 1
46
46
  })
47
47
  ]),
48
- _: 2
49
- }, 1032, ["aria-expanded", "onClick"])
48
+ _: 1
49
+ }, 8, ["aria-expanded", "onClick"])
50
50
  ]),
51
51
  default: o(() => [
52
52
  c("ul", v, [