@roadtrip/components 2.22.1 → 2.25.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 (783) hide show
  1. package/dist/cjs/{app-268f9884.js → app-04553107.js} +1 -1
  2. package/dist/cjs/{css-shim-9670f2f3.js → css-shim-cf2d8057.js} +1 -1
  3. package/dist/cjs/{dom-3e7d9c3b.js → dom-ba87b185.js} +1 -1
  4. package/dist/cjs/{index-8402028a.js → index-d47fa3c0.js} +88 -72
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/loader.cjs.js +5 -5
  7. package/dist/cjs/road-accordion.cjs.entry.js +3 -3
  8. package/dist/cjs/road-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/road-autocomplete.cjs.entry.js +13 -19
  10. package/dist/cjs/road-avatar.cjs.entry.js +3 -3
  11. package/dist/cjs/road-badge_11.cjs.entry.js +23 -23
  12. package/dist/cjs/road-card.cjs.entry.js +4 -4
  13. package/dist/cjs/road-carousel-item.cjs.entry.js +2 -2
  14. package/dist/cjs/road-carousel.cjs.entry.js +3 -3
  15. package/dist/cjs/road-checkbox.cjs.entry.js +3 -3
  16. package/dist/cjs/road-chip.cjs.entry.js +2 -2
  17. package/dist/cjs/road-collapse.cjs.entry.js +3 -3
  18. package/dist/cjs/road-counter.cjs.entry.js +3 -3
  19. package/dist/cjs/road-dialog.cjs.entry.js +3 -3
  20. package/dist/cjs/road-dropdown.cjs.entry.js +29 -0
  21. package/dist/cjs/road-flap.cjs.entry.js +3 -3
  22. package/dist/cjs/road-img.cjs.entry.js +2 -2
  23. package/dist/cjs/road-input-group.cjs.entry.js +13 -4
  24. package/dist/cjs/road-input.cjs.entry.js +25 -3
  25. package/dist/cjs/road-modal.cjs.entry.js +3 -3
  26. package/dist/cjs/road-navbar-item.cjs.entry.js +3 -3
  27. package/dist/cjs/road-navbar.cjs.entry.js +3 -3
  28. package/dist/cjs/road-plate-number.cjs.entry.js +8 -5
  29. package/dist/cjs/road-progress.cjs.entry.js +2 -2
  30. package/dist/cjs/road-radio-group.cjs.entry.js +3 -3
  31. package/dist/cjs/road-radio.cjs.entry.js +3 -3
  32. package/dist/cjs/road-range.cjs.entry.js +3 -3
  33. package/dist/cjs/road-rating.cjs.entry.js +3 -3
  34. package/dist/cjs/road-select-filter.cjs.entry.js +1847 -0
  35. package/dist/cjs/road-select.cjs.entry.js +3 -3
  36. package/dist/cjs/road-skeleton.cjs.entry.js +4 -4
  37. package/dist/cjs/road-spinner.cjs.entry.js +4 -4
  38. package/dist/cjs/road-switch.cjs.entry.js +3 -3
  39. package/dist/cjs/road-tab-bar.cjs.entry.js +2 -2
  40. package/dist/cjs/road-tab-button.cjs.entry.js +3 -3
  41. package/dist/cjs/road-tab.cjs.entry.js +2 -2
  42. package/dist/cjs/road-table.cjs.entry.js +3 -3
  43. package/dist/cjs/road-tabs.cjs.entry.js +2 -2
  44. package/dist/cjs/road-text.cjs.entry.js +2 -2
  45. package/dist/cjs/road-textarea.cjs.entry.js +3 -3
  46. package/dist/cjs/road-toast.cjs.entry.js +3 -3
  47. package/dist/cjs/road-toolbar-title.cjs.entry.js +3 -3
  48. package/dist/cjs/road-tooltip.cjs.entry.js +2 -2
  49. package/dist/cjs/roadtrip.cjs.js +5 -5
  50. package/dist/cjs/{shadow-css-09555044.js → shadow-css-7fb0b43f.js} +9 -10
  51. package/dist/cjs/{utils-07e0a826.js → utils-ade59127.js} +1 -1
  52. package/dist/collection/collection-manifest.json +4 -2
  53. package/dist/collection/components/accordion/accordion.css +14 -6
  54. package/dist/collection/components/alert/alert.css +10 -16
  55. package/dist/collection/components/autocomplete/autocomplete.css +14 -7
  56. package/dist/collection/components/autocomplete/autocomplete.js +28 -44
  57. package/dist/collection/components/autocomplete/autocomplete.stories.js +28 -83
  58. package/dist/collection/components/avatar/avatar.css +18 -0
  59. package/dist/collection/components/avatar/avatar.js +2 -3
  60. package/dist/collection/components/badge/badge.css +9 -10
  61. package/dist/collection/components/button/button.css +31 -33
  62. package/dist/collection/components/button/button.stories.js +11 -4
  63. package/dist/collection/components/card/card.css +13 -8
  64. package/dist/collection/components/card/card.js +2 -2
  65. package/dist/collection/components/carousel/carousel.css +23 -4
  66. package/dist/collection/components/carousel/carousel.js +22 -22
  67. package/dist/collection/components/carousel-item/carousel-item.css +14 -0
  68. package/dist/collection/components/checkbox/checkbox.css +5 -5
  69. package/dist/collection/components/chip/chip.css +11 -1
  70. package/dist/collection/components/col/col.css +120 -120
  71. package/dist/collection/components/col/col.js +2 -3
  72. package/dist/collection/components/collapse/collapse.css +3 -2
  73. package/dist/collection/components/counter/counter.css +0 -1
  74. package/dist/collection/components/counter/counter.js +5 -6
  75. package/dist/collection/components/dialog/dialog.css +15 -15
  76. package/dist/collection/components/drawer/drawer.dark.css +29 -26
  77. package/dist/collection/components/drawer/drawer.js +4 -3
  78. package/dist/collection/components/drawer/drawer.light.css +29 -26
  79. package/dist/collection/components/drawer/drawer.stories.js +39 -14
  80. package/dist/collection/components/dropdown/dropdown.css +63 -0
  81. package/dist/collection/components/dropdown/dropdown.js +54 -0
  82. package/dist/collection/components/dropdown/dropdown.stories.js +51 -0
  83. package/dist/collection/components/flap/flap.css +19 -0
  84. package/dist/collection/components/flap/flap.js +2 -2
  85. package/dist/collection/components/flap/flap.stories.js +25 -32
  86. package/dist/collection/components/grid/grid.css +0 -1
  87. package/dist/collection/components/grid/grid.js +2 -3
  88. package/dist/collection/components/grid/grid.stories.js +6 -2
  89. package/dist/collection/components/icon/icon.css +12 -3
  90. package/dist/collection/components/icon/icon.js +1 -1
  91. package/dist/collection/components/icon/svg/app.svg +1 -1
  92. package/dist/collection/components/icon/svg/archive-outline-color.svg +1 -0
  93. package/dist/collection/components/icon/svg/archive-outline.svg +1 -0
  94. package/dist/collection/components/icon/svg/archive.svg +1 -0
  95. package/dist/collection/components/icon/svg/axle-support-color.svg +1 -0
  96. package/dist/collection/components/icon/svg/axle-support.svg +1 -1
  97. package/dist/collection/components/icon/svg/brake-color.svg +1 -1
  98. package/dist/collection/components/icon/svg/brake-outline-color.svg +1 -1
  99. package/dist/collection/components/icon/svg/brake-outline.svg +1 -1
  100. package/dist/collection/components/icon/svg/brake-pad-color.svg +1 -0
  101. package/dist/collection/components/icon/svg/brake-pad.svg +1 -1
  102. package/dist/collection/components/icon/svg/brake.svg +1 -1
  103. package/dist/collection/components/icon/svg/cable-color.svg +1 -0
  104. package/dist/collection/components/icon/svg/cable.svg +1 -1
  105. package/dist/collection/components/icon/svg/coolbox-color.svg +1 -0
  106. package/dist/collection/components/icon/svg/coolbox.svg +1 -0
  107. package/dist/collection/components/icon/svg/data-bar-color.svg +1 -0
  108. package/dist/collection/components/icon/svg/data-bar.svg +1 -0
  109. package/dist/collection/components/icon/svg/data-tech-outline-color.svg +1 -0
  110. package/dist/collection/components/icon/svg/data-tech-outline.svg +1 -0
  111. package/dist/collection/components/icon/svg/data-tech.svg +1 -0
  112. package/dist/collection/components/icon/svg/fuse-color.svg +1 -0
  113. package/dist/collection/components/icon/svg/location-pin-all-outline-color.svg +1 -0
  114. package/dist/collection/components/icon/svg/location-pin-all-outline.svg +1 -0
  115. package/dist/collection/components/icon/svg/location-pin-all.svg +1 -1
  116. package/dist/collection/components/icon/svg/navigation-app.svg +1 -0
  117. package/dist/collection/components/icon/svg/people-home-outline-color.svg +1 -0
  118. package/dist/collection/components/icon/svg/people-home-outline.svg +1 -0
  119. package/dist/collection/components/icon/svg/people-home.svg +1 -0
  120. package/dist/collection/components/icon/svg/player-dvd-color.svg +1 -0
  121. package/dist/collection/components/icon/svg/player-dvd.svg +1 -1
  122. package/dist/collection/components/icon/svg/player-radio-outline-color.svg +1 -0
  123. package/dist/collection/components/icon/svg/player-radio-outline.svg +1 -1
  124. package/dist/collection/components/icon/svg/player-radio.svg +1 -1
  125. package/dist/collection/components/icon/svg/player-touchscreen-color.svg +1 -0
  126. package/dist/collection/components/icon/svg/player-touchscreen-motorized-color.svg +1 -0
  127. package/dist/collection/components/icon/svg/player-touchscreen-motorized.svg +1 -0
  128. package/dist/collection/components/icon/svg/player-touchscreen.svg +1 -0
  129. package/dist/collection/components/icon/svg/secure-back-door-lock-color.svg +1 -0
  130. package/dist/collection/components/icon/svg/secure-back-door-lock.svg +1 -0
  131. package/dist/collection/components/icon/svg/secure-cable-color.svg +1 -0
  132. package/dist/collection/components/icon/svg/secure-cable-lock-color.svg +1 -0
  133. package/dist/collection/components/icon/svg/secure-cable-lock.svg +1 -0
  134. package/dist/collection/components/icon/svg/secure-cable.svg +1 -0
  135. package/dist/collection/components/icon/svg/secure-chain-color.svg +1 -0
  136. package/dist/collection/components/icon/svg/secure-chain.svg +1 -0
  137. package/dist/collection/components/icon/svg/secure-cuff-lock-color.svg +1 -0
  138. package/dist/collection/components/icon/svg/secure-cuff-lock.svg +1 -0
  139. package/dist/collection/components/icon/svg/secure-disk-lock-color.svg +1 -0
  140. package/dist/collection/components/icon/svg/secure-disk-lock.svg +1 -0
  141. package/dist/collection/components/icon/svg/secure-folding-lock-color.svg +1 -0
  142. package/dist/collection/components/icon/svg/secure-folding-lock.svg +1 -0
  143. package/dist/collection/components/icon/svg/secure-frame-lock-color.svg +1 -0
  144. package/dist/collection/components/icon/svg/secure-frame-lock.svg +1 -0
  145. package/dist/collection/components/icon/svg/secure-gearbox-color.svg +1 -0
  146. package/dist/collection/components/icon/svg/secure-gearbox.svg +1 -0
  147. package/dist/collection/components/icon/svg/secure-level-first-color.svg +1 -0
  148. package/dist/collection/components/icon/svg/secure-level-first.svg +1 -0
  149. package/dist/collection/components/icon/svg/secure-level-hours-color.svg +1 -0
  150. package/dist/collection/components/icon/svg/secure-level-hours.svg +1 -0
  151. package/dist/collection/components/icon/svg/secure-level-minute-color.svg +1 -0
  152. package/dist/collection/components/icon/svg/secure-level-minute.svg +1 -0
  153. package/dist/collection/components/icon/svg/secure-level-night-and-day-color.svg +1 -0
  154. package/dist/collection/components/icon/svg/secure-level-night-and-day.svg +1 -0
  155. package/dist/collection/components/icon/svg/secure-level-second-color.svg +1 -0
  156. package/dist/collection/components/icon/svg/secure-level-second.svg +1 -0
  157. package/dist/collection/components/icon/svg/secure-level-third-color.svg +1 -0
  158. package/dist/collection/components/icon/svg/secure-level-third.svg +1 -0
  159. package/dist/collection/components/icon/svg/secure-lock-color.svg +1 -0
  160. package/dist/collection/components/icon/svg/secure-lock-open-color.svg +1 -0
  161. package/dist/collection/components/icon/svg/secure-lock-open.svg +1 -0
  162. package/dist/collection/components/icon/svg/secure-lock.svg +1 -0
  163. package/dist/collection/components/icon/svg/secure-pedal-color.svg +1 -0
  164. package/dist/collection/components/icon/svg/secure-pedal.svg +1 -0
  165. package/dist/collection/components/icon/svg/secure-steering-color.svg +1 -0
  166. package/dist/collection/components/icon/svg/secure-steering-dashboard-color.svg +1 -0
  167. package/dist/collection/components/icon/svg/secure-steering-dashboard.svg +1 -0
  168. package/dist/collection/components/icon/svg/secure-steering-pedal-color.svg +1 -0
  169. package/dist/collection/components/icon/svg/secure-steering-pedal.svg +1 -0
  170. package/dist/collection/components/icon/svg/secure-steering.svg +1 -0
  171. package/dist/collection/components/icon/svg/secure-u-lock-color.svg +1 -0
  172. package/dist/collection/components/icon/svg/secure-u-lock.svg +1 -0
  173. package/dist/collection/components/icon/svg/secure-wheel-color.svg +1 -0
  174. package/dist/collection/components/icon/svg/secure-wheel.svg +1 -0
  175. package/dist/collection/components/icon/svg/security-belt-outline-color.svg +1 -0
  176. package/dist/collection/components/icon/svg/security-belt-outline.svg +1 -0
  177. package/dist/collection/components/icon/svg/security-belt.svg +1 -1
  178. package/dist/collection/components/icon/svg/sensor-color.svg +1 -0
  179. package/dist/collection/components/icon/svg/sensor.svg +1 -1
  180. package/dist/collection/components/icon/svg/shipping-outline-color.svg +1 -0
  181. package/dist/collection/components/icon/svg/shipping-outline.svg +1 -0
  182. package/dist/collection/components/icon/svg/shipping.svg +1 -1
  183. package/dist/collection/components/icon/svg/star-half.svg +1 -0
  184. package/dist/collection/components/icon/svg/steering-control-color.svg +1 -1
  185. package/dist/collection/components/icon/svg/steering-control-flat-color.svg +1 -0
  186. package/dist/collection/components/icon/svg/steering-control-flat.svg +1 -0
  187. package/dist/collection/components/icon/svg/steering-control-four-spoke-color.svg +1 -0
  188. package/dist/collection/components/icon/svg/steering-control-four-spoke.svg +1 -0
  189. package/dist/collection/components/icon/svg/steering-control.svg +1 -1
  190. package/dist/collection/components/icon/svg/timer-hourglass-outline-color.svg +1 -0
  191. package/dist/collection/components/icon/svg/timer-hourglass-outline.svg +1 -0
  192. package/dist/collection/components/icon/svg/timer-hourglass.svg +1 -0
  193. package/dist/collection/components/icon/svg/travel-backpack-color.svg +1 -0
  194. package/dist/collection/components/icon/svg/travel-backpack.svg +1 -0
  195. package/dist/collection/components/icon/svg/travel-bag-color.svg +1 -0
  196. package/dist/collection/components/icon/svg/travel-bag.svg +1 -1
  197. package/dist/collection/components/icon/svg/travel-briefcase-color.svg +1 -0
  198. package/dist/collection/components/icon/svg/travel-briefcase.svg +1 -0
  199. package/dist/collection/components/icon/svg/travel-rolling-suitcase-color.svg +1 -0
  200. package/dist/collection/components/icon/svg/travel-rolling-suitcase.svg +1 -0
  201. package/dist/collection/components/icon/svg/travel-suitcase-color.svg +1 -0
  202. package/dist/collection/components/icon/svg/travel-suitcase.svg +1 -1
  203. package/dist/collection/components/icon/svg/vehicle-bus-outline.svg +1 -0
  204. package/dist/collection/components/icon/svg/vehicle-bus.svg +1 -1
  205. package/dist/collection/components/icon/svg/vehicle-car-bodywork-outline-color.svg +1 -0
  206. package/dist/collection/components/icon/svg/vehicle-car-bodywork-outline.svg +1 -0
  207. package/dist/collection/components/icon/svg/vehicle-car-bodywork.svg +1 -1
  208. package/dist/collection/components/icon/svg/vehicle-delevery-outline.svg +1 -0
  209. package/dist/collection/components/icon/svg/vehicle-delevery-van.svg +1 -1
  210. package/dist/collection/components/icon/svg/vehicle-delevery.svg +1 -1
  211. package/dist/collection/components/icon/svg/vehicle-pickup-van-outline.svg +1 -0
  212. package/dist/collection/components/icon/svg/vehicle-pickup-van.svg +1 -1
  213. package/dist/collection/components/icon/svg/vehicle-van-outline.svg +1 -0
  214. package/dist/collection/components/icon/svg/vehicle-van.svg +1 -1
  215. package/dist/collection/components/icon/svg/wheel-hub-cap-color.svg +1 -0
  216. package/dist/collection/components/icon/svg/wheel-hub-cap-outline.svg +1 -0
  217. package/dist/collection/components/icon/svg/wheel-hub-cap.svg +1 -0
  218. package/dist/collection/components/icon/svg/wheel-rim-color.svg +1 -0
  219. package/dist/collection/components/icon/svg/wheel-rim-double-spoke-outline-color.svg +1 -0
  220. package/dist/collection/components/icon/svg/wheel-rim-double-spoke-outline.svg +1 -0
  221. package/dist/collection/components/icon/svg/wheel-rim-double-spoke.svg +1 -0
  222. package/dist/collection/components/icon/svg/wheel-rim-honeycomb-outline-color.svg +1 -0
  223. package/dist/collection/components/icon/svg/wheel-rim-honeycomb-outline.svg +1 -0
  224. package/dist/collection/components/icon/svg/wheel-rim-honeycomb.svg +1 -0
  225. package/dist/collection/components/icon/svg/wheel-rim-multi-spoke-outline-color.svg +1 -0
  226. package/dist/collection/components/icon/svg/wheel-rim-multi-spoke-outline.svg +1 -0
  227. package/dist/collection/components/icon/svg/wheel-rim-multi-spoke.svg +1 -0
  228. package/dist/collection/components/icon/svg/wheel-rim-outline.svg +1 -0
  229. package/dist/collection/components/icon/svg/wheel-rim.svg +1 -0
  230. package/dist/collection/components/icon/svg/windscreen-wiper-color.svg +1 -1
  231. package/dist/collection/components/icon/svg/windscreen-wiper.svg +1 -1
  232. package/dist/collection/components/icon/svg/windscreen-wipers-color.svg +1 -1
  233. package/dist/collection/components/icon/svg/windscreen-wipers-left-color.svg +1 -1
  234. package/dist/collection/components/icon/svg/windscreen-wipers-left.svg +1 -1
  235. package/dist/collection/components/icon/svg/windscreen-wipers-right-color.svg +1 -1
  236. package/dist/collection/components/icon/svg/windscreen-wipers-right.svg +1 -1
  237. package/dist/collection/components/icon/svg/windscreen-wipers.svg +1 -1
  238. package/dist/collection/components/icon/svg/work-order-awaiting-approval-color.svg +1 -0
  239. package/dist/collection/components/icon/svg/work-order-awaiting-approval-outline.svg +1 -0
  240. package/dist/collection/components/icon/svg/work-order-awaiting-approval.svg +1 -0
  241. package/dist/collection/components/icon/svg/work-order-check-outline-color.svg +1 -0
  242. package/dist/collection/components/icon/svg/work-order-check-outline.svg +1 -0
  243. package/dist/collection/components/icon/svg/work-order-check.svg +1 -0
  244. package/dist/collection/components/icon/svg/work-order-diagnostic-outline-color.svg +1 -0
  245. package/dist/collection/components/icon/svg/work-order-diagnostic-outline.svg +1 -0
  246. package/dist/collection/components/icon/svg/work-order-diagnostic.svg +1 -0
  247. package/dist/collection/components/icon/svg/work-order-pass-maintain-color.svg +1 -0
  248. package/dist/collection/components/icon/svg/work-order-pass-maintain.svg +1 -0
  249. package/dist/collection/components/icon/svg/work-order-view-outline-color.svg +1 -0
  250. package/dist/collection/components/icon/svg/work-order-view-outline.svg +1 -0
  251. package/dist/collection/components/icon/svg/work-order-view.svg +1 -0
  252. package/dist/collection/components/icon/svg/work-order-wait-check-outline-color.svg +1 -0
  253. package/dist/collection/components/icon/svg/work-order-wait-check-outline.svg +1 -0
  254. package/dist/collection/components/icon/svg/work-order-wait-check.svg +1 -0
  255. package/dist/collection/components/icon/svg/zoom-in-color.svg +1 -0
  256. package/dist/collection/components/icon/svg/zoom-in.svg +1 -0
  257. package/dist/collection/components/icon/svg/zoom-out-color.svg +1 -0
  258. package/dist/collection/components/icon/svg/zoom-out.svg +1 -0
  259. package/dist/collection/components/img/img.css +2 -3
  260. package/dist/collection/components/input/input.css +5 -14
  261. package/dist/collection/components/input/input.js +42 -0
  262. package/dist/collection/components/input/input.stories.js +4 -0
  263. package/dist/collection/components/input-group/input-group.css +47 -50
  264. package/dist/collection/components/input-group/input-group.js +11 -2
  265. package/dist/collection/components/input-group/input-group.stories.js +19 -1
  266. package/dist/collection/components/item/item.css +14 -15
  267. package/dist/collection/components/label/label.css +5 -0
  268. package/dist/collection/components/label/label.js +2 -3
  269. package/dist/collection/components/list/list.css +5 -3
  270. package/dist/collection/components/modal/modal.css +11 -11
  271. package/dist/collection/components/navbar/navbar.css +0 -1
  272. package/dist/collection/components/navbar/navbar.js +2 -2
  273. package/dist/collection/components/navbar/navbar.stories.js +4 -1
  274. package/dist/collection/components/navbar-item/navbar-item.css +8 -11
  275. package/dist/collection/components/navbar-item/navbar-item.js +2 -2
  276. package/dist/collection/components/plate-number/plate-number.css +41 -7
  277. package/dist/collection/components/plate-number/plate-number.js +28 -7
  278. package/dist/collection/components/plate-number/plate-number.stories.js +13 -0
  279. package/dist/collection/components/progress/progress.css +2 -2
  280. package/dist/collection/components/radio/radio.css +5 -5
  281. package/dist/collection/components/radio/radio.stories.js +4 -1
  282. package/dist/collection/components/radio-group/radio-group.css +22 -3
  283. package/dist/collection/components/range/range.css +1 -2
  284. package/dist/collection/components/range/range.js +5 -6
  285. package/dist/collection/components/rating/rating.css +19 -1
  286. package/dist/collection/components/select/select.css +4 -9
  287. package/dist/collection/components/select-filter/select-filter.css +53 -0
  288. package/dist/collection/components/select-filter/select-filter.js +165 -0
  289. package/dist/collection/components/select-filter/select-filter.stories.js +133 -0
  290. package/dist/collection/components/skeleton/skeleton.css +4 -5
  291. package/dist/collection/components/skeleton/skeleton.js +2 -3
  292. package/dist/collection/components/spinner/spinner.css +8 -9
  293. package/dist/collection/components/spinner/spinner.js +3 -4
  294. package/dist/collection/components/switch/switch.css +10 -10
  295. package/dist/collection/components/tab/tab.js +2 -2
  296. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  297. package/dist/collection/components/tab-button/tab-button.css +14 -15
  298. package/dist/collection/components/tab-button/tab-button.js +2 -2
  299. package/dist/collection/components/table/table.css +1 -0
  300. package/dist/collection/components/table/table.js +2 -3
  301. package/dist/collection/components/tabs/tabs.css +5 -0
  302. package/dist/collection/components/tabs/tabs.js +4 -4
  303. package/dist/collection/components/tabs/tabs.stories.js +12 -7
  304. package/dist/collection/components/text/text.css +52 -1
  305. package/dist/collection/components/textarea/textarea.css +5 -14
  306. package/dist/collection/components/toast/toast.css +8 -8
  307. package/dist/collection/components/toolbar/toolbar.css +8 -9
  308. package/dist/collection/components/toolbar/toolbar.stories.js +4 -1
  309. package/dist/collection/components/toolbar-title/toolbar-title.css +5 -0
  310. package/dist/collection/components/toolbar-title/toolbar-title.js +3 -4
  311. package/dist/collection/components/tooltip/tooltip.css +16 -5
  312. package/dist/esm/{app-7b5384c5.js → app-6a43d362.js} +1 -1
  313. package/dist/esm/{css-shim-a7f418e3.js → css-shim-aea0f6cc.js} +1 -1
  314. package/dist/esm/{dom-1f98a75f.js → dom-c7604576.js} +1 -1
  315. package/dist/esm/{index-42b74371.js → index-4e5ea092.js} +88 -72
  316. package/dist/esm/index.js +2 -2
  317. package/dist/esm/loader.js +5 -5
  318. package/dist/esm/road-accordion.entry.js +3 -3
  319. package/dist/esm/road-alert.entry.js +2 -2
  320. package/dist/esm/road-autocomplete.entry.js +13 -19
  321. package/dist/esm/road-avatar.entry.js +3 -3
  322. package/dist/esm/road-badge_11.entry.js +23 -23
  323. package/dist/esm/road-card.entry.js +4 -4
  324. package/dist/esm/road-carousel-item.entry.js +2 -2
  325. package/dist/esm/road-carousel.entry.js +3 -3
  326. package/dist/esm/road-checkbox.entry.js +3 -3
  327. package/dist/esm/road-chip.entry.js +2 -2
  328. package/dist/esm/road-collapse.entry.js +3 -3
  329. package/dist/esm/road-counter.entry.js +3 -3
  330. package/dist/esm/road-dialog.entry.js +3 -3
  331. package/dist/esm/road-dropdown.entry.js +25 -0
  332. package/dist/esm/road-flap.entry.js +3 -3
  333. package/dist/esm/road-img.entry.js +2 -2
  334. package/dist/esm/road-input-group.entry.js +13 -4
  335. package/dist/esm/road-input.entry.js +25 -3
  336. package/dist/esm/road-modal.entry.js +3 -3
  337. package/dist/esm/road-navbar-item.entry.js +3 -3
  338. package/dist/esm/road-navbar.entry.js +3 -3
  339. package/dist/esm/road-plate-number.entry.js +8 -5
  340. package/dist/esm/road-progress.entry.js +2 -2
  341. package/dist/esm/road-radio-group.entry.js +3 -3
  342. package/dist/esm/road-radio.entry.js +3 -3
  343. package/dist/esm/road-range.entry.js +3 -3
  344. package/dist/esm/road-rating.entry.js +3 -3
  345. package/dist/esm/road-select-filter.entry.js +1843 -0
  346. package/dist/esm/road-select.entry.js +3 -3
  347. package/dist/esm/road-skeleton.entry.js +4 -4
  348. package/dist/esm/road-spinner.entry.js +4 -4
  349. package/dist/esm/road-switch.entry.js +3 -3
  350. package/dist/esm/road-tab-bar.entry.js +2 -2
  351. package/dist/esm/road-tab-button.entry.js +3 -3
  352. package/dist/esm/road-tab.entry.js +2 -2
  353. package/dist/esm/road-table.entry.js +3 -3
  354. package/dist/esm/road-tabs.entry.js +2 -2
  355. package/dist/esm/road-text.entry.js +2 -2
  356. package/dist/esm/road-textarea.entry.js +3 -3
  357. package/dist/esm/road-toast.entry.js +3 -3
  358. package/dist/esm/road-toolbar-title.entry.js +3 -3
  359. package/dist/esm/road-tooltip.entry.js +2 -2
  360. package/dist/esm/roadtrip.js +5 -5
  361. package/dist/esm/{shadow-css-67b66845.js → shadow-css-83bb1d14.js} +9 -10
  362. package/dist/esm/{utils-cf12c226.js → utils-23aa19c1.js} +1 -1
  363. package/dist/esm-es5/app-6a43d362.js +1 -0
  364. package/dist/esm-es5/{css-shim-a7f418e3.js → css-shim-aea0f6cc.js} +0 -0
  365. package/dist/esm-es5/{dom-1f98a75f.js → dom-c7604576.js} +0 -0
  366. package/dist/esm-es5/index-4e5ea092.js +1 -0
  367. package/dist/esm-es5/index.js +1 -1
  368. package/dist/esm-es5/loader.js +1 -1
  369. package/dist/esm-es5/road-accordion.entry.js +1 -1
  370. package/dist/esm-es5/road-alert.entry.js +1 -1
  371. package/dist/esm-es5/road-autocomplete.entry.js +1 -1
  372. package/dist/esm-es5/road-avatar.entry.js +1 -1
  373. package/dist/esm-es5/road-badge_11.entry.js +1 -1
  374. package/dist/esm-es5/road-card.entry.js +1 -1
  375. package/dist/esm-es5/road-carousel-item.entry.js +1 -1
  376. package/dist/esm-es5/road-carousel.entry.js +1 -1
  377. package/dist/esm-es5/road-checkbox.entry.js +1 -1
  378. package/dist/esm-es5/road-chip.entry.js +1 -1
  379. package/dist/esm-es5/road-collapse.entry.js +1 -1
  380. package/dist/esm-es5/road-counter.entry.js +1 -1
  381. package/dist/esm-es5/road-dialog.entry.js +1 -1
  382. package/dist/esm-es5/road-dropdown.entry.js +1 -0
  383. package/dist/esm-es5/road-flap.entry.js +1 -1
  384. package/dist/esm-es5/road-img.entry.js +1 -1
  385. package/dist/esm-es5/road-input-group.entry.js +1 -1
  386. package/dist/esm-es5/road-input.entry.js +1 -1
  387. package/dist/esm-es5/road-modal.entry.js +1 -1
  388. package/dist/esm-es5/road-navbar-item.entry.js +1 -1
  389. package/dist/esm-es5/road-navbar.entry.js +1 -1
  390. package/dist/esm-es5/road-plate-number.entry.js +1 -1
  391. package/dist/esm-es5/road-progress.entry.js +1 -1
  392. package/dist/esm-es5/road-radio-group.entry.js +1 -1
  393. package/dist/esm-es5/road-radio.entry.js +1 -1
  394. package/dist/esm-es5/road-range.entry.js +1 -1
  395. package/dist/esm-es5/road-rating.entry.js +1 -1
  396. package/dist/esm-es5/road-select-filter.entry.js +1 -0
  397. package/dist/esm-es5/road-select.entry.js +1 -1
  398. package/dist/esm-es5/road-skeleton.entry.js +1 -1
  399. package/dist/esm-es5/road-spinner.entry.js +1 -1
  400. package/dist/esm-es5/road-switch.entry.js +1 -1
  401. package/dist/esm-es5/road-tab-bar.entry.js +1 -1
  402. package/dist/esm-es5/road-tab-button.entry.js +1 -1
  403. package/dist/esm-es5/road-tab.entry.js +1 -1
  404. package/dist/esm-es5/road-table.entry.js +1 -1
  405. package/dist/esm-es5/road-tabs.entry.js +1 -1
  406. package/dist/esm-es5/road-text.entry.js +1 -1
  407. package/dist/esm-es5/road-textarea.entry.js +1 -1
  408. package/dist/esm-es5/road-toast.entry.js +1 -1
  409. package/dist/esm-es5/road-toolbar-title.entry.js +1 -1
  410. package/dist/esm-es5/road-tooltip.entry.js +1 -1
  411. package/dist/esm-es5/roadtrip.js +1 -1
  412. package/dist/esm-es5/shadow-css-83bb1d14.js +12 -0
  413. package/dist/esm-es5/{utils-cf12c226.js → utils-23aa19c1.js} +1 -1
  414. package/dist/html.html-data.json +54 -6
  415. package/dist/icons/icons.svg +1 -1
  416. package/dist/icons/index.d.ts +136 -3
  417. package/dist/icons/index.js +169 -36
  418. package/dist/loader/index.d.ts +0 -1
  419. package/dist/roadtrip/index.esm.js +1 -1
  420. package/dist/roadtrip/p-0205d149.entry.js +1 -0
  421. package/dist/roadtrip/{p-fb92eb91.system.entry.js → p-0245b436.system.entry.js} +1 -1
  422. package/dist/roadtrip/{p-2fbab6fe.system.js → p-05373846.system.js} +1 -1
  423. package/dist/roadtrip/p-06049c44.entry.js +1 -0
  424. package/dist/roadtrip/p-0626f8a2.system.entry.js +1 -0
  425. package/dist/roadtrip/{p-7f900814.system.entry.js → p-085aad0a.system.entry.js} +1 -1
  426. package/dist/roadtrip/p-0bc3262d.entry.js +1 -0
  427. package/dist/roadtrip/p-10cc8504.system.entry.js +1 -0
  428. package/dist/roadtrip/{p-40f0da52.js → p-112e8d3f.js} +0 -0
  429. package/dist/roadtrip/p-11db7868.system.entry.js +1 -0
  430. package/dist/roadtrip/{p-37c7c67a.system.entry.js → p-13b46f63.system.entry.js} +1 -1
  431. package/dist/roadtrip/p-17ed8237.entry.js +1 -0
  432. package/dist/roadtrip/p-1d83535a.entry.js +1 -0
  433. package/dist/roadtrip/p-25ea233f.system.entry.js +1 -0
  434. package/dist/roadtrip/{p-bd2c0a1b.system.js → p-2b0d3888.system.js} +1 -1
  435. package/dist/roadtrip/p-2cf6206e.system.entry.js +1 -0
  436. package/dist/roadtrip/p-2d8ba6be.entry.js +1 -0
  437. package/dist/roadtrip/p-356163fb.js +12 -0
  438. package/dist/roadtrip/p-36a7c233.system.js +1 -0
  439. package/dist/roadtrip/p-388a7f61.system.entry.js +1 -0
  440. package/dist/roadtrip/p-39dd9c7f.entry.js +1 -0
  441. package/dist/roadtrip/p-3c7147c6.system.entry.js +1 -0
  442. package/dist/roadtrip/p-3d2cf159.entry.js +1 -0
  443. package/dist/roadtrip/p-3e56faf1.entry.js +1 -0
  444. package/dist/roadtrip/{p-436ed9ba.system.entry.js → p-41aa7a41.system.entry.js} +1 -1
  445. package/dist/roadtrip/p-41bcd21c.system.entry.js +1 -0
  446. package/dist/roadtrip/p-43da88c6.system.entry.js +1 -0
  447. package/dist/roadtrip/p-45b87537.system.entry.js +1 -0
  448. package/dist/roadtrip/p-55c19c46.system.entry.js +1 -0
  449. package/dist/roadtrip/{p-29112092.system.entry.js → p-5cfcbccd.system.entry.js} +1 -1
  450. package/dist/roadtrip/p-628f5836.system.entry.js +1 -0
  451. package/dist/roadtrip/{p-df4a232f.system.entry.js → p-6688d8f8.system.entry.js} +1 -1
  452. package/dist/roadtrip/{p-ee0455c8.system.entry.js → p-694eee8e.system.entry.js} +1 -1
  453. package/dist/roadtrip/p-70d0fb28.entry.js +1 -0
  454. package/dist/roadtrip/{p-498ca42b.system.js → p-72b3db6d.system.js} +0 -0
  455. package/dist/roadtrip/{p-0f922d99.system.entry.js → p-78143a79.system.entry.js} +1 -1
  456. package/dist/roadtrip/{p-7a59ecb8.system.entry.js → p-790067ad.system.entry.js} +1 -1
  457. package/dist/roadtrip/p-79a745a7.entry.js +1 -0
  458. package/dist/roadtrip/p-8067c254.system.entry.js +1 -0
  459. package/dist/roadtrip/p-82d3347b.entry.js +1 -0
  460. package/dist/roadtrip/p-8374797d.entry.js +1 -0
  461. package/dist/roadtrip/{p-62c3be42.system.entry.js → p-84578822.system.entry.js} +1 -1
  462. package/dist/roadtrip/p-85aa4543.system.entry.js +1 -0
  463. package/dist/roadtrip/{p-dbe056ce.system.js → p-8649dccc.system.js} +0 -0
  464. package/dist/roadtrip/p-88179272.entry.js +1 -0
  465. package/dist/roadtrip/p-89fb8799.entry.js +1 -0
  466. package/dist/roadtrip/p-8a9626cc.entry.js +1 -0
  467. package/dist/roadtrip/p-8b445fbd.entry.js +1 -0
  468. package/dist/roadtrip/{p-e558ebfb.js → p-8cb74e64.js} +1 -1
  469. package/dist/roadtrip/p-8fc0f477.system.entry.js +1 -0
  470. package/dist/roadtrip/p-9233dfbe.entry.js +1 -0
  471. package/dist/roadtrip/p-923c9893.entry.js +1 -0
  472. package/dist/roadtrip/p-95dd1ee4.system.entry.js +1 -0
  473. package/dist/roadtrip/p-9846103f.entry.js +1 -0
  474. package/dist/roadtrip/p-9b04e0cb.system.entry.js +1 -0
  475. package/dist/roadtrip/p-9bbeb646.entry.js +1 -0
  476. package/dist/roadtrip/p-9d3921a8.system.js +1 -0
  477. package/dist/roadtrip/p-a082797b.entry.js +1 -0
  478. package/dist/roadtrip/{p-7103b86e.system.entry.js → p-a1f59f11.system.entry.js} +1 -1
  479. package/dist/roadtrip/p-a567cedb.entry.js +1 -0
  480. package/dist/roadtrip/p-a671df87.entry.js +1 -0
  481. package/dist/roadtrip/p-a6827ec2.entry.js +1 -0
  482. package/dist/roadtrip/{p-518b69d3.system.entry.js → p-aa63d5e9.system.entry.js} +1 -1
  483. package/dist/roadtrip/p-acc76968.entry.js +1 -0
  484. package/dist/roadtrip/p-ad3b839e.entry.js +1 -0
  485. package/dist/roadtrip/{p-69599f4e.js → p-ad4a83f1.js} +0 -0
  486. package/dist/roadtrip/p-adfa74db.entry.js +1 -0
  487. package/dist/roadtrip/p-b1a05290.system.entry.js +1 -0
  488. package/dist/roadtrip/{p-0114b277.system.entry.js → p-b6ea7ba9.system.entry.js} +1 -1
  489. package/dist/roadtrip/{p-420fd82a.system.js → p-b862fe1a.system.js} +1 -1
  490. package/dist/roadtrip/p-bc8a92cf.system.entry.js +1 -0
  491. package/dist/roadtrip/p-be0b7289.entry.js +1 -0
  492. package/dist/roadtrip/p-c6b70e6f.js +1 -0
  493. package/dist/roadtrip/p-c7895d95.system.js +13 -0
  494. package/dist/roadtrip/p-c873409a.system.entry.js +1 -0
  495. package/dist/roadtrip/p-c94f70de.entry.js +1 -0
  496. package/dist/roadtrip/p-c9b37cd7.entry.js +1 -0
  497. package/dist/roadtrip/p-cb2bebde.entry.js +1 -0
  498. package/dist/roadtrip/p-cedaf396.system.entry.js +1 -0
  499. package/dist/roadtrip/p-d0a42614.entry.js +1 -0
  500. package/dist/roadtrip/{p-9c8ddf01.js → p-d11931f0.js} +1 -1
  501. package/dist/roadtrip/p-d39f805b.entry.js +1 -0
  502. package/dist/roadtrip/{p-990f2104.system.entry.js → p-d3e3af9e.system.entry.js} +1 -1
  503. package/dist/roadtrip/p-d5da11ca.system.entry.js +1 -0
  504. package/dist/roadtrip/p-da3ea4e5.entry.js +1 -0
  505. package/dist/roadtrip/p-dad9d770.entry.js +1 -0
  506. package/dist/roadtrip/{p-680a8005.system.entry.js → p-e5eda362.system.entry.js} +1 -1
  507. package/dist/roadtrip/p-e719a34e.entry.js +1 -0
  508. package/dist/roadtrip/p-f0704f07.system.entry.js +1 -0
  509. package/dist/roadtrip/p-f10872aa.entry.js +1 -0
  510. package/dist/roadtrip/p-f62ebe3f.system.entry.js +1 -0
  511. package/dist/roadtrip/p-f6d6d227.entry.js +1 -0
  512. package/dist/roadtrip/{p-fe5c5fd9.system.entry.js → p-f907849c.system.entry.js} +1 -1
  513. package/dist/roadtrip/p-f95a155f.entry.js +1 -0
  514. package/dist/roadtrip/p-fe45a922.entry.js +1 -0
  515. package/dist/roadtrip/p-fe70fb94.system.entry.js +1 -0
  516. package/dist/roadtrip/p-ffacdd19.entry.js +1 -0
  517. package/dist/roadtrip/{p-ba78dff5.system.entry.js → p-ffd2a5c1.system.entry.js} +1 -1
  518. package/dist/roadtrip/roadtrip.css +1 -1
  519. package/dist/roadtrip/roadtrip.esm.js +1 -1
  520. package/dist/roadtrip/roadtrip.js +1 -1
  521. package/dist/roadtrip/svg/app.svg +1 -1
  522. package/dist/roadtrip/svg/archive-outline-color.svg +1 -0
  523. package/dist/roadtrip/svg/archive-outline.svg +1 -0
  524. package/dist/roadtrip/svg/archive.svg +1 -0
  525. package/dist/roadtrip/svg/axle-support-color.svg +1 -0
  526. package/dist/roadtrip/svg/axle-support.svg +1 -1
  527. package/dist/roadtrip/svg/brake-color.svg +1 -1
  528. package/dist/roadtrip/svg/brake-outline-color.svg +1 -1
  529. package/dist/roadtrip/svg/brake-outline.svg +1 -1
  530. package/dist/roadtrip/svg/brake-pad-color.svg +1 -0
  531. package/dist/roadtrip/svg/brake-pad.svg +1 -1
  532. package/dist/roadtrip/svg/brake.svg +1 -1
  533. package/dist/roadtrip/svg/cable-color.svg +1 -0
  534. package/dist/roadtrip/svg/cable.svg +1 -1
  535. package/dist/roadtrip/svg/coolbox-color.svg +1 -0
  536. package/dist/roadtrip/svg/coolbox.svg +1 -0
  537. package/dist/roadtrip/svg/data-bar-color.svg +1 -0
  538. package/dist/roadtrip/svg/data-bar.svg +1 -0
  539. package/dist/roadtrip/svg/data-tech-outline-color.svg +1 -0
  540. package/dist/roadtrip/svg/data-tech-outline.svg +1 -0
  541. package/dist/roadtrip/svg/data-tech.svg +1 -0
  542. package/dist/roadtrip/svg/fuse-color.svg +1 -0
  543. package/dist/roadtrip/svg/location-pin-all-outline-color.svg +1 -0
  544. package/dist/roadtrip/svg/location-pin-all-outline.svg +1 -0
  545. package/dist/roadtrip/svg/location-pin-all.svg +1 -1
  546. package/dist/roadtrip/svg/navigation-app.svg +1 -0
  547. package/dist/roadtrip/svg/people-home-outline-color.svg +1 -0
  548. package/dist/roadtrip/svg/people-home-outline.svg +1 -0
  549. package/dist/roadtrip/svg/people-home.svg +1 -0
  550. package/dist/roadtrip/svg/player-dvd-color.svg +1 -0
  551. package/dist/roadtrip/svg/player-dvd.svg +1 -1
  552. package/dist/roadtrip/svg/player-radio-outline-color.svg +1 -0
  553. package/dist/roadtrip/svg/player-radio-outline.svg +1 -1
  554. package/dist/roadtrip/svg/player-radio.svg +1 -1
  555. package/dist/roadtrip/svg/player-touchscreen-color.svg +1 -0
  556. package/dist/roadtrip/svg/player-touchscreen-motorized-color.svg +1 -0
  557. package/dist/roadtrip/svg/player-touchscreen-motorized.svg +1 -0
  558. package/dist/roadtrip/svg/player-touchscreen.svg +1 -0
  559. package/dist/roadtrip/svg/secure-back-door-lock-color.svg +1 -0
  560. package/dist/roadtrip/svg/secure-back-door-lock.svg +1 -0
  561. package/dist/roadtrip/svg/secure-cable-color.svg +1 -0
  562. package/dist/roadtrip/svg/secure-cable-lock-color.svg +1 -0
  563. package/dist/roadtrip/svg/secure-cable-lock.svg +1 -0
  564. package/dist/roadtrip/svg/secure-cable.svg +1 -0
  565. package/dist/roadtrip/svg/secure-chain-color.svg +1 -0
  566. package/dist/roadtrip/svg/secure-chain.svg +1 -0
  567. package/dist/roadtrip/svg/secure-cuff-lock-color.svg +1 -0
  568. package/dist/roadtrip/svg/secure-cuff-lock.svg +1 -0
  569. package/dist/roadtrip/svg/secure-disk-lock-color.svg +1 -0
  570. package/dist/roadtrip/svg/secure-disk-lock.svg +1 -0
  571. package/dist/roadtrip/svg/secure-folding-lock-color.svg +1 -0
  572. package/dist/roadtrip/svg/secure-folding-lock.svg +1 -0
  573. package/dist/roadtrip/svg/secure-frame-lock-color.svg +1 -0
  574. package/dist/roadtrip/svg/secure-frame-lock.svg +1 -0
  575. package/dist/roadtrip/svg/secure-gearbox-color.svg +1 -0
  576. package/dist/roadtrip/svg/secure-gearbox.svg +1 -0
  577. package/dist/roadtrip/svg/secure-level-first-color.svg +1 -0
  578. package/dist/roadtrip/svg/secure-level-first.svg +1 -0
  579. package/dist/roadtrip/svg/secure-level-hours-color.svg +1 -0
  580. package/dist/roadtrip/svg/secure-level-hours.svg +1 -0
  581. package/dist/roadtrip/svg/secure-level-minute-color.svg +1 -0
  582. package/dist/roadtrip/svg/secure-level-minute.svg +1 -0
  583. package/dist/roadtrip/svg/secure-level-night-and-day-color.svg +1 -0
  584. package/dist/roadtrip/svg/secure-level-night-and-day.svg +1 -0
  585. package/dist/roadtrip/svg/secure-level-second-color.svg +1 -0
  586. package/dist/roadtrip/svg/secure-level-second.svg +1 -0
  587. package/dist/roadtrip/svg/secure-level-third-color.svg +1 -0
  588. package/dist/roadtrip/svg/secure-level-third.svg +1 -0
  589. package/dist/roadtrip/svg/secure-lock-color.svg +1 -0
  590. package/dist/roadtrip/svg/secure-lock-open-color.svg +1 -0
  591. package/dist/roadtrip/svg/secure-lock-open.svg +1 -0
  592. package/dist/roadtrip/svg/secure-lock.svg +1 -0
  593. package/dist/roadtrip/svg/secure-pedal-color.svg +1 -0
  594. package/dist/roadtrip/svg/secure-pedal.svg +1 -0
  595. package/dist/roadtrip/svg/secure-steering-color.svg +1 -0
  596. package/dist/roadtrip/svg/secure-steering-dashboard-color.svg +1 -0
  597. package/dist/roadtrip/svg/secure-steering-dashboard.svg +1 -0
  598. package/dist/roadtrip/svg/secure-steering-pedal-color.svg +1 -0
  599. package/dist/roadtrip/svg/secure-steering-pedal.svg +1 -0
  600. package/dist/roadtrip/svg/secure-steering.svg +1 -0
  601. package/dist/roadtrip/svg/secure-u-lock-color.svg +1 -0
  602. package/dist/roadtrip/svg/secure-u-lock.svg +1 -0
  603. package/dist/roadtrip/svg/secure-wheel-color.svg +1 -0
  604. package/dist/roadtrip/svg/secure-wheel.svg +1 -0
  605. package/dist/roadtrip/svg/security-belt-outline-color.svg +1 -0
  606. package/dist/roadtrip/svg/security-belt-outline.svg +1 -0
  607. package/dist/roadtrip/svg/security-belt.svg +1 -1
  608. package/dist/roadtrip/svg/sensor-color.svg +1 -0
  609. package/dist/roadtrip/svg/sensor.svg +1 -1
  610. package/dist/roadtrip/svg/shipping-outline-color.svg +1 -0
  611. package/dist/roadtrip/svg/shipping-outline.svg +1 -0
  612. package/dist/roadtrip/svg/shipping.svg +1 -1
  613. package/dist/roadtrip/svg/star-half.svg +1 -0
  614. package/dist/roadtrip/svg/steering-control-color.svg +1 -1
  615. package/dist/roadtrip/svg/steering-control-flat-color.svg +1 -0
  616. package/dist/roadtrip/svg/steering-control-flat.svg +1 -0
  617. package/dist/roadtrip/svg/steering-control-four-spoke-color.svg +1 -0
  618. package/dist/roadtrip/svg/steering-control-four-spoke.svg +1 -0
  619. package/dist/roadtrip/svg/steering-control.svg +1 -1
  620. package/dist/roadtrip/svg/timer-hourglass-outline-color.svg +1 -0
  621. package/dist/roadtrip/svg/timer-hourglass-outline.svg +1 -0
  622. package/dist/roadtrip/svg/timer-hourglass.svg +1 -0
  623. package/dist/roadtrip/svg/travel-backpack-color.svg +1 -0
  624. package/dist/roadtrip/svg/travel-backpack.svg +1 -0
  625. package/dist/roadtrip/svg/travel-bag-color.svg +1 -0
  626. package/dist/roadtrip/svg/travel-bag.svg +1 -1
  627. package/dist/roadtrip/svg/travel-briefcase-color.svg +1 -0
  628. package/dist/roadtrip/svg/travel-briefcase.svg +1 -0
  629. package/dist/roadtrip/svg/travel-rolling-suitcase-color.svg +1 -0
  630. package/dist/roadtrip/svg/travel-rolling-suitcase.svg +1 -0
  631. package/dist/roadtrip/svg/travel-suitcase-color.svg +1 -0
  632. package/dist/roadtrip/svg/travel-suitcase.svg +1 -1
  633. package/dist/roadtrip/svg/vehicle-bus-outline.svg +1 -0
  634. package/dist/roadtrip/svg/vehicle-bus.svg +1 -1
  635. package/dist/roadtrip/svg/vehicle-car-bodywork-outline-color.svg +1 -0
  636. package/dist/roadtrip/svg/vehicle-car-bodywork-outline.svg +1 -0
  637. package/dist/roadtrip/svg/vehicle-car-bodywork.svg +1 -1
  638. package/dist/roadtrip/svg/vehicle-delevery-outline.svg +1 -0
  639. package/dist/roadtrip/svg/vehicle-delevery-van.svg +1 -1
  640. package/dist/roadtrip/svg/vehicle-delevery.svg +1 -1
  641. package/dist/roadtrip/svg/vehicle-pickup-van-outline.svg +1 -0
  642. package/dist/roadtrip/svg/vehicle-pickup-van.svg +1 -1
  643. package/dist/roadtrip/svg/vehicle-van-outline.svg +1 -0
  644. package/dist/roadtrip/svg/vehicle-van.svg +1 -1
  645. package/dist/roadtrip/svg/wheel-hub-cap-color.svg +1 -0
  646. package/dist/roadtrip/svg/wheel-hub-cap-outline.svg +1 -0
  647. package/dist/roadtrip/svg/wheel-hub-cap.svg +1 -0
  648. package/dist/roadtrip/svg/wheel-rim-color.svg +1 -0
  649. package/dist/roadtrip/svg/wheel-rim-double-spoke-outline-color.svg +1 -0
  650. package/dist/roadtrip/svg/wheel-rim-double-spoke-outline.svg +1 -0
  651. package/dist/roadtrip/svg/wheel-rim-double-spoke.svg +1 -0
  652. package/dist/roadtrip/svg/wheel-rim-honeycomb-outline-color.svg +1 -0
  653. package/dist/roadtrip/svg/wheel-rim-honeycomb-outline.svg +1 -0
  654. package/dist/roadtrip/svg/wheel-rim-honeycomb.svg +1 -0
  655. package/dist/roadtrip/svg/wheel-rim-multi-spoke-outline-color.svg +1 -0
  656. package/dist/roadtrip/svg/wheel-rim-multi-spoke-outline.svg +1 -0
  657. package/dist/roadtrip/svg/wheel-rim-multi-spoke.svg +1 -0
  658. package/dist/roadtrip/svg/wheel-rim-outline.svg +1 -0
  659. package/dist/roadtrip/svg/wheel-rim.svg +1 -0
  660. package/dist/roadtrip/svg/windscreen-wiper-color.svg +1 -1
  661. package/dist/roadtrip/svg/windscreen-wiper.svg +1 -1
  662. package/dist/roadtrip/svg/windscreen-wipers-color.svg +1 -1
  663. package/dist/roadtrip/svg/windscreen-wipers-left-color.svg +1 -1
  664. package/dist/roadtrip/svg/windscreen-wipers-left.svg +1 -1
  665. package/dist/roadtrip/svg/windscreen-wipers-right-color.svg +1 -1
  666. package/dist/roadtrip/svg/windscreen-wipers-right.svg +1 -1
  667. package/dist/roadtrip/svg/windscreen-wipers.svg +1 -1
  668. package/dist/roadtrip/svg/work-order-awaiting-approval-color.svg +1 -0
  669. package/dist/roadtrip/svg/work-order-awaiting-approval-outline.svg +1 -0
  670. package/dist/roadtrip/svg/work-order-awaiting-approval.svg +1 -0
  671. package/dist/roadtrip/svg/work-order-check-outline-color.svg +1 -0
  672. package/dist/roadtrip/svg/work-order-check-outline.svg +1 -0
  673. package/dist/roadtrip/svg/work-order-check.svg +1 -0
  674. package/dist/roadtrip/svg/work-order-diagnostic-outline-color.svg +1 -0
  675. package/dist/roadtrip/svg/work-order-diagnostic-outline.svg +1 -0
  676. package/dist/roadtrip/svg/work-order-diagnostic.svg +1 -0
  677. package/dist/roadtrip/svg/work-order-pass-maintain-color.svg +1 -0
  678. package/dist/roadtrip/svg/work-order-pass-maintain.svg +1 -0
  679. package/dist/roadtrip/svg/work-order-view-outline-color.svg +1 -0
  680. package/dist/roadtrip/svg/work-order-view-outline.svg +1 -0
  681. package/dist/roadtrip/svg/work-order-view.svg +1 -0
  682. package/dist/roadtrip/svg/work-order-wait-check-outline-color.svg +1 -0
  683. package/dist/roadtrip/svg/work-order-wait-check-outline.svg +1 -0
  684. package/dist/roadtrip/svg/work-order-wait-check.svg +1 -0
  685. package/dist/roadtrip/svg/zoom-in-color.svg +1 -0
  686. package/dist/roadtrip/svg/zoom-in.svg +1 -0
  687. package/dist/roadtrip/svg/zoom-out-color.svg +1 -0
  688. package/dist/roadtrip/svg/zoom-out.svg +1 -0
  689. package/dist/types/components/autocomplete/autocomplete.d.ts +9 -7
  690. package/dist/types/components/drawer/drawer.d.ts +2 -2
  691. package/dist/types/components/dropdown/dropdown.d.ts +15 -0
  692. package/dist/types/components/flap/flap.d.ts +1 -1
  693. package/dist/types/components/input/input.d.ts +5 -0
  694. package/dist/types/components/input-group/input-group.d.ts +2 -0
  695. package/dist/types/components/plate-number/plate-number.d.ts +4 -0
  696. package/dist/types/components/select-filter/select-filter.d.ts +37 -0
  697. package/dist/types/components.d.ts +96 -10
  698. package/icons/icons.svg +1 -1
  699. package/icons/index.d.ts +136 -3
  700. package/icons/index.js +169 -36
  701. package/loader/cdn.js +3 -0
  702. package/loader/index.cjs.js +3 -0
  703. package/loader/index.d.ts +12 -0
  704. package/loader/index.es2017.js +3 -0
  705. package/loader/index.js +4 -0
  706. package/loader/package.json +10 -0
  707. package/package.json +10 -7
  708. package/CHANGELOG.md +0 -213
  709. package/dist/collection/components/icon/svg/vehicle-car-outline-side.svg +0 -1
  710. package/dist/collection/components/icon/svg/vehicle-delevery-privilege.svg +0 -1
  711. package/dist/esm-es5/app-7b5384c5.js +0 -1
  712. package/dist/esm-es5/index-42b74371.js +0 -1
  713. package/dist/esm-es5/shadow-css-67b66845.js +0 -12
  714. package/dist/roadtrip/p-02438cfb.entry.js +0 -1
  715. package/dist/roadtrip/p-02e4bc64.system.entry.js +0 -1
  716. package/dist/roadtrip/p-041210d2.system.entry.js +0 -1
  717. package/dist/roadtrip/p-0cef4909.entry.js +0 -1
  718. package/dist/roadtrip/p-0d394981.entry.js +0 -1
  719. package/dist/roadtrip/p-0d72b32f.entry.js +0 -1
  720. package/dist/roadtrip/p-10d2f292.entry.js +0 -1
  721. package/dist/roadtrip/p-1247ae38.entry.js +0 -1
  722. package/dist/roadtrip/p-1331984c.system.entry.js +0 -1
  723. package/dist/roadtrip/p-13b4e299.entry.js +0 -1
  724. package/dist/roadtrip/p-17c183fb.system.entry.js +0 -1
  725. package/dist/roadtrip/p-17e1fad4.entry.js +0 -1
  726. package/dist/roadtrip/p-1fc157fe.entry.js +0 -1
  727. package/dist/roadtrip/p-316f18c5.system.entry.js +0 -1
  728. package/dist/roadtrip/p-35eb0f57.entry.js +0 -1
  729. package/dist/roadtrip/p-37e3988b.entry.js +0 -1
  730. package/dist/roadtrip/p-3b0bf6c7.system.entry.js +0 -1
  731. package/dist/roadtrip/p-3b954155.entry.js +0 -1
  732. package/dist/roadtrip/p-425ea346.entry.js +0 -1
  733. package/dist/roadtrip/p-42a9ad7b.entry.js +0 -1
  734. package/dist/roadtrip/p-430a11a6.system.entry.js +0 -1
  735. package/dist/roadtrip/p-4d56e09a.system.entry.js +0 -1
  736. package/dist/roadtrip/p-5350841a.system.entry.js +0 -1
  737. package/dist/roadtrip/p-54eb6c30.system.entry.js +0 -1
  738. package/dist/roadtrip/p-551176bd.entry.js +0 -1
  739. package/dist/roadtrip/p-58e70635.system.entry.js +0 -1
  740. package/dist/roadtrip/p-590dcc09.entry.js +0 -1
  741. package/dist/roadtrip/p-5a70fe34.entry.js +0 -1
  742. package/dist/roadtrip/p-5fae0a97.system.js +0 -1
  743. package/dist/roadtrip/p-5faefeba.entry.js +0 -1
  744. package/dist/roadtrip/p-60019e46.entry.js +0 -1
  745. package/dist/roadtrip/p-6626bd71.system.entry.js +0 -1
  746. package/dist/roadtrip/p-68bbe841.system.entry.js +0 -1
  747. package/dist/roadtrip/p-6bf12486.system.entry.js +0 -1
  748. package/dist/roadtrip/p-6cbf0271.entry.js +0 -1
  749. package/dist/roadtrip/p-7dc1cc99.entry.js +0 -1
  750. package/dist/roadtrip/p-871be532.entry.js +0 -1
  751. package/dist/roadtrip/p-8a10bd9c.entry.js +0 -1
  752. package/dist/roadtrip/p-8c389605.system.entry.js +0 -1
  753. package/dist/roadtrip/p-9112876a.system.entry.js +0 -1
  754. package/dist/roadtrip/p-93b244be.entry.js +0 -1
  755. package/dist/roadtrip/p-97d9114f.system.entry.js +0 -1
  756. package/dist/roadtrip/p-9cd9dd57.system.entry.js +0 -1
  757. package/dist/roadtrip/p-9eae51cb.entry.js +0 -1
  758. package/dist/roadtrip/p-a225ba2d.entry.js +0 -1
  759. package/dist/roadtrip/p-a5548019.entry.js +0 -1
  760. package/dist/roadtrip/p-a69855b7.js +0 -12
  761. package/dist/roadtrip/p-a71ed0b6.entry.js +0 -1
  762. package/dist/roadtrip/p-abb85557.entry.js +0 -1
  763. package/dist/roadtrip/p-ac68d72d.entry.js +0 -1
  764. package/dist/roadtrip/p-afc0a90b.system.entry.js +0 -1
  765. package/dist/roadtrip/p-c2334232.system.js +0 -1
  766. package/dist/roadtrip/p-c9906366.entry.js +0 -1
  767. package/dist/roadtrip/p-cafbe9cb.entry.js +0 -1
  768. package/dist/roadtrip/p-cc1da076.system.entry.js +0 -1
  769. package/dist/roadtrip/p-cd603d87.system.js +0 -13
  770. package/dist/roadtrip/p-d13bb916.entry.js +0 -1
  771. package/dist/roadtrip/p-d64857ac.entry.js +0 -1
  772. package/dist/roadtrip/p-d8712919.entry.js +0 -1
  773. package/dist/roadtrip/p-e1d854ec.entry.js +0 -1
  774. package/dist/roadtrip/p-e2add5a5.system.entry.js +0 -1
  775. package/dist/roadtrip/p-e381e807.entry.js +0 -1
  776. package/dist/roadtrip/p-e487ed25.entry.js +0 -1
  777. package/dist/roadtrip/p-e575fb5f.entry.js +0 -1
  778. package/dist/roadtrip/p-e9113160.entry.js +0 -1
  779. package/dist/roadtrip/p-ec231b77.js +0 -1
  780. package/dist/roadtrip/p-f3f029a7.system.entry.js +0 -1
  781. package/dist/roadtrip/p-ffe2b39f.system.entry.js +0 -1
  782. package/dist/roadtrip/svg/vehicle-car-outline-side.svg +0 -1
  783. package/dist/roadtrip/svg/vehicle-delevery-privilege.svg +0 -1
@@ -0,0 +1,1847 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-d47fa3c0.js');
6
+
7
+ /**
8
+ * Fuse.js v6.4.6 - Lightweight fuzzy-search (http://fusejs.io)
9
+ *
10
+ * Copyright (c) 2021 Kiro Risk (http://kiro.me)
11
+ * All Rights Reserved. Apache Software License 2.0
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ */
15
+
16
+ function isArray(value) {
17
+ return !Array.isArray
18
+ ? getTag(value) === '[object Array]'
19
+ : Array.isArray(value)
20
+ }
21
+
22
+ // Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js
23
+ const INFINITY = 1 / 0;
24
+ function baseToString(value) {
25
+ // Exit early for strings to avoid a performance hit in some environments.
26
+ if (typeof value == 'string') {
27
+ return value
28
+ }
29
+ let result = value + '';
30
+ return result == '0' && 1 / value == -INFINITY ? '-0' : result
31
+ }
32
+
33
+ function toString(value) {
34
+ return value == null ? '' : baseToString(value)
35
+ }
36
+
37
+ function isString(value) {
38
+ return typeof value === 'string'
39
+ }
40
+
41
+ function isNumber(value) {
42
+ return typeof value === 'number'
43
+ }
44
+
45
+ // Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js
46
+ function isBoolean(value) {
47
+ return (
48
+ value === true ||
49
+ value === false ||
50
+ (isObjectLike(value) && getTag(value) == '[object Boolean]')
51
+ )
52
+ }
53
+
54
+ function isObject(value) {
55
+ return typeof value === 'object'
56
+ }
57
+
58
+ // Checks if `value` is object-like.
59
+ function isObjectLike(value) {
60
+ return isObject(value) && value !== null
61
+ }
62
+
63
+ function isDefined(value) {
64
+ return value !== undefined && value !== null
65
+ }
66
+
67
+ function isBlank(value) {
68
+ return !value.trim().length
69
+ }
70
+
71
+ // Gets the `toStringTag` of `value`.
72
+ // Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js
73
+ function getTag(value) {
74
+ return value == null
75
+ ? value === undefined
76
+ ? '[object Undefined]'
77
+ : '[object Null]'
78
+ : Object.prototype.toString.call(value)
79
+ }
80
+
81
+ const EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';
82
+
83
+ const INCORRECT_INDEX_TYPE = "Incorrect 'index' type";
84
+
85
+ const LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>
86
+ `Invalid value for key ${key}`;
87
+
88
+ const PATTERN_LENGTH_TOO_LARGE = (max) =>
89
+ `Pattern length exceeds max of ${max}.`;
90
+
91
+ const MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;
92
+
93
+ const INVALID_KEY_WEIGHT_VALUE = (key) =>
94
+ `Property 'weight' in key '${key}' must be a positive integer`;
95
+
96
+ const hasOwn = Object.prototype.hasOwnProperty;
97
+
98
+ class KeyStore {
99
+ constructor(keys) {
100
+ this._keys = [];
101
+ this._keyMap = {};
102
+
103
+ let totalWeight = 0;
104
+
105
+ keys.forEach((key) => {
106
+ let obj = createKey(key);
107
+
108
+ totalWeight += obj.weight;
109
+
110
+ this._keys.push(obj);
111
+ this._keyMap[obj.id] = obj;
112
+
113
+ totalWeight += obj.weight;
114
+ });
115
+
116
+ // Normalize weights so that their sum is equal to 1
117
+ this._keys.forEach((key) => {
118
+ key.weight /= totalWeight;
119
+ });
120
+ }
121
+ get(keyId) {
122
+ return this._keyMap[keyId]
123
+ }
124
+ keys() {
125
+ return this._keys
126
+ }
127
+ toJSON() {
128
+ return JSON.stringify(this._keys)
129
+ }
130
+ }
131
+
132
+ function createKey(key) {
133
+ let path = null;
134
+ let id = null;
135
+ let src = null;
136
+ let weight = 1;
137
+
138
+ if (isString(key) || isArray(key)) {
139
+ src = key;
140
+ path = createKeyPath(key);
141
+ id = createKeyId(key);
142
+ } else {
143
+ if (!hasOwn.call(key, 'name')) {
144
+ throw new Error(MISSING_KEY_PROPERTY('name'))
145
+ }
146
+
147
+ const name = key.name;
148
+ src = name;
149
+
150
+ if (hasOwn.call(key, 'weight')) {
151
+ weight = key.weight;
152
+
153
+ if (weight <= 0) {
154
+ throw new Error(INVALID_KEY_WEIGHT_VALUE(name))
155
+ }
156
+ }
157
+
158
+ path = createKeyPath(name);
159
+ id = createKeyId(name);
160
+ }
161
+
162
+ return { path, id, weight, src }
163
+ }
164
+
165
+ function createKeyPath(key) {
166
+ return isArray(key) ? key : key.split('.')
167
+ }
168
+
169
+ function createKeyId(key) {
170
+ return isArray(key) ? key.join('.') : key
171
+ }
172
+
173
+ function get(obj, path) {
174
+ let list = [];
175
+ let arr = false;
176
+
177
+ const deepGet = (obj, path, index) => {
178
+ if (!isDefined(obj)) {
179
+ return
180
+ }
181
+ if (!path[index]) {
182
+ // If there's no path left, we've arrived at the object we care about.
183
+ list.push(obj);
184
+ } else {
185
+ let key = path[index];
186
+
187
+ const value = obj[key];
188
+
189
+ if (!isDefined(value)) {
190
+ return
191
+ }
192
+
193
+ // If we're at the last value in the path, and if it's a string/number/bool,
194
+ // add it to the list
195
+ if (
196
+ index === path.length - 1 &&
197
+ (isString(value) || isNumber(value) || isBoolean(value))
198
+ ) {
199
+ list.push(toString(value));
200
+ } else if (isArray(value)) {
201
+ arr = true;
202
+ // Search each item in the array.
203
+ for (let i = 0, len = value.length; i < len; i += 1) {
204
+ deepGet(value[i], path, index + 1);
205
+ }
206
+ } else if (path.length) {
207
+ // An object. Recurse further.
208
+ deepGet(value, path, index + 1);
209
+ }
210
+ }
211
+ };
212
+
213
+ // Backwards compatibility (since path used to be a string)
214
+ deepGet(obj, isString(path) ? path.split('.') : path, 0);
215
+
216
+ return arr ? list : list[0]
217
+ }
218
+
219
+ const MatchOptions = {
220
+ // Whether the matches should be included in the result set. When `true`, each record in the result
221
+ // set will include the indices of the matched characters.
222
+ // These can consequently be used for highlighting purposes.
223
+ includeMatches: false,
224
+ // When `true`, the matching function will continue to the end of a search pattern even if
225
+ // a perfect match has already been located in the string.
226
+ findAllMatches: false,
227
+ // Minimum number of characters that must be matched before a result is considered a match
228
+ minMatchCharLength: 1
229
+ };
230
+
231
+ const BasicOptions = {
232
+ // When `true`, the algorithm continues searching to the end of the input even if a perfect
233
+ // match is found before the end of the same input.
234
+ isCaseSensitive: false,
235
+ // When true, the matching function will continue to the end of a search pattern even if
236
+ includeScore: false,
237
+ // List of properties that will be searched. This also supports nested properties.
238
+ keys: [],
239
+ // Whether to sort the result list, by score
240
+ shouldSort: true,
241
+ // Default sort function: sort by ascending score, ascending index
242
+ sortFn: (a, b) =>
243
+ a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1
244
+ };
245
+
246
+ const FuzzyOptions = {
247
+ // Approximately where in the text is the pattern expected to be found?
248
+ location: 0,
249
+ // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match
250
+ // (of both letters and location), a threshold of '1.0' would match anything.
251
+ threshold: 0.6,
252
+ // Determines how close the match must be to the fuzzy location (specified above).
253
+ // An exact letter match which is 'distance' characters away from the fuzzy location
254
+ // would score as a complete mismatch. A distance of '0' requires the match be at
255
+ // the exact location specified, a threshold of '1000' would require a perfect match
256
+ // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.
257
+ distance: 100
258
+ };
259
+
260
+ const AdvancedOptions = {
261
+ // When `true`, it enables the use of unix-like search commands
262
+ useExtendedSearch: false,
263
+ // The get function to use when fetching an object's properties.
264
+ // The default will search nested paths *ie foo.bar.baz*
265
+ getFn: get,
266
+ // When `true`, search will ignore `location` and `distance`, so it won't matter
267
+ // where in the string the pattern appears.
268
+ // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score
269
+ ignoreLocation: false,
270
+ // When `true`, the calculation for the relevance score (used for sorting) will
271
+ // ignore the field-length norm.
272
+ // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm
273
+ ignoreFieldNorm: false
274
+ };
275
+
276
+ var Config = {
277
+ ...BasicOptions,
278
+ ...MatchOptions,
279
+ ...FuzzyOptions,
280
+ ...AdvancedOptions
281
+ };
282
+
283
+ const SPACE = /[^ ]+/g;
284
+
285
+ // Field-length norm: the shorter the field, the higher the weight.
286
+ // Set to 3 decimals to reduce index size.
287
+ function norm(mantissa = 3) {
288
+ const cache = new Map();
289
+ const m = Math.pow(10, mantissa);
290
+
291
+ return {
292
+ get(value) {
293
+ const numTokens = value.match(SPACE).length;
294
+
295
+ if (cache.has(numTokens)) {
296
+ return cache.get(numTokens)
297
+ }
298
+
299
+ const norm = 1 / Math.sqrt(numTokens);
300
+
301
+ // In place of `toFixed(mantissa)`, for faster computation
302
+ const n = parseFloat(Math.round(norm * m) / m);
303
+
304
+ cache.set(numTokens, n);
305
+
306
+ return n
307
+ },
308
+ clear() {
309
+ cache.clear();
310
+ }
311
+ }
312
+ }
313
+
314
+ class FuseIndex {
315
+ constructor({ getFn = Config.getFn } = {}) {
316
+ this.norm = norm(3);
317
+ this.getFn = getFn;
318
+ this.isCreated = false;
319
+
320
+ this.setIndexRecords();
321
+ }
322
+ setSources(docs = []) {
323
+ this.docs = docs;
324
+ }
325
+ setIndexRecords(records = []) {
326
+ this.records = records;
327
+ }
328
+ setKeys(keys = []) {
329
+ this.keys = keys;
330
+ this._keysMap = {};
331
+ keys.forEach((key, idx) => {
332
+ this._keysMap[key.id] = idx;
333
+ });
334
+ }
335
+ create() {
336
+ if (this.isCreated || !this.docs.length) {
337
+ return
338
+ }
339
+
340
+ this.isCreated = true;
341
+
342
+ // List is Array<String>
343
+ if (isString(this.docs[0])) {
344
+ this.docs.forEach((doc, docIndex) => {
345
+ this._addString(doc, docIndex);
346
+ });
347
+ } else {
348
+ // List is Array<Object>
349
+ this.docs.forEach((doc, docIndex) => {
350
+ this._addObject(doc, docIndex);
351
+ });
352
+ }
353
+
354
+ this.norm.clear();
355
+ }
356
+ // Adds a doc to the end of the index
357
+ add(doc) {
358
+ const idx = this.size();
359
+
360
+ if (isString(doc)) {
361
+ this._addString(doc, idx);
362
+ } else {
363
+ this._addObject(doc, idx);
364
+ }
365
+ }
366
+ // Removes the doc at the specified index of the index
367
+ removeAt(idx) {
368
+ this.records.splice(idx, 1);
369
+
370
+ // Change ref index of every subsquent doc
371
+ for (let i = idx, len = this.size(); i < len; i += 1) {
372
+ this.records[i].i -= 1;
373
+ }
374
+ }
375
+ getValueForItemAtKeyId(item, keyId) {
376
+ return item[this._keysMap[keyId]]
377
+ }
378
+ size() {
379
+ return this.records.length
380
+ }
381
+ _addString(doc, docIndex) {
382
+ if (!isDefined(doc) || isBlank(doc)) {
383
+ return
384
+ }
385
+
386
+ let record = {
387
+ v: doc,
388
+ i: docIndex,
389
+ n: this.norm.get(doc)
390
+ };
391
+
392
+ this.records.push(record);
393
+ }
394
+ _addObject(doc, docIndex) {
395
+ let record = { i: docIndex, $: {} };
396
+
397
+ // Iterate over every key (i.e, path), and fetch the value at that key
398
+ this.keys.forEach((key, keyIndex) => {
399
+ // console.log(key)
400
+ let value = this.getFn(doc, key.path);
401
+
402
+ if (!isDefined(value)) {
403
+ return
404
+ }
405
+
406
+ if (isArray(value)) {
407
+ let subRecords = [];
408
+ const stack = [{ nestedArrIndex: -1, value }];
409
+
410
+ while (stack.length) {
411
+ const { nestedArrIndex, value } = stack.pop();
412
+
413
+ if (!isDefined(value)) {
414
+ continue
415
+ }
416
+
417
+ if (isString(value) && !isBlank(value)) {
418
+ let subRecord = {
419
+ v: value,
420
+ i: nestedArrIndex,
421
+ n: this.norm.get(value)
422
+ };
423
+
424
+ subRecords.push(subRecord);
425
+ } else if (isArray(value)) {
426
+ value.forEach((item, k) => {
427
+ stack.push({
428
+ nestedArrIndex: k,
429
+ value: item
430
+ });
431
+ });
432
+ }
433
+ }
434
+ record.$[keyIndex] = subRecords;
435
+ } else if (!isBlank(value)) {
436
+ let subRecord = {
437
+ v: value,
438
+ n: this.norm.get(value)
439
+ };
440
+
441
+ record.$[keyIndex] = subRecord;
442
+ }
443
+ });
444
+
445
+ this.records.push(record);
446
+ }
447
+ toJSON() {
448
+ return {
449
+ keys: this.keys,
450
+ records: this.records
451
+ }
452
+ }
453
+ }
454
+
455
+ function createIndex(keys, docs, { getFn = Config.getFn } = {}) {
456
+ const myIndex = new FuseIndex({ getFn });
457
+ myIndex.setKeys(keys.map(createKey));
458
+ myIndex.setSources(docs);
459
+ myIndex.create();
460
+ return myIndex
461
+ }
462
+
463
+ function parseIndex(data, { getFn = Config.getFn } = {}) {
464
+ const { keys, records } = data;
465
+ const myIndex = new FuseIndex({ getFn });
466
+ myIndex.setKeys(keys);
467
+ myIndex.setIndexRecords(records);
468
+ return myIndex
469
+ }
470
+
471
+ function computeScore(
472
+ pattern,
473
+ {
474
+ errors = 0,
475
+ currentLocation = 0,
476
+ expectedLocation = 0,
477
+ distance = Config.distance,
478
+ ignoreLocation = Config.ignoreLocation
479
+ } = {}
480
+ ) {
481
+ const accuracy = errors / pattern.length;
482
+
483
+ if (ignoreLocation) {
484
+ return accuracy
485
+ }
486
+
487
+ const proximity = Math.abs(expectedLocation - currentLocation);
488
+
489
+ if (!distance) {
490
+ // Dodge divide by zero error.
491
+ return proximity ? 1.0 : accuracy
492
+ }
493
+
494
+ return accuracy + proximity / distance
495
+ }
496
+
497
+ function convertMaskToIndices(
498
+ matchmask = [],
499
+ minMatchCharLength = Config.minMatchCharLength
500
+ ) {
501
+ let indices = [];
502
+ let start = -1;
503
+ let end = -1;
504
+ let i = 0;
505
+
506
+ for (let len = matchmask.length; i < len; i += 1) {
507
+ let match = matchmask[i];
508
+ if (match && start === -1) {
509
+ start = i;
510
+ } else if (!match && start !== -1) {
511
+ end = i - 1;
512
+ if (end - start + 1 >= minMatchCharLength) {
513
+ indices.push([start, end]);
514
+ }
515
+ start = -1;
516
+ }
517
+ }
518
+
519
+ // (i-1 - start) + 1 => i - start
520
+ if (matchmask[i - 1] && i - start >= minMatchCharLength) {
521
+ indices.push([start, i - 1]);
522
+ }
523
+
524
+ return indices
525
+ }
526
+
527
+ // Machine word size
528
+ const MAX_BITS = 32;
529
+
530
+ function search(
531
+ text,
532
+ pattern,
533
+ patternAlphabet,
534
+ {
535
+ location = Config.location,
536
+ distance = Config.distance,
537
+ threshold = Config.threshold,
538
+ findAllMatches = Config.findAllMatches,
539
+ minMatchCharLength = Config.minMatchCharLength,
540
+ includeMatches = Config.includeMatches,
541
+ ignoreLocation = Config.ignoreLocation
542
+ } = {}
543
+ ) {
544
+ if (pattern.length > MAX_BITS) {
545
+ throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))
546
+ }
547
+
548
+ const patternLen = pattern.length;
549
+ // Set starting location at beginning text and initialize the alphabet.
550
+ const textLen = text.length;
551
+ // Handle the case when location > text.length
552
+ const expectedLocation = Math.max(0, Math.min(location, textLen));
553
+ // Highest score beyond which we give up.
554
+ let currentThreshold = threshold;
555
+ // Is there a nearby exact match? (speedup)
556
+ let bestLocation = expectedLocation;
557
+
558
+ // Performance: only computer matches when the minMatchCharLength > 1
559
+ // OR if `includeMatches` is true.
560
+ const computeMatches = minMatchCharLength > 1 || includeMatches;
561
+ // A mask of the matches, used for building the indices
562
+ const matchMask = computeMatches ? Array(textLen) : [];
563
+
564
+ let index;
565
+
566
+ // Get all exact matches, here for speed up
567
+ while ((index = text.indexOf(pattern, bestLocation)) > -1) {
568
+ let score = computeScore(pattern, {
569
+ currentLocation: index,
570
+ expectedLocation,
571
+ distance,
572
+ ignoreLocation
573
+ });
574
+
575
+ currentThreshold = Math.min(score, currentThreshold);
576
+ bestLocation = index + patternLen;
577
+
578
+ if (computeMatches) {
579
+ let i = 0;
580
+ while (i < patternLen) {
581
+ matchMask[index + i] = 1;
582
+ i += 1;
583
+ }
584
+ }
585
+ }
586
+
587
+ // Reset the best location
588
+ bestLocation = -1;
589
+
590
+ let lastBitArr = [];
591
+ let finalScore = 1;
592
+ let binMax = patternLen + textLen;
593
+
594
+ const mask = 1 << (patternLen - 1);
595
+
596
+ for (let i = 0; i < patternLen; i += 1) {
597
+ // Scan for the best match; each iteration allows for one more error.
598
+ // Run a binary search to determine how far from the match location we can stray
599
+ // at this error level.
600
+ let binMin = 0;
601
+ let binMid = binMax;
602
+
603
+ while (binMin < binMid) {
604
+ const score = computeScore(pattern, {
605
+ errors: i,
606
+ currentLocation: expectedLocation + binMid,
607
+ expectedLocation,
608
+ distance,
609
+ ignoreLocation
610
+ });
611
+
612
+ if (score <= currentThreshold) {
613
+ binMin = binMid;
614
+ } else {
615
+ binMax = binMid;
616
+ }
617
+
618
+ binMid = Math.floor((binMax - binMin) / 2 + binMin);
619
+ }
620
+
621
+ // Use the result from this iteration as the maximum for the next.
622
+ binMax = binMid;
623
+
624
+ let start = Math.max(1, expectedLocation - binMid + 1);
625
+ let finish = findAllMatches
626
+ ? textLen
627
+ : Math.min(expectedLocation + binMid, textLen) + patternLen;
628
+
629
+ // Initialize the bit array
630
+ let bitArr = Array(finish + 2);
631
+
632
+ bitArr[finish + 1] = (1 << i) - 1;
633
+
634
+ for (let j = finish; j >= start; j -= 1) {
635
+ let currentLocation = j - 1;
636
+ let charMatch = patternAlphabet[text.charAt(currentLocation)];
637
+
638
+ if (computeMatches) {
639
+ // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)
640
+ matchMask[currentLocation] = +!!charMatch;
641
+ }
642
+
643
+ // First pass: exact match
644
+ bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;
645
+
646
+ // Subsequent passes: fuzzy match
647
+ if (i) {
648
+ bitArr[j] |=
649
+ ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];
650
+ }
651
+
652
+ if (bitArr[j] & mask) {
653
+ finalScore = computeScore(pattern, {
654
+ errors: i,
655
+ currentLocation,
656
+ expectedLocation,
657
+ distance,
658
+ ignoreLocation
659
+ });
660
+
661
+ // This match will almost certainly be better than any existing match.
662
+ // But check anyway.
663
+ if (finalScore <= currentThreshold) {
664
+ // Indeed it is
665
+ currentThreshold = finalScore;
666
+ bestLocation = currentLocation;
667
+
668
+ // Already passed `loc`, downhill from here on in.
669
+ if (bestLocation <= expectedLocation) {
670
+ break
671
+ }
672
+
673
+ // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.
674
+ start = Math.max(1, 2 * expectedLocation - bestLocation);
675
+ }
676
+ }
677
+ }
678
+
679
+ // No hope for a (better) match at greater error levels.
680
+ const score = computeScore(pattern, {
681
+ errors: i + 1,
682
+ currentLocation: expectedLocation,
683
+ expectedLocation,
684
+ distance,
685
+ ignoreLocation
686
+ });
687
+
688
+ if (score > currentThreshold) {
689
+ break
690
+ }
691
+
692
+ lastBitArr = bitArr;
693
+ }
694
+
695
+ const result = {
696
+ isMatch: bestLocation >= 0,
697
+ // Count exact matches (those with a score of 0) to be "almost" exact
698
+ score: Math.max(0.001, finalScore)
699
+ };
700
+
701
+ if (computeMatches) {
702
+ const indices = convertMaskToIndices(matchMask, minMatchCharLength);
703
+ if (!indices.length) {
704
+ result.isMatch = false;
705
+ } else if (includeMatches) {
706
+ result.indices = indices;
707
+ }
708
+ }
709
+
710
+ return result
711
+ }
712
+
713
+ function createPatternAlphabet(pattern) {
714
+ let mask = {};
715
+
716
+ for (let i = 0, len = pattern.length; i < len; i += 1) {
717
+ const char = pattern.charAt(i);
718
+ mask[char] = (mask[char] || 0) | (1 << (len - i - 1));
719
+ }
720
+
721
+ return mask
722
+ }
723
+
724
+ class BitapSearch {
725
+ constructor(
726
+ pattern,
727
+ {
728
+ location = Config.location,
729
+ threshold = Config.threshold,
730
+ distance = Config.distance,
731
+ includeMatches = Config.includeMatches,
732
+ findAllMatches = Config.findAllMatches,
733
+ minMatchCharLength = Config.minMatchCharLength,
734
+ isCaseSensitive = Config.isCaseSensitive,
735
+ ignoreLocation = Config.ignoreLocation
736
+ } = {}
737
+ ) {
738
+ this.options = {
739
+ location,
740
+ threshold,
741
+ distance,
742
+ includeMatches,
743
+ findAllMatches,
744
+ minMatchCharLength,
745
+ isCaseSensitive,
746
+ ignoreLocation
747
+ };
748
+
749
+ this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
750
+
751
+ this.chunks = [];
752
+
753
+ if (!this.pattern.length) {
754
+ return
755
+ }
756
+
757
+ const addChunk = (pattern, startIndex) => {
758
+ this.chunks.push({
759
+ pattern,
760
+ alphabet: createPatternAlphabet(pattern),
761
+ startIndex
762
+ });
763
+ };
764
+
765
+ const len = this.pattern.length;
766
+
767
+ if (len > MAX_BITS) {
768
+ let i = 0;
769
+ const remainder = len % MAX_BITS;
770
+ const end = len - remainder;
771
+
772
+ while (i < end) {
773
+ addChunk(this.pattern.substr(i, MAX_BITS), i);
774
+ i += MAX_BITS;
775
+ }
776
+
777
+ if (remainder) {
778
+ const startIndex = len - MAX_BITS;
779
+ addChunk(this.pattern.substr(startIndex), startIndex);
780
+ }
781
+ } else {
782
+ addChunk(this.pattern, 0);
783
+ }
784
+ }
785
+
786
+ searchIn(text) {
787
+ const { isCaseSensitive, includeMatches } = this.options;
788
+
789
+ if (!isCaseSensitive) {
790
+ text = text.toLowerCase();
791
+ }
792
+
793
+ // Exact match
794
+ if (this.pattern === text) {
795
+ let result = {
796
+ isMatch: true,
797
+ score: 0
798
+ };
799
+
800
+ if (includeMatches) {
801
+ result.indices = [[0, text.length - 1]];
802
+ }
803
+
804
+ return result
805
+ }
806
+
807
+ // Otherwise, use Bitap algorithm
808
+ const {
809
+ location,
810
+ distance,
811
+ threshold,
812
+ findAllMatches,
813
+ minMatchCharLength,
814
+ ignoreLocation
815
+ } = this.options;
816
+
817
+ let allIndices = [];
818
+ let totalScore = 0;
819
+ let hasMatches = false;
820
+
821
+ this.chunks.forEach(({ pattern, alphabet, startIndex }) => {
822
+ const { isMatch, score, indices } = search(text, pattern, alphabet, {
823
+ location: location + startIndex,
824
+ distance,
825
+ threshold,
826
+ findAllMatches,
827
+ minMatchCharLength,
828
+ includeMatches,
829
+ ignoreLocation
830
+ });
831
+
832
+ if (isMatch) {
833
+ hasMatches = true;
834
+ }
835
+
836
+ totalScore += score;
837
+
838
+ if (isMatch && indices) {
839
+ allIndices = [...allIndices, ...indices];
840
+ }
841
+ });
842
+
843
+ let result = {
844
+ isMatch: hasMatches,
845
+ score: hasMatches ? totalScore / this.chunks.length : 1
846
+ };
847
+
848
+ if (hasMatches && includeMatches) {
849
+ result.indices = allIndices;
850
+ }
851
+
852
+ return result
853
+ }
854
+ }
855
+
856
+ class BaseMatch {
857
+ constructor(pattern) {
858
+ this.pattern = pattern;
859
+ }
860
+ static isMultiMatch(pattern) {
861
+ return getMatch(pattern, this.multiRegex)
862
+ }
863
+ static isSingleMatch(pattern) {
864
+ return getMatch(pattern, this.singleRegex)
865
+ }
866
+ search(/*text*/) {}
867
+ }
868
+
869
+ function getMatch(pattern, exp) {
870
+ const matches = pattern.match(exp);
871
+ return matches ? matches[1] : null
872
+ }
873
+
874
+ // Token: 'file
875
+
876
+ class ExactMatch extends BaseMatch {
877
+ constructor(pattern) {
878
+ super(pattern);
879
+ }
880
+ static get type() {
881
+ return 'exact'
882
+ }
883
+ static get multiRegex() {
884
+ return /^="(.*)"$/
885
+ }
886
+ static get singleRegex() {
887
+ return /^=(.*)$/
888
+ }
889
+ search(text) {
890
+ const isMatch = text === this.pattern;
891
+
892
+ return {
893
+ isMatch,
894
+ score: isMatch ? 0 : 1,
895
+ indices: [0, this.pattern.length - 1]
896
+ }
897
+ }
898
+ }
899
+
900
+ // Token: !fire
901
+
902
+ class InverseExactMatch extends BaseMatch {
903
+ constructor(pattern) {
904
+ super(pattern);
905
+ }
906
+ static get type() {
907
+ return 'inverse-exact'
908
+ }
909
+ static get multiRegex() {
910
+ return /^!"(.*)"$/
911
+ }
912
+ static get singleRegex() {
913
+ return /^!(.*)$/
914
+ }
915
+ search(text) {
916
+ const index = text.indexOf(this.pattern);
917
+ const isMatch = index === -1;
918
+
919
+ return {
920
+ isMatch,
921
+ score: isMatch ? 0 : 1,
922
+ indices: [0, text.length - 1]
923
+ }
924
+ }
925
+ }
926
+
927
+ // Token: ^file
928
+
929
+ class PrefixExactMatch extends BaseMatch {
930
+ constructor(pattern) {
931
+ super(pattern);
932
+ }
933
+ static get type() {
934
+ return 'prefix-exact'
935
+ }
936
+ static get multiRegex() {
937
+ return /^\^"(.*)"$/
938
+ }
939
+ static get singleRegex() {
940
+ return /^\^(.*)$/
941
+ }
942
+ search(text) {
943
+ const isMatch = text.startsWith(this.pattern);
944
+
945
+ return {
946
+ isMatch,
947
+ score: isMatch ? 0 : 1,
948
+ indices: [0, this.pattern.length - 1]
949
+ }
950
+ }
951
+ }
952
+
953
+ // Token: !^fire
954
+
955
+ class InversePrefixExactMatch extends BaseMatch {
956
+ constructor(pattern) {
957
+ super(pattern);
958
+ }
959
+ static get type() {
960
+ return 'inverse-prefix-exact'
961
+ }
962
+ static get multiRegex() {
963
+ return /^!\^"(.*)"$/
964
+ }
965
+ static get singleRegex() {
966
+ return /^!\^(.*)$/
967
+ }
968
+ search(text) {
969
+ const isMatch = !text.startsWith(this.pattern);
970
+
971
+ return {
972
+ isMatch,
973
+ score: isMatch ? 0 : 1,
974
+ indices: [0, text.length - 1]
975
+ }
976
+ }
977
+ }
978
+
979
+ // Token: .file$
980
+
981
+ class SuffixExactMatch extends BaseMatch {
982
+ constructor(pattern) {
983
+ super(pattern);
984
+ }
985
+ static get type() {
986
+ return 'suffix-exact'
987
+ }
988
+ static get multiRegex() {
989
+ return /^"(.*)"\$$/
990
+ }
991
+ static get singleRegex() {
992
+ return /^(.*)\$$/
993
+ }
994
+ search(text) {
995
+ const isMatch = text.endsWith(this.pattern);
996
+
997
+ return {
998
+ isMatch,
999
+ score: isMatch ? 0 : 1,
1000
+ indices: [text.length - this.pattern.length, text.length - 1]
1001
+ }
1002
+ }
1003
+ }
1004
+
1005
+ // Token: !.file$
1006
+
1007
+ class InverseSuffixExactMatch extends BaseMatch {
1008
+ constructor(pattern) {
1009
+ super(pattern);
1010
+ }
1011
+ static get type() {
1012
+ return 'inverse-suffix-exact'
1013
+ }
1014
+ static get multiRegex() {
1015
+ return /^!"(.*)"\$$/
1016
+ }
1017
+ static get singleRegex() {
1018
+ return /^!(.*)\$$/
1019
+ }
1020
+ search(text) {
1021
+ const isMatch = !text.endsWith(this.pattern);
1022
+ return {
1023
+ isMatch,
1024
+ score: isMatch ? 0 : 1,
1025
+ indices: [0, text.length - 1]
1026
+ }
1027
+ }
1028
+ }
1029
+
1030
+ class FuzzyMatch extends BaseMatch {
1031
+ constructor(
1032
+ pattern,
1033
+ {
1034
+ location = Config.location,
1035
+ threshold = Config.threshold,
1036
+ distance = Config.distance,
1037
+ includeMatches = Config.includeMatches,
1038
+ findAllMatches = Config.findAllMatches,
1039
+ minMatchCharLength = Config.minMatchCharLength,
1040
+ isCaseSensitive = Config.isCaseSensitive,
1041
+ ignoreLocation = Config.ignoreLocation
1042
+ } = {}
1043
+ ) {
1044
+ super(pattern);
1045
+ this._bitapSearch = new BitapSearch(pattern, {
1046
+ location,
1047
+ threshold,
1048
+ distance,
1049
+ includeMatches,
1050
+ findAllMatches,
1051
+ minMatchCharLength,
1052
+ isCaseSensitive,
1053
+ ignoreLocation
1054
+ });
1055
+ }
1056
+ static get type() {
1057
+ return 'fuzzy'
1058
+ }
1059
+ static get multiRegex() {
1060
+ return /^"(.*)"$/
1061
+ }
1062
+ static get singleRegex() {
1063
+ return /^(.*)$/
1064
+ }
1065
+ search(text) {
1066
+ return this._bitapSearch.searchIn(text)
1067
+ }
1068
+ }
1069
+
1070
+ // Token: 'file
1071
+
1072
+ class IncludeMatch extends BaseMatch {
1073
+ constructor(pattern) {
1074
+ super(pattern);
1075
+ }
1076
+ static get type() {
1077
+ return 'include'
1078
+ }
1079
+ static get multiRegex() {
1080
+ return /^'"(.*)"$/
1081
+ }
1082
+ static get singleRegex() {
1083
+ return /^'(.*)$/
1084
+ }
1085
+ search(text) {
1086
+ let location = 0;
1087
+ let index;
1088
+
1089
+ const indices = [];
1090
+ const patternLen = this.pattern.length;
1091
+
1092
+ // Get all exact matches
1093
+ while ((index = text.indexOf(this.pattern, location)) > -1) {
1094
+ location = index + patternLen;
1095
+ indices.push([index, location - 1]);
1096
+ }
1097
+
1098
+ const isMatch = !!indices.length;
1099
+
1100
+ return {
1101
+ isMatch,
1102
+ score: isMatch ? 0 : 1,
1103
+ indices
1104
+ }
1105
+ }
1106
+ }
1107
+
1108
+ // ❗Order is important. DO NOT CHANGE.
1109
+ const searchers = [
1110
+ ExactMatch,
1111
+ IncludeMatch,
1112
+ PrefixExactMatch,
1113
+ InversePrefixExactMatch,
1114
+ InverseSuffixExactMatch,
1115
+ SuffixExactMatch,
1116
+ InverseExactMatch,
1117
+ FuzzyMatch
1118
+ ];
1119
+
1120
+ const searchersLen = searchers.length;
1121
+
1122
+ // Regex to split by spaces, but keep anything in quotes together
1123
+ const SPACE_RE = / +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/;
1124
+ const OR_TOKEN = '|';
1125
+
1126
+ // Return a 2D array representation of the query, for simpler parsing.
1127
+ // Example:
1128
+ // "^core go$ | rb$ | py$ xy$" => [["^core", "go$"], ["rb$"], ["py$", "xy$"]]
1129
+ function parseQuery(pattern, options = {}) {
1130
+ return pattern.split(OR_TOKEN).map((item) => {
1131
+ let query = item
1132
+ .trim()
1133
+ .split(SPACE_RE)
1134
+ .filter((item) => item && !!item.trim());
1135
+
1136
+ let results = [];
1137
+ for (let i = 0, len = query.length; i < len; i += 1) {
1138
+ const queryItem = query[i];
1139
+
1140
+ // 1. Handle multiple query match (i.e, once that are quoted, like `"hello world"`)
1141
+ let found = false;
1142
+ let idx = -1;
1143
+ while (!found && ++idx < searchersLen) {
1144
+ const searcher = searchers[idx];
1145
+ let token = searcher.isMultiMatch(queryItem);
1146
+ if (token) {
1147
+ results.push(new searcher(token, options));
1148
+ found = true;
1149
+ }
1150
+ }
1151
+
1152
+ if (found) {
1153
+ continue
1154
+ }
1155
+
1156
+ // 2. Handle single query matches (i.e, once that are *not* quoted)
1157
+ idx = -1;
1158
+ while (++idx < searchersLen) {
1159
+ const searcher = searchers[idx];
1160
+ let token = searcher.isSingleMatch(queryItem);
1161
+ if (token) {
1162
+ results.push(new searcher(token, options));
1163
+ break
1164
+ }
1165
+ }
1166
+ }
1167
+
1168
+ return results
1169
+ })
1170
+ }
1171
+
1172
+ // These extended matchers can return an array of matches, as opposed
1173
+ // to a singl match
1174
+ const MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);
1175
+
1176
+ /**
1177
+ * Command-like searching
1178
+ * ======================
1179
+ *
1180
+ * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,
1181
+ * search in a given text.
1182
+ *
1183
+ * Search syntax:
1184
+ *
1185
+ * | Token | Match type | Description |
1186
+ * | ----------- | -------------------------- | -------------------------------------- |
1187
+ * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |
1188
+ * | `=scheme` | exact-match | Items that are `scheme` |
1189
+ * | `'python` | include-match | Items that include `python` |
1190
+ * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |
1191
+ * | `^java` | prefix-exact-match | Items that start with `java` |
1192
+ * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |
1193
+ * | `.js$` | suffix-exact-match | Items that end with `.js` |
1194
+ * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |
1195
+ *
1196
+ * A single pipe character acts as an OR operator. For example, the following
1197
+ * query matches entries that start with `core` and end with either`go`, `rb`,
1198
+ * or`py`.
1199
+ *
1200
+ * ```
1201
+ * ^core go$ | rb$ | py$
1202
+ * ```
1203
+ */
1204
+ class ExtendedSearch {
1205
+ constructor(
1206
+ pattern,
1207
+ {
1208
+ isCaseSensitive = Config.isCaseSensitive,
1209
+ includeMatches = Config.includeMatches,
1210
+ minMatchCharLength = Config.minMatchCharLength,
1211
+ ignoreLocation = Config.ignoreLocation,
1212
+ findAllMatches = Config.findAllMatches,
1213
+ location = Config.location,
1214
+ threshold = Config.threshold,
1215
+ distance = Config.distance
1216
+ } = {}
1217
+ ) {
1218
+ this.query = null;
1219
+ this.options = {
1220
+ isCaseSensitive,
1221
+ includeMatches,
1222
+ minMatchCharLength,
1223
+ findAllMatches,
1224
+ ignoreLocation,
1225
+ location,
1226
+ threshold,
1227
+ distance
1228
+ };
1229
+
1230
+ this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();
1231
+ this.query = parseQuery(this.pattern, this.options);
1232
+ }
1233
+
1234
+ static condition(_, options) {
1235
+ return options.useExtendedSearch
1236
+ }
1237
+
1238
+ searchIn(text) {
1239
+ const query = this.query;
1240
+
1241
+ if (!query) {
1242
+ return {
1243
+ isMatch: false,
1244
+ score: 1
1245
+ }
1246
+ }
1247
+
1248
+ const { includeMatches, isCaseSensitive } = this.options;
1249
+
1250
+ text = isCaseSensitive ? text : text.toLowerCase();
1251
+
1252
+ let numMatches = 0;
1253
+ let allIndices = [];
1254
+ let totalScore = 0;
1255
+
1256
+ // ORs
1257
+ for (let i = 0, qLen = query.length; i < qLen; i += 1) {
1258
+ const searchers = query[i];
1259
+
1260
+ // Reset indices
1261
+ allIndices.length = 0;
1262
+ numMatches = 0;
1263
+
1264
+ // ANDs
1265
+ for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {
1266
+ const searcher = searchers[j];
1267
+ const { isMatch, indices, score } = searcher.search(text);
1268
+
1269
+ if (isMatch) {
1270
+ numMatches += 1;
1271
+ totalScore += score;
1272
+ if (includeMatches) {
1273
+ const type = searcher.constructor.type;
1274
+ if (MultiMatchSet.has(type)) {
1275
+ allIndices = [...allIndices, ...indices];
1276
+ } else {
1277
+ allIndices.push(indices);
1278
+ }
1279
+ }
1280
+ } else {
1281
+ totalScore = 0;
1282
+ numMatches = 0;
1283
+ allIndices.length = 0;
1284
+ break
1285
+ }
1286
+ }
1287
+
1288
+ // OR condition, so if TRUE, return
1289
+ if (numMatches) {
1290
+ let result = {
1291
+ isMatch: true,
1292
+ score: totalScore / numMatches
1293
+ };
1294
+
1295
+ if (includeMatches) {
1296
+ result.indices = allIndices;
1297
+ }
1298
+
1299
+ return result
1300
+ }
1301
+ }
1302
+
1303
+ // Nothing was matched
1304
+ return {
1305
+ isMatch: false,
1306
+ score: 1
1307
+ }
1308
+ }
1309
+ }
1310
+
1311
+ const registeredSearchers = [];
1312
+
1313
+ function register(...args) {
1314
+ registeredSearchers.push(...args);
1315
+ }
1316
+
1317
+ function createSearcher(pattern, options) {
1318
+ for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {
1319
+ let searcherClass = registeredSearchers[i];
1320
+ if (searcherClass.condition(pattern, options)) {
1321
+ return new searcherClass(pattern, options)
1322
+ }
1323
+ }
1324
+
1325
+ return new BitapSearch(pattern, options)
1326
+ }
1327
+
1328
+ const LogicalOperator = {
1329
+ AND: '$and',
1330
+ OR: '$or'
1331
+ };
1332
+
1333
+ const KeyType = {
1334
+ PATH: '$path',
1335
+ PATTERN: '$val'
1336
+ };
1337
+
1338
+ const isExpression = (query) =>
1339
+ !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);
1340
+
1341
+ const isPath = (query) => !!query[KeyType.PATH];
1342
+
1343
+ const isLeaf = (query) =>
1344
+ !isArray(query) && isObject(query) && !isExpression(query);
1345
+
1346
+ const convertToExplicit = (query) => ({
1347
+ [LogicalOperator.AND]: Object.keys(query).map((key) => ({
1348
+ [key]: query[key]
1349
+ }))
1350
+ });
1351
+
1352
+ // When `auto` is `true`, the parse function will infer and initialize and add
1353
+ // the appropriate `Searcher` instance
1354
+ function parse(query, options, { auto = true } = {}) {
1355
+ const next = (query) => {
1356
+ let keys = Object.keys(query);
1357
+
1358
+ const isQueryPath = isPath(query);
1359
+
1360
+ if (!isQueryPath && keys.length > 1 && !isExpression(query)) {
1361
+ return next(convertToExplicit(query))
1362
+ }
1363
+
1364
+ if (isLeaf(query)) {
1365
+ const key = isQueryPath ? query[KeyType.PATH] : keys[0];
1366
+
1367
+ const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];
1368
+
1369
+ if (!isString(pattern)) {
1370
+ throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))
1371
+ }
1372
+
1373
+ const obj = {
1374
+ keyId: createKeyId(key),
1375
+ pattern
1376
+ };
1377
+
1378
+ if (auto) {
1379
+ obj.searcher = createSearcher(pattern, options);
1380
+ }
1381
+
1382
+ return obj
1383
+ }
1384
+
1385
+ let node = {
1386
+ children: [],
1387
+ operator: keys[0]
1388
+ };
1389
+
1390
+ keys.forEach((key) => {
1391
+ const value = query[key];
1392
+
1393
+ if (isArray(value)) {
1394
+ value.forEach((item) => {
1395
+ node.children.push(next(item));
1396
+ });
1397
+ }
1398
+ });
1399
+
1400
+ return node
1401
+ };
1402
+
1403
+ if (!isExpression(query)) {
1404
+ query = convertToExplicit(query);
1405
+ }
1406
+
1407
+ return next(query)
1408
+ }
1409
+
1410
+ // Practical scoring function
1411
+ function computeScore$1(
1412
+ results,
1413
+ { ignoreFieldNorm = Config.ignoreFieldNorm }
1414
+ ) {
1415
+ results.forEach((result) => {
1416
+ let totalScore = 1;
1417
+
1418
+ result.matches.forEach(({ key, norm, score }) => {
1419
+ const weight = key ? key.weight : null;
1420
+
1421
+ totalScore *= Math.pow(
1422
+ score === 0 && weight ? Number.EPSILON : score,
1423
+ (weight || 1) * (ignoreFieldNorm ? 1 : norm)
1424
+ );
1425
+ });
1426
+
1427
+ result.score = totalScore;
1428
+ });
1429
+ }
1430
+
1431
+ function transformMatches(result, data) {
1432
+ const matches = result.matches;
1433
+ data.matches = [];
1434
+
1435
+ if (!isDefined(matches)) {
1436
+ return
1437
+ }
1438
+
1439
+ matches.forEach((match) => {
1440
+ if (!isDefined(match.indices) || !match.indices.length) {
1441
+ return
1442
+ }
1443
+
1444
+ const { indices, value } = match;
1445
+
1446
+ let obj = {
1447
+ indices,
1448
+ value
1449
+ };
1450
+
1451
+ if (match.key) {
1452
+ obj.key = match.key.src;
1453
+ }
1454
+
1455
+ if (match.idx > -1) {
1456
+ obj.refIndex = match.idx;
1457
+ }
1458
+
1459
+ data.matches.push(obj);
1460
+ });
1461
+ }
1462
+
1463
+ function transformScore(result, data) {
1464
+ data.score = result.score;
1465
+ }
1466
+
1467
+ function format(
1468
+ results,
1469
+ docs,
1470
+ {
1471
+ includeMatches = Config.includeMatches,
1472
+ includeScore = Config.includeScore
1473
+ } = {}
1474
+ ) {
1475
+ const transformers = [];
1476
+
1477
+ if (includeMatches) transformers.push(transformMatches);
1478
+ if (includeScore) transformers.push(transformScore);
1479
+
1480
+ return results.map((result) => {
1481
+ const { idx } = result;
1482
+
1483
+ const data = {
1484
+ item: docs[idx],
1485
+ refIndex: idx
1486
+ };
1487
+
1488
+ if (transformers.length) {
1489
+ transformers.forEach((transformer) => {
1490
+ transformer(result, data);
1491
+ });
1492
+ }
1493
+
1494
+ return data
1495
+ })
1496
+ }
1497
+
1498
+ class Fuse {
1499
+ constructor(docs, options = {}, index) {
1500
+ this.options = { ...Config, ...options };
1501
+
1502
+ if (
1503
+ this.options.useExtendedSearch &&
1504
+ !true
1505
+ ) {
1506
+ throw new Error(EXTENDED_SEARCH_UNAVAILABLE)
1507
+ }
1508
+
1509
+ this._keyStore = new KeyStore(this.options.keys);
1510
+
1511
+ this.setCollection(docs, index);
1512
+ }
1513
+
1514
+ setCollection(docs, index) {
1515
+ this._docs = docs;
1516
+
1517
+ if (index && !(index instanceof FuseIndex)) {
1518
+ throw new Error(INCORRECT_INDEX_TYPE)
1519
+ }
1520
+
1521
+ this._myIndex =
1522
+ index ||
1523
+ createIndex(this.options.keys, this._docs, {
1524
+ getFn: this.options.getFn
1525
+ });
1526
+ }
1527
+
1528
+ add(doc) {
1529
+ if (!isDefined(doc)) {
1530
+ return
1531
+ }
1532
+
1533
+ this._docs.push(doc);
1534
+ this._myIndex.add(doc);
1535
+ }
1536
+
1537
+ remove(predicate = (/* doc, idx */) => false) {
1538
+ const results = [];
1539
+
1540
+ for (let i = 0, len = this._docs.length; i < len; i += 1) {
1541
+ const doc = this._docs[i];
1542
+ if (predicate(doc, i)) {
1543
+ this.removeAt(i);
1544
+ i -= 1;
1545
+ len -= 1;
1546
+
1547
+ results.push(doc);
1548
+ }
1549
+ }
1550
+
1551
+ return results
1552
+ }
1553
+
1554
+ removeAt(idx) {
1555
+ this._docs.splice(idx, 1);
1556
+ this._myIndex.removeAt(idx);
1557
+ }
1558
+
1559
+ getIndex() {
1560
+ return this._myIndex
1561
+ }
1562
+
1563
+ search(query, { limit = -1 } = {}) {
1564
+ const {
1565
+ includeMatches,
1566
+ includeScore,
1567
+ shouldSort,
1568
+ sortFn,
1569
+ ignoreFieldNorm
1570
+ } = this.options;
1571
+
1572
+ let results = isString(query)
1573
+ ? isString(this._docs[0])
1574
+ ? this._searchStringList(query)
1575
+ : this._searchObjectList(query)
1576
+ : this._searchLogical(query);
1577
+
1578
+ computeScore$1(results, { ignoreFieldNorm });
1579
+
1580
+ if (shouldSort) {
1581
+ results.sort(sortFn);
1582
+ }
1583
+
1584
+ if (isNumber(limit) && limit > -1) {
1585
+ results = results.slice(0, limit);
1586
+ }
1587
+
1588
+ return format(results, this._docs, {
1589
+ includeMatches,
1590
+ includeScore
1591
+ })
1592
+ }
1593
+
1594
+ _searchStringList(query) {
1595
+ const searcher = createSearcher(query, this.options);
1596
+ const { records } = this._myIndex;
1597
+ const results = [];
1598
+
1599
+ // Iterate over every string in the index
1600
+ records.forEach(({ v: text, i: idx, n: norm }) => {
1601
+ if (!isDefined(text)) {
1602
+ return
1603
+ }
1604
+
1605
+ const { isMatch, score, indices } = searcher.searchIn(text);
1606
+
1607
+ if (isMatch) {
1608
+ results.push({
1609
+ item: text,
1610
+ idx,
1611
+ matches: [{ score, value: text, norm, indices }]
1612
+ });
1613
+ }
1614
+ });
1615
+
1616
+ return results
1617
+ }
1618
+
1619
+ _searchLogical(query) {
1620
+
1621
+ const expression = parse(query, this.options);
1622
+
1623
+ const evaluate = (node, item, idx) => {
1624
+ if (!node.children) {
1625
+ const { keyId, searcher } = node;
1626
+
1627
+ const matches = this._findMatches({
1628
+ key: this._keyStore.get(keyId),
1629
+ value: this._myIndex.getValueForItemAtKeyId(item, keyId),
1630
+ searcher
1631
+ });
1632
+
1633
+ if (matches && matches.length) {
1634
+ return [
1635
+ {
1636
+ idx,
1637
+ item,
1638
+ matches
1639
+ }
1640
+ ]
1641
+ }
1642
+
1643
+ return []
1644
+ }
1645
+
1646
+ /*eslint indent: [2, 2, {"SwitchCase": 1}]*/
1647
+ switch (node.operator) {
1648
+ case LogicalOperator.AND: {
1649
+ const res = [];
1650
+ for (let i = 0, len = node.children.length; i < len; i += 1) {
1651
+ const child = node.children[i];
1652
+ const result = evaluate(child, item, idx);
1653
+ if (result.length) {
1654
+ res.push(...result);
1655
+ } else {
1656
+ return []
1657
+ }
1658
+ }
1659
+ return res
1660
+ }
1661
+ case LogicalOperator.OR: {
1662
+ const res = [];
1663
+ for (let i = 0, len = node.children.length; i < len; i += 1) {
1664
+ const child = node.children[i];
1665
+ const result = evaluate(child, item, idx);
1666
+ if (result.length) {
1667
+ res.push(...result);
1668
+ break
1669
+ }
1670
+ }
1671
+ return res
1672
+ }
1673
+ }
1674
+ };
1675
+
1676
+ const records = this._myIndex.records;
1677
+ const resultMap = {};
1678
+ const results = [];
1679
+
1680
+ records.forEach(({ $: item, i: idx }) => {
1681
+ if (isDefined(item)) {
1682
+ let expResults = evaluate(expression, item, idx);
1683
+
1684
+ if (expResults.length) {
1685
+ // Dedupe when adding
1686
+ if (!resultMap[idx]) {
1687
+ resultMap[idx] = { idx, item, matches: [] };
1688
+ results.push(resultMap[idx]);
1689
+ }
1690
+ expResults.forEach(({ matches }) => {
1691
+ resultMap[idx].matches.push(...matches);
1692
+ });
1693
+ }
1694
+ }
1695
+ });
1696
+
1697
+ return results
1698
+ }
1699
+
1700
+ _searchObjectList(query) {
1701
+ const searcher = createSearcher(query, this.options);
1702
+ const { keys, records } = this._myIndex;
1703
+ const results = [];
1704
+
1705
+ // List is Array<Object>
1706
+ records.forEach(({ $: item, i: idx }) => {
1707
+ if (!isDefined(item)) {
1708
+ return
1709
+ }
1710
+
1711
+ let matches = [];
1712
+
1713
+ // Iterate over every key (i.e, path), and fetch the value at that key
1714
+ keys.forEach((key, keyIndex) => {
1715
+ matches.push(
1716
+ ...this._findMatches({
1717
+ key,
1718
+ value: item[keyIndex],
1719
+ searcher
1720
+ })
1721
+ );
1722
+ });
1723
+
1724
+ if (matches.length) {
1725
+ results.push({
1726
+ idx,
1727
+ item,
1728
+ matches
1729
+ });
1730
+ }
1731
+ });
1732
+
1733
+ return results
1734
+ }
1735
+ _findMatches({ key, value, searcher }) {
1736
+ if (!isDefined(value)) {
1737
+ return []
1738
+ }
1739
+
1740
+ let matches = [];
1741
+
1742
+ if (isArray(value)) {
1743
+ value.forEach(({ v: text, i: idx, n: norm }) => {
1744
+ if (!isDefined(text)) {
1745
+ return
1746
+ }
1747
+
1748
+ const { isMatch, score, indices } = searcher.searchIn(text);
1749
+
1750
+ if (isMatch) {
1751
+ matches.push({
1752
+ score,
1753
+ key,
1754
+ value: text,
1755
+ idx,
1756
+ norm,
1757
+ indices
1758
+ });
1759
+ }
1760
+ });
1761
+ } else {
1762
+ const { v: text, n: norm } = value;
1763
+
1764
+ const { isMatch, score, indices } = searcher.searchIn(text);
1765
+
1766
+ if (isMatch) {
1767
+ matches.push({ score, key, value: text, norm, indices });
1768
+ }
1769
+ }
1770
+
1771
+ return matches
1772
+ }
1773
+ }
1774
+
1775
+ Fuse.version = '6.4.6';
1776
+ Fuse.createIndex = createIndex;
1777
+ Fuse.parseIndex = parseIndex;
1778
+ Fuse.config = Config;
1779
+
1780
+ {
1781
+ Fuse.parseQuery = parse;
1782
+ }
1783
+
1784
+ {
1785
+ register(ExtendedSearch);
1786
+ }
1787
+
1788
+ const selectFilterCss = ".sc-road-select-filter-h{position:relative;display:block}.select-filter-list.sc-road-select-filter{position:absolute;top:3rem;z-index:1;width:100%;max-height:16rem;padding:0.5rem 0;margin:0;overflow-y:scroll;font-family:var(--font, sans-serif);font-size:0.875rem;color:var(--text);list-style-type:none;background:var(--white);border-radius:0 0 0.25rem 0.25rem;-webkit-box-shadow:0 3px 6px rgba(0, 0, 0, 0.16);box-shadow:0 3px 6px rgba(0, 0, 0, 0.16)}.select-filter-item.sc-road-select-filter{padding:0.75rem 1rem;cursor:pointer}.select-filter-item.sc-road-select-filter:hover,.select-filter-item.highlight.sc-road-select-filter{color:var(--secondary-contrast);background:var(--secondary)}";
1789
+
1790
+ let SelectFilter = class {
1791
+ constructor(hostRef) {
1792
+ index.registerInstance(this, hostRef);
1793
+ this.roadSelected = index.createEvent(this, "roadSelected", 7);
1794
+ this.isOpen = false;
1795
+ this.currentValue = '';
1796
+ /**
1797
+ * List of options of the select
1798
+ */
1799
+ this.options = [];
1800
+ /**
1801
+ * Options to pass to the fuse.js instance.
1802
+ * See https://fusejs.io/api/options.html for valid options
1803
+ */
1804
+ this.parameters = {
1805
+ keys: ["value", "label"],
1806
+ threshold: 0.3,
1807
+ ignoreLocation: true,
1808
+ };
1809
+ /**
1810
+ * If `false`, the user can submit custom value
1811
+ */
1812
+ this.onlySelect = true;
1813
+ this.onClick = (value, label) => {
1814
+ this.el.querySelector('road-input').value = label;
1815
+ this.isOpen = false;
1816
+ this.roadSelected.emit({
1817
+ value: value.toString(),
1818
+ label: label,
1819
+ });
1820
+ };
1821
+ }
1822
+ handleFocus() {
1823
+ this.isOpen = true;
1824
+ }
1825
+ handleChange(event) {
1826
+ this.currentValue = event.detail.value.toLowerCase();
1827
+ }
1828
+ onClickOutside(event) {
1829
+ if (this.isOpen && !this.el.contains(event.target)) {
1830
+ this.isOpen = false;
1831
+ const value = this.el.querySelector('road-input').value;
1832
+ if (this.onlySelect && !this.options.some(option => option['label'] === value)) {
1833
+ this.el.querySelector('road-input').value = '';
1834
+ }
1835
+ }
1836
+ }
1837
+ render() {
1838
+ const fuseSearch = new Fuse(this.options, this.parameters);
1839
+ const options = this.currentValue === '' ? this.options.map((doc, idx) => ({ item: doc, score: 1, refIndex: idx })) : fuseSearch.search(this.currentValue);
1840
+ return (index.h(index.Host, null, index.h("slot", null), this.isOpen &&
1841
+ index.h("ul", { class: "select-filter-list", role: "listbox" }, options.map(option => (index.h("li", { class: "select-filter-item", role: "option", onClick: () => this.onClick(option.item.value, option.item.label.replace(/(<([^>]+)>)/gi, "")), innerHTML: option.item.label }))))));
1842
+ }
1843
+ get el() { return index.getElement(this); }
1844
+ };
1845
+ SelectFilter.style = selectFilterCss;
1846
+
1847
+ exports.road_select_filter = SelectFilter;