@searchcraft/javascript-sdk 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{store-f6ba3dfb.js → SearchcraftStore-75fac5e0.js} +576 -443
- package/dist/cjs/SearchcraftStore-75fac5e0.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -3
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js +152 -0
- package/dist/cjs/searchcraft-base-search-result_2.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +30 -80
- package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-button_3.cjs.entry.js +22 -7
- package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +19 -18
- package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +6 -6
- package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +20 -33
- package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-javascript-sdk.cjs.js +1 -1
- package/dist/cjs/searchcraft-pagination.cjs.entry.js +106 -0
- package/dist/cjs/searchcraft-pagination.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-popover-button.cjs.entry.js +3 -3
- package/dist/cjs/searchcraft-popover-button.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-popover-form.cjs.entry.js +27 -25
- package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js +101 -0
- package/dist/cjs/searchcraft-popover-list-item_2.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-results-info.cjs.entry.js +51 -13
- package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js +75 -0
- package/dist/cjs/searchcraft-search-results-per-page.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-select.cjs.entry.js +70 -0
- package/dist/cjs/searchcraft-select.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-theme.cjs.entry.js +29 -11
- package/dist/cjs/searchcraft-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/units-fe4d8083.js.map +1 -1
- package/dist/collection/collection-manifest.json +5 -0
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +86 -208
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
- package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js +73 -0
- package/dist/collection/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.js.map +1 -0
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +37 -144
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
- package/dist/collection/components/searchcraft-button/searchcraft-button.js +87 -17
- package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
- package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +1 -1
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +8 -8
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -1
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +7 -7
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -1
- package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +10 -14
- package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +1 -1
- package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +1 -1
- package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js +141 -0
- package/dist/collection/components/searchcraft-pagination/searchcraft-pagination.js.map +1 -0
- package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js +1 -1
- package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +26 -21
- package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +1 -1
- package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +59 -92
- package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +1 -1
- package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js +73 -0
- package/dist/collection/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.js.map +1 -0
- package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +77 -24
- package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js.map +1 -1
- package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +105 -17
- package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
- package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js +129 -0
- package/dist/collection/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.js.map +1 -0
- package/dist/collection/components/searchcraft-select/searchcraft-select.js +261 -0
- package/dist/collection/components/searchcraft-select/searchcraft-select.js.map +1 -0
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +2 -2
- package/dist/collection/components/searchcraft-theme/searchcraft-theme.js +81 -11
- package/dist/collection/components/searchcraft-theme/searchcraft-theme.js.map +1 -1
- package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +7 -6
- package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
- package/dist/collection/index.js +1 -2
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/provider/SearchcraftStore.js +160 -0
- package/dist/collection/provider/SearchcraftStore.js.map +1 -0
- package/dist/collection/provider/SearchcraftStore.types.js +2 -0
- package/dist/collection/provider/SearchcraftStore.types.js.map +1 -0
- package/dist/collection/provider/store.js +2 -136
- package/dist/collection/provider/store.js.map +1 -1
- package/dist/collection/utils/units.js.map +1 -1
- package/dist/components/index.js +11 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-a75ef832.js → p-0e393fe1.js} +2 -2
- package/dist/components/{p-a75ef832.js.map → p-0e393fe1.js.map} +1 -1
- package/dist/components/p-25ee7496.js +58 -0
- package/dist/components/p-25ee7496.js.map +1 -0
- package/dist/components/{p-936e2ed4.js → p-38419178.js} +576 -442
- package/dist/components/p-38419178.js.map +1 -0
- package/dist/components/{p-d95bc2a0.js → p-3df3ff8b.js} +17 -21
- package/dist/components/p-3df3ff8b.js.map +1 -0
- package/dist/components/{p-1234974c.js → p-433f974c.js} +9 -8
- package/dist/components/p-433f974c.js.map +1 -0
- package/dist/components/{p-4b92ae26.js → p-4e9cd62e.js} +4 -4
- package/dist/components/{p-4b92ae26.js.map → p-4e9cd62e.js.map} +1 -1
- package/dist/components/{p-755f491b.js → p-6104fe5d.js} +2 -2
- package/dist/components/p-6104fe5d.js.map +1 -0
- package/dist/components/{p-b4a8fcbe.js → p-97332d3e.js} +51 -59
- package/dist/components/p-97332d3e.js.map +1 -0
- package/dist/components/p-bf6a086a.js +92 -0
- package/dist/components/p-bf6a086a.js.map +1 -0
- package/dist/components/p-bff4d3fc.js +65 -0
- package/dist/components/p-bff4d3fc.js.map +1 -0
- package/dist/components/{p-521fe971.js → p-d19bf6ff.js} +25 -8
- package/dist/components/p-d19bf6ff.js.map +1 -0
- package/dist/components/p-de4a48b1.js +65 -0
- package/dist/components/p-de4a48b1.js.map +1 -0
- package/dist/components/{p-ca881e5c.js → p-e55a7970.js} +2 -2
- package/dist/components/{p-ca881e5c.js.map → p-e55a7970.js.map} +1 -1
- package/dist/components/p-ec0d230e.js +75 -0
- package/dist/components/p-ec0d230e.js.map +1 -0
- package/dist/components/{p-54998882.js → p-fc7cda96.js} +10 -10
- package/dist/components/p-fc7cda96.js.map +1 -0
- package/dist/components/searchcraft-base-search-result-ad.d.ts +11 -0
- package/dist/components/searchcraft-base-search-result-ad.js +8 -0
- package/dist/components/searchcraft-base-search-result-ad.js.map +1 -0
- package/dist/components/searchcraft-base-search-result.js +1 -1
- package/dist/components/searchcraft-base-search-results.js +44 -89
- package/dist/components/searchcraft-base-search-results.js.map +1 -1
- package/dist/components/searchcraft-button.js +1 -1
- package/dist/components/searchcraft-error-message.js +1 -1
- package/dist/components/searchcraft-facet-list.js +1 -1
- package/dist/components/searchcraft-filter-panel.js +9 -9
- package/dist/components/searchcraft-filter-panel.js.map +1 -1
- package/dist/components/searchcraft-input-form.js +1 -1
- package/dist/components/searchcraft-input-label.js +1 -1
- package/dist/components/searchcraft-pagination.d.ts +11 -0
- package/dist/components/searchcraft-pagination.js +135 -0
- package/dist/components/searchcraft-pagination.js.map +1 -0
- package/dist/components/searchcraft-popover-button.js +2 -2
- package/dist/components/searchcraft-popover-form.js +41 -30
- package/dist/components/searchcraft-popover-form.js.map +1 -1
- package/dist/components/searchcraft-popover-list-item-ad.d.ts +11 -0
- package/dist/components/searchcraft-popover-list-item-ad.js +8 -0
- package/dist/components/searchcraft-popover-list-item-ad.js.map +1 -0
- package/dist/components/searchcraft-popover-list-item.js +1 -1
- package/dist/components/searchcraft-popover-list-view.js +1 -1
- package/dist/components/searchcraft-results-info.js +60 -17
- package/dist/components/searchcraft-results-info.js.map +1 -1
- package/dist/components/searchcraft-search-results-per-page.d.ts +11 -0
- package/dist/components/searchcraft-search-results-per-page.js +105 -0
- package/dist/components/searchcraft-search-results-per-page.js.map +1 -0
- package/dist/components/searchcraft-select.d.ts +11 -0
- package/dist/components/searchcraft-select.js +8 -0
- package/dist/components/searchcraft-select.js.map +1 -0
- package/dist/components/searchcraft-slider.js +1 -1
- package/dist/components/searchcraft-theme.js +34 -13
- package/dist/components/searchcraft-theme.js.map +1 -1
- package/dist/components/searchcraft-toggle-button.js +1 -1
- package/dist/esm/{store-aa071d9c.js → SearchcraftStore-3cfd565a.js} +576 -442
- package/dist/esm/SearchcraftStore-3cfd565a.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/searchcraft-base-search-result_2.entry.js +147 -0
- package/dist/esm/searchcraft-base-search-result_2.entry.js.map +1 -0
- package/dist/esm/searchcraft-base-search-results.entry.js +30 -80
- package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -1
- package/dist/esm/searchcraft-button_3.entry.js +22 -7
- package/dist/esm/searchcraft-button_3.entry.js.map +1 -1
- package/dist/esm/searchcraft-facet-list_3.entry.js +17 -16
- package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -1
- package/dist/esm/searchcraft-filter-panel.entry.js +5 -5
- package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -1
- package/dist/esm/searchcraft-input-form_2.entry.js +19 -32
- package/dist/esm/searchcraft-input-form_2.entry.js.map +1 -1
- package/dist/esm/searchcraft-javascript-sdk.js +1 -1
- package/dist/esm/searchcraft-pagination.entry.js +102 -0
- package/dist/esm/searchcraft-pagination.entry.js.map +1 -0
- package/dist/esm/searchcraft-popover-button.entry.js +2 -2
- package/dist/esm/searchcraft-popover-form.entry.js +20 -18
- package/dist/esm/searchcraft-popover-form.entry.js.map +1 -1
- package/dist/esm/searchcraft-popover-list-item_2.entry.js +96 -0
- package/dist/esm/searchcraft-popover-list-item_2.entry.js.map +1 -0
- package/dist/esm/searchcraft-results-info.entry.js +51 -13
- package/dist/esm/searchcraft-results-info.entry.js.map +1 -1
- package/dist/esm/searchcraft-search-results-per-page.entry.js +71 -0
- package/dist/esm/searchcraft-search-results-per-page.entry.js.map +1 -0
- package/dist/esm/searchcraft-select.entry.js +66 -0
- package/dist/esm/searchcraft-select.entry.js.map +1 -0
- package/dist/esm/searchcraft-theme.entry.js +29 -11
- package/dist/esm/searchcraft-theme.entry.js.map +1 -1
- package/dist/esm/{units-b6eba560.js → units-daaf96f5.js} +2 -2
- package/dist/esm/units-daaf96f5.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
- package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-279f3e15.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-2bc82b48.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-2dc07b47.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-38419178.js +11 -0
- package/dist/searchcraft-javascript-sdk/p-38419178.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-5e064c07.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/{p-755f491b.js → p-6104fe5d.js} +2 -2
- package/dist/searchcraft-javascript-sdk/p-6104fe5d.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-69da4e58.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-6bffd3f5.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-7f4dd50c.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-9340f4e4.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-a3074a6d.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-a3074a6d.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-a84b1548.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-b8ea0454.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-c4a9d8ab.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-d2fffca9.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-e11de2d6.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
- package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
- package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +20 -41
- package/dist/types/components/searchcraft-base-search-result-ad/searchcraft-base-search-result-ad.d.ts +14 -0
- package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +9 -18
- package/dist/types/components/searchcraft-button/searchcraft-button.d.ts +17 -6
- package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +1 -1
- package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +2 -2
- package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +1 -1
- package/dist/types/components/searchcraft-pagination/searchcraft-pagination.d.ts +33 -0
- package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +9 -7
- package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +9 -12
- package/dist/types/components/searchcraft-popover-list-item-ad/searchcraft-popover-list-item-ad.d.ts +14 -0
- package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +7 -4
- package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +26 -4
- package/dist/types/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.d.ts +33 -0
- package/dist/types/components/searchcraft-select/searchcraft-select.d.ts +64 -0
- package/dist/types/components/searchcraft-theme/searchcraft-theme.d.ts +20 -1
- package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +1 -1
- package/dist/types/components.d.ts +476 -166
- package/dist/types/index.d.ts +1 -2
- package/dist/types/provider/SearchcraftStore.d.ts +4 -0
- package/dist/types/provider/SearchcraftStore.types.d.ts +44 -0
- package/dist/types/provider/store.d.ts +2 -34
- package/dist/types/utils/units.d.ts +1 -1
- package/package.json +3 -3
- package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +0 -117
- package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +0 -1
- package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js +0 -49
- package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js.map +0 -1
- package/dist/cjs/store-f6ba3dfb.js.map +0 -1
- package/dist/collection/types/_shared.types.js +0 -2
- package/dist/collection/types/_shared.types.js.map +0 -1
- package/dist/collection/types/index.js +0 -5
- package/dist/collection/types/index.js.map +0 -1
- package/dist/collection/types/searchcraft-base-search-results.types.js +0 -2
- package/dist/collection/types/searchcraft-base-search-results.types.js.map +0 -1
- package/dist/collection/types/searchcraft-filter-panel.types.js +0 -2
- package/dist/collection/types/searchcraft-filter-panel.types.js.map +0 -1
- package/dist/collection/types/searchcraft-popover-form.types.js +0 -2
- package/dist/collection/types/searchcraft-popover-form.types.js.map +0 -1
- package/dist/components/p-0ef4ab33.js +0 -66
- package/dist/components/p-0ef4ab33.js.map +0 -1
- package/dist/components/p-1234974c.js.map +0 -1
- package/dist/components/p-506cdac1.js +0 -58
- package/dist/components/p-506cdac1.js.map +0 -1
- package/dist/components/p-521fe971.js.map +0 -1
- package/dist/components/p-54998882.js.map +0 -1
- package/dist/components/p-755f491b.js.map +0 -1
- package/dist/components/p-936e2ed4.js.map +0 -1
- package/dist/components/p-b4a8fcbe.js.map +0 -1
- package/dist/components/p-d95bc2a0.js.map +0 -1
- package/dist/esm/searchcraft-base-search-result.entry.js +0 -113
- package/dist/esm/searchcraft-base-search-result.entry.js.map +0 -1
- package/dist/esm/searchcraft-popover-list-item.entry.js +0 -45
- package/dist/esm/searchcraft-popover-list-item.entry.js.map +0 -1
- package/dist/esm/store-aa071d9c.js.map +0 -1
- package/dist/esm/units-b6eba560.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-26f5263d.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-26f5263d.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-2ff7eb35.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-2ff7eb35.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-36f0532e.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-36f0532e.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-41b6bc5d.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-41b6bc5d.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-57eddb07.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-57eddb07.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-5d6fbee0.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-5d6fbee0.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-64c5a1d2.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-64c5a1d2.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-755f491b.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-8b0a60b3.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-8b0a60b3.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-936e2ed4.js +0 -11
- package/dist/searchcraft-javascript-sdk/p-936e2ed4.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-c7df8be6.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-c7df8be6.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-eb6058e8.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-eb6058e8.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-faaa4394.entry.js +0 -2
- package/dist/types/types/_shared.types.d.ts +0 -46
- package/dist/types/types/index.d.ts +0 -5
- package/dist/types/types/searchcraft-base-search-results.types.d.ts +0 -11
- package/dist/types/types/searchcraft-filter-panel.types.d.ts +0 -43
- package/dist/types/types/searchcraft-popover-form.types.d.ts +0 -9
- /package/dist/searchcraft-javascript-sdk/{p-faaa4394.entry.js.map → p-7f4dd50c.entry.js.map} +0 -0
- /package/dist/types/{types → themes}/raw.d.ts +0 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { create } from "zustand";
|
|
2
|
+
import { Logger, LogLevel, } from "@searchcraft/core";
|
|
3
|
+
const initialSearchcraftStateValues = {
|
|
4
|
+
adClientResponseItems: [],
|
|
5
|
+
core: undefined,
|
|
6
|
+
logger: undefined,
|
|
7
|
+
facetPathsForIndexFields: {},
|
|
8
|
+
isPopoverVisible: false,
|
|
9
|
+
searchTerm: '',
|
|
10
|
+
rangeValueForIndexFields: {},
|
|
11
|
+
searchMode: 'fuzzy',
|
|
12
|
+
searchClientResponseItems: [],
|
|
13
|
+
searchResponseTimeTaken: undefined,
|
|
14
|
+
searchResponseFacetPrime: undefined,
|
|
15
|
+
searchResultsCount: 0,
|
|
16
|
+
searchResultsPerPage: 20,
|
|
17
|
+
searchResultsPage: 1,
|
|
18
|
+
sortType: 'asc',
|
|
19
|
+
};
|
|
20
|
+
const useSearchcraftStore = create((set, get) => {
|
|
21
|
+
const functions = {
|
|
22
|
+
addFacetPathsForIndexField: (data) => set((state) => ({
|
|
23
|
+
facetPathsForIndexFields: {
|
|
24
|
+
...state.facetPathsForIndexFields,
|
|
25
|
+
[data.fieldName]: data,
|
|
26
|
+
},
|
|
27
|
+
})),
|
|
28
|
+
addRangeValueForIndexField: (data) => set((state) => ({
|
|
29
|
+
rangeValueForIndexFields: {
|
|
30
|
+
...state.rangeValueForIndexFields,
|
|
31
|
+
[data.fieldName]: data,
|
|
32
|
+
},
|
|
33
|
+
})),
|
|
34
|
+
getSearchcraftInstance: () => {
|
|
35
|
+
const { core } = get();
|
|
36
|
+
return core;
|
|
37
|
+
},
|
|
38
|
+
initialize: (searchcraftInstance, debug = false) => {
|
|
39
|
+
const core = searchcraftInstance;
|
|
40
|
+
const logger = debug
|
|
41
|
+
? new Logger({ logLevel: LogLevel.DEBUG })
|
|
42
|
+
: undefined;
|
|
43
|
+
set({
|
|
44
|
+
core,
|
|
45
|
+
logger,
|
|
46
|
+
searchResultsPerPage: core.config.searchResultsPerPage || 20,
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
removeFacetPathsForIndexField: (fieldName) => set((state) => {
|
|
50
|
+
const currentPaths = state.facetPathsForIndexFields;
|
|
51
|
+
delete currentPaths[fieldName];
|
|
52
|
+
return {
|
|
53
|
+
facetPathsForIndexFields: {
|
|
54
|
+
...currentPaths,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}),
|
|
58
|
+
removeRangeValueForIndexField: (fieldName) => set((state) => {
|
|
59
|
+
const currentValues = state.rangeValueForIndexFields;
|
|
60
|
+
delete currentValues[fieldName];
|
|
61
|
+
return {
|
|
62
|
+
rangeValueForIndexFields: {
|
|
63
|
+
...currentValues,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}),
|
|
67
|
+
resetFacetPaths: () => {
|
|
68
|
+
set({
|
|
69
|
+
facetPathsForIndexFields: {},
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
search: async () => {
|
|
73
|
+
const state = get();
|
|
74
|
+
state.logger?.log(LogLevel.INFO, `Starting search with search term: "${state.searchTerm}"`);
|
|
75
|
+
if (!state.core) {
|
|
76
|
+
throw new Error('Searchcraft instance is not initialized.');
|
|
77
|
+
}
|
|
78
|
+
if (!state.searchTerm.trim()) {
|
|
79
|
+
state.logger?.log(LogLevel.INFO, 'No search request was made: search term was empty.');
|
|
80
|
+
set({
|
|
81
|
+
searchClientResponseItems: [],
|
|
82
|
+
searchResultsCount: 0,
|
|
83
|
+
searchResultsPage: 1,
|
|
84
|
+
searchTerm: '',
|
|
85
|
+
});
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const handleSearchcraftResponse = (response, items) => {
|
|
89
|
+
const facetsFromResponse = response.data.facets;
|
|
90
|
+
set((state) => {
|
|
91
|
+
return {
|
|
92
|
+
searchClientResponseItems: items,
|
|
93
|
+
searchResponseTimeTaken: response.data.time_taken || 0,
|
|
94
|
+
searchResultsPage:
|
|
95
|
+
// reset to first page when response count changes
|
|
96
|
+
response.data.count === state.searchResultsCount
|
|
97
|
+
? state.searchResultsPage
|
|
98
|
+
: 1,
|
|
99
|
+
searchResultsCount: response.data.count || 0,
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
if (facetsFromResponse) {
|
|
103
|
+
set({ searchResponseFacetPrime: facetsFromResponse });
|
|
104
|
+
}
|
|
105
|
+
state.logger?.log(LogLevel.DEBUG, `Search results: ${JSON.stringify(items)}`);
|
|
106
|
+
state.logger?.log(LogLevel.DEBUG, `Facets from response: ${JSON.stringify(facetsFromResponse)}`);
|
|
107
|
+
};
|
|
108
|
+
const handleAdResponse = (adClientResponseItems) => {
|
|
109
|
+
set({ adClientResponseItems });
|
|
110
|
+
};
|
|
111
|
+
state.core.getItems({
|
|
112
|
+
searchTerm: state.searchTerm,
|
|
113
|
+
mode: state.searchMode,
|
|
114
|
+
sort: state.sortType,
|
|
115
|
+
facetPathsForIndexFields: state.facetPathsForIndexFields,
|
|
116
|
+
rangeValueForIndexFields: state.rangeValueForIndexFields,
|
|
117
|
+
offset: state.searchResultsPerPage
|
|
118
|
+
? state.searchResultsPerPage * (state.searchResultsPage - 1)
|
|
119
|
+
: 0,
|
|
120
|
+
limit: state.searchResultsPerPage,
|
|
121
|
+
}, handleSearchcraftResponse, handleAdResponse);
|
|
122
|
+
},
|
|
123
|
+
setPopoverVisibility: (isVisible) => {
|
|
124
|
+
set({
|
|
125
|
+
isPopoverVisible: isVisible,
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
setSearchMode: (mode) => set({ searchMode: mode }),
|
|
129
|
+
setSortType: (type) => set({ sortType: type }),
|
|
130
|
+
setSearchTerm: (searchTerm) => {
|
|
131
|
+
/**
|
|
132
|
+
* When a new searchTerm is set, also reset the sort type, search mode, and facet paths.
|
|
133
|
+
*/
|
|
134
|
+
set({
|
|
135
|
+
searchTerm,
|
|
136
|
+
facetPathsForIndexFields: {},
|
|
137
|
+
...(searchTerm.trim().length === 0 && {
|
|
138
|
+
searchMode: 'fuzzy',
|
|
139
|
+
sortType: 'asc',
|
|
140
|
+
}),
|
|
141
|
+
});
|
|
142
|
+
},
|
|
143
|
+
setSearchClientResponseItems: (items) => set({ searchClientResponseItems: items }),
|
|
144
|
+
setSearchResultsPage: async (page) => {
|
|
145
|
+
set({ searchResultsPage: page });
|
|
146
|
+
await functions.search();
|
|
147
|
+
},
|
|
148
|
+
setSearchResultsPerPage: async (perPage) => {
|
|
149
|
+
set({ searchResultsPerPage: perPage });
|
|
150
|
+
await functions.search();
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
const stateObject = {
|
|
154
|
+
...initialSearchcraftStateValues,
|
|
155
|
+
...functions,
|
|
156
|
+
};
|
|
157
|
+
return stateObject;
|
|
158
|
+
});
|
|
159
|
+
export { useSearchcraftStore };
|
|
160
|
+
//# sourceMappingURL=SearchcraftStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchcraftStore.js","sourceRoot":"","sources":["../../../src/provider/SearchcraftStore.ts"],"names":[],"mappings":"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","sourcesContent":["import { create } from 'zustand';\n\nimport {\n Logger,\n LogLevel,\n type FacetPathsForIndexField,\n type RangeValueForIndexField,\n type SearchcraftResponse,\n type SearchClientResponseItem,\n type AdClientResponseItem,\n} from '@searchcraft/core';\nimport type {\n SearchcraftState,\n SearchcraftStateFunctions,\n SearchcraftStateValues,\n} from './SearchcraftStore.types';\n\nconst initialSearchcraftStateValues: SearchcraftStateValues = {\n adClientResponseItems: [],\n core: undefined,\n logger: undefined,\n facetPathsForIndexFields: {},\n isPopoverVisible: false,\n searchTerm: '',\n rangeValueForIndexFields: {},\n searchMode: 'fuzzy',\n searchClientResponseItems: [],\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: 'asc',\n};\n\nconst useSearchcraftStore = create<SearchcraftState>((set, get) => {\n const functions: SearchcraftStateFunctions = {\n addFacetPathsForIndexField: (data: FacetPathsForIndexField) =>\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [data.fieldName]: data,\n },\n })),\n addRangeValueForIndexField: (data: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [data.fieldName]: data,\n },\n })),\n getSearchcraftInstance: () => {\n const { core } = get();\n return core;\n },\n initialize: (searchcraftInstance, debug = false) => {\n const core = searchcraftInstance;\n const logger = debug\n ? new Logger({ logLevel: LogLevel.DEBUG })\n : undefined;\n\n set({\n core,\n logger,\n searchResultsPerPage: core.config.searchResultsPerPage || 20,\n });\n },\n removeFacetPathsForIndexField: (fieldName: string) =>\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n };\n }),\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetFacetPaths: () => {\n set({\n facetPathsForIndexFields: {},\n });\n },\n search: async () => {\n const state = get();\n state.logger?.log(\n LogLevel.INFO,\n `Starting search with search term: \"${state.searchTerm}\"`,\n );\n\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (!state.searchTerm.trim()) {\n state.logger?.log(\n LogLevel.INFO,\n 'No search request was made: search term was empty.',\n );\n set({\n searchClientResponseItems: [],\n searchResultsCount: 0,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n\n const handleSearchcraftResponse = (\n response: SearchcraftResponse,\n items: SearchClientResponseItem[],\n ) => {\n const facetsFromResponse = response.data.facets;\n\n set((state) => {\n return {\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken || 0,\n searchResultsPage:\n // reset to first page when response count changes\n response.data.count === state.searchResultsCount\n ? state.searchResultsPage\n : 1,\n searchResultsCount: response.data.count || 0,\n };\n });\n\n if (facetsFromResponse) {\n set({ searchResponseFacetPrime: facetsFromResponse });\n }\n\n state.logger?.log(\n LogLevel.DEBUG,\n `Search results: ${JSON.stringify(items)}`,\n );\n state.logger?.log(\n LogLevel.DEBUG,\n `Facets from response: ${JSON.stringify(facetsFromResponse)}`,\n );\n };\n\n const handleAdResponse = (\n adClientResponseItems: AdClientResponseItem[],\n ) => {\n set({ adClientResponseItems });\n };\n\n state.core.getItems(\n {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n },\n handleSearchcraftResponse,\n handleAdResponse,\n );\n },\n setPopoverVisibility: (isVisible: boolean) => {\n set({\n isPopoverVisible: isVisible,\n });\n },\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortType: (type) => set({ sortType: type }),\n setSearchTerm: (searchTerm) => {\n /**\n * When a new searchTerm is set, also reset the sort type, search mode, and facet paths.\n */\n set({\n searchTerm,\n facetPathsForIndexFields: {},\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: 'asc',\n }),\n });\n },\n setSearchClientResponseItems: (items) =>\n set({ searchClientResponseItems: items }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search();\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search();\n },\n };\n\n const stateObject: SearchcraftState = {\n ...initialSearchcraftStateValues,\n ...functions,\n };\n\n return stateObject;\n});\n\nexport { useSearchcraftStore };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchcraftStore.types.js","sourceRoot":"","sources":["../../../src/provider/SearchcraftStore.types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n FacetPathsForIndexField,\n FacetPrime,\n RangeValueForIndexField,\n Logger,\n SearchcraftCore,\n SearchClientResponseItem,\n AdClientResponseItem,\n} from '@searchcraft/core';\n\n/**\n * Callable functions made available by the SearchcraftStore.\n */\nexport interface SearchcraftStateFunctions {\n addFacetPathsForIndexField: (data: FacetPathsForIndexField) => void;\n addRangeValueForIndexField: (data: RangeValueForIndexField) => void;\n getSearchcraftInstance: () => SearchcraftCore | undefined;\n initialize: (searchcraft: SearchcraftCore, debug?: boolean) => void;\n removeFacetPathsForIndexField: (fieldName: string) => void;\n removeRangeValueForIndexField: (fieldName: string) => void;\n resetFacetPaths: () => void;\n search: () => Promise<void>;\n setPopoverVisibility: (isVisible: boolean) => void;\n setSearchClientResponseItems: (results: SearchClientResponseItem[]) => void;\n setSearchResultsPage: (page: number) => void;\n setSearchResultsPerPage: (perPage: number) => void;\n setSearchTerm: (searchTerm: string) => void;\n setSearchMode: (mode: 'fuzzy' | 'exact') => void;\n setSortType: (type: 'asc' | 'desc') => void;\n}\n\n/**\n * Values stored in SearchcraftStore.\n */\nexport interface SearchcraftStateValues {\n adClientResponseItems: AdClientResponseItem[];\n core: SearchcraftCore | undefined;\n logger: Logger | undefined;\n facetPathsForIndexFields: Record<string, FacetPathsForIndexField>;\n isPopoverVisible: boolean;\n rangeValueForIndexFields: Record<string, RangeValueForIndexField>;\n searchMode: 'fuzzy' | 'exact';\n searchClientResponseItems: SearchClientResponseItem[];\n searchResponseTimeTaken: number | undefined;\n searchResponseFacetPrime: FacetPrime | undefined;\n searchResultsCount: number;\n searchResultsPage: number;\n searchResultsPerPage: number;\n searchTerm: string;\n sortType: 'asc' | 'desc';\n}\n\nexport interface SearchcraftState\n extends SearchcraftStateFunctions,\n SearchcraftStateValues {}\n"]}
|
|
@@ -1,137 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// Zustand store for Searchcraft state
|
|
4
|
-
const useSearchcraftStore = create((set, get) => {
|
|
5
|
-
let searchcraft = null;
|
|
6
|
-
let debuggerInstance = null;
|
|
7
|
-
const log = (level, message) => {
|
|
8
|
-
if (debuggerInstance) {
|
|
9
|
-
switch (level) {
|
|
10
|
-
case LogLevel.DEBUG:
|
|
11
|
-
debuggerInstance.debug(message);
|
|
12
|
-
break;
|
|
13
|
-
case LogLevel.INFO:
|
|
14
|
-
debuggerInstance.info(message);
|
|
15
|
-
break;
|
|
16
|
-
case LogLevel.WARN:
|
|
17
|
-
debuggerInstance.warn(message);
|
|
18
|
-
break;
|
|
19
|
-
case LogLevel.ERROR:
|
|
20
|
-
debuggerInstance.error(message);
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
setPopoverVisibility: (isVisible) => {
|
|
27
|
-
set({
|
|
28
|
-
isPopoverVisible: isVisible,
|
|
29
|
-
});
|
|
30
|
-
},
|
|
31
|
-
isPopoverVisible: false,
|
|
32
|
-
resetFacetPaths: () => {
|
|
33
|
-
set({
|
|
34
|
-
facetPathsForIndexFields: {},
|
|
35
|
-
});
|
|
36
|
-
},
|
|
37
|
-
addFacetPathsForIndexField: (data) => set((state) => ({
|
|
38
|
-
facetPathsForIndexFields: {
|
|
39
|
-
...state.facetPathsForIndexFields,
|
|
40
|
-
[data.fieldName]: data,
|
|
41
|
-
},
|
|
42
|
-
})),
|
|
43
|
-
removeFacetPathsForIndexField: (fieldName) => set((state) => {
|
|
44
|
-
const currentPaths = state.facetPathsForIndexFields;
|
|
45
|
-
delete currentPaths[fieldName];
|
|
46
|
-
return {
|
|
47
|
-
facetPathsForIndexFields: {
|
|
48
|
-
...currentPaths,
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
}),
|
|
52
|
-
addRangeValueForIndexField: (data) => set((state) => ({
|
|
53
|
-
rangeValueForIndexFields: {
|
|
54
|
-
...state.rangeValueForIndexFields,
|
|
55
|
-
[data.fieldName]: data,
|
|
56
|
-
},
|
|
57
|
-
})),
|
|
58
|
-
removeRangeValueForIndexField: (fieldName) => set((state) => {
|
|
59
|
-
const currentValues = state.rangeValueForIndexFields;
|
|
60
|
-
delete currentValues[fieldName];
|
|
61
|
-
return {
|
|
62
|
-
rangeValueForIndexFields: {
|
|
63
|
-
...currentValues,
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
}),
|
|
67
|
-
setSearchMode: (mode) => set({ searchMode: mode }),
|
|
68
|
-
setSortType: (type) => set({ sortType: type }),
|
|
69
|
-
searchMode: 'fuzzy',
|
|
70
|
-
sortType: 'asc',
|
|
71
|
-
facetPathsForIndexFields: {},
|
|
72
|
-
rangeValueForIndexFields: {},
|
|
73
|
-
query: '',
|
|
74
|
-
isRequesting: false,
|
|
75
|
-
searchResults: null,
|
|
76
|
-
facets: null,
|
|
77
|
-
getSearchcraftInstance: () => searchcraft,
|
|
78
|
-
setQuery: (query) => {
|
|
79
|
-
/**
|
|
80
|
-
* When a new query is set, also reset the sort type, search mode, and facet paths.
|
|
81
|
-
*/
|
|
82
|
-
set({
|
|
83
|
-
query,
|
|
84
|
-
facetPathsForIndexFields: {},
|
|
85
|
-
...(query.trim().length === 0 && {
|
|
86
|
-
searchMode: 'fuzzy',
|
|
87
|
-
sortType: 'asc',
|
|
88
|
-
}),
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
setSearchResults: (results) => set({ searchResults: results }),
|
|
92
|
-
setFacets: (facets) => set({ facets }),
|
|
93
|
-
setIsRequesting: (isRequesting) => set({ isRequesting }),
|
|
94
|
-
search: async () => {
|
|
95
|
-
const state = get();
|
|
96
|
-
log(LogLevel.INFO, `Starting search with search term: "${state.query}"`);
|
|
97
|
-
if (!searchcraft) {
|
|
98
|
-
throw new Error('Searchcraft instance is not initialized.');
|
|
99
|
-
}
|
|
100
|
-
if (!state.query.trim()) {
|
|
101
|
-
log(LogLevel.INFO, 'No search request was made: search term was empty.');
|
|
102
|
-
state.setSearchResults(null);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
state.setIsRequesting(true);
|
|
106
|
-
searchcraft.search({
|
|
107
|
-
query: state.query,
|
|
108
|
-
mode: state.searchMode,
|
|
109
|
-
sort: state.sortType,
|
|
110
|
-
facetPathsForIndexFields: state.facetPathsForIndexFields,
|
|
111
|
-
rangeValueForIndexFields: state.rangeValueForIndexFields,
|
|
112
|
-
}, (results) => {
|
|
113
|
-
const updatedFacets = results.data.facets || null;
|
|
114
|
-
state.setSearchResults(results);
|
|
115
|
-
if (updatedFacets) {
|
|
116
|
-
state.setFacets(updatedFacets);
|
|
117
|
-
}
|
|
118
|
-
log(LogLevel.DEBUG, `Search results: ${JSON.stringify(results)}`);
|
|
119
|
-
log(LogLevel.DEBUG, `Updated facets: ${JSON.stringify(updatedFacets)}`);
|
|
120
|
-
state.setIsRequesting(false);
|
|
121
|
-
});
|
|
122
|
-
},
|
|
123
|
-
initialize: (searchcraftInstance, debug = false) => {
|
|
124
|
-
searchcraft = searchcraftInstance;
|
|
125
|
-
debuggerInstance = debug
|
|
126
|
-
? new SDKDebugger({ logLevel: LogLevel.DEBUG })
|
|
127
|
-
: null;
|
|
128
|
-
log(LogLevel.INFO, 'Searchcraft store initialized.');
|
|
129
|
-
},
|
|
130
|
-
};
|
|
131
|
-
});
|
|
132
|
-
const useThemeStore = create((set) => ({
|
|
133
|
-
theme: 'light',
|
|
134
|
-
toggleTheme: () => set((state) => ({ theme: state.theme === 'light' ? 'dark' : 'light' })),
|
|
135
|
-
}));
|
|
136
|
-
export { useSearchcraftStore, useThemeStore };
|
|
1
|
+
export * from './SearchcraftStore.types';
|
|
2
|
+
export * from './SearchcraftStore';
|
|
137
3
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/provider/store.tsx"],"names":[],"mappings":"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","sourcesContent":["import { create } from 'zustand';\n\nimport {\n type SearchcraftCore,\n SDKDebugger,\n LogLevel,\n type SearchcraftResponse,\n type FacetPrime,\n type FacetPathsForIndexField,\n type RangeValueForIndexField,\n} from '@searchcraft/core';\n\ninterface ThemeState {\n theme: 'light' | 'dark';\n toggleTheme: () => void;\n}\n\nexport interface SearchcraftState {\n resetFacetPaths: () => void;\n addFacetPathsForIndexField: (data: FacetPathsForIndexField) => void;\n removeFacetPathsForIndexField: (fieldName: string) => void;\n addRangeValueForIndexField: (data: RangeValueForIndexField) => void;\n removeRangeValueForIndexField: (fieldName: string) => void;\n setSearchMode: (mode: 'fuzzy' | 'exact') => void;\n setSortType: (type: 'asc' | 'desc') => void;\n facetPathsForIndexFields: Record<string, FacetPathsForIndexField>;\n rangeValueForIndexFields: Record<string, RangeValueForIndexField>;\n searchMode: 'fuzzy' | 'exact';\n sortType: 'asc' | 'desc';\n facets: FacetPrime | null;\n getSearchcraftInstance: () => SearchcraftCore | null;\n initialize: (searchcraft: SearchcraftCore, debug?: boolean) => void;\n isRequesting: boolean;\n query: string;\n search: () => Promise<void>;\n searchResults: SearchcraftResponse | null;\n setFacets: (facets: FacetPrime) => void;\n setIsRequesting: (isRequesting: boolean) => void;\n setQuery: (query: string) => void;\n setSearchResults: (results: SearchcraftResponse | null) => void;\n setPopoverVisibility: (isVisible: boolean) => void;\n isPopoverVisible: boolean;\n}\n\n// Zustand store for Searchcraft state\nconst useSearchcraftStore = create<SearchcraftState>((set, get) => {\n let searchcraft: SearchcraftCore | null = null;\n let debuggerInstance: SDKDebugger | null = null;\n\n const log = (level: LogLevel, message: string) => {\n if (debuggerInstance) {\n switch (level) {\n case LogLevel.DEBUG:\n debuggerInstance.debug(message);\n break;\n case LogLevel.INFO:\n debuggerInstance.info(message);\n break;\n case LogLevel.WARN:\n debuggerInstance.warn(message);\n break;\n case LogLevel.ERROR:\n debuggerInstance.error(message);\n break;\n }\n }\n };\n\n return {\n setPopoverVisibility: (isVisible: boolean) => {\n set({\n isPopoverVisible: isVisible,\n });\n },\n isPopoverVisible: false,\n resetFacetPaths: () => {\n set({\n facetPathsForIndexFields: {},\n });\n },\n addFacetPathsForIndexField: (data: FacetPathsForIndexField) =>\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [data.fieldName]: data,\n },\n })),\n removeFacetPathsForIndexField: (fieldName: string) =>\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n };\n }),\n addRangeValueForIndexField: (data: RangeValueForIndexField) =>\n set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [data.fieldName]: data,\n },\n })),\n removeRangeValueForIndexField: (fieldName: string) =>\n set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortType: (type) => set({ sortType: type }),\n searchMode: 'fuzzy',\n sortType: 'asc',\n facetPathsForIndexFields: {},\n rangeValueForIndexFields: {},\n query: '',\n isRequesting: false,\n searchResults: null,\n facets: null,\n getSearchcraftInstance: () => searchcraft,\n setQuery: (query) => {\n /**\n * When a new query is set, also reset the sort type, search mode, and facet paths.\n */\n set({\n query,\n facetPathsForIndexFields: {},\n ...(query.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: 'asc',\n }),\n });\n },\n setSearchResults: (results) => set({ searchResults: results }),\n setFacets: (facets) => set({ facets }),\n setIsRequesting: (isRequesting) => set({ isRequesting }),\n search: async () => {\n const state = get();\n log(LogLevel.INFO, `Starting search with search term: \"${state.query}\"`);\n\n if (!searchcraft) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n\n if (!state.query.trim()) {\n log(\n LogLevel.INFO,\n 'No search request was made: search term was empty.',\n );\n state.setSearchResults(null);\n return;\n }\n\n state.setIsRequesting(true);\n\n searchcraft.search(\n {\n query: state.query,\n mode: state.searchMode,\n sort: state.sortType,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n },\n (results: SearchcraftResponse) => {\n const updatedFacets = results.data.facets || null;\n\n state.setSearchResults(results);\n if (updatedFacets) {\n state.setFacets(updatedFacets);\n }\n\n log(LogLevel.DEBUG, `Search results: ${JSON.stringify(results)}`);\n log(\n LogLevel.DEBUG,\n `Updated facets: ${JSON.stringify(updatedFacets)}`,\n );\n state.setIsRequesting(false);\n },\n );\n },\n initialize: (searchcraftInstance, debug = false) => {\n searchcraft = searchcraftInstance;\n debuggerInstance = debug\n ? new SDKDebugger({ logLevel: LogLevel.DEBUG })\n : null;\n\n log(LogLevel.INFO, 'Searchcraft store initialized.');\n },\n };\n});\n\nconst useThemeStore = create<ThemeState>((set) => ({\n theme: 'light',\n toggleTheme: () =>\n set((state) => ({ theme: state.theme === 'light' ? 'dark' : 'light' })),\n}));\n\nexport { useSearchcraftStore, useThemeStore };\n"]}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/provider/store.tsx"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './SearchcraftStore.types';\nexport * from './SearchcraftStore';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../../src/utils/units.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SearchResultMapping } from '
|
|
1
|
+
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../../src/utils/units.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,uCAAuC,CACrD,QAA6C,EAC7C,OAAwC;IAExC,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,UAAU;aACtB,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE;YACxB,IAAI,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEtD,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,gBAAgB,CAAC,QAAQ,EAAE,CAAC;oBAClC,KAAK,MAAM,CAAC,CAAC,CAAC;wBACZ,kEAAkE;wBAClE,UAAU,GAAG,uBAAuB,CAAC,UAAoB,CAAC,CAAC;wBAC3D,MAAM;oBACR,CAAC;oBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,UAAU,GAAG,IAAI,CAAC,YAAY,CAC5B,gBAAgB,CAAC,kBAAkB,EACnC,gBAAgB,CAAC,mBAAmB,CACrC,CAAC,MAAM,CACL,UAAqB,GAAG,CAAC,gBAAgB,CAAC,WAAW,IAAI,CAAC,CAAC,CAC7D,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD;wBACE,MAAM;gBACV,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAuC;IAC/D,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,CAAC;IACtC,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,CAAC;IACvC,MAAM,YAAY,GAAG,GAAG,GAAG,WAAW,CAAC;IAEvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAM;IAC3C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAC7C,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAErC,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,OAAO,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,OAAO,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,KAAK,OAAO,CAAC;AACzB,CAAC","sourcesContent":["import type { SearchResultMapping } from '@searchcraft/core';\n\n/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n *\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nexport function getDocumentValueFromSearchResultMapping(\n document: Record<string, unknown> | undefined,\n mapping: SearchResultMapping | undefined,\n): string | undefined {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n // TODO: Use fieldNameDetails.DateFormatOptions to format the date\n valueFound = getFormattedTimeFromNow(valueFound as string);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(\n fieldNameDetails.numberFormatLocale,\n fieldNameDetails.numberFormatOptions,\n ).format(\n (valueFound as number) * (fieldNameDetails.numberScale || 1),\n );\n break;\n }\n default:\n break;\n }\n }\n\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\n\nexport function getMillis(unit: 'year' | 'month' | 'day' | 'hour'): number {\n const millisInHour = 60 * 60 * 1000;\n const millisInDay = 24 * millisInHour;\n const millisInMonth = 30 * millisInDay;\n const millisInYear = 365 * millisInDay;\n\n switch (unit) {\n case 'hour':\n return millisInHour;\n case 'day':\n return millisInDay;\n case 'month':\n return millisInMonth;\n case 'year':\n return millisInYear;\n default:\n return 3600000;\n }\n}\n\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\n/**\n * Given a timestamp value, returns a formatted time string for the time\n * since now.\n *\n * @param timestamp\n * @returns {string} Formatted string value\n */\nexport function getFormattedTimeFromNow(timestamp: string): string {\n const now = new Date();\n const inputTime = new Date(timestamp);\n const diffInSeconds = Math.floor(\n (now.getTime() - inputTime.getTime()) / 1000,\n );\n\n const minutes = Math.floor(diffInSeconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const years = Math.floor(days / 365);\n\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n if (hours < 24) {\n return `${hours}h ago`;\n }\n if (days < 365) {\n return `${days}d ago`;\n }\n return `${years}y ago`;\n}\n"]}
|
package/dist/components/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SearchcraftBaseSearchResult } from './searchcraft-base-search-result.js';
|
|
2
|
+
import { SearchcraftBaseSearchResultAd } from './searchcraft-base-search-result-ad.js';
|
|
2
3
|
import { SearchcraftBaseSearchResults } from './searchcraft-base-search-results.js';
|
|
3
4
|
import { SearchcraftButton } from './searchcraft-button.js';
|
|
4
5
|
import { SearchcraftErrorMessage } from './searchcraft-error-message.js';
|
|
@@ -6,22 +7,27 @@ import { SearchcraftFacetList } from './searchcraft-facet-list.js';
|
|
|
6
7
|
import { SearchcraftFilterPanel } from './searchcraft-filter-panel.js';
|
|
7
8
|
import { SearchcraftInputForm } from './searchcraft-input-form.js';
|
|
8
9
|
import { SearchcraftInputLabel } from './searchcraft-input-label.js';
|
|
10
|
+
import { SearchcraftPagination } from './searchcraft-pagination.js';
|
|
9
11
|
import { SearchcraftPopoverButton } from './searchcraft-popover-button.js';
|
|
10
12
|
import { SearchcraftPopoverForm } from './searchcraft-popover-form.js';
|
|
11
13
|
import { SearchcraftPopoverListItem } from './searchcraft-popover-list-item.js';
|
|
14
|
+
import { SearchcraftPopoverListItemAd } from './searchcraft-popover-list-item-ad.js';
|
|
12
15
|
import { SearchcraftPopoverListView } from './searchcraft-popover-list-view.js';
|
|
13
16
|
import { SearchcraftResultsInfo } from './searchcraft-results-info.js';
|
|
17
|
+
import { SearchcraftSearchResultsPerPage } from './searchcraft-search-results-per-page.js';
|
|
18
|
+
import { SearchcraftSelect } from './searchcraft-select.js';
|
|
14
19
|
import { SearchcraftSlider } from './searchcraft-slider.js';
|
|
15
20
|
import { SearchcraftTheme } from './searchcraft-theme.js';
|
|
16
21
|
import { SearchcraftToggleButton } from './searchcraft-toggle-button.js';
|
|
17
22
|
export { g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-5365011f.js';
|
|
18
23
|
export { p as parseCustomStyles, s as serializeStyles } from './p-d9551738.js';
|
|
19
|
-
export { u as useSearchcraftStore
|
|
24
|
+
export { u as useSearchcraftStore } from './p-38419178.js';
|
|
20
25
|
|
|
21
26
|
const defineCustomElements = (opts) => {
|
|
22
27
|
if (typeof customElements !== 'undefined') {
|
|
23
28
|
[
|
|
24
29
|
SearchcraftBaseSearchResult,
|
|
30
|
+
SearchcraftBaseSearchResultAd,
|
|
25
31
|
SearchcraftBaseSearchResults,
|
|
26
32
|
SearchcraftButton,
|
|
27
33
|
SearchcraftErrorMessage,
|
|
@@ -29,11 +35,15 @@ const defineCustomElements = (opts) => {
|
|
|
29
35
|
SearchcraftFilterPanel,
|
|
30
36
|
SearchcraftInputForm,
|
|
31
37
|
SearchcraftInputLabel,
|
|
38
|
+
SearchcraftPagination,
|
|
32
39
|
SearchcraftPopoverButton,
|
|
33
40
|
SearchcraftPopoverForm,
|
|
34
41
|
SearchcraftPopoverListItem,
|
|
42
|
+
SearchcraftPopoverListItemAd,
|
|
35
43
|
SearchcraftPopoverListView,
|
|
36
44
|
SearchcraftResultsInfo,
|
|
45
|
+
SearchcraftSearchResultsPerPage,
|
|
46
|
+
SearchcraftSelect,
|
|
37
47
|
SearchcraftSlider,
|
|
38
48
|
SearchcraftTheme,
|
|
39
49
|
SearchcraftToggleButton,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index.js","mappings":"
|
|
1
|
+
{"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -10,7 +10,7 @@ const SearchcraftErrorMessage = /*@__PURE__*/ proxyCustomElement(class Searchcra
|
|
|
10
10
|
*/
|
|
11
11
|
errorMessage;
|
|
12
12
|
render() {
|
|
13
|
-
return (h("p", { key: '
|
|
13
|
+
return (h("p", { key: 'dc97bb66da10a98fca027f928deaaf80d945417b', class: 'searchcraft-error-message' }, this.errorMessage || 'Search term is required.'));
|
|
14
14
|
}
|
|
15
15
|
}, [0, "searchcraft-error-message", {
|
|
16
16
|
"errorMessage": [1, "error-message"]
|
|
@@ -31,4 +31,4 @@ function defineCustomElement() {
|
|
|
31
31
|
|
|
32
32
|
export { SearchcraftErrorMessage as S, defineCustomElement as d };
|
|
33
33
|
|
|
34
|
-
//# sourceMappingURL=p-
|
|
34
|
+
//# sourceMappingURL=p-0e393fe1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-0e393fe1.js","mappings":";;MAea,uBAAuB;;;;;;;;IAI1B,YAAY,CAAU;IAE9B,MAAM;QACJ,QACE,0DAAG,KAAK,EAAC,2BAA2B,IACjC,IAAI,CAAC,YAAY,IAAI,0BAA0B,CAC9C,EACJ;KACH;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-error-message/searchcraft-error-message.tsx"],"sourcesContent":["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"],"version":3}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-5365011f.js';
|
|
2
|
+
import { d as defineCustomElement$2 } from './p-ec0d230e.js';
|
|
3
|
+
import { d as defineCustomElement$1 } from './p-bff4d3fc.js';
|
|
4
|
+
|
|
5
|
+
const SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.__registerHost();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The mappings that define how the data in the documents are mapped to the
|
|
12
|
+
* list-view-item elements.
|
|
13
|
+
*/
|
|
14
|
+
popoverResultMappings;
|
|
15
|
+
/**
|
|
16
|
+
* The items to render in the list view.
|
|
17
|
+
*/
|
|
18
|
+
searchClientResponseItems;
|
|
19
|
+
adClientResponseItems;
|
|
20
|
+
searchResultsPage;
|
|
21
|
+
searchResultsPerPage;
|
|
22
|
+
render() {
|
|
23
|
+
return (h("div", { key: 'a869d98e96f6fbbc80ecb79058c4753b4a3a8b1d', class: 'searchcraft-popover-list-view' }, this.adClientResponseItems?.map((item) => (h("searchcraft-popover-list-item-ad", { adClientResponseItem: item, key: item.adId }))), this.searchClientResponseItems?.map((item, index) => (h("searchcraft-popover-list-item", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));
|
|
24
|
+
}
|
|
25
|
+
}, [0, "searchcraft-popover-list-view", {
|
|
26
|
+
"popoverResultMappings": [16],
|
|
27
|
+
"searchClientResponseItems": [16],
|
|
28
|
+
"adClientResponseItems": [16],
|
|
29
|
+
"searchResultsPage": [2, "search-results-page"],
|
|
30
|
+
"searchResultsPerPage": [2, "search-results-per-page"]
|
|
31
|
+
}]);
|
|
32
|
+
function defineCustomElement() {
|
|
33
|
+
if (typeof customElements === "undefined") {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const components = ["searchcraft-popover-list-view", "searchcraft-popover-list-item", "searchcraft-popover-list-item-ad"];
|
|
37
|
+
components.forEach(tagName => { switch (tagName) {
|
|
38
|
+
case "searchcraft-popover-list-view":
|
|
39
|
+
if (!customElements.get(tagName)) {
|
|
40
|
+
customElements.define(tagName, SearchcraftPopoverListView);
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
case "searchcraft-popover-list-item":
|
|
44
|
+
if (!customElements.get(tagName)) {
|
|
45
|
+
defineCustomElement$2();
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
case "searchcraft-popover-list-item-ad":
|
|
49
|
+
if (!customElements.get(tagName)) {
|
|
50
|
+
defineCustomElement$1();
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
} });
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { SearchcraftPopoverListView as S, defineCustomElement as d };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=p-25ee7496.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-25ee7496.js","mappings":";;;;MAsBa,0BAA0B;;;;;;;;;IAK7B,qBAAqB,CAAoC;;;;IAIzD,yBAAyB,CAAyC;IAClE,qBAAqB,CAAqC;IAC1D,iBAAiB,CAAU;IAC3B,oBAAoB,CAAU;IAEtC,MAAM;QACJ,QACE,4DAAK,KAAK,EAAC,+BAA+B,IACvC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,IAAI,MACpC,wCACE,oBAAoB,EAAE,IAAI,EAC1B,GAAG,EAAE,IAAI,CAAC,IAAI,GACd,CACH,CAAC,EACD,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAC/C,qCACE,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,gBAAgB,EACd,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,KAAK,GAElE,CACH,CAAC,CACE,EACN;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-popover-list-view/searchcraft-popover-list-view.tsx"],"sourcesContent":["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}
|