@usereactify/search 5.0.0-beta.13 → 5.0.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/CHANGELOG.md +232 -0
  2. package/dist/package.json +3 -3
  3. package/dist/src/components/ClearAll/ClearAll.d.ts +8 -0
  4. package/dist/src/components/ClearAll/ClearAll.js +29 -0
  5. package/dist/src/components/ClearAll/ClearAll.js.map +1 -0
  6. package/dist/src/components/ClearAll/index.d.ts +1 -0
  7. package/dist/src/components/ClearAll/index.js +14 -0
  8. package/dist/src/components/ClearAll/index.js.map +1 -0
  9. package/dist/src/components/CustomComponent/CustomComponent.d.ts +4 -0
  10. package/dist/src/components/CustomComponent/CustomComponent.js +13 -0
  11. package/dist/src/components/CustomComponent/CustomComponent.js.map +1 -0
  12. package/dist/src/components/CustomComponent/index.d.ts +1 -0
  13. package/dist/src/components/CustomComponent/index.js +14 -0
  14. package/dist/src/components/CustomComponent/index.js.map +1 -0
  15. package/dist/src/components/Example/ExampleClearAll.d.ts +4 -0
  16. package/dist/src/components/Example/ExampleClearAll.js +12 -0
  17. package/dist/src/components/Example/ExampleClearAll.js.map +1 -0
  18. package/dist/src/components/Example/ExampleCustomComponent.d.ts +2 -0
  19. package/dist/src/components/Example/ExampleCustomComponent.js +36 -0
  20. package/dist/src/components/Example/ExampleCustomComponent.js.map +1 -0
  21. package/dist/src/components/Example/ExampleFilterList.d.ts +5 -0
  22. package/dist/src/components/Example/ExampleFilterList.js +80 -9
  23. package/dist/src/components/Example/ExampleFilterList.js.map +1 -1
  24. package/dist/src/components/Example/ExampleFilterRange.js +6 -11
  25. package/dist/src/components/Example/ExampleFilterRange.js.map +1 -1
  26. package/dist/src/components/Example/ExampleFilterSlider.js +8 -9
  27. package/dist/src/components/Example/ExampleFilterSlider.js.map +1 -1
  28. package/dist/src/components/Example/ExampleFilters.d.ts +1 -1
  29. package/dist/src/components/Example/ExampleFilters.js +1 -1
  30. package/dist/src/components/Example/ExampleFilters.js.map +1 -1
  31. package/dist/src/components/Example/ExampleFiltersActive.d.ts +4 -0
  32. package/dist/src/components/Example/ExampleFiltersActive.js +23 -0
  33. package/dist/src/components/Example/ExampleFiltersActive.js.map +1 -0
  34. package/dist/src/components/Example/ExampleHookUseFilters.d.ts +2 -0
  35. package/dist/src/components/Example/ExampleHookUseFilters.js +20 -0
  36. package/dist/src/components/Example/ExampleHookUseFilters.js.map +1 -0
  37. package/dist/src/components/Example/ExampleHookUseSearch.d.ts +2 -0
  38. package/dist/src/components/Example/ExampleHookUseSearch.js +22 -0
  39. package/dist/src/components/Example/ExampleHookUseSearch.js.map +1 -0
  40. package/dist/src/components/Example/ExampleHookUseSortBy.d.ts +2 -0
  41. package/dist/src/components/Example/ExampleHookUseSortBy.js +18 -0
  42. package/dist/src/components/Example/ExampleHookUseSortBy.js.map +1 -0
  43. package/dist/src/components/Example/ExampleReactiveSearchProviderCollection.d.ts +2 -0
  44. package/dist/src/components/Example/ExampleReactiveSearchProviderCollection.js +27 -0
  45. package/dist/src/components/Example/ExampleReactiveSearchProviderCollection.js.map +1 -0
  46. package/dist/src/components/Example/ExampleReactiveSearchProviderInstantSearch.d.ts +2 -0
  47. package/dist/src/components/Example/ExampleReactiveSearchProviderInstantSearch.js +27 -0
  48. package/dist/src/components/Example/ExampleReactiveSearchProviderInstantSearch.js.map +1 -0
  49. package/dist/src/components/Example/ExampleReactiveSearchProviderSearch.d.ts +2 -0
  50. package/dist/src/components/Example/ExampleReactiveSearchProviderSearch.js +27 -0
  51. package/dist/src/components/Example/ExampleReactiveSearchProviderSearch.js.map +1 -0
  52. package/dist/src/components/Example/ExampleResults.d.ts +2 -0
  53. package/dist/src/components/Example/ExampleResults.js +38 -0
  54. package/dist/src/components/Example/ExampleResults.js.map +1 -0
  55. package/dist/src/components/Example/ExampleSearch.d.ts +4 -0
  56. package/dist/src/components/Example/ExampleSearch.js +20 -0
  57. package/dist/src/components/Example/ExampleSearch.js.map +1 -0
  58. package/dist/src/components/Example/ExampleSortBy.d.ts +1 -1
  59. package/dist/src/components/Example/ExampleSortBy.js.map +1 -1
  60. package/dist/src/components/Example/ExampleStats.d.ts +4 -0
  61. package/dist/src/components/Example/ExampleStats.js +15 -0
  62. package/dist/src/components/Example/ExampleStats.js.map +1 -0
  63. package/dist/src/components/Example/index.d.ts +10 -0
  64. package/dist/src/components/Example/index.js +10 -0
  65. package/dist/src/components/Example/index.js.map +1 -1
  66. package/dist/src/components/Filter/Filter.d.ts +9 -6
  67. package/dist/src/components/Filter/Filter.js +22 -10
  68. package/dist/src/components/Filter/Filter.js.map +1 -1
  69. package/dist/src/components/Filter/Filters.d.ts +1 -1
  70. package/dist/src/components/Filter/Filters.js +2 -2
  71. package/dist/src/components/Filter/Filters.js.map +1 -1
  72. package/dist/src/components/Filter/FiltersActive.d.ts +16 -0
  73. package/dist/src/components/Filter/FiltersActive.js +36 -0
  74. package/dist/src/components/Filter/FiltersActive.js.map +1 -0
  75. package/dist/src/components/Filter/index.d.ts +1 -0
  76. package/dist/src/components/Filter/index.js +1 -0
  77. package/dist/src/components/Filter/index.js.map +1 -1
  78. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +2 -2
  79. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +11 -13
  80. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
  81. package/dist/src/components/Result/ResultCardCallout.d.ts +2 -4
  82. package/dist/src/components/Result/ResultCardCallout.js.map +1 -1
  83. package/dist/src/components/Result/ResultCardProduct.d.ts +2 -5
  84. package/dist/src/components/Result/ResultCardProduct.js.map +1 -1
  85. package/dist/src/components/Result/ResultPaginationLoadMore.d.ts +2 -2
  86. package/dist/src/components/Result/ResultPaginationLoadMore.js +1 -1
  87. package/dist/src/components/Result/ResultPaginationLoadMore.js.map +1 -1
  88. package/dist/src/components/Result/ResultPaginationNextPrev.d.ts +2 -2
  89. package/dist/src/components/Result/ResultPaginationNextPrev.js +1 -1
  90. package/dist/src/components/Result/ResultPaginationNextPrev.js.map +1 -1
  91. package/dist/src/components/Result/ResultPaginationNumbered.d.ts +2 -2
  92. package/dist/src/components/Result/ResultPaginationNumbered.js +1 -1
  93. package/dist/src/components/Result/ResultPaginationNumbered.js.map +1 -1
  94. package/dist/src/components/Result/Results.d.ts +19 -11
  95. package/dist/src/components/Result/Results.js +4 -4
  96. package/dist/src/components/Result/Results.js.map +1 -1
  97. package/dist/src/components/Search/Search.d.ts +7 -0
  98. package/dist/src/components/Search/Search.js +17 -0
  99. package/dist/src/components/Search/Search.js.map +1 -0
  100. package/dist/src/components/Search/index.d.ts +1 -1
  101. package/dist/src/components/Search/index.js +1 -1
  102. package/dist/src/components/Search/index.js.map +1 -1
  103. package/dist/src/components/Sensor/SensorSearch.js +7 -3
  104. package/dist/src/components/Sensor/SensorSearch.js.map +1 -1
  105. package/dist/src/components/SortBy/SortBy.d.ts +1 -1
  106. package/dist/src/components/SortBy/SortBy.js +2 -2
  107. package/dist/src/components/SortBy/SortBy.js.map +1 -1
  108. package/dist/src/components/Stats/Stats.d.ts +22 -0
  109. package/dist/src/components/Stats/Stats.js +15 -0
  110. package/dist/src/components/Stats/Stats.js.map +1 -0
  111. package/dist/src/components/Stats/index.d.ts +1 -0
  112. package/dist/src/components/Stats/index.js +14 -0
  113. package/dist/src/components/Stats/index.js.map +1 -0
  114. package/dist/src/components/index.d.ts +3 -0
  115. package/dist/src/components/index.js +3 -0
  116. package/dist/src/components/index.js.map +1 -1
  117. package/dist/src/hooks/index.d.ts +2 -0
  118. package/dist/src/hooks/index.js +2 -0
  119. package/dist/src/hooks/index.js.map +1 -1
  120. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.js +10 -10
  121. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.js.map +1 -1
  122. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.d.ts +6 -1
  123. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +12 -1
  124. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +1 -1
  125. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.d.ts +5 -0
  126. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +9 -2
  127. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +1 -1
  128. package/dist/src/hooks/useConfig.js +1 -1
  129. package/dist/src/hooks/useConfig.js.map +1 -1
  130. package/dist/src/hooks/useCuration.js +3 -3
  131. package/dist/src/hooks/useCuration.js.map +1 -1
  132. package/dist/src/hooks/useFilterListProps.d.ts +3 -2
  133. package/dist/src/hooks/useFilterListProps.js +37 -7
  134. package/dist/src/hooks/useFilterListProps.js.map +1 -1
  135. package/dist/src/hooks/useFilterRangeProps.d.ts +11 -0
  136. package/dist/src/hooks/useFilterRangeProps.js +53 -0
  137. package/dist/src/hooks/useFilterRangeProps.js.map +1 -0
  138. package/dist/src/hooks/useFilterSliderProps.d.ts +12 -0
  139. package/dist/src/hooks/useFilterSliderProps.js +49 -0
  140. package/dist/src/hooks/useFilterSliderProps.js.map +1 -0
  141. package/dist/src/hooks/useFilters.d.ts +2 -0
  142. package/dist/src/hooks/useFilters.js.map +1 -1
  143. package/dist/src/hooks/usePagination.d.ts +10 -0
  144. package/dist/src/hooks/usePagination.js.map +1 -1
  145. package/dist/src/hooks/useReactifySearchContext.d.ts +8 -8
  146. package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
  147. package/dist/src/hooks/useSearch.d.ts +8 -3
  148. package/dist/src/hooks/useSearch.js +24 -22
  149. package/dist/src/hooks/useSearch.js.map +1 -1
  150. package/dist/src/hooks/useSortBy.d.ts +4 -1
  151. package/dist/src/hooks/useSortBy.js +2 -0
  152. package/dist/src/hooks/useSortBy.js.map +1 -1
  153. package/dist/src/types/firestore.d.ts +3 -0
  154. package/dist/src/types/firestore.js.map +1 -1
  155. package/dist/src/types/reactivesearch.d.ts +2 -2
  156. package/dist/src/types/reactivesearch.js.map +1 -1
  157. package/package.json +3 -3
  158. package/dist/src/components/Search/SearchInput.d.ts +0 -8
  159. package/dist/src/components/Search/SearchInput.js +0 -18
  160. package/dist/src/components/Search/SearchInput.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../../src/hooks/useSearch.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAuC;AACvC,kDAA0B;AAE1B,oCAAoD;AACpD,wCAAmC;AAE5B,MAAM,SAAS,GAAG,GAMvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAE/D,MAAM,uBAAuB,GAAG,eAAK,CAAC,WAAW,CAC/C,CAAC,cAAsB,MAAM,CAAC,WAAW,EAAE,EAAE;QAC3C,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE;gBACJ,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;QAEH,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CACpC,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CACnC,CAAC;QAEF,IAAI,QAAQ,EAAE;YACZ,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;SAC5D;QAED,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,CAAC,UAAU,CAChB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAChC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,WAAW,EAAE,CACrD,CAAC;SACH;aAAM,IAAI,QAAQ,EAAE;YACnB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC;SACrC;aAAM;YACL,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,WAAW,EAAE,CAAC;SACnD;IACH,CAAC,EACD,CAAC,MAAM,CAAC,WAAW,CAAC,CACrB,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,yBAAyB,EAAE,GACtE,IAAA,sBAAa,EACX,CAAC,cAAsB,MAAM,CAAC,WAAW,EAAE,EAAE;QAC3C,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE;gBACJ,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;IACL,CAAC,EACD;QACE,IAAI,EAAE,GAAG;KACV,CACF,CAAC;IAEJ,MAAM,oBAAoB,GAAG,eAAK,CAAC,WAAW,CAC5C,CAAC,cAAsB,MAAM,CAAC,WAAW,EAAE,EAAE;QAC3C,IAAI,WAAW,EAAE;YACf,sBAAsB,CAAC,WAAW,CAAC,CAAC;SACrC;aAAM;YACL,yBAAyB,EAAE,CAAC;SAC7B;QAED,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,MAAM,CAAC,WAAW,CAAC,CACrB,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,oBAAoB;QACpC,YAAY,EAAE,uBAAuB;QACrC,wBAAwB,EACtB,CAAC,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW;QACvD,2BAA2B,EAAE,MAAM,CAAC,uBAAuB;KAC5D,CAAC;AACJ,CAAC,CAAC;AAxFW,QAAA,SAAS,aAwFpB","sourcesContent":["import { useDebounceFn } from \"ahooks\";\nimport React from \"react\";\n\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useSearch = (): {\n searchQuery: string;\n setSearchQuery: (searchQuery?: string) => void;\n submitSearch: (searchQuery?: string) => void;\n showInstantSearchResults: boolean;\n setShowInstantSearchResults: React.Dispatch<React.SetStateAction<boolean>>;\n} => {\n const { options, config, search } = useReactifySearchContext();\n\n const handleSubmitSearchQuery = React.useCallback(\n (searchQuery: string = search.searchQuery) => {\n debug.breadcrumb({\n category: \"search\",\n message: \"search submit\",\n data: {\n searchQuery: searchQuery,\n },\n });\n\n debug.log(\"useSearch\", \"submitSearch[query]\", searchQuery);\n\n if (!searchQuery) {\n return;\n }\n\n const redirect = config.redirects.find(\n (redirect) =>\n redirect.query.trim().toLowerCase() ===\n searchQuery.trim().toLowerCase()\n );\n\n if (redirect) {\n debug.log(\"useSearch\", \"submitSearch[redirect]\", redirect);\n }\n\n search.setInstantSearchVisible(false);\n\n if (options.onRedirect) {\n options.onRedirect(\n redirect ? \"redirect\" : \"search\",\n redirect ? redirect.url : `/search?q=${searchQuery}`\n );\n } else if (redirect) {\n window.location.href = redirect.url;\n } else {\n window.location.href = `/search?q=${searchQuery}`;\n }\n },\n [search.searchQuery]\n );\n\n const { run: runDebouncedBreadcrumb, cancel: cancelDebouncedBreadcrumb } =\n useDebounceFn(\n (searchQuery: string = search.searchQuery) => {\n debug.breadcrumb({\n category: \"search\",\n message: \"search query\",\n data: {\n searchQuery: searchQuery,\n },\n });\n },\n {\n wait: 300,\n }\n );\n\n const handleSetSearchQuery = React.useCallback(\n (searchQuery: string = search.searchQuery) => {\n if (searchQuery) {\n runDebouncedBreadcrumb(searchQuery);\n } else {\n cancelDebouncedBreadcrumb();\n }\n\n search.setSearchQuery(searchQuery);\n },\n [search.searchQuery]\n );\n\n return {\n searchQuery: search.searchQuery,\n setSearchQuery: handleSetSearchQuery,\n submitSearch: handleSubmitSearchQuery,\n showInstantSearchResults:\n !!search.instantSearchVisible && !!search.searchQuery,\n setShowInstantSearchResults: search.setInstantSearchVisible,\n };\n};\n"]}
1
+ {"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../../src/hooks/useSearch.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAuC;AACvC,kDAA0B;AAE1B,oCAAoD;AACpD,wCAAmC;AAE5B,MAAM,SAAS,GAAG,GAWvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAE/D,MAAM,sBAAsB,GAAG,eAAK,CAAC,WAAW,CAC9C,CAAC,aAAqB,MAAM,CAAC,UAAU,EAAE,EAAE;QACzC,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE;gBACJ,UAAU,EAAE,UAAU;aACvB;SACF,CAAC,CAAC;QAEH,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAyB,EAAE,UAAU,CAAC,CAAC;QAE9D,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CACpC,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAClC,CAAC;QAEF,IAAI,QAAQ,EAAE;YACZ,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAC;SAChE;QAED,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,CAAC,UAAU,CAChB,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAChC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,UAAU,EAAE,CACpD,CAAC;SACH;aAAM,IAAI,QAAQ,EAAE;YACnB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC;SACrC;aAAM;YACL,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,UAAU,EAAE,CAAC;SAClD;IACH,CAAC,EACD,CAAC,MAAM,CAAC,UAAU,CAAC,CACpB,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,yBAAyB,EAAE,GACtE,IAAA,sBAAa,EACX,CAAC,aAAqB,MAAM,CAAC,UAAU,EAAE,EAAE;QACzC,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,2BAA2B,EAAE,UAAU,CAAC,CAAC;QAChE,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE;gBACJ,UAAU,EAAE,UAAU;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD;QACE,IAAI,EAAE,GAAG;KACV,CACF,CAAC;IAEJ,MAAM,mBAAmB,GAAG,eAAK,CAAC,WAAW,CAC3C,CAAC,aAAqB,EAAE,EAAE,EAAE;QAC1B,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE,2BAA2B,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,UAAU,EAAE;YACd,sBAAsB,CAAC,UAAU,CAAC,CAAC;SACpC;aAAM;YACL,yBAAyB,EAAE,CAAC;SAC7B;QAED,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,MAAM,CAAC,UAAU,CAAC,CACpB,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,mBAAmB;QAClC,gBAAgB,EAAE,sBAAsB;QACxC,wBAAwB,EACtB,CAAC,CAAC,MAAM,CAAC,wBAAwB,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU;QAC1D,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;KAChE,CAAC;AACJ,CAAC,CAAC;AA/FW,QAAA,SAAS,aA+FpB","sourcesContent":["import { useDebounceFn } from \"ahooks\";\nimport React from \"react\";\n\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useSearch = (): {\n /** The current search term */\n searchTerm: string;\n /** Function for changing the current search term */\n setSearchTerm: (searchTerm?: string) => void;\n /** Function for navigating to the search page, includes logic for redirects */\n submitSearchTerm: (searchTerm?: string) => void;\n /** Used to determine if instant search results should be displayed */\n showInstantSearchResults: boolean;\n /** Used to manually set the \"showInstantSearchResults\" value */\n setShowInstantSearchResults: React.Dispatch<React.SetStateAction<boolean>>;\n} => {\n const { options, config, search } = useReactifySearchContext();\n\n const handleSubmitSearchTerm = React.useCallback(\n (searchTerm: string = search.searchTerm) => {\n debug.breadcrumb({\n category: \"search\",\n message: \"search submit\",\n data: {\n searchTerm: searchTerm,\n },\n });\n\n debug.log(\"useSearch\", \"submitSearchTerm[query]\", searchTerm);\n\n if (!searchTerm) {\n return;\n }\n\n const redirect = config.redirects.find(\n (redirect) =>\n redirect.query.trim().toLowerCase() ===\n searchTerm.trim().toLowerCase()\n );\n\n if (redirect) {\n debug.log(\"useSearch\", \"submitSearchTerm[redirect]\", redirect);\n }\n\n search.setShowInstantSearchResults(false);\n\n if (options.onRedirect) {\n options.onRedirect(\n redirect ? \"redirect\" : \"search\",\n redirect ? redirect.url : `/search?q=${searchTerm}`\n );\n } else if (redirect) {\n window.location.href = redirect.url;\n } else {\n window.location.href = `/search?q=${searchTerm}`;\n }\n },\n [search.searchTerm]\n );\n\n const { run: runDebouncedBreadcrumb, cancel: cancelDebouncedBreadcrumb } =\n useDebounceFn(\n (searchTerm: string = search.searchTerm) => {\n debug.log(\"useSearch\", \"setSearchTerm[searchTerm]\", searchTerm);\n debug.breadcrumb({\n category: \"search\",\n message: \"search query\",\n data: {\n searchTerm: searchTerm,\n },\n });\n },\n {\n wait: 300,\n }\n );\n\n const handleSetSearchTerm = React.useCallback(\n (searchTerm: string = \"\") => {\n debug.log(\"useSearch\", \"setSearchTerm[searchTerm]\", searchTerm);\n if (searchTerm) {\n runDebouncedBreadcrumb(searchTerm);\n } else {\n cancelDebouncedBreadcrumb();\n }\n\n search.setSearchTerm(searchTerm);\n },\n [search.searchTerm]\n );\n\n return {\n searchTerm: search.searchTerm,\n setSearchTerm: handleSetSearchTerm,\n submitSearchTerm: handleSubmitSearchTerm,\n showInstantSearchResults:\n !!search.showInstantSearchResults && !!search.searchTerm,\n setShowInstantSearchResults: search.setShowInstantSearchResults,\n };\n};\n"]}
@@ -1,6 +1,9 @@
1
1
  import { ConfigSort } from "../types";
2
2
  export declare const useSortBy: () => {
3
- sortOption: ConfigSort | undefined;
3
+ /** The currently selected sort option */
4
+ sortOption?: ConfigSort | undefined;
5
+ /** All of the available sort options */
4
6
  sortOptions: Array<ConfigSort>;
7
+ /** Function for changing the current sort option */
5
8
  setSortOption: (sortOptionHandle: string, ignoreHistoryState?: boolean | undefined) => void;
6
9
  };
@@ -46,6 +46,8 @@ const useSortBy = () => {
46
46
  },
47
47
  });
48
48
  }, [window.location.href]);
49
+ utility_1.debug.hook("useSortBy", "sortOption", sortOption);
50
+ utility_1.debug.hook("useSortBy", "sortOptions", sortOptions);
49
51
  return {
50
52
  sortOptions,
51
53
  sortOption,
@@ -1 +1 @@
1
- {"version":3,"file":"useSortBy.js","sourceRoot":"","sources":["../../../src/hooks/useSortBy.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;AAE5B,MAAM,SAAS,GAAG,GAOvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,MAAM,CAAC,IAAI;aACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC;YAC9D,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,gBAAwB,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;QACvD,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE;gBACJ,gBAAgB,EAAE,gBAAgB;aACnC;SACF,CAAC,CAAC;QAEH,eAAK,CAAC,GAAG,CACP,WAAW,EACX,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAEvC,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aAChD;iBAAM;gBACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aACnD;YACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD;QAED,KAAK,CAAC;YACJ,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvB,CAAC;IAEF,OAAO;QACL,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAnEW,QAAA,SAAS,aAmEpB","sourcesContent":["import React from \"react\";\n\nimport { ConfigSort } from \"../types\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useSortBy = (): {\n sortOption: ConfigSort | undefined;\n sortOptions: Array<ConfigSort>;\n setSortOption: (\n sortOptionHandle: string,\n ignoreHistoryState?: boolean\n ) => void;\n} => {\n const { options, config, sortby } = useReactifySearchContext();\n const { track } = useAnalytics();\n\n const sortOptions = React.useMemo(() => {\n return config.sort\n .sort((a, b) => `${a.position}`.localeCompare(`${b.position}`))\n .filter(({ visibility }) => [\"all\", options.mode].includes(visibility));\n }, [options.mode, config]);\n\n const sortOption = React.useMemo(() => {\n return (\n sortOptions.find(({ handle }) => handle === sortby.sortOption) ||\n sortOptions[0]\n );\n }, [sortOptions, sortby.sortOption]);\n\n const setSortOption = React.useCallback(\n (sortOptionHandle: string, ignoreHistoryState = false) => {\n debug.breadcrumb({\n category: \"sort\",\n message: \"sort option changed\",\n data: {\n sortOptionHandle: sortOptionHandle,\n },\n });\n\n debug.log(\n \"useSortBy\",\n \"setSortOption[sortOptionHandle]\",\n sortOptionHandle\n );\n\n sortby.setSortOption(sortOptionHandle);\n\n if (!ignoreHistoryState) {\n const url = new URL(window.location.href);\n if (url.searchParams.has(\"sort\")) {\n url.searchParams.set(\"sort\", sortOptionHandle);\n } else {\n url.searchParams.append(\"sort\", sortOptionHandle);\n }\n window.history.pushState({}, \"\", url.toString());\n }\n\n track({\n eventName: \"sortChange\",\n payload: {\n type: sortOptionHandle,\n },\n });\n },\n [window.location.href]\n );\n\n return {\n sortOptions,\n sortOption,\n setSortOption,\n };\n};\n"]}
1
+ {"version":3,"file":"useSortBy.js","sourceRoot":"","sources":["../../../src/hooks/useSortBy.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;AAE5B,MAAM,SAAS,GAAG,GAUvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,MAAM,CAAC,IAAI;aACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC;YAC9D,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,gBAAwB,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;QACvD,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE;gBACJ,gBAAgB,EAAE,gBAAgB;aACnC;SACF,CAAC,CAAC;QAEH,eAAK,CAAC,GAAG,CACP,WAAW,EACX,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAEvC,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aAChD;iBAAM;gBACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aACnD;YACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD;QAED,KAAK,CAAC;YACJ,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvB,CAAC;IAEF,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAEpD,OAAO;QACL,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAzEW,QAAA,SAAS,aAyEpB","sourcesContent":["import React from \"react\";\n\nimport { ConfigSort } from \"../types\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useSortBy = (): {\n /** The currently selected sort option */\n sortOption?: ConfigSort;\n /** All of the available sort options */\n sortOptions: Array<ConfigSort>;\n /** Function for changing the current sort option */\n setSortOption: (\n sortOptionHandle: string,\n ignoreHistoryState?: boolean\n ) => void;\n} => {\n const { options, config, sortby } = useReactifySearchContext();\n const { track } = useAnalytics();\n\n const sortOptions = React.useMemo(() => {\n return config.sort\n .sort((a, b) => `${a.position}`.localeCompare(`${b.position}`))\n .filter(({ visibility }) => [\"all\", options.mode].includes(visibility));\n }, [options.mode, config]);\n\n const sortOption = React.useMemo(() => {\n return (\n sortOptions.find(({ handle }) => handle === sortby.sortOption) ||\n sortOptions[0]\n );\n }, [sortOptions, sortby.sortOption]);\n\n const setSortOption = React.useCallback(\n (sortOptionHandle: string, ignoreHistoryState = false) => {\n debug.breadcrumb({\n category: \"sort\",\n message: \"sort option changed\",\n data: {\n sortOptionHandle: sortOptionHandle,\n },\n });\n\n debug.log(\n \"useSortBy\",\n \"setSortOption[sortOptionHandle]\",\n sortOptionHandle\n );\n\n sortby.setSortOption(sortOptionHandle);\n\n if (!ignoreHistoryState) {\n const url = new URL(window.location.href);\n if (url.searchParams.has(\"sort\")) {\n url.searchParams.set(\"sort\", sortOptionHandle);\n } else {\n url.searchParams.append(\"sort\", sortOptionHandle);\n }\n window.history.pushState({}, \"\", url.toString());\n }\n\n track({\n eventName: \"sortChange\",\n payload: {\n type: sortOptionHandle,\n },\n });\n },\n [window.location.href]\n );\n\n debug.hook(\"useSortBy\", \"sortOption\", sortOption);\n debug.hook(\"useSortBy\", \"sortOptions\", sortOptions);\n\n return {\n sortOptions,\n sortOption,\n setSortOption,\n };\n};\n"]}
@@ -131,6 +131,9 @@ export interface FilterOption {
131
131
  displaySize: string;
132
132
  displaySliderInterval: string;
133
133
  displaySliderStep: string;
134
+ displaySliderPrefix?: string;
135
+ displaySliderSuffix?: string;
136
+ displayRangeOptions?: Array<string>;
134
137
  displayType: "multi" | "single" | "range" | "slider";
135
138
  displayView: "list" | "check" | "swatch" | "box";
136
139
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../src/types/firestore.ts"],"names":[],"mappings":";;;AA+NA,IAAY,cAQX;AARD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,+CAA6B,CAAA;IAC7B,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EARW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAQzB;AAyBD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;AACrB,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB","sourcesContent":["// @todo this is so we don't need to import firebase\ntype Timestamp = string;\n\nimport { ShopifyProduct } from \"./shopify\";\nimport { ElasticDataType } from \"./elastic\";\n\nexport interface Log {\n id: string;\n keywords: string[];\n message: string;\n platform: \"reactify\" | \"shopify\" | \"elastic\";\n percentCompleted: number;\n action?: {\n type: \"retry\";\n label: string;\n task: Task[\"taskId\"];\n };\n step:\n | \"download\"\n | \"transform\"\n | \"merge\"\n | \"upload\"\n | \"cleanup\"\n | \"complete\"\n | \"sync\";\n title: string;\n type: \"bulk\";\n data?: string; // JSON sringified data\n progress: \"new\" | \"error\" | \"complete\" | \"partiallyComplete\";\n status: \"success\" | \"info\" | \"warning\" | \"critical\"; // polaris banner status\n createdAt: Timestamp;\n updatedAt?: Timestamp;\n finishedAt?: Timestamp;\n}\n\nexport interface Task {\n logId: string;\n taskId:\n | \"download\"\n | \"transform\"\n | \"merge\"\n | \"upload\"\n | \"cleanup\"\n | \"refreshDefinedFields\"\n | \"install\";\n firstRun: boolean;\n createdAt: Timestamp;\n updatedAt?: Timestamp;\n}\n\nexport interface TaskDownload extends Task {\n taskId: \"download\";\n type: \"collection\" | \"product\";\n productUrl?: string;\n collectionUrl?: string;\n}\n\nexport interface TaskTransform extends Task {\n taskId: \"transform\";\n productUrl: string;\n collectionUrl: string;\n}\n\nexport interface TaskMerge extends Task {\n taskId: \"merge\";\n productCount: number;\n collectionCount: number;\n startAfterId?: string;\n}\n\nexport interface TaskUpload extends Task {\n taskId: \"upload\";\n productCount: number;\n collectionCount: number;\n startAfterId?: string;\n}\n\nexport interface TaskCleanup extends Task {\n taskId: \"cleanup\";\n}\n\nexport interface TaskRefreshDefinedFields extends Task {\n taskId: \"refreshDefinedFields\";\n}\n\nexport interface TaskInstall extends Task {\n taskId: \"install\";\n}\n\nexport interface Lock {\n logId: string;\n taskType: \"sync\";\n createdAt: Timestamp;\n}\n\nexport interface SettingsInstance {\n index: string;\n cloudId: string;\n endpoint: string;\n password: string;\n username: string;\n syncFrequency: string;\n syncThreshold: number;\n provider: \"elastic\" | \"aws\";\n storefrontAccessToken: string;\n customMappings: string; // JSON sringified data\n}\n\nexport interface SettingsProduct {\n tagChild?: string;\n tagKeys?: string[];\n tagParent?: string;\n syncObjects: string[];\n tagExclude?: string[];\n tagSeparator?: string;\n metafieldWhitelist?: string[];\n}\n\nexport interface SettingsCurations {\n moreInfo?: boolean;\n pageSize?: number;\n gridColumns?: number;\n}\n\nexport interface Field {\n id: string;\n field: string;\n enabled: boolean;\n importance: number;\n searchType: \"always_search\" | \"search_page\" | \"instant_search\";\n}\n\nexport interface DefinedField {\n label: string;\n value: string;\n type: ElasticDataType;\n}\n\nexport interface Sort {\n id: string;\n name: string;\n handle: string;\n field: string;\n position: number;\n enabled: boolean;\n direction: \"desc\" | \"asc\";\n visibility: \"all\" | \"search\" | \"collection\";\n}\n\nexport interface Filter {\n id: string;\n name: string;\n handle: string;\n enabled: boolean;\n pageSize: number;\n keywords: string[];\n defaultSort: string;\n collections: string[];\n type: \"search\" | \"collection\";\n paginationType: \"pagination\" | \"load_more\" | \"next_prev\" | \"infinite_scroll\";\n inventoryVisibility:\n | \"show_all\"\n | \"hide_products\"\n | \"hide_variants\"\n | \"hide_all\";\n}\n\nexport interface FilterOption {\n displaySize: string;\n displaySliderInterval: string;\n displaySliderStep: string;\n displayType: \"multi\" | \"single\" | \"range\" | \"slider\";\n displayView: \"list\" | \"check\" | \"swatch\" | \"box\";\n enabled: boolean;\n field: string;\n id: string;\n name: string;\n handle: string;\n position: number;\n settingsCollapsedDesktop: boolean;\n settingsCollapsedMobile: boolean;\n settingsShowFilter: boolean;\n settingsShowMore: boolean;\n settingsShowSearch: boolean;\n settingsUppercase: boolean;\n settingsHideUnavailable: boolean;\n valuesExclude: Array<string>;\n valuesManual: Array<string>;\n valuesShow: \"all\" | \"manual\";\n}\n\nexport interface Redirect {\n id: string;\n url: string;\n query: string;\n enabled: boolean;\n keywords: string[];\n}\n\nexport interface Curation {\n id: string;\n title: string;\n status: CurationStatus;\n published: boolean;\n keywords: string[];\n searchTerm?: string;\n longRunningTask?: boolean;\n collectionHandle?: string;\n type: \"collection\" | \"search\";\n boosting?: {\n groupings?: BoostGrouping[];\n sortings?: BoostSorting[];\n };\n sort?: CurationSort;\n}\n\nexport interface CurationSort {\n sortTag?: string;\n sortOption: string;\n sortDirection: \"asc\" | \"desc\";\n sortVariantOption?: \"option1\" | \"option2\" | \"option3\";\n}\n\nexport enum CurationStatus {\n Draft = \"draft\",\n Publishing = \"publishing\",\n Published = \"published\",\n Unpublishing = \"unpublishing\",\n Resetting = \"resetting\",\n Pinning = \"pinning\",\n Sorting = \"sorting\",\n}\n\nexport interface CurationHiding {\n productId: number;\n productHandle: string;\n}\n\nexport interface BoostGrouping {\n key: string;\n value: string;\n field: string;\n position: number;\n operation: string;\n}\n\nexport interface BoostSorting {\n key: string;\n field: string;\n query?: string;\n position: number;\n direction: \"asc\" | \"desc\";\n}\n\nexport type Pin = PinProduct | PinCallout;\n\nexport enum PinType {\n Product = \"product\",\n Callout = \"callout\",\n}\n\nexport interface PinProduct {\n key: string;\n type: PinType.Product;\n position: number;\n productId: number;\n productHandle: string;\n}\n\nexport interface PinCallout {\n key: string;\n type: PinType.Callout;\n position: number;\n calloutId: string;\n}\n\nexport interface Callout {\n id: string;\n link: string;\n title: string;\n content: string;\n enabled: boolean;\n textColor: string;\n keywords: string[];\n mobileImage: string;\n mobileVideo: string;\n desktopVideo: string;\n desktopImage: string;\n backgroundColor: string;\n visibility: \"desktop\" | \"mobile\" | \"all\";\n displayColumns: string; // @todo this should be a number\n displayRows: string; // @todo this should be a number\n selectedDates?: {\n end: Timestamp;\n start: Timestamp;\n };\n}\n\nexport interface Synonym {\n id: string;\n name: string;\n enabled: boolean;\n keywords: string[];\n synonyms: string[];\n type: \"group\" | \"oneway\";\n}\n\nexport interface MergedValue {\n id: string;\n name: string;\n field: string;\n keywords: string[];\n values: string[];\n}\n\nexport interface Collection {\n title: string;\n handle: string;\n shopifyId: string;\n productIds: string[];\n storefrontId: string;\n legacyResourceId: number;\n}\n\n// product is the shopify product with edges and nodes normalised\nexport type Product = Omit<\n ShopifyProduct,\n \"variants\" | \"images\" | \"media\" | \"metafields\"\n> & {\n variants: (Omit<\n ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"],\n \"presentmentPrices\"\n > & {\n images?: ShopifyProduct[\"images\"][\"edges\"][0][\"node\"][]; // from child product if this variant is from a child\n presentmentPrices: ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"][\"presentmentPrices\"][\"edges\"][0][\"node\"][];\n })[];\n images: ShopifyProduct[\"images\"][\"edges\"][0][\"node\"][];\n media: ShopifyProduct[\"media\"][\"edges\"][0][\"node\"][];\n metafields: ShopifyProduct[\"metafields\"][\"edges\"][0][\"node\"][];\n};\n"]}
1
+ {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../src/types/firestore.ts"],"names":[],"mappings":";;;AAkOA,IAAY,cAQX;AARD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,+CAA6B,CAAA;IAC7B,yCAAuB,CAAA;IACvB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EARW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAQzB;AAyBD,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;AACrB,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB","sourcesContent":["// @todo this is so we don't need to import firebase\ntype Timestamp = string;\n\nimport { ShopifyProduct } from \"./shopify\";\nimport { ElasticDataType } from \"./elastic\";\n\nexport interface Log {\n id: string;\n keywords: string[];\n message: string;\n platform: \"reactify\" | \"shopify\" | \"elastic\";\n percentCompleted: number;\n action?: {\n type: \"retry\";\n label: string;\n task: Task[\"taskId\"];\n };\n step:\n | \"download\"\n | \"transform\"\n | \"merge\"\n | \"upload\"\n | \"cleanup\"\n | \"complete\"\n | \"sync\";\n title: string;\n type: \"bulk\";\n data?: string; // JSON sringified data\n progress: \"new\" | \"error\" | \"complete\" | \"partiallyComplete\";\n status: \"success\" | \"info\" | \"warning\" | \"critical\"; // polaris banner status\n createdAt: Timestamp;\n updatedAt?: Timestamp;\n finishedAt?: Timestamp;\n}\n\nexport interface Task {\n logId: string;\n taskId:\n | \"download\"\n | \"transform\"\n | \"merge\"\n | \"upload\"\n | \"cleanup\"\n | \"refreshDefinedFields\"\n | \"install\";\n firstRun: boolean;\n createdAt: Timestamp;\n updatedAt?: Timestamp;\n}\n\nexport interface TaskDownload extends Task {\n taskId: \"download\";\n type: \"collection\" | \"product\";\n productUrl?: string;\n collectionUrl?: string;\n}\n\nexport interface TaskTransform extends Task {\n taskId: \"transform\";\n productUrl: string;\n collectionUrl: string;\n}\n\nexport interface TaskMerge extends Task {\n taskId: \"merge\";\n productCount: number;\n collectionCount: number;\n startAfterId?: string;\n}\n\nexport interface TaskUpload extends Task {\n taskId: \"upload\";\n productCount: number;\n collectionCount: number;\n startAfterId?: string;\n}\n\nexport interface TaskCleanup extends Task {\n taskId: \"cleanup\";\n}\n\nexport interface TaskRefreshDefinedFields extends Task {\n taskId: \"refreshDefinedFields\";\n}\n\nexport interface TaskInstall extends Task {\n taskId: \"install\";\n}\n\nexport interface Lock {\n logId: string;\n taskType: \"sync\";\n createdAt: Timestamp;\n}\n\nexport interface SettingsInstance {\n index: string;\n cloudId: string;\n endpoint: string;\n password: string;\n username: string;\n syncFrequency: string;\n syncThreshold: number;\n provider: \"elastic\" | \"aws\";\n storefrontAccessToken: string;\n customMappings: string; // JSON sringified data\n}\n\nexport interface SettingsProduct {\n tagChild?: string;\n tagKeys?: string[];\n tagParent?: string;\n syncObjects: string[];\n tagExclude?: string[];\n tagSeparator?: string;\n metafieldWhitelist?: string[];\n}\n\nexport interface SettingsCurations {\n moreInfo?: boolean;\n pageSize?: number;\n gridColumns?: number;\n}\n\nexport interface Field {\n id: string;\n field: string;\n enabled: boolean;\n importance: number;\n searchType: \"always_search\" | \"search_page\" | \"instant_search\";\n}\n\nexport interface DefinedField {\n label: string;\n value: string;\n type: ElasticDataType;\n}\n\nexport interface Sort {\n id: string;\n name: string;\n handle: string;\n field: string;\n position: number;\n enabled: boolean;\n direction: \"desc\" | \"asc\";\n visibility: \"all\" | \"search\" | \"collection\";\n}\n\nexport interface Filter {\n id: string;\n name: string;\n handle: string;\n enabled: boolean;\n pageSize: number;\n keywords: string[];\n defaultSort: string;\n collections: string[];\n type: \"search\" | \"collection\";\n paginationType: \"pagination\" | \"load_more\" | \"next_prev\" | \"infinite_scroll\";\n inventoryVisibility:\n | \"show_all\"\n | \"hide_products\"\n | \"hide_variants\"\n | \"hide_all\";\n}\n\nexport interface FilterOption {\n displaySize: string;\n displaySliderInterval: string;\n displaySliderStep: string;\n displaySliderPrefix?: string;\n displaySliderSuffix?: string;\n displayRangeOptions?: Array<string>; // formatted like \"<label>:<start>:<end>\"\n displayType: \"multi\" | \"single\" | \"range\" | \"slider\";\n displayView: \"list\" | \"check\" | \"swatch\" | \"box\";\n enabled: boolean;\n field: string;\n id: string;\n name: string;\n handle: string;\n position: number;\n settingsCollapsedDesktop: boolean;\n settingsCollapsedMobile: boolean;\n settingsShowFilter: boolean;\n settingsShowMore: boolean;\n settingsShowSearch: boolean;\n settingsUppercase: boolean;\n settingsHideUnavailable: boolean;\n valuesExclude: Array<string>;\n valuesManual: Array<string>;\n valuesShow: \"all\" | \"manual\";\n}\n\nexport interface Redirect {\n id: string;\n url: string;\n query: string;\n enabled: boolean;\n keywords: string[];\n}\n\nexport interface Curation {\n id: string;\n title: string;\n status: CurationStatus;\n published: boolean;\n keywords: string[];\n searchTerm?: string;\n longRunningTask?: boolean;\n collectionHandle?: string;\n type: \"collection\" | \"search\";\n boosting?: {\n groupings?: BoostGrouping[];\n sortings?: BoostSorting[];\n };\n sort?: CurationSort;\n}\n\nexport interface CurationSort {\n sortTag?: string;\n sortOption: string;\n sortDirection: \"asc\" | \"desc\";\n sortVariantOption?: \"option1\" | \"option2\" | \"option3\";\n}\n\nexport enum CurationStatus {\n Draft = \"draft\",\n Publishing = \"publishing\",\n Published = \"published\",\n Unpublishing = \"unpublishing\",\n Resetting = \"resetting\",\n Pinning = \"pinning\",\n Sorting = \"sorting\",\n}\n\nexport interface CurationHiding {\n productId: number;\n productHandle: string;\n}\n\nexport interface BoostGrouping {\n key: string;\n value: string;\n field: string;\n position: number;\n operation: string;\n}\n\nexport interface BoostSorting {\n key: string;\n field: string;\n query?: string;\n position: number;\n direction: \"asc\" | \"desc\";\n}\n\nexport type Pin = PinProduct | PinCallout;\n\nexport enum PinType {\n Product = \"product\",\n Callout = \"callout\",\n}\n\nexport interface PinProduct {\n key: string;\n type: PinType.Product;\n position: number;\n productId: number;\n productHandle: string;\n}\n\nexport interface PinCallout {\n key: string;\n type: PinType.Callout;\n position: number;\n calloutId: string;\n}\n\nexport interface Callout {\n id: string;\n link: string;\n title: string;\n content: string;\n enabled: boolean;\n textColor: string;\n keywords: string[];\n mobileImage: string;\n mobileVideo: string;\n desktopVideo: string;\n desktopImage: string;\n backgroundColor: string;\n visibility: \"desktop\" | \"mobile\" | \"all\";\n displayColumns: string; // @todo this should be a number\n displayRows: string; // @todo this should be a number\n selectedDates?: {\n end: Timestamp;\n start: Timestamp;\n };\n}\n\nexport interface Synonym {\n id: string;\n name: string;\n enabled: boolean;\n keywords: string[];\n synonyms: string[];\n type: \"group\" | \"oneway\";\n}\n\nexport interface MergedValue {\n id: string;\n name: string;\n field: string;\n keywords: string[];\n values: string[];\n}\n\nexport interface Collection {\n title: string;\n handle: string;\n shopifyId: string;\n productIds: string[];\n storefrontId: string;\n legacyResourceId: number;\n}\n\n// product is the shopify product with edges and nodes normalised\nexport type Product = Omit<\n ShopifyProduct,\n \"variants\" | \"images\" | \"media\" | \"metafields\"\n> & {\n variants: (Omit<\n ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"],\n \"presentmentPrices\"\n > & {\n images?: ShopifyProduct[\"images\"][\"edges\"][0][\"node\"][]; // from child product if this variant is from a child\n presentmentPrices: ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"][\"presentmentPrices\"][\"edges\"][0][\"node\"][];\n })[];\n images: ShopifyProduct[\"images\"][\"edges\"][0][\"node\"][];\n media: ShopifyProduct[\"media\"][\"edges\"][0][\"node\"][];\n metafields: ShopifyProduct[\"metafields\"][\"edges\"][0][\"node\"][];\n};\n"]}
@@ -1,8 +1,8 @@
1
1
  import { ElasticDocument, ElasticHit } from "./elastic";
2
- export interface ReactivesearchFilterProps {
2
+ export interface ReactivesearchFilterListProps {
3
3
  loading: boolean;
4
4
  error: Error | null;
5
- handleChange: (value: string) => void;
5
+ handleChange: (key: string) => void;
6
6
  data: {
7
7
  doc_count: number;
8
8
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"reactivesearch.js","sourceRoot":"","sources":["../../../src/types/reactivesearch.ts"],"names":[],"mappings":"","sourcesContent":["import { ElasticDocument, ElasticHit } from \"./elastic\";\n\n// props passed to SingleList/MultiList.render\nexport interface ReactivesearchFilterProps {\n loading: boolean;\n error: Error | null;\n handleChange: (value: string) => void;\n data: { doc_count: number; key: string }[];\n value: string | { [key: string]: boolean };\n}\n\n// props passed to ReactiveList.renderPagination\nexport interface ReactivesearchPaginationProps {\n pages: number;\n showEndPage: false;\n totalPages: number;\n currentPage: number;\n setPage: (page: number) => void;\n}\n\n// props passed to ReactiveList.render\n// @todo complete missing types\nexport interface ReactivesearchResultProps {\n error?: ReactivesearchError;\n loading: boolean;\n data: (Omit<ElasticHit, \"_source\"> & ElasticDocument)[];\n loadMore: () => void;\n customData: unknown;\n promotedData: unknown;\n aggregationData: unknown;\n rawData?: {\n _shards: {\n failed: number;\n skipped: number;\n successful: number;\n total: number;\n };\n took: number;\n status: number;\n timed_out: boolean;\n hits: ElasticHit[];\n };\n resultStats: {\n time: number;\n hidden: number;\n promoted: number;\n currentPage: number;\n numberOfPages: number;\n numberOfResults?: number;\n displayedResults: number;\n };\n streamData: unknown;\n triggerAnalytics: unknown;\n triggerClickAnalytics: unknown;\n}\n\n// state for the \"page\" component returned by StateProvider when given the keys: [\"isLoading\", \"hits\", \"resultStats\", \"error\"]\nexport interface ReactivesearchSearchStatePage {\n isLoading: boolean;\n hits: {\n hidden: number;\n time: number;\n total: number;\n hits: ElasticHit[];\n };\n resultStats: {\n hidden: number;\n numberOfResults?: number;\n promoted: number;\n time: number;\n };\n error?: ReactivesearchError;\n}\n\nexport interface ReactivesearchError {\n status: number;\n statusText: string;\n}\n"]}
1
+ {"version":3,"file":"reactivesearch.js","sourceRoot":"","sources":["../../../src/types/reactivesearch.ts"],"names":[],"mappings":"","sourcesContent":["import { ElasticDocument, ElasticHit } from \"./elastic\";\n\n// props passed to SingleList/MultiList.render\nexport interface ReactivesearchFilterListProps {\n loading: boolean;\n error: Error | null;\n handleChange: (key: string) => void;\n data: { doc_count: number; key: string }[];\n value: string | { [key: string]: boolean };\n}\n\n// props passed to ReactiveList.renderPagination\nexport interface ReactivesearchPaginationProps {\n pages: number;\n showEndPage: false;\n totalPages: number;\n currentPage: number;\n setPage: (page: number) => void;\n}\n\n// props passed to ReactiveList.render\n// @todo complete missing types\nexport interface ReactivesearchResultProps {\n error?: ReactivesearchError;\n loading: boolean;\n data: (Omit<ElasticHit, \"_source\"> & ElasticDocument)[];\n loadMore: () => void;\n customData: unknown;\n promotedData: unknown;\n aggregationData: unknown;\n rawData?: {\n _shards: {\n failed: number;\n skipped: number;\n successful: number;\n total: number;\n };\n took: number;\n status: number;\n timed_out: boolean;\n hits: ElasticHit[];\n };\n resultStats: {\n time: number;\n hidden: number;\n promoted: number;\n currentPage: number;\n numberOfPages: number;\n numberOfResults?: number;\n displayedResults: number;\n };\n streamData: unknown;\n triggerAnalytics: unknown;\n triggerClickAnalytics: unknown;\n}\n\n// state for the \"page\" component returned by StateProvider when given the keys: [\"isLoading\", \"hits\", \"resultStats\", \"error\"]\nexport interface ReactivesearchSearchStatePage {\n isLoading: boolean;\n hits: {\n hidden: number;\n time: number;\n total: number;\n hits: ElasticHit[];\n };\n resultStats: {\n hidden: number;\n numberOfResults?: number;\n promoted: number;\n time: number;\n };\n error?: ReactivesearchError;\n}\n\nexport interface ReactivesearchError {\n status: number;\n statusText: string;\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@usereactify/search",
3
3
  "description": "React UI library for Reactify Search",
4
- "version": "5.0.0-beta.13",
4
+ "version": "5.0.0-beta.16",
5
5
  "license": "MIT",
6
6
  "main": "dist/src/index.js",
7
7
  "types": "dist/src/index.d.ts",
@@ -12,8 +12,8 @@
12
12
  ],
13
13
  "scripts": {
14
14
  "watch": "tsc --watch",
15
- "release": "standard-version --prerelease rc",
16
- "release:beta": "standard-version --prerelease beta",
15
+ "release": "standard-version --tag-prefix rc-v",
16
+ "release:beta": "standard-version --tag-prefix beta-v --prerelease beta",
17
17
  "prebuild": "rimraf dist",
18
18
  "build": "tsc",
19
19
  "prettier": "prettier --write .",
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import DataSearch from "@appbaseio/reactivesearch/lib/components/search/DataSearch";
3
- export declare type SearchInputProps = Omit<React.ComponentProps<typeof DataSearch>, "componentId"> & {
4
- debounce?: number;
5
- placeholder?: string;
6
- inputClassName?: string;
7
- };
8
- export declare const SearchInput: React.FC<SearchInputProps>;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SearchInput = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const DataSearch_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/search/DataSearch"));
9
- const hooks_1 = require("../../hooks");
10
- const SearchInput = (props) => {
11
- const { debounce, placeholder, inputClassName } = props;
12
- const reactiveDataSearchProps = (0, hooks_1.useReactiveDataSearchProps)(Object.assign({ debounce,
13
- placeholder,
14
- inputClassName }, props));
15
- return (react_1.default.createElement(DataSearch_1.default, Object.assign({}, reactiveDataSearchProps)));
16
- };
17
- exports.SearchInput = SearchInput;
18
- //# sourceMappingURL=SearchInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../../src/components/Search/SearchInput.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4GAAoF;AAEpF,uCAAyD;AAQlD,MAAM,WAAW,GAA+B,CAAC,KAAK,EAAE,EAAE;IAC/D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAExD,MAAM,uBAAuB,GAAG,IAAA,kCAA0B,kBACxD,QAAQ;QACR,WAAW;QACX,cAAc,IACX,KAAK,EACR,CAAC;IAEH,OAAO,CACL,8BAAC,oBAAU,oBACL,uBAAuB,EAC3B,CACH,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB","sourcesContent":["import React from \"react\";\nimport DataSearch from \"@appbaseio/reactivesearch/lib/components/search/DataSearch\";\n\nimport { useReactiveDataSearchProps } from \"../../hooks\";\n\nexport type SearchInputProps = Omit<React.ComponentProps<typeof DataSearch>, \"componentId\"> & {\n debounce?: number;\n placeholder?: string;\n inputClassName?: string;\n};\n\nexport const SearchInput: React.FC<SearchInputProps> = (props) => {\n const { debounce, placeholder, inputClassName } = props;\n\n const reactiveDataSearchProps = useReactiveDataSearchProps({\n debounce,\n placeholder,\n inputClassName,\n ...props,\n });\n\n return (\n <DataSearch\n {...reactiveDataSearchProps}\n />\n );\n};\n"]}