@searchcraft/javascript-sdk 0.3.1 → 0.4.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/README.md +198 -0
- package/dist/cjs/{index-264ebadc.js → index-c8a8e492.js} +29 -3
- package/dist/cjs/index-c8a8e492.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -5
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-35d3b670.js → package-ccc7e307.js} +3 -3
- package/dist/cjs/package-ccc7e307.js.map +1 -0
- package/dist/cjs/searchcraft-auto-search-form.cjs.entry.js +160 -0
- package/dist/cjs/searchcraft-auto-search-form.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-base-search-form.cjs.entry.js +8 -11
- package/dist/cjs/searchcraft-base-search-form.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +74 -0
- package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +129 -0
- package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-button-icon.cjs.entry.js +1 -1
- package/dist/cjs/searchcraft-button.cjs.entry.js +3 -8
- package/dist/cjs/searchcraft-button.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-check-icon_2.cjs.entry.js +28 -0
- package/dist/cjs/searchcraft-check-icon_2.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-clear-icon-set.cjs.entry.js +30 -0
- package/dist/cjs/searchcraft-clear-icon-set.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-error-message_3.cjs.entry.js +95 -0
- package/dist/cjs/searchcraft-error-message_3.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +183 -0
- package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +134 -0
- package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-javascript-sdk.cjs.js +2 -2
- package/dist/cjs/searchcraft-results-info.cjs.entry.js +46 -0
- package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-search-icon-set.cjs.entry.js +33 -0
- package/dist/cjs/searchcraft-search-icon-set.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-spinner-dark.cjs.entry.js +3 -3
- package/dist/cjs/searchcraft-spinner-dark.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-spinner-light.cjs.entry.js +3 -3
- package/dist/cjs/searchcraft-spinner-light.cjs.entry.js.map +1 -1
- package/dist/{esm/store-b519dd0b.js → cjs/store-72205332.js} +139 -205
- package/dist/cjs/store-72205332.js.map +1 -0
- package/dist/cjs/utils-4ee2b88d.js +169 -0
- package/dist/cjs/utils-4ee2b88d.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -4
- package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js +61 -95
- package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js.map +1 -1
- package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.module.css +98 -9
- package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js +31 -16
- package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js.map +1 -1
- package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.module.css +94 -8
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +125 -153
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.module.css +139 -206
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +138 -89
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.module.css +105 -23
- package/dist/collection/components/searchcraft-button/searchcraft-button.js +2 -8
- package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
- package/dist/collection/components/searchcraft-button/searchcraft-button.module.css +107 -36
- package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +1 -22
- package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map +1 -1
- package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.module.css +101 -15
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +140 -0
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -0
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.module.css +216 -0
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +166 -0
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -0
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.module.css +118 -0
- package/dist/collection/components/searchcraft-input/searchcraft-input.js +36 -125
- package/dist/collection/components/searchcraft-input/searchcraft-input.js.map +1 -1
- package/dist/collection/components/searchcraft-input/searchcraft-input.module.css +158 -209
- package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +1 -12
- package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js.map +1 -1
- package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.module.css +102 -14
- package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +1 -2
- package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
- package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.module.css +103 -9
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +79 -62
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +1 -1
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.module.css +106 -7
- package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.js +1 -1
- package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.module.css +103 -4
- package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.js +1 -1
- package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.module.css +102 -3
- package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +50 -65
- package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
- package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.module.css +135 -9
- package/dist/collection/index.js +2 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/provider/store.js +45 -31
- package/dist/collection/provider/store.js.map +1 -1
- package/dist/collection/types/index.js +3 -0
- package/dist/collection/types/index.js.map +1 -0
- package/dist/collection/types/searchcraft-base-search-results.types.js +2 -0
- package/dist/collection/types/searchcraft-base-search-results.types.js.map +1 -0
- package/dist/collection/types/searchcraft-filter-panel.types.js +2 -0
- package/dist/collection/types/searchcraft-filter-panel.types.js.map +1 -0
- package/dist/collection/utils/utils.js +114 -35
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.js +7 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-bbf9973a.js → p-04d13314.js} +2 -2
- package/dist/components/{p-bbf9973a.js.map → p-04d13314.js.map} +1 -1
- package/dist/components/p-0deddac7.js +161 -0
- package/dist/components/p-0deddac7.js.map +1 -0
- package/dist/components/p-37f54c0b.js +54 -0
- package/dist/components/p-37f54c0b.js.map +1 -0
- package/dist/components/{p-6b353c3e.js → p-5639be85.js} +23 -3
- package/dist/components/p-5639be85.js.map +1 -0
- package/dist/components/p-68897c11.js +124 -0
- package/dist/components/p-68897c11.js.map +1 -0
- package/dist/components/{p-b0c1fd63.js → p-69eed21e.js} +3 -3
- package/dist/components/p-69eed21e.js.map +1 -0
- package/dist/components/p-8062f0ea.js +82 -0
- package/dist/components/p-8062f0ea.js.map +1 -0
- package/dist/components/p-9f2b8375.js +33 -0
- package/dist/components/p-9f2b8375.js.map +1 -0
- package/dist/components/p-ace4e6a0.js +35 -0
- package/dist/components/p-ace4e6a0.js.map +1 -0
- package/dist/components/p-b1a59f07.js +101 -0
- package/dist/components/p-b1a59f07.js.map +1 -0
- package/dist/components/{p-727bfc38.js → p-be63dcac.js} +126 -110
- package/dist/components/p-be63dcac.js.map +1 -0
- package/dist/components/p-c8bc1e4f.js +40 -0
- package/dist/components/p-c8bc1e4f.js.map +1 -0
- package/dist/components/{p-aad03c2a.js → p-de50441f.js} +2 -2
- package/dist/components/{p-aad03c2a.js.map → p-de50441f.js.map} +1 -1
- package/dist/components/p-e3c8b1ef.js +91 -0
- package/dist/components/p-e3c8b1ef.js.map +1 -0
- package/dist/components/p-ebf021b5.js +49 -0
- package/dist/components/p-ebf021b5.js.map +1 -0
- package/dist/components/searchcraft-auto-search-form.js +64 -74
- package/dist/components/searchcraft-auto-search-form.js.map +1 -1
- package/dist/components/searchcraft-base-search-form.js +20 -52
- package/dist/components/searchcraft-base-search-form.js.map +1 -1
- package/dist/components/searchcraft-base-search-result.js +1 -1
- package/dist/components/searchcraft-base-search-results.js +75 -53
- package/dist/components/searchcraft-base-search-results.js.map +1 -1
- package/dist/components/searchcraft-button-icon.js +1 -1
- package/dist/components/searchcraft-button.js +1 -1
- package/dist/components/searchcraft-check-icon.js +1 -1
- package/dist/components/searchcraft-clear-icon-set.js +39 -1
- package/dist/components/searchcraft-clear-icon-set.js.map +1 -1
- package/dist/components/searchcraft-dash-icon.js +1 -1
- package/dist/components/searchcraft-error-message.js +1 -1
- package/dist/components/searchcraft-facet-list.d.ts +11 -0
- package/dist/components/searchcraft-facet-list.js +8 -0
- package/dist/components/searchcraft-facet-list.js.map +1 -0
- package/dist/components/searchcraft-filter-panel.d.ts +11 -0
- package/dist/components/searchcraft-filter-panel.js +184 -0
- package/dist/components/searchcraft-filter-panel.js.map +1 -0
- package/dist/components/searchcraft-input-label.js +1 -1
- package/dist/components/searchcraft-input.js +1 -1
- package/dist/components/searchcraft-results-info.js +5 -6
- package/dist/components/searchcraft-results-info.js.map +1 -1
- package/dist/components/searchcraft-search-icon-set.js +44 -1
- package/dist/components/searchcraft-search-icon-set.js.map +1 -1
- package/dist/components/searchcraft-slider.js +1 -104
- package/dist/components/searchcraft-slider.js.map +1 -1
- package/dist/components/searchcraft-spinner-dark.js +1 -1
- package/dist/components/searchcraft-spinner-light.js +3 -3
- package/dist/components/searchcraft-spinner-light.js.map +1 -1
- package/dist/components/searchcraft-toggle-button.js +1 -93
- package/dist/components/searchcraft-toggle-button.js.map +1 -1
- package/dist/esm/{index-d851fb46.js → index-88dc5f88.js} +29 -3
- package/dist/esm/index-88dc5f88.js.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{package-82baadd7.js → package-ee16f835.js} +3 -3
- package/dist/esm/package-ee16f835.js.map +1 -0
- package/dist/esm/searchcraft-auto-search-form.entry.js +156 -0
- package/dist/esm/searchcraft-auto-search-form.entry.js.map +1 -0
- package/dist/esm/searchcraft-base-search-form.entry.js +8 -11
- package/dist/esm/searchcraft-base-search-form.entry.js.map +1 -1
- package/dist/esm/searchcraft-base-search-result.entry.js +70 -0
- package/dist/esm/searchcraft-base-search-result.entry.js.map +1 -0
- package/dist/esm/searchcraft-base-search-results.entry.js +125 -0
- package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -0
- package/dist/esm/searchcraft-button-icon.entry.js +1 -1
- package/dist/esm/searchcraft-button.entry.js +3 -8
- package/dist/esm/searchcraft-button.entry.js.map +1 -1
- package/dist/esm/searchcraft-check-icon_2.entry.js +23 -0
- package/dist/esm/searchcraft-check-icon_2.entry.js.map +1 -0
- package/dist/{components/p-62e6b69c.js → esm/searchcraft-clear-icon-set.entry.js} +7 -24
- package/dist/esm/searchcraft-clear-icon-set.entry.js.map +1 -0
- package/dist/esm/searchcraft-error-message_3.entry.js +89 -0
- package/dist/esm/searchcraft-error-message_3.entry.js.map +1 -0
- package/dist/esm/searchcraft-facet-list_3.entry.js +177 -0
- package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -0
- package/dist/esm/searchcraft-filter-panel.entry.js +130 -0
- package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -0
- package/dist/esm/searchcraft-javascript-sdk.js +3 -3
- package/dist/esm/searchcraft-results-info.entry.js +42 -0
- package/dist/esm/searchcraft-results-info.entry.js.map +1 -0
- package/dist/{components/p-5a872bdf.js → esm/searchcraft-search-icon-set.entry.js} +7 -26
- package/dist/esm/searchcraft-search-icon-set.entry.js.map +1 -0
- package/dist/esm/searchcraft-spinner-dark.entry.js +3 -3
- package/dist/esm/searchcraft-spinner-dark.entry.js.map +1 -1
- package/dist/esm/searchcraft-spinner-light.entry.js +3 -3
- package/dist/esm/searchcraft-spinner-light.entry.js.map +1 -1
- package/dist/{cjs/store-e3bbdd49.js → esm/store-52436995.js} +136 -217
- package/dist/esm/store-52436995.js.map +1 -0
- package/dist/esm/utils-89a02921.js +161 -0
- package/dist/esm/utils-89a02921.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
- package/dist/searchcraft-javascript-sdk/p-08bd95f1.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-08bd95f1.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-0deddac7.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-0deddac7.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-15f9891d.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-15f9891d.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-2419a8c5.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-2419a8c5.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-343adbe3.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-343adbe3.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-3a2d9be9.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-3a2d9be9.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-4278ff89.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-4278ff89.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-4c32c87d.js +3 -0
- package/dist/searchcraft-javascript-sdk/p-4c32c87d.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-56413bef.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-56413bef.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-69eed21e.js +2 -0
- package/dist/searchcraft-javascript-sdk/{p-99356c9a.entry.js → p-69f64bdd.entry.js} +2 -2
- package/dist/searchcraft-javascript-sdk/p-7c59b3cd.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-7c59b3cd.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-93e9de71.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-93e9de71.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-9647ae41.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-9647ae41.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-a613a6ba.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-a613a6ba.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-acc645c7.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-acc645c7.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-bb03e946.js +11 -0
- package/dist/searchcraft-javascript-sdk/p-bb03e946.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-bf80bbee.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-bf80bbee.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-f4612b94.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-f4612b94.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-auto-search-form/searchcraft-auto-search-form.d.ts +6 -6
- package/dist/types/components/searchcraft-base-search-form/searchcraft-base-search-form.d.ts +3 -2
- package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +16 -18
- package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +15 -6
- package/dist/types/components/searchcraft-button/searchcraft-button.d.ts +0 -2
- package/dist/types/components/searchcraft-error-message/searchcraft-error-message.d.ts +0 -1
- package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +21 -0
- package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +25 -0
- package/dist/types/components/searchcraft-input/searchcraft-input.d.ts +4 -10
- package/dist/types/components/searchcraft-input-label/searchcraft-input-label.d.ts +0 -2
- package/dist/types/components/searchcraft-slider/searchcraft-slider.d.ts +11 -12
- package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +4 -9
- package/dist/types/components.d.ts +123 -185
- package/dist/types/index.d.ts +2 -1
- package/dist/types/provider/store.d.ts +15 -9
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/searchcraft-base-search-results.types.d.ts +17 -0
- package/dist/types/types/searchcraft-filter-panel.types.d.ts +42 -0
- package/dist/types/utils/utils.d.ts +23 -15
- package/package.json +2 -2
- package/dist/cjs/index-264ebadc.js.map +0 -1
- package/dist/cjs/package-35d3b670.js.map +0 -1
- package/dist/cjs/searchcraft-auto-search-form_17.cjs.entry.js +0 -867
- package/dist/cjs/searchcraft-auto-search-form_17.cjs.entry.js.map +0 -1
- package/dist/cjs/store-e3bbdd49.js.map +0 -1
- package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.js +0 -94
- package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.js.map +0 -1
- package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.css +0 -33
- package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js +0 -168
- package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js.map +0 -1
- package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.module.css +0 -111
- package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.js +0 -121
- package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.js.map +0 -1
- package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.module.css +0 -79
- package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.js +0 -109
- package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.js.map +0 -1
- package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.module.css +0 -17
- package/dist/components/p-4f939ba2.js +0 -53
- package/dist/components/p-4f939ba2.js.map +0 -1
- package/dist/components/p-5015a359.js +0 -39
- package/dist/components/p-5015a359.js.map +0 -1
- package/dist/components/p-54848b4d.js +0 -136
- package/dist/components/p-54848b4d.js.map +0 -1
- package/dist/components/p-5a872bdf.js.map +0 -1
- package/dist/components/p-62c40862.js +0 -91
- package/dist/components/p-62c40862.js.map +0 -1
- package/dist/components/p-62e6b69c.js.map +0 -1
- package/dist/components/p-69ee3b9a.js +0 -59
- package/dist/components/p-69ee3b9a.js.map +0 -1
- package/dist/components/p-6b353c3e.js.map +0 -1
- package/dist/components/p-727bfc38.js.map +0 -1
- package/dist/components/p-7c280820.js +0 -33
- package/dist/components/p-7c280820.js.map +0 -1
- package/dist/components/p-7d385ffb.js +0 -60
- package/dist/components/p-7d385ffb.js.map +0 -1
- package/dist/components/p-8524c749.js +0 -54
- package/dist/components/p-8524c749.js.map +0 -1
- package/dist/components/p-b0c1fd63.js.map +0 -1
- package/dist/components/p-b38d171d.js +0 -47
- package/dist/components/p-b38d171d.js.map +0 -1
- package/dist/components/p-cd9a038a.js +0 -105
- package/dist/components/p-cd9a038a.js.map +0 -1
- package/dist/components/searchcraft-clear-input-button.d.ts +0 -11
- package/dist/components/searchcraft-clear-input-button.js +0 -8
- package/dist/components/searchcraft-clear-input-button.js.map +0 -1
- package/dist/components/searchcraft-filters-list.d.ts +0 -11
- package/dist/components/searchcraft-filters-list.js +0 -151
- package/dist/components/searchcraft-filters-list.js.map +0 -1
- package/dist/components/searchcraft-input-caption.d.ts +0 -11
- package/dist/components/searchcraft-input-caption.js +0 -8
- package/dist/components/searchcraft-input-caption.js.map +0 -1
- package/dist/components/searchcraft-input-icon.d.ts +0 -11
- package/dist/components/searchcraft-input-icon.js +0 -8
- package/dist/components/searchcraft-input-icon.js.map +0 -1
- package/dist/esm/index-d851fb46.js.map +0 -1
- package/dist/esm/package-82baadd7.js.map +0 -1
- package/dist/esm/searchcraft-auto-search-form_17.entry.js +0 -847
- package/dist/esm/searchcraft-auto-search-form_17.entry.js.map +0 -1
- package/dist/esm/store-b519dd0b.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-1f3ae7f3.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-1f3ae7f3.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-201cb2dc.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-201cb2dc.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-2c220368.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-2c220368.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-39c0ca33.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-39c0ca33.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-476829a4.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-476829a4.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-b0c1fd63.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-b42eaa55.js +0 -3
- package/dist/searchcraft-javascript-sdk/p-b42eaa55.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-d5f8dda2.js +0 -11
- package/dist/searchcraft-javascript-sdk/p-d5f8dda2.js.map +0 -1
- package/dist/types/components/searchcraft-clear-input-button/searchcraft-clear-input-button.d.ts +0 -10
- package/dist/types/components/searchcraft-filters-list/searchcraft-filters-list.d.ts +0 -34
- package/dist/types/components/searchcraft-input-caption/searchcraft-input-caption.d.ts +0 -9
- package/dist/types/components/searchcraft-input-icon/searchcraft-input-icon.d.ts +0 -9
- package/readme.md +0 -11
- /package/dist/searchcraft-javascript-sdk/{p-b0c1fd63.js.map → p-69eed21e.js.map} +0 -0
- /package/dist/searchcraft-javascript-sdk/{p-99356c9a.entry.js.map → p-69f64bdd.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchcraft-base-search-results.types.js","sourceRoot":"","sources":["../../../src/types/searchcraft-base-search-results.types.ts"],"names":[],"mappings":"","sourcesContent":["export type SearchResultFieldName = {\n fieldName: string;\n dataType: 'text' | 'date';\n};\n\nexport type SearchResultMapping = {\n fieldNames: SearchResultFieldName[];\n delimeter?: string;\n};\n\nexport type SearchResultMappings = {\n body?: SearchResultMapping;\n buttonHref?: SearchResultMapping;\n containerHref?: SearchResultMapping;\n footer?: SearchResultMapping;\n imageSource?: SearchResultMapping;\n subtitle?: SearchResultMapping;\n title?: SearchResultMapping;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchcraft-filter-panel.types.js","sourceRoot":"","sources":["../../../src/types/searchcraft-filter-panel.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface FilterItem {\n type:\n | 'facets'\n | 'dateRange'\n | 'numericRange'\n | 'exactMatchToggle'\n | 'mostRecentToggle';\n label: string;\n options: object | null;\n}\n\nexport interface FacetsFilterItem extends FilterItem {\n fieldName: string;\n type: 'facets';\n options: {\n showSublevel: boolean;\n };\n}\n\nexport interface NumericFilterItem extends FilterItem {\n fieldName: string;\n type: 'numericRange';\n options: {\n min: number;\n max: number;\n granularity: number;\n };\n}\n\nexport interface DateRangeFilterItem extends FilterItem {\n fieldName: string;\n type: 'dateRange';\n options: {\n minDate: Date;\n maxDate: Date;\n granularity: 'year' | 'month' | 'day' | 'hour';\n };\n}\n\nexport interface ExactMatchToggleFilterItem extends FilterItem {\n type: 'exactMatchToggle';\n options: {\n subLabel?: string;\n };\n}\n\nexport interface MostRecentToggleFilterItem extends FilterItem {\n type: 'mostRecentToggle';\n options: {\n subLabel?: string;\n };\n}\n"]}
|
|
@@ -10,28 +10,6 @@ export function parseCustomStyles(styles) {
|
|
|
10
10
|
}
|
|
11
11
|
return styles || {};
|
|
12
12
|
}
|
|
13
|
-
export function parseSearchKeys(documentAttributesForDisplay) {
|
|
14
|
-
try {
|
|
15
|
-
const parsedKeys = JSON.parse(documentAttributesForDisplay);
|
|
16
|
-
if (Array.isArray(parsedKeys) &&
|
|
17
|
-
parsedKeys.every((key) => typeof key === 'string')) {
|
|
18
|
-
return parsedKeys;
|
|
19
|
-
}
|
|
20
|
-
console.warn('searchKeys must be a JSON array of strings. Defaulting to an empty array.');
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
console.error('Failed to parse searchKeys:', error);
|
|
25
|
-
return [];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export function extractDynamicProperties(document, keys) {
|
|
29
|
-
const extractedProperties = {};
|
|
30
|
-
keys.forEach((key) => {
|
|
31
|
-
extractedProperties[key] = document[key] || '';
|
|
32
|
-
});
|
|
33
|
-
return extractedProperties;
|
|
34
|
-
}
|
|
35
13
|
export function serializeStyles(styles) {
|
|
36
14
|
try {
|
|
37
15
|
return JSON.stringify(styles);
|
|
@@ -41,6 +19,13 @@ export function serializeStyles(styles) {
|
|
|
41
19
|
return '{}';
|
|
42
20
|
}
|
|
43
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Given a timestamp value, returns a formatted time string for the time
|
|
24
|
+
* since now.
|
|
25
|
+
*
|
|
26
|
+
* @param timestamp
|
|
27
|
+
* @returns {string} Formatted string value
|
|
28
|
+
*/
|
|
44
29
|
export function getFormattedTimeFromNow(timestamp) {
|
|
45
30
|
const now = new Date();
|
|
46
31
|
const inputTime = new Date(timestamp);
|
|
@@ -60,19 +45,6 @@ export function getFormattedTimeFromNow(timestamp) {
|
|
|
60
45
|
}
|
|
61
46
|
return `${years}y ago`;
|
|
62
47
|
}
|
|
63
|
-
export function flattenFacets(sections) {
|
|
64
|
-
return sections.map((section) => {
|
|
65
|
-
const fullPath = section.path;
|
|
66
|
-
// Create the FacetCheckbox object
|
|
67
|
-
const facetCheckbox = {
|
|
68
|
-
label: fullPath.replace(/^\//, ''), // Format the label without leading slash
|
|
69
|
-
value: fullPath, // The full path as the value
|
|
70
|
-
count: section.count, // Count from the Section
|
|
71
|
-
children: flattenFacets(section.children || []), // Recursively flatten children
|
|
72
|
-
};
|
|
73
|
-
return facetCheckbox;
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
48
|
export function filterPaths(paths) {
|
|
77
49
|
return paths.filter((path) => {
|
|
78
50
|
const parts = path.split('/').filter(Boolean);
|
|
@@ -85,4 +57,111 @@ export function filterPaths(paths) {
|
|
|
85
57
|
export function formatNumberWithCommas(number) {
|
|
86
58
|
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
87
59
|
}
|
|
60
|
+
export function getMillis(unit) {
|
|
61
|
+
const millisInHour = 60 * 60 * 1000;
|
|
62
|
+
const millisInDay = 24 * millisInHour;
|
|
63
|
+
const millisInMonth = 30 * millisInDay;
|
|
64
|
+
const millisInYear = 365 * millisInDay;
|
|
65
|
+
switch (unit) {
|
|
66
|
+
case 'hour':
|
|
67
|
+
return millisInHour;
|
|
68
|
+
case 'day':
|
|
69
|
+
return millisInDay;
|
|
70
|
+
case 'month':
|
|
71
|
+
return millisInMonth;
|
|
72
|
+
case 'year':
|
|
73
|
+
return millisInYear;
|
|
74
|
+
default:
|
|
75
|
+
return 3600000;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Given an array of facet paths, removes parent facet paths.
|
|
80
|
+
*/
|
|
81
|
+
export function removeSubstringMatches(arr) {
|
|
82
|
+
return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Given a document and a SearchResultMapping, return a mapped value from the document.
|
|
86
|
+
*
|
|
87
|
+
* @param document
|
|
88
|
+
* @param {SearchResultMapping} mapping
|
|
89
|
+
* @returns {string | undefined}
|
|
90
|
+
*/
|
|
91
|
+
export function getDocumentValueFromSearchResultMapping(document, mapping) {
|
|
92
|
+
if (document && mapping) {
|
|
93
|
+
return mapping.fieldNames
|
|
94
|
+
.map((fieldNameDetails) => {
|
|
95
|
+
let valueFound = document[fieldNameDetails.fieldName];
|
|
96
|
+
if (valueFound && fieldNameDetails.dataType === 'date') {
|
|
97
|
+
valueFound = getFormattedTimeFromNow(valueFound);
|
|
98
|
+
}
|
|
99
|
+
return valueFound;
|
|
100
|
+
})
|
|
101
|
+
.filter((value) => !!value)
|
|
102
|
+
.join(mapping.delimeter || ' ');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function deepMergeWithSpread(obj1, obj2) {
|
|
106
|
+
const result = Object.assign({}, obj1);
|
|
107
|
+
for (const key in obj2) {
|
|
108
|
+
// biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>
|
|
109
|
+
if (obj2.hasOwnProperty(key)) {
|
|
110
|
+
if (obj2[key] instanceof Object && obj1[key] instanceof Object) {
|
|
111
|
+
result[key] = deepMergeWithSpread(obj1[key], obj2[key]);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
result[key] = obj2[key];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
function facetToObject(child) {
|
|
121
|
+
const transformed = {
|
|
122
|
+
count: child.count,
|
|
123
|
+
path: child.path,
|
|
124
|
+
children: {},
|
|
125
|
+
};
|
|
126
|
+
if (child.children) {
|
|
127
|
+
child.children.forEach((subChild) => {
|
|
128
|
+
transformed.children[subChild.path] = facetToObject(subChild);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return transformed;
|
|
132
|
+
}
|
|
133
|
+
function objectToFacet(childObject) {
|
|
134
|
+
const transformed = {
|
|
135
|
+
count: childObject.count,
|
|
136
|
+
path: childObject.path,
|
|
137
|
+
children: [],
|
|
138
|
+
};
|
|
139
|
+
if (Object.keys(childObject.children).length > 0) {
|
|
140
|
+
transformed.children = Object.values(childObject.children).map((subChildObject) => objectToFacet(subChildObject));
|
|
141
|
+
}
|
|
142
|
+
return transformed;
|
|
143
|
+
}
|
|
144
|
+
export function mergeFacetRoots(fieldName, root1, root2) {
|
|
145
|
+
const array1 = root1[fieldName];
|
|
146
|
+
const array2 = root2[fieldName];
|
|
147
|
+
const rootFacetChild1 = {
|
|
148
|
+
count: 0,
|
|
149
|
+
path: '/',
|
|
150
|
+
children: array1,
|
|
151
|
+
};
|
|
152
|
+
const rootFacetChild2 = {
|
|
153
|
+
count: 0,
|
|
154
|
+
path: '/',
|
|
155
|
+
children: array2,
|
|
156
|
+
};
|
|
157
|
+
// Transform into objects
|
|
158
|
+
const facetObject1 = facetToObject(rootFacetChild1);
|
|
159
|
+
const facetObject2 = facetToObject(rootFacetChild2);
|
|
160
|
+
// Deep merge the objects
|
|
161
|
+
const mergedFacetObject = deepMergeWithSpread(facetObject1, facetObject2);
|
|
162
|
+
const mergedFacetChild = objectToFacet(mergedFacetObject);
|
|
163
|
+
return {
|
|
164
|
+
[fieldName]: mergedFacetChild.children,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
88
167
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAC/B,MAAuC;IAEvC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,4BAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5D,IACE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACzB,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,EAClD,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAyC,EACzC,IAAc;IAEd,MAAM,mBAAmB,GAAoC,EAAE,CAAC;IAChE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,mBAAmB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAA8C;IAE9C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,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;AAgBD,MAAM,UAAU,aAAa,CAAC,QAAmB;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE9B,kCAAkC;QAClC,MAAM,aAAa,GAAkB;YACnC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,yCAAyC;YAC7E,KAAK,EAAE,QAAQ,EAAE,6BAA6B;YAC9C,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,yBAAyB;YAC/C,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,+BAA+B;SACjF,CAAC;QAEF,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAK;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAChB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,SAAS,KAAK,IAAI,CACtE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAM;IAC3C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC","sourcesContent":["export function parseCustomStyles(\n styles: string | Record<string, string>,\n): Record<string, string> {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n } catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\n\nexport function parseSearchKeys(\n documentAttributesForDisplay: string,\n): string[] {\n try {\n const parsedKeys = JSON.parse(documentAttributesForDisplay);\n if (\n Array.isArray(parsedKeys) &&\n parsedKeys.every((key) => typeof key === 'string')\n ) {\n return parsedKeys;\n }\n console.warn(\n 'searchKeys must be a JSON array of strings. Defaulting to an empty array.',\n );\n return [];\n } catch (error) {\n console.error('Failed to parse searchKeys:', error);\n return [];\n }\n}\n\nexport function extractDynamicProperties(\n document: Record<string, string | number>,\n keys: string[],\n) {\n const extractedProperties: Record<string, string | number> = {};\n keys.forEach((key) => {\n extractedProperties[key] = document[key] || '';\n });\n return extractedProperties;\n}\n\nexport function serializeStyles(\n styles: Record<string, Record<string, string>>,\n): string {\n try {\n return JSON.stringify(styles);\n } catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\n}\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\ntype Section = {\n count: number;\n path: string;\n children: Section[];\n};\n\ntype FacetCheckbox = {\n count: number;\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n children: any[];\n label: string;\n value: string;\n};\n\nexport function flattenFacets(sections: Section[]): FacetCheckbox[] {\n return sections.map((section) => {\n const fullPath = section.path;\n\n // Create the FacetCheckbox object\n const facetCheckbox: FacetCheckbox = {\n label: fullPath.replace(/^\\//, ''), // Format the label without leading slash\n value: fullPath, // The full path as the value\n count: section.count, // Count from the Section\n children: flattenFacets(section.children || []), // Recursively flatten children\n };\n\n return facetCheckbox;\n });\n}\n\nexport function filterPaths(paths) {\n return paths.filter((path) => {\n const parts = path.split('/').filter(Boolean);\n\n if (parts.length > 1) {\n return true;\n }\n\n return !paths.some(\n (otherPath) => otherPath.startsWith(`${path}/`) && otherPath !== path,\n );\n });\n}\n\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n FacetChild,\n FacetChildObject,\n FacetRoot,\n} from '@searchcraft/core';\nimport type { SearchResultMapping } from 'types';\n\nexport function parseCustomStyles(\n styles: string | Record<string, string>,\n): Record<string, string> {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n } catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\n\nexport function serializeStyles(\n styles: Record<string, Record<string, string>>,\n): string {\n try {\n return JSON.stringify(styles);\n } catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\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\nexport function filterPaths(paths) {\n return paths.filter((path) => {\n const parts = path.split('/').filter(Boolean);\n\n if (parts.length > 1) {\n return true;\n }\n\n return !paths.some(\n (otherPath) => otherPath.startsWith(`${path}/`) && otherPath !== path,\n );\n });\n}\n\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\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/**\n * Given an array of facet paths, removes parent facet paths.\n */\nexport function removeSubstringMatches(arr: string[]): string[] {\n return arr.filter(\n (entry, index, array) =>\n !array.some(\n (otherEntry, otherIndex) =>\n otherIndex !== index && otherEntry.includes(entry),\n ),\n );\n}\n\n/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\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 && fieldNameDetails.dataType === 'date') {\n valueFound = getFormattedTimeFromNow(valueFound as string);\n }\n\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimeter || ' ');\n }\n}\n\nfunction deepMergeWithSpread(obj1, obj2) {\n const result = { ...obj1 };\n\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n } else {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction facetToObject(child: FacetChild): FacetChildObject {\n const transformed: FacetChildObject = {\n count: child.count,\n path: child.path,\n children: {},\n };\n\n if (child.children) {\n child.children.forEach((subChild) => {\n transformed.children[subChild.path] = facetToObject(subChild);\n });\n }\n\n return transformed;\n}\n\nfunction objectToFacet(childObject: FacetChildObject): FacetChild {\n const transformed: FacetChild = {\n count: childObject.count,\n path: childObject.path,\n children: [],\n };\n\n if (Object.keys(childObject.children).length > 0) {\n transformed.children = Object.values(childObject.children).map(\n (subChildObject) => objectToFacet(subChildObject),\n );\n }\n\n return transformed;\n}\n\nexport function mergeFacetRoots(\n fieldName: string,\n root1: FacetRoot,\n root2: FacetRoot,\n): FacetRoot {\n const array1 = root1[fieldName];\n const array2 = root2[fieldName];\n\n const rootFacetChild1: FacetChild = {\n count: 0,\n path: '/',\n children: array1,\n };\n\n const rootFacetChild2: FacetChild = {\n count: 0,\n path: '/',\n children: array2,\n };\n\n // Transform into objects\n const facetObject1 = facetToObject(rootFacetChild1);\n const facetObject2 = facetToObject(rootFacetChild2);\n\n // Deep merge the objects\n const mergedFacetObject: FacetChildObject = deepMergeWithSpread(\n facetObject1,\n facetObject2,\n );\n\n const mergedFacetChild = objectToFacet(mergedFacetObject);\n\n return {\n [fieldName]: mergedFacetChild.children,\n };\n}\n"]}
|
package/dist/components/index.js
CHANGED
|
@@ -6,13 +6,11 @@ import { SearchcraftButton } from './searchcraft-button.js';
|
|
|
6
6
|
import { SearchcraftButtonIcon } from './searchcraft-button-icon.js';
|
|
7
7
|
import { SearchcraftCheckIcon } from './searchcraft-check-icon.js';
|
|
8
8
|
import { SearchcraftClearIconSet } from './searchcraft-clear-icon-set.js';
|
|
9
|
-
import { SearchcraftClearInputButton } from './searchcraft-clear-input-button.js';
|
|
10
9
|
import { SearchcraftDashIcon } from './searchcraft-dash-icon.js';
|
|
11
10
|
import { SearchcraftErrorMessage } from './searchcraft-error-message.js';
|
|
12
|
-
import {
|
|
11
|
+
import { SearchcraftFacetList } from './searchcraft-facet-list.js';
|
|
12
|
+
import { SearchcraftFilterPanel } from './searchcraft-filter-panel.js';
|
|
13
13
|
import { SearchcraftInput } from './searchcraft-input.js';
|
|
14
|
-
import { SearchcraftInputCaption } from './searchcraft-input-caption.js';
|
|
15
|
-
import { SearchcraftInputIcon } from './searchcraft-input-icon.js';
|
|
16
14
|
import { SearchcraftInputLabel } from './searchcraft-input-label.js';
|
|
17
15
|
import { SearchcraftResultsInfo } from './searchcraft-results-info.js';
|
|
18
16
|
import { SearchcraftSearchIconSet } from './searchcraft-search-icon-set.js';
|
|
@@ -20,9 +18,9 @@ import { SearchcraftSlider } from './searchcraft-slider.js';
|
|
|
20
18
|
import { SearchcraftSpinnerDark } from './searchcraft-spinner-dark.js';
|
|
21
19
|
import { SearchcraftSpinnerLight } from './searchcraft-spinner-light.js';
|
|
22
20
|
import { SearchcraftToggleButton } from './searchcraft-toggle-button.js';
|
|
23
|
-
export { g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-
|
|
24
|
-
export {
|
|
25
|
-
export { u as useSearchcraftStore, a as useThemeStore } from './p-
|
|
21
|
+
export { g as getAssetPath, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-5639be85.js';
|
|
22
|
+
export { p as parseCustomStyles, s as serializeStyles } from './p-0deddac7.js';
|
|
23
|
+
export { u as useSearchcraftStore, a as useThemeStore } from './p-be63dcac.js';
|
|
26
24
|
|
|
27
25
|
const defineCustomElements = (opts) => {
|
|
28
26
|
if (typeof customElements !== 'undefined') {
|
|
@@ -35,13 +33,11 @@ const defineCustomElements = (opts) => {
|
|
|
35
33
|
SearchcraftButtonIcon,
|
|
36
34
|
SearchcraftCheckIcon,
|
|
37
35
|
SearchcraftClearIconSet,
|
|
38
|
-
SearchcraftClearInputButton,
|
|
39
36
|
SearchcraftDashIcon,
|
|
40
37
|
SearchcraftErrorMessage,
|
|
41
|
-
|
|
38
|
+
SearchcraftFacetList,
|
|
39
|
+
SearchcraftFilterPanel,
|
|
42
40
|
SearchcraftInput,
|
|
43
|
-
SearchcraftInputCaption,
|
|
44
|
-
SearchcraftInputIcon,
|
|
45
41
|
SearchcraftInputLabel,
|
|
46
42
|
SearchcraftResultsInfo,
|
|
47
43
|
SearchcraftSearchIconSet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index.js","mappings":"
|
|
1
|
+
{"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './p-
|
|
1
|
+
import { p as proxyCustomElement, H, h } from './p-5639be85.js';
|
|
2
2
|
|
|
3
3
|
const SearchcraftCheckIcon = /*@__PURE__*/ proxyCustomElement(class SearchcraftCheckIcon extends H {
|
|
4
4
|
constructor() {
|
|
@@ -26,4 +26,4 @@ function defineCustomElement() {
|
|
|
26
26
|
|
|
27
27
|
export { SearchcraftCheckIcon as S, defineCustomElement as d };
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=p-
|
|
29
|
+
//# sourceMappingURL=p-04d13314.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-04d13314.js","mappings":";;MAMa,oBAAoB;;;;;;IAC/B,MAAM;QACJ,QACE,4DAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,IACzD,iFAA6B,EAC7B,6DACE,CAAC,EAAC,uCAAuC,EACzC,MAAM,EAAC,OAAO,kBACD,GAAG,oBACD,OAAO,qBACN,OAAO,GACvB,CACE,EACN;KACH;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/assets/searchcraft-check-icon.tsx"],"sourcesContent":["import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-check-icon',\n shadow: true,\n})\nexport class SearchcraftCheckIcon {\n render() {\n return (\n <svg width='16' height='16' viewBox='0 0 16 16' fill='none'>\n <title>Checkbox Check</title>\n <path\n d='M13.9999 2L5.74988 10L1.99988 6.36364'\n stroke='white'\n stroke-width='3'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
function parseCustomStyles(styles) {
|
|
2
|
+
if (typeof styles === 'string') {
|
|
3
|
+
try {
|
|
4
|
+
return JSON.parse(styles);
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
console.error('Invalid customStyles format:', styles);
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return styles || {};
|
|
12
|
+
}
|
|
13
|
+
function serializeStyles(styles) {
|
|
14
|
+
try {
|
|
15
|
+
return JSON.stringify(styles);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
console.error('Error serializing styles:', error);
|
|
19
|
+
return '{}';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Given a timestamp value, returns a formatted time string for the time
|
|
24
|
+
* since now.
|
|
25
|
+
*
|
|
26
|
+
* @param timestamp
|
|
27
|
+
* @returns {string} Formatted string value
|
|
28
|
+
*/
|
|
29
|
+
function getFormattedTimeFromNow(timestamp) {
|
|
30
|
+
const now = new Date();
|
|
31
|
+
const inputTime = new Date(timestamp);
|
|
32
|
+
const diffInSeconds = Math.floor((now.getTime() - inputTime.getTime()) / 1000);
|
|
33
|
+
const minutes = Math.floor(diffInSeconds / 60);
|
|
34
|
+
const hours = Math.floor(minutes / 60);
|
|
35
|
+
const days = Math.floor(hours / 24);
|
|
36
|
+
const years = Math.floor(days / 365);
|
|
37
|
+
if (minutes < 60) {
|
|
38
|
+
return `${minutes}m ago`;
|
|
39
|
+
}
|
|
40
|
+
if (hours < 24) {
|
|
41
|
+
return `${hours}h ago`;
|
|
42
|
+
}
|
|
43
|
+
if (days < 365) {
|
|
44
|
+
return `${days}d ago`;
|
|
45
|
+
}
|
|
46
|
+
return `${years}y ago`;
|
|
47
|
+
}
|
|
48
|
+
function formatNumberWithCommas(number) {
|
|
49
|
+
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
50
|
+
}
|
|
51
|
+
function getMillis(unit) {
|
|
52
|
+
const millisInHour = 60 * 60 * 1000;
|
|
53
|
+
const millisInDay = 24 * millisInHour;
|
|
54
|
+
const millisInMonth = 30 * millisInDay;
|
|
55
|
+
const millisInYear = 365 * millisInDay;
|
|
56
|
+
switch (unit) {
|
|
57
|
+
case 'hour':
|
|
58
|
+
return millisInHour;
|
|
59
|
+
case 'day':
|
|
60
|
+
return millisInDay;
|
|
61
|
+
case 'month':
|
|
62
|
+
return millisInMonth;
|
|
63
|
+
case 'year':
|
|
64
|
+
return millisInYear;
|
|
65
|
+
default:
|
|
66
|
+
return 3600000;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Given an array of facet paths, removes parent facet paths.
|
|
71
|
+
*/
|
|
72
|
+
function removeSubstringMatches(arr) {
|
|
73
|
+
return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Given a document and a SearchResultMapping, return a mapped value from the document.
|
|
77
|
+
*
|
|
78
|
+
* @param document
|
|
79
|
+
* @param {SearchResultMapping} mapping
|
|
80
|
+
* @returns {string | undefined}
|
|
81
|
+
*/
|
|
82
|
+
function getDocumentValueFromSearchResultMapping(document, mapping) {
|
|
83
|
+
if (document && mapping) {
|
|
84
|
+
return mapping.fieldNames
|
|
85
|
+
.map((fieldNameDetails) => {
|
|
86
|
+
let valueFound = document[fieldNameDetails.fieldName];
|
|
87
|
+
if (valueFound && fieldNameDetails.dataType === 'date') {
|
|
88
|
+
valueFound = getFormattedTimeFromNow(valueFound);
|
|
89
|
+
}
|
|
90
|
+
return valueFound;
|
|
91
|
+
})
|
|
92
|
+
.filter((value) => !!value)
|
|
93
|
+
.join(mapping.delimeter || ' ');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function deepMergeWithSpread(obj1, obj2) {
|
|
97
|
+
const result = Object.assign({}, obj1);
|
|
98
|
+
for (const key in obj2) {
|
|
99
|
+
// biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>
|
|
100
|
+
if (obj2.hasOwnProperty(key)) {
|
|
101
|
+
if (obj2[key] instanceof Object && obj1[key] instanceof Object) {
|
|
102
|
+
result[key] = deepMergeWithSpread(obj1[key], obj2[key]);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
result[key] = obj2[key];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
function facetToObject(child) {
|
|
112
|
+
const transformed = {
|
|
113
|
+
count: child.count,
|
|
114
|
+
path: child.path,
|
|
115
|
+
children: {},
|
|
116
|
+
};
|
|
117
|
+
if (child.children) {
|
|
118
|
+
child.children.forEach((subChild) => {
|
|
119
|
+
transformed.children[subChild.path] = facetToObject(subChild);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return transformed;
|
|
123
|
+
}
|
|
124
|
+
function objectToFacet(childObject) {
|
|
125
|
+
const transformed = {
|
|
126
|
+
count: childObject.count,
|
|
127
|
+
path: childObject.path,
|
|
128
|
+
children: [],
|
|
129
|
+
};
|
|
130
|
+
if (Object.keys(childObject.children).length > 0) {
|
|
131
|
+
transformed.children = Object.values(childObject.children).map((subChildObject) => objectToFacet(subChildObject));
|
|
132
|
+
}
|
|
133
|
+
return transformed;
|
|
134
|
+
}
|
|
135
|
+
function mergeFacetRoots(fieldName, root1, root2) {
|
|
136
|
+
const array1 = root1[fieldName];
|
|
137
|
+
const array2 = root2[fieldName];
|
|
138
|
+
const rootFacetChild1 = {
|
|
139
|
+
count: 0,
|
|
140
|
+
path: '/',
|
|
141
|
+
children: array1,
|
|
142
|
+
};
|
|
143
|
+
const rootFacetChild2 = {
|
|
144
|
+
count: 0,
|
|
145
|
+
path: '/',
|
|
146
|
+
children: array2,
|
|
147
|
+
};
|
|
148
|
+
// Transform into objects
|
|
149
|
+
const facetObject1 = facetToObject(rootFacetChild1);
|
|
150
|
+
const facetObject2 = facetToObject(rootFacetChild2);
|
|
151
|
+
// Deep merge the objects
|
|
152
|
+
const mergedFacetObject = deepMergeWithSpread(facetObject1, facetObject2);
|
|
153
|
+
const mergedFacetChild = objectToFacet(mergedFacetObject);
|
|
154
|
+
return {
|
|
155
|
+
[fieldName]: mergedFacetChild.children,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export { getMillis as a, formatNumberWithCommas as f, getDocumentValueFromSearchResultMapping as g, mergeFacetRoots as m, parseCustomStyles as p, removeSubstringMatches as r, serializeStyles as s };
|
|
160
|
+
|
|
161
|
+
//# sourceMappingURL=p-0deddac7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-0deddac7.js","mappings":"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","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["import type {\n FacetChild,\n FacetChildObject,\n FacetRoot,\n} from '@searchcraft/core';\nimport type { SearchResultMapping } from 'types';\n\nexport function parseCustomStyles(\n styles: string | Record<string, string>,\n): Record<string, string> {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n } catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\n\nexport function serializeStyles(\n styles: Record<string, Record<string, string>>,\n): string {\n try {\n return JSON.stringify(styles);\n } catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\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\nexport function filterPaths(paths) {\n return paths.filter((path) => {\n const parts = path.split('/').filter(Boolean);\n\n if (parts.length > 1) {\n return true;\n }\n\n return !paths.some(\n (otherPath) => otherPath.startsWith(`${path}/`) && otherPath !== path,\n );\n });\n}\n\nexport function formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\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/**\n * Given an array of facet paths, removes parent facet paths.\n */\nexport function removeSubstringMatches(arr: string[]): string[] {\n return arr.filter(\n (entry, index, array) =>\n !array.some(\n (otherEntry, otherIndex) =>\n otherIndex !== index && otherEntry.includes(entry),\n ),\n );\n}\n\n/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\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 && fieldNameDetails.dataType === 'date') {\n valueFound = getFormattedTimeFromNow(valueFound as string);\n }\n\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimeter || ' ');\n }\n}\n\nfunction deepMergeWithSpread(obj1, obj2) {\n const result = { ...obj1 };\n\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n } else {\n result[key] = obj2[key];\n }\n }\n }\n\n return result;\n}\n\nfunction facetToObject(child: FacetChild): FacetChildObject {\n const transformed: FacetChildObject = {\n count: child.count,\n path: child.path,\n children: {},\n };\n\n if (child.children) {\n child.children.forEach((subChild) => {\n transformed.children[subChild.path] = facetToObject(subChild);\n });\n }\n\n return transformed;\n}\n\nfunction objectToFacet(childObject: FacetChildObject): FacetChild {\n const transformed: FacetChild = {\n count: childObject.count,\n path: childObject.path,\n children: [],\n };\n\n if (Object.keys(childObject.children).length > 0) {\n transformed.children = Object.values(childObject.children).map(\n (subChildObject) => objectToFacet(subChildObject),\n );\n }\n\n return transformed;\n}\n\nexport function mergeFacetRoots(\n fieldName: string,\n root1: FacetRoot,\n root2: FacetRoot,\n): FacetRoot {\n const array1 = root1[fieldName];\n const array2 = root2[fieldName];\n\n const rootFacetChild1: FacetChild = {\n count: 0,\n path: '/',\n children: array1,\n };\n\n const rootFacetChild2: FacetChild = {\n count: 0,\n path: '/',\n children: array2,\n };\n\n // Transform into objects\n const facetObject1 = facetToObject(rootFacetChild1);\n const facetObject2 = facetToObject(rootFacetChild2);\n\n // Deep merge the objects\n const mergedFacetObject: FacetChildObject = deepMergeWithSpread(\n facetObject1,\n facetObject2,\n );\n\n const mergedFacetChild = objectToFacet(mergedFacetObject);\n\n return {\n [fieldName]: mergedFacetChild.children,\n };\n}\n"],"version":3}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-5639be85.js';
|
|
2
|
+
import { c as classNames } from './p-5cdc6210.js';
|
|
3
|
+
import { d as defineCustomElement$1 } from './p-9f2b8375.js';
|
|
4
|
+
|
|
5
|
+
const searchcraftButtonModuleCss = ":root{--sc-spinner-size:20px;--sc-input-border-radius:8px;--sc-input-search-icon-size:20px;--sc-input-clear-icon-size:20px;--sc-input-padding-left:44px;--sc-input-padding-right:44px;--sc-image-border-radius:8px}:root{--sc-surface-disabled:#D9D9D9;--sc-surface-neutral-primary:#FFFFFF;--sc-surface-neutral-secondary:#F3F3F3;--sc-surface-neutral-light:#FFFFFF;--sc-surface-neutral-primary-hover:#FAFAFA;--sc-surface-neutral-primary-active:#F7F7F7;--sc-surface-neutral-secondary-hover:#EDEDED;--sc-surface-neutral-secondary-active:#E6E6E6;--sc-surface-brand-primary:#000000;--sc-surface-brand-secondary:#E6E6E6;--sc-surface-brand-primary-hover:#2E2E2E;--sc-surface-brand-primary-active:#292929;--sc-surface-brand-secondary-hover:#EBEBEB;--sc-surface-brand-secondary-active:#E0E0E0;--sc-surface-success-primary:#008000;--sc-surface-success-secondary:#CCFFCC;--sc-surface-success-primary-hover:#009900;--sc-surface-success-primary-active:#006600;--sc-surface-success-secondary-hover:#E6FFE6;--sc-surface-success-secondary-active:#E6FFE6;--sc-surface-caution-primary:#CC6600;--sc-surface-caution-secondary:#FFD9B3;--sc-surface-caution-primary-hover:#E57300;--sc-surface-caution-primary-active:#B25A00;--sc-surface-caution-secondary-hover:#FFE5CC;--sc-surface-caution-secondary-active:#FFCC99;--sc-surface-danger-primary:#CC0000;--sc-surface-danger-secondary:#FFCCCC;--sc-surface-danger-primary-hover:#E50000;--sc-surface-danger-primary-active:#B30000;--sc-surface-danger-secondary-hover:#FFE7E7;--sc-surface-danger-secondary-active:#FFB3B3;--sc-content-brand:#000000;--sc-content-success:#008000;--sc-content-caution:#994D00;--sc-content-danger:#990000;--sc-content-disabled:#737373;--sc-content-neutral-primary:#292929;--sc-content-neutral-secondary:#404040;--sc-content-brand-on-primary:#FFFFFF;--sc-content-success-on-primary:#FFFFFF;--sc-content-caution-on-primary:#FFFFFF;--sc-content-danger-on-primary:#FFFFFF;--sc-content-disabled-on-disabled:#737373;--sc-border-neutral:rgba(0,0,0, 0.1);--sc-border-brand:#000000;--sc-border-success:#008000;--sc-border-caution:#CC6600;--sc-border-danger:#CC0000;--sc-border-disabled:#737373}:root{--sc-font-family:sans-serif;--sc-heading-1-font-size:32px;--sc-heading-1-line-height:36px;--sc-heading-1-font-weight:700;--sc-heading-2-font-size:29px;--sc-heading-2-line-height:32px;--sc-heading-2-font-weight:700;--sc-heading-3-font-size:26px;--sc-heading-3-line-height:28px;--sc-heading-3-font-weight:700;--sc-heading-4-font-size:23px;--sc-heading-4-line-height:24px;--sc-heading-4-font-weight:700;--sc-heading-5-font-size:20px;--sc-heading-5-line-height:24px;--sc-heading-5-font-weight:700;--sc-heading-6-font-size:10px;--sc-heading-6-line-height:12px;--sc-heading-6-font-weight:700;--sc-body-bold-font-size:16px;--sc-body-bold-line-height:20px;--sc-body-bold-font-weight:700;--sc-body-font-size:16px;--sc-body-line-height:20px;--sc-body-font-weight:400;--sc-body-small-bold-font-size:12px;--sc-body-small-bold-line-height:16px;--sc-body-small-bold-font-weight:700;--sc-body-small-font-size:12px;--sc-body-small-line-height:16px;--sc-body-small-font-weight:400}.searchcraft-button{font-family:var(--sc-font-family);-webkit-font-smoothing:antialiased;font-size:var(--sc-body-bold-font-size);font-weight:var(--sc-body-bold-font-weight);line-height:var(--sc-body-bold-line-height);border-radius:8px;display:flex;padding:12px 20px;position:relative;background-color:var(--sc-surface-brand-primary);border:1px solid var(--sc-border-primary);color:var(--sc-content-brand-on-primary)}.searchcraft-button:hover{cursor:pointer;background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button:focus{outline:2px solid var(--sc-surface-brand-primary)}.buttonLabel{position:relative}";
|
|
6
|
+
const SearchcraftButtonStyle0 = searchcraftButtonModuleCss;
|
|
7
|
+
|
|
8
|
+
const SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButton extends H {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
this.buttonClick = createEvent(this, "buttonClick", 7);
|
|
13
|
+
this.handleClick = () => {
|
|
14
|
+
this.buttonClick.emit();
|
|
15
|
+
};
|
|
16
|
+
this.iconElement = undefined;
|
|
17
|
+
this.iconOnly = false;
|
|
18
|
+
this.iconPosition = 'left';
|
|
19
|
+
this.label = 'Search';
|
|
20
|
+
this.isRequesting = false;
|
|
21
|
+
}
|
|
22
|
+
render() {
|
|
23
|
+
return (h(Fragment, { key: '9310049798538e49e52a11b846aec6a57d4ddd58' }, this.iconOnly ? (h("button", { class: classNames('searchcraft-button'), onClick: this.handleClick, type: 'submit' }, this.isRequesting ? (h("searchcraft-spinner-dark", null)) : (this.iconElement))) : (h("button", { class: classNames('searchcraft-button'), onClick: this.handleClick, type: 'submit' }, this.iconPosition === 'left' && this.iconElement, h("span", { class: classNames('buttonLabel', 'searchcraft-button-label') }, this.label)))));
|
|
24
|
+
}
|
|
25
|
+
static get style() { return SearchcraftButtonStyle0; }
|
|
26
|
+
}, [0, "searchcraft-button", {
|
|
27
|
+
"iconElement": [16],
|
|
28
|
+
"iconOnly": [4, "icon-only"],
|
|
29
|
+
"iconPosition": [1, "icon-position"],
|
|
30
|
+
"label": [1],
|
|
31
|
+
"isRequesting": [32]
|
|
32
|
+
}]);
|
|
33
|
+
function defineCustomElement() {
|
|
34
|
+
if (typeof customElements === "undefined") {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const components = ["searchcraft-button", "searchcraft-spinner-dark"];
|
|
38
|
+
components.forEach(tagName => { switch (tagName) {
|
|
39
|
+
case "searchcraft-button":
|
|
40
|
+
if (!customElements.get(tagName)) {
|
|
41
|
+
customElements.define(tagName, SearchcraftButton);
|
|
42
|
+
}
|
|
43
|
+
break;
|
|
44
|
+
case "searchcraft-spinner-dark":
|
|
45
|
+
if (!customElements.get(tagName)) {
|
|
46
|
+
defineCustomElement$1();
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
} });
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { SearchcraftButton as S, defineCustomElement as d };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=p-37f54c0b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-37f54c0b.js","mappings":";;;;AAAA,MAAM,0BAA0B,GAAG,soHAAsoH,CAAC;AAC1qH,gCAAe,0BAA0B;;MCe5B,iBAAiB;;;;;QAUpB,gBAAW,GAAG;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB,CAAC;;wBAViB,KAAK;4BACD,MAAM;qBACb,QAAQ;4BAIA,KAAK;;IAM7B,MAAM;QACJ,QACE,EAAC,QAAQ,uDACN,IAAI,CAAC,QAAQ,IACZ,cACE,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,EACvC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,IAChB,mCAA4B,KAE5B,IAAI,CAAC,WAAW,CACjB,CACM,KAET,cACE,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,EACvC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EACjD,YAAM,KAAK,EAAE,UAAU,CAAC,aAAa,EAAE,0BAA0B,CAAC,IAC/D,IAAI,CAAC,KAAK,CACN,CACA,CACV,CACQ,EACX;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-button/searchcraft-button.module.scss?tag=searchcraft-button","src/components/searchcraft-button/searchcraft-button.tsx"],"sourcesContent":[".searchcraft-button {\n @include body-bold;\n\n border-radius: 8px;\n display: flex;\n padding: 12px 20px;\n position: relative;\n\n background-color: var(--sc-surface-brand-primary);\n border: 1px solid var(--sc-border-primary);\n color: var(--sc-content-brand-on-primary);\n\n &:hover {\n cursor: pointer;\n background-color: var(--sc-surface-brand-primary-hover);\n }\n\n &:focus {\n outline: 2px solid var(--sc-surface-brand-primary);\n }\n}\n\n.buttonLabel {\n position: relative;\n}","import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n State,\n Fragment,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-button',\n styleUrl: 'searchcraft-button.module.scss',\n shadow: false,\n})\nexport class SearchcraftButton {\n @Prop() iconElement?: Element;\n @Prop() iconOnly = false;\n @Prop() iconPosition = 'left';\n @Prop() label = 'Search';\n\n @Event() buttonClick!: EventEmitter<void>;\n\n @State() isRequesting = false;\n\n private handleClick = () => {\n this.buttonClick.emit();\n };\n\n render() {\n return (\n <Fragment>\n {this.iconOnly ? (\n <button\n class={classNames('searchcraft-button')}\n onClick={this.handleClick}\n type='submit'\n >\n {this.isRequesting ? (\n <searchcraft-spinner-dark />\n ) : (\n this.iconElement\n )}\n </button>\n ) : (\n <button\n class={classNames('searchcraft-button')}\n onClick={this.handleClick}\n type='submit'\n >\n {this.iconPosition === 'left' && this.iconElement}\n <span class={classNames('buttonLabel', 'searchcraft-button-label')}>\n {this.label}\n </span>\n </button>\n )}\n </Fragment>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const NAMESPACE = 'searchcraft-javascript-sdk';
|
|
2
|
-
const BUILD = /* searchcraft-javascript-sdk */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: false, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback:
|
|
2
|
+
const BUILD = /* searchcraft-javascript-sdk */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: false, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
Stencil Client Platform v4.22.3 | MIT Licensed | https://stenciljs.com
|
|
@@ -1160,14 +1160,28 @@ var addHydratedFlag = (elm) => {
|
|
|
1160
1160
|
var getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
|
|
1161
1161
|
var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
1162
1162
|
const hostRef = getHostRef(ref);
|
|
1163
|
+
const elm = ref;
|
|
1163
1164
|
const oldVal = hostRef.$instanceValues$.get(propName);
|
|
1164
1165
|
const flags = hostRef.$flags$;
|
|
1166
|
+
const instance = elm;
|
|
1165
1167
|
newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);
|
|
1166
1168
|
const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
|
|
1167
1169
|
const didValueChange = newVal !== oldVal && !areBothNaN;
|
|
1168
1170
|
if (didValueChange) {
|
|
1169
1171
|
hostRef.$instanceValues$.set(propName, newVal);
|
|
1170
1172
|
{
|
|
1173
|
+
if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
|
|
1174
|
+
const watchMethods = cmpMeta.$watchers$[propName];
|
|
1175
|
+
if (watchMethods) {
|
|
1176
|
+
watchMethods.map((watchMethodName) => {
|
|
1177
|
+
try {
|
|
1178
|
+
instance[watchMethodName](newVal, oldVal, propName);
|
|
1179
|
+
} catch (e) {
|
|
1180
|
+
consoleError(e, elm);
|
|
1181
|
+
}
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1171
1185
|
if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
|
|
1172
1186
|
scheduleUpdate(hostRef, false);
|
|
1173
1187
|
}
|
|
@@ -1179,7 +1193,10 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
1179
1193
|
var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
1180
1194
|
var _a, _b;
|
|
1181
1195
|
const prototype = Cstr.prototype;
|
|
1182
|
-
if (cmpMeta.$members$ ||
|
|
1196
|
+
if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
|
|
1197
|
+
if (Cstr.watchers && !cmpMeta.$watchers$) {
|
|
1198
|
+
cmpMeta.$watchers$ = Cstr.watchers;
|
|
1199
|
+
}
|
|
1183
1200
|
const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
|
|
1184
1201
|
members.map(([memberName, [memberFlags]]) => {
|
|
1185
1202
|
if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
|
|
@@ -1337,6 +1354,9 @@ var proxyCustomElement = (Cstr, compactMeta) => {
|
|
|
1337
1354
|
{
|
|
1338
1355
|
cmpMeta.$members$ = compactMeta[2];
|
|
1339
1356
|
}
|
|
1357
|
+
{
|
|
1358
|
+
cmpMeta.$watchers$ = Cstr.$watchers$;
|
|
1359
|
+
}
|
|
1340
1360
|
const originalConnectedCallback = Cstr.prototype.connectedCallback;
|
|
1341
1361
|
const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;
|
|
1342
1362
|
let hasHostListenerAttached = false;
|
|
@@ -1391,4 +1411,4 @@ var setPlatformOptions = (opts) => Object.assign(plt, opts);
|
|
|
1391
1411
|
|
|
1392
1412
|
export { Fragment as F, H, setNonce as a, setPlatformOptions as b, createEvent as c, getAssetPath as g, h, proxyCustomElement as p, setAssetPath as s };
|
|
1393
1413
|
|
|
1394
|
-
//# sourceMappingURL=p-
|
|
1414
|
+
//# sourceMappingURL=p-5639be85.js.map
|