@searchcraft/javascript-sdk 0.5.3 → 0.7.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 +53 -55
- package/dist/cjs/{index-b76bece0.js → index-d4b4a45e.js} +234 -130
- package/dist/cjs/index-d4b4a45e.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -4
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +15 -19
- package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +31 -17
- package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-button_3.cjs.entry.js +72 -0
- package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +163 -35
- package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +11 -10
- package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +238 -0
- package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-javascript-sdk.cjs.js +3 -3
- package/dist/cjs/searchcraft-javascript-sdk.cjs.js.map +1 -1
- package/dist/cjs/searchcraft-popover-button.cjs.entry.js +26 -0
- package/dist/cjs/searchcraft-popover-button.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-popover-form.cjs.entry.js +206 -5
- package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js +26 -0
- package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js.map +1 -0
- package/dist/cjs/searchcraft-results-info.cjs.entry.js +5 -5
- package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -1
- package/dist/cjs/store-abe47006.js +1479 -0
- package/dist/cjs/store-abe47006.js.map +1 -0
- package/dist/cjs/styles-7b2d06f2.js +28 -0
- package/dist/cjs/styles-7b2d06f2.js.map +1 -0
- package/dist/cjs/units-fe4d8083.js +88 -0
- package/dist/cjs/units-fe4d8083.js.map +1 -0
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +65 -32
- 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 +54 -4
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +86 -19
- 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 +52 -2
- package/dist/collection/components/searchcraft-button/searchcraft-button.js +32 -11
- package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
- package/dist/collection/components/searchcraft-button/searchcraft-button.module.css +52 -2
- package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +13 -5
- 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 +52 -2
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +27 -14
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -1
- package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.module.css +52 -2
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +19 -7
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -1
- package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.module.css +52 -2
- package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +106 -61
- package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +1 -1
- package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.module.css +56 -6
- package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +19 -7
- 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 +52 -2
- package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js +25 -0
- package/dist/collection/components/searchcraft-popover-button/searchcraft-popover-button.js.map +1 -0
- package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +299 -9
- package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +1 -1
- package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.module.css +322 -0
- package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +143 -0
- package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +1 -0
- package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.module.css +209 -0
- package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +50 -9
- 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 +11 -1
- 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 +53 -3
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +38 -15
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +1 -1
- package/dist/collection/components/searchcraft-slider/searchcraft-slider.module.css +52 -2
- package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +18 -10
- 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 +52 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/provider/store.js +14 -15
- package/dist/collection/provider/store.js.map +1 -1
- package/dist/collection/types/_shared.types.js +2 -0
- package/dist/collection/types/_shared.types.js.map +1 -0
- package/dist/collection/types/index.js +1 -0
- package/dist/collection/types/index.js.map +1 -1
- package/dist/collection/types/searchcraft-base-search-results.types.js.map +1 -1
- package/dist/collection/types/searchcraft-popover-form.types.js.map +1 -1
- package/dist/collection/utils/{utils.js → facets.js} +7 -105
- package/dist/collection/utils/facets.js.map +1 -0
- package/dist/collection/utils/index.js +4 -0
- package/dist/collection/utils/index.js.map +1 -0
- package/dist/collection/utils/styles.js +22 -0
- package/dist/collection/utils/styles.js.map +1 -0
- package/dist/collection/utils/units.js +83 -0
- package/dist/collection/utils/units.js.map +1 -0
- package/dist/components/index.js +7 -5
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-01dc5b3b.js +1475 -0
- package/dist/components/p-01dc5b3b.js.map +1 -0
- package/dist/components/p-1ae87308.js +43 -0
- package/dist/components/p-1ae87308.js.map +1 -0
- package/dist/components/p-649654b5.js +268 -0
- package/dist/components/p-649654b5.js.map +1 -0
- package/dist/components/p-662cb490.js +67 -0
- package/dist/components/p-662cb490.js.map +1 -0
- package/dist/components/{p-e4846fa2.js → p-6cafd48d.js} +189 -112
- package/dist/components/p-6cafd48d.js.map +1 -0
- package/dist/components/p-755f491b.js +84 -0
- package/dist/components/p-755f491b.js.map +1 -0
- package/dist/components/p-87d1611b.js +97 -0
- package/dist/components/p-87d1611b.js.map +1 -0
- package/dist/components/p-c273e43d.js +40 -0
- package/dist/components/p-c273e43d.js.map +1 -0
- package/dist/components/p-cc9f8c61.js +109 -0
- package/dist/components/p-cc9f8c61.js.map +1 -0
- package/dist/components/p-cf096782.js +56 -0
- package/dist/components/p-cf096782.js.map +1 -0
- package/dist/components/p-d9551738.js +25 -0
- package/dist/components/p-d9551738.js.map +1 -0
- package/dist/components/p-da5b92ef.js +253 -0
- package/dist/components/p-da5b92ef.js.map +1 -0
- package/dist/components/p-e1cf5f9d.js +54 -0
- package/dist/components/p-e1cf5f9d.js.map +1 -0
- package/dist/components/p-f5a06210.js +34 -0
- package/dist/components/p-f5a06210.js.map +1 -0
- package/dist/components/searchcraft-base-search-result.js +1 -1
- package/dist/components/searchcraft-base-search-results.js +25 -11
- 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 +13 -12
- package/dist/components/searchcraft-filter-panel.js.map +1 -1
- package/dist/components/searchcraft-input-form.js +1 -241
- package/dist/components/searchcraft-input-form.js.map +1 -1
- package/dist/components/searchcraft-input-label.js +1 -1
- package/dist/components/searchcraft-popover-button.d.ts +11 -0
- package/dist/components/searchcraft-popover-button.js +39 -0
- package/dist/components/searchcraft-popover-button.js.map +1 -0
- package/dist/components/searchcraft-popover-form.js +255 -8
- package/dist/components/searchcraft-popover-form.js.map +1 -1
- package/dist/components/searchcraft-popover-list-item.d.ts +11 -0
- package/dist/components/searchcraft-popover-list-item.js +8 -0
- package/dist/components/searchcraft-popover-list-item.js.map +1 -0
- package/dist/components/searchcraft-popover-list-view.js +1 -1
- package/dist/components/searchcraft-results-info.js +4 -4
- package/dist/components/searchcraft-results-info.js.map +1 -1
- package/dist/components/searchcraft-slider.js +1 -1
- package/dist/components/searchcraft-toggle-button.js +1 -1
- package/dist/esm/{index-be042742.js → index-56b713de.js} +234 -131
- package/dist/esm/index-56b713de.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/searchcraft-base-search-result.entry.js +15 -19
- package/dist/esm/searchcraft-base-search-result.entry.js.map +1 -1
- package/dist/esm/searchcraft-base-search-results.entry.js +23 -9
- package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -1
- package/dist/esm/searchcraft-button_3.entry.js +66 -0
- package/dist/esm/searchcraft-button_3.entry.js.map +1 -0
- package/dist/esm/searchcraft-facet-list_3.entry.js +161 -33
- package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -1
- package/dist/esm/searchcraft-filter-panel.entry.js +10 -9
- package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -1
- package/dist/esm/searchcraft-input-form_2.entry.js +233 -0
- package/dist/esm/searchcraft-input-form_2.entry.js.map +1 -0
- package/dist/esm/searchcraft-javascript-sdk.js +4 -4
- package/dist/esm/searchcraft-javascript-sdk.js.map +1 -1
- package/dist/esm/searchcraft-popover-button.entry.js +22 -0
- package/dist/esm/searchcraft-popover-button.entry.js.map +1 -0
- package/dist/esm/searchcraft-popover-form.entry.js +206 -5
- package/dist/esm/searchcraft-popover-form.entry.js.map +1 -1
- package/dist/esm/searchcraft-popover-list-item.entry.js +22 -0
- package/dist/esm/searchcraft-popover-list-item.entry.js.map +1 -0
- package/dist/esm/searchcraft-results-info.entry.js +4 -4
- package/dist/esm/searchcraft-results-info.entry.js.map +1 -1
- package/dist/esm/store-712f0586.js +1475 -0
- package/dist/esm/store-712f0586.js.map +1 -0
- package/dist/esm/styles-961644ef.js +25 -0
- package/dist/esm/styles-961644ef.js.map +1 -0
- package/dist/esm/units-b6eba560.js +84 -0
- package/dist/esm/units-b6eba560.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
- package/dist/searchcraft-javascript-sdk/p-01dc5b3b.js +11 -0
- package/dist/searchcraft-javascript-sdk/p-01dc5b3b.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-117fcdd3.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-117fcdd3.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-129e6f2c.js +3 -0
- package/dist/searchcraft-javascript-sdk/p-129e6f2c.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-27cb401c.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-27cb401c.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-4df4a29e.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-4df4a29e.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-54248dd8.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-54248dd8.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-69430dbf.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-69430dbf.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-755f491b.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-755f491b.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-a460755d.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-a460755d.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-bc2c4259.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-bc2c4259.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-caecdcda.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-caecdcda.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-d9551738.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-d9551738.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-f8129731.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-f8129731.entry.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/p-f839b682.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/p-f839b682.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 +53 -0
- package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +68 -0
- package/dist/types/components/searchcraft-button/searchcraft-button.d.ts +20 -0
- package/dist/types/components/searchcraft-error-message/searchcraft-error-message.d.ts +12 -0
- package/dist/types/components/searchcraft-facet-list/searchcraft-facet-list.d.ts +25 -0
- package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +12 -0
- package/dist/types/components/searchcraft-input-form/searchcraft-input-form.d.ts +37 -13
- package/dist/types/components/searchcraft-input-label/searchcraft-input-label.d.ts +13 -1
- package/dist/types/components/searchcraft-popover-button/searchcraft-popover-button.d.ts +7 -0
- package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +97 -1
- package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +22 -0
- package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +19 -3
- package/dist/types/components/searchcraft-results-info/searchcraft-results-info.d.ts +10 -0
- package/dist/types/components/searchcraft-slider/searchcraft-slider.d.ts +18 -0
- package/dist/types/components/searchcraft-toggle-button/searchcraft-toggle-button.d.ts +11 -3
- package/dist/types/components.d.ts +1023 -30
- package/dist/types/index.d.ts +1 -1
- package/dist/types/provider/store.d.ts +4 -2
- package/dist/types/types/_shared.types.d.ts +45 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/searchcraft-base-search-results.types.d.ts +1 -8
- package/dist/types/types/searchcraft-popover-form.types.d.ts +2 -1
- package/dist/types/utils/facets.d.ts +6 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/styles.d.ts +2 -0
- package/dist/types/utils/{utils.d.ts → units.d.ts} +12 -19
- package/package.json +8 -4
- package/dist/cjs/index-b76bece0.js.map +0 -1
- package/dist/cjs/searchcraft-button_2.cjs.entry.js +0 -51
- package/dist/cjs/searchcraft-button_2.cjs.entry.js.map +0 -1
- package/dist/cjs/searchcraft-error-message.cjs.entry.js +0 -23
- package/dist/cjs/searchcraft-error-message.cjs.entry.js.map +0 -1
- package/dist/cjs/searchcraft-input-form.cjs.entry.js +0 -202
- package/dist/cjs/searchcraft-input-form.cjs.entry.js.map +0 -1
- package/dist/cjs/searchcraft-popover-list-view.cjs.entry.js +0 -26
- package/dist/cjs/searchcraft-popover-list-view.cjs.entry.js.map +0 -1
- package/dist/cjs/searchcraft-popover-result.cjs.entry.js +0 -25
- package/dist/cjs/searchcraft-popover-result.cjs.entry.js.map +0 -1
- package/dist/cjs/store-943576b0.js +0 -956
- package/dist/cjs/store-943576b0.js.map +0 -1
- package/dist/cjs/utils-a17279a2.js +0 -226
- package/dist/cjs/utils-a17279a2.js.map +0 -1
- package/dist/collection/components/searchcraft-popover-result/searchcraft-popover-result.js +0 -21
- package/dist/collection/components/searchcraft-popover-result/searchcraft-popover-result.js.map +0 -1
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/components/p-16983367.js +0 -35
- package/dist/components/p-16983367.js.map +0 -1
- package/dist/components/p-42bfef5f.js +0 -151
- package/dist/components/p-42bfef5f.js.map +0 -1
- package/dist/components/p-5380505b.js +0 -99
- package/dist/components/p-5380505b.js.map +0 -1
- package/dist/components/p-672354c0.js +0 -38
- package/dist/components/p-672354c0.js.map +0 -1
- package/dist/components/p-9cb3d38b.js +0 -48
- package/dist/components/p-9cb3d38b.js.map +0 -1
- package/dist/components/p-a23d2994.js +0 -67
- package/dist/components/p-a23d2994.js.map +0 -1
- package/dist/components/p-ad4ebde0.js +0 -952
- package/dist/components/p-ad4ebde0.js.map +0 -1
- package/dist/components/p-bd5fede3.js +0 -41
- package/dist/components/p-bd5fede3.js.map +0 -1
- package/dist/components/p-cbdcf6df.js +0 -101
- package/dist/components/p-cbdcf6df.js.map +0 -1
- package/dist/components/p-e4846fa2.js.map +0 -1
- package/dist/components/p-f308d05d.js +0 -218
- package/dist/components/p-f308d05d.js.map +0 -1
- package/dist/components/searchcraft-popover-result.d.ts +0 -11
- package/dist/components/searchcraft-popover-result.js +0 -38
- package/dist/components/searchcraft-popover-result.js.map +0 -1
- package/dist/esm/index-be042742.js.map +0 -1
- package/dist/esm/searchcraft-button_2.entry.js +0 -46
- package/dist/esm/searchcraft-button_2.entry.js.map +0 -1
- package/dist/esm/searchcraft-error-message.entry.js +0 -19
- package/dist/esm/searchcraft-error-message.entry.js.map +0 -1
- package/dist/esm/searchcraft-input-form.entry.js +0 -198
- package/dist/esm/searchcraft-input-form.entry.js.map +0 -1
- package/dist/esm/searchcraft-popover-list-view.entry.js +0 -22
- package/dist/esm/searchcraft-popover-list-view.entry.js.map +0 -1
- package/dist/esm/searchcraft-popover-result.entry.js +0 -21
- package/dist/esm/searchcraft-popover-result.entry.js.map +0 -1
- package/dist/esm/store-eb4269d6.js +0 -952
- package/dist/esm/store-eb4269d6.js.map +0 -1
- package/dist/esm/utils-c2ce411f.js +0 -218
- package/dist/esm/utils-c2ce411f.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-04300412.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-04300412.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-09c7fbef.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-09c7fbef.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-32068485.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-32068485.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-4d3682a8.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-4d3682a8.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-61cf9d6c.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-61cf9d6c.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-93b92b65.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-93b92b65.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-a7a7b4e0.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-a7a7b4e0.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-a810aeae.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-a810aeae.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-aa155194.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-aa155194.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-ad4ebde0.js +0 -11
- package/dist/searchcraft-javascript-sdk/p-ad4ebde0.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-adadf38a.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-adadf38a.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-d57eba31.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-d57eba31.entry.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-d7d0b88c.js +0 -3
- package/dist/searchcraft-javascript-sdk/p-d7d0b88c.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-f308d05d.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-f308d05d.js.map +0 -1
- package/dist/types/components/searchcraft-popover-result/searchcraft-popover-result.d.ts +0 -6
- /package/dist/collection/components/{searchcraft-popover-result/searchcraft-popover-result.module.css → searchcraft-popover-button/searchcraft-popover-button.module.css} +0 -0
|
@@ -1,12 +1,53 @@
|
|
|
1
|
+
/** Appearance & Layout */
|
|
1
2
|
:root {
|
|
2
|
-
/**
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Border radius of the input form element.
|
|
5
|
+
*/
|
|
4
6
|
--sc-input-border-radius: 8px;
|
|
7
|
+
/**
|
|
8
|
+
* Icon size of the "magnifying glass" icon rendered in the input form.
|
|
9
|
+
*/
|
|
5
10
|
--sc-input-search-icon-size: 20px;
|
|
11
|
+
/**
|
|
12
|
+
* Icon size of the `x` button rendered in the input form.
|
|
13
|
+
*/
|
|
6
14
|
--sc-input-clear-icon-size: 20px;
|
|
15
|
+
/**
|
|
16
|
+
* Padding on the left side of the input form.
|
|
17
|
+
*/
|
|
7
18
|
--sc-input-padding-left: 44px;
|
|
19
|
+
/**
|
|
20
|
+
* Padding on the right side of the input form.
|
|
21
|
+
*/
|
|
8
22
|
--sc-input-padding-right: 44px;
|
|
23
|
+
/**
|
|
24
|
+
* Border radius applied to result images.
|
|
25
|
+
*/
|
|
9
26
|
--sc-image-border-radius: 8px;
|
|
27
|
+
/**
|
|
28
|
+
* Border radius applied to popover form containers.
|
|
29
|
+
*/
|
|
30
|
+
--sc-popover-form-border-radius: 8px;
|
|
31
|
+
/**
|
|
32
|
+
* Height of the list view/results container portion of the popover form.
|
|
33
|
+
*/
|
|
34
|
+
--sc-popover-list-view-height: 400px;
|
|
35
|
+
/**
|
|
36
|
+
* Size of images of list view items in the popoer list view.
|
|
37
|
+
*/
|
|
38
|
+
--sc-popover-list-item-image-size: 60px;
|
|
39
|
+
/**
|
|
40
|
+
* Horizontal padding of popover list items.
|
|
41
|
+
*/
|
|
42
|
+
--sc-popover-list-item-padding-horizontal: 8px;
|
|
43
|
+
/**
|
|
44
|
+
* Vertical padding of popover list items.
|
|
45
|
+
*/
|
|
46
|
+
--sc-popover-list-item-padding-vertical: 8px;
|
|
47
|
+
/**
|
|
48
|
+
* Maximum width of popover forms of type `modal`.
|
|
49
|
+
*/
|
|
50
|
+
--sc-popover-modal-max-width: 570px;
|
|
10
51
|
}
|
|
11
52
|
|
|
12
53
|
:root {
|
|
@@ -97,6 +138,15 @@
|
|
|
97
138
|
--sc-body-small-font-weight: 400;
|
|
98
139
|
}
|
|
99
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Variables that need to be part of the preprocessor can go here.
|
|
143
|
+
*/
|
|
144
|
+
:root {
|
|
145
|
+
--sc-breakpoint-sm: 576px;
|
|
146
|
+
--sc-breakpoint-md: 768px;
|
|
147
|
+
--sc-breakpoint-lg: 992px;
|
|
148
|
+
}
|
|
149
|
+
|
|
100
150
|
.searchcraft-search-results-container {
|
|
101
151
|
display: flex;
|
|
102
152
|
flex-direction: column;
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import { h, Fragment, } from "@stencil/core";
|
|
2
2
|
import classNames from "classnames";
|
|
3
|
+
/**
|
|
4
|
+
* This web component represents a button to be consumed within the `search-input-form` component.
|
|
5
|
+
* It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.
|
|
6
|
+
* It is consumed within the `searchcraft-input-form` component.
|
|
7
|
+
*/
|
|
3
8
|
export class SearchcraftButton {
|
|
4
9
|
constructor() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.iconElement = undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Should the button only display an icon.
|
|
12
|
+
*/
|
|
9
13
|
this.iconOnly = false;
|
|
14
|
+
/**
|
|
15
|
+
* The position of the icon.
|
|
16
|
+
*/
|
|
10
17
|
this.iconPosition = 'left';
|
|
18
|
+
/**
|
|
19
|
+
* The label for the button.
|
|
20
|
+
*/
|
|
11
21
|
this.label = 'Search';
|
|
12
22
|
this.isRequesting = false;
|
|
23
|
+
this.handleClick = () => {
|
|
24
|
+
this.buttonClick.emit();
|
|
25
|
+
};
|
|
13
26
|
}
|
|
14
27
|
render() {
|
|
15
|
-
return (h(Fragment, { key: '
|
|
28
|
+
return (h(Fragment, { key: '52b95f09f5da9f281b250285623e150c5d952dce' }, 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)))));
|
|
16
29
|
}
|
|
17
30
|
static get is() { return "searchcraft-button"; }
|
|
18
31
|
static get originalStyleUrls() {
|
|
@@ -44,8 +57,10 @@ export class SearchcraftButton {
|
|
|
44
57
|
"optional": true,
|
|
45
58
|
"docs": {
|
|
46
59
|
"tags": [],
|
|
47
|
-
"text": ""
|
|
48
|
-
}
|
|
60
|
+
"text": "The icon element."
|
|
61
|
+
},
|
|
62
|
+
"getter": false,
|
|
63
|
+
"setter": false
|
|
49
64
|
},
|
|
50
65
|
"iconOnly": {
|
|
51
66
|
"type": "boolean",
|
|
@@ -59,8 +74,10 @@ export class SearchcraftButton {
|
|
|
59
74
|
"optional": false,
|
|
60
75
|
"docs": {
|
|
61
76
|
"tags": [],
|
|
62
|
-
"text": ""
|
|
77
|
+
"text": "Should the button only display an icon."
|
|
63
78
|
},
|
|
79
|
+
"getter": false,
|
|
80
|
+
"setter": false,
|
|
64
81
|
"attribute": "icon-only",
|
|
65
82
|
"reflect": false,
|
|
66
83
|
"defaultValue": "false"
|
|
@@ -77,8 +94,10 @@ export class SearchcraftButton {
|
|
|
77
94
|
"optional": false,
|
|
78
95
|
"docs": {
|
|
79
96
|
"tags": [],
|
|
80
|
-
"text": ""
|
|
97
|
+
"text": "The position of the icon."
|
|
81
98
|
},
|
|
99
|
+
"getter": false,
|
|
100
|
+
"setter": false,
|
|
82
101
|
"attribute": "icon-position",
|
|
83
102
|
"reflect": false,
|
|
84
103
|
"defaultValue": "'left'"
|
|
@@ -95,8 +114,10 @@ export class SearchcraftButton {
|
|
|
95
114
|
"optional": false,
|
|
96
115
|
"docs": {
|
|
97
116
|
"tags": [],
|
|
98
|
-
"text": ""
|
|
117
|
+
"text": "The label for the button."
|
|
99
118
|
},
|
|
119
|
+
"getter": false,
|
|
120
|
+
"setter": false,
|
|
100
121
|
"attribute": "label",
|
|
101
122
|
"reflect": false,
|
|
102
123
|
"defaultValue": "'Search'"
|
|
@@ -117,7 +138,7 @@ export class SearchcraftButton {
|
|
|
117
138
|
"composed": true,
|
|
118
139
|
"docs": {
|
|
119
140
|
"tags": [],
|
|
120
|
-
"text": ""
|
|
141
|
+
"text": "When the button is clicked."
|
|
121
142
|
},
|
|
122
143
|
"complexType": {
|
|
123
144
|
"original": "void",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchcraft-button.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-button/searchcraft-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,EAEL,IAAI,EACJ,CAAC,EACD,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"searchcraft-button.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-button/searchcraft-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,EAEL,IAAI,EACJ,CAAC,EACD,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC;;;;GAIG;AAMH,MAAM,OAAO,iBAAiB;IAL9B;QAUE;;WAEG;QACK,aAAQ,GAAG,KAAK,CAAC;QACzB;;WAEG;QACK,iBAAY,GAAG,MAAM,CAAC;QAC9B;;WAEG;QACK,UAAK,GAAG,QAAQ,CAAC;QAOhB,iBAAY,GAAG,KAAK,CAAC;QAEtB,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC,CAAC;KAgCH;IA9BC,MAAM;QACJ,OAAO,CACL,EAAC,QAAQ,uDACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACf,cACE,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,EACvC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACnB,mCAA4B,CAC7B,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,WAAW,CACjB,CACM,CACV,CAAC,CAAC,CAAC,CACF,cACE,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,EACvC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,QAAQ;YAEZ,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW;YACjD,YAAM,KAAK,EAAE,UAAU,CAAC,aAAa,EAAE,0BAA0B,CAAC,IAC/D,IAAI,CAAC,KAAK,CACN,CACA,CACV,CACQ,CACZ,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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/**\n * This web component represents a button to be consumed within the `search-input-form` component.\n * It provides a clear, interactive way for users to submit search queries or trigger actions in a search interface.\n * It is consumed within the `searchcraft-input-form` component.\n */\n@Component({\n tag: 'searchcraft-button',\n styleUrl: 'searchcraft-button.module.scss',\n shadow: false,\n})\nexport class SearchcraftButton {\n /**\n * The icon element.\n */\n @Prop() iconElement?: Element;\n /**\n * Should the button only display an icon.\n */\n @Prop() iconOnly = false;\n /**\n * The position of the icon.\n */\n @Prop() iconPosition = 'left';\n /**\n * The label for the button.\n */\n @Prop() label = 'Search';\n\n /**\n * When the button is clicked.\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"]}
|
|
@@ -1,12 +1,53 @@
|
|
|
1
|
+
/** Appearance & Layout */
|
|
1
2
|
:root {
|
|
2
|
-
/**
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Border radius of the input form element.
|
|
5
|
+
*/
|
|
4
6
|
--sc-input-border-radius: 8px;
|
|
7
|
+
/**
|
|
8
|
+
* Icon size of the "magnifying glass" icon rendered in the input form.
|
|
9
|
+
*/
|
|
5
10
|
--sc-input-search-icon-size: 20px;
|
|
11
|
+
/**
|
|
12
|
+
* Icon size of the `x` button rendered in the input form.
|
|
13
|
+
*/
|
|
6
14
|
--sc-input-clear-icon-size: 20px;
|
|
15
|
+
/**
|
|
16
|
+
* Padding on the left side of the input form.
|
|
17
|
+
*/
|
|
7
18
|
--sc-input-padding-left: 44px;
|
|
19
|
+
/**
|
|
20
|
+
* Padding on the right side of the input form.
|
|
21
|
+
*/
|
|
8
22
|
--sc-input-padding-right: 44px;
|
|
23
|
+
/**
|
|
24
|
+
* Border radius applied to result images.
|
|
25
|
+
*/
|
|
9
26
|
--sc-image-border-radius: 8px;
|
|
27
|
+
/**
|
|
28
|
+
* Border radius applied to popover form containers.
|
|
29
|
+
*/
|
|
30
|
+
--sc-popover-form-border-radius: 8px;
|
|
31
|
+
/**
|
|
32
|
+
* Height of the list view/results container portion of the popover form.
|
|
33
|
+
*/
|
|
34
|
+
--sc-popover-list-view-height: 400px;
|
|
35
|
+
/**
|
|
36
|
+
* Size of images of list view items in the popoer list view.
|
|
37
|
+
*/
|
|
38
|
+
--sc-popover-list-item-image-size: 60px;
|
|
39
|
+
/**
|
|
40
|
+
* Horizontal padding of popover list items.
|
|
41
|
+
*/
|
|
42
|
+
--sc-popover-list-item-padding-horizontal: 8px;
|
|
43
|
+
/**
|
|
44
|
+
* Vertical padding of popover list items.
|
|
45
|
+
*/
|
|
46
|
+
--sc-popover-list-item-padding-vertical: 8px;
|
|
47
|
+
/**
|
|
48
|
+
* Maximum width of popover forms of type `modal`.
|
|
49
|
+
*/
|
|
50
|
+
--sc-popover-modal-max-width: 570px;
|
|
10
51
|
}
|
|
11
52
|
|
|
12
53
|
:root {
|
|
@@ -97,6 +138,15 @@
|
|
|
97
138
|
--sc-body-small-font-weight: 400;
|
|
98
139
|
}
|
|
99
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Variables that need to be part of the preprocessor can go here.
|
|
143
|
+
*/
|
|
144
|
+
:root {
|
|
145
|
+
--sc-breakpoint-sm: 576px;
|
|
146
|
+
--sc-breakpoint-md: 768px;
|
|
147
|
+
--sc-breakpoint-lg: 992px;
|
|
148
|
+
}
|
|
149
|
+
|
|
100
150
|
.searchcraft-button {
|
|
101
151
|
font-family: var(--sc-font-family);
|
|
102
152
|
-webkit-font-smoothing: antialiased;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* 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.
|
|
4
|
+
*
|
|
5
|
+
* ## Usage
|
|
6
|
+
* ```html
|
|
7
|
+
* <!-- index.html -->
|
|
8
|
+
* <searchcraft-error-message error-message="No search results found for query" />
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
2
11
|
export class SearchcraftErrorMessage {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.errorMessage = undefined;
|
|
5
|
-
}
|
|
6
12
|
render() {
|
|
7
|
-
return (h("p", { key: '
|
|
13
|
+
return (h("p", { key: '5bdc428adf6f239d66a9b0f946ee6e582de41e86', class: 'searchcraft-error-message' }, this.errorMessage || 'Search term is required.'));
|
|
8
14
|
}
|
|
9
15
|
static get is() { return "searchcraft-error-message"; }
|
|
10
16
|
static get originalStyleUrls() {
|
|
@@ -31,8 +37,10 @@ export class SearchcraftErrorMessage {
|
|
|
31
37
|
"optional": true,
|
|
32
38
|
"docs": {
|
|
33
39
|
"tags": [],
|
|
34
|
-
"text": ""
|
|
40
|
+
"text": "The error message."
|
|
35
41
|
},
|
|
42
|
+
"getter": false,
|
|
43
|
+
"setter": false,
|
|
36
44
|
"attribute": "error-message",
|
|
37
45
|
"reflect": false
|
|
38
46
|
}
|
package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchcraft-error-message.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-error-message/searchcraft-error-message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"searchcraft-error-message.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-error-message/searchcraft-error-message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;GAQG;AAMH,MAAM,OAAO,uBAAuB;IAMlC,MAAM;QACJ,OAAO,CACL,0DAAG,KAAK,EAAC,2BAA2B,IACjC,IAAI,CAAC,YAAY,IAAI,0BAA0B,CAC9C,CACL,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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 styleUrl: 'searchcraft-error-message.module.scss',\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"]}
|
package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.module.css
CHANGED
|
@@ -1,12 +1,53 @@
|
|
|
1
|
+
/** Appearance & Layout */
|
|
1
2
|
:root {
|
|
2
|
-
/**
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Border radius of the input form element.
|
|
5
|
+
*/
|
|
4
6
|
--sc-input-border-radius: 8px;
|
|
7
|
+
/**
|
|
8
|
+
* Icon size of the "magnifying glass" icon rendered in the input form.
|
|
9
|
+
*/
|
|
5
10
|
--sc-input-search-icon-size: 20px;
|
|
11
|
+
/**
|
|
12
|
+
* Icon size of the `x` button rendered in the input form.
|
|
13
|
+
*/
|
|
6
14
|
--sc-input-clear-icon-size: 20px;
|
|
15
|
+
/**
|
|
16
|
+
* Padding on the left side of the input form.
|
|
17
|
+
*/
|
|
7
18
|
--sc-input-padding-left: 44px;
|
|
19
|
+
/**
|
|
20
|
+
* Padding on the right side of the input form.
|
|
21
|
+
*/
|
|
8
22
|
--sc-input-padding-right: 44px;
|
|
23
|
+
/**
|
|
24
|
+
* Border radius applied to result images.
|
|
25
|
+
*/
|
|
9
26
|
--sc-image-border-radius: 8px;
|
|
27
|
+
/**
|
|
28
|
+
* Border radius applied to popover form containers.
|
|
29
|
+
*/
|
|
30
|
+
--sc-popover-form-border-radius: 8px;
|
|
31
|
+
/**
|
|
32
|
+
* Height of the list view/results container portion of the popover form.
|
|
33
|
+
*/
|
|
34
|
+
--sc-popover-list-view-height: 400px;
|
|
35
|
+
/**
|
|
36
|
+
* Size of images of list view items in the popoer list view.
|
|
37
|
+
*/
|
|
38
|
+
--sc-popover-list-item-image-size: 60px;
|
|
39
|
+
/**
|
|
40
|
+
* Horizontal padding of popover list items.
|
|
41
|
+
*/
|
|
42
|
+
--sc-popover-list-item-padding-horizontal: 8px;
|
|
43
|
+
/**
|
|
44
|
+
* Vertical padding of popover list items.
|
|
45
|
+
*/
|
|
46
|
+
--sc-popover-list-item-padding-vertical: 8px;
|
|
47
|
+
/**
|
|
48
|
+
* Maximum width of popover forms of type `modal`.
|
|
49
|
+
*/
|
|
50
|
+
--sc-popover-modal-max-width: 570px;
|
|
10
51
|
}
|
|
11
52
|
|
|
12
53
|
:root {
|
|
@@ -97,6 +138,15 @@
|
|
|
97
138
|
--sc-body-small-font-weight: 400;
|
|
98
139
|
}
|
|
99
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Variables that need to be part of the preprocessor can go here.
|
|
143
|
+
*/
|
|
144
|
+
:root {
|
|
145
|
+
--sc-breakpoint-sm: 576px;
|
|
146
|
+
--sc-breakpoint-md: 768px;
|
|
147
|
+
--sc-breakpoint-lg: 992px;
|
|
148
|
+
}
|
|
149
|
+
|
|
100
150
|
.searchcraft-error-message {
|
|
101
151
|
font-family: var(--sc-font-family);
|
|
102
152
|
-webkit-font-smoothing: antialiased;
|
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
import { h, Fragment, } from "@stencil/core";
|
|
2
2
|
import classNames from "classnames";
|
|
3
3
|
import { useSearchcraftStore } from "../../provider/store";
|
|
4
|
-
import { mergeFacetRoots, removeSubstringMatches } from "../../utils/
|
|
4
|
+
import { mergeFacetRoots, removeSubstringMatches } from "../../utils/index";
|
|
5
|
+
/**
|
|
6
|
+
* This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.
|
|
7
|
+
* It is consumed within the `searchcraft-filter-panel`.
|
|
8
|
+
*
|
|
9
|
+
* ## Usage
|
|
10
|
+
* ```html
|
|
11
|
+
* <!-- index.html -->
|
|
12
|
+
* <searchcraft-facet-list field-name="title" />
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* ```js
|
|
16
|
+
* // index.js
|
|
17
|
+
* const facetList = document.querySelector('searchcraft-facet-list');
|
|
18
|
+
*
|
|
19
|
+
* facetList.addEventListener('facetSelectionUpdated', () => {
|
|
20
|
+
* console.log('Facet selection updated');
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
5
24
|
export class SearchcraftFacetList {
|
|
6
25
|
constructor() {
|
|
26
|
+
this.selectedPaths = {};
|
|
27
|
+
this.hasNewSearchTerm = false;
|
|
7
28
|
this.searchStore = useSearchcraftStore.getState();
|
|
8
29
|
this.formatLabel = (facetChild) => {
|
|
9
30
|
const label = facetChild.path.replace(/^\//, '');
|
|
@@ -16,16 +37,6 @@ export class SearchcraftFacetList {
|
|
|
16
37
|
const count = facetChild.count;
|
|
17
38
|
return `${label.replace(/-/g, ' ').replace(/\b\w/g, (char) => char.toUpperCase())} (${count})`;
|
|
18
39
|
};
|
|
19
|
-
this.fieldName = undefined;
|
|
20
|
-
this.baseFacetRoot = undefined;
|
|
21
|
-
this.facetRoot = undefined;
|
|
22
|
-
this.selectedPaths = {};
|
|
23
|
-
this.lastTimeTaken = undefined;
|
|
24
|
-
this.hasNewSearchTerm = false;
|
|
25
|
-
this.lastQuery = undefined;
|
|
26
|
-
this.lastSearchMode = undefined;
|
|
27
|
-
this.lastSortType = undefined;
|
|
28
|
-
this.unsubscribe = undefined;
|
|
29
40
|
}
|
|
30
41
|
handleStateUpdate(state) {
|
|
31
42
|
var _a, _b;
|
|
@@ -97,7 +108,7 @@ export class SearchcraftFacetList {
|
|
|
97
108
|
render() {
|
|
98
109
|
var _a;
|
|
99
110
|
const firstFacet = (_a = this.facetRoot) === null || _a === void 0 ? void 0 : _a[this.fieldName];
|
|
100
|
-
return (h("div", { key: '
|
|
111
|
+
return (h("div", { key: '709834d9f86b75257ae0c67e9340c0fea4131035', class: classNames('filtersListContainer', 'searchcraft-filters-list-container') }, !firstFacet && (h("p", { key: 'a6e2ced40fcc0762ae8ea835c9d6c573aceeb1f1', class: 'searchcraft-facet-message' }, "Enter a search to view facets.")), firstFacet === null || firstFacet === void 0 ? void 0 :
|
|
101
112
|
firstFacet.map((facetChild) => {
|
|
102
113
|
var _a;
|
|
103
114
|
const isChildSelected = facetChild.children
|
|
@@ -137,8 +148,10 @@ export class SearchcraftFacetList {
|
|
|
137
148
|
"optional": false,
|
|
138
149
|
"docs": {
|
|
139
150
|
"tags": [],
|
|
140
|
-
"text": ""
|
|
151
|
+
"text": "The name of the field where facets are applied."
|
|
141
152
|
},
|
|
153
|
+
"getter": false,
|
|
154
|
+
"setter": false,
|
|
142
155
|
"attribute": "field-name",
|
|
143
156
|
"reflect": false
|
|
144
157
|
}
|
|
@@ -166,7 +179,7 @@ export class SearchcraftFacetList {
|
|
|
166
179
|
"composed": true,
|
|
167
180
|
"docs": {
|
|
168
181
|
"tags": [],
|
|
169
|
-
"text": ""
|
|
182
|
+
"text": "When the facets are updated."
|
|
170
183
|
},
|
|
171
184
|
"complexType": {
|
|
172
185
|
"original": "{ paths: string[] }",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchcraft-facet-list.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-facet-list/searchcraft-facet-list.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n State,\n Prop,\n Event,\n type EventEmitter,\n Fragment,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\nimport type { FacetChild, FacetRoot } from '@searchcraft/core';\n\nimport { useSearchcraftStore, type SearchcraftState } from '@provider/store';\nimport { mergeFacetRoots, removeSubstringMatches } from '@utils/utils';\n\n@Component({\n tag: 'searchcraft-facet-list',\n styleUrl: 'searchcraft-facet-list.module.scss',\n shadow: false,\n})\nexport class SearchcraftFacetList {\n @Prop() fieldName: string;\n\n @Event() facetSelectionUpdated: EventEmitter<{ paths: string[] }>;\n\n @State() baseFacetRoot: FacetRoot | undefined;\n @State() facetRoot: FacetRoot | undefined;\n @State() selectedPaths: Record<string, boolean> = {};\n @State() lastTimeTaken: number | undefined;\n @State() hasNewSearchTerm = false;\n\n @State() lastQuery: string | undefined;\n @State() lastSearchMode: string | undefined;\n @State() lastSortType: string | undefined;\n\n @State() unsubscribe: (() => void) | undefined;\n\n private searchStore = useSearchcraftStore.getState();\n\n handleStateUpdate(state: SearchcraftState) {\n const facetPrime = state.searchResults?.data.facets;\n const timeTaken = state.searchResults?.data.time_taken;\n\n /** Things to do when the state's search term has changed, but before the response received */\n if (\n state.query !== this.lastQuery ||\n state.searchMode !== this.lastSearchMode ||\n state.sortType !== this.lastSortType\n ) {\n this.selectedPaths = {};\n this.hasNewSearchTerm = true;\n }\n\n /** Things to do when a new response with a new facet prime has been received */\n if (timeTaken !== this.lastTimeTaken && facetPrime) {\n this.facetRoot = undefined;\n const incomingFacetRoot: FacetRoot = facetPrime.find(\n (facet) => this.fieldName === Object.keys(facet)[0],\n );\n\n /** Data is from a new search term: completely override our facets */\n if (this.hasNewSearchTerm) {\n this.baseFacetRoot = incomingFacetRoot;\n this.facetRoot = incomingFacetRoot;\n this.hasNewSearchTerm = false;\n } else if (this.baseFacetRoot) {\n /** Data is from an existing search term, merge the facets together */\n this.facetRoot = mergeFacetRoots(\n this.fieldName,\n this.baseFacetRoot,\n incomingFacetRoot,\n );\n }\n }\n\n this.lastQuery = state.query;\n this.lastSearchMode = state.searchMode;\n this.lastSortType = state.sortType;\n this.lastTimeTaken = timeTaken;\n }\n\n connectedCallback() {\n this.handleStateUpdate(this.searchStore);\n\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n handleCheckboxChange(path: string) {\n const isCheckboxChecked = !this.selectedPaths[path];\n\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n } else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter(\n (testPath) => !testPath.includes(path),\n );\n\n this.selectedPaths = updatedPaths.reduce(\n (acc, str) => {\n acc[str] = true;\n return acc;\n },\n {} as Record<string, boolean>,\n );\n }\n\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter(\n (path) => this.selectedPaths[path],\n );\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n\n this.facetSelectionUpdated.emit({ paths: pathsWithParentPathsRemoved });\n }\n\n formatLabel = (facetChild: FacetChild): string => {\n const label = facetChild.path.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n\n formatSubLabel = (\n facetChild: FacetChild,\n facetChildAncestor: FacetChild,\n ): string => {\n const facetChildPath = facetChild.path.substring(\n facetChildAncestor.path.length,\n );\n const label = facetChildPath.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n\n render() {\n const firstFacet = this.facetRoot?.[this.fieldName];\n\n return (\n <div\n class={classNames(\n 'filtersListContainer',\n 'searchcraft-filters-list-container',\n )}\n >\n {!firstFacet && (\n <p class='searchcraft-facet-message'>\n Enter a search to view facets.\n </p>\n )}\n {firstFacet?.map((facetChild: FacetChild) => {\n const isChildSelected = facetChild.children\n ? facetChild.children?.some(\n (child) => this.selectedPaths[child.path],\n )\n : false;\n\n return (\n <div\n key={facetChild.path}\n class={classNames('searchcraft-filters-list-item')}\n >\n <label\n class={classNames(\n 'filterCheckboxLabel',\n 'searchcraft-filters-list-checkbox-label',\n )}\n >\n <input\n checked={this.selectedPaths[facetChild.path]}\n onChange={(_event: Event) =>\n this.handleCheckboxChange(facetChild.path)\n }\n type='checkbox'\n />\n {isChildSelected ? (\n <div\n class={classNames(\n 'dashContainer',\n 'searchcraft-filter-list-dash-container',\n )}\n >\n <searchcraft-dash-icon />\n </div>\n ) : (\n <div\n class={classNames(\n 'checkContainer',\n 'searchcraft-filter-list-check-container',\n )}\n >\n <searchcraft-check-icon />\n </div>\n )}\n {this.formatLabel(facetChild)}\n </label>\n {facetChild.children && facetChild.children.length > 0 && (\n <Fragment>\n {facetChild.children.map((grandchild) => (\n <label\n key={grandchild.path}\n class={classNames(\n 'childFilterCheckboxLabel',\n 'searchcraft-child-filter-checkbox-label',\n )}\n style={{\n display: this.selectedPaths[facetChild.path]\n ? 'flex'\n : 'none',\n }}\n >\n <input\n checked={this.selectedPaths[grandchild.path]}\n onChange={(_event: Event) => {\n this.handleCheckboxChange(grandchild.path);\n }}\n type='checkbox'\n />\n <div\n class={classNames(\n 'checkContainer',\n 'searchcraft-filter-list-check-container',\n )}\n >\n <searchcraft-check-icon />\n </div>\n {this.formatSubLabel(grandchild, facetChild)}\n </label>\n ))}\n </Fragment>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"searchcraft-facet-list.js","sourceRoot":"","sources":["../../../../src/components/searchcraft-facet-list/searchcraft-facet-list.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n State,\n Prop,\n Event,\n type EventEmitter,\n Fragment,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\nimport type { FacetChild, FacetRoot } from '@searchcraft/core';\n\nimport { useSearchcraftStore, type SearchcraftState } from '@provider/store';\nimport { mergeFacetRoots, removeSubstringMatches } from '@utils';\n\n/**\n * This web component is designed to display facets in a search interface, allowing users to refine their search results by applying filters based on various attributes.\n * It is consumed within the `searchcraft-filter-panel`.\n *\n * ## Usage\n * ```html\n * <!-- index.html -->\n * <searchcraft-facet-list field-name=\"title\" />\n * ```\n *\n * ```js\n * // index.js\n * const facetList = document.querySelector('searchcraft-facet-list');\n *\n * facetList.addEventListener('facetSelectionUpdated', () => {\n * console.log('Facet selection updated');\n * });\n * ```\n */\n@Component({\n tag: 'searchcraft-facet-list',\n styleUrl: 'searchcraft-facet-list.module.scss',\n shadow: false,\n})\nexport class SearchcraftFacetList {\n /**\n * The name of the field where facets are applied.\n */\n @Prop() fieldName: string;\n\n /**\n * When the facets are updated.\n */\n @Event() facetSelectionUpdated: EventEmitter<{ paths: string[] }>;\n\n @State() baseFacetRoot: FacetRoot | undefined;\n @State() facetRoot: FacetRoot | undefined;\n @State() selectedPaths: Record<string, boolean> = {};\n @State() lastTimeTaken: number | undefined;\n @State() hasNewSearchTerm = false;\n\n @State() lastQuery: string | undefined;\n @State() lastSearchMode: string | undefined;\n @State() lastSortType: string | undefined;\n\n @State() unsubscribe: (() => void) | undefined;\n\n private searchStore = useSearchcraftStore.getState();\n\n handleStateUpdate(state: SearchcraftState) {\n const facetPrime = state.searchResults?.data.facets;\n const timeTaken = state.searchResults?.data.time_taken;\n\n /** Things to do when the state's search term has changed, but before the response received */\n if (\n state.query !== this.lastQuery ||\n state.searchMode !== this.lastSearchMode ||\n state.sortType !== this.lastSortType\n ) {\n this.selectedPaths = {};\n this.hasNewSearchTerm = true;\n }\n\n /** Things to do when a new response with a new facet prime has been received */\n if (timeTaken !== this.lastTimeTaken && facetPrime) {\n this.facetRoot = undefined;\n const incomingFacetRoot: FacetRoot = facetPrime.find(\n (facet) => this.fieldName === Object.keys(facet)[0],\n );\n\n /** Data is from a new search term: completely override our facets */\n if (this.hasNewSearchTerm) {\n this.baseFacetRoot = incomingFacetRoot;\n this.facetRoot = incomingFacetRoot;\n this.hasNewSearchTerm = false;\n } else if (this.baseFacetRoot) {\n /** Data is from an existing search term, merge the facets together */\n this.facetRoot = mergeFacetRoots(\n this.fieldName,\n this.baseFacetRoot,\n incomingFacetRoot,\n );\n }\n }\n\n this.lastQuery = state.query;\n this.lastSearchMode = state.searchMode;\n this.lastSortType = state.sortType;\n this.lastTimeTaken = timeTaken;\n }\n\n connectedCallback() {\n this.handleStateUpdate(this.searchStore);\n\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n handleCheckboxChange(path: string) {\n const isCheckboxChecked = !this.selectedPaths[path];\n\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n } else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter(\n (testPath) => !testPath.includes(path),\n );\n\n this.selectedPaths = updatedPaths.reduce(\n (acc, str) => {\n acc[str] = true;\n return acc;\n },\n {} as Record<string, boolean>,\n );\n }\n\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter(\n (path) => this.selectedPaths[path],\n );\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n\n this.facetSelectionUpdated.emit({ paths: pathsWithParentPathsRemoved });\n }\n\n formatLabel = (facetChild: FacetChild): string => {\n const label = facetChild.path.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n\n formatSubLabel = (\n facetChild: FacetChild,\n facetChildAncestor: FacetChild,\n ): string => {\n const facetChildPath = facetChild.path.substring(\n facetChildAncestor.path.length,\n );\n const label = facetChildPath.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n\n render() {\n const firstFacet = this.facetRoot?.[this.fieldName];\n\n return (\n <div\n class={classNames(\n 'filtersListContainer',\n 'searchcraft-filters-list-container',\n )}\n >\n {!firstFacet && (\n <p class='searchcraft-facet-message'>\n Enter a search to view facets.\n </p>\n )}\n {firstFacet?.map((facetChild: FacetChild) => {\n const isChildSelected = facetChild.children\n ? facetChild.children?.some(\n (child) => this.selectedPaths[child.path],\n )\n : false;\n\n return (\n <div\n key={facetChild.path}\n class={classNames('searchcraft-filters-list-item')}\n >\n <label\n class={classNames(\n 'filterCheckboxLabel',\n 'searchcraft-filters-list-checkbox-label',\n )}\n >\n <input\n checked={this.selectedPaths[facetChild.path]}\n onChange={(_event: Event) =>\n this.handleCheckboxChange(facetChild.path)\n }\n type='checkbox'\n />\n {isChildSelected ? (\n <div\n class={classNames(\n 'dashContainer',\n 'searchcraft-filter-list-dash-container',\n )}\n >\n <searchcraft-dash-icon />\n </div>\n ) : (\n <div\n class={classNames(\n 'checkContainer',\n 'searchcraft-filter-list-check-container',\n )}\n >\n <searchcraft-check-icon />\n </div>\n )}\n {this.formatLabel(facetChild)}\n </label>\n {facetChild.children && facetChild.children.length > 0 && (\n <Fragment>\n {facetChild.children.map((grandchild) => (\n <label\n key={grandchild.path}\n class={classNames(\n 'childFilterCheckboxLabel',\n 'searchcraft-child-filter-checkbox-label',\n )}\n style={{\n display: this.selectedPaths[facetChild.path]\n ? 'flex'\n : 'none',\n }}\n >\n <input\n checked={this.selectedPaths[grandchild.path]}\n onChange={(_event: Event) => {\n this.handleCheckboxChange(grandchild.path);\n }}\n type='checkbox'\n />\n <div\n class={classNames(\n 'checkContainer',\n 'searchcraft-filter-list-check-container',\n )}\n >\n <searchcraft-check-icon />\n </div>\n {this.formatSubLabel(grandchild, facetChild)}\n </label>\n ))}\n </Fragment>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n}\n"]}
|
|
@@ -1,12 +1,53 @@
|
|
|
1
|
+
/** Appearance & Layout */
|
|
1
2
|
:root {
|
|
2
|
-
/**
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Border radius of the input form element.
|
|
5
|
+
*/
|
|
4
6
|
--sc-input-border-radius: 8px;
|
|
7
|
+
/**
|
|
8
|
+
* Icon size of the "magnifying glass" icon rendered in the input form.
|
|
9
|
+
*/
|
|
5
10
|
--sc-input-search-icon-size: 20px;
|
|
11
|
+
/**
|
|
12
|
+
* Icon size of the `x` button rendered in the input form.
|
|
13
|
+
*/
|
|
6
14
|
--sc-input-clear-icon-size: 20px;
|
|
15
|
+
/**
|
|
16
|
+
* Padding on the left side of the input form.
|
|
17
|
+
*/
|
|
7
18
|
--sc-input-padding-left: 44px;
|
|
19
|
+
/**
|
|
20
|
+
* Padding on the right side of the input form.
|
|
21
|
+
*/
|
|
8
22
|
--sc-input-padding-right: 44px;
|
|
23
|
+
/**
|
|
24
|
+
* Border radius applied to result images.
|
|
25
|
+
*/
|
|
9
26
|
--sc-image-border-radius: 8px;
|
|
27
|
+
/**
|
|
28
|
+
* Border radius applied to popover form containers.
|
|
29
|
+
*/
|
|
30
|
+
--sc-popover-form-border-radius: 8px;
|
|
31
|
+
/**
|
|
32
|
+
* Height of the list view/results container portion of the popover form.
|
|
33
|
+
*/
|
|
34
|
+
--sc-popover-list-view-height: 400px;
|
|
35
|
+
/**
|
|
36
|
+
* Size of images of list view items in the popoer list view.
|
|
37
|
+
*/
|
|
38
|
+
--sc-popover-list-item-image-size: 60px;
|
|
39
|
+
/**
|
|
40
|
+
* Horizontal padding of popover list items.
|
|
41
|
+
*/
|
|
42
|
+
--sc-popover-list-item-padding-horizontal: 8px;
|
|
43
|
+
/**
|
|
44
|
+
* Vertical padding of popover list items.
|
|
45
|
+
*/
|
|
46
|
+
--sc-popover-list-item-padding-vertical: 8px;
|
|
47
|
+
/**
|
|
48
|
+
* Maximum width of popover forms of type `modal`.
|
|
49
|
+
*/
|
|
50
|
+
--sc-popover-modal-max-width: 570px;
|
|
10
51
|
}
|
|
11
52
|
|
|
12
53
|
:root {
|
|
@@ -97,6 +138,15 @@
|
|
|
97
138
|
--sc-body-small-font-weight: 400;
|
|
98
139
|
}
|
|
99
140
|
|
|
141
|
+
/**
|
|
142
|
+
* Variables that need to be part of the preprocessor can go here.
|
|
143
|
+
*/
|
|
144
|
+
:root {
|
|
145
|
+
--sc-breakpoint-sm: 576px;
|
|
146
|
+
--sc-breakpoint-md: 768px;
|
|
147
|
+
--sc-breakpoint-lg: 992px;
|
|
148
|
+
}
|
|
149
|
+
|
|
100
150
|
.filtersListContainer {
|
|
101
151
|
width: 100%;
|
|
102
152
|
}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
2
|
import { useSearchcraftStore } from "../../provider/store";
|
|
3
|
-
import { getMillis } from "../../utils/
|
|
3
|
+
import { getMillis } from "../../utils/index";
|
|
4
|
+
/**
|
|
5
|
+
* This web component represents a series of filters that allows users to refine and control their search queries by applying various filter criteria.
|
|
6
|
+
*
|
|
7
|
+
* ## Usage
|
|
8
|
+
* ```html
|
|
9
|
+
* <!-- index.html -->
|
|
10
|
+
* <searchcraft-filter-panel />
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
4
13
|
export class SearchcraftFilterPanel {
|
|
5
14
|
constructor() {
|
|
6
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The items to filter.
|
|
17
|
+
*/
|
|
7
18
|
this.items = [];
|
|
8
|
-
this.
|
|
9
|
-
this.lastQuery = undefined;
|
|
19
|
+
this.searchStore = useSearchcraftStore.getState();
|
|
10
20
|
}
|
|
11
21
|
componentDidLoad() {
|
|
12
22
|
this.unsubscribe = useSearchcraftStore.subscribe((state) => {
|
|
@@ -49,7 +59,7 @@ export class SearchcraftFilterPanel {
|
|
|
49
59
|
this.searchStore.search();
|
|
50
60
|
}
|
|
51
61
|
handleExactMatchToggleUpdated(isActive) {
|
|
52
|
-
this.searchStore.setSearchMode(isActive ? '
|
|
62
|
+
this.searchStore.setSearchMode(isActive ? 'exact' : 'fuzzy');
|
|
53
63
|
this.searchStore.search();
|
|
54
64
|
}
|
|
55
65
|
handleMostRecentToggleUpdated(isActive) {
|
|
@@ -60,7 +70,7 @@ export class SearchcraftFilterPanel {
|
|
|
60
70
|
* Iterate through `items` and render them based on `type`
|
|
61
71
|
*/
|
|
62
72
|
render() {
|
|
63
|
-
return (h("div", { key: '
|
|
73
|
+
return (h("div", { key: '43bb83b1616c00f46727c7baff2cbc013f88e111', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {
|
|
64
74
|
switch (filterItem.type) {
|
|
65
75
|
case 'dateRange': {
|
|
66
76
|
const item = filterItem;
|
|
@@ -132,8 +142,10 @@ export class SearchcraftFilterPanel {
|
|
|
132
142
|
"optional": false,
|
|
133
143
|
"docs": {
|
|
134
144
|
"tags": [],
|
|
135
|
-
"text": ""
|
|
145
|
+
"text": "The items to filter."
|
|
136
146
|
},
|
|
147
|
+
"getter": false,
|
|
148
|
+
"setter": false,
|
|
137
149
|
"defaultValue": "[]"
|
|
138
150
|
}
|
|
139
151
|
};
|