@usereactify/search 5.26.1 → 5.26.2

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 (118) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/package.json +10 -11
  3. package/dist/src/components/ClearAll/ClearAll.js +31 -3
  4. package/dist/src/components/ClearAll/ClearAll.js.map +1 -1
  5. package/dist/src/components/Example/ExampleFilterRange.js +3 -1
  6. package/dist/src/components/Example/ExampleFilterRange.js.map +1 -1
  7. package/dist/src/components/Example/ExampleFilterSlider.js +24 -7
  8. package/dist/src/components/Example/ExampleFilterSlider.js.map +1 -1
  9. package/dist/src/components/Example/ExampleFilters.d.ts +1 -3
  10. package/dist/src/components/Example/ExampleFilters.js +8 -4
  11. package/dist/src/components/Example/ExampleFilters.js.map +1 -1
  12. package/dist/src/components/Example/ExampleFiltersSelected.js +24 -10
  13. package/dist/src/components/Example/ExampleFiltersSelected.js.map +1 -1
  14. package/dist/src/components/Example/ExampleHookUseResults.d.ts +2 -0
  15. package/dist/src/components/Example/ExampleHookUseResults.js +25 -0
  16. package/dist/src/components/Example/ExampleHookUseResults.js.map +1 -0
  17. package/dist/src/components/Example/ExampleSuggestions.d.ts +4 -0
  18. package/dist/src/components/Example/ExampleSuggestions.js +16 -0
  19. package/dist/src/components/Example/ExampleSuggestions.js.map +1 -0
  20. package/dist/src/components/Example/index.d.ts +3 -0
  21. package/dist/src/components/Example/index.js +3 -0
  22. package/dist/src/components/Example/index.js.map +1 -1
  23. package/dist/src/components/Filter/Filter.d.ts +2 -2
  24. package/dist/src/components/Filter/Filter.js +91 -18
  25. package/dist/src/components/Filter/Filter.js.map +1 -1
  26. package/dist/src/components/Filter/Filters.d.ts +17 -3
  27. package/dist/src/components/Filter/Filters.js +1 -2
  28. package/dist/src/components/Filter/Filters.js.map +1 -1
  29. package/dist/src/components/Filter/FiltersSelected.d.ts +7 -2
  30. package/dist/src/components/Filter/FiltersSelected.js +45 -2
  31. package/dist/src/components/Filter/FiltersSelected.js.map +1 -1
  32. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +5 -7
  33. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +42 -24
  34. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
  35. package/dist/src/components/Result/Results.js +24 -9
  36. package/dist/src/components/Result/Results.js.map +1 -1
  37. package/dist/src/components/Sensor/SensorCollection.js +4 -0
  38. package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
  39. package/dist/src/components/Sensor/SensorInventoryAvailable.js +6 -1
  40. package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
  41. package/dist/src/components/Sensor/SensorPublished.js +13 -6
  42. package/dist/src/components/Sensor/SensorPublished.js.map +1 -1
  43. package/dist/src/components/Sensor/SensorSearchTerm.js +92 -66
  44. package/dist/src/components/Sensor/SensorSearchTerm.js.map +1 -1
  45. package/dist/src/components/Sensor/SensorSort.js +75 -65
  46. package/dist/src/components/Sensor/SensorSort.js.map +1 -1
  47. package/dist/src/components/Sensor/index.d.ts +0 -1
  48. package/dist/src/components/Sensor/index.js +0 -2
  49. package/dist/src/components/Sensor/index.js.map +1 -1
  50. package/dist/src/components/Suggestions/Suggestions.d.ts +12 -0
  51. package/dist/src/components/Suggestions/Suggestions.js +44 -0
  52. package/dist/src/components/Suggestions/Suggestions.js.map +1 -0
  53. package/dist/src/components/Suggestions/index.d.ts +1 -0
  54. package/dist/src/components/Suggestions/index.js +14 -0
  55. package/dist/src/components/Suggestions/index.js.map +1 -0
  56. package/dist/src/components/index.d.ts +1 -0
  57. package/dist/src/components/index.js +1 -0
  58. package/dist/src/components/index.js.map +1 -1
  59. package/dist/src/hooks/index.d.ts +3 -0
  60. package/dist/src/hooks/index.js +3 -0
  61. package/dist/src/hooks/index.js.map +1 -1
  62. package/dist/src/hooks/react-slider/useReactSliderProps.d.ts +4 -0
  63. package/dist/src/hooks/react-slider/useReactSliderProps.js +28 -0
  64. package/dist/src/hooks/react-slider/useReactSliderProps.js.map +1 -0
  65. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.d.ts +2 -7
  66. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js +10 -3
  67. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js.map +1 -1
  68. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.d.ts +1 -0
  69. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js +3 -5
  70. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js.map +1 -1
  71. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.d.ts +1 -0
  72. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +3 -5
  73. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +1 -1
  74. package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js +1 -1
  75. package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js.map +1 -1
  76. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +1 -3
  77. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +1 -1
  78. package/dist/src/hooks/reactivesearch/useReactiveReactProp.d.ts +2 -1
  79. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js +8 -3
  80. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js.map +1 -1
  81. package/dist/src/hooks/useAnalytics.js +23 -3
  82. package/dist/src/hooks/useAnalytics.js.map +1 -1
  83. package/dist/src/hooks/useConfig.js +9 -27
  84. package/dist/src/hooks/useConfig.js.map +1 -1
  85. package/dist/src/hooks/useCuration.js +12 -1
  86. package/dist/src/hooks/useCuration.js.map +1 -1
  87. package/dist/src/hooks/useFilterListProps.js +15 -2
  88. package/dist/src/hooks/useFilterListProps.js.map +1 -1
  89. package/dist/src/hooks/useFilterRangeProps.d.ts +1 -10
  90. package/dist/src/hooks/useFilterRangeProps.js +36 -47
  91. package/dist/src/hooks/useFilterRangeProps.js.map +1 -1
  92. package/dist/src/hooks/useFilterSliderProps.d.ts +6 -8
  93. package/dist/src/hooks/useFilterSliderProps.js +31 -10
  94. package/dist/src/hooks/useFilterSliderProps.js.map +1 -1
  95. package/dist/src/hooks/useFlags.d.ts +21 -0
  96. package/dist/src/hooks/useFlags.js +49 -0
  97. package/dist/src/hooks/useFlags.js.map +1 -0
  98. package/dist/src/hooks/useIndices.d.ts +5 -0
  99. package/dist/src/hooks/useIndices.js +49 -0
  100. package/dist/src/hooks/useIndices.js.map +1 -0
  101. package/dist/src/hooks/useReactifySearchContext.d.ts +19 -11
  102. package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
  103. package/dist/src/hooks/useResults.d.ts +21 -0
  104. package/dist/src/hooks/useResults.js +19 -0
  105. package/dist/src/hooks/useResults.js.map +1 -0
  106. package/dist/src/hooks/useSearch.js +4 -2
  107. package/dist/src/hooks/useSearch.js.map +1 -1
  108. package/dist/src/hooks/useSortBy.js +5 -1
  109. package/dist/src/hooks/useSortBy.js.map +1 -1
  110. package/dist/src/types/config.d.ts +11 -5
  111. package/dist/src/types/config.js.map +1 -1
  112. package/dist/src/types/elastic.d.ts +53 -17
  113. package/dist/src/types/elastic.js.map +1 -1
  114. package/dist/src/types/firestore.d.ts +3 -0
  115. package/dist/src/types/firestore.js.map +1 -1
  116. package/dist/src/types/reactivesearch.d.ts +1 -1
  117. package/dist/src/types/reactivesearch.js.map +1 -1
  118. package/package.json +1 -1
@@ -8,15 +8,14 @@ const react_1 = __importDefault(require("react"));
8
8
  const ReactiveComponent_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent"));
9
9
  const hooks_1 = require("../../hooks");
10
10
  const SensorSort = () => {
11
+ const flagsHook = (0, hooks_1.useFlags)();
11
12
  const { options, config } = (0, hooks_1.useReactifySearchContext)();
12
13
  const { curation } = (0, hooks_1.useCuration)();
13
- const globalCuration = (curation === null || curation === void 0 ? void 0 : curation.id) === "global";
14
14
  const { sortOption } = (0, hooks_1.useSortBy)();
15
15
  const { sort, query } = react_1.default.useMemo(() => {
16
16
  return {
17
17
  sort: buildSort({
18
18
  mode: options.mode,
19
- globalCuration,
20
19
  curation,
21
20
  sortOption,
22
21
  collectionHandle: options.mode === "collection" ? options.collectionHandle : undefined,
@@ -24,10 +23,12 @@ const SensorSort = () => {
24
23
  query: buildQuery({
25
24
  sortOption,
26
25
  curation,
27
- globalCuration,
28
26
  }),
29
27
  };
30
- }, [options, config, sortOption, curation, globalCuration]);
28
+ }, [options, config, sortOption, curation]);
29
+ if (!flagsHook.flags["reactify-search:flag_sensor_sort"]) {
30
+ return null;
31
+ }
31
32
  return (react_1.default.createElement(ReactiveComponent_1.default, { componentId: "SensorSort", customQuery: () => ({
32
33
  sort,
33
34
  query,
@@ -36,81 +37,89 @@ const SensorSort = () => {
36
37
  exports.SensorSort = SensorSort;
37
38
  const buildSort = (args) => {
38
39
  var _a;
39
- const { mode, curation, sortOption, collectionHandle, globalCuration } = args;
40
+ const { mode, curation, sortOption, collectionHandle } = args;
41
+ // curation positions are only applied for the default `collections.position` or `_score` sort
42
+ // if the sort is something else, apply a normal sort which applies what the user has requested
40
43
  if (mode !== "instant-search") {
41
- // return default sort option if unset
42
- if (!sortOption) {
43
- return collectionHandle
44
- ? mapCollectionPositionSortClause(collectionHandle)
45
- : ["_score"];
46
- }
47
- // curation positions are only applied for the default `collections.position` or `_score` sort
48
- // if the sort is something else, apply a normal sort which applies what the user has requested
49
- if (!["_score", "collections.position"].includes(sortOption.field)) {
44
+ if (sortOption &&
45
+ !["_score", "collections.position"].includes(sortOption.field)) {
50
46
  return [{ [sortOption.field]: sortOption.direction }];
51
47
  }
52
48
  }
53
- // no matching curation, return default sort clause
54
- if (!curation) {
55
- return collectionHandle
56
- ? mapCollectionPositionSortClause(collectionHandle)
57
- : ["_score"];
58
- }
59
49
  const sorts = [];
60
- // show pins first
61
- if (!globalCuration && (curation.collectionHandle || curation.searchTerm)) {
62
- sorts.push({
63
- "curations.position": {
64
- unmapped_type: "long",
65
- order: "asc",
66
- nested: {
67
- path: "curations",
68
- filter: {
69
- term: {
70
- [`curations.${"collection" === curation.type
71
- ? "collectionHandle"
72
- : "searchTerm"}.keyword`]: "collection" === curation.type
73
- ? curation.collectionHandle
74
- : (_a = curation.searchTerm) === null || _a === void 0 ? void 0 : _a.toLowerCase(),
50
+ // collection curation pin sorting
51
+ if (mode === "collection" && collectionHandle) {
52
+ if (curation === null || curation === void 0 ? void 0 : curation.collectionHandle) {
53
+ sorts.push({
54
+ "curations.position": {
55
+ unmapped_type: "long",
56
+ order: "asc",
57
+ nested: {
58
+ path: "curations",
59
+ filter: {
60
+ term: {
61
+ [`curations.collectionHandle.keyword`]: curation.collectionHandle,
62
+ },
75
63
  },
76
64
  },
77
65
  },
78
- },
79
- });
66
+ });
67
+ }
80
68
  }
81
- if (0 < curation.boosting.groupings.length) {
82
- const groupings = curation.boosting.groupings.sort((a, b) => a.position > b.position ? 1 : -1);
83
- for (const grouping of groupings) {
84
- try {
85
- const query = JSON.parse(grouping.query);
86
- if (query)
87
- sorts.push(query);
88
- }
89
- catch (_b) {
90
- console.error(`query could not be parsed for boost grouping`, grouping);
91
- }
69
+ // search curation pin sorting
70
+ if (mode === "search" || mode === "instant-search") {
71
+ if (curation === null || curation === void 0 ? void 0 : curation.searchTerm) {
72
+ sorts.push({
73
+ "curations.position": {
74
+ unmapped_type: "long",
75
+ order: "asc",
76
+ nested: {
77
+ path: "curations",
78
+ filter: {
79
+ term: {
80
+ [`curations.searchTerm.keyword`]: (_a = curation.searchTerm) === null || _a === void 0 ? void 0 : _a.toLowerCase(),
81
+ },
82
+ },
83
+ },
84
+ },
85
+ });
92
86
  }
93
87
  }
94
- if (0 < curation.boosting.sortings.length) {
95
- const sortings = curation.boosting.sortings.sort((a, b) => a.position > b.position ? 1 : -1);
96
- for (const sorting of sortings) {
97
- try {
98
- const query = JSON.parse(sorting.query);
99
- if (query)
100
- sorts.push(query);
88
+ // curation boost sorting
89
+ if (curation) {
90
+ if (0 < curation.boosting.groupings.length) {
91
+ const groupings = curation.boosting.groupings.sort((a, b) => a.position > b.position ? 1 : -1);
92
+ for (const grouping of groupings) {
93
+ try {
94
+ const query = JSON.parse(grouping.query);
95
+ if (query)
96
+ sorts.push(query);
97
+ }
98
+ catch (_b) {
99
+ console.error(`query could not be parsed for boost grouping`, grouping);
100
+ }
101
101
  }
102
- catch (_c) {
103
- console.error(`query could not be parsed for boost sorting`, sorting);
102
+ }
103
+ if (0 < curation.boosting.sortings.length) {
104
+ const sortings = curation.boosting.sortings.sort((a, b) => a.position > b.position ? 1 : -1);
105
+ for (const sorting of sortings) {
106
+ try {
107
+ const query = JSON.parse(sorting.query);
108
+ if (query)
109
+ sorts.push(query);
110
+ }
111
+ catch (_c) {
112
+ console.error(`query could not be parsed for boost sorting`, sorting);
113
+ }
104
114
  }
105
115
  }
106
116
  }
107
- // finally, for collections, if no other sorting is defined, sort by index order to provide
108
- // a consistent order
109
- if ("collection" === curation.type && sorts.length === 0) {
110
- sorts.push("_doc");
117
+ // default collection sorting
118
+ if (mode === "collection" && collectionHandle) {
119
+ sorts.push(...mapCollectionPositionSortClause(collectionHandle));
111
120
  }
112
- // finally, for search, sort by score
113
- if ("search" === curation.type) {
121
+ // default search sorting
122
+ if (mode === "search" || mode === "instant-search") {
114
123
  sorts.push("_score");
115
124
  }
116
125
  return sorts;
@@ -137,8 +146,9 @@ function mapCollectionPositionSortClause(collectionHandle) {
137
146
  }
138
147
  const buildQuery = (args) => {
139
148
  var _a;
140
- const { curation, sortOption, globalCuration } = args;
141
- if (!curation || globalCuration) {
149
+ const { curation, sortOption } = args;
150
+ if (!curation ||
151
+ ["global_collection", "global_search"].includes(curation.id)) {
142
152
  return undefined;
143
153
  }
144
154
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"SensorSort.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSort.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent\";\n\nimport { ConfigCuration, ConfigSort } from \"../../types\";\nimport {\n useReactifySearchContext,\n useSortBy,\n useCuration,\n ReactifySearchMode,\n} from \"../../hooks\";\nimport { optionsToId } from \"react-intersection-observer/observe\";\n\nexport const SensorSort: React.FC = () => {\n const { options, config } = useReactifySearchContext();\n const { curation } = useCuration();\n const globalCuration = curation?.id === \"global\";\n\n const { sortOption } = useSortBy();\n\n const { sort, query } = React.useMemo(() => {\n return {\n sort: buildSort({\n mode: options.mode,\n globalCuration,\n curation,\n sortOption,\n collectionHandle:\n options.mode === \"collection\" ? options.collectionHandle : undefined,\n }),\n query: buildQuery({\n sortOption,\n curation,\n globalCuration,\n }),\n };\n }, [options, config, sortOption, curation, globalCuration]);\n\n return (\n <ReactiveComponent\n componentId=\"SensorSort\"\n customQuery={() => ({\n sort,\n query,\n })}\n />\n );\n};\n\nconst buildSort = (args: {\n mode: ReactifySearchMode;\n globalCuration: boolean;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n collectionHandle?: string;\n}): any[] => {\n const { mode, curation, sortOption, collectionHandle, globalCuration } = args;\n\n if (mode !== \"instant-search\") {\n // return default sort option if unset\n if (!sortOption) {\n return collectionHandle\n ? mapCollectionPositionSortClause(collectionHandle)\n : [\"_score\"];\n }\n\n // curation positions are only applied for the default `collections.position` or `_score` sort\n // if the sort is something else, apply a normal sort which applies what the user has requested\n if (![\"_score\", \"collections.position\"].includes(sortOption.field)) {\n return [{ [sortOption.field]: sortOption.direction }];\n }\n }\n\n // no matching curation, return default sort clause\n if (!curation) {\n return collectionHandle\n ? mapCollectionPositionSortClause(collectionHandle)\n : [\"_score\"];\n }\n\n const sorts = [];\n\n // show pins first\n if (!globalCuration && (curation.collectionHandle || curation.searchTerm)) {\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n term: {\n [`curations.${\n \"collection\" === curation.type\n ? \"collectionHandle\"\n : \"searchTerm\"\n }.keyword`]:\n \"collection\" === curation.type\n ? curation.collectionHandle\n : curation.searchTerm?.toLowerCase(),\n },\n },\n },\n },\n });\n }\n\n if (0 < curation.boosting.groupings.length) {\n const groupings = curation.boosting.groupings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const grouping of groupings) {\n try {\n const query = JSON.parse(grouping.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost grouping`, grouping);\n }\n }\n }\n\n if (0 < curation.boosting.sortings.length) {\n const sortings = curation.boosting.sortings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const sorting of sortings) {\n try {\n const query = JSON.parse(sorting.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost sorting`, sorting);\n }\n }\n }\n\n // finally, for collections, if no other sorting is defined, sort by index order to provide\n // a consistent order\n if (\"collection\" === curation.type && sorts.length === 0) {\n sorts.push(\"_doc\");\n }\n\n // finally, for search, sort by score\n if (\"search\" === curation.type) {\n sorts.push(\"_score\");\n }\n\n return sorts;\n};\n\n/**\n * Return a sort clause which sorts by position within the given collection.\n */\nfunction mapCollectionPositionSortClause(collectionHandle: string) {\n return [\n {\n \"collections.position\": {\n order: \"asc\",\n nested: {\n path: \"collections\",\n filter: {\n term: {\n \"collections.handle.keyword\": collectionHandle,\n },\n },\n },\n },\n },\n ];\n}\n\nconst buildQuery = (args: {\n sortOption?: ConfigSort;\n curation?: ConfigCuration;\n globalCuration?: boolean;\n}): Record<string, any> | undefined => {\n const { curation, sortOption, globalCuration } = args;\n\n if (!curation || globalCuration) {\n return undefined;\n }\n\n return {\n bool: {\n must_not: [\n {\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: [\n {\n term: {\n [`curations.${\n \"collection\" === curation.type\n ? \"collectionHandle\"\n : \"searchTerm\"\n }.keyword`]:\n \"collection\" === curation.type\n ? curation.collectionHandle\n : curation.searchTerm?.toLowerCase(),\n },\n },\n {\n term: {\n \"curations.hidden\": true,\n },\n },\n ],\n },\n },\n },\n },\n // hide callout when not sorting by _score or collections.position\n ...(sortOption &&\n ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ? [\n {\n term: {\n type: \"callout\",\n },\n },\n ]\n : []),\n ],\n },\n };\n};\n"]}
1
+ {"version":3,"file":"SensorSort.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSort.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent\";\n\nimport { ConfigCuration, ConfigSort } from \"../../types\";\nimport {\n useReactifySearchContext,\n useSortBy,\n useCuration,\n ReactifySearchMode,\n useFlags,\n} from \"../../hooks\";\n\nexport const SensorSort: React.FC = () => {\n const flagsHook = useFlags();\n const { options, config } = useReactifySearchContext();\n const { curation } = useCuration();\n const { sortOption } = useSortBy();\n\n const { sort, query } = React.useMemo(() => {\n return {\n sort: buildSort({\n mode: options.mode,\n curation,\n sortOption,\n collectionHandle:\n options.mode === \"collection\" ? options.collectionHandle : undefined,\n }),\n query: buildQuery({\n sortOption,\n curation,\n }),\n };\n }, [options, config, sortOption, curation]);\n\n if (!flagsHook.flags[\"reactify-search:flag_sensor_sort\"]) {\n return null;\n }\n\n return (\n <ReactiveComponent\n componentId=\"SensorSort\"\n customQuery={() => ({\n sort,\n query,\n })}\n />\n );\n};\n\nconst buildSort = (args: {\n mode: ReactifySearchMode;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n collectionHandle?: string;\n}): any[] => {\n const { mode, curation, sortOption, collectionHandle } = args;\n\n // curation positions are only applied for the default `collections.position` or `_score` sort\n // if the sort is something else, apply a normal sort which applies what the user has requested\n if (mode !== \"instant-search\") {\n if (\n sortOption &&\n ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ) {\n return [{ [sortOption.field]: sortOption.direction }];\n }\n }\n\n const sorts = [];\n\n // collection curation pin sorting\n if (mode === \"collection\" && collectionHandle) {\n if (curation?.collectionHandle) {\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n term: {\n [`curations.collectionHandle.keyword`]:\n curation.collectionHandle,\n },\n },\n },\n },\n });\n }\n }\n\n // search curation pin sorting\n if (mode === \"search\" || mode === \"instant-search\") {\n if (curation?.searchTerm) {\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n term: {\n [`curations.searchTerm.keyword`]:\n curation.searchTerm?.toLowerCase(),\n },\n },\n },\n },\n });\n }\n }\n\n // curation boost sorting\n if (curation) {\n if (0 < curation.boosting.groupings.length) {\n const groupings = curation.boosting.groupings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const grouping of groupings) {\n try {\n const query = JSON.parse(grouping.query);\n if (query) sorts.push(query);\n } catch {\n console.error(\n `query could not be parsed for boost grouping`,\n grouping\n );\n }\n }\n }\n\n if (0 < curation.boosting.sortings.length) {\n const sortings = curation.boosting.sortings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const sorting of sortings) {\n try {\n const query = JSON.parse(sorting.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost sorting`, sorting);\n }\n }\n }\n }\n\n // default collection sorting\n if (mode === \"collection\" && collectionHandle) {\n sorts.push(...mapCollectionPositionSortClause(collectionHandle));\n }\n\n // default search sorting\n if (mode === \"search\" || mode === \"instant-search\") {\n sorts.push(\"_score\");\n }\n\n return sorts;\n};\n\n/**\n * Return a sort clause which sorts by position within the given collection.\n */\nfunction mapCollectionPositionSortClause(collectionHandle: string) {\n return [\n {\n \"collections.position\": {\n order: \"asc\",\n nested: {\n path: \"collections\",\n filter: {\n term: {\n \"collections.handle.keyword\": collectionHandle,\n },\n },\n },\n },\n },\n ];\n}\n\nconst buildQuery = (args: {\n sortOption?: ConfigSort;\n curation?: ConfigCuration;\n}): Record<string, any> | undefined => {\n const { curation, sortOption } = args;\n\n if (\n !curation ||\n [\"global_collection\", \"global_search\"].includes(curation.id)\n ) {\n return undefined;\n }\n\n return {\n bool: {\n must_not: [\n {\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: [\n {\n term: {\n [`curations.${\n \"collection\" === curation.type\n ? \"collectionHandle\"\n : \"searchTerm\"\n }.keyword`]:\n \"collection\" === curation.type\n ? curation.collectionHandle\n : curation.searchTerm?.toLowerCase(),\n },\n },\n {\n term: {\n \"curations.hidden\": true,\n },\n },\n ],\n },\n },\n },\n },\n // hide callout when not sorting by _score or collections.position\n ...(sortOption &&\n ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ? [\n {\n term: {\n type: \"callout\",\n },\n },\n ]\n : []),\n ],\n },\n };\n};\n"]}
@@ -1,6 +1,5 @@
1
1
  export * from "./SensorSort";
2
2
  export * from "./SensorPublished";
3
- export * from "./SensorSortScore";
4
3
  export * from "./SensorCollection";
5
4
  export * from "./SensorSearchTerm";
6
5
  export * from "./SensorInventoryAvailable";
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.SENSOR_IDS = void 0;
14
14
  __exportStar(require("./SensorSort"), exports);
15
15
  __exportStar(require("./SensorPublished"), exports);
16
- __exportStar(require("./SensorSortScore"), exports);
17
16
  __exportStar(require("./SensorCollection"), exports);
18
17
  __exportStar(require("./SensorSearchTerm"), exports);
19
18
  __exportStar(require("./SensorInventoryAvailable"), exports);
@@ -21,7 +20,6 @@ __exportStar(require("./Sensors"), exports);
21
20
  // this is consumed by the react prop in various components
22
21
  exports.SENSOR_IDS = [
23
22
  "SensorSort",
24
- "SensorSortScore",
25
23
  "SensorPublished",
26
24
  "SensorCollection",
27
25
  "SensorSearchTerm",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Sensor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oDAAkC;AAClC,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,6DAA2C;AAE3C,4CAA0B;AAE1B,2DAA2D;AAC9C,QAAA,UAAU,GAAG;IACxB,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,0BAA0B;CAC3B,CAAC","sourcesContent":["export * from \"./SensorSort\";\nexport * from \"./SensorPublished\";\nexport * from \"./SensorSortScore\";\nexport * from \"./SensorCollection\";\nexport * from \"./SensorSearchTerm\";\nexport * from \"./SensorInventoryAvailable\";\n\nexport * from \"./Sensors\";\n\n// this is consumed by the react prop in various components\nexport const SENSOR_IDS = [\n \"SensorSort\",\n \"SensorSortScore\",\n \"SensorPublished\",\n \"SensorCollection\",\n \"SensorSearchTerm\",\n \"SensorInventoryAvailable\",\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Sensor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,6DAA2C;AAE3C,4CAA0B;AAE1B,2DAA2D;AAC9C,QAAA,UAAU,GAAG;IACxB,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,0BAA0B;CAC3B,CAAC","sourcesContent":["export * from \"./SensorSort\";\nexport * from \"./SensorPublished\";\nexport * from \"./SensorCollection\";\nexport * from \"./SensorSearchTerm\";\nexport * from \"./SensorInventoryAvailable\";\n\nexport * from \"./Sensors\";\n\n// this is consumed by the react prop in various components\nexport const SENSOR_IDS = [\n \"SensorSort\",\n \"SensorPublished\",\n \"SensorCollection\",\n \"SensorSearchTerm\",\n \"SensorInventoryAvailable\",\n];\n"]}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export declare type SuggestionsProps = {
3
+ /** The field which should be used for autocompletion */
4
+ field: "title";
5
+ /** Render method */
6
+ render?: React.FC<{
7
+ suggestions: Array<{
8
+ text: string;
9
+ }>;
10
+ }>;
11
+ };
12
+ export declare const Suggestions: React.FC<SuggestionsProps>;
@@ -0,0 +1,44 @@
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.Suggestions = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const components_1 = require("../../components");
9
+ const hooks_1 = require("../../hooks");
10
+ const Suggestions = (props) => {
11
+ var _a;
12
+ const RenderComponent = (_a = props.render) !== null && _a !== void 0 ? _a : components_1.ExampleSuggestions;
13
+ const { searchTerm } = (0, hooks_1.useSearch)();
14
+ return (react_1.default.createElement(components_1.CustomComponent, { componentId: "SensorSuggestions", defaultQuery: () => {
15
+ return {
16
+ suggest: {
17
+ suggestions: {
18
+ text: searchTerm,
19
+ term: {
20
+ field: props.field,
21
+ sort: "score",
22
+ suggest_mode: "always",
23
+ },
24
+ },
25
+ },
26
+ };
27
+ }, react: {
28
+ and: components_1.SENSOR_IDS,
29
+ }, render: (renderProps) => {
30
+ var _a, _b, _c;
31
+ const props = {
32
+ suggestions: [],
33
+ };
34
+ if ((_b = (_a = renderProps.rawData) === null || _a === void 0 ? void 0 : _a.suggest) === null || _b === void 0 ? void 0 : _b.suggestions.length) {
35
+ const options = (_c = renderProps.rawData.suggest.suggestions[renderProps.rawData.suggest.suggestions.length - 1]) === null || _c === void 0 ? void 0 : _c.options;
36
+ props.suggestions.push(...options.map((option) => ({
37
+ text: option.text,
38
+ })));
39
+ }
40
+ return react_1.default.createElement(RenderComponent, Object.assign({}, props));
41
+ } }));
42
+ };
43
+ exports.Suggestions = Suggestions;
44
+ //# sourceMappingURL=Suggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Suggestions.js","sourceRoot":"","sources":["../../../../src/components/Suggestions/Suggestions.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,iDAI0B;AAC1B,uCAAwC;AAajC,MAAM,WAAW,GAA+B,CAAC,KAAK,EAAE,EAAE;;IAC/D,MAAM,eAAe,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,+BAAkB,CAAC;IAE3D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAC;IAEnC,OAAO,CACL,8BAAC,4BAAe,IACd,WAAW,EAAC,mBAAmB,EAC/B,YAAY,EAAE,GAAG,EAAE;YACjB,OAAO;gBACL,OAAO,EAAE;oBACP,WAAW,EAAE;wBACX,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE;4BACJ,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,IAAI,EAAE,OAAO;4BACb,YAAY,EAAE,QAAQ;yBACvB;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,EACD,KAAK,EAAE;YACL,GAAG,EAAE,uBAAU;SAChB,EACD,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE;;YACtB,MAAM,KAAK,GAEP;gBACF,WAAW,EAAE,EAAE;aAChB,CAAC;YAEF,IAAI,MAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,OAAO,0CAAE,WAAW,CAAC,MAAM,EAAE;gBACpD,MAAM,OAAO,GACX,MAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CACrC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CACnD,0CAAE,OAAO,CAAC;gBACb,KAAK,CAAC,WAAW,CAAC,IAAI,CACpB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAsC,EAAE,EAAE,CAAC,CAAC;oBAC1D,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAC,CACJ,CAAC;aACH;YAED,OAAO,8BAAC,eAAe,oBAAK,KAAK,EAAI,CAAC;QACxC,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,WAAW,eAgDtB","sourcesContent":["import React from \"react\";\n\nimport {\n CustomComponent,\n ExampleSuggestions,\n SENSOR_IDS,\n} from \"../../components\";\nimport { useSearch } from \"../../hooks\";\n\nexport type SuggestionsProps = {\n /** The field which should be used for autocompletion */\n field: \"title\";\n /** Render method */\n render?: React.FC<{\n suggestions: Array<{\n text: string;\n }>;\n }>;\n};\n\nexport const Suggestions: React.FC<SuggestionsProps> = (props) => {\n const RenderComponent = props.render ?? ExampleSuggestions;\n\n const { searchTerm } = useSearch();\n\n return (\n <CustomComponent\n componentId=\"SensorSuggestions\"\n defaultQuery={() => {\n return {\n suggest: {\n suggestions: {\n text: searchTerm,\n term: {\n field: props.field,\n sort: \"score\",\n suggest_mode: \"always\",\n },\n },\n },\n };\n }}\n react={{\n and: SENSOR_IDS,\n }}\n render={(renderProps) => {\n const props: React.ComponentProps<\n NonNullable<SuggestionsProps[\"render\"]>\n > = {\n suggestions: [],\n };\n\n if (renderProps.rawData?.suggest?.suggestions.length) {\n const options =\n renderProps.rawData.suggest.suggestions[\n renderProps.rawData.suggest.suggestions.length - 1\n ]?.options;\n props.suggestions.push(\n ...options.map((option: { text: string; freq: number }) => ({\n text: option.text,\n }))\n );\n }\n\n return <RenderComponent {...props} />;\n }}\n />\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ export * from "./Suggestions";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Suggestions"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Suggestions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B","sourcesContent":["export * from \"./Suggestions\";\n"]}
@@ -8,4 +8,5 @@ export * from "./Search";
8
8
  export * from "./Sensor";
9
9
  export * from "./SortBy";
10
10
  export * from "./Stats";
11
+ export * from "./Suggestions";
11
12
  export * from "./Utility";
@@ -20,5 +20,6 @@ __exportStar(require("./Search"), exports);
20
20
  __exportStar(require("./Sensor"), exports);
21
21
  __exportStar(require("./SortBy"), exports);
22
22
  __exportStar(require("./Stats"), exports);
23
+ __exportStar(require("./Suggestions"), exports);
23
24
  __exportStar(require("./Utility"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,oDAAkC;AAClC,6CAA2B;AAC3B,2CAAyB;AACzB,2DAAyC;AACzC,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B","sourcesContent":["export * from \"./Example\";\nexport * from \"./CustomComponent\";\nexport * from \"./ClearAll\";\nexport * from \"./Filter\";\nexport * from \"./ReactifySearchProvider\";\nexport * from \"./Result\";\nexport * from \"./Search\";\nexport * from \"./Sensor\";\nexport * from \"./SortBy\";\nexport * from \"./Stats\";\nexport * from \"./Utility\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,oDAAkC;AAClC,6CAA2B;AAC3B,2CAAyB;AACzB,2DAAyC;AACzC,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,gDAA8B;AAC9B,4CAA0B","sourcesContent":["export * from \"./Example\";\nexport * from \"./CustomComponent\";\nexport * from \"./ClearAll\";\nexport * from \"./Filter\";\nexport * from \"./ReactifySearchProvider\";\nexport * from \"./Result\";\nexport * from \"./Search\";\nexport * from \"./Sensor\";\nexport * from \"./SortBy\";\nexport * from \"./Stats\";\nexport * from \"./Suggestions\";\nexport * from \"./Utility\";\n"]}
@@ -14,3 +14,6 @@ export * from "./useFilterSliderProps";
14
14
  export * from "./useFilterCollapsedState";
15
15
  export * from "./useConfig";
16
16
  export * from "./useReactifySearchContext";
17
+ export * from "./useResults";
18
+ export * from "./useFlags";
19
+ export * from "./useIndices";
@@ -26,4 +26,7 @@ __exportStar(require("./useFilterSliderProps"), exports);
26
26
  __exportStar(require("./useFilterCollapsedState"), exports);
27
27
  __exportStar(require("./useConfig"), exports);
28
28
  __exportStar(require("./useReactifySearchContext"), exports);
29
+ __exportStar(require("./useResults"), exports);
30
+ __exportStar(require("./useFlags"), exports);
31
+ __exportStar(require("./useIndices"), exports);
29
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiC;AAEjC,gDAA8B;AAC9B,8CAA4B;AAC5B,kDAAgC;AAChC,0DAAwC;AACxC,8CAA4B;AAC5B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,oDAAkC;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,8CAA4B;AAC5B,6DAA2C","sourcesContent":["export * from \"./reactivesearch\";\n\nexport * from \"./useDebugger\";\nexport * from \"./useSortBy\";\nexport * from \"./usePagination\";\nexport * from \"./usePaginationLoadable\";\nexport * from \"./useSearch\";\nexport * from \"./useCuration\";\nexport * from \"./useAnalytics\";\nexport * from \"./useFilters\";\nexport * from \"./useProductPrice\";\nexport * from \"./useFilterListProps\";\nexport * from \"./useFilterRangeProps\";\nexport * from \"./useFilterSliderProps\";\nexport * from \"./useFilterCollapsedState\";\nexport * from \"./useConfig\";\nexport * from \"./useReactifySearchContext\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAiC;AAEjC,gDAA8B;AAC9B,8CAA4B;AAC5B,kDAAgC;AAChC,0DAAwC;AACxC,8CAA4B;AAC5B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,oDAAkC;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,8CAA4B;AAC5B,6DAA2C;AAC3C,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B","sourcesContent":["export * from \"./reactivesearch\";\n\nexport * from \"./useDebugger\";\nexport * from \"./useSortBy\";\nexport * from \"./usePagination\";\nexport * from \"./usePaginationLoadable\";\nexport * from \"./useSearch\";\nexport * from \"./useCuration\";\nexport * from \"./useAnalytics\";\nexport * from \"./useFilters\";\nexport * from \"./useProductPrice\";\nexport * from \"./useFilterListProps\";\nexport * from \"./useFilterRangeProps\";\nexport * from \"./useFilterSliderProps\";\nexport * from \"./useFilterCollapsedState\";\nexport * from \"./useConfig\";\nexport * from \"./useReactifySearchContext\";\nexport * from \"./useResults\";\nexport * from \"./useFlags\";\nexport * from \"./useIndices\";\n"]}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ConfigFilterOption } from "../../types";
3
+ import ReactSlider from "react-slider";
4
+ export declare const useReactSliderProps: (filter: ConfigFilterOption, filterValue: [number, number], filterRange: [number, number], handleChange: (value: [number, number]) => void) => Pick<React.ComponentProps<typeof ReactSlider>, "value" | "defaultValue" | "min" | "max" | "step" | "pearling" | "minDistance" | "onChange">;
@@ -0,0 +1,28 @@
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.useReactSliderProps = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const useReactSliderProps = (filter, filterValue, filterRange, handleChange) => {
9
+ const reactSliderProps = react_1.default.useMemo(() => {
10
+ var _a;
11
+ return {
12
+ value: [
13
+ filterValue[0] ? filterValue[0] : filterRange[0],
14
+ filterValue[1] ? filterValue[1] : filterRange[1],
15
+ ],
16
+ defaultValue: [filterRange[0], filterRange[1]],
17
+ min: filterRange[0],
18
+ max: filterRange[1],
19
+ step: parseInt((_a = filter.displaySliderStep) !== null && _a !== void 0 ? _a : "5"),
20
+ pearling: true,
21
+ minDistance: 0,
22
+ onChange: (value) => Array.isArray(value) ? handleChange([value[0], value[1]]) : {},
23
+ };
24
+ }, [filter.displaySliderStep, filterValue, filterRange, handleChange]);
25
+ return reactSliderProps;
26
+ };
27
+ exports.useReactSliderProps = useReactSliderProps;
28
+ //# sourceMappingURL=useReactSliderProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactSliderProps.js","sourceRoot":"","sources":["../../../../src/hooks/react-slider/useReactSliderProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAInB,MAAM,mBAAmB,GAAG,CACjC,MAA0B,EAC1B,WAA6B,EAC7B,WAA6B,EAC7B,YAA+C,EAW/C,EAAE;IACF,MAAM,gBAAgB,GAAG,eAAK,CAAC,OAAO,CAEpC,GAAG,EAAE;;QACL,OAAO;YACL,KAAK,EAAE;gBACL,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBAChD,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aACjD;YACD,YAAY,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9C,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YACnB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YACnB,IAAI,EAAE,QAAQ,CAAC,MAAA,MAAM,CAAC,iBAAiB,mCAAI,GAAG,CAAC;YAC/C,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SACjE,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvE,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AApCW,QAAA,mBAAmB,uBAoC9B","sourcesContent":["import React from \"react\";\nimport { ConfigFilterOption } from \"../../types\";\nimport ReactSlider from \"react-slider\";\n\nexport const useReactSliderProps = (\n filter: ConfigFilterOption,\n filterValue: [number, number],\n filterRange: [number, number],\n handleChange: (value: [number, number]) => void\n): Pick<\n React.ComponentProps<typeof ReactSlider>,\n | \"value\"\n | \"defaultValue\"\n | \"min\"\n | \"max\"\n | \"step\"\n | \"pearling\"\n | \"minDistance\"\n | \"onChange\"\n> => {\n const reactSliderProps = React.useMemo<\n ReturnType<typeof useReactSliderProps>\n >(() => {\n return {\n value: [\n filterValue[0] ? filterValue[0] : filterRange[0],\n filterValue[1] ? filterValue[1] : filterRange[1],\n ],\n defaultValue: [filterRange[0], filterRange[1]],\n min: filterRange[0],\n max: filterRange[1],\n step: parseInt(filter.displaySliderStep ?? \"5\"),\n pearling: true,\n minDistance: 0,\n onChange: (value) =>\n Array.isArray(value) ? handleChange([value[0], value[1]]) : {},\n };\n }, [filter.displaySliderStep, filterValue, filterRange, handleChange]);\n\n return reactSliderProps;\n};\n"]}
@@ -1,7 +1,2 @@
1
- export declare const useReactiveBaseProps: () => {
2
- app: string;
3
- url: string;
4
- credentials: string;
5
- theme: Record<string, unknown>;
6
- transformResponse: (response: any) => Promise<any>;
7
- };
1
+ import { ReactiveBaseProps } from "@appbaseio/reactivesearch/lib/components/basic/ReactiveBase";
2
+ export declare const useReactiveBaseProps: () => ReactiveBaseProps;
@@ -15,12 +15,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.useReactiveBaseProps = void 0;
16
16
  const react_1 = __importDefault(require("react"));
17
17
  const hooks_1 = require("../../hooks");
18
+ const package_json_1 = __importDefault(require("../../../package.json"));
18
19
  const useReactiveBaseProps = () => {
19
20
  const { options } = (0, hooks_1.useReactifySearchContext)();
20
21
  const reactiveBaseProps = react_1.default.useMemo(() => ({
21
22
  app: options.index,
22
- url: options.credentials.endpoint,
23
- credentials: `${options.credentials.username}:${options.credentials.password}`,
23
+ url: options.endpoint,
24
+ credentials: options.credentials,
24
25
  theme: options.theme,
25
26
  transformResponse: (response) => __awaiter(void 0, void 0, void 0, function* () {
26
27
  var _a, _b, _c, _d;
@@ -38,7 +39,13 @@ const useReactiveBaseProps = () => {
38
39
  }
39
40
  return response;
40
41
  }),
41
- }), [options.credentials, options.theme]);
42
+ headers: {
43
+ "x-reactify-shop": options.shopifyPermanentDomain,
44
+ "x-reactify-mode": options.mode,
45
+ "x-reactify-client-id": options.clientId,
46
+ "x-reactify-client-version": package_json_1.default.version,
47
+ },
48
+ }), [options.index, options.endpoint, options.credentials, options.theme]);
42
49
  return reactiveBaseProps;
43
50
  };
44
51
  exports.useReactiveBaseProps = useReactiveBaseProps;
@@ -1 +1 @@
1
- {"version":3,"file":"useReactiveBaseProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveBaseProps.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uCAAuD;AAEhD,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,eAAK,CAAC,OAAO,CACrC,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,OAAO,CAAC,KAAK;QAClB,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;QACjC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;QAC9E,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,CAAO,QAAa,EAAE,EAAE;;YACzC,+EAA+E;YAC/E,uDAAuD;YACvD,EAAE;YACF,qFAAqF;YACrF,qFAAqF;YACrF,kEAAkE;YAClE,EAAE;YACF,0DAA0D;YAC1D,IACE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,qBAAqB,0CAAE,qBAAqB,EACpE;gBACA,QAAQ,CAAC,YAAY,CAAC,qBAAqB;oBACzC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,qBAAqB,0CAAE,qBAAqB,CAAC;aACxE;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA;KACF,CAAC,EACF,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CACrC,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAhCW,QAAA,oBAAoB,wBAgC/B","sourcesContent":["import React from \"react\";\nimport { useReactifySearchContext } from \"../../hooks\";\n\nexport const useReactiveBaseProps = () => {\n const { options } = useReactifySearchContext();\n\n const reactiveBaseProps = React.useMemo(\n () => ({\n app: options.index,\n url: options.credentials.endpoint,\n credentials: `${options.credentials.username}:${options.credentials.password}`,\n theme: options.theme,\n transformResponse: async (response: any) => {\n // support filtering inside nested aggregations by moving the inner aggregation\n // up one level such that reactivesearch understands it\n //\n // see useReactiveFilterListProps > defaultQuery to see how a filter is being applied\n // to variant aggregations to ensure that only in stock sizes are displayed as filter\n // options, this involves a nested filter, which requires this fix\n //\n // https://github.com/appbaseio/reactivesearch/issues/1530\n if (\n response?.aggregations?.reactivesearch_nested?.reactify_nested_outer\n ) {\n response.aggregations.reactivesearch_nested =\n response?.aggregations?.reactivesearch_nested?.reactify_nested_outer;\n }\n\n return response;\n },\n }),\n [options.credentials, options.theme]\n );\n\n return reactiveBaseProps;\n};\n"]}
1
+ {"version":3,"file":"useReactiveBaseProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveBaseProps.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAG1B,uCAAuD;AAEvD,yEAAwC;AAEjC,MAAM,oBAAoB,GAAG,GAAsB,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,eAAK,CAAC,OAAO,CACrC,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,OAAO,CAAC,KAAK;QAClB,GAAG,EAAE,OAAO,CAAC,QAAQ;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,CAAO,QAAa,EAAE,EAAE;;YACzC,+EAA+E;YAC/E,uDAAuD;YACvD,EAAE;YACF,qFAAqF;YACrF,qFAAqF;YACrF,kEAAkE;YAClE,EAAE;YACF,0DAA0D;YAC1D,IACE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,qBAAqB,0CAAE,qBAAqB,EACpE;gBACA,QAAQ,CAAC,YAAY,CAAC,qBAAqB;oBACzC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,0CAAE,qBAAqB,0CAAE,qBAAqB,CAAC;aACxE;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAA;QACD,OAAO,EAAE;YACP,iBAAiB,EAAE,OAAO,CAAC,sBAAsB;YACjD,iBAAiB,EAAE,OAAO,CAAC,IAAI;YAC/B,sBAAsB,EAAE,OAAO,CAAC,QAAQ;YACxC,2BAA2B,EAAE,sBAAG,CAAC,OAAO;SACzC;KACF,CAAC,EACF,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CACtE,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAtCW,QAAA,oBAAoB,wBAsC/B","sourcesContent":["import React from \"react\";\nimport { ReactiveBaseProps } from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveBase\";\n\nimport { useReactifySearchContext } from \"../../hooks\";\n\nimport pkg from \"../../../package.json\";\n\nexport const useReactiveBaseProps = (): ReactiveBaseProps => {\n const { options } = useReactifySearchContext();\n\n const reactiveBaseProps = React.useMemo<ReactiveBaseProps>(\n () => ({\n app: options.index,\n url: options.endpoint,\n credentials: options.credentials,\n theme: options.theme,\n transformResponse: async (response: any) => {\n // support filtering inside nested aggregations by moving the inner aggregation\n // up one level such that reactivesearch understands it\n //\n // see useReactiveFilterListProps > defaultQuery to see how a filter is being applied\n // to variant aggregations to ensure that only in stock sizes are displayed as filter\n // options, this involves a nested filter, which requires this fix\n //\n // https://github.com/appbaseio/reactivesearch/issues/1530\n if (\n response?.aggregations?.reactivesearch_nested?.reactify_nested_outer\n ) {\n response.aggregations.reactivesearch_nested =\n response?.aggregations?.reactivesearch_nested?.reactify_nested_outer;\n }\n\n return response;\n },\n headers: {\n \"x-reactify-shop\": options.shopifyPermanentDomain,\n \"x-reactify-mode\": options.mode,\n \"x-reactify-client-id\": options.clientId,\n \"x-reactify-client-version\": pkg.version,\n },\n }),\n [options.index, options.endpoint, options.credentials, options.theme]\n );\n\n return reactiveBaseProps;\n};\n"]}
@@ -4,6 +4,7 @@ import type { ConfigFilterOption } from "../../types/config";
4
4
  */
5
5
  export declare const useReactiveFilterListProps: (filter: ConfigFilterOption) => {
6
6
  size: number | undefined;
7
+ queryFormat: "and" | "or";
7
8
  showFilter: boolean;
8
9
  showLoadMore: boolean;
9
10
  showSearch: boolean;
@@ -6,17 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.useReactiveFilterListProps = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const useReactiveFilterSharedProps_1 = require("./useReactiveFilterSharedProps");
9
- const useReactiveReactProp_1 = require("./useReactiveReactProp");
10
9
  /**
11
10
  * For use with @appbaseio/reactivesearch SingleList and MultiList components
12
11
  */
13
12
  const useReactiveFilterListProps = (filter) => {
14
- const reactiveReactProp = (0, useReactiveReactProp_1.useReactiveReactProp)(filter.handle);
15
13
  const reactiveFilterSharedProps = (0, useReactiveFilterSharedProps_1.useReactiveFilterSharedProps)(filter);
16
14
  const reactiveFilterListProps = react_1.default.useMemo(() => {
17
- var _a, _b, _c;
18
- return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { size: parseInt(filter.displaySize) || undefined, showFilter: (_a = filter.settingsShowFilter) !== null && _a !== void 0 ? _a : true, showLoadMore: (_b = filter.settingsShowMore) !== null && _b !== void 0 ? _b : false, showSearch: (_c = filter.settingsShowSearch) !== null && _c !== void 0 ? _c : false, showRadio: false, showCheckbox: false }));
19
- }, [filter, reactiveReactProp]);
15
+ var _a, _b, _c, _d;
16
+ return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { size: parseInt(filter.displaySize) || undefined, queryFormat: (_a = filter.settingsFilterLogic) !== null && _a !== void 0 ? _a : "or", showFilter: (_b = filter.settingsShowFilter) !== null && _b !== void 0 ? _b : true, showLoadMore: (_c = filter.settingsShowMore) !== null && _c !== void 0 ? _c : false, showSearch: (_d = filter.settingsShowSearch) !== null && _d !== void 0 ? _d : false, showRadio: false, showCheckbox: false }));
17
+ }, [filter, reactiveFilterSharedProps]);
20
18
  return reactiveFilterListProps;
21
19
  };
22
20
  exports.useReactiveFilterListProps = useReactiveFilterListProps;
@@ -1 +1 @@
1
- {"version":3,"file":"useReactiveFilterListProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveFilterListProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,iFAA8E;AAE9E,iEAA8D;AAE9D;;GAEG;AACI,MAAM,0BAA0B,GAAG,CAAC,MAA0B,EAAE,EAAE;IACvE,MAAM,iBAAiB,GAAG,IAAA,2CAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,yBAAyB,GAAG,IAAA,2DAA4B,EAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,uBAAuB,GAAG,eAAK,CAAC,OAAO,CAC3C,GAAG,EAAE;;QAAC,OAAA,iCACD,yBAAyB,KAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,EAC/C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,IAAI,EAC7C,YAAY,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,KAAK,EAC9C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,KAAK,EAC9C,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,KAAK,IACnB,CAAA;KAAA,EACF,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAC5B,CAAC;IAEF,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAlBW,QAAA,0BAA0B,8BAkBrC","sourcesContent":["import React from \"react\";\n\nimport type { ConfigFilterOption } from \"../../types/config\";\nimport { useReactiveFilterSharedProps } from \"./useReactiveFilterSharedProps\";\n\nimport { useReactiveReactProp } from \"./useReactiveReactProp\";\n\n/**\n * For use with @appbaseio/reactivesearch SingleList and MultiList components\n */\nexport const useReactiveFilterListProps = (filter: ConfigFilterOption) => {\n const reactiveReactProp = useReactiveReactProp(filter.handle);\n const reactiveFilterSharedProps = useReactiveFilterSharedProps(filter);\n\n const reactiveFilterListProps = React.useMemo(\n () => ({\n ...reactiveFilterSharedProps,\n size: parseInt(filter.displaySize) || undefined,\n showFilter: filter.settingsShowFilter ?? true,\n showLoadMore: filter.settingsShowMore ?? false,\n showSearch: filter.settingsShowSearch ?? false,\n showRadio: false,\n showCheckbox: false,\n }),\n [filter, reactiveReactProp]\n );\n\n return reactiveFilterListProps;\n};\n"]}
1
+ {"version":3,"file":"useReactiveFilterListProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveFilterListProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,iFAA8E;AAE9E;;GAEG;AACI,MAAM,0BAA0B,GAAG,CAAC,MAA0B,EAAE,EAAE;IACvE,MAAM,yBAAyB,GAAG,IAAA,2DAA4B,EAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,uBAAuB,GAAG,eAAK,CAAC,OAAO,CAC3C,GAAG,EAAE;;QAAC,OAAA,iCACD,yBAAyB,KAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,EAC/C,WAAW,EAAE,MAAA,MAAM,CAAC,mBAAmB,mCAAI,IAAI,EAC/C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,IAAI,EAC7C,YAAY,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,KAAK,EAC9C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,KAAK,EAC9C,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,KAAK,IACnB,CAAA;KAAA,EACF,CAAC,MAAM,EAAE,yBAAyB,CAAC,CACpC,CAAC;IAEF,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAlBW,QAAA,0BAA0B,8BAkBrC","sourcesContent":["import React from \"react\";\n\nimport type { ConfigFilterOption } from \"../../types/config\";\nimport { useReactiveFilterSharedProps } from \"./useReactiveFilterSharedProps\";\n\n/**\n * For use with @appbaseio/reactivesearch SingleList and MultiList components\n */\nexport const useReactiveFilterListProps = (filter: ConfigFilterOption) => {\n const reactiveFilterSharedProps = useReactiveFilterSharedProps(filter);\n\n const reactiveFilterListProps = React.useMemo(\n () => ({\n ...reactiveFilterSharedProps,\n size: parseInt(filter.displaySize) || undefined,\n queryFormat: filter.settingsFilterLogic ?? \"or\",\n showFilter: filter.settingsShowFilter ?? true,\n showLoadMore: filter.settingsShowMore ?? false,\n showSearch: filter.settingsShowSearch ?? false,\n showRadio: false,\n showCheckbox: false,\n }),\n [filter, reactiveFilterSharedProps]\n );\n\n return reactiveFilterListProps;\n};\n"]}
@@ -3,6 +3,7 @@ import { ConfigFilterOption } from "../../types";
3
3
  * For use with @appbaseio/reactivesearch SingleRange and MultiRange components
4
4
  */
5
5
  export declare const useReactiveFilterRangeProps: (filter: ConfigFilterOption) => {
6
+ queryFormat: "and" | "or";
6
7
  showFilter: boolean;
7
8
  showRadio: boolean;
8
9
  showCheckbox: boolean;
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.useReactiveFilterRangeProps = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const useReactiveFilterSharedProps_1 = require("./useReactiveFilterSharedProps");
9
- const useReactiveReactProp_1 = require("./useReactiveReactProp");
10
9
  /**
11
10
  * For use with @appbaseio/reactivesearch SingleRange and MultiRange components
12
11
  */
13
12
  const useReactiveFilterRangeProps = (filter) => {
14
- const reactiveReactProp = (0, useReactiveReactProp_1.useReactiveReactProp)(filter.handle);
15
13
  const reactiveFilterSharedProps = (0, useReactiveFilterSharedProps_1.useReactiveFilterSharedProps)(filter);
16
14
  const data = react_1.default.useMemo(() => {
17
15
  var _a, _b;
@@ -25,9 +23,9 @@ const useReactiveFilterRangeProps = (filter) => {
25
23
  })) !== null && _b !== void 0 ? _b : []);
26
24
  }, []);
27
25
  const reactiveFilterRangeProps = react_1.default.useMemo(() => {
28
- var _a;
29
- return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { showFilter: (_a = filter.settingsShowFilter) !== null && _a !== void 0 ? _a : true, showRadio: false, showCheckbox: false, data: data }));
30
- }, [filter, reactiveReactProp]);
26
+ var _a, _b;
27
+ return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { queryFormat: (_a = filter.settingsFilterLogic) !== null && _a !== void 0 ? _a : "or", showFilter: (_b = filter.settingsShowFilter) !== null && _b !== void 0 ? _b : true, showRadio: false, showCheckbox: false, data: data }));
28
+ }, [filter, reactiveFilterSharedProps]);
31
29
  return reactiveFilterRangeProps;
32
30
  };
33
31
  exports.useReactiveFilterRangeProps = useReactiveFilterRangeProps;