@searchcraft/javascript-sdk 0.7.2 → 0.8.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 (306) hide show
  1. package/dist/cjs/{store-f6ba3dfb.js → SearchcraftStore-75fac5e0.js} +576 -443
  2. package/dist/cjs/SearchcraftStore-75fac5e0.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -3
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js +152 -0
  7. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js.map +1 -0
  8. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +30 -80
  9. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -1
  10. package/dist/cjs/searchcraft-button_3.cjs.entry.js +22 -7
  11. package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +19 -18
  13. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +6 -6
  15. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -1
  16. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +20 -33
  17. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +1 -1
  19. package/dist/cjs/searchcraft-pagination.cjs.entry.js +106 -0
  20. package/dist/cjs/searchcraft-pagination.cjs.entry.js.map +1 -0
  21. package/dist/cjs/searchcraft-popover-button.cjs.entry.js +3 -3
  22. package/dist/cjs/searchcraft-popover-button.cjs.entry.js.map +1 -1
  23. package/dist/cjs/searchcraft-popover-form.cjs.entry.js +27 -25
  24. package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +1 -1
  25. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js +101 -0
  26. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js.map +1 -0
  27. package/dist/cjs/searchcraft-results-info.cjs.entry.js +51 -13
  28. package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -1
  29. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js +75 -0
  30. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js.map +1 -0
  31. package/dist/cjs/searchcraft-select.cjs.entry.js +70 -0
  32. package/dist/cjs/searchcraft-select.cjs.entry.js.map +1 -0
  33. package/dist/cjs/searchcraft-theme.cjs.entry.js +29 -11
  34. package/dist/cjs/searchcraft-theme.cjs.entry.js.map +1 -1
  35. package/dist/cjs/units-fe4d8083.js.map +1 -1
  36. package/dist/collection/collection-manifest.json +5 -0
  37. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +86 -208
  38. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
  39. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js +73 -0
  40. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js.map +1 -0
  41. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +37 -144
  42. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
  43. package/dist/collection/components/searchcraft-button/searchcraft-button.js +87 -17
  44. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
  45. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +1 -1
  46. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +8 -8
  47. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -1
  48. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +7 -7
  49. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -1
  50. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +10 -14
  51. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +1 -1
  52. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +1 -1
  53. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js +141 -0
  54. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js.map +1 -0
  55. package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js +1 -1
  56. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +26 -21
  57. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +1 -1
  58. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +59 -92
  59. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +1 -1
  60. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js +73 -0
  61. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js.map +1 -0
  62. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +77 -24
  63. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js.map +1 -1
  64. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +105 -17
  65. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
  66. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js +129 -0
  67. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js.map +1 -0
  68. package/dist/collection/components/searchcraft-select/searchcraft-select.js +261 -0
  69. package/dist/collection/components/searchcraft-select/searchcraft-select.js.map +1 -0
  70. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +2 -2
  71. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js +72 -12
  72. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js.map +1 -1
  73. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +7 -6
  74. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
  75. package/dist/collection/index.js +1 -2
  76. package/dist/collection/index.js.map +1 -1
  77. package/dist/collection/provider/SearchcraftStore.js +160 -0
  78. package/dist/collection/provider/SearchcraftStore.js.map +1 -0
  79. package/dist/collection/provider/SearchcraftStore.types.js +2 -0
  80. package/dist/collection/provider/SearchcraftStore.types.js.map +1 -0
  81. package/dist/collection/provider/store.js +2 -136
  82. package/dist/collection/provider/store.js.map +1 -1
  83. package/dist/collection/utils/units.js.map +1 -1
  84. package/dist/components/index.js +11 -1
  85. package/dist/components/index.js.map +1 -1
  86. package/dist/components/{p-a75ef832.js → p-0e393fe1.js} +2 -2
  87. package/dist/components/{p-a75ef832.js.map → p-0e393fe1.js.map} +1 -1
  88. package/dist/components/p-25ee7496.js +58 -0
  89. package/dist/components/p-25ee7496.js.map +1 -0
  90. package/dist/components/{p-936e2ed4.js → p-38419178.js} +576 -442
  91. package/dist/components/p-38419178.js.map +1 -0
  92. package/dist/components/{p-960ddc89.js → p-3df3ff8b.js} +17 -21
  93. package/dist/components/p-3df3ff8b.js.map +1 -0
  94. package/dist/components/{p-1234974c.js → p-433f974c.js} +9 -8
  95. package/dist/components/p-433f974c.js.map +1 -0
  96. package/dist/components/{p-4b92ae26.js → p-4e9cd62e.js} +4 -4
  97. package/dist/components/{p-4b92ae26.js.map → p-4e9cd62e.js.map} +1 -1
  98. package/dist/components/{p-755f491b.js → p-6104fe5d.js} +2 -2
  99. package/dist/components/p-6104fe5d.js.map +1 -0
  100. package/dist/components/{p-b4a8fcbe.js → p-97332d3e.js} +51 -59
  101. package/dist/components/p-97332d3e.js.map +1 -0
  102. package/dist/components/p-bf6a086a.js +92 -0
  103. package/dist/components/p-bf6a086a.js.map +1 -0
  104. package/dist/components/p-bff4d3fc.js +65 -0
  105. package/dist/components/p-bff4d3fc.js.map +1 -0
  106. package/dist/components/{p-521fe971.js → p-d19bf6ff.js} +25 -8
  107. package/dist/components/p-d19bf6ff.js.map +1 -0
  108. package/dist/components/p-de4a48b1.js +65 -0
  109. package/dist/components/p-de4a48b1.js.map +1 -0
  110. package/dist/components/{p-ca881e5c.js → p-e55a7970.js} +2 -2
  111. package/dist/components/{p-ca881e5c.js.map → p-e55a7970.js.map} +1 -1
  112. package/dist/components/p-ec0d230e.js +75 -0
  113. package/dist/components/p-ec0d230e.js.map +1 -0
  114. package/dist/components/{p-54998882.js → p-fc7cda96.js} +10 -10
  115. package/dist/components/p-fc7cda96.js.map +1 -0
  116. package/dist/components/searchcraft-base-search-result-ad.d.ts +11 -0
  117. package/dist/components/searchcraft-base-search-result-ad.js +8 -0
  118. package/dist/components/searchcraft-base-search-result-ad.js.map +1 -0
  119. package/dist/components/searchcraft-base-search-result.js +1 -1
  120. package/dist/components/searchcraft-base-search-results.js +44 -89
  121. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  122. package/dist/components/searchcraft-button.js +1 -1
  123. package/dist/components/searchcraft-error-message.js +1 -1
  124. package/dist/components/searchcraft-facet-list.js +1 -1
  125. package/dist/components/searchcraft-filter-panel.js +9 -9
  126. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  127. package/dist/components/searchcraft-input-form.js +1 -1
  128. package/dist/components/searchcraft-input-label.js +1 -1
  129. package/dist/components/searchcraft-pagination.d.ts +11 -0
  130. package/dist/components/searchcraft-pagination.js +135 -0
  131. package/dist/components/searchcraft-pagination.js.map +1 -0
  132. package/dist/components/searchcraft-popover-button.js +2 -2
  133. package/dist/components/searchcraft-popover-form.js +41 -30
  134. package/dist/components/searchcraft-popover-form.js.map +1 -1
  135. package/dist/components/searchcraft-popover-list-item-ad.d.ts +11 -0
  136. package/dist/components/searchcraft-popover-list-item-ad.js +8 -0
  137. package/dist/components/searchcraft-popover-list-item-ad.js.map +1 -0
  138. package/dist/components/searchcraft-popover-list-item.js +1 -1
  139. package/dist/components/searchcraft-popover-list-view.js +1 -1
  140. package/dist/components/searchcraft-results-info.js +60 -17
  141. package/dist/components/searchcraft-results-info.js.map +1 -1
  142. package/dist/components/searchcraft-search-results-per-page.d.ts +11 -0
  143. package/dist/components/searchcraft-search-results-per-page.js +105 -0
  144. package/dist/components/searchcraft-search-results-per-page.js.map +1 -0
  145. package/dist/components/searchcraft-select.d.ts +11 -0
  146. package/dist/components/searchcraft-select.js +8 -0
  147. package/dist/components/searchcraft-select.js.map +1 -0
  148. package/dist/components/searchcraft-slider.js +1 -1
  149. package/dist/components/searchcraft-theme.js +34 -13
  150. package/dist/components/searchcraft-theme.js.map +1 -1
  151. package/dist/components/searchcraft-toggle-button.js +1 -1
  152. package/dist/esm/{store-aa071d9c.js → SearchcraftStore-3cfd565a.js} +576 -442
  153. package/dist/esm/SearchcraftStore-3cfd565a.js.map +1 -0
  154. package/dist/esm/index.js +1 -1
  155. package/dist/esm/loader.js +1 -1
  156. package/dist/esm/searchcraft-base-search-result_2.entry.js +147 -0
  157. package/dist/esm/searchcraft-base-search-result_2.entry.js.map +1 -0
  158. package/dist/esm/searchcraft-base-search-results.entry.js +30 -80
  159. package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -1
  160. package/dist/esm/searchcraft-button_3.entry.js +22 -7
  161. package/dist/esm/searchcraft-button_3.entry.js.map +1 -1
  162. package/dist/esm/searchcraft-facet-list_3.entry.js +17 -16
  163. package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -1
  164. package/dist/esm/searchcraft-filter-panel.entry.js +5 -5
  165. package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -1
  166. package/dist/esm/searchcraft-input-form_2.entry.js +19 -32
  167. package/dist/esm/searchcraft-input-form_2.entry.js.map +1 -1
  168. package/dist/esm/searchcraft-javascript-sdk.js +1 -1
  169. package/dist/esm/searchcraft-pagination.entry.js +102 -0
  170. package/dist/esm/searchcraft-pagination.entry.js.map +1 -0
  171. package/dist/esm/searchcraft-popover-button.entry.js +2 -2
  172. package/dist/esm/searchcraft-popover-form.entry.js +20 -18
  173. package/dist/esm/searchcraft-popover-form.entry.js.map +1 -1
  174. package/dist/esm/searchcraft-popover-list-item_2.entry.js +96 -0
  175. package/dist/esm/searchcraft-popover-list-item_2.entry.js.map +1 -0
  176. package/dist/esm/searchcraft-results-info.entry.js +51 -13
  177. package/dist/esm/searchcraft-results-info.entry.js.map +1 -1
  178. package/dist/esm/searchcraft-search-results-per-page.entry.js +71 -0
  179. package/dist/esm/searchcraft-search-results-per-page.entry.js.map +1 -0
  180. package/dist/esm/searchcraft-select.entry.js +66 -0
  181. package/dist/esm/searchcraft-select.entry.js.map +1 -0
  182. package/dist/esm/searchcraft-theme.entry.js +29 -11
  183. package/dist/esm/searchcraft-theme.entry.js.map +1 -1
  184. package/dist/esm/{units-b6eba560.js → units-daaf96f5.js} +2 -2
  185. package/dist/esm/units-daaf96f5.js.map +1 -0
  186. package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
  187. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js +2 -0
  188. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js.map +1 -0
  189. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js +2 -0
  190. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js.map +1 -0
  191. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js +2 -0
  192. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js.map +1 -0
  193. package/dist/searchcraft-javascript-sdk/p-38419178.js +11 -0
  194. package/dist/searchcraft-javascript-sdk/p-38419178.js.map +1 -0
  195. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js +2 -0
  196. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js.map +1 -0
  197. package/dist/searchcraft-javascript-sdk/{p-755f491b.js → p-6104fe5d.js} +2 -2
  198. package/dist/searchcraft-javascript-sdk/p-6104fe5d.js.map +1 -0
  199. package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js +2 -0
  200. package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js.map +1 -0
  201. package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js +2 -0
  202. package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js.map +1 -0
  203. package/dist/searchcraft-javascript-sdk/p-7f4dd50c.entry.js +2 -0
  204. package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js +2 -0
  205. package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js.map +1 -0
  206. package/dist/searchcraft-javascript-sdk/p-a3074a6d.entry.js +2 -0
  207. package/dist/searchcraft-javascript-sdk/p-a3074a6d.entry.js.map +1 -0
  208. package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js +2 -0
  209. package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js.map +1 -0
  210. package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js +2 -0
  211. package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js.map +1 -0
  212. package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js +2 -0
  213. package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js.map +1 -0
  214. package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js +2 -0
  215. package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js.map +1 -0
  216. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js +2 -0
  217. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js.map +1 -0
  218. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
  219. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
  220. package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +20 -41
  221. package/dist/types/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.d.ts +14 -0
  222. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +9 -18
  223. package/dist/types/components/searchcraft-button/searchcraft-button.d.ts +17 -6
  224. package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +1 -1
  225. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +2 -2
  226. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +1 -1
  227. package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +33 -0
  228. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +9 -7
  229. package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +9 -12
  230. package/dist/types/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.d.ts +14 -0
  231. package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +7 -4
  232. package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +26 -4
  233. package/dist/types/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.d.ts +33 -0
  234. package/dist/types/components/searchcraft-select/searchcraft-select.d.ts +64 -0
  235. package/dist/types/components/searchcraft-theme/searchcraft-theme.d.ts +11 -2
  236. package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +1 -1
  237. package/dist/types/components.d.ts +444 -170
  238. package/dist/types/index.d.ts +1 -2
  239. package/dist/types/provider/SearchcraftStore.d.ts +4 -0
  240. package/dist/types/provider/SearchcraftStore.types.d.ts +44 -0
  241. package/dist/types/provider/store.d.ts +2 -34
  242. package/dist/types/utils/units.d.ts +1 -1
  243. package/package.json +3 -3
  244. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +0 -117
  245. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +0 -1
  246. package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js +0 -49
  247. package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js.map +0 -1
  248. package/dist/cjs/store-f6ba3dfb.js.map +0 -1
  249. package/dist/collection/types/_shared.types.js +0 -2
  250. package/dist/collection/types/_shared.types.js.map +0 -1
  251. package/dist/collection/types/index.js +0 -5
  252. package/dist/collection/types/index.js.map +0 -1
  253. package/dist/collection/types/searchcraft-base-search-results.types.js +0 -2
  254. package/dist/collection/types/searchcraft-base-search-results.types.js.map +0 -1
  255. package/dist/collection/types/searchcraft-filter-panel.types.js +0 -2
  256. package/dist/collection/types/searchcraft-filter-panel.types.js.map +0 -1
  257. package/dist/collection/types/searchcraft-popover-form.types.js +0 -2
  258. package/dist/collection/types/searchcraft-popover-form.types.js.map +0 -1
  259. package/dist/components/p-0ef4ab33.js +0 -66
  260. package/dist/components/p-0ef4ab33.js.map +0 -1
  261. package/dist/components/p-1234974c.js.map +0 -1
  262. package/dist/components/p-506cdac1.js +0 -58
  263. package/dist/components/p-506cdac1.js.map +0 -1
  264. package/dist/components/p-521fe971.js.map +0 -1
  265. package/dist/components/p-54998882.js.map +0 -1
  266. package/dist/components/p-755f491b.js.map +0 -1
  267. package/dist/components/p-936e2ed4.js.map +0 -1
  268. package/dist/components/p-960ddc89.js.map +0 -1
  269. package/dist/components/p-b4a8fcbe.js.map +0 -1
  270. package/dist/esm/searchcraft-base-search-result.entry.js +0 -113
  271. package/dist/esm/searchcraft-base-search-result.entry.js.map +0 -1
  272. package/dist/esm/searchcraft-popover-list-item.entry.js +0 -45
  273. package/dist/esm/searchcraft-popover-list-item.entry.js.map +0 -1
  274. package/dist/esm/store-aa071d9c.js.map +0 -1
  275. package/dist/esm/units-b6eba560.js.map +0 -1
  276. package/dist/searchcraft-javascript-sdk/p-109ab0e0.entry.js +0 -2
  277. package/dist/searchcraft-javascript-sdk/p-109ab0e0.entry.js.map +0 -1
  278. package/dist/searchcraft-javascript-sdk/p-26f5263d.entry.js +0 -2
  279. package/dist/searchcraft-javascript-sdk/p-26f5263d.entry.js.map +0 -1
  280. package/dist/searchcraft-javascript-sdk/p-2ff7eb35.entry.js +0 -2
  281. package/dist/searchcraft-javascript-sdk/p-2ff7eb35.entry.js.map +0 -1
  282. package/dist/searchcraft-javascript-sdk/p-36f0532e.entry.js +0 -2
  283. package/dist/searchcraft-javascript-sdk/p-36f0532e.entry.js.map +0 -1
  284. package/dist/searchcraft-javascript-sdk/p-41b6bc5d.entry.js +0 -2
  285. package/dist/searchcraft-javascript-sdk/p-41b6bc5d.entry.js.map +0 -1
  286. package/dist/searchcraft-javascript-sdk/p-57eddb07.entry.js +0 -2
  287. package/dist/searchcraft-javascript-sdk/p-57eddb07.entry.js.map +0 -1
  288. package/dist/searchcraft-javascript-sdk/p-5d6fbee0.entry.js +0 -2
  289. package/dist/searchcraft-javascript-sdk/p-5d6fbee0.entry.js.map +0 -1
  290. package/dist/searchcraft-javascript-sdk/p-64c5a1d2.entry.js +0 -2
  291. package/dist/searchcraft-javascript-sdk/p-64c5a1d2.entry.js.map +0 -1
  292. package/dist/searchcraft-javascript-sdk/p-755f491b.js.map +0 -1
  293. package/dist/searchcraft-javascript-sdk/p-936e2ed4.js +0 -11
  294. package/dist/searchcraft-javascript-sdk/p-936e2ed4.js.map +0 -1
  295. package/dist/searchcraft-javascript-sdk/p-c7df8be6.entry.js +0 -2
  296. package/dist/searchcraft-javascript-sdk/p-c7df8be6.entry.js.map +0 -1
  297. package/dist/searchcraft-javascript-sdk/p-eb6058e8.entry.js +0 -2
  298. package/dist/searchcraft-javascript-sdk/p-eb6058e8.entry.js.map +0 -1
  299. package/dist/searchcraft-javascript-sdk/p-faaa4394.entry.js +0 -2
  300. package/dist/types/types/_shared.types.d.ts +0 -46
  301. package/dist/types/types/index.d.ts +0 -5
  302. package/dist/types/types/searchcraft-base-search-results.types.d.ts +0 -11
  303. package/dist/types/types/searchcraft-filter-panel.types.d.ts +0 -43
  304. package/dist/types/types/searchcraft-popover-form.types.d.ts +0 -9
  305. /package/dist/searchcraft-javascript-sdk/{p-faaa4394.entry.js.map → p-7f4dd50c.entry.js.map} +0 -0
  306. /package/dist/types/{types → themes}/raw.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["SearchcraftPopoverForm","config","type","popoverResultMappings","hotkey","hotkeyModifier","isPopoverVisibleInState","unsubscribe","searchResults","searchTerm","isFocused","breakpointSm","breakpointMd","breakpointLg","modalElement","componentDidLoad","computedStyle","getComputedStyle","document","documentElement","this","Number","parseFloat","getPropertyValue","trim","useSearchcraftStore","getState","isPopoverVisible","addEventListener","handleDocumentClick","handleDocumentKeyDown","subscribe","state","handlePopoverVisibilityChange","query","disconnectedCallback","removeEventListener","event","hostElement","contains","target","isVisible","body","style","overflow","key","handleHotkeyPressed","activeElement","preventDefault","focusOnNextListItem","setPopoverVisibility","handleInputInit","input","querySelector","focus","handleInputFocus","window","visualViewport","width","createElement","setAttribute","appendChild","handleModalBackdropClick","_event","ctrlKey","altKey","metaKey","hostElementInput","handleCancelButtonClick","direction","listItems","Array","from","querySelectorAll","filter","el","hasAttribute","offsetParent","currentIndex","indexOf","length","requestAnimationFrame","selectionEnd","value","selectionStart","hasResultsToShow","data","hits","renderInlinePopover","documents","isListViewVisible","popoverFormClassNames","classNames","h","class","onInputFocus","bind","renderModalPopover","onClick","onInputInit","renderFullscreenPopover","render","map","_index","doc","result"],"sources":["src/components/searchcraft-popover-form/searchcraft-popover-form.tsx"],"sourcesContent":["import { Component, Element, Prop, State, h } from '@stencil/core';\nimport classNames from 'classnames';\nimport type { SearchcraftConfig, SearchcraftResponse } from '@searchcraft/core';\n\nimport { useSearchcraftStore } from '@provider/store';\nimport type { PopoverResultMappings } from 'types';\n\n/**\n * This web component is designed to display search results in a popover container that dynamically appears when the user interacts with a search input field.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-popover-form type=\"fullscreen\" />\n * ```\n *\n * ```js\n * // index.js\n * const popoverForm = document.querySelector('searchcraft-popover-form');\n *\n * popoverForm.config = {\n * index: [index_name_from_vektron],\n * readKey: 'read_key_from_vektron',\n * endpointUrl: 'enpoint_url_from_vektron',\n * };\n *\n * popoverForm.popoverResultMappings = {\n * containerHref: {\n * fieldNames: [\n * {\n * fieldName: 'canonical_link',\n * dataType: 'text',\n * },\n * ],\n * };\n * ```\n */\n@Component({\n tag: 'searchcraft-popover-form',\n shadow: false,\n})\nexport class SearchcraftPopoverForm {\n /**\n * The Searchcraft config object.\n */\n @Prop() config: SearchcraftConfig | undefined;\n /**\n * The type of popover form to render.\n *\n * - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content.\n * - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component.\n * - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.\n */\n @Prop() type: 'inline' | 'fullscreen' | 'modal' = 'inline';\n /**\n * Formats the content rendered for each result.\n */\n @Prop() popoverResultMappings: PopoverResultMappings | undefined;\n /**\n * The hotkey that activates the popover.\n */\n @Prop() hotkey = 'k';\n /**\n * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.\n */\n @Prop() hotkeyModifier: 'ctrl' | 'meta' | 'alt' | 'option' = 'meta';\n\n @State() isPopoverVisibleInState = false;\n @State() unsubscribe: (() => void) | undefined;\n @State() searchResults: SearchcraftResponse | undefined;\n @State() searchTerm: string | undefined;\n @State() isFocused = false;\n @State() breakpointSm = 576;\n @State() breakpointMd = 768;\n @State() breakpointLg = 992;\n\n @State() modalElement;\n\n @Element() hostElement!: HTMLElement;\n\n componentDidLoad() {\n // Loads the breakpoint values into state\n const computedStyle = getComputedStyle(document.documentElement);\n this.breakpointSm = Number.parseFloat(\n computedStyle.getPropertyValue('--sc-breakpoint-sm').trim(),\n );\n this.breakpointMd = Number.parseFloat(\n computedStyle.getPropertyValue('--sc-breakpoint-md').trim(),\n );\n this.breakpointLg = Number.parseFloat(\n computedStyle.getPropertyValue('--sc-breakpoint-lg').trim(),\n );\n // Set popover visiblity in state\n this.isPopoverVisibleInState =\n useSearchcraftStore.getState().isPopoverVisible;\n\n // Add event listeners\n document.addEventListener('click', this.handleDocumentClick);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n\n // Subscribe to state events\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n if (this.isPopoverVisibleInState !== state.isPopoverVisible) {\n this.handlePopoverVisibilityChange(state.isPopoverVisible);\n }\n\n this.searchResults = { ...state.searchResults } as SearchcraftResponse;\n this.searchTerm = state.query;\n });\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n document.removeEventListener('click', this.handleDocumentClick);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleDocumentClick = (event: MouseEvent) => {\n if (!this.hostElement.contains(event.target as Node)) {\n this.isFocused = false;\n }\n };\n\n /**\n * Handles when popover visibility is changed in state\n */\n handlePopoverVisibilityChange(isVisible: boolean) {\n this.isPopoverVisibleInState = isVisible;\n document.body.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n\n /**\n * Actions to perform when various keys are pressed within the popover form.\n */\n handleDocumentKeyDown = (event: KeyboardEvent) => {\n // Document-scoped actions\n if (event.key === this.hotkey) {\n this.handleHotkeyPressed(event);\n }\n\n // Document-scoped -> Popover-scoped keyboard event boundary\n if (!this.hostElement.contains(document.activeElement)) {\n return;\n }\n\n // Popover-scoped actions\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n this.focusOnNextListItem(event.key);\n break;\n case 'Escape':\n useSearchcraftStore.getState().setPopoverVisibility(false);\n break;\n default:\n return;\n }\n };\n\n handleInputInit = () => {\n const input = this.hostElement.querySelector('.searchcraft-input') as\n | HTMLInputElement\n | undefined;\n input?.focus();\n };\n\n /**\n * When popover is `inline` and the viewport is at the smallest breakpoint,\n * focusing on the input will open a modal version of the popover form.\n */\n handleInputFocus() {\n this.isFocused = true;\n\n if (\n this.type === 'inline' &&\n window.visualViewport &&\n window.visualViewport.width < this.breakpointSm\n ) {\n useSearchcraftStore.getState().setPopoverVisibility(true);\n\n // Appends a popover form of type=`modal` to the body\n if (!this.modalElement) {\n this.modalElement = document.createElement('searchcraft-popover-form');\n this.modalElement.config = this.config;\n this.modalElement.popoverResultMappings = this.popoverResultMappings;\n this.modalElement.setAttribute('type', 'fullscreen');\n document.body.appendChild(this.modalElement);\n }\n }\n }\n\n handleModalBackdropClick(_event: MouseEvent) {\n useSearchcraftStore.getState().setPopoverVisibility(false);\n }\n\n /**\n * When a hotkey is pressed, tests if the modifiers also match.\n * If modifiers match, toggles visibility of the popover modal.\n */\n handleHotkeyPressed(event: KeyboardEvent) {\n if (\n (event.ctrlKey && this.hotkeyModifier === 'ctrl') ||\n (event.altKey && this.hotkeyModifier === 'alt') ||\n (event.metaKey && this.hotkeyModifier === 'meta')\n ) {\n event.preventDefault();\n if (this.type === 'inline' && !this.isPopoverVisibleInState) {\n const hostElementInput = this.hostElement.querySelector(\n '.searchcraft-input',\n ) as HTMLInputElement | undefined;\n hostElementInput?.focus();\n } else {\n useSearchcraftStore\n .getState()\n .setPopoverVisibility(!this.isPopoverVisibleInState);\n }\n }\n }\n\n handleCancelButtonClick() {\n useSearchcraftStore.getState().setPopoverVisibility(false);\n }\n\n /**\n * Moves focus to the next/previous list item in the list view. If you are at the top\n * of the list view, it moves focus back to the input.\n *\n * @param direction\n */\n focusOnNextListItem(direction: 'ArrowDown' | 'ArrowUp') {\n const listItems = Array.from(\n document.querySelectorAll<HTMLAnchorElement>(\n 'a.searchcraft-popover-list-item',\n ),\n ).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);\n\n const currentIndex = listItems.indexOf(\n document.activeElement as HTMLAnchorElement,\n );\n\n if (direction === 'ArrowDown') {\n listItems[(currentIndex + 1) % listItems.length]?.focus();\n } else if (direction === 'ArrowUp') {\n if (currentIndex >= 1) {\n listItems[currentIndex - 1]?.focus();\n } else {\n const input = document.querySelector('.searchcraft-input') as\n | HTMLInputElement\n | undefined;\n\n if (input) {\n input.focus();\n requestAnimationFrame(() => {\n input.selectionEnd = input.value.length;\n input.selectionStart = input.value.length;\n });\n }\n }\n }\n }\n\n get hasResultsToShow() {\n return (\n this.searchTerm &&\n this.searchTerm?.trim()?.length > 0 &&\n (this.searchResults?.data?.hits?.length || 0) > 0\n );\n }\n\n renderInlinePopover(documents: Record<string, unknown>[]) {\n const isListViewVisible = this.hasResultsToShow && this.isFocused;\n\n const popoverFormClassNames = classNames(\n 'searchcraft-popover-form searchcraft-popover-form-inline',\n {\n 'searchcraft-popover-form-active': isListViewVisible,\n },\n );\n\n return (\n <div class={popoverFormClassNames}>\n <searchcraft-input-form\n config={this.config}\n onInputFocus={this.handleInputFocus.bind(this)}\n />\n {isListViewVisible && (\n <div class='searchcraft-popover-inline-wrapper-outer'>\n <div class='searchcraft-popover-inline-wrapper-inner'>\n <searchcraft-popover-list-view\n popoverResultMappings={this.popoverResultMappings}\n documents={documents}\n />\n </div>\n </div>\n )}\n </div>\n );\n }\n\n renderModalPopover(documents: Record<string, unknown>[]) {\n if (this.isPopoverVisibleInState) {\n const popoverFormClassNames = classNames('searchcraft-popover-form', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n });\n\n return (\n <div class='searchcraft-popover-form-modal'>\n {/* biome-ignore lint/a11y/useKeyWithClickEvents: <explanation> */}\n <div\n class='searchcraft-popover-form-modal-backdrop'\n onClick={this.handleModalBackdropClick}\n />\n <div class='searchcraft-popover-form-modal-inner'>\n <div class={popoverFormClassNames}>\n <div class='searchcraft-popover-form-input-wrapper'>\n <searchcraft-input-form\n config={this.config}\n onInputFocus={this.handleInputFocus.bind(this)}\n onInputInit={this.handleInputInit.bind(this)}\n />\n <button\n type='button'\n class='searchcraft-popover-form-cancel-button'\n onClick={this.handleCancelButtonClick.bind(this)}\n >\n Cancel\n </button>\n </div>\n {this.hasResultsToShow && (\n <searchcraft-popover-list-view\n popoverResultMappings={this.popoverResultMappings}\n documents={documents}\n />\n )}\n </div>\n </div>\n </div>\n );\n }\n }\n\n renderFullscreenPopover(documents: Record<string, unknown>[]) {\n if (this.isPopoverVisibleInState) {\n return (\n <div class='searchcraft-popover-form-fullscreen'>\n <div class='searchcraft-popover-form'>\n <div class='searchcraft-popover-form-input-wrapper'>\n <searchcraft-input-form\n config={this.config}\n onInputFocus={this.handleInputFocus.bind(this)}\n onInputInit={this.handleInputInit.bind(this)}\n />\n <button\n type='button'\n class='searchcraft-popover-form-cancel-button'\n onClick={this.handleCancelButtonClick.bind(this)}\n >\n Cancel\n </button>\n </div>\n {this.hasResultsToShow && (\n <searchcraft-popover-list-view\n popoverResultMappings={this.popoverResultMappings}\n documents={documents}\n />\n )}\n </div>\n </div>\n );\n }\n }\n\n render() {\n const documents: Record<string, unknown>[] =\n this.searchResults?.data?.hits?.map((data, _index) => {\n const { doc: result } = data;\n return result;\n }) as Record<string, unknown>[];\n\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover(documents);\n case 'modal':\n return this.renderModalPopover(documents);\n case 'fullscreen':\n return this.renderFullscreenPopover(documents);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s,F as e}from"./p-7e13c128.js";import{u as r}from"./p-936e2ed4.js";const a=class{constructor(s){t(this,s)}titleContent;subtitleContent;bodyContent;footerContent;buttonLabel;buttonHref;buttonTarget="_blank";buttonRel;containerHref;containerTarget="_blank";containerRel;imageSrc;imageAlt;imagePlacement="right";customStyles;documentPosition=0;searchcraftStore=r.getState();recordMeasureEvent=()=>{const t=this.searchcraftStore.getSearchcraftInstance();if(t){const s=this.documentPosition;const e=this.searchcraftStore.query;const r=this.searchcraftStore.searchResults?.data?.hits?.length||0;t.sendMeasureEvent("document_clicked",{document_position:s,number_of_documents:r,search_term:e})}};parseStyles=()=>{if(this.customStyles){try{return JSON.parse(this.customStyles)}catch(t){console.error("Error parsing custom styles:",t);return{}}}return{}};render(){const t=this.parseStyles();const r=this.imageSrc&&s("img",{alt:this.imageAlt,class:"searchcraft-search-result-image",src:this.imageSrc,style:t.image||{}});const a=s(e,null,this.imageSrc&&this.imagePlacement==="left"&&r,s("div",{class:"searchcraft-base-search-result-content-container"},this.titleContent&&s("h2",{class:"searchcraft-base-search-result-title",style:t.title||{}},this.titleContent),this.subtitleContent&&s("h3",{class:"searchcraft-base-search-result-subtitle",style:t.subtitle||{}},this.subtitleContent),this.bodyContent&&s("p",{class:"searchcraft-base-search-result-body-content",style:t.primaryContent||{}},this.bodyContent),this.footerContent&&s("p",{class:"searchcraft-base-search-result-footer-content",style:t.secondaryContent||{}},this.footerContent),this.buttonHref&&!this.containerHref&&this.buttonLabel&&s("a",{class:"searchcraft-search-result-button",href:this.buttonHref,style:t.button||{},target:this.buttonTarget,rel:this.buttonRel},this.buttonLabel)),this.imageSrc&&this.imagePlacement==="right"&&r);if(this.containerHref){return s("a",{class:"searchcraft-search-result-container",onClick:this.recordMeasureEvent,href:this.containerHref,rel:this.containerRel,style:t.container||{},tabindex:"0",target:this.containerTarget},a)}return s("div",{class:"searchcraft-search-result-container",style:t.container||{}},a)}};export{a as searchcraft_base_search_result};
2
- //# sourceMappingURL=p-57eddb07.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["SearchcraftBaseSearchResult","titleContent","subtitleContent","bodyContent","footerContent","buttonLabel","buttonHref","buttonTarget","buttonRel","containerHref","containerTarget","containerRel","imageSrc","imageAlt","imagePlacement","customStyles","documentPosition","searchcraftStore","useSearchcraftStore","getState","recordMeasureEvent","searchcraft","this","getSearchcraftInstance","document_position","search_term","query","number_of_documents","searchResults","data","hits","length","sendMeasureEvent","parseStyles","JSON","parse","error","console","render","styles","imageContainer","h","alt","class","src","style","image","contentContainer","Fragment","title","subtitle","primaryContent","secondaryContent","href","button","target","rel","onClick","container","tabindex"],"sources":["src/components/searchcraft-base-search-result/searchcraft-base-search-result.tsx"],"sourcesContent":["import { useSearchcraftStore } from '@provider/store';\nimport { Component, Fragment, h, Prop } from '@stencil/core';\n\n/**\n * This web component is designed to display detailed information for a single search result.\n * Once a query is submitted, the component formats and presents the result.\n * It is consumed within the `searchcraft-base-search-results` component.\n */\n@Component({\n tag: 'searchcraft-base-search-result',\n shadow: false,\n})\nexport class SearchcraftBaseSearchResult {\n /**\n * The title content.\n */\n @Prop() titleContent: string | undefined;\n /**\n * The subtitle content.\n */\n @Prop() subtitleContent: string | undefined;\n /**\n * The body content.\n */\n @Prop() bodyContent: string | undefined;\n /**\n * The footer content.\n */\n @Prop() footerContent: string | undefined;\n /**\n * The label for the button rendered when containerHref is not present.\n */\n @Prop() buttonLabel: string | undefined;\n /**\n * The link for the button rendered when containerHref is not present.\n */\n @Prop() buttonHref: string | undefined;\n /**\n * Where to open the link for the button rendered when containerHref is not present.\n */\n @Prop() buttonTarget: '_blank' | '_self' | '_top' | '_parent' = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present.\n */\n @Prop() buttonRel: 'noreferrer' | 'noopener' | 'nofollow' | undefined;\n /**\n * The link for the containing element.\n */\n @Prop() containerHref: string | undefined;\n /**\n * Where to open the link for the containing element.\n */\n @Prop() containerTarget: '_blank' | '_self' | '_top' | '_parent' = '_blank';\n /**\n * The relationship between the current document and the link for the containing element.\n */\n @Prop() containerRel: 'noreferrer' | 'noopener' | 'nofollow' | undefined;\n /**\n * The image source.\n */\n @Prop() imageSrc: string | undefined;\n /**\n * The image alternative text.\n */\n @Prop() imageAlt: string | undefined;\n /**\n * The placement of the image.\n */\n @Prop() imagePlacement: 'left' | 'right' = 'right';\n /**\n * A custom styles object.\n */\n @Prop() customStyles: string | undefined;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n @Prop() documentPosition = 0;\n\n private searchcraftStore = useSearchcraftStore.getState();\n\n private recordMeasureEvent = () => {\n const searchcraft = this.searchcraftStore.getSearchcraftInstance();\n\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = this.searchcraftStore.query;\n const number_of_documents =\n this.searchcraftStore.searchResults?.data?.hits?.length || 0;\n\n searchcraft.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n\n private parseStyles = (): Record<string, { [key: string]: string }> => {\n if (this.customStyles) {\n try {\n return JSON.parse(this.customStyles);\n } catch (error) {\n console.error('Error parsing custom styles:', error);\n return {};\n }\n }\n return {};\n };\n\n render() {\n const styles = this.parseStyles();\n const imageContainer = this.imageSrc && (\n <img\n alt={this.imageAlt}\n class='searchcraft-search-result-image'\n src={this.imageSrc}\n style={styles.image || {}}\n />\n );\n\n const contentContainer = (\n <Fragment>\n {this.imageSrc && this.imagePlacement === 'left' && imageContainer}\n <div class='searchcraft-base-search-result-content-container'>\n {this.titleContent && (\n <h2\n class='searchcraft-base-search-result-title'\n style={styles.title || {}}\n >\n {this.titleContent}\n </h2>\n )}\n {this.subtitleContent && (\n <h3\n class='searchcraft-base-search-result-subtitle'\n style={styles.subtitle || {}}\n >\n {this.subtitleContent}\n </h3>\n )}\n {this.bodyContent && (\n <p\n class='searchcraft-base-search-result-body-content'\n style={styles.primaryContent || {}}\n >\n {this.bodyContent}\n </p>\n )}\n\n {this.footerContent && (\n <p\n class='searchcraft-base-search-result-footer-content'\n style={styles.secondaryContent || {}}\n >\n {this.footerContent}\n </p>\n )}\n {this.buttonHref && !this.containerHref && this.buttonLabel && (\n <a\n class='searchcraft-search-result-button'\n href={this.buttonHref}\n style={styles.button || {}}\n target={this.buttonTarget}\n rel={this.buttonRel}\n >\n {this.buttonLabel}\n </a>\n )}\n </div>\n {this.imageSrc && this.imagePlacement === 'right' && imageContainer}\n </Fragment>\n );\n\n /** Render as an anchor tag if the containerHref prop is present. */\n if (this.containerHref) {\n return (\n <a\n class='searchcraft-search-result-container'\n onClick={this.recordMeasureEvent}\n href={this.containerHref}\n rel={this.containerRel}\n style={styles.container || {}}\n tabindex='0'\n target={this.containerTarget}\n >\n {contentContainer}\n </a>\n );\n }\n\n /** Render as a div if no href prop. */\n return (\n <div\n class='searchcraft-search-result-container'\n style={styles.container || {}}\n >\n {contentContainer}\n </div>\n );\n }\n}\n"],"mappings":"4FAYaA,EAA2B,M,yBAI9BC,aAIAC,gBAIAC,YAIAC,cAIAC,YAIAC,WAIAC,aAAwD,SAIxDC,UAIAC,cAIAC,gBAA2D,SAI3DC,aAIAC,SAIAC,SAIAC,eAAmC,QAInCC,aAIAC,iBAAmB,EAEnBC,iBAAmBC,EAAoBC,WAEvCC,mBAAqB,KAC3B,MAAMC,EAAcC,KAAKL,iBAAiBM,yBAE1C,GAAIF,EAAa,CACf,MAAMG,EAAoBF,KAAKN,iBAC/B,MAAMS,EAAcH,KAAKL,iBAAiBS,MAC1C,MAAMC,EACJL,KAAKL,iBAAiBW,eAAeC,MAAMC,MAAMC,QAAU,EAE7DV,EAAYW,iBAAiB,mBAAoB,CAC/CR,oBACAG,sBACAF,e,GAKEQ,YAAc,KACpB,GAAIX,KAAKP,aAAc,CACrB,IACE,OAAOmB,KAAKC,MAAMb,KAAKP,a,CACvB,MAAOqB,GACPC,QAAQD,MAAM,+BAAgCA,GAC9C,MAAO,E,EAGX,MAAO,EAAE,EAGX,MAAAE,GACE,MAAMC,EAASjB,KAAKW,cACpB,MAAMO,EAAiBlB,KAAKV,UAC1B6B,EAAA,OACEC,IAAKpB,KAAKT,SACV8B,MAAM,kCACNC,IAAKtB,KAAKV,SACViC,MAAON,EAAOO,OAAS,KAI3B,MAAMC,EACJN,EAACO,EAAQ,KACN1B,KAAKV,UAAYU,KAAKR,iBAAmB,QAAU0B,EACpDC,EAAA,OAAKE,MAAM,oDACRrB,KAAKrB,cACJwC,EAAA,MACEE,MAAM,uCACNE,MAAON,EAAOU,OAAS,IAEtB3B,KAAKrB,cAGTqB,KAAKpB,iBACJuC,EAAA,MACEE,MAAM,0CACNE,MAAON,EAAOW,UAAY,IAEzB5B,KAAKpB,iBAGToB,KAAKnB,aACJsC,EAAA,KACEE,MAAM,8CACNE,MAAON,EAAOY,gBAAkB,IAE/B7B,KAAKnB,aAITmB,KAAKlB,eACJqC,EAAA,KACEE,MAAM,gDACNE,MAAON,EAAOa,kBAAoB,IAEjC9B,KAAKlB,eAGTkB,KAAKhB,aAAegB,KAAKb,eAAiBa,KAAKjB,aAC9CoC,EAAA,KACEE,MAAM,mCACNU,KAAM/B,KAAKhB,WACXuC,MAAON,EAAOe,QAAU,GACxBC,OAAQjC,KAAKf,aACbiD,IAAKlC,KAAKd,WAETc,KAAKjB,cAIXiB,KAAKV,UAAYU,KAAKR,iBAAmB,SAAW0B,GAKzD,GAAIlB,KAAKb,cAAe,CACtB,OACEgC,EAAA,KACEE,MAAM,sCACNc,QAASnC,KAAKF,mBACdiC,KAAM/B,KAAKb,cACX+C,IAAKlC,KAAKX,aACVkC,MAAON,EAAOmB,WAAa,GAC3BC,SAAS,IACTJ,OAAQjC,KAAKZ,iBAEZqC,E,CAMP,OACEN,EAAA,OACEE,MAAM,sCACNE,MAAON,EAAOmB,WAAa,IAE1BX,E","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as t}from"./p-7e13c128.js";import{u as c}from"./p-936e2ed4.js";const a=class{constructor(t){e(this,t)}titleContent;subtitleContent;imageSrc;imageAlt;href;documentPosition=0;componentDidLoad(){}connectedCallback(){}disconnectedCallback(){}handleButtonClick(){}handleLinkClick=()=>{const e=c.getState();const t=e.getSearchcraftInstance();if(t){const c=this.documentPosition;const a=e.query;const s=e.searchResults?.data?.hits?.length||0;t.sendMeasureEvent("document_clicked",{document_position:c,number_of_documents:s,search_term:a})}};render(){return t("a",{key:"b20aae2fc421323774a5129dde7d53d4ae3283fb",class:"searchcraft-popover-list-item",href:this.href,onClick:this.handleLinkClick.bind(this)},this.imageSrc&&t("div",{key:"79541d12ea3adafff2e141cb8946aa3feaea51df",class:"searchcraft-popover-list-item-image-wrapper"},t("img",{key:"3e6368a0f544a58ee0af9d1c15d0c909c6231842",alt:this.imageAlt,src:this.imageSrc,class:"searchcraft-popover-list-item-image"})),t("div",{key:"87e7a9dcc8b868af259b4456e9962af9d8dee498",class:"searchcraft-popover-list-item-info-wrapper"},t("p",{key:"e5b63b4c2752573d0ee0ef52c2903b593a8b94a0",class:"searchcraft-popover-list-item-title"},this.titleContent),t("p",{key:"c506d5d7e569ec20885eb65cdc6476dfb8895a13",class:"searchcraft-popover-list-item-subtitle"},this.subtitleContent)))}};export{a as searchcraft_popover_list_item};
2
- //# sourceMappingURL=p-5d6fbee0.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["SearchcraftPopoverListItem","titleContent","subtitleContent","imageSrc","imageAlt","href","documentPosition","componentDidLoad","connectedCallback","disconnectedCallback","handleButtonClick","handleLinkClick","state","useSearchcraftStore","getState","searchcraft","getSearchcraftInstance","document_position","this","search_term","query","number_of_documents","searchResults","data","hits","length","sendMeasureEvent","render","h","key","class","onClick","bind","alt","src"],"sources":["src/components/searchcraft-popover-list-item/searchcraft-popover-list-item.tsx"],"sourcesContent":["import { useSearchcraftStore } from '@provider/store';\nimport { Component, h, Prop } from '@stencil/core';\n\n/**\n * A single list item rendered in a searchcraft-popover-list-view.\n */\n@Component({\n tag: 'searchcraft-popover-list-item',\n shadow: false,\n})\nexport class SearchcraftPopoverListItem {\n /** The result title */\n @Prop() titleContent: string | undefined;\n /** The result subtitle */\n @Prop() subtitleContent: string | undefined;\n /** The source of the image. If not included, no item will be rendered. */\n @Prop() imageSrc: string | undefined;\n /** The image alt tag. */\n @Prop() imageAlt: string | undefined;\n /** The link href */\n @Prop() href: string | undefined;\n /** The document position relative to the search results (For Measure) */\n @Prop() documentPosition = 0;\n\n componentDidLoad() {}\n\n connectedCallback() {}\n\n disconnectedCallback() {}\n\n handleButtonClick() {}\n\n handleLinkClick = () => {\n const state = useSearchcraftStore.getState();\n const searchcraft = state.getSearchcraftInstance();\n\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = state.query;\n const number_of_documents = state.searchResults?.data?.hits?.length || 0;\n\n searchcraft.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n\n render() {\n return (\n <a\n class='searchcraft-popover-list-item'\n href={this.href}\n onClick={this.handleLinkClick.bind(this)}\n >\n {this.imageSrc && (\n <div class='searchcraft-popover-list-item-image-wrapper'>\n <img\n alt={this.imageAlt}\n src={this.imageSrc}\n class='searchcraft-popover-list-item-image'\n />\n </div>\n )}\n <div class='searchcraft-popover-list-item-info-wrapper'>\n <p class='searchcraft-popover-list-item-title'>{this.titleContent}</p>\n <p class='searchcraft-popover-list-item-subtitle'>\n {this.subtitleContent}\n </p>\n </div>\n </a>\n );\n }\n}\n"],"mappings":"qFAUaA,EAA0B,M,yBAE7BC,aAEAC,gBAEAC,SAEAC,SAEAC,KAEAC,iBAAmB,EAE3B,gBAAAC,GAAgB,CAEhB,iBAAAC,GAAiB,CAEjB,oBAAAC,GAAoB,CAEpB,iBAAAC,GAAiB,CAEjBC,gBAAkB,KAChB,MAAMC,EAAQC,EAAoBC,WAClC,MAAMC,EAAcH,EAAMI,yBAE1B,GAAID,EAAa,CACf,MAAME,EAAoBC,KAAKZ,iBAC/B,MAAMa,EAAcP,EAAMQ,MAC1B,MAAMC,EAAsBT,EAAMU,eAAeC,MAAMC,MAAMC,QAAU,EAEvEV,EAAYW,iBAAiB,mBAAoB,CAC/CT,oBACAI,sBACAF,e,GAKN,MAAAQ,GACE,OACEC,EAAA,KAAAC,IAAA,2CACEC,MAAM,gCACNzB,KAAMa,KAAKb,KACX0B,QAASb,KAAKP,gBAAgBqB,KAAKd,OAElCA,KAAKf,UACJyB,EAAA,OAAAC,IAAA,2CAAKC,MAAM,+CACTF,EAAA,OAAAC,IAAA,2CACEI,IAAKf,KAAKd,SACV8B,IAAKhB,KAAKf,SACV2B,MAAM,yCAIZF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,8CACTF,EAAA,KAAAC,IAAA,2CAAGC,MAAM,uCAAuCZ,KAAKjB,cACrD2B,EAAA,KAAAC,IAAA,2CAAGC,MAAM,0CACNZ,KAAKhB,kB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as s,h as e}from"./p-7e13c128.js";import{u as r}from"./p-936e2ed4.js";import{g as i}from"./p-755f491b.js";import{s as a}from"./p-d9551738.js";const c=class{constructor(e){t(this,e);this.noResults=s(this,"noResults",7)}adInterval=4;customStylesForResults;searchResultMappings;placeAdAtEnd=false;placeAdAtStart=true;resultImagePlacement="right";buttonLabel;buttonTarget="_blank";buttonRel;containerTarget="_blank";containerRel;noResults;hasSearched=false;query="";searchResults=null;unsubscribe=()=>{};componentDidLoad(){this.unsubscribe=r.subscribe((t=>{if(t.query.length>0){this.hasSearched=true}else{this.hasSearched=false}this.searchResults={...t.searchResults};this.query=t.query}));const{searchResults:t,query:s}=r.getState();this.searchResults=t;this.query=s}disconnectedCallback(){if(this.unsubscribe){this.unsubscribe()}}renderDocument(t,s){const r=i(t,this.searchResultMappings?.title);const c=i(t,this.searchResultMappings?.subtitle);const n=i(t,this.searchResultMappings?.body);const o=i(t,this.searchResultMappings?.containerHref);const h=i(t,this.searchResultMappings?.buttonHref);const l=i(t,this.searchResultMappings?.imageSource);const u=i(t,this.searchResultMappings?.footer);let d="";if(this.customStylesForResults){d=typeof this.customStylesForResults==="string"?this.customStylesForResults:a(this.customStylesForResults)}return e("searchcraft-base-search-result",{key:`${t.document_id}-${s}`,"custom-styles":d,"image-placement":this.resultImagePlacement,"container-rel":this.containerRel,"container-target":this.containerTarget,"button-label":this.buttonLabel||"View more","button-rel":this.buttonRel,"button-target":this.buttonTarget,"document-position":s,"title-content":r,"subtitle-content":c,"body-content":n,"footer-content":u,"container-href":o,"button-href":h,"image-src":l})}render(){if(this.query.trim()===""){return e("div",{class:"searchcraft-search-results-empty-state-container"},e("slot",{name:"empty-search"}))}if(!this.searchResults?.data){return}const t=this.searchResults?.data?.hits?.map(((t,s)=>{const{doc:e}=t;return e}));const s=[];if(this.placeAdAtStart){s.push(e("div",{key:"ad-section-start",class:"searchcraft-ad-section"},e("p",null,"Ad Section")))}if(this.adInterval>0){t.forEach(((t,r)=>{s.push(this.renderDocument(t,r));if((r+1)%this.adInterval===0){s.push(e("div",{key:`ad-section-${r+1}`,class:"searchcraft-ad-section "},e("p",null,"Ad Section")))}}))}else{const e=t.map(((t,s)=>this.renderDocument(t,s)));s.push(...e)}if(this.placeAdAtEnd){s.push(e("div",{key:"ad-section-end",class:"searchcraft-ad-section"},e("p",null,"Ad Section")))}if(this.query.length>0&&this.searchResults?.data?.hits?.length===0){this.noResults?.emit()}return e("div",{class:"searchcraft-search-results-container"},s,this.query.length>0&&this.searchResults?.data?.hits?.length===0&&e("div",{class:"searchcraft-search-results-error-message-container"},e("searchcraft-error-message",{"error-message":`No search results found for "${this.query}" query`})))}};export{c as searchcraft_base_search_results};
2
- //# sourceMappingURL=p-64c5a1d2.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["SearchcraftBaseSearchResults","adInterval","customStylesForResults","searchResultMappings","placeAdAtEnd","placeAdAtStart","resultImagePlacement","buttonLabel","buttonTarget","buttonRel","containerTarget","containerRel","noResults","hasSearched","query","searchResults","unsubscribe","componentDidLoad","this","useSearchcraftStore","subscribe","state","length","getState","disconnectedCallback","renderDocument","document","index","titleContent","getDocumentValueFromSearchResultMapping","title","subtitleContent","subtitle","bodyContent","body","containerHref","buttonHref","imageSource","footerContent","footer","serializedStyles","serializeStyles","h","key","document_id","render","trim","class","name","data","documents","hits","map","_index","doc","result","finalComponents","push","forEach","documentElements","emit"],"sources":["src/components/searchcraft-base-search-results/searchcraft-base-search-results.tsx"],"sourcesContent":["import {\n Component,\n h,\n Event,\n Prop,\n State,\n type EventEmitter,\n} from '@stencil/core';\n\nimport type { SearchcraftResponse } from '@searchcraft/core';\n\nimport { useSearchcraftStore } from '@provider/store';\n\nimport {\n getDocumentValueFromSearchResultMapping,\n serializeStyles,\n} from '@utils';\nimport type { SearchResultMappings } from 'types';\nimport type { JSX } from '@stencil/core/internal';\n\n/**\n * This web component is responsible for displaying the results of a search query.\n * Once a query is submitted, the component formats and presents an ordered list of the results.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-base-search-results\n * ad-interval=\"4\"\n * place-ad-at-start=\"false\"\n * result-image-placement=\"right\"\n * />\n * ```\n *\n * ```js\n * // index.js\n * const baseSearchResults = document.querySelector('searchcraft-base-search-results');\n *\n * baseSearchResults.searchResultMappings = containerHref: {\n * fieldNames: [\n * {\n * fieldName: 'canonical_link',\n * dataType: 'text',\n * },\n * ],\n * };\n *\n * baseSearchResults.addEventListener('noResults', () => {\n * console.log('No search results found');\n * });\n * ```\n */\n@Component({\n tag: 'searchcraft-base-search-results',\n shadow: false,\n})\nexport class SearchcraftBaseSearchResults {\n /**\n * How often ads are injected.\n */\n @Prop() adInterval = 4;\n /**\n * A custom styles object.\n */\n @Prop() customStylesForResults:\n | string\n | Record<string, Record<string, string>>\n | undefined;\n /**\n * Formats the content rendered for each result.\n */\n @Prop() searchResultMappings: SearchResultMappings | undefined;\n /**\n * Should an ad be placed at the end of the results.\n */\n @Prop() placeAdAtEnd = false;\n /**\n * Should an ad be placed at the start of the results.\n */\n @Prop() placeAdAtStart = true;\n /**\n * The placement of the image for each result.\n */\n @Prop() resultImagePlacement: 'left' | 'right' = 'right';\n /**\n * The label for the button rendered when containerHref is not present for each result.\n */\n @Prop() buttonLabel: string | undefined;\n /**\n * Where to open the link for the button rendered when containerHref is not present for each result.\n */\n @Prop() buttonTarget: '_blank' | '_self' | '_top' | '_parent' = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present for each result.\n */\n @Prop() buttonRel: 'noreferrer' | 'noopener' | 'nofollow' | undefined;\n /**\n * Where to open the link for the containing element for each result.\n */\n @Prop() containerTarget: '_blank' | '_self' | '_top' | '_parent' = '_blank';\n /**\n * The relationship between the current document and the link for the containing element for each result.\n */\n @Prop() containerRel: 'noreferrer' | 'noopener' | 'nofollow' | undefined;\n\n /**\n * When no results are returned.\n */\n @Event() noResults?: EventEmitter<void>;\n\n @State() hasSearched = false;\n @State() query = '';\n @State() searchResults: SearchcraftResponse | null = null;\n\n private unsubscribe: () => void = () => {};\n\n componentDidLoad() {\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n if (state.query.length > 0) {\n this.hasSearched = true;\n } else {\n this.hasSearched = false;\n }\n this.searchResults = { ...state.searchResults } as SearchcraftResponse;\n this.query = state.query;\n });\n\n const { searchResults, query } = useSearchcraftStore.getState();\n this.searchResults = searchResults;\n this.query = query;\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n renderDocument(document: Record<string, unknown>, index: number) {\n /**\n * Index field values -> Result container props mappings.\n */\n const titleContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.title,\n );\n const subtitleContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.subtitle,\n );\n const bodyContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.body,\n );\n const containerHref = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.containerHref,\n );\n const buttonHref = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.buttonHref,\n );\n const imageSource = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.imageSource,\n );\n const footerContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.footer,\n );\n\n let serializedStyles = '';\n if (this.customStylesForResults) {\n serializedStyles =\n typeof this.customStylesForResults === 'string'\n ? this.customStylesForResults\n : serializeStyles(this.customStylesForResults);\n }\n\n return (\n <searchcraft-base-search-result\n key={`${document.document_id}-${index}`}\n custom-styles={serializedStyles}\n image-placement={this.resultImagePlacement}\n container-rel={this.containerRel}\n container-target={this.containerTarget}\n button-label={this.buttonLabel || 'View more'}\n button-rel={this.buttonRel}\n button-target={this.buttonTarget}\n document-position={index}\n title-content={titleContent}\n subtitle-content={subtitleContent}\n body-content={bodyContent}\n footer-content={footerContent}\n container-href={containerHref}\n button-href={buttonHref}\n image-src={imageSource}\n />\n );\n }\n\n render() {\n if (this.query.trim() === '') {\n return (\n <div class='searchcraft-search-results-empty-state-container'>\n <slot name='empty-search' />\n </div>\n );\n }\n\n if (!this.searchResults?.data) {\n return;\n }\n\n const documents: Record<string, unknown>[] =\n this.searchResults?.data?.hits?.map((data, _index) => {\n const { doc: result } = data;\n return result;\n }) as Record<string, unknown>[];\n\n const finalComponents: JSX.Element[] = [];\n\n if (this.placeAdAtStart) {\n finalComponents.push(\n <div key='ad-section-start' class='searchcraft-ad-section'>\n <p>Ad Section</p>\n </div>,\n );\n }\n\n if (this.adInterval > 0) {\n documents.forEach((document, index) => {\n finalComponents.push(this.renderDocument(document, index));\n\n if ((index + 1) % this.adInterval === 0) {\n finalComponents.push(\n <div\n key={`ad-section-${index + 1}`}\n class='searchcraft-ad-section '\n >\n <p>Ad Section</p>\n </div>,\n );\n }\n });\n } else {\n const documentElements = documents.map((document, index) =>\n this.renderDocument(document, index),\n );\n finalComponents.push(...documentElements);\n }\n\n if (this.placeAdAtEnd) {\n finalComponents.push(\n <div key='ad-section-end' class='searchcraft-ad-section'>\n <p>Ad Section</p>\n </div>,\n );\n }\n\n if (this.query.length > 0 && this.searchResults?.data?.hits?.length === 0) {\n this.noResults?.emit();\n }\n\n return (\n <div class='searchcraft-search-results-container'>\n {finalComponents}\n {this.query.length > 0 &&\n this.searchResults?.data?.hits?.length === 0 && (\n <div class='searchcraft-search-results-error-message-container'>\n <searchcraft-error-message\n error-message={`No search results found for \"${this.query}\" query`}\n />\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["getDocumentValueFromSearchResultMapping","document","mapping","fieldNames","map","fieldNameDetails","valueFound","fieldName","dataType","getFormattedTimeFromNow","Intl","NumberFormat","numberFormatLocale","numberFormatOptions","format","numberScale","filter","value","join","delimiter","getMillis","unit","millisInHour","millisInDay","millisInMonth","millisInYear","formatNumberWithCommas","number","toString","replace","timestamp","now","Date","inputTime","diffInSeconds","Math","floor","getTime","minutes","hours","days","years"],"sources":["src/utils/units.ts"],"sourcesContent":["import type { SearchResultMapping } from 'types';\n\n/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n *\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nexport function getDocumentValueFromSearchResultMapping(\n document: Record<string, unknown> | undefined,\n mapping: SearchResultMapping | undefined,\n): string | undefined {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n // TODO: Use fieldNameDetails.DateFormatOptions to format the date\n valueFound = getFormattedTimeFromNow(valueFound as string);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(\n fieldNameDetails.numberFormatLocale,\n fieldNameDetails.numberFormatOptions,\n ).format(\n (valueFound as number) * (fieldNameDetails.numberScale || 1),\n );\n break;\n }\n default:\n break;\n }\n }\n\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\n\nexport function getMillis(unit: 'year' | 'month' | 'day' | 'hour'): number {\n const millisInHour = 60 * 60 * 1000;\n const millisInDay = 24 * millisInHour;\n const millisInMonth = 30 * millisInDay;\n const millisInYear = 365 * millisInDay;\n\n switch (unit) {\n case 'hour':\n return millisInHour;\n case 'day':\n return millisInDay;\n case 'month':\n return millisInMonth;\n case 'year':\n return millisInYear;\n default:\n return 3600000;\n }\n}\n\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\n/**\n * Given a timestamp value, returns a formatted time string for the time\n * since now.\n *\n * @param timestamp\n * @returns {string} Formatted string value\n */\nexport function getFormattedTimeFromNow(timestamp: string): string {\n const now = new Date();\n const inputTime = new Date(timestamp);\n const diffInSeconds = Math.floor(\n (now.getTime() - inputTime.getTime()) / 1000,\n );\n\n const minutes = Math.floor(diffInSeconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const years = Math.floor(days / 365);\n\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n if (hours < 24) {\n return `${hours}h ago`;\n }\n if (days < 365) {\n return `${days}d ago`;\n }\n return `${years}y ago`;\n}\n"],"mappings":"SAWgBA,EACdC,EACAC,GAEA,GAAID,GAAYC,EAAS,CACvB,OAAOA,EAAQC,WACZC,KAAKC,IACJ,IAAIC,EAAaL,EAASI,EAAiBE,WAE3C,GAAID,EAAY,CACd,OAAQD,EAAiBG,UACvB,IAAK,OAAQ,CAEXF,EAAaG,EAAwBH,GACrC,K,CAEF,IAAK,SAAU,CACbA,EAAaI,KAAKC,aAChBN,EAAiBO,mBACjBP,EAAiBQ,qBACjBC,OACCR,GAAyBD,EAAiBU,aAAe,IAE5D,K,GAON,OAAOT,CAAU,IAElBU,QAAQC,KAAYA,IACpBC,KAAKhB,EAAQiB,WAAa,I,CAEjC,C,SAEgBC,EAAUC,GACxB,MAAMC,EAAe,GAAK,GAAK,IAC/B,MAAMC,EAAc,GAAKD,EACzB,MAAME,EAAgB,GAAKD,EAC3B,MAAME,EAAe,IAAMF,EAE3B,OAAQF,GACN,IAAK,OACH,OAAOC,EACT,IAAK,MACH,OAAOC,EACT,IAAK,QACH,OAAOC,EACT,IAAK,OACH,OAAOC,EACT,QACE,OAAO,KAEb,C,SAEgBC,EAAuBC,GACrC,OAAOA,EAAOC,WAAWC,QAAQ,wBAAyB,IAC5D,C,SASgBpB,EAAwBqB,GACtC,MAAMC,EAAM,IAAIC,KAChB,MAAMC,EAAY,IAAID,KAAKF,GAC3B,MAAMI,EAAgBC,KAAKC,OACxBL,EAAIM,UAAYJ,EAAUI,WAAa,KAG1C,MAAMC,EAAUH,KAAKC,MAAMF,EAAgB,IAC3C,MAAMK,EAAQJ,KAAKC,MAAME,EAAU,IACnC,MAAME,EAAOL,KAAKC,MAAMG,EAAQ,IAChC,MAAME,EAAQN,KAAKC,MAAMI,EAAO,KAEhC,GAAIF,EAAU,GAAI,CAChB,MAAO,GAAGA,Q,CAEZ,GAAIC,EAAQ,GAAI,CACd,MAAO,GAAGA,Q,CAEZ,GAAIC,EAAO,IAAK,CACd,MAAO,GAAGA,Q,CAEZ,MAAO,GAAGC,QACZ,Q","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- var e={};var n={};const t=e=>{let n;const t=new Set;const r=(e,r)=>{const o=typeof e==="function"?e(n):e;if(!Object.is(o,n)){const e=n;n=(r!=null?r:typeof o!=="object"||o===null)?o:Object.assign({},n,o);t.forEach((t=>t(n,e)))}};const o=()=>n;const i=()=>u;const a=e=>{t.add(e);return()=>t.delete(e)};const c={setState:r,getState:o,getInitialState:i,subscribe:a};const u=n=e(r,o,c);return c};const r=e=>e?t(e):t;n.createStore=r;var o={};var i={exports:{}};var a={};
2
- /**
3
- * @license React
4
- * react.production.js
5
- *
6
- * Copyright (c) Meta Platforms, Inc. and affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- */var c=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),h=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),w=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.iterator;function b(e){if(null===e||"object"!==typeof e)return null;e=y&&e[y]||e["@@iterator"];return"function"===typeof e?e:null}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,M={};function x(e,n,t){this.props=e;this.context=n;this.refs=M;this.updater=t||g}x.prototype.isReactComponent={};x.prototype.setState=function(e,n){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};x.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function F(){}F.prototype=x.prototype;function j(e,n,t){this.props=e;this.context=n;this.refs=M;this.updater=t||g}var P=j.prototype=new F;P.constructor=j;S(P,x.prototype);P.isPureReactComponent=!0;var k=Array.isArray,E={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function I(e,n,t,r,o,i){t=i.ref;return{$$typeof:c,type:e,key:n,ref:void 0!==t?t:null,props:i}}function T(e,n){return I(e.type,n,void 0,void 0,void 0,e.props)}function _(e){return"object"===typeof e&&null!==e&&e.$$typeof===c}function R(e){var n={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return n[e]}))}var A=/\/+/g;function C(e,n){return"object"===typeof e&&null!==e&&null!=e.key?R(""+e.key):n.toString(36)}function $(){}function U(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"===typeof e.status?e.then($,$):(e.status="pending",e.then((function(n){"pending"===e.status&&(e.status="fulfilled",e.value=n)}),(function(n){"pending"===e.status&&(e.status="rejected",e.reason=n)}))),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function q(e,n,t,r,o){var i=typeof e;if("undefined"===i||"boolean"===i)e=null;var a=!1;if(null===e)a=!0;else switch(i){case"bigint":case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case c:case u:a=!0;break;case p:return a=e._init,q(a(e._payload),n,t,r,o)}}if(a)return o=o(e),a=""===r?"."+C(e,0):r,k(o)?(t="",null!=a&&(t=a.replace(A,"$&/")+"/"),q(o,n,t,"",(function(e){return e}))):null!=o&&(_(o)&&(o=T(o,t+(null==o.key||e&&e.key===o.key?"":(""+o.key).replace(A,"$&/")+"/")+a)),n.push(o)),1;a=0;var s=""===r?".":r+":";if(k(e))for(var f=0;f<e.length;f++)r=e[f],i=s+C(r,f),a+=q(r,n,t,i,o);else if(f=b(e),"function"===typeof f)for(e=f.call(e),f=0;!(r=e.next()).done;)r=r.value,i=s+C(r,f++),a+=q(r,n,t,i,o);else if("object"===i){if("function"===typeof e.then)return q(U(e),n,t,r,o);n=String(e);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===n?"object with keys {"+Object.keys(e).join(", ")+"}":n)+"). If you meant to render a collection of children, use an array instead.")}return a}function V(e,n,t){if(null==e)return e;var r=[],o=0;q(e,r,"","",(function(e){return n.call(t,e,o++)}));return r}function B(e){if(-1===e._status){var n=e._result;n=n();n.then((function(n){if(0===e._status||-1===e._status)e._status=1,e._result=n}),(function(n){if(0===e._status||-1===e._status)e._status=2,e._result=n}));-1===e._status&&(e._status=0,e._result=n)}if(1===e._status)return e._result.default;throw e._result}var L="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if("object"===typeof process&&"function"===typeof process.emit){process.emit("uncaughtException",e);return}console.error(e)};function D(){}a.Children={map:V,forEach:function(e,n,t){V(e,(function(){n.apply(this,arguments)}),t)},count:function(e){var n=0;V(e,(function(){n++}));return n},toArray:function(e){return V(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};a.Component=x;a.Fragment=s;a.Profiler=l;a.PureComponent=j;a.StrictMode=f;a.Suspense=m;a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E;a.act=function(){throw Error("act(...) is not supported in production builds of React.")};a.cache=function(e){return function(){return e.apply(null,arguments)}};a.cloneElement=function(e,n,t){if(null===e||void 0===e)throw Error("The argument must be a React element, but you passed "+e+".");var r=S({},e.props),o=e.key,i=void 0;if(null!=n)for(a in void 0!==n.ref&&(i=void 0),void 0!==n.key&&(o=""+n.key),n)!O.call(n,a)||"key"===a||"__self"===a||"__source"===a||"ref"===a&&void 0===n.ref||(r[a]=n[a]);var a=arguments.length-2;if(1===a)r.children=t;else if(1<a){for(var c=Array(a),u=0;u<a;u++)c[u]=arguments[u+2];r.children=c}return I(e.type,o,void 0,void 0,i,r)};a.createContext=function(e){e={$$typeof:h,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null};e.Provider=e;e.Consumer={$$typeof:d,_context:e};return e};a.createElement=function(e,n,t){var r,o={},i=null;if(null!=n)for(r in void 0!==n.key&&(i=""+n.key),n)O.call(n,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(o[r]=n[r]);var a=arguments.length-2;if(1===a)o.children=t;else if(1<a){for(var c=Array(a),u=0;u<a;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(r in a=e.defaultProps,a)void 0===o[r]&&(o[r]=a[r]);return I(e,i,void 0,void 0,null,o)};a.createRef=function(){return{current:null}};a.forwardRef=function(e){return{$$typeof:v,render:e}};a.isValidElement=_;a.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:B}};a.memo=function(e,n){return{$$typeof:w,type:e,compare:void 0===n?null:n}};a.startTransition=function(e){var n=E.T,t={};E.T=t;try{var r=e(),o=E.S;null!==o&&o(t,r);"object"===typeof r&&null!==r&&"function"===typeof r.then&&r.then(D,L)}catch(e){L(e)}finally{E.T=n}};a.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()};a.use=function(e){return E.H.use(e)};a.useActionState=function(e,n,t){return E.H.useActionState(e,n,t)};a.useCallback=function(e,n){return E.H.useCallback(e,n)};a.useContext=function(e){return E.H.useContext(e)};a.useDebugValue=function(){};a.useDeferredValue=function(e,n){return E.H.useDeferredValue(e,n)};a.useEffect=function(e,n){return E.H.useEffect(e,n)};a.useId=function(){return E.H.useId()};a.useImperativeHandle=function(e,n,t){return E.H.useImperativeHandle(e,n,t)};a.useInsertionEffect=function(e,n){return E.H.useInsertionEffect(e,n)};a.useLayoutEffect=function(e,n){return E.H.useLayoutEffect(e,n)};a.useMemo=function(e,n){return E.H.useMemo(e,n)};a.useOptimistic=function(e,n){return E.H.useOptimistic(e,n)};a.useReducer=function(e,n,t){return E.H.useReducer(e,n,t)};a.useRef=function(e){return E.H.useRef(e)};a.useState=function(e){return E.H.useState(e)};a.useSyncExternalStore=function(e,n,t){return E.H.useSyncExternalStore(e,n,t)};a.useTransition=function(){return E.H.useTransition()};a.version="19.0.0";{i.exports=a}var N=i.exports;var z=n;const G=e=>e;function W(e,n=G){const t=N.useSyncExternalStore(e.subscribe,(()=>n(e.getState())),(()=>n(e.getInitialState())));N.useDebugValue(t);return t}const H=e=>{const n=z.createStore(e);const t=e=>W(n,e);Object.assign(t,n);return t};const J=e=>e?H(e):H;o.create=J;o.useStore=W;(function(e){var t=n;var r=o;Object.keys(t).forEach((function(n){if(n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n))Object.defineProperty(e,n,{enumerable:true,get:function(){return t[n]}})}));Object.keys(r).forEach((function(n){if(n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n))Object.defineProperty(e,n,{enumerable:true,get:function(){return r[n]}})}))})(e);var Q=Object.defineProperty;var K=(e,n,t)=>n in e?Q(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var X=(e,n,t)=>K(e,typeof n!="symbol"?n+"":n,t);const Z="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Y=(e=21)=>{let n="",t=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)n+=Z[t[e]&63];return n};function ee(e,n,t,r){return new(t||(t=Promise))((function(n,o){function i(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t((function(e){e(r)}))).then(i,a)}c((r=r.apply(e,[])).next())}))}function ne(e,n){var t,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(o=a.trys,!((o=o.length>0&&o[o.length-1])||c[0]!==6&&c[0]!==2)){a=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(c[0]===6&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}var te={exclude:[]},re={},oe={timeout:"true"},ie=function(e,n){typeof window<"u"&&(re[e]=n)},ae=function(){return Object.fromEntries(Object.entries(re).filter((function(e){var n,t=e[0];return!(!((n=te==null?void 0:te.exclude)===null||n===void 0)&&n.includes(t))})).map((function(e){return[e[0],(0,e[1])()]})))};function ce(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var ue=new Uint32Array([597399067,2869860233,951274213,2716044179]);function se(e,n){return e<<n|e>>>32-n}function fe(e,n){var t;if(n===void 0&&(n=0),n=n?0|n:0,typeof e=="string"&&(t=e,e=(new TextEncoder).encode(t).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");var r=new Uint32Array([n,n,n,n]);(function(e,n){for(var t=e.byteLength/16|0,r=new Uint32Array(e,0,4*t),o=0;o<t;o++){var i=r.subarray(4*o,4*(o+1));i[0]=Math.imul(i[0],ue[0]),i[0]=se(i[0],15),i[0]=Math.imul(i[0],ue[1]),n[0]=n[0]^i[0],n[0]=se(n[0],19),n[0]=n[0]+n[1],n[0]=Math.imul(n[0],5)+1444728091,i[1]=Math.imul(i[1],ue[1]),i[1]=se(i[1],16),i[1]=Math.imul(i[1],ue[2]),n[1]=n[1]^i[1],n[1]=se(n[1],17),n[1]=n[1]+n[2],n[1]=Math.imul(n[1],5)+197830471,i[2]=Math.imul(i[2],ue[2]),i[2]=se(i[2],17),i[2]=Math.imul(i[2],ue[3]),n[2]=n[2]^i[2],n[2]=se(n[2],15),n[2]=n[2]+n[3],n[2]=Math.imul(n[2],5)+2530024501,i[3]=Math.imul(i[3],ue[3]),i[3]=se(i[3],18),i[3]=Math.imul(i[3],ue[0]),n[3]=n[3]^i[3],n[3]=se(n[3],13),n[3]=n[3]+n[0],n[3]=Math.imul(n[3],5)+850148119}})(e,r),function(e,n){var t=e.byteLength/16|0,r=e.byteLength%16,o=new Uint32Array(4),i=new Uint8Array(e,16*t,r);switch(r){case 15:o[3]=o[3]^i[14]<<16;case 14:o[3]=o[3]^i[13]<<8;case 13:o[3]=o[3]^i[12]<<0,o[3]=Math.imul(o[3],ue[3]),o[3]=se(o[3],18),o[3]=Math.imul(o[3],ue[0]),n[3]=n[3]^o[3];case 12:o[2]=o[2]^i[11]<<24;case 11:o[2]=o[2]^i[10]<<16;case 10:o[2]=o[2]^i[9]<<8;case 9:o[2]=o[2]^i[8]<<0,o[2]=Math.imul(o[2],ue[2]),o[2]=se(o[2],17),o[2]=Math.imul(o[2],ue[3]),n[2]=n[2]^o[2];case 8:o[1]=o[1]^i[7]<<24;case 7:o[1]=o[1]^i[6]<<16;case 6:o[1]=o[1]^i[5]<<8;case 5:o[1]=o[1]^i[4]<<0,o[1]=Math.imul(o[1],ue[1]),o[1]=se(o[1],16),o[1]=Math.imul(o[1],ue[2]),n[1]=n[1]^o[1];case 4:o[0]=o[0]^i[3]<<24;case 3:o[0]=o[0]^i[2]<<16;case 2:o[0]=o[0]^i[1]<<8;case 1:o[0]=o[0]^i[0]<<0,o[0]=Math.imul(o[0],ue[0]),o[0]=se(o[0],15),o[0]=Math.imul(o[0],ue[1]),n[0]=n[0]^o[0]}}(e,r),function(e,n){n[0]=n[0]^e.byteLength,n[1]=n[1]^e.byteLength,n[2]=n[2]^e.byteLength,n[3]=n[3]^e.byteLength,n[0]=n[0]+n[1]|0,n[0]=n[0]+n[2]|0,n[0]=n[0]+n[3]|0,n[1]=n[1]+n[0]|0,n[2]=n[2]+n[0]|0,n[3]=n[3]+n[0]|0,n[0]=ce(n[0]),n[1]=ce(n[1]),n[2]=ce(n[2]),n[3]=ce(n[3]),n[0]=n[0]+n[1]|0,n[0]=n[0]+n[2]|0,n[0]=n[0]+n[3]|0,n[1]=n[1]+n[0]|0,n[2]=n[2]+n[0]|0,n[3]=n[3]+n[0]|0}(e,r);var o=new Uint8Array(r.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,"0")})).join("")}function le(e,n){return new Promise((function(t){setTimeout((function(){return t(n)}),e)}))}function de(e,n,t){return Promise.all(e.map((function(e){return Promise.race([e,le(n,t)])})))}function he(){return ee(this,void 0,void 0,(function(){var e,n,t,r,o;return ne(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),e=ae(),n=Object.keys(e),[4,de(Object.values(e),(te==null?void 0:te.timeout)||1e3,oe)];case 1:return t=i.sent(),r=t.filter((function(e){return e!==void 0})),o={},r.forEach((function(e,t){o[n[t]]=e})),[2,ve(o,te.exclude||[])];case 2:throw i.sent();case 3:return[2]}}))}))}function ve(e,n){var t={},r=function(r){if(e.hasOwnProperty(r)){var o=e[r];if(typeof o!="object"||Array.isArray(o))n.includes(r)||(t[r]=o);else{var i=ve(o,n.map((function(e){return e.startsWith(r+".")?e.slice(r.length+1):e})));Object.keys(i).length>0&&(t[r]=i)}}};for(var o in e)r(o);return t}function me(e){return ee(this,void 0,void 0,(function(){var e,n;return ne(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,he()];case 1:return e=t.sent(),n=fe(JSON.stringify(e)),[2,n.toString()];case 2:throw t.sent();case 3:return[2]}}))}))}function we(e){for(var n=0,t=0;t<e.length;++t)n+=Math.abs(e[t]);return n}function pe(e,n,t){for(var r=[],o=0;o<e[0].data.length;o++){for(var i=[],a=0;a<e.length;a++)i.push(e[a].data[o]);r.push(ye(i))}var c=new Uint8ClampedArray(r);return new ImageData(c,n,t)}function ye(e){if(e.length===0)return 0;for(var n={},t=0,r=e;t<r.length;t++)n[i=r[t]]=(n[i]||0)+1;var o=e[0];for(var i in n)n[i]>n[o]&&(o=parseInt(i,10));return o}function be(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};for(var e=navigator.userAgent,n={Edg:"Edge",OPR:"Opera"},t=0,r=[/(?<name>Edge|Edg)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/,/(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/,/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/];t<r.length;t++){var o=r[t],i=e.match(o);if(i&&i.groups)return{name:n[i.groups.name]||i.groups.name,version:i.groups.version}}return{name:"unknown",version:"unknown"}}ie("audio",(function(){return ee(this,void 0,void 0,(function(){return ne(this,(function(e){return[2,new Promise((function(e,n){try{var t=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),r=t.createBufferSource(),o=t.createOscillator();o.frequency.value=1e3;var i,a=t.createDynamicsCompressor();a.threshold.value=-50,a.knee.value=40,a.ratio.value=12,a.attack.value=0,a.release.value=.2,o.connect(a),a.connect(t.destination),o.start(),t.oncomplete=function(n){i=n.renderedBuffer.getChannelData(0),e({sampleHash:we(i),oscillator:o.type,maxChannels:t.destination.maxChannelCount,channelCountMode:r.channelCountMode})},t.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),n(e)}}))]}))}))}));var ge=be().name!=="SamsungBrowser"?1:3,Se=280,Me=20;be().name!="Firefox"&&ie("canvas",(function(){return document.createElement("canvas").getContext("2d"),new Promise((function(e){var n=Array.from({length:ge},(function(){return function(){var e=document.createElement("canvas"),n=e.getContext("2d");if(!n)return new ImageData(1,1);e.width=Se,e.height=Me;var t=n.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"red"),t.addColorStop(.16666666666666666,"orange"),t.addColorStop(.3333333333333333,"yellow"),t.addColorStop(.5,"green"),t.addColorStop(.6666666666666666,"blue"),t.addColorStop(.8333333333333334,"indigo"),t.addColorStop(1,"violet"),n.fillStyle=t,n.fillRect(0,0,e.width,e.height);var r="Random Text WMwmil10Oo";n.font="23.123px Arial",n.fillStyle="black",n.fillText(r,-5,15),n.fillStyle="rgba(0, 0, 255, 0.5)",n.fillText(r,-3.3,17.7),n.beginPath(),n.moveTo(0,0),n.lineTo(2*e.width/7,e.height),n.strokeStyle="white",n.lineWidth=2,n.stroke();var o=n.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:fe(pe(n,Se,Me).data.toString()).toString()})}))}));var xe,Fe=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],je=["monospace","sans-serif","serif"];function Pe(e,n){if(!e)throw new Error("Canvas context not supported");return e.font="72px ".concat(n),e.measureText("WwMmLli0Oo").width}function ke(){var e,n=document.createElement("canvas"),t=(e=n.getContext("webgl"))!==null&&e!==void 0?e:n.getContext("experimental-webgl");if(t&&"getParameter"in t)try{var r=(t.getParameter(t.VENDOR)||"").toString(),o=(t.getParameter(t.RENDERER)||"").toString(),i={vendor:r,renderer:o,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!o.length||!r.length){var a=t.getExtension("WEBGL_debug_renderer_info");if(a){var c=(t.getParameter(a.UNMASKED_VENDOR_WEBGL)||"").toString(),u=(t.getParameter(a.UNMASKED_RENDERER_WEBGL)||"").toString();c&&(i.vendorUnmasked=c),u&&(i.rendererUnmasked=u)}}return i}catch{}return"undefined"}function Ee(){var e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}function Oe(e,n){var t={};return n.forEach((function(n){var r=function(e){if(e.length===0)return null;var n={};e.forEach((function(e){var t=String(e);n[t]=(n[t]||0)+1}));var t=e[0],r=1;return Object.keys(n).forEach((function(e){n[e]>r&&(t=e,r=n[e])})),t}(e.map((function(e){return n in e?e[n]:void 0})).filter((function(e){return e!==void 0})));r&&(t[n]=r)})),t}function Ie(){var e=[],n={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(n).forEach((function(t){n[t].forEach((function(n){matchMedia("(".concat(t,": ").concat(n,")")).matches&&e.push("".concat(t,": ").concat(n))}))})),e}function Te(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{for(var e=window.ApplePaySession.supportsVersion,n=15;n>0;n--)if(e(n))return n}catch{return 0}return 0}be().name!="Firefox"&&ie("fonts",(function(){var e=this;return new Promise((function(n,t){try{(function(e){var n;ee(this,void 0,void 0,(function(){var t,r,o;return ne(this,(function(i){switch(i.label){case 0:return document.body?[3,2]:[4,(a=50,new Promise((function(e){return setTimeout(e,a,c)})))];case 1:return i.sent(),[3,0];case 2:if((t=document.createElement("iframe")).setAttribute("frameBorder","0"),(r=t.style).setProperty("position","fixed"),r.setProperty("display","block","important"),r.setProperty("visibility","visible"),r.setProperty("border","0"),r.setProperty("opacity","0"),t.src="about:blank",document.body.appendChild(t),!(o=t.contentDocument||((n=t.contentWindow)===null||n===void 0?void 0:n.document)))throw new Error("Iframe document is not accessible");return e({iframe:o}),setTimeout((function(){document.body.removeChild(t)}),0),[2]}var a,c}))}))})((function(t){var r=t.iframe;return ee(e,void 0,void 0,(function(){var e,t,o,i;return ne(this,(function(a){return e=r.createElement("canvas"),t=e.getContext("2d"),o=je.map((function(e){return Pe(t,e)})),i={},Fe.forEach((function(e){var n=Pe(t,e);o.includes(n)||(i[e]=n)})),n(i),[2]}))}))}))}catch{t({error:"unsupported"})}}))})),ie("hardware",(function(){return new Promise((function(e,n){var t=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,r=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:ke(),architecture:Ee(),deviceMemory:t.toString()||"undefined",jsHeapSizeLimit:r.jsHeapSizeLimit||0})}))})),ie("locales",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))})),ie("permissions",(function(){return ee(this,void 0,void 0,(function(){var e;return ne(this,(function(n){return xe=(te==null?void 0:te.permissions_to_check)||["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"],e=Array.from({length:(te==null?void 0:te.retries)||3},(function(){return function(){return ee(this,void 0,void 0,(function(){var e,n,t,r,o;return ne(this,(function(i){switch(i.label){case 0:e={},n=0,t=xe,i.label=1;case 1:if(!(n<t.length))return[3,6];r=t[n],i.label=2;case 2:return i.trys.push([2,4,,5]),[4,navigator.permissions.query({name:r})];case 3:return o=i.sent(),e[r]=o.state.toString(),[3,5];case 4:return i.sent(),[3,5];case 5:return n++,[3,1];case 6:return[2,e]}}))}))}()})),[2,Promise.all(e).then((function(e){return Oe(e,xe)}))]}))}))})),ie("plugins",(function(){var e=[];if(navigator.plugins)for(var n=0;n<navigator.plugins.length;n++){var t=navigator.plugins[n];e.push([t.name,t.filename,t.description].join("|"))}return new Promise((function(n){n({plugins:e})}))})),ie("screen",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:Ie()})}))})),ie("system",(function(){return new Promise((function(e){var n=be();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:n.name,version:n.version},applePayVersion:Te()})}))}));var _e,Re=be().name!=="SamsungBrowser"?1:3,Ae=null;ie("webgl",(function(){return ee(this,void 0,void 0,(function(){var e;return ne(this,(function(n){typeof document<"u"&&((_e=document.createElement("canvas")).width=200,_e.height=100,Ae=_e.getContext("webgl"));try{if(!Ae)throw new Error("WebGL not supported");return e=Array.from({length:Re},(function(){return function(){try{if(!Ae)throw new Error("WebGL not supported");var e=`\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `,n=`\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n `,t=Ae.createShader(Ae.VERTEX_SHADER),r=Ae.createShader(Ae.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(Ae.shaderSource(t,e),Ae.shaderSource(r,n),Ae.compileShader(t),!Ae.getShaderParameter(t,Ae.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+Ae.getShaderInfoLog(t));if(Ae.compileShader(r),!Ae.getShaderParameter(r,Ae.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+Ae.getShaderInfoLog(r));var o=Ae.createProgram();if(!o)throw new Error("Failed to create shader program");if(Ae.attachShader(o,t),Ae.attachShader(o,r),Ae.linkProgram(o),!Ae.getProgramParameter(o,Ae.LINK_STATUS))throw new Error("Shader program linking failed: "+Ae.getProgramInfoLog(o));Ae.useProgram(o);for(var i=137,a=new Float32Array(4*i),c=2*Math.PI/i,u=0;u<i;u++){var s=u*c;a[4*u]=0,a[4*u+1]=0,a[4*u+2]=Math.cos(s)*(_e.width/2),a[4*u+3]=Math.sin(s)*(_e.height/2)}var f=Ae.createBuffer();Ae.bindBuffer(Ae.ARRAY_BUFFER,f),Ae.bufferData(Ae.ARRAY_BUFFER,a,Ae.STATIC_DRAW);var l=Ae.getAttribLocation(o,"position");Ae.enableVertexAttribArray(l),Ae.vertexAttribPointer(l,2,Ae.FLOAT,!1,0,0),Ae.viewport(0,0,_e.width,_e.height),Ae.clearColor(0,0,0,1),Ae.clear(Ae.COLOR_BUFFER_BIT),Ae.drawArrays(Ae.LINES,0,2*i);var d=new Uint8ClampedArray(_e.width*_e.height*4);return Ae.readPixels(0,0,_e.width,_e.height,Ae.RGBA,Ae.UNSIGNED_BYTE,d),new ImageData(d,_e.width,_e.height)}catch{return new ImageData(1,1)}finally{Ae&&(Ae.bindBuffer(Ae.ARRAY_BUFFER,null),Ae.useProgram(null),Ae.viewport(0,0,Ae.drawingBufferWidth,Ae.drawingBufferHeight),Ae.clearColor(0,0,0,0))}}()})),[2,{commonImageHash:fe(pe(e,_e.width,_e.height).data.toString()).toString()}]}catch{return[2,{webgl:"unsupported"}]}return[2]}))}))}));var Ce=function(e,n,t,r){for(var o=(t-n)/r,i=0,a=0;a<r;a++)i+=e(n+(a+.5)*o);return i*o};ie("math",(function(){return ee(void 0,void 0,void 0,(function(){return ne(this,(function(e){return[2,{acos:Math.acos(.5),asin:Ce(Math.asin,-1,1,97),atan:Ce(Math.atan,-1,1,97),cos:Ce(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:Ce(Math.sin,-Math.PI,Math.PI,97),sinh:Ce(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:Ce(Math.tan,0,2*Math.PI,97),tanh:Ce(Math.tanh,-9/7,7/9,97)}]}))}))}));const $e=500;class Ue{constructor(e,n){X(this,"config");X(this,"sdkInfo");X(this,"userId");X(this,"sessionId");X(this,"searchRequestTimeout");X(this,"measureRequestTimeout");X(this,"measureRequestsBatched",[]);X(this,"search",((e,n)=>{const t=async()=>{if(this.sendMeasureEvent("search_requested",{search_term:e.query}),(e.query.match(/"/g)||[]).length%2!==0)throw new Error("The search term contains an uneven number of quote characters.");try{const t={query:this.buildQueryObject(e),limit:e.limit??20};e.offset!==void 0&&(t.offset=e.offset),e.order_by&&(t.order_by=e.order_by,t.sort=e.sort==="desc"||e.sort==="asc"?e.sort:"asc");const r={method:"POST",headers:{Authorization:this.config.readKey,"Content-Type":"application/json","X-Sc-User-Id":this.userId},body:JSON.stringify(t)},o=await fetch(this.baseSearchUrl,r);if(!o.ok)throw new Error(`Error: ${o.statusText} (Status: ${o.status})`);const i=await o.json();this.sendMeasureEvent("search_response_received",{search_term:e.query,number_of_documents:i.data.count}),n(i)}catch(e){throw console.error("Error parsing response:",e),e}};clearTimeout(this.searchRequestTimeout),this.config.searchDebounceDelay?this.searchRequestTimeout=setTimeout(t,this.config.searchDebounceDelay):t()}));X(this,"sendMeasureEvent",((e,n={},t={})=>{const r={event_name:e,properties:{searchcraft_index_names:this.config.index,...n},user:{...this.measureRequestUser,...t}};this.measureRequestsBatched.push(r),clearTimeout(this.measureRequestTimeout),this.measureRequestTimeout=setTimeout((async()=>{const e=JSON.stringify({items:this.measureRequestsBatched}),n=`${this.baseMeasureUrl}/batch`;try{const t=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Authorization:this.config.readKey,"X-Sc-User-Id":this.userId},body:e,keepalive:!0});if(!t.ok)throw new Error(`Failed to send request: ${t.status} ${t.statusText}`);this.measureRequestsBatched=[];return}catch(e){throw console.error("Error sending MeasureRequest:",e),e}}),$e)}));if(!e.endpointURL||!e.index||!e.readKey)throw new Error("Endpoint URL, Index value(s), and Read Key must be provided");this.config=e,this.sdkInfo=n,this.userId=e.userId||"",this.sessionId="",setTimeout((()=>{this.sessionId=Y(),this.initMeasure()}),300)}async initMeasure(){if(!this.config.userId){const e=await me();this.userId=e}this.sendMeasureEvent("sdk_initialized")}get baseSearchUrl(){return`${this.config.endpointURL}/index/${this.config.index.join(",")}/search`}get baseMeasureUrl(){return`${this.config.endpointURL}/measure`}get measureRequestUser(){return{user_id:this.userId,locale:navigator.language||"en-US",os:navigator.userAgent.includes("Windows")?"Windows":navigator.userAgent.includes("Mac")?"Mac":navigator.userAgent.includes("Linux")?"Linux":"Unknown",platform:navigator.platform||"Unknown",sdk_name:this.sdkInfo.sdkName,sdk_version:this.sdkInfo.sdkVersion,user_agent:navigator.userAgent||"Unknown"}}buildQueryObject(e){const n=[];let t="should";return e.facetPathsForIndexFields&&Object.keys(e.facetPathsForIndexFields).forEach((r=>{var o;const i=(o=e.facetPathsForIndexFields)==null?void 0:o[r];i&&(t="must",n.push({occur:t,exact:{ctx:i.value}}))})),e.rangeValueForIndexFields&&Object.keys(e.rangeValueForIndexFields).forEach((r=>{var o;const i=(o=e.rangeValueForIndexFields)==null?void 0:o[r];i&&(t="must",n.push({occur:t,exact:{ctx:i.value}}))})),e.sort==="desc"?e.order_by="date_published":e.order_by="",n.push({occur:t,[e.mode]:{ctx:e.query}}),n}}var qe=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(qe||{});class Ve{constructor(e){X(this,"logLevel");X(this,"logFormatter");this.logLevel=e.logLevel||1,this.logFormatter=e.logFormatter||this.defaultFormatter}defaultFormatter(e,n){return`[${qe[e]}] ${(new Date).toISOString()}: ${n}`}debug(e){this.logLevel<=0&&console.log(this.logFormatter(0,e))}info(e){this.logLevel<=1&&console.info(this.logFormatter(1,e))}warn(e){this.logLevel<=2&&console.warn(this.logFormatter(2,e))}error(e){this.logLevel<=3&&console.error(this.logFormatter(3,e))}}const Be=e.create(((e,n)=>{let t=null;let r=null;const o=(e,n)=>{if(r){switch(e){case qe.DEBUG:r.debug(n);break;case qe.INFO:r.info(n);break;case qe.WARN:r.warn(n);break;case qe.ERROR:r.error(n);break}}};return{setPopoverVisibility:n=>{e({isPopoverVisible:n})},isPopoverVisible:false,resetFacetPaths:()=>{e({facetPathsForIndexFields:{}})},addFacetPathsForIndexField:n=>e((e=>({facetPathsForIndexFields:{...e.facetPathsForIndexFields,[n.fieldName]:n}}))),removeFacetPathsForIndexField:n=>e((e=>{const t=e.facetPathsForIndexFields;delete t[n];return{facetPathsForIndexFields:{...t}}})),addRangeValueForIndexField:n=>e((e=>({rangeValueForIndexFields:{...e.rangeValueForIndexFields,[n.fieldName]:n}}))),removeRangeValueForIndexField:n=>e((e=>{const t=e.rangeValueForIndexFields;delete t[n];return{rangeValueForIndexFields:{...t}}})),setSearchMode:n=>e({searchMode:n}),setSortType:n=>e({sortType:n}),searchMode:"fuzzy",sortType:"asc",facetPathsForIndexFields:{},rangeValueForIndexFields:{},query:"",isRequesting:false,searchResults:null,facets:null,getSearchcraftInstance:()=>t,setQuery:n=>{e({query:n,facetPathsForIndexFields:{},...n.trim().length===0&&{searchMode:"fuzzy",sortType:"asc"}})},setSearchResults:n=>e({searchResults:n}),setFacets:n=>e({facets:n}),setIsRequesting:n=>e({isRequesting:n}),search:async()=>{const e=n();o(qe.INFO,`Starting search with search term: "${e.query}"`);if(!t){throw new Error("Searchcraft instance is not initialized.")}if(!e.query.trim()){o(qe.INFO,"No search request was made: search term was empty.");e.setSearchResults(null);return}e.setIsRequesting(true);t.search({query:e.query,mode:e.searchMode,sort:e.sortType,facetPathsForIndexFields:e.facetPathsForIndexFields,rangeValueForIndexFields:e.rangeValueForIndexFields},(n=>{const t=n.data.facets||null;e.setSearchResults(n);if(t){e.setFacets(t)}o(qe.DEBUG,`Search results: ${JSON.stringify(n)}`);o(qe.DEBUG,`Updated facets: ${JSON.stringify(t)}`);e.setIsRequesting(false)}))},initialize:(e,n=false)=>{t=e;r=n?new Ve({logLevel:qe.DEBUG}):null;o(qe.INFO,"Searchcraft store initialized.")}}}));const Le=e.create((e=>({theme:"light",toggleTheme:()=>e((e=>({theme:e.theme==="light"?"dark":"light"})))})));export{Le as a,Ue as b,Be as u};
11
- //# sourceMappingURL=p-936e2ed4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createStoreImpl","createState","state","listeners","Set","setState","partial","replace","nextState","Object","is","previousState","assign","forEach","listener","getState","getInitialState","initialState","subscribe","add","delete","api","createStore","REACT_ELEMENT_TYPE","Symbol","for","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","emptyObject","Component","props","context","updater","this","refs","prototype","isReactComponent","partialState","callback","Error","forceUpdate","ComponentDummy","PureComponent","pureComponentPrototype","constructor","isPureReactComponent","isArrayImpl","Array","isArray","ReactSharedInternals","H","A","T","S","hasOwnProperty","ReactElement","type","key","self","source","owner","ref","$$typeof","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","toString","noop$1","resolveThenable","thenable","status","value","reason","then","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","_init","_payload","c","push","nextNamePrefix","i","length","call","next","done","String","keys","join","mapChildren","func","result","count","child","lazyInitializer","payload","_status","ctor","_result","moduleObject","default","reportGlobalError","reportError","window","ErrorEvent","event","bubbles","cancelable","message","dispatchEvent","process","emit","console","noop","map","forEachFunc","forEachContext","apply","arguments","n","toArray","only","fn","config","propName","childArray","defaultValue","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","childrenLength","defaultProps","current","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","useCacheRefresh","usable","use","action","permalink","useActionState","deps","useCallback","Context","useContext","initialValue","useDeferredValue","create","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","passthrough","reducer","useOptimistic","initialArg","init","useReducer","useRef","useState","getSnapshot","getServerSnapshot","useSyncExternalStore","useTransition","reactModule","require$$0","React","vanilla","require$$1","identity","arg","useStore","selector","slice","useDebugValue","createImpl","useBoundStore","react","k","exports","defineProperty","enumerable","get","D","B","t","r","configurable","writable","m","L","q","crypto","getRandomValues","Uint8Array","w","Promise","s","o","e","u","l","a","throw","p","y","label","sent","trys","ops","return","TypeError","pop","b","exclude","P","N","timeout","v","j","fromEntries","entries","filter","includes","M","Math","imul","f","Uint32Array","g","R","TextEncoder","encode","buffer","ArrayBuffer","byteLength","subarray","from","padStart","G","setTimeout","W","all","race","V","values","_","startsWith","JSON","stringify","$","abs","F","data","K","Uint8ClampedArray","ImageData","parseInt","E","navigator","name","version","userAgent","Edg","OPR","groups","OfflineAudioContext","webkitOfflineAudioContext","createBufferSource","createOscillator","frequency","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","renderedBuffer","getChannelData","sampleHash","oscillator","maxChannels","maxChannelCount","channelCountMode","startRendering","z","C","document","createElement","getContext","width","height","createLinearGradient","addColorStop","fillStyle","fillRect","font","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","getImageData","commonImageDataHash","J","Q","concat","measureText","Y","getParameter","VENDOR","RENDERER","vendor","renderer","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","getExtension","UNMASKED_VENDOR_WEBGL","UNMASKED_RENDERER_WEBGL","vendorUnmasked","rendererUnmasked","X","Float32Array","Z","ee","pointer","hover","update","scripting","matchMedia","matches","te","location","protocol","ApplePaySession","supportsVersion","body","setAttribute","style","setProperty","src","appendChild","contentDocument","contentWindow","iframe","removeChild","deviceMemory","performance","memory","videocard","architecture","jsHeapSizeLimit","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","permissions_to_check","retries","permissions","query","plugins","filename","description","is_touchscreen","maxTouchPoints","colorDepth","screen","mediaMatches","platform","cookieEnabled","productSub","product","useragent","hardwareConcurrency","browser","applePayVersion","h","ne","d","createShader","VERTEX_SHADER","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","PI","cos","sin","U","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","x","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","I","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","commonImageHash","webgl","acos","asin","atan","cosh","largeCos","largeSin","largeTan","tan","log","pi","sinh","sqrt","tanh","re","ae","async","sendMeasureEvent","search_term","buildQueryObject","limit","offset","order_by","sort","method","headers","Authorization","readKey","userId","fetch","baseSearchUrl","ok","statusText","json","number_of_documents","clearTimeout","searchRequestTimeout","searchDebounceDelay","event_name","properties","searchcraft_index_names","user","measureRequestUser","measureRequestsBatched","measureRequestTimeout","items","baseMeasureUrl","keepalive","endpointURL","sdkInfo","sessionId","initMeasure","user_id","locale","os","sdk_name","sdkName","sdk_version","sdkVersion","user_agent","facetPathsForIndexFields","occur","exact","ctx","rangeValueForIndexFields","mode","O","DEBUG","INFO","WARN","ERROR","se","logLevel","logFormatter","defaultFormatter","Date","toISOString","debug","info","warn","useSearchcraftStore","set","searchcraft","debuggerInstance","level","LogLevel","setPopoverVisibility","isVisible","isPopoverVisible","resetFacetPaths","addFacetPathsForIndexField","fieldName","removeFacetPathsForIndexField","currentPaths","addRangeValueForIndexField","removeRangeValueForIndexField","currentValues","setSearchMode","searchMode","setSortType","sortType","isRequesting","searchResults","facets","getSearchcraftInstance","setQuery","trim","setSearchResults","results","setFacets","setIsRequesting","search","updatedFacets","initialize","searchcraftInstance","SDKDebugger","useThemeStore","theme","toggleTheme"],"sources":["../../node_modules/zustand/vanilla.js","../../node_modules/react/cjs/react.production.js","../../node_modules/react/index.js","../../node_modules/zustand/react.js","../../node_modules/zustand/index.js","../core-sdk/dist/index.js","src/provider/store.tsx"],"sourcesContent":["'use strict';\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexports.createStore = createStore;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction noop() {}\nexports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.act = function () {\n throw Error(\"act(...) is not supported in production builds of React.\");\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.0.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nvar React = require('react');\nvar vanilla = require('zustand/vanilla');\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = vanilla.createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexports.create = create;\nexports.useStore = useStore;\n","'use strict';\n\nvar vanilla = require('zustand/vanilla');\nvar react = require('zustand/react');\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n","var D = Object.defineProperty;\nvar B = (n, t, r) => t in n ? D(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar m = (n, t, r) => B(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nconst L = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet q = (n = 21) => {\n let t = \"\", r = crypto.getRandomValues(new Uint8Array(n |= 0));\n for (; n--; )\n t += L[r[n] & 63];\n return t;\n};\nfunction w(n, t, r, i) {\n return new (r || (r = Promise))(function(s, o) {\n function e(u) {\n try {\n l(i.next(u));\n } catch (a) {\n o(a);\n }\n }\n function c(u) {\n try {\n l(i.throw(u));\n } catch (a) {\n o(a);\n }\n }\n function l(u) {\n var a;\n u.done ? s(u.value) : (a = u.value, a instanceof r ? a : new r(function(p) {\n p(a);\n })).then(e, c);\n }\n l((i = i.apply(n, [])).next());\n });\n}\nfunction y(n, t) {\n var r, i, s, o, e = { label: 0, sent: function() {\n if (1 & s[0]) throw s[1];\n return s[1];\n }, trys: [], ops: [] };\n return o = { next: c(0), throw: c(1), return: c(2) }, typeof Symbol == \"function\" && (o[Symbol.iterator] = function() {\n return this;\n }), o;\n function c(l) {\n return function(u) {\n return function(a) {\n if (r) throw new TypeError(\"Generator is already executing.\");\n for (; o && (o = 0, a[0] && (e = 0)), e; ) try {\n if (r = 1, i && (s = 2 & a[0] ? i.return : a[0] ? i.throw || ((s = i.return) && s.call(i), 0) : i.next) && !(s = s.call(i, a[1])).done) return s;\n switch (i = 0, s && (a = [2 & a[0], s.value]), a[0]) {\n case 0:\n case 1:\n s = a;\n break;\n case 4:\n return e.label++, { value: a[1], done: !1 };\n case 5:\n e.label++, i = a[1], a = [0];\n continue;\n case 7:\n a = e.ops.pop(), e.trys.pop();\n continue;\n default:\n if (s = e.trys, !((s = s.length > 0 && s[s.length - 1]) || a[0] !== 6 && a[0] !== 2)) {\n e = 0;\n continue;\n }\n if (a[0] === 3 && (!s || a[1] > s[0] && a[1] < s[3])) {\n e.label = a[1];\n break;\n }\n if (a[0] === 6 && e.label < s[1]) {\n e.label = s[1], s = a;\n break;\n }\n if (s && e.label < s[2]) {\n e.label = s[2], e.ops.push(a);\n break;\n }\n s[2] && e.ops.pop(), e.trys.pop();\n continue;\n }\n a = t.call(n, e);\n } catch (p) {\n a = [6, p], i = 0;\n } finally {\n r = s = 0;\n }\n if (5 & a[0]) throw a[1];\n return { value: a[0] ? a[1] : void 0, done: !0 };\n }([l, u]);\n };\n }\n}\nvar b = { exclude: [] }, P = {}, N = { timeout: \"true\" }, v = function(n, t) {\n typeof window < \"u\" && (P[n] = t);\n}, j = function() {\n return Object.fromEntries(Object.entries(P).filter(function(n) {\n var t, r = n[0];\n return !(!((t = b == null ? void 0 : b.exclude) === null || t === void 0) && t.includes(r));\n }).map(function(n) {\n return [n[0], (0, n[1])()];\n }));\n};\nfunction M(n) {\n return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, n = Math.imul(n, 3266489909), (n ^= n >>> 16) >>> 0;\n}\nvar f = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);\nfunction g(n, t) {\n return n << t | n >>> 32 - t;\n}\nfunction R(n, t) {\n var r;\n if (t === void 0 && (t = 0), t = t ? 0 | t : 0, typeof n == \"string\" && (r = n, n = new TextEncoder().encode(r).buffer), !(n instanceof ArrayBuffer)) throw new TypeError(\"Expected key to be ArrayBuffer or string\");\n var i = new Uint32Array([t, t, t, t]);\n (function(o, e) {\n for (var c = o.byteLength / 16 | 0, l = new Uint32Array(o, 0, 4 * c), u = 0; u < c; u++) {\n var a = l.subarray(4 * u, 4 * (u + 1));\n a[0] = Math.imul(a[0], f[0]), a[0] = g(a[0], 15), a[0] = Math.imul(a[0], f[1]), e[0] = e[0] ^ a[0], e[0] = g(e[0], 19), e[0] = e[0] + e[1], e[0] = Math.imul(e[0], 5) + 1444728091, a[1] = Math.imul(a[1], f[1]), a[1] = g(a[1], 16), a[1] = Math.imul(a[1], f[2]), e[1] = e[1] ^ a[1], e[1] = g(e[1], 17), e[1] = e[1] + e[2], e[1] = Math.imul(e[1], 5) + 197830471, a[2] = Math.imul(a[2], f[2]), a[2] = g(a[2], 17), a[2] = Math.imul(a[2], f[3]), e[2] = e[2] ^ a[2], e[2] = g(e[2], 15), e[2] = e[2] + e[3], e[2] = Math.imul(e[2], 5) + 2530024501, a[3] = Math.imul(a[3], f[3]), a[3] = g(a[3], 18), a[3] = Math.imul(a[3], f[0]), e[3] = e[3] ^ a[3], e[3] = g(e[3], 13), e[3] = e[3] + e[0], e[3] = Math.imul(e[3], 5) + 850148119;\n }\n })(n, i), function(o, e) {\n var c = o.byteLength / 16 | 0, l = o.byteLength % 16, u = new Uint32Array(4), a = new Uint8Array(o, 16 * c, l);\n switch (l) {\n case 15:\n u[3] = u[3] ^ a[14] << 16;\n case 14:\n u[3] = u[3] ^ a[13] << 8;\n case 13:\n u[3] = u[3] ^ a[12] << 0, u[3] = Math.imul(u[3], f[3]), u[3] = g(u[3], 18), u[3] = Math.imul(u[3], f[0]), e[3] = e[3] ^ u[3];\n case 12:\n u[2] = u[2] ^ a[11] << 24;\n case 11:\n u[2] = u[2] ^ a[10] << 16;\n case 10:\n u[2] = u[2] ^ a[9] << 8;\n case 9:\n u[2] = u[2] ^ a[8] << 0, u[2] = Math.imul(u[2], f[2]), u[2] = g(u[2], 17), u[2] = Math.imul(u[2], f[3]), e[2] = e[2] ^ u[2];\n case 8:\n u[1] = u[1] ^ a[7] << 24;\n case 7:\n u[1] = u[1] ^ a[6] << 16;\n case 6:\n u[1] = u[1] ^ a[5] << 8;\n case 5:\n u[1] = u[1] ^ a[4] << 0, u[1] = Math.imul(u[1], f[1]), u[1] = g(u[1], 16), u[1] = Math.imul(u[1], f[2]), e[1] = e[1] ^ u[1];\n case 4:\n u[0] = u[0] ^ a[3] << 24;\n case 3:\n u[0] = u[0] ^ a[2] << 16;\n case 2:\n u[0] = u[0] ^ a[1] << 8;\n case 1:\n u[0] = u[0] ^ a[0] << 0, u[0] = Math.imul(u[0], f[0]), u[0] = g(u[0], 15), u[0] = Math.imul(u[0], f[1]), e[0] = e[0] ^ u[0];\n }\n }(n, i), function(o, e) {\n e[0] = e[0] ^ o.byteLength, e[1] = e[1] ^ o.byteLength, e[2] = e[2] ^ o.byteLength, e[3] = e[3] ^ o.byteLength, e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0, e[0] = M(e[0]), e[1] = M(e[1]), e[2] = M(e[2]), e[3] = M(e[3]), e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0;\n }(n, i);\n var s = new Uint8Array(i.buffer);\n return Array.from(s).map(function(o) {\n return o.toString(16).padStart(2, \"0\");\n }).join(\"\");\n}\nfunction G(n, t) {\n return new Promise(function(r) {\n setTimeout(function() {\n return r(t);\n }, n);\n });\n}\nfunction W(n, t, r) {\n return Promise.all(n.map(function(i) {\n return Promise.race([i, G(t, r)]);\n }));\n}\nfunction V() {\n return w(this, void 0, void 0, function() {\n var n, t, r, i, s;\n return y(this, function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2, , 3]), n = j(), t = Object.keys(n), [4, W(Object.values(n), (b == null ? void 0 : b.timeout) || 1e3, N)];\n case 1:\n return r = o.sent(), i = r.filter(function(e) {\n return e !== void 0;\n }), s = {}, i.forEach(function(e, c) {\n s[t[c]] = e;\n }), [2, _(s, b.exclude || [])];\n case 2:\n throw o.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction _(n, t) {\n var r = {}, i = function(o) {\n if (n.hasOwnProperty(o)) {\n var e = n[o];\n if (typeof e != \"object\" || Array.isArray(e)) t.includes(o) || (r[o] = e);\n else {\n var c = _(e, t.map(function(l) {\n return l.startsWith(o + \".\") ? l.slice(o.length + 1) : l;\n }));\n Object.keys(c).length > 0 && (r[o] = c);\n }\n }\n };\n for (var s in n) i(s);\n return r;\n}\nfunction H(n) {\n return w(this, void 0, void 0, function() {\n var t, r;\n return y(this, function(i) {\n switch (i.label) {\n case 0:\n return i.trys.push([0, 2, , 3]), [4, V()];\n case 1:\n return t = i.sent(), r = R(JSON.stringify(t)), [2, r.toString()];\n case 2:\n throw i.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction $(n) {\n for (var t = 0, r = 0; r < n.length; ++r) t += Math.abs(n[r]);\n return t;\n}\nfunction F(n, t, r) {\n for (var i = [], s = 0; s < n[0].data.length; s++) {\n for (var o = [], e = 0; e < n.length; e++) o.push(n[e].data[s]);\n i.push(K(o));\n }\n var c = new Uint8ClampedArray(i);\n return new ImageData(c, t, r);\n}\nfunction K(n) {\n if (n.length === 0) return 0;\n for (var t = {}, r = 0, i = n; r < i.length; r++)\n t[o = i[r]] = (t[o] || 0) + 1;\n var s = n[0];\n for (var o in t) t[o] > t[s] && (s = parseInt(o, 10));\n return s;\n}\nfunction E() {\n if (typeof navigator > \"u\") return { name: \"unknown\", version: \"unknown\" };\n for (var n = navigator.userAgent, t = { Edg: \"Edge\", OPR: \"Opera\" }, r = 0, i = [/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/]; r < i.length; r++) {\n var s = i[r], o = n.match(s);\n if (o && o.groups) return { name: t[o.groups.name] || o.groups.name, version: o.groups.version };\n }\n return { name: \"unknown\", version: \"unknown\" };\n}\nv(\"audio\", function() {\n return w(this, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, new Promise(function(t, r) {\n try {\n var i = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), s = i.createBufferSource(), o = i.createOscillator();\n o.frequency.value = 1e3;\n var e, c = i.createDynamicsCompressor();\n c.threshold.value = -50, c.knee.value = 40, c.ratio.value = 12, c.attack.value = 0, c.release.value = 0.2, o.connect(c), c.connect(i.destination), o.start(), i.oncomplete = function(l) {\n e = l.renderedBuffer.getChannelData(0), t({ sampleHash: $(e), oscillator: o.type, maxChannels: i.destination.maxChannelCount, channelCountMode: s.channelCountMode });\n }, i.startRendering();\n } catch (l) {\n console.error(\"Error creating audio fingerprint:\", l), r(l);\n }\n })];\n });\n });\n});\nvar z = E().name !== \"SamsungBrowser\" ? 1 : 3, T = 280, C = 20;\nE().name != \"Firefox\" && v(\"canvas\", function() {\n return document.createElement(\"canvas\").getContext(\"2d\"), new Promise(function(n) {\n var t = Array.from({ length: z }, function() {\n return function() {\n var r = document.createElement(\"canvas\"), i = r.getContext(\"2d\");\n if (!i) return new ImageData(1, 1);\n r.width = T, r.height = C;\n var s = i.createLinearGradient(0, 0, r.width, r.height);\n s.addColorStop(0, \"red\"), s.addColorStop(0.16666666666666666, \"orange\"), s.addColorStop(0.3333333333333333, \"yellow\"), s.addColorStop(0.5, \"green\"), s.addColorStop(0.6666666666666666, \"blue\"), s.addColorStop(0.8333333333333334, \"indigo\"), s.addColorStop(1, \"violet\"), i.fillStyle = s, i.fillRect(0, 0, r.width, r.height);\n var o = \"Random Text WMwmil10Oo\";\n i.font = \"23.123px Arial\", i.fillStyle = \"black\", i.fillText(o, -5, 15), i.fillStyle = \"rgba(0, 0, 255, 0.5)\", i.fillText(o, -3.3, 17.7), i.beginPath(), i.moveTo(0, 0), i.lineTo(2 * r.width / 7, r.height), i.strokeStyle = \"white\", i.lineWidth = 2, i.stroke();\n var e = i.getImageData(0, 0, r.width, r.height);\n return e;\n }();\n });\n n({ commonImageDataHash: R(F(t, T, C).data.toString()).toString() });\n });\n});\nvar A, J = [\"Arial\", \"Arial Black\", \"Arial Narrow\", \"Arial Rounded MT\", \"Arimo\", \"Archivo\", \"Barlow\", \"Bebas Neue\", \"Bitter\", \"Bookman\", \"Calibri\", \"Cabin\", \"Candara\", \"Century\", \"Century Gothic\", \"Comic Sans MS\", \"Constantia\", \"Courier\", \"Courier New\", \"Crimson Text\", \"DM Mono\", \"DM Sans\", \"DM Serif Display\", \"DM Serif Text\", \"Dosis\", \"Droid Sans\", \"Exo\", \"Fira Code\", \"Fira Sans\", \"Franklin Gothic Medium\", \"Garamond\", \"Geneva\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Inconsolata\", \"Indie Flower\", \"Inter\", \"Josefin Sans\", \"Karla\", \"Lato\", \"Lexend\", \"Lucida Bright\", \"Lucida Console\", \"Lucida Sans Unicode\", \"Manrope\", \"Merriweather\", \"Merriweather Sans\", \"Montserrat\", \"Myriad\", \"Noto Sans\", \"Nunito\", \"Nunito Sans\", \"Open Sans\", \"Optima\", \"Orbitron\", \"Oswald\", \"Pacifico\", \"Palatino\", \"Perpetua\", \"PT Sans\", \"PT Serif\", \"Poppins\", \"Prompt\", \"Public Sans\", \"Quicksand\", \"Rajdhani\", \"Recursive\", \"Roboto\", \"Roboto Condensed\", \"Rockwell\", \"Rubik\", \"Segoe Print\", \"Segoe Script\", \"Segoe UI\", \"Sora\", \"Source Sans Pro\", \"Space Mono\", \"Tahoma\", \"Taviraj\", \"Times\", \"Times New Roman\", \"Titillium Web\", \"Trebuchet MS\", \"Ubuntu\", \"Varela Round\", \"Verdana\", \"Work Sans\"], Q = [\"monospace\", \"sans-serif\", \"serif\"];\nfunction k(n, t) {\n if (!n) throw new Error(\"Canvas context not supported\");\n return n.font, n.font = \"72px \".concat(t), n.measureText(\"WwMmLli0Oo\").width;\n}\nfunction Y() {\n var n, t = document.createElement(\"canvas\"), r = (n = t.getContext(\"webgl\")) !== null && n !== void 0 ? n : t.getContext(\"experimental-webgl\");\n if (r && \"getParameter\" in r) try {\n var i = (r.getParameter(r.VENDOR) || \"\").toString(), s = (r.getParameter(r.RENDERER) || \"\").toString(), o = { vendor: i, renderer: s, version: (r.getParameter(r.VERSION) || \"\").toString(), shadingLanguageVersion: (r.getParameter(r.SHADING_LANGUAGE_VERSION) || \"\").toString() };\n if (!s.length || !i.length) {\n var e = r.getExtension(\"WEBGL_debug_renderer_info\");\n if (e) {\n var c = (r.getParameter(e.UNMASKED_VENDOR_WEBGL) || \"\").toString(), l = (r.getParameter(e.UNMASKED_RENDERER_WEBGL) || \"\").toString();\n c && (o.vendorUnmasked = c), l && (o.rendererUnmasked = l);\n }\n }\n return o;\n } catch {\n }\n return \"undefined\";\n}\nfunction X() {\n var n = new Float32Array(1), t = new Uint8Array(n.buffer);\n return n[0] = 1 / 0, n[0] = n[0] - n[0], t[3];\n}\nfunction Z(n, t) {\n var r = {};\n return t.forEach(function(i) {\n var s = function(o) {\n if (o.length === 0) return null;\n var e = {};\n o.forEach(function(u) {\n var a = String(u);\n e[a] = (e[a] || 0) + 1;\n });\n var c = o[0], l = 1;\n return Object.keys(e).forEach(function(u) {\n e[u] > l && (c = u, l = e[u]);\n }), c;\n }(n.map(function(o) {\n return i in o ? o[i] : void 0;\n }).filter(function(o) {\n return o !== void 0;\n }));\n s && (r[i] = s);\n }), r;\n}\nfunction ee() {\n var n = [], t = { \"prefers-contrast\": [\"high\", \"more\", \"low\", \"less\", \"forced\", \"no-preference\"], \"any-hover\": [\"hover\", \"none\"], \"any-pointer\": [\"none\", \"coarse\", \"fine\"], pointer: [\"none\", \"coarse\", \"fine\"], hover: [\"hover\", \"none\"], update: [\"fast\", \"slow\"], \"inverted-colors\": [\"inverted\", \"none\"], \"prefers-reduced-motion\": [\"reduce\", \"no-preference\"], \"prefers-reduced-transparency\": [\"reduce\", \"no-preference\"], scripting: [\"none\", \"initial-only\", \"enabled\"], \"forced-colors\": [\"active\", \"none\"] };\n return Object.keys(t).forEach(function(r) {\n t[r].forEach(function(i) {\n matchMedia(\"(\".concat(r, \": \").concat(i, \")\")).matches && n.push(\"\".concat(r, \": \").concat(i));\n });\n }), n;\n}\nfunction te() {\n if (window.location.protocol === \"https:\" && typeof window.ApplePaySession == \"function\") try {\n for (var n = window.ApplePaySession.supportsVersion, t = 15; t > 0; t--) if (n(t)) return t;\n } catch {\n return 0;\n }\n return 0;\n}\nE().name != \"Firefox\" && v(\"fonts\", function() {\n var n = this;\n return new Promise(function(t, r) {\n try {\n (function(i) {\n var s;\n w(this, void 0, void 0, function() {\n var o, e, c;\n return y(this, function(l) {\n switch (l.label) {\n case 0:\n return document.body ? [3, 2] : [4, (u = 50, new Promise(function(p) {\n return setTimeout(p, u, a);\n }))];\n case 1:\n return l.sent(), [3, 0];\n case 2:\n if ((o = document.createElement(\"iframe\")).setAttribute(\"frameBorder\", \"0\"), (e = o.style).setProperty(\"position\", \"fixed\"), e.setProperty(\"display\", \"block\", \"important\"), e.setProperty(\"visibility\", \"visible\"), e.setProperty(\"border\", \"0\"), e.setProperty(\"opacity\", \"0\"), o.src = \"about:blank\", document.body.appendChild(o), !(c = o.contentDocument || ((s = o.contentWindow) === null || s === void 0 ? void 0 : s.document))) throw new Error(\"Iframe document is not accessible\");\n return i({ iframe: c }), setTimeout(function() {\n document.body.removeChild(o);\n }, 0), [2];\n }\n var u, a;\n });\n });\n })(function(i) {\n var s = i.iframe;\n return w(n, void 0, void 0, function() {\n var o, e, c, l;\n return y(this, function(u) {\n return o = s.createElement(\"canvas\"), e = o.getContext(\"2d\"), c = Q.map(function(a) {\n return k(e, a);\n }), l = {}, J.forEach(function(a) {\n var p = k(e, a);\n c.includes(p) || (l[a] = p);\n }), t(l), [2];\n });\n });\n });\n } catch {\n r({ error: \"unsupported\" });\n }\n });\n}), v(\"hardware\", function() {\n return new Promise(function(n, t) {\n var r = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, i = window.performance && window.performance.memory ? window.performance.memory : 0;\n n({ videocard: Y(), architecture: X(), deviceMemory: r.toString() || \"undefined\", jsHeapSizeLimit: i.jsHeapSizeLimit || 0 });\n });\n}), v(\"locales\", function() {\n return new Promise(function(n) {\n n({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });\n });\n}), v(\"permissions\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n return A = (b == null ? void 0 : b.permissions_to_check) || [\"accelerometer\", \"accessibility\", \"accessibility-events\", \"ambient-light-sensor\", \"background-fetch\", \"background-sync\", \"bluetooth\", \"camera\", \"clipboard-read\", \"clipboard-write\", \"device-info\", \"display-capture\", \"gyroscope\", \"geolocation\", \"local-fonts\", \"magnetometer\", \"microphone\", \"midi\", \"nfc\", \"notifications\", \"payment-handler\", \"persistent-storage\", \"push\", \"speaker\", \"storage-access\", \"top-level-storage-access\", \"window-management\", \"query\"], n = Array.from({ length: (b == null ? void 0 : b.retries) || 3 }, function() {\n return function() {\n return w(this, void 0, void 0, function() {\n var r, i, s, o, e;\n return y(this, function(c) {\n switch (c.label) {\n case 0:\n r = {}, i = 0, s = A, c.label = 1;\n case 1:\n if (!(i < s.length)) return [3, 6];\n o = s[i], c.label = 2;\n case 2:\n return c.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: o })];\n case 3:\n return e = c.sent(), r[o] = e.state.toString(), [3, 5];\n case 4:\n return c.sent(), [3, 5];\n case 5:\n return i++, [3, 1];\n case 6:\n return [2, r];\n }\n });\n });\n }();\n }), [2, Promise.all(n).then(function(r) {\n return Z(r, A);\n })];\n });\n });\n}), v(\"plugins\", function() {\n var n = [];\n if (navigator.plugins) for (var t = 0; t < navigator.plugins.length; t++) {\n var r = navigator.plugins[t];\n n.push([r.name, r.filename, r.description].join(\"|\"));\n }\n return new Promise(function(i) {\n i({ plugins: n });\n });\n}), v(\"screen\", function() {\n return new Promise(function(n) {\n n({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });\n });\n}), v(\"system\", function() {\n return new Promise(function(n) {\n var t = E();\n n({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: t.name, version: t.version }, applePayVersion: te() });\n });\n});\nvar h, ne = E().name !== \"SamsungBrowser\" ? 1 : 3, d = null;\nv(\"webgl\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n typeof document < \"u\" && ((h = document.createElement(\"canvas\")).width = 200, h.height = 100, d = h.getContext(\"webgl\"));\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n return n = Array.from({ length: ne }, function() {\n return function() {\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n var r = `\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `, i = `\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n `, s = d.createShader(d.VERTEX_SHADER), o = d.createShader(d.FRAGMENT_SHADER);\n if (!s || !o) throw new Error(\"Failed to create shaders\");\n if (d.shaderSource(s, r), d.shaderSource(o, i), d.compileShader(s), !d.getShaderParameter(s, d.COMPILE_STATUS)) throw new Error(\"Vertex shader compilation failed: \" + d.getShaderInfoLog(s));\n if (d.compileShader(o), !d.getShaderParameter(o, d.COMPILE_STATUS)) throw new Error(\"Fragment shader compilation failed: \" + d.getShaderInfoLog(o));\n var e = d.createProgram();\n if (!e) throw new Error(\"Failed to create shader program\");\n if (d.attachShader(e, s), d.attachShader(e, o), d.linkProgram(e), !d.getProgramParameter(e, d.LINK_STATUS)) throw new Error(\"Shader program linking failed: \" + d.getProgramInfoLog(e));\n d.useProgram(e);\n for (var c = 137, l = new Float32Array(4 * c), u = 2 * Math.PI / c, a = 0; a < c; a++) {\n var p = a * u;\n l[4 * a] = 0, l[4 * a + 1] = 0, l[4 * a + 2] = Math.cos(p) * (h.width / 2), l[4 * a + 3] = Math.sin(p) * (h.height / 2);\n }\n var U = d.createBuffer();\n d.bindBuffer(d.ARRAY_BUFFER, U), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);\n var x = d.getAttribLocation(e, \"position\");\n d.enableVertexAttribArray(x), d.vertexAttribPointer(x, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, h.width, h.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * c);\n var I = new Uint8ClampedArray(h.width * h.height * 4);\n return d.readPixels(0, 0, h.width, h.height, d.RGBA, d.UNSIGNED_BYTE, I), new ImageData(I, h.width, h.height);\n } catch {\n return new ImageData(1, 1);\n } finally {\n d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));\n }\n }();\n }), [2, { commonImageHash: R(F(n, h.width, h.height).data.toString()).toString() }];\n } catch {\n return [2, { webgl: \"unsupported\" }];\n }\n return [2];\n });\n });\n});\nvar S = function(n, t, r, i) {\n for (var s = (r - t) / i, o = 0, e = 0; e < i; e++)\n o += n(t + (e + 0.5) * s);\n return o * s;\n};\nv(\"math\", function() {\n return w(void 0, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, { acos: Math.acos(0.5), asin: S(Math.asin, -1, 1, 97), atan: S(Math.atan, -1, 1, 97), cos: S(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: S(Math.sin, -Math.PI, Math.PI, 97), sinh: S(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: S(Math.tan, 0, 2 * Math.PI, 97), tanh: S(Math.tanh, -9 / 7, 7 / 9, 97) }];\n });\n });\n});\nconst re = 500;\nclass ae {\n constructor(t, r) {\n m(this, \"config\");\n m(this, \"sdkInfo\");\n m(this, \"userId\");\n m(this, \"sessionId\");\n m(this, \"searchRequestTimeout\");\n m(this, \"measureRequestTimeout\");\n m(this, \"measureRequestsBatched\", []);\n /**\n * Performs a search operation.\n * @param {SearchParams} searchParams - The parameters for the search.\n * @returns {Promise<SearchcraftResponse>} - Returns the search response or throws an error.\n */\n m(this, \"search\", (t, r) => {\n const i = async () => {\n if (this.sendMeasureEvent(\"search_requested\", {\n search_term: t.query\n }), (t.query.match(/\"/g) || []).length % 2 !== 0)\n throw new Error(\n \"The search term contains an uneven number of quote characters.\"\n );\n try {\n const o = {\n query: this.buildQueryObject(t),\n limit: t.limit ?? 20\n // Default to 20 if not provided\n };\n t.offset !== void 0 && (o.offset = t.offset), t.order_by && (o.order_by = t.order_by, o.sort = t.sort === \"desc\" || t.sort === \"asc\" ? t.sort : \"asc\");\n const e = {\n method: \"POST\",\n headers: {\n Authorization: this.config.readKey,\n \"Content-Type\": \"application/json\",\n \"X-Sc-User-Id\": this.userId\n },\n body: JSON.stringify(o)\n }, c = await fetch(this.baseSearchUrl, e);\n if (!c.ok)\n throw new Error(\n `Error: ${c.statusText} (Status: ${c.status})`\n );\n const l = await c.json();\n this.sendMeasureEvent(\"search_response_received\", {\n search_term: t.query,\n number_of_documents: l.data.count\n }), r(l);\n } catch (o) {\n throw console.error(\"Error parsing response:\", o), o;\n }\n };\n clearTimeout(this.searchRequestTimeout), this.config.searchDebounceDelay ? this.searchRequestTimeout = setTimeout(\n i,\n this.config.searchDebounceDelay\n ) : i();\n });\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n m(this, \"sendMeasureEvent\", (t, r = {}, i = {}) => {\n const s = {\n event_name: t,\n properties: {\n searchcraft_index_names: this.config.index,\n ...r\n },\n user: {\n ...this.measureRequestUser,\n ...i\n }\n };\n this.measureRequestsBatched.push(s), clearTimeout(this.measureRequestTimeout), this.measureRequestTimeout = setTimeout(async () => {\n const o = JSON.stringify({ items: this.measureRequestsBatched }), e = `${this.baseMeasureUrl}/batch`;\n try {\n const c = await fetch(e, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: this.config.readKey,\n \"X-Sc-User-Id\": this.userId\n },\n body: o,\n keepalive: !0\n });\n if (!c.ok)\n throw new Error(\n `Failed to send request: ${c.status} ${c.statusText}`\n );\n this.measureRequestsBatched = [];\n return;\n } catch (c) {\n throw console.error(\"Error sending MeasureRequest:\", c), c;\n }\n }, re);\n });\n if (!t.endpointURL || !t.index || !t.readKey)\n throw new Error(\n \"Endpoint URL, Index value(s), and Read Key must be provided\"\n );\n this.config = t, this.sdkInfo = r, this.userId = t.userId || \"\", this.sessionId = \"\", setTimeout(() => {\n this.sessionId = q(), this.initMeasure();\n }, 300);\n }\n /**\n * Initializes this.userId based on config & sends the `sdk_innitialized` event.\n */\n async initMeasure() {\n if (!this.config.userId) {\n const t = await H();\n this.userId = t;\n }\n this.sendMeasureEvent(\"sdk_initialized\");\n }\n /**\n * Getter for the base url used by the /search endpoint.\n */\n get baseSearchUrl() {\n return `${this.config.endpointURL}/index/${this.config.index.join(\",\")}/search`;\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || \"en-US\",\n os: navigator.userAgent.includes(\"Windows\") ? \"Windows\" : navigator.userAgent.includes(\"Mac\") ? \"Mac\" : navigator.userAgent.includes(\"Linux\") ? \"Linux\" : \"Unknown\",\n platform: navigator.platform || \"Unknown\",\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || \"Unknown\"\n };\n }\n /**\n * Builds a query object for the search request.\n * @param {SearchParams} searchParams - The parameters for the search.\n * @returns {QueryObject} - A properly formatted query object.\n */\n buildQueryObject(t) {\n const r = [];\n let i = \"should\";\n return t.facetPathsForIndexFields && Object.keys(t.facetPathsForIndexFields).forEach(\n (s) => {\n var e;\n const o = (e = t.facetPathsForIndexFields) == null ? void 0 : e[s];\n o && (i = \"must\", r.push({\n occur: i,\n exact: {\n ctx: o.value\n }\n }));\n }\n ), t.rangeValueForIndexFields && Object.keys(t.rangeValueForIndexFields).forEach(\n (s) => {\n var e;\n const o = (e = t.rangeValueForIndexFields) == null ? void 0 : e[s];\n o && (i = \"must\", r.push({\n occur: i,\n exact: {\n ctx: o.value\n }\n }));\n }\n ), t.sort === \"desc\" ? t.order_by = \"date_published\" : t.order_by = \"\", r.push({\n occur: i,\n // Valid, as 'occur' is a required property in QueryItem\n [t.mode]: { ctx: t.query }\n // Ensure dynamic mode is inside queryType\n }), r;\n }\n}\nvar O = /* @__PURE__ */ ((n) => (n[n.DEBUG = 0] = \"DEBUG\", n[n.INFO = 1] = \"INFO\", n[n.WARN = 2] = \"WARN\", n[n.ERROR = 3] = \"ERROR\", n))(O || {});\nclass se {\n constructor(t) {\n m(this, \"logLevel\");\n m(this, \"logFormatter\");\n this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(t, r) {\n return `[${O[t]}] ${(/* @__PURE__ */ new Date()).toISOString()}: ${r}`;\n }\n debug(t) {\n this.logLevel <= 0 && console.log(this.logFormatter(0, t));\n }\n info(t) {\n this.logLevel <= 1 && console.info(this.logFormatter(1, t));\n }\n warn(t) {\n this.logLevel <= 2 && console.warn(this.logFormatter(2, t));\n }\n error(t) {\n this.logLevel <= 3 && console.error(this.logFormatter(3, t));\n }\n}\nexport {\n O as LogLevel,\n se as SDKDebugger,\n ae as SearchcraftCore\n};\n//# sourceMappingURL=index.js.map\n","import { create } from 'zustand';\n\nimport {\n type SearchcraftCore,\n SDKDebugger,\n LogLevel,\n type SearchcraftResponse,\n type FacetPrime,\n type FacetPathsForIndexField,\n type RangeValueForIndexField,\n} from '@searchcraft/core';\n\ninterface ThemeState {\n theme: 'light' | 'dark';\n toggleTheme: () => void;\n}\n\nexport interface SearchcraftState {\n resetFacetPaths: () => void;\n addFacetPathsForIndexField: (data: FacetPathsForIndexField) => void;\n removeFacetPathsForIndexField: (fieldName: string) => void;\n addRangeValueForIndexField: (data: RangeValueForIndexField) => void;\n removeRangeValueForIndexField: (fieldName: string) => void;\n setSearchMode: (mode: 'fuzzy' | 'exact') => void;\n setSortType: (type: 'asc' | 'desc') => void;\n facetPathsForIndexFields: Record<string, FacetPathsForIndexField>;\n rangeValueForIndexFields: Record<string, RangeValueForIndexField>;\n searchMode: 'fuzzy' | 'exact';\n sortType: 'asc' | 'desc';\n facets: FacetPrime | null;\n getSearchcraftInstance: () => SearchcraftCore | null;\n initialize: (searchcraft: SearchcraftCore, debug?: boolean) => void;\n isRequesting: boolean;\n query: string;\n search: () => Promise<void>;\n searchResults: SearchcraftResponse | null;\n setFacets: (facets: FacetPrime) => void;\n setIsRequesting: (isRequesting: boolean) => void;\n setQuery: (query: string) => void;\n setSearchResults: (results: SearchcraftResponse | null) => void;\n setPopoverVisibility: (isVisible: boolean) => void;\n isPopoverVisible: boolean;\n}\n\n// Zustand store for Searchcraft state\nconst useSearchcraftStore = create<SearchcraftState>((set, get) => {\n let searchcraft: SearchcraftCore | null = null;\n let debuggerInstance: SDKDebugger | null = null;\n\n const log = (level: LogLevel, message: string) => {\n if (debuggerInstance) {\n switch (level) {\n case LogLevel.DEBUG:\n debuggerInstance.debug(message);\n break;\n case LogLevel.INFO:\n debuggerInstance.info(message);\n break;\n case LogLevel.WARN:\n debuggerInstance.warn(message);\n break;\n case LogLevel.ERROR:\n debuggerInstance.error(message);\n break;\n }\n }\n };\n\n return {\n setPopoverVisibility: (isVisible: boolean) => {\n set({\n isPopoverVisible: isVisible,\n });\n },\n isPopoverVisible: false,\n resetFacetPaths: () => {\n set({\n facetPathsForIndexFields: {},\n });\n },\n addFacetPathsForIndexField: (data: FacetPathsForIndexField) =>\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [data.fieldName]: data,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) =>\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n };\n }),\n addRangeValueForIndexField: (data: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [data.fieldName]: data,\n },\n })),\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortType: (type) => set({ sortType: type }),\n searchMode: 'fuzzy',\n sortType: 'asc',\n facetPathsForIndexFields: {},\n rangeValueForIndexFields: {},\n query: '',\n isRequesting: false,\n searchResults: null,\n facets: null,\n getSearchcraftInstance: () => searchcraft,\n setQuery: (query) => {\n /**\n * When a new query is set, also reset the sort type, search mode, and facet paths.\n */\n set({\n query,\n facetPathsForIndexFields: {},\n ...(query.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: 'asc',\n }),\n });\n },\n setSearchResults: (results) => set({ searchResults: results }),\n setFacets: (facets) => set({ facets }),\n setIsRequesting: (isRequesting) => set({ isRequesting }),\n search: async () => {\n const state = get();\n log(LogLevel.INFO, `Starting search with search term: \"${state.query}\"`);\n\n if (!searchcraft) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (!state.query.trim()) {\n log(\n LogLevel.INFO,\n 'No search request was made: search term was empty.',\n );\n state.setSearchResults(null);\n return;\n }\n\n state.setIsRequesting(true);\n\n searchcraft.search(\n {\n query: state.query,\n mode: state.searchMode,\n sort: state.sortType,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n },\n (results: SearchcraftResponse) => {\n const updatedFacets = results.data.facets || null;\n\n state.setSearchResults(results);\n if (updatedFacets) {\n state.setFacets(updatedFacets);\n }\n\n log(LogLevel.DEBUG, `Search results: ${JSON.stringify(results)}`);\n log(\n LogLevel.DEBUG,\n `Updated facets: ${JSON.stringify(updatedFacets)}`,\n );\n state.setIsRequesting(false);\n },\n );\n },\n initialize: (searchcraftInstance, debug = false) => {\n searchcraft = searchcraftInstance;\n debuggerInstance = debug\n ? new SDKDebugger({ logLevel: LogLevel.DEBUG })\n : null;\n\n log(LogLevel.INFO, 'Searchcraft store initialized.');\n },\n };\n});\n\nconst useThemeStore = create<ThemeState>((set) => ({\n theme: 'light',\n toggleTheme: () =>\n set((state) => ({ theme: state.theme === 'light' ? 'dark' : 'light' })),\n}));\n\nexport { useSearchcraftStore, useThemeStore };\n"],"mappings":"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","ignoreList":[]}