@usereactify/search 5.59.0-beta.3 → 5.59.0-beta.5
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 +15 -0
- package/dist/package.json +5 -4
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +5 -13
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +24 -53
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
- package/dist/src/components/Result/Results.js +4 -7
- package/dist/src/components/Result/Results.js.map +1 -1
- package/dist/src/components/Sensor/SensorCollection.js +0 -1
- package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
- package/dist/src/components/Sensor/SensorCollectionWeighted.d.ts +1 -0
- package/dist/src/components/Sensor/{SensorCuratedPageSearch.js → SensorCollectionWeighted.js} +4 -4
- package/dist/src/components/Sensor/SensorCollectionWeighted.js.map +1 -0
- package/dist/src/components/Sensor/SensorSearchTerm.js +6 -18
- package/dist/src/components/Sensor/SensorSearchTerm.js.map +1 -1
- package/dist/src/components/Sensor/SensorSearchWeighted.d.ts +1 -0
- package/dist/src/components/Sensor/{SensorCuratedPageCollection.js → SensorSearchWeighted.js} +5 -5
- package/dist/src/components/Sensor/SensorSearchWeighted.js.map +1 -0
- package/dist/src/components/Sensor/Sensors.js +21 -19
- package/dist/src/components/Sensor/Sensors.js.map +1 -1
- package/dist/src/components/Sensor/index.d.ts +3 -3
- package/dist/src/components/Sensor/index.js +7 -6
- package/dist/src/components/Sensor/index.js.map +1 -1
- package/dist/src/hooks/useConfig.d.ts +1 -1
- package/dist/src/hooks/useConfig.js +7 -7
- package/dist/src/hooks/useConfig.js.map +1 -1
- package/dist/src/hooks/useReactifySearchContext.d.ts +3 -17
- package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
- package/dist/src/types/config.d.ts +1 -0
- package/dist/src/types/config.js.map +1 -1
- package/dist/src/utility/curation.js +17 -43
- package/dist/src/utility/curation.js.map +1 -1
- package/dist/src/utility/filters.js +4 -2
- package/dist/src/utility/filters.js.map +1 -1
- package/dist/src/utility/liquid.d.ts +0 -6
- package/dist/src/utility/liquid.js +0 -15
- package/dist/src/utility/liquid.js.map +1 -1
- package/dist/src/utility/props.d.ts +7 -4
- package/dist/src/utility/props.js +21 -36
- package/dist/src/utility/props.js.map +1 -1
- package/dist/src/utility/queries.d.ts +4 -2
- package/dist/src/utility/queries.js +24 -52
- package/dist/src/utility/queries.js.map +1 -1
- package/dist/src/utility/sortOption.js +61 -129
- package/dist/src/utility/sortOption.js.map +1 -1
- package/package.json +6 -5
- package/dist/src/components/Sensor/SensorCuratedPageCollection.d.ts +0 -1
- package/dist/src/components/Sensor/SensorCuratedPageCollection.js.map +0 -1
- package/dist/src/components/Sensor/SensorCuratedPageSearch.d.ts +0 -1
- package/dist/src/components/Sensor/SensorCuratedPageSearch.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SensorSearchWeighted.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSearchWeighted.tsx"],"names":[],"mappings":";;;;;AAKA,oDAWC;AAhBD,kDAA0B;AAC1B,6HAAqG;AACrG,uCAAuD;AACvD,+CAAmE;AAEnE,SAAgB,oBAAoB;IAClC,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC;QACjD,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,QAAQ,EAAE,qBAAqB,CAAC,OAAO;QACvC,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU;KACpD,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,8BAAC,2BAAiB,oBAAK,aAAa,EAAI,CAAC;AAClD,CAAC","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@usereactify/search-internals/lib/components/basic/ReactiveComponent\";\nimport { useReactifySearchContext } from \"../../hooks\";\nimport { getPropsSensorSearchWeighted } from \"../../utility/props\";\n\nexport function SensorSearchWeighted() {\n const reactifySearchContext = useReactifySearchContext();\n const reactiveProps = getPropsSensorSearchWeighted({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n searchTerm: reactifySearchContext.search.searchTerm,\n });\n\n if (!reactiveProps) return null;\n\n return <ReactiveComponent {...reactiveProps} />;\n}\n"]}
|
|
@@ -12,11 +12,21 @@ const SensorCollection_1 = require("./SensorCollection");
|
|
|
12
12
|
const SensorSearchTerm_1 = require("./SensorSearchTerm");
|
|
13
13
|
const SensorInventoryAvailable_1 = require("./SensorInventoryAvailable");
|
|
14
14
|
const SensorCustom_1 = require("./SensorCustom");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
15
|
+
const SensorCollectionWeighted_1 = require("./SensorCollectionWeighted");
|
|
16
|
+
const SensorSearchWeighted_1 = require("./SensorSearchWeighted");
|
|
17
17
|
const Sensors = () => {
|
|
18
|
-
|
|
18
|
+
var _a, _b;
|
|
19
|
+
const { config, options } = (0, hooks_1.useReactifySearchContext)();
|
|
20
|
+
const useWeightedSearch = (_b = (_a = config.featureFlags) === null || _a === void 0 ? void 0 : _a.includes("use_weighted_search")) !== null && _b !== void 0 ? _b : false;
|
|
19
21
|
if (options.mode === "search" || options.mode === "instant-search") {
|
|
22
|
+
if (useWeightedSearch) {
|
|
23
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
24
|
+
react_1.default.createElement(SensorSort_1.SensorSort, null),
|
|
25
|
+
react_1.default.createElement(SensorPublished_1.SensorPublished, null),
|
|
26
|
+
react_1.default.createElement(SensorSearchWeighted_1.SensorSearchWeighted, null),
|
|
27
|
+
react_1.default.createElement(SensorInventoryAvailable_1.SensorInventoryAvailable, null),
|
|
28
|
+
react_1.default.createElement(SensorCustom_1.SensorCustom, null)));
|
|
29
|
+
}
|
|
20
30
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
21
31
|
react_1.default.createElement(SensorSort_1.SensorSort, null),
|
|
22
32
|
react_1.default.createElement(SensorPublished_1.SensorPublished, null),
|
|
@@ -25,6 +35,14 @@ const Sensors = () => {
|
|
|
25
35
|
react_1.default.createElement(SensorCustom_1.SensorCustom, null)));
|
|
26
36
|
}
|
|
27
37
|
if (options.mode === "collection") {
|
|
38
|
+
if (useWeightedSearch) {
|
|
39
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
40
|
+
react_1.default.createElement(SensorSort_1.SensorSort, null),
|
|
41
|
+
react_1.default.createElement(SensorPublished_1.SensorPublished, null),
|
|
42
|
+
react_1.default.createElement(SensorCollectionWeighted_1.SensorCollectionWeighted, null),
|
|
43
|
+
react_1.default.createElement(SensorInventoryAvailable_1.SensorInventoryAvailable, null),
|
|
44
|
+
react_1.default.createElement(SensorCustom_1.SensorCustom, null)));
|
|
45
|
+
}
|
|
28
46
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
29
47
|
react_1.default.createElement(SensorSort_1.SensorSort, null),
|
|
30
48
|
react_1.default.createElement(SensorPublished_1.SensorPublished, null),
|
|
@@ -32,22 +50,6 @@ const Sensors = () => {
|
|
|
32
50
|
react_1.default.createElement(SensorInventoryAvailable_1.SensorInventoryAvailable, null),
|
|
33
51
|
react_1.default.createElement(SensorCustom_1.SensorCustom, null)));
|
|
34
52
|
}
|
|
35
|
-
if (options.mode === "curated-page" && options.variation === "collection") {
|
|
36
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
37
|
-
react_1.default.createElement(SensorSort_1.SensorSort, null),
|
|
38
|
-
react_1.default.createElement(SensorPublished_1.SensorPublished, null),
|
|
39
|
-
react_1.default.createElement(SensorCuratedPageCollection_1.SensorCuratedPageCollection, null),
|
|
40
|
-
react_1.default.createElement(SensorInventoryAvailable_1.SensorInventoryAvailable, null),
|
|
41
|
-
react_1.default.createElement(SensorCustom_1.SensorCustom, null)));
|
|
42
|
-
}
|
|
43
|
-
if (options.mode === "curated-page" && options.variation === "search") {
|
|
44
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
45
|
-
react_1.default.createElement(SensorSort_1.SensorSort, null),
|
|
46
|
-
react_1.default.createElement(SensorPublished_1.SensorPublished, null),
|
|
47
|
-
react_1.default.createElement(SensorCuratedPageSearch_1.SensorCuratedPageSearch, null),
|
|
48
|
-
react_1.default.createElement(SensorInventoryAvailable_1.SensorInventoryAvailable, null),
|
|
49
|
-
react_1.default.createElement(SensorCustom_1.SensorCustom, null)));
|
|
50
|
-
}
|
|
51
53
|
return null;
|
|
52
54
|
};
|
|
53
55
|
exports.Sensors = Sensors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sensors.js","sourceRoot":"","sources":["../../../../src/components/Sensor/Sensors.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uCAAuD;AAEvD,6CAA0C;AAC1C,uDAAoD;AACpD,yDAAsD;AACtD,yDAAsD;AACtD,yEAAsE;AACtE,iDAA8C;AAC9C
|
|
1
|
+
{"version":3,"file":"Sensors.js","sourceRoot":"","sources":["../../../../src/components/Sensor/Sensors.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uCAAuD;AAEvD,6CAA0C;AAC1C,uDAAoD;AACpD,yDAAsD;AACtD,yDAAsD;AACtD,yEAAsE;AACtE,iDAA8C;AAC9C,yEAAsE;AACtE,iEAA8D;AAMvD,MAAM,OAAO,GAA2B,GAAG,EAAE;;IAClD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAEvD,MAAM,iBAAiB,GAAG,MAAA,MAAA,MAAM,CAAC,YAAY,0CAAE,QAAQ,CAAC,qBAAqB,CAAC,mCAAI,KAAK,CAAC;IAExF,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnE,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CACL;gBACE,8BAAC,uBAAU,OAAG;gBACd,8BAAC,iCAAe,OAAG;gBACnB,8BAAC,2CAAoB,OAAG;gBACxB,8BAAC,mDAAwB,OAAG;gBAC5B,8BAAC,2BAAY,OAAG,CACf,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,CACL;YACE,8BAAC,uBAAU,OAAG;YACd,8BAAC,iCAAe,OAAG;YACnB,8BAAC,mCAAgB,OAAG;YACpB,8BAAC,mDAAwB,OAAG;YAC5B,8BAAC,2BAAY,OAAG,CACf,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CACL;gBACE,8BAAC,uBAAU,OAAG;gBACd,8BAAC,iCAAe,OAAG;gBACnB,8BAAC,mDAAwB,OAAG;gBAC5B,8BAAC,mDAAwB,OAAG;gBAC5B,8BAAC,2BAAY,OAAG,CACf,CACJ,CAAC;QACJ,CAAC;QACD,OAAO,CACL;YACE,8BAAC,uBAAU,OAAG;YACd,8BAAC,iCAAe,OAAG;YACnB,8BAAC,mCAAgB,OAAG;YACpB,8BAAC,mDAAwB,OAAG;YAC5B,8BAAC,2BAAY,OAAG,CACf,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AApDW,QAAA,OAAO,WAoDlB","sourcesContent":["import React from \"react\";\n\nimport { useReactifySearchContext } from \"../../hooks\";\n\nimport { SensorSort } from \"./SensorSort\";\nimport { SensorPublished } from \"./SensorPublished\";\nimport { SensorCollection } from \"./SensorCollection\";\nimport { SensorSearchTerm } from \"./SensorSearchTerm\";\nimport { SensorInventoryAvailable } from \"./SensorInventoryAvailable\";\nimport { SensorCustom } from \"./SensorCustom\";\nimport { SensorCollectionWeighted } from \"./SensorCollectionWeighted\";\nimport { SensorSearchWeighted } from \"./SensorSearchWeighted\";\n\nexport type SensorsProps = {\n /** This component does not support any props */\n};\n\nexport const Sensors: React.FC<SensorsProps> = () => {\n const { config, options } = useReactifySearchContext();\n\n const useWeightedSearch = config.featureFlags?.includes(\"use_weighted_search\") ?? false;\n\n if (options.mode === \"search\" || options.mode === \"instant-search\") {\n if (useWeightedSearch) {\n return (\n <>\n <SensorSort />\n <SensorPublished />\n <SensorSearchWeighted />\n <SensorInventoryAvailable />\n <SensorCustom />\n </>\n );\n }\n return (\n <>\n <SensorSort />\n <SensorPublished />\n <SensorSearchTerm />\n <SensorInventoryAvailable />\n <SensorCustom />\n </>\n );\n }\n\n if (options.mode === \"collection\") {\n if (useWeightedSearch) {\n return (\n <>\n <SensorSort />\n <SensorPublished />\n <SensorCollectionWeighted />\n <SensorInventoryAvailable />\n <SensorCustom />\n </>\n );\n }\n return (\n <>\n <SensorSort />\n <SensorPublished />\n <SensorCollection />\n <SensorInventoryAvailable />\n <SensorCustom />\n </>\n );\n }\n\n return null;\n};\n"]}
|
|
@@ -5,7 +5,7 @@ export * from "./SensorPublished";
|
|
|
5
5
|
export * from "./SensorCollection";
|
|
6
6
|
export * from "./SensorSearchTerm";
|
|
7
7
|
export * from "./SensorInventoryAvailable";
|
|
8
|
-
export * from "./
|
|
9
|
-
export * from "./
|
|
8
|
+
export * from "./SensorCollectionWeighted";
|
|
9
|
+
export * from "./SensorSearchWeighted";
|
|
10
10
|
export * from "./Sensors";
|
|
11
|
-
export declare const SENSOR_IDS: (mode: ReactifySearchMode, config: Config) => string[];
|
|
11
|
+
export declare const SENSOR_IDS: (mode: ReactifySearchMode, config: Config, variation?: string) => string[];
|
|
@@ -20,21 +20,22 @@ __exportStar(require("./SensorPublished"), exports);
|
|
|
20
20
|
__exportStar(require("./SensorCollection"), exports);
|
|
21
21
|
__exportStar(require("./SensorSearchTerm"), exports);
|
|
22
22
|
__exportStar(require("./SensorInventoryAvailable"), exports);
|
|
23
|
-
__exportStar(require("./
|
|
24
|
-
__exportStar(require("./
|
|
23
|
+
__exportStar(require("./SensorCollectionWeighted"), exports);
|
|
24
|
+
__exportStar(require("./SensorSearchWeighted"), exports);
|
|
25
25
|
__exportStar(require("./Sensors"), exports);
|
|
26
26
|
// This is consumed by the react prop in various components
|
|
27
|
-
const SENSOR_IDS = (mode, config) => {
|
|
27
|
+
const SENSOR_IDS = (mode, config, variation) => {
|
|
28
28
|
const sensorIds = [
|
|
29
29
|
"SensorSort",
|
|
30
30
|
"SensorPublished",
|
|
31
31
|
"SensorCollection",
|
|
32
32
|
"SensorSearchTerm",
|
|
33
33
|
"SensorInventoryAvailable",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
34
|
+
"SensorCollectionWeighted",
|
|
35
|
+
"SensorSearchWeighted",
|
|
36
36
|
];
|
|
37
|
-
const
|
|
37
|
+
const sensorType = mode === "collection" ? "collection" : "search";
|
|
38
|
+
const customSensors = sensorType === "collection" ? config.sensors.collection : config.sensors.search;
|
|
38
39
|
if (customSensors.length > 0) {
|
|
39
40
|
sensorIds.push(...customSensors.map((item, index) => `SensorCustom_${index}`));
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Sensor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,+CAA6B;AAC7B,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,6DAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Sensor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,+CAA6B;AAC7B,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,6DAA2C;AAC3C,6DAA2C;AAC3C,yDAAuC;AAEvC,4CAA0B;AAE1B,2DAA2D;AACpD,MAAM,UAAU,GAAG,CAAC,IAAwB,EAAE,MAAc,EAAE,SAAkB,EAAE,EAAE;IACzF,MAAM,SAAS,GAAG;QAChB,YAAY;QACZ,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;KACvB,CAAC;IAEF,MAAM,UAAU,GACd,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElD,MAAM,aAAa,GAAG,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IACtG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AApBW,QAAA,UAAU,cAoBrB","sourcesContent":["import { ReactifySearchMode } from \"../../hooks\";\nimport { Config } from \"../../types\";\n\nexport * from \"./SensorSort\";\nexport * from \"./SensorPublished\";\nexport * from \"./SensorCollection\";\nexport * from \"./SensorSearchTerm\";\nexport * from \"./SensorInventoryAvailable\";\nexport * from \"./SensorCollectionWeighted\";\nexport * from \"./SensorSearchWeighted\";\n\nexport * from \"./Sensors\";\n\n// This is consumed by the react prop in various components\nexport const SENSOR_IDS = (mode: ReactifySearchMode, config: Config, variation?: string) => {\n const sensorIds = [\n \"SensorSort\",\n \"SensorPublished\",\n \"SensorCollection\",\n \"SensorSearchTerm\",\n \"SensorInventoryAvailable\",\n \"SensorCollectionWeighted\",\n \"SensorSearchWeighted\",\n ];\n \n const sensorType = \n mode === \"collection\" ? \"collection\" : \"search\";\n \n const customSensors = sensorType === \"collection\" ? config.sensors.collection : config.sensors.search;\n if (customSensors.length > 0) {\n sensorIds.push(...customSensors.map((item, index) => `SensorCustom_${index}`));\n }\n\n return sensorIds;\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Config } from "../types/config";
|
|
2
|
-
export declare const useConfig: (shopifyPermanentDomain: string, preloadedConfig?: Config) => {
|
|
2
|
+
export declare const useConfig: (shopifyPermanentDomain: string, preloadedConfig?: Config, configBaseUrl?: string) => {
|
|
3
3
|
config: Config | undefined;
|
|
4
4
|
};
|
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.useConfig = void 0;
|
|
16
16
|
const react_1 = __importDefault(require("react"));
|
|
17
17
|
const utility_1 = require("../utility");
|
|
18
|
-
const useConfig = (shopifyPermanentDomain, preloadedConfig) => {
|
|
18
|
+
const useConfig = (shopifyPermanentDomain, preloadedConfig, configBaseUrl) => {
|
|
19
19
|
// synchronously returns cached and non-expired config from session storage
|
|
20
20
|
const cachedConfig = react_1.default.useMemo(() => {
|
|
21
21
|
var _a, _b;
|
|
@@ -36,19 +36,19 @@ const useConfig = (shopifyPermanentDomain, preloadedConfig) => {
|
|
|
36
36
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
37
|
const searchParams = new URLSearchParams();
|
|
38
38
|
searchParams.set("shop", shopifyPermanentDomain);
|
|
39
|
+
const url = new URL(configBaseUrl || "https://config.usereactify.com/");
|
|
40
|
+
url.search = searchParams.toString();
|
|
39
41
|
let json;
|
|
40
42
|
try {
|
|
41
|
-
json = yield fetch(
|
|
43
|
+
json = yield fetch(url).then((response) => response.json());
|
|
42
44
|
}
|
|
43
45
|
catch (error) {
|
|
44
|
-
json = yield fetch(
|
|
46
|
+
json = yield fetch(url).then((response) => response.json());
|
|
45
47
|
}
|
|
46
48
|
setConfig(json.body);
|
|
47
|
-
window.sessionStorage.setItem("reactify-search:config", JSON.stringify({
|
|
48
|
-
config: json.body,
|
|
49
|
-
}));
|
|
49
|
+
window.sessionStorage.setItem("reactify-search:config", JSON.stringify({ config: json.body }));
|
|
50
50
|
}))();
|
|
51
|
-
}, [shopifyPermanentDomain]);
|
|
51
|
+
}, [shopifyPermanentDomain, configBaseUrl]);
|
|
52
52
|
utility_1.debug.hook("useConfig", "config", config);
|
|
53
53
|
return {
|
|
54
54
|
config: config !== null && config !== void 0 ? config : preloadedConfig,
|
|
@@ -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,
|
|
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,EACxB,aAAsB,EAGtB,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,CAAC,MAAA,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,wBAAwB,CAAC,mCAAI,MAAM,CAAC,CAAC;QAEzF,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,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,IAAI,iCAAiC,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YAErC,IAAI,IAAS,CAAC;YACd,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjG,CAAC,CAAA,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5C,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;AAvDW,QAAA,SAAS,aAuDpB","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 configBaseUrl?: string\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(window.sessionStorage.getItem(\"reactify-search:config\") ?? \"null\");\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 const url = new URL(configBaseUrl || \"https://config.usereactify.com/\");\n url.search = searchParams.toString();\n\n let json: any;\n try {\n json = await fetch(url).then((response) => response.json());\n } catch (error) {\n json = await fetch(url).then((response) => response.json());\n }\n\n setConfig(json.body);\n window.sessionStorage.setItem(\"reactify-search:config\", JSON.stringify({ config: json.body }));\n })();\n }, [shopifyPermanentDomain, configBaseUrl]);\n\n debug.hook(\"useConfig\", \"config\", config);\n\n return {\n config: config ?? preloadedConfig,\n };\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Config, ConfigCuration, ConfigRedirect, ReactivesearchResultProps } from "../types";
|
|
3
|
-
export type ReactifySearchMode = "search" | "collection" | "instant-search"
|
|
3
|
+
export type ReactifySearchMode = "search" | "collection" | "instant-search";
|
|
4
4
|
export declare const ReactifySearchContext: React.Context<{
|
|
5
5
|
config: Config;
|
|
6
6
|
options: {
|
|
@@ -17,6 +17,7 @@ export declare const ReactifySearchContext: React.Context<{
|
|
|
17
17
|
includeFields?: Array<string>;
|
|
18
18
|
excludeFields?: Array<string>;
|
|
19
19
|
query?: Record<string, string>;
|
|
20
|
+
configBaseUrl?: string;
|
|
20
21
|
preload?: {
|
|
21
22
|
config: Config;
|
|
22
23
|
state: unknown;
|
|
@@ -28,14 +29,6 @@ export declare const ReactifySearchContext: React.Context<{
|
|
|
28
29
|
collectionHandle: string;
|
|
29
30
|
} | {
|
|
30
31
|
mode: "instant-search";
|
|
31
|
-
} | {
|
|
32
|
-
mode: "curated-page";
|
|
33
|
-
variation: "collection";
|
|
34
|
-
handle: string;
|
|
35
|
-
} | {
|
|
36
|
-
mode: "curated-page";
|
|
37
|
-
variation: "search";
|
|
38
|
-
searchTerm: string;
|
|
39
32
|
});
|
|
40
33
|
search: {
|
|
41
34
|
searchTerm: string;
|
|
@@ -72,6 +65,7 @@ export declare const useReactifySearchContext: () => {
|
|
|
72
65
|
includeFields?: Array<string>;
|
|
73
66
|
excludeFields?: Array<string>;
|
|
74
67
|
query?: Record<string, string>;
|
|
68
|
+
configBaseUrl?: string;
|
|
75
69
|
preload?: {
|
|
76
70
|
config: Config;
|
|
77
71
|
state: unknown;
|
|
@@ -83,14 +77,6 @@ export declare const useReactifySearchContext: () => {
|
|
|
83
77
|
collectionHandle: string;
|
|
84
78
|
} | {
|
|
85
79
|
mode: "instant-search";
|
|
86
|
-
} | {
|
|
87
|
-
mode: "curated-page";
|
|
88
|
-
variation: "collection";
|
|
89
|
-
handle: string;
|
|
90
|
-
} | {
|
|
91
|
-
mode: "curated-page";
|
|
92
|
-
variation: "search";
|
|
93
|
-
searchTerm: string;
|
|
94
80
|
});
|
|
95
81
|
search: {
|
|
96
82
|
searchTerm: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReactifySearchContext.js","sourceRoot":"","sources":["../../../src/hooks/useReactifySearchContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAM7B,QAAA,qBAAqB,GAAG,eAAK,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"useReactifySearchContext.js","sourceRoot":"","sources":["../../../src/hooks/useReactifySearchContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAM7B,QAAA,qBAAqB,GAAG,eAAK,CAAC,aAAa,CAsDtD,SAAS,CAAC,CAAC;AAEN,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,6BAAqB,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC","sourcesContent":["import React, { useContext } from \"react\";\n\nimport { Config, ConfigCuration, ConfigRedirect, ReactivesearchResultProps } from \"../types\";\n\nexport type ReactifySearchMode = \"search\" | \"collection\" | \"instant-search\";\n\nexport const ReactifySearchContext = React.createContext<\n | {\n config: Config;\n options: {\n clientId: string;\n mode: ReactifySearchMode;\n index: string;\n shopifyPermanentDomain: string;\n market?: string;\n filtersHandle?: string;\n credentials?: string;\n onRedirect?: (type: \"redirect\" | \"search\", url: string) => void;\n theme: Record<string, unknown>;\n additionalComponentIds?: Array<string>;\n includeFields?: Array<string>;\n excludeFields?: Array<string>;\n query?: Record<string, string>;\n configBaseUrl?: string;\n preload?: {\n config: Config;\n state: unknown;\n };\n } & (\n | {\n mode: \"search\";\n }\n | {\n mode: \"collection\";\n collectionHandle: string;\n }\n | {\n mode: \"instant-search\";\n }\n );\n search: {\n searchTerm: string;\n setSearchTerm: React.Dispatch<React.SetStateAction<string>>;\n showInstantSearchResults: boolean;\n setShowInstantSearchResults: React.Dispatch<React.SetStateAction<boolean>>;\n searchRedirect: ConfigRedirect | undefined;\n };\n sortby: {\n sortOption: string;\n setSortOption: React.Dispatch<React.SetStateAction<string>>;\n };\n results: {\n results: ReactivesearchResultProps[\"data\"];\n setResults: React.Dispatch<React.SetStateAction<ReactivesearchResultProps[\"data\"]>>;\n resultStats?: ReactivesearchResultProps[\"resultStats\"];\n setResultStats: React.Dispatch<React.SetStateAction<ReactivesearchResultProps[\"resultStats\"] | undefined>>;\n };\n curation: ConfigCuration | undefined;\n }\n | undefined\n>(undefined);\n\nexport const useReactifySearchContext = () => {\n const context = useContext(ReactifySearchContext);\n if (!context) {\n throw new Error(\"useReactifySearchContext must be used within a ReactifySearchProvider\");\n }\n return context;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Antonym,\n Callout,\n Curation,\n FilterFacet,\n FilterGroup,\n Market,\n MerchandisingCalloutAutofillBehaviour,\n Redirect,\n Relevance,\n SearchableField,\n Sort,\n Synonym,\n} from \"./firestore\";\n\n// when exposed as config, most resources have the `enabled` and `keywords` attributes removed\n// curation boosting groupings and sortings both have a json encoded elastic query added to them\n\nexport type Config = {\n index: string;\n endpoint: string;\n cluster: string;\n version: string;\n key: string;\n cache: {\n enabled: boolean;\n seconds: number;\n };\n merchandising: {\n calloutAutofillBehaviour: MerchandisingCalloutAutofillBehaviour;\n };\n sort: Array<ConfigSort>;\n fields: Array<ConfigField>;\n searchableFields: Array<ConfigSeachableField>;\n filters: Array<ConfigFilter>;\n redirects: Array<ConfigRedirect>;\n curations: Array<ConfigCuration>;\n antonyms: Array<ConfigAntonym>;\n synonyms: Array<ConfigSynonym>;\n callouts: Array<ConfigCallout>;\n markets: Array<Market>;\n suggestions: {\n exclude: Array<string>;\n };\n sensors: {\n search: Array<unknown>;\n collection: Array<unknown>;\n };\n};\n\nexport type ConfigAntonym = Omit<Antonym, \"enabled\">;\nexport type ConfigSynonym = Omit<Synonym, \"enabled\">;\nexport type ConfigCallout = Omit<Callout, \"enabled\">;\nexport type ConfigSort = Omit<Sort, \"enabled\">;\nexport type ConfigField = Omit<Relevance, \"enabled\">;\nexport type ConfigSeachableField = Omit<SearchableField, \"enabled\">;\nexport type ConfigRedirect = Omit<Redirect, \"enabled\" | \"keywords\">;\nexport type ConfigFilter = Omit<FilterGroup, \"enabled\" | \"keywords\"> & {\n options: Omit<FilterFacet, \"enabled\">[];\n};\nexport type ConfigFilterFacet = Omit<FilterFacet, \"enabled\">;\nexport type ConfigCuration = Omit<\n Curation,\n \"keywords\" | \"boosting\" | \"longRunningTask\" | \"callouts\"\n> & {\n boosting: {\n groupings: Array<\n NonNullable<NonNullable<Curation[\"boosting\"]>[\"groupings\"]>[0] & { query: string }\n >;\n sortings: Array<\n NonNullable<NonNullable<Curation[\"boosting\"]>[\"sortings\"]>[0] & { query: string }\n >;\n };\n};\n\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Antonym,\n Callout,\n Curation,\n FilterFacet,\n FilterGroup,\n Market,\n MerchandisingCalloutAutofillBehaviour,\n Redirect,\n Relevance,\n SearchableField,\n Sort,\n Synonym,\n} from \"./firestore\";\n\n// when exposed as config, most resources have the `enabled` and `keywords` attributes removed\n// curation boosting groupings and sortings both have a json encoded elastic query added to them\n\nexport type Config = {\n index: string;\n endpoint: string;\n cluster: string;\n version: string;\n key: string;\n cache: {\n enabled: boolean;\n seconds: number;\n };\n merchandising: {\n calloutAutofillBehaviour: MerchandisingCalloutAutofillBehaviour;\n };\n sort: Array<ConfigSort>;\n fields: Array<ConfigField>;\n searchableFields: Array<ConfigSeachableField>;\n filters: Array<ConfigFilter>;\n redirects: Array<ConfigRedirect>;\n curations: Array<ConfigCuration>;\n antonyms: Array<ConfigAntonym>;\n synonyms: Array<ConfigSynonym>;\n callouts: Array<ConfigCallout>;\n markets: Array<Market>;\n suggestions: {\n exclude: Array<string>;\n };\n sensors: {\n search: Array<unknown>;\n collection: Array<unknown>;\n };\n featureFlags: string[];\n};\n\nexport type ConfigAntonym = Omit<Antonym, \"enabled\">;\nexport type ConfigSynonym = Omit<Synonym, \"enabled\">;\nexport type ConfigCallout = Omit<Callout, \"enabled\">;\nexport type ConfigSort = Omit<Sort, \"enabled\">;\nexport type ConfigField = Omit<Relevance, \"enabled\">;\nexport type ConfigSeachableField = Omit<SearchableField, \"enabled\">;\nexport type ConfigRedirect = Omit<Redirect, \"enabled\" | \"keywords\">;\nexport type ConfigFilter = Omit<FilterGroup, \"enabled\" | \"keywords\"> & {\n options: Omit<FilterFacet, \"enabled\">[];\n};\nexport type ConfigFilterFacet = Omit<FilterFacet, \"enabled\">;\nexport type ConfigCuration = Omit<\n Curation,\n \"keywords\" | \"boosting\" | \"longRunningTask\" | \"callouts\"\n> & {\n boosting: {\n groupings: Array<\n NonNullable<NonNullable<Curation[\"boosting\"]>[\"groupings\"]>[0] & { query: string }\n >;\n sortings: Array<\n NonNullable<NonNullable<Curation[\"boosting\"]>[\"sortings\"]>[0] & { query: string }\n >;\n };\n};\n\n"]}
|
|
@@ -4,33 +4,17 @@ exports.getCuration = void 0;
|
|
|
4
4
|
const getCuration = (options) => {
|
|
5
5
|
var _a;
|
|
6
6
|
const handleOrSearchTerm = options.provider.mode === "collection" ? options.provider.collectionHandle : (_a = options.searchTerm) !== null && _a !== void 0 ? _a : "";
|
|
7
|
-
const normalisedHandleOrSearchTerm = handleOrSearchTerm
|
|
8
|
-
.toLowerCase()
|
|
9
|
-
.trim();
|
|
7
|
+
const normalisedHandleOrSearchTerm = handleOrSearchTerm.toLowerCase().trim();
|
|
10
8
|
const globalCuration = options.config.curations.find((curation) => {
|
|
11
|
-
if (options.provider.mode === "search") {
|
|
12
|
-
if (options.provider.market)
|
|
9
|
+
if (options.provider.mode === "search" || options.provider.mode === "instant-search") {
|
|
10
|
+
if (options.provider.market)
|
|
13
11
|
return curation.id === `global_${options.provider.market}_search`;
|
|
14
|
-
|
|
15
|
-
else {
|
|
16
|
-
return curation.id === "global_search";
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
if (options.provider.mode === "instant-search") {
|
|
20
|
-
if (options.provider.market) {
|
|
21
|
-
return curation.id === `global_${options.provider.market}_search`;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
return curation.id === "global_search";
|
|
25
|
-
}
|
|
12
|
+
return curation.id === "global_search";
|
|
26
13
|
}
|
|
27
14
|
if (options.provider.mode === "collection") {
|
|
28
|
-
if (options.provider.market)
|
|
15
|
+
if (options.provider.market)
|
|
29
16
|
return curation.id === `global_${options.provider.market}_collection`;
|
|
30
|
-
|
|
31
|
-
else {
|
|
32
|
-
return curation.id === "global_collection";
|
|
33
|
-
}
|
|
17
|
+
return curation.id === "global_collection";
|
|
34
18
|
}
|
|
35
19
|
return false;
|
|
36
20
|
});
|
|
@@ -39,34 +23,25 @@ const getCuration = (options) => {
|
|
|
39
23
|
var _a, _b;
|
|
40
24
|
const normalisedSearchTerm = (_a = curation.searchTerm) === null || _a === void 0 ? void 0 : _a.toLowerCase().trim();
|
|
41
25
|
const normalisedCollectionHandle = (_b = curation.collectionHandle) === null || _b === void 0 ? void 0 : _b.toLowerCase().trim();
|
|
42
|
-
if ("instant-search" === options.provider.mode) {
|
|
43
|
-
return
|
|
44
|
-
normalisedHandleOrSearchTerm === normalisedSearchTerm);
|
|
45
|
-
}
|
|
46
|
-
if ("search" === options.provider.mode) {
|
|
47
|
-
return ("search" === curation.type &&
|
|
48
|
-
normalisedHandleOrSearchTerm === normalisedSearchTerm);
|
|
26
|
+
if ("instant-search" === options.provider.mode || "search" === options.provider.mode) {
|
|
27
|
+
return "search" === curation.type && normalisedHandleOrSearchTerm === normalisedSearchTerm;
|
|
49
28
|
}
|
|
50
29
|
if ("collection" === options.provider.mode) {
|
|
51
|
-
return
|
|
52
|
-
normalisedHandleOrSearchTerm === normalisedCollectionHandle);
|
|
30
|
+
return "collection" === curation.type && normalisedHandleOrSearchTerm === normalisedCollectionHandle;
|
|
53
31
|
}
|
|
54
32
|
return false;
|
|
55
33
|
});
|
|
56
|
-
const curationsMatchingMarketOrNoMarket = curationsMatchingQuery
|
|
34
|
+
const curationsMatchingMarketOrNoMarket = curationsMatchingQuery
|
|
35
|
+
.filter((curation) => {
|
|
57
36
|
var _a, _b, _c;
|
|
58
37
|
if (options.provider.market) {
|
|
59
|
-
if (((_a = curation.markets) === null || _a === void 0 ? void 0 : _a.length) === 0)
|
|
38
|
+
if (((_a = curation.markets) === null || _a === void 0 ? void 0 : _a.length) === 0)
|
|
60
39
|
return true;
|
|
61
|
-
|
|
62
|
-
else {
|
|
63
|
-
return (_b = curation.markets) === null || _b === void 0 ? void 0 : _b.includes(options.provider.market);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return ((_c = curation.markets) === null || _c === void 0 ? void 0 : _c.length) === 0;
|
|
40
|
+
return (_b = curation.markets) === null || _b === void 0 ? void 0 : _b.includes(options.provider.market);
|
|
68
41
|
}
|
|
69
|
-
|
|
42
|
+
return ((_c = curation.markets) === null || _c === void 0 ? void 0 : _c.length) === 0;
|
|
43
|
+
})
|
|
44
|
+
.sort((curationA, curationB) => {
|
|
70
45
|
var _a, _b, _c, _d;
|
|
71
46
|
return ((_b = (_a = curationB.markets) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = curationA.markets) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0);
|
|
72
47
|
});
|
|
@@ -77,8 +52,7 @@ const getCuration = (options) => {
|
|
|
77
52
|
if (!globalCuration) {
|
|
78
53
|
return curation;
|
|
79
54
|
}
|
|
80
|
-
const curationHasRules = !!curation.boosting.groupings.length ||
|
|
81
|
-
!!curation.boosting.sortings.length;
|
|
55
|
+
const curationHasRules = !!curation.boosting.groupings.length || !!curation.boosting.sortings.length;
|
|
82
56
|
if (curationHasRules) {
|
|
83
57
|
return curation;
|
|
84
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curation.js","sourceRoot":"","sources":["../../../src/utility/curation.ts"],"names":[],"mappings":";;;AAGO,MAAM,WAAW,GAAG,CAAC,OAI3B,EAA8B,EAAE;;IAC/B,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"curation.js","sourceRoot":"","sources":["../../../src/utility/curation.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactifySearchProviderProps } from \"../components\";\nimport { Config, ConfigCuration } from \"../types\";\n\nexport const getCuration = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n searchTerm?: string;\n}): ConfigCuration | undefined => {\n const handleOrSearchTerm =\n options.provider.mode === \"collection\" ? options.provider.collectionHandle : options.searchTerm ?? \"\";\n\n const normalisedHandleOrSearchTerm = handleOrSearchTerm.toLowerCase().trim();\n\n const globalCuration = options.config.curations.find((curation) => {\n if (options.provider.mode === \"search\" || options.provider.mode === \"instant-search\") {\n if (options.provider.market) return curation.id === `global_${options.provider.market}_search`;\n return curation.id === \"global_search\";\n }\n if (options.provider.mode === \"collection\") {\n if (options.provider.market) return curation.id === `global_${options.provider.market}_collection`;\n return curation.id === \"global_collection\";\n }\n return false;\n });\n\n const findCuration = () => {\n const curationsMatchingQuery = options.config.curations.filter((curation) => {\n const normalisedSearchTerm = curation.searchTerm?.toLowerCase().trim();\n const normalisedCollectionHandle = curation.collectionHandle?.toLowerCase().trim();\n\n if (\"instant-search\" === options.provider.mode || \"search\" === options.provider.mode) {\n return \"search\" === curation.type && normalisedHandleOrSearchTerm === normalisedSearchTerm;\n }\n\n if (\"collection\" === options.provider.mode) {\n return \"collection\" === curation.type && normalisedHandleOrSearchTerm === normalisedCollectionHandle;\n }\n\n return false;\n });\n\n const curationsMatchingMarketOrNoMarket = curationsMatchingQuery\n .filter((curation) => {\n if (options.provider.market) {\n if (curation.markets?.length === 0) return true;\n return curation.markets?.includes(options.provider.market);\n }\n return curation.markets?.length === 0;\n })\n .sort((curationA, curationB) => {\n return (curationB.markets?.length ?? 0) - (curationA.markets?.length ?? 0);\n });\n\n return curationsMatchingMarketOrNoMarket[0];\n };\n\n const curation = findCuration();\n\n const addGlobalBoosting = (curation: ConfigCuration) => {\n if (!globalCuration) {\n return curation;\n }\n\n const curationHasRules = !!curation.boosting.groupings.length || !!curation.boosting.sortings.length;\n\n if (curationHasRules) {\n return curation;\n }\n\n const curationWithGlobalBoosting = {\n ...curation,\n boosting: globalCuration.boosting,\n } as ConfigCuration;\n\n return curationWithGlobalBoosting;\n };\n\n if (curation) {\n return addGlobalBoosting(curation);\n }\n\n if (globalCuration) {\n return globalCuration;\n }\n\n return undefined;\n};\n"]}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getFilterStack = void 0;
|
|
4
4
|
const getFilterStack = (options) => {
|
|
5
5
|
// select filters by type
|
|
6
|
-
const
|
|
6
|
+
const filterType = options.provider.mode;
|
|
7
|
+
const matchingFilterss = options.config.filters.filter((filter) => filter.type === filterType);
|
|
7
8
|
// select filter stack by handle if provided
|
|
8
9
|
if (options.provider.filtersHandle) {
|
|
9
10
|
const matchingFilters = matchingFilterss.find((filterStack) => options.provider.filtersHandle === filterStack.handle);
|
|
@@ -13,7 +14,8 @@ const getFilterStack = (options) => {
|
|
|
13
14
|
}
|
|
14
15
|
// select filter stack by collection if provided
|
|
15
16
|
if (options.provider.mode === "collection" && options.provider.collectionHandle) {
|
|
16
|
-
const
|
|
17
|
+
const collectionHandle = options.provider.collectionHandle;
|
|
18
|
+
const matchingFilters = matchingFilterss.find((filterStack) => { var _a; return (_a = filterStack.collections) === null || _a === void 0 ? void 0 : _a.includes(collectionHandle || ""); });
|
|
17
19
|
if (matchingFilters) {
|
|
18
20
|
return matchingFilters;
|
|
19
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/utility/filters.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,OAG9B,EAAE,EAAE;IACH,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CACpD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/utility/filters.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,OAG9B,EAAE,EAAE;IACH,yBAAyB;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CACpD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CACvC,CAAC;IAEF,4CAA4C;IAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC3C,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,KAAK,WAAW,CAAC,MAAM,CACvE,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAChF,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC3D,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,WAC5D,OAAA,MAAA,WAAW,CAAC,WAAW,0CAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA,EAAA,CAC1D,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,eAAe,GAAG,gBAAgB,CAAC,IAAI,CACzC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAClD,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,0CAA0C;IAC1C,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAC3C,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAClD,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,+CAA+C;IAC/C,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5C,OAAO,eAAe,CAAC;AACzB,CAAC,CAAA;AAnDY,QAAA,cAAc,kBAmD1B","sourcesContent":["import { ReactifySearchProviderProps } from \"../components\";\nimport { Config } from \"../types\";\n\nexport const getFilterStack = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n}) => {\n // select filters by type\n const filterType = options.provider.mode;\n const matchingFilterss = options.config.filters.filter(\n (filter) => filter.type === filterType\n );\n\n // select filter stack by handle if provided\n if (options.provider.filtersHandle) {\n const matchingFilters = matchingFilterss.find(\n (filterStack) => options.provider.filtersHandle === filterStack.handle\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n }\n\n // select filter stack by collection if provided\n if (options.provider.mode === \"collection\" && options.provider.collectionHandle) {\n const collectionHandle = options.provider.collectionHandle;\n const matchingFilters = matchingFilterss.find((filterStack) =>\n filterStack.collections?.includes(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 = options.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 = options.config.filters[0];\n\n return matchingFilters;\n}"]}
|
|
@@ -4,16 +4,10 @@ export declare class ReactifySearchLiquidFactory {
|
|
|
4
4
|
providerProps: Omit<ReactifySearchProviderProps, "shopifyPermanentDomain"> & {
|
|
5
5
|
shopifyPermanentDomain?: string;
|
|
6
6
|
collectionHandle?: string;
|
|
7
|
-
variation?: "collection" | "search";
|
|
8
|
-
handle?: string;
|
|
9
|
-
searchTerm?: string;
|
|
10
7
|
};
|
|
11
8
|
constructor(providerProps: Omit<ReactifySearchProviderProps, "shopifyPermanentDomain"> & {
|
|
12
9
|
shopifyPermanentDomain?: string;
|
|
13
10
|
collectionHandle?: string;
|
|
14
|
-
variation?: "collection" | "search";
|
|
15
|
-
handle?: string;
|
|
16
|
-
searchTerm?: string;
|
|
17
11
|
});
|
|
18
12
|
getProvider(): React.FC<{
|
|
19
13
|
children?: React.ReactNode | undefined;
|
|
@@ -47,21 +47,6 @@ class ReactifySearchLiquidFactory {
|
|
|
47
47
|
throw new Error("Cannot determine collectionHandle from URL");
|
|
48
48
|
return Object.assign(Object.assign({}, baseProps), { mode: "collection", collectionHandle });
|
|
49
49
|
}
|
|
50
|
-
if (this.providerProps.mode === "curated-page") {
|
|
51
|
-
const variation = this.providerProps.variation;
|
|
52
|
-
if (variation === "collection") {
|
|
53
|
-
const handle = this.providerProps.handle;
|
|
54
|
-
if (!handle)
|
|
55
|
-
throw new Error("Handle is required for curated-page collection mode");
|
|
56
|
-
return Object.assign(Object.assign({}, baseProps), { mode: "curated-page", variation: "collection", handle });
|
|
57
|
-
}
|
|
58
|
-
if (variation === "search") {
|
|
59
|
-
const searchTerm = this.providerProps.searchTerm;
|
|
60
|
-
if (!searchTerm)
|
|
61
|
-
throw new Error("SearchTerm is required for curated-page search mode");
|
|
62
|
-
return Object.assign(Object.assign({}, baseProps), { mode: "curated-page", variation: "search", searchTerm });
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
50
|
return baseProps;
|
|
66
51
|
}
|
|
67
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquid.js","sourceRoot":"","sources":["../../../src/utility/liquid.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,wGAGqE;AAErE,MAAa,2BAA2B;IACtC,YACS,
|
|
1
|
+
{"version":3,"file":"liquid.js","sourceRoot":"","sources":["../../../src/utility/liquid.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,wGAGqE;AAErE,MAAa,2BAA2B;IACtC,YACS,aAGN;QAHM,kBAAa,GAAb,aAAa,CAGnB;IACA,CAAC;IAEJ,WAAW;QACT,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9C,MAAM,QAAQ,GAET,CAAC,KAAK,EAAE,EAAE,CAAC,CACd,8BAAC,+CAAsB,oBAAK,aAAa,GAAG,KAAK,CAAC,QAAQ,CAA0B,CACrF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAY;QACV,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gBAAgB;;QACd,MAAM,sBAAsB,GAC1B,MAAA,IAAI,CAAC,aAAa,CAAC,sBAAsB,mCAAI,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,OAAO,0CAAE,IAAI,CAAC;QAE9E,IAAI,CAAC,sBAAsB;YACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAEzE,MAAM,SAAS,mCAAQ,IAAI,CAAC,aAAa,KAAE,sBAAsB,GAAE,CAAC;QAEpE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC7C,MAAM,gBAAgB,GACpB,MAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,mCAAI,MAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACrF,uCAAY,SAAS,KAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,IAAG;QAChE,CAAC;QAGD,OAAO,SAAwC,CAAC;IAClD,CAAC;CACF;AAjED,kEAiEC","sourcesContent":["import React from \"react\";\n\nimport {\n ReactifySearchProvider,\n ReactifySearchProviderProps,\n} from \"../components/ReactifySearchProvider/ReactifySearchProvider\";\n\nexport class ReactifySearchLiquidFactory {\n constructor(\n public providerProps: Omit<ReactifySearchProviderProps, \"shopifyPermanentDomain\"> & {\n shopifyPermanentDomain?: string;\n collectionHandle?: string;\n }\n ) {}\n\n getProvider() {\n const providerProps = this.getProviderProps();\n\n const provider: React.FC<{\n children?: React.ReactNode | undefined;\n }> = (props) => (\n <ReactifySearchProvider {...providerProps}>{props.children}</ReactifySearchProvider>\n );\n\n return provider;\n }\n\n getMountNode() {\n const mountNode = document.getElementById(`reactify-mount-${this.providerProps.mode}`);\n if (!mountNode) {\n throw new Error(`Cannot find mount node with ID \"reactify-mount-${this.providerProps.mode}\"`);\n }\n\n return mountNode;\n }\n\n getData() {\n const dataNode = document.getElementById(\"reactify-data\");\n if (!dataNode) {\n throw new Error(`Cannot find data node with ID \"reactify-data\"`);\n }\n\n try {\n const data = JSON.parse(dataNode.innerHTML);\n\n return data;\n } catch {\n throw new Error(\n `Cannot parse the data node with ID \"reactify-data\", check your liquid formatting`\n );\n }\n }\n\n getProviderProps(): ReactifySearchProviderProps {\n const shopifyPermanentDomain =\n this.providerProps.shopifyPermanentDomain ?? (window as any)?.Shopify?.shop;\n\n if (!shopifyPermanentDomain)\n throw new Error(\"Cannot determine shopifyPermanentDomain from window\");\n\n const baseProps = { ...this.providerProps, shopifyPermanentDomain };\n\n if (this.providerProps.mode === \"collection\") {\n const collectionHandle =\n this.providerProps.collectionHandle ?? window.location.pathname.split(\"/\")?.[2];\n if (!collectionHandle) throw new Error(\"Cannot determine collectionHandle from URL\");\n return { ...baseProps, mode: \"collection\", collectionHandle };\n }\n\n\n return baseProps as ReactifySearchProviderProps;\n }\n}\n"]}
|
|
@@ -229,7 +229,7 @@ export declare const getPropsSensorCollection: (options: GeneratePropsSensorOpti
|
|
|
229
229
|
};
|
|
230
230
|
} | null;
|
|
231
231
|
} | null;
|
|
232
|
-
export declare const
|
|
232
|
+
export declare const getPropsSensorCollectionWeighted: ({ provider, config }: GeneratePropsSensorOptions) => {
|
|
233
233
|
source: import("react").ComponentClass<import("@usereactify/search-internals/lib/components/basic/ReactiveComponent").ReactiveComponentProps, any>;
|
|
234
234
|
componentId: string;
|
|
235
235
|
customQuery: () => {
|
|
@@ -305,7 +305,9 @@ export declare const getPropsSensorCuratedPageCollection: ({ provider, config, }
|
|
|
305
305
|
};
|
|
306
306
|
};
|
|
307
307
|
} | null;
|
|
308
|
-
export declare const
|
|
308
|
+
export declare const getPropsSensorSearchWeighted: ({ provider, config, searchTerm, }: GeneratePropsSensorOptions & {
|
|
309
|
+
searchTerm?: string;
|
|
310
|
+
}) => {
|
|
309
311
|
source: import("react").ComponentClass<import("@usereactify/search-internals/lib/components/basic/ReactiveComponent").ReactiveComponentProps, any>;
|
|
310
312
|
componentId: string;
|
|
311
313
|
customQuery: () => {
|
|
@@ -414,6 +416,7 @@ export declare const getPropsSensorCuratedPageSearch: ({ provider, config, }: Ge
|
|
|
414
416
|
[x: string]: {
|
|
415
417
|
query: string;
|
|
416
418
|
fuzziness: number;
|
|
419
|
+
analyzer: string;
|
|
417
420
|
};
|
|
418
421
|
};
|
|
419
422
|
};
|
|
@@ -426,7 +429,7 @@ export declare const getPropsSensorCuratedPageSearch: ({ provider, config, }: Ge
|
|
|
426
429
|
boost_mode: string;
|
|
427
430
|
};
|
|
428
431
|
};
|
|
429
|
-
}
|
|
432
|
+
};
|
|
430
433
|
} | null;
|
|
431
434
|
export declare const getPropsSensorPublished: (options: GeneratePropsSensorOptions) => {
|
|
432
435
|
source: import("react").ComponentClass<import("@usereactify/search-internals/lib/components/basic/ReactiveComponent").ReactiveComponentProps, any>;
|
|
@@ -520,7 +523,7 @@ export declare const getPropsBase: (options: GeneratePropsBase) => {
|
|
|
520
523
|
transformResponse: (response: any) => Promise<any>;
|
|
521
524
|
headers: {
|
|
522
525
|
"x-reactify-shop": string;
|
|
523
|
-
"x-reactify-mode": "search" | "collection" | "instant-search"
|
|
526
|
+
"x-reactify-mode": "search" | "collection" | "instant-search";
|
|
524
527
|
"x-reactify-client-id": string | undefined;
|
|
525
528
|
"x-reactify-client-version": string;
|
|
526
529
|
};
|