@searchcraft/javascript-sdk 0.8.1 → 0.9.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 (289) hide show
  1. package/README.md +25 -37
  2. package/dist/components/defineCustomElements.d.ts +1 -0
  3. package/dist/components/defineCustomElements.js +46 -0
  4. package/dist/components/index.d.ts +44 -11
  5. package/dist/components/index.js +104 -53
  6. package/dist/components/index.js.map +1 -1
  7. package/dist/components/p-05872320.js +1462 -0
  8. package/dist/components/p-05872320.js.map +1 -0
  9. package/dist/components/{p-433f974c.js → p-11b05b94.js} +5 -5
  10. package/dist/components/p-11b05b94.js.map +1 -0
  11. package/dist/components/{p-ae78be68.js → p-3026f7d3.js} +18 -127
  12. package/dist/components/p-3026f7d3.js.map +1 -0
  13. package/dist/components/{p-ec0d230e.js → p-3568414f.js} +4 -4
  14. package/dist/components/p-3568414f.js.map +1 -0
  15. package/dist/{cjs/SearchcraftStore-75fac5e0.js → components/p-6d8b0ead.js} +1408 -1350
  16. package/dist/components/p-6d8b0ead.js.map +1 -0
  17. package/dist/components/{p-d19bf6ff.js → p-71cc28c1.js} +2 -2
  18. package/dist/components/p-71cc28c1.js.map +1 -0
  19. package/dist/components/{p-fc7cda96.js → p-7777d986.js} +4 -4
  20. package/dist/components/{p-fc7cda96.js.map → p-7777d986.js.map} +1 -1
  21. package/dist/components/p-b0bc5cee.js +102 -0
  22. package/dist/components/p-b0bc5cee.js.map +1 -0
  23. package/dist/components/{p-4e9cd62e.js → p-bb12ab5a.js} +3 -3
  24. package/dist/components/{p-4e9cd62e.js.map → p-bb12ab5a.js.map} +1 -1
  25. package/dist/components/{p-97332d3e.js → p-cd9ba361.js} +3 -3
  26. package/dist/components/p-cd9ba361.js.map +1 -0
  27. package/dist/components/searchcraft-ad.d.ts +11 -0
  28. package/dist/components/searchcraft-ad.js +8 -0
  29. package/dist/components/searchcraft-ad.js.map +1 -0
  30. package/dist/components/searchcraft-base-search-result.js +1 -1
  31. package/dist/components/searchcraft-base-search-results.js +79 -29
  32. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  33. package/dist/components/searchcraft-button.js +1 -1
  34. package/dist/components/searchcraft-facet-list.js +1 -1
  35. package/dist/components/searchcraft-filter-panel.js +7 -7
  36. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  37. package/dist/components/searchcraft-input-form.js +1 -1
  38. package/dist/components/searchcraft-pagination.js +5 -5
  39. package/dist/components/searchcraft-pagination.js.map +1 -1
  40. package/dist/components/searchcraft-popover-button.js +3 -3
  41. package/dist/components/searchcraft-popover-button.js.map +1 -1
  42. package/dist/components/searchcraft-popover-form.js +28 -35
  43. package/dist/components/searchcraft-popover-form.js.map +1 -1
  44. package/dist/components/searchcraft-popover-list-item.js +1 -1
  45. package/dist/components/searchcraft-popover-list-view.js +1 -1
  46. package/dist/components/searchcraft-results-info.js +2 -2
  47. package/dist/components/searchcraft-results-info.js.map +1 -1
  48. package/dist/components/searchcraft-search-results-per-page.js +3 -3
  49. package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
  50. package/dist/components/searchcraft-slider.js +1 -1
  51. package/dist/components/searchcraft-theme.js +1 -1
  52. package/dist/components/searchcraft-theme.js.map +1 -1
  53. package/dist/components/searchcraft-toggle-button.js +1 -1
  54. package/dist/types/components/searchcraft-ad/searchcraft-ad.d.ts +19 -0
  55. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +10 -7
  56. package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +1 -1
  57. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +4 -29
  58. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +1 -11
  59. package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +4 -0
  60. package/dist/types/components.d.ts +33 -158
  61. package/dist/types/index.d.ts +10 -1
  62. package/dist/types/store/SearchcraftStore.d.ts +4 -0
  63. package/dist/types/{provider → store}/SearchcraftStore.types.d.ts +2 -1
  64. package/dist/{collection/provider/store.js → types/store/index.d.ts} +2 -2
  65. package/package.json +8 -17
  66. package/dist/cjs/SearchcraftStore-75fac5e0.js.map +0 -1
  67. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  68. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  69. package/dist/cjs/index-5b0b9d4c.js +0 -84
  70. package/dist/cjs/index-5b0b9d4c.js.map +0 -1
  71. package/dist/cjs/index-a81df4f0.js +0 -1577
  72. package/dist/cjs/index-a81df4f0.js.map +0 -1
  73. package/dist/cjs/index.cjs.js +0 -14
  74. package/dist/cjs/index.cjs.js.map +0 -1
  75. package/dist/cjs/loader.cjs.js +0 -17
  76. package/dist/cjs/loader.cjs.js.map +0 -1
  77. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js +0 -152
  78. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js.map +0 -1
  79. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +0 -97
  80. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +0 -1
  81. package/dist/cjs/searchcraft-button_3.cjs.entry.js +0 -88
  82. package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +0 -1
  83. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +0 -393
  84. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +0 -1
  85. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +0 -113
  86. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +0 -1
  87. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +0 -260
  88. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +0 -1
  89. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +0 -27
  90. package/dist/cjs/searchcraft-javascript-sdk.cjs.js.map +0 -1
  91. package/dist/cjs/searchcraft-pagination.cjs.entry.js +0 -106
  92. package/dist/cjs/searchcraft-pagination.cjs.entry.js.map +0 -1
  93. package/dist/cjs/searchcraft-popover-button.cjs.entry.js +0 -22
  94. package/dist/cjs/searchcraft-popover-button.cjs.entry.js.map +0 -1
  95. package/dist/cjs/searchcraft-popover-form.cjs.entry.js +0 -234
  96. package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +0 -1
  97. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js +0 -101
  98. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js.map +0 -1
  99. package/dist/cjs/searchcraft-results-info.cjs.entry.js +0 -80
  100. package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +0 -1
  101. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js +0 -75
  102. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js.map +0 -1
  103. package/dist/cjs/searchcraft-select.cjs.entry.js +0 -70
  104. package/dist/cjs/searchcraft-select.cjs.entry.js.map +0 -1
  105. package/dist/cjs/searchcraft-theme.cjs.entry.js +0 -56
  106. package/dist/cjs/searchcraft-theme.cjs.entry.js.map +0 -1
  107. package/dist/cjs/styles-7b2d06f2.js +0 -28
  108. package/dist/cjs/styles-7b2d06f2.js.map +0 -1
  109. package/dist/cjs/units-fe4d8083.js +0 -88
  110. package/dist/cjs/units-fe4d8083.js.map +0 -1
  111. package/dist/collection/collection-manifest.json +0 -32
  112. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +0 -302
  113. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +0 -1
  114. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js +0 -73
  115. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js.map +0 -1
  116. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +0 -313
  117. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +0 -1
  118. package/dist/collection/components/searchcraft-button/searchcraft-button.js +0 -217
  119. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +0 -1
  120. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +0 -44
  121. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map +0 -1
  122. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +0 -200
  123. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +0 -1
  124. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +0 -149
  125. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +0 -1
  126. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +0 -443
  127. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +0 -1
  128. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +0 -67
  129. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js.map +0 -1
  130. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js +0 -141
  131. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js.map +0 -1
  132. package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js +0 -15
  133. package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js.map +0 -1
  134. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +0 -381
  135. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +0 -1
  136. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +0 -128
  137. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +0 -1
  138. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js +0 -73
  139. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js.map +0 -1
  140. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +0 -141
  141. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js.map +0 -1
  142. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +0 -138
  143. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +0 -1
  144. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js +0 -129
  145. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js.map +0 -1
  146. package/dist/collection/components/searchcraft-select/searchcraft-select.js +0 -261
  147. package/dist/collection/components/searchcraft-select/searchcraft-select.js.map +0 -1
  148. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +0 -194
  149. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +0 -1
  150. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js +0 -97
  151. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js.map +0 -1
  152. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +0 -118
  153. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +0 -1
  154. package/dist/collection/index.js +0 -3
  155. package/dist/collection/index.js.map +0 -1
  156. package/dist/collection/provider/SearchcraftStore.js +0 -160
  157. package/dist/collection/provider/SearchcraftStore.js.map +0 -1
  158. package/dist/collection/provider/SearchcraftStore.types.js +0 -2
  159. package/dist/collection/provider/SearchcraftStore.types.js.map +0 -1
  160. package/dist/collection/provider/store.js.map +0 -1
  161. package/dist/collection/utils/facets.js +0 -128
  162. package/dist/collection/utils/facets.js.map +0 -1
  163. package/dist/collection/utils/index.js +0 -4
  164. package/dist/collection/utils/index.js.map +0 -1
  165. package/dist/collection/utils/styles.js +0 -22
  166. package/dist/collection/utils/styles.js.map +0 -1
  167. package/dist/collection/utils/units.js +0 -83
  168. package/dist/collection/utils/units.js.map +0 -1
  169. package/dist/components/p-25ee7496.js +0 -58
  170. package/dist/components/p-25ee7496.js.map +0 -1
  171. package/dist/components/p-38419178.js +0 -1625
  172. package/dist/components/p-38419178.js.map +0 -1
  173. package/dist/components/p-433f974c.js.map +0 -1
  174. package/dist/components/p-97332d3e.js.map +0 -1
  175. package/dist/components/p-ae78be68.js.map +0 -1
  176. package/dist/components/p-bff4d3fc.js +0 -65
  177. package/dist/components/p-bff4d3fc.js.map +0 -1
  178. package/dist/components/p-d19bf6ff.js.map +0 -1
  179. package/dist/components/p-de4a48b1.js +0 -65
  180. package/dist/components/p-de4a48b1.js.map +0 -1
  181. package/dist/components/p-ec0d230e.js.map +0 -1
  182. package/dist/components/searchcraft-base-search-result-ad.d.ts +0 -11
  183. package/dist/components/searchcraft-base-search-result-ad.js +0 -8
  184. package/dist/components/searchcraft-base-search-result-ad.js.map +0 -1
  185. package/dist/components/searchcraft-popover-list-item-ad.d.ts +0 -11
  186. package/dist/components/searchcraft-popover-list-item-ad.js +0 -8
  187. package/dist/components/searchcraft-popover-list-item-ad.js.map +0 -1
  188. package/dist/esm/SearchcraftStore-3cfd565a.js +0 -1625
  189. package/dist/esm/SearchcraftStore-3cfd565a.js.map +0 -1
  190. package/dist/esm/app-globals-0f993ce5.js +0 -5
  191. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  192. package/dist/esm/index-3608c57d.js +0 -1548
  193. package/dist/esm/index-3608c57d.js.map +0 -1
  194. package/dist/esm/index-72ac5051.js +0 -82
  195. package/dist/esm/index-72ac5051.js.map +0 -1
  196. package/dist/esm/index.js +0 -4
  197. package/dist/esm/index.js.map +0 -1
  198. package/dist/esm/loader.js +0 -13
  199. package/dist/esm/loader.js.map +0 -1
  200. package/dist/esm/searchcraft-base-search-result_2.entry.js +0 -147
  201. package/dist/esm/searchcraft-base-search-result_2.entry.js.map +0 -1
  202. package/dist/esm/searchcraft-base-search-results.entry.js +0 -93
  203. package/dist/esm/searchcraft-base-search-results.entry.js.map +0 -1
  204. package/dist/esm/searchcraft-button_3.entry.js +0 -82
  205. package/dist/esm/searchcraft-button_3.entry.js.map +0 -1
  206. package/dist/esm/searchcraft-facet-list_3.entry.js +0 -387
  207. package/dist/esm/searchcraft-facet-list_3.entry.js.map +0 -1
  208. package/dist/esm/searchcraft-filter-panel.entry.js +0 -109
  209. package/dist/esm/searchcraft-filter-panel.entry.js.map +0 -1
  210. package/dist/esm/searchcraft-input-form_2.entry.js +0 -255
  211. package/dist/esm/searchcraft-input-form_2.entry.js.map +0 -1
  212. package/dist/esm/searchcraft-javascript-sdk.js +0 -22
  213. package/dist/esm/searchcraft-javascript-sdk.js.map +0 -1
  214. package/dist/esm/searchcraft-pagination.entry.js +0 -102
  215. package/dist/esm/searchcraft-pagination.entry.js.map +0 -1
  216. package/dist/esm/searchcraft-popover-button.entry.js +0 -18
  217. package/dist/esm/searchcraft-popover-button.entry.js.map +0 -1
  218. package/dist/esm/searchcraft-popover-form.entry.js +0 -230
  219. package/dist/esm/searchcraft-popover-form.entry.js.map +0 -1
  220. package/dist/esm/searchcraft-popover-list-item_2.entry.js +0 -96
  221. package/dist/esm/searchcraft-popover-list-item_2.entry.js.map +0 -1
  222. package/dist/esm/searchcraft-results-info.entry.js +0 -76
  223. package/dist/esm/searchcraft-results-info.entry.js.map +0 -1
  224. package/dist/esm/searchcraft-search-results-per-page.entry.js +0 -71
  225. package/dist/esm/searchcraft-search-results-per-page.entry.js.map +0 -1
  226. package/dist/esm/searchcraft-select.entry.js +0 -66
  227. package/dist/esm/searchcraft-select.entry.js.map +0 -1
  228. package/dist/esm/searchcraft-theme.entry.js +0 -52
  229. package/dist/esm/searchcraft-theme.entry.js.map +0 -1
  230. package/dist/esm/styles-961644ef.js +0 -25
  231. package/dist/esm/styles-961644ef.js.map +0 -1
  232. package/dist/esm/units-daaf96f5.js +0 -84
  233. package/dist/esm/units-daaf96f5.js.map +0 -1
  234. package/dist/index.cjs.js +0 -1
  235. package/dist/index.js +0 -1
  236. package/dist/loader/cdn.js +0 -1
  237. package/dist/loader/index.cjs.js +0 -1
  238. package/dist/loader/index.d.ts +0 -24
  239. package/dist/loader/index.es2017.js +0 -1
  240. package/dist/loader/index.js +0 -2
  241. package/dist/loader/package.json +0 -11
  242. package/dist/searchcraft-javascript-sdk/index.esm.js +0 -2
  243. package/dist/searchcraft-javascript-sdk/index.esm.js.map +0 -1
  244. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js +0 -2
  245. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js.map +0 -1
  246. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js +0 -2
  247. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js.map +0 -1
  248. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js +0 -2
  249. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js.map +0 -1
  250. package/dist/searchcraft-javascript-sdk/p-38419178.js +0 -11
  251. package/dist/searchcraft-javascript-sdk/p-38419178.js.map +0 -1
  252. package/dist/searchcraft-javascript-sdk/p-5cdc6210.js +0 -7
  253. package/dist/searchcraft-javascript-sdk/p-5cdc6210.js.map +0 -1
  254. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js +0 -2
  255. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js.map +0 -1
  256. package/dist/searchcraft-javascript-sdk/p-6104fe5d.js +0 -2
  257. package/dist/searchcraft-javascript-sdk/p-6104fe5d.js.map +0 -1
  258. package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js +0 -2
  259. package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js.map +0 -1
  260. package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js +0 -2
  261. package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js.map +0 -1
  262. package/dist/searchcraft-javascript-sdk/p-75779e4b.entry.js +0 -2
  263. package/dist/searchcraft-javascript-sdk/p-75779e4b.entry.js.map +0 -1
  264. package/dist/searchcraft-javascript-sdk/p-7e13c128.js +0 -3
  265. package/dist/searchcraft-javascript-sdk/p-7e13c128.js.map +0 -1
  266. package/dist/searchcraft-javascript-sdk/p-7f4dd50c.entry.js +0 -2
  267. package/dist/searchcraft-javascript-sdk/p-7f4dd50c.entry.js.map +0 -1
  268. package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js +0 -2
  269. package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js.map +0 -1
  270. package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js +0 -2
  271. package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js.map +0 -1
  272. package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js +0 -2
  273. package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js.map +0 -1
  274. package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js +0 -2
  275. package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js.map +0 -1
  276. package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js +0 -2
  277. package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js.map +0 -1
  278. package/dist/searchcraft-javascript-sdk/p-d9551738.js +0 -2
  279. package/dist/searchcraft-javascript-sdk/p-d9551738.js.map +0 -1
  280. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js +0 -2
  281. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js.map +0 -1
  282. package/dist/searchcraft-javascript-sdk/p-e1255160.js +0 -2
  283. package/dist/searchcraft-javascript-sdk/p-e1255160.js.map +0 -1
  284. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +0 -2
  285. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +0 -1
  286. package/dist/types/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.d.ts +0 -14
  287. package/dist/types/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.d.ts +0 -14
  288. package/dist/types/provider/SearchcraftStore.d.ts +0 -4
  289. package/dist/types/provider/store.d.ts +0 -3
@@ -1,260 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-a81df4f0.js');
6
- const SearchcraftStore = require('./SearchcraftStore-75fac5e0.js');
7
- const styles = require('./styles-7b2d06f2.js');
8
- const index$1 = require('./index-5b0b9d4c.js');
9
-
10
- const name = "@searchcraft/javascript-sdk";
11
- const version = "0.8.1";
12
- const description = "Searchcraft Javascript SDK";
13
- const author = "Searchcraft";
14
- const license = "Apache-2.0";
15
- const main = "dist/index.cjs.js";
16
- const module$1 = "dist/index.js";
17
- const types = "dist/types/index.d.ts";
18
- const collection = "dist/collection/collection-manifest.json";
19
- const unpkg = "dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js";
20
- const exports$1 = {
21
- ".": {
22
- "import": "./dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js",
23
- require: "./dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.cjs.js",
24
- types: "./dist/types/index.d.ts"
25
- },
26
- "./components": {
27
- "import": "./dist/components/index.js",
28
- types: "./dist/components/index.d.ts"
29
- },
30
- "./loader": {
31
- "import": "./dist/loader/index.js",
32
- require: "./dist/loader/index.cjs",
33
- types: "./dist/loader/index.d.ts"
34
- },
35
- "./dist/components/*": {
36
- "import": "./dist/components/*",
37
- types: "./dist/components/*"
38
- }
39
- };
40
- const repository = {
41
- type: "git",
42
- url: "https://bitbucket.org/madebychalk/searchcraft-javascript-sdks/"
43
- };
44
- const files = [
45
- "dist/"
46
- ];
47
- const scripts = {
48
- build: "stencil build && yarn docs",
49
- docs: "typedoc --options typedoc.json",
50
- dev: "stencil build --dev --watch",
51
- test: "stencil test --spec --e2e",
52
- "test.watch": "stencil test --spec --e2e --watchAll",
53
- generate: "stencil generate"
54
- };
55
- const dependencies = {
56
- "@stencil/vue-output-target": "^0.9.2",
57
- classnames: "^2.3.2"
58
- };
59
- const devDependencies = {
60
- "@searchcraft/core": "^0.8.1",
61
- "@searchcraft/javascript-sdk": "*",
62
- "@stencil/core": "^4.7.0",
63
- "@stencil/react-output-target": "^0.8.2",
64
- "@stencil/sass": "^3.0.12",
65
- "@types/node": "^16.18.11",
66
- zustand: "^5.0.1"
67
- };
68
- const packageJson = {
69
- name: name,
70
- "private": false,
71
- version: version,
72
- description: description,
73
- author: author,
74
- license: license,
75
- main: main,
76
- module: module$1,
77
- types: types,
78
- collection: collection,
79
- "collection:main": "dist/collection/index.js",
80
- unpkg: unpkg,
81
- exports: exports$1,
82
- repository: repository,
83
- files: files,
84
- scripts: scripts,
85
- dependencies: dependencies,
86
- devDependencies: devDependencies
87
- };
88
-
89
- const SearchcraftInput = class {
90
- constructor(hostRef) {
91
- index.registerInstance(this, hostRef);
92
- this.inputCleared = index.createEvent(this, "inputCleared", 7);
93
- this.noResultsReceived = index.createEvent(this, "noResultsReceived", 7);
94
- this.inputFocus = index.createEvent(this, "inputFocus", 7);
95
- this.inputBlur = index.createEvent(this, "inputBlur", 7);
96
- this.inputInit = index.createEvent(this, "inputInit", 7);
97
- this.querySubmit = index.createEvent(this, "querySubmit", 7);
98
- }
99
- /**
100
- * The Searchcraft config object.
101
- */
102
- config;
103
- /**
104
- * Whether or not to automatically submit the search term when the input changes.
105
- */
106
- autoSearch = true;
107
- /**
108
- * Where to place the search button.
109
- */
110
- buttonPlacement = 'none';
111
- /**
112
- * The label for the submit button.
113
- */
114
- buttonLabel;
115
- /**
116
- * The label rendered above the input.
117
- */
118
- inputLabel;
119
- /**
120
- * A custom styles object to be applied to the input element.
121
- */
122
- customStyles = {};
123
- /**
124
- * The input element's placeholder value.
125
- */
126
- placeholderValue = 'Enter Search';
127
- /**
128
- * The starting value of the input element.
129
- */
130
- searchTerm = '';
131
- /**
132
- * When the input is cleared.
133
- */
134
- inputCleared;
135
- /**
136
- * When no results are returned.
137
- */
138
- noResultsReceived;
139
- /**
140
- * When the input becomes focused.
141
- */
142
- inputFocus;
143
- /**
144
- * When the input becomes unfocused.
145
- */
146
- inputBlur;
147
- /**
148
- * Event emitted when input initializes.
149
- */
150
- inputInit;
151
- /**
152
- * Event emitted when a query has been submitted.
153
- */
154
- querySubmit;
155
- inputValue = this.searchTerm;
156
- error = false;
157
- isSearchcraftInitialized = false;
158
- searchStore = SearchcraftStore.useSearchcraftStore.getState();
159
- init() {
160
- if (this.config && !this.isSearchcraftInitialized) {
161
- const searchcraft = new SearchcraftStore.ge(this.config, {
162
- sdkName: packageJson.name,
163
- sdkVersion: packageJson.version,
164
- });
165
- this.searchStore.initialize(searchcraft, true);
166
- this.isSearchcraftInitialized = true;
167
- this.inputInit?.emit();
168
- }
169
- }
170
- componentDidLoad() {
171
- this.init();
172
- }
173
- onConfigChange() {
174
- this.init();
175
- }
176
- handleOnInput = (event) => {
177
- const input = event.target;
178
- this.inputValue = input.value;
179
- if (!this.autoSearch) {
180
- return;
181
- }
182
- if (input.value.trim() === '') {
183
- this.inputCleared?.emit();
184
- }
185
- this.performSearch(input.value);
186
- };
187
- performSearch = async (value) => {
188
- if (value === SearchcraftStore.useSearchcraftStore.getState().searchTerm) {
189
- return;
190
- }
191
- this.searchTerm = value.trim();
192
- this.error = false;
193
- this.searchStore.setSearchTerm(this.searchTerm);
194
- this.querySubmit?.emit(this.searchTerm);
195
- try {
196
- await this.searchStore.search();
197
- }
198
- catch (error) {
199
- this.error = true;
200
- this.inputCleared?.emit();
201
- }
202
- };
203
- handleClearInput = () => {
204
- this.inputValue = '';
205
- this.searchTerm = '';
206
- this.searchStore.setSearchTerm('');
207
- this.searchStore.setSearchClientResponseItems([]);
208
- this.error = false;
209
- this.inputCleared?.emit();
210
- };
211
- handleFormSubmit = async (event) => {
212
- event.preventDefault();
213
- await this.performSearch(this.searchTerm);
214
- };
215
- render() {
216
- const validatedCustomStyles = styles.parseCustomStyles(this.customStyles);
217
- const isShowingClearButton = this.inputValue.length > 0;
218
- const inputGridClassNames = index$1.classNames('searchcraft-input-grid', {
219
- 'searchcraft-input-grid-buttonLeft': this.buttonPlacement === 'left',
220
- 'searchcraft-input-grid-buttonRight': this.buttonPlacement === 'right',
221
- 'searchcraft-input-grid-buttonNone': this.buttonPlacement === 'none',
222
- });
223
- const shouldHaveVerticalGap = this.inputLabel || this.error;
224
- const inputGridStyles = {
225
- gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',
226
- };
227
- return (index.h("form", { key: 'bc665c50db8de601a3c95266bdf063ebb988d6a8', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, index.h("div", { key: 'a6936858c08d866b66b887c7ae03b35961cf04a1', class: inputGridClassNames, style: inputGridStyles }, index.h("div", { key: '915ac892fccb771f1c5338cd2d52f16f1793615d', class: 'searchcraft-input-button-wrapper' }, index.h("searchcraft-button", { key: '81447da28dcb9cb80a8cdf0c6765c909c2746585', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (index.h("div", { key: '939c3407d16075be25ff23bf9b379c05ba1a66d4', class: 'searchcraft-input-label-wrapper' }, index.h("searchcraft-input-label", { key: '9d9c4043c04132b27710cca47abf102a188a80b9', label: this.inputLabel }))), this.error && (index.h("div", { key: '7e309f8a5c81a41bdd593f4e4ee1ba30c531c97d', class: 'searchcraft-input-error-wrapper' }, index.h("searchcraft-error-message", { key: 'de947c04f0948e36786f50ac65720eeb598ae7bf', errorMessage: 'Something went wrong.' }))), index.h("div", { key: 'bcf774e3fa5164ab838b634badf2002495437fe7', class: 'searchcraft-input-wrapper' }, index.h("input", { key: 'fd9759559712a39d3493e069ddddf7c267879c84', autoComplete: 'off', class: 'searchcraft-input', onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {
228
- this.handleOnInput(event);
229
- }, placeholder: this.placeholderValue, style: validatedCustomStyles, type: 'text', value: this.inputValue }), index.h("div", { key: '8564b18962feeea8d9ab8bb46af4ba28a089d8f4', class: 'searchcraft-input-search-icon-wrapper' }, index.h("svg", { key: '90c3636ea306ed70887d76deaf058ab3ace61134', class: 'searchcraft-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', "aria-labelledby": 'searchcraft-title' }, index.h("title", { key: 'c9921263b87df28e06bab9990e324aa1bebac767', id: 'searchcraft-title' }, "Searchcraft Search Icon Light"), index.h("path", { key: 'bb82073fd722ff4a74e1a86c74cdf0dd9a8080b4', d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))), isShowingClearButton && (index.h("button", { key: 'e708cb9426171bfdfb29e0a98206d086fa14e15e', type: 'button', class: 'searchcraft-input-clear-button', onClick: this.handleClearInput }, index.h("svg", { key: '243b6eacc68fa8cc57d5e11b9b317d7fe581406f', class: 'searchcraft-input-clear-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', "aria-labelledby": 'icon-title' }, index.h("title", { key: 'd8a8b44fe04345b5b27ba33ec4ba510500eab3bf', id: 'icon-title' }, "Searchcraft Clear Input Icon Light"), index.h("path", { key: '0602cbff7aac6755dabb496b84e6ef3e4e2ac7a6', d: 'M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))))))));
230
- }
231
- static get watchers() { return {
232
- "config": ["onConfigChange"]
233
- }; }
234
- };
235
-
236
- const SearchcraftPopoverListView = class {
237
- constructor(hostRef) {
238
- index.registerInstance(this, hostRef);
239
- }
240
- /**
241
- * The mappings that define how the data in the documents are mapped to the
242
- * list-view-item elements.
243
- */
244
- popoverResultMappings;
245
- /**
246
- * The items to render in the list view.
247
- */
248
- searchClientResponseItems;
249
- adClientResponseItems;
250
- searchResultsPage;
251
- searchResultsPerPage;
252
- render() {
253
- return (index.h("div", { key: 'a869d98e96f6fbbc80ecb79058c4753b4a3a8b1d', class: 'searchcraft-popover-list-view' }, this.adClientResponseItems?.map((item) => (index.h("searchcraft-popover-list-item-ad", { adClientResponseItem: item, key: item.adId }))), this.searchClientResponseItems?.map((item, index$1) => (index.h("searchcraft-popover-list-item", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index$1 })))));
254
- }
255
- };
256
-
257
- exports.searchcraft_input_form = SearchcraftInput;
258
- exports.searchcraft_popover_list_view = SearchcraftPopoverListView;
259
-
260
- //# sourceMappingURL=searchcraft-input-form_2.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-input-form.searchcraft-popover-list-view.entry.cjs.js","mappings":"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","names":["useSearchcraftStore","SearchcraftCore","parseCustomStyles","classNames","h","index"],"sources":["src/components/searchcraft-input-form/searchcraft-input-form.tsx","src/components/searchcraft-popover-list-view/searchcraft-popover-list-view.tsx"],"sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Event,\n type EventEmitter,\n Watch,\n} from '@stencil/core';\n\nimport { type SearchcraftConfig, SearchcraftCore } from '@searchcraft/core';\nimport packageJson from '../../../package.json';\n\nimport { parseCustomStyles } from '@utils';\nimport { useSearchcraftStore } from '@provider/store';\nimport classNames from 'classnames';\n\n/**\n * This web component provides a user-friendly interface for querying an indexed dataset, enabling users to easily search large collections of data.\n * It abstracts the complexities of index-based searching, making it accessible to users of all technical levels.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-input-form placeholder-value=\"Search here\" />\n * ```\n *\n * ```js\n * // index.js\n * const searchInputForm = document.querySelector('searchcraft-input-form');\n *\n * searchInputForm.config = {\n * index: [],\n * readKey: '',\n * endpointUrl: '',\n * };\n *\n * searchForm.addEventListener('querySubmit', (event) => {\n * console.log('Query submitted', event.detail);\n * });\n * ```\n */\n@Component({\n tag: 'searchcraft-input-form',\n shadow: false,\n})\nexport class SearchcraftInput {\n /**\n * The Searchcraft config object.\n */\n @Prop() config: SearchcraftConfig | undefined;\n /**\n * Whether or not to automatically submit the search term when the input changes.\n */\n @Prop() autoSearch = true;\n /**\n * Where to place the search button.\n */\n @Prop() buttonPlacement: 'left' | 'right' | 'none' = 'none';\n /**\n * The label for the submit button.\n */\n @Prop() buttonLabel: string | undefined;\n /**\n * The label rendered above the input.\n */\n @Prop() inputLabel: string | undefined;\n /**\n * A custom styles object to be applied to the input element.\n */\n @Prop() customStyles: string | Record<string, string> = {};\n /**\n * The input element's placeholder value.\n */\n @Prop() placeholderValue = 'Enter Search';\n /**\n * The starting value of the input element.\n */\n @Prop() searchTerm = '';\n /**\n * When the input is cleared.\n */\n @Event() inputCleared?: EventEmitter<void>;\n /**\n * When no results are returned.\n */\n @Event() noResultsReceived?: EventEmitter<void>;\n /**\n * When the input becomes focused.\n */\n @Event() inputFocus?: EventEmitter<void>;\n /**\n * When the input becomes unfocused.\n */\n @Event() inputBlur?: EventEmitter<void>;\n /**\n * Event emitted when input initializes.\n */\n @Event() inputInit?: EventEmitter<void>;\n /**\n * Event emitted when a query has been submitted.\n */\n @Event() querySubmit?: EventEmitter<string>;\n\n @State() inputValue = this.searchTerm;\n @State() error = false;\n @State() isSearchcraftInitialized = false;\n\n private searchStore = useSearchcraftStore.getState();\n\n init() {\n if (this.config && !this.isSearchcraftInitialized) {\n const searchcraft = new SearchcraftCore(this.config, {\n sdkName: packageJson.name,\n sdkVersion: packageJson.version,\n });\n this.searchStore.initialize(searchcraft, true);\n this.isSearchcraftInitialized = true;\n this.inputInit?.emit();\n }\n }\n\n componentDidLoad() {\n this.init();\n }\n\n @Watch('config')\n onConfigChange() {\n this.init();\n }\n\n handleOnInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.inputValue = input.value;\n\n if (!this.autoSearch) {\n return;\n }\n\n if (input.value.trim() === '') {\n this.inputCleared?.emit();\n }\n\n this.performSearch(input.value);\n };\n\n private performSearch = async (value: string) => {\n if (value === useSearchcraftStore.getState().searchTerm) {\n return;\n }\n\n this.searchTerm = value.trim();\n this.error = false;\n this.searchStore.setSearchTerm(this.searchTerm);\n this.querySubmit?.emit(this.searchTerm);\n\n try {\n await this.searchStore.search();\n } catch (error) {\n this.error = true;\n this.inputCleared?.emit();\n }\n };\n\n handleClearInput = () => {\n this.inputValue = '';\n this.searchTerm = '';\n this.searchStore.setSearchTerm('');\n this.searchStore.setSearchClientResponseItems([]);\n this.error = false;\n\n this.inputCleared?.emit();\n };\n\n handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n await this.performSearch(this.searchTerm);\n };\n\n render() {\n const validatedCustomStyles = parseCustomStyles(this.customStyles);\n\n const isShowingClearButton = this.inputValue.length > 0;\n\n const inputGridClassNames = classNames('searchcraft-input-grid', {\n 'searchcraft-input-grid-buttonLeft': this.buttonPlacement === 'left',\n 'searchcraft-input-grid-buttonRight': this.buttonPlacement === 'right',\n 'searchcraft-input-grid-buttonNone': this.buttonPlacement === 'none',\n });\n\n const shouldHaveVerticalGap = this.inputLabel || this.error;\n const inputGridStyles = {\n gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',\n };\n\n return (\n <form class='searchcraft-input-form' onSubmit={this.handleFormSubmit}>\n <div class={inputGridClassNames} style={inputGridStyles}>\n <div class='searchcraft-input-button-wrapper'>\n <searchcraft-button\n onButtonClick={this.handleFormSubmit}\n label={this.buttonLabel}\n />\n </div>\n {this.inputLabel && (\n <div class='searchcraft-input-label-wrapper'>\n <searchcraft-input-label label={this.inputLabel} />\n </div>\n )}\n {this.error && (\n <div class='searchcraft-input-error-wrapper'>\n <searchcraft-error-message errorMessage='Something went wrong.' />\n </div>\n )}\n <div class='searchcraft-input-wrapper'>\n <input\n autoComplete='off'\n class='searchcraft-input'\n onFocus={() => this.inputFocus?.emit()}\n onBlur={() => this.inputBlur?.emit()}\n onInput={(event) => {\n this.handleOnInput(event);\n }}\n placeholder={this.placeholderValue}\n style={validatedCustomStyles}\n type='text'\n value={this.inputValue}\n />\n <div class='searchcraft-input-search-icon-wrapper'>\n <svg\n class='searchcraft-input-search-icon'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>\n Searchcraft Search Icon Light\n </title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='currentColor'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n </div>\n {isShowingClearButton && (\n <button\n type='button'\n class='searchcraft-input-clear-button'\n onClick={this.handleClearInput}\n >\n <svg\n class='searchcraft-input-clear-icon'\n viewBox='0 0 22 22'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>\n Searchcraft Clear Input Icon Light\n </title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='currentColor'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n </button>\n )}\n </div>\n </div>\n </form>\n );\n }\n}\n","import type {\n AdClientResponseItem,\n SearchClientResponseItem,\n} from '@searchcraft/core';\nimport { Component, h, Prop } from '@stencil/core';\n\nimport type { PopoverResultMappings } from '@searchcraft/core';\n\n/**\n * This web component is designed to display a list of results within a popover interface.\n * It is consumed within the `searchcraft-popover-form` component.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-popover-list-view />\n * ```\n */\n@Component({\n tag: 'searchcraft-popover-list-view',\n shadow: false,\n})\nexport class SearchcraftPopoverListView {\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n @Prop() popoverResultMappings: PopoverResultMappings | undefined;\n /**\n * The items to render in the list view.\n */\n @Prop() searchClientResponseItems: SearchClientResponseItem[] | undefined;\n @Prop() adClientResponseItems: AdClientResponseItem[] | undefined;\n @Prop() searchResultsPage!: number;\n @Prop() searchResultsPerPage!: number;\n\n render() {\n return (\n <div class='searchcraft-popover-list-view'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-popover-list-item-ad\n adClientResponseItem={item}\n key={item.adId}\n />\n ))}\n {this.searchClientResponseItems?.map((item, index) => (\n <searchcraft-popover-list-item\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />\n ))}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-a81df4f0.js');
6
- const appGlobals = require('./app-globals-3a1e7e63.js');
7
-
8
- /*
9
- Stencil Client Patch Browser v4.25.0 | MIT Licensed | https://stenciljs.com
10
- */
11
- var patchBrowser = () => {
12
- const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('searchcraft-javascript-sdk.cjs.js', document.baseURI).href));
13
- const opts = {};
14
- if (importMeta !== "") {
15
- opts.resourcesUrl = new URL(".", importMeta).href;
16
- }
17
- return index.promiseResolve(opts);
18
- };
19
-
20
- patchBrowser().then(async (options) => {
21
- await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["searchcraft-base-search-results.cjs",[[4,"searchcraft-base-search-results",{"customStylesForResults":[1,"custom-styles-for-results"],"searchResultMappings":[16],"resultImagePlacement":[1,"result-image-placement"],"buttonLabel":[1,"button-label"],"buttonTarget":[1,"button-target"],"buttonRel":[1,"button-rel"],"containerTarget":[1,"container-target"],"containerRel":[1,"container-rel"],"searchTerm":[32],"searchClientResponseItems":[32],"adClientResponseItems":[32],"searchResultsPerPage":[32],"searchResultsPage":[32]}]]],["searchcraft-filter-panel.cjs",[[0,"searchcraft-filter-panel",{"items":[16],"unsubscribe":[32],"lastSearchTerm":[32]}]]],["searchcraft-pagination.cjs",[[0,"searchcraft-pagination",{"customStyles":[1,"custom-styles"],"searchTerm":[32],"searchResultsPerPage":[32],"searchResultsPage":[32],"searchResultsCount":[32],"searchResultsPagesCount":[32],"searchResultsRangeMin":[32],"searchResultsRangeMax":[32],"setSearchResultsPage":[32]}]]],["searchcraft-search-results-per-page.cjs",[[0,"searchcraft-search-results-per-page",{"increment":[8],"customStyles":[1,"custom-styles"],"searchTerm":[32],"searchResultsPage":[32],"searchResultsPerPage":[32],"searchResultsCount":[32],"searchResultsPagesCount":[32],"initialSearchResultsPerPage":[32],"setSearchResultsPerPage":[32],"setSearchResultsPage":[32]}]]],["searchcraft-popover-button.cjs",[[4,"searchcraft-popover-button"]]],["searchcraft-results-info.cjs",[[0,"searchcraft-results-info",{"customFormatter":[16],"customStyles":[1,"custom-styles"],"searchTerm":[32],"searchResultsPage":[32],"searchResultsPerPage":[32],"searchResultsCount":[32],"count":[32],"range":[32],"responseTime":[32]}]]],["searchcraft-theme.cjs",[[0,"searchcraft-theme",{"theme":[1],"customTheme":[1,"custom-theme"]}]]],["searchcraft-input-form_2.cjs",[[0,"searchcraft-input-form",{"config":[16],"autoSearch":[4,"auto-search"],"buttonPlacement":[1,"button-placement"],"buttonLabel":[1,"button-label"],"inputLabel":[1,"input-label"],"customStyles":[1,"custom-styles"],"placeholderValue":[1,"placeholder-value"],"searchTerm":[1,"search-term"],"inputValue":[32],"error":[32],"isSearchcraftInitialized":[32]},null,{"config":["onConfigChange"]}],[0,"searchcraft-popover-list-view",{"popoverResultMappings":[16],"searchClientResponseItems":[16],"adClientResponseItems":[16],"searchResultsPage":[2,"search-results-page"],"searchResultsPerPage":[2,"search-results-per-page"]}]]],["searchcraft-popover-form.cjs",[[0,"searchcraft-popover-form",{"config":[16],"type":[1],"popoverResultMappings":[16],"hotkey":[1],"hotkeyModifier":[1,"hotkey-modifier"],"isPopoverVisibleInState":[32],"unsubscribe":[32],"searchClientResponseItems":[32],"adClientResponseItems":[32],"searchTerm":[32],"isFocused":[32],"breakpointSm":[32],"breakpointMd":[32],"breakpointLg":[32],"searchResultsPage":[32],"searchResultsPerPage":[32],"modalElement":[32]}]]],["searchcraft-select.cjs",[[0,"searchcraft-select",{"caption":[1],"disabled":[4],"inputId":[1,"input-id"],"label":[1],"labelId":[1,"label-id"],"name":[1],"options":[1],"customStyles":[1,"custom-styles"],"searchResultsPerPage":[32],"setSearchResultsPage":[32],"setSearchResultsPerPage":[32]}]]],["searchcraft-base-search-result_2.cjs",[[0,"searchcraft-base-search-result",{"item":[16],"searchResultMappings":[16],"containerTarget":[1,"container-target"],"containerRel":[1,"container-rel"],"buttonTarget":[1,"button-target"],"buttonRel":[1,"button-rel"],"imagePlacement":[1,"image-placement"],"customStyles":[1,"custom-styles"],"documentPosition":[2,"document-position"],"titleContent":[32],"subtitleContent":[32],"bodyContent":[32],"footerContent":[32],"buttonLabel":[32],"buttonHref":[32],"containerHref":[32],"imageSrc":[32],"imageAlt":[32]}],[0,"searchcraft-base-search-result-ad",{"adClientResponseItem":[16]}]]],["searchcraft-facet-list_3.cjs",[[0,"searchcraft-facet-list",{"fieldName":[1,"field-name"],"baseFacetRoot":[32],"facetRoot":[32],"selectedPaths":[32],"lastTimeTaken":[32],"hasNewSearchTerm":[32],"lastSearchTerm":[32],"lastSearchMode":[32],"lastSortType":[32],"unsubscribe":[32]}],[0,"searchcraft-slider",{"max":[2],"min":[2],"granularity":[2],"dataType":[1,"data-type"],"endValue":[32],"startValue":[32],"lastFocusedHandle":[32]}],[0,"searchcraft-toggle-button",{"label":[1],"subLabel":[1,"sub-label"],"isActive":[32],"unsubscribe":[32],"lastSearchTerm":[32]}]]],["searchcraft-popover-list-item_2.cjs",[[0,"searchcraft-popover-list-item",{"item":[16],"popoverResultMappings":[16],"documentPosition":[2,"document-position"],"href":[32],"imageSrc":[32],"imageAlt":[32],"titleContent":[32],"subtitleContent":[32]}],[0,"searchcraft-popover-list-item-ad",{"adClientResponseItem":[16]}]]],["searchcraft-button_3.cjs",[[0,"searchcraft-input-label",{"inputLabelClassName":[1,"input-label-class-name"],"label":[1]}],[0,"searchcraft-button",{"hierarchy":[1],"disabled":[4],"icon":[16],"iconOnly":[4,"icon-only"],"iconPosition":[1,"icon-position"],"label":[1],"type":[1]}],[0,"searchcraft-error-message",{"errorMessage":[1,"error-message"]}]]]], options);
23
- });
24
-
25
- exports.setNonce = index.setNonce;
26
-
27
- //# sourceMappingURL=searchcraft-javascript-sdk.cjs.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-javascript-sdk.cjs.js","mappings":";;;;;;;AAAA;AACA;AACA;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,4NAAe,CAAC;AACrC,EAAE,MAAM,IAAI,GAAiE,EAAE,CAAC;AAChF,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC;AACtD,GAAG;AACH,EAAE,OAAOA,oBAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAMC,wBAAa,EAAE,CAAC;AACxB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;;;;","names":["promiseResolve","globalScripts","bootstrapLazy"],"sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.25.0 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, doc, H, promiseResolve } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? Array.from(doc.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"version":3}
@@ -1,106 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-a81df4f0.js');
6
- const SearchcraftStore = require('./SearchcraftStore-75fac5e0.js');
7
- const index$1 = require('./index-5b0b9d4c.js');
8
- const styles = require('./styles-7b2d06f2.js');
9
-
10
- const SearchcraftPagination = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- }
14
- /**
15
- * The custom styles object.
16
- */
17
- customStyles;
18
- // store vars
19
- searchTerm;
20
- searchResultsPerPage;
21
- searchResultsPage;
22
- searchResultsCount;
23
- // local vars
24
- searchResultsPagesCount = 1;
25
- searchResultsRangeMin = 1;
26
- searchResultsRangeMax = 1;
27
- // store functions
28
- setSearchResultsPage = () => { };
29
- unsubscribe = () => { };
30
- componentDidLoad() {
31
- this.unsubscribe = SearchcraftStore.useSearchcraftStore.subscribe((state) => {
32
- // store vars
33
- this.searchTerm = state.searchTerm;
34
- this.searchResultsPerPage = state.searchResultsPerPage;
35
- this.searchResultsPage = state.searchResultsPage;
36
- this.searchResultsCount = state.searchResultsCount;
37
- // local vars
38
- this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);
39
- this.searchResultsRangeMin =
40
- (this.searchResultsPage - 1) * this.searchResultsPerPage + 1;
41
- this.searchResultsRangeMax =
42
- (this.searchResultsPerPage - 1) * this.searchResultsPerPage +
43
- this.searchResultsPerPage;
44
- // store functions
45
- this.setSearchResultsPage = state.setSearchResultsPage;
46
- });
47
- }
48
- disconnectedCallback() {
49
- this.unsubscribe?.();
50
- }
51
- handleGoToPage(page) {
52
- this.setSearchResultsPage(page);
53
- }
54
- renderOddPaginationItem(page) {
55
- return (index.h("li", null, index.h("button", { class: index$1.classNames('searchcraft-pagination-item', {
56
- 'searchcraft-pagination-item-active': this.searchResultsPage === page,
57
- }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));
58
- }
59
- renderEvenPaginationItem(page) {
60
- if (this.searchResultsPagesCount <= page) {
61
- return;
62
- }
63
- if (this.searchResultsPagesCount <= 5 ||
64
- page < Math.ceil(this.searchResultsPagesCount / 2) // is the first or second even pagination item
65
- ? this.searchResultsPage <= page + 1
66
- : this.searchResultsPage >= page - 1) {
67
- return (index.h("li", null, index.h("button", { class: index$1.classNames('searchcraft-pagination-item', {
68
- 'searchcraft-pagination-item-active': this.searchResultsPage === page,
69
- }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));
70
- }
71
- return (index.h("li", null, index.h("span", { class: 'searchcraft-pagination-item' }, "...")));
72
- }
73
- renderMiddlePaginationItem() {
74
- if (this.searchResultsPagesCount <= 3) {
75
- return;
76
- }
77
- if (this.searchResultsPagesCount <= 5 ||
78
- this.searchResultsPage <= 3 ||
79
- this.searchResultsPage >= this.searchResultsPagesCount - 2) {
80
- return (index.h("li", null, index.h("button", { class: index$1.classNames('searchcraft-pagination-item', {
81
- 'searchcraft-pagination-item-active': this.searchResultsPage === 3 ||
82
- this.searchResultsPage === this.searchResultsPagesCount - 2,
83
- }), type: 'button', onClick: () => this.handleGoToPage(this.searchResultsPage >= this.searchResultsPagesCount - 2
84
- ? this.searchResultsPagesCount - 2
85
- : 3) }, this.searchResultsPage >= this.searchResultsPagesCount - 2
86
- ? this.searchResultsPagesCount - 2
87
- : 3)));
88
- }
89
- return (index.h("li", null, index.h("span", { class: 'searchcraft-pagination-item searchcraft-pagination-item-active' }, this.searchResultsPage)));
90
- }
91
- render() {
92
- // early return if there isn't a searchTerm or there is 1 or fewer pages of results
93
- if (!this.searchTerm || this.searchResultsPagesCount <= 1) {
94
- return;
95
- }
96
- return (index.h("div", { class: index$1.classNames('searchcraft-pagination', styles.parseCustomStyles(this.customStyles || {})) }, index.h("div", { class: 'searchcraft-pagination-control' }, index.h("searchcraft-button", { disabled: this.searchResultsPage === 1, hierarchy: 'tertiary', onButtonClick: () => this.handleGoToPage(Math.max(1, this.searchResultsPage - 1)), label: 'PREVIOUS', iconPosition: 'left', icon: index.h("svg", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, index.h("title", null, "Previous page icon"), index.h("path", { d: 'M12.5 15L7.5 10L12.5 5', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' })) })), index.h("ul", { class: 'searchcraft-pagination-list' }, this.renderOddPaginationItem(1), this.renderEvenPaginationItem(2), this.renderMiddlePaginationItem(), this.renderEvenPaginationItem(this.searchResultsPagesCount > 4
97
- ? this.searchResultsPagesCount - 1
98
- : 4), this.renderOddPaginationItem(this.searchResultsPagesCount)), index.h("div", { class: 'searchcraft-pagination-control' }, index.h("searchcraft-button", { disabled: this.searchResultsPage === this.searchResultsPagesCount, hierarchy: 'tertiary', onButtonClick: () => {
99
- this.handleGoToPage(Math.min(this.searchResultsPagesCount, this.searchResultsPage + 1));
100
- }, label: 'NEXT', iconPosition: 'right', icon: index.h("svg", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, index.h("title", null, "Next page icon"), index.h("path", { d: 'M7.5 15L12.5 10L7.5 5', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' })) }))));
101
- }
102
- };
103
-
104
- exports.searchcraft_pagination = SearchcraftPagination;
105
-
106
- //# sourceMappingURL=searchcraft-pagination.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-pagination.entry.cjs.js","mappings":"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","names":["useSearchcraftStore","h","classNames","parseCustomStyles"],"sources":["src/components/searchcraft-pagination/searchcraft-pagination.tsx"],"sourcesContent":["import { useSearchcraftStore } from '@provider/store';\nimport { Component, h, State, Prop } from '@stencil/core';\nimport classNames from 'classnames';\n\nimport { parseCustomStyles } from '@utils';\n\n/**\n * This web component is designed to facilitate pagination of search results.\n * Once a query is submitted, calculates the number for pages.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-pagination />\n * ```\n */\n@Component({\n tag: 'searchcraft-pagination',\n shadow: false,\n})\nexport class SearchcraftPagination {\n /**\n * The custom styles object.\n */\n @Prop() customStyles?: string;\n\n // store vars\n @State() searchTerm;\n @State() searchResultsPerPage;\n @State() searchResultsPage;\n @State() searchResultsCount;\n\n // local vars\n @State() searchResultsPagesCount = 1;\n @State() searchResultsRangeMin = 1;\n @State() searchResultsRangeMax = 1;\n\n // store functions\n @State() setSearchResultsPage: (page: number) => void = () => {};\n\n private unsubscribe: () => void = () => {};\n\n componentDidLoad() {\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n\n // local vars\n this.searchResultsPagesCount = Math.ceil(\n this.searchResultsCount / this.searchResultsPerPage,\n );\n this.searchResultsRangeMin =\n (this.searchResultsPage - 1) * this.searchResultsPerPage + 1;\n this.searchResultsRangeMax =\n (this.searchResultsPerPage - 1) * this.searchResultsPerPage +\n this.searchResultsPerPage;\n\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n });\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n handleGoToPage(page: number) {\n this.setSearchResultsPage(page);\n }\n\n renderOddPaginationItem(page: number) {\n return (\n <li>\n <button\n class={classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active':\n this.searchResultsPage === page,\n })}\n onClick={() => this.handleGoToPage(page)}\n type='button'\n >\n {page}\n </button>\n </li>\n );\n }\n\n renderEvenPaginationItem(page: number) {\n if (this.searchResultsPagesCount <= page) {\n return;\n }\n\n if (\n this.searchResultsPagesCount <= 5 ||\n page < Math.ceil(this.searchResultsPagesCount / 2) // is the first or second even pagination item\n ? this.searchResultsPage <= page + 1\n : this.searchResultsPage >= page - 1\n ) {\n return (\n <li>\n <button\n class={classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active':\n this.searchResultsPage === page,\n })}\n onClick={() => this.handleGoToPage(page)}\n type='button'\n >\n {page}\n </button>\n </li>\n );\n }\n\n return (\n <li>\n <span class='searchcraft-pagination-item'>...</span>\n </li>\n );\n }\n\n renderMiddlePaginationItem() {\n if (this.searchResultsPagesCount <= 3) {\n return;\n }\n\n if (\n this.searchResultsPagesCount <= 5 ||\n this.searchResultsPage <= 3 ||\n this.searchResultsPage >= this.searchResultsPagesCount - 2\n ) {\n return (\n <li>\n <button\n class={classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active':\n this.searchResultsPage === 3 ||\n this.searchResultsPage === this.searchResultsPagesCount - 2,\n })}\n type='button'\n onClick={() =>\n this.handleGoToPage(\n this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3,\n )\n }\n >\n {this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3}\n </button>\n </li>\n );\n }\n\n return (\n <li>\n <span class='searchcraft-pagination-item searchcraft-pagination-item-active'>\n {this.searchResultsPage}\n </span>\n </li>\n );\n }\n\n render() {\n // early return if there isn't a searchTerm or there is 1 or fewer pages of results\n if (!this.searchTerm || this.searchResultsPagesCount <= 1) {\n return;\n }\n\n return (\n <div\n class={classNames(\n 'searchcraft-pagination',\n parseCustomStyles(this.customStyles || {}),\n )}\n >\n <div class='searchcraft-pagination-control'>\n <searchcraft-button\n disabled={this.searchResultsPage === 1}\n hierarchy='tertiary'\n onButtonClick={() =>\n this.handleGoToPage(Math.max(1, this.searchResultsPage - 1))\n }\n label='PREVIOUS'\n iconPosition='left'\n icon={\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <title>Previous page icon</title>\n <path\n d='M12.5 15L7.5 10L12.5 5'\n stroke='currentColor'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n }\n />\n </div>\n <ul class='searchcraft-pagination-list'>\n {this.renderOddPaginationItem(1)}\n {this.renderEvenPaginationItem(2)}\n {this.renderMiddlePaginationItem()}\n {this.renderEvenPaginationItem(\n this.searchResultsPagesCount > 4\n ? this.searchResultsPagesCount - 1\n : 4,\n )}\n {this.renderOddPaginationItem(this.searchResultsPagesCount)}\n </ul>\n <div class='searchcraft-pagination-control'>\n <searchcraft-button\n disabled={this.searchResultsPage === this.searchResultsPagesCount}\n hierarchy='tertiary'\n onButtonClick={() => {\n this.handleGoToPage(\n Math.min(\n this.searchResultsPagesCount,\n this.searchResultsPage + 1,\n ),\n );\n }}\n label='NEXT'\n iconPosition='right'\n icon={\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <title>Next page icon</title>\n <path\n d='M7.5 15L12.5 10L7.5 5'\n stroke='currentColor'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n }\n />\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,22 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-a81df4f0.js');
6
- const SearchcraftStore = require('./SearchcraftStore-75fac5e0.js');
7
-
8
- const SearchcraftPopoverButton = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- }
12
- handleOnClick() {
13
- SearchcraftStore.useSearchcraftStore.getState().setPopoverVisibility(true);
14
- }
15
- render() {
16
- return (index.h("button", { key: '538e1e8506bea196e6ba45482f9daa75d032462f', type: 'button', onClick: this.handleOnClick.bind(this) }, index.h("slot", { key: '788b70da6edcbfb283d373ada36709582ad16e51' })));
17
- }
18
- };
19
-
20
- exports.searchcraft_popover_button = SearchcraftPopoverButton;
21
-
22
- //# sourceMappingURL=searchcraft-popover-button.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-popover-button.entry.cjs.js","mappings":";;;;;;;MAUa,wBAAwB;;;;IACnC,aAAa;QACXA,oCAAmB,CAAC,QAAQ,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KAC3D;IAED,MAAM;QACJ,QACEC,qEAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAC1DA,oEAAQ,CACD,EACT;KACH;;;;;","names":["useSearchcraftStore","h"],"sources":["src/components/searchcraft-popover-button/searchcraft-popover-button.tsx"],"sourcesContent":["import { useSearchcraftStore } from '@provider/store';\nimport { Component, h } from '@stencil/core';\n\n/**\n * Renders a button which, when clicked, turns on popover visibility.\n */\n@Component({\n tag: 'searchcraft-popover-button',\n shadow: false,\n})\nexport class SearchcraftPopoverButton {\n handleOnClick() {\n useSearchcraftStore.getState().setPopoverVisibility(true);\n }\n\n render() {\n return (\n <button type='button' onClick={this.handleOnClick.bind(this)}>\n <slot />\n </button>\n );\n }\n}\n"],"version":3}