@leaflink/stash 49.5.0 → 50.0.1

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 (418) hide show
  1. package/assets/icons/circle-empty.svg +1 -0
  2. package/assets/spritesheet.svg +1 -1
  3. package/dist/Accordion.js +25 -28
  4. package/dist/Accordion.js.map +1 -1
  5. package/dist/Accordion.vue.d.ts +16 -16
  6. package/dist/ActionsDropdown.js +14 -26
  7. package/dist/ActionsDropdown.js.map +1 -1
  8. package/dist/ActionsDropdown.vue.d.ts +12 -12
  9. package/dist/AddressSelect.js +22 -47
  10. package/dist/AddressSelect.js.map +1 -1
  11. package/dist/AddressSelect.vue.d.ts +45 -45
  12. package/dist/Alert.js +4 -6
  13. package/dist/Alert.js.map +1 -1
  14. package/dist/Alert.vue.d.ts +18 -18
  15. package/dist/AppNavigationItem.js +16 -19
  16. package/dist/AppNavigationItem.js.map +1 -1
  17. package/dist/AppNavigationItem.vue.d.ts +4 -4
  18. package/dist/AppSidebar.js +27 -28
  19. package/dist/AppSidebar.js.map +1 -1
  20. package/dist/AppSidebar.vue.d.ts +7 -7
  21. package/dist/AppTopbar.js +12 -17
  22. package/dist/AppTopbar.js.map +1 -1
  23. package/dist/AppTopbar.vue.d.ts +8 -8
  24. package/dist/Avatar.js +1 -1
  25. package/dist/Avatar.vue.d.ts +22 -22
  26. package/dist/Backdrop.js +1 -1
  27. package/dist/Backdrop.vue.d.ts +1 -1
  28. package/dist/Badge.js +1 -1
  29. package/dist/Badge.js.map +1 -1
  30. package/dist/Badge.vue.d.ts +36 -36
  31. package/dist/Box.js +2 -3
  32. package/dist/Box.js.map +1 -1
  33. package/dist/Box.vue.d.ts +12 -12
  34. package/dist/{Box.vue_vue_type_script_setup_true_lang-69e5176b.js → Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js} +1 -1
  35. package/dist/{Box.vue_vue_type_script_setup_true_lang-69e5176b.js.map → Box.vue_vue_type_script_setup_true_lang-DgJHq-09.js.map} +1 -1
  36. package/dist/Button.js +40 -27
  37. package/dist/Button.js.map +1 -1
  38. package/dist/Button.vue.d.ts +34 -27
  39. package/dist/ButtonGroup.js +1 -1
  40. package/dist/ButtonGroup.vue.d.ts +14 -14
  41. package/dist/Card.vue.d.ts +3 -3
  42. package/dist/CardContent.js +1 -1
  43. package/dist/CardContent.vue.d.ts +1 -1
  44. package/dist/CardFooter.js +1 -1
  45. package/dist/CardFooter.vue.d.ts +1 -1
  46. package/dist/CardMedia.js +11 -14
  47. package/dist/CardMedia.js.map +1 -1
  48. package/dist/Carousel.js +179 -180
  49. package/dist/Carousel.js.map +1 -1
  50. package/dist/Carousel.vue.d.ts +33 -11
  51. package/dist/Checkbox.js +38 -35
  52. package/dist/Checkbox.js.map +1 -1
  53. package/dist/Checkbox.vue.d.ts +31 -31
  54. package/dist/ChevronToggle.js +2 -10
  55. package/dist/ChevronToggle.js.map +1 -1
  56. package/dist/ChevronToggle.vue.d.ts +5 -5
  57. package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js → ChevronToggle.vue_vue_type_script_setup_true_lang-DuvluoTi.js} +1 -1
  58. package/dist/{ChevronToggle.vue_vue_type_script_setup_true_lang-fcdf0c19.js.map → ChevronToggle.vue_vue_type_script_setup_true_lang-DuvluoTi.js.map} +1 -1
  59. package/dist/Chip.js +17 -20
  60. package/dist/Chip.js.map +1 -1
  61. package/dist/Chip.vue.d.ts +32 -32
  62. package/dist/ConfirmationCodeInput.js +1 -1
  63. package/dist/ConfirmationCodeInput.js.map +1 -1
  64. package/dist/ConfirmationCodeInput.vue.d.ts +29 -29
  65. package/dist/ContextSwitcher.js +8 -14
  66. package/dist/ContextSwitcher.js.map +1 -1
  67. package/dist/ContextSwitcher.vue.d.ts +32 -32
  68. package/dist/Copy.js +23 -34
  69. package/dist/Copy.js.map +1 -1
  70. package/dist/Copy.vue.d.ts +9 -9
  71. package/dist/CurrencyInput.js +117 -128
  72. package/dist/CurrencyInput.js.map +1 -1
  73. package/dist/CurrencyInput.vue.d.ts +26 -21
  74. package/dist/CustomRender.vue.d.ts +12 -1
  75. package/dist/DataView.js +70 -73
  76. package/dist/DataView.js.map +1 -1
  77. package/dist/{DataView.vue_used_vue_type_style_index_0_lang.module-5c180dba.js → DataView.keys-C7eaZg2G.js} +5 -8
  78. package/dist/DataView.keys-C7eaZg2G.js.map +1 -0
  79. package/dist/DataView.vue.d.ts +51 -51
  80. package/dist/DataViewFilters.js +76 -90
  81. package/dist/DataViewFilters.js.map +1 -1
  82. package/dist/{DataViewFilters.keys-c80ffabe.js → DataViewFilters.keys-BLu07FiP.js} +1 -1
  83. package/dist/{DataViewFilters.keys-c80ffabe.js.map → DataViewFilters.keys-BLu07FiP.js.map} +1 -1
  84. package/dist/DataViewFilters.vue.d.ts +39 -39
  85. package/dist/DataViewSortButton.js +30 -43
  86. package/dist/DataViewSortButton.js.map +1 -1
  87. package/dist/DataViewSortButton.vue.d.ts +3 -3
  88. package/dist/DataViewToolbar.js +27 -36
  89. package/dist/DataViewToolbar.js.map +1 -1
  90. package/dist/DataViewToolbar.vue.d.ts +17 -17
  91. package/dist/DatePicker.js +649 -662
  92. package/dist/DatePicker.js.map +1 -1
  93. package/dist/DatePicker.vue.d.ts +73 -73
  94. package/dist/DescriptionList.js +1 -1
  95. package/dist/{DescriptionList.keys-c906ce05.js → DescriptionList.keys-BHlHYV6b.js} +1 -1
  96. package/dist/{DescriptionList.keys-c906ce05.js.map → DescriptionList.keys-BHlHYV6b.js.map} +1 -1
  97. package/dist/DescriptionList.vue.d.ts +6 -6
  98. package/dist/DescriptionListDetail.js +1 -1
  99. package/dist/DescriptionListDetail.vue.d.ts +1 -1
  100. package/dist/DescriptionListGroup.js +1 -1
  101. package/dist/DescriptionListGroup.vue.d.ts +1 -1
  102. package/dist/DescriptionListTerm.js +1 -1
  103. package/dist/DescriptionListTerm.vue.d.ts +1 -1
  104. package/dist/Dialog.js +26 -30
  105. package/dist/Dialog.js.map +1 -1
  106. package/dist/Dialog.vue.d.ts +34 -34
  107. package/dist/Divider.js +1 -1
  108. package/dist/Divider.js.map +1 -1
  109. package/dist/Divider.vue.d.ts +1 -1
  110. package/dist/Dropdown.js +21 -28
  111. package/dist/Dropdown.js.map +1 -1
  112. package/dist/Dropdown.vue.d.ts +28 -28
  113. package/dist/EmptyState.js +32 -33
  114. package/dist/EmptyState.js.map +1 -1
  115. package/dist/EmptyState.vue.d.ts +36 -36
  116. package/dist/Expand.js +2 -3
  117. package/dist/Expand.js.map +1 -1
  118. package/dist/Expand.vue.d.ts +14 -14
  119. package/dist/{Expand.vue_vue_type_script_setup_true_lang-0f236267.js → Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js} +1 -1
  120. package/dist/{Expand.vue_vue_type_script_setup_true_lang-0f236267.js.map → Expand.vue_vue_type_script_setup_true_lang-D0fSAtHr.js.map} +1 -1
  121. package/dist/Field.js +2 -7
  122. package/dist/Field.js.map +1 -1
  123. package/dist/Field.vue.d.ts +30 -30
  124. package/dist/{Field.vue_vue_type_script_setup_true_lang-fded4f75.js → Field.vue_vue_type_script_setup_true_lang-DjxUvSRF.js} +2 -2
  125. package/dist/{Field.vue_vue_type_script_setup_true_lang-fded4f75.js.map → Field.vue_vue_type_script_setup_true_lang-DjxUvSRF.js.map} +1 -1
  126. package/dist/FileUpload.js +58 -57
  127. package/dist/FileUpload.js.map +1 -1
  128. package/dist/FileUpload.vue.d.ts +28 -28
  129. package/dist/FilterChip.js +12 -17
  130. package/dist/FilterChip.js.map +1 -1
  131. package/dist/FilterChip.vue.d.ts +19 -19
  132. package/dist/FilterDrawerItem.js +24 -30
  133. package/dist/FilterDrawerItem.js.map +1 -1
  134. package/dist/FilterDrawerItem.vue.d.ts +2 -2
  135. package/dist/FilterDropdown.js +41 -57
  136. package/dist/FilterDropdown.js.map +1 -1
  137. package/dist/FilterDropdown.vue.d.ts +9 -9
  138. package/dist/FilterSelect.js +36 -45
  139. package/dist/FilterSelect.js.map +1 -1
  140. package/dist/FilterSelect.vue.d.ts +5 -5
  141. package/dist/Filters.js +60 -96
  142. package/dist/Filters.js.map +1 -1
  143. package/dist/Filters.vue.d.ts +2005 -2294
  144. package/dist/HttpError.js +16 -23
  145. package/dist/HttpError.js.map +1 -1
  146. package/dist/HttpError.vue.d.ts +18 -18
  147. package/dist/Icon.js +28 -22
  148. package/dist/Icon.js.map +1 -1
  149. package/dist/Icon.vue.d.ts +13 -13
  150. package/dist/IconLabel.js +9 -12
  151. package/dist/IconLabel.js.map +1 -1
  152. package/dist/IconLabel.vue.d.ts +17 -17
  153. package/dist/Illustration.js +8 -11
  154. package/dist/Illustration.js.map +1 -1
  155. package/dist/Illustration.vue.d.ts +21 -21
  156. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js → Illustration.vue_vue_type_script_setup_true_lang-C3qG3Ty6.js} +2 -2
  157. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js.map → Illustration.vue_vue_type_script_setup_true_lang-C3qG3Ty6.js.map} +1 -1
  158. package/dist/Image.js.map +1 -1
  159. package/dist/Image.vue.d.ts +18 -18
  160. package/dist/InlineEdit.js +19 -30
  161. package/dist/InlineEdit.js.map +1 -1
  162. package/dist/InlineEdit.vue.d.ts +26 -26
  163. package/dist/Input.js +58 -64
  164. package/dist/Input.js.map +1 -1
  165. package/dist/Input.vue.d.ts +44 -36
  166. package/dist/InputOptions.js +66 -93
  167. package/dist/InputOptions.js.map +1 -1
  168. package/dist/InputOptions.vue.d.ts +66 -58
  169. package/dist/IntegrationIcon.js +2 -2
  170. package/dist/IntegrationIcon.js.map +1 -1
  171. package/dist/IntegrationIcon.vue.d.ts +12 -12
  172. package/dist/Label.js +2 -5
  173. package/dist/Label.js.map +1 -1
  174. package/dist/Label.vue.d.ts +17 -17
  175. package/dist/{Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js → Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js} +1 -1
  176. package/dist/{Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js.map → Label.vue_vue_type_script_setup_true_lang-C4JKdqvC.js.map} +1 -1
  177. package/dist/LicenseChip.js +10 -16
  178. package/dist/LicenseChip.js.map +1 -1
  179. package/dist/LicenseChip.vue.d.ts +3 -3
  180. package/dist/ListItem.js +5 -8
  181. package/dist/ListItem.js.map +1 -1
  182. package/dist/ListItem.vue.d.ts +275 -225
  183. package/dist/ListItemCell.js +1 -1
  184. package/dist/ListItemCell.js.map +1 -1
  185. package/dist/ListItemCell.vue.d.ts +13 -2
  186. package/dist/ListView.js +57 -101
  187. package/dist/ListView.js.map +1 -1
  188. package/dist/ListView.vue.d.ts +5185 -5430
  189. package/dist/Loading.js +12 -10
  190. package/dist/Loading.js.map +1 -1
  191. package/dist/Loading.vue.d.ts +1 -1
  192. package/dist/Logo.js +2 -4
  193. package/dist/Logo.js.map +1 -1
  194. package/dist/Logo.vue.d.ts +17 -17
  195. package/dist/{Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js → Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js} +1 -1
  196. package/dist/{Logo.vue_vue_type_script_setup_true_lang-2a2597cb.js.map → Logo.vue_vue_type_script_setup_true_lang-BfUU9J9O.js.map} +1 -1
  197. package/dist/Menu.js +1 -1
  198. package/dist/Menu.vue.d.ts +1 -1
  199. package/dist/MenuItem.js +1 -1
  200. package/dist/MenuItem.vue.d.ts +1 -1
  201. package/dist/{MenusPlugin-9288029a.js → MenusPlugin-Bk6UW6o9.js} +1 -1
  202. package/dist/{MenusPlugin-9288029a.js.map → MenusPlugin-Bk6UW6o9.js.map} +1 -1
  203. package/dist/Metric.vue.d.ts +10 -10
  204. package/dist/Modal.js +27 -32
  205. package/dist/Modal.js.map +1 -1
  206. package/dist/Modal.vue.d.ts +42 -42
  207. package/dist/Modals.js +14 -16
  208. package/dist/Modals.js.map +1 -1
  209. package/dist/Modals.vue.d.ts +1 -1
  210. package/dist/ModalsPlugin.js +9 -12
  211. package/dist/ModalsPlugin.js.map +1 -1
  212. package/dist/Module.js +3 -3
  213. package/dist/{Module.keys-2cc7d830.js → Module.keys-CEsrW2f0.js} +1 -1
  214. package/dist/{Module.keys-2cc7d830.js.map → Module.keys-CEsrW2f0.js.map} +1 -1
  215. package/dist/{Module.types-3f78f2a0.js → Module.types-B1FfGGac.js} +1 -1
  216. package/dist/{Module.types-3f78f2a0.js.map → Module.types-B1FfGGac.js.map} +1 -1
  217. package/dist/Module.vue.d.ts +3 -3
  218. package/dist/ModuleContent.js +2 -2
  219. package/dist/ModuleContent.vue.d.ts +1 -1
  220. package/dist/ModuleFooter.js +2 -2
  221. package/dist/ModuleFooter.vue.d.ts +1 -1
  222. package/dist/ModuleHeader.js +3 -3
  223. package/dist/ModuleHeader.vue.d.ts +15 -15
  224. package/dist/ObfuscateText.js +8 -13
  225. package/dist/ObfuscateText.js.map +1 -1
  226. package/dist/ObfuscateText.vue.d.ts +18 -18
  227. package/dist/PageContent.js +1 -1
  228. package/dist/PageContent.vue.d.ts +1 -1
  229. package/dist/PageHeader.js +26 -23
  230. package/dist/PageHeader.js.map +1 -1
  231. package/dist/PageHeader.vue.d.ts +7 -4
  232. package/dist/PageNavigation.js +41 -64
  233. package/dist/PageNavigation.js.map +1 -1
  234. package/dist/PageNavigation.vue.d.ts +10 -10
  235. package/dist/Paginate.js +36 -34
  236. package/dist/Paginate.js.map +1 -1
  237. package/dist/Paginate.vue.d.ts +11 -11
  238. package/dist/PlaidLink.js +3 -5
  239. package/dist/PlaidLink.js.map +1 -1
  240. package/dist/PlaidLink.vue.d.ts +29 -29
  241. package/dist/QuickAction.js +12 -15
  242. package/dist/QuickAction.js.map +1 -1
  243. package/dist/QuickAction.vue.d.ts +1 -1
  244. package/dist/Radio.js +1 -1
  245. package/dist/Radio.js.map +1 -1
  246. package/dist/Radio.vue.d.ts +83 -12
  247. package/dist/RadioGroup.js +41 -45
  248. package/dist/RadioGroup.js.map +1 -1
  249. package/dist/{RadioGroup.keys-974818d6.js → RadioGroup.keys-CqfiKkNz.js} +1 -1
  250. package/dist/{RadioGroup.keys-974818d6.js.map → RadioGroup.keys-CqfiKkNz.js.map} +1 -1
  251. package/dist/RadioGroup.vue.d.ts +30 -30
  252. package/dist/RadioNew.js +2 -2
  253. package/dist/RadioNew.js.map +1 -1
  254. package/dist/RadioNew.vue.d.ts +26 -26
  255. package/dist/RangeInput.js +10 -14
  256. package/dist/RangeInput.js.map +1 -1
  257. package/dist/RangeInput.vue.d.ts +1 -1
  258. package/dist/SearchBar.js +31 -41
  259. package/dist/SearchBar.js.map +1 -1
  260. package/dist/SearchBar.vue.d.ts +22 -22
  261. package/dist/Select.js +66 -78
  262. package/dist/Select.js.map +1 -1
  263. package/dist/Select.vue.d.ts +123 -123
  264. package/dist/SelectStatus.js +47 -69
  265. package/dist/SelectStatus.js.map +1 -1
  266. package/dist/SelectStatus.vue.d.ts +33 -26
  267. package/dist/Skeleton.js +1 -1
  268. package/dist/Skeleton.js.map +1 -1
  269. package/dist/Skeleton.vue.d.ts +9 -9
  270. package/dist/Step.js +10 -14
  271. package/dist/Step.js.map +1 -1
  272. package/dist/Step.vue.d.ts +21 -21
  273. package/dist/Stepper.js +37 -40
  274. package/dist/Stepper.js.map +1 -1
  275. package/dist/Stepper.vue.d.ts +34 -29
  276. package/dist/Switch.js +1 -1
  277. package/dist/Switch.vue.d.ts +23 -23
  278. package/dist/Tab.js +21 -36
  279. package/dist/Tab.js.map +1 -1
  280. package/dist/Table.js +38 -55
  281. package/dist/Table.js.map +1 -1
  282. package/dist/Table.keys-LHQf6FEH.js +7 -0
  283. package/dist/{Table.keys-83e4f09b.js.map → Table.keys-LHQf6FEH.js.map} +1 -1
  284. package/dist/Table.vue.d.ts +36 -36
  285. package/dist/TableCell.js +26 -26
  286. package/dist/TableCell.js.map +1 -1
  287. package/dist/TableCell.vue.d.ts +6 -6
  288. package/dist/TableHeaderCell.js +6 -13
  289. package/dist/TableHeaderCell.js.map +1 -1
  290. package/dist/TableHeaderCell.vue.d.ts +3 -3
  291. package/dist/TableHeaderRow.js +22 -32
  292. package/dist/TableHeaderRow.js.map +1 -1
  293. package/dist/TableHeaderRow.vue.d.ts +8 -8
  294. package/dist/TableRow.js +59 -59
  295. package/dist/TableRow.js.map +1 -1
  296. package/dist/TableRow.vue.d.ts +26 -26
  297. package/dist/Tabs.js +10 -24
  298. package/dist/Tabs.js.map +1 -1
  299. package/dist/Tabs.vue.d.ts +5 -5
  300. package/dist/{Tabs.vue_used_vue_type_style_index_0_lang.module-d7530989.js → Tabs.vue_vue_type_script_setup_true_lang-l41hWkV4.js} +31 -34
  301. package/dist/Tabs.vue_vue_type_script_setup_true_lang-l41hWkV4.js.map +1 -0
  302. package/dist/TextEditor.js +1269 -1364
  303. package/dist/TextEditor.js.map +1 -1
  304. package/dist/TextEditor.vue.d.ts +46 -46
  305. package/dist/Textarea.js +30 -31
  306. package/dist/Textarea.js.map +1 -1
  307. package/dist/Textarea.vue.d.ts +34 -26
  308. package/dist/Timeline.js +9 -10
  309. package/dist/Timeline.js.map +1 -1
  310. package/dist/Timeline.vue.d.ts +6 -6
  311. package/dist/TimelineItem.js +1 -1
  312. package/dist/TimelineItem.vue.d.ts +1 -1
  313. package/dist/Toast.js +5 -9
  314. package/dist/Toast.js.map +1 -1
  315. package/dist/Toast.vue.d.ts +3 -3
  316. package/dist/Toasts.js +15 -25
  317. package/dist/Toasts.js.map +1 -1
  318. package/dist/Toasts.vue.d.ts +1 -1
  319. package/dist/ToastsPlugin.js +11 -23
  320. package/dist/ToastsPlugin.js.map +1 -1
  321. package/dist/Tooltip.js +1 -1
  322. package/dist/Tooltip.js.map +1 -1
  323. package/dist/Tooltip.vue.d.ts +15 -15
  324. package/dist/{_commonjsHelpers-10dfc225.js → _commonjsHelpers-DaMA6jEr.js} +1 -1
  325. package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
  326. package/dist/{_plugin-vue_export-helper-dad06003.js → _plugin-vue_export-helper-CHgC5LLL.js} +1 -1
  327. package/dist/_plugin-vue_export-helper-CHgC5LLL.js.map +1 -0
  328. package/dist/{colors-8d9b9429.js → colors-DDDVvqfQ.js} +1 -1
  329. package/dist/{colors-8d9b9429.js.map → colors-DDDVvqfQ.js.map} +1 -1
  330. package/dist/components.css +2 -2
  331. package/dist/directives/observe.js.map +1 -1
  332. package/dist/directives/sticky.js.map +1 -1
  333. package/dist/directives/tooltip.js +21 -27
  334. package/dist/directives/tooltip.js.map +1 -1
  335. package/dist/directives/viewable.js +1 -1
  336. package/dist/directives/viewable.js.map +1 -1
  337. package/dist/{floating-ui.vue-8d7f7932.js → floating-ui.vue-BmfQDqE-.js} +2 -3
  338. package/dist/{floating-ui.vue-8d7f7932.js.map → floating-ui.vue-BmfQDqE-.js.map} +1 -1
  339. package/dist/{formatDateTime-a5e70901.js → formatDateTime-C8CYECpd.js} +8 -12
  340. package/dist/{formatDateTime-a5e70901.js.map → formatDateTime-C8CYECpd.js.map} +1 -1
  341. package/dist/{index-9e1095ef.js → index-D6bxWkZ1.js} +2 -3
  342. package/dist/{index-9e1095ef.js.map → index-D6bxWkZ1.js.map} +1 -1
  343. package/dist/index.d.ts +1 -1
  344. package/dist/index.js +90 -112
  345. package/dist/index.js.map +1 -1
  346. package/dist/{isDefined-2ce6cde4.js → isDefined-DzVx0B6k.js} +1 -1
  347. package/dist/{isDefined-2ce6cde4.js.map → isDefined-DzVx0B6k.js.map} +1 -1
  348. package/dist/{isValid-4b2b7a54.js → isValid-DN-HkCoi.js} +1 -1
  349. package/dist/{isValid-4b2b7a54.js.map → isValid-DN-HkCoi.js.map} +1 -1
  350. package/dist/{keys-241d03b7.js → keys-BEdEsanp.js} +1 -1
  351. package/dist/{keys-241d03b7.js.map → keys-BEdEsanp.js.map} +1 -1
  352. package/dist/{keys-7ecef029.js → keys-C8Zfr_By.js} +1 -1
  353. package/dist/{keys-7ecef029.js.map → keys-C8Zfr_By.js.map} +1 -1
  354. package/dist/{misc-76697f61.js → misc-CHQs-G03.js} +1 -1
  355. package/dist/{misc-76697f61.js.map → misc-CHQs-G03.js.map} +1 -1
  356. package/dist/{parseISO-ed4094c1.js → parseISO-wlfIB_QJ.js} +12 -18
  357. package/dist/{parseISO-ed4094c1.js.map → parseISO-wlfIB_QJ.js.map} +1 -1
  358. package/dist/{searchFuzzy-9b74ec4e.js → searchFuzzy-DKooyZM8.js} +110 -149
  359. package/dist/{searchFuzzy-9b74ec4e.js.map → searchFuzzy-DKooyZM8.js.map} +1 -1
  360. package/dist/{statusLevels-a8b041f4.js → statusLevels-D8EgtE_L.js} +1 -1
  361. package/dist/{statusLevels-a8b041f4.js.map → statusLevels-D8EgtE_L.js.map} +1 -1
  362. package/dist/storage.js +8 -15
  363. package/dist/storage.js.map +1 -1
  364. package/dist/tailwind-base.js.map +1 -1
  365. package/dist/{toTimeZone-a2ed6470.js → toTimeZone-CVE1ZmsS.js} +1 -1
  366. package/dist/{toTimeZone-a2ed6470.js.map → toTimeZone-CVE1ZmsS.js.map} +1 -1
  367. package/dist/useDialog.js +7 -7
  368. package/dist/useGoogleMaps.js +18 -28
  369. package/dist/useGoogleMaps.js.map +1 -1
  370. package/dist/useModals.js +1 -2
  371. package/dist/useModals.js.map +1 -1
  372. package/dist/useScriptTag.js.map +1 -1
  373. package/dist/useSearch.js +14 -19
  374. package/dist/useSearch.js.map +1 -1
  375. package/dist/useStepper.js.map +1 -1
  376. package/dist/useValidation.js +1 -1
  377. package/dist/useValidation.js.map +1 -1
  378. package/dist/utils/calculateElementOverflow.js +9 -13
  379. package/dist/utils/calculateElementOverflow.js.map +1 -1
  380. package/dist/utils/colorScheme.js.map +1 -1
  381. package/dist/utils/createQueryString.js +4 -5
  382. package/dist/utils/createQueryString.js.map +1 -1
  383. package/dist/utils/createValidDate.js +2 -2
  384. package/dist/utils/formatDateTime.js +4 -5
  385. package/dist/utils/formatDateTime.js.map +1 -1
  386. package/dist/utils/getContrastingTextColor.js +1 -1
  387. package/dist/utils/getContrastingTextColor.js.map +1 -1
  388. package/dist/utils/helpers.js.map +1 -1
  389. package/dist/utils/i18n.js +25 -26
  390. package/dist/utils/i18n.js.map +1 -1
  391. package/dist/utils/normalizeDate.js +1 -1
  392. package/dist/utils/searchFuzzy.js +3 -10
  393. package/dist/utils/searchFuzzy.js.map +1 -1
  394. package/dist/utils/storage.js +6 -11
  395. package/dist/utils/storage.js.map +1 -1
  396. package/dist/utils/toTimeZone.js +2 -3
  397. package/dist/utils/toTimeZone.js.map +1 -1
  398. package/package.json +13 -14
  399. package/dist/Button.vue_used_vue_type_style_index_0_lang.module-4dabc2a9.js +0 -17
  400. package/dist/Button.vue_used_vue_type_style_index_0_lang.module-4dabc2a9.js.map +0 -1
  401. package/dist/Carousel.types.d.ts +0 -33
  402. package/dist/Carousel.types.js +0 -2
  403. package/dist/Carousel.types.js.map +0 -1
  404. package/dist/Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js +0 -9
  405. package/dist/Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js.map +0 -1
  406. package/dist/DataView.vue_used_vue_type_style_index_0_lang.module-5c180dba.js.map +0 -1
  407. package/dist/EmptyState.vue_used_vue_type_style_index_0_lang.module-f5d89366.js +0 -8
  408. package/dist/EmptyState.vue_used_vue_type_style_index_0_lang.module-f5d89366.js.map +0 -1
  409. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js +0 -11
  410. package/dist/Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js.map +0 -1
  411. package/dist/Loading.vue_used_vue_type_style_index_0_lang.module-ef5a3bc6.js +0 -8
  412. package/dist/Loading.vue_used_vue_type_style_index_0_lang.module-ef5a3bc6.js.map +0 -1
  413. package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js +0 -11
  414. package/dist/Paginate.vue_used_vue_type_style_index_0_lang.module-18343da7.js.map +0 -1
  415. package/dist/Table.keys-83e4f09b.js +0 -27
  416. package/dist/Tabs.vue_used_vue_type_style_index_0_lang.module-d7530989.js.map +0 -1
  417. package/dist/_commonjsHelpers-10dfc225.js.map +0 -1
  418. package/dist/_plugin-vue_export-helper-dad06003.js.map +0 -1
@@ -27,15 +27,15 @@ declare type __VLS_WithDefaults<P, D> = {
27
27
  };
28
28
 
29
29
  declare const _default: DefineComponent<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<FilterSelectProps>, {
30
- canSelectAll: boolean;
30
+ canSelectAll: boolean;
31
31
  }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
32
- "update:modelValue": (value: FilterSelectModelValue) => void;
32
+ "update:modelValue": (value: FilterSelectModelValue) => void;
33
33
  }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<FilterSelectProps>, {
34
- canSelectAll: boolean;
34
+ canSelectAll: boolean;
35
35
  }>>> & Readonly<{
36
- "onUpdate:modelValue"?: ((value: FilterSelectModelValue) => any) | undefined;
36
+ "onUpdate:modelValue"?: ((value: FilterSelectModelValue) => any) | undefined;
37
37
  }>, {
38
- canSelectAll: boolean;
38
+ canSelectAll: boolean;
39
39
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
40
40
  export default _default;
41
41
 
package/dist/Filters.js CHANGED
@@ -12,43 +12,7 @@ import X from "./Input.js";
12
12
  import Z from "./InputOptions.js";
13
13
  import I from "./Radio.js";
14
14
  import $ from "./Select.js";
15
- import { _ as ee } from "./_plugin-vue_export-helper-dad06003.js";
16
- import "lodash-es/debounce";
17
- import "lodash-es/get";
18
- import "./isDefined-2ce6cde4.js";
19
- import "lodash-es/round";
20
- import "./utils/storage.js";
21
- import "@leaflink/snitch";
22
- import "./utils/helpers.js";
23
- import "lodash-es/camelCase";
24
- import "lodash-es/isFinite";
25
- import "lodash-es/isPlainObject";
26
- import "./Icon.js";
27
- import "lodash-es/uniqueId";
28
- import "./index-9e1095ef.js";
29
- import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
30
- import "./Button.vue_used_vue_type_style_index_0_lang.module-4dabc2a9.js";
31
- import "./Checkbox.vue_used_vue_type_style_index_0_lang.module-fa8d9c06.js";
32
- import "./utils/createValidDate.js";
33
- import "./parseISO-ed4094c1.js";
34
- import "./isValid-4b2b7a54.js";
35
- import "./formatDateTime-a5e70901.js";
36
- import "./utils/normalizeDate.js";
37
- import "./toTimeZone-a2ed6470.js";
38
- import "lodash-es/isNil";
39
- import "./utils/i18n.js";
40
- import "./Field.vue_vue_type_script_setup_true_lang-fded4f75.js";
41
- import "./Label.vue_vue_type_script_setup_true_lang-b6ba2f02.js";
42
- import "./floating-ui.vue-8d7f7932.js";
43
- import "lodash-es/isEmpty";
44
- import "lodash-es/isEqual";
45
- import "./useSearch.js";
46
- import "./searchFuzzy-9b74ec4e.js";
47
- import "./_commonjsHelpers-10dfc225.js";
48
- import "./directives/clickoutside.js";
49
- import "./MenusPlugin-9288029a.js";
50
- import "./Chip.js";
51
- import "./utils/colorScheme.js";
15
+ import { _ as ee } from "./_plugin-vue_export-helper-CHgC5LLL.js";
52
16
  const te = {
53
17
  "filter-button-group": "_filter-button-group_1o1yr_2"
54
18
  }, le = {
@@ -95,18 +59,18 @@ const te = {
95
59
  },
96
60
  emits: ["change", "submit", "reset"],
97
61
  setup(l) {
98
- const { validationSchema: s } = G(l), o = s.value(), i = E({}), t = E();
99
- function r() {
100
- if ((o == null ? void 0 : o.toString()) !== "[object Object]")
62
+ const { validationSchema: r } = G(l), i = r.value(), s = E({}), t = E();
63
+ function o() {
64
+ if ((i == null ? void 0 : i.toString()) !== "[object Object]")
101
65
  return;
102
- i.value = Object.keys(o).reduce((d, m) => (d[m] = void 0, d), {});
103
- const p = Object.entries(o).reduce((d, [m, h]) => (d[m] = h.map((c) => c(i)), d), {});
104
- t.value = q({ rules: p, values: i }), t.value.validate();
66
+ s.value = Object.keys(i).reduce((d, h) => (d[h] = void 0, d), {});
67
+ const p = Object.entries(i).reduce((d, [h, m]) => (d[h] = m.map((c) => c(s)), d), {});
68
+ t.value = q({ rules: p, values: s }), t.value.validate();
105
69
  }
106
70
  return {
107
71
  validation: t,
108
- validationValues: i,
109
- initValidation: r
72
+ validationValues: s,
73
+ initValidation: o
110
74
  };
111
75
  },
112
76
  data() {
@@ -126,33 +90,33 @@ const te = {
126
90
  * @returns {IFilter}
127
91
  */
128
92
  handler: function(l) {
129
- const s = Object.keys(l).reduce((o, i) => {
130
- const t = this.schema[i];
93
+ const r = Object.keys(l).reduce((i, s) => {
94
+ const t = this.schema[s];
131
95
  if (!t || !t.fieldToFilter)
132
- return o;
133
- const r = l[i];
134
- if (r === "" || r == null)
135
- return o;
136
- const p = t.attributes.trackBy || "id", d = typeof r == "object", m = typeof t.type == "object", h = m && t.attributes.multiple || !m && t.type.includes("ll-select") && (t.attributes.multiple || !t.attributes.single), c = h ? (
96
+ return i;
97
+ const o = l[s];
98
+ if (o === "" || o == null)
99
+ return i;
100
+ const p = t.attributes.trackBy || "id", d = typeof o == "object", h = typeof t.type == "object", m = h && t.attributes.multiple || !h && t.type.includes("ll-select") && (t.attributes.multiple || !t.attributes.single), c = m ? (
137
101
  // local storage might have item stored as an object from the old Select
138
- (Array.isArray(r) ? r : [r]).map((a) => a[p])
139
- ) : d ? [r[p]] : [r], e = t.groupedWith;
102
+ (Array.isArray(o) ? o : [o]).map((a) => a[p])
103
+ ) : d ? [o[p]] : [o], e = t.groupedWith;
140
104
  return e && (c[0] = {
141
105
  index: e,
142
106
  value: l[e]
143
107
  }, c.push({
144
- index: Number(i),
145
- value: l[i]
146
- })), c.length && (o[t.fieldToFilter] = {
108
+ index: Number(s),
109
+ value: l[s]
110
+ })), c.length && (i[t.fieldToFilter] = {
147
111
  // don't add to `filters` if no filterBy
148
112
  filterBy: c,
149
113
  filterType: t.type,
150
114
  // Informs the applied filter count
151
- isMultiple: h,
115
+ isMultiple: m,
152
116
  ..."fn" in t && { customFilter: t.fn }
153
- }), o;
117
+ }), i;
154
118
  }, {});
155
- this.filters = s, this.$emit("change", s);
119
+ this.filters = r, this.$emit("change", r);
156
120
  },
157
121
  deep: !0,
158
122
  immediate: !0
@@ -191,7 +155,7 @@ const te = {
191
155
  * Returns pre-defined filter values to become the default values
192
156
  */
193
157
  getDefaultFilterValues() {
194
- return this.schema.reduce((l, s, o) => (s.type === "ll-checkbox" ? l[o] = s.attributes.checked || !1 : Object.prototype.hasOwnProperty.call(s.attributes, "modelValue") && (l[o] = s.attributes.modelValue), l), {});
158
+ return this.schema.reduce((l, r, i) => (r.type === "ll-checkbox" ? l[i] = r.attributes.checked || !1 : Object.prototype.hasOwnProperty.call(r.attributes, "modelValue") && (l[i] = r.attributes.modelValue), l), {});
195
159
  },
196
160
  /**
197
161
  * Intended for external use, when filter values need to be set for the user
@@ -201,26 +165,26 @@ const te = {
201
165
  },
202
166
  updateValidationValues() {
203
167
  const l = Object.keys(this.validationSchema());
204
- this.schema.forEach((s, o) => {
205
- const i = s.fieldToFilter;
206
- if (l.includes(i)) {
207
- const r = this.filters[i], p = r ? r.isMultiple ? r.filterBy : r.filterBy[0] : this.filterValues[o];
208
- this.validationValues[i] = p;
168
+ this.schema.forEach((r, i) => {
169
+ const s = r.fieldToFilter;
170
+ if (l.includes(s)) {
171
+ const o = this.filters[s], p = o ? o.isMultiple ? o.filterBy : o.filterBy[0] : this.filterValues[i];
172
+ this.validationValues[s] = p;
209
173
  }
210
174
  });
211
175
  },
212
176
  /**
213
177
  * Change handler for filter fields
214
178
  */
215
- onChange(l, s, o) {
216
- var i;
217
- (i = l.on) != null && i.change && l.on.change(s, o);
179
+ onChange(l, r, i) {
180
+ var s;
181
+ (s = l.on) != null && s.change && l.on.change(r, i);
218
182
  },
219
183
  /**
220
184
  * Select input event handler for filter fields
221
185
  */
222
- onSelectInput(l, s, o) {
223
- l === void 0 ? delete this.filterValues[o] : this.filterValues[o] = l, this.onChange(s, this.filterValues, o);
186
+ onSelectInput(l, r, i) {
187
+ l === void 0 ? delete this.filterValues[i] : this.filterValues[i] = l, this.onChange(r, this.filterValues, i);
224
188
  },
225
189
  /**
226
190
  * Get filter values from local storage.
@@ -237,12 +201,12 @@ const te = {
237
201
  M.set("filter-values", N(l));
238
202
  }
239
203
  }
240
- }, ie = { class: "tw-ll-grid tw-grid-cols-4 md:tw-grid-cols-12" }, oe = ["data-test"], re = ["innerHTML"], se = ["innerHTML"];
241
- function ae(l, s, o, i, t, r) {
204
+ }, se = { class: "tw-ll-grid tw-grid-cols-4 md:tw-grid-cols-12" }, ie = ["data-test"], oe = ["innerHTML"], re = ["innerHTML"];
205
+ function ae(l, r, i, s, t, o) {
242
206
  var c;
243
- const p = V("ll-select"), d = V("ll-checkbox"), m = V("ll-radio"), h = V("ll-button");
244
- return u(), _("div", ie, [
245
- (u(!0), _(P, null, z(o.schema, (e, a) => {
207
+ const p = V("ll-select"), d = V("ll-checkbox"), h = V("ll-radio"), m = V("ll-button");
208
+ return u(), _("div", se, [
209
+ (u(!0), _(P, null, z(i.schema, (e, a) => {
246
210
  var g, F, T, C, w, x, B, j;
247
211
  return u(), _(P, null, [
248
212
  e.hidden ? L("", !0) : (u(), _("div", {
@@ -254,35 +218,35 @@ function ae(l, s, o, i, t, r) {
254
218
  key: 0,
255
219
  ref_for: !0
256
220
  }, e.attributes, {
257
- error: ((g = i.validation) == null ? void 0 : g.fields[e.fieldToFilter]) && ((F = i.validation) == null ? void 0 : F.getError(e.fieldToFilter)),
221
+ error: ((g = s.validation) == null ? void 0 : g.fields[e.fieldToFilter]) && ((F = s.validation) == null ? void 0 : F.getError(e.fieldToFilter)),
258
222
  label: e.label,
259
223
  "model-value": t.filterValues[a],
260
- "onUpdate:modelValue": (n) => r.onSelectInput(n, e, a)
224
+ "onUpdate:modelValue": (n) => o.onSelectInput(n, e, a)
261
225
  }), null, 16, ["error", "label", "model-value", "onUpdate:modelValue"])) : e.type === "ll-checkbox" ? (u(), f(d, b({
262
226
  key: 1,
263
227
  checked: t.filterValues[a],
264
228
  "onUpdate:checked": (n) => t.filterValues[a] = n,
265
229
  ref_for: !0
266
230
  }, e.attributes, {
267
- "error-text": ((T = i.validation) == null ? void 0 : T.fields[e.fieldToFilter]) && ((C = i.validation) == null ? void 0 : C.getError(e.fieldToFilter)),
231
+ "error-text": ((T = s.validation) == null ? void 0 : T.fields[e.fieldToFilter]) && ((C = s.validation) == null ? void 0 : C.getError(e.fieldToFilter)),
268
232
  label: e.label,
269
- "onUpdate:checked": (n) => r.onChange(e, t.filterValues, a)
270
- }), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type === "ll-radio" ? (u(), f(m, b({
233
+ "onUpdate:checked": (n) => o.onChange(e, t.filterValues, a)
234
+ }), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type === "ll-radio" ? (u(), f(h, b({
271
235
  key: 2,
272
236
  checked: t.filterValues[a],
273
237
  "onUpdate:checked": (n) => t.filterValues[a] = n,
274
238
  ref_for: !0
275
239
  }, e.attributes, {
276
- "error-text": ((w = i.validation) == null ? void 0 : w.fields[e.fieldToFilter]) && ((x = i.validation) == null ? void 0 : x.getError(e.fieldToFilter)),
240
+ "error-text": ((w = s.validation) == null ? void 0 : w.fields[e.fieldToFilter]) && ((x = s.validation) == null ? void 0 : x.getError(e.fieldToFilter)),
277
241
  label: e.label,
278
- "onUpdate:checked": (n) => r.onChange(e, t.filterValues, a)
242
+ "onUpdate:checked": (n) => o.onChange(e, t.filterValues, a)
279
243
  }), null, 16, ["checked", "onUpdate:checked", "error-text", "label"])) : e.type ? (u(), f(k(e.type), b({
280
244
  key: 3,
281
245
  ref_for: !0
282
246
  }, e.attributes, {
283
247
  modelValue: t.filterValues[a],
284
- "onUpdate:modelValue": [(n) => t.filterValues[a] = n, (n) => r.onChange(e, t.filterValues, a)],
285
- "error-text": ((B = i.validation) == null ? void 0 : B.fields[e.fieldToFilter]) && ((j = i.validation) == null ? void 0 : j.getError(e.fieldToFilter)),
248
+ "onUpdate:modelValue": [(n) => t.filterValues[a] = n, (n) => o.onChange(e, t.filterValues, a)],
249
+ "error-text": ((B = s.validation) == null ? void 0 : B.fields[e.fieldToFilter]) && ((j = s.validation) == null ? void 0 : j.getError(e.fieldToFilter)),
286
250
  label: e.label
287
251
  }), Y({ _: 2 }, [
288
252
  e.slots && e.slots.selected ? {
@@ -304,7 +268,7 @@ function ae(l, s, o, i, t, r) {
304
268
  fn: y(() => [
305
269
  v("span", {
306
270
  innerHTML: e.slots.prepend
307
- }, null, 8, re)
271
+ }, null, 8, oe)
308
272
  ]),
309
273
  key: "2"
310
274
  } : void 0,
@@ -313,33 +277,33 @@ function ae(l, s, o, i, t, r) {
313
277
  fn: y(() => [
314
278
  v("span", {
315
279
  innerHTML: e.slots.append
316
- }, null, 8, se)
280
+ }, null, 8, re)
317
281
  ]),
318
282
  key: "3"
319
283
  } : void 0
320
284
  ]), 1040, ["modelValue", "onUpdate:modelValue", "error-text", "label"])) : L("", !0)
321
- ], 10, oe))
285
+ ], 10, ie))
322
286
  ], 64);
323
287
  }), 256)),
324
288
  v("div", {
325
289
  class: S(["button-grid tw-col-span-4 tw-flex tw-items-end tw-justify-end md:tw-col-span-12", l.$style["filter-button-group"]])
326
290
  }, [
327
- O(h, {
291
+ O(m, {
328
292
  secondary: "",
329
293
  "data-test": "button|reset-filters",
330
- disabled: o.disableClear,
331
- onClick: r.resetFilters
294
+ disabled: i.disableClear,
295
+ onClick: o.resetFilters
332
296
  }, {
333
297
  default: y(() => [
334
298
  U(D(t.clearText), 1)
335
299
  ]),
336
300
  _: 1
337
301
  }, 8, ["disabled", "onClick"]),
338
- O(h, {
302
+ O(m, {
339
303
  primary: "",
340
304
  "data-test": "button|apply-filters",
341
- disabled: o.disableApply || ((c = i.validation) == null ? void 0 : c.hasErrors),
342
- onClick: r.applyFilters
305
+ disabled: i.disableApply || ((c = s.validation) == null ? void 0 : c.hasErrors),
306
+ onClick: o.applyFilters
343
307
  }, {
344
308
  default: y(() => [
345
309
  U(D(t.applyText), 1)
@@ -351,8 +315,8 @@ function ae(l, s, o, i, t, r) {
351
315
  }
352
316
  const ne = {
353
317
  $style: te
354
- }, st = /* @__PURE__ */ ee(le, [["render", ae], ["__cssModules", ne]]);
318
+ }, Te = /* @__PURE__ */ ee(le, [["render", ae], ["__cssModules", ne]]);
355
319
  export {
356
- st as default
320
+ Te as default
357
321
  };
358
322
  //# sourceMappingURL=Filters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sources":["../src/components/Filters/Filters.vue"],"sourcesContent":["<script>\n import cloneDeep from 'lodash-es/cloneDeep';\n import merge from 'lodash-es/merge';\n import { nextTick, ref, toRefs } from 'vue';\n\n import useValidation from '../../composables/useValidation/useValidation';\n import { LLLV_CHANGE_TRIGGERS } from '../../constants';\n import { t } from '../../locale';\n import { persistentStorage } from '../../storage';\n import Button from '../Button/Button.vue';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import DatePicker from '../DatePicker/DatePicker.vue';\n import Input from '../Input/Input.vue';\n import InputOptions from '../InputOptions/InputOptions.vue';\n import Radio from '../Radio/Radio.vue';\n import Select from '../Select/Select.vue';\n\n export default {\n name: 'll-filters',\n\n components: {\n 'll-button': Button,\n 'll-checkbox': Checkbox,\n 'll-input': Input,\n 'll-input-options': InputOptions,\n 'll-radio': Radio,\n 'll-select': Select,\n DatePicker,\n },\n\n props: {\n /**\n * Whether to disable the Apply button\n */\n disableApply: Boolean,\n /**\n * Whether to disable the Clear button\n */\n disableClear: Boolean,\n /**\n * Whether to disable the sticky filters\n * If disabled, a default pre-selected value(s) can be added to\n * the filter component's attributes\n */\n disablePersistency: Boolean,\n /**\n * Filters schema\n */\n schema: {\n type: Array,\n default: () => [],\n },\n /**\n * Validation schema function that returns an object\n */\n validationSchema: {\n type: Function,\n default: () => () => undefined,\n },\n },\n\n emits: ['change', 'submit', 'reset'],\n\n setup(props) {\n const { validationSchema: getValidationSchema } = toRefs(props);\n const validationSchema = getValidationSchema.value();\n const validationValues = ref({});\n\n // Without ref, `this.validation` will always evaluate to its initial value of `undefined` due to lack of reactivity.\n const validation = ref();\n\n function initValidation() {\n if (validationSchema?.toString() !== '[object Object]') {\n return;\n }\n\n validationValues.value = Object.keys(validationSchema).reduce((values, fieldName) => {\n values[fieldName] = undefined;\n\n return values;\n }, {});\n\n const validationRules = Object.entries(validationSchema).reduce((rules, [fieldName, fieldRules]) => {\n rules[fieldName] = fieldRules.map((fieldRule) => {\n return fieldRule(validationValues);\n });\n\n return rules;\n }, {});\n\n validation.value = useValidation({ rules: validationRules, values: validationValues });\n validation.value.validate();\n }\n\n return {\n validation,\n validationValues,\n initValidation,\n };\n },\n\n data() {\n return {\n applyText: t('ll.apply'),\n clearText: t('ll.clear'),\n filters: {},\n filterValues: {},\n forceRenderCount: 0,\n };\n },\n\n watch: {\n filterValues: {\n /**\n * Maps filters to a partcular object structure:\n * @param {IFilterSchemaItem} newFilterValues all selected filters\n * @returns {IFilter}\n */\n handler: function (newFilterValues) {\n const filters = Object.keys(newFilterValues).reduce((acc, i) => {\n const schema = this.schema[i];\n\n if (!schema || !schema.fieldToFilter) {\n return acc;\n }\n\n const item = newFilterValues[i];\n\n // Ignore empty string or undefined/null filter values\n if (item === '' || item == null) {\n return acc;\n }\n\n const trackBy = schema.attributes.trackBy || 'id';\n const isObject = typeof item === 'object';\n const isCustomFilterComponent = typeof schema.type === 'object';\n // TODO: remove handling of schema.attributes.multiple when we remove the vue-multiselect version of Select\n const isMultiple =\n (isCustomFilterComponent && schema.attributes.multiple) ||\n (!isCustomFilterComponent &&\n schema.type.includes('ll-select') &&\n (schema.attributes.multiple || !schema.attributes.single));\n const filterBy = isMultiple\n ? // local storage might have item stored as an object from the old Select\n (Array.isArray(item) ? item : [item]).map((v) => v[trackBy])\n : isObject\n ? [item[trackBy]]\n : [item];\n\n const groupedWith = schema.groupedWith;\n\n if (groupedWith) {\n filterBy[0] = {\n index: groupedWith,\n value: newFilterValues[groupedWith],\n };\n filterBy.push({\n index: Number(i),\n value: newFilterValues[i],\n });\n }\n\n filterBy.length &&\n (acc[schema.fieldToFilter] = {\n // don't add to `filters` if no filterBy\n filterBy,\n filterType: schema.type, // Informs the applied filter count\n isMultiple,\n ...('fn' in schema && { customFilter: schema.fn }),\n });\n\n return acc;\n }, {});\n\n this.filters = filters;\n this.$emit('change', filters);\n },\n\n deep: true,\n immediate: true,\n },\n\n filters() {\n if (this.validation) {\n this.updateValidationValues();\n }\n },\n },\n\n async created() {\n // initFilterValues updates the filterValues so using await nextTick() forces the code\n // after it to wait until nextTick is done, at which point the filterValues will\n // be done initializing. Otherwise, applyFilters sometimes applies the wrong\n // filters because filterValues is not done updating.\n this.initFilterValues();\n await nextTick();\n this.initValidation();\n this.applyFilters({ trigger: LLLV_CHANGE_TRIGGERS.LOAD });\n },\n\n methods: {\n initFilterValues() {\n if (this.disablePersistency) {\n this.filterValues = this.getDefaultFilterValues();\n\n return;\n }\n\n this.filterValues = this.getPersistentFilterValues() || this.getDefaultFilterValues();\n },\n\n /**\n * Apply the selected filters and save them to localStorage.\n * ListView calls this method using a ref to Filters.\n * The trigger option is used in ListView.\n * @param {object} [options] - optional parameters\n * @param {string} [options.trigger] - the action that triggered this function call\n */\n async applyFilters({ trigger = LLLV_CHANGE_TRIGGERS.APPLY } = {}) {\n if (this.validation) {\n await this.validation.validate();\n\n if (this.validation.hasErrors) {\n return;\n }\n }\n\n if (!this.disablePersistency) {\n this.persistFilterValues(this.filterValues);\n }\n\n this.$emit('submit', { trigger });\n },\n\n resetFilters() {\n this.filterValues = this.getDefaultFilterValues();\n\n this.forceRenderCount++;\n\n if (!this.disablePersistency) {\n this.persistFilterValues(this.filterValues);\n }\n\n // Emit after filters are updated\n this.$nextTick(() => {\n this.$emit('reset');\n });\n },\n\n /**\n * Returns pre-defined filter values to become the default values\n */\n getDefaultFilterValues() {\n return this.schema.reduce((acc, item, filterIndex) => {\n if (item.type === 'll-checkbox') {\n acc[filterIndex] = item.attributes.checked || false;\n } else if (Object.prototype.hasOwnProperty.call(item.attributes, 'modelValue')) {\n acc[filterIndex] = item.attributes.modelValue;\n }\n\n return acc;\n }, {});\n },\n\n /**\n * Intended for external use, when filter values need to be set for the user\n */\n setFilterValues(newValues) {\n this.filterValues = merge({}, this.filterValues, newValues);\n this.forceRenderCount++;\n },\n\n updateValidationValues() {\n const validatable = Object.keys(this.validationSchema());\n\n this.schema.forEach((fieldSchema, filterIndex) => {\n const fieldToFilter = fieldSchema.fieldToFilter;\n const validate = validatable.includes(fieldToFilter);\n\n if (validate) {\n const filter = this.filters[fieldToFilter];\n\n /**\n * Get all validatable fields.\n * Use parsed value of filters that are set,\n * otherwise fall back to `filterValue` value if not set.\n */\n const filterValue = filter\n ? filter.isMultiple\n ? filter.filterBy\n : filter.filterBy[0]\n : this.filterValues[filterIndex];\n\n this.validationValues[fieldToFilter] = filterValue;\n }\n });\n },\n\n /**\n * Change handler for filter fields\n */\n onChange(filter, filterValues, filterIndex) {\n if (filter.on?.change) {\n // Maps to `on.change` handlers in the filter schema.\n filter.on.change(filterValues, filterIndex);\n }\n },\n\n /**\n * Select input event handler for filter fields\n */\n onSelectInput(newValue, filter, filterIndex) {\n if (newValue === undefined) {\n delete this.filterValues[filterIndex]; // prevent undefined filterValues which cause an empty result list\n } else {\n this.filterValues[filterIndex] = newValue;\n }\n\n this.onChange(filter, this.filterValues, filterIndex);\n },\n\n /**\n * Get filter values from local storage.\n * @returns {any}\n */\n getPersistentFilterValues() {\n return persistentStorage.get('filter-values');\n },\n\n /**\n * Clone new filterValues to remove reactivity, and save them to localStorage.\n * @param {object} newValues - the filterValues to be persisted in localStorage\n */\n persistFilterValues(newValues) {\n persistentStorage.set('filter-values', cloneDeep(newValues));\n },\n },\n };\n</script>\n\n<template>\n <div class=\"tw-ll-grid tw-grid-cols-4 md:tw-grid-cols-12\">\n <template v-for=\"(filter, filterIndex) in schema\">\n <div\n v-if=\"!filter.hidden\"\n :key=\"`${filterIndex} ${forceRenderCount}`\"\n class=\"field-wrapper tw-col-span-4 md:tw-col-span-3\"\n :class=\"{ 'max-md:tw-hidden': !filter.type, 'tw-flex tw-items-end': filter.type === 'll-checkbox' }\"\n :data-test=\"`filter|${filter.fieldToFilter}`\"\n >\n <!-- Filter component -->\n <ll-select\n v-if=\"filter.type === 'll-select'\"\n v-bind=\"filter.attributes\"\n :error=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n :model-value=\"filterValues[filterIndex]\"\n @update:model-value=\"(newValue) => onSelectInput(newValue, filter, filterIndex)\"\n />\n <ll-checkbox\n v-else-if=\"filter.type === 'll-checkbox'\"\n v-model:checked=\"filterValues[filterIndex]\"\n v-bind=\"filter.attributes\"\n :error-text=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n @update:checked=\"onChange(filter, filterValues, filterIndex)\"\n />\n <ll-radio\n v-else-if=\"filter.type === 'll-radio'\"\n v-model:checked=\"filterValues[filterIndex]\"\n v-bind=\"filter.attributes\"\n :error-text=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n @update:checked=\"onChange(filter, filterValues, filterIndex)\"\n />\n <component\n v-bind=\"filter.attributes\"\n :is=\"filter.type\"\n v-else-if=\"filter.type\"\n v-model=\"filterValues[filterIndex]\"\n :error-text=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n @update:model-value=\"onChange(filter, filterValues, filterIndex)\"\n >\n <template v-if=\"filter.slots && filter.slots.selected\" #selected=\"{ option }\">\n <component :is=\"filter.slots.selected\" v-bind=\"option.props\" />\n </template>\n <template v-if=\"filter.slots && filter.slots.option\" #option=\"{ option }\">\n <component :is=\"filter.slots.option\" v-bind=\"option.props\" />\n </template>\n <template v-if=\"filter.slots && filter.slots.prepend\" #prepend>\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-html=\"filter.slots.prepend\"></span>\n </template>\n <template v-if=\"filter.slots && filter.slots.append\" #append>\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-html=\"filter.slots.append\"></span>\n </template>\n </component>\n </div>\n </template>\n <div\n class=\"button-grid tw-col-span-4 tw-flex tw-items-end tw-justify-end md:tw-col-span-12\"\n :class=\"$style['filter-button-group']\"\n >\n <ll-button secondary data-test=\"button|reset-filters\" :disabled=\"disableClear\" @click=\"resetFilters\">\n {{ clearText }}\n </ll-button>\n <ll-button\n primary\n data-test=\"button|apply-filters\"\n :disabled=\"disableApply || validation?.hasErrors\"\n @click=\"applyFilters\"\n >\n {{ applyText }}\n </ll-button>\n </div>\n </div>\n</template>\n\n<style module>\n .filter-button-group {\n @media screen('max-md') {\n display: flex;\n flex-direction: column-reverse;\n }\n\n button {\n @media screen('max-md') {\n width: 100% !important;\n }\n\n &:nth-child(2) {\n @media screen('max-md') {\n margin-bottom: theme('spacing.3');\n }\n }\n }\n }\n</style>\n"],"names":["_sfc_main","Button","Checkbox","Input","InputOptions","Radio","Select","DatePicker","props","getValidationSchema","toRefs","validationSchema","validationValues","ref","validation","initValidation","values","fieldName","validationRules","rules","fieldRules","fieldRule","useValidation","t","newFilterValues","filters","acc","schema","item","trackBy","isObject","isCustomFilterComponent","isMultiple","filterBy","v","groupedWith","nextTick","LLLV_CHANGE_TRIGGERS","trigger","filterIndex","newValues","merge","validatable","fieldSchema","fieldToFilter","filter","filterValue","filterValues","_a","newValue","persistentStorage","cloneDeep","_hoisted_1","_openBlock","_createElementBlock","_Fragment","_renderList","$props","$data","_normalizeClass","_createBlock","_component_ll_select","_mergeProps","$setup","_b","$options","_component_ll_checkbox","$event","_c","_d","_component_ll_radio","_e","_f","_resolveDynamicComponent","_g","_h","_withCtx","option","_createElementVNode","_ctx","_createVNode","_component_ll_button"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sources":["../src/components/Filters/Filters.vue"],"sourcesContent":["<script>\n import cloneDeep from 'lodash-es/cloneDeep';\n import merge from 'lodash-es/merge';\n import { nextTick, ref, toRefs } from 'vue';\n\n import useValidation from '../../composables/useValidation/useValidation';\n import { LLLV_CHANGE_TRIGGERS } from '../../constants';\n import { t } from '../../locale';\n import { persistentStorage } from '../../storage';\n import Button from '../Button/Button.vue';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import DatePicker from '../DatePicker/DatePicker.vue';\n import Input from '../Input/Input.vue';\n import InputOptions from '../InputOptions/InputOptions.vue';\n import Radio from '../Radio/Radio.vue';\n import Select from '../Select/Select.vue';\n\n export default {\n name: 'll-filters',\n\n components: {\n 'll-button': Button,\n 'll-checkbox': Checkbox,\n 'll-input': Input,\n 'll-input-options': InputOptions,\n 'll-radio': Radio,\n 'll-select': Select,\n DatePicker,\n },\n\n props: {\n /**\n * Whether to disable the Apply button\n */\n disableApply: Boolean,\n /**\n * Whether to disable the Clear button\n */\n disableClear: Boolean,\n /**\n * Whether to disable the sticky filters\n * If disabled, a default pre-selected value(s) can be added to\n * the filter component's attributes\n */\n disablePersistency: Boolean,\n /**\n * Filters schema\n */\n schema: {\n type: Array,\n default: () => [],\n },\n /**\n * Validation schema function that returns an object\n */\n validationSchema: {\n type: Function,\n default: () => () => undefined,\n },\n },\n\n emits: ['change', 'submit', 'reset'],\n\n setup(props) {\n const { validationSchema: getValidationSchema } = toRefs(props);\n const validationSchema = getValidationSchema.value();\n const validationValues = ref({});\n\n // Without ref, `this.validation` will always evaluate to its initial value of `undefined` due to lack of reactivity.\n const validation = ref();\n\n function initValidation() {\n if (validationSchema?.toString() !== '[object Object]') {\n return;\n }\n\n validationValues.value = Object.keys(validationSchema).reduce((values, fieldName) => {\n values[fieldName] = undefined;\n\n return values;\n }, {});\n\n const validationRules = Object.entries(validationSchema).reduce((rules, [fieldName, fieldRules]) => {\n rules[fieldName] = fieldRules.map((fieldRule) => {\n return fieldRule(validationValues);\n });\n\n return rules;\n }, {});\n\n validation.value = useValidation({ rules: validationRules, values: validationValues });\n validation.value.validate();\n }\n\n return {\n validation,\n validationValues,\n initValidation,\n };\n },\n\n data() {\n return {\n applyText: t('ll.apply'),\n clearText: t('ll.clear'),\n filters: {},\n filterValues: {},\n forceRenderCount: 0,\n };\n },\n\n watch: {\n filterValues: {\n /**\n * Maps filters to a partcular object structure:\n * @param {IFilterSchemaItem} newFilterValues all selected filters\n * @returns {IFilter}\n */\n handler: function (newFilterValues) {\n const filters = Object.keys(newFilterValues).reduce((acc, i) => {\n const schema = this.schema[i];\n\n if (!schema || !schema.fieldToFilter) {\n return acc;\n }\n\n const item = newFilterValues[i];\n\n // Ignore empty string or undefined/null filter values\n if (item === '' || item == null) {\n return acc;\n }\n\n const trackBy = schema.attributes.trackBy || 'id';\n const isObject = typeof item === 'object';\n const isCustomFilterComponent = typeof schema.type === 'object';\n // TODO: remove handling of schema.attributes.multiple when we remove the vue-multiselect version of Select\n const isMultiple =\n (isCustomFilterComponent && schema.attributes.multiple) ||\n (!isCustomFilterComponent &&\n schema.type.includes('ll-select') &&\n (schema.attributes.multiple || !schema.attributes.single));\n const filterBy = isMultiple\n ? // local storage might have item stored as an object from the old Select\n (Array.isArray(item) ? item : [item]).map((v) => v[trackBy])\n : isObject\n ? [item[trackBy]]\n : [item];\n\n const groupedWith = schema.groupedWith;\n\n if (groupedWith) {\n filterBy[0] = {\n index: groupedWith,\n value: newFilterValues[groupedWith],\n };\n filterBy.push({\n index: Number(i),\n value: newFilterValues[i],\n });\n }\n\n filterBy.length &&\n (acc[schema.fieldToFilter] = {\n // don't add to `filters` if no filterBy\n filterBy,\n filterType: schema.type, // Informs the applied filter count\n isMultiple,\n ...('fn' in schema && { customFilter: schema.fn }),\n });\n\n return acc;\n }, {});\n\n this.filters = filters;\n this.$emit('change', filters);\n },\n\n deep: true,\n immediate: true,\n },\n\n filters() {\n if (this.validation) {\n this.updateValidationValues();\n }\n },\n },\n\n async created() {\n // initFilterValues updates the filterValues so using await nextTick() forces the code\n // after it to wait until nextTick is done, at which point the filterValues will\n // be done initializing. Otherwise, applyFilters sometimes applies the wrong\n // filters because filterValues is not done updating.\n this.initFilterValues();\n await nextTick();\n this.initValidation();\n this.applyFilters({ trigger: LLLV_CHANGE_TRIGGERS.LOAD });\n },\n\n methods: {\n initFilterValues() {\n if (this.disablePersistency) {\n this.filterValues = this.getDefaultFilterValues();\n\n return;\n }\n\n this.filterValues = this.getPersistentFilterValues() || this.getDefaultFilterValues();\n },\n\n /**\n * Apply the selected filters and save them to localStorage.\n * ListView calls this method using a ref to Filters.\n * The trigger option is used in ListView.\n * @param {object} [options] - optional parameters\n * @param {string} [options.trigger] - the action that triggered this function call\n */\n async applyFilters({ trigger = LLLV_CHANGE_TRIGGERS.APPLY } = {}) {\n if (this.validation) {\n await this.validation.validate();\n\n if (this.validation.hasErrors) {\n return;\n }\n }\n\n if (!this.disablePersistency) {\n this.persistFilterValues(this.filterValues);\n }\n\n this.$emit('submit', { trigger });\n },\n\n resetFilters() {\n this.filterValues = this.getDefaultFilterValues();\n\n this.forceRenderCount++;\n\n if (!this.disablePersistency) {\n this.persistFilterValues(this.filterValues);\n }\n\n // Emit after filters are updated\n this.$nextTick(() => {\n this.$emit('reset');\n });\n },\n\n /**\n * Returns pre-defined filter values to become the default values\n */\n getDefaultFilterValues() {\n return this.schema.reduce((acc, item, filterIndex) => {\n if (item.type === 'll-checkbox') {\n acc[filterIndex] = item.attributes.checked || false;\n } else if (Object.prototype.hasOwnProperty.call(item.attributes, 'modelValue')) {\n acc[filterIndex] = item.attributes.modelValue;\n }\n\n return acc;\n }, {});\n },\n\n /**\n * Intended for external use, when filter values need to be set for the user\n */\n setFilterValues(newValues) {\n this.filterValues = merge({}, this.filterValues, newValues);\n this.forceRenderCount++;\n },\n\n updateValidationValues() {\n const validatable = Object.keys(this.validationSchema());\n\n this.schema.forEach((fieldSchema, filterIndex) => {\n const fieldToFilter = fieldSchema.fieldToFilter;\n const validate = validatable.includes(fieldToFilter);\n\n if (validate) {\n const filter = this.filters[fieldToFilter];\n\n /**\n * Get all validatable fields.\n * Use parsed value of filters that are set,\n * otherwise fall back to `filterValue` value if not set.\n */\n const filterValue = filter\n ? filter.isMultiple\n ? filter.filterBy\n : filter.filterBy[0]\n : this.filterValues[filterIndex];\n\n this.validationValues[fieldToFilter] = filterValue;\n }\n });\n },\n\n /**\n * Change handler for filter fields\n */\n onChange(filter, filterValues, filterIndex) {\n if (filter.on?.change) {\n // Maps to `on.change` handlers in the filter schema.\n filter.on.change(filterValues, filterIndex);\n }\n },\n\n /**\n * Select input event handler for filter fields\n */\n onSelectInput(newValue, filter, filterIndex) {\n if (newValue === undefined) {\n delete this.filterValues[filterIndex]; // prevent undefined filterValues which cause an empty result list\n } else {\n this.filterValues[filterIndex] = newValue;\n }\n\n this.onChange(filter, this.filterValues, filterIndex);\n },\n\n /**\n * Get filter values from local storage.\n * @returns {any}\n */\n getPersistentFilterValues() {\n return persistentStorage.get('filter-values');\n },\n\n /**\n * Clone new filterValues to remove reactivity, and save them to localStorage.\n * @param {object} newValues - the filterValues to be persisted in localStorage\n */\n persistFilterValues(newValues) {\n persistentStorage.set('filter-values', cloneDeep(newValues));\n },\n },\n };\n</script>\n\n<template>\n <div class=\"tw-ll-grid tw-grid-cols-4 md:tw-grid-cols-12\">\n <template v-for=\"(filter, filterIndex) in schema\">\n <div\n v-if=\"!filter.hidden\"\n :key=\"`${filterIndex} ${forceRenderCount}`\"\n class=\"field-wrapper tw-col-span-4 md:tw-col-span-3\"\n :class=\"{ 'max-md:tw-hidden': !filter.type, 'tw-flex tw-items-end': filter.type === 'll-checkbox' }\"\n :data-test=\"`filter|${filter.fieldToFilter}`\"\n >\n <!-- Filter component -->\n <ll-select\n v-if=\"filter.type === 'll-select'\"\n v-bind=\"filter.attributes\"\n :error=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n :model-value=\"filterValues[filterIndex]\"\n @update:model-value=\"(newValue) => onSelectInput(newValue, filter, filterIndex)\"\n />\n <ll-checkbox\n v-else-if=\"filter.type === 'll-checkbox'\"\n v-model:checked=\"filterValues[filterIndex]\"\n v-bind=\"filter.attributes\"\n :error-text=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n @update:checked=\"onChange(filter, filterValues, filterIndex)\"\n />\n <ll-radio\n v-else-if=\"filter.type === 'll-radio'\"\n v-model:checked=\"filterValues[filterIndex]\"\n v-bind=\"filter.attributes\"\n :error-text=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n @update:checked=\"onChange(filter, filterValues, filterIndex)\"\n />\n <component\n v-bind=\"filter.attributes\"\n :is=\"filter.type\"\n v-else-if=\"filter.type\"\n v-model=\"filterValues[filterIndex]\"\n :error-text=\"validation?.fields[filter.fieldToFilter] && validation?.getError(filter.fieldToFilter)\"\n :label=\"filter.label\"\n @update:model-value=\"onChange(filter, filterValues, filterIndex)\"\n >\n <template v-if=\"filter.slots && filter.slots.selected\" #selected=\"{ option }\">\n <component :is=\"filter.slots.selected\" v-bind=\"option.props\" />\n </template>\n <template v-if=\"filter.slots && filter.slots.option\" #option=\"{ option }\">\n <component :is=\"filter.slots.option\" v-bind=\"option.props\" />\n </template>\n <template v-if=\"filter.slots && filter.slots.prepend\" #prepend>\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-html=\"filter.slots.prepend\"></span>\n </template>\n <template v-if=\"filter.slots && filter.slots.append\" #append>\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-html=\"filter.slots.append\"></span>\n </template>\n </component>\n </div>\n </template>\n <div\n class=\"button-grid tw-col-span-4 tw-flex tw-items-end tw-justify-end md:tw-col-span-12\"\n :class=\"$style['filter-button-group']\"\n >\n <ll-button secondary data-test=\"button|reset-filters\" :disabled=\"disableClear\" @click=\"resetFilters\">\n {{ clearText }}\n </ll-button>\n <ll-button\n primary\n data-test=\"button|apply-filters\"\n :disabled=\"disableApply || validation?.hasErrors\"\n @click=\"applyFilters\"\n >\n {{ applyText }}\n </ll-button>\n </div>\n </div>\n</template>\n\n<style module>\n .filter-button-group {\n @media screen('max-md') {\n display: flex;\n flex-direction: column-reverse;\n }\n\n button {\n @media screen('max-md') {\n width: 100% !important;\n }\n\n &:nth-child(2) {\n @media screen('max-md') {\n margin-bottom: theme('spacing.3');\n }\n }\n }\n }\n</style>\n"],"names":["_sfc_main","Button","Checkbox","Input","InputOptions","Radio","Select","DatePicker","props","getValidationSchema","toRefs","validationSchema","validationValues","ref","validation","initValidation","values","fieldName","validationRules","rules","fieldRules","fieldRule","useValidation","t","newFilterValues","filters","acc","i","schema","item","trackBy","isObject","isCustomFilterComponent","isMultiple","filterBy","v","groupedWith","nextTick","LLLV_CHANGE_TRIGGERS","trigger","filterIndex","newValues","merge","validatable","fieldSchema","fieldToFilter","filter","filterValue","filterValues","_a","newValue","persistentStorage","cloneDeep","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_Fragment","_renderList","$props","_createCommentVNode","$data","_normalizeClass","_createBlock","_component_ll_select","_mergeProps","$setup","_b","$options","_component_ll_checkbox","$event","_c","_d","_component_ll_radio","_e","_f","_resolveDynamicComponent","_g","_h","_createSlots","_withCtx","option","_createElementVNode","_ctx","_createVNode","_component_ll_button","_createTextVNode","_toDisplayString"],"mappings":"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"}