@usereactify/search 5.59.0-beta.4 → 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 +8 -0
- package/dist/package.json +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +3 -11
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +3 -13
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.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 -4
- 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 +2 -2
- package/dist/src/components/Sensor/index.js +5 -7
- package/dist/src/components/Sensor/index.js.map +1 -1
- package/dist/src/components/Suggestions/Suggestions.js +1 -2
- package/dist/src/components/Suggestions/Suggestions.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 +4 -33
- package/dist/src/utility/curation.js.map +1 -1
- package/dist/src/utility/filters.js +3 -4
- 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 +17 -29
- 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 +3 -6
- package/dist/src/utility/sortOption.js.map +1 -1
- package/package.json +1 -1
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/utility/props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n MultiList,\n MultiRange,\n ReactiveComponent,\n ReactiveList,\n SingleList,\n SingleRange,\n} from \"@usereactify/search-internals\";\nimport { ReactifySearchProviderProps, SENSOR_IDS } from \"../components\";\nimport { Config, ConfigFilter, ConfigFilterFacet, ResultsDataListener } from \"../types\";\nimport { getCuration } from \"./curation\";\nimport { generateSortQuery, generateSortSort, getSortOption } from \"./sortOption\";\nimport { getFilterStack } from \"./filters\";\nimport { replaceDocCountWithParent } from \"../hooks\";\nimport pkg from \"../../package.json\";\nimport { generateCollectionFunctionScore, generateSearchFunctionScore } from \"./queries\";\nimport { SearchableField } from \"../types/firestore\";\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) =>\n getPropsFilterGroupOption(options, filterGroupOption)\n ) ?? []),\n ...getPropsSensors(options),\n getPropsResults(options),\n ];\n};\n\nexport const getPropsFilterGroupOption = (\n options: GeneratePropsFilterGroupOptions,\n filterGroupOption: ConfigFilterFacet\n) => {\n let filterProps: Record<string, unknown> = {};\n\n if (filterGroupOption.displayType === \"slider\") {\n const sliderFilterProps = getPropsFilterSlider(filterGroupOption, options.provider.query ?? {});\n filterProps = {\n defaultQuery: () => sliderFilterProps.defaultQuery,\n customQuery: () => sliderFilterProps.customQuery,\n };\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 const sharedProps = getPropsShared(options, filterGroupOption);\n return { ...sharedProps, ...filterProps };\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 getPropsSensorCuratedPageCollection(options),\n getPropsSensorCuratedPageSearch(options),\n ].filter(Boolean);\n};\n\nexport const getPropsSensorCustom = (options: GeneratePropsSensorOptions) => {\n const sensorType =\n options.provider.mode === \"collection\"\n ? \"collection\"\n : options.provider.mode === \"curated-page\" && options.provider.variation === \"collection\"\n ? \"collection\"\n : \"search\";\n\n const sensors = sensorType === \"collection\" ? options.config.sensors.collection : options.config.sensors.search;\n\n return sensors.map((sensor, index) => ({\n source: ReactiveComponent,\n componentId: `SensorCustom_${index}`,\n customQuery: () => sensor,\n }));\n};\n\nexport const getPropsSensorCollection = (options: GeneratePropsSensorOptions) => {\n if (options.provider.mode !== \"collection\") return null;\n return {\n source: ReactiveComponent,\n componentId: \"SensorCollection\",\n customQuery: () => {\n if (options.provider.mode !== \"collection\") return null;\n\n const conditions: Array<unknown> = [];\n const handle = options.provider.collectionHandle;\n const market = options.provider.market;\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: { term: { \"collections.handle.keyword\": handle } },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.collectionHandle.keyword\": handle,\n },\n },\n },\n },\n ],\n must: [\n {\n nested: {\n path: \"curations\",\n query: { term: { \"curations.markets.keyword\": market } },\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: { term: { \"collections.handle.keyword\": handle } },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: { \"curations.collectionHandle.keyword\": handle },\n },\n },\n },\n ],\n },\n },\n };\n },\n };\n};\n\nexport const getPropsSensorCuratedPageCollection = ({ provider, config }: GeneratePropsSensorOptions) => {\n if (provider.mode !== \"curated-page\") return null;\n if (provider.variation !== \"collection\") return null;\n const handle = provider.handle;\n return {\n source: ReactiveComponent,\n componentId: \"SensorCuratedPageCollection\",\n customQuery: () => {\n const curation = config.curations.find((curation) => curation.collectionHandle === handle);\n const function_score = generateCollectionFunctionScore({\n collectionHandle: handle,\n boostingRules: curation?.boostings ?? [],\n markets: curation?.markets || [],\n market: provider.market,\n });\n return { query: { function_score } };\n },\n };\n};\n\nexport const getPropsSensorCuratedPageSearch = ({ provider, config }: GeneratePropsSensorOptions) => {\n if (provider.mode !== \"curated-page\") return null;\n if (provider.variation !== \"search\") return null;\n const searchTerm = provider.searchTerm;\n\n return {\n source: ReactiveComponent,\n componentId: \"SensorCuratedPageSearch\",\n customQuery: () => {\n const curation = config.curations.find((curation) => curation.searchTerm === searchTerm);\n if (!curation) return null;\n\n const function_score = generateSearchFunctionScore({\n searchTerm: searchTerm,\n searchableFields: config.searchableFields as SearchableField[],\n boostingRules: curation.boostings ?? [],\n markets: curation.markets,\n market: provider.market,\n });\n\n return { query: { function_score } };\n },\n };\n};\n\nexport const getPropsSensorPublished = (options: GeneratePropsSensorOptions) => {\n return {\n source: ReactiveComponent,\n componentId: \"SensorPublished\",\n customQuery: () => {\n if (options.provider.market) {\n return {\n query: {\n bool: {\n must: [{ match: { markets: options.provider.market } }, { match: { published: true } }],\n },\n },\n };\n }\n return {\n query: { match: { published: true } },\n };\n },\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 source: ReactiveComponent,\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: {\n [options.provider.market\n ? `variants.available_market_${options.provider.market}`\n : \"variants.available\"]: true,\n },\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 };\n};\n\nexport const getPropsSensorSort = (\n options: GeneratePropsSensorOptions & {\n searchTerm?: string;\n sortOption?: string;\n }\n) => {\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 provider: options.provider,\n sortOption: sortOption,\n curation: curation,\n });\n\n return {\n source: ReactiveComponent,\n componentId: \"SensorSort\",\n customQuery: () => ({ sort, query }),\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 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 (response?.aggregations?.reactivesearch_nested?.reactify_nested_outer) {\n response.aggregations.reactivesearch_nested = replaceDocCountWithParent(\n response?.aggregations?.reactivesearch_nested?.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 = (\n options: GeneratePropsFilterGroupOptions & {\n scrollTarget?: string | Element | HTMLDocument;\n pageSize?: number;\n onData?: ResultsDataListener;\n }\n) => {\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 onData: options.onData,\n };\n};\n\nexport const getPropsReact = (options: GeneratePropsFilterGroupOptions, filterGroupOption?: ConfigFilterFacet) => {\n const variation = options.provider.mode === \"curated-page\" ? options.provider.variation : undefined;\n const sensorIds = SENSOR_IDS(options.provider.mode, options.config, variation);\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 (!filterGroupOption.settingsHideUnavailable || !filterGroupOption.field.startsWith(\"variants.\"))\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 ? \"true\" : \"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\") return SingleRange;\n return SingleList;\n }\n if (filterGroupOption.displayType === \"multi\") {\n if (filterGroupOption.displayView === \"range\") return MultiRange;\n return MultiList;\n }\n\n return;\n })();\n\n const fieldProp = (() => {\n if ([\"price_min\", \"price_max\"].includes(filterGroupOption.field) && options.provider.market) {\n return `${filterGroupOption.field}_market_${options.provider.market}`;\n }\n\n return filterGroupOption.field;\n })();\n\n return {\n URLParams: true,\n componentId: filterGroupOption.handle,\n dataField: fieldProp,\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 =\n 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 = (\n filterGroupOption: ConfigFilterFacet,\n query: Record<string, string> | string,\n value?: [number, number] | []\n) => {\n const filterValue =\n value ??\n JSON.parse(\n new URLSearchParams(typeof window === \"undefined\" ? query : window.location.search).get(\n filterGroupOption.handle\n ) ?? \"[0,0]\"\n );\n\n const defaultQuery = {\n aggs: {\n min: { min: { field: filterGroupOption.field } },\n max: { max: { field: filterGroupOption.field } },\n },\n };\n\n const customQuery = (() => {\n if (filterValue[0] === 0 && filterValue[1] === 0) {\n return;\n }\n\n return {\n query: {\n bool: {\n must: [\n {\n bool: {\n must: [\n { match: { published: true } },\n {\n range: {\n [filterGroupOption.field]: {\n gte: filterValue[0],\n lte: filterValue[1],\n boost: 2,\n },\n },\n },\n ],\n },\n },\n ],\n },\n },\n };\n })();\n\n return { defaultQuery, customQuery };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/utility/props.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n MultiList,\n MultiRange,\n ReactiveComponent,\n ReactiveList,\n SingleList,\n SingleRange,\n} from \"@usereactify/search-internals\";\nimport { ReactifySearchProviderProps, SENSOR_IDS } from \"../components\";\nimport { Config, ConfigFilter, ConfigFilterFacet, ResultsDataListener } from \"../types\";\nimport { getCuration } from \"./curation\";\nimport { generateSortQuery, generateSortSort, getSortOption } from \"./sortOption\";\nimport { getFilterStack } from \"./filters\";\nimport { replaceDocCountWithParent } from \"../hooks\";\nimport pkg from \"../../package.json\";\nimport { generateCollectionFunctionScore, generateSearchFunctionScore } from \"./queries\";\nimport { SearchableField } from \"../types/firestore\";\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) =>\n getPropsFilterGroupOption(options, filterGroupOption)\n ) ?? []),\n ...getPropsSensors(options),\n getPropsResults(options),\n ];\n};\n\nexport const getPropsFilterGroupOption = (\n options: GeneratePropsFilterGroupOptions,\n filterGroupOption: ConfigFilterFacet\n) => {\n let filterProps: Record<string, unknown> = {};\n\n if (filterGroupOption.displayType === \"slider\") {\n const sliderFilterProps = getPropsFilterSlider(filterGroupOption, options.provider.query ?? {});\n filterProps = {\n defaultQuery: () => sliderFilterProps.defaultQuery,\n customQuery: () => sliderFilterProps.customQuery,\n };\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 const sharedProps = getPropsShared(options, filterGroupOption);\n return { ...sharedProps, ...filterProps };\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 sensorType = options.provider.mode === \"collection\" ? \"collection\" : \"search\";\n\n const sensors = sensorType === \"collection\" ? options.config.sensors.collection : options.config.sensors.search;\n\n return sensors.map((sensor, index) => ({\n source: ReactiveComponent,\n componentId: `SensorCustom_${index}`,\n customQuery: () => sensor,\n }));\n};\n\nexport const getPropsSensorCollection = (options: GeneratePropsSensorOptions) => {\n if (options.provider.mode !== \"collection\") return null;\n return {\n source: ReactiveComponent,\n componentId: \"SensorCollection\",\n customQuery: () => {\n if (options.provider.mode !== \"collection\") return null;\n\n const conditions: Array<unknown> = [];\n const handle = options.provider.collectionHandle;\n const market = options.provider.market;\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: { term: { \"collections.handle.keyword\": handle } },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.collectionHandle.keyword\": handle,\n },\n },\n },\n },\n ],\n must: [\n {\n nested: {\n path: \"curations\",\n query: { term: { \"curations.markets.keyword\": market } },\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: { term: { \"collections.handle.keyword\": handle } },\n },\n },\n {\n nested: {\n path: \"curations\",\n query: {\n term: { \"curations.collectionHandle.keyword\": handle },\n },\n },\n },\n ],\n },\n },\n };\n },\n };\n};\n\nexport const getPropsSensorCollectionWeighted = ({ provider, config }: GeneratePropsSensorOptions) => {\n if (provider.mode !== \"collection\") return null;\n const handle = provider.collectionHandle;\n const curation = getCuration({ provider, config });\n return {\n source: ReactiveComponent,\n componentId: \"SensorCollectionWeighted\",\n customQuery: () => {\n const function_score = generateCollectionFunctionScore({\n collectionHandle: handle,\n boostingRules: curation?.boostings ?? [],\n markets: curation?.markets || [],\n market: provider.market,\n });\n return { query: { function_score } };\n },\n };\n};\n\nexport const getPropsSensorSearchWeighted = ({\n provider,\n config,\n searchTerm,\n}: GeneratePropsSensorOptions & { searchTerm?: string }) => {\n if (provider.mode !== \"search\" && provider.mode !== \"instant-search\") return null;\n if (!searchTerm) return null;\n\n return {\n source: ReactiveComponent,\n componentId: \"SensorSearchWeighted\",\n customQuery: () => {\n const curation = getCuration({ provider, config, searchTerm });\n\n const function_score = generateSearchFunctionScore({\n searchTerm: searchTerm,\n searchableFields: config.searchableFields as SearchableField[],\n boostingRules: curation?.boostings ?? [],\n markets: curation?.markets || [],\n market: provider.market,\n });\n\n return { query: { function_score } };\n },\n };\n};\n\nexport const getPropsSensorPublished = (options: GeneratePropsSensorOptions) => {\n return {\n source: ReactiveComponent,\n componentId: \"SensorPublished\",\n customQuery: () => {\n if (options.provider.market) {\n return {\n query: {\n bool: {\n must: [{ match: { markets: options.provider.market } }, { match: { published: true } }],\n },\n },\n };\n }\n return {\n query: { match: { published: true } },\n };\n },\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 source: ReactiveComponent,\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: {\n [options.provider.market\n ? `variants.available_market_${options.provider.market}`\n : \"variants.available\"]: true,\n },\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 };\n};\n\nexport const getPropsSensorSort = (\n options: GeneratePropsSensorOptions & {\n searchTerm?: string;\n sortOption?: string;\n }\n) => {\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 provider: options.provider,\n sortOption: sortOption,\n curation: curation,\n });\n\n return {\n source: ReactiveComponent,\n componentId: \"SensorSort\",\n customQuery: () => ({ sort, query }),\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 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 (response?.aggregations?.reactivesearch_nested?.reactify_nested_outer) {\n response.aggregations.reactivesearch_nested = replaceDocCountWithParent(\n response?.aggregations?.reactivesearch_nested?.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 = (\n options: GeneratePropsFilterGroupOptions & {\n scrollTarget?: string | Element | HTMLDocument;\n pageSize?: number;\n onData?: ResultsDataListener;\n }\n) => {\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 onData: options.onData,\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 (!filterGroupOption.settingsHideUnavailable || !filterGroupOption.field.startsWith(\"variants.\"))\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 ? \"true\" : \"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\") return SingleRange;\n return SingleList;\n }\n if (filterGroupOption.displayType === \"multi\") {\n if (filterGroupOption.displayView === \"range\") return MultiRange;\n return MultiList;\n }\n\n return;\n })();\n\n const fieldProp = (() => {\n if ([\"price_min\", \"price_max\"].includes(filterGroupOption.field) && options.provider.market) {\n return `${filterGroupOption.field}_market_${options.provider.market}`;\n }\n\n return filterGroupOption.field;\n })();\n\n return {\n URLParams: true,\n componentId: filterGroupOption.handle,\n dataField: fieldProp,\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 =\n 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 = (\n filterGroupOption: ConfigFilterFacet,\n query: Record<string, string> | string,\n value?: [number, number] | []\n) => {\n const filterValue =\n value ??\n JSON.parse(\n new URLSearchParams(typeof window === \"undefined\" ? query : window.location.search).get(\n filterGroupOption.handle\n ) ?? \"[0,0]\"\n );\n\n const defaultQuery = {\n aggs: {\n min: { min: { field: filterGroupOption.field } },\n max: { max: { field: filterGroupOption.field } },\n },\n };\n\n const customQuery = (() => {\n if (filterValue[0] === 0 && filterValue[1] === 0) {\n return;\n }\n\n return {\n query: {\n bool: {\n must: [\n {\n bool: {\n must: [\n { match: { published: true } },\n {\n range: {\n [filterGroupOption.field]: {\n gte: filterValue[0],\n lte: filterValue[1],\n boost: 2,\n },\n },\n },\n ],\n },\n },\n ],\n },\n },\n };\n })();\n\n return { defaultQuery, customQuery };\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Boosting, Curation, CurationType, SearchableField } from "../types/firestore";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const generateQuerySearchWeighted: (options: {
|
|
3
3
|
curation: Curation & {
|
|
4
4
|
type: CurationType.Search;
|
|
5
5
|
};
|
|
@@ -109,6 +109,7 @@ export declare const generateQueryCuratedPageSearch: (options: {
|
|
|
109
109
|
[x: string]: {
|
|
110
110
|
query: string;
|
|
111
111
|
fuzziness: number;
|
|
112
|
+
analyzer: string;
|
|
112
113
|
};
|
|
113
114
|
};
|
|
114
115
|
};
|
|
@@ -120,7 +121,7 @@ export declare const generateQueryCuratedPageSearch: (options: {
|
|
|
120
121
|
score_mode: string;
|
|
121
122
|
boost_mode: string;
|
|
122
123
|
};
|
|
123
|
-
export declare const
|
|
124
|
+
export declare const generateQueryCollectionWeighted: (options: {
|
|
124
125
|
curation: Curation & {
|
|
125
126
|
type: CurationType.Collection;
|
|
126
127
|
};
|
|
@@ -305,6 +306,7 @@ export declare const generateSearchFunctionScore: (options: {
|
|
|
305
306
|
[x: string]: {
|
|
306
307
|
query: string;
|
|
307
308
|
fuzziness: number;
|
|
309
|
+
analyzer: string;
|
|
308
310
|
};
|
|
309
311
|
};
|
|
310
312
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateCollectionFunctionScore = exports.generateSearchFunctionScore = exports.
|
|
3
|
+
exports.generateCollectionFunctionScore = exports.generateSearchFunctionScore = exports.generateQueryCollectionWeighted = exports.generateQuerySearchWeighted = void 0;
|
|
4
4
|
const firestore_1 = require("../types/firestore");
|
|
5
|
-
const
|
|
5
|
+
const generateQuerySearchWeighted = (options) => {
|
|
6
6
|
var _a, _b;
|
|
7
7
|
return (0, exports.generateSearchFunctionScore)({
|
|
8
8
|
searchTerm: (_a = options.curation.searchTerm) !== null && _a !== void 0 ? _a : "",
|
|
@@ -12,8 +12,8 @@ const generateQueryCuratedPageSearch = (options) => {
|
|
|
12
12
|
market: options.market,
|
|
13
13
|
});
|
|
14
14
|
};
|
|
15
|
-
exports.
|
|
16
|
-
const
|
|
15
|
+
exports.generateQuerySearchWeighted = generateQuerySearchWeighted;
|
|
16
|
+
const generateQueryCollectionWeighted = (options) => {
|
|
17
17
|
var _a, _b;
|
|
18
18
|
const collectionFunctionScore = (0, exports.generateCollectionFunctionScore)({
|
|
19
19
|
collectionHandle: (_a = options.curation.collectionHandle) !== null && _a !== void 0 ? _a : "",
|
|
@@ -23,7 +23,7 @@ const generateCuratedPageCollectionQuery = (options) => {
|
|
|
23
23
|
});
|
|
24
24
|
return { function_score: collectionFunctionScore };
|
|
25
25
|
};
|
|
26
|
-
exports.
|
|
26
|
+
exports.generateQueryCollectionWeighted = generateQueryCollectionWeighted;
|
|
27
27
|
const generateMarketsClause = (markets) => {
|
|
28
28
|
if (!markets.length)
|
|
29
29
|
return null;
|
|
@@ -98,24 +98,18 @@ const generateSearchFunctionScore = (options) => {
|
|
|
98
98
|
const searchTerms = (_b = (_a = options.searchTerm) === null || _a === void 0 ? void 0 : _a.split(" ")) !== null && _b !== void 0 ? _b : [];
|
|
99
99
|
const searchQueries = [];
|
|
100
100
|
for (const searchableField of options.searchableFields) {
|
|
101
|
+
const { allowedMistakes, field } = searchableField;
|
|
102
|
+
const baseField = field.replace(/\.[^.]*$/, "");
|
|
101
103
|
for (const searchTerm of searchTerms) {
|
|
102
104
|
searchQueries.push({
|
|
103
105
|
match: {
|
|
104
|
-
[
|
|
105
|
-
query: searchTerm,
|
|
106
|
-
fuzziness: searchableField.allowedMistakes,
|
|
107
|
-
analyzer: "regular_analyzer",
|
|
108
|
-
},
|
|
106
|
+
[baseField]: { query: searchTerm, fuzziness: allowedMistakes, analyzer: "regular_analyzer" },
|
|
109
107
|
},
|
|
110
108
|
});
|
|
111
109
|
if (searchableField.synyonymEnabled) {
|
|
112
110
|
searchQueries.push({
|
|
113
111
|
match: {
|
|
114
|
-
[
|
|
115
|
-
query: searchTerm,
|
|
116
|
-
fuzziness: searchableField.allowedMistakes,
|
|
117
|
-
analyzer: "synonym_analyzer",
|
|
118
|
-
},
|
|
112
|
+
[baseField]: { query: searchTerm, fuzziness: allowedMistakes, analyzer: "synonym_analyzer" },
|
|
119
113
|
},
|
|
120
114
|
});
|
|
121
115
|
}
|
|
@@ -123,59 +117,37 @@ const generateSearchFunctionScore = (options) => {
|
|
|
123
117
|
}
|
|
124
118
|
const searchScores = [];
|
|
125
119
|
for (const searchableField of options.searchableFields) {
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const weightSomeEdits = searchableField.points / (100 / searchableField.mistakePenaltyPercent) / searchTerms.length;
|
|
135
|
-
// Which weight to use, weightMaxEdits should be used once and weightSomeEdits every other time
|
|
136
|
-
const weightBase = edits === searchableField.allowedMistakes ? weightMaxEdits : weightSomeEdits;
|
|
120
|
+
const { field, points, allowedMistakes, mistakePenaltyPercent, synyonymEnabled, synonymPenaltyPercent } = searchableField;
|
|
121
|
+
const baseField = field.replace(/\.[^.]*$/, "");
|
|
122
|
+
const mistakeWeight = (points * mistakePenaltyPercent) / 100;
|
|
123
|
+
const baseWeight = points - allowedMistakes * mistakeWeight;
|
|
124
|
+
const synonymWeight = (points * synonymPenaltyPercent) / 100;
|
|
125
|
+
const synonymBaseWeight = points - allowedMistakes * synonymWeight;
|
|
126
|
+
for (let edits = 0; edits <= allowedMistakes; edits++) {
|
|
127
|
+
const weight = edits === 0 ? baseWeight : mistakeWeight;
|
|
137
128
|
for (const searchTerm of searchTerms) {
|
|
138
129
|
// Regular match
|
|
139
130
|
searchScores.push({
|
|
140
131
|
filter: {
|
|
141
|
-
match: {
|
|
142
|
-
[baseField]: {
|
|
143
|
-
query: searchTerm,
|
|
144
|
-
fuzziness: edits,
|
|
145
|
-
analyzer: "regular_analyzer",
|
|
146
|
-
},
|
|
147
|
-
},
|
|
132
|
+
match: { [baseField]: { query: searchTerm, fuzziness: edits, analyzer: "regular_analyzer" } },
|
|
148
133
|
},
|
|
149
|
-
weight:
|
|
134
|
+
weight: weight,
|
|
150
135
|
});
|
|
151
136
|
// Synonym match _and not_ regular match
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
const weightSynonyms = weightBase * (1 - searchableField.synonymPenaltyPercent / 100);
|
|
137
|
+
if (synyonymEnabled && searchableField.synonymPenaltyPercent > 0) {
|
|
138
|
+
const weight = edits === 0 ? synonymBaseWeight : synonymWeight;
|
|
155
139
|
searchScores.push({
|
|
156
140
|
filter: {
|
|
157
141
|
bool: {
|
|
158
142
|
must_not: {
|
|
159
|
-
match: {
|
|
160
|
-
[baseField]: {
|
|
161
|
-
query: searchTerm,
|
|
162
|
-
fuzziness: edits,
|
|
163
|
-
analyzer: "regular_analyzer",
|
|
164
|
-
},
|
|
165
|
-
},
|
|
143
|
+
match: { [baseField]: { query: searchTerm, fuzziness: edits, analyzer: "regular_analyzer" } },
|
|
166
144
|
},
|
|
167
145
|
should: {
|
|
168
|
-
match: {
|
|
169
|
-
[baseField]: {
|
|
170
|
-
query: searchTerm,
|
|
171
|
-
fuzziness: edits,
|
|
172
|
-
// analyzer: "synonym_analyzer"
|
|
173
|
-
},
|
|
174
|
-
},
|
|
146
|
+
match: { [baseField]: { query: searchTerm, fuzziness: edits, analyzer: "synonym_analyzer" } },
|
|
175
147
|
},
|
|
176
148
|
},
|
|
177
149
|
},
|
|
178
|
-
weight:
|
|
150
|
+
weight: weight,
|
|
179
151
|
});
|
|
180
152
|
}
|
|
181
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/utility/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { Boosting, Curation, CurationType, Operation, SearchableField } from \"../types/firestore\";\n\nexport const generateQueryCuratedPageSearch = (options: {\n curation: Curation & { type: CurationType.Search };\n searchableFields: SearchableField[];\n market?: string;\n}) => {\n return generateSearchFunctionScore({\n searchTerm: options.curation.searchTerm ?? \"\",\n searchableFields: options.searchableFields,\n boostingRules: options.curation.boostings ?? [],\n markets: options.curation.markets,\n market: options.market,\n });\n};\n\nexport const generateCuratedPageCollectionQuery = (options: {\n curation: Curation & { type: CurationType.Collection };\n market?: string;\n}) => {\n const collectionFunctionScore = generateCollectionFunctionScore({\n collectionHandle: options.curation.collectionHandle ?? \"\",\n boostingRules: options.curation.boostings ?? [],\n markets: options.curation.markets,\n market: options.market,\n });\n return { function_score: collectionFunctionScore };\n};\n\nconst generateMarketsClause = (markets: string[]) => {\n if (!markets.length) return null;\n return { terms: { markets: markets } };\n};\n\nconst generateQueryField = (options: { fieldName: string; market?: string }) => {\n if (!options.market) {\n if (options.fieldName === \"price\") return \"price_min\";\n return options.fieldName;\n }\n\n if (options.fieldName === \"price\") {\n return `price_min_market_${options.market}`;\n }\n if (options.fieldName === \"price_min\") {\n return `price_min_market_${options.market}`;\n }\n if (options.fieldName === \"price_max\") {\n return `price_max_market_${options.market}`;\n }\n if (options.fieldName === \"inventory_total\") {\n return `inventory_quantity_market_${options.market}`;\n }\n\n return options.fieldName;\n};\n\nconst generateBoostingRule = (options: { boostingRule: Boosting; market?: string }) => {\n const fieldName = generateQueryField({\n fieldName: options.boostingRule.fieldName,\n market: options.market,\n });\n\n if (options.boostingRule.operation === Operation.Contains) {\n return {\n filter: { wildcard: { [fieldName]: `*${options.boostingRule.value}*` } },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.NotContains) {\n return {\n filter: {\n bool: { must_not: { wildcard: { [fieldName]: `*${options.boostingRule.value}*` } } },\n },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.Equals) {\n return {\n filter: { term: { [fieldName]: options.boostingRule.value } },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.GreaterThan) {\n return {\n filter: { range: { [fieldName]: { gt: parseFloat(options.boostingRule.value) } } },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.LessThan) {\n return {\n filter: { range: { [fieldName]: { lt: parseFloat(options.boostingRule.value) } } },\n weight: options.boostingRule.points,\n };\n }\n throw new Error(`Unable to process rule`);\n};\n\nconst generateBoostingRules = (options: { boostingRules: Boosting[]; market?: string }) => {\n return options.boostingRules\n .map((boostingRule) =>\n generateBoostingRule({ boostingRule: boostingRule, market: options.market })\n )\n .filter(Boolean);\n};\n\nexport const generateSearchFunctionScore = (options: {\n searchTerm: string;\n searchableFields: SearchableField[];\n boostingRules: Boosting[];\n markets: string[];\n market?: string;\n}) => {\n const searchTerms = options.searchTerm?.split(\" \") ?? [];\n\n const searchQueries = [];\n for (const searchableField of options.searchableFields) {\n for (const searchTerm of searchTerms) {\n searchQueries.push({\n match: {\n [searchableField.field.replace(/\\.[^.]*$/, \"\")]: {\n query: searchTerm,\n fuzziness: searchableField.allowedMistakes,\n analyzer: \"regular_analyzer\",\n },\n },\n });\n if (searchableField.synyonymEnabled) {\n searchQueries.push({\n match: {\n [searchableField.field.replace(/\\.[^.]*$/, \"\")]: {\n query: searchTerm,\n fuzziness: searchableField.allowedMistakes,\n analyzer: \"synonym_analyzer\",\n },\n },\n });\n }\n }\n }\n\n const searchScores = [];\n for (const searchableField of options.searchableFields) {\n const baseField = searchableField.field.replace(/\\.[^.]*$/, \"\");\n\n for (let edits = 0; edits <= searchableField.allowedMistakes; edits++) {\n // The total points (e.g. 1000) minus the total mistakes (e.g. 3) multiplied by the mistakes multiplier (e.g. 10% of 1000) = 1000 - (3 * (1000 / 10)) = 700;\n const weightMaxEdits = Math.max(\n (searchableField.points -\n searchableField.allowedMistakes *\n (searchableField.points / (100 / searchableField.mistakePenaltyPercent))) /\n searchTerms.length,\n 0\n );\n // The total points (e.g. 1000) divided by the mistakes multiplier (e.g. 10%) = 1000 / 100 = 100;\n const weightSomeEdits =\n searchableField.points / (100 / searchableField.mistakePenaltyPercent) / searchTerms.length;\n // Which weight to use, weightMaxEdits should be used once and weightSomeEdits every other time\n const weightBase =\n edits === searchableField.allowedMistakes ? weightMaxEdits : weightSomeEdits;\n\n for (const searchTerm of searchTerms) {\n // Regular match\n searchScores.push({\n filter: {\n match: {\n [baseField]: {\n query: searchTerm,\n fuzziness: edits,\n analyzer: \"regular_analyzer\",\n },\n },\n },\n weight: weightBase,\n });\n\n // Synonym match _and not_ regular match\n if (searchableField.synyonymEnabled && searchableField.synonymPenaltyPercent > 0) {\n // The weightBase (e.g. weightMaxEdits 700 or weightSomeEdits 100) multiplied by the synonyms multiplier as a percentage of the whole points (e.g. input 5% = output 95%) = 700 * (95%)\n const weightSynonyms = weightBase * (1 - searchableField.synonymPenaltyPercent / 100);\n\n searchScores.push({\n filter: {\n bool: {\n must_not: {\n match: {\n [baseField]: {\n query: searchTerm,\n fuzziness: edits,\n analyzer: \"regular_analyzer\",\n },\n },\n },\n should: {\n match: {\n [baseField]: {\n query: searchTerm,\n fuzziness: edits,\n // analyzer: \"synonym_analyzer\"\n },\n },\n },\n },\n },\n weight: weightSynonyms,\n });\n }\n }\n }\n }\n\n return {\n query: { bool: { ...generateMarketsClause(options.markets), should: [...searchQueries] } },\n functions: [\n ...searchScores,\n ...generateBoostingRules({\n boostingRules: options.boostingRules,\n market: options.market,\n }),\n ],\n score_mode: \"sum\",\n boost_mode: \"replace\",\n };\n};\n\nexport const generateCollectionFunctionScore = (options: {\n collectionHandle: string;\n boostingRules: Boosting[];\n markets: string[];\n market?: string;\n}) => {\n const mustClauses: Record<string, any>[] = [\n {\n nested: {\n path: \"collections\",\n query: {\n term: { [\"collections.handle\"]: options.collectionHandle },\n },\n },\n },\n ];\n\n const marketClause = generateMarketsClause(options.markets);\n if (marketClause) mustClauses.push(marketClause);\n\n return {\n query: {\n bool: { must: mustClauses },\n },\n functions: generateBoostingRules({\n boostingRules: options.boostingRules,\n market: options.market,\n }),\n score_mode: \"sum\",\n boost_mode: \"replace\",\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/utility/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { Boosting, Curation, CurationType, Operation, SearchableField } from \"../types/firestore\";\n\nexport const generateQuerySearchWeighted = (options: {\n curation: Curation & { type: CurationType.Search };\n searchableFields: SearchableField[];\n market?: string;\n}) => {\n return generateSearchFunctionScore({\n searchTerm: options.curation.searchTerm ?? \"\",\n searchableFields: options.searchableFields,\n boostingRules: options.curation.boostings ?? [],\n markets: options.curation.markets,\n market: options.market,\n });\n};\n\nexport const generateQueryCollectionWeighted = (options: {\n curation: Curation & { type: CurationType.Collection };\n market?: string;\n}) => {\n const collectionFunctionScore = generateCollectionFunctionScore({\n collectionHandle: options.curation.collectionHandle ?? \"\",\n boostingRules: options.curation.boostings ?? [],\n markets: options.curation.markets,\n market: options.market,\n });\n return { function_score: collectionFunctionScore };\n};\n\nconst generateMarketsClause = (markets: string[]) => {\n if (!markets.length) return null;\n return { terms: { markets: markets } };\n};\n\nconst generateQueryField = (options: { fieldName: string; market?: string }) => {\n if (!options.market) {\n if (options.fieldName === \"price\") return \"price_min\";\n return options.fieldName;\n }\n\n if (options.fieldName === \"price\") {\n return `price_min_market_${options.market}`;\n }\n if (options.fieldName === \"price_min\") {\n return `price_min_market_${options.market}`;\n }\n if (options.fieldName === \"price_max\") {\n return `price_max_market_${options.market}`;\n }\n if (options.fieldName === \"inventory_total\") {\n return `inventory_quantity_market_${options.market}`;\n }\n\n return options.fieldName;\n};\n\nconst generateBoostingRule = (options: { boostingRule: Boosting; market?: string }) => {\n const fieldName = generateQueryField({\n fieldName: options.boostingRule.fieldName,\n market: options.market,\n });\n\n if (options.boostingRule.operation === Operation.Contains) {\n return {\n filter: { wildcard: { [fieldName]: `*${options.boostingRule.value}*` } },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.NotContains) {\n return {\n filter: {\n bool: { must_not: { wildcard: { [fieldName]: `*${options.boostingRule.value}*` } } },\n },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.Equals) {\n return {\n filter: { term: { [fieldName]: options.boostingRule.value } },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.GreaterThan) {\n return {\n filter: { range: { [fieldName]: { gt: parseFloat(options.boostingRule.value) } } },\n weight: options.boostingRule.points,\n };\n }\n if (options.boostingRule.operation === Operation.LessThan) {\n return {\n filter: { range: { [fieldName]: { lt: parseFloat(options.boostingRule.value) } } },\n weight: options.boostingRule.points,\n };\n }\n throw new Error(`Unable to process rule`);\n};\n\nconst generateBoostingRules = (options: { boostingRules: Boosting[]; market?: string }) => {\n return options.boostingRules\n .map((boostingRule) => generateBoostingRule({ boostingRule: boostingRule, market: options.market }))\n .filter(Boolean);\n};\n\nexport const generateSearchFunctionScore = (options: {\n searchTerm: string;\n searchableFields: SearchableField[];\n boostingRules: Boosting[];\n markets: string[];\n market?: string;\n}) => {\n const searchTerms = options.searchTerm?.split(\" \") ?? [];\n\n const searchQueries = [];\n for (const searchableField of options.searchableFields) {\n const { allowedMistakes, field } = searchableField;\n const baseField = field.replace(/\\.[^.]*$/, \"\");\n for (const searchTerm of searchTerms) {\n searchQueries.push({\n match: {\n [baseField]: { query: searchTerm, fuzziness: allowedMistakes, analyzer: \"regular_analyzer\" },\n },\n });\n if (searchableField.synyonymEnabled) {\n searchQueries.push({\n match: {\n [baseField]: { query: searchTerm, fuzziness: allowedMistakes, analyzer: \"synonym_analyzer\" },\n },\n });\n }\n }\n }\n\n const searchScores = [];\n for (const searchableField of options.searchableFields) {\n const { field, points, allowedMistakes, mistakePenaltyPercent, synyonymEnabled, synonymPenaltyPercent } =\n searchableField;\n const baseField = field.replace(/\\.[^.]*$/, \"\");\n\n const mistakeWeight = (points * mistakePenaltyPercent) / 100;\n const baseWeight = points - allowedMistakes * mistakeWeight;\n\n const synonymWeight = (points * synonymPenaltyPercent) / 100;\n const synonymBaseWeight = points - allowedMistakes * synonymWeight;\n\n for (let edits = 0; edits <= allowedMistakes; edits++) {\n const weight = edits === 0 ? baseWeight : mistakeWeight;\n\n for (const searchTerm of searchTerms) {\n // Regular match\n searchScores.push({\n filter: {\n match: { [baseField]: { query: searchTerm, fuzziness: edits, analyzer: \"regular_analyzer\" } },\n },\n weight: weight,\n });\n\n // Synonym match _and not_ regular match\n if (synyonymEnabled && searchableField.synonymPenaltyPercent > 0) {\n const weight = edits === 0 ? synonymBaseWeight : synonymWeight;\n searchScores.push({\n filter: {\n bool: {\n must_not: {\n match: { [baseField]: { query: searchTerm, fuzziness: edits, analyzer: \"regular_analyzer\" } },\n },\n should: {\n match: { [baseField]: { query: searchTerm, fuzziness: edits, analyzer: \"synonym_analyzer\" } },\n },\n },\n },\n weight: weight,\n });\n }\n }\n }\n }\n\n return {\n query: { bool: { ...generateMarketsClause(options.markets), should: [...searchQueries] } },\n functions: [\n ...searchScores,\n ...generateBoostingRules({\n boostingRules: options.boostingRules,\n market: options.market,\n }),\n ],\n score_mode: \"sum\",\n boost_mode: \"replace\",\n };\n};\n\nexport const generateCollectionFunctionScore = (options: {\n collectionHandle: string;\n boostingRules: Boosting[];\n markets: string[];\n market?: string;\n}) => {\n const mustClauses: Record<string, any>[] = [\n {\n nested: {\n path: \"collections\",\n query: {\n term: { [\"collections.handle\"]: options.collectionHandle },\n },\n },\n },\n ];\n\n const marketClause = generateMarketsClause(options.markets);\n if (marketClause) mustClauses.push(marketClause);\n\n return {\n query: {\n bool: { must: mustClauses },\n },\n functions: generateBoostingRules({\n boostingRules: options.boostingRules,\n market: options.market,\n }),\n score_mode: \"sum\",\n boost_mode: \"replace\",\n };\n};\n"]}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateSortQuery = exports.generateSortSort = exports.getSortOption = exports.getSortOptions = void 0;
|
|
4
4
|
const getSortOptions = (options) => {
|
|
5
5
|
const { provider } = options;
|
|
6
|
-
const visibilityMode = provider.mode
|
|
6
|
+
const visibilityMode = provider.mode;
|
|
7
7
|
return options.config.sort
|
|
8
8
|
.sort((a, b) => {
|
|
9
9
|
const aInt = typeof a.position === "string" ? parseInt(a.position, 10) : a.position;
|
|
@@ -33,8 +33,7 @@ const generateSortSort = (options) => {
|
|
|
33
33
|
}
|
|
34
34
|
const sorts = [];
|
|
35
35
|
// collection curation pin sorting
|
|
36
|
-
if (
|
|
37
|
-
(provider.mode === "curated-page" && provider.variation === "collection")) {
|
|
36
|
+
if (provider.mode === "collection" && provider.collectionHandle) {
|
|
38
37
|
if (curation === null || curation === void 0 ? void 0 : curation.collectionHandle) {
|
|
39
38
|
const queriesMust = [
|
|
40
39
|
{ term: { "curations.collectionHandle.keyword": curation.collectionHandle } },
|
|
@@ -61,9 +60,7 @@ const generateSortSort = (options) => {
|
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
// search curation pin sorting
|
|
64
|
-
if (provider.mode === "search" ||
|
|
65
|
-
provider.mode === "instant-search" ||
|
|
66
|
-
(provider.mode === "curated-page" && provider.variation === "search")) {
|
|
63
|
+
if (provider.mode === "search" || provider.mode === "instant-search") {
|
|
67
64
|
if (curation === null || curation === void 0 ? void 0 : curation.searchTerm) {
|
|
68
65
|
const queriesMust = [
|
|
69
66
|
{ term: { "curations.searchTerm.keyword": curation.searchTerm.toLowerCase() } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortOption.js","sourceRoot":"","sources":["../../../src/utility/sortOption.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,OAI9B,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7F,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI;SACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB;AAEK,MAAM,aAAa,GAAG,CAAC,OAK7B,EAAE,EAAE;;IACH,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,CACL,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,WAAC,OAAA,MAAM,KAAK,OAAO,CAAC,UAAU,IAAI,MAAM,MAAK,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI,CAAA,CAAA,EAAA,CAAC,mCAAI,WAAW,CAAC,CAAC,CAAC,CACpH,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,aAAa,iBAWxB;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAKhC,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACnD,8FAA8F;IAC9F,+FAA+F;IAC/F,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACvC,IAAI,UAAU,IAAI,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC7E,OAAO,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,WAAW,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,kCAAkC;IAClC,IACE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,gBAAgB,CAAC;QAC7D,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,IAAI,QAAQ,CAAC,SAAS,KAAK,YAAY,CAAC,EACzE,CAAC;QACD,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAmB;gBAClC,EAAE,IAAI,EAAE,EAAE,oCAAoC,EAAE,QAAQ,CAAC,gBAAgB,EAAE,EAAE;aAC9E,CAAC;YACF,MAAM,cAAc,GAAmB,EAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,2BAA2B,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACT,oBAAoB,EAAE;oBACpB,aAAa,EAAE,MAAM;oBACrB,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE;wBACN,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE;4BACN,IAAI,kBACF,IAAI,EAAE,WAAW,IACd,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IACE,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAC1B,QAAQ,CAAC,IAAI,KAAK,gBAAgB;QAClC,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,EACrE,CAAC;QACD,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE,CAAC;YACzB,MAAM,WAAW,GAAmB;gBAClC,EAAE,IAAI,EAAE,EAAE,8BAA8B,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE;aAChF,CAAC;YACF,MAAM,cAAc,GAAmB,EAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,2BAA2B,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACT,oBAAoB,EAAE;oBACpB,aAAa,EAAE,MAAM;oBACrB,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE;wBACN,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE;4BACN,IAAI,kBACF,IAAI,EAAE,WAAW,IACd,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,KAAK;wBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBAAC,WAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,QAAQ,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAEtC,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;wBAC3D,KAAK,GAAG,EAAE,CAAC,6BAA6B,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;oBACtF,CAAC;oBACD,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBACjD,KAAK,GAAG,EAAE,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;oBACvE,CAAC;oBACD,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAAC,WAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAErB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAjIW,QAAA,gBAAgB,oBAiI3B;AAEK,MAAM,iBAAiB,GAAG,CAAC,OAIjC,EAAmC,EAAE;;IACpC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACnD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAE1E,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC;IACzF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAA,QAAQ,CAAC,UAAU,0CAAE,WAAW,EAAE,CAAC;IAEtH,MAAM,WAAW,GAAmB;QAClC,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,aAAa,UAAU,CAAC,EAAE,aAAa,EAAE,EAAE;QACnE,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE;KACvC,CAAC;IACF,MAAM,cAAc,GAAmB,EAAE,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,2BAA2B,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE;wBACN,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE;4BACL,IAAI,kBACF,IAAI,EAAE,WAAW,IACd,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE;yBACF;qBACF;iBACF;gBACD,kEAAkE;gBAClE,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC9E,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;oBACjC,CAAC,CAAC,EAAE,CAAC;aACR;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,iBAAiB,qBA4C5B","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 const { provider } = options;\n const visibilityMode = provider.mode === \"curated-page\" ? provider.variation : provider.mode;\n return options.config.sort\n .sort((a, b) => {\n const aInt = typeof a.position === \"string\" ? parseInt(a.position, 10) : a.position;\n const bInt = typeof b.position === \"string\" ? parseInt(b.position, 10) : b.position;\n return aInt - bInt;\n })\n .filter(({ visibility }) => [\"all\", visibilityMode].includes(visibility));\n};\n\nexport const getSortOption = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n sortOption?: string;\n query?: Record<string, string>;\n}) => {\n const sortOptions = getSortOptions(options);\n\n return (\n sortOptions.find(({ handle }) => handle === options.sortOption || handle === options.query?.sort) ?? sortOptions[0]\n );\n};\n\nexport const generateSortSort = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n}) => {\n const { provider, curation, sortOption } = options;\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 (provider.mode !== \"instant-search\") {\n if (sortOption && ![\"_score\", \"collections.position\"].includes(sortOption.field)) {\n if ([\"price_min\", \"price_max\"].includes(sortOption.field) && provider.market) {\n return [{ [`${sortOption.field}_market_${provider.market}`]: sortOption.direction }];\n }\n return [{ [sortOption.field]: sortOption.direction }];\n }\n }\n\n const sorts = [];\n\n // collection curation pin sorting\n if (\n (provider.mode === \"collection\" && provider.collectionHandle) ||\n (provider.mode === \"curated-page\" && provider.variation === \"collection\")\n ) {\n if (curation?.collectionHandle) {\n const queriesMust: Array<unknown> = [\n { term: { \"curations.collectionHandle.keyword\": curation.collectionHandle } },\n ];\n const queriesMustNot: Array<unknown> = [];\n if (provider.market) {\n queriesMust.push({ term: { \"curations.markets.keyword\": provider.market } });\n } else {\n queriesMustNot.push({ exists: { field: \"curations.markets.keyword\" } });\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: queriesMust,\n ...(queriesMustNot.length > 0 ? { must_not: queriesMustNot } : {}),\n },\n },\n },\n },\n });\n }\n }\n\n // search curation pin sorting\n if (\n provider.mode === \"search\" ||\n provider.mode === \"instant-search\" ||\n (provider.mode === \"curated-page\" && provider.variation === \"search\")\n ) {\n if (curation?.searchTerm) {\n const queriesMust: Array<unknown> = [\n { term: { \"curations.searchTerm.keyword\": curation.searchTerm.toLowerCase() } },\n ];\n const queriesMustNot: Array<unknown> = [];\n if (provider.market) {\n queriesMust.push({ term: { \"curations.markets.keyword\": provider.market } });\n } else {\n queriesMustNot.push({ exists: { field: \"curations.markets.keyword\" } });\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: queriesMust,\n ...(queriesMustNot.length > 0 ? { must_not: queriesMustNot } : {}),\n },\n },\n },\n },\n });\n }\n }\n\n // curation boost sorting\n if (curation) {\n if (0 < curation.boosting.groupings.length) {\n const groupings = curation.boosting.groupings.sort((a, b) => (a.position > b.position ? 1 : -1));\n\n for (const grouping of groupings) {\n try {\n const query = JSON.parse(grouping.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost grouping`, grouping);\n }\n }\n }\n\n if (0 < curation.boosting.sortings.length) {\n const sortings = curation.boosting.sortings.sort((a, b) => (a.position > b.position ? 1 : -1));\n\n for (const sorting of sortings) {\n try {\n let query = JSON.parse(sorting.query);\n\n if (provider.market && sorting.field === \"inventory_total\") {\n query = { [`inventory_quantity_market_${provider.market}`]: query.inventory_total };\n }\n if (provider.market && sorting.field === \"price\") {\n query = { [`price_min_market_${provider.market}`]: query.price_min };\n }\n if (query) {\n sorts.push(query);\n }\n } catch {\n console.error(`query could not be parsed for boost sorting`, sorting);\n }\n }\n }\n }\n\n // default sorting - use _score for all modes\n sorts.push(\"_score\");\n\n return sorts;\n};\n\nexport const generateSortQuery = (options: {\n provider: ReactifySearchProviderProps;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n}): Record<string, any> | undefined => {\n const { provider, curation, sortOption } = options;\n if (!curation || curation.id.includes(\"global\")) return { match_all: {} };\n\n const curationField = curation.type === \"collection\" ? \"collectionHandle\" : \"searchTerm\";\n const curationValue = curation.type === \"collection\" ? curation.collectionHandle : curation.searchTerm?.toLowerCase();\n\n const queriesMust: Array<unknown> = [\n { term: { [`curations.${curationField}.keyword`]: curationValue } },\n { term: { \"curations.hidden\": true } },\n ];\n const queriesMustNot: Array<unknown> = [];\n\n if (provider.market) {\n queriesMust.push({ term: { \"curations.markets.keyword\": provider.market } });\n } else {\n queriesMustNot.push({ exists: { field: \"curations.markets.keyword\" } });\n }\n\n return {\n bool: {\n must_not: [\n {\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: queriesMust,\n ...(queriesMustNot.length > 0 ? { must_not: queriesMustNot } : {}),\n },\n },\n },\n },\n // hide callout when not sorting by _score or collections.position\n ...(sortOption && ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ? [{ term: { type: \"callout\" } }]\n : []),\n ],\n },\n };\n};\n"]}
|
|
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 const { provider } = options;\n const visibilityMode = provider.mode;\n return options.config.sort\n .sort((a, b) => {\n const aInt = typeof a.position === \"string\" ? parseInt(a.position, 10) : a.position;\n const bInt = typeof b.position === \"string\" ? parseInt(b.position, 10) : b.position;\n return aInt - bInt;\n })\n .filter(({ visibility }) => [\"all\", visibilityMode].includes(visibility));\n};\n\nexport const getSortOption = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n sortOption?: string;\n query?: Record<string, string>;\n}) => {\n const sortOptions = getSortOptions(options);\n\n return (\n sortOptions.find(({ handle }) => handle === options.sortOption || handle === options.query?.sort) ?? sortOptions[0]\n );\n};\n\nexport const generateSortSort = (options: {\n provider: ReactifySearchProviderProps;\n config: Config;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n}) => {\n const { provider, curation, sortOption } = options;\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 (provider.mode !== \"instant-search\") {\n if (sortOption && ![\"_score\", \"collections.position\"].includes(sortOption.field)) {\n if ([\"price_min\", \"price_max\"].includes(sortOption.field) && provider.market) {\n return [{ [`${sortOption.field}_market_${provider.market}`]: sortOption.direction }];\n }\n return [{ [sortOption.field]: sortOption.direction }];\n }\n }\n\n const sorts = [];\n\n // collection curation pin sorting\n if (provider.mode === \"collection\" && provider.collectionHandle) {\n if (curation?.collectionHandle) {\n const queriesMust: Array<unknown> = [\n { term: { \"curations.collectionHandle.keyword\": curation.collectionHandle } },\n ];\n const queriesMustNot: Array<unknown> = [];\n if (provider.market) {\n queriesMust.push({ term: { \"curations.markets.keyword\": provider.market } });\n } else {\n queriesMustNot.push({ exists: { field: \"curations.markets.keyword\" } });\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: queriesMust,\n ...(queriesMustNot.length > 0 ? { must_not: queriesMustNot } : {}),\n },\n },\n },\n },\n });\n }\n }\n\n // search curation pin sorting\n if (provider.mode === \"search\" || provider.mode === \"instant-search\") {\n if (curation?.searchTerm) {\n const queriesMust: Array<unknown> = [\n { term: { \"curations.searchTerm.keyword\": curation.searchTerm.toLowerCase() } },\n ];\n const queriesMustNot: Array<unknown> = [];\n if (provider.market) {\n queriesMust.push({ term: { \"curations.markets.keyword\": provider.market } });\n } else {\n queriesMustNot.push({ exists: { field: \"curations.markets.keyword\" } });\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: queriesMust,\n ...(queriesMustNot.length > 0 ? { must_not: queriesMustNot } : {}),\n },\n },\n },\n },\n });\n }\n }\n\n // curation boost sorting\n if (curation) {\n if (0 < curation.boosting.groupings.length) {\n const groupings = curation.boosting.groupings.sort((a, b) => (a.position > b.position ? 1 : -1));\n\n for (const grouping of groupings) {\n try {\n const query = JSON.parse(grouping.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost grouping`, grouping);\n }\n }\n }\n\n if (0 < curation.boosting.sortings.length) {\n const sortings = curation.boosting.sortings.sort((a, b) => (a.position > b.position ? 1 : -1));\n\n for (const sorting of sortings) {\n try {\n let query = JSON.parse(sorting.query);\n\n if (provider.market && sorting.field === \"inventory_total\") {\n query = { [`inventory_quantity_market_${provider.market}`]: query.inventory_total };\n }\n if (provider.market && sorting.field === \"price\") {\n query = { [`price_min_market_${provider.market}`]: query.price_min };\n }\n if (query) {\n sorts.push(query);\n }\n } catch {\n console.error(`query could not be parsed for boost sorting`, sorting);\n }\n }\n }\n }\n\n // default sorting - use _score for all modes\n sorts.push(\"_score\");\n\n return sorts;\n};\n\nexport const generateSortQuery = (options: {\n provider: ReactifySearchProviderProps;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n}): Record<string, any> | undefined => {\n const { provider, curation, sortOption } = options;\n if (!curation || curation.id.includes(\"global\")) return { match_all: {} };\n\n const curationField = curation.type === \"collection\" ? \"collectionHandle\" : \"searchTerm\";\n const curationValue = curation.type === \"collection\" ? curation.collectionHandle : curation.searchTerm?.toLowerCase();\n\n const queriesMust: Array<unknown> = [\n { term: { [`curations.${curationField}.keyword`]: curationValue } },\n { term: { \"curations.hidden\": true } },\n ];\n const queriesMustNot: Array<unknown> = [];\n\n if (provider.market) {\n queriesMust.push({ term: { \"curations.markets.keyword\": provider.market } });\n } else {\n queriesMustNot.push({ exists: { field: \"curations.markets.keyword\" } });\n }\n\n return {\n bool: {\n must_not: [\n {\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: queriesMust,\n ...(queriesMustNot.length > 0 ? { must_not: queriesMustNot } : {}),\n },\n },\n },\n },\n // hide callout when not sorting by _score or collections.position\n ...(sortOption && ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ? [{ term: { type: \"callout\" } }]\n : []),\n ],\n },\n };\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function SensorCuratedPageCollection(): JSX.Element | null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SensorCuratedPageCollection.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorCuratedPageCollection.tsx"],"names":[],"mappings":";;;;;AAKA,kEAUC;AAfD,kDAA0B;AAC1B,6HAAqG;AACrG,uCAAuD;AACvD,+CAA0E;AAE1E,SAAgB,2BAA2B;IACzC,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,aAAa,GAAG,IAAA,2CAAmC,EAAC;QACxD,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,QAAQ,EAAE,qBAAqB,CAAC,OAAO;KACxC,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 { getPropsSensorCuratedPageCollection } from \"../../utility/props\";\n\nexport function SensorCuratedPageCollection() {\n const reactifySearchContext = useReactifySearchContext();\n const reactiveProps = getPropsSensorCuratedPageCollection({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n });\n\n if (!reactiveProps) return null;\n\n return <ReactiveComponent {...reactiveProps} />;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function SensorCuratedPageSearch(): JSX.Element | null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SensorCuratedPageSearch.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorCuratedPageSearch.tsx"],"names":[],"mappings":";;;;;AAKA,0DAUC;AAfD,kDAA0B;AAC1B,6HAAqG;AACrG,uCAAuD;AACvD,+CAAsE;AAEtE,SAAgB,uBAAuB;IACrC,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,aAAa,GAAG,IAAA,uCAA+B,EAAC;QACpD,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,QAAQ,EAAE,qBAAqB,CAAC,OAAO;KACxC,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 { getPropsSensorCuratedPageSearch } from \"../../utility/props\";\n\nexport function SensorCuratedPageSearch() {\n const reactifySearchContext = useReactifySearchContext();\n const reactiveProps = getPropsSensorCuratedPageSearch({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n });\n\n if (!reactiveProps) return null;\n\n return <ReactiveComponent {...reactiveProps} />;\n}\n\n"]}
|