@searchcraft/javascript-sdk 0.8.2 → 0.9.1

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 (287) 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-ec0d230e.js → p-3568414f.js} +4 -4
  12. package/dist/components/p-3568414f.js.map +1 -0
  13. package/dist/components/{p-6e2eef88.js → p-5bd5c3cb.js} +17 -126
  14. package/dist/components/p-5bd5c3cb.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-fc7cda96.js → p-7777d986.js} +4 -4
  18. package/dist/components/{p-fc7cda96.js.map → p-7777d986.js.map} +1 -1
  19. package/dist/components/p-b0bc5cee.js +102 -0
  20. package/dist/components/p-b0bc5cee.js.map +1 -0
  21. package/dist/components/{p-4e9cd62e.js → p-bb12ab5a.js} +3 -3
  22. package/dist/components/{p-4e9cd62e.js.map → p-bb12ab5a.js.map} +1 -1
  23. package/dist/components/{p-97332d3e.js → p-cd9ba361.js} +3 -3
  24. package/dist/components/p-cd9ba361.js.map +1 -0
  25. package/dist/components/searchcraft-ad.d.ts +11 -0
  26. package/dist/components/searchcraft-ad.js +8 -0
  27. package/dist/components/searchcraft-ad.js.map +1 -0
  28. package/dist/components/searchcraft-base-search-result.js +1 -1
  29. package/dist/components/searchcraft-base-search-results.js +79 -29
  30. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  31. package/dist/components/searchcraft-facet-list.js +1 -1
  32. package/dist/components/searchcraft-filter-panel.js +9 -9
  33. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  34. package/dist/components/searchcraft-input-form.js +1 -1
  35. package/dist/components/searchcraft-pagination.js +2 -2
  36. package/dist/components/searchcraft-pagination.js.map +1 -1
  37. package/dist/components/searchcraft-popover-button.js +3 -3
  38. package/dist/components/searchcraft-popover-button.js.map +1 -1
  39. package/dist/components/searchcraft-popover-form.js +28 -35
  40. package/dist/components/searchcraft-popover-form.js.map +1 -1
  41. package/dist/components/searchcraft-popover-list-item.js +1 -1
  42. package/dist/components/searchcraft-popover-list-view.js +1 -1
  43. package/dist/components/searchcraft-results-info.js +2 -2
  44. package/dist/components/searchcraft-results-info.js.map +1 -1
  45. package/dist/components/searchcraft-search-results-per-page.js +3 -3
  46. package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
  47. package/dist/components/searchcraft-slider.js +1 -1
  48. package/dist/components/searchcraft-theme.js +5 -5
  49. package/dist/components/searchcraft-theme.js.map +1 -1
  50. package/dist/components/searchcraft-toggle-button.js +1 -1
  51. package/dist/types/components/searchcraft-ad/searchcraft-ad.d.ts +19 -0
  52. package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +5 -5
  53. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +15 -12
  54. package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +1 -1
  55. package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +6 -31
  56. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +2 -12
  57. package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +4 -0
  58. package/dist/types/components/searchcraft-theme/searchcraft-theme.d.ts +2 -2
  59. package/dist/types/components.d.ts +62 -189
  60. package/dist/types/index.d.ts +14 -1
  61. package/dist/types/store/SearchcraftStore.d.ts +4 -0
  62. package/dist/types/{provider → store}/SearchcraftStore.types.d.ts +2 -1
  63. package/dist/{collection/provider/store.js → types/store/index.d.ts} +2 -2
  64. package/package.json +8 -17
  65. package/dist/cjs/SearchcraftStore-75fac5e0.js.map +0 -1
  66. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  67. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  68. package/dist/cjs/index-5b0b9d4c.js +0 -84
  69. package/dist/cjs/index-5b0b9d4c.js.map +0 -1
  70. package/dist/cjs/index-a81df4f0.js +0 -1577
  71. package/dist/cjs/index-a81df4f0.js.map +0 -1
  72. package/dist/cjs/index.cjs.js +0 -14
  73. package/dist/cjs/index.cjs.js.map +0 -1
  74. package/dist/cjs/loader.cjs.js +0 -17
  75. package/dist/cjs/loader.cjs.js.map +0 -1
  76. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js +0 -152
  77. package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js.map +0 -1
  78. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +0 -97
  79. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +0 -1
  80. package/dist/cjs/searchcraft-button_3.cjs.entry.js +0 -88
  81. package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +0 -1
  82. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +0 -393
  83. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +0 -1
  84. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +0 -113
  85. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +0 -1
  86. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +0 -260
  87. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +0 -1
  88. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +0 -27
  89. package/dist/cjs/searchcraft-javascript-sdk.cjs.js.map +0 -1
  90. package/dist/cjs/searchcraft-pagination.cjs.entry.js +0 -106
  91. package/dist/cjs/searchcraft-pagination.cjs.entry.js.map +0 -1
  92. package/dist/cjs/searchcraft-popover-button.cjs.entry.js +0 -22
  93. package/dist/cjs/searchcraft-popover-button.cjs.entry.js.map +0 -1
  94. package/dist/cjs/searchcraft-popover-form.cjs.entry.js +0 -234
  95. package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +0 -1
  96. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js +0 -101
  97. package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js.map +0 -1
  98. package/dist/cjs/searchcraft-results-info.cjs.entry.js +0 -80
  99. package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +0 -1
  100. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js +0 -75
  101. package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js.map +0 -1
  102. package/dist/cjs/searchcraft-select.cjs.entry.js +0 -70
  103. package/dist/cjs/searchcraft-select.cjs.entry.js.map +0 -1
  104. package/dist/cjs/searchcraft-theme.cjs.entry.js +0 -56
  105. package/dist/cjs/searchcraft-theme.cjs.entry.js.map +0 -1
  106. package/dist/cjs/styles-7b2d06f2.js +0 -28
  107. package/dist/cjs/styles-7b2d06f2.js.map +0 -1
  108. package/dist/cjs/units-fe4d8083.js +0 -88
  109. package/dist/cjs/units-fe4d8083.js.map +0 -1
  110. package/dist/collection/collection-manifest.json +0 -32
  111. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +0 -302
  112. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +0 -1
  113. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js +0 -73
  114. package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js.map +0 -1
  115. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +0 -313
  116. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +0 -1
  117. package/dist/collection/components/searchcraft-button/searchcraft-button.js +0 -217
  118. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +0 -1
  119. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +0 -44
  120. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map +0 -1
  121. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +0 -200
  122. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +0 -1
  123. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +0 -149
  124. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +0 -1
  125. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +0 -443
  126. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +0 -1
  127. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +0 -67
  128. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js.map +0 -1
  129. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js +0 -141
  130. package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js.map +0 -1
  131. package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js +0 -15
  132. package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js.map +0 -1
  133. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +0 -381
  134. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +0 -1
  135. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +0 -128
  136. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +0 -1
  137. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js +0 -73
  138. package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js.map +0 -1
  139. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +0 -141
  140. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js.map +0 -1
  141. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +0 -138
  142. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +0 -1
  143. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js +0 -129
  144. package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js.map +0 -1
  145. package/dist/collection/components/searchcraft-select/searchcraft-select.js +0 -261
  146. package/dist/collection/components/searchcraft-select/searchcraft-select.js.map +0 -1
  147. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +0 -194
  148. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +0 -1
  149. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js +0 -97
  150. package/dist/collection/components/searchcraft-theme/searchcraft-theme.js.map +0 -1
  151. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +0 -118
  152. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +0 -1
  153. package/dist/collection/index.js +0 -3
  154. package/dist/collection/index.js.map +0 -1
  155. package/dist/collection/provider/SearchcraftStore.js +0 -160
  156. package/dist/collection/provider/SearchcraftStore.js.map +0 -1
  157. package/dist/collection/provider/SearchcraftStore.types.js +0 -2
  158. package/dist/collection/provider/SearchcraftStore.types.js.map +0 -1
  159. package/dist/collection/provider/store.js.map +0 -1
  160. package/dist/collection/utils/facets.js +0 -128
  161. package/dist/collection/utils/facets.js.map +0 -1
  162. package/dist/collection/utils/index.js +0 -4
  163. package/dist/collection/utils/index.js.map +0 -1
  164. package/dist/collection/utils/styles.js +0 -22
  165. package/dist/collection/utils/styles.js.map +0 -1
  166. package/dist/collection/utils/units.js +0 -83
  167. package/dist/collection/utils/units.js.map +0 -1
  168. package/dist/components/p-25ee7496.js +0 -58
  169. package/dist/components/p-25ee7496.js.map +0 -1
  170. package/dist/components/p-38419178.js +0 -1625
  171. package/dist/components/p-38419178.js.map +0 -1
  172. package/dist/components/p-433f974c.js.map +0 -1
  173. package/dist/components/p-6e2eef88.js.map +0 -1
  174. package/dist/components/p-97332d3e.js.map +0 -1
  175. package/dist/components/p-bff4d3fc.js +0 -65
  176. package/dist/components/p-bff4d3fc.js.map +0 -1
  177. package/dist/components/p-de4a48b1.js +0 -65
  178. package/dist/components/p-de4a48b1.js.map +0 -1
  179. package/dist/components/p-ec0d230e.js.map +0 -1
  180. package/dist/components/searchcraft-base-search-result-ad.d.ts +0 -11
  181. package/dist/components/searchcraft-base-search-result-ad.js +0 -8
  182. package/dist/components/searchcraft-base-search-result-ad.js.map +0 -1
  183. package/dist/components/searchcraft-popover-list-item-ad.d.ts +0 -11
  184. package/dist/components/searchcraft-popover-list-item-ad.js +0 -8
  185. package/dist/components/searchcraft-popover-list-item-ad.js.map +0 -1
  186. package/dist/esm/SearchcraftStore-3cfd565a.js +0 -1625
  187. package/dist/esm/SearchcraftStore-3cfd565a.js.map +0 -1
  188. package/dist/esm/app-globals-0f993ce5.js +0 -5
  189. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  190. package/dist/esm/index-3608c57d.js +0 -1548
  191. package/dist/esm/index-3608c57d.js.map +0 -1
  192. package/dist/esm/index-72ac5051.js +0 -82
  193. package/dist/esm/index-72ac5051.js.map +0 -1
  194. package/dist/esm/index.js +0 -4
  195. package/dist/esm/index.js.map +0 -1
  196. package/dist/esm/loader.js +0 -13
  197. package/dist/esm/loader.js.map +0 -1
  198. package/dist/esm/searchcraft-base-search-result_2.entry.js +0 -147
  199. package/dist/esm/searchcraft-base-search-result_2.entry.js.map +0 -1
  200. package/dist/esm/searchcraft-base-search-results.entry.js +0 -93
  201. package/dist/esm/searchcraft-base-search-results.entry.js.map +0 -1
  202. package/dist/esm/searchcraft-button_3.entry.js +0 -82
  203. package/dist/esm/searchcraft-button_3.entry.js.map +0 -1
  204. package/dist/esm/searchcraft-facet-list_3.entry.js +0 -387
  205. package/dist/esm/searchcraft-facet-list_3.entry.js.map +0 -1
  206. package/dist/esm/searchcraft-filter-panel.entry.js +0 -109
  207. package/dist/esm/searchcraft-filter-panel.entry.js.map +0 -1
  208. package/dist/esm/searchcraft-input-form_2.entry.js +0 -255
  209. package/dist/esm/searchcraft-input-form_2.entry.js.map +0 -1
  210. package/dist/esm/searchcraft-javascript-sdk.js +0 -22
  211. package/dist/esm/searchcraft-javascript-sdk.js.map +0 -1
  212. package/dist/esm/searchcraft-pagination.entry.js +0 -102
  213. package/dist/esm/searchcraft-pagination.entry.js.map +0 -1
  214. package/dist/esm/searchcraft-popover-button.entry.js +0 -18
  215. package/dist/esm/searchcraft-popover-button.entry.js.map +0 -1
  216. package/dist/esm/searchcraft-popover-form.entry.js +0 -230
  217. package/dist/esm/searchcraft-popover-form.entry.js.map +0 -1
  218. package/dist/esm/searchcraft-popover-list-item_2.entry.js +0 -96
  219. package/dist/esm/searchcraft-popover-list-item_2.entry.js.map +0 -1
  220. package/dist/esm/searchcraft-results-info.entry.js +0 -76
  221. package/dist/esm/searchcraft-results-info.entry.js.map +0 -1
  222. package/dist/esm/searchcraft-search-results-per-page.entry.js +0 -71
  223. package/dist/esm/searchcraft-search-results-per-page.entry.js.map +0 -1
  224. package/dist/esm/searchcraft-select.entry.js +0 -66
  225. package/dist/esm/searchcraft-select.entry.js.map +0 -1
  226. package/dist/esm/searchcraft-theme.entry.js +0 -52
  227. package/dist/esm/searchcraft-theme.entry.js.map +0 -1
  228. package/dist/esm/styles-961644ef.js +0 -25
  229. package/dist/esm/styles-961644ef.js.map +0 -1
  230. package/dist/esm/units-daaf96f5.js +0 -84
  231. package/dist/esm/units-daaf96f5.js.map +0 -1
  232. package/dist/index.cjs.js +0 -1
  233. package/dist/index.js +0 -1
  234. package/dist/loader/cdn.js +0 -1
  235. package/dist/loader/index.cjs.js +0 -1
  236. package/dist/loader/index.d.ts +0 -24
  237. package/dist/loader/index.es2017.js +0 -1
  238. package/dist/loader/index.js +0 -2
  239. package/dist/loader/package.json +0 -11
  240. package/dist/searchcraft-javascript-sdk/index.esm.js +0 -2
  241. package/dist/searchcraft-javascript-sdk/index.esm.js.map +0 -1
  242. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js +0 -2
  243. package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js.map +0 -1
  244. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js +0 -2
  245. package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js.map +0 -1
  246. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js +0 -2
  247. package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js.map +0 -1
  248. package/dist/searchcraft-javascript-sdk/p-37842dee.entry.js +0 -2
  249. package/dist/searchcraft-javascript-sdk/p-37842dee.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-3be70f20.entry.js +0 -2
  253. package/dist/searchcraft-javascript-sdk/p-3be70f20.entry.js.map +0 -1
  254. package/dist/searchcraft-javascript-sdk/p-5cdc6210.js +0 -7
  255. package/dist/searchcraft-javascript-sdk/p-5cdc6210.js.map +0 -1
  256. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js +0 -2
  257. package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js.map +0 -1
  258. package/dist/searchcraft-javascript-sdk/p-6104fe5d.js +0 -2
  259. package/dist/searchcraft-javascript-sdk/p-6104fe5d.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-7813f3cc.entry.js +0 -2
  263. package/dist/searchcraft-javascript-sdk/p-7813f3cc.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-d9551738.js +0 -2
  277. package/dist/searchcraft-javascript-sdk/p-d9551738.js.map +0 -1
  278. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js +0 -2
  279. package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js.map +0 -1
  280. package/dist/searchcraft-javascript-sdk/p-e1255160.js +0 -2
  281. package/dist/searchcraft-javascript-sdk/p-e1255160.js.map +0 -1
  282. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +0 -2
  283. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +0 -1
  284. package/dist/types/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.d.ts +0 -14
  285. package/dist/types/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.d.ts +0 -14
  286. package/dist/types/provider/SearchcraftStore.d.ts +0 -4
  287. package/dist/types/provider/store.d.ts +0 -3
@@ -1,152 +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 units = require('./units-fe4d8083.js');
8
-
9
- const SearchcraftBaseSearchResult = class {
10
- constructor(hostRef) {
11
- index.registerInstance(this, hostRef);
12
- }
13
- item;
14
- searchResultMappings;
15
- /**
16
- * Where to open the link for the containing element.
17
- */
18
- containerTarget = '_blank';
19
- /**
20
- * The relationship between the current document and the link for the containing element.
21
- */
22
- containerRel;
23
- /**
24
- * Where to open the link for the button rendered when containerHref is not present.
25
- */
26
- buttonTarget = '_blank';
27
- /**
28
- * The relationship between the current document and the link for the button rendered when containerHref is not present.
29
- */
30
- buttonRel;
31
- /**
32
- * The placement of the image.
33
- */
34
- imagePlacement = 'right';
35
- /**
36
- * A custom styles object.
37
- */
38
- customStyles;
39
- /**
40
- * The position in the document. Used with the "document_clicked" measure event.
41
- */
42
- documentPosition = 0;
43
- titleContent;
44
- subtitleContent;
45
- bodyContent;
46
- footerContent;
47
- buttonLabel;
48
- buttonHref;
49
- containerHref;
50
- imageSrc;
51
- imageAlt;
52
- searchcraftStore = SearchcraftStore.useSearchcraftStore.getState();
53
- connectedCallback() {
54
- if (this.item) {
55
- this.mapValuesFromDocument(this.item.document);
56
- }
57
- }
58
- mapValuesFromDocument(document) {
59
- this.titleContent = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.title);
60
- this.subtitleContent = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.subtitle);
61
- this.bodyContent = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.body);
62
- this.containerHref = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.containerHref);
63
- this.buttonHref = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.buttonHref);
64
- this.imageSrc = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.imageSource);
65
- this.footerContent = units.getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.footer);
66
- }
67
- handleLinkClick = () => {
68
- const searchcraft = this.searchcraftStore.getSearchcraftInstance();
69
- if (searchcraft) {
70
- const document_position = this.documentPosition;
71
- const search_term = this.searchcraftStore.searchTerm;
72
- const number_of_documents = this.searchcraftStore.searchClientResponseItems.length;
73
- searchcraft.measureClient?.sendMeasureEvent('document_clicked', {
74
- document_position,
75
- number_of_documents,
76
- search_term,
77
- });
78
- }
79
- };
80
- parseStyles = () => {
81
- if (this.customStyles) {
82
- try {
83
- return JSON.parse(this.customStyles);
84
- }
85
- catch (error) {
86
- console.error('Error parsing custom styles:', error);
87
- return {};
88
- }
89
- }
90
- return {};
91
- };
92
- render() {
93
- const styles = this.parseStyles();
94
- const imageContainer = this.imageSrc && (index.h("img", { alt: this.imageAlt, class: 'searchcraft-search-result-image', src: this.imageSrc, style: styles.image || {} }));
95
- const contentContainer = (index.h(index.Fragment, null, this.imageSrc && this.imagePlacement === 'left' && imageContainer, index.h("div", { class: 'searchcraft-base-search-result-content-container' }, this.titleContent && (index.h("h2", { class: 'searchcraft-base-search-result-title', style: styles.title || {} }, this.titleContent)), this.subtitleContent && (index.h("h3", { class: 'searchcraft-base-search-result-subtitle', style: styles.subtitle || {} }, this.subtitleContent)), this.bodyContent && (index.h("p", { class: 'searchcraft-base-search-result-body-content', style: styles.primaryContent || {} }, this.bodyContent)), this.footerContent && (index.h("p", { class: 'searchcraft-base-search-result-footer-content', style: styles.secondaryContent || {} }, this.footerContent)), this.buttonHref && !this.containerHref && this.buttonLabel && (index.h("a", { class: 'searchcraft-search-result-button', href: this.buttonHref, style: styles.button || {}, target: this.buttonTarget, rel: this.buttonRel }, this.buttonLabel))), this.imageSrc && this.imagePlacement === 'right' && imageContainer));
96
- /** Render as an anchor tag if the containerHref prop is present. */
97
- if (this.containerHref) {
98
- return (index.h("a", { class: 'searchcraft-search-result-container', onClick: this.handleLinkClick, href: this.containerHref, rel: this.containerRel, style: styles.container || {}, tabindex: '0', target: this.containerTarget }, contentContainer));
99
- }
100
- /** Render as a div if no href prop. */
101
- return (index.h("div", { class: 'searchcraft-search-result-container', style: styles.container || {} }, contentContainer));
102
- }
103
- };
104
-
105
- const SearchcraftBaseSearchResultAd = class {
106
- constructor(hostRef) {
107
- index.registerInstance(this, hostRef);
108
- }
109
- adClientResponseItem;
110
- connectedCallback() {
111
- if (this.adClientResponseItem?.admAd?.impression_url) {
112
- fetch(this.adClientResponseItem?.admAd?.impression_url);
113
- }
114
- }
115
- renderADMProductAd() {
116
- const ad = this.adClientResponseItem?.admAd;
117
- if (!ad) {
118
- return;
119
- }
120
- return (index.h("a", { class: 'searchcraft-base-ad', href: ad.click_url }, ad.image_url && (index.h("div", { class: 'searchcraft-base-ad-image-wrapper' }, index.h("img", { alt: ad.term, src: ad.image_url, class: 'searchcraft-base-ad-image' }))), index.h("div", { class: 'searchcraft-base-ad-info-wrapper' }, index.h("p", { class: 'searchcraft-base-ad-title' }, ad.term), index.h("p", { class: 'searchcraft-base-ad-subtitle' }, ad.price))));
121
- }
122
- renderADMTextAd() {
123
- const ad = this.adClientResponseItem?.admAd;
124
- if (!ad) {
125
- return;
126
- }
127
- return (index.h("a", { class: 'searchcraft-base-ad', href: ad.click_url }, ad.image_url && (index.h("div", { class: 'searchcraft-base-ad-image-wrapper' }, index.h("img", { alt: ad.term, src: ad.image_url, class: 'searchcraft-base-ad-image' }))), index.h("div", { class: 'searchcraft-base-ad-info-wrapper' }, index.h("p", { class: 'searchcraft-base-ad-title' }, ad.term))));
128
- }
129
- renderNativoAd() { }
130
- renderAdPlaceholder() {
131
- return index.h("p", null, "Ad placeholder");
132
- // return;
133
- }
134
- render() {
135
- if (!this.adClientResponseItem) {
136
- return this.renderAdPlaceholder();
137
- }
138
- switch (this.adClientResponseItem.type) {
139
- case 'adm-product-ad':
140
- return this.renderADMProductAd();
141
- case 'adm-text-ad':
142
- return this.renderADMTextAd();
143
- case 'nativo-ad':
144
- return this.renderNativoAd();
145
- }
146
- }
147
- };
148
-
149
- exports.searchcraft_base_search_result = SearchcraftBaseSearchResult;
150
- exports.searchcraft_base_search_result_ad = SearchcraftBaseSearchResultAd;
151
-
152
- //# sourceMappingURL=searchcraft-base-search-result_2.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-base-search-result.searchcraft-base-search-result-ad.entry.cjs.js","mappings":"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","names":["useSearchcraftStore","getDocumentValueFromSearchResultMapping","h","Fragment"],"sources":["src/components/searchcraft-base-search-result/searchcraft-base-search-result.tsx","src/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.tsx"],"sourcesContent":["import { useSearchcraftStore } from '@provider/store';\nimport type {\n SearchClientResponseItem,\n SearchDocument,\n} from '@searchcraft/core';\nimport { Component, Fragment, h, Prop, State } from '@stencil/core';\nimport { getDocumentValueFromSearchResultMapping } from '@utils';\nimport type { SearchResultMappings } from '@searchcraft/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 @Prop() item: SearchClientResponseItem | undefined;\n @Prop() searchResultMappings: SearchResultMappings | 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 * 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 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 @State() titleContent: string | undefined;\n @State() subtitleContent: string | undefined;\n @State() bodyContent: string | undefined;\n @State() footerContent: string | undefined;\n @State() buttonLabel: string | undefined;\n @State() buttonHref: string | undefined;\n @State() containerHref: string | undefined;\n @State() imageSrc: string | undefined;\n @State() imageAlt: string | undefined;\n\n private searchcraftStore = useSearchcraftStore.getState();\n\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n }\n\n mapValuesFromDocument(document: SearchDocument) {\n this.titleContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.title,\n );\n this.subtitleContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.subtitle,\n );\n this.bodyContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.body,\n );\n this.containerHref = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.containerHref,\n );\n this.buttonHref = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.buttonHref,\n );\n this.imageSrc = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.imageSource,\n );\n this.footerContent = getDocumentValueFromSearchResultMapping(\n document,\n this.searchResultMappings?.footer,\n );\n }\n\n private handleLinkClick = () => {\n const searchcraft = this.searchcraftStore.getSearchcraftInstance();\n\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = this.searchcraftStore.searchTerm;\n const number_of_documents =\n this.searchcraftStore.searchClientResponseItems.length;\n\n searchcraft.measureClient?.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.handleLinkClick}\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","import type {\n AdClientResponseItem,\n ADMProductAd,\n ADMTextAd,\n} from '@searchcraft/core';\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-base-search-result-ad',\n shadow: false,\n})\nexport class SearchcraftBaseSearchResultAd {\n @Prop() adClientResponseItem?: AdClientResponseItem;\n\n connectedCallback() {\n if (this.adClientResponseItem?.admAd?.impression_url) {\n fetch(this.adClientResponseItem?.admAd?.impression_url);\n }\n }\n\n renderADMProductAd() {\n const ad = this.adClientResponseItem?.admAd as ADMProductAd;\n if (!ad) {\n return;\n }\n\n return (\n <a class='searchcraft-base-ad' href={ad.click_url}>\n {ad.image_url && (\n <div class='searchcraft-base-ad-image-wrapper'>\n <img\n alt={ad.term}\n src={ad.image_url}\n class='searchcraft-base-ad-image'\n />\n </div>\n )}\n <div class='searchcraft-base-ad-info-wrapper'>\n <p class='searchcraft-base-ad-title'>{ad.term}</p>\n <p class='searchcraft-base-ad-subtitle'>{ad.price}</p>\n </div>\n </a>\n );\n }\n\n renderADMTextAd() {\n const ad = this.adClientResponseItem?.admAd as ADMTextAd;\n if (!ad) {\n return;\n }\n\n return (\n <a class='searchcraft-base-ad' href={ad.click_url}>\n {ad.image_url && (\n <div class='searchcraft-base-ad-image-wrapper'>\n <img\n alt={ad.term}\n src={ad.image_url}\n class='searchcraft-base-ad-image'\n />\n </div>\n )}\n <div class='searchcraft-base-ad-info-wrapper'>\n <p class='searchcraft-base-ad-title'>{ad.term}</p>\n </div>\n </a>\n );\n }\n\n renderNativoAd() {}\n\n renderAdPlaceholder() {\n return <p>Ad placeholder</p>;\n // return;\n }\n\n render() {\n if (!this.adClientResponseItem) {\n return this.renderAdPlaceholder();\n }\n\n switch (this.adClientResponseItem.type) {\n case 'adm-product-ad':\n return this.renderADMProductAd();\n case 'adm-text-ad':\n return this.renderADMTextAd();\n case 'nativo-ad':\n return this.renderNativoAd();\n }\n }\n}\n"],"version":3}
@@ -1,97 +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
-
9
- const SearchcraftBaseSearchResults = class {
10
- constructor(hostRef) {
11
- index.registerInstance(this, hostRef);
12
- this.noResults = index.createEvent(this, "noResults", 7);
13
- }
14
- /**
15
- * A custom styles object.
16
- */
17
- customStylesForResults;
18
- /**
19
- * Formats the content rendered for each result.
20
- */
21
- searchResultMappings;
22
- /**
23
- * The placement of the image for each result.
24
- */
25
- resultImagePlacement = 'right';
26
- /**
27
- * The label for the button rendered when containerHref is not present for each result.
28
- */
29
- buttonLabel;
30
- /**
31
- * Where to open the link for the button rendered when containerHref is not present for each result.
32
- */
33
- buttonTarget = '_blank';
34
- /**
35
- * The relationship between the current document and the link for the button rendered when containerHref is not present for each result.
36
- */
37
- buttonRel;
38
- /**
39
- * Where to open the link for the containing element for each result.
40
- */
41
- containerTarget = '_blank';
42
- /**
43
- * The relationship between the current document and the link for the containing element for each result.
44
- */
45
- containerRel;
46
- /**
47
- * When no results are returned.
48
- */
49
- noResults;
50
- searchTerm = '';
51
- searchClientResponseItems = [];
52
- adClientResponseItems = [];
53
- searchResultsPerPage;
54
- searchResultsPage;
55
- unsubscribe = () => { };
56
- componentDidLoad() {
57
- this.unsubscribe = SearchcraftStore.useSearchcraftStore.subscribe((state) => this.handleStateChange(state));
58
- const currentState = SearchcraftStore.useSearchcraftStore.getState();
59
- this.searchClientResponseItems = currentState.searchClientResponseItems;
60
- this.searchTerm = currentState.searchTerm;
61
- }
62
- disconnectedCallback() {
63
- this.unsubscribe?.();
64
- }
65
- handleStateChange(state) {
66
- this.searchClientResponseItems = [...state.searchClientResponseItems];
67
- this.adClientResponseItems = [...state.adClientResponseItems];
68
- this.searchTerm = state.searchTerm;
69
- this.searchResultsPage = state.searchResultsPage;
70
- this.searchResultsPerPage = state.searchResultsPerPage;
71
- }
72
- render() {
73
- if (this.searchTerm.trim() === '') {
74
- return (index.h("div", { class: 'searchcraft-search-results-empty-state-container' }, index.h("slot", { name: 'empty-search' })));
75
- }
76
- if (this.searchClientResponseItems.length === 0) {
77
- return;
78
- }
79
- if (this.searchTerm.length > 0 &&
80
- this.searchClientResponseItems.length === 0) {
81
- this.noResults?.emit();
82
- }
83
- let serializedStyles = '';
84
- if (this.customStylesForResults) {
85
- serializedStyles =
86
- typeof this.customStylesForResults === 'string'
87
- ? this.customStylesForResults
88
- : styles.serializeStyles(this.customStylesForResults);
89
- }
90
- return (index.h("div", { class: 'searchcraft-search-results-container' }, this.adClientResponseItems?.map((item) => (index.h("searchcraft-base-search-result-ad", { adClientResponseItem: item, key: item.adId }))), this.searchClientResponseItems?.map((item, index$1) => (index.h("searchcraft-base-search-result", { key: item.id, "custom-styles": serializedStyles, "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": this.searchResultsPerPage * this.searchResultsPage + index$1, searchResultMappings: this.searchResultMappings, item: item }))), this.searchTerm.length > 0 &&
91
- this.searchClientResponseItems.length === 0 && (index.h("div", { class: 'searchcraft-search-results-error-message-container' }, index.h("searchcraft-error-message", { "error-message": `No search results found for "${this.searchTerm}" query` })))));
92
- }
93
- };
94
-
95
- exports.searchcraft_base_search_results = SearchcraftBaseSearchResults;
96
-
97
- //# sourceMappingURL=searchcraft-base-search-results.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-base-search-results.entry.cjs.js","mappings":"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","names":["useSearchcraftStore","h","serializeStyles","index"],"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 {\n AdClientResponseItem,\n SearchClientResponseItem,\n} from '@searchcraft/core';\n\nimport { type SearchcraftState, useSearchcraftStore } from '@provider/store';\n\nimport { serializeStyles } from '@utils';\nimport type { SearchResultMappings } from '@searchcraft/core';\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 * 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 * 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() searchTerm = '';\n @State() searchClientResponseItems: SearchClientResponseItem[] = [];\n @State() adClientResponseItems: AdClientResponseItem[] = [];\n @State() searchResultsPerPage;\n @State() searchResultsPage;\n\n private unsubscribe: () => void = () => {};\n\n componentDidLoad() {\n this.unsubscribe = useSearchcraftStore.subscribe((state) =>\n this.handleStateChange(state),\n );\n const currentState = useSearchcraftStore.getState();\n this.searchClientResponseItems = currentState.searchClientResponseItems;\n this.searchTerm = currentState.searchTerm;\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n handleStateChange(state: SearchcraftState) {\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n }\n\n render() {\n if (this.searchTerm.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.searchClientResponseItems.length === 0) {\n return;\n }\n\n if (\n this.searchTerm.length > 0 &&\n this.searchClientResponseItems.length === 0\n ) {\n this.noResults?.emit();\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 <div class='searchcraft-search-results-container'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-base-search-result-ad\n adClientResponseItem={item}\n key={item.adId}\n />\n ))}\n {this.searchClientResponseItems?.map((item, index) => (\n <searchcraft-base-search-result\n key={item.id}\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={\n this.searchResultsPerPage * this.searchResultsPage + index\n }\n searchResultMappings={this.searchResultMappings}\n item={item}\n />\n ))}\n {this.searchTerm.length > 0 &&\n this.searchClientResponseItems.length === 0 && (\n <div class='searchcraft-search-results-error-message-container'>\n <searchcraft-error-message\n error-message={`No search results found for \"${this.searchTerm}\" query`}\n />\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,88 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-a81df4f0.js');
6
- const index$1 = require('./index-5b0b9d4c.js');
7
-
8
- const SearchcraftButton = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- this.buttonClick = index.createEvent(this, "buttonClick", 7);
12
- }
13
- /**
14
- * Controls the visual representation of the button.
15
- */
16
- hierarchy = 'primary';
17
- /**
18
- * Whether the button is disabled.
19
- */
20
- disabled = false;
21
- /**
22
- * The icon element.
23
- */
24
- icon;
25
- /**
26
- * Should the button only display an icon.
27
- */
28
- iconOnly = false;
29
- /**
30
- * The position of the icon.
31
- */
32
- iconPosition = 'left';
33
- /**
34
- * The label for the button.
35
- */
36
- label = 'Search';
37
- /**
38
- * The type of the button.
39
- */
40
- type = 'button';
41
- /**
42
- * The event fired when the button is clicked.
43
- */
44
- buttonClick;
45
- handleButtonClick = () => {
46
- this.buttonClick.emit();
47
- };
48
- render() {
49
- return (index.h("button", { key: 'ff883b930d03da6cbfb40badd3be1de0a873f853', "aria-label": this.label, class: index$1.classNames('searchcraft-button', {
50
- 'searchcraft-button-primary': this.hierarchy === 'primary',
51
- 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',
52
- 'searchcraft-button-disabled': this.disabled,
53
- }), disabled: this.disabled, onClick: this.handleButtonClick, type: this.type }, this.iconOnly ? (this.icon) : (index.h(index.Fragment, null, this.iconPosition === 'left' && this.icon, index.h("span", null, this.label), this.iconPosition === 'right' && this.icon))));
54
- }
55
- };
56
-
57
- const SearchcraftErrorMessage = class {
58
- constructor(hostRef) {
59
- index.registerInstance(this, hostRef);
60
- }
61
- /**
62
- * The error message.
63
- */
64
- errorMessage;
65
- render() {
66
- return (index.h("p", { key: 'dc97bb66da10a98fca027f928deaaf80d945417b', class: 'searchcraft-error-message' }, this.errorMessage || 'Search term is required.'));
67
- }
68
- };
69
-
70
- const SearchcraftInputLabel = class {
71
- constructor(hostRef) {
72
- index.registerInstance(this, hostRef);
73
- }
74
- /**
75
- * The classname applied to the label element.
76
- */
77
- inputLabelClassName = '';
78
- label = '';
79
- render() {
80
- return (index.h("label", { key: '528396d4be9f22ff0c02d95d8bcea056576aed41', class: index$1.classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));
81
- }
82
- };
83
-
84
- exports.searchcraft_button = SearchcraftButton;
85
- exports.searchcraft_error_message = SearchcraftErrorMessage;
86
- exports.searchcraft_input_label = SearchcraftInputLabel;
87
-
88
- //# sourceMappingURL=searchcraft-button_3.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"searchcraft-button.searchcraft-error-message.searchcraft-input-label.entry.cjs.js","mappings":";;;;;;;MAmBa,iBAAiB;;;;;;;;IAIpB,SAAS,GAA4B,SAAS,CAAC;;;;IAI/C,QAAQ,GAAa,KAAK,CAAC;;;;IAI3B,IAAI,CAAW;;;;IAIf,QAAQ,GAAa,KAAK,CAAC;;;;IAI3B,YAAY,GAAsB,MAAM,CAAC;;;;IAIzC,KAAK,GAAG,QAAQ,CAAC;;;;IAIjB,IAAI,GAAmC,QAAQ,CAAC;;;;IAI/C,WAAW,CAAsB;IAElC,iBAAiB,GAAG;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB,CAAC;IAEF,MAAM;QACJ,QACEA,mFACc,IAAI,CAAC,KAAK,EACtB,KAAK,EAAEC,kBAAU,CAAC,oBAAoB,EAAE;gBACtC,4BAA4B,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS;gBAC1D,6BAA6B,EAAE,IAAI,CAAC,SAAS,KAAK,UAAU;gBAC5D,6BAA6B,EAAE,IAAI,CAAC,QAAQ;aAC7C,CAAC,EACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,IAEd,IAAI,CAAC,QAAQ,IACZ,IAAI,CAAC,IAAI,KAETD,QAACE,cAAQ,QACN,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAC1CF,sBAAO,IAAI,CAAC,KAAK,CAAQ,EACxB,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,CAClC,CACZ,CACM,EACT;KACH;;;MClEU,uBAAuB;;;;;;;IAI1B,YAAY,CAAU;IAE9B,MAAM;QACJ,QACEA,gEAAG,KAAK,EAAC,2BAA2B,IACjC,IAAI,CAAC,YAAY,IAAI,0BAA0B,CAC9C,EACJ;KACH;;;MCXU,qBAAqB;;;;;;;IAIxB,mBAAmB,GAAI,EAAE,CAAC;IAC1B,KAAK,GAAG,EAAE,CAAC;IAEnB,MAAM;QACJ,QACEA,oEACE,KAAK,EAAEC,kBAAU,CAAC,yBAAyB,EAAE,IAAI,CAAC,mBAAmB,CAAC,EACtE,OAAO,EAAC,sBAAsB,IAE7B,IAAI,CAAC,KAAK,CACL,EACR;KACH;;;;;;;","names":["h","classNames","Fragment"],"sources":["src/components/searchcraft-button/searchcraft-button.tsx","src/components/searchcraft-error-message/searchcraft-error-message.tsx","src/components/searchcraft-input-label/searchcraft-input-label.tsx"],"sourcesContent":["import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n Fragment,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * This web component represents a button to be consumed within the `search-input-form` component.\n * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.\n * It is consumed within the `searchcraft-input-form` component.\n */\n@Component({\n tag: 'searchcraft-button',\n shadow: false,\n})\nexport class SearchcraftButton {\n /**\n * Controls the visual representation of the button.\n */\n @Prop() hierarchy?: 'primary' | 'tertiary' = 'primary';\n /**\n * Whether the button is disabled.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The icon element.\n */\n @Prop() icon?: Element;\n /**\n * Should the button only display an icon.\n */\n @Prop() iconOnly?: boolean = false;\n /**\n * The position of the icon.\n */\n @Prop() iconPosition?: 'left' | 'right' = 'left';\n /**\n * The label for the button.\n */\n @Prop() label = 'Search';\n /**\n * The type of the button.\n */\n @Prop() type?: 'submit' | 'reset' | 'button' = 'button';\n /**\n * The event fired when the button is clicked.\n */\n @Event() buttonClick!: EventEmitter<void>;\n\n private handleButtonClick = () => {\n this.buttonClick.emit();\n };\n\n render() {\n return (\n <button\n aria-label={this.label}\n class={classNames('searchcraft-button', {\n 'searchcraft-button-primary': this.hierarchy === 'primary',\n 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',\n 'searchcraft-button-disabled': this.disabled,\n })}\n disabled={this.disabled}\n onClick={this.handleButtonClick}\n type={this.type}\n >\n {this.iconOnly ? (\n this.icon\n ) : (\n <Fragment>\n {this.iconPosition === 'left' && this.icon}\n <span>{this.label}</span>\n {this.iconPosition === 'right' && this.icon}\n </Fragment>\n )}\n </button>\n );\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n/**\n * This web component is designed to display a user-friendly error message when a search query fails, providing clear feedback to users and enhancing their experience when an issue arises during the search process.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-error-message error-message=\"No search results found for query\" />\n * ```\n */\n@Component({\n tag: 'searchcraft-error-message',\n shadow: false,\n})\nexport class SearchcraftErrorMessage {\n /**\n * The error message.\n */\n @Prop() errorMessage?: string;\n\n render() {\n return (\n <p class='searchcraft-error-message'>\n {this.errorMessage || 'Search term is required.'}\n </p>\n );\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * This web component serves as the input label for the searchcraft-input-form component.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-input-label label=\"Search\" />\n * ```\n */\n@Component({\n tag: 'searchcraft-input-label',\n shadow: false,\n})\nexport class SearchcraftInputLabel {\n /**\n * The classname applied to the label element.\n */\n @Prop() inputLabelClassName? = '';\n @Prop() label = '';\n\n render() {\n return (\n <label\n class={classNames('searchcraft-input-label', this.inputLabelClassName)}\n htmlFor='searchcraft-input-id'\n >\n {this.label}\n </label>\n );\n }\n}\n"],"version":3}