@usereactify/search 5.54.0 → 5.55.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/package.json +1 -1
- package/dist/src/components/ClearAll/ClearAll.js +3 -2
- package/dist/src/components/ClearAll/ClearAll.js.map +1 -1
- package/dist/src/components/Filter/FiltersSelected.js +3 -2
- package/dist/src/components/Filter/FiltersSelected.js.map +1 -1
- package/dist/src/hooks/useConfig.js +1 -12
- package/dist/src/hooks/useConfig.js.map +1 -1
- package/dist/src/hooks/useDebugger.d.ts +1 -0
- package/dist/src/hooks/useDebugger.js +12 -1
- package/dist/src/hooks/useDebugger.js.map +1 -1
- package/dist/src/hooks/useFilterRangeProps.js +4 -3
- package/dist/src/hooks/useFilterRangeProps.js.map +1 -1
- package/dist/src/hooks/useFilterSliderProps.js +4 -3
- package/dist/src/hooks/useFilterSliderProps.js.map +1 -1
- package/dist/src/hooks/useFilters.js +0 -3
- package/dist/src/hooks/useFilters.js.map +1 -1
- package/dist/src/hooks/useFlags.js +1 -3
- package/dist/src/hooks/useFlags.js.map +1 -1
- package/dist/src/hooks/useResults.js +9 -7
- package/dist/src/hooks/useResults.js.map +1 -1
- package/dist/src/hooks/useSortBy.js +0 -2
- package/dist/src/hooks/useSortBy.js.map +1 -1
- package/dist/src/utility/debug.d.ts +1 -0
- package/dist/src/utility/debug.js +1 -0
- package/dist/src/utility/debug.js.map +1 -1
- package/dist/src/utility/props.js +1 -1
- package/dist/src/utility/props.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [5.55.0-beta.1](https://bitbucket.org/usereactify/reactify-search-ui/compare/beta-v5.55.0-beta.0...beta-v5.55.0-beta.1) (2024-11-17)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* disable URL params when mode is instant-search ([f1c5906](https://bitbucket.org/usereactify/reactify-search-ui/commit/f1c5906b633ac500b67940305f1f79ab67117f96))
|
|
11
|
+
|
|
12
|
+
## [5.55.0-beta.0](https://bitbucket.org/usereactify/reactify-search-ui/compare/beta-v5.53.0-beta.3...beta-v5.55.0-beta.0) (2024-11-13)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* expose resultStats when using submitSearchQuery ([8bf0e5c](https://bitbucket.org/usereactify/reactify-search-ui/commit/8bf0e5cc218882c280b5e56e9b157c5ea46cf0d2))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* isolate window events to specific ReactifySearchProviders, reduce noisy logs ([c736499](https://bitbucket.org/usereactify/reactify-search-ui/commit/c73649997275513bfbbcc6581a7d1dfce4641c91))
|
|
23
|
+
|
|
5
24
|
## [5.54.0](https://bitbucket.org/usereactify/reactify-search-ui/compare/release-v5.53.0...release-v5.54.0) (2024-10-23)
|
|
6
25
|
|
|
7
26
|
|
package/dist/package.json
CHANGED
|
@@ -10,6 +10,7 @@ const components_1 = require("../../components");
|
|
|
10
10
|
const hooks_1 = require("../../hooks");
|
|
11
11
|
const ClearAll = (props) => {
|
|
12
12
|
var _a;
|
|
13
|
+
const context = (0, hooks_1.useReactifySearchContext)();
|
|
13
14
|
const RenderComponent = (_a = props.render) !== null && _a !== void 0 ? _a : components_1.ExampleClearAll;
|
|
14
15
|
const filtersHook = (0, hooks_1.useFilters)();
|
|
15
16
|
return (react_1.default.createElement(SelectedFilters_1.default, { render: (renderProps) => {
|
|
@@ -25,7 +26,7 @@ const ClearAll = (props) => {
|
|
|
25
26
|
var _a;
|
|
26
27
|
for (const filter of (_a = filtersHook.filters) !== null && _a !== void 0 ? _a : []) {
|
|
27
28
|
if (filter.displayType === "slider") {
|
|
28
|
-
const event = new CustomEvent(`@usereactify/search:filter:${filter.handle}:update`, {
|
|
29
|
+
const event = new CustomEvent(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {
|
|
29
30
|
detail: {
|
|
30
31
|
handle: filter.handle,
|
|
31
32
|
value: [],
|
|
@@ -35,7 +36,7 @@ const ClearAll = (props) => {
|
|
|
35
36
|
}
|
|
36
37
|
if (filter.displayType === "multi") {
|
|
37
38
|
if (filter.displayView === "range") {
|
|
38
|
-
const event = new CustomEvent(`@usereactify/search:filter:${filter.handle}:update`, {
|
|
39
|
+
const event = new CustomEvent(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {
|
|
39
40
|
detail: {
|
|
40
41
|
handle: filter.handle,
|
|
41
42
|
value: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClearAll.js","sourceRoot":"","sources":["../../../../src/components/ClearAll/ClearAll.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,iDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"ClearAll.js","sourceRoot":"","sources":["../../../../src/components/ClearAll/ClearAll.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,iDAAmD;AACnD,uCAAmE;AAW5D,MAAM,QAAQ,GAA4B,CAAC,KAAK,EAAE,EAAE;;IACzD,MAAM,OAAO,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,4BAAe,CAAC;IAExD,MAAM,WAAW,GAAG,IAAA,kBAAU,GAAE,CAAC;IAEjC,OAAO,CACL,8BAAC,yBAAe,IACd,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE;YACtB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;iBAC9D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;iBACrB,MAAM,CACL,CAAC,IAAS,EAAE,EAAE;;gBACZ,OAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS;qBACf,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA;oBAChB,CAAC,CAAC,CAAC,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,KAAK,CAAA,CAAC,CAAA;aAAA,CAClD,CAAC;YAEJ,MAAM,cAAc,GAAG,GAAG,EAAE;;gBAC1B,KAAK,MAAM,MAAM,IAAI,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,EAAE,CAAC;oBAC/C,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;wBACpC,MAAM,KAAK,GAAG,IAAI,WAAW,CAG1B,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,WAAW,MAAM,CAAC,MAAM,SAAS,EAAE;4BAC/E,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM,CAAC,MAAM;gCACrB,KAAK,EAAE,EAAE;6BACV;yBACF,CAAC,CAAC;wBACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;oBACD,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;wBACnC,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;4BACnC,MAAM,KAAK,GAAG,IAAI,WAAW,CAG1B,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,WAAW,MAAM,CAAC,MAAM,SAAS,EAAE;gCAC/E,MAAM,EAAE;oCACN,MAAM,EAAE,MAAM,CAAC,MAAM;oCACrB,KAAK,EAAE,EAAE;iCACV;6BACF,CAAC,CAAC;4BACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,WAAW,CAAC,WAAW,EAAE,CAAC;YAC5B,CAAC,CAAC;YAEF,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,8BAAC,eAAe,IAAC,QAAQ,EAAE,cAAc,GAAI,CAAC;QACvD,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,QAAQ,YA0DnB","sourcesContent":["import React from \"react\";\nimport SelectedFilters from \"@usereactify/search-internals/lib/components/basic/SelectedFilters\";\n\nimport { ExampleClearAll } from \"../../components\";\nimport { useFilters, useReactifySearchContext } from \"../../hooks\";\n\nexport type ClearAllProps = {\n /** Render method */\n render?: React.FC<{\n clearAll: () => void;\n }>;\n /** Render the component even when there are no filters selected (default: false) */\n showWhenEmpty?: boolean;\n};\n\nexport const ClearAll: React.FC<ClearAllProps> = (props) => {\n const context = useReactifySearchContext();\n const RenderComponent = props.render ?? ExampleClearAll;\n\n const filtersHook = useFilters();\n\n return (\n <SelectedFilters\n render={(renderProps) => {\n const selectedFilters = Object.values(renderProps.selectedValues)\n .map((value) => value)\n .filter(\n (item: any) =>\n item?.URLParams &&\n item?.showFilter &&\n (!!item?.value?.length || !!item?.value?.label)\n );\n\n const handleClearAll = () => {\n for (const filter of filtersHook.filters ?? []) {\n if (filter.displayType === \"slider\") {\n const event = new CustomEvent<{\n handle: string;\n value: [];\n }>(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {\n detail: {\n handle: filter.handle,\n value: [],\n },\n });\n window.dispatchEvent(event);\n }\n if (filter.displayType === \"multi\") {\n if (filter.displayView === \"range\") {\n const event = new CustomEvent<{\n handle: string;\n value: Array<string>;\n }>(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {\n detail: {\n handle: filter.handle,\n value: [],\n },\n });\n window.dispatchEvent(event);\n }\n }\n }\n renderProps.clearValues();\n };\n\n if (props.showWhenEmpty !== true && !selectedFilters.length) {\n return null;\n }\n\n return <RenderComponent clearAll={handleClearAll} />;\n }}\n />\n );\n};\n"]}
|
|
@@ -10,6 +10,7 @@ const components_1 = require("../../components");
|
|
|
10
10
|
const hooks_1 = require("../../hooks");
|
|
11
11
|
const FiltersSelected = (props) => {
|
|
12
12
|
var _a;
|
|
13
|
+
const context = (0, hooks_1.useReactifySearchContext)();
|
|
13
14
|
const filtersHook = (0, hooks_1.useFilters)();
|
|
14
15
|
const RenderComponent = (_a = props.render) !== null && _a !== void 0 ? _a : components_1.ExampleFiltersSelected;
|
|
15
16
|
return (react_1.default.createElement(SelectedFilters_1.default, { render: ({ selectedValues, setValue }) => {
|
|
@@ -32,7 +33,7 @@ const FiltersSelected = (props) => {
|
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
35
|
if (filter.displayType === "slider") {
|
|
35
|
-
const event = new CustomEvent(`@usereactify/search:filter:${filter.handle}:update`, {
|
|
36
|
+
const event = new CustomEvent(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {
|
|
36
37
|
detail: {
|
|
37
38
|
handle: filter.handle,
|
|
38
39
|
value: [],
|
|
@@ -54,7 +55,7 @@ const FiltersSelected = (props) => {
|
|
|
54
55
|
const values = selectedValues[selectedFilterKey].value
|
|
55
56
|
.filter((value) => !selectedFilterValues.includes(value.label))
|
|
56
57
|
.map((value) => value.label);
|
|
57
|
-
const event = new CustomEvent(`@usereactify/search:filter:${filter.handle}:update`, {
|
|
58
|
+
const event = new CustomEvent(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {
|
|
58
59
|
detail: {
|
|
59
60
|
handle: filter.handle,
|
|
60
61
|
value: values,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersSelected.js","sourceRoot":"","sources":["../../../../src/components/Filter/FiltersSelected.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,iDAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"FiltersSelected.js","sourceRoot":"","sources":["../../../../src/components/Filter/FiltersSelected.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport SelectedFilters from \"@usereactify/search-internals/lib/components/basic/SelectedFilters\";\n\nimport { ExampleFiltersSelected } from \"../../components\";\nimport { useFilters, useReactifySearchContext } from \"../../hooks\";\n\nexport type FiltersSelectedProps = {\n /** Render method called once for all active filters */\n render?: React.FC<{\n selectedFilters: Array<{\n key: string;\n label: string;\n value:\n | Array<string>\n | string\n | { label: string; start: number; end: number }\n | Array<{ label: string; start: number; end: number }>;\n }>;\n handleRemove: (\n filterKey: string,\n filterValues?: Array<string | number>\n ) => void;\n }>;\n};\n\nexport const FiltersSelected: React.FC<FiltersSelectedProps> = (props) => {\n const context = useReactifySearchContext();\n const filtersHook = useFilters();\n\n const RenderComponent = props.render ?? ExampleFiltersSelected;\n\n return (\n <SelectedFilters\n render={({ selectedValues, setValue }) => {\n const selectedFilters = (\n Object.entries(selectedValues) as Array<[string, any]>\n )\n .filter(\n ([key, item]) =>\n item?.URLParams &&\n item?.showFilter &&\n (!!item?.value?.length || !!item?.value?.label)\n )\n .map(([key, item]) => ({\n key: key,\n label: item.label,\n value: item.value,\n }));\n\n const handleRemove = (\n selectedFilterKey: string,\n selectedFilterValues: Array<string | number> = []\n ) => {\n const filter = filtersHook.filters?.find(\n (filter) => filter.handle === selectedFilterKey\n );\n if (!filter) {\n return;\n }\n\n if (filter.displayType === \"slider\") {\n const event = new CustomEvent<{\n handle: string;\n value: [];\n }>(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {\n detail: {\n handle: filter.handle,\n value: [],\n },\n });\n window.dispatchEvent(event);\n\n return;\n }\n\n if (selectedFilterValues.length === 0) {\n setValue(selectedFilterKey, null);\n\n return;\n }\n\n if (selectedFilterValues.length > 0) {\n if (filter.displayType === \"single\") {\n setValue(selectedFilterKey, null);\n }\n if (filter.displayType === \"multi\") {\n if (filter.displayView === \"range\") {\n const values = selectedValues[selectedFilterKey].value\n .filter(\n (value: { label: string }) =>\n !selectedFilterValues.includes(value.label)\n )\n .map((value: { label: string }) => value.label);\n\n const event = new CustomEvent<{\n handle: string;\n value: Array<string>;\n }>(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, {\n detail: {\n handle: filter.handle,\n value: values,\n },\n });\n window.dispatchEvent(event);\n }\n if (filter.displayView !== \"range\") {\n const values = selectedValues[selectedFilterKey].value.filter(\n (value: string) => !selectedFilterValues.includes(value)\n );\n setValue(selectedFilterKey, values);\n }\n }\n }\n };\n\n if (!selectedFilters.length) {\n return null;\n }\n\n return (\n <RenderComponent\n selectedFilters={selectedFilters}\n handleRemove={handleRemove}\n />\n );\n }}\n />\n );\n};\n"]}
|
|
@@ -22,25 +22,18 @@ const useConfig = (shopifyPermanentDomain, preloadedConfig) => {
|
|
|
22
22
|
if (typeof window === "undefined") {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
utility_1.debug.log("useConfig", "checking config cache");
|
|
26
25
|
const sessionConfig = JSON.parse((_a = window.sessionStorage.getItem("reactify-search:config")) !== null && _a !== void 0 ? _a : "null");
|
|
27
26
|
if (sessionConfig) {
|
|
28
27
|
if (((_b = sessionConfig.config.cache) === null || _b === void 0 ? void 0 : _b.enabled) === false) {
|
|
29
|
-
utility_1.debug.log("useConfig", `cache disabled, ignoring cached config`);
|
|
30
28
|
return;
|
|
31
29
|
}
|
|
32
|
-
utility_1.debug.log("useConfig", `cache enabled, using cached config`);
|
|
33
30
|
return sessionConfig.config;
|
|
34
31
|
}
|
|
35
|
-
else {
|
|
36
|
-
utility_1.debug.log("useConfig", `cached config missing`);
|
|
37
|
-
}
|
|
38
32
|
return;
|
|
39
33
|
}, []);
|
|
40
34
|
const [config, setConfig] = react_1.default.useState(cachedConfig);
|
|
41
35
|
react_1.default.useEffect(() => {
|
|
42
36
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
-
utility_1.debug.log("useConfig", "loading fresh config");
|
|
44
37
|
const searchParams = new URLSearchParams();
|
|
45
38
|
searchParams.set("shop", shopifyPermanentDomain);
|
|
46
39
|
let json;
|
|
@@ -48,19 +41,15 @@ const useConfig = (shopifyPermanentDomain, preloadedConfig) => {
|
|
|
48
41
|
json = yield fetch(`https://config.usereactify.com/?${searchParams.toString()}`).then((response) => response.json());
|
|
49
42
|
}
|
|
50
43
|
catch (error) {
|
|
51
|
-
utility_1.debug.log("useConfig", "error loading config, retrying...");
|
|
52
44
|
json = yield fetch(`https://config.usereactify.com/?${searchParams.toString()}`).then((response) => response.json());
|
|
53
45
|
}
|
|
54
46
|
setConfig(json.body);
|
|
55
|
-
utility_1.debug.log("useConfig", "loaded fresh config");
|
|
56
47
|
window.sessionStorage.setItem("reactify-search:config", JSON.stringify({
|
|
57
48
|
config: json.body,
|
|
58
49
|
}));
|
|
59
50
|
}))();
|
|
60
51
|
}, [shopifyPermanentDomain]);
|
|
61
|
-
|
|
62
|
-
utility_1.debug.log("useConfig", "config", config);
|
|
63
|
-
}, [config]);
|
|
52
|
+
utility_1.debug.hook("useConfig", "config", config);
|
|
64
53
|
return {
|
|
65
54
|
config: config !== null && config !== void 0 ? config : preloadedConfig,
|
|
66
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../../src/hooks/useConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAG1B,wCAAmC;AAE5B,MAAM,SAAS,GAAG,CACvB,sBAA8B,EAC9B,eAAwB,EAGxB,EAAE;IACF,2EAA2E;IAC3E,MAAM,YAAY,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACtC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;
|
|
1
|
+
{"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../../src/hooks/useConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAG1B,wCAAmC;AAE5B,MAAM,SAAS,GAAG,CACvB,sBAA8B,EAC9B,eAAwB,EAGxB,EAAE;IACF,2EAA2E;IAC3E,MAAM,YAAY,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACtC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAER,IAAI,CAAC,KAAK,CACnB,MAAA,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,wBAAwB,CAAC,mCAAI,MAAM,CAClE,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAA,MAAA,aAAa,CAAC,MAAM,CAAC,KAAK,0CAAE,OAAO,MAAK,KAAK,EAAE,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,OAAO,aAAa,CAAC,MAAM,CAAC;QAC9B,CAAC;QAED,OAAO;IACT,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAqB,YAAY,CAAC,CAAC;IAE7E,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,CAAC,GAAS,EAAE;YACV,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;YAC3C,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAEjD,IAAI,IAAS,CAAC;YAEd,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,KAAK,CAChB,mCAAmC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAC7D,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAExC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,GAAG,MAAM,KAAK,CAChB,mCAAmC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAC7D,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErB,MAAM,CAAC,cAAc,CAAC,OAAO,CAC3B,wBAAwB,EACxB,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC,CACH,CAAC;QACJ,CAAC,CAAA,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7B,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO;QACL,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,eAAe;KAClC,CAAC;AACJ,CAAC,CAAC;AAjEW,QAAA,SAAS,aAiEpB","sourcesContent":["import React from \"react\";\n\nimport { Config } from \"../types/config\";\nimport { debug } from \"../utility\";\n\nexport const useConfig = (\n shopifyPermanentDomain: string,\n preloadedConfig?: Config\n): {\n config: Config | undefined;\n} => {\n // synchronously returns cached and non-expired config from session storage\n const cachedConfig = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n const sessionConfig: {\n config: Config;\n } | null = JSON.parse(\n window.sessionStorage.getItem(\"reactify-search:config\") ?? \"null\"\n );\n\n if (sessionConfig) {\n if (sessionConfig.config.cache?.enabled === false) {\n return;\n }\n\n return sessionConfig.config;\n }\n\n return;\n }, []);\n\n const [config, setConfig] = React.useState<Config | undefined>(cachedConfig);\n\n React.useEffect(() => {\n (async () => {\n const searchParams = new URLSearchParams();\n searchParams.set(\"shop\", shopifyPermanentDomain);\n\n let json: any;\n\n try {\n json = await fetch(\n `https://config.usereactify.com/?${searchParams.toString()}`\n ).then((response) => response.json());\n \n } catch (error) {\n json = await fetch(\n `https://config.usereactify.com/?${searchParams.toString()}`\n ).then((response) => response.json());\n }\n\n setConfig(json.body);\n\n window.sessionStorage.setItem(\n \"reactify-search:config\",\n JSON.stringify({\n config: json.body,\n })\n );\n })();\n }, [shopifyPermanentDomain]);\n\n debug.hook(\"useConfig\", \"config\", config);\n\n return {\n config: config ?? preloadedConfig,\n };\n};\n"]}
|
|
@@ -3,7 +3,7 @@ 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.useDebugger = void 0;
|
|
6
|
+
exports.useDebuggerOnce = exports.useDebugger = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const utility_1 = require("../utility");
|
|
9
9
|
const useDebugger = (namespace, message, value) => {
|
|
@@ -12,4 +12,15 @@ const useDebugger = (namespace, message, value) => {
|
|
|
12
12
|
}, [value]);
|
|
13
13
|
};
|
|
14
14
|
exports.useDebugger = useDebugger;
|
|
15
|
+
let useDebuggerOnceCache = {};
|
|
16
|
+
const useDebuggerOnce = (namespace, message, value) => {
|
|
17
|
+
react_1.default.useEffect(() => {
|
|
18
|
+
if (useDebuggerOnceCache[`${namespace}:${message}`]) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
useDebuggerOnceCache[`${namespace}:${message}`] = true;
|
|
22
|
+
utility_1.debug.log(namespace, message, value);
|
|
23
|
+
}, []);
|
|
24
|
+
};
|
|
25
|
+
exports.useDebuggerOnce = useDebuggerOnce;
|
|
15
26
|
//# sourceMappingURL=useDebugger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDebugger.js","sourceRoot":"","sources":["../../../src/hooks/useDebugger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,wCAAmC;AAE5B,MAAM,WAAW,GAAG,CACzB,SAAiB,EACjB,OAAe,EACf,KAAc,EACd,EAAE;IACF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB","sourcesContent":["import React from \"react\";\n\nimport { debug } from \"../utility\";\n\nexport const useDebugger = (\n namespace: string,\n message: string,\n value: unknown\n) => {\n React.useEffect(() => {\n debug.log(namespace, message, value);\n }, [value]);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"useDebugger.js","sourceRoot":"","sources":["../../../src/hooks/useDebugger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,wCAAmC;AAE5B,MAAM,WAAW,GAAG,CACzB,SAAiB,EACjB,OAAe,EACf,KAAc,EACd,EAAE;IACF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEF,IAAI,oBAAoB,GAAyB,EAAE,CAAC;AAE7C,MAAM,eAAe,GAAG,CAC7B,SAAiB,EACjB,OAAe,EACf,KAAc,EACd,EAAE;IACF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,oBAAoB,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;YACpD,OAAM;QACR,CAAC;QAED,oBAAoB,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;QAEvD,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B","sourcesContent":["import React from \"react\";\n\nimport { debug } from \"../utility\";\n\nexport const useDebugger = (\n namespace: string,\n message: string,\n value: unknown\n) => {\n React.useEffect(() => {\n debug.log(namespace, message, value);\n }, [value]);\n};\n\nlet useDebuggerOnceCache: Record<string, true> = {};\n\nexport const useDebuggerOnce = (\n namespace: string,\n message: string,\n value: unknown\n) => {\n React.useEffect(() => {\n if (useDebuggerOnceCache[`${namespace}:${message}`]) {\n return\n }\n \n useDebuggerOnceCache[`${namespace}:${message}`] = true;\n\n debug.log(namespace, message, value);\n }, []);\n};\n"]}
|
|
@@ -8,6 +8,7 @@ const react_1 = __importDefault(require("react"));
|
|
|
8
8
|
const hooks_1 = require("../hooks");
|
|
9
9
|
const utility_1 = require("../utility");
|
|
10
10
|
const useFilterRangeProps = (filter) => {
|
|
11
|
+
const context = (0, hooks_1.useReactifySearchContext)();
|
|
11
12
|
const { track } = (0, hooks_1.useAnalytics)();
|
|
12
13
|
const [filterValues, setFilterValues] = react_1.default.useState([]);
|
|
13
14
|
const handleChange = react_1.default.useCallback((key) => {
|
|
@@ -49,9 +50,9 @@ const useFilterRangeProps = (filter) => {
|
|
|
49
50
|
const handler = (event) => {
|
|
50
51
|
setFilterValues(event.detail.value);
|
|
51
52
|
};
|
|
52
|
-
window.addEventListener(`@usereactify/search:filter:${filter.handle}:update`, handler);
|
|
53
|
-
return () => window.removeEventListener(`@usereactify/search:filter:${filter.handle}:update`, handler);
|
|
54
|
-
}, []);
|
|
53
|
+
window.addEventListener(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, handler);
|
|
54
|
+
return () => window.removeEventListener(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, handler);
|
|
55
|
+
}, [context.options.mode]);
|
|
55
56
|
const filterRangeProps = react_1.default.useMemo(() => {
|
|
56
57
|
var _a, _b;
|
|
57
58
|
const options = (_b = (_a = filter.displayRangeOptions) === null || _a === void 0 ? void 0 : _a.map((option) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilterRangeProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterRangeProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,
|
|
1
|
+
{"version":3,"file":"useFilterRangeProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterRangeProps.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport { ConfigFilterFacet } from \"../types/config\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useFilterRangeProps = (\n filter: ConfigFilterFacet\n): {\n filter: ConfigFilterFacet;\n options: Array<{\n key: string;\n label: string;\n checked: boolean;\n }>;\n values: string[];\n handleChange: (key: string) => void;\n handleClear: () => void;\n} => {\n const context = useReactifySearchContext();\n const { track } = useAnalytics();\n const [filterValues, setFilterValues] = React.useState<string[]>([]);\n\n const handleChange = React.useCallback(\n (key: string) => {\n debug.log(\"useFilterRangeMultiProps\", \"handleChange[key]\", key);\n\n if (filter.displayType === \"multi\") {\n const selected = filterValues.find((item: string) => item === key)\n ? filterValues.filter((value) => value !== key)\n : [...filterValues, key];\n\n setFilterValues(selected);\n }\n if (filter.displayType === \"single\") {\n setFilterValues([key]);\n }\n\n track({\n eventName: \"filterChange\",\n payload: {\n name: filter.name,\n value: key,\n },\n });\n },\n [filter, filterValues]\n );\n\n const handleClear = React.useCallback(() => {\n setFilterValues([]);\n }, []);\n\n React.useEffect(() => {\n try {\n if (filter.displayView === \"range\") {\n const url = new URL(window.location.href);\n const value = JSON.parse(url.searchParams.get(filter.handle) ?? \"[]\");\n setFilterValues(value);\n }\n } catch (error) {\n console.error(error);\n }\n }, []);\n\n React.useEffect(() => {\n const handler = (\n event: CustomEvent<{ handle: string; value: Array<string> }>\n ) => {\n setFilterValues(event.detail.value);\n };\n window.addEventListener(\n `@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`,\n handler as EventListener\n );\n\n return () =>\n window.removeEventListener(\n `@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`,\n handler as EventListener\n );\n }, [context.options.mode]);\n\n const filterRangeProps = React.useMemo(() => {\n const options =\n filter.displayRangeOptions?.map((option) => {\n const [key] = option.split(\":\");\n return {\n key: key,\n label: filter.settingsUppercase ? key.toUpperCase() : key,\n checked: filterValues.includes(key),\n };\n }) ?? [];\n\n return {\n handleChange,\n handleClear,\n filter,\n values: filterValues,\n options,\n };\n }, [filter, filterValues, handleChange]);\n\n return filterRangeProps;\n};\n"]}
|
|
@@ -10,6 +10,7 @@ const utility_1 = require("../utility");
|
|
|
10
10
|
const useReactSliderProps_1 = require("./react-slider/useReactSliderProps");
|
|
11
11
|
const useFilterSliderProps = (filter) => {
|
|
12
12
|
var _a;
|
|
13
|
+
const context = (0, hooks_1.useReactifySearchContext)();
|
|
13
14
|
const { track } = (0, hooks_1.useAnalytics)();
|
|
14
15
|
const urlSearchParam = new URLSearchParams(window.location.search);
|
|
15
16
|
const [filterValue, setFilterValue] = react_1.default.useState(JSON.parse((_a = urlSearchParam.get(filter.handle)) !== null && _a !== void 0 ? _a : "[0,0]"));
|
|
@@ -34,9 +35,9 @@ const useFilterSliderProps = (filter) => {
|
|
|
34
35
|
const handler = (event) => {
|
|
35
36
|
setFilterValue(event.detail.value);
|
|
36
37
|
};
|
|
37
|
-
window.addEventListener(`@usereactify/search:filter:${filter.handle}:update`, handler);
|
|
38
|
-
return () => window.removeEventListener(`@usereactify/search:filter:${filter.handle}:update`, handler);
|
|
39
|
-
}, []);
|
|
38
|
+
window.addEventListener(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, handler);
|
|
39
|
+
return () => window.removeEventListener(`@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`, handler);
|
|
40
|
+
}, [context.options.mode]);
|
|
40
41
|
const reactSliderProps = (0, useReactSliderProps_1.useReactSliderProps)(filter, filterValue, filterRange, handleChange);
|
|
41
42
|
const filterSliderProps = react_1.default.useMemo(() => {
|
|
42
43
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilterSliderProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterSliderProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"useFilterSliderProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterSliderProps.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ConfigFilterFacet } from \"../types/config\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\nimport { useReactSliderProps } from \"./react-slider/useReactSliderProps\";\n\nexport const useFilterSliderProps = (\n filter: ConfigFilterFacet\n): {\n filter: ConfigFilterFacet;\n value: [number, number];\n range: [number, number];\n handleChange: (value: [number | string, number | string]) => void;\n handleRange: (value: [number, number]) => void;\n reactSliderProps: ReturnType<typeof useReactSliderProps>;\n} => {\n const context = useReactifySearchContext();\n const { track } = useAnalytics();\n\n const urlSearchParam = new URLSearchParams(window.location.search);\n const [filterValue, setFilterValue] = React.useState<[number, number]>(\n JSON.parse(urlSearchParam.get(filter.handle) ?? \"[0,0]\")\n );\n const [filterRange, setFilterRange] = React.useState<[number, number]>([\n 0, 0,\n ]);\n\n const handleChange = React.useCallback(\n (value: [number | string, number | string]) => {\n debug.log(\"useFilterSliderProps\", \"handleChange[value]\", value);\n\n setFilterValue([parseInt(`${value[0]}`), parseInt(`${value[1]}`)]);\n\n track({\n eventName: \"filterChange\",\n payload: {\n name: filter.name,\n value: `${value[0]}:${value[1]}`,\n },\n });\n },\n [filter]\n );\n\n const handleRange = React.useCallback(\n (value: [number | string, number | string]) => {\n setFilterRange([parseInt(`${value[0]}`), parseInt(`${value[1]}`)]);\n },\n [filter]\n );\n\n React.useEffect(() => {\n const handler = (\n event: CustomEvent<{ handle: string; value: [number, number] }>\n ) => {\n setFilterValue(event.detail.value);\n };\n window.addEventListener(\n `@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`,\n handler as EventListener\n );\n\n return () =>\n window.removeEventListener(\n `@usereactify/search:${context.options.mode}:filter:${filter.handle}:update`,\n handler as EventListener\n );\n }, [context.options.mode]);\n\n const reactSliderProps = useReactSliderProps(\n filter,\n filterValue,\n filterRange,\n handleChange\n );\n\n const filterSliderProps = React.useMemo(() => {\n return {\n handleChange,\n handleRange,\n filter,\n value: filterValue,\n range: filterRange,\n reactSliderProps,\n };\n }, [\n handleChange,\n handleRange,\n filter,\n filterValue,\n filterRange,\n reactSliderProps,\n ]);\n\n return filterSliderProps;\n};\n"]}
|
|
@@ -65,9 +65,6 @@ const useFilters = () => {
|
|
|
65
65
|
utility_1.debug.log("useFilters", "setFilterValue[handle,value]", handle, value);
|
|
66
66
|
reactivesearchContext.store.dispatch((0, actions_1.setValue)(handle, value));
|
|
67
67
|
}, [reactivesearchContext]);
|
|
68
|
-
utility_1.debug.hook("useFilters", "filterStack", filterStack);
|
|
69
|
-
utility_1.debug.hook("useFilters", "filters", filters);
|
|
70
|
-
utility_1.debug.hook("useFilters", "selected", selected);
|
|
71
68
|
return {
|
|
72
69
|
filterStack: filterStack,
|
|
73
70
|
filters: filters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilters.js","sourceRoot":"","sources":["../../../src/hooks/useFilters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useFilters.js","sourceRoot":"","sources":["../../../src/hooks/useFilters.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n// @ts-expect-error missing types\nimport { ReactReduxContext } from \"@usereactify/search-internals/lib/utils\";\n// @ts-expect-error missing types\nimport { setValue } from \"@appbaseio/reactivecore/lib/actions\";\n\nimport { ConfigFilter, ConfigFilterFacet } from \"../types\";\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useFilters = (): {\n /** The currently selected filter stack, based on mode, curation and more */\n filterStack?: ConfigFilter;\n /** All of the available filters within the filter stack */\n filters?: Array<ConfigFilterFacet>;\n /** All of the selected filters with their value */\n selected: Array<{\n handle: string;\n value: string | Array<string> | Array<{\n label: string;\n start: number;\n end: number;\n }>;\n }>;\n /** Clear filter by handle */\n setFilterValue: (\n handle: string,\n value: string | Array<string> | [number, number]\n ) => void;\n} => {\n const { options, config } = useReactifySearchContext();\n const reactivesearchContext = React.useContext<any>(ReactReduxContext);\n\n const filterStack = React.useMemo(() => {\n // select filters by type\n const matchingFilterss = config.filters.filter(\n (filter) => filter.type === options.mode\n );\n\n // select filter stack by handle if provided\n if (options.filtersHandle) {\n const matchingFilters = matchingFilterss.find(\n (filterStack) => options.filtersHandle === filterStack.handle\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n }\n\n // select filter stack by collection if provided\n if (options.mode === \"collection\" && options.collectionHandle) {\n const matchingFilters = matchingFilterss.find((filterStack) =>\n filterStack.collections?.includes(options.collectionHandle)\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n }\n\n // select filter with \"default\" handle\n let matchingFilters = matchingFilterss.find(\n (filterStack) => filterStack.handle === \"default\"\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n\n // select any filter with \"default\" handle\n matchingFilters = config.filters.find(\n (filterStack) => filterStack.handle === \"default\"\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n\n // select any available filter as a last resort\n matchingFilters = config.filters[0];\n\n return matchingFilters;\n }, [\n config,\n options.mode === \"collection\" ? options.collectionHandle : undefined,\n ]);\n\n const filters = React.useMemo(() => {\n const sortedFilters = filterStack?.options.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n return sortedFilters;\n }, [filterStack]);\n\n const selected = React.useMemo(() => {\n return Object.keys(reactivesearchContext.storeState.selectedValues)\n .filter((item) => filters.find((filter) => filter.handle === item))\n .map((item) => ({\n handle: item,\n value: reactivesearchContext.storeState.selectedValues[item].value,\n }));\n }, [filters, reactivesearchContext?.storeState?.selectedValues]);\n\n const setFilterValue = React.useCallback(\n (\n handle: string,\n value: string | Array<string> | [number, number]\n ): void => {\n debug.log(\"useFilters\", \"setFilterValue[handle,value]\", handle, value);\n reactivesearchContext.store.dispatch(setValue(handle, value));\n },\n [reactivesearchContext]\n );\n\n return {\n filterStack: filterStack,\n filters: filters,\n selected: selected,\n setFilterValue: setFilterValue,\n };\n};\n"]}
|
|
@@ -54,9 +54,7 @@ const useFlags = () => {
|
|
|
54
54
|
setFlag(flag, getFlag(flag));
|
|
55
55
|
}
|
|
56
56
|
}, []);
|
|
57
|
-
|
|
58
|
-
utility_1.debug.log("useFlags", "flags", flags);
|
|
59
|
-
}, [flags]);
|
|
57
|
+
utility_1.debug.hookOnce("useFlags", "flags", flags);
|
|
60
58
|
return {
|
|
61
59
|
flags: flags,
|
|
62
60
|
setFlag: setFlag,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFlags.js","sourceRoot":"","sources":["../../../src/hooks/useFlags.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yEAAsE;AACtE,wCAAmC;AAEnC,IAAY,KAeX;AAfD,WAAY,KAAK;IACf,yDAAgD,CAAA;IAChD,qEAA4D,CAAA;IAC5D,mEAA0D,CAAA;IAC1D,qFAA4E,CAAA;IAC5E,qEAA4D,CAAA;IAC5D,iFAAwE,CAAA;IACxE,mFAA0E,CAAA;IAC1E,qGAA4F,CAAA;IAC5F,iGAAwF,CAAA;IACxF,mHAA0G,CAAA;IAC1G,+FAAsF,CAAA;IACtF,iHAAwG,CAAA;IACxG,2FAAkF,CAAA;IAClF,6GAAoG,CAAA;AACtG,CAAC,EAfW,KAAK,qBAAL,KAAK,QAehB;AAEM,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mDAAwB,GAAE,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,IAAW,EAAW,EAAE;;QACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GAAG,MAAA,OAAO,CAAC,KAAK,0CAAG,IAAI,CAAC,CAAC;QAC9C,MAAM,eAAe,GACnB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;YAC3C,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,IAAW,EAAE,KAAc,EAAE,EAAE;QAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,KAAK,GAAG,eAAK,CAAC,OAAO,CAAyB,GAAG,EAAE;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IACrB,EACF,EAA4B,CAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"useFlags.js","sourceRoot":"","sources":["../../../src/hooks/useFlags.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yEAAsE;AACtE,wCAAmC;AAEnC,IAAY,KAeX;AAfD,WAAY,KAAK;IACf,yDAAgD,CAAA;IAChD,qEAA4D,CAAA;IAC5D,mEAA0D,CAAA;IAC1D,qFAA4E,CAAA;IAC5E,qEAA4D,CAAA;IAC5D,iFAAwE,CAAA;IACxE,mFAA0E,CAAA;IAC1E,qGAA4F,CAAA;IAC5F,iGAAwF,CAAA;IACxF,mHAA0G,CAAA;IAC1G,+FAAsF,CAAA;IACtF,iHAAwG,CAAA;IACxG,2FAAkF,CAAA;IAClF,6GAAoG,CAAA;AACtG,CAAC,EAfW,KAAK,qBAAL,KAAK,QAehB;AAEM,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mDAAwB,GAAE,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,IAAW,EAAW,EAAE;;QACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GAAG,MAAA,OAAO,CAAC,KAAK,0CAAG,IAAI,CAAC,CAAC;QAC9C,MAAM,eAAe,GACnB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;YAC3C,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,IAAW,EAAE,KAAc,EAAE,EAAE;QAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,KAAK,GAAG,eAAK,CAAC,OAAO,CAAyB,GAAG,EAAE;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IACrB,EACF,EAA4B,CAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3C,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,QAAQ,YA0DnB","sourcesContent":["import React from \"react\";\nimport { useReactifySearchContext } from \"./useReactifySearchContext\";\nimport { debug } from \"../utility\";\n\nexport enum Flags {\n SENSOR_SORT = \"reactify-search:flag_sensor_sort\",\n SENSOR_COLLECTION = \"reactify-search:flag_sensor_collection\",\n SENSOR_PUBLISHED = \"reactify-search:flag_sensor_published\",\n SENSOR_INVENTORYAVAILABLE = \"reactify-search:flag_sensor_inventoryavailable\",\n SENSOR_SEARCHTERM = \"reactify-search:flag_sensor_searchterm\",\n SENSOR_SEARCHTERM_VALUE = \"reactify-search:flag_sensor_searchterm_value\",\n SENSOR_SEARCHTERM_PHRASE = \"reactify-search:flag_sensor_searchterm_phrase\",\n SENSOR_SEARCHTERM_PHRASE_SYNONYMS = \"reactify-search:flag_sensor_searchterm_phrase_synonyms\",\n SENSOR_SEARCHTERM_PHRASE_PREFIX = \"reactify-search:flag_sensor_searchterm_phrase_prefix\",\n SENSOR_SEARCHTERM_PHRASE_PREFIX_SYNONYMS = \"reactify-search:flag_sensor_searchterm_phrase_prefix_synonyms\",\n SENSOR_SEARCHTERM_CROSS_FIELDS = \"reactify-search:flag_sensor_searchterm_cross_fields\",\n SENSOR_SEARCHTERM_CROSS_FIELDS_SYNONYMS = \"reactify-search:flag_sensor_searchterm_cross_fields_synonyms\",\n SENSOR_SEARCHTERM_SPAN_FIRST = \"reactify-search:flag_sensor_searchterm_span_first\",\n SENSOR_SEARCHTERM_SPAN_FIRST_SYNONYMS = \"reactify-search:flag_sensor_searchterm_span_first_synonyms\",\n}\n\nexport const useFlags = () => {\n const { options } = useReactifySearchContext();\n const [delta, setDelta] = React.useState<number>(Date.now());\n\n const getFlag = React.useCallback(\n (flag: Flags): boolean => {\n if (typeof window === \"undefined\") {\n return true;\n }\n\n const flagFromOptions = options.flags?.[flag];\n const flagFromSession =\n window.sessionStorage.getItem(flag) === \"false\" ? false : true;\n\n if (typeof flagFromOptions === \"undefined\") {\n return flagFromSession;\n }\n\n return flagFromOptions;\n },\n [delta]\n );\n\n const setFlag = React.useCallback(\n (flag: Flags, value: boolean) => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.sessionStorage.setItem(flag, `${value}`);\n setDelta(Date.now());\n },\n [delta]\n );\n\n const flags = React.useMemo<Record<Flags, boolean>>(() => {\n return Object.values(Flags).reduce<Record<Flags, boolean>>(\n (acc, flag) => ({\n ...acc,\n [flag]: getFlag(flag),\n }),\n {} as Record<Flags, boolean>\n );\n }, [delta]);\n\n React.useEffect(() => {\n for (const flag of Object.values(Flags)) {\n setFlag(flag, getFlag(flag));\n }\n }, []);\n\n debug.hookOnce(\"useFlags\", \"flags\", flags);\n\n return {\n flags: flags,\n setFlag: setFlag,\n getFlag: getFlag,\n };\n};\n"]}
|
|
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.useResults = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const utility_1 = require("../utility");
|
|
9
|
+
const useReactifySearchContext_1 = require("./useReactifySearchContext");
|
|
9
10
|
/** This hook must never be used to render results */
|
|
10
11
|
const useResults = () => {
|
|
12
|
+
const context = (0, useReactifySearchContext_1.useReactifySearchContext)();
|
|
11
13
|
const [results, setResults] = react_1.default.useState([]);
|
|
12
14
|
const [resultStats, setResultStats] = react_1.default.useState();
|
|
13
15
|
const loading = react_1.default.useMemo(() => {
|
|
@@ -17,24 +19,24 @@ const useResults = () => {
|
|
|
17
19
|
const handler = (event) => {
|
|
18
20
|
setResults(event.detail);
|
|
19
21
|
};
|
|
20
|
-
window.addEventListener(`@usereactify/search:results:update`, handler);
|
|
21
|
-
return () => window.removeEventListener(`@usereactify/search:results:update`, handler);
|
|
22
|
+
window.addEventListener(`@usereactify/search:${context.options.mode}:results:update`, handler);
|
|
23
|
+
return () => window.removeEventListener(`@usereactify/search:${context.options.mode}:results:update`, handler);
|
|
22
24
|
}, []);
|
|
23
25
|
react_1.default.useEffect(() => {
|
|
24
26
|
const handler = (event) => {
|
|
25
27
|
setResultStats(event.detail);
|
|
26
28
|
};
|
|
27
|
-
window.addEventListener(`@usereactify/search:resultStats:update`, handler);
|
|
28
|
-
return () => window.removeEventListener(`@usereactify/search:resultStats:update`, handler);
|
|
29
|
-
}, []);
|
|
29
|
+
window.addEventListener(`@usereactify/search:${context.options.mode}:resultStats:update`, handler);
|
|
30
|
+
return () => window.removeEventListener(`@usereactify/search:${context.options.mode}:resultStats:update`, handler);
|
|
31
|
+
}, [context.options.mode]);
|
|
30
32
|
const handleSetResults = (value) => {
|
|
31
|
-
const event = new CustomEvent(`@usereactify/search:results:update`, {
|
|
33
|
+
const event = new CustomEvent(`@usereactify/search:${context.options.mode}:results:update`, {
|
|
32
34
|
detail: value
|
|
33
35
|
});
|
|
34
36
|
window.dispatchEvent(event);
|
|
35
37
|
};
|
|
36
38
|
const handleSetResultStats = (value) => {
|
|
37
|
-
const event = new CustomEvent(`@usereactify/search:resultStats:update`, {
|
|
39
|
+
const event = new CustomEvent(`@usereactify/search:${context.options.mode}:resultStats:update`, {
|
|
38
40
|
detail: value
|
|
39
41
|
});
|
|
40
42
|
window.dispatchEvent(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResults.js","sourceRoot":"","sources":["../../../src/hooks/useResults.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,wCAAmC;
|
|
1
|
+
{"version":3,"file":"useResults.js","sourceRoot":"","sources":["../../../src/hooks/useResults.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,wCAAmC;AACnC,yEAAsE;AAEtE,qDAAqD;AAC9C,MAAM,UAAU,GAAG,GAWxB,EAAE;IACF,MAAM,OAAO,GAAG,IAAA,mDAAwB,GAAE,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAK,CAAC,QAAQ,CAE1C,EAAE,CAAC,CAAC;IACN,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GACjC,eAAK,CAAC,QAAQ,EAA4C,CAAC;IAE7D,MAAM,OAAO,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,OAAO,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAA,KAAK,WAAW,CAAC;IAC7D,CAAC,EAAE,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAC,CAAC,CAAC;IAEnC,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,CACd,KAAkC,EAClC,EAAE;YACF,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CACrB,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAC5D,OAAwB,CACzB,CAAC;QAEF,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,mBAAmB,CACxB,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAC5D,OAAwB,CACzB,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,CACd,KAAsC,EACtC,EAAE;YACF,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CACrB,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,qBAAqB,EAChE,OAAwB,CACzB,CAAC;QAEF,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,mBAAmB,CACxB,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,qBAAqB,EAChE,OAAwB,CACzB,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3B,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAiB,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAAE;YAC1G,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAA;IAED,MAAM,oBAAoB,GAAG,CAAC,KAAyB,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAqB,uBAAuB,OAAO,CAAC,OAAO,CAAC,IAAI,qBAAqB,EAAE;YAClH,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAA;IAED,eAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,eAAK,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAErD,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,oBAAoB;KACrC,CAAC;AACJ,CAAC,CAAC;AAnFW,QAAA,UAAU,cAmFrB","sourcesContent":["import React from \"react\";\n\nimport { ReactivesearchResultProps } from \"../types\";\nimport { debug } from \"../utility\";\nimport { useReactifySearchContext } from \"./useReactifySearchContext\";\n\n/** This hook must never be used to render results */\nexport const useResults = (): {\n /** Equals true until first load has completed */\n loading: boolean;\n /** All of the current results */\n results: ReactivesearchResultProps[\"data\"];\n /** Function for setting the current results */\n setResults: (value: ReactivesearchResultProps[\"data\"]) => void;\n /** All of the current result stats */\n resultStats?: ReactivesearchResultProps[\"resultStats\"];\n /** Function for setting the current result stats */\n setResultStats: (value: ReactivesearchResultProps[\"resultStats\"]) => void;\n} => {\n const context = useReactifySearchContext();\n const [results, setResults] = React.useState<\n ReactivesearchResultProps[\"data\"]\n >([]);\n const [resultStats, setResultStats] =\n React.useState<ReactivesearchResultProps[\"resultStats\"]>();\n\n const loading = React.useMemo(() => {\n return typeof resultStats?.numberOfResults === \"undefined\";\n }, [resultStats?.numberOfResults]);\n\n React.useEffect(() => {\n const handler = (\n event: CustomEvent<typeof results>\n ) => {\n setResults(event.detail);\n };\n window.addEventListener(\n `@usereactify/search:${context.options.mode}:results:update`,\n handler as EventListener\n );\n\n return () =>\n window.removeEventListener(\n `@usereactify/search:${context.options.mode}:results:update`,\n handler as EventListener\n );\n }, []);\n\n React.useEffect(() => {\n const handler = (\n event: CustomEvent<typeof resultStats>\n ) => {\n setResultStats(event.detail);\n };\n window.addEventListener(\n `@usereactify/search:${context.options.mode}:resultStats:update`,\n handler as EventListener\n );\n\n return () =>\n window.removeEventListener(\n `@usereactify/search:${context.options.mode}:resultStats:update`,\n handler as EventListener\n );\n }, [context.options.mode]);\n\n const handleSetResults = (value: typeof results) => {\n const event = new CustomEvent<typeof results>(`@usereactify/search:${context.options.mode}:results:update`, {\n detail: value\n });\n window.dispatchEvent(event);\n }\n\n const handleSetResultStats = (value: typeof resultStats) => {\n const event = new CustomEvent<typeof resultStats>(`@usereactify/search:${context.options.mode}:resultStats:update`, {\n detail: value\n });\n window.dispatchEvent(event);\n }\n\n debug.hook(\"useResults\", \"results\", results);\n debug.hook(\"useResults\", \"resultStats\", resultStats);\n\n return {\n loading: loading,\n results: results,\n setResults: handleSetResults,\n resultStats: resultStats,\n setResultStats: handleSetResultStats,\n };\n};\n"]}
|
|
@@ -47,8 +47,6 @@ const useSortBy = () => {
|
|
|
47
47
|
},
|
|
48
48
|
});
|
|
49
49
|
}, [typeof window === "undefined" ? "" : window.location.href]);
|
|
50
|
-
utility_1.debug.hook("useSortBy", "sortOption", sortOption);
|
|
51
|
-
utility_1.debug.hook("useSortBy", "sortOptions", sortOptions);
|
|
52
50
|
return {
|
|
53
51
|
sortOptions,
|
|
54
52
|
sortOption,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSortBy.js","sourceRoot":"","sources":["../../../src/hooks/useSortBy.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;AACnC,sDAAsE;AAE/D,MAAM,SAAS,GAAG,GAUvB,EAAE;IACF,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,IAAA,2BAAc,EAAC;YACpB,QAAQ,EAAE,qBAAqB,CAAC,OAAO;YACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;SACrC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,IAAA,0BAAa,EAAC;YACnB,QAAQ,EAAE,qBAAqB,CAAC,OAAO;YACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU;SACpD,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3G,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,gBAAwB,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;QACvD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,eAAK,CAAC,GAAG,CACP,WAAW,EACX,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QAEF,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,CAAC;YACJ,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5D,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"useSortBy.js","sourceRoot":"","sources":["../../../src/hooks/useSortBy.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;AACnC,sDAAsE;AAE/D,MAAM,SAAS,GAAG,GAUvB,EAAE;IACF,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,IAAA,2BAAc,EAAC;YACpB,QAAQ,EAAE,qBAAqB,CAAC,OAAO;YACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;SACrC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,IAAA,0BAAa,EAAC;YACnB,QAAQ,EAAE,qBAAqB,CAAC,OAAO;YACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU;SACpD,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3G,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,gBAAwB,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;QACvD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,eAAK,CAAC,GAAG,CACP,WAAW,EACX,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QAEF,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,CAAC;YACJ,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5D,CAAC;IAEF,OAAO;QACL,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AApEW,QAAA,SAAS,aAoEpB","sourcesContent":["import React from \"react\";\n\nimport { ConfigSort } from \"../types\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\nimport { getSortOption, getSortOptions } from \"../utility/sortOption\";\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 reactifySearchContext = useReactifySearchContext();\n const { track } = useAnalytics();\n\n const sortOptions = React.useMemo(() => {\n return getSortOptions({\n provider: reactifySearchContext.options,\n config: reactifySearchContext.config,\n });\n }, [reactifySearchContext.options, reactifySearchContext.config]);\n\n const sortOption = React.useMemo(() => {\n return getSortOption({\n provider: reactifySearchContext.options,\n config: reactifySearchContext.config,\n sortOption: reactifySearchContext.sortby.sortOption,\n })\n }, [reactifySearchContext.options, reactifySearchContext.config, reactifySearchContext.sortby.sortOption]);\n\n const setSortOption = React.useCallback(\n (sortOptionHandle: string, ignoreHistoryState = false) => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n debug.log(\n \"useSortBy\",\n \"setSortOption[sortOptionHandle]\",\n sortOptionHandle\n );\n\n reactifySearchContext.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 [typeof window === \"undefined\" ? \"\" : window.location.href]\n );\n\n return {\n sortOptions,\n sortOption,\n setSortOption,\n };\n};\n"]}
|
|
@@ -4,4 +4,5 @@ export declare const debug: {
|
|
|
4
4
|
namespace: string;
|
|
5
5
|
log: (namespace: string, formatter?: string, ...args: Array<any>) => void;
|
|
6
6
|
hook: (namespace: string, message: string, value: unknown) => void;
|
|
7
|
+
hookOnce: (namespace: string, message: string, value: unknown) => void;
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utility/debug.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utility/debug.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,oCAAwD;AAE3C,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,CAAC;YAC1B,iBAAS,CAAC,SAAS,CAAC,GAAG,IAAA,eAAK,EAAC,GAAG,aAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,iBAAS,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,EAAE,mBAAW;IACjB,QAAQ,EAAE,uBAAe;CAC1B,CAAC","sourcesContent":["import Debug from \"debug\";\n\nimport { useDebugger, useDebuggerOnce } 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 hook: useDebugger,\n hookOnce: useDebuggerOnce\n};\n"]}
|
|
@@ -327,7 +327,7 @@ const getPropsResults = (options) => {
|
|
|
327
327
|
})();
|
|
328
328
|
return {
|
|
329
329
|
size: (_c = (_a = options.pageSize) !== null && _a !== void 0 ? _a : (_b = options.filterGroup) === null || _b === void 0 ? void 0 : _b.pageSize) !== null && _c !== void 0 ? _c : 20,
|
|
330
|
-
URLParams: true,
|
|
330
|
+
URLParams: options.provider.mode === "instant-search" ? false : true,
|
|
331
331
|
showLoader: false,
|
|
332
332
|
dataField: "title",
|
|
333
333
|
showResultStats: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/utility/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { MultiList, MultiRange, ReactiveComponent, ReactiveList, SingleList, SingleRange } from \"@usereactify/search-internals\";\nimport { ReactifySearchProviderProps, SENSOR_IDS } from \"../components\";\nimport { Config, ConfigFilter, ConfigFilterFacet } from \"../types\";\nimport { getCuration } from \"./curation\";\nimport { generateSortQuery, generateSortSort, getSortOption } from \"./sortOption\";\nimport { getFilterStack } from \"./filters\";\nimport { replaceDocCountWithParent } from \"../hooks\";\n\nimport pkg from \"../../package.json\";\n\nexport type GeneratePropsFilterGroupOptions = {\n provider: ReactifySearchProviderProps;\n config: Config;\n filterGroup?: ConfigFilter;\n query?: Record<string, string>;\n};\n\nexport type GeneratePropsSensorOptions = {\n provider: ReactifySearchProviderProps;\n config: Config;\n query?: Record<string, string>;\n};\n\nexport type GeneratePropsBase = {\n provider: ReactifySearchProviderProps;\n config: Config;\n query?: Record<string, string>;\n};\n\nexport const getPropsFilterGroup = (options: GeneratePropsFilterGroupOptions) => {\n return [\n ...options.filterGroup?.options.map((filterGroupOption) => getPropsFilterGroupOption(options, filterGroupOption)) ?? [],\n ...getPropsSensors(options),\n getPropsResults(options),\n ];\n};\n\nexport const getPropsFilterGroupOption = (options: GeneratePropsFilterGroupOptions, filterGroupOption: ConfigFilterFacet) => {\n let filterProps: Record<string, unknown> = {};\n\n if (filterGroupOption.displayType === \"slider\") {\n filterProps = getPropsFilterSlider(filterGroupOption);\n }\n\n if (filterGroupOption.displayType === \"single\" || filterGroupOption.displayType === \"multi\") {\n if (filterGroupOption.displayView === \"range\") {\n filterProps = getPropsFilterRange(filterGroupOption);\n } else {\n filterProps = getPropsFilterList(filterGroupOption);\n }\n }\n\n const sharedProps = getPropsShared(options, filterGroupOption);\n\n return {\n ...sharedProps,\n ...filterProps,\n };\n};\n\nexport const getPropsSensors = (options: GeneratePropsSensorOptions) => {\n return [\n ...getPropsSensorCustom(options),\n getPropsSensorCollection(options),\n getPropsSensorPublished(options),\n getPropsSensorInventoryAvailable(options),\n getPropsSensorSort(options),\n ].filter(Boolean);\n}\n\nexport const getPropsSensorCustom = (options: GeneratePropsSensorOptions) => {\n const sensors = options.provider.mode === \"collection\" ? options.config.sensors.collection : options.config.sensors.search;\n\n return sensors.map((sensor, index) => ({\n componentId: `SensorCustom_${index}`,\n customQuery: () => sensor,\n source: ReactiveComponent,\n }));\n}\n\nexport const getPropsSensorCollection = (options: GeneratePropsSensorOptions) => {\n if (options.provider.mode !== \"collection\") {\n return null;\n }\n \n return {\n componentId: \"SensorCollection\",\n customQuery: () => {\n if (options.provider.mode !== \"collection\") {\n return null;\n }\n\n const conditions: Array<unknown> = [];\n\n if (options.provider.market) {\n conditions.push({\n nested: {\n path: \"curations\",\n query: {\n bool: {\n should: [\n {\n nested: {\n path: \"collections\",\n query: {\n term: {\n \"collections.handle.keyword\": options.provider.collectionHandle,\n },\n },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.collectionHandle.keyword\":\n options.provider.collectionHandle,\n },\n },\n },\n },\n ],\n must: [{\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.markets.keyword\": options.provider.market,\n },\n },\n },\n }]\n },\n },\n },\n });\n }\n \n return {\n query: {\n bool: {\n should: [\n {\n nested: {\n path: \"collections\",\n query: {\n term: {\n \"collections.handle.keyword\": options.provider.collectionHandle,\n },\n },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.collectionHandle.keyword\":\n options.provider.collectionHandle,\n },\n },\n },\n },\n ],\n },\n },\n } \n },\n source: ReactiveComponent,\n };\n}\n\nexport const getPropsSensorPublished = (options: GeneratePropsSensorOptions) => {\n return {\n componentId: \"SensorPublished\",\n customQuery: () => {\n if (options.provider.market) {\n return {\n query: {\n bool: {\n must:[{\n match: {\n markets: options.provider.market,\n },\n },{\n match: {\n published: true,\n },\n }]\n },\n },\n };\n }\n\n return {\n query: {\n match: {\n published: true,\n },\n },\n }\n },\n source: ReactiveComponent,\n }\n}\n\nexport const getPropsSensorInventoryAvailable = (options: GeneratePropsSensorOptions) => {\n const filterStack = getFilterStack(options);\n\n if (!filterStack || \"show_all\" === filterStack.inventoryVisibility) {\n return null;\n }\n\n return {\n componentId: \"SensorInventoryAvailable\",\n customQuery: () => ({\n query: {\n bool: {\n should: [\n {\n bool: {\n must: [\n {\n term: {\n type: {\n value: \"product\",\n },\n },\n },\n {\n nested: {\n path: \"variants\",\n query: {\n match: { \"variants.available\": true },\n },\n },\n },\n ],\n },\n },\n ...(options.provider.mode === \"instant-search\"\n ? []\n : [\n {\n term: {\n type: {\n value: \"callout\",\n },\n },\n },\n ]),\n ],\n minimum_should_match: \"1\",\n },\n },\n }),\n source: ReactiveComponent,\n }\n}\n\nexport const getPropsSensorSort = (options: GeneratePropsSensorOptions & { searchTerm?: string; sortOption?: string; }) => {\n const curation = getCuration(options);\n const sortOption = getSortOption(options);\n\n const sort = generateSortSort({\n provider: options.provider,\n config: options.config,\n curation: curation,\n sortOption: sortOption,\n });\n const query = generateSortQuery({\n sortOption: sortOption,\n curation: curation,\n });\n\n return {\n componentId: \"SensorSort\",\n customQuery: () => ({\n sort,\n query,\n }),\n source: ReactiveComponent,\n }\n}\n\nexport const getPropsBase = (options: GeneratePropsBase) => {\n const props = {\n app: options.config.index,\n url: options.config.endpoint,\n credentials: options.provider.credentials,\n theme: options.provider.theme,\n initialState: options.provider.preload?.state,\n transformSort: () => {\n const sortSensor = getPropsSensorSort(options);\n const customQuery = sortSensor.customQuery();\n\n return customQuery.sort;\n },\n transformRequest: (request: any) => {\n if ((request.url as string).endsWith(\"?\")) {\n request.url = request.url.substring(0, request.url.length - 1);\n }\n return request;\n },\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 replaceDocCountWithParent(\n response?.aggregations?.reactivesearch_nested\n ?.reactify_nested_outer\n );\n }\n\n return response;\n },\n headers: {\n \"x-reactify-shop\": options.provider.shopifyPermanentDomain,\n \"x-reactify-mode\": options.provider.mode,\n \"x-reactify-client-id\": options.provider.clientId,\n \"x-reactify-client-version\": pkg.version,\n },\n };\n\n return props;\n}\n\nexport const getPropsResults = (options: GeneratePropsFilterGroupOptions & { scrollTarget?: string | Element | HTMLDocument; pageSize?: number; }) => {\n const includeFieldsProp = (() => {\n return [\n ...(options.provider.includeFields ?? []),\n \"id\",\n \"title\",\n \"type\",\n \"handle\",\n \"image\",\n \"variants.id\",\n \"variants.presentment_prices\",\n \"callout\",\n ];\n })();\n const excludeFieldsProp = (() => {\n return [...(options.provider.excludeFields ?? [])];\n })();\n\n return {\n size: options.pageSize ?? options.filterGroup?.pageSize ?? 20,\n URLParams: true,\n showLoader: false,\n dataField: \"title\",\n showResultStats: false,\n react: getPropsReact(options),\n includeFields: includeFieldsProp,\n excludeFields: excludeFieldsProp,\n scrollTarget: options.scrollTarget,\n componentId: \"page\", // this sets ?page= in the URL\n scrollOnChange: false, // @todo make this better, it's really janky when enabled\n pagination: options.filterGroup?.paginationType !== \"infinite_scroll\",\n infiniteScroll: options.filterGroup?.paginationType === \"infinite_scroll\",\n renderNoResults: () => null, // always use only render, otherwise both are shown\n source: ReactiveList,\n // defaultQuery: () => ({\n // sort: [\"_score\"],\n // query: {\n // match_all: {}\n // }\n // })\n }\n}\n\nexport const getPropsReact = (options: GeneratePropsFilterGroupOptions, filterGroupOption?: ConfigFilterFacet) => {\n const sensorIds = SENSOR_IDS(options.provider.mode, options.config);\n const reactProp = (() => {\n if (filterGroupOption?.settingsShowEmptyValues) {\n return {\n and: sensorIds,\n };\n }\n\n return {\n and: [\n ...sensorIds,\n ...(options.provider.additionalComponentIds ?? []),\n ...(options.filterGroup?.options.map((filter) => filter.handle) ?? []),\n ].filter((handle) => handle !== filterGroupOption?.handle),\n };\n })();\n\n return reactProp;\n};\n\nexport const getPropsShared = (options: GeneratePropsFilterGroupOptions, filterGroupOption: ConfigFilterFacet) => {\n const reactProp = getPropsReact(options, filterGroupOption);\n const nestedFieldProp = (() => {\n const nestedFields = [\"variants\"];\n const topField = filterGroupOption.field.split(\".\")[0];\n if (nestedFields.includes(topField)) {\n return topField;\n }\n return undefined;\n })();\n const customQueryProp = (() => {\n if (\n !filterGroupOption.settingsHideUnavailable ||\n !filterGroupOption.field.startsWith(\"variants.\")\n )\n return undefined;\n\n return (value?: string | string[]) => {\n if (!value) return {};\n\n // reactivesearch sometimes returns string, sometimes string[]\n const valueArray = \"string\" === typeof value ? [value] : value;\n\n if (0 === valueArray.length) return {};\n\n return {\n query: {\n nested: {\n path: \"variants\",\n query: {\n bool: {\n must: [\n {\n match: {\n \"variants.available\": \"true\",\n },\n },\n {\n terms: {\n [filterGroupOption.field]: valueArray,\n },\n },\n ],\n },\n },\n },\n },\n };\n };\n })();\n const defaultQueryProp = (() => {\n if (!filterGroupOption.field.startsWith(\"variants.\")) {\n return undefined;\n }\n\n // override the aggregation query to filter the results by the variants.available attribute\n return () => {\n return {\n aggs: {\n reactivesearch_nested: {\n nested: { path: \"variants\" },\n aggs: {\n reactify_nested_outer: {\n filter: {\n bool: {\n minimum_should_match: 1,\n should: [\n {\n match: {\n \"variants.available\": \"true\",\n },\n },\n {\n match: {\n \"variants.available\": filterGroupOption.settingsHideUnavailable\n ? \"true\"\n : \"false\",\n },\n },\n ],\n },\n },\n aggs: {\n [filterGroupOption.field]: {\n terms: {\n field: filterGroupOption.field,\n size: 100,\n order: { _count: \"desc\" },\n },\n aggs: {\n parent_docs: { reverse_nested: {} },\n },\n },\n },\n },\n },\n },\n },\n };\n };\n })();\n const sourceProp = (() => {\n if (filterGroupOption.displayType === \"slider\") {\n return ReactiveComponent;\n }\n if (filterGroupOption.displayType === \"single\") {\n if (filterGroupOption.displayView === \"range\") {\n return SingleRange;\n }\n return SingleList;\n }\n if (filterGroupOption.displayType === \"multi\") {\n if (filterGroupOption.displayView === \"range\") {\n return MultiRange;\n }\n return MultiList;\n }\n \n return;\n })();\n\n return {\n URLParams: true,\n componentId: filterGroupOption.handle,\n dataField: filterGroupOption.field,\n filterLabel: filterGroupOption.name,\n nestedField: nestedFieldProp,\n customQuery: customQueryProp,\n defaultQuery: defaultQueryProp,\n source: sourceProp,\n react: reactProp,\n }\n};\n\nexport const getPropsFilterList = (filterGroupOption: ConfigFilterFacet) => {\n return {\n size: parseInt(filterGroupOption.displaySize) || undefined,\n queryFormat: filterGroupOption.settingsFilterLogic ?? \"or\",\n showFilter: filterGroupOption.settingsShowFilter ?? true,\n showLoadMore: filterGroupOption.settingsShowMore ?? false,\n showSearch: filterGroupOption.settingsShowSearch ?? false,\n showRadio: false,\n showCheckbox: false,\n };\n};\n\nexport const getPropsFilterRange = (filterGroupOption: ConfigFilterFacet) => {\n const data = filterGroupOption.displayRangeOptions?.map((option) => {\n const [label, start, end] = option.split(\":\");\n return {\n label: label,\n start: start ? parseInt(start) : 0,\n end: end ? parseInt(end) : Number.MAX_SAFE_INTEGER,\n };\n }) ?? [];\n\n return {\n queryFormat: filterGroupOption.settingsFilterLogic ?? \"or\",\n showFilter: filterGroupOption.settingsShowFilter ?? true,\n showRadio: false,\n showCheckbox: false,\n data: data,\n };\n};\n\nexport const getPropsFilterSlider = (filterGroupOption: ConfigFilterFacet) => {\n return {}\n};"]}
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/utility/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { MultiList, MultiRange, ReactiveComponent, ReactiveList, SingleList, SingleRange } from \"@usereactify/search-internals\";\nimport { ReactifySearchProviderProps, SENSOR_IDS } from \"../components\";\nimport { Config, ConfigFilter, ConfigFilterFacet } from \"../types\";\nimport { getCuration } from \"./curation\";\nimport { generateSortQuery, generateSortSort, getSortOption } from \"./sortOption\";\nimport { getFilterStack } from \"./filters\";\nimport { replaceDocCountWithParent } from \"../hooks\";\n\nimport pkg from \"../../package.json\";\n\nexport type GeneratePropsFilterGroupOptions = {\n provider: ReactifySearchProviderProps;\n config: Config;\n filterGroup?: ConfigFilter;\n query?: Record<string, string>;\n};\n\nexport type GeneratePropsSensorOptions = {\n provider: ReactifySearchProviderProps;\n config: Config;\n query?: Record<string, string>;\n};\n\nexport type GeneratePropsBase = {\n provider: ReactifySearchProviderProps;\n config: Config;\n query?: Record<string, string>;\n};\n\nexport const getPropsFilterGroup = (options: GeneratePropsFilterGroupOptions) => {\n return [\n ...options.filterGroup?.options.map((filterGroupOption) => getPropsFilterGroupOption(options, filterGroupOption)) ?? [],\n ...getPropsSensors(options),\n getPropsResults(options),\n ];\n};\n\nexport const getPropsFilterGroupOption = (options: GeneratePropsFilterGroupOptions, filterGroupOption: ConfigFilterFacet) => {\n let filterProps: Record<string, unknown> = {};\n\n if (filterGroupOption.displayType === \"slider\") {\n filterProps = getPropsFilterSlider(filterGroupOption);\n }\n\n if (filterGroupOption.displayType === \"single\" || filterGroupOption.displayType === \"multi\") {\n if (filterGroupOption.displayView === \"range\") {\n filterProps = getPropsFilterRange(filterGroupOption);\n } else {\n filterProps = getPropsFilterList(filterGroupOption);\n }\n }\n\n const sharedProps = getPropsShared(options, filterGroupOption);\n\n return {\n ...sharedProps,\n ...filterProps,\n };\n};\n\nexport const getPropsSensors = (options: GeneratePropsSensorOptions) => {\n return [\n ...getPropsSensorCustom(options),\n getPropsSensorCollection(options),\n getPropsSensorPublished(options),\n getPropsSensorInventoryAvailable(options),\n getPropsSensorSort(options),\n ].filter(Boolean);\n}\n\nexport const getPropsSensorCustom = (options: GeneratePropsSensorOptions) => {\n const sensors = options.provider.mode === \"collection\" ? options.config.sensors.collection : options.config.sensors.search;\n\n return sensors.map((sensor, index) => ({\n componentId: `SensorCustom_${index}`,\n customQuery: () => sensor,\n source: ReactiveComponent,\n }));\n}\n\nexport const getPropsSensorCollection = (options: GeneratePropsSensorOptions) => {\n if (options.provider.mode !== \"collection\") {\n return null;\n }\n \n return {\n componentId: \"SensorCollection\",\n customQuery: () => {\n if (options.provider.mode !== \"collection\") {\n return null;\n }\n\n const conditions: Array<unknown> = [];\n\n if (options.provider.market) {\n conditions.push({\n nested: {\n path: \"curations\",\n query: {\n bool: {\n should: [\n {\n nested: {\n path: \"collections\",\n query: {\n term: {\n \"collections.handle.keyword\": options.provider.collectionHandle,\n },\n },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.collectionHandle.keyword\":\n options.provider.collectionHandle,\n },\n },\n },\n },\n ],\n must: [{\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.markets.keyword\": options.provider.market,\n },\n },\n },\n }]\n },\n },\n },\n });\n }\n \n return {\n query: {\n bool: {\n should: [\n {\n nested: {\n path: \"collections\",\n query: {\n term: {\n \"collections.handle.keyword\": options.provider.collectionHandle,\n },\n },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.collectionHandle.keyword\":\n options.provider.collectionHandle,\n },\n },\n },\n },\n ],\n },\n },\n } \n },\n source: ReactiveComponent,\n };\n}\n\nexport const getPropsSensorPublished = (options: GeneratePropsSensorOptions) => {\n return {\n componentId: \"SensorPublished\",\n customQuery: () => {\n if (options.provider.market) {\n return {\n query: {\n bool: {\n must:[{\n match: {\n markets: options.provider.market,\n },\n },{\n match: {\n published: true,\n },\n }]\n },\n },\n };\n }\n\n return {\n query: {\n match: {\n published: true,\n },\n },\n }\n },\n source: ReactiveComponent,\n }\n}\n\nexport const getPropsSensorInventoryAvailable = (options: GeneratePropsSensorOptions) => {\n const filterStack = getFilterStack(options);\n\n if (!filterStack || \"show_all\" === filterStack.inventoryVisibility) {\n return null;\n }\n\n return {\n componentId: \"SensorInventoryAvailable\",\n customQuery: () => ({\n query: {\n bool: {\n should: [\n {\n bool: {\n must: [\n {\n term: {\n type: {\n value: \"product\",\n },\n },\n },\n {\n nested: {\n path: \"variants\",\n query: {\n match: { \"variants.available\": true },\n },\n },\n },\n ],\n },\n },\n ...(options.provider.mode === \"instant-search\"\n ? []\n : [\n {\n term: {\n type: {\n value: \"callout\",\n },\n },\n },\n ]),\n ],\n minimum_should_match: \"1\",\n },\n },\n }),\n source: ReactiveComponent,\n }\n}\n\nexport const getPropsSensorSort = (options: GeneratePropsSensorOptions & { searchTerm?: string; sortOption?: string; }) => {\n const curation = getCuration(options);\n const sortOption = getSortOption(options);\n\n const sort = generateSortSort({\n provider: options.provider,\n config: options.config,\n curation: curation,\n sortOption: sortOption,\n });\n const query = generateSortQuery({\n sortOption: sortOption,\n curation: curation,\n });\n\n return {\n componentId: \"SensorSort\",\n customQuery: () => ({\n sort,\n query,\n }),\n source: ReactiveComponent,\n }\n}\n\nexport const getPropsBase = (options: GeneratePropsBase) => {\n const props = {\n app: options.config.index,\n url: options.config.endpoint,\n credentials: options.provider.credentials,\n theme: options.provider.theme,\n initialState: options.provider.preload?.state,\n transformSort: () => {\n const sortSensor = getPropsSensorSort(options);\n const customQuery = sortSensor.customQuery();\n\n return customQuery.sort;\n },\n transformRequest: (request: any) => {\n if ((request.url as string).endsWith(\"?\")) {\n request.url = request.url.substring(0, request.url.length - 1);\n }\n return request;\n },\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 replaceDocCountWithParent(\n response?.aggregations?.reactivesearch_nested\n ?.reactify_nested_outer\n );\n }\n\n return response;\n },\n headers: {\n \"x-reactify-shop\": options.provider.shopifyPermanentDomain,\n \"x-reactify-mode\": options.provider.mode,\n \"x-reactify-client-id\": options.provider.clientId,\n \"x-reactify-client-version\": pkg.version,\n },\n };\n\n return props;\n}\n\nexport const getPropsResults = (options: GeneratePropsFilterGroupOptions & { scrollTarget?: string | Element | HTMLDocument; pageSize?: number; }) => {\n const includeFieldsProp = (() => {\n return [\n ...(options.provider.includeFields ?? []),\n \"id\",\n \"title\",\n \"type\",\n \"handle\",\n \"image\",\n \"variants.id\",\n \"variants.presentment_prices\",\n \"callout\",\n ];\n })();\n const excludeFieldsProp = (() => {\n return [...(options.provider.excludeFields ?? [])];\n })();\n\n return {\n size: options.pageSize ?? options.filterGroup?.pageSize ?? 20,\n URLParams: options.provider.mode === \"instant-search\" ? false : true,\n showLoader: false,\n dataField: \"title\",\n showResultStats: false,\n react: getPropsReact(options),\n includeFields: includeFieldsProp,\n excludeFields: excludeFieldsProp,\n scrollTarget: options.scrollTarget,\n componentId: \"page\", // this sets ?page= in the URL\n scrollOnChange: false, // @todo make this better, it's really janky when enabled\n pagination: options.filterGroup?.paginationType !== \"infinite_scroll\",\n infiniteScroll: options.filterGroup?.paginationType === \"infinite_scroll\",\n renderNoResults: () => null, // always use only render, otherwise both are shown\n source: ReactiveList,\n // defaultQuery: () => ({\n // sort: [\"_score\"],\n // query: {\n // match_all: {}\n // }\n // })\n }\n}\n\nexport const getPropsReact = (options: GeneratePropsFilterGroupOptions, filterGroupOption?: ConfigFilterFacet) => {\n const sensorIds = SENSOR_IDS(options.provider.mode, options.config);\n const reactProp = (() => {\n if (filterGroupOption?.settingsShowEmptyValues) {\n return {\n and: sensorIds,\n };\n }\n\n return {\n and: [\n ...sensorIds,\n ...(options.provider.additionalComponentIds ?? []),\n ...(options.filterGroup?.options.map((filter) => filter.handle) ?? []),\n ].filter((handle) => handle !== filterGroupOption?.handle),\n };\n })();\n\n return reactProp;\n};\n\nexport const getPropsShared = (options: GeneratePropsFilterGroupOptions, filterGroupOption: ConfigFilterFacet) => {\n const reactProp = getPropsReact(options, filterGroupOption);\n const nestedFieldProp = (() => {\n const nestedFields = [\"variants\"];\n const topField = filterGroupOption.field.split(\".\")[0];\n if (nestedFields.includes(topField)) {\n return topField;\n }\n return undefined;\n })();\n const customQueryProp = (() => {\n if (\n !filterGroupOption.settingsHideUnavailable ||\n !filterGroupOption.field.startsWith(\"variants.\")\n )\n return undefined;\n\n return (value?: string | string[]) => {\n if (!value) return {};\n\n // reactivesearch sometimes returns string, sometimes string[]\n const valueArray = \"string\" === typeof value ? [value] : value;\n\n if (0 === valueArray.length) return {};\n\n return {\n query: {\n nested: {\n path: \"variants\",\n query: {\n bool: {\n must: [\n {\n match: {\n \"variants.available\": \"true\",\n },\n },\n {\n terms: {\n [filterGroupOption.field]: valueArray,\n },\n },\n ],\n },\n },\n },\n },\n };\n };\n })();\n const defaultQueryProp = (() => {\n if (!filterGroupOption.field.startsWith(\"variants.\")) {\n return undefined;\n }\n\n // override the aggregation query to filter the results by the variants.available attribute\n return () => {\n return {\n aggs: {\n reactivesearch_nested: {\n nested: { path: \"variants\" },\n aggs: {\n reactify_nested_outer: {\n filter: {\n bool: {\n minimum_should_match: 1,\n should: [\n {\n match: {\n \"variants.available\": \"true\",\n },\n },\n {\n match: {\n \"variants.available\": filterGroupOption.settingsHideUnavailable\n ? \"true\"\n : \"false\",\n },\n },\n ],\n },\n },\n aggs: {\n [filterGroupOption.field]: {\n terms: {\n field: filterGroupOption.field,\n size: 100,\n order: { _count: \"desc\" },\n },\n aggs: {\n parent_docs: { reverse_nested: {} },\n },\n },\n },\n },\n },\n },\n },\n };\n };\n })();\n const sourceProp = (() => {\n if (filterGroupOption.displayType === \"slider\") {\n return ReactiveComponent;\n }\n if (filterGroupOption.displayType === \"single\") {\n if (filterGroupOption.displayView === \"range\") {\n return SingleRange;\n }\n return SingleList;\n }\n if (filterGroupOption.displayType === \"multi\") {\n if (filterGroupOption.displayView === \"range\") {\n return MultiRange;\n }\n return MultiList;\n }\n \n return;\n })();\n\n return {\n URLParams: true,\n componentId: filterGroupOption.handle,\n dataField: filterGroupOption.field,\n filterLabel: filterGroupOption.name,\n nestedField: nestedFieldProp,\n customQuery: customQueryProp,\n defaultQuery: defaultQueryProp,\n source: sourceProp,\n react: reactProp,\n }\n};\n\nexport const getPropsFilterList = (filterGroupOption: ConfigFilterFacet) => {\n return {\n size: parseInt(filterGroupOption.displaySize) || undefined,\n queryFormat: filterGroupOption.settingsFilterLogic ?? \"or\",\n showFilter: filterGroupOption.settingsShowFilter ?? true,\n showLoadMore: filterGroupOption.settingsShowMore ?? false,\n showSearch: filterGroupOption.settingsShowSearch ?? false,\n showRadio: false,\n showCheckbox: false,\n };\n};\n\nexport const getPropsFilterRange = (filterGroupOption: ConfigFilterFacet) => {\n const data = filterGroupOption.displayRangeOptions?.map((option) => {\n const [label, start, end] = option.split(\":\");\n return {\n label: label,\n start: start ? parseInt(start) : 0,\n end: end ? parseInt(end) : Number.MAX_SAFE_INTEGER,\n };\n }) ?? [];\n\n return {\n queryFormat: filterGroupOption.settingsFilterLogic ?? \"or\",\n showFilter: filterGroupOption.settingsShowFilter ?? true,\n showRadio: false,\n showCheckbox: false,\n data: data,\n };\n};\n\nexport const getPropsFilterSlider = (filterGroupOption: ConfigFilterFacet) => {\n return {}\n};"]}
|