vue-instantsearch 4.7.0 → 4.7.2

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 (425) hide show
  1. package/README.md +14 -2
  2. package/package.json +20 -104
  3. package/src/__tests__/index.js +12 -3
  4. package/src/components/Autocomplete.vue +4 -5
  5. package/src/components/Breadcrumb.vue +9 -6
  6. package/src/components/ClearRefinements.vue +2 -5
  7. package/src/components/Configure.js +1 -1
  8. package/src/components/CurrentRefinements.vue +6 -9
  9. package/src/components/DynamicWidgets.js +6 -4
  10. package/src/components/HierarchicalMenu.vue +4 -5
  11. package/src/components/HierarchicalMenuList.vue +3 -6
  12. package/src/components/Highlighter.vue +6 -7
  13. package/src/components/Hits.vue +4 -5
  14. package/src/components/HitsPerPage.vue +8 -13
  15. package/src/components/Index.js +1 -1
  16. package/src/components/InfiniteHits.vue +18 -10
  17. package/src/components/InstantSearch.js +1 -1
  18. package/src/components/InstantSearchSsr.js +1 -1
  19. package/src/components/Menu.vue +7 -5
  20. package/src/components/MenuSelect.vue +5 -9
  21. package/src/components/NumericMenu.vue +1 -1
  22. package/src/components/Pagination.vue +20 -30
  23. package/src/components/Panel.vue +4 -16
  24. package/src/components/PoweredBy.vue +2 -2
  25. package/src/components/QueryRuleCustomData.vue +3 -12
  26. package/src/components/RangeInput.vue +10 -8
  27. package/src/components/RatingMenu.vue +11 -22
  28. package/src/components/RefinementList.vue +12 -29
  29. package/src/components/RelevantSort.vue +9 -21
  30. package/src/components/SearchBox.vue +10 -40
  31. package/src/components/SearchInput.vue +12 -17
  32. package/src/components/SortBy.vue +4 -5
  33. package/src/components/StateResults.vue +2 -7
  34. package/src/components/Stats.vue +8 -5
  35. package/src/components/ToggleRefinement.vue +4 -5
  36. package/src/components/VoiceSearch.vue +10 -50
  37. package/src/components/__Template.vue +7 -17
  38. package/src/components/__tests__/Autocomplete.js +7 -1
  39. package/src/components/__tests__/Breadcrumb.js +7 -2
  40. package/src/components/__tests__/ClearRefinements.js +6 -1
  41. package/src/components/__tests__/Configure.js +7 -2
  42. package/src/components/__tests__/ConfigureRelatedItems.js +7 -2
  43. package/src/components/__tests__/CurrentRefinements.js +6 -0
  44. package/src/components/__tests__/DynamicWidgets.js +8 -3
  45. package/src/components/__tests__/ExperimentalDynamicWidgets.js +9 -1
  46. package/src/components/__tests__/HierarchicalMenu.js +12 -4
  47. package/src/components/__tests__/Highlight.js +5 -0
  48. package/src/components/__tests__/Hits.js +5 -0
  49. package/src/components/__tests__/HitsPerPage.js +5 -0
  50. package/src/components/__tests__/Index-integration.js +5 -0
  51. package/src/components/__tests__/Index.js +7 -1
  52. package/src/components/__tests__/InfiniteHits.js +7 -2
  53. package/src/components/__tests__/InstantSearch-integration.js +6 -1
  54. package/src/components/__tests__/InstantSearch.js +18 -5
  55. package/src/components/__tests__/InstantSearchSsr.js +6 -1
  56. package/src/components/__tests__/Menu.js +8 -3
  57. package/src/components/__tests__/MenuSelect.js +5 -0
  58. package/src/components/__tests__/NumericMenu.js +6 -1
  59. package/src/components/__tests__/Pagination.js +5 -0
  60. package/src/components/__tests__/Panel.js +5 -0
  61. package/src/components/__tests__/PoweredBy.js +6 -1
  62. package/src/components/__tests__/QueryRuleContext.js +5 -0
  63. package/src/components/__tests__/QueryRuleCustomData.js +5 -0
  64. package/src/components/__tests__/RangeInput.js +5 -0
  65. package/src/components/__tests__/RatingMenu.js +5 -0
  66. package/src/components/__tests__/RefinementList.js +7 -2
  67. package/src/components/__tests__/RelevantSort.js +7 -1
  68. package/src/components/__tests__/SearchBox.js +15 -10
  69. package/src/components/__tests__/Snippet.js +5 -0
  70. package/src/components/__tests__/SortBy.js +5 -0
  71. package/src/components/__tests__/StateResults.js +35 -9
  72. package/src/components/__tests__/Stats.js +5 -0
  73. package/src/components/__tests__/ToggleRefinement.js +5 -0
  74. package/src/components/__tests__/VoiceSearch.js +6 -1
  75. package/src/components/__tests__/__Template.js +5 -0
  76. package/src/components/__tests__/__snapshots__/PoweredBy.js.snap +2 -2
  77. package/src/components/__tests__/__snapshots__/__Template.js.snap +0 -345
  78. package/src/connectors/connectStateResults.js +31 -31
  79. package/src/mixins/__tests__/panel.test.js +4 -0
  80. package/src/mixins/__tests__/suit.test.js +4 -0
  81. package/src/mixins/__tests__/widget.test.js +8 -4
  82. package/src/mixins/panel.js +2 -2
  83. package/src/plugin.js +1 -1
  84. package/src/util/__tests__/createServerRootMixin.test.js +266 -206
  85. package/src/util/__tests__/parseAlgoliaHit.test.js +1 -1
  86. package/src/util/createInstantSearchComponent.js +7 -7
  87. package/src/util/createServerRootMixin.js +17 -16
  88. package/src/util/parseAlgoliaHit.js +3 -3
  89. package/src/util/polyfills.js +1 -0
  90. package/src/util/testutils/client.js +1 -1
  91. package/src/util/unescape.js +1 -1
  92. package/src/util/vue-compat/index-vue2.js +1 -1
  93. package/src/util/vue-compat/index-vue3.js +1 -1
  94. package/src/widgets.js +7 -21
  95. package/vue2/cjs/index.js +1 -1
  96. package/vue2/cjs/index.js.map +1 -1
  97. package/vue2/es/package.json.js +1 -1
  98. package/vue2/es/src/components/Autocomplete.vue.js +1 -1
  99. package/vue2/es/src/components/Autocomplete.vue.js.map +1 -1
  100. package/vue2/es/src/components/Autocomplete.vue_rollup-plugin-vue=script.js +2 -0
  101. package/vue2/es/src/components/Autocomplete.vue_rollup-plugin-vue=script.js.map +1 -0
  102. package/vue2/es/src/components/Breadcrumb.vue.js +1 -1
  103. package/vue2/es/src/components/Breadcrumb.vue.js.map +1 -1
  104. package/vue2/es/src/components/Breadcrumb.vue_rollup-plugin-vue=script.js +2 -0
  105. package/vue2/es/src/components/Breadcrumb.vue_rollup-plugin-vue=script.js.map +1 -0
  106. package/vue2/es/src/components/ClearRefinements.vue.js +1 -1
  107. package/vue2/es/src/components/ClearRefinements.vue.js.map +1 -1
  108. package/vue2/es/src/components/ClearRefinements.vue_rollup-plugin-vue=script.js +2 -0
  109. package/vue2/es/src/components/ClearRefinements.vue_rollup-plugin-vue=script.js.map +1 -0
  110. package/vue2/es/src/components/Configure.js.map +1 -1
  111. package/vue2/es/src/components/ConfigureRelatedItems.js.map +1 -1
  112. package/vue2/es/src/components/CurrentRefinements.vue.js +1 -1
  113. package/vue2/es/src/components/CurrentRefinements.vue.js.map +1 -1
  114. package/vue2/es/src/components/CurrentRefinements.vue_rollup-plugin-vue=script.js +2 -0
  115. package/vue2/es/src/components/CurrentRefinements.vue_rollup-plugin-vue=script.js.map +1 -0
  116. package/vue2/es/src/components/DynamicWidgets.js.map +1 -1
  117. package/vue2/es/src/components/HierarchicalMenu.vue.js +1 -1
  118. package/vue2/es/src/components/HierarchicalMenu.vue.js.map +1 -1
  119. package/vue2/es/src/components/HierarchicalMenu.vue_rollup-plugin-vue=script.js +2 -0
  120. package/vue2/es/src/components/HierarchicalMenu.vue_rollup-plugin-vue=script.js.map +1 -0
  121. package/vue2/es/src/components/HierarchicalMenuList.vue.js +1 -1
  122. package/vue2/es/src/components/HierarchicalMenuList.vue.js.map +1 -1
  123. package/vue2/es/src/components/HierarchicalMenuList.vue_rollup-plugin-vue=script.js +2 -0
  124. package/vue2/es/src/components/HierarchicalMenuList.vue_rollup-plugin-vue=script.js.map +1 -0
  125. package/vue2/es/src/components/Highlight.vue.js +1 -1
  126. package/vue2/es/src/components/Highlight.vue.js.map +1 -1
  127. package/vue2/es/src/components/Highlight.vue_rollup-plugin-vue=script.js +2 -0
  128. package/vue2/es/src/components/Highlight.vue_rollup-plugin-vue=script.js.map +1 -0
  129. package/vue2/es/src/components/Highlighter.vue.js +1 -1
  130. package/vue2/es/src/components/Highlighter.vue.js.map +1 -1
  131. package/vue2/es/src/components/Highlighter.vue_rollup-plugin-vue=script.js +2 -0
  132. package/vue2/es/src/components/Highlighter.vue_rollup-plugin-vue=script.js.map +1 -0
  133. package/vue2/es/src/components/Hits.vue.js +1 -1
  134. package/vue2/es/src/components/Hits.vue.js.map +1 -1
  135. package/vue2/es/src/components/Hits.vue_rollup-plugin-vue=script.js +2 -0
  136. package/vue2/es/src/components/Hits.vue_rollup-plugin-vue=script.js.map +1 -0
  137. package/vue2/es/src/components/HitsPerPage.vue.js +1 -1
  138. package/vue2/es/src/components/HitsPerPage.vue.js.map +1 -1
  139. package/vue2/es/src/components/HitsPerPage.vue_rollup-plugin-vue=script.js +2 -0
  140. package/vue2/es/src/components/HitsPerPage.vue_rollup-plugin-vue=script.js.map +1 -0
  141. package/vue2/es/src/components/Index.js.map +1 -1
  142. package/vue2/es/src/components/InfiniteHits.vue.js +1 -1
  143. package/vue2/es/src/components/InfiniteHits.vue.js.map +1 -1
  144. package/vue2/es/src/components/InfiniteHits.vue_rollup-plugin-vue=script.js +2 -0
  145. package/vue2/es/src/components/InfiniteHits.vue_rollup-plugin-vue=script.js.map +1 -0
  146. package/vue2/es/src/components/InstantSearch.js.map +1 -1
  147. package/vue2/es/src/components/InstantSearchSsr.js.map +1 -1
  148. package/vue2/es/src/components/Menu.vue.js +1 -1
  149. package/vue2/es/src/components/Menu.vue.js.map +1 -1
  150. package/vue2/es/src/components/Menu.vue_rollup-plugin-vue=script.js +2 -0
  151. package/vue2/es/src/components/Menu.vue_rollup-plugin-vue=script.js.map +1 -0
  152. package/vue2/es/src/components/MenuSelect.vue.js +1 -1
  153. package/vue2/es/src/components/MenuSelect.vue.js.map +1 -1
  154. package/vue2/es/src/components/MenuSelect.vue_rollup-plugin-vue=script.js +2 -0
  155. package/vue2/es/src/components/MenuSelect.vue_rollup-plugin-vue=script.js.map +1 -0
  156. package/vue2/es/src/components/NumericMenu.vue.js +1 -1
  157. package/vue2/es/src/components/NumericMenu.vue.js.map +1 -1
  158. package/vue2/es/src/components/NumericMenu.vue_rollup-plugin-vue=script.js +2 -0
  159. package/vue2/es/src/components/NumericMenu.vue_rollup-plugin-vue=script.js.map +1 -0
  160. package/vue2/es/src/components/Pagination.vue.js +1 -1
  161. package/vue2/es/src/components/Pagination.vue.js.map +1 -1
  162. package/vue2/es/src/components/Pagination.vue_rollup-plugin-vue=script.js +2 -0
  163. package/vue2/es/src/components/Pagination.vue_rollup-plugin-vue=script.js.map +1 -0
  164. package/vue2/es/src/components/Panel.vue.js +1 -1
  165. package/vue2/es/src/components/Panel.vue.js.map +1 -1
  166. package/vue2/es/src/components/Panel.vue_rollup-plugin-vue=script.js +2 -0
  167. package/vue2/es/src/components/Panel.vue_rollup-plugin-vue=script.js.map +1 -0
  168. package/vue2/es/src/components/PoweredBy.vue.js +1 -1
  169. package/vue2/es/src/components/PoweredBy.vue.js.map +1 -1
  170. package/vue2/es/src/components/PoweredBy.vue_rollup-plugin-vue=script.js +2 -0
  171. package/vue2/es/src/components/PoweredBy.vue_rollup-plugin-vue=script.js.map +1 -0
  172. package/vue2/es/src/components/QueryRuleContext.js.map +1 -1
  173. package/vue2/es/src/components/QueryRuleCustomData.vue.js +1 -1
  174. package/vue2/es/src/components/QueryRuleCustomData.vue.js.map +1 -1
  175. package/vue2/es/src/components/QueryRuleCustomData.vue_rollup-plugin-vue=script.js +2 -0
  176. package/vue2/es/src/components/QueryRuleCustomData.vue_rollup-plugin-vue=script.js.map +1 -0
  177. package/vue2/es/src/components/RangeInput.vue.js +1 -1
  178. package/vue2/es/src/components/RangeInput.vue.js.map +1 -1
  179. package/vue2/es/src/components/RangeInput.vue_rollup-plugin-vue=script.js +2 -0
  180. package/vue2/es/src/components/RangeInput.vue_rollup-plugin-vue=script.js.map +1 -0
  181. package/vue2/es/src/components/RatingMenu.vue.js +1 -1
  182. package/vue2/es/src/components/RatingMenu.vue.js.map +1 -1
  183. package/vue2/es/src/components/RatingMenu.vue_rollup-plugin-vue=script.js +2 -0
  184. package/vue2/es/src/components/RatingMenu.vue_rollup-plugin-vue=script.js.map +1 -0
  185. package/vue2/es/src/components/RefinementList.vue.js +1 -1
  186. package/vue2/es/src/components/RefinementList.vue.js.map +1 -1
  187. package/vue2/es/src/components/RefinementList.vue_rollup-plugin-vue=script.js +2 -0
  188. package/vue2/es/src/components/RefinementList.vue_rollup-plugin-vue=script.js.map +1 -0
  189. package/vue2/es/src/components/RelevantSort.vue.js +1 -1
  190. package/vue2/es/src/components/RelevantSort.vue.js.map +1 -1
  191. package/vue2/es/src/components/RelevantSort.vue_rollup-plugin-vue=script.js +2 -0
  192. package/vue2/es/src/components/RelevantSort.vue_rollup-plugin-vue=script.js.map +1 -0
  193. package/vue2/es/src/components/SearchBox.vue.js +1 -1
  194. package/vue2/es/src/components/SearchBox.vue.js.map +1 -1
  195. package/vue2/es/src/components/SearchBox.vue_rollup-plugin-vue=script.js +2 -0
  196. package/vue2/es/src/components/SearchBox.vue_rollup-plugin-vue=script.js.map +1 -0
  197. package/vue2/es/src/components/SearchInput.vue.js +1 -1
  198. package/vue2/es/src/components/SearchInput.vue.js.map +1 -1
  199. package/vue2/es/src/components/SearchInput.vue_rollup-plugin-vue=script.js +2 -0
  200. package/vue2/es/src/components/SearchInput.vue_rollup-plugin-vue=script.js.map +1 -0
  201. package/vue2/es/src/components/Snippet.vue.js +1 -1
  202. package/vue2/es/src/components/Snippet.vue.js.map +1 -1
  203. package/vue2/es/src/components/Snippet.vue_rollup-plugin-vue=script.js +2 -0
  204. package/vue2/es/src/components/Snippet.vue_rollup-plugin-vue=script.js.map +1 -0
  205. package/vue2/es/src/components/SortBy.vue.js +1 -1
  206. package/vue2/es/src/components/SortBy.vue.js.map +1 -1
  207. package/vue2/es/src/components/SortBy.vue_rollup-plugin-vue=script.js +2 -0
  208. package/vue2/es/src/components/SortBy.vue_rollup-plugin-vue=script.js.map +1 -0
  209. package/vue2/es/src/components/StateResults.vue.js +1 -1
  210. package/vue2/es/src/components/StateResults.vue.js.map +1 -1
  211. package/vue2/es/src/components/StateResults.vue_rollup-plugin-vue=script.js +2 -0
  212. package/vue2/es/src/components/StateResults.vue_rollup-plugin-vue=script.js.map +1 -0
  213. package/vue2/es/src/components/Stats.vue.js +1 -1
  214. package/vue2/es/src/components/Stats.vue.js.map +1 -1
  215. package/vue2/es/src/components/Stats.vue_rollup-plugin-vue=script.js +2 -0
  216. package/vue2/es/src/components/Stats.vue_rollup-plugin-vue=script.js.map +1 -0
  217. package/vue2/es/src/components/ToggleRefinement.vue.js +1 -1
  218. package/vue2/es/src/components/ToggleRefinement.vue.js.map +1 -1
  219. package/vue2/es/src/components/ToggleRefinement.vue_rollup-plugin-vue=script.js +2 -0
  220. package/vue2/es/src/components/ToggleRefinement.vue_rollup-plugin-vue=script.js.map +1 -0
  221. package/vue2/es/src/components/VoiceSearch.vue.js +1 -1
  222. package/vue2/es/src/components/VoiceSearch.vue.js.map +1 -1
  223. package/vue2/es/src/components/VoiceSearch.vue_rollup-plugin-vue=script.js +2 -0
  224. package/vue2/es/src/components/VoiceSearch.vue_rollup-plugin-vue=script.js.map +1 -0
  225. package/vue2/es/src/mixins/panel.js.map +1 -1
  226. package/vue2/es/src/mixins/suit.js.map +1 -1
  227. package/vue2/es/src/mixins/widget.js.map +1 -1
  228. package/vue2/es/src/plugin.js.map +1 -1
  229. package/vue2/es/src/util/createInstantSearchComponent.js +1 -1
  230. package/vue2/es/src/util/createInstantSearchComponent.js.map +1 -1
  231. package/vue2/es/src/util/createServerRootMixin.js +1 -1
  232. package/vue2/es/src/util/createServerRootMixin.js.map +1 -1
  233. package/vue2/es/src/util/parseAlgoliaHit.js.map +1 -1
  234. package/vue2/es/src/util/polyfills.js.map +1 -1
  235. package/vue2/es/src/util/suit.js.map +1 -1
  236. package/vue2/es/src/util/unescape.js.map +1 -1
  237. package/vue2/es/src/util/vue-compat/index-vue2.js.map +1 -1
  238. package/vue2/umd/index.js +1 -1
  239. package/vue2/umd/index.js.map +1 -1
  240. package/vue3/cjs/index.js +1 -1
  241. package/vue3/cjs/index.js.map +1 -1
  242. package/vue3/es/package.json.js +1 -1
  243. package/vue3/es/src/components/Autocomplete.vue.js +1 -1
  244. package/vue3/es/src/components/Autocomplete.vue_vue&type=script&lang.js.map +1 -1
  245. package/vue3/es/src/components/Autocomplete.vue_vue&type=template&id=7ca53d64&lang.js +2 -0
  246. package/vue3/es/src/components/Autocomplete.vue_vue&type=template&id=7ca53d64&lang.js.map +1 -0
  247. package/vue3/es/src/components/Breadcrumb.vue.js +1 -1
  248. package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js.map +1 -1
  249. package/vue3/es/src/components/{Breadcrumb.vue_vue&type=template&id=6f46de9a&lang.js → Breadcrumb.vue_vue&type=template&id=5374ac81&lang.js} +2 -2
  250. package/vue3/es/src/components/Breadcrumb.vue_vue&type=template&id=5374ac81&lang.js.map +1 -0
  251. package/vue3/es/src/components/ClearRefinements.vue.js +1 -1
  252. package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js.map +1 -1
  253. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=1b5799b9&lang.js +2 -0
  254. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=1b5799b9&lang.js.map +1 -0
  255. package/vue3/es/src/components/Configure.js.map +1 -1
  256. package/vue3/es/src/components/ConfigureRelatedItems.js.map +1 -1
  257. package/vue3/es/src/components/CurrentRefinements.vue.js +1 -1
  258. package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js.map +1 -1
  259. package/vue3/es/src/components/{CurrentRefinements.vue_vue&type=template&id=4f1917ff&lang.js → CurrentRefinements.vue_vue&type=template&id=6256a290&lang.js} +2 -2
  260. package/vue3/es/src/components/CurrentRefinements.vue_vue&type=template&id=6256a290&lang.js.map +1 -0
  261. package/vue3/es/src/components/DynamicWidgets.js.map +1 -1
  262. package/vue3/es/src/components/HierarchicalMenu.vue.js +1 -1
  263. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js.map +1 -1
  264. package/vue3/es/src/components/{HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js → HierarchicalMenu.vue_vue&type=template&id=3548a9a1&lang.js} +2 -2
  265. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=3548a9a1&lang.js.map +1 -0
  266. package/vue3/es/src/components/HierarchicalMenuList.vue.js +1 -1
  267. package/vue3/es/src/components/HierarchicalMenuList.vue_vue&type=script&lang.js.map +1 -1
  268. package/vue3/es/src/components/{HierarchicalMenuList.vue_vue&type=template&id=0435b314&lang.js → HierarchicalMenuList.vue_vue&type=template&id=45723c6c&lang.js} +2 -2
  269. package/vue3/es/src/components/HierarchicalMenuList.vue_vue&type=template&id=45723c6c&lang.js.map +1 -0
  270. package/vue3/es/src/components/Highlight.vue.js +1 -1
  271. package/vue3/es/src/components/{Highlight.vue_vue&type=template&id=300b0ab4&lang.js → Highlight.vue_vue&type=template&id=7592ff40&lang.js} +1 -1
  272. package/vue3/es/src/components/{Highlight.vue_vue&type=template&id=300b0ab4&lang.js.map → Highlight.vue_vue&type=template&id=7592ff40&lang.js.map} +1 -1
  273. package/vue3/es/src/components/Highlighter.vue.js +1 -1
  274. package/vue3/es/src/components/Highlighter.vue_vue&type=script&lang.js.map +1 -1
  275. package/vue3/es/src/components/{Highlighter.vue_vue&type=template&id=92153c3e&lang.js → Highlighter.vue_vue&type=template&id=11ec06d9&lang.js} +1 -1
  276. package/vue3/es/src/components/Highlighter.vue_vue&type=template&id=11ec06d9&lang.js.map +1 -0
  277. package/vue3/es/src/components/Hits.vue.js +1 -1
  278. package/vue3/es/src/components/Hits.vue_vue&type=script&lang.js.map +1 -1
  279. package/vue3/es/src/components/Hits.vue_vue&type=template&id=5bc4cfef&lang.js +2 -0
  280. package/vue3/es/src/components/Hits.vue_vue&type=template&id=5bc4cfef&lang.js.map +1 -0
  281. package/vue3/es/src/components/HitsPerPage.vue.js +1 -1
  282. package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js.map +1 -1
  283. package/vue3/es/src/components/{HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js → HitsPerPage.vue_vue&type=template&id=73c9813e&lang.js} +2 -2
  284. package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=73c9813e&lang.js.map +1 -0
  285. package/vue3/es/src/components/Index.js.map +1 -1
  286. package/vue3/es/src/components/InfiniteHits.vue.js +1 -1
  287. package/vue3/es/src/components/InfiniteHits.vue_vue&type=script&lang.js.map +1 -1
  288. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=0e2ba520&lang.js +2 -0
  289. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=0e2ba520&lang.js.map +1 -0
  290. package/vue3/es/src/components/InstantSearch.js.map +1 -1
  291. package/vue3/es/src/components/InstantSearchSsr.js.map +1 -1
  292. package/vue3/es/src/components/Menu.vue.js +1 -1
  293. package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js.map +1 -1
  294. package/vue3/es/src/components/{Menu.vue_vue&type=template&id=9bcc0be2&lang.js → Menu.vue_vue&type=template&id=577979d0&lang.js} +2 -2
  295. package/vue3/es/src/components/Menu.vue_vue&type=template&id=577979d0&lang.js.map +1 -0
  296. package/vue3/es/src/components/MenuSelect.vue.js +1 -1
  297. package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js.map +1 -1
  298. package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=12bad393&lang.js +2 -0
  299. package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=12bad393&lang.js.map +1 -0
  300. package/vue3/es/src/components/NumericMenu.vue.js +1 -1
  301. package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js.map +1 -1
  302. package/vue3/es/src/components/{NumericMenu.vue_vue&type=template&id=160fae0c&lang.js → NumericMenu.vue_vue&type=template&id=ada9761c&lang.js} +2 -2
  303. package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=ada9761c&lang.js.map +1 -0
  304. package/vue3/es/src/components/Pagination.vue.js +1 -1
  305. package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js.map +1 -1
  306. package/vue3/es/src/components/Pagination.vue_vue&type=template&id=189fc463&lang.js +2 -0
  307. package/vue3/es/src/components/Pagination.vue_vue&type=template&id=189fc463&lang.js.map +1 -0
  308. package/vue3/es/src/components/Panel.vue.js +1 -1
  309. package/vue3/es/src/components/Panel.vue_vue&type=script&lang.js.map +1 -1
  310. package/vue3/es/src/components/Panel.vue_vue&type=template&id=766abb5d&lang.js +2 -0
  311. package/vue3/es/src/components/Panel.vue_vue&type=template&id=766abb5d&lang.js.map +1 -0
  312. package/vue3/es/src/components/PoweredBy.vue.js +1 -1
  313. package/vue3/es/src/components/PoweredBy.vue_vue&type=script&lang.js.map +1 -1
  314. package/vue3/es/src/components/{PoweredBy.vue_vue&type=template&id=3e8d7a5b&lang.js → PoweredBy.vue_vue&type=template&id=85db7eac&lang.js} +1 -1
  315. package/vue3/es/src/components/PoweredBy.vue_vue&type=template&id=85db7eac&lang.js.map +1 -0
  316. package/vue3/es/src/components/QueryRuleContext.js.map +1 -1
  317. package/vue3/es/src/components/QueryRuleCustomData.vue.js +1 -1
  318. package/vue3/es/src/components/QueryRuleCustomData.vue_vue&type=script&lang.js.map +1 -1
  319. package/vue3/es/src/components/QueryRuleCustomData.vue_vue&type=template&id=31c98630&lang.js +2 -0
  320. package/vue3/es/src/components/QueryRuleCustomData.vue_vue&type=template&id=31c98630&lang.js.map +1 -0
  321. package/vue3/es/src/components/RangeInput.vue.js +1 -1
  322. package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js.map +1 -1
  323. package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=2c7c21d8&lang.js +2 -0
  324. package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=2c7c21d8&lang.js.map +1 -0
  325. package/vue3/es/src/components/RatingMenu.vue.js +1 -1
  326. package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js.map +1 -1
  327. package/vue3/es/src/components/{RatingMenu.vue_vue&type=template&id=9254de68&lang.js → RatingMenu.vue_vue&type=template&id=0fb40347&lang.js} +2 -2
  328. package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=0fb40347&lang.js.map +1 -0
  329. package/vue3/es/src/components/RefinementList.vue.js +1 -1
  330. package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js.map +1 -1
  331. package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=00083417&lang.js +2 -0
  332. package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=00083417&lang.js.map +1 -0
  333. package/vue3/es/src/components/RelevantSort.vue.js +1 -1
  334. package/vue3/es/src/components/RelevantSort.vue_vue&type=script&lang.js.map +1 -1
  335. package/vue3/es/src/components/RelevantSort.vue_vue&type=template&id=0d400606&lang.js +2 -0
  336. package/vue3/es/src/components/RelevantSort.vue_vue&type=template&id=0d400606&lang.js.map +1 -0
  337. package/vue3/es/src/components/SearchBox.vue.js +1 -1
  338. package/vue3/es/src/components/SearchBox.vue_vue&type=script&lang.js.map +1 -1
  339. package/vue3/es/src/components/SearchBox.vue_vue&type=template&id=30bd05ae&lang.js +2 -0
  340. package/vue3/es/src/components/SearchBox.vue_vue&type=template&id=30bd05ae&lang.js.map +1 -0
  341. package/vue3/es/src/components/SearchInput.vue.js +1 -1
  342. package/vue3/es/src/components/SearchInput.vue_vue&type=script&lang.js.map +1 -1
  343. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=084af36e&lang.js +2 -0
  344. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=084af36e&lang.js.map +1 -0
  345. package/vue3/es/src/components/Snippet.vue.js +1 -1
  346. package/vue3/es/src/components/{Snippet.vue_vue&type=template&id=eb4966c6&lang.js → Snippet.vue_vue&type=template&id=1cd4c392&lang.js} +1 -1
  347. package/vue3/es/src/components/{Snippet.vue_vue&type=template&id=eb4966c6&lang.js.map → Snippet.vue_vue&type=template&id=1cd4c392&lang.js.map} +1 -1
  348. package/vue3/es/src/components/SortBy.vue.js +1 -1
  349. package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js.map +1 -1
  350. package/vue3/es/src/components/{SortBy.vue_vue&type=template&id=b69b3b76&lang.js → SortBy.vue_vue&type=template&id=6a94a4c1&lang.js} +2 -2
  351. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=6a94a4c1&lang.js.map +1 -0
  352. package/vue3/es/src/components/StateResults.vue.js +1 -1
  353. package/vue3/es/src/components/StateResults.vue_vue&type=script&lang.js.map +1 -1
  354. package/vue3/es/src/components/StateResults.vue_vue&type=template&id=2ea5b184&lang.js +2 -0
  355. package/vue3/es/src/components/StateResults.vue_vue&type=template&id=2ea5b184&lang.js.map +1 -0
  356. package/vue3/es/src/components/Stats.vue.js +1 -1
  357. package/vue3/es/src/components/Stats.vue_vue&type=script&lang.js.map +1 -1
  358. package/vue3/es/src/components/{Stats.vue_vue&type=template&id=7337491f&lang.js → Stats.vue_vue&type=template&id=05ff9d6a&lang.js} +2 -2
  359. package/vue3/es/src/components/Stats.vue_vue&type=template&id=05ff9d6a&lang.js.map +1 -0
  360. package/vue3/es/src/components/ToggleRefinement.vue.js +1 -1
  361. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js.map +1 -1
  362. package/vue3/es/src/components/{ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js → ToggleRefinement.vue_vue&type=template&id=461db228&lang.js} +2 -2
  363. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=461db228&lang.js.map +1 -0
  364. package/vue3/es/src/components/VoiceSearch.vue.js +1 -1
  365. package/vue3/es/src/components/VoiceSearch.vue_vue&type=script&lang.js.map +1 -1
  366. package/vue3/es/src/components/{VoiceSearch.vue_vue&type=template&id=24b0f67a&lang.js → VoiceSearch.vue_vue&type=template&id=1cf17560&lang.js} +2 -2
  367. package/vue3/es/src/components/VoiceSearch.vue_vue&type=template&id=1cf17560&lang.js.map +1 -0
  368. package/vue3/es/src/mixins/panel.js.map +1 -1
  369. package/vue3/es/src/mixins/suit.js.map +1 -1
  370. package/vue3/es/src/mixins/widget.js.map +1 -1
  371. package/vue3/es/src/plugin.js.map +1 -1
  372. package/vue3/es/src/util/createInstantSearchComponent.js +1 -1
  373. package/vue3/es/src/util/createInstantSearchComponent.js.map +1 -1
  374. package/vue3/es/src/util/createServerRootMixin.js +1 -1
  375. package/vue3/es/src/util/createServerRootMixin.js.map +1 -1
  376. package/vue3/es/src/util/parseAlgoliaHit.js.map +1 -1
  377. package/vue3/es/src/util/polyfills.js.map +1 -1
  378. package/vue3/es/src/util/suit.js.map +1 -1
  379. package/vue3/es/src/util/unescape.js.map +1 -1
  380. package/vue3/es/src/util/vue-compat/index-vue3.js.map +1 -1
  381. package/vue3/umd/index.js +1 -1
  382. package/vue3/umd/index.js.map +1 -1
  383. package/CHANGELOG.md +0 -892
  384. package/vue3/es/src/components/Autocomplete.vue_vue&type=template&id=e7c95fd0&lang.js +0 -2
  385. package/vue3/es/src/components/Autocomplete.vue_vue&type=template&id=e7c95fd0&lang.js.map +0 -1
  386. package/vue3/es/src/components/Breadcrumb.vue_vue&type=template&id=6f46de9a&lang.js.map +0 -1
  387. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=410a3aaa&lang.js +0 -2
  388. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=410a3aaa&lang.js.map +0 -1
  389. package/vue3/es/src/components/CurrentRefinements.vue_vue&type=template&id=4f1917ff&lang.js.map +0 -1
  390. package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js.map +0 -1
  391. package/vue3/es/src/components/HierarchicalMenuList.vue_vue&type=template&id=0435b314&lang.js.map +0 -1
  392. package/vue3/es/src/components/Highlighter.vue_vue&type=template&id=92153c3e&lang.js.map +0 -1
  393. package/vue3/es/src/components/Hits.vue_vue&type=template&id=ef242920&lang.js +0 -2
  394. package/vue3/es/src/components/Hits.vue_vue&type=template&id=ef242920&lang.js.map +0 -1
  395. package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js.map +0 -1
  396. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=dcfb64b8&lang.js +0 -2
  397. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=dcfb64b8&lang.js.map +0 -1
  398. package/vue3/es/src/components/Menu.vue_vue&type=template&id=9bcc0be2&lang.js.map +0 -1
  399. package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=694477eb&lang.js +0 -2
  400. package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=694477eb&lang.js.map +0 -1
  401. package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js.map +0 -1
  402. package/vue3/es/src/components/Pagination.vue_vue&type=template&id=849a166c&lang.js +0 -2
  403. package/vue3/es/src/components/Pagination.vue_vue&type=template&id=849a166c&lang.js.map +0 -1
  404. package/vue3/es/src/components/Panel.vue_vue&type=template&id=d32d57f8&lang.js +0 -2
  405. package/vue3/es/src/components/Panel.vue_vue&type=template&id=d32d57f8&lang.js.map +0 -1
  406. package/vue3/es/src/components/PoweredBy.vue_vue&type=template&id=3e8d7a5b&lang.js.map +0 -1
  407. package/vue3/es/src/components/QueryRuleCustomData.vue_vue&type=template&id=e4da0782&lang.js +0 -2
  408. package/vue3/es/src/components/QueryRuleCustomData.vue_vue&type=template&id=e4da0782&lang.js.map +0 -1
  409. package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js +0 -2
  410. package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js.map +0 -1
  411. package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js.map +0 -1
  412. package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=28927239&lang.js +0 -2
  413. package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=28927239&lang.js.map +0 -1
  414. package/vue3/es/src/components/RelevantSort.vue_vue&type=template&id=257b248b&lang.js +0 -2
  415. package/vue3/es/src/components/RelevantSort.vue_vue&type=template&id=257b248b&lang.js.map +0 -1
  416. package/vue3/es/src/components/SearchBox.vue_vue&type=template&id=27029d83&lang.js +0 -2
  417. package/vue3/es/src/components/SearchBox.vue_vue&type=template&id=27029d83&lang.js.map +0 -1
  418. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=2eed8ffc&lang.js +0 -2
  419. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=2eed8ffc&lang.js.map +0 -1
  420. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js.map +0 -1
  421. package/vue3/es/src/components/StateResults.vue_vue&type=template&id=5992f3d5&lang.js +0 -2
  422. package/vue3/es/src/components/StateResults.vue_vue&type=template&id=5992f3d5&lang.js.map +0 -1
  423. package/vue3/es/src/components/Stats.vue_vue&type=template&id=7337491f&lang.js.map +0 -1
  424. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js.map +0 -1
  425. package/vue3/es/src/components/VoiceSearch.vue_vue&type=template&id=24b0f67a&lang.js.map +0 -1
@@ -1,8 +1,5 @@
1
1
  <template>
2
- <div
3
- v-if="state"
4
- :class="suit()"
5
- >
2
+ <div v-if="state" :class="suit()">
6
3
  <slot v-bind="rootSlotProps">
7
4
  <button
8
5
  type="button"
@@ -11,64 +8,27 @@
11
8
  :disabled="!state.isBrowserSupported"
12
9
  @click="handleClick"
13
10
  >
14
- <slot
15
- name="buttonText"
16
- v-bind="innerSlotProps"
17
- >
18
- <svg
19
- v-bind="buttonSvgAttrs"
20
- v-if="errorNotAllowed"
21
- >
22
- <line
23
- x1="1"
24
- y1="1"
25
- x2="23"
26
- y2="23"
27
- />
11
+ <slot name="buttonText" v-bind="innerSlotProps">
12
+ <svg v-bind="buttonSvgAttrs" v-if="errorNotAllowed">
13
+ <line x1="1" y1="1" x2="23" y2="23" />
28
14
  <path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" />
29
15
  <path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" />
30
- <line
31
- x1="12"
32
- y1="19"
33
- x2="12"
34
- y2="23"
35
- />
36
- <line
37
- x1="8"
38
- y1="23"
39
- x2="16"
40
- y2="23"
41
- />
16
+ <line x1="12" y1="19" x2="12" y2="23" />
17
+ <line x1="8" y1="23" x2="16" y2="23" />
42
18
  </svg>
43
- <svg
44
- v-bind="buttonSvgAttrs"
45
- v-else
46
- >
19
+ <svg v-bind="buttonSvgAttrs" v-else>
47
20
  <path
48
21
  d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"
49
22
  :fill="state.isListening ? 'currentColor' : 'none'"
50
23
  />
51
24
  <path d="M19 10v2a7 7 0 0 1-14 0v-2" />
52
- <line
53
- x1="12"
54
- y1="19"
55
- x2="12"
56
- y2="23"
57
- />
58
- <line
59
- x1="8"
60
- y1="23"
61
- x2="16"
62
- y2="23"
63
- />
25
+ <line x1="12" y1="19" x2="12" y2="23" />
26
+ <line x1="8" y1="23" x2="16" y2="23" />
64
27
  </svg>
65
28
  </slot>
66
29
  </button>
67
30
  <div :class="suit('status')">
68
- <slot
69
- name="status"
70
- v-bind="innerSlotProps"
71
- >
31
+ <slot name="status" v-bind="innerSlotProps">
72
32
  <p>{{ state.voiceListeningState.transcript }}</p>
73
33
  </slot>
74
34
  </div>
@@ -1,40 +1,30 @@
1
1
  <template>
2
2
  <div :class="suit()">
3
3
  <slot v-bind="state">
4
- <button
5
- @click="state.refine('hi')"
6
- :class="suit('button')"
7
- >
4
+ <button @click="state.refine('hi')" :class="suit('button')">
8
5
  example refine
9
6
  </button>
10
- <!-- ⬇ use this to dynamically debug the state, remove it when done -->
11
- <json-tree
12
- :level="2"
13
- :data="state"
14
- />
15
7
  </slot>
16
8
  </div>
17
9
  </template>
18
10
 
19
11
  <script>
20
- import JsonTree from 'vue-json-tree'; // 👈 When done, remove this
21
12
  import { createSuitMixin } from '../mixins/suit';
22
13
  import { createWidgetMixin } from '../mixins/widget';
23
14
  // Uncomment and change here ⬇️
24
15
  // import { connectorName } from 'instantsearch.js/es/connectors';
25
16
 
26
- /* eslint-disable no-unused-vars */
17
+ /* eslint-disable @typescript-eslint/no-unused-vars,no-unused-vars */
27
18
  // Remove this part ⬇,️ only here for testing the template
28
- const connectorName = (renderFn, unmountFn) => ({ someProp }) => ({
29
- render: () => renderFn(),
30
- });
19
+ const connectorName =
20
+ (renderFn, unmountFn) =>
21
+ ({ someProp }) => ({
22
+ render: () => renderFn(),
23
+ });
31
24
  /* eslint-enable */
32
25
 
33
26
  export default {
34
27
  name: 'AisTemplate', // ◀️ change this to the component name that will be exported
35
- // ⬇️ this is to help you debugging what's in `state`
36
- // remove it before pushing the component
37
- components: { 'json-tree': JsonTree },
38
28
  mixins: [
39
29
  createSuitMixin({ name: 'Template' }), // ◀️ change this
40
30
  createWidgetMixin({
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import Autocomplete from '../Autocomplete.vue';
3
7
  import { __setState } from '../../mixins/widget';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
  jest.mock('../../mixins/widget');
5
10
 
6
11
  const defaultState = {
@@ -25,7 +30,8 @@ it('renders correctly', () => {
25
30
  expect(wrapper.html()).toMatchSnapshot();
26
31
  });
27
32
 
28
- it('gives the correct props to the default slot', done => {
33
+ // eslint-disable-next-line jest/no-done-callback
34
+ it('gives the correct props to the default slot', (done) => {
29
35
  __setState({
30
36
  ...defaultState,
31
37
  });
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import Breadcrumb from '../Breadcrumb.vue';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
  jest.mock('../../mixins/panel');
@@ -135,7 +140,7 @@ describe('default render', () => {
135
140
  it('renders correctly with an URL for the href', () => {
136
141
  __setState({
137
142
  ...defaultState,
138
- createURL: value => `/${value}`,
143
+ createURL: (value) => `/${value}`,
139
144
  });
140
145
 
141
146
  const wrapper = mount(Breadcrumb, {
@@ -244,7 +249,7 @@ describe('custom default render', () => {
244
249
  it('renders correctly with an URL for the href', () => {
245
250
  __setState({
246
251
  ...defaultState,
247
- createURL: value => `/${value}`,
252
+ createURL: (value) => `/${value}`,
248
253
  });
249
254
 
250
255
  const wrapper = mount({
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import ClearRefinements from '../ClearRefinements.vue';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
  jest.mock('../../mixins/panel');
@@ -61,7 +66,7 @@ describe('default render', () => {
61
66
 
62
67
  const button = wrapper.find('button');
63
68
 
64
- expect(button).toBeDisabled();
69
+ expect(button).vueToBeDisabled();
65
70
  expect(button.classes()).toContain('ais-ClearRefinements-button--disabled');
66
71
  expect(wrapper.htmlCompat()).toMatchSnapshot();
67
72
  });
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import Configure from '../Configure';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
 
@@ -45,7 +50,7 @@ it('renders null without default slot', () => {
45
50
  propsData: defaultProps,
46
51
  });
47
52
 
48
- expect(wrapper).toHaveEmptyHTML();
53
+ expect(wrapper).vueToHaveEmptyHTML();
49
54
  });
50
55
 
51
56
  it('renders null without state', () => {
@@ -63,7 +68,7 @@ it('renders null without state', () => {
63
68
  `,
64
69
  });
65
70
 
66
- expect(wrapper).toHaveEmptyHTML();
71
+ expect(wrapper).vueToHaveEmptyHTML();
67
72
  });
68
73
 
69
74
  it('renders with scoped slots', () => {
@@ -1,5 +1,10 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import ConfigureRelatedItems from '../ConfigureRelatedItems';
7
+ import '../../../test/utils/sortedHtmlSerializer';
3
8
 
4
9
  jest.mock('../../mixins/widget');
5
10
 
@@ -7,7 +12,7 @@ it('accepts options from props', () => {
7
12
  const props = {
8
13
  hit: { objectID: '1' },
9
14
  matchingPatterns: {},
10
- transformSearchParameters: x => x,
15
+ transformSearchParameters: (x) => x,
11
16
  };
12
17
 
13
18
  const wrapper = mount(ConfigureRelatedItems, {
@@ -27,5 +32,5 @@ it('renders nothing', () => {
27
32
  propsData: props,
28
33
  });
29
34
 
30
- expect(wrapper).toHaveEmptyHTML();
35
+ expect(wrapper).vueToHaveEmptyHTML();
31
36
  });
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import CurrentRefinements from '../CurrentRefinements.vue';
3
7
  import { __setState } from '../../mixins/widget';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
  jest.mock('../../mixins/panel');
@@ -158,6 +163,7 @@ describe.each([
158
163
  const wrapper = mount(CurrentRefinements);
159
164
 
160
165
  if (name === 'query') {
166
+ // eslint-disable-next-line jest/no-conditional-expect
161
167
  expect(
162
168
  wrapper.find('.ais-CurrentRefinements-categoryLabel q').text()
163
169
  ).toEqual('search1');
@@ -1,8 +1,13 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount, nextTick } from '../../../test/utils';
2
6
  import DynamicWidgets from '../DynamicWidgets';
3
7
  import { __setState } from '../../mixins/widget';
4
8
  import { AisPanel } from '../../widgets';
5
9
  jest.mock('../../mixins/widget');
10
+ import '../../../test/utils/sortedHtmlSerializer';
6
11
 
7
12
  const MockRefinementList = {
8
13
  props: { attribute: { type: String } },
@@ -49,7 +54,7 @@ const MockHierarchicalMenu = {
49
54
  it('passes arguments to connector', () => {
50
55
  __setState(null);
51
56
 
52
- const transformItems = items => items;
57
+ const transformItems = (items) => items;
53
58
  const facets = ['test'];
54
59
  const maxValuesPerFacet = 100;
55
60
  const wrapper = mount({
@@ -96,7 +101,7 @@ it('renders all children without state', () => {
96
101
 
97
102
  const wrapper = mount({
98
103
  data() {
99
- return { props: { transformItems: items => items } };
104
+ return { props: { transformItems: (items) => items } };
100
105
  },
101
106
  template: `
102
107
  <DynamicWidgets v-bind="props">
@@ -162,7 +167,7 @@ it('renders nothing without children', () => {
162
167
 
163
168
  const wrapper = mount(DynamicWidgets, {
164
169
  propsData: {
165
- transformItems: items => items,
170
+ transformItems: (items) => items,
166
171
  },
167
172
  });
168
173
  expect(wrapper.html()).toMatchInlineSnapshot(`
@@ -1,8 +1,13 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import ExperimentalDynamicWidgets from '../ExperimentalDynamicWidgets';
3
7
  import { warn } from '../../util/warn';
4
8
  import { __setState } from '../../mixins/widget';
5
9
  import DynamicWidgets from '../DynamicWidgets';
10
+ import '../../../test/utils/sortedHtmlSerializer';
6
11
 
7
12
  jest.mock('../../mixins/widget');
8
13
  jest.mock('../../util/warn', () => ({ warn: jest.fn() }));
@@ -23,18 +28,21 @@ it('warns on mount', () => {
23
28
  });
24
29
 
25
30
  it('behaves the same as DynamicWidgets', () => {
26
- Object.keys(ExperimentalDynamicWidgets).forEach(key => {
31
+ Object.keys(ExperimentalDynamicWidgets).forEach((key) => {
27
32
  if (key === 'name') {
28
33
  // name is different
34
+ // eslint-disable-next-line jest/no-conditional-expect
29
35
  expect(ExperimentalDynamicWidgets[key]).toBe(
30
36
  'AisExperimentalDynamicWidgets'
31
37
  );
32
38
  } else if (key === 'mounted') {
33
39
  // mounted has the warning
40
+ // eslint-disable-next-line jest/no-conditional-expect
34
41
  expect(ExperimentalDynamicWidgets[key]).toEqual(expect.any(Function));
35
42
  } else if (key[0] === '_') {
36
43
  // private Vue behavior, not tested
37
44
  } else {
45
+ // eslint-disable-next-line jest/no-conditional-expect
38
46
  expect(ExperimentalDynamicWidgets[key]).toEqual(DynamicWidgets[key]);
39
47
  }
40
48
  });
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import HierarchicalMenu from '../HierarchicalMenu.vue';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
  jest.mock('../../mixins/panel');
@@ -312,7 +317,7 @@ describe('default render', () => {
312
317
  it('renders correctly with a URL for the href', () => {
313
318
  __setState({
314
319
  ...defaultState,
315
- createURL: value => `/categories/${value}`,
320
+ createURL: (value) => `/categories/${value}`,
316
321
  });
317
322
 
318
323
  const wrapper = mount(HierarchicalMenu, {
@@ -372,7 +377,7 @@ describe('default render', () => {
372
377
  });
373
378
 
374
379
  const button = wrapper.find('button');
375
- expect(button).toBeDisabled();
380
+ expect(button).vueToBeDisabled();
376
381
  expect(button.classes()).toContain(
377
382
  'ais-HierarchicalMenu-showMore--disabled'
378
383
  );
@@ -578,7 +583,7 @@ describe('custom default render', () => {
578
583
  it('renders correctly with an URL for the href', () => {
579
584
  __setState({
580
585
  ...defaultState,
581
- createURL: value => `/categories/${value.replace(/ > /g, '/')}`,
586
+ createURL: (value) => `/categories/${value.replace(/ > /g, '/')}`,
582
587
  });
583
588
 
584
589
  const wrapper = mount({
@@ -624,6 +629,7 @@ describe('custom default render', () => {
624
629
  __setState({
625
630
  ...defaultState,
626
631
  toggleShowMore: () => {
632
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
627
633
  const component = wrapper.findComponent(HierarchicalMenu);
628
634
  component.setData({ state: { isShowingMore: true } });
629
635
  },
@@ -673,7 +679,7 @@ describe('custom default render', () => {
673
679
  `,
674
680
  });
675
681
 
676
- expect(wrapper.find('button')).toBeDisabled();
682
+ expect(wrapper.find('button')).vueToBeDisabled();
677
683
  expect(wrapper.htmlCompat()).toMatchSnapshot();
678
684
  });
679
685
 
@@ -707,6 +713,7 @@ describe('custom default render', () => {
707
713
  __setState({
708
714
  ...defaultState,
709
715
  toggleShowMore: () => {
716
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
710
717
  const component = wrapper.findComponent(HierarchicalMenu);
711
718
  component.setData({ state: { isShowingMore: true } });
712
719
  },
@@ -778,6 +785,7 @@ describe('custom showMoreLabel render', () => {
778
785
  __setState({
779
786
  ...defaultState,
780
787
  toggleShowMore: () => {
788
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
781
789
  const component = wrapper.findComponent(HierarchicalMenu);
782
790
  component.setData({ state: { isShowingMore: true } });
783
791
  },
@@ -1,5 +1,10 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import Highlight from '../Highlight.vue';
7
+ import '../../../test/utils/sortedHtmlSerializer';
3
8
 
4
9
  jest.unmock('instantsearch.js/es');
5
10
 
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import Hits from '../Hits.vue';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
 
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import HitsPerPage from '../HitsPerPage.vue';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
  jest.mock('../../mixins/panel');
@@ -1,9 +1,14 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  jest.unmock('instantsearch.js/es');
2
6
  import { mount } from '../../../test/utils';
3
7
  import Index from '../Index';
4
8
  import instantsearch from 'instantsearch.js/es';
5
9
  import { createWidgetMixin } from '../../mixins/widget';
6
10
  import { createFakeClient } from '../../util/testutils/client';
11
+ import '../../../test/utils/sortedHtmlSerializer';
7
12
 
8
13
  it('child widgets get added to their parent index', () => {
9
14
  const widgetInstance = {
@@ -1,8 +1,13 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import Index from '../Index';
3
7
  import { __setWidget } from '../../mixins/widget';
4
8
  import { Vue2, isVue3, isVue2 } from '../../util/vue-compat';
5
9
  jest.mock('../../mixins/widget');
10
+ import '../../../test/utils/sortedHtmlSerializer';
6
11
 
7
12
  beforeEach(() => {
8
13
  jest.resetAllMocks();
@@ -54,7 +59,8 @@ it('renders its children', () => {
54
59
  `);
55
60
  });
56
61
 
57
- it('provides the index widget', done => {
62
+ // eslint-disable-next-line jest/no-done-callback
63
+ it('provides the index widget', (done) => {
58
64
  const indexWidget = { $$type: 'ais.index' };
59
65
  __setWidget(indexWidget);
60
66
 
@@ -1,6 +1,11 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount } from '../../../test/utils';
2
6
  import { __setState } from '../../mixins/widget';
3
7
  import InfiniteHits from '../InfiniteHits.vue';
8
+ import '../../../test/utils/sortedHtmlSerializer';
4
9
 
5
10
  jest.mock('../../mixins/widget');
6
11
 
@@ -8,7 +13,7 @@ const defaultState = {
8
13
  widgetParams: {
9
14
  showPrevious: false,
10
15
  escapeHTML: true,
11
- transformItems: items => items,
16
+ transformItems: (items) => items,
12
17
  },
13
18
  hits: [
14
19
  {
@@ -171,7 +176,7 @@ it('renders correctly on the first page', () => {
171
176
  expect(
172
177
  previousButton.classes('ais-InfiniteHits-loadPrevious--disabled')
173
178
  ).toEqual(true);
174
- expect(previousButton).toBeDisabled();
179
+ expect(previousButton).vueToBeDisabled();
175
180
  expect(wrapper.htmlCompat()).toMatchSnapshot();
176
181
  });
177
182
 
@@ -1,11 +1,16 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { mount, nextTick } from '../../../test/utils';
2
6
  import InstantSearch from '../InstantSearch';
3
7
  import { createWidgetMixin } from '../../mixins/widget';
4
8
  import { createFakeClient } from '../../util/testutils/client';
5
9
  import SearchBox from '../SearchBox.vue';
6
10
  jest.unmock('instantsearch.js/es');
11
+ import '../../../test/utils/sortedHtmlSerializer';
7
12
 
8
- const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
13
+ const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
14
 
10
15
  it('child widgets get added to its parent instantsearch', () => {
11
16
  const widgetInstance = {
@@ -1,9 +1,14 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
1
5
  import { isVue3, version as vueVersion } from '../../util/vue-compat';
2
6
  import { mount, nextTick } from '../../../test/utils';
3
7
  import instantsearch from 'instantsearch.js/es';
4
8
  import InstantSearch from '../InstantSearch';
5
9
  import { version } from '../../../package.json';
6
10
  import { warn } from '../../util/warn';
11
+ import '../../../test/utils/sortedHtmlSerializer';
7
12
 
8
13
  jest.mock('../../util/warn');
9
14
 
@@ -14,7 +19,7 @@ beforeEach(() => {
14
19
  it('passes props to InstantSearch.js', () => {
15
20
  const searchClient = {};
16
21
  const insightsClient = jest.fn();
17
- const searchFunction = helper => helper.search();
22
+ const searchFunction = (helper) => helper.search();
18
23
 
19
24
  mount(InstantSearch, {
20
25
  propsData: {
@@ -63,14 +68,17 @@ These have been replaced by search-client.
63
68
  See more info here: https://www.algolia.com/doc/api-reference/widgets/instantsearch/vue/#widget-param-search-client`);
64
69
 
65
70
  if (isVue3) {
71
+ // eslint-disable-next-line jest/no-conditional-expect
66
72
  expect(global.console.warn.mock.calls[0][0]).toMatchInlineSnapshot(
67
73
  `"[Vue warn]: Invalid prop: custom validator check failed for prop \\"apiKey\\"."`
68
74
  );
69
75
 
76
+ // eslint-disable-next-line jest/no-conditional-expect
70
77
  expect(global.console.warn.mock.calls[1][0]).toMatchInlineSnapshot(
71
78
  `"[Vue warn]: Invalid prop: custom validator check failed for prop \\"appId\\"."`
72
79
  );
73
80
  } else {
81
+ // eslint-disable-next-line jest/no-conditional-expect
74
82
  expect(global.console.error.mock.calls[0][0]).toMatchInlineSnapshot(`
75
83
  "[Vue warn]: Invalid prop: custom validator check failed for prop \\"apiKey\\".
76
84
 
@@ -80,6 +88,7 @@ found in
80
88
  <Root>"
81
89
  `);
82
90
 
91
+ // eslint-disable-next-line jest/no-conditional-expect
83
92
  expect(global.console.error.mock.calls[1][0]).toMatchInlineSnapshot(`
84
93
  "[Vue warn]: Invalid prop: custom validator check failed for prop \\"appId\\".
85
94
 
@@ -220,10 +229,12 @@ it('does not allow `routing` to be a boolean', () => {
220
229
  });
221
230
 
222
231
  if (isVue3) {
232
+ // eslint-disable-next-line jest/no-conditional-expect
223
233
  expect(global.console.warn.mock.calls[0][0]).toMatchInlineSnapshot(
224
234
  `"[Vue warn]: Invalid prop: custom validator check failed for prop \\"routing\\"."`
225
235
  );
226
236
  } else {
237
+ // eslint-disable-next-line jest/no-conditional-expect
227
238
  expect(global.console.error.mock.calls[0][0]).toMatchInlineSnapshot(`
228
239
  "[Vue warn]: Invalid prop: custom validator check failed for prop \\"routing\\".
229
240
 
@@ -274,7 +285,8 @@ it('does not warn when `routing` have either `router` or `stateMapping`', () =>
274
285
  expect(warn).toHaveBeenCalledTimes(0);
275
286
  });
276
287
 
277
- it('Does not allow a change in `routing`', () => {
288
+ // TODO: this test does not pass with latest vue-test-utils
289
+ it.skip('Does not allow a change in `routing`', async () => {
278
290
  const wrapper = mount(InstantSearch, {
279
291
  propsData: {
280
292
  searchClient: {},
@@ -282,14 +294,14 @@ it('Does not allow a change in `routing`', () => {
282
294
  },
283
295
  });
284
296
 
285
- expect(
297
+ await expect(
286
298
  wrapper.setProps({
287
299
  routing: false,
288
300
  })
289
301
  ).rejects.toMatchInlineSnapshot(`
290
302
  [Error: routing configuration can not be changed dynamically at this point.
291
303
 
292
- Please open a new issue: https://github.com/algolia/vue-instantsearch/issues/new?template=feature.md]
304
+ Please open a new issue: https://github.com/algolia/instantsearch.js/discussions/new?category=ideas&labels=triage%2cLibrary%3A+Vue+InstantSearch&title=Feature%20request%3A%20dynamic%20props]
293
305
  `);
294
306
  });
295
307
 
@@ -339,7 +351,8 @@ it('disposes the instantsearch instance on unmount', async () => {
339
351
  expect(wrapper.vm.instantSearchInstance.dispose).toHaveBeenCalledTimes(1);
340
352
  });
341
353
 
342
- it('provides the instantsearch instance', done => {
354
+ // eslint-disable-next-line jest/no-done-callback
355
+ it('provides the instantsearch instance', (done) => {
343
356
  let instantSearchInstance;
344
357
 
345
358
  const ParentComponent = {