@leaflink/stash 51.9.2 → 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 +122 -132
  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 +4 -4
  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 +13 -14
  362. package/tailwind-base.ts +4 -4
  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,31 +1,27 @@
1
1
  import { toValue as t, ref as h, watch as d, onScopeDispose as m, computed as u } from "vue";
2
- const s = /* @__PURE__ */ new Map();
2
+ const i = /* @__PURE__ */ new Map();
3
3
  function f(e) {
4
- s.has(t(e)) || s.set(t(e), {
4
+ i.has(t(e)) || i.set(t(e), {
5
5
  hasMatches: h(!1),
6
6
  mediaQueryList: window.matchMedia(t(e))
7
7
  });
8
- const a = s.get(t(e));
9
- function n(i) {
10
- a.hasMatches.value = i.matches;
8
+ const a = i.get(t(e));
9
+ function s(o) {
10
+ a.hasMatches.value = o.matches;
11
11
  }
12
- function c() {
13
- var i;
14
- typeof ((i = a.mediaQueryList) == null ? void 0 : i.removeEventListener) == "function" && a.mediaQueryList.removeEventListener("change", n);
12
+ function n() {
13
+ typeof a.mediaQueryList?.removeEventListener == "function" && a.mediaQueryList.removeEventListener("change", s);
15
14
  }
16
- const o = d(
15
+ const c = d(
17
16
  () => t(e),
18
17
  () => {
19
- c(), a.mediaQueryList = window.matchMedia(t(e)), a.mediaQueryList.addEventListener("change", n), a.hasMatches.value = a.mediaQueryList.matches;
18
+ n(), a.mediaQueryList = window.matchMedia(t(e)), a.mediaQueryList.addEventListener("change", s), a.hasMatches.value = a.mediaQueryList.matches;
20
19
  },
21
20
  { immediate: !0 }
22
21
  );
23
22
  return m(() => {
24
- o(), c(), s.delete(t(e));
25
- }), u(() => {
26
- var i;
27
- return !!((i = s.get(t(e))) != null && i.hasMatches.value);
28
- });
23
+ c(), n(), i.delete(t(e));
24
+ }), u(() => !!i.get(t(e))?.hasMatches.value);
29
25
  }
30
26
  export {
31
27
  f as default
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.js","sources":["../src/composables/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import { computed, MaybeRefOrGetter, onScopeDispose, Ref, ref, toValue, watch } from 'vue';\n\nexport interface QueryCacheItem {\n hasMatches: Ref<boolean>;\n mediaQueryList: MediaQueryList;\n}\n\nconst queryCache = new Map<string, QueryCacheItem>();\n\n/**\n * Given a media query, this composable returns a reactive boolean indicating if the current window dimensions match the media query.\n */\nexport default function useMediaQuery(query: MaybeRefOrGetter<string>) {\n if (!queryCache.has(toValue(query))) {\n queryCache.set(toValue(query), {\n hasMatches: ref(false),\n mediaQueryList: window.matchMedia(toValue(query)),\n });\n }\n\n const queryCacheItem = queryCache.get(toValue(query)) as QueryCacheItem;\n\n function onMediaChange(event: MediaQueryListEvent) {\n queryCacheItem.hasMatches.value = event.matches;\n }\n\n function cleanup() {\n if (typeof queryCacheItem.mediaQueryList?.removeEventListener === 'function') {\n queryCacheItem.mediaQueryList.removeEventListener('change', onMediaChange);\n }\n }\n\n const stopWatch = watch(\n () => toValue(query),\n () => {\n cleanup();\n\n queryCacheItem.mediaQueryList = window.matchMedia(toValue(query));\n queryCacheItem.mediaQueryList.addEventListener('change', onMediaChange);\n queryCacheItem.hasMatches.value = queryCacheItem.mediaQueryList.matches;\n },\n { immediate: true },\n );\n\n onScopeDispose(() => {\n stopWatch();\n cleanup();\n queryCache.delete(toValue(query));\n });\n\n return computed(() => !!queryCache.get(toValue(query))?.hasMatches.value);\n}\n"],"names":["queryCache","useMediaQuery","query","toValue","ref","queryCacheItem","onMediaChange","event","cleanup","_a","stopWatch","watch","onScopeDispose","computed"],"mappings":";AAOA,MAAMA,wBAAiB,IAA4B;AAKnD,SAAwBC,EAAcC,GAAiC;AACrE,EAAKF,EAAW,IAAIG,EAAQD,CAAK,CAAC,KACrBF,EAAA,IAAIG,EAAQD,CAAK,GAAG;AAAA,IAC7B,YAAYE,EAAI,EAAK;AAAA,IACrB,gBAAgB,OAAO,WAAWD,EAAQD,CAAK,CAAC;AAAA,EAAA,CACjD;AAGH,QAAMG,IAAiBL,EAAW,IAAIG,EAAQD,CAAK,CAAC;AAEpD,WAASI,EAAcC,GAA4B;AAClC,IAAAF,EAAA,WAAW,QAAQE,EAAM;AAAA,EAAA;AAG1C,WAASC,IAAU;;AACjB,IAAI,SAAOC,IAAAJ,EAAe,mBAAf,gBAAAI,EAA+B,wBAAwB,cACjDJ,EAAA,eAAe,oBAAoB,UAAUC,CAAa;AAAA,EAC3E;AAGF,QAAMI,IAAYC;AAAA,IAChB,MAAMR,EAAQD,CAAK;AAAA,IACnB,MAAM;AACI,MAAAM,EAAA,GAERH,EAAe,iBAAiB,OAAO,WAAWF,EAAQD,CAAK,CAAC,GACjDG,EAAA,eAAe,iBAAiB,UAAUC,CAAa,GACvDD,EAAA,WAAW,QAAQA,EAAe,eAAe;AAAA,IAClE;AAAA,IACA,EAAE,WAAW,GAAK;AAAA,EACpB;AAEA,SAAAO,EAAe,MAAM;AACT,IAAAF,EAAA,GACFF,EAAA,GACGR,EAAA,OAAOG,EAAQD,CAAK,CAAC;AAAA,EAAA,CACjC,GAEMW,EAAS;;AAAM,YAAC,GAACJ,IAAAT,EAAW,IAAIG,EAAQD,CAAK,CAAC,MAA7B,QAAAO,EAAgC,WAAW;AAAA,GAAK;AAC1E;"}
1
+ {"version":3,"file":"useMediaQuery.js","sources":["../src/composables/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import { computed, MaybeRefOrGetter, onScopeDispose, Ref, ref, toValue, watch } from 'vue';\n\nexport interface QueryCacheItem {\n hasMatches: Ref<boolean>;\n mediaQueryList: MediaQueryList;\n}\n\nconst queryCache = new Map<string, QueryCacheItem>();\n\n/**\n * Given a media query, this composable returns a reactive boolean indicating if the current window dimensions match the media query.\n */\nexport default function useMediaQuery(query: MaybeRefOrGetter<string>) {\n if (!queryCache.has(toValue(query))) {\n queryCache.set(toValue(query), {\n hasMatches: ref(false),\n mediaQueryList: window.matchMedia(toValue(query)),\n });\n }\n\n const queryCacheItem = queryCache.get(toValue(query)) as QueryCacheItem;\n\n function onMediaChange(event: MediaQueryListEvent) {\n queryCacheItem.hasMatches.value = event.matches;\n }\n\n function cleanup() {\n if (typeof queryCacheItem.mediaQueryList?.removeEventListener === 'function') {\n queryCacheItem.mediaQueryList.removeEventListener('change', onMediaChange);\n }\n }\n\n const stopWatch = watch(\n () => toValue(query),\n () => {\n cleanup();\n\n queryCacheItem.mediaQueryList = window.matchMedia(toValue(query));\n queryCacheItem.mediaQueryList.addEventListener('change', onMediaChange);\n queryCacheItem.hasMatches.value = queryCacheItem.mediaQueryList.matches;\n },\n { immediate: true },\n );\n\n onScopeDispose(() => {\n stopWatch();\n cleanup();\n queryCache.delete(toValue(query));\n });\n\n return computed(() => !!queryCache.get(toValue(query))?.hasMatches.value);\n}\n"],"names":["queryCache","useMediaQuery","query","toValue","ref","queryCacheItem","onMediaChange","event","cleanup","stopWatch","watch","onScopeDispose","computed"],"mappings":";AAOA,MAAMA,wBAAiB,IAAA;AAKvB,SAAwBC,EAAcC,GAAiC;AACrE,EAAKF,EAAW,IAAIG,EAAQD,CAAK,CAAC,KAChCF,EAAW,IAAIG,EAAQD,CAAK,GAAG;AAAA,IAC7B,YAAYE,EAAI,EAAK;AAAA,IACrB,gBAAgB,OAAO,WAAWD,EAAQD,CAAK,CAAC;AAAA,EAAA,CACjD;AAGH,QAAMG,IAAiBL,EAAW,IAAIG,EAAQD,CAAK,CAAC;AAEpD,WAASI,EAAcC,GAA4B;AACjD,IAAAF,EAAe,WAAW,QAAQE,EAAM;AAAA,EAC1C;AAEA,WAASC,IAAU;AACjB,IAAI,OAAOH,EAAe,gBAAgB,uBAAwB,cAChEA,EAAe,eAAe,oBAAoB,UAAUC,CAAa;AAAA,EAE7E;AAEA,QAAMG,IAAYC;AAAA,IAChB,MAAMP,EAAQD,CAAK;AAAA,IACnB,MAAM;AACJ,MAAAM,EAAA,GAEAH,EAAe,iBAAiB,OAAO,WAAWF,EAAQD,CAAK,CAAC,GAChEG,EAAe,eAAe,iBAAiB,UAAUC,CAAa,GACtED,EAAe,WAAW,QAAQA,EAAe,eAAe;AAAA,IAClE;AAAA,IACA,EAAE,WAAW,GAAA;AAAA,EAAK;AAGpB,SAAAM,EAAe,MAAM;AACnB,IAAAF,EAAA,GACAD,EAAA,GACAR,EAAW,OAAOG,EAAQD,CAAK,CAAC;AAAA,EAClC,CAAC,GAEMU,EAAS,MAAM,CAAC,CAACZ,EAAW,IAAIG,EAAQD,CAAK,CAAC,GAAG,WAAW,KAAK;AAC1E;"}
@@ -5,7 +5,7 @@ declare interface CloseArgs {
5
5
  name?: string;
6
6
  }
7
7
 
8
- export declare interface Modal<TAttributes = Record<string, unknown>> {
8
+ declare interface Modal<TAttributes = Record<string, unknown>> {
9
9
  /**
10
10
  * Import the modal that you want to use in your component,
11
11
  * then pass that to the composable
@@ -1 +1 @@
1
- {"version":3,"file":"useModals.js","sources":["../src/composables/useModals/useModals.ts"],"sourcesContent":["import merge from 'lodash-es/merge';\nimport { Component, computed, markRaw, reactive, readonly, ref } from 'vue';\n\n// Utility type that maps each property of T to unknown, making it compatible with Record<string, unknown>\n// this ensures that the attributes property of the Modal interface can be used with custom types defined downstream\n// while still being compatible with the Record<string, unknown> type\ntype ToRecord<T> = {\n [P in keyof T]: T[P];\n};\n\n// #region modal-interface\nexport interface Modal<TAttributes = Record<string, unknown>> {\n /**\n * Import the modal that you want to use in your component,\n * then pass that to the composable\n */\n component: Component;\n\n /**\n * Optional identifier used to close a modal. The default value is `component.name` (if defined).\n */\n name?: string;\n\n /**\n * Props and listeners to passed through.\n *\n * Listeners need to be formatted as `onEventName`\n */\n attributes?: ToRecord<TAttributes>;\n\n /**\n * Dyanmic slots that you want rendered in the format of\n * { default: 'my slot content' }\n *\n * The Modals component which renders this list passes the value for slots through\n * a html sanitizer to avoid XSS attacks\n */\n slots?: Record<string, string>;\n\n /**\n * Custom options to use for the given modal.\n *\n * If options are not passed in, then useModals will set the following values as defaults\n *\n * {\n * disableDefaultListeners: false\n * }\n */\n options?: {\n disableDefaultListeners?: boolean;\n };\n}\n// #endregion modal-interface\n\ninterface CloseArgs {\n index?: number;\n name?: string;\n}\n\nconst active = ref<Modal[]>([]);\n\ninterface UseModals {\n active: Readonly<Modal[]>;\n current: Readonly<Modal | null>;\n open: <T>(modal: Modal<T>) => void;\n close: (args?: CloseArgs) => void;\n closeAll: () => void;\n}\n\nexport default function useModals(): UseModals {\n // T is the custom interface of the attributes that are passed to the modal\n function open<T>(modal: Modal<T>) {\n if (!modal.name && modal.component.name) {\n modal.name = modal.component.name;\n }\n\n //Prevent vue from making the entire component passed in reactive to avoid unnecessary performance overhead\n modal.component = markRaw(modal.component);\n\n const optionsDefaults: Modal['options'] = {\n disableDefaultListeners: false,\n };\n\n modal.options = merge({}, optionsDefaults, modal.options);\n\n active.value.push(modal);\n }\n\n function close({ index, name }: CloseArgs = {}) {\n if (index === undefined && !name) {\n active.value.shift();\n return;\n }\n\n if (index !== undefined) {\n active.value.splice(index, 1);\n return;\n }\n\n if (name) {\n const index = active.value.findIndex((modal) => modal.name === name);\n\n if (index === -1) return;\n\n active.value.splice(index, 1);\n return;\n }\n }\n\n function closeAll() {\n active.value = [];\n }\n\n const currentModal = computed(() => (active.value.length ? active.value[0] : null));\n\n // @ts-expect-error - Stupid TS version issues. Todo: remove comment, fix ts issues.\n return reactive({\n /**\n * The list of modals that are currently open.\n */\n active: readonly(active),\n\n /**\n * The first modal in the active list (index: 0).\n */\n current: readonly(currentModal),\n\n /**\n * Opens the given modal.\n */\n open,\n\n /**\n * Closes a modal.\n * If no arguments are passed, then the top-most modal is closed.\n * If an index is passed, then the modal at that index is closed.\n * If a name is passed, then the modal with that name is closed.\n */\n close,\n\n /**\n * Closes all active/open modals.\n */\n closeAll,\n });\n}\n"],"names":["active","ref","useModals","open","modal","markRaw","optionsDefaults","merge","close","index","name","closeAll","currentModal","computed","reactive","readonly"],"mappings":";;AA2DA,MAAMA,IAASC,EAAa,EAAE;AAU9B,SAAwBC,IAAuB;AAE7C,WAASC,EAAQC,GAAiB;AAChC,IAAI,CAACA,EAAM,QAAQA,EAAM,UAAU,SAC3BA,EAAA,OAAOA,EAAM,UAAU,OAIzBA,EAAA,YAAYC,EAAQD,EAAM,SAAS;AAEzC,UAAME,IAAoC;AAAA,MACxC,yBAAyB;AAAA,IAC3B;AAEA,IAAAF,EAAM,UAAUG,EAAM,CAAI,GAAAD,GAAiBF,EAAM,OAAO,GAEjDJ,EAAA,MAAM,KAAKI,CAAK;AAAA,EAAA;AAGzB,WAASI,EAAM,EAAE,OAAAC,GAAO,MAAAC,EAAK,IAAe,CAAA,GAAI;AAC1C,QAAAD,MAAU,UAAa,CAACC,GAAM;AAChC,MAAAV,EAAO,MAAM,MAAM;AACnB;AAAA,IAAA;AAGF,QAAIS,MAAU,QAAW;AAChB,MAAAT,EAAA,MAAM,OAAOS,GAAO,CAAC;AAC5B;AAAA,IAAA;AAGF,QAAIC,GAAM;AACFD,YAAAA,IAAQT,EAAO,MAAM,UAAU,CAACI,MAAUA,EAAM,SAASM,CAAI;AAEnE,UAAID,MAAU,GAAI;AAEX,MAAAT,EAAA,MAAM,OAAOS,GAAO,CAAC;AAC5B;AAAA,IAAA;AAAA,EACF;AAGF,WAASE,IAAW;AAClB,IAAAX,EAAO,QAAQ,CAAC;AAAA,EAAA;AAGZ,QAAAY,IAAeC,EAAS,MAAOb,EAAO,MAAM,SAASA,EAAO,MAAM,CAAC,IAAI,IAAK;AAGlF,SAAOc,EAAS;AAAA;AAAA;AAAA;AAAA,IAId,QAAQC,EAASf,CAAM;AAAA;AAAA;AAAA;AAAA,IAKvB,SAASe,EAASH,CAAY;AAAA;AAAA;AAAA;AAAA,IAK9B,MAAAT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,OAAAK;AAAA;AAAA;AAAA;AAAA,IAKA,UAAAG;AAAA,EAAA,CACD;AACH;"}
1
+ {"version":3,"file":"useModals.js","sources":["../src/composables/useModals/useModals.ts"],"sourcesContent":["import merge from 'lodash-es/merge';\nimport { Component, computed, markRaw, reactive, readonly, ref } from 'vue';\n\n// Utility type that maps each property of T to unknown, making it compatible with Record<string, unknown>\n// this ensures that the attributes property of the Modal interface can be used with custom types defined downstream\n// while still being compatible with the Record<string, unknown> type\ntype ToRecord<T> = {\n [P in keyof T]: T[P];\n};\n\n// #region modal-interface\nexport interface Modal<TAttributes = Record<string, unknown>> {\n /**\n * Import the modal that you want to use in your component,\n * then pass that to the composable\n */\n component: Component;\n\n /**\n * Optional identifier used to close a modal. The default value is `component.name` (if defined).\n */\n name?: string;\n\n /**\n * Props and listeners to passed through.\n *\n * Listeners need to be formatted as `onEventName`\n */\n attributes?: ToRecord<TAttributes>;\n\n /**\n * Dyanmic slots that you want rendered in the format of\n * { default: 'my slot content' }\n *\n * The Modals component which renders this list passes the value for slots through\n * a html sanitizer to avoid XSS attacks\n */\n slots?: Record<string, string>;\n\n /**\n * Custom options to use for the given modal.\n *\n * If options are not passed in, then useModals will set the following values as defaults\n *\n * {\n * disableDefaultListeners: false\n * }\n */\n options?: {\n disableDefaultListeners?: boolean;\n };\n}\n// #endregion modal-interface\n\ninterface CloseArgs {\n index?: number;\n name?: string;\n}\n\nconst active = ref<Modal[]>([]);\n\ninterface UseModals {\n active: Readonly<Modal[]>;\n current: Readonly<Modal | null>;\n open: <T>(modal: Modal<T>) => void;\n close: (args?: CloseArgs) => void;\n closeAll: () => void;\n}\n\nexport default function useModals(): UseModals {\n // T is the custom interface of the attributes that are passed to the modal\n function open<T>(modal: Modal<T>) {\n if (!modal.name && modal.component.name) {\n modal.name = modal.component.name;\n }\n\n //Prevent vue from making the entire component passed in reactive to avoid unnecessary performance overhead\n modal.component = markRaw(modal.component);\n\n const optionsDefaults: Modal['options'] = {\n disableDefaultListeners: false,\n };\n\n modal.options = merge({}, optionsDefaults, modal.options);\n\n active.value.push(modal);\n }\n\n function close({ index, name }: CloseArgs = {}) {\n if (index === undefined && !name) {\n active.value.shift();\n return;\n }\n\n if (index !== undefined) {\n active.value.splice(index, 1);\n return;\n }\n\n if (name) {\n const index = active.value.findIndex((modal) => modal.name === name);\n\n if (index === -1) return;\n\n active.value.splice(index, 1);\n return;\n }\n }\n\n function closeAll() {\n active.value = [];\n }\n\n const currentModal = computed(() => (active.value.length ? active.value[0] : null));\n\n // @ts-expect-error - Stupid TS version issues. Todo: remove comment, fix ts issues.\n return reactive({\n /**\n * The list of modals that are currently open.\n */\n active: readonly(active),\n\n /**\n * The first modal in the active list (index: 0).\n */\n current: readonly(currentModal),\n\n /**\n * Opens the given modal.\n */\n open,\n\n /**\n * Closes a modal.\n * If no arguments are passed, then the top-most modal is closed.\n * If an index is passed, then the modal at that index is closed.\n * If a name is passed, then the modal with that name is closed.\n */\n close,\n\n /**\n * Closes all active/open modals.\n */\n closeAll,\n });\n}\n"],"names":["active","ref","useModals","open","modal","markRaw","optionsDefaults","merge","close","index","name","closeAll","currentModal","computed","reactive","readonly"],"mappings":";;AA2DA,MAAMA,IAASC,EAAa,EAAE;AAU9B,SAAwBC,IAAuB;AAE7C,WAASC,EAAQC,GAAiB;AAChC,IAAI,CAACA,EAAM,QAAQA,EAAM,UAAU,SACjCA,EAAM,OAAOA,EAAM,UAAU,OAI/BA,EAAM,YAAYC,EAAQD,EAAM,SAAS;AAEzC,UAAME,IAAoC;AAAA,MACxC,yBAAyB;AAAA,IAAA;AAG3B,IAAAF,EAAM,UAAUG,EAAM,CAAA,GAAID,GAAiBF,EAAM,OAAO,GAExDJ,EAAO,MAAM,KAAKI,CAAK;AAAA,EACzB;AAEA,WAASI,EAAM,EAAE,OAAAC,GAAO,MAAAC,EAAA,IAAoB,CAAA,GAAI;AAC9C,QAAID,MAAU,UAAa,CAACC,GAAM;AAChC,MAAAV,EAAO,MAAM,MAAA;AACb;AAAA,IACF;AAEA,QAAIS,MAAU,QAAW;AACvB,MAAAT,EAAO,MAAM,OAAOS,GAAO,CAAC;AAC5B;AAAA,IACF;AAEA,QAAIC,GAAM;AACR,YAAMD,IAAQT,EAAO,MAAM,UAAU,CAACI,MAAUA,EAAM,SAASM,CAAI;AAEnE,UAAID,MAAU,GAAI;AAElB,MAAAT,EAAO,MAAM,OAAOS,GAAO,CAAC;AAC5B;AAAA,IACF;AAAA,EACF;AAEA,WAASE,IAAW;AAClB,IAAAX,EAAO,QAAQ,CAAA;AAAA,EACjB;AAEA,QAAMY,IAAeC,EAAS,MAAOb,EAAO,MAAM,SAASA,EAAO,MAAM,CAAC,IAAI,IAAK;AAGlF,SAAOc,EAAS;AAAA;AAAA;AAAA;AAAA,IAId,QAAQC,EAASf,CAAM;AAAA;AAAA;AAAA;AAAA,IAKvB,SAASe,EAASH,CAAY;AAAA;AAAA;AAAA;AAAA,IAK9B,MAAAT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,OAAAK;AAAA;AAAA;AAAA;AAAA,IAKA,UAAAG;AAAA,EAAA,CACD;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePaginationStats-d_q39naC.js","sources":["../src/composables/usePaginationStats/usePaginationStats.ts"],"sourcesContent":["import { computed, MaybeRefOrGetter, toValue } from 'vue';\n\nimport { t } from '../../locale';\n\ninterface UsePaginationStatsArgs {\n currentPage: MaybeRefOrGetter<number>;\n pageSize: MaybeRefOrGetter<number>;\n totalItems: MaybeRefOrGetter<number>;\n}\n\nexport default function usePaginationStats({ currentPage, pageSize, totalItems }: UsePaginationStatsArgs) {\n return computed(() => {\n const pageSizeVal = toValue(pageSize);\n const currentPageVal = toValue(currentPage);\n const totalItemsVal = toValue(totalItems);\n\n const from = pageSizeVal * (currentPageVal - 1) + 1;\n const to = Math.min(pageSizeVal * currentPageVal, totalItemsVal);\n const total = totalItemsVal === Infinity ? t('ll.many').toLowerCase() : totalItemsVal;\n\n return { from, to, total };\n });\n}\n"],"names":["usePaginationStats","currentPage","pageSize","totalItems","computed","pageSizeVal","toValue","currentPageVal","totalItemsVal","from","to","total","t"],"mappings":";;AAUA,SAAwBA,EAAmB,EAAE,aAAAC,GAAa,UAAAC,GAAU,YAAAC,KAAsC;AACxG,SAAOC,EAAS,MAAM;AACd,UAAAC,IAAcC,EAAQJ,CAAQ,GAC9BK,IAAiBD,EAAQL,CAAW,GACpCO,IAAgBF,EAAQH,CAAU,GAElCM,IAAOJ,KAAeE,IAAiB,KAAK,GAC5CG,IAAK,KAAK,IAAIL,IAAcE,GAAgBC,CAAa,GACzDG,IAAQH,MAAkB,QAAWI,EAAE,SAAS,EAAE,gBAAgBJ;AAEjE,WAAA,EAAE,MAAAC,GAAM,IAAAC,GAAI,OAAAC,EAAM;AAAA,EAAA,CAC1B;AACH;"}
1
+ {"version":3,"file":"usePaginationStats-d_q39naC.js","sources":["../src/composables/usePaginationStats/usePaginationStats.ts"],"sourcesContent":["import { computed, MaybeRefOrGetter, toValue } from 'vue';\n\nimport { t } from '../../locale';\n\ninterface UsePaginationStatsArgs {\n currentPage: MaybeRefOrGetter<number>;\n pageSize: MaybeRefOrGetter<number>;\n totalItems: MaybeRefOrGetter<number>;\n}\n\nexport default function usePaginationStats({ currentPage, pageSize, totalItems }: UsePaginationStatsArgs) {\n return computed(() => {\n const pageSizeVal = toValue(pageSize);\n const currentPageVal = toValue(currentPage);\n const totalItemsVal = toValue(totalItems);\n\n const from = pageSizeVal * (currentPageVal - 1) + 1;\n const to = Math.min(pageSizeVal * currentPageVal, totalItemsVal);\n const total = totalItemsVal === Infinity ? t('ll.many').toLowerCase() : totalItemsVal;\n\n return { from, to, total };\n });\n}\n"],"names":["usePaginationStats","currentPage","pageSize","totalItems","computed","pageSizeVal","toValue","currentPageVal","totalItemsVal","from","to","total","t"],"mappings":";;AAUA,SAAwBA,EAAmB,EAAE,aAAAC,GAAa,UAAAC,GAAU,YAAAC,KAAsC;AACxG,SAAOC,EAAS,MAAM;AACpB,UAAMC,IAAcC,EAAQJ,CAAQ,GAC9BK,IAAiBD,EAAQL,CAAW,GACpCO,IAAgBF,EAAQH,CAAU,GAElCM,IAAOJ,KAAeE,IAAiB,KAAK,GAC5CG,IAAK,KAAK,IAAIL,IAAcE,GAAgBC,CAAa,GACzDG,IAAQH,MAAkB,QAAWI,EAAE,SAAS,EAAE,gBAAgBJ;AAExE,WAAO,EAAE,MAAAC,GAAM,IAAAC,GAAI,OAAAC,EAAA;AAAA,EACrB,CAAC;AACH;"}
@@ -1,42 +1,35 @@
1
- import { ref as l, watchSyncEffect as c, toValue as f, computed as s, onUnmounted as v } from "vue";
2
- import p from "./useScriptTag.js";
3
- const m = "https://cdn.plaid.com/link/v2/stable/link-initialize.js";
4
- function P(u) {
5
- const { isLoaded: i, error: r } = p(m), a = l(null), t = l(!1);
6
- c(() => {
7
- const e = f(u);
8
- if (i.value && !(!e.token && !e.receivedRedirectUri)) {
1
+ import { ref as r, watchSyncEffect as d, toValue as c, computed as s, onUnmounted as f } from "vue";
2
+ import v from "./useScriptTag.js";
3
+ const p = "https://cdn.plaid.com/link/v2/stable/link-initialize.js";
4
+ function L(l) {
5
+ const { isLoaded: t, error: i } = v(p), e = r(null), o = r(!1);
6
+ d(() => {
7
+ const a = c(l);
8
+ if (t.value && !(!a.token && !a.receivedRedirectUri)) {
9
9
  if (!window.Plaid)
10
10
  throw new Error("Error loading Plaid SDK");
11
- n(), a.value = window.Plaid.create({
12
- ...e,
11
+ n(), e.value = window.Plaid.create({
12
+ ...a,
13
13
  onLoad: () => {
14
- var o;
15
- t.value = !0, (o = e.onLoad) == null || o.call(e);
14
+ o.value = !0, a.onLoad?.();
16
15
  }
17
16
  });
18
17
  }
19
18
  });
20
- const d = s(
21
- () => !r.value && a.value !== null && (i.value || t.value)
19
+ const u = s(
20
+ () => !i.value && e.value !== null && (t.value || o.value)
22
21
  );
23
22
  function n() {
24
- a.value && (a.value.exit({ force: !0 }), a.value.destroy(), t.value = !1);
23
+ e.value && (e.value.exit({ force: !0 }), e.value.destroy(), o.value = !1);
25
24
  }
26
- return v(n), {
27
- ready: d,
28
- error: r,
29
- open: () => {
30
- var e;
31
- return (e = a.value) == null ? void 0 : e.open();
32
- },
33
- exit: (e) => {
34
- var o;
35
- return (o = a.value) == null ? void 0 : o.exit(e);
36
- }
25
+ return f(n), {
26
+ ready: u,
27
+ error: i,
28
+ open: () => e.value?.open(),
29
+ exit: (a) => e.value?.exit(a)
37
30
  };
38
31
  }
39
32
  export {
40
- P as default
33
+ L as default
41
34
  };
42
35
  //# sourceMappingURL=usePlaidLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePlaidLink.js","sources":["../src/composables/usePlaidLink/usePlaidLink.ts"],"sourcesContent":["import { computed, MaybeRef, onUnmounted, ref, toValue, watchSyncEffect } from 'vue';\n\nimport { Plaid } from '../../../types/plaid';\nimport useScriptTag from '../useScriptTag/useScriptTag';\n\nconst PLAID_SDK_URL = 'https://cdn.plaid.com/link/v2/stable/link-initialize.js';\n\nexport default function usePlaidLink(options: MaybeRef<Plaid.CreateConfig>) {\n const { isLoaded: isPlaidScriptLoaded, error } = useScriptTag(PLAID_SDK_URL);\n\n const plaid = ref<Plaid.LinkHandler | null>(null);\n const iframeLoaded = ref(false);\n\n // We want to trigger this as soon as options ref changes\n watchSyncEffect(() => {\n const optionsVal = toValue(options);\n\n if (!isPlaidScriptLoaded.value) {\n return;\n }\n\n if (!optionsVal.token && !optionsVal.receivedRedirectUri) {\n return;\n }\n\n if (!window.Plaid) {\n throw new Error('Error loading Plaid SDK');\n }\n\n // destroy & exit existing instances so we don't\n // have multiple Plaid link modals at the same time\n teardown();\n\n plaid.value = window.Plaid.create({\n ...optionsVal,\n onLoad: () => {\n iframeLoaded.value = true;\n optionsVal.onLoad?.();\n },\n });\n });\n\n const ready = computed(\n () => !error.value && plaid.value !== null && (isPlaidScriptLoaded.value || iframeLoaded.value),\n );\n\n function teardown() {\n if (plaid.value) {\n plaid.value.exit({ force: true });\n plaid.value.destroy();\n\n iframeLoaded.value = false;\n }\n }\n\n onUnmounted(teardown);\n\n return {\n ready,\n error,\n open: () => plaid.value?.open(),\n exit: (options?: Plaid.ExitOptions) => plaid.value?.exit(options),\n };\n}\n"],"names":["PLAID_SDK_URL","usePlaidLink","options","isPlaidScriptLoaded","error","useScriptTag","plaid","ref","iframeLoaded","watchSyncEffect","optionsVal","toValue","teardown","_a","ready","computed","onUnmounted"],"mappings":";;AAKA,MAAMA,IAAgB;AAEtB,SAAwBC,EAAaC,GAAuC;AAC1E,QAAM,EAAE,UAAUC,GAAqB,OAAAC,EAAM,IAAIC,EAAaL,CAAa,GAErEM,IAAQC,EAA8B,IAAI,GAC1CC,IAAeD,EAAI,EAAK;AAG9B,EAAAE,EAAgB,MAAM;AACd,UAAAC,IAAaC,EAAQT,CAAO;AAE9B,QAACC,EAAoB,SAIrB,GAACO,EAAW,SAAS,CAACA,EAAW,sBAIjC;AAAA,UAAA,CAAC,OAAO;AACJ,cAAA,IAAI,MAAM,yBAAyB;AAKlC,MAAAE,EAAA,GAEHN,EAAA,QAAQ,OAAO,MAAM,OAAO;AAAA,QAChC,GAAGI;AAAA,QACH,QAAQ,MAAM;;AACZ,UAAAF,EAAa,QAAQ,KACrBK,IAAAH,EAAW,WAAX,QAAAG,EAAA,KAAAH;AAAA,QAAoB;AAAA,MACtB,CACD;AAAA;AAAA,EAAA,CACF;AAED,QAAMI,IAAQC;AAAA,IACZ,MAAM,CAACX,EAAM,SAASE,EAAM,UAAU,SAASH,EAAoB,SAASK,EAAa;AAAA,EAC3F;AAEA,WAASI,IAAW;AAClB,IAAIN,EAAM,UACRA,EAAM,MAAM,KAAK,EAAE,OAAO,IAAM,GAChCA,EAAM,MAAM,QAAQ,GAEpBE,EAAa,QAAQ;AAAA,EACvB;AAGF,SAAAQ,EAAYJ,CAAQ,GAEb;AAAA,IACL,OAAAE;AAAA,IACA,OAAAV;AAAA,IACA,MAAM,MAAM;;AAAA,cAAAS,IAAAP,EAAM,UAAN,gBAAAO,EAAa;AAAA;AAAA,IACzB,MAAM,CAACX,MAAAA;;AAAgC,cAAAW,IAAAP,EAAM,UAAN,gBAAAO,EAAa,KAAKX;AAAAA;AAAAA,EAC3D;AACF;"}
1
+ {"version":3,"file":"usePlaidLink.js","sources":["../src/composables/usePlaidLink/usePlaidLink.ts"],"sourcesContent":["import { computed, MaybeRef, onUnmounted, ref, toValue, watchSyncEffect } from 'vue';\n\nimport { Plaid } from '../../../types/plaid';\nimport useScriptTag from '../useScriptTag/useScriptTag';\n\nconst PLAID_SDK_URL = 'https://cdn.plaid.com/link/v2/stable/link-initialize.js';\n\nexport default function usePlaidLink(options: MaybeRef<Plaid.CreateConfig>) {\n const { isLoaded: isPlaidScriptLoaded, error } = useScriptTag(PLAID_SDK_URL);\n\n const plaid = ref<Plaid.LinkHandler | null>(null);\n const iframeLoaded = ref(false);\n\n // We want to trigger this as soon as options ref changes\n watchSyncEffect(() => {\n const optionsVal = toValue(options);\n\n if (!isPlaidScriptLoaded.value) {\n return;\n }\n\n if (!optionsVal.token && !optionsVal.receivedRedirectUri) {\n return;\n }\n\n if (!window.Plaid) {\n throw new Error('Error loading Plaid SDK');\n }\n\n // destroy & exit existing instances so we don't\n // have multiple Plaid link modals at the same time\n teardown();\n\n plaid.value = window.Plaid.create({\n ...optionsVal,\n onLoad: () => {\n iframeLoaded.value = true;\n optionsVal.onLoad?.();\n },\n });\n });\n\n const ready = computed(\n () => !error.value && plaid.value !== null && (isPlaidScriptLoaded.value || iframeLoaded.value),\n );\n\n function teardown() {\n if (plaid.value) {\n plaid.value.exit({ force: true });\n plaid.value.destroy();\n\n iframeLoaded.value = false;\n }\n }\n\n onUnmounted(teardown);\n\n return {\n ready,\n error,\n open: () => plaid.value?.open(),\n exit: (options?: Plaid.ExitOptions) => plaid.value?.exit(options),\n };\n}\n"],"names":["PLAID_SDK_URL","usePlaidLink","options","isPlaidScriptLoaded","error","useScriptTag","plaid","ref","iframeLoaded","watchSyncEffect","optionsVal","toValue","teardown","ready","computed","onUnmounted"],"mappings":";;AAKA,MAAMA,IAAgB;AAEtB,SAAwBC,EAAaC,GAAuC;AAC1E,QAAM,EAAE,UAAUC,GAAqB,OAAAC,EAAA,IAAUC,EAAaL,CAAa,GAErEM,IAAQC,EAA8B,IAAI,GAC1CC,IAAeD,EAAI,EAAK;AAG9B,EAAAE,EAAgB,MAAM;AACpB,UAAMC,IAAaC,EAAQT,CAAO;AAElC,QAAKC,EAAoB,SAIrB,GAACO,EAAW,SAAS,CAACA,EAAW,sBAIrC;AAAA,UAAI,CAAC,OAAO;AACV,cAAM,IAAI,MAAM,yBAAyB;AAK3C,MAAAE,EAAA,GAEAN,EAAM,QAAQ,OAAO,MAAM,OAAO;AAAA,QAChC,GAAGI;AAAA,QACH,QAAQ,MAAM;AACZ,UAAAF,EAAa,QAAQ,IACrBE,EAAW,SAAA;AAAA,QACb;AAAA,MAAA,CACD;AAAA;AAAA,EACH,CAAC;AAED,QAAMG,IAAQC;AAAA,IACZ,MAAM,CAACV,EAAM,SAASE,EAAM,UAAU,SAASH,EAAoB,SAASK,EAAa;AAAA,EAAA;AAG3F,WAASI,IAAW;AAClB,IAAIN,EAAM,UACRA,EAAM,MAAM,KAAK,EAAE,OAAO,IAAM,GAChCA,EAAM,MAAM,QAAA,GAEZE,EAAa,QAAQ;AAAA,EAEzB;AAEA,SAAAO,EAAYH,CAAQ,GAEb;AAAA,IACL,OAAAC;AAAA,IACA,OAAAT;AAAA,IACA,MAAM,MAAME,EAAM,OAAO,KAAA;AAAA,IACzB,MAAM,CAACJ,MAAgCI,EAAM,OAAO,KAAKJ,CAAO;AAAA,EAAA;AAEpE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScriptTag.js","sources":["../src/composables/useScriptTag/useScriptTag.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue';\n\ntype UseScriptOptions = {\n manual: boolean;\n};\n\nexport default function useScriptTag(url: string, options: UseScriptOptions = { manual: false }) {\n const scriptTag = ref<HTMLScriptElement | null>(null);\n const isLoaded = ref(false);\n const error = ref<Error | null>(null);\n\n const setIsLoaded = () => (isLoaded.value = true);\n const setError = (e: ErrorEvent) => (error.value = e.error);\n\n function loadScript() {\n let el = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (!el) {\n isLoaded.value = false;\n error.value = null;\n\n el = document.createElement('script');\n\n el.type = 'text/javascript';\n el.async = true;\n el.src = url;\n el.addEventListener('load', setIsLoaded);\n el.addEventListener('error', setError);\n document.head.appendChild(el);\n } else {\n isLoaded.value = true;\n }\n\n scriptTag.value = el;\n }\n\n function unloadScript() {\n if (!document) {\n return;\n }\n\n const elToBeRemoved = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (elToBeRemoved) {\n elToBeRemoved.removeEventListener('load', setIsLoaded);\n elToBeRemoved.removeEventListener('error', setError);\n\n document.head.removeChild(elToBeRemoved);\n\n scriptTag.value = null;\n isLoaded.value = false;\n }\n }\n\n if (!options.manual) {\n onMounted(loadScript);\n onUnmounted(unloadScript);\n }\n\n return { scriptTag, load: loadScript, unload: unloadScript, isLoaded, error };\n}\n"],"names":["useScriptTag","url","options","scriptTag","ref","isLoaded","error","setIsLoaded","setError","loadScript","el","unloadScript","elToBeRemoved","onMounted","onUnmounted"],"mappings":";AAMA,SAAwBA,EAAaC,GAAaC,IAA4B,EAAE,QAAQ,MAAS;AACzF,QAAAC,IAAYC,EAA8B,IAAI,GAC9CC,IAAWD,EAAI,EAAK,GACpBE,IAAQF,EAAkB,IAAI,GAE9BG,IAAc,MAAOF,EAAS,QAAQ,IACtCG,IAAW,CAAC,MAAmBF,EAAM,QAAQ,EAAE;AAErD,WAASG,IAAa;AACpB,QAAIC,IAAK,SAAS,cAAiC,eAAeT,CAAG,IAAI;AAEzE,IAAKS,IAaHL,EAAS,QAAQ,MAZjBA,EAAS,QAAQ,IACjBC,EAAM,QAAQ,MAETI,IAAA,SAAS,cAAc,QAAQ,GAEpCA,EAAG,OAAO,mBACVA,EAAG,QAAQ,IACXA,EAAG,MAAMT,GACNS,EAAA,iBAAiB,QAAQH,CAAW,GACpCG,EAAA,iBAAiB,SAASF,CAAQ,GAC5B,SAAA,KAAK,YAAYE,CAAE,IAK9BP,EAAU,QAAQO;AAAA,EAAA;AAGpB,WAASC,IAAe;AACtB,QAAI,CAAC;AACH;AAGF,UAAMC,IAAgB,SAAS,cAAiC,eAAeX,CAAG,IAAI;AAEtF,IAAIW,MACYA,EAAA,oBAAoB,QAAQL,CAAW,GACvCK,EAAA,oBAAoB,SAASJ,CAAQ,GAE1C,SAAA,KAAK,YAAYI,CAAa,GAEvCT,EAAU,QAAQ,MAClBE,EAAS,QAAQ;AAAA,EACnB;AAGE,SAACH,EAAQ,WACXW,EAAUJ,CAAU,GACpBK,EAAYH,CAAY,IAGnB,EAAE,WAAAR,GAAW,MAAMM,GAAY,QAAQE,GAAc,UAAAN,GAAU,OAAAC,EAAM;AAC9E;"}
1
+ {"version":3,"file":"useScriptTag.js","sources":["../src/composables/useScriptTag/useScriptTag.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue';\n\ntype UseScriptOptions = {\n manual: boolean;\n};\n\nexport default function useScriptTag(url: string, options: UseScriptOptions = { manual: false }) {\n const scriptTag = ref<HTMLScriptElement | null>(null);\n const isLoaded = ref(false);\n const error = ref<Error | null>(null);\n\n const setIsLoaded = () => (isLoaded.value = true);\n const setError = (e: ErrorEvent) => (error.value = e.error);\n\n function loadScript() {\n let el = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (!el) {\n isLoaded.value = false;\n error.value = null;\n\n el = document.createElement('script');\n\n el.type = 'text/javascript';\n el.async = true;\n el.src = url;\n el.addEventListener('load', setIsLoaded);\n el.addEventListener('error', setError);\n document.head.appendChild(el);\n } else {\n isLoaded.value = true;\n }\n\n scriptTag.value = el;\n }\n\n function unloadScript() {\n if (!document) {\n return;\n }\n\n const elToBeRemoved = document.querySelector<HTMLScriptElement>(`script[src=\"${url}\"]`);\n\n if (elToBeRemoved) {\n elToBeRemoved.removeEventListener('load', setIsLoaded);\n elToBeRemoved.removeEventListener('error', setError);\n\n document.head.removeChild(elToBeRemoved);\n\n scriptTag.value = null;\n isLoaded.value = false;\n }\n }\n\n if (!options.manual) {\n onMounted(loadScript);\n onUnmounted(unloadScript);\n }\n\n return { scriptTag, load: loadScript, unload: unloadScript, isLoaded, error };\n}\n"],"names":["useScriptTag","url","options","scriptTag","ref","isLoaded","error","setIsLoaded","setError","loadScript","el","unloadScript","elToBeRemoved","onMounted","onUnmounted"],"mappings":";AAMA,SAAwBA,EAAaC,GAAaC,IAA4B,EAAE,QAAQ,MAAS;AAC/F,QAAMC,IAAYC,EAA8B,IAAI,GAC9CC,IAAWD,EAAI,EAAK,GACpBE,IAAQF,EAAkB,IAAI,GAE9BG,IAAc,MAAOF,EAAS,QAAQ,IACtCG,IAAW,CAAC,MAAmBF,EAAM,QAAQ,EAAE;AAErD,WAASG,IAAa;AACpB,QAAIC,IAAK,SAAS,cAAiC,eAAeT,CAAG,IAAI;AAEzE,IAAKS,IAaHL,EAAS,QAAQ,MAZjBA,EAAS,QAAQ,IACjBC,EAAM,QAAQ,MAEdI,IAAK,SAAS,cAAc,QAAQ,GAEpCA,EAAG,OAAO,mBACVA,EAAG,QAAQ,IACXA,EAAG,MAAMT,GACTS,EAAG,iBAAiB,QAAQH,CAAW,GACvCG,EAAG,iBAAiB,SAASF,CAAQ,GACrC,SAAS,KAAK,YAAYE,CAAE,IAK9BP,EAAU,QAAQO;AAAA,EACpB;AAEA,WAASC,IAAe;AACtB,QAAI,CAAC;AACH;AAGF,UAAMC,IAAgB,SAAS,cAAiC,eAAeX,CAAG,IAAI;AAEtF,IAAIW,MACFA,EAAc,oBAAoB,QAAQL,CAAW,GACrDK,EAAc,oBAAoB,SAASJ,CAAQ,GAEnD,SAAS,KAAK,YAAYI,CAAa,GAEvCT,EAAU,QAAQ,MAClBE,EAAS,QAAQ;AAAA,EAErB;AAEA,SAAKH,EAAQ,WACXW,EAAUJ,CAAU,GACpBK,EAAYH,CAAY,IAGnB,EAAE,WAAAR,GAAW,MAAMM,GAAY,QAAQE,GAAc,UAAAN,GAAU,OAAAC,EAAA;AACxE;"}
package/dist/useSearch.js CHANGED
@@ -1,23 +1,23 @@
1
1
  import f from "lodash-es/get";
2
- import { computed as l } from "vue";
3
- import { i as s, s as h } from "./searchFuzzy-DRasJ33G.js";
4
- import { normalizeText as m } from "./utils/helpers.js";
5
- function S({ items: t, fieldNames: u, trackBy: o = "id" }) {
6
- const c = l(() => {
2
+ import { computed as s } from "vue";
3
+ import { i as l, s as p } from "./searchFuzzy-DBDE6jkd.js";
4
+ import { normalizeText as h } from "./utils/helpers.js";
5
+ function S({ items: t, fieldNames: e, trackBy: a = "id" }) {
6
+ const i = s(() => {
7
7
  const r = {};
8
- return !u || !u.length || t.value.forEach((e) => {
9
- const n = String(e[o]);
10
- r[n] = u.map((a) => m(f(e, a.split(".")))).filter(Boolean).join(" ");
8
+ return !e || !e.length || t.value.forEach((o) => {
9
+ const n = String(o[a]);
10
+ r[n] = e.map((u) => h(f(o, u.split(".")))).filter(Boolean).join(" ");
11
11
  }), r;
12
12
  });
13
- function i(r, e) {
14
- return e != null && e.fuzzy && s(t.value) ? h(r, t.value, { fieldNames: u }) : t.value.filter((n) => {
15
- const a = String(n[o]);
16
- return c.value[a].includes(r.trim().toLowerCase());
13
+ function c(r, o) {
14
+ return o?.fuzzy && l(t.value) ? p(r, t.value, { fieldNames: e }) : t.value.filter((n) => {
15
+ const u = String(n[a]);
16
+ return i.value[u].includes(r.trim().toLowerCase());
17
17
  });
18
18
  }
19
19
  return {
20
- searchFor: i
20
+ searchFor: c
21
21
  };
22
22
  }
23
23
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.js","sources":["../src/composables/useSearch/useSearch.ts"],"sourcesContent":["import get from 'lodash-es/get';\nimport { computed } from 'vue';\n\nimport { isListOfObjects } from '../../../types/utils';\nimport { normalizeText } from '../../utils/helpers';\nimport searchFuzzy from '../../utils/searchFuzzy';\nimport { SearchMap, UseSearchArgs } from './useSearch.types';\n\nexport default function useSearch<Item = unknown>({ items, fieldNames, trackBy = 'id' }: UseSearchArgs<Item>) {\n const searchMap = computed<SearchMap>(() => {\n const newSearchMap = {};\n\n if (!fieldNames || !fieldNames.length) {\n return newSearchMap;\n }\n\n items.value.forEach((item) => {\n const itemKey = String(item[trackBy]);\n\n newSearchMap[itemKey] = fieldNames\n .map((fieldName) => {\n return normalizeText(get(item, fieldName.split('.'))); // get the field's value\n })\n .filter(Boolean)\n .join(' ');\n });\n\n return newSearchMap;\n });\n\n /**\n * Filter `items` by the `fieldNames`'s values.\n * @param options.fuzzy - will use fuzzy search if true\n */\n function searchFor(\n searchTerm: string,\n options?: {\n fuzzy?: boolean;\n },\n ): Item[] {\n if (options?.fuzzy && isListOfObjects(items.value)) {\n return searchFuzzy<Item>(searchTerm, items.value, { fieldNames });\n }\n\n return items.value.filter((item) => {\n const itemKey = String(item[trackBy]);\n\n return searchMap.value[itemKey].includes(searchTerm.trim().toLowerCase());\n });\n }\n\n return {\n searchFor,\n };\n}\n\nexport * from './useSearch.types';\n"],"names":["useSearch","items","fieldNames","trackBy","searchMap","computed","newSearchMap","item","itemKey","fieldName","normalizeText","get","searchFor","searchTerm","options","isListOfObjects","searchFuzzy"],"mappings":";;;;AAQA,SAAwBA,EAA0B,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,IAAU,QAA6B;AACtG,QAAAC,IAAYC,EAAoB,MAAM;AAC1C,UAAMC,IAAe,CAAC;AAEtB,WAAI,CAACJ,KAAc,CAACA,EAAW,UAIzBD,EAAA,MAAM,QAAQ,CAACM,MAAS;AAC5B,YAAMC,IAAU,OAAOD,EAAKJ,CAAO,CAAC;AAEpC,MAAAG,EAAaE,CAAO,IAAIN,EACrB,IAAI,CAACO,MACGC,EAAcC,EAAIJ,GAAME,EAAU,MAAM,GAAG,CAAC,CAAC,CACrD,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,IAAA,CACZ,GAEMH;AAAA,EAAA,CACR;AAMQ,WAAAM,EACPC,GACAC,GAGQ;AACR,WAAIA,KAAA,QAAAA,EAAS,SAASC,EAAgBd,EAAM,KAAK,IACxCe,EAAkBH,GAAYZ,EAAM,OAAO,EAAE,YAAAC,GAAY,IAG3DD,EAAM,MAAM,OAAO,CAACM,MAAS;AAClC,YAAMC,IAAU,OAAOD,EAAKJ,CAAO,CAAC;AAE7B,aAAAC,EAAU,MAAMI,CAAO,EAAE,SAASK,EAAW,OAAO,aAAa;AAAA,IAAA,CACzE;AAAA,EAAA;AAGI,SAAA;AAAA,IACL,WAAAD;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"useSearch.js","sources":["../src/composables/useSearch/useSearch.ts"],"sourcesContent":["import get from 'lodash-es/get';\nimport { computed } from 'vue';\n\nimport { isListOfObjects } from '../../../types/utils';\nimport { normalizeText } from '../../utils/helpers';\nimport searchFuzzy from '../../utils/searchFuzzy';\nimport { SearchMap, UseSearchArgs } from './useSearch.types';\n\nexport default function useSearch<Item = unknown>({ items, fieldNames, trackBy = 'id' }: UseSearchArgs<Item>) {\n const searchMap = computed<SearchMap>(() => {\n const newSearchMap = {};\n\n if (!fieldNames || !fieldNames.length) {\n return newSearchMap;\n }\n\n items.value.forEach((item) => {\n const itemKey = String(item[trackBy]);\n\n newSearchMap[itemKey] = fieldNames\n .map((fieldName) => {\n return normalizeText(get(item, fieldName.split('.'))); // get the field's value\n })\n .filter(Boolean)\n .join(' ');\n });\n\n return newSearchMap;\n });\n\n /**\n * Filter `items` by the `fieldNames`'s values.\n * @param options.fuzzy - will use fuzzy search if true\n */\n function searchFor(\n searchTerm: string,\n options?: {\n fuzzy?: boolean;\n },\n ): Item[] {\n if (options?.fuzzy && isListOfObjects(items.value)) {\n return searchFuzzy<Item>(searchTerm, items.value, { fieldNames });\n }\n\n return items.value.filter((item) => {\n const itemKey = String(item[trackBy]);\n\n return searchMap.value[itemKey].includes(searchTerm.trim().toLowerCase());\n });\n }\n\n return {\n searchFor,\n };\n}\n\nexport * from './useSearch.types';\n"],"names":["useSearch","items","fieldNames","trackBy","searchMap","computed","newSearchMap","item","itemKey","fieldName","normalizeText","get","searchFor","searchTerm","options","isListOfObjects","searchFuzzy"],"mappings":";;;;AAQA,SAAwBA,EAA0B,EAAE,OAAAC,GAAO,YAAAC,GAAY,SAAAC,IAAU,QAA6B;AAC5G,QAAMC,IAAYC,EAAoB,MAAM;AAC1C,UAAMC,IAAe,CAAA;AAErB,WAAI,CAACJ,KAAc,CAACA,EAAW,UAI/BD,EAAM,MAAM,QAAQ,CAACM,MAAS;AAC5B,YAAMC,IAAU,OAAOD,EAAKJ,CAAO,CAAC;AAEpC,MAAAG,EAAaE,CAAO,IAAIN,EACrB,IAAI,CAACO,MACGC,EAAcC,EAAIJ,GAAME,EAAU,MAAM,GAAG,CAAC,CAAC,CACrD,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,IACb,CAAC,GAEMH;AAAA,EACT,CAAC;AAMD,WAASM,EACPC,GACAC,GAGQ;AACR,WAAIA,GAAS,SAASC,EAAgBd,EAAM,KAAK,IACxCe,EAAkBH,GAAYZ,EAAM,OAAO,EAAE,YAAAC,GAAY,IAG3DD,EAAM,MAAM,OAAO,CAACM,MAAS;AAClC,YAAMC,IAAU,OAAOD,EAAKJ,CAAO,CAAC;AAEpC,aAAOC,EAAU,MAAMI,CAAO,EAAE,SAASK,EAAW,OAAO,aAAa;AAAA,IAC1E,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,WAAAD;AAAA,EAAA;AAEJ;"}
@@ -1,88 +1,88 @@
1
- import { computed as f, toValue as w, ref as x } from "vue";
2
- function R({
3
- items: g,
4
- trackBy: A = "id",
5
- shouldDisable: t,
1
+ import { computed as r, toValue as N, ref as T } from "vue";
2
+ function x({
3
+ items: y,
4
+ trackBy: p = "id",
5
+ shouldDisable: u,
6
6
  shouldPreselect: o
7
7
  }) {
8
- const v = f(() => w(g));
9
- function r(e) {
10
- return String(e[A]);
8
+ const f = r(() => N(y));
9
+ function n(e) {
10
+ return String(e[p]);
11
11
  }
12
- const c = f(
13
- () => v.value.reduce(
14
- (e, u) => (e[r(u)] = u, e),
12
+ const l = r(
13
+ () => f.value.reduce(
14
+ (e, c) => (e[n(c)] = c, e),
15
15
  {}
16
16
  )
17
- ), n = x(/* @__PURE__ */ new Set());
18
- function m(e) {
19
- t != null && t(c.value[r(e)]) || n.value.add(r(e));
17
+ ), t = T(/* @__PURE__ */ new Set());
18
+ function g(e) {
19
+ u?.(l.value[n(e)]) || t.value.add(n(e));
20
20
  }
21
- function E(e) {
22
- t != null && t(c.value[r(e)]) || n.value.delete(r(e));
21
+ function A(e) {
22
+ u?.(l.value[n(e)]) || t.value.delete(n(e));
23
23
  }
24
- function k(e) {
25
- if (t != null && t(c.value[r(e)]))
24
+ function m(e) {
25
+ if (u?.(l.value[n(e)]))
26
26
  return;
27
- n.value.has(r(e)) ? n.value.delete(r(e)) : n.value.add(r(e));
27
+ t.value.has(n(e)) ? t.value.delete(n(e)) : t.value.add(n(e));
28
28
  }
29
- function l() {
30
- v.value.forEach((e) => {
31
- t != null && t(e) || n.value.add(r(e));
29
+ function v() {
30
+ f.value.forEach((e) => {
31
+ u?.(e) || t.value.add(n(e));
32
32
  });
33
33
  }
34
34
  function a() {
35
- typeof t == "function" ? n.value.forEach((e, u) => {
36
- t(c.value[u]) || n.value.delete(u);
37
- }) : n.value.clear();
35
+ typeof u == "function" ? t.value.forEach((e, c) => {
36
+ u(l.value[c]) || t.value.delete(c);
37
+ }) : t.value.clear();
38
38
  }
39
- function z() {
40
- y.value ? a() : l();
39
+ function E() {
40
+ d.value ? a() : v();
41
41
  }
42
42
  function i() {
43
- a(), typeof o == "function" && v.value.forEach((e) => {
44
- o(e) && n.value.add(r(e));
43
+ a(), typeof o == "function" && f.value.forEach((e) => {
44
+ o(e) && t.value.add(n(e));
45
45
  });
46
46
  }
47
- function I(e) {
48
- return n.value.has(r(e));
47
+ function k(e) {
48
+ return t.value.has(n(e));
49
49
  }
50
- function K(e) {
51
- return typeof t != "function" ? !1 : t(c.value[r(e)]);
50
+ function z(e) {
51
+ return typeof u != "function" ? !1 : u(l.value[n(e)]);
52
52
  }
53
- const N = f(() => Array.from(n.value.keys()).map((e) => c.value[e])), S = f(() => n.value.size === v.value.length), y = f(() => {
54
- if (typeof t != "function")
55
- return S.value;
56
- for (const e of v.value)
57
- if (!t(e) && !n.value.has(r(e)))
53
+ const I = r(() => Array.from(t.value.keys()).map((e) => l.value[e])), s = r(() => t.value.size === f.value.length), d = r(() => {
54
+ if (typeof u != "function")
55
+ return s.value;
56
+ for (const e of f.value)
57
+ if (!u(e) && !t.value.has(n(e)))
58
58
  return !1;
59
59
  return !0;
60
- }), p = f(() => n.value.size > 0), T = f(() => {
61
- if (typeof t != "function")
62
- return p.value;
63
- for (const e of n.value.keys())
64
- if (!t(c.value[e]))
60
+ }), S = r(() => t.value.size > 0), K = r(() => {
61
+ if (typeof u != "function")
62
+ return S.value;
63
+ for (const e of t.value.keys())
64
+ if (!u(l.value[e]))
65
65
  return !0;
66
66
  return !1;
67
67
  });
68
68
  return i(), {
69
- select: m,
70
- unselect: E,
71
- selectToggle: k,
72
- selectAll: l,
69
+ select: g,
70
+ unselect: A,
71
+ selectToggle: m,
72
+ selectAll: v,
73
73
  unselectAll: a,
74
- selectToggleAll: z,
74
+ selectToggleAll: E,
75
75
  resetSelection: i,
76
- isSelected: I,
77
- isSelectDisabled: K,
78
- selectedItems: N,
79
- allSelected: S,
80
- allNonDisabledSelected: y,
81
- someSelected: p,
82
- someNonDisabledSelected: T
76
+ isSelected: k,
77
+ isSelectDisabled: z,
78
+ selectedItems: I,
79
+ allSelected: s,
80
+ allNonDisabledSelected: d,
81
+ someSelected: S,
82
+ someNonDisabledSelected: K
83
83
  };
84
84
  }
85
85
  export {
86
- R as default
86
+ x as default
87
87
  };
88
88
  //# sourceMappingURL=useSelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelection.js","sources":["../src/composables/useSelection/useSelection.ts"],"sourcesContent":["import { computed, ref, toValue } from 'vue';\n\nimport { UseSelection, UseSelectionArgs } from './useSelection.types';\n\nexport default function useSelection<Item extends object>({\n items,\n trackBy = 'id',\n shouldDisable,\n shouldPreselect,\n}: UseSelectionArgs<Item>): UseSelection<Item> {\n const itemsRef = computed(() => toValue(items));\n\n function getItemKey(item: Item) {\n return String(item[trackBy]);\n }\n\n const itemsByKey = computed(() =>\n itemsRef.value.reduce(\n (map, item) => {\n map[getItemKey(item)] = item;\n\n return map;\n },\n {} as { [key: string]: Item },\n ),\n );\n\n /**\n * A set of item keys that are currently selected, regardless if they are disabled\n */\n const selectedSet = ref(new Set<string>());\n\n function select(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.add(getItemKey(item));\n }\n\n function unselect(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.delete(getItemKey(item));\n }\n\n function selectToggle(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n const isSelected = selectedSet.value.has(getItemKey(item));\n\n if (isSelected) {\n selectedSet.value.delete(getItemKey(item));\n } else {\n selectedSet.value.add(getItemKey(item));\n }\n }\n\n function selectAll() {\n itemsRef.value.forEach((item) => {\n if (!shouldDisable?.(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n\n function unselectAll() {\n if (typeof shouldDisable === 'function') {\n selectedSet.value.forEach((_isSelected, itemKey) => {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n selectedSet.value.delete(itemKey);\n }\n });\n } else {\n selectedSet.value.clear();\n }\n }\n\n function selectToggleAll() {\n if (allNonDisabledSelected.value) {\n unselectAll();\n } else {\n selectAll();\n }\n }\n\n function resetSelection() {\n unselectAll();\n\n if (typeof shouldPreselect === 'function') {\n itemsRef.value.forEach((item) => {\n if (shouldPreselect(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n }\n\n function isSelected(item: Item) {\n return selectedSet.value.has(getItemKey(item));\n }\n\n function isSelectDisabled(item: Item) {\n if (typeof shouldDisable !== 'function') {\n return false;\n }\n\n return shouldDisable(itemsByKey.value[getItemKey(item)]);\n }\n\n const selectedItems = computed(() => {\n return Array.from(selectedSet.value.keys()).map((itemKey) => itemsByKey.value[itemKey]);\n });\n\n const allSelected = computed(() => {\n return selectedSet.value.size === itemsRef.value.length;\n });\n\n const allNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return allSelected.value;\n }\n\n for (const item of itemsRef.value) {\n if (!shouldDisable(item) && !selectedSet.value.has(getItemKey(item))) {\n return false;\n }\n }\n\n return true;\n });\n\n const someSelected = computed(() => {\n return selectedSet.value.size > 0;\n });\n\n const someNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return someSelected.value;\n }\n\n for (const itemKey of selectedSet.value.keys()) {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n return true;\n }\n }\n\n return false;\n });\n\n resetSelection();\n\n return {\n select,\n unselect,\n selectToggle,\n selectAll,\n unselectAll,\n selectToggleAll,\n resetSelection,\n isSelected,\n isSelectDisabled,\n selectedItems,\n allSelected,\n allNonDisabledSelected,\n someSelected,\n someNonDisabledSelected,\n };\n}\n\nexport * from './useSelection.types';\n"],"names":["useSelection","items","trackBy","shouldDisable","shouldPreselect","itemsRef","computed","toValue","getItemKey","item","itemsByKey","map","selectedSet","ref","select","unselect","selectToggle","selectAll","unselectAll","_isSelected","itemKey","selectToggleAll","allNonDisabledSelected","resetSelection","isSelected","isSelectDisabled","selectedItems","allSelected","someSelected","someNonDisabledSelected"],"mappings":"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"}
1
+ {"version":3,"file":"useSelection.js","sources":["../src/composables/useSelection/useSelection.ts"],"sourcesContent":["import { computed, ref, toValue } from 'vue';\n\nimport { UseSelection, UseSelectionArgs } from './useSelection.types';\n\nexport default function useSelection<Item extends object>({\n items,\n trackBy = 'id',\n shouldDisable,\n shouldPreselect,\n}: UseSelectionArgs<Item>): UseSelection<Item> {\n const itemsRef = computed(() => toValue(items));\n\n function getItemKey(item: Item) {\n return String(item[trackBy]);\n }\n\n const itemsByKey = computed(() =>\n itemsRef.value.reduce(\n (map, item) => {\n map[getItemKey(item)] = item;\n\n return map;\n },\n {} as { [key: string]: Item },\n ),\n );\n\n /**\n * A set of item keys that are currently selected, regardless if they are disabled\n */\n const selectedSet = ref(new Set<string>());\n\n function select(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.add(getItemKey(item));\n }\n\n function unselect(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n selectedSet.value.delete(getItemKey(item));\n }\n\n function selectToggle(item: Item) {\n if (shouldDisable?.(itemsByKey.value[getItemKey(item)])) {\n return;\n }\n\n const isSelected = selectedSet.value.has(getItemKey(item));\n\n if (isSelected) {\n selectedSet.value.delete(getItemKey(item));\n } else {\n selectedSet.value.add(getItemKey(item));\n }\n }\n\n function selectAll() {\n itemsRef.value.forEach((item) => {\n if (!shouldDisable?.(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n\n function unselectAll() {\n if (typeof shouldDisable === 'function') {\n selectedSet.value.forEach((_isSelected, itemKey) => {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n selectedSet.value.delete(itemKey);\n }\n });\n } else {\n selectedSet.value.clear();\n }\n }\n\n function selectToggleAll() {\n if (allNonDisabledSelected.value) {\n unselectAll();\n } else {\n selectAll();\n }\n }\n\n function resetSelection() {\n unselectAll();\n\n if (typeof shouldPreselect === 'function') {\n itemsRef.value.forEach((item) => {\n if (shouldPreselect(item)) {\n selectedSet.value.add(getItemKey(item));\n }\n });\n }\n }\n\n function isSelected(item: Item) {\n return selectedSet.value.has(getItemKey(item));\n }\n\n function isSelectDisabled(item: Item) {\n if (typeof shouldDisable !== 'function') {\n return false;\n }\n\n return shouldDisable(itemsByKey.value[getItemKey(item)]);\n }\n\n const selectedItems = computed(() => {\n return Array.from(selectedSet.value.keys()).map((itemKey) => itemsByKey.value[itemKey]);\n });\n\n const allSelected = computed(() => {\n return selectedSet.value.size === itemsRef.value.length;\n });\n\n const allNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return allSelected.value;\n }\n\n for (const item of itemsRef.value) {\n if (!shouldDisable(item) && !selectedSet.value.has(getItemKey(item))) {\n return false;\n }\n }\n\n return true;\n });\n\n const someSelected = computed(() => {\n return selectedSet.value.size > 0;\n });\n\n const someNonDisabledSelected = computed(() => {\n if (typeof shouldDisable !== 'function') {\n return someSelected.value;\n }\n\n for (const itemKey of selectedSet.value.keys()) {\n if (!shouldDisable(itemsByKey.value[itemKey])) {\n return true;\n }\n }\n\n return false;\n });\n\n resetSelection();\n\n return {\n select,\n unselect,\n selectToggle,\n selectAll,\n unselectAll,\n selectToggleAll,\n resetSelection,\n isSelected,\n isSelectDisabled,\n selectedItems,\n allSelected,\n allNonDisabledSelected,\n someSelected,\n someNonDisabledSelected,\n };\n}\n\nexport * from './useSelection.types';\n"],"names":["useSelection","items","trackBy","shouldDisable","shouldPreselect","itemsRef","computed","toValue","getItemKey","item","itemsByKey","map","selectedSet","ref","select","unselect","selectToggle","selectAll","unselectAll","_isSelected","itemKey","selectToggleAll","allNonDisabledSelected","resetSelection","isSelected","isSelectDisabled","selectedItems","allSelected","someSelected","someNonDisabledSelected"],"mappings":";AAIA,SAAwBA,EAAkC;AAAA,EACxD,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,eAAAC;AAAA,EACA,iBAAAC;AACF,GAA+C;AAC7C,QAAMC,IAAWC,EAAS,MAAMC,EAAQN,CAAK,CAAC;AAE9C,WAASO,EAAWC,GAAY;AAC9B,WAAO,OAAOA,EAAKP,CAAO,CAAC;AAAA,EAC7B;AAEA,QAAMQ,IAAaJ;AAAA,IAAS,MAC1BD,EAAS,MAAM;AAAA,MACb,CAACM,GAAKF,OACJE,EAAIH,EAAWC,CAAI,CAAC,IAAIA,GAEjBE;AAAA,MAET,CAAA;AAAA,IAAC;AAAA,EACH,GAMIC,IAAcC,EAAI,oBAAI,KAAa;AAEzC,WAASC,EAAOL,GAAY;AAC1B,IAAIN,IAAgBO,EAAW,MAAMF,EAAWC,CAAI,CAAC,CAAC,KAItDG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC;AAAA,EACxC;AAEA,WAASM,EAASN,GAAY;AAC5B,IAAIN,IAAgBO,EAAW,MAAMF,EAAWC,CAAI,CAAC,CAAC,KAItDG,EAAY,MAAM,OAAOJ,EAAWC,CAAI,CAAC;AAAA,EAC3C;AAEA,WAASO,EAAaP,GAAY;AAChC,QAAIN,IAAgBO,EAAW,MAAMF,EAAWC,CAAI,CAAC,CAAC;AACpD;AAKF,IAFmBG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC,IAGvDG,EAAY,MAAM,OAAOJ,EAAWC,CAAI,CAAC,IAEzCG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC;AAAA,EAE1C;AAEA,WAASQ,IAAY;AACnB,IAAAZ,EAAS,MAAM,QAAQ,CAACI,MAAS;AAC/B,MAAKN,IAAgBM,CAAI,KACvBG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC;AAAA,IAE1C,CAAC;AAAA,EACH;AAEA,WAASS,IAAc;AACrB,IAAI,OAAOf,KAAkB,aAC3BS,EAAY,MAAM,QAAQ,CAACO,GAAaC,MAAY;AAClD,MAAKjB,EAAcO,EAAW,MAAMU,CAAO,CAAC,KAC1CR,EAAY,MAAM,OAAOQ,CAAO;AAAA,IAEpC,CAAC,IAEDR,EAAY,MAAM,MAAA;AAAA,EAEtB;AAEA,WAASS,IAAkB;AACzB,IAAIC,EAAuB,QACzBJ,EAAA,IAEAD,EAAA;AAAA,EAEJ;AAEA,WAASM,IAAiB;AACxB,IAAAL,EAAA,GAEI,OAAOd,KAAoB,cAC7BC,EAAS,MAAM,QAAQ,CAACI,MAAS;AAC/B,MAAIL,EAAgBK,CAAI,KACtBG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC;AAAA,IAE1C,CAAC;AAAA,EAEL;AAEA,WAASe,EAAWf,GAAY;AAC9B,WAAOG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC;AAAA,EAC/C;AAEA,WAASgB,EAAiBhB,GAAY;AACpC,WAAI,OAAON,KAAkB,aACpB,KAGFA,EAAcO,EAAW,MAAMF,EAAWC,CAAI,CAAC,CAAC;AAAA,EACzD;AAEA,QAAMiB,IAAgBpB,EAAS,MACtB,MAAM,KAAKM,EAAY,MAAM,KAAA,CAAM,EAAE,IAAI,CAACQ,MAAYV,EAAW,MAAMU,CAAO,CAAC,CACvF,GAEKO,IAAcrB,EAAS,MACpBM,EAAY,MAAM,SAASP,EAAS,MAAM,MAClD,GAEKiB,IAAyBhB,EAAS,MAAM;AAC5C,QAAI,OAAOH,KAAkB;AAC3B,aAAOwB,EAAY;AAGrB,eAAWlB,KAAQJ,EAAS;AAC1B,UAAI,CAACF,EAAcM,CAAI,KAAK,CAACG,EAAY,MAAM,IAAIJ,EAAWC,CAAI,CAAC;AACjE,eAAO;AAIX,WAAO;AAAA,EACT,CAAC,GAEKmB,IAAetB,EAAS,MACrBM,EAAY,MAAM,OAAO,CACjC,GAEKiB,IAA0BvB,EAAS,MAAM;AAC7C,QAAI,OAAOH,KAAkB;AAC3B,aAAOyB,EAAa;AAGtB,eAAWR,KAAWR,EAAY,MAAM,KAAA;AACtC,UAAI,CAACT,EAAcO,EAAW,MAAMU,CAAO,CAAC;AAC1C,eAAO;AAIX,WAAO;AAAA,EACT,CAAC;AAED,SAAAG,EAAA,GAEO;AAAA,IACL,QAAAT;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAG;AAAA,IACA,gBAAAE;AAAA,IACA,YAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,wBAAAL;AAAA,IACA,cAAAM;AAAA,IACA,yBAAAC;AAAA,EAAA;AAEJ;"}