@usereactify/search 5.47.0 → 5.48.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/package.json +1 -1
- package/dist/src/components/Filter/Filter.js +45 -10
- package/dist/src/components/Filter/Filter.js.map +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
- package/dist/src/components/Result/Results.d.ts +0 -2
- package/dist/src/components/Result/Results.js +9 -21
- package/dist/src/components/Result/Results.js.map +1 -1
- package/dist/src/components/Sensor/SensorCollection.js +8 -80
- package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
- package/dist/src/components/Sensor/SensorCustom.js +6 -2
- package/dist/src/components/Sensor/SensorCustom.js.map +1 -1
- package/dist/src/components/Sensor/SensorInventoryAvailable.js +8 -44
- package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
- package/dist/src/components/Sensor/SensorPublished.js +7 -27
- package/dist/src/components/Sensor/SensorPublished.js.map +1 -1
- package/dist/src/components/Sensor/SensorSort.js +10 -203
- package/dist/src/components/Sensor/SensorSort.js.map +1 -1
- package/dist/src/hooks/reactivesearch/index.d.ts +0 -6
- package/dist/src/hooks/reactivesearch/index.js +0 -6
- package/dist/src/hooks/reactivesearch/index.js.map +1 -1
- package/dist/src/hooks/usePagination.js +1 -1
- package/dist/src/hooks/usePagination.js.map +1 -1
- package/dist/src/hooks/useSortBy.js +14 -17
- package/dist/src/hooks/useSortBy.js.map +1 -1
- package/dist/src/utility/curation.d.ts +7 -0
- package/dist/src/utility/curation.js +85 -0
- package/dist/src/utility/curation.js.map +1 -0
- package/dist/src/utility/filters.d.ts +6 -0
- package/dist/src/utility/filters.js +36 -0
- package/dist/src/utility/filters.js.map +1 -0
- package/dist/src/utility/props.d.ts +143 -10
- package/dist/src/utility/props.js +241 -25
- package/dist/src/utility/props.js.map +1 -1
- package/dist/src/utility/server.js +1 -1
- package/dist/src/utility/server.js.map +1 -1
- package/dist/src/utility/sortOption.d.ts +22 -0
- package/dist/src/utility/sortOption.js +198 -0
- package/dist/src/utility/sortOption.js.map +1 -0
- package/package.json +1 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.d.ts +0 -84
- package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js +0 -21
- package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.d.ts +0 -86
- package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +0 -32
- package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.d.ts +0 -77
- package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js +0 -124
- package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.d.ts +0 -83
- package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +0 -28
- package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveReactProp.d.ts +0 -4
- package/dist/src/hooks/reactivesearch/useReactiveReactProp.js +0 -32
- package/dist/src/hooks/reactivesearch/useReactiveReactProp.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.d.ts +0 -6
- package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js +0 -38
- package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortOption.js","sourceRoot":"","sources":["../../../src/utility/sortOption.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReactifySearchProviderProps } from \"../components\";\nimport { Config, ConfigCuration, ConfigSort } from \"../types\";\n\nexport const getSortOptions = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n sortOption?: string;\n}) => {\n return options.config.sort\n .sort((a, b) => {\n const aInt =\n typeof a.position === \"string\"\n ? parseInt(a.position, 10)\n : a.position;\n const bInt =\n typeof b.position === \"string\"\n ? parseInt(b.position, 10)\n : b.position;\n return aInt - bInt;\n })\n .filter(({ visibility }) => [\"all\", options.provider.mode].includes(visibility));\n\n}\n\nexport const getSortOption = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n sortOption?: string;\n}) => {\n const sortOptions = getSortOptions(options);\n\n return sortOptions.find(({ handle }) => handle === options.sortOption) ?? sortOptions[0];\n}\n\nexport const generateSortSort = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n}) => {\n // curation positions are only applied for the default `collections.position` or `_score` sort\n // if the sort is something else, apply a normal sort which applies what the user has requested\n if (options.provider.mode !== \"instant-search\") {\n if (\n options.sortOption &&\n ![\"_score\", \"collections.position\"].includes(options.sortOption.field)\n ) {\n return [{ [options.sortOption.field]: options.sortOption.direction }];\n }\n }\n\n const sorts = [];\n\n // collection curation pin sorting\n if (options.provider.mode === \"collection\" && options.provider.collectionHandle) {\n if (options.curation?.collectionHandle) {\n const queries: Array<unknown> = [{\n term: {\n \"curations.collectionHandle.keyword\": options.curation.collectionHandle,\n },\n }];\n if (options.provider.market) {\n queries.push({\n term: {\n \"curations.markets.keyword\": options.provider.market,\n },\n });\n }\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n bool: {\n must: queries\n }\n }\n },\n },\n });\n }\n }\n\n // search options.curation pin sorting\n if (options.provider.mode === \"search\" || options.provider.mode === \"instant-search\") {\n if (options.curation?.searchTerm) {\n const queries: Array<unknown> = [{\n term: {\n \"curations.searchTerm.keyword\": options.curation.searchTerm.toLowerCase(),\n },\n }];\n if (options.provider.market) {\n queries.push({\n term: {\n \"curations.markets.keyword\": options.provider.market,\n },\n });\n }\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n bool: {\n must: queries\n }\n }\n },\n },\n });\n }\n }\n\n // options.curation boost sorting\n if (options.curation) {\n if (0 < options.curation.boosting.groupings.length) {\n const groupings = options.curation.boosting.groupings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const grouping of groupings) {\n try {\n const query = JSON.parse(grouping.query);\n if (query) sorts.push(query);\n } catch {\n console.error(\n `query could not be parsed for boost grouping`,\n grouping\n );\n }\n }\n }\n\n if (0 < options.curation.boosting.sortings.length) {\n const sortings = options.curation.boosting.sortings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const sorting of sortings) {\n try {\n const query = JSON.parse(sorting.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost sorting`, sorting);\n }\n }\n }\n }\n\n // default collection sorting\n if (options.provider.mode === \"collection\" && options.provider.collectionHandle) {\n sorts.push({\n \"collections.position\": {\n order: \"asc\",\n nested: {\n path: \"collections\",\n filter: {\n term: {\n \"collections.handle.keyword\": options.provider.collectionHandle,\n },\n },\n },\n },\n });\n }\n\n // default search sorting\n if (options.provider.mode === \"search\" || options.provider.mode === \"instant-search\") {\n sorts.push(\"_score\");\n }\n\n return sorts;\n}\n\nexport const generateSortQuery = (options: {\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n}): Record<string, any> | undefined => {\n if (!options.curation || options.curation.id.includes(\"global\")) {\n return undefined;\n }\n\n return {\n bool: {\n must_not: [\n {\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: [\n {\n term: {\n [`curations.${\n \"collection\" === options.curation.type\n ? \"collectionHandle\"\n : \"searchTerm\"\n }.keyword`]:\n \"collection\" === options.curation.type\n ? options.curation.collectionHandle\n : options.curation.searchTerm?.toLowerCase(),\n },\n },\n {\n term: {\n \"curations.hidden\": true,\n },\n },\n ],\n },\n },\n },\n },\n // hide callout when not sorting by _score or collections.position\n ...(options.sortOption &&\n ![\"_score\", \"collections.position\"].includes(options.sortOption.field)\n ? [\n {\n term: {\n type: \"callout\",\n },\n },\n ]\n : []),\n ],\n },\n };\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import type { ConfigFilterOption } from "../../types/config";
|
|
2
|
-
/**
|
|
3
|
-
* For use with @appbaseio/reactivesearch SingleList and MultiList components
|
|
4
|
-
*/
|
|
5
|
-
export declare const useReactiveFilterListProps: (filter: ConfigFilterOption) => {
|
|
6
|
-
size: number | undefined;
|
|
7
|
-
queryFormat: "and" | "or";
|
|
8
|
-
showFilter: boolean;
|
|
9
|
-
showLoadMore: boolean;
|
|
10
|
-
showSearch: boolean;
|
|
11
|
-
showRadio: boolean;
|
|
12
|
-
showCheckbox: boolean;
|
|
13
|
-
nestedField: string | undefined;
|
|
14
|
-
customQuery: ((value?: string | string[] | undefined) => {
|
|
15
|
-
query?: undefined;
|
|
16
|
-
} | {
|
|
17
|
-
query: {
|
|
18
|
-
nested: {
|
|
19
|
-
path: string;
|
|
20
|
-
query: {
|
|
21
|
-
bool: {
|
|
22
|
-
must: ({
|
|
23
|
-
match: {
|
|
24
|
-
"variants.available": string;
|
|
25
|
-
};
|
|
26
|
-
terms?: undefined;
|
|
27
|
-
} | {
|
|
28
|
-
terms: {
|
|
29
|
-
[x: string]: string[];
|
|
30
|
-
};
|
|
31
|
-
match?: undefined;
|
|
32
|
-
})[];
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
}) | undefined;
|
|
38
|
-
defaultQuery: (() => {
|
|
39
|
-
aggs: {
|
|
40
|
-
reactivesearch_nested: {
|
|
41
|
-
nested: {
|
|
42
|
-
path: string;
|
|
43
|
-
};
|
|
44
|
-
aggs: {
|
|
45
|
-
reactify_nested_outer: {
|
|
46
|
-
filter: {
|
|
47
|
-
bool: {
|
|
48
|
-
minimum_should_match: number;
|
|
49
|
-
should: {
|
|
50
|
-
match: {
|
|
51
|
-
"variants.available": string;
|
|
52
|
-
};
|
|
53
|
-
}[];
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
aggs: {
|
|
57
|
-
[x: string]: {
|
|
58
|
-
terms: {
|
|
59
|
-
field: string;
|
|
60
|
-
size: number;
|
|
61
|
-
order: {
|
|
62
|
-
_count: string;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
aggs: {
|
|
66
|
-
parent_docs: {
|
|
67
|
-
reverse_nested: {};
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
}) | undefined;
|
|
77
|
-
URLParams: boolean;
|
|
78
|
-
componentId: string;
|
|
79
|
-
dataField: string;
|
|
80
|
-
filterLabel: string;
|
|
81
|
-
react: {
|
|
82
|
-
and: string[];
|
|
83
|
-
};
|
|
84
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useReactiveFilterListProps = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const useReactiveFilterSharedProps_1 = require("./useReactiveFilterSharedProps");
|
|
9
|
-
/**
|
|
10
|
-
* For use with @appbaseio/reactivesearch SingleList and MultiList components
|
|
11
|
-
*/
|
|
12
|
-
const useReactiveFilterListProps = (filter) => {
|
|
13
|
-
const reactiveFilterSharedProps = (0, useReactiveFilterSharedProps_1.useReactiveFilterSharedProps)(filter);
|
|
14
|
-
const reactiveFilterListProps = react_1.default.useMemo(() => {
|
|
15
|
-
var _a, _b, _c, _d;
|
|
16
|
-
return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { size: parseInt(filter.displaySize) || undefined, queryFormat: (_a = filter.settingsFilterLogic) !== null && _a !== void 0 ? _a : "or", showFilter: (_b = filter.settingsShowFilter) !== null && _b !== void 0 ? _b : true, showLoadMore: (_c = filter.settingsShowMore) !== null && _c !== void 0 ? _c : false, showSearch: (_d = filter.settingsShowSearch) !== null && _d !== void 0 ? _d : false, showRadio: false, showCheckbox: false }));
|
|
17
|
-
}, [filter, reactiveFilterSharedProps]);
|
|
18
|
-
return reactiveFilterListProps;
|
|
19
|
-
};
|
|
20
|
-
exports.useReactiveFilterListProps = useReactiveFilterListProps;
|
|
21
|
-
//# sourceMappingURL=useReactiveFilterListProps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useReactiveFilterListProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveFilterListProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,iFAA8E;AAE9E;;GAEG;AACI,MAAM,0BAA0B,GAAG,CAAC,MAA0B,EAAE,EAAE;IACvE,MAAM,yBAAyB,GAAG,IAAA,2DAA4B,EAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,uBAAuB,GAAG,eAAK,CAAC,OAAO,CAC3C,GAAG,EAAE;;QAAC,OAAA,iCACD,yBAAyB,KAC5B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,EAC/C,WAAW,EAAE,MAAA,MAAM,CAAC,mBAAmB,mCAAI,IAAI,EAC/C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,IAAI,EAC7C,YAAY,EAAE,MAAA,MAAM,CAAC,gBAAgB,mCAAI,KAAK,EAC9C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,KAAK,EAC9C,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,KAAK,IACnB,CAAA;KAAA,EACF,CAAC,MAAM,EAAE,yBAAyB,CAAC,CACpC,CAAC;IAEF,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAlBW,QAAA,0BAA0B,8BAkBrC","sourcesContent":["import React from \"react\";\n\nimport type { ConfigFilterOption } from \"../../types/config\";\nimport { useReactiveFilterSharedProps } from \"./useReactiveFilterSharedProps\";\n\n/**\n * For use with @appbaseio/reactivesearch SingleList and MultiList components\n */\nexport const useReactiveFilterListProps = (filter: ConfigFilterOption) => {\n const reactiveFilterSharedProps = useReactiveFilterSharedProps(filter);\n\n const reactiveFilterListProps = React.useMemo(\n () => ({\n ...reactiveFilterSharedProps,\n size: parseInt(filter.displaySize) || undefined,\n queryFormat: filter.settingsFilterLogic ?? \"or\",\n showFilter: filter.settingsShowFilter ?? true,\n showLoadMore: filter.settingsShowMore ?? false,\n showSearch: filter.settingsShowSearch ?? false,\n showRadio: false,\n showCheckbox: false,\n }),\n [filter, reactiveFilterSharedProps]\n );\n\n return reactiveFilterListProps;\n};\n"]}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { ConfigFilterOption } from "../../types";
|
|
2
|
-
/**
|
|
3
|
-
* For use with @appbaseio/reactivesearch SingleRange and MultiRange components
|
|
4
|
-
*/
|
|
5
|
-
export declare const useReactiveFilterRangeProps: (filter: ConfigFilterOption) => {
|
|
6
|
-
queryFormat: "and" | "or";
|
|
7
|
-
showFilter: boolean;
|
|
8
|
-
showRadio: boolean;
|
|
9
|
-
showCheckbox: boolean;
|
|
10
|
-
data: {
|
|
11
|
-
label: string;
|
|
12
|
-
start: number;
|
|
13
|
-
end: number;
|
|
14
|
-
}[];
|
|
15
|
-
nestedField: string | undefined;
|
|
16
|
-
customQuery: ((value?: string | string[] | undefined) => {
|
|
17
|
-
query?: undefined;
|
|
18
|
-
} | {
|
|
19
|
-
query: {
|
|
20
|
-
nested: {
|
|
21
|
-
path: string;
|
|
22
|
-
query: {
|
|
23
|
-
bool: {
|
|
24
|
-
must: ({
|
|
25
|
-
match: {
|
|
26
|
-
"variants.available": string;
|
|
27
|
-
};
|
|
28
|
-
terms?: undefined;
|
|
29
|
-
} | {
|
|
30
|
-
terms: {
|
|
31
|
-
[x: string]: string[];
|
|
32
|
-
};
|
|
33
|
-
match?: undefined;
|
|
34
|
-
})[];
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
}) | undefined;
|
|
40
|
-
defaultQuery: (() => {
|
|
41
|
-
aggs: {
|
|
42
|
-
reactivesearch_nested: {
|
|
43
|
-
nested: {
|
|
44
|
-
path: string;
|
|
45
|
-
};
|
|
46
|
-
aggs: {
|
|
47
|
-
reactify_nested_outer: {
|
|
48
|
-
filter: {
|
|
49
|
-
bool: {
|
|
50
|
-
minimum_should_match: number;
|
|
51
|
-
should: {
|
|
52
|
-
match: {
|
|
53
|
-
"variants.available": string;
|
|
54
|
-
};
|
|
55
|
-
}[];
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
aggs: {
|
|
59
|
-
[x: string]: {
|
|
60
|
-
terms: {
|
|
61
|
-
field: string;
|
|
62
|
-
size: number;
|
|
63
|
-
order: {
|
|
64
|
-
_count: string;
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
aggs: {
|
|
68
|
-
parent_docs: {
|
|
69
|
-
reverse_nested: {};
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
}) | undefined;
|
|
79
|
-
URLParams: boolean;
|
|
80
|
-
componentId: string;
|
|
81
|
-
dataField: string;
|
|
82
|
-
filterLabel: string;
|
|
83
|
-
react: {
|
|
84
|
-
and: string[];
|
|
85
|
-
};
|
|
86
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useReactiveFilterRangeProps = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const useReactiveFilterSharedProps_1 = require("./useReactiveFilterSharedProps");
|
|
9
|
-
/**
|
|
10
|
-
* For use with @appbaseio/reactivesearch SingleRange and MultiRange components
|
|
11
|
-
*/
|
|
12
|
-
const useReactiveFilterRangeProps = (filter) => {
|
|
13
|
-
const reactiveFilterSharedProps = (0, useReactiveFilterSharedProps_1.useReactiveFilterSharedProps)(filter);
|
|
14
|
-
const data = react_1.default.useMemo(() => {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
return ((_b = (_a = filter.displayRangeOptions) === null || _a === void 0 ? void 0 : _a.map((option) => {
|
|
17
|
-
const [label, start, end] = option.split(":");
|
|
18
|
-
return {
|
|
19
|
-
label: label,
|
|
20
|
-
start: start ? parseInt(start) : 0,
|
|
21
|
-
end: end ? parseInt(end) : Number.MAX_SAFE_INTEGER,
|
|
22
|
-
};
|
|
23
|
-
})) !== null && _b !== void 0 ? _b : []);
|
|
24
|
-
}, []);
|
|
25
|
-
const reactiveFilterRangeProps = react_1.default.useMemo(() => {
|
|
26
|
-
var _a, _b;
|
|
27
|
-
return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { queryFormat: (_a = filter.settingsFilterLogic) !== null && _a !== void 0 ? _a : "or", showFilter: (_b = filter.settingsShowFilter) !== null && _b !== void 0 ? _b : true, showRadio: false, showCheckbox: false, data: data }));
|
|
28
|
-
}, [filter, reactiveFilterSharedProps]);
|
|
29
|
-
return reactiveFilterRangeProps;
|
|
30
|
-
};
|
|
31
|
-
exports.useReactiveFilterRangeProps = useReactiveFilterRangeProps;
|
|
32
|
-
//# sourceMappingURL=useReactiveFilterRangeProps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useReactiveFilterRangeProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveFilterRangeProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAI1B,iFAA8E;AAE9E;;GAEG;AACI,MAAM,2BAA2B,GAAG,CAAC,MAA0B,EAAE,EAAE;IACxE,MAAM,yBAAyB,GAAG,IAAA,2DAA4B,EAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QAC9B,OAAO,CACL,MAAA,MAAA,MAAM,CAAC,mBAAmB,0CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB;aACnD,CAAC;QACJ,CAAC,CAAC,mCAAI,EAAE,CACT,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,wBAAwB,GAAG,eAAK,CAAC,OAAO,CAC5C,GAAG,EAAE;;QAAC,OAAA,iCACD,yBAAyB,KAC5B,WAAW,EAAE,MAAA,MAAM,CAAC,mBAAmB,mCAAI,IAAI,EAC/C,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,IAAI,EAC7C,SAAS,EAAE,KAAK,EAChB,YAAY,EAAE,KAAK,EACnB,IAAI,EAAE,IAAI,IACV,CAAA;KAAA,EACF,CAAC,MAAM,EAAE,yBAAyB,CAAC,CACpC,CAAC;IAEF,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAC;AA7BW,QAAA,2BAA2B,+BA6BtC","sourcesContent":["import React from \"react\";\n\nimport { ConfigFilterOption } from \"../../types\";\n\nimport { useReactiveFilterSharedProps } from \"./useReactiveFilterSharedProps\";\n\n/**\n * For use with @appbaseio/reactivesearch SingleRange and MultiRange components\n */\nexport const useReactiveFilterRangeProps = (filter: ConfigFilterOption) => {\n const reactiveFilterSharedProps = useReactiveFilterSharedProps(filter);\n\n const data = React.useMemo(() => {\n return (\n filter.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 }, []);\n\n const reactiveFilterRangeProps = React.useMemo(\n () => ({\n ...reactiveFilterSharedProps,\n queryFormat: filter.settingsFilterLogic ?? \"or\",\n showFilter: filter.settingsShowFilter ?? true,\n showRadio: false,\n showCheckbox: false,\n data: data,\n }),\n [filter, reactiveFilterSharedProps]\n );\n\n return reactiveFilterRangeProps;\n};\n"]}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import type { ConfigFilterOption } from "../../types/config";
|
|
2
|
-
/**
|
|
3
|
-
* For use with all @appbaseio/reactivesearch filter components
|
|
4
|
-
*/
|
|
5
|
-
export declare const useReactiveFilterSharedProps: (filter: ConfigFilterOption) => {
|
|
6
|
-
nestedField: string | undefined;
|
|
7
|
-
customQuery: ((value?: string | string[] | undefined) => {
|
|
8
|
-
query?: undefined;
|
|
9
|
-
} | {
|
|
10
|
-
query: {
|
|
11
|
-
nested: {
|
|
12
|
-
path: string;
|
|
13
|
-
query: {
|
|
14
|
-
bool: {
|
|
15
|
-
must: ({
|
|
16
|
-
match: {
|
|
17
|
-
"variants.available": string;
|
|
18
|
-
};
|
|
19
|
-
terms?: undefined;
|
|
20
|
-
} | {
|
|
21
|
-
terms: {
|
|
22
|
-
[x: string]: string[];
|
|
23
|
-
};
|
|
24
|
-
match?: undefined;
|
|
25
|
-
})[];
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
}) | undefined;
|
|
31
|
-
defaultQuery: (() => {
|
|
32
|
-
aggs: {
|
|
33
|
-
reactivesearch_nested: {
|
|
34
|
-
nested: {
|
|
35
|
-
path: string;
|
|
36
|
-
};
|
|
37
|
-
aggs: {
|
|
38
|
-
reactify_nested_outer: {
|
|
39
|
-
filter: {
|
|
40
|
-
bool: {
|
|
41
|
-
minimum_should_match: number;
|
|
42
|
-
should: {
|
|
43
|
-
match: {
|
|
44
|
-
"variants.available": string;
|
|
45
|
-
};
|
|
46
|
-
}[];
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
aggs: {
|
|
50
|
-
[x: string]: {
|
|
51
|
-
terms: {
|
|
52
|
-
field: string;
|
|
53
|
-
size: number;
|
|
54
|
-
order: {
|
|
55
|
-
_count: string;
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
aggs: {
|
|
59
|
-
parent_docs: {
|
|
60
|
-
reverse_nested: {};
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
}) | undefined;
|
|
70
|
-
URLParams: boolean;
|
|
71
|
-
componentId: string;
|
|
72
|
-
dataField: string;
|
|
73
|
-
filterLabel: string;
|
|
74
|
-
react: {
|
|
75
|
-
and: string[];
|
|
76
|
-
};
|
|
77
|
-
};
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useReactiveFilterSharedProps = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const useReactiveReactProp_1 = require("./useReactiveReactProp");
|
|
9
|
-
/**
|
|
10
|
-
* For use with all @appbaseio/reactivesearch filter components
|
|
11
|
-
*/
|
|
12
|
-
const useReactiveFilterSharedProps = (filter) => {
|
|
13
|
-
const reactiveReactProp = (0, useReactiveReactProp_1.useReactiveReactProp)(filter.handle, filter);
|
|
14
|
-
const nestedField = react_1.default.useMemo(() => {
|
|
15
|
-
const nestedFields = ["variants"];
|
|
16
|
-
const topField = filter.field.split(".")[0];
|
|
17
|
-
if (nestedFields.includes(topField))
|
|
18
|
-
return topField;
|
|
19
|
-
return undefined;
|
|
20
|
-
}, [filter]);
|
|
21
|
-
// define a custom query for when settingsHideUnavailable is enabled and the target field is inside variants
|
|
22
|
-
// customQuery defines how this filter affects *other* components like the results component
|
|
23
|
-
const customQuery = react_1.default.useMemo(() => {
|
|
24
|
-
if (!filter.settingsHideUnavailable ||
|
|
25
|
-
!filter.field.startsWith("variants."))
|
|
26
|
-
return undefined;
|
|
27
|
-
return (value) => {
|
|
28
|
-
if (!value)
|
|
29
|
-
return {};
|
|
30
|
-
// reactivesearch sometimes returns string, sometimes string[]
|
|
31
|
-
const valueArray = "string" === typeof value ? [value] : value;
|
|
32
|
-
if (0 === valueArray.length)
|
|
33
|
-
return {};
|
|
34
|
-
return {
|
|
35
|
-
query: {
|
|
36
|
-
nested: {
|
|
37
|
-
path: "variants",
|
|
38
|
-
query: {
|
|
39
|
-
bool: {
|
|
40
|
-
must: [
|
|
41
|
-
{
|
|
42
|
-
match: {
|
|
43
|
-
"variants.available": "true",
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
terms: {
|
|
48
|
-
[filter.field]: valueArray,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
}, [filter]);
|
|
59
|
-
// define a default query for when settingsHideUnavailable is enabled and the target field is inside variants
|
|
60
|
-
// defaultQuery defines how this filter affects itself i.e. the options displayed
|
|
61
|
-
const defaultQuery = react_1.default.useMemo(() => {
|
|
62
|
-
if (!filter.field.startsWith("variants.")) {
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
// override the aggregation query to filter the results by the variants.available attribute
|
|
66
|
-
return () => {
|
|
67
|
-
return {
|
|
68
|
-
aggs: {
|
|
69
|
-
reactivesearch_nested: {
|
|
70
|
-
nested: { path: "variants" },
|
|
71
|
-
aggs: {
|
|
72
|
-
reactify_nested_outer: {
|
|
73
|
-
filter: {
|
|
74
|
-
bool: {
|
|
75
|
-
minimum_should_match: 1,
|
|
76
|
-
should: [
|
|
77
|
-
{
|
|
78
|
-
match: {
|
|
79
|
-
"variants.available": "true",
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
match: {
|
|
84
|
-
"variants.available": filter.settingsHideUnavailable
|
|
85
|
-
? "true"
|
|
86
|
-
: "false",
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
aggs: {
|
|
93
|
-
[filter.field]: {
|
|
94
|
-
terms: {
|
|
95
|
-
field: filter.field,
|
|
96
|
-
size: 100,
|
|
97
|
-
order: { _count: "desc" },
|
|
98
|
-
},
|
|
99
|
-
aggs: {
|
|
100
|
-
parent_docs: { reverse_nested: {} },
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
}, [filter]);
|
|
111
|
-
const reactiveFilterSharedProps = react_1.default.useMemo(() => ({
|
|
112
|
-
nestedField,
|
|
113
|
-
customQuery,
|
|
114
|
-
defaultQuery,
|
|
115
|
-
URLParams: true,
|
|
116
|
-
componentId: filter.handle,
|
|
117
|
-
dataField: filter.field,
|
|
118
|
-
filterLabel: filter.name,
|
|
119
|
-
react: reactiveReactProp,
|
|
120
|
-
}), [filter, reactiveReactProp]);
|
|
121
|
-
return reactiveFilterSharedProps;
|
|
122
|
-
};
|
|
123
|
-
exports.useReactiveFilterSharedProps = useReactiveFilterSharedProps;
|
|
124
|
-
//# sourceMappingURL=useReactiveFilterSharedProps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useReactiveFilterSharedProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveFilterSharedProps.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport type { ConfigFilterOption } from \"../../types/config\";\n\nimport { useReactiveReactProp } from \"./useReactiveReactProp\";\n\n/**\n * For use with all @appbaseio/reactivesearch filter components\n */\nexport const useReactiveFilterSharedProps = (filter: ConfigFilterOption) => {\n const reactiveReactProp = useReactiveReactProp(filter.handle, filter);\n\n const nestedField = React.useMemo(() => {\n const nestedFields = [\"variants\"];\n const topField = filter.field.split(\".\")[0];\n if (nestedFields.includes(topField)) return topField;\n return undefined;\n }, [filter]);\n\n // define a custom query for when settingsHideUnavailable is enabled and the target field is inside variants\n // customQuery defines how this filter affects *other* components like the results component\n const customQuery = React.useMemo(() => {\n if (\n !filter.settingsHideUnavailable ||\n !filter.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 [filter.field]: valueArray,\n },\n },\n ],\n },\n },\n },\n },\n };\n };\n }, [filter]);\n\n // define a default query for when settingsHideUnavailable is enabled and the target field is inside variants\n // defaultQuery defines how this filter affects itself i.e. the options displayed\n const defaultQuery = React.useMemo(() => {\n if (!filter.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\": filter.settingsHideUnavailable\n ? \"true\"\n : \"false\",\n },\n },\n ],\n },\n },\n aggs: {\n [filter.field]: {\n terms: {\n field: filter.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 }, [filter]);\n\n const reactiveFilterSharedProps = React.useMemo(\n () => ({\n nestedField,\n customQuery,\n defaultQuery,\n URLParams: true,\n componentId: filter.handle,\n dataField: filter.field,\n filterLabel: filter.name,\n react: reactiveReactProp,\n }),\n [filter, reactiveReactProp]\n );\n\n return reactiveFilterSharedProps;\n};\n"]}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import type { ConfigFilterOption } from "../../types/config";
|
|
2
|
-
/**
|
|
3
|
-
* For use with @appbaseio/reactivesearch RangeSlider component
|
|
4
|
-
*/
|
|
5
|
-
export declare const useReactiveFilterSliderProps: (filter: ConfigFilterOption) => {
|
|
6
|
-
showFilter: boolean;
|
|
7
|
-
rangeLabels: (min: number, max: number) => {
|
|
8
|
-
start: string;
|
|
9
|
-
end: string;
|
|
10
|
-
};
|
|
11
|
-
stepValue: number;
|
|
12
|
-
nestedField: string | undefined;
|
|
13
|
-
customQuery: ((value?: string | string[] | undefined) => {
|
|
14
|
-
query?: undefined;
|
|
15
|
-
} | {
|
|
16
|
-
query: {
|
|
17
|
-
nested: {
|
|
18
|
-
path: string;
|
|
19
|
-
query: {
|
|
20
|
-
bool: {
|
|
21
|
-
must: ({
|
|
22
|
-
match: {
|
|
23
|
-
"variants.available": string;
|
|
24
|
-
};
|
|
25
|
-
terms?: undefined;
|
|
26
|
-
} | {
|
|
27
|
-
terms: {
|
|
28
|
-
[x: string]: string[];
|
|
29
|
-
};
|
|
30
|
-
match?: undefined;
|
|
31
|
-
})[];
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
}) | undefined;
|
|
37
|
-
defaultQuery: (() => {
|
|
38
|
-
aggs: {
|
|
39
|
-
reactivesearch_nested: {
|
|
40
|
-
nested: {
|
|
41
|
-
path: string;
|
|
42
|
-
};
|
|
43
|
-
aggs: {
|
|
44
|
-
reactify_nested_outer: {
|
|
45
|
-
filter: {
|
|
46
|
-
bool: {
|
|
47
|
-
minimum_should_match: number;
|
|
48
|
-
should: {
|
|
49
|
-
match: {
|
|
50
|
-
"variants.available": string;
|
|
51
|
-
};
|
|
52
|
-
}[];
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
aggs: {
|
|
56
|
-
[x: string]: {
|
|
57
|
-
terms: {
|
|
58
|
-
field: string;
|
|
59
|
-
size: number;
|
|
60
|
-
order: {
|
|
61
|
-
_count: string;
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
aggs: {
|
|
65
|
-
parent_docs: {
|
|
66
|
-
reverse_nested: {};
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
}) | undefined;
|
|
76
|
-
URLParams: boolean;
|
|
77
|
-
componentId: string;
|
|
78
|
-
dataField: string;
|
|
79
|
-
filterLabel: string;
|
|
80
|
-
react: {
|
|
81
|
-
and: string[];
|
|
82
|
-
};
|
|
83
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useReactiveFilterSliderProps = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const useReactiveFilterSharedProps_1 = require("./useReactiveFilterSharedProps");
|
|
9
|
-
/**
|
|
10
|
-
* For use with @appbaseio/reactivesearch RangeSlider component
|
|
11
|
-
*/
|
|
12
|
-
const useReactiveFilterSliderProps = (filter) => {
|
|
13
|
-
const reactiveFilterSharedProps = (0, useReactiveFilterSharedProps_1.useReactiveFilterSharedProps)(filter);
|
|
14
|
-
const rangeLabelsFn = react_1.default.useCallback((min, max) => {
|
|
15
|
-
var _a, _b, _c, _d;
|
|
16
|
-
return ({
|
|
17
|
-
start: `${(_a = filter.displaySliderPrefix) !== null && _a !== void 0 ? _a : ""}${min}${(_b = filter.displaySliderSuffix) !== null && _b !== void 0 ? _b : ""}`,
|
|
18
|
-
end: `${(_c = filter.displaySliderPrefix) !== null && _c !== void 0 ? _c : ""}${max}${(_d = filter.displaySliderSuffix) !== null && _d !== void 0 ? _d : ""}`,
|
|
19
|
-
});
|
|
20
|
-
}, []);
|
|
21
|
-
const reactiveFilterSliderProps = react_1.default.useMemo(() => {
|
|
22
|
-
var _a, _b;
|
|
23
|
-
return (Object.assign(Object.assign({}, reactiveFilterSharedProps), { showFilter: (_a = filter.settingsShowFilter) !== null && _a !== void 0 ? _a : true, rangeLabels: rangeLabelsFn, stepValue: (_b = parseInt(filter.displaySliderStep)) !== null && _b !== void 0 ? _b : undefined }));
|
|
24
|
-
}, [filter, reactiveFilterSharedProps]);
|
|
25
|
-
return reactiveFilterSliderProps;
|
|
26
|
-
};
|
|
27
|
-
exports.useReactiveFilterSliderProps = useReactiveFilterSliderProps;
|
|
28
|
-
//# sourceMappingURL=useReactiveFilterSliderProps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useReactiveFilterSliderProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveFilterSliderProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,iFAA8E;AAE9E;;GAEG;AACI,MAAM,4BAA4B,GAAG,CAAC,MAA0B,EAAE,EAAE;IACzE,MAAM,yBAAyB,GAAG,IAAA,2DAA4B,EAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;;QAAC,OAAA,CAAC;YAC7B,KAAK,EAAE,GAAG,MAAA,MAAM,CAAC,mBAAmB,mCAAI,EAAE,GAAG,GAAG,GAC9C,MAAA,MAAM,CAAC,mBAAmB,mCAAI,EAChC,EAAE;YACF,GAAG,EAAE,GAAG,MAAA,MAAM,CAAC,mBAAmB,mCAAI,EAAE,GAAG,GAAG,GAC5C,MAAA,MAAM,CAAC,mBAAmB,mCAAI,EAChC,EAAE;SACH,CAAC,CAAA;KAAA,EACF,EAAE,CACH,CAAC;IAEF,MAAM,yBAAyB,GAAG,eAAK,CAAC,OAAO,CAC7C,GAAG,EAAE;;QAAC,OAAA,iCACD,yBAAyB,KAC5B,UAAU,EAAE,MAAA,MAAM,CAAC,kBAAkB,mCAAI,IAAI,EAC7C,WAAW,EAAE,aAAa,EAC1B,SAAS,EAAE,MAAA,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,mCAAI,SAAS,IAC1D,CAAA;KAAA,EACF,CAAC,MAAM,EAAE,yBAAyB,CAAC,CACpC,CAAC;IAEF,OAAO,yBAAyB,CAAC;AACnC,CAAC,CAAC;AA1BW,QAAA,4BAA4B,gCA0BvC","sourcesContent":["import React from \"react\";\n\nimport type { ConfigFilterOption } from \"../../types/config\";\nimport { useReactiveFilterSharedProps } from \"./useReactiveFilterSharedProps\";\n\n/**\n * For use with @appbaseio/reactivesearch RangeSlider component\n */\nexport const useReactiveFilterSliderProps = (filter: ConfigFilterOption) => {\n const reactiveFilterSharedProps = useReactiveFilterSharedProps(filter);\n\n const rangeLabelsFn = React.useCallback(\n (min: number, max: number) => ({\n start: `${filter.displaySliderPrefix ?? \"\"}${min}${\n filter.displaySliderSuffix ?? \"\"\n }`,\n end: `${filter.displaySliderPrefix ?? \"\"}${max}${\n filter.displaySliderSuffix ?? \"\"\n }`,\n }),\n []\n );\n\n const reactiveFilterSliderProps = React.useMemo(\n () => ({\n ...reactiveFilterSharedProps,\n showFilter: filter.settingsShowFilter ?? true,\n rangeLabels: rangeLabelsFn,\n stepValue: parseInt(filter.displaySliderStep) ?? undefined,\n }),\n [filter, reactiveFilterSharedProps]\n );\n\n return reactiveFilterSliderProps;\n};\n"]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useReactiveReactProp = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const hooks_1 = require("../../hooks");
|
|
9
|
-
const components_1 = require("../../components");
|
|
10
|
-
const useReactiveReactProp = (currentHandle, filter) => {
|
|
11
|
-
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
12
|
-
const { filterStack } = (0, hooks_1.useFilters)();
|
|
13
|
-
const sensorIds = (0, components_1.SENSOR_IDS)(reactifySearchContext.options.mode, reactifySearchContext.config);
|
|
14
|
-
const reactProp = react_1.default.useMemo(() => {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
if (filter && filter.settingsShowEmptyValues) {
|
|
17
|
-
return {
|
|
18
|
-
and: sensorIds,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
and: [
|
|
23
|
-
...sensorIds,
|
|
24
|
-
...((_a = reactifySearchContext.options.additionalComponentIds) !== null && _a !== void 0 ? _a : []),
|
|
25
|
-
...((_b = filterStack === null || filterStack === void 0 ? void 0 : filterStack.options.map((filter) => filter.handle)) !== null && _b !== void 0 ? _b : []),
|
|
26
|
-
].filter((handle) => handle !== currentHandle),
|
|
27
|
-
};
|
|
28
|
-
}, [filterStack, currentHandle, reactifySearchContext.options.additionalComponentIds]);
|
|
29
|
-
return reactProp;
|
|
30
|
-
};
|
|
31
|
-
exports.useReactiveReactProp = useReactiveReactProp;
|
|
32
|
-
//# sourceMappingURL=useReactiveReactProp.js.map
|