@leaflink/stash 52.0.3 → 53.1.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 (273) hide show
  1. package/README.md +51 -52
  2. package/dist/Accordion.js +16 -16
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/AccordionGroup.js +7 -7
  5. package/dist/AccordionGroup.js.map +1 -1
  6. package/dist/ActionsDropdown.js +16 -16
  7. package/dist/ActionsDropdown.js.map +1 -1
  8. package/dist/AddressSelect.js.map +1 -1
  9. package/dist/AddressSelect.vue.d.ts +1 -1
  10. package/dist/Alert.js +34 -34
  11. package/dist/Alert.js.map +1 -1
  12. package/dist/AppNavigationItem.js +31 -31
  13. package/dist/AppNavigationItem.js.map +1 -1
  14. package/dist/AppSidebar.js +19 -19
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppTopbar.js +32 -32
  17. package/dist/AppTopbar.js.map +1 -1
  18. package/dist/Avatar.js +18 -18
  19. package/dist/Avatar.js.map +1 -1
  20. package/dist/Backdrop.js +5 -5
  21. package/dist/Backdrop.js.map +1 -1
  22. package/dist/Badge.js +38 -38
  23. package/dist/Badge.js.map +1 -1
  24. package/dist/Box.js +1 -1
  25. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js} +6 -6
  26. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js.map} +1 -1
  27. package/dist/Button.js +21 -21
  28. package/dist/Button.js.map +1 -1
  29. package/dist/ButtonGroup.js +26 -26
  30. package/dist/ButtonGroup.js.map +1 -1
  31. package/dist/Card.js +14 -14
  32. package/dist/Card.js.map +1 -1
  33. package/dist/CardContent.js +1 -1
  34. package/dist/CardContent.js.map +1 -1
  35. package/dist/CardFooter.js +1 -1
  36. package/dist/CardFooter.js.map +1 -1
  37. package/dist/CardHeader.js +4 -4
  38. package/dist/CardHeader.js.map +1 -1
  39. package/dist/CardMedia.js +20 -20
  40. package/dist/CardMedia.js.map +1 -1
  41. package/dist/Carousel.js +60 -60
  42. package/dist/Carousel.js.map +1 -1
  43. package/dist/Checkbox.js +30 -30
  44. package/dist/Checkbox.js.map +1 -1
  45. package/dist/Checkbox.vue.d.ts +0 -3
  46. package/dist/Chip.js +33 -33
  47. package/dist/Chip.js.map +1 -1
  48. package/dist/ConfirmationCodeInput.js +72 -72
  49. package/dist/ConfirmationCodeInput.js.map +1 -1
  50. package/dist/ContextSwitcher.js +27 -27
  51. package/dist/ContextSwitcher.js.map +1 -1
  52. package/dist/Copy.js +47 -48
  53. package/dist/Copy.js.map +1 -1
  54. package/dist/CurrencyInput.js +1 -1
  55. package/dist/CurrencyInput.js.map +1 -1
  56. package/dist/CurrencyInput.vue.d.ts +5 -5
  57. package/dist/DataView.js +23 -23
  58. package/dist/DataView.js.map +1 -1
  59. package/dist/DataViewFilters.js +26 -26
  60. package/dist/DataViewFilters.js.map +1 -1
  61. package/dist/DataViewSortButton.js +22 -22
  62. package/dist/DataViewSortButton.js.map +1 -1
  63. package/dist/DataViewToolbar.js +52 -52
  64. package/dist/DataViewToolbar.js.map +1 -1
  65. package/dist/DatePicker.js +10 -10
  66. package/dist/DatePicker.js.map +1 -1
  67. package/dist/DescriptionList.js +2 -2
  68. package/dist/DescriptionList.js.map +1 -1
  69. package/dist/DescriptionListDetail.js +2 -2
  70. package/dist/DescriptionListDetail.js.map +1 -1
  71. package/dist/DescriptionListGroup.js +9 -9
  72. package/dist/DescriptionListGroup.js.map +1 -1
  73. package/dist/DescriptionListTerm.js +8 -8
  74. package/dist/DescriptionListTerm.js.map +1 -1
  75. package/dist/Dialog.js +47 -47
  76. package/dist/Dialog.js.map +1 -1
  77. package/dist/Divider.js +6 -6
  78. package/dist/Divider.js.map +1 -1
  79. package/dist/Dropdown.js +20 -20
  80. package/dist/Dropdown.js.map +1 -1
  81. package/dist/EmptyState.js +26 -26
  82. package/dist/EmptyState.js.map +1 -1
  83. package/dist/Field.js +1 -1
  84. package/dist/{Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js → Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js} +17 -17
  85. package/dist/Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js.map +1 -0
  86. package/dist/FileUpload.js +47 -49
  87. package/dist/FileUpload.js.map +1 -1
  88. package/dist/FilterChip.js +20 -20
  89. package/dist/FilterChip.js.map +1 -1
  90. package/dist/FilterDrawerItem.js +13 -13
  91. package/dist/FilterDrawerItem.js.map +1 -1
  92. package/dist/FilterDropdown.js +27 -27
  93. package/dist/FilterDropdown.js.map +1 -1
  94. package/dist/FilterSelect.js +33 -33
  95. package/dist/FilterSelect.js.map +1 -1
  96. package/dist/Filters.js +29 -29
  97. package/dist/Filters.js.map +1 -1
  98. package/dist/Filters.vue.d.ts +2 -8
  99. package/dist/HttpError.js +29 -29
  100. package/dist/HttpError.js.map +1 -1
  101. package/dist/HttpError.vue.d.ts +0 -3
  102. package/dist/Icon.js +12 -12
  103. package/dist/Icon.js.map +1 -1
  104. package/dist/IconLabel.js +19 -19
  105. package/dist/IconLabel.js.map +1 -1
  106. package/dist/IconLabel.vue.d.ts +1 -1
  107. package/dist/Illustration.js +2 -2
  108. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js} +4 -4
  109. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js.map} +1 -1
  110. package/dist/Image.js +2 -2
  111. package/dist/Image.vue.d.ts +0 -3
  112. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js} +11 -11
  113. package/dist/Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js.map +1 -0
  114. package/dist/InlineEdit.js +8 -8
  115. package/dist/InlineEdit.js.map +1 -1
  116. package/dist/Input.js +29 -29
  117. package/dist/Input.js.map +1 -1
  118. package/dist/InputOptions.js +87 -84
  119. package/dist/InputOptions.js.map +1 -1
  120. package/dist/InputOptions.vue.d.ts +2 -2
  121. package/dist/IntegrationIcon.js +11 -11
  122. package/dist/IntegrationIcon.js.map +1 -1
  123. package/dist/Label.js +1 -1
  124. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js} +16 -16
  125. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js.map} +1 -1
  126. package/dist/ListItem.js +14 -14
  127. package/dist/ListItem.js.map +1 -1
  128. package/dist/ListItem.vue.d.ts +0 -6
  129. package/dist/ListItemCell.js +9 -9
  130. package/dist/ListItemCell.js.map +1 -1
  131. package/dist/ListView.js +138 -141
  132. package/dist/ListView.js.map +1 -1
  133. package/dist/ListView.vue.d.ts +6 -40
  134. package/dist/Loading.js +8 -8
  135. package/dist/Loading.js.map +1 -1
  136. package/dist/Logo.js +1 -1
  137. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js} +3 -3
  138. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js.map} +1 -1
  139. package/dist/Menu.js +5 -5
  140. package/dist/Menu.js.map +1 -1
  141. package/dist/MenuItem.js +12 -12
  142. package/dist/MenuItem.js.map +1 -1
  143. package/dist/Metric.js +24 -24
  144. package/dist/Metric.js.map +1 -1
  145. package/dist/Modal.js +60 -60
  146. package/dist/Modal.js.map +1 -1
  147. package/dist/Modals.js +1 -1
  148. package/dist/Modals.js.map +1 -1
  149. package/dist/Module.js +6 -6
  150. package/dist/Module.js.map +1 -1
  151. package/dist/ModuleContent.js +16 -16
  152. package/dist/ModuleContent.js.map +1 -1
  153. package/dist/ModuleFooter.js +13 -13
  154. package/dist/ModuleFooter.js.map +1 -1
  155. package/dist/ModuleHeader.js +29 -29
  156. package/dist/ModuleHeader.js.map +1 -1
  157. package/dist/MoreActions.js +81 -84
  158. package/dist/MoreActions.js.map +1 -1
  159. package/dist/ObfuscateText.js +4 -4
  160. package/dist/ObfuscateText.js.map +1 -1
  161. package/dist/PageContent.js +13 -13
  162. package/dist/PageContent.js.map +1 -1
  163. package/dist/PageHeader.js +28 -28
  164. package/dist/PageHeader.js.map +1 -1
  165. package/dist/PageNavigation.js +1 -1
  166. package/dist/Paginate.js +45 -45
  167. package/dist/Paginate.js.map +1 -1
  168. package/dist/QuickAction.js +18 -18
  169. package/dist/QuickAction.js.map +1 -1
  170. package/dist/Radio.js +17 -17
  171. package/dist/Radio.js.map +1 -1
  172. package/dist/RadioGroup.js +121 -121
  173. package/dist/RadioGroup.js.map +1 -1
  174. package/dist/RadioNew.js +80 -80
  175. package/dist/RadioNew.js.map +1 -1
  176. package/dist/RadioNew.vue.d.ts +0 -3
  177. package/dist/RangeInput.js +2 -2
  178. package/dist/RangeInput.js.map +1 -1
  179. package/dist/SearchBar.js +9 -9
  180. package/dist/SearchBar.js.map +1 -1
  181. package/dist/SectionHeader.js +14 -14
  182. package/dist/SectionHeader.js.map +1 -1
  183. package/dist/Select.js +369 -366
  184. package/dist/Select.js.map +1 -1
  185. package/dist/SelectStatus.js +26 -26
  186. package/dist/SelectStatus.js.map +1 -1
  187. package/dist/Skeleton.js +20 -20
  188. package/dist/Skeleton.js.map +1 -1
  189. package/dist/Step.js +37 -40
  190. package/dist/Step.js.map +1 -1
  191. package/dist/Stepper.js +17 -17
  192. package/dist/Stepper.js.map +1 -1
  193. package/dist/Switch.js +57 -57
  194. package/dist/Switch.js.map +1 -1
  195. package/dist/Tab.js +17 -19
  196. package/dist/Tab.js.map +1 -1
  197. package/dist/TabPanel.js +1 -1
  198. package/dist/TabPanel.js.map +1 -1
  199. package/dist/Table.js +22 -22
  200. package/dist/Table.js.map +1 -1
  201. package/dist/TableCell.js +32 -32
  202. package/dist/TableCell.js.map +1 -1
  203. package/dist/TableHeaderCell.js +35 -35
  204. package/dist/TableHeaderCell.js.map +1 -1
  205. package/dist/TableHeaderRow.js +10 -10
  206. package/dist/TableHeaderRow.js.map +1 -1
  207. package/dist/TableRow.js +51 -51
  208. package/dist/TableRow.js.map +1 -1
  209. package/dist/Tabs.js +2 -2
  210. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js → Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js} +33 -33
  211. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js.map +1 -0
  212. package/dist/TextEditor.js +8 -8
  213. package/dist/TextEditor.js.map +1 -1
  214. package/dist/Textarea.js +15 -15
  215. package/dist/Textarea.js.map +1 -1
  216. package/dist/Thumbnail.js +41 -41
  217. package/dist/Thumbnail.js.map +1 -1
  218. package/dist/ThumbnailEmpty.js +3 -3
  219. package/dist/ThumbnailEmpty.js.map +1 -1
  220. package/dist/ThumbnailGroup.js +22 -22
  221. package/dist/ThumbnailGroup.js.map +1 -1
  222. package/dist/Timeline.js +6 -6
  223. package/dist/Timeline.js.map +1 -1
  224. package/dist/Timeline.vue.d.ts +2 -2
  225. package/dist/TimelineItem.js +22 -22
  226. package/dist/TimelineItem.js.map +1 -1
  227. package/dist/Toast.js +29 -29
  228. package/dist/Toast.js.map +1 -1
  229. package/dist/Toast.vue.d.ts +3 -0
  230. package/dist/Toasts.js +11 -11
  231. package/dist/Toasts.js.map +1 -1
  232. package/dist/Tooltip.js +2 -81
  233. package/dist/Tooltip.js.map +1 -1
  234. package/dist/Tooltip.vue.d.ts +1 -1
  235. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js +84 -0
  236. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js.map +1 -0
  237. package/dist/components.css +2 -2
  238. package/dist/constants.d.ts +9 -9
  239. package/dist/constants.js +17 -17
  240. package/dist/constants.js.map +1 -1
  241. package/dist/directives/tooltip.js +2 -2
  242. package/dist/directives/tooltip.js.map +1 -1
  243. package/dist/floating-ui.vue-CuGrC-z8.js.map +1 -1
  244. package/dist/formatDateTime-Dz8bXV0R.js.map +1 -1
  245. package/dist/index-D6bxWkZ1.js.map +1 -1
  246. package/dist/{index-C14LhAwV.js → index-DBV9Uz0C.js} +3 -3
  247. package/dist/index-DBV9Uz0C.js.map +1 -0
  248. package/dist/index.js.map +1 -1
  249. package/dist/isValid-DN-HkCoi.js.map +1 -1
  250. package/dist/parseISO-wlfIB_QJ.js.map +1 -1
  251. package/dist/searchFuzzy-B3TsUO-V.js.map +1 -1
  252. package/dist/tailwind-base.js +4 -4
  253. package/dist/tailwind-base.js.d.ts +12 -0
  254. package/dist/tailwind-base.js.map +1 -1
  255. package/dist/toTimeZone-Coq1oPTt.js.map +1 -1
  256. package/dist/useGoogleMaps.js.map +1 -1
  257. package/dist/useSortable.js +1 -1
  258. package/dist/useValidation.js.map +1 -1
  259. package/dist/utils/helpers.js +15 -15
  260. package/dist/utils/helpers.js.map +1 -1
  261. package/package.json +12 -82
  262. package/styles/backwards-compat.css +375 -2854
  263. package/styles/main.css +8 -0
  264. package/styles/sofia-font.css +23 -27
  265. package/styles/theme.css +1033 -0
  266. package/LICENSE +0 -21
  267. package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +0 -1
  268. package/dist/Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map +0 -1
  269. package/dist/Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js.map +0 -1
  270. package/dist/index-C14LhAwV.js.map +0 -1
  271. package/dist/tailwind-base.d.ts +0 -333
  272. package/styles/base.css +0 -902
  273. package/tailwind-base.ts +0 -455
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/.pnpm/vue3-touch-events@4.2.0/node_modules/vue3-touch-events/index.js","../src/components/Dialogs/Dialogs.vue","../src/plugins/DialogsPlugin.ts","../src/index.ts"],"sourcesContent":["/**\r\n * @project vue3-touch-events\r\n * @author Robin Rodricks, Xavier Julien, Jerry Bendy\r\n * @since 30/4/2021\r\n * @url https://github.com/robinrodricks/vue3-touch-events\r\n */\r\n\r\nfunction touchX(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientX;\r\n }\r\n return event.touches[0].clientX;\r\n}\r\n\r\nfunction touchY(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientY;\r\n }\r\n return event.touches[0].clientY;\r\n}\r\n\r\nvar isPassiveSupported = (function() {\r\n var supportsPassive = false;\r\n try {\r\n var opts = Object.defineProperty({}, 'passive', {\r\n get: function() {\r\n supportsPassive = true;\r\n }\r\n });\r\n window.addEventListener('test', null, opts);\r\n } catch (e) {}\r\n return supportsPassive;\r\n})();\r\n\r\nvar vueTouchEvents = {\r\n install: function (app, constructorOptions) {\r\n\t\t\r\n var globalOptions = Object.assign({}, {\r\n disableClick: false,\r\n tapTolerance: 10, // px\r\n swipeTolerance: 30, // px\r\n touchHoldTolerance: 400, // ms\r\n longTapTimeInterval: 400, // ms\r\n touchClass: '',\r\n\t\t\tdragFrequency: 100, // ms\r\n\t\t\trollOverFrequency: 100, // ms\r\n namespace: 'touch',\r\n }, constructorOptions);\r\n\r\n function touchStartEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0,\r\n $el = this;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchStartTime = event.timeStamp;\r\n }\r\n\r\n if (isMouseEvent && $this.lastTouchStartTime && event.timeStamp - $this.lastTouchStartTime < 350) {\r\n return;\r\n }\r\n\r\n if ($this.touchStarted) {\r\n return;\r\n }\r\n\r\n addTouchClass(this);\r\n\r\n $this.touchStarted = true; // always true while the element is being PRESSED\r\n\r\n $this.touchMoved = false; // true only when the element is PRESSED and DRAGGED a bit\r\n $this.swipeOutBounded = false;\r\n\r\n $this.startX = touchX(event);\r\n $this.startY = touchY(event);\r\n\r\n $this.currentX = 0; // always updated with the last mouse X/Y while over the element\r\n $this.currentY = 0;\r\n\r\n $this.touchStartTime = event.timeStamp;\r\n\t\t\t\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n\t\t\t$this.hasSwipe = hasEvent(this, 'swipe')\r\n\t\t\t\t|| hasEvent(this, 'swipe.left') || hasEvent(this, 'swipe.right')\r\n\t\t\t\t|| hasEvent(this, 'swipe.top') || hasEvent(this, 'swipe.bottom');\r\n\r\n\t\t\t// performance: only start hold timer if the `hold` event is registered on this element\r\n\t\t\tif (hasEvent(this, 'hold')){\r\n\t\t\t\t\r\n\t\t\t\t// Trigger touchhold event after `touchHoldTolerance` MS\r\n\t\t\t\t$this.touchHoldTimer = setTimeout(function() {\r\n\t\t\t\t\t$this.touchHoldTimer = null;\r\n\t\t\t\t\ttriggerEvent(event, $el, 'hold');\r\n\t\t\t\t}, $this.options.touchHoldTolerance);\r\n\t\t\t}\r\n\t\t\t\r\n triggerEvent(event, this, 'press');\r\n }\r\n\r\n function touchMoveEvent(event) {\r\n var $this = this.$$touchObj;\r\n\t\t\t\r\n\t\t\tvar curX = touchX(event);\r\n\t\t\tvar curY = touchY(event);\r\n\r\n\t\t\tvar movedAgain = ($this.currentX != curX) || ($this.currentY != curY);\r\n\t\t\t\r\n $this.currentX = curX;\r\n $this.currentY = curY;\r\n\r\n if (!$this.touchMoved) {\r\n var tapTolerance = $this.options.tapTolerance;\r\n\r\n $this.touchMoved = Math.abs($this.startX - $this.currentX) > tapTolerance ||\r\n\t\t\t\t\t\t\t\t Math.abs($this.startY - $this.currentY) > tapTolerance;\r\n\r\n\t\t\t\t// trigger `drag.once` only once after mouse FIRST moved while dragging the element\r\n\t\t\t\t// (`touchMoved` is the flag that indicates we no longer need to trigger this)\r\n if($this.touchMoved){\r\n cancelTouchHoldTimer($this);\r\n triggerEvent(event, this, 'drag.once');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n\t\t\t\tvar swipeOutBounded = $this.options.swipeTolerance;\r\n\r\n\t\t\t\t$this.swipeOutBounded = Math.abs($this.startX - $this.currentX) > swipeOutBounded &&\r\n\t\t\t\t\tMath.abs($this.startY - $this.currentY) > swipeOutBounded;\r\n }\r\n\r\n\t\t\t// only trigger `rollover` event if cursor actually moved over this element\r\n if(hasEvent(this, 'rollover') && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `rollover` event based on `rollOverFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.rollOverFrequency;\r\n\t\t\t\tif ($this.touchRollTime == null || now > ($this.touchRollTime + throttle)){\r\n\t\t\t\t\t$this.touchRollTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'rollover');\r\n\t\t\t\t}\r\n }\r\n\r\n\t\t\t// only trigger `drag` event if cursor actually moved and if we are still dragging this element\r\n if(hasEvent(this, 'drag') && $this.touchStarted && $this.touchMoved && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `drag` event based on `dragFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.dragFrequency;\r\n\t\t\t\tif ($this.touchDragTime == null || now > ($this.touchDragTime + throttle)){\r\n\t\t\t\t\t$this.touchDragTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'drag');\r\n\t\t\t\t}\r\n }\r\n }\r\n\r\n function touchCancelEvent() {\r\n var $this = this.$$touchObj;\r\n\r\n cancelTouchHoldTimer($this);\r\n removeTouchClass(this);\r\n\r\n $this.touchStarted = $this.touchMoved = false;\r\n $this.startX = $this.startY = 0;\r\n }\r\n\r\n function touchEndEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchEndTime = event.timeStamp;\r\n }\r\n\r\n var touchholdEnd = isTouchEvent && !$this.touchHoldTimer;\r\n cancelTouchHoldTimer($this);\r\n\r\n $this.touchStarted = false;\r\n\r\n removeTouchClass(this);\r\n\r\n if (isMouseEvent && $this.lastTouchEndTime && event.timeStamp - $this.lastTouchEndTime < 350) {\r\n return;\r\n }\r\n\r\n // trigger `end` event when touch stopped\r\n triggerEvent(event, this, 'release');\r\n\r\n if (!$this.touchMoved) {\r\n // detect if this is a longTap event or not\r\n if (hasEvent(this, 'longtap') && event.timeStamp - $this.touchStartTime > $this.options.longTapTimeInterval) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n triggerEvent(event, this, 'longtap');\r\n\r\n } else if (hasEvent(this, 'hold') && touchholdEnd) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n return;\r\n } else {\r\n // emit tap event\r\n triggerEvent(event, this, 'tap');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n var swipeOutBounded = $this.options.swipeTolerance,\r\n direction,\r\n distanceY = Math.abs($this.startY - $this.currentY),\r\n distanceX = Math.abs($this.startX - $this.currentX);\r\n\r\n if (distanceY > swipeOutBounded || distanceX > swipeOutBounded) {\r\n if (distanceY > distanceX) {\r\n direction = $this.startY > $this.currentY ? 'top' : 'bottom';\r\n } else {\r\n direction = $this.startX > $this.currentX ? 'left' : 'right';\r\n }\r\n\r\n // Only emit the specified event when it has modifiers\r\n if (hasEvent(this, 'swipe.' + direction)) {\r\n triggerEvent(event, this, 'swipe.' + direction, direction);\r\n } else {\r\n // Emit a common event when it has no any modifier\r\n triggerEvent(event, this, 'swipe', direction);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function mouseEnterEvent() {\r\n addTouchClass(this);\r\n }\r\n\r\n function mouseLeaveEvent() {\r\n removeTouchClass(this);\r\n }\r\n\r\n function hasEvent($el, eventType) {\r\n var callbacks = $el.$$touchObj.callbacks[eventType];\r\n\t\t\treturn (callbacks != null && callbacks.length > 0);\r\n\t\t}\r\n\t\t\r\n function triggerEvent(e, $el, eventType, param) {\r\n var $this = $el.$$touchObj;\r\n\r\n // get the subscribers for this event\r\n var callbacks = $this.callbacks[eventType];\r\n\t\t\t\r\n\t\t\t// exit if no subscribers to this particular event\r\n if (callbacks == null || callbacks.length === 0) {\r\n return null;\r\n }\r\n\r\n\t\t\t// per callback\r\n for (var i = 0; i < callbacks.length; i++) {\r\n var binding = callbacks[i];\r\n\r\n if (binding.modifiers.stop) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (binding.modifiers.prevent) {\r\n e.preventDefault();\r\n }\r\n\r\n // handle `self` modifier`\r\n if (binding.modifiers.self && e.target !== e.currentTarget) {\r\n continue;\r\n }\r\n\r\n if (typeof binding.value === 'function') {\r\n if (param) {\r\n binding.value(param, e);\r\n } else {\r\n binding.value(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function addTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.add(className);\r\n }\r\n\r\n function removeTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.remove(className);\r\n }\r\n\r\n function cancelTouchHoldTimer($this) {\r\n if ($this && $this.touchHoldTimer) {\r\n clearTimeout($this.touchHoldTimer);\r\n $this.touchHoldTimer = null;\r\n }\r\n }\r\n\r\n function buildTouchObj($el, extraOptions) {\r\n var touchObj = $el.$$touchObj || {\r\n // an object contains all callbacks registered,\r\n // key is event name, value is an array\r\n callbacks: {},\r\n // prevent bind twice, set to true when event bound\r\n hasBindTouchEvents: false,\r\n // default options, would be override by v-touch-options\r\n options: globalOptions\r\n };\r\n if (extraOptions) {\r\n touchObj.options = Object.assign({}, touchObj.options, extraOptions);\r\n }\r\n $el.$$touchObj = touchObj;\r\n return $el.$$touchObj;\r\n }\r\n\r\n app.directive(globalOptions.namespace, {\r\n beforeMount: function ($el, binding) {\r\n // build a touch configuration object\r\n var $this = buildTouchObj($el);\r\n // declare passive option for the event listener. Defaults to { passive: true } if supported\r\n var passiveOpt = isPassiveSupported ? { passive: true } : false;\r\n // register callback\r\n var eventType = binding.arg || 'tap';\r\n switch (eventType) {\r\n case 'swipe':\r\n var _m = binding.modifiers;\r\n if (_m.left || _m.right || _m.top || _m.bottom) {\r\n for (var i in binding.modifiers) {\r\n if (['left', 'right', 'top', 'bottom'].indexOf(i) >= 0) {\r\n var _e = 'swipe.' + i;\r\n $this.callbacks[_e] = $this.callbacks[_e] || [];\r\n $this.callbacks[_e].push(binding);\r\n }\r\n }\r\n } else {\r\n $this.callbacks.swipe = $this.callbacks.swipe || [];\r\n $this.callbacks.swipe.push(binding);\r\n }\r\n break;\r\n\r\n case 'press':\r\n case 'drag':\r\n if (binding.modifiers.disablePassive) {\r\n // change the passive option for the `drag` event if disablePassive modifier exists\r\n passiveOpt = false;\r\n }\r\n default:\r\n $this.callbacks[eventType] = $this.callbacks[eventType] || [];\r\n $this.callbacks[eventType].push(binding);\r\n }\r\n\r\n // prevent bind twice\r\n if ($this.hasBindTouchEvents) {\r\n return;\r\n }\r\n\r\n $el.addEventListener('touchstart', touchStartEvent, passiveOpt);\r\n $el.addEventListener('touchmove', touchMoveEvent, passiveOpt);\r\n $el.addEventListener('touchcancel', touchCancelEvent);\r\n $el.addEventListener('touchend', touchEndEvent);\r\n\r\n if (!$this.options.disableClick) {\r\n $el.addEventListener('mousedown', touchStartEvent);\r\n $el.addEventListener('mousemove', touchMoveEvent);\r\n $el.addEventListener('mouseup', touchEndEvent);\r\n $el.addEventListener('mouseenter', mouseEnterEvent);\r\n $el.addEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // set bind mark to true\r\n $this.hasBindTouchEvents = true;\r\n },\r\n\r\n unmounted: function ($el) {\r\n cancelTouchHoldTimer($el.$$touchObj)\r\n\r\n $el.removeEventListener('touchstart', touchStartEvent);\r\n $el.removeEventListener('touchmove', touchMoveEvent);\r\n $el.removeEventListener('touchcancel', touchCancelEvent);\r\n $el.removeEventListener('touchend', touchEndEvent);\r\n\r\n if ($el.$$touchObj && !$el.$$touchObj.options.disableClick) {\r\n $el.removeEventListener('mousedown', touchStartEvent);\r\n $el.removeEventListener('mousemove', touchMoveEvent);\r\n $el.removeEventListener('mouseup', touchEndEvent);\r\n $el.removeEventListener('mouseenter', mouseEnterEvent);\r\n $el.removeEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // remove vars\r\n delete $el.$$touchObj;\r\n }\r\n });\r\n\r\n app.directive(`${globalOptions.namespace}-class`, {\r\n beforeMount: function ($el, binding) {\r\n buildTouchObj($el, {\r\n touchClass: binding.value\r\n });\r\n }\r\n });\r\n\r\n app.directive(`${globalOptions.namespace}-options`, {\r\n beforeMount: function($el, binding) {\r\n buildTouchObj($el, binding.value);\r\n }\r\n });\r\n }\r\n};\r\n\r\n/*\r\n * Exports\r\n */\r\nexport default vueTouchEvents\r\n","<script setup lang=\"ts\">\n import omit from 'lodash-es/omit';\n import { computed } from 'vue';\n\n import useDialog from '../../composables/useDialog/useDialog';\n import CustomRender from '../CustomRender/CustomRender.vue';\n import Dialog from '../Dialog/Dialog.vue';\n\n const dialog = useDialog();\n\n const attributes = computed(() => {\n if (!dialog.active) return null;\n\n return omit(dialog.active, ['deferred', 'onConfirm', 'onCancel', 'slots']);\n });\n\n function onCancel() {\n if (dialog.active?.onCancel) {\n dialog.active.onCancel();\n }\n\n dialog.active?.deferred?.resolve({\n isCanceled: true,\n });\n\n dialog.close();\n }\n\n async function onConfirm() {\n if (dialog.active?.onConfirm) {\n await dialog.active.onConfirm();\n }\n\n dialog.active?.deferred?.resolve({\n isConfirmed: true,\n });\n\n dialog.close();\n }\n</script>\n\n<template>\n <Dialog :open=\"!!attributes\" v-bind=\"attributes\" @confirm=\"onConfirm\" @cancel=\"onCancel\">\n <template v-for=\"(value, name) in dialog.active?.slots\" :key=\"name\" #[name]>\n <CustomRender :render=\"value\" />\n </template>\n </Dialog>\n</template>\n","import { App, createVNode, h, Plugin, render } from 'vue';\n\nimport Dialogs from '../components/Dialogs/Dialogs.vue';\n\nexport interface DialogsPluginOptions {\n mountNodeClass?: string;\n mountNodeId?: string;\n}\n\nexport const DEFAULT_DIALOGS_PLUGIN_NODE_ID = 'stash-dialogs-mount-node';\n\nexport default <Plugin>{\n install(app: App, options?: DialogsPluginOptions) {\n const mountNodeId = options?.mountNodeId || DEFAULT_DIALOGS_PLUGIN_NODE_ID;\n let mountNode = document.getElementById(mountNodeId);\n\n if (!mountNode) {\n mountNode = document.createElement('div');\n mountNode.id = mountNodeId;\n mountNode.dataset.test = DEFAULT_DIALOGS_PLUGIN_NODE_ID;\n document.body.appendChild(mountNode);\n }\n\n if (options?.mountNodeClass && !mountNode.classList.contains(options.mountNodeClass)) {\n mountNode.classList.add(options.mountNodeClass);\n }\n\n const vNode = createVNode(h(Dialogs));\n vNode.appContext = app._context;\n\n render(vNode, mountNode);\n },\n};\n","import { Plugin } from 'vue';\nimport Vue3TouchEvents, { type Vue3TouchEventsOptions } from 'vue3-touch-events';\n\nimport { I18nPlugin, StashOptionImages, StashProvideState } from '../types/misc';\nimport locale from './locale';\n// this is valid syntax per the TS docs, but prettier throws an error expecting a comma after `type`\nimport DialogsPlugin, { type DialogsPluginOptions } from './plugins/DialogsPlugin';\nimport MenusPlugin, { type MenusPluginOptions } from './plugins/MenusPlugin';\nimport ModalsPlugin, { type ModalsPluginOptions } from './plugins/ModalsPlugin';\nimport ToastsPlugin, { type ToastsPluginOptions } from './plugins/ToastsPlugin';\nimport { overridePersistentStorage, persistentStorage } from './storage';\n\nexport interface StashPluginOptions {\n i18n?: I18nPlugin;\n storage?: {\n set: <T = unknown>(name: string, data: T, options?: { [key: string]: unknown }) => void;\n get: <T = unknown>(name: string, options?: { [key: string]: unknown }) => T;\n };\n staticPath?: string;\n images?: StashOptionImages;\n googleMapsApiKey?: string;\n menus?: false | MenusPluginOptions;\n modals?: false | ModalsPluginOptions;\n toasts?: false | ToastsPluginOptions;\n dialogs?: false | DialogsPluginOptions;\n}\n\nexport default <Plugin>{\n install(\n app,\n {\n i18n = undefined,\n storage = undefined,\n staticPath = '/static',\n images = {\n provider: 'static',\n },\n googleMapsApiKey = undefined,\n menus,\n modals,\n toasts,\n dialogs,\n }: StashPluginOptions = {},\n ) {\n app.use<Vue3TouchEventsOptions>(Vue3TouchEvents, {});\n\n // locale\n if (i18n) {\n locale.use(i18n.locale);\n locale.i18n(i18n && i18n.t);\n }\n\n // persistent storage (localStorage)\n if (storage) {\n overridePersistentStorage(storage);\n }\n\n // expose stash options to the rest of your application\n app.provide<StashProvideState>('stashOptions', {\n i18n,\n images,\n storage,\n staticPath,\n googleMapsApiKey,\n });\n\n if (menus !== false) {\n app.use(MenusPlugin, menus);\n }\n\n if (modals !== false) {\n app.use(ModalsPlugin, modals);\n }\n\n if (toasts !== false) {\n app.use(ToastsPlugin, toasts);\n }\n\n if (dialogs !== false) {\n app.use(DialogsPlugin, dialogs);\n }\n },\n};\n\nexport { persistentStorage };\n\n// Re-export things that are useful for consumers\nexport * from '../types';\nexport * from './storage';\n\n// Todo: Investigate tree-shaking issues to see if we can expose these. Theoritically\n// should be no issue, however test framework startup time, specifically w/ Jest,\n// seems to be the major blocker here.\n// export * from './components';\n// export * from './composables';\n// export * from './constants';\n// export * from './directives';\n// export * from './locale';\n// export * from './plugins';\n// export { default as ToastsPlugin } from './plugins/ToastsPlugin';\n"],"names":["touchX","event","touchY","isPassiveSupported","supportsPassive","opts","vueTouchEvents","app","constructorOptions","globalOptions","touchStartEvent","$this","isTouchEvent","isMouseEvent","$el","addTouchClass","hasEvent","triggerEvent","touchMoveEvent","curX","curY","movedAgain","swipeOutBounded","tapTolerance","cancelTouchHoldTimer","now","throttle","touchCancelEvent","removeTouchClass","touchEndEvent","touchholdEnd","direction","distanceY","distanceX","mouseEnterEvent","mouseLeaveEvent","eventType","callbacks","param","i","binding","className","buildTouchObj","extraOptions","touchObj","passiveOpt","_m","_e","dialog","useDialog","attributes","computed","omit","onCancel","_a","_c","_b","onConfirm","DEFAULT_DIALOGS_PLUGIN_NODE_ID","DialogsPlugin","options","mountNodeId","mountNode","vNode","createVNode","h","Dialogs","render","index","i18n","storage","staticPath","images","googleMapsApiKey","menus","modals","toasts","dialogs","Vue3TouchEvents","locale","overridePersistentStorage","MenusPlugin","ModalsPlugin","ToastsPlugin"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/vue3-touch-events@4.2.0/node_modules/vue3-touch-events/index.js","../src/components/Dialogs/Dialogs.vue","../src/plugins/DialogsPlugin.ts","../src/index.ts"],"sourcesContent":["/**\r\n * @project vue3-touch-events\r\n * @author Robin Rodricks, Xavier Julien, Jerry Bendy\r\n * @since 30/4/2021\r\n * @url https://github.com/robinrodricks/vue3-touch-events\r\n */\r\n\r\nfunction touchX(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientX;\r\n }\r\n return event.touches[0].clientX;\r\n}\r\n\r\nfunction touchY(event) {\r\n if(event.type.indexOf('mouse') !== -1){\r\n return event.clientY;\r\n }\r\n return event.touches[0].clientY;\r\n}\r\n\r\nvar isPassiveSupported = (function() {\r\n var supportsPassive = false;\r\n try {\r\n var opts = Object.defineProperty({}, 'passive', {\r\n get: function() {\r\n supportsPassive = true;\r\n }\r\n });\r\n window.addEventListener('test', null, opts);\r\n } catch (e) {}\r\n return supportsPassive;\r\n})();\r\n\r\nvar vueTouchEvents = {\r\n install: function (app, constructorOptions) {\r\n\t\t\r\n var globalOptions = Object.assign({}, {\r\n disableClick: false,\r\n tapTolerance: 10, // px\r\n swipeTolerance: 30, // px\r\n touchHoldTolerance: 400, // ms\r\n longTapTimeInterval: 400, // ms\r\n touchClass: '',\r\n\t\t\tdragFrequency: 100, // ms\r\n\t\t\trollOverFrequency: 100, // ms\r\n namespace: 'touch',\r\n }, constructorOptions);\r\n\r\n function touchStartEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0,\r\n $el = this;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchStartTime = event.timeStamp;\r\n }\r\n\r\n if (isMouseEvent && $this.lastTouchStartTime && event.timeStamp - $this.lastTouchStartTime < 350) {\r\n return;\r\n }\r\n\r\n if ($this.touchStarted) {\r\n return;\r\n }\r\n\r\n addTouchClass(this);\r\n\r\n $this.touchStarted = true; // always true while the element is being PRESSED\r\n\r\n $this.touchMoved = false; // true only when the element is PRESSED and DRAGGED a bit\r\n $this.swipeOutBounded = false;\r\n\r\n $this.startX = touchX(event);\r\n $this.startY = touchY(event);\r\n\r\n $this.currentX = 0; // always updated with the last mouse X/Y while over the element\r\n $this.currentY = 0;\r\n\r\n $this.touchStartTime = event.timeStamp;\r\n\t\t\t\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n\t\t\t$this.hasSwipe = hasEvent(this, 'swipe')\r\n\t\t\t\t|| hasEvent(this, 'swipe.left') || hasEvent(this, 'swipe.right')\r\n\t\t\t\t|| hasEvent(this, 'swipe.top') || hasEvent(this, 'swipe.bottom');\r\n\r\n\t\t\t// performance: only start hold timer if the `hold` event is registered on this element\r\n\t\t\tif (hasEvent(this, 'hold')){\r\n\t\t\t\t\r\n\t\t\t\t// Trigger touchhold event after `touchHoldTolerance` MS\r\n\t\t\t\t$this.touchHoldTimer = setTimeout(function() {\r\n\t\t\t\t\t$this.touchHoldTimer = null;\r\n\t\t\t\t\ttriggerEvent(event, $el, 'hold');\r\n\t\t\t\t}, $this.options.touchHoldTolerance);\r\n\t\t\t}\r\n\t\t\t\r\n triggerEvent(event, this, 'press');\r\n }\r\n\r\n function touchMoveEvent(event) {\r\n var $this = this.$$touchObj;\r\n\t\t\t\r\n\t\t\tvar curX = touchX(event);\r\n\t\t\tvar curY = touchY(event);\r\n\r\n\t\t\tvar movedAgain = ($this.currentX != curX) || ($this.currentY != curY);\r\n\t\t\t\r\n $this.currentX = curX;\r\n $this.currentY = curY;\r\n\r\n if (!$this.touchMoved) {\r\n var tapTolerance = $this.options.tapTolerance;\r\n\r\n $this.touchMoved = Math.abs($this.startX - $this.currentX) > tapTolerance ||\r\n\t\t\t\t\t\t\t\t Math.abs($this.startY - $this.currentY) > tapTolerance;\r\n\r\n\t\t\t\t// trigger `drag.once` only once after mouse FIRST moved while dragging the element\r\n\t\t\t\t// (`touchMoved` is the flag that indicates we no longer need to trigger this)\r\n if($this.touchMoved){\r\n cancelTouchHoldTimer($this);\r\n triggerEvent(event, this, 'drag.once');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n\t\t\t\tvar swipeOutBounded = $this.options.swipeTolerance;\r\n\r\n\t\t\t\t$this.swipeOutBounded = Math.abs($this.startX - $this.currentX) > swipeOutBounded &&\r\n\t\t\t\t\tMath.abs($this.startY - $this.currentY) > swipeOutBounded;\r\n }\r\n\r\n\t\t\t// only trigger `rollover` event if cursor actually moved over this element\r\n if(hasEvent(this, 'rollover') && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `rollover` event based on `rollOverFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.rollOverFrequency;\r\n\t\t\t\tif ($this.touchRollTime == null || now > ($this.touchRollTime + throttle)){\r\n\t\t\t\t\t$this.touchRollTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'rollover');\r\n\t\t\t\t}\r\n }\r\n\r\n\t\t\t// only trigger `drag` event if cursor actually moved and if we are still dragging this element\r\n if(hasEvent(this, 'drag') && $this.touchStarted && $this.touchMoved && movedAgain){\r\n\t\t\t\t\r\n\t\t\t\t// throttle the `drag` event based on `dragFrequency`\r\n\t\t\t\tvar now = event.timeStamp;\r\n\t\t\t\tvar throttle = $this.options.dragFrequency;\r\n\t\t\t\tif ($this.touchDragTime == null || now > ($this.touchDragTime + throttle)){\r\n\t\t\t\t\t$this.touchDragTime = now;\r\n\t\t\t\t\t\r\n\t\t\t\t\ttriggerEvent(event, this, 'drag');\r\n\t\t\t\t}\r\n }\r\n }\r\n\r\n function touchCancelEvent() {\r\n var $this = this.$$touchObj;\r\n\r\n cancelTouchHoldTimer($this);\r\n removeTouchClass(this);\r\n\r\n $this.touchStarted = $this.touchMoved = false;\r\n $this.startX = $this.startY = 0;\r\n }\r\n\r\n function touchEndEvent(event) {\r\n var $this = this.$$touchObj,\r\n isTouchEvent = event.type.indexOf('touch') >= 0,\r\n isMouseEvent = event.type.indexOf('mouse') >= 0;\r\n\r\n if (isTouchEvent) {\r\n $this.lastTouchEndTime = event.timeStamp;\r\n }\r\n\r\n var touchholdEnd = isTouchEvent && !$this.touchHoldTimer;\r\n cancelTouchHoldTimer($this);\r\n\r\n $this.touchStarted = false;\r\n\r\n removeTouchClass(this);\r\n\r\n if (isMouseEvent && $this.lastTouchEndTime && event.timeStamp - $this.lastTouchEndTime < 350) {\r\n return;\r\n }\r\n\r\n // trigger `end` event when touch stopped\r\n triggerEvent(event, this, 'release');\r\n\r\n if (!$this.touchMoved) {\r\n // detect if this is a longTap event or not\r\n if (hasEvent(this, 'longtap') && event.timeStamp - $this.touchStartTime > $this.options.longTapTimeInterval) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n triggerEvent(event, this, 'longtap');\r\n\r\n } else if (hasEvent(this, 'hold') && touchholdEnd) {\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n return;\r\n } else {\r\n // emit tap event\r\n triggerEvent(event, this, 'tap');\r\n }\r\n\r\n\t\t\t// performance: only process swipe events if `swipe.*` event is registered on this element\r\n } else if ($this.hasSwipe && !$this.swipeOutBounded) {\r\n var swipeOutBounded = $this.options.swipeTolerance,\r\n direction,\r\n distanceY = Math.abs($this.startY - $this.currentY),\r\n distanceX = Math.abs($this.startX - $this.currentX);\r\n\r\n if (distanceY > swipeOutBounded || distanceX > swipeOutBounded) {\r\n if (distanceY > distanceX) {\r\n direction = $this.startY > $this.currentY ? 'top' : 'bottom';\r\n } else {\r\n direction = $this.startX > $this.currentX ? 'left' : 'right';\r\n }\r\n\r\n // Only emit the specified event when it has modifiers\r\n if (hasEvent(this, 'swipe.' + direction)) {\r\n triggerEvent(event, this, 'swipe.' + direction, direction);\r\n } else {\r\n // Emit a common event when it has no any modifier\r\n triggerEvent(event, this, 'swipe', direction);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function mouseEnterEvent() {\r\n addTouchClass(this);\r\n }\r\n\r\n function mouseLeaveEvent() {\r\n removeTouchClass(this);\r\n }\r\n\r\n function hasEvent($el, eventType) {\r\n var callbacks = $el.$$touchObj.callbacks[eventType];\r\n\t\t\treturn (callbacks != null && callbacks.length > 0);\r\n\t\t}\r\n\t\t\r\n function triggerEvent(e, $el, eventType, param) {\r\n var $this = $el.$$touchObj;\r\n\r\n // get the subscribers for this event\r\n var callbacks = $this.callbacks[eventType];\r\n\t\t\t\r\n\t\t\t// exit if no subscribers to this particular event\r\n if (callbacks == null || callbacks.length === 0) {\r\n return null;\r\n }\r\n\r\n\t\t\t// per callback\r\n for (var i = 0; i < callbacks.length; i++) {\r\n var binding = callbacks[i];\r\n\r\n if (binding.modifiers.stop) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (binding.modifiers.prevent) {\r\n e.preventDefault();\r\n }\r\n\r\n // handle `self` modifier`\r\n if (binding.modifiers.self && e.target !== e.currentTarget) {\r\n continue;\r\n }\r\n\r\n if (typeof binding.value === 'function') {\r\n if (param) {\r\n binding.value(param, e);\r\n } else {\r\n binding.value(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function addTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.add(className);\r\n }\r\n\r\n function removeTouchClass($el) {\r\n var className = $el.$$touchObj.options.touchClass;\r\n className && $el.classList.remove(className);\r\n }\r\n\r\n function cancelTouchHoldTimer($this) {\r\n if ($this && $this.touchHoldTimer) {\r\n clearTimeout($this.touchHoldTimer);\r\n $this.touchHoldTimer = null;\r\n }\r\n }\r\n\r\n function buildTouchObj($el, extraOptions) {\r\n var touchObj = $el.$$touchObj || {\r\n // an object contains all callbacks registered,\r\n // key is event name, value is an array\r\n callbacks: {},\r\n // prevent bind twice, set to true when event bound\r\n hasBindTouchEvents: false,\r\n // default options, would be override by v-touch-options\r\n options: globalOptions\r\n };\r\n if (extraOptions) {\r\n touchObj.options = Object.assign({}, touchObj.options, extraOptions);\r\n }\r\n $el.$$touchObj = touchObj;\r\n return $el.$$touchObj;\r\n }\r\n\r\n app.directive(globalOptions.namespace, {\r\n beforeMount: function ($el, binding) {\r\n // build a touch configuration object\r\n var $this = buildTouchObj($el);\r\n // declare passive option for the event listener. Defaults to { passive: true } if supported\r\n var passiveOpt = isPassiveSupported ? { passive: true } : false;\r\n // register callback\r\n var eventType = binding.arg || 'tap';\r\n switch (eventType) {\r\n case 'swipe':\r\n var _m = binding.modifiers;\r\n if (_m.left || _m.right || _m.top || _m.bottom) {\r\n for (var i in binding.modifiers) {\r\n if (['left', 'right', 'top', 'bottom'].indexOf(i) >= 0) {\r\n var _e = 'swipe.' + i;\r\n $this.callbacks[_e] = $this.callbacks[_e] || [];\r\n $this.callbacks[_e].push(binding);\r\n }\r\n }\r\n } else {\r\n $this.callbacks.swipe = $this.callbacks.swipe || [];\r\n $this.callbacks.swipe.push(binding);\r\n }\r\n break;\r\n\r\n case 'press':\r\n case 'drag':\r\n if (binding.modifiers.disablePassive) {\r\n // change the passive option for the `drag` event if disablePassive modifier exists\r\n passiveOpt = false;\r\n }\r\n default:\r\n $this.callbacks[eventType] = $this.callbacks[eventType] || [];\r\n $this.callbacks[eventType].push(binding);\r\n }\r\n\r\n // prevent bind twice\r\n if ($this.hasBindTouchEvents) {\r\n return;\r\n }\r\n\r\n $el.addEventListener('touchstart', touchStartEvent, passiveOpt);\r\n $el.addEventListener('touchmove', touchMoveEvent, passiveOpt);\r\n $el.addEventListener('touchcancel', touchCancelEvent);\r\n $el.addEventListener('touchend', touchEndEvent);\r\n\r\n if (!$this.options.disableClick) {\r\n $el.addEventListener('mousedown', touchStartEvent);\r\n $el.addEventListener('mousemove', touchMoveEvent);\r\n $el.addEventListener('mouseup', touchEndEvent);\r\n $el.addEventListener('mouseenter', mouseEnterEvent);\r\n $el.addEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // set bind mark to true\r\n $this.hasBindTouchEvents = true;\r\n },\r\n\r\n unmounted: function ($el) {\r\n cancelTouchHoldTimer($el.$$touchObj)\r\n\r\n $el.removeEventListener('touchstart', touchStartEvent);\r\n $el.removeEventListener('touchmove', touchMoveEvent);\r\n $el.removeEventListener('touchcancel', touchCancelEvent);\r\n $el.removeEventListener('touchend', touchEndEvent);\r\n\r\n if ($el.$$touchObj && !$el.$$touchObj.options.disableClick) {\r\n $el.removeEventListener('mousedown', touchStartEvent);\r\n $el.removeEventListener('mousemove', touchMoveEvent);\r\n $el.removeEventListener('mouseup', touchEndEvent);\r\n $el.removeEventListener('mouseenter', mouseEnterEvent);\r\n $el.removeEventListener('mouseleave', mouseLeaveEvent);\r\n }\r\n\r\n // remove vars\r\n delete $el.$$touchObj;\r\n }\r\n });\r\n\r\n app.directive(`${globalOptions.namespace}-class`, {\r\n beforeMount: function ($el, binding) {\r\n buildTouchObj($el, {\r\n touchClass: binding.value\r\n });\r\n }\r\n });\r\n\r\n app.directive(`${globalOptions.namespace}-options`, {\r\n beforeMount: function($el, binding) {\r\n buildTouchObj($el, binding.value);\r\n }\r\n });\r\n }\r\n};\r\n\r\n/*\r\n * Exports\r\n */\r\nexport default vueTouchEvents\r\n","<script setup lang=\"ts\">\n import omit from 'lodash-es/omit';\n import { computed } from 'vue';\n\n import useDialog from '../../composables/useDialog/useDialog';\n import CustomRender from '../CustomRender/CustomRender.vue';\n import Dialog from '../Dialog/Dialog.vue';\n\n const dialog = useDialog();\n\n const attributes = computed(() => {\n if (!dialog.active) return null;\n\n return omit(dialog.active, ['deferred', 'onConfirm', 'onCancel', 'slots']);\n });\n\n function onCancel() {\n if (dialog.active?.onCancel) {\n dialog.active.onCancel();\n }\n\n dialog.active?.deferred?.resolve({\n isCanceled: true,\n });\n\n dialog.close();\n }\n\n async function onConfirm() {\n if (dialog.active?.onConfirm) {\n await dialog.active.onConfirm();\n }\n\n dialog.active?.deferred?.resolve({\n isConfirmed: true,\n });\n\n dialog.close();\n }\n</script>\n\n<template>\n <Dialog :open=\"!!attributes\" v-bind=\"attributes\" @confirm=\"onConfirm\" @cancel=\"onCancel\">\n <template v-for=\"(value, name) in dialog.active?.slots\" :key=\"name\" #[name]>\n <CustomRender :render=\"value\" />\n </template>\n </Dialog>\n</template>\n","import { App, createVNode, h, Plugin, render } from 'vue';\n\nimport Dialogs from '../components/Dialogs/Dialogs.vue';\n\nexport interface DialogsPluginOptions {\n mountNodeClass?: string;\n mountNodeId?: string;\n}\n\nexport const DEFAULT_DIALOGS_PLUGIN_NODE_ID = 'stash-dialogs-mount-node';\n\nexport default <Plugin>{\n install(app: App, options?: DialogsPluginOptions) {\n const mountNodeId = options?.mountNodeId || DEFAULT_DIALOGS_PLUGIN_NODE_ID;\n let mountNode = document.getElementById(mountNodeId);\n\n if (!mountNode) {\n mountNode = document.createElement('div');\n mountNode.id = mountNodeId;\n mountNode.dataset.test = DEFAULT_DIALOGS_PLUGIN_NODE_ID;\n document.body.appendChild(mountNode);\n }\n\n if (options?.mountNodeClass && !mountNode.classList.contains(options.mountNodeClass)) {\n mountNode.classList.add(options.mountNodeClass);\n }\n\n const vNode = createVNode(h(Dialogs));\n vNode.appContext = app._context;\n\n render(vNode, mountNode);\n },\n};\n","import { Plugin } from 'vue';\nimport Vue3TouchEvents, { type Vue3TouchEventsOptions } from 'vue3-touch-events';\n\nimport { I18nPlugin, StashOptionImages, StashProvideState } from '../types/misc';\nimport locale from './locale';\n// this is valid syntax per the TS docs, but prettier throws an error expecting a comma after `type`\nimport DialogsPlugin, { type DialogsPluginOptions } from './plugins/DialogsPlugin';\nimport MenusPlugin, { type MenusPluginOptions } from './plugins/MenusPlugin';\nimport ModalsPlugin, { type ModalsPluginOptions } from './plugins/ModalsPlugin';\nimport ToastsPlugin, { type ToastsPluginOptions } from './plugins/ToastsPlugin';\nimport { overridePersistentStorage, persistentStorage } from './storage';\n\nexport interface StashPluginOptions {\n i18n?: I18nPlugin;\n storage?: {\n set: <T = unknown>(name: string, data: T, options?: { [key: string]: unknown }) => void;\n get: <T = unknown>(name: string, options?: { [key: string]: unknown }) => T;\n };\n staticPath?: string;\n images?: StashOptionImages;\n googleMapsApiKey?: string;\n menus?: false | MenusPluginOptions;\n modals?: false | ModalsPluginOptions;\n toasts?: false | ToastsPluginOptions;\n dialogs?: false | DialogsPluginOptions;\n}\n\nexport default <Plugin>{\n install(\n app,\n {\n i18n = undefined,\n storage = undefined,\n staticPath = '/static',\n images = {\n provider: 'static',\n },\n googleMapsApiKey = undefined,\n menus,\n modals,\n toasts,\n dialogs,\n }: StashPluginOptions = {},\n ) {\n app.use<Vue3TouchEventsOptions>(Vue3TouchEvents, {});\n\n // locale\n if (i18n) {\n locale.use(i18n.locale);\n locale.i18n(i18n && i18n.t);\n }\n\n // persistent storage (localStorage)\n if (storage) {\n overridePersistentStorage(storage);\n }\n\n // expose stash options to the rest of your application\n app.provide<StashProvideState>('stashOptions', {\n i18n,\n images,\n storage,\n staticPath,\n googleMapsApiKey,\n });\n\n if (menus !== false) {\n app.use(MenusPlugin, menus);\n }\n\n if (modals !== false) {\n app.use(ModalsPlugin, modals);\n }\n\n if (toasts !== false) {\n app.use(ToastsPlugin, toasts);\n }\n\n if (dialogs !== false) {\n app.use(DialogsPlugin, dialogs);\n }\n },\n};\n\nexport { persistentStorage };\n\n// Re-export things that are useful for consumers\nexport * from '../types';\nexport * from './storage';\n\n// Todo: Investigate tree-shaking issues to see if we can expose these. Theoritically\n// should be no issue, however test framework startup time, specifically w/ Jest,\n// seems to be the major blocker here.\n// export * from './components';\n// export * from './composables';\n// export * from './constants';\n// export * from './directives';\n// export * from './locale';\n// export * from './plugins';\n// export { default as ToastsPlugin } from './plugins/ToastsPlugin';\n"],"names":["touchX","event","touchY","isPassiveSupported","supportsPassive","opts","vueTouchEvents","app","constructorOptions","globalOptions","touchStartEvent","$this","isTouchEvent","isMouseEvent","$el","addTouchClass","hasEvent","triggerEvent","touchMoveEvent","curX","curY","movedAgain","swipeOutBounded","tapTolerance","cancelTouchHoldTimer","now","throttle","touchCancelEvent","removeTouchClass","touchEndEvent","touchholdEnd","direction","distanceY","distanceX","mouseEnterEvent","mouseLeaveEvent","eventType","callbacks","param","i","binding","className","buildTouchObj","extraOptions","touchObj","passiveOpt","_m","_e","dialog","useDialog","attributes","computed","omit","onCancel","_a","_c","_b","onConfirm","DEFAULT_DIALOGS_PLUGIN_NODE_ID","DialogsPlugin","options","mountNodeId","mountNode","vNode","createVNode","h","Dialogs","render","index","i18n","storage","staticPath","images","googleMapsApiKey","menus","modals","toasts","dialogs","Vue3TouchEvents","locale","overridePersistentStorage","MenusPlugin","ModalsPlugin","ToastsPlugin"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"isValid-DN-HkCoi.js","sources":["../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/toDate.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isDate.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isValid.mjs"],"sourcesContent":["/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n"],"names":["toDate","argument","argStr","isDate","value","isValid","date","_date"],"mappings":"AAgCO,SAASA,EAAOC,GAAU;AAC/B,QAAMC,IAAS,OAAO,UAAU,SAAS,KAAKD,CAAQ;AAGtD,SACEA,aAAoB,QACnB,OAAOA,KAAa,YAAYC,MAAW,kBAGrC,IAAID,EAAS,YAAY,CAACA,CAAQ,IAEzC,OAAOA,KAAa,YACpBC,MAAW,qBACX,OAAOD,KAAa,YACpBC,MAAW,oBAGJ,IAAI,KAAKD,CAAQ,IAGjB,oBAAI,KAAK,GAAG;AAEvB;ACtBO,SAASE,EAAOC,GAAO;AAC5B,SACEA,aAAiB,QAChB,OAAOA,KAAU,YAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAEhD;ACFO,SAASC,EAAQC,GAAM;AAC5B,MAAI,CAACH,EAAOG,CAAI,KAAK,OAAOA,KAAS;AACnC,WAAO;AAET,QAAMC,IAAQP,EAAOM,CAAI;AACzB,SAAO,CAAC,MAAM,OAAOC,CAAK,CAAC;AAC7B;","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"isValid-DN-HkCoi.js","sources":["../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/toDate.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isDate.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isValid.mjs"],"sourcesContent":["/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n"],"names":["toDate","argument","argStr","isDate","value","isValid","date","_date"],"mappings":"AAgCO,SAASA,EAAOC,GAAU;AAC/B,QAAMC,IAAS,OAAO,UAAU,SAAS,KAAKD,CAAQ;AAGtD,SACEA,aAAoB,QACnB,OAAOA,KAAa,YAAYC,MAAW,kBAGrC,IAAID,EAAS,YAAY,CAACA,CAAQ,IAEzC,OAAOA,KAAa,YACpBC,MAAW,qBACX,OAAOD,KAAa,YACpBC,MAAW,oBAGJ,IAAI,KAAKD,CAAQ,IAGjB,oBAAI,KAAK,GAAG;AAEvB;ACtBO,SAASE,EAAOC,GAAO;AAC5B,SACEA,aAAiB,QAChB,OAAOA,KAAU,YAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,MAAM;AAEhD;ACFO,SAASC,EAAQC,GAAM;AAC5B,MAAI,CAACH,EAAOG,CAAI,KAAK,OAAOA,KAAS;AACnC,WAAO;AAET,QAAMC,IAAQP,EAAOM,CAAI;AACzB,SAAO,CAAC,MAAM,OAAOC,CAAK,CAAC;AAC7B;","x_google_ignoreList":[0,1,2]}
@@ -1 +1 @@
1
- {"version":3,"file":"parseISO-wlfIB_QJ.js","sources":["../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/constants.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parseISO.mjs"],"sourcesContent":["/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { millisecondsInHour, millisecondsInMinute } from \"./constants.mjs\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n const timestamp = date.getTime();\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n const dirtyDate = new Date(timestamp + time);\n // JS parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n const result = new Date(0);\n result.setFullYear(\n dirtyDate.getUTCFullYear(),\n dirtyDate.getUTCMonth(),\n dirtyDate.getUTCDate(),\n );\n result.setHours(\n dirtyDate.getUTCHours(),\n dirtyDate.getUTCMinutes(),\n dirtyDate.getUTCSeconds(),\n dirtyDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n"],"names":["millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","parseISO","argument","options","dateStrings","splitDateString","date","parseYearResult","parseYear","parseDate","timestamp","time","offset","parseTime","parseTimezone","dirtyDate","result","patterns","dateRegex","timeRegex","timezoneRegex","dateString","array","timeString","token","additionalDigits","regex","captures","year","century","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","value","hours","parseTimeUnit","minutes","seconds","validateTime","timezoneString","sign","validateTimezone","isoWeekYear","fourthOfJanuaryDay","diff","daysInMonths","isLeapYearIndex","_year","_hours"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"parseISO-wlfIB_QJ.js","sources":["../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/constants.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parseISO.mjs"],"sourcesContent":["/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { millisecondsInHour, millisecondsInMinute } from \"./constants.mjs\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n const timestamp = date.getTime();\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n const dirtyDate = new Date(timestamp + time);\n // JS parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n const result = new Date(0);\n result.setFullYear(\n dirtyDate.getUTCFullYear(),\n dirtyDate.getUTCMonth(),\n dirtyDate.getUTCDate(),\n );\n result.setHours(\n dirtyDate.getUTCHours(),\n dirtyDate.getUTCMinutes(),\n dirtyDate.getUTCSeconds(),\n dirtyDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n"],"names":["millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","parseISO","argument","options","dateStrings","splitDateString","date","parseYearResult","parseYear","parseDate","timestamp","time","offset","parseTime","parseTimezone","dirtyDate","result","patterns","dateRegex","timeRegex","timezoneRegex","dateString","array","timeString","token","additionalDigits","regex","captures","year","century","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","value","hours","parseTimeUnit","minutes","seconds","validateTime","timezoneString","sign","validateTimezone","isoWeekYear","fourthOfJanuaryDay","diff","daysInMonths","isLeapYearIndex","_year","_hours"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +1 @@
1
- {"version":3,"file":"searchFuzzy-B3TsUO-V.js","sources":["../types/utils.ts","../node_modules/.pnpm/fuzzysort@3.0.2/node_modules/fuzzysort/fuzzysort.js","../src/utils/searchFuzzy.ts"],"sourcesContent":["import isPlainObject from 'lodash-es/isPlainObject';\nimport { InjectionKey, isRef, Ref } from 'vue';\n\n/**\n * Create a union from an object's values\n *\n * using a plain object:\n * const SHAPE = { CIRCLE: 'circle', SQUARE: 'square' } as const;\n * ValueOf<typeof SHAPE> -> square | circle\n *\n * using a type:\n * type Shape = { SQUARE: string; CIRCLE: string; }\n * ValueOf<Shape>\n */\nexport type ValueOf<T> = T[keyof T];\n\nexport function isListOfStrings(list: unknown): list is string[] {\n return Array.isArray(list) && typeof list[0] === 'string';\n}\n\nexport function isListOfObjects<T = unknown>(list: unknown): list is T[] {\n return Array.isArray(list) && isPlainObject(list[0]);\n}\n\nexport interface Injection<T> {\n key: InjectionKey<T>;\n}\n\nexport interface InjectionWithDefaults<T> extends Injection<T> {\n defaults: T;\n}\n\n/**\n * Like the MaybeRefOrGetter type from Vue, but without the Maybe. Can be used to ensure the most up-to-date value is available.\n */\nexport type RefOrGetter<T> = Ref<T> | (() => T);\n\n/**\n * A type guard for the RefOrGetter type. Acceptable values include:\n * - a value created from `ref()`\n * - a value created from `shallowRef()`\n * - a value created from `computed()`\n * - a function that returns a value\n */\nexport function isRefOrGetter<T>(value: RefOrGetter<T> | unknown): value is RefOrGetter<T> {\n return isRef(value) || typeof value === 'function';\n}\n","// https://github.com/farzher/fuzzysort v3.0.2\r\n\r\n// UMD (Universal Module Definition) for fuzzysort\r\n;((root, UMD) => {\r\n if(typeof define === 'function' && define.amd) define([], UMD)\r\n else if(typeof module === 'object' && module.exports) module.exports = UMD()\r\n else root['fuzzysort'] = UMD()\r\n})(this, _ => {\r\n 'use strict'\r\n\r\n var single = (search, target) => {\r\n if(!search || !target) return NULL\r\n\r\n var preparedSearch = getPreparedSearch(search)\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n var searchBitflags = preparedSearch.bitflags\r\n if((searchBitflags & target._bitflags) !== searchBitflags) return NULL\r\n\r\n return algorithm(preparedSearch, target)\r\n }\r\n\r\n var go = (search, targets, options) => {\r\n if(!search) return options?.all ? all(targets, options) : noResults\r\n\r\n var preparedSearch = getPreparedSearch(search)\r\n var searchBitflags = preparedSearch.bitflags\r\n var containsSpace = preparedSearch.containsSpace\r\n\r\n var threshold = denormalizeScore( options?.threshold || 0 )\r\n var limit = options?.limit || INFINITY\r\n\r\n var resultsLen = 0; var limitedCount = 0\r\n var targetsLen = targets.length\r\n\r\n function push_result(result) {\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result._score > q.peek()._score) q.replaceTop(result)\r\n }\r\n }\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.key, options.keys, no keys]\r\n\r\n // options.key\r\n if(options?.key) {\r\n var key = options.key\r\n for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n if((searchBitflags & target._bitflags) !== searchBitflags) continue\r\n var result = algorithm(preparedSearch, target)\r\n if(result === NULL) continue\r\n if(result._score < threshold) continue\r\n\r\n result.obj = obj\r\n push_result(result)\r\n }\r\n\r\n // options.keys\r\n } else if(options?.keys) {\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n\r\n outer: for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]\r\n\r\n { // early out based on bitflags\r\n var keysBitflags = 0\r\n for (var keyI = 0; keyI < keysLen; ++keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { tmpTargets[keyI] = noTarget; continue }\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n tmpTargets[keyI] = target\r\n\r\n keysBitflags |= target._bitflags\r\n }\r\n\r\n if((searchBitflags & keysBitflags) !== searchBitflags) continue\r\n }\r\n\r\n if(containsSpace) for(let i=0; i<preparedSearch.spaceSearches.length; i++) keysSpacesBestScores[i] = NEGATIVE_INFINITY\r\n\r\n for (var keyI = 0; keyI < keysLen; ++keyI) {\r\n target = tmpTargets[keyI]\r\n if(target === noTarget) { tmpResults[keyI] = noTarget; continue }\r\n\r\n tmpResults[keyI] = algorithm(preparedSearch, target, /*allowSpaces=*/false, /*allowPartialMatch=*/containsSpace)\r\n if(tmpResults[keyI] === NULL) { tmpResults[keyI] = noTarget; continue }\r\n\r\n // todo: this seems weird and wrong. like what if our first match wasn't good. this should just replace it instead of averaging with it\r\n // if our second match isn't good we ignore it instead of averaging with it\r\n if(containsSpace) for(let i=0; i<preparedSearch.spaceSearches.length; i++) {\r\n if(allowPartialMatchScores[i] > -1000) {\r\n if(keysSpacesBestScores[i] > NEGATIVE_INFINITY) {\r\n var tmp = (keysSpacesBestScores[i] + allowPartialMatchScores[i]) / 4/*bonus score for having multiple matches*/\r\n if(tmp > keysSpacesBestScores[i]) keysSpacesBestScores[i] = tmp\r\n }\r\n }\r\n if(allowPartialMatchScores[i] > keysSpacesBestScores[i]) keysSpacesBestScores[i] = allowPartialMatchScores[i]\r\n }\r\n }\r\n\r\n if(containsSpace) {\r\n for(let i=0; i<preparedSearch.spaceSearches.length; i++) { if(keysSpacesBestScores[i] === NEGATIVE_INFINITY) continue outer }\r\n } else {\r\n var hasAtLeast1Match = false\r\n for(let i=0; i < keysLen; i++) { if(tmpResults[i]._score !== NEGATIVE_INFINITY) { hasAtLeast1Match = true; break } }\r\n if(!hasAtLeast1Match) continue\r\n }\r\n\r\n var objResults = new KeysResult(keysLen)\r\n for(let i=0; i < keysLen; i++) { objResults[i] = tmpResults[i] }\r\n\r\n if(containsSpace) {\r\n var score = 0\r\n for(let i=0; i<preparedSearch.spaceSearches.length; i++) score += keysSpacesBestScores[i]\r\n } else {\r\n // todo could rewrite this scoring to be more similar to when there's spaces\r\n // if we match multiple keys give us bonus points\r\n var score = NEGATIVE_INFINITY\r\n for(let i=0; i<keysLen; i++) {\r\n var result = objResults[i]\r\n if(result._score > -1000) {\r\n if(score > NEGATIVE_INFINITY) {\r\n var tmp = (score + result._score) / 4/*bonus score for having multiple matches*/\r\n if(tmp > score) score = tmp\r\n }\r\n }\r\n if(result._score > score) score = result._score\r\n }\r\n }\r\n\r\n objResults.obj = obj\r\n objResults._score = score\r\n if(options?.scoreFn) {\r\n score = options.scoreFn(objResults)\r\n if(!score) continue\r\n score = denormalizeScore(score)\r\n objResults._score = score\r\n }\r\n\r\n if(score < threshold) continue\r\n push_result(objResults)\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(var i = 0; i < targetsLen; ++i) { var target = targets[i]\r\n if(!target) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n if((searchBitflags & target._bitflags) !== searchBitflags) continue\r\n var result = algorithm(preparedSearch, target)\r\n if(result === NULL) continue\r\n if(result._score < threshold) continue\r\n\r\n push_result(result)\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return noResults\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n return results\r\n }\r\n\r\n\r\n // this is written as 1 function instead of 2 for minification. perf seems fine ...\r\n // except when minified. the perf is very slow\r\n var highlight = (result, open='<b>', close='</b>') => {\r\n var callback = typeof open === 'function' ? open : undefined\r\n\r\n var target = result.target\r\n var targetLen = target.length\r\n var indexes = result.indexes\r\n var highlighted = ''\r\n var matchI = 0\r\n var indexesI = 0\r\n var opened = false\r\n var parts = []\r\n\r\n for(var i = 0; i < targetLen; ++i) { var char = target[i]\r\n if(indexes[indexesI] === i) {\r\n ++indexesI\r\n if(!opened) { opened = true\r\n if(callback) {\r\n parts.push(highlighted); highlighted = ''\r\n } else {\r\n highlighted += open\r\n }\r\n }\r\n\r\n if(indexesI === indexes.length) {\r\n if(callback) {\r\n highlighted += char\r\n parts.push(callback(highlighted, matchI++)); highlighted = ''\r\n parts.push(target.substr(i+1))\r\n } else {\r\n highlighted += char + close + target.substr(i+1)\r\n }\r\n break\r\n }\r\n } else {\r\n if(opened) { opened = false\r\n if(callback) {\r\n parts.push(callback(highlighted, matchI++)); highlighted = ''\r\n } else {\r\n highlighted += close\r\n }\r\n }\r\n }\r\n highlighted += char\r\n }\r\n\r\n return callback ? parts : highlighted\r\n }\r\n\r\n\r\n var prepare = (target) => {\r\n if(typeof target === 'number') target = ''+target\r\n else if(typeof target !== 'string') target = ''\r\n var info = prepareLowerInfo(target)\r\n return new_result(target, {_targetLower:info._lower, _targetLowerCodes:info.lowerCodes, _bitflags:info.bitflags})\r\n }\r\n\r\n var cleanup = () => { preparedCache.clear(); preparedSearchCache.clear() }\r\n\r\n\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n\r\n\r\n class Result {\r\n get ['indexes']() { return this._indexes.slice(0, this._indexes.len).sort((a,b)=>a-b) }\r\n set ['indexes'](indexes) { return this._indexes = indexes }\r\n ['highlight'](open, close) { return highlight(this, open, close) }\r\n get ['score']() { return normalizeScore(this._score) }\r\n set ['score'](score) { this._score = denormalizeScore(score) }\r\n }\r\n\r\n class KeysResult extends Array {\r\n get ['score']() { return normalizeScore(this._score) }\r\n set ['score'](score) { this._score = denormalizeScore(score) }\r\n }\r\n\r\n var new_result = (target, options) => {\r\n const result = new Result()\r\n result['target'] = target\r\n result['obj'] = options.obj ?? NULL\r\n result._score = options._score ?? NEGATIVE_INFINITY\r\n result._indexes = options._indexes ?? []\r\n result._targetLower = options._targetLower ?? ''\r\n result._targetLowerCodes = options._targetLowerCodes ?? NULL\r\n result._nextBeginningIndexes = options._nextBeginningIndexes ?? NULL\r\n result._bitflags = options._bitflags ?? 0\r\n return result\r\n }\r\n\r\n\r\n var normalizeScore = score => {\r\n if(score === NEGATIVE_INFINITY) return 0\r\n if(score > 1) return score\r\n return Math.E ** ( ((-score + 1)**.04307 - 1) * -2)\r\n }\r\n var denormalizeScore = normalizedScore => {\r\n if(normalizedScore === 0) return NEGATIVE_INFINITY\r\n if(normalizedScore > 1) return normalizedScore\r\n return 1 - Math.pow((Math.log(normalizedScore) / -2 + 1), 1 / 0.04307)\r\n }\r\n\r\n\r\n var prepareSearch = (search) => {\r\n if(typeof search === 'number') search = ''+search\r\n else if(typeof search !== 'string') search = ''\r\n search = search.trim()\r\n var info = prepareLowerInfo(search)\r\n\r\n var spaceSearches = []\r\n if(info.containsSpace) {\r\n var searches = search.split(/\\s+/)\r\n searches = [...new Set(searches)] // distinct\r\n for(var i=0; i<searches.length; i++) {\r\n if(searches[i] === '') continue\r\n var _info = prepareLowerInfo(searches[i])\r\n spaceSearches.push({lowerCodes:_info.lowerCodes, _lower:searches[i].toLowerCase(), containsSpace:false})\r\n }\r\n }\r\n\r\n return {lowerCodes: info.lowerCodes, _lower: info._lower, containsSpace: info.containsSpace, bitflags: info.bitflags, spaceSearches: spaceSearches}\r\n }\r\n\r\n\r\n\r\n var getPrepared = (target) => {\r\n if(target.length > 999) return prepare(target) // don't cache huge targets\r\n var targetPrepared = preparedCache.get(target)\r\n if(targetPrepared !== undefined) return targetPrepared\r\n targetPrepared = prepare(target)\r\n preparedCache.set(target, targetPrepared)\r\n return targetPrepared\r\n }\r\n var getPreparedSearch = (search) => {\r\n if(search.length > 999) return prepareSearch(search) // don't cache huge searches\r\n var searchPrepared = preparedSearchCache.get(search)\r\n if(searchPrepared !== undefined) return searchPrepared\r\n searchPrepared = prepareSearch(search)\r\n preparedSearchCache.set(search, searchPrepared)\r\n return searchPrepared\r\n }\r\n\r\n\r\n var all = (targets, options) => {\r\n var results = []; results.total = targets.length // this total can be wrong if some targets are skipped\r\n\r\n var limit = options?.limit || INFINITY\r\n\r\n if(options?.key) {\r\n for(var i=0;i<targets.length;i++) { var obj = targets[i]\r\n var target = getValue(obj, options.key)\r\n if(target == NULL) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n var result = new_result(target.target, {_score: target._score, obj: obj})\r\n results.push(result); if(results.length >= limit) return results\r\n }\r\n } else if(options?.keys) {\r\n for(var i=0;i<targets.length;i++) { var obj = targets[i]\r\n var objResults = new KeysResult(options.keys.length)\r\n for (var keyI = options.keys.length - 1; keyI >= 0; --keyI) {\r\n var target = getValue(obj, options.keys[keyI])\r\n if(!target) { objResults[keyI] = noTarget; continue }\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n target._score = NEGATIVE_INFINITY\r\n target._indexes.len = 0\r\n objResults[keyI] = target\r\n }\r\n objResults.obj = obj\r\n objResults._score = NEGATIVE_INFINITY\r\n results.push(objResults); if(results.length >= limit) return results\r\n }\r\n } else {\r\n for(var i=0;i<targets.length;i++) { var target = targets[i]\r\n if(target == NULL) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n target._score = NEGATIVE_INFINITY\r\n target._indexes.len = 0\r\n results.push(target); if(results.length >= limit) return results\r\n }\r\n }\r\n\r\n return results\r\n }\r\n\r\n\r\n var algorithm = (preparedSearch, prepared, allowSpaces=false, allowPartialMatch=false) => {\r\n if(allowSpaces===false && preparedSearch.containsSpace) return algorithmSpaces(preparedSearch, prepared, allowPartialMatch)\r\n\r\n var searchLower = preparedSearch._lower\r\n var searchLowerCodes = preparedSearch.lowerCodes\r\n var searchLowerCode = searchLowerCodes[0]\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[searchI]\r\n }\r\n ++targetI; if(targetI >= targetLen) return NULL // Failed to find searchI\r\n }\r\n\r\n var searchI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === NULL) nextBeginningIndexes = prepared._nextBeginningIndexes = prepareNextBeginningIndexes(prepared.target)\r\n targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n var backtrackCount = 0\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) break // We failed to push chars forward for a better match\r\n\r\n ++backtrackCount; if(backtrackCount > 200) break // exponential backtracking is taking too long, just give up and return a bad match\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[searchI] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n // check if it's a substring match\r\n var substringIndex = searchLen <= 1 ? -1 : prepared._targetLower.indexOf(searchLower, matchesSimple[0]) // perf: this is slow\r\n var isSubstring = !!~substringIndex\r\n var isSubstringBeginning = !isSubstring ? false : substringIndex===0 || prepared._nextBeginningIndexes[substringIndex-1] === substringIndex\r\n\r\n // if it's a substring match but not at a beginning index, let's try to find a substring starting at a beginning index for a better score\r\n if(isSubstring && !isSubstringBeginning) {\r\n for(var i=0; i<nextBeginningIndexes.length; i=nextBeginningIndexes[i]) {\r\n if(i <= substringIndex) continue\r\n\r\n for(var s=0; s<searchLen; s++) if(searchLowerCodes[s] !== prepared._targetLowerCodes[i+s]) break\r\n if(s === searchLen) { substringIndex = i; isSubstringBeginning = true; break }\r\n }\r\n }\r\n\r\n // tally up the score & keep track of matches for highlighting later\r\n // if it's a simple match, we'll switch to a substring match if a substring exists\r\n // if it's a strict match, we'll switch to a substring match only if that's a better score\r\n\r\n var calculateScore = matches => {\r\n var score = 0\r\n\r\n var extraMatchGroupCount = 0\r\n for(var i = 1; i < searchLen; ++i) {\r\n if(matches[i] - matches[i-1] !== 1) {score -= matches[i]; ++extraMatchGroupCount}\r\n }\r\n var unmatchedDistance = matches[searchLen-1] - matches[0] - (searchLen-1)\r\n\r\n score -= (12+unmatchedDistance) * extraMatchGroupCount // penality for more groups\r\n\r\n if(matches[0] !== 0) score -= matches[0]*matches[0]*.2 // penality for not starting near the beginning\r\n\r\n if(!successStrict) {\r\n score *= 1000\r\n } else {\r\n // successStrict on a target with too many beginning indexes loses points for being a bad target\r\n var uniqueBeginningIndexes = 1\r\n for(var i = nextBeginningIndexes[0]; i < targetLen; i=nextBeginningIndexes[i]) ++uniqueBeginningIndexes\r\n\r\n if(uniqueBeginningIndexes > 24) score *= (uniqueBeginningIndexes-24)*10 // quite arbitrary numbers here ...\r\n }\r\n\r\n score -= (targetLen - searchLen)/2 // penality for longer targets\r\n\r\n if(isSubstring) score /= 1+searchLen*searchLen*1 // bonus for being a full substring\r\n if(isSubstringBeginning) score /= 1+searchLen*searchLen*1 // bonus for substring starting on a beginningIndex\r\n\r\n score -= (targetLen - searchLen)/2 // penality for longer targets\r\n\r\n return score\r\n }\r\n\r\n if(!successStrict) {\r\n if(isSubstring) for(var i=0; i<searchLen; ++i) matchesSimple[i] = substringIndex+i // at this point it's safe to overwrite matchehsSimple with substr matches\r\n var matchesBest = matchesSimple\r\n var score = calculateScore(matchesBest)\r\n } else {\r\n if(isSubstringBeginning) {\r\n for(var i=0; i<searchLen; ++i) matchesSimple[i] = substringIndex+i // at this point it's safe to overwrite matchehsSimple with substr matches\r\n var matchesBest = matchesSimple\r\n var score = calculateScore(matchesSimple)\r\n } else {\r\n var matchesBest = matchesStrict\r\n var score = calculateScore(matchesStrict)\r\n }\r\n }\r\n\r\n prepared._score = score\r\n\r\n for(var i = 0; i < searchLen; ++i) prepared._indexes[i] = matchesBest[i]\r\n prepared._indexes.len = searchLen\r\n\r\n const result = new Result()\r\n result.target = prepared.target\r\n result._score = prepared._score\r\n result._indexes = prepared._indexes\r\n return result\r\n }\r\n var algorithmSpaces = (preparedSearch, target, allowPartialMatch) => {\r\n var seen_indexes = new Set()\r\n var score = 0\r\n var result = NULL\r\n\r\n var first_seen_index_last_search = 0\r\n var searches = preparedSearch.spaceSearches\r\n var searchesLen = searches.length\r\n var changeslen = 0\r\n\r\n // Return _nextBeginningIndexes back to its normal state\r\n var resetNextBeginningIndexes = () => {\r\n for(let i=changeslen-1; i>=0; i--) target._nextBeginningIndexes[nextBeginningIndexesChanges[i*2 + 0]] = nextBeginningIndexesChanges[i*2 + 1]\r\n }\r\n\r\n var hasAtLeast1Match = false\r\n for(var i=0; i<searchesLen; ++i) {\r\n allowPartialMatchScores[i] = NEGATIVE_INFINITY\r\n var search = searches[i]\r\n\r\n result = algorithm(search, target)\r\n if(allowPartialMatch) {\r\n if(result === NULL) continue\r\n hasAtLeast1Match = true\r\n } else {\r\n if(result === NULL) {resetNextBeginningIndexes(); return NULL}\r\n }\r\n\r\n // if not the last search, we need to mutate _nextBeginningIndexes for the next search\r\n var isTheLastSearch = i === searchesLen - 1\r\n if(!isTheLastSearch) {\r\n var indexes = result._indexes\r\n\r\n var indexesIsConsecutiveSubstring = true\r\n for(let i=0; i<indexes.len-1; i++) {\r\n if(indexes[i+1] - indexes[i] !== 1) {\r\n indexesIsConsecutiveSubstring = false; break;\r\n }\r\n }\r\n\r\n if(indexesIsConsecutiveSubstring) {\r\n var newBeginningIndex = indexes[indexes.len-1] + 1\r\n var toReplace = target._nextBeginningIndexes[newBeginningIndex-1]\r\n for(let i=newBeginningIndex-1; i>=0; i--) {\r\n if(toReplace !== target._nextBeginningIndexes[i]) break\r\n target._nextBeginningIndexes[i] = newBeginningIndex\r\n nextBeginningIndexesChanges[changeslen*2 + 0] = i\r\n nextBeginningIndexesChanges[changeslen*2 + 1] = toReplace\r\n changeslen++\r\n }\r\n }\r\n }\r\n\r\n score += result._score / searchesLen\r\n allowPartialMatchScores[i] = result._score / searchesLen\r\n\r\n // dock points based on order otherwise \"c man\" returns Manifest.cpp instead of CheatManager.h\r\n if(result._indexes[0] < first_seen_index_last_search) {\r\n score -= (first_seen_index_last_search - result._indexes[0]) * 2\r\n }\r\n first_seen_index_last_search = result._indexes[0]\r\n\r\n for(var j=0; j<result._indexes.len; ++j) seen_indexes.add(result._indexes[j])\r\n }\r\n\r\n if(allowPartialMatch && !hasAtLeast1Match) return NULL\r\n\r\n resetNextBeginningIndexes()\r\n\r\n // allows a search with spaces that's an exact substring to score well\r\n var allowSpacesResult = algorithm(preparedSearch, target, /*allowSpaces=*/true)\r\n if(allowSpacesResult !== NULL && allowSpacesResult._score > score) {\r\n if(allowPartialMatch) {\r\n for(var i=0; i<searchesLen; ++i) {\r\n allowPartialMatchScores[i] = allowSpacesResult._score / searchesLen\r\n }\r\n }\r\n return allowSpacesResult\r\n }\r\n\r\n if(allowPartialMatch) result = target\r\n result._score = score\r\n\r\n var i = 0\r\n for (let index of seen_indexes) result._indexes[i++] = index\r\n result._indexes.len = i\r\n\r\n return result\r\n }\r\n\r\n\r\n var prepareLowerInfo = (str) => {\r\n var strLen = str.length\r\n var lower = str.toLowerCase()\r\n var lowerCodes = [] // new Array(strLen) sparse array is too slow\r\n var bitflags = 0\r\n var containsSpace = false // space isn't stored in bitflags because of how searching with a space works\r\n\r\n for(var i = 0; i < strLen; ++i) {\r\n var lowerCode = lowerCodes[i] = lower.charCodeAt(i)\r\n\r\n if(lowerCode === 32) {\r\n containsSpace = true\r\n continue // it's important that we don't set any bitflags for space\r\n }\r\n\r\n var bit = lowerCode>=97&&lowerCode<=122 ? lowerCode-97 // alphabet\r\n : lowerCode>=48&&lowerCode<=57 ? 26 // numbers\r\n // 3 bits available\r\n : lowerCode<=127 ? 30 // other ascii\r\n : 31 // other utf8\r\n bitflags |= 1<<bit\r\n }\r\n\r\n return {lowerCodes:lowerCodes, bitflags:bitflags, containsSpace:containsSpace, _lower:lower}\r\n }\r\n var prepareBeginningIndexes = (target) => {\r\n var targetLen = target.length\r\n var beginningIndexes = []; var beginningIndexesLen = 0\r\n var wasUpper = false\r\n var wasAlphanum = false\r\n for(var i = 0; i < targetLen; ++i) {\r\n var targetCode = target.charCodeAt(i)\r\n var isUpper = targetCode>=65&&targetCode<=90\r\n var isAlphanum = isUpper || targetCode>=97&&targetCode<=122 || targetCode>=48&&targetCode<=57\r\n var isBeginning = isUpper && !wasUpper || !wasAlphanum || !isAlphanum\r\n wasUpper = isUpper\r\n wasAlphanum = isAlphanum\r\n if(isBeginning) beginningIndexes[beginningIndexesLen++] = i\r\n }\r\n return beginningIndexes\r\n }\r\n var prepareNextBeginningIndexes = (target) => {\r\n var targetLen = target.length\r\n var beginningIndexes = prepareBeginningIndexes(target)\r\n var nextBeginningIndexes = [] // new Array(targetLen) sparse array is too slow\r\n var lastIsBeginning = beginningIndexes[0]\r\n var lastIsBeginningI = 0\r\n for(var i = 0; i < targetLen; ++i) {\r\n if(lastIsBeginning > i) {\r\n nextBeginningIndexes[i] = lastIsBeginning\r\n } else {\r\n lastIsBeginning = beginningIndexes[++lastIsBeginningI]\r\n nextBeginningIndexes[i] = lastIsBeginning===undefined ? targetLen : lastIsBeginning\r\n }\r\n }\r\n return nextBeginningIndexes\r\n }\r\n\r\n var preparedCache = new Map()\r\n var preparedSearchCache = new Map()\r\n\r\n // the theory behind these being globals is to reduce garbage collection by not making new arrays\r\n var matchesSimple = []; var matchesStrict = []\r\n var nextBeginningIndexesChanges = [] // allows straw berry to match strawberry well, by modifying the end of a substring to be considered a beginning index for the rest of the search\r\n var keysSpacesBestScores = []; var allowPartialMatchScores = []\r\n var tmpTargets = []; var tmpResults = []\r\n\r\n // prop = 'key' 2.5ms optimized for this case, seems to be about as fast as direct obj[prop]\r\n // prop = 'key1.key2' 10ms\r\n // prop = ['key1', 'key2'] 27ms\r\n // prop = obj => obj.tags.join() ??ms\r\n var getValue = (obj, prop) => {\r\n var tmp = obj[prop]; if(tmp !== undefined) return tmp\r\n if(typeof prop === 'function') return prop(obj) // this should run first. but that makes string props slower\r\n var segs = prop\r\n if(!Array.isArray(prop)) segs = prop.split('.')\r\n var len = segs.length\r\n var i = -1\r\n while (obj && (++i < len)) obj = obj[segs[i]]\r\n return obj\r\n }\r\n\r\n var isPrepared = (x) => { return typeof x === 'object' && typeof x._bitflags === 'number' }\r\n var INFINITY = Infinity; var NEGATIVE_INFINITY = -INFINITY\r\n var noResults = []; noResults.total = 0\r\n var NULL = null\r\n\r\n var noTarget = prepare('')\r\n\r\n // Hacked version of https://github.com/lemire/FastPriorityQueue.js\r\n var fastpriorityqueue=r=>{var e=[],o=0,a={},v=r=>{for(var a=0,v=e[a],c=1;c<o;){var s=c+1;a=c,s<o&&e[s]._score<e[c]._score&&(a=s),e[a-1>>1]=e[a],c=1+(a<<1)}for(var f=a-1>>1;a>0&&v._score<e[f]._score;f=(a=f)-1>>1)e[a]=e[f];e[a]=v};return a.add=(r=>{var a=o;e[o++]=r;for(var v=a-1>>1;a>0&&r._score<e[v]._score;v=(a=v)-1>>1)e[a]=e[v];e[a]=r}),a.poll=(r=>{if(0!==o){var a=e[0];return e[0]=e[--o],v(),a}}),a.peek=(r=>{if(0!==o)return e[0]}),a.replaceTop=(r=>{e[0]=r,v()}),a}\r\n var q = fastpriorityqueue() // reuse this\r\n\r\n // fuzzysort is written this way for minification. all names are mangeled unless quoted\r\n return {'single':single, 'go':go, 'prepare':prepare, 'cleanup':cleanup}\r\n}) // UMD\r\n","import fuzzysort from 'fuzzysort';\n\nimport { isListOfObjects, isListOfStrings } from '../../types/utils';\nimport { normalizeText } from './helpers';\n\nexport interface Options {\n fieldNames: string[];\n}\n\nexport function searchFuzzy(searchTerm: string, items: string[]): string[];\n\nexport function searchFuzzy<Item = unknown>(searchTerm: string, items: Item[], options: Options): Item[];\n\nexport function searchFuzzy<Item = unknown>(searchTerm: string, items: Item[], options?: Options) {\n const threshold = -100000; // 0 returns perfect match\n const normalizedSearchTerm = normalizeText(searchTerm)\n .replace(/[^\\w\\s]/gi, '')\n .toLowerCase();\n\n if (isListOfStrings(items)) {\n return fuzzysort.go(normalizedSearchTerm, items, { all: true, threshold }).map((r) => r.target);\n }\n\n if (isListOfObjects<Item>(items) && options?.fieldNames?.length) {\n return fuzzysort\n .go(normalizedSearchTerm, items, { all: true, threshold, keys: options?.fieldNames })\n .map((r) => r.obj);\n }\n\n return items;\n}\n\nexport default searchFuzzy;\n"],"names":["isListOfStrings","list","isListOfObjects","isPlainObject","root","UMD","module","this","_","single","search","target","NULL","preparedSearch","getPreparedSearch","isPrepared","getPrepared","searchBitflags","algorithm","go","targets","options","all","noResults","containsSpace","threshold","denormalizeScore","limit","INFINITY","resultsLen","limitedCount","targetsLen","push_result","result","q","key","i","obj","getValue","keys","keysLen","outer","keysBitflags","keyI","tmpTargets","noTarget","keysSpacesBestScores","NEGATIVE_INFINITY","tmpResults","allowPartialMatchScores","tmp","hasAtLeast1Match","objResults","KeysResult","score","results","highlight","open","close","callback","targetLen","indexes","highlighted","matchI","indexesI","opened","parts","char","prepare","info","prepareLowerInfo","new_result","cleanup","preparedCache","preparedSearchCache","Result","a","b","normalizeScore","normalizedScore","prepareSearch","spaceSearches","searches","_info","targetPrepared","searchPrepared","prepared","allowSpaces","allowPartialMatch","algorithmSpaces","searchLower","searchLowerCodes","searchLowerCode","targetLowerCodes","searchLen","searchI","targetI","matchesSimpleLen","isMatch","matchesSimple","successStrict","matchesStrictLen","nextBeginningIndexes","prepareNextBeginningIndexes","backtrackCount","lastMatch","matchesStrict","substringIndex","isSubstring","isSubstringBeginning","s","calculateScore","matches","extraMatchGroupCount","unmatchedDistance","uniqueBeginningIndexes","matchesBest","seen_indexes","first_seen_index_last_search","searchesLen","changeslen","resetNextBeginningIndexes","nextBeginningIndexesChanges","isTheLastSearch","indexesIsConsecutiveSubstring","newBeginningIndex","toReplace","j","allowSpacesResult","index","str","strLen","lower","lowerCodes","bitflags","lowerCode","bit","prepareBeginningIndexes","beginningIndexes","beginningIndexesLen","wasUpper","wasAlphanum","targetCode","isUpper","isAlphanum","isBeginning","lastIsBeginning","lastIsBeginningI","prop","segs","len","x","fastpriorityqueue","o","r","v","c","f","searchFuzzy","searchTerm","items","normalizedSearchTerm","normalizeText","fuzzysort","_a"],"mappings":"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","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"searchFuzzy-B3TsUO-V.js","sources":["../types/utils.ts","../../../node_modules/.pnpm/fuzzysort@3.0.2/node_modules/fuzzysort/fuzzysort.js","../src/utils/searchFuzzy.ts"],"sourcesContent":["import isPlainObject from 'lodash-es/isPlainObject';\nimport { InjectionKey, isRef, Ref } from 'vue';\n\n/**\n * Create a union from an object's values\n *\n * using a plain object:\n * const SHAPE = { CIRCLE: 'circle', SQUARE: 'square' } as const;\n * ValueOf<typeof SHAPE> -> square | circle\n *\n * using a type:\n * type Shape = { SQUARE: string; CIRCLE: string; }\n * ValueOf<Shape>\n */\nexport type ValueOf<T> = T[keyof T];\n\nexport function isListOfStrings(list: unknown): list is string[] {\n return Array.isArray(list) && typeof list[0] === 'string';\n}\n\nexport function isListOfObjects<T = unknown>(list: unknown): list is T[] {\n return Array.isArray(list) && isPlainObject(list[0]);\n}\n\nexport interface Injection<T> {\n key: InjectionKey<T>;\n}\n\nexport interface InjectionWithDefaults<T> extends Injection<T> {\n defaults: T;\n}\n\n/**\n * Like the MaybeRefOrGetter type from Vue, but without the Maybe. Can be used to ensure the most up-to-date value is available.\n */\nexport type RefOrGetter<T> = Ref<T> | (() => T);\n\n/**\n * A type guard for the RefOrGetter type. Acceptable values include:\n * - a value created from `ref()`\n * - a value created from `shallowRef()`\n * - a value created from `computed()`\n * - a function that returns a value\n */\nexport function isRefOrGetter<T>(value: RefOrGetter<T> | unknown): value is RefOrGetter<T> {\n return isRef(value) || typeof value === 'function';\n}\n","// https://github.com/farzher/fuzzysort v3.0.2\r\n\r\n// UMD (Universal Module Definition) for fuzzysort\r\n;((root, UMD) => {\r\n if(typeof define === 'function' && define.amd) define([], UMD)\r\n else if(typeof module === 'object' && module.exports) module.exports = UMD()\r\n else root['fuzzysort'] = UMD()\r\n})(this, _ => {\r\n 'use strict'\r\n\r\n var single = (search, target) => {\r\n if(!search || !target) return NULL\r\n\r\n var preparedSearch = getPreparedSearch(search)\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n var searchBitflags = preparedSearch.bitflags\r\n if((searchBitflags & target._bitflags) !== searchBitflags) return NULL\r\n\r\n return algorithm(preparedSearch, target)\r\n }\r\n\r\n var go = (search, targets, options) => {\r\n if(!search) return options?.all ? all(targets, options) : noResults\r\n\r\n var preparedSearch = getPreparedSearch(search)\r\n var searchBitflags = preparedSearch.bitflags\r\n var containsSpace = preparedSearch.containsSpace\r\n\r\n var threshold = denormalizeScore( options?.threshold || 0 )\r\n var limit = options?.limit || INFINITY\r\n\r\n var resultsLen = 0; var limitedCount = 0\r\n var targetsLen = targets.length\r\n\r\n function push_result(result) {\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result._score > q.peek()._score) q.replaceTop(result)\r\n }\r\n }\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.key, options.keys, no keys]\r\n\r\n // options.key\r\n if(options?.key) {\r\n var key = options.key\r\n for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n if((searchBitflags & target._bitflags) !== searchBitflags) continue\r\n var result = algorithm(preparedSearch, target)\r\n if(result === NULL) continue\r\n if(result._score < threshold) continue\r\n\r\n result.obj = obj\r\n push_result(result)\r\n }\r\n\r\n // options.keys\r\n } else if(options?.keys) {\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n\r\n outer: for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]\r\n\r\n { // early out based on bitflags\r\n var keysBitflags = 0\r\n for (var keyI = 0; keyI < keysLen; ++keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { tmpTargets[keyI] = noTarget; continue }\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n tmpTargets[keyI] = target\r\n\r\n keysBitflags |= target._bitflags\r\n }\r\n\r\n if((searchBitflags & keysBitflags) !== searchBitflags) continue\r\n }\r\n\r\n if(containsSpace) for(let i=0; i<preparedSearch.spaceSearches.length; i++) keysSpacesBestScores[i] = NEGATIVE_INFINITY\r\n\r\n for (var keyI = 0; keyI < keysLen; ++keyI) {\r\n target = tmpTargets[keyI]\r\n if(target === noTarget) { tmpResults[keyI] = noTarget; continue }\r\n\r\n tmpResults[keyI] = algorithm(preparedSearch, target, /*allowSpaces=*/false, /*allowPartialMatch=*/containsSpace)\r\n if(tmpResults[keyI] === NULL) { tmpResults[keyI] = noTarget; continue }\r\n\r\n // todo: this seems weird and wrong. like what if our first match wasn't good. this should just replace it instead of averaging with it\r\n // if our second match isn't good we ignore it instead of averaging with it\r\n if(containsSpace) for(let i=0; i<preparedSearch.spaceSearches.length; i++) {\r\n if(allowPartialMatchScores[i] > -1000) {\r\n if(keysSpacesBestScores[i] > NEGATIVE_INFINITY) {\r\n var tmp = (keysSpacesBestScores[i] + allowPartialMatchScores[i]) / 4/*bonus score for having multiple matches*/\r\n if(tmp > keysSpacesBestScores[i]) keysSpacesBestScores[i] = tmp\r\n }\r\n }\r\n if(allowPartialMatchScores[i] > keysSpacesBestScores[i]) keysSpacesBestScores[i] = allowPartialMatchScores[i]\r\n }\r\n }\r\n\r\n if(containsSpace) {\r\n for(let i=0; i<preparedSearch.spaceSearches.length; i++) { if(keysSpacesBestScores[i] === NEGATIVE_INFINITY) continue outer }\r\n } else {\r\n var hasAtLeast1Match = false\r\n for(let i=0; i < keysLen; i++) { if(tmpResults[i]._score !== NEGATIVE_INFINITY) { hasAtLeast1Match = true; break } }\r\n if(!hasAtLeast1Match) continue\r\n }\r\n\r\n var objResults = new KeysResult(keysLen)\r\n for(let i=0; i < keysLen; i++) { objResults[i] = tmpResults[i] }\r\n\r\n if(containsSpace) {\r\n var score = 0\r\n for(let i=0; i<preparedSearch.spaceSearches.length; i++) score += keysSpacesBestScores[i]\r\n } else {\r\n // todo could rewrite this scoring to be more similar to when there's spaces\r\n // if we match multiple keys give us bonus points\r\n var score = NEGATIVE_INFINITY\r\n for(let i=0; i<keysLen; i++) {\r\n var result = objResults[i]\r\n if(result._score > -1000) {\r\n if(score > NEGATIVE_INFINITY) {\r\n var tmp = (score + result._score) / 4/*bonus score for having multiple matches*/\r\n if(tmp > score) score = tmp\r\n }\r\n }\r\n if(result._score > score) score = result._score\r\n }\r\n }\r\n\r\n objResults.obj = obj\r\n objResults._score = score\r\n if(options?.scoreFn) {\r\n score = options.scoreFn(objResults)\r\n if(!score) continue\r\n score = denormalizeScore(score)\r\n objResults._score = score\r\n }\r\n\r\n if(score < threshold) continue\r\n push_result(objResults)\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(var i = 0; i < targetsLen; ++i) { var target = targets[i]\r\n if(!target) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n\r\n if((searchBitflags & target._bitflags) !== searchBitflags) continue\r\n var result = algorithm(preparedSearch, target)\r\n if(result === NULL) continue\r\n if(result._score < threshold) continue\r\n\r\n push_result(result)\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return noResults\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n return results\r\n }\r\n\r\n\r\n // this is written as 1 function instead of 2 for minification. perf seems fine ...\r\n // except when minified. the perf is very slow\r\n var highlight = (result, open='<b>', close='</b>') => {\r\n var callback = typeof open === 'function' ? open : undefined\r\n\r\n var target = result.target\r\n var targetLen = target.length\r\n var indexes = result.indexes\r\n var highlighted = ''\r\n var matchI = 0\r\n var indexesI = 0\r\n var opened = false\r\n var parts = []\r\n\r\n for(var i = 0; i < targetLen; ++i) { var char = target[i]\r\n if(indexes[indexesI] === i) {\r\n ++indexesI\r\n if(!opened) { opened = true\r\n if(callback) {\r\n parts.push(highlighted); highlighted = ''\r\n } else {\r\n highlighted += open\r\n }\r\n }\r\n\r\n if(indexesI === indexes.length) {\r\n if(callback) {\r\n highlighted += char\r\n parts.push(callback(highlighted, matchI++)); highlighted = ''\r\n parts.push(target.substr(i+1))\r\n } else {\r\n highlighted += char + close + target.substr(i+1)\r\n }\r\n break\r\n }\r\n } else {\r\n if(opened) { opened = false\r\n if(callback) {\r\n parts.push(callback(highlighted, matchI++)); highlighted = ''\r\n } else {\r\n highlighted += close\r\n }\r\n }\r\n }\r\n highlighted += char\r\n }\r\n\r\n return callback ? parts : highlighted\r\n }\r\n\r\n\r\n var prepare = (target) => {\r\n if(typeof target === 'number') target = ''+target\r\n else if(typeof target !== 'string') target = ''\r\n var info = prepareLowerInfo(target)\r\n return new_result(target, {_targetLower:info._lower, _targetLowerCodes:info.lowerCodes, _bitflags:info.bitflags})\r\n }\r\n\r\n var cleanup = () => { preparedCache.clear(); preparedSearchCache.clear() }\r\n\r\n\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n\r\n\r\n class Result {\r\n get ['indexes']() { return this._indexes.slice(0, this._indexes.len).sort((a,b)=>a-b) }\r\n set ['indexes'](indexes) { return this._indexes = indexes }\r\n ['highlight'](open, close) { return highlight(this, open, close) }\r\n get ['score']() { return normalizeScore(this._score) }\r\n set ['score'](score) { this._score = denormalizeScore(score) }\r\n }\r\n\r\n class KeysResult extends Array {\r\n get ['score']() { return normalizeScore(this._score) }\r\n set ['score'](score) { this._score = denormalizeScore(score) }\r\n }\r\n\r\n var new_result = (target, options) => {\r\n const result = new Result()\r\n result['target'] = target\r\n result['obj'] = options.obj ?? NULL\r\n result._score = options._score ?? NEGATIVE_INFINITY\r\n result._indexes = options._indexes ?? []\r\n result._targetLower = options._targetLower ?? ''\r\n result._targetLowerCodes = options._targetLowerCodes ?? NULL\r\n result._nextBeginningIndexes = options._nextBeginningIndexes ?? NULL\r\n result._bitflags = options._bitflags ?? 0\r\n return result\r\n }\r\n\r\n\r\n var normalizeScore = score => {\r\n if(score === NEGATIVE_INFINITY) return 0\r\n if(score > 1) return score\r\n return Math.E ** ( ((-score + 1)**.04307 - 1) * -2)\r\n }\r\n var denormalizeScore = normalizedScore => {\r\n if(normalizedScore === 0) return NEGATIVE_INFINITY\r\n if(normalizedScore > 1) return normalizedScore\r\n return 1 - Math.pow((Math.log(normalizedScore) / -2 + 1), 1 / 0.04307)\r\n }\r\n\r\n\r\n var prepareSearch = (search) => {\r\n if(typeof search === 'number') search = ''+search\r\n else if(typeof search !== 'string') search = ''\r\n search = search.trim()\r\n var info = prepareLowerInfo(search)\r\n\r\n var spaceSearches = []\r\n if(info.containsSpace) {\r\n var searches = search.split(/\\s+/)\r\n searches = [...new Set(searches)] // distinct\r\n for(var i=0; i<searches.length; i++) {\r\n if(searches[i] === '') continue\r\n var _info = prepareLowerInfo(searches[i])\r\n spaceSearches.push({lowerCodes:_info.lowerCodes, _lower:searches[i].toLowerCase(), containsSpace:false})\r\n }\r\n }\r\n\r\n return {lowerCodes: info.lowerCodes, _lower: info._lower, containsSpace: info.containsSpace, bitflags: info.bitflags, spaceSearches: spaceSearches}\r\n }\r\n\r\n\r\n\r\n var getPrepared = (target) => {\r\n if(target.length > 999) return prepare(target) // don't cache huge targets\r\n var targetPrepared = preparedCache.get(target)\r\n if(targetPrepared !== undefined) return targetPrepared\r\n targetPrepared = prepare(target)\r\n preparedCache.set(target, targetPrepared)\r\n return targetPrepared\r\n }\r\n var getPreparedSearch = (search) => {\r\n if(search.length > 999) return prepareSearch(search) // don't cache huge searches\r\n var searchPrepared = preparedSearchCache.get(search)\r\n if(searchPrepared !== undefined) return searchPrepared\r\n searchPrepared = prepareSearch(search)\r\n preparedSearchCache.set(search, searchPrepared)\r\n return searchPrepared\r\n }\r\n\r\n\r\n var all = (targets, options) => {\r\n var results = []; results.total = targets.length // this total can be wrong if some targets are skipped\r\n\r\n var limit = options?.limit || INFINITY\r\n\r\n if(options?.key) {\r\n for(var i=0;i<targets.length;i++) { var obj = targets[i]\r\n var target = getValue(obj, options.key)\r\n if(target == NULL) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n var result = new_result(target.target, {_score: target._score, obj: obj})\r\n results.push(result); if(results.length >= limit) return results\r\n }\r\n } else if(options?.keys) {\r\n for(var i=0;i<targets.length;i++) { var obj = targets[i]\r\n var objResults = new KeysResult(options.keys.length)\r\n for (var keyI = options.keys.length - 1; keyI >= 0; --keyI) {\r\n var target = getValue(obj, options.keys[keyI])\r\n if(!target) { objResults[keyI] = noTarget; continue }\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n target._score = NEGATIVE_INFINITY\r\n target._indexes.len = 0\r\n objResults[keyI] = target\r\n }\r\n objResults.obj = obj\r\n objResults._score = NEGATIVE_INFINITY\r\n results.push(objResults); if(results.length >= limit) return results\r\n }\r\n } else {\r\n for(var i=0;i<targets.length;i++) { var target = targets[i]\r\n if(target == NULL) continue\r\n if(!isPrepared(target)) target = getPrepared(target)\r\n target._score = NEGATIVE_INFINITY\r\n target._indexes.len = 0\r\n results.push(target); if(results.length >= limit) return results\r\n }\r\n }\r\n\r\n return results\r\n }\r\n\r\n\r\n var algorithm = (preparedSearch, prepared, allowSpaces=false, allowPartialMatch=false) => {\r\n if(allowSpaces===false && preparedSearch.containsSpace) return algorithmSpaces(preparedSearch, prepared, allowPartialMatch)\r\n\r\n var searchLower = preparedSearch._lower\r\n var searchLowerCodes = preparedSearch.lowerCodes\r\n var searchLowerCode = searchLowerCodes[0]\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[searchI]\r\n }\r\n ++targetI; if(targetI >= targetLen) return NULL // Failed to find searchI\r\n }\r\n\r\n var searchI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === NULL) nextBeginningIndexes = prepared._nextBeginningIndexes = prepareNextBeginningIndexes(prepared.target)\r\n targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n var backtrackCount = 0\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) break // We failed to push chars forward for a better match\r\n\r\n ++backtrackCount; if(backtrackCount > 200) break // exponential backtracking is taking too long, just give up and return a bad match\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[searchI] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n // check if it's a substring match\r\n var substringIndex = searchLen <= 1 ? -1 : prepared._targetLower.indexOf(searchLower, matchesSimple[0]) // perf: this is slow\r\n var isSubstring = !!~substringIndex\r\n var isSubstringBeginning = !isSubstring ? false : substringIndex===0 || prepared._nextBeginningIndexes[substringIndex-1] === substringIndex\r\n\r\n // if it's a substring match but not at a beginning index, let's try to find a substring starting at a beginning index for a better score\r\n if(isSubstring && !isSubstringBeginning) {\r\n for(var i=0; i<nextBeginningIndexes.length; i=nextBeginningIndexes[i]) {\r\n if(i <= substringIndex) continue\r\n\r\n for(var s=0; s<searchLen; s++) if(searchLowerCodes[s] !== prepared._targetLowerCodes[i+s]) break\r\n if(s === searchLen) { substringIndex = i; isSubstringBeginning = true; break }\r\n }\r\n }\r\n\r\n // tally up the score & keep track of matches for highlighting later\r\n // if it's a simple match, we'll switch to a substring match if a substring exists\r\n // if it's a strict match, we'll switch to a substring match only if that's a better score\r\n\r\n var calculateScore = matches => {\r\n var score = 0\r\n\r\n var extraMatchGroupCount = 0\r\n for(var i = 1; i < searchLen; ++i) {\r\n if(matches[i] - matches[i-1] !== 1) {score -= matches[i]; ++extraMatchGroupCount}\r\n }\r\n var unmatchedDistance = matches[searchLen-1] - matches[0] - (searchLen-1)\r\n\r\n score -= (12+unmatchedDistance) * extraMatchGroupCount // penality for more groups\r\n\r\n if(matches[0] !== 0) score -= matches[0]*matches[0]*.2 // penality for not starting near the beginning\r\n\r\n if(!successStrict) {\r\n score *= 1000\r\n } else {\r\n // successStrict on a target with too many beginning indexes loses points for being a bad target\r\n var uniqueBeginningIndexes = 1\r\n for(var i = nextBeginningIndexes[0]; i < targetLen; i=nextBeginningIndexes[i]) ++uniqueBeginningIndexes\r\n\r\n if(uniqueBeginningIndexes > 24) score *= (uniqueBeginningIndexes-24)*10 // quite arbitrary numbers here ...\r\n }\r\n\r\n score -= (targetLen - searchLen)/2 // penality for longer targets\r\n\r\n if(isSubstring) score /= 1+searchLen*searchLen*1 // bonus for being a full substring\r\n if(isSubstringBeginning) score /= 1+searchLen*searchLen*1 // bonus for substring starting on a beginningIndex\r\n\r\n score -= (targetLen - searchLen)/2 // penality for longer targets\r\n\r\n return score\r\n }\r\n\r\n if(!successStrict) {\r\n if(isSubstring) for(var i=0; i<searchLen; ++i) matchesSimple[i] = substringIndex+i // at this point it's safe to overwrite matchehsSimple with substr matches\r\n var matchesBest = matchesSimple\r\n var score = calculateScore(matchesBest)\r\n } else {\r\n if(isSubstringBeginning) {\r\n for(var i=0; i<searchLen; ++i) matchesSimple[i] = substringIndex+i // at this point it's safe to overwrite matchehsSimple with substr matches\r\n var matchesBest = matchesSimple\r\n var score = calculateScore(matchesSimple)\r\n } else {\r\n var matchesBest = matchesStrict\r\n var score = calculateScore(matchesStrict)\r\n }\r\n }\r\n\r\n prepared._score = score\r\n\r\n for(var i = 0; i < searchLen; ++i) prepared._indexes[i] = matchesBest[i]\r\n prepared._indexes.len = searchLen\r\n\r\n const result = new Result()\r\n result.target = prepared.target\r\n result._score = prepared._score\r\n result._indexes = prepared._indexes\r\n return result\r\n }\r\n var algorithmSpaces = (preparedSearch, target, allowPartialMatch) => {\r\n var seen_indexes = new Set()\r\n var score = 0\r\n var result = NULL\r\n\r\n var first_seen_index_last_search = 0\r\n var searches = preparedSearch.spaceSearches\r\n var searchesLen = searches.length\r\n var changeslen = 0\r\n\r\n // Return _nextBeginningIndexes back to its normal state\r\n var resetNextBeginningIndexes = () => {\r\n for(let i=changeslen-1; i>=0; i--) target._nextBeginningIndexes[nextBeginningIndexesChanges[i*2 + 0]] = nextBeginningIndexesChanges[i*2 + 1]\r\n }\r\n\r\n var hasAtLeast1Match = false\r\n for(var i=0; i<searchesLen; ++i) {\r\n allowPartialMatchScores[i] = NEGATIVE_INFINITY\r\n var search = searches[i]\r\n\r\n result = algorithm(search, target)\r\n if(allowPartialMatch) {\r\n if(result === NULL) continue\r\n hasAtLeast1Match = true\r\n } else {\r\n if(result === NULL) {resetNextBeginningIndexes(); return NULL}\r\n }\r\n\r\n // if not the last search, we need to mutate _nextBeginningIndexes for the next search\r\n var isTheLastSearch = i === searchesLen - 1\r\n if(!isTheLastSearch) {\r\n var indexes = result._indexes\r\n\r\n var indexesIsConsecutiveSubstring = true\r\n for(let i=0; i<indexes.len-1; i++) {\r\n if(indexes[i+1] - indexes[i] !== 1) {\r\n indexesIsConsecutiveSubstring = false; break;\r\n }\r\n }\r\n\r\n if(indexesIsConsecutiveSubstring) {\r\n var newBeginningIndex = indexes[indexes.len-1] + 1\r\n var toReplace = target._nextBeginningIndexes[newBeginningIndex-1]\r\n for(let i=newBeginningIndex-1; i>=0; i--) {\r\n if(toReplace !== target._nextBeginningIndexes[i]) break\r\n target._nextBeginningIndexes[i] = newBeginningIndex\r\n nextBeginningIndexesChanges[changeslen*2 + 0] = i\r\n nextBeginningIndexesChanges[changeslen*2 + 1] = toReplace\r\n changeslen++\r\n }\r\n }\r\n }\r\n\r\n score += result._score / searchesLen\r\n allowPartialMatchScores[i] = result._score / searchesLen\r\n\r\n // dock points based on order otherwise \"c man\" returns Manifest.cpp instead of CheatManager.h\r\n if(result._indexes[0] < first_seen_index_last_search) {\r\n score -= (first_seen_index_last_search - result._indexes[0]) * 2\r\n }\r\n first_seen_index_last_search = result._indexes[0]\r\n\r\n for(var j=0; j<result._indexes.len; ++j) seen_indexes.add(result._indexes[j])\r\n }\r\n\r\n if(allowPartialMatch && !hasAtLeast1Match) return NULL\r\n\r\n resetNextBeginningIndexes()\r\n\r\n // allows a search with spaces that's an exact substring to score well\r\n var allowSpacesResult = algorithm(preparedSearch, target, /*allowSpaces=*/true)\r\n if(allowSpacesResult !== NULL && allowSpacesResult._score > score) {\r\n if(allowPartialMatch) {\r\n for(var i=0; i<searchesLen; ++i) {\r\n allowPartialMatchScores[i] = allowSpacesResult._score / searchesLen\r\n }\r\n }\r\n return allowSpacesResult\r\n }\r\n\r\n if(allowPartialMatch) result = target\r\n result._score = score\r\n\r\n var i = 0\r\n for (let index of seen_indexes) result._indexes[i++] = index\r\n result._indexes.len = i\r\n\r\n return result\r\n }\r\n\r\n\r\n var prepareLowerInfo = (str) => {\r\n var strLen = str.length\r\n var lower = str.toLowerCase()\r\n var lowerCodes = [] // new Array(strLen) sparse array is too slow\r\n var bitflags = 0\r\n var containsSpace = false // space isn't stored in bitflags because of how searching with a space works\r\n\r\n for(var i = 0; i < strLen; ++i) {\r\n var lowerCode = lowerCodes[i] = lower.charCodeAt(i)\r\n\r\n if(lowerCode === 32) {\r\n containsSpace = true\r\n continue // it's important that we don't set any bitflags for space\r\n }\r\n\r\n var bit = lowerCode>=97&&lowerCode<=122 ? lowerCode-97 // alphabet\r\n : lowerCode>=48&&lowerCode<=57 ? 26 // numbers\r\n // 3 bits available\r\n : lowerCode<=127 ? 30 // other ascii\r\n : 31 // other utf8\r\n bitflags |= 1<<bit\r\n }\r\n\r\n return {lowerCodes:lowerCodes, bitflags:bitflags, containsSpace:containsSpace, _lower:lower}\r\n }\r\n var prepareBeginningIndexes = (target) => {\r\n var targetLen = target.length\r\n var beginningIndexes = []; var beginningIndexesLen = 0\r\n var wasUpper = false\r\n var wasAlphanum = false\r\n for(var i = 0; i < targetLen; ++i) {\r\n var targetCode = target.charCodeAt(i)\r\n var isUpper = targetCode>=65&&targetCode<=90\r\n var isAlphanum = isUpper || targetCode>=97&&targetCode<=122 || targetCode>=48&&targetCode<=57\r\n var isBeginning = isUpper && !wasUpper || !wasAlphanum || !isAlphanum\r\n wasUpper = isUpper\r\n wasAlphanum = isAlphanum\r\n if(isBeginning) beginningIndexes[beginningIndexesLen++] = i\r\n }\r\n return beginningIndexes\r\n }\r\n var prepareNextBeginningIndexes = (target) => {\r\n var targetLen = target.length\r\n var beginningIndexes = prepareBeginningIndexes(target)\r\n var nextBeginningIndexes = [] // new Array(targetLen) sparse array is too slow\r\n var lastIsBeginning = beginningIndexes[0]\r\n var lastIsBeginningI = 0\r\n for(var i = 0; i < targetLen; ++i) {\r\n if(lastIsBeginning > i) {\r\n nextBeginningIndexes[i] = lastIsBeginning\r\n } else {\r\n lastIsBeginning = beginningIndexes[++lastIsBeginningI]\r\n nextBeginningIndexes[i] = lastIsBeginning===undefined ? targetLen : lastIsBeginning\r\n }\r\n }\r\n return nextBeginningIndexes\r\n }\r\n\r\n var preparedCache = new Map()\r\n var preparedSearchCache = new Map()\r\n\r\n // the theory behind these being globals is to reduce garbage collection by not making new arrays\r\n var matchesSimple = []; var matchesStrict = []\r\n var nextBeginningIndexesChanges = [] // allows straw berry to match strawberry well, by modifying the end of a substring to be considered a beginning index for the rest of the search\r\n var keysSpacesBestScores = []; var allowPartialMatchScores = []\r\n var tmpTargets = []; var tmpResults = []\r\n\r\n // prop = 'key' 2.5ms optimized for this case, seems to be about as fast as direct obj[prop]\r\n // prop = 'key1.key2' 10ms\r\n // prop = ['key1', 'key2'] 27ms\r\n // prop = obj => obj.tags.join() ??ms\r\n var getValue = (obj, prop) => {\r\n var tmp = obj[prop]; if(tmp !== undefined) return tmp\r\n if(typeof prop === 'function') return prop(obj) // this should run first. but that makes string props slower\r\n var segs = prop\r\n if(!Array.isArray(prop)) segs = prop.split('.')\r\n var len = segs.length\r\n var i = -1\r\n while (obj && (++i < len)) obj = obj[segs[i]]\r\n return obj\r\n }\r\n\r\n var isPrepared = (x) => { return typeof x === 'object' && typeof x._bitflags === 'number' }\r\n var INFINITY = Infinity; var NEGATIVE_INFINITY = -INFINITY\r\n var noResults = []; noResults.total = 0\r\n var NULL = null\r\n\r\n var noTarget = prepare('')\r\n\r\n // Hacked version of https://github.com/lemire/FastPriorityQueue.js\r\n var fastpriorityqueue=r=>{var e=[],o=0,a={},v=r=>{for(var a=0,v=e[a],c=1;c<o;){var s=c+1;a=c,s<o&&e[s]._score<e[c]._score&&(a=s),e[a-1>>1]=e[a],c=1+(a<<1)}for(var f=a-1>>1;a>0&&v._score<e[f]._score;f=(a=f)-1>>1)e[a]=e[f];e[a]=v};return a.add=(r=>{var a=o;e[o++]=r;for(var v=a-1>>1;a>0&&r._score<e[v]._score;v=(a=v)-1>>1)e[a]=e[v];e[a]=r}),a.poll=(r=>{if(0!==o){var a=e[0];return e[0]=e[--o],v(),a}}),a.peek=(r=>{if(0!==o)return e[0]}),a.replaceTop=(r=>{e[0]=r,v()}),a}\r\n var q = fastpriorityqueue() // reuse this\r\n\r\n // fuzzysort is written this way for minification. all names are mangeled unless quoted\r\n return {'single':single, 'go':go, 'prepare':prepare, 'cleanup':cleanup}\r\n}) // UMD\r\n","import fuzzysort from 'fuzzysort';\n\nimport { isListOfObjects, isListOfStrings } from '../../types/utils';\nimport { normalizeText } from './helpers';\n\nexport interface Options {\n fieldNames: string[];\n}\n\nexport function searchFuzzy(searchTerm: string, items: string[]): string[];\n\nexport function searchFuzzy<Item = unknown>(searchTerm: string, items: Item[], options: Options): Item[];\n\nexport function searchFuzzy<Item = unknown>(searchTerm: string, items: Item[], options?: Options) {\n const threshold = -100000; // 0 returns perfect match\n const normalizedSearchTerm = normalizeText(searchTerm)\n .replace(/[^\\w\\s]/gi, '')\n .toLowerCase();\n\n if (isListOfStrings(items)) {\n return fuzzysort.go(normalizedSearchTerm, items, { all: true, threshold }).map((r) => r.target);\n }\n\n if (isListOfObjects<Item>(items) && options?.fieldNames?.length) {\n return fuzzysort\n .go(normalizedSearchTerm, items, { all: true, threshold, keys: options?.fieldNames })\n .map((r) => r.obj);\n }\n\n return items;\n}\n\nexport default searchFuzzy;\n"],"names":["isListOfStrings","list","isListOfObjects","isPlainObject","root","UMD","module","this","_","single","search","target","NULL","preparedSearch","getPreparedSearch","isPrepared","getPrepared","searchBitflags","algorithm","go","targets","options","all","noResults","containsSpace","threshold","denormalizeScore","limit","INFINITY","resultsLen","limitedCount","targetsLen","push_result","result","q","key","i","obj","getValue","keys","keysLen","outer","keysBitflags","keyI","tmpTargets","noTarget","keysSpacesBestScores","NEGATIVE_INFINITY","tmpResults","allowPartialMatchScores","tmp","hasAtLeast1Match","objResults","KeysResult","score","results","highlight","open","close","callback","targetLen","indexes","highlighted","matchI","indexesI","opened","parts","char","prepare","info","prepareLowerInfo","new_result","cleanup","preparedCache","preparedSearchCache","Result","a","b","normalizeScore","normalizedScore","prepareSearch","spaceSearches","searches","_info","targetPrepared","searchPrepared","prepared","allowSpaces","allowPartialMatch","algorithmSpaces","searchLower","searchLowerCodes","searchLowerCode","targetLowerCodes","searchLen","searchI","targetI","matchesSimpleLen","isMatch","matchesSimple","successStrict","matchesStrictLen","nextBeginningIndexes","prepareNextBeginningIndexes","backtrackCount","lastMatch","matchesStrict","substringIndex","isSubstring","isSubstringBeginning","s","calculateScore","matches","extraMatchGroupCount","unmatchedDistance","uniqueBeginningIndexes","matchesBest","seen_indexes","first_seen_index_last_search","searchesLen","changeslen","resetNextBeginningIndexes","nextBeginningIndexesChanges","isTheLastSearch","indexesIsConsecutiveSubstring","newBeginningIndex","toReplace","j","allowSpacesResult","index","str","strLen","lower","lowerCodes","bitflags","lowerCode","bit","prepareBeginningIndexes","beginningIndexes","beginningIndexesLen","wasUpper","wasAlphanum","targetCode","isUpper","isAlphanum","isBeginning","lastIsBeginning","lastIsBeginningI","prop","segs","len","x","fastpriorityqueue","o","r","v","c","f","searchFuzzy","searchTerm","items","normalizedSearchTerm","normalizeText","fuzzysort","_a"],"mappings":"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","x_google_ignoreList":[1]}
@@ -397,10 +397,10 @@ const o = {
397
397
  }
398
398
  }, p = () => {
399
399
  const e = [];
400
- return ["purple", "royal", "blue", "seafoam", "teal", "green", "yellow", "orange", "red", "ice"].forEach((r) => {
401
- ["bg", "text", "border", "stroke"].forEach((t) => {
402
- ["", "400"].forEach((a) => {
403
- e.push(`tw-${t}-${r}${a ? `-${a}` : ""}`);
400
+ return ["purple", "royal", "blue", "seafoam", "teal", "green", "yellow", "orange", "red", "ice"].forEach((a) => {
401
+ ["bg", "text", "border", "stroke"].forEach((r) => {
402
+ ["500", "400"].forEach((t) => {
403
+ e.push(`${r}-${a}-${t}`);
404
404
  });
405
405
  });
406
406
  }), e;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Utility to return a holistic array of tailwind color classes.
3
+ *
4
+ * This function will allow downstream applications to easily **blocklist** the same color
5
+ * classes that are safelisted in the base preset, just in case they need to prevent unnecessarily
6
+ * duplicating classes in their final build.
7
+ *
8
+ * @see {@link https://tailwindcss.com/docs/content-configuration#discarding-classes}
9
+ */
10
+ export declare const getColorClasses: () => string[];
11
+
12
+ export { }