@usereactify/search 5.0.0-beta.9 → 5.0.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.
Files changed (232) hide show
  1. package/CHANGELOG.md +486 -0
  2. package/README.md +3 -21
  3. package/dist/package.json +3 -3
  4. package/dist/src/components/ClearAll/ClearAll.d.ts +8 -0
  5. package/dist/src/components/ClearAll/ClearAll.js +29 -0
  6. package/dist/src/components/ClearAll/ClearAll.js.map +1 -0
  7. package/dist/src/components/ClearAll/index.d.ts +1 -0
  8. package/dist/src/components/{ReactifySearchBase → ClearAll}/index.js +1 -1
  9. package/dist/src/components/ClearAll/index.js.map +1 -0
  10. package/dist/src/components/CustomComponent/CustomComponent.d.ts +4 -0
  11. package/dist/src/components/CustomComponent/CustomComponent.js +13 -0
  12. package/dist/src/components/CustomComponent/CustomComponent.js.map +1 -0
  13. package/dist/src/components/CustomComponent/index.d.ts +1 -0
  14. package/dist/src/components/CustomComponent/index.js +14 -0
  15. package/dist/src/components/CustomComponent/index.js.map +1 -0
  16. package/dist/src/components/Example/ExampleClearAll.d.ts +4 -0
  17. package/dist/src/components/Example/ExampleClearAll.js +12 -0
  18. package/dist/src/components/Example/ExampleClearAll.js.map +1 -0
  19. package/dist/src/components/Example/ExampleCustomComponent.d.ts +2 -0
  20. package/dist/src/components/Example/ExampleCustomComponent.js +36 -0
  21. package/dist/src/components/Example/ExampleCustomComponent.js.map +1 -0
  22. package/dist/src/components/Example/ExampleFilterList.d.ts +5 -0
  23. package/dist/src/components/Example/ExampleFilterList.js +81 -10
  24. package/dist/src/components/Example/ExampleFilterList.js.map +1 -1
  25. package/dist/src/components/Example/ExampleFilterRange.js +6 -11
  26. package/dist/src/components/Example/ExampleFilterRange.js.map +1 -1
  27. package/dist/src/components/Example/ExampleFilterSlider.js +8 -9
  28. package/dist/src/components/Example/ExampleFilterSlider.js.map +1 -1
  29. package/dist/src/components/Example/ExampleFilters.d.ts +4 -0
  30. package/dist/src/components/Example/{ExampleFilterStack.js → ExampleFilters.js} +6 -5
  31. package/dist/src/components/Example/ExampleFilters.js.map +1 -0
  32. package/dist/src/components/Example/ExampleFiltersActive.d.ts +4 -0
  33. package/dist/src/components/Example/ExampleFiltersActive.js +23 -0
  34. package/dist/src/components/Example/ExampleFiltersActive.js.map +1 -0
  35. package/dist/src/components/Example/ExampleHookUseFilters.d.ts +2 -0
  36. package/dist/src/components/Example/ExampleHookUseFilters.js +20 -0
  37. package/dist/src/components/Example/ExampleHookUseFilters.js.map +1 -0
  38. package/dist/src/components/Example/ExampleHookUseSearch.d.ts +2 -0
  39. package/dist/src/components/Example/ExampleHookUseSearch.js +22 -0
  40. package/dist/src/components/Example/ExampleHookUseSearch.js.map +1 -0
  41. package/dist/src/components/Example/ExampleHookUseSortBy.d.ts +2 -0
  42. package/dist/src/components/Example/ExampleHookUseSortBy.js +18 -0
  43. package/dist/src/components/Example/ExampleHookUseSortBy.js.map +1 -0
  44. package/dist/src/components/Example/ExampleReactiveSearchProviderCollection.d.ts +2 -0
  45. package/dist/src/components/Example/ExampleReactiveSearchProviderCollection.js +27 -0
  46. package/dist/src/components/Example/ExampleReactiveSearchProviderCollection.js.map +1 -0
  47. package/dist/src/components/Example/ExampleReactiveSearchProviderInstantSearch.d.ts +2 -0
  48. package/dist/src/components/Example/ExampleReactiveSearchProviderInstantSearch.js +27 -0
  49. package/dist/src/components/Example/ExampleReactiveSearchProviderInstantSearch.js.map +1 -0
  50. package/dist/src/components/Example/ExampleReactiveSearchProviderSearch.d.ts +2 -0
  51. package/dist/src/components/Example/ExampleReactiveSearchProviderSearch.js +27 -0
  52. package/dist/src/components/Example/ExampleReactiveSearchProviderSearch.js.map +1 -0
  53. package/dist/src/components/Example/ExampleResultCardCallout.js +1 -1
  54. package/dist/src/components/Example/ExampleResultCardCallout.js.map +1 -1
  55. package/dist/src/components/Example/ExampleResultCardProduct.js +1 -1
  56. package/dist/src/components/Example/ExampleResultCardProduct.js.map +1 -1
  57. package/dist/src/components/Example/ExampleResults.d.ts +2 -0
  58. package/dist/src/components/Example/ExampleResults.js +38 -0
  59. package/dist/src/components/Example/ExampleResults.js.map +1 -0
  60. package/dist/src/components/Example/ExampleSearch.d.ts +4 -0
  61. package/dist/src/components/Example/ExampleSearch.js +20 -0
  62. package/dist/src/components/Example/ExampleSearch.js.map +1 -0
  63. package/dist/src/components/Example/ExampleSortBy.d.ts +4 -0
  64. package/dist/src/components/Example/{ExampleSortby.js → ExampleSortBy.js} +4 -4
  65. package/dist/src/components/Example/ExampleSortBy.js.map +1 -0
  66. package/dist/src/components/Example/ExampleStats.d.ts +4 -0
  67. package/dist/src/components/Example/ExampleStats.js +15 -0
  68. package/dist/src/components/Example/ExampleStats.js.map +1 -0
  69. package/dist/src/components/Example/index.d.ts +12 -2
  70. package/dist/src/components/Example/index.js +12 -2
  71. package/dist/src/components/Example/index.js.map +1 -1
  72. package/dist/src/components/Filter/Filter.d.ts +9 -6
  73. package/dist/src/components/Filter/Filter.js +29 -29
  74. package/dist/src/components/Filter/Filter.js.map +1 -1
  75. package/dist/src/components/Filter/Filters.d.ts +7 -0
  76. package/dist/src/components/Filter/Filters.js +17 -0
  77. package/dist/src/components/Filter/Filters.js.map +1 -0
  78. package/dist/src/components/Filter/FiltersActive.d.ts +16 -0
  79. package/dist/src/components/Filter/FiltersActive.js +36 -0
  80. package/dist/src/components/Filter/FiltersActive.js.map +1 -0
  81. package/dist/src/components/Filter/index.d.ts +2 -1
  82. package/dist/src/components/Filter/index.js +2 -1
  83. package/dist/src/components/Filter/index.js.map +1 -1
  84. package/dist/src/components/{ReactifySearchBase/ReactifySearchBase.d.ts → ReactifySearchProvider/ReactifySearchProvider.d.ts} +6 -10
  85. package/dist/src/components/{ReactifySearchBase/ReactifySearchBase.js → ReactifySearchProvider/ReactifySearchProvider.js} +33 -29
  86. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -0
  87. package/dist/src/components/ReactifySearchProvider/index.d.ts +1 -0
  88. package/dist/src/components/ReactifySearchProvider/index.js +14 -0
  89. package/dist/src/components/ReactifySearchProvider/index.js.map +1 -0
  90. package/dist/src/components/Result/ResultCardCallout.d.ts +2 -4
  91. package/dist/src/components/Result/ResultCardCallout.js.map +1 -1
  92. package/dist/src/components/Result/ResultCardProduct.d.ts +2 -5
  93. package/dist/src/components/Result/ResultCardProduct.js.map +1 -1
  94. package/dist/src/components/Result/ResultPaginationLoadMore.d.ts +2 -2
  95. package/dist/src/components/Result/ResultPaginationLoadMore.js +1 -1
  96. package/dist/src/components/Result/ResultPaginationLoadMore.js.map +1 -1
  97. package/dist/src/components/Result/ResultPaginationNextPrev.d.ts +2 -2
  98. package/dist/src/components/Result/ResultPaginationNextPrev.js +1 -1
  99. package/dist/src/components/Result/ResultPaginationNextPrev.js.map +1 -1
  100. package/dist/src/components/Result/ResultPaginationNumbered.d.ts +2 -2
  101. package/dist/src/components/Result/ResultPaginationNumbered.js +1 -1
  102. package/dist/src/components/Result/ResultPaginationNumbered.js.map +1 -1
  103. package/dist/src/components/Result/{ResultStack.d.ts → Results.d.ts} +21 -13
  104. package/dist/src/components/Result/{ResultStack.js → Results.js} +45 -28
  105. package/dist/src/components/Result/Results.js.map +1 -0
  106. package/dist/src/components/Result/index.d.ts +1 -1
  107. package/dist/src/components/Result/index.js +1 -1
  108. package/dist/src/components/Result/index.js.map +1 -1
  109. package/dist/src/components/Search/Search.d.ts +7 -0
  110. package/dist/src/components/Search/Search.js +17 -0
  111. package/dist/src/components/Search/Search.js.map +1 -0
  112. package/dist/src/components/Search/index.d.ts +1 -1
  113. package/dist/src/components/Search/index.js +1 -1
  114. package/dist/src/components/Search/index.js.map +1 -1
  115. package/dist/src/components/Sensor/SensorCollection.js +2 -2
  116. package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
  117. package/dist/src/components/Sensor/SensorInventoryAvailable.js +1 -1
  118. package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
  119. package/dist/src/components/Sensor/SensorSearch.js +7 -3
  120. package/dist/src/components/Sensor/SensorSearch.js.map +1 -1
  121. package/dist/src/components/Sensor/SensorSort.js +13 -13
  122. package/dist/src/components/Sensor/SensorSort.js.map +1 -1
  123. package/dist/src/components/Sensor/Sensors.d.ts +3 -0
  124. package/dist/src/components/Sensor/{SensorStack.js → Sensors.js} +4 -4
  125. package/dist/src/components/Sensor/Sensors.js.map +1 -0
  126. package/dist/src/components/Sensor/index.d.ts +1 -1
  127. package/dist/src/components/Sensor/index.js +1 -1
  128. package/dist/src/components/Sensor/index.js.map +1 -1
  129. package/dist/src/components/SortBy/SortBy.d.ts +7 -0
  130. package/dist/src/components/SortBy/SortBy.js +17 -0
  131. package/dist/src/components/SortBy/SortBy.js.map +1 -0
  132. package/dist/src/components/SortBy/index.d.ts +1 -0
  133. package/dist/src/components/{Sortby → SortBy}/index.js +1 -1
  134. package/dist/src/components/{Sortby → SortBy}/index.js.map +1 -1
  135. package/dist/src/components/Stats/Stats.d.ts +22 -0
  136. package/dist/src/components/Stats/Stats.js +15 -0
  137. package/dist/src/components/Stats/Stats.js.map +1 -0
  138. package/dist/src/components/Stats/index.d.ts +1 -0
  139. package/dist/src/components/Stats/index.js +14 -0
  140. package/dist/src/components/Stats/index.js.map +1 -0
  141. package/dist/src/components/index.d.ts +5 -2
  142. package/dist/src/components/index.js +5 -2
  143. package/dist/src/components/index.js.map +1 -1
  144. package/dist/src/hooks/index.d.ts +4 -3
  145. package/dist/src/hooks/index.js +4 -3
  146. package/dist/src/hooks/index.js.map +1 -1
  147. package/dist/src/hooks/reactivesearch/index.d.ts +3 -3
  148. package/dist/src/hooks/reactivesearch/index.js +3 -3
  149. package/dist/src/hooks/reactivesearch/index.js.map +1 -1
  150. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js +2 -1
  151. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js.map +1 -1
  152. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.d.ts +1 -1
  153. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.js +12 -11
  154. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.js.map +1 -1
  155. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js +2 -1
  156. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js.map +1 -1
  157. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.d.ts +6 -1
  158. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +14 -2
  159. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +1 -1
  160. package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js +2 -1
  161. package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js.map +1 -1
  162. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.d.ts +5 -0
  163. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +11 -3
  164. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +1 -1
  165. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js +4 -4
  166. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js.map +1 -1
  167. package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.d.ts +5 -0
  168. package/dist/src/hooks/reactivesearch/{useReactiveResultStackProps.js → useReactiveReactiveListProps.js} +7 -6
  169. package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js.map +1 -0
  170. package/dist/src/hooks/useConfig.js +1 -1
  171. package/dist/src/hooks/useConfig.js.map +1 -1
  172. package/dist/src/hooks/useCuration.js +4 -8
  173. package/dist/src/hooks/useCuration.js.map +1 -1
  174. package/dist/src/hooks/useFilterListProps.d.ts +3 -2
  175. package/dist/src/hooks/useFilterListProps.js +67 -10
  176. package/dist/src/hooks/useFilterListProps.js.map +1 -1
  177. package/dist/src/hooks/useFilterRangeProps.d.ts +11 -0
  178. package/dist/src/hooks/useFilterRangeProps.js +53 -0
  179. package/dist/src/hooks/useFilterRangeProps.js.map +1 -0
  180. package/dist/src/hooks/useFilterSliderProps.d.ts +12 -0
  181. package/dist/src/hooks/useFilterSliderProps.js +49 -0
  182. package/dist/src/hooks/useFilterSliderProps.js.map +1 -0
  183. package/dist/src/hooks/useFilters.d.ts +5 -2
  184. package/dist/src/hooks/useFilters.js +45 -11
  185. package/dist/src/hooks/useFilters.js.map +1 -1
  186. package/dist/src/hooks/usePagination.d.ts +10 -0
  187. package/dist/src/hooks/usePagination.js.map +1 -1
  188. package/dist/src/hooks/usePaginationLoadMore.js +1 -1
  189. package/dist/src/hooks/usePaginationLoadMore.js.map +1 -1
  190. package/dist/src/hooks/useReactifySearchContext.d.ts +12 -20
  191. package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
  192. package/dist/src/hooks/useSearch.d.ts +8 -3
  193. package/dist/src/hooks/useSearch.js +39 -17
  194. package/dist/src/hooks/useSearch.js.map +1 -1
  195. package/dist/src/hooks/useSortBy.d.ts +9 -0
  196. package/dist/src/hooks/{useSortby.js → useSortBy.js} +5 -5
  197. package/dist/src/hooks/useSortBy.js.map +1 -0
  198. package/dist/src/types/firestore.d.ts +3 -0
  199. package/dist/src/types/firestore.js.map +1 -1
  200. package/dist/src/types/reactivesearch.d.ts +2 -2
  201. package/dist/src/types/reactivesearch.js.map +1 -1
  202. package/dist/src/utility/debug.d.ts +3 -1
  203. package/dist/src/utility/debug.js +6 -2
  204. package/dist/src/utility/debug.js.map +1 -1
  205. package/package.json +3 -3
  206. package/dist/src/components/Example/ExampleFilterStack.d.ts +0 -4
  207. package/dist/src/components/Example/ExampleFilterStack.js.map +0 -1
  208. package/dist/src/components/Example/ExampleSortby.d.ts +0 -4
  209. package/dist/src/components/Example/ExampleSortby.js.map +0 -1
  210. package/dist/src/components/Filter/FilterStack.d.ts +0 -7
  211. package/dist/src/components/Filter/FilterStack.js +0 -17
  212. package/dist/src/components/Filter/FilterStack.js.map +0 -1
  213. package/dist/src/components/ReactifySearchBase/ReactifySearchBase.js.map +0 -1
  214. package/dist/src/components/ReactifySearchBase/index.d.ts +0 -1
  215. package/dist/src/components/ReactifySearchBase/index.js.map +0 -1
  216. package/dist/src/components/Result/ResultStack.js.map +0 -1
  217. package/dist/src/components/Search/SearchInput.d.ts +0 -8
  218. package/dist/src/components/Search/SearchInput.js +0 -18
  219. package/dist/src/components/Search/SearchInput.js.map +0 -1
  220. package/dist/src/components/Sensor/SensorStack.d.ts +0 -3
  221. package/dist/src/components/Sensor/SensorStack.js.map +0 -1
  222. package/dist/src/components/Sortby/Sortby.d.ts +0 -7
  223. package/dist/src/components/Sortby/Sortby.js +0 -17
  224. package/dist/src/components/Sortby/Sortby.js.map +0 -1
  225. package/dist/src/components/Sortby/index.d.ts +0 -1
  226. package/dist/src/hooks/reactivesearch/useReactiveResultStackProps.d.ts +0 -17
  227. package/dist/src/hooks/reactivesearch/useReactiveResultStackProps.js.map +0 -1
  228. package/dist/src/hooks/useFilterStack.d.ts +0 -4
  229. package/dist/src/hooks/useFilterStack.js +0 -52
  230. package/dist/src/hooks/useFilterStack.js.map +0 -1
  231. package/dist/src/hooks/useSortby.d.ts +0 -6
  232. package/dist/src/hooks/useSortby.js.map +0 -1
@@ -6,7 +6,7 @@ export declare const ReactifySearchContext: React.Context<{
6
6
  mode: "search" | "collection" | "instant-search";
7
7
  index: string;
8
8
  shopifyPermanentDomain: string;
9
- filterStackHandle?: string | undefined;
9
+ filtersHandle?: string | undefined;
10
10
  credentials: {
11
11
  username: string;
12
12
  password: string;
@@ -19,19 +19,15 @@ export declare const ReactifySearchContext: React.Context<{
19
19
  mode: "search";
20
20
  } | {
21
21
  mode: "collection";
22
- collection: {
23
- id: number;
24
- handle: string;
25
- title: string;
26
- };
22
+ collectionHandle: string;
27
23
  } | {
28
24
  mode: "instant-search";
29
25
  });
30
26
  search: {
31
- searchQuery: string;
32
- setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
33
- instantSearchVisible: boolean;
34
- setInstantSearchVisible: React.Dispatch<React.SetStateAction<boolean>>;
27
+ searchTerm: string;
28
+ setSearchTerm: React.Dispatch<React.SetStateAction<string>>;
29
+ showInstantSearchResults: boolean;
30
+ setShowInstantSearchResults: React.Dispatch<React.SetStateAction<boolean>>;
35
31
  };
36
32
  sortby: {
37
33
  sortOption: string;
@@ -44,7 +40,7 @@ export declare const useReactifySearchContext: () => {
44
40
  mode: "search" | "collection" | "instant-search";
45
41
  index: string;
46
42
  shopifyPermanentDomain: string;
47
- filterStackHandle?: string | undefined;
43
+ filtersHandle?: string | undefined;
48
44
  credentials: {
49
45
  username: string;
50
46
  password: string;
@@ -57,19 +53,15 @@ export declare const useReactifySearchContext: () => {
57
53
  mode: "search";
58
54
  } | {
59
55
  mode: "collection";
60
- collection: {
61
- id: number;
62
- handle: string;
63
- title: string;
64
- };
56
+ collectionHandle: string;
65
57
  } | {
66
58
  mode: "instant-search";
67
59
  });
68
60
  search: {
69
- searchQuery: string;
70
- setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
71
- instantSearchVisible: boolean;
72
- setInstantSearchVisible: React.Dispatch<React.SetStateAction<boolean>>;
61
+ searchTerm: string;
62
+ setSearchTerm: React.Dispatch<React.SetStateAction<string>>;
63
+ showInstantSearchResults: boolean;
64
+ setShowInstantSearchResults: React.Dispatch<React.SetStateAction<boolean>>;
73
65
  };
74
66
  sortby: {
75
67
  sortOption: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useReactifySearchContext.js","sourceRoot":"","sources":["../../../src/hooks/useReactifySearchContext.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAIb,QAAA,qBAAqB,GAAG,eAAK,CAAC,aAAa,CAqCzC,SAAS,CAAC,CAAC;AAEnB,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAAC,eAAK,CAAC,UAAU,CAAC,6BAAqB,CAAE,CAAC;AAA1E,QAAA,wBAAwB,4BAAkD","sourcesContent":["import React from \"react\";\n\nimport { Config } from \"../types\";\n\nexport const ReactifySearchContext = React.createContext<{\n\tconfig: Config,\n\toptions: {\n\t\tmode: \"search\" | \"collection\" | \"instant-search\";\n\t\tindex: string;\n\t\tshopifyPermanentDomain: string;\n\t\tfilterStackHandle?: string;\n\t\tcredentials: {\n\t\t username: string;\n\t\t password: string;\n\t\t endpoint: string;\n\t\t};\n\t\tonRedirect?: (type: \"redirect\" | \"search\", url: string) => void;\n\t\ttheme: Record<string, unknown>;\n\t additionalComponentHandles?: Array<string>;\n\t} & ({\n\t mode: \"search\";\n\t} | {\n\t mode: \"collection\";\n\t collection: {\n\t\t id: number;\n\t\t handle: string;\n\t\t title: string;\n\t };\n\t} | {\n\t mode: \"instant-search\";\n\t}),\n\tsearch: {\n\t\tsearchQuery: string;\n\t\tsetSearchQuery: React.Dispatch<React.SetStateAction<string>>;\n\t\tinstantSearchVisible: boolean;\n\t\tsetInstantSearchVisible: React.Dispatch<React.SetStateAction<boolean>>;\n\t},\n\tsortby: {\n\t\tsortOption: string;\n\t\tsetSortOption: React.Dispatch<React.SetStateAction<string>>;\n\t},\n} | undefined>(undefined);\n\nexport const useReactifySearchContext = () => React.useContext(ReactifySearchContext)!;"]}
1
+ {"version":3,"file":"useReactifySearchContext.js","sourceRoot":"","sources":["../../../src/hooks/useReactifySearchContext.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAIb,QAAA,qBAAqB,GAAG,eAAK,CAAC,aAAa,CA0CtD,SAAS,CAAC,CAAC;AAEN,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,eAAK,CAAC,UAAU,CAAC,6BAAqB,CAAE,CAAC;AAD9B,QAAA,wBAAwB,4BACM","sourcesContent":["import React from \"react\";\n\nimport { Config } from \"../types\";\n\nexport const ReactifySearchContext = React.createContext<\n | {\n config: Config;\n options: {\n mode: \"search\" | \"collection\" | \"instant-search\";\n index: string;\n shopifyPermanentDomain: string;\n filtersHandle?: string;\n credentials: {\n username: string;\n password: string;\n endpoint: string;\n };\n onRedirect?: (type: \"redirect\" | \"search\", url: string) => void;\n theme: Record<string, unknown>;\n additionalComponentHandles?: Array<string>;\n } & (\n | {\n mode: \"search\";\n }\n | {\n mode: \"collection\";\n collectionHandle: string;\n }\n | {\n mode: \"instant-search\";\n }\n );\n search: {\n searchTerm: string;\n setSearchTerm: React.Dispatch<React.SetStateAction<string>>;\n showInstantSearchResults: boolean;\n setShowInstantSearchResults: React.Dispatch<\n React.SetStateAction<boolean>\n >;\n };\n sortby: {\n sortOption: string;\n setSortOption: React.Dispatch<React.SetStateAction<string>>;\n };\n }\n | undefined\n>(undefined);\n\nexport const useReactifySearchContext = () =>\n React.useContext(ReactifySearchContext)!;\n"]}
@@ -1,8 +1,13 @@
1
1
  import React from "react";
2
2
  export declare const useSearch: () => {
3
- searchQuery: string;
4
- setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
5
- submitSearch: (searchQuery?: string | undefined) => void;
3
+ /** The current search term */
4
+ searchTerm: string;
5
+ /** Function for changing the current search term */
6
+ setSearchTerm: (searchTerm?: string | undefined) => void;
7
+ /** Function for navigating to the search page, includes logic for redirects */
8
+ submitSearchTerm: (searchTerm?: string | undefined) => void;
9
+ /** Used to determine if instant search results should be displayed */
6
10
  showInstantSearchResults: boolean;
11
+ /** Used to manually set the "showInstantSearchResults" value */
7
12
  setShowInstantSearchResults: React.Dispatch<React.SetStateAction<boolean>>;
8
13
  };
@@ -4,46 +4,68 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.useSearch = void 0;
7
+ const ahooks_1 = require("ahooks");
7
8
  const react_1 = __importDefault(require("react"));
8
9
  const hooks_1 = require("../hooks");
9
10
  const utility_1 = require("../utility");
10
11
  const useSearch = () => {
11
12
  const { options, config, search } = (0, hooks_1.useReactifySearchContext)();
12
- const handleSubmitSearch = react_1.default.useCallback((searchQuery = search.searchQuery) => {
13
+ const handleSubmitSearchTerm = react_1.default.useCallback((searchTerm = search.searchTerm) => {
13
14
  utility_1.debug.breadcrumb({
14
15
  category: "search",
15
- message: "search submitted",
16
+ message: "search submit",
16
17
  data: {
17
- searchQuery: searchQuery,
18
+ searchTerm: searchTerm,
18
19
  },
19
20
  });
20
- utility_1.debug.log("useSearch", "submitSearch[query]", searchQuery);
21
- if (!searchQuery) {
21
+ utility_1.debug.log("useSearch", "submitSearchTerm[query]", searchTerm);
22
+ if (!searchTerm) {
22
23
  return;
23
24
  }
24
25
  const redirect = config.redirects.find((redirect) => redirect.query.trim().toLowerCase() ===
25
- searchQuery.trim().toLowerCase());
26
+ searchTerm.trim().toLowerCase());
26
27
  if (redirect) {
27
- utility_1.debug.log("useSearch", "submitSearch[redirect]", redirect);
28
+ utility_1.debug.log("useSearch", "submitSearchTerm[redirect]", redirect);
28
29
  }
29
- search.setInstantSearchVisible(false);
30
+ search.setShowInstantSearchResults(false);
30
31
  if (options.onRedirect) {
31
- options.onRedirect(redirect ? "redirect" : "search", redirect ? redirect.url : `/search?q=${searchQuery}`);
32
+ options.onRedirect(redirect ? "redirect" : "search", redirect ? redirect.url : `/search?q=${searchTerm}`);
32
33
  }
33
34
  else if (redirect) {
34
35
  window.location.href = redirect.url;
35
36
  }
36
37
  else {
37
- window.location.href = `/search?q=${searchQuery}`;
38
+ window.location.href = `/search?q=${searchTerm}`;
38
39
  }
39
- }, [search.searchQuery]);
40
- utility_1.debug.hook("useSearch", "searchQuery", search.searchQuery);
40
+ }, [search.searchTerm]);
41
+ const { run: runDebouncedBreadcrumb, cancel: cancelDebouncedBreadcrumb } = (0, ahooks_1.useDebounceFn)((searchTerm = search.searchTerm) => {
42
+ utility_1.debug.log("useSearch", "setSearchTerm[searchTerm]", searchTerm);
43
+ utility_1.debug.breadcrumb({
44
+ category: "search",
45
+ message: "search query",
46
+ data: {
47
+ searchTerm: searchTerm,
48
+ },
49
+ });
50
+ }, {
51
+ wait: 300,
52
+ });
53
+ const handleSetSearchTerm = react_1.default.useCallback((searchTerm = "") => {
54
+ utility_1.debug.log("useSearch", "setSearchTerm[searchTerm]", searchTerm);
55
+ if (searchTerm) {
56
+ runDebouncedBreadcrumb(searchTerm);
57
+ }
58
+ else {
59
+ cancelDebouncedBreadcrumb();
60
+ }
61
+ search.setSearchTerm(searchTerm);
62
+ }, [search.searchTerm]);
41
63
  return {
42
- searchQuery: search.searchQuery,
43
- setSearchQuery: search.setSearchQuery,
44
- submitSearch: handleSubmitSearch,
45
- showInstantSearchResults: !!search.instantSearchVisible && !!search.searchQuery,
46
- setShowInstantSearchResults: search.setInstantSearchVisible,
64
+ searchTerm: search.searchTerm,
65
+ setSearchTerm: handleSetSearchTerm,
66
+ submitSearchTerm: handleSubmitSearchTerm,
67
+ showInstantSearchResults: !!search.showInstantSearchResults && !!search.searchTerm,
68
+ setShowInstantSearchResults: search.setShowInstantSearchResults,
47
69
  };
48
70
  };
49
71
  exports.useSearch = useSearch;
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../../src/hooks/useSearch.ts"],"names":[],"mappings":";;;;;;AAAA,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,kBAAkB,GAAG,eAAK,CAAC,WAAW,CAC1C,CAAC,cAAsB,MAAM,CAAC,WAAW,EAAE,EAAE;QAC3C,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,kBAAkB;YAC3B,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,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3D,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY,EAAE,kBAAkB;QAChC,wBAAwB,EACtB,CAAC,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW;QACvD,2BAA2B,EAAE,MAAM,CAAC,uBAAuB;KAC5D,CAAC;AACJ,CAAC,CAAC;AA7DW,QAAA,SAAS,aA6DpB","sourcesContent":["import React from \"react\";\n\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useSearch = (): {\n searchQuery: string;\n setSearchQuery: React.Dispatch<React.SetStateAction<string>>;\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 handleSubmitSearch = React.useCallback(\n (searchQuery: string = search.searchQuery) => {\n debug.breadcrumb({\n category: \"search\",\n message: \"search submitted\",\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 debug.hook(\"useSearch\", \"searchQuery\", search.searchQuery);\n\n return {\n searchQuery: search.searchQuery,\n setSearchQuery: search.setSearchQuery,\n submitSearch: handleSubmitSearch,\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":"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","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"]}
@@ -0,0 +1,9 @@
1
+ import { ConfigSort } from "../types";
2
+ export declare const useSortBy: () => {
3
+ /** The currently selected sort option */
4
+ sortOption?: ConfigSort | undefined;
5
+ /** All of the available sort options */
6
+ sortOptions: Array<ConfigSort>;
7
+ /** Function for changing the current sort option */
8
+ setSortOption: (sortOptionHandle: string, ignoreHistoryState?: boolean | undefined) => void;
9
+ };
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useSortby = void 0;
6
+ exports.useSortBy = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const hooks_1 = require("../hooks");
9
9
  const utility_1 = require("../utility");
10
- const useSortby = () => {
10
+ const useSortBy = () => {
11
11
  const { options, config, sortby } = (0, hooks_1.useReactifySearchContext)();
12
12
  const { track } = (0, hooks_1.useAnalytics)();
13
13
  const sortOptions = react_1.default.useMemo(() => {
@@ -27,7 +27,7 @@ const useSortby = () => {
27
27
  sortOptionHandle: sortOptionHandle,
28
28
  },
29
29
  });
30
- utility_1.debug.log("useSortby", "setSortOption[sortOptionHandle]", sortOptionHandle);
30
+ utility_1.debug.log("useSortBy", "setSortOption[sortOptionHandle]", sortOptionHandle);
31
31
  sortby.setSortOption(sortOptionHandle);
32
32
  if (!ignoreHistoryState) {
33
33
  const url = new URL(window.location.href);
@@ -54,5 +54,5 @@ const useSortby = () => {
54
54
  setSortOption,
55
55
  };
56
56
  };
57
- exports.useSortby = useSortby;
58
- //# sourceMappingURL=useSortby.js.map
57
+ exports.useSortBy = useSortBy;
58
+ //# sourceMappingURL=useSortBy.js.map
@@ -0,0 +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,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"]}
@@ -1,10 +1,12 @@
1
+ import Debug from "debug";
1
2
  import * as Sentry from "@sentry/react";
3
+ export declare const debuggers: Record<string, Debug.Debugger>;
2
4
  export declare const debug: {
3
5
  namespace: string;
4
6
  log: (namespace: string, formatter?: string | undefined, ...args: Array<any>) => void;
5
7
  breadcrumb: (breadcrumb: Partial<Sentry.Breadcrumb> & {
6
8
  message: string;
7
- category: "search" | "sort" | "pagination" | "filter" | "curation";
9
+ category: "result" | "search" | "sort" | "pagination" | "filter" | "curation";
8
10
  }) => void;
9
11
  hook: (namespace: string, message: string, value: unknown) => void;
10
12
  };
@@ -22,14 +22,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.debug = void 0;
25
+ exports.debug = exports.debuggers = void 0;
26
26
  const debug_1 = __importDefault(require("debug"));
27
27
  const Sentry = __importStar(require("@sentry/react"));
28
28
  const hooks_1 = require("../hooks");
29
+ exports.debuggers = {};
29
30
  exports.debug = {
30
31
  namespace: "reactify-search",
31
32
  log: (namespace, formatter, ...args) => {
32
- (0, debug_1.default)(`${exports.debug.namespace}:${namespace}`)(formatter, ...args);
33
+ if (!exports.debuggers[namespace]) {
34
+ exports.debuggers[namespace] = (0, debug_1.default)(`${exports.debug.namespace}:${namespace}`);
35
+ }
36
+ exports.debuggers[namespace](formatter, ...args);
33
37
  },
34
38
  breadcrumb: (breadcrumb) => {
35
39
  Sentry.addBreadcrumb(Object.assign(Object.assign({ level: "debug", type: "query" }, breadcrumb), { category: `${exports.debug.namespace}:${breadcrumb.category}` }));
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utility/debug.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAwC;AAExC,oCAAuC;AAE1B,QAAA,KAAK,GAAG;IACnB,SAAS,EAAE,iBAAiB;IAC5B,GAAG,EAAE,CAAC,SAAiB,EAAE,SAAkB,EAAE,GAAG,IAAgB,EAAE,EAAE;QAClE,IAAA,eAAK,EAAC,GAAG,aAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,UAAU,EAAE,CACV,UAGC,EACD,EAAE;QACF,MAAM,CAAC,aAAa,+BAClB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,IACV,UAAU,KACb,QAAQ,EAAE,GAAG,aAAK,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,IACrD,CAAC;IACL,CAAC;IACD,IAAI,EAAE,mBAAW;CAClB,CAAC","sourcesContent":["import Debug from \"debug\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { useDebugger } from \"../hooks\";\n\nexport const debug = {\n namespace: \"reactify-search\",\n log: (namespace: string, formatter?: string, ...args: Array<any>) => {\n Debug(`${debug.namespace}:${namespace}`)(formatter, ...args);\n },\n breadcrumb: (\n breadcrumb: Partial<Sentry.Breadcrumb> & {\n message: string;\n category: \"search\" | \"sort\" | \"pagination\" | \"filter\" | \"curation\";\n }\n ) => {\n Sentry.addBreadcrumb({\n level: \"debug\",\n type: \"query\",\n ...breadcrumb,\n category: `${debug.namespace}:${breadcrumb.category}`,\n });\n },\n hook: useDebugger,\n};\n"]}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utility/debug.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sDAAwC;AAExC,oCAAuC;AAE1B,QAAA,SAAS,GAAmC,EAAE,CAAC;AAE/C,QAAA,KAAK,GAAG;IACnB,SAAS,EAAE,iBAAiB;IAC5B,GAAG,EAAE,CAAC,SAAiB,EAAE,SAAkB,EAAE,GAAG,IAAgB,EAAE,EAAE;QAClE,IAAI,CAAC,iBAAS,CAAC,SAAS,CAAC,EAAE;YACzB,iBAAS,CAAC,SAAS,CAAC,GAAG,IAAA,eAAK,EAAC,GAAG,aAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;SACjE;QAED,iBAAS,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,UAAU,EAAE,CACV,UASC,EACD,EAAE;QACF,MAAM,CAAC,aAAa,+BAClB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,IACV,UAAU,KACb,QAAQ,EAAE,GAAG,aAAK,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,IACrD,CAAC;IACL,CAAC;IACD,IAAI,EAAE,mBAAW;CAClB,CAAC","sourcesContent":["import Debug from \"debug\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { useDebugger } from \"../hooks\";\n\nexport const debuggers: Record<string, Debug.Debugger> = {};\n\nexport const debug = {\n namespace: \"reactify-search\",\n log: (namespace: string, formatter?: string, ...args: Array<any>) => {\n if (!debuggers[namespace]) {\n debuggers[namespace] = Debug(`${debug.namespace}:${namespace}`);\n }\n\n debuggers[namespace](formatter, ...args);\n },\n breadcrumb: (\n breadcrumb: Partial<Sentry.Breadcrumb> & {\n message: string;\n category:\n | \"result\"\n | \"search\"\n | \"sort\"\n | \"pagination\"\n | \"filter\"\n | \"curation\";\n }\n ) => {\n Sentry.addBreadcrumb({\n level: \"debug\",\n type: \"query\",\n ...breadcrumb,\n category: `${debug.namespace}:${breadcrumb.category}`,\n });\n },\n hook: useDebugger,\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.9",
4
+ "version": "5.0.0",
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,4 +0,0 @@
1
- import React from "react";
2
- import { FilterStackProps } from "../../components";
3
- export declare type ExampleFilterStackProps = React.ComponentProps<NonNullable<FilterStackProps["renderFilters"]>>;
4
- export declare const ExampleFilterStack: React.FC<ExampleFilterStackProps>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExampleFilterStack.js","sourceRoot":"","sources":["../../../../src/components/Example/ExampleFilterStack.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,iDAA4D;AAMrD,MAAM,kBAAkB,GAAsC,CACnE,KAAK,EACL,EAAE;IACF,OAAO,CACL,8DACG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,8BAAC,mBAAM,kBAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAM,KAAK,EAAI,CACtD,CAAC,CACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,kBAAkB,sBAU7B","sourcesContent":["import React from \"react\";\n\nimport { Filter, FilterStackProps } from \"../../components\";\n\nexport type ExampleFilterStackProps = React.ComponentProps<\n NonNullable<FilterStackProps[\"renderFilters\"]>\n>;\n\nexport const ExampleFilterStack: React.FC<ExampleFilterStackProps> = (\n props\n) => {\n return (\n <>\n {props.filters.map((filter) => (\n <Filter key={filter.id} filter={filter} {...props} />\n ))}\n </>\n );\n};\n"]}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import { SortbyProps } from "../../components";
3
- export declare type ExampleSortbyProps = React.ComponentProps<NonNullable<SortbyProps["renderSortOptions"]>>;
4
- export declare const ExampleSortby: React.FC<ExampleSortbyProps>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExampleSortby.js","sourceRoot":"","sources":["../../../../src/components/Example/ExampleSortby.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAQnB,MAAM,aAAa,GAAiC,CAAC,KAAK,EAAE,EAAE;;IACnE,OAAO,CACL,0CACE,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE,MAAA,KAAK,CAAC,UAAU,0CAAE,MAAM,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAE3D,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACrC,0CACE,GAAG,EAAE,UAAU,CAAC,MAAM,EACtB,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE,UAAU,CAAC,MAAM,IAEvB,UAAU,CAAC,IAAI,CACT,CACV,CAAC,CACK,CACV,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB","sourcesContent":["import React from \"react\";\n\nimport { SortbyProps } from \"../../components\";\n\nexport type ExampleSortbyProps = React.ComponentProps<\n NonNullable<SortbyProps[\"renderSortOptions\"]>\n>;\n\nexport const ExampleSortby: React.FC<ExampleSortbyProps> = (props) => {\n return (\n <select\n className=\"rs__sortby__select\"\n value={props.sortOption?.handle}\n onChange={(event) => props.setSortOption(event.target.value)}\n >\n {props.sortOptions.map((sortOption) => (\n <option\n key={sortOption.handle}\n className=\"rs__sortby__option\"\n value={sortOption.handle}\n >\n {sortOption.name}\n </option>\n ))}\n </select>\n );\n};\n"]}
@@ -1,7 +0,0 @@
1
- import React from "react";
2
- import { useFilters } from "../../hooks";
3
- export declare type FilterStackProps = {
4
- /** Render method called once for all filters */
5
- renderFilters?: React.FC<ReturnType<typeof useFilters>>;
6
- };
7
- export declare const FilterStack: React.FC<FilterStackProps>;
@@ -1,17 +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.FilterStack = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const hooks_1 = require("../../hooks");
9
- const components_1 = require("../../components");
10
- const FilterStack = (props) => {
11
- var _a;
12
- const filtersHook = (0, hooks_1.useFilters)();
13
- const RenderFiltersComponent = (_a = props.renderFilters) !== null && _a !== void 0 ? _a : components_1.ExampleFilterStack;
14
- return (react_1.default.createElement(RenderFiltersComponent, Object.assign({}, filtersHook)));
15
- };
16
- exports.FilterStack = FilterStack;
17
- //# sourceMappingURL=FilterStack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterStack.js","sourceRoot":"","sources":["../../../../src/components/Filter/FilterStack.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uCAAyC;AACzC,iDAAsD;AAO/C,MAAM,WAAW,GAA+B,CAAC,KAAK,EAAE,EAAE;;IAC/D,MAAM,WAAW,GAAG,IAAA,kBAAU,GAAE,CAAC;IAEjC,MAAM,sBAAsB,GAAG,MAAA,KAAK,CAAC,aAAa,mCAAI,+BAAkB,CAAC;IAEzE,OAAO,CACL,8BAAC,sBAAsB,oBACjB,WAAW,EACf,CACH,CAAA;AACH,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB","sourcesContent":["import React from \"react\";\n\nimport { useFilters } from \"../../hooks\";\nimport { ExampleFilterStack } from \"../../components\";\n\nexport type FilterStackProps = {\n /** Render method called once for all filters */\n renderFilters?: React.FC<ReturnType<typeof useFilters>>\n};\n\nexport const FilterStack: React.FC<FilterStackProps> = (props) => {\n const filtersHook = useFilters();\n\n const RenderFiltersComponent = props.renderFilters ?? ExampleFilterStack;\n\n return (\n <RenderFiltersComponent\n {...filtersHook}\n />\n )\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactifySearchBase.js","sourceRoot":"","sources":["../../../../src/components/ReactifySearchBase/ReactifySearchBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { ReactifySearchContext, useConfig } from \"../../hooks\";\nimport { UtilityAuthenticatedReactiveBase } from \"../../components\";\nimport { debug } from \"../../utility\";\n\nexport type ReactifySearchBaseProps = {\n /** The search area the provider will be used in */\n mode: \"search\" | \"collection\" | \"instant-search\";\n /** Shopify store domain used to resolve the site configuration */\n shopifyPermanentDomain: string;\n /** Specific filter group handle, used to override automated logic */\n filterStackHandle?: string;\n /** Callback function for redirects, suitable for headless sites to avoid full page refresh */\n onRedirect?: (type: \"redirect\" | \"search\", url: string) => void;\n /** Render method to display a component when the config is loading */\n renderBooting?: () => JSX.Element | null;\n /** Advanced usage: Allows you to wrap the ReactifySearchBase in your own ReactiveBase component */\n noReactiveBase?: boolean;\n /** Advanced usage: Array of additional component IDs managed outside of Reactify Search */\n additionalComponentHandles?: string[];\n /** Advanced usage: Override the default Elasticsearch index */\n index?: string;\n /** Advanced usage: Override the default Reactify Search config (for multi-instance stores) */\n configId?: string;\n /** Advanced usage: Override the default Elasticsearch credentials */\n credentials?: {\n username: string;\n password: string;\n endpoint: string;\n };\n /** Advanced usage: Override the default ReactiveBase theme */\n theme?: Record<string, unknown>;\n} & (\n | {\n mode: \"search\";\n }\n | {\n mode: \"collection\";\n /** Collection object that includes the handle, used to find curations */\n collection: {\n id: number;\n title: string;\n handle: string;\n };\n }\n | {\n mode: \"instant-search\";\n }\n);\n\nexport const ReactifySearchBase: React.FC<ReactifySearchBaseProps> = (\n props\n) => {\n React.useEffect(() => {\n debug.log(\"ReactifySearchBase\", \"props\", props);\n\n Sentry.setTags({\n \"reactifysearch.index\": props.index,\n \"reactifysearch.shop\": props.shopifyPermanentDomain,\n \"reactifysearch.mode\": props.mode,\n \"reactifysearch.collection\":\n props.mode === \"collection\" ? props.collection.handle : undefined,\n \"reactifysearch.filter\": props.filterStackHandle,\n });\n }, [props]);\n\n return (\n <Sentry.ErrorBoundary fallback={<p>An error has occurred</p>}>\n <ReactifySearchInner {...props} />\n </Sentry.ErrorBoundary>\n );\n};\n\nconst ReactifySearchInner: React.FC<ReactifySearchBaseProps> = (props) => {\n const { config } = useConfig(props.shopifyPermanentDomain, props.configId);\n\n const [searchQuery, setSearchQuery] = React.useState<string>(\"\");\n const [instantSearchVisible, setInstantSearchVisible] =\n React.useState<boolean>(false);\n const [sortOption, setSortOption] = React.useState<string>(\"\");\n\n const credentials = props.credentials ?? {\n username: \"guest\",\n password: \"password\",\n endpoint: \"https://api.search.reactify.app\",\n };\n\n const theme = props.theme ?? {\n typography: {\n fontFamily: \"inherit\",\n fontSize: \"inherit\",\n },\n };\n\n const searchQueryFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") return undefined;\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"q\") ?? undefined;\n }, [window.location.search]);\n\n const searchSortFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") return undefined;\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"sort\") ?? undefined;\n }, [window.location.search]);\n\n React.useEffect(() => {\n if (searchQueryFromURL && searchQuery !== searchQueryFromURL) {\n setSearchQuery(searchQueryFromURL);\n }\n }, [searchQueryFromURL]);\n\n React.useEffect(() => {\n if (searchSortFromURL && sortOption !== searchSortFromURL) {\n setSortOption(searchSortFromURL);\n }\n }, [searchSortFromURL]);\n\n React.useEffect(() => {\n if (window.location.search === \"\" && sortOption) {\n setSortOption(sortOption);\n }\n }, [window.location.href]);\n\n const contextValue = React.useMemo(() => {\n if (!config) {\n return;\n }\n\n const memoValue = {\n config: config,\n options: {\n ...props,\n index: props.index ?? config.index,\n filterStackHandle: props.filterStackHandle,\n credentials: credentials,\n theme: theme,\n },\n search: {\n searchQuery: searchQuery,\n setSearchQuery: setSearchQuery,\n instantSearchVisible: instantSearchVisible,\n setInstantSearchVisible: setInstantSearchVisible,\n },\n sortby: {\n sortOption: sortOption,\n setSortOption: setSortOption,\n },\n };\n\n debug.log(\"ReactifySearchBase\", \"context\", memoValue);\n\n return memoValue;\n }, [config, props, searchQuery, instantSearchVisible, sortOption]);\n\n if (!contextValue) {\n if (props.renderBooting) {\n return props.renderBooting();\n }\n return null;\n }\n\n if (props.noReactiveBase) {\n return (\n <ReactifySearchContext.Provider value={contextValue}>\n {props.children}\n </ReactifySearchContext.Provider>\n );\n }\n\n return (\n <ReactifySearchContext.Provider value={contextValue}>\n <UtilityAuthenticatedReactiveBase>\n {props.children}\n </UtilityAuthenticatedReactiveBase>\n </ReactifySearchContext.Provider>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- export * from "./ReactifySearchBase";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ReactifySearchBase/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC","sourcesContent":["export * from \"./ReactifySearchBase\";"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResultStack.js","sourceRoot":"","sources":["../../../../src/components/Result/ResultStack.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactiveList from \"@appbaseio/reactivesearch/lib/components/result/ReactiveList\";\n\nimport { ResultCardCallout } from \"./ResultCardCallout\";\nimport { ResultCardProduct } from \"./ResultCardProduct\";\nimport { ResultPaginationNumbered } from \"./ResultPaginationNumbered\";\nimport { ResultPaginationLoadMore } from \"./ResultPaginationLoadMore\";\nimport { ResultPaginationNextPrev } from \"./ResultPaginationNextPrev\";\n\nimport {\n useReactifySearchContext,\n useAnalytics,\n useSearch,\n useFilterStack,\n useReactiveResultStackProps,\n} from \"../../hooks\";\n\nimport {\n ElasticCallout,\n ElasticProduct,\n ElasticDocumentType,\n ReactivesearchError,\n ReactivesearchResultProps,\n ReactivesearchPaginationProps,\n} from \"../../types\";\n\nexport type ResultProps = ReactivesearchResultProps & {\n callouts: ElasticCallout[];\n products: ElasticProduct[];\n};\n\nexport type ResultStackProps = {\n /** Style prop for the list wrapper */\n listStyle?: React.HTMLAttributes<HTMLElement>[\"style\"];\n /** Classname prop for the list wrapper */\n listClassName?: string;\n /** Render method called when an error occurs */\n renderError?: React.FC<{ error: ReactivesearchError }>;\n /** Render method called while loading for the first time */\n renderLoading?: React.FC;\n /** Render method called when no results are found */\n renderNoResults?: React.FC;\n /** Render method called once for each product result */\n renderResultCardProduct?: React.ComponentProps<\n typeof ResultCardProduct\n >[\"render\"];\n /** Render method called once for each callout result */\n renderResultCardCallout?: React.ComponentProps<\n typeof ResultCardCallout\n >[\"render\"];\n /** Render method called for pagination type \"pagination\" */\n renderPaginationNumbered?: React.ComponentProps<\n typeof ResultPaginationNumbered\n >[\"render\"];\n /** Render method called for pagination type \"next_prev\" */\n renderPaginationNextPrev?: React.ComponentProps<\n typeof ResultPaginationNextPrev\n >[\"render\"];\n /** Render method called for pagination type \"load_more\" */\n renderPaginationLoadMore?: React.ComponentProps<\n typeof ResultPaginationLoadMore\n >[\"render\"];\n /** Render method called for pagination type \"infinite_scroll\" */\n renderPaginationInfiniteScroll?: React.ComponentProps<\n typeof ResultPaginationLoadMore\n >[\"render\"];\n /** Advanced Usage: Override the default amount of results per page */\n pageSize?: number;\n};\n\nexport const ResultStack: React.FC<ResultStackProps> = (props) => {\n const reactiveResultStackProps = useReactiveResultStackProps({\n pageSize: props.pageSize,\n });\n\n return (\n <ReactiveList\n {...reactiveResultStackProps}\n render={(reactivesearchResultProps: ReactivesearchResultProps) => (\n <ResultStackInner\n {...props}\n reactivesearchResultProps={reactivesearchResultProps}\n />\n )}\n renderPagination={(\n reactivesearchPaginationProps: ReactivesearchPaginationProps\n ) => (\n <ResultStackPaginationStack\n {...props}\n {...reactivesearchPaginationProps}\n />\n )}\n />\n );\n};\n\nconst ResultStackRenderErrorComponent: ResultStackProps[\"renderError\"] = (\n props\n) => {\n return (\n <div>\n {\"Error: \"}\n {props.error.statusText}\n </div>\n );\n};\n\nconst ResultStackRenderLoadingComponent: ResultStackProps[\"renderLoading\"] =\n () => {\n return <div>{\"Loading\"}</div>;\n };\n\nconst ResultStackRenderNoResultsComponent: ResultStackProps[\"renderNoResults\"] =\n () => {\n return <div>{\"No results\"}</div>;\n };\n\nconst ResultStackInner: React.FC<\n ResultStackProps & { reactivesearchResultProps: ReactivesearchResultProps }\n> = (props) => {\n const { track } = useAnalytics();\n const { searchQuery } = useSearch();\n\n const initialSearchHasRun = React.useMemo(\n () =>\n \"undefined\" !==\n typeof props.reactivesearchResultProps.resultStats.numberOfResults,\n [props.reactivesearchResultProps]\n );\n\n const listStyle = React.useMemo<React.HTMLAttributes<HTMLElement>[\"style\"]>(\n () =>\n props.listStyle ?? {\n display: \"grid\",\n gap: \"8px\",\n gridTemplateColumns: \"repeat(4, minmax(0, 1fr))\",\n },\n [props.listStyle]\n );\n\n if (props.reactivesearchResultProps.error) {\n const RenderErrorComponent =\n props.renderError ?? ResultStackRenderErrorComponent;\n\n return (\n <RenderErrorComponent error={props.reactivesearchResultProps.error} />\n );\n }\n\n if (!initialSearchHasRun) {\n const RenderLoadingComponent =\n props.renderLoading ?? ResultStackRenderLoadingComponent;\n return <RenderLoadingComponent />;\n }\n\n if (!props.reactivesearchResultProps.resultStats.numberOfResults) {\n if (searchQuery) {\n track({\n eventName: \"zeroResults\",\n payload: {\n searchTerm: searchQuery,\n },\n });\n }\n const RenderNoResultsComponent =\n props.renderNoResults ?? ResultStackRenderNoResultsComponent;\n return <RenderNoResultsComponent />;\n }\n\n return (\n <>\n <section style={listStyle} className={props.listClassName}>\n {props.reactivesearchResultProps.data.map((item, key) => {\n // @todo result.type is missing in v1 indexes, this check ensures that they are assumed to be products\n if (ElasticDocumentType.Product === item.type || !item.type) {\n return (\n <ResultCardProduct\n key={item._id}\n product={item}\n document={item}\n pagePosition={key + 1}\n render={props.renderResultCardProduct}\n />\n );\n }\n\n if (ElasticDocumentType.Callout === item.type) {\n return (\n <ResultCardCallout\n key={item._id}\n document={item}\n pagePosition={key + 1}\n callout={item.callout}\n render={props.renderResultCardCallout}\n />\n );\n }\n\n return null;\n })}\n </section>\n <ResultStackPaginationStackLoadMore\n {...props}\n {...props.reactivesearchResultProps}\n />\n </>\n );\n};\n\n/** Handles rendering pagination for types that use \"pagination props\" */\nconst ResultStackPaginationStack: React.FC<\n ResultStackProps & ReactivesearchPaginationProps\n> = (props) => {\n const { options } = useReactifySearchContext();\n const { filterStack } = useFilterStack();\n\n if (options.mode === \"instant-search\") {\n return null;\n }\n\n if (\"pagination\" === filterStack?.paginationType) {\n return (\n <ResultPaginationNumbered\n {...props}\n render={props.renderPaginationNumbered}\n />\n );\n }\n\n if (\"next_prev\" === filterStack?.paginationType) {\n return (\n <ResultPaginationNextPrev\n {...props}\n render={props.renderPaginationNextPrev}\n />\n );\n }\n\n return null;\n};\n\n/** Handles rendering pagination for types that use \"result props\" */\nconst ResultStackPaginationStackLoadMore: React.FC<\n ResultStackProps & { reactivesearchResultProps: ReactivesearchResultProps }\n> = (props) => {\n const { options } = useReactifySearchContext();\n const { filterStack } = useFilterStack();\n\n if (options.mode === \"instant-search\") {\n return null;\n }\n\n if (\"load_more\" === filterStack?.paginationType) {\n return (\n <ResultPaginationLoadMore\n {...props.reactivesearchResultProps}\n render={props.renderPaginationLoadMore}\n />\n );\n }\n\n return null;\n};\n"]}
@@ -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"]}
@@ -1,3 +0,0 @@
1
- import React from "react";
2
- export declare type SensorStackProps = {};
3
- export declare const SensorStack: React.FC<SensorStackProps>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"SensorStack.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorStack.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uCAAuD;AAEvD,6CAA0C;AAC1C,iDAA8C;AAC9C,uDAAoD;AACpD,uDAAoD;AACpD,yDAAsD;AACtD,yEAAsE;AAM/D,MAAM,WAAW,GAA+B,GAAG,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAE/C,sBAAsB;IACtB,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE;QACrC,OAAO,CACL;YACE,8BAAC,iCAAe,OAAG;YACnB,8BAAC,iCAAe,OAAG,CAClB,CACJ,CAAC;KACH;IAED,mBAAmB;IACnB,OAAO,CACL;QACE,8BAAC,uBAAU,OAAG;QACd,8BAAC,2BAAY,OAAG;QAChB,8BAAC,iCAAe,OAAG;QACnB,8BAAC,mCAAgB,OAAG;QACpB,8BAAC,mDAAwB,OAAG,CAC3B,CACJ,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,WAAW,eAuBtB","sourcesContent":["import React from \"react\";\n\nimport { useReactifySearchContext } from \"../../hooks\";\n\nimport { SensorSort } from \"./SensorSort\";\nimport { SensorSearch } from \"./SensorSearch\";\nimport { SensorSortScore } from \"./SensorSortScore\";\nimport { SensorPublished } from \"./SensorPublished\";\nimport { SensorCollection } from \"./SensorCollection\";\nimport { SensorInventoryAvailable } from \"./SensorInventoryAvailable\";\n\nexport type SensorStackProps = {\n /** This component does not support any props */\n};\n\nexport const SensorStack: React.FC<SensorStackProps> = () => {\n const { options } = useReactifySearchContext();\n\n // instant search mode\n if (options.mode === \"instant-search\") {\n return (\n <>\n <SensorPublished />\n <SensorSortScore />\n </>\n );\n }\n\n // result grid mode\n return (\n <>\n <SensorSort />\n <SensorSearch />\n <SensorPublished />\n <SensorCollection />\n <SensorInventoryAvailable />\n </>\n );\n};\n"]}
@@ -1,7 +0,0 @@
1
- import React from "react";
2
- import { useSortby } from "../../hooks";
3
- export declare type SortbyProps = {
4
- /** Render method called once for all sort options */
5
- renderSortOptions?: React.FC<ReturnType<typeof useSortby>>;
6
- };
7
- export declare const Sortby: React.FC<SortbyProps>;