@faststore/core 3.0.157 → 3.0.159

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +13 -13
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/server-production/0.pack +0 -0
  9. package/.next/cache/webpack/server-production/index.pack +0 -0
  10. package/.next/next-minimal-server.js.nft.json +1 -1
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.js +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/react-loadable-manifest.json +7 -1
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/chunks/2082.js +2 -2
  17. package/.next/server/chunks/3202.js +1 -1
  18. package/.next/server/chunks/5484.js +1 -1
  19. package/.next/server/chunks/5754.js +1 -1
  20. package/.next/server/chunks/7917.js +1 -1
  21. package/.next/server/middleware-build-manifest.js +1 -1
  22. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  23. package/.next/server/pages/api/graphql.js +1 -1
  24. package/.next/server/pages/en-US/404.html +2 -2
  25. package/.next/server/pages/en-US/500.html +2 -2
  26. package/.next/server/pages/en-US/account.html +2 -2
  27. package/.next/server/pages/en-US/checkout.html +2 -2
  28. package/.next/server/pages/en-US/login.html +2 -2
  29. package/.next/server/pages/en-US/s.html +2 -2
  30. package/.next/server/pages/en-US.html +2 -2
  31. package/.next/server/pages-manifest.json +1 -1
  32. package/.next/static/chunks/{3202.2bdeba847ce9ecd4.js → 3202.d7d5a83625bed7aa.js} +1 -1
  33. package/.next/static/chunks/3523.7b396bcd952800b9.js +1 -0
  34. package/.next/static/chunks/{5484.50796e8843ec9dad.js → 5484.4fe23adb8755a0dd.js} +1 -1
  35. package/.next/static/chunks/{webpack-4db0ac36fb83322c.js → webpack-9c6d1ba53f8caf2c.js} +1 -1
  36. package/.next/trace +97 -97
  37. package/.turbo/turbo-build.log +2 -2
  38. package/.turbo/turbo-lint.log +1 -1
  39. package/.turbo/turbo-test.log +5 -5
  40. package/package.json +2 -2
  41. package/src/components/search/SearchDropdown/SearchDropdown.tsx +27 -6
  42. package/src/components/search/SearchDropdown/index.ts +1 -0
  43. package/src/components/search/SearchProductItem/SearchProductItem.tsx +7 -0
  44. package/src/pages/_document.tsx +1 -0
  45. package/src/sdk/analytics/platform/vtex/search.ts +21 -0
  46. package/src/sdk/analytics/types.ts +12 -0
  47. package/.next/static/chunks/3523.9c4d94172a1336ac.js +0 -1
  48. /package/.next/static/{VgK3X_MvA1JXpiVU8zDih → TSYX9VtdnhX3IAmZuTdux}/_buildManifest.js +0 -0
  49. /package/.next/static/{VgK3X_MvA1JXpiVU8zDih → TSYX9VtdnhX3IAmZuTdux}/_ssgManifest.js +0 -0
@@ -67,11 +67,11 @@ Route (pages) Size First Load JS
67
67
  ├ chunks/framework-12a146e94cfcf7c4.js 45.4 kB
68
68
  ├ chunks/main-209ac4974b020af1.js 33.1 kB
69
69
  ├ chunks/pages/_app-e419b2062065ccf0.js 9.87 kB
70
- ├ chunks/webpack-4db0ac36fb83322c.js 3.36 kB
70
+ ├ chunks/webpack-9c6d1ba53f8caf2c.js 3.36 kB
71
71
  └ css/ee0556daedda6306.css 3.07 kB
72
72
 
73
73
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
74
74
  ○ (Static) automatically rendered as static HTML (uses no initial props)
75
75
  ● (SSG) automatically generated as static HTML + JSON (uses getStaticProps)
76
76
 
77
- Done in 69.63s.
77
+ Done in 70.41s.
@@ -1,4 +1,4 @@
1
1
  yarn run v1.22.22
2
2
  $ next lint
3
3
  ✔ No ESLint warnings or errors
4
- Done in 6.09s.
4
+ Done in 6.20s.
@@ -1,12 +1,12 @@
1
1
  yarn run v1.22.22
2
2
  $ jest
3
- PASS test/utils/multipleTemplates.test.ts (34.953 s)
4
- PASS test/server/cms/index.test.ts (34.965 s)
5
- PASS test/server/index.test.ts (39.285 s)
3
+ PASS test/utils/multipleTemplates.test.ts (34.312 s)
4
+ PASS test/server/cms/index.test.ts (35.424 s)
5
+ PASS test/server/index.test.ts (38.348 s)
6
6
 
7
7
  Test Suites: 3 passed, 3 total
8
8
  Tests: 19 passed, 19 total
9
9
  Snapshots: 0 total
10
- Time: 40.404 s
10
+ Time: 39.531 s
11
11
  Ran all test suites.
12
- Done in 42.08s.
12
+ Done in 40.96s.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.0.157",
3
+ "version": "3.0.159",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -128,5 +128,5 @@
128
128
  "node": "18.19.0",
129
129
  "yarn": "1.19.1"
130
130
  },
131
- "gitHead": "4b6abd0958b0f550d4a45bbced284a03d8649357"
131
+ "gitHead": "4358b6e13d90cc95dbc364f3fab1f867b188701d"
132
132
  }
@@ -13,11 +13,30 @@ import { SearchState } from '@faststore/sdk'
13
13
  import { ProductSummary_ProductFragment } from '@generated/graphql'
14
14
  import SearchProductItem from 'src/components/search/SearchProductItem'
15
15
  import { formatSearchPath } from 'src/sdk/search/formatSearchPath'
16
+ import type {
17
+ IntelligentSearchAutocompleteClickEvent,
18
+ IntelligentSearchAutocompleteClickParams,
19
+ } from 'src/sdk/analytics/types'
20
+
16
21
  interface SearchDropdownProps {
17
22
  sort: SearchState['sort']
18
23
  [key: string]: any
19
24
  }
20
25
 
26
+ export function sendAutocompleteClickEvent({
27
+ url,
28
+ term,
29
+ position,
30
+ productId,
31
+ }: IntelligentSearchAutocompleteClickParams) {
32
+ import('@faststore/sdk').then(({ sendAnalyticsEvent }) => {
33
+ sendAnalyticsEvent<IntelligentSearchAutocompleteClickEvent>({
34
+ name: 'intelligent_search_autocomplete_click',
35
+ params: { term, url, productId, position },
36
+ })
37
+ })
38
+ }
39
+
21
40
  function SearchDropdown({ sort, ...otherProps }: SearchDropdownProps) {
22
41
  const {
23
42
  values: { onSearchSelection, products, term, terms },
@@ -38,14 +57,16 @@ function SearchDropdown({ sort, ...otherProps }: SearchDropdownProps) {
38
57
  term: suggestion,
39
58
  sort,
40
59
  }),
41
- onClick: () =>
60
+ onClick: () => {
42
61
  onSearchSelection?.(
43
62
  suggestion,
44
- formatSearchPath({
45
- term: suggestion,
46
- sort,
47
- })
48
- ),
63
+ formatSearchPath({ term: suggestion, sort })
64
+ )
65
+ sendAutocompleteClickEvent({
66
+ term: suggestion,
67
+ url: window.location.href,
68
+ })
69
+ },
49
70
  }}
50
71
  />
51
72
  ))}
@@ -1 +1,2 @@
1
1
  export { default } from './SearchDropdown'
2
+ export { sendAutocompleteClickEvent } from './SearchDropdown'
@@ -8,6 +8,7 @@ import {
8
8
  import { Image } from 'src/components/ui/Image'
9
9
  import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
10
10
  import { useProductLink } from 'src/sdk/product/useProductLink'
11
+ import { sendAutocompleteClickEvent } from '../SearchDropdown'
11
12
  import type { ProductSummary_ProductFragment } from '@generated/graphql'
12
13
 
13
14
  type SearchProductItemProps = {
@@ -50,6 +51,12 @@ function SearchProductItem({
50
51
  onClick: () => {
51
52
  onClick()
52
53
  onSearchSelection?.(name, href)
54
+ sendAutocompleteClickEvent({
55
+ url: href,
56
+ term: name,
57
+ position: index,
58
+ productId: product.isVariantOf.productGroupID ?? product.sku,
59
+ })
53
60
  },
54
61
  ...baseLinkProps,
55
62
  }
@@ -16,6 +16,7 @@ function Document() {
16
16
  rel="dns-prefetch"
17
17
  href={`https://${storeConfig.api.storeId}.vtexassets.com`}
18
18
  />
19
+ <meta name="storefront" content="fast_store" />
19
20
  {!process.env.DISABLE_3P_SCRIPTS && <ThirdPartyScripts />}
20
21
  <WebFonts />
21
22
  </Head>
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import type { AnalyticsEvent } from '@faststore/sdk'
5
5
  import type {
6
+ IntelligentSearchAutocompleteClickEvent,
6
7
  IntelligentSearchAutocompleteQueryEvent,
7
8
  IntelligentSearchQueryEvent,
8
9
  SearchSelectItemEvent,
@@ -76,6 +77,13 @@ type SearchEvent =
76
77
  url: string
77
78
  type: 'search.autocomplete.query'
78
79
  }
80
+ | {
81
+ text: string
82
+ url?: string
83
+ position?: number
84
+ productId?: string
85
+ type: 'search.autocomplete.click'
86
+ }
79
87
 
80
88
  const sendEvent = (options: SearchEvent & { url?: string }) =>
81
89
  fetch(`https://sp.vtex.com/event-api/v1/${config.api.storeId}/event`, {
@@ -101,6 +109,7 @@ const handleEvent = (
101
109
  | SearchSelectItemEvent
102
110
  | IntelligentSearchQueryEvent
103
111
  | IntelligentSearchAutocompleteQueryEvent
112
+ | IntelligentSearchAutocompleteClickEvent
104
113
  ) => {
105
114
  switch (event.name) {
106
115
  case 'search_select_item': {
@@ -156,6 +165,18 @@ const handleEvent = (
156
165
  break
157
166
  }
158
167
 
168
+ case 'intelligent_search_autocomplete_click': {
169
+ sendEvent({
170
+ text: event.params.term,
171
+ url: event.params.url ?? '',
172
+ productId: event.params.productId ?? '',
173
+ ...(event.params.position && { position: event.params.position }),
174
+ type: 'search.autocomplete.click',
175
+ })
176
+
177
+ break
178
+ }
179
+
159
180
  default:
160
181
  }
161
182
  }
@@ -48,3 +48,15 @@ export interface IntelligentSearchAutocompleteQueryEvent {
48
48
  name: 'intelligent_search_autocomplete_query'
49
49
  params: IntelligentSearchAutocompleteQueryParams
50
50
  }
51
+
52
+ export interface IntelligentSearchAutocompleteClickParams {
53
+ term: string
54
+ url?: string
55
+ position?: number
56
+ productId?: string
57
+ }
58
+
59
+ export interface IntelligentSearchAutocompleteClickEvent {
60
+ name: 'intelligent_search_autocomplete_click'
61
+ params: IntelligentSearchAutocompleteClickParams
62
+ }
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3523],{9767:function(e,t,r){var a=r(2784),n=r(5450);let c=(0,a.forwardRef)(function({value:e,as:t="span",variant:r="selling",testId:c="fs-price",formatter:o=e=>e,SRText:s,...i},l){let u=o(e,r);return a.createElement(t,{ref:l,"data-fs-price":!0,"data-fs-price-variant":r,"data-testid":c,...i},s&&a.createElement(n.Z,{text:s}),u)});t.Z=c},5450:function(e,t,r){var a=r(2784);t.Z=function({text:e,as:t}){let r=t??"span";return a.createElement(r,{"data-fs-sr-only":!0},e)}},1933:function(e,t,r){r.d(t,{R:function(){return useSearch}});var a=r(2784),n=r(101);let useSearch=()=>{let e=(0,a.useContext)(n.c);return e?{inContext:!0,values:e}:{inContext:!1}}},9088:function(e,t,r){var a=r(2784),n=r(9767);let c=(0,a.forwardRef)(function({testId:e="fs-product-price",value:t,listPrice:r,formatter:c,...o},s){let i=r??0,l=t??0;return a.createElement("div",{ref:s,"data-fs-product-price":!0,"data-testid":e,...o},l!==i&&0!==i?a.createElement(a.Fragment,null,a.createElement(n.Z,{value:i,formatter:c,testId:"list-price","data-value":i,variant:"listing",SRText:"Original price:"}),a.createElement(n.Z,{value:l,formatter:c,testId:"price","data-value":l,variant:"spot",SRText:"Price:"})):a.createElement(n.Z,{value:l,formatter:c,testId:"price","data-value":l,variant:"spot",SRText:"Price:"}))});t.Z=c},2174:function(e,t,r){var a=r(2784),n=r(1933),c=r(4564);t.Z=({testId:e="fs-search-auto-complete",children:t,...r})=>{let{inContext:o,values:s}=(0,n.R)();return o&&(s.terms.length<=0||s.term.length<=0)?null:a.createElement("section",{"data-testid":e,"data-fs-search-auto-complete":!0,...r},a.createElement(c.Z,{as:"ol"},t))}},757:function(e,t,r){var a=r(2784),n=r(2614),c=r(727);t.Z=({testId:e="fs-search-auto-complete-term",suggestion:t,term:r,linkProps:o,icon:s=a.createElement(n.Z,{name:"MagnifyingGlass",width:18,height:18})})=>{let i=t.toLowerCase().split(r.toLowerCase());return a.createElement("li",{"data-fs-search-auto-complete-item":!0,"data-testid":e},a.createElement(c.Z,{...o,"data-fs-search-auto-complete-item-link":!0,variant:"display"},a.createElement("span",{"data-fs-search-auto-complete-item-icon":!0},s),a.createElement("p",null,i.map((e,n)=>a.createElement(a.Fragment,{key:[e,n].join()},e.length>0&&a.createElement("strong",{"data-fs-search-auto-complete-item-suggestion":!0},0===n?e.charAt(0).toUpperCase()+e.slice(1):e),n!==i.length-1&&(0===n?r.split("").map((e,r)=>0===r&&0===t.indexOf(e.toUpperCase())?e.toUpperCase():e.toLowerCase()).join(""):r.toLowerCase()))))))}},4583:function(e,t,r){var a=r(2784),n=r(1933);let SearchLoading=()=>{let{inContext:e,values:t}=(0,n.R)();return a.createElement(a.Fragment,null,e&&t.isLoading&&a.createElement("p",{"data-fs-search-dropdown-loading-text":!0},"Loading..."))},c=(0,a.forwardRef)(function({testId:e="fs-search-dropdown",children:t,...r},n){return a.createElement("div",{ref:n,"data-fs-search-dropdown":!0,"data-testid":e,...r},a.createElement("section",null,a.createElement(SearchLoading,null),t))});t.Z=c},2701:function(e,t,r){var a=r(2784),n=r(1933),c=r(3339),o=r(4564);t.Z=({testId:e="fs-search-history",title:t="History",clearLabel:r="Clear History",onClear:s,children:i,...l})=>{let{inContext:u,values:d}=(0,n.R)();return u&&(0!==d.term.length||d.isLoading)?null:a.createElement("section",{"data-testid":e,"data-fs-search-history":!0,...l},a.createElement("header",{"data-fs-search-history-header":!0},a.createElement("p",{"data-fs-search-history-title":!0},t),a.createElement(c.Z,{variant:"tertiary",onClick:s,size:"small"},r)),a.createElement(o.Z,{as:"ol"},i))}},9482:function(e,t,r){var a=r(2784),n=r(2614),c=r(727);t.Z=({testId:e="fs-search-history-term",value:t,linkProps:r,icon:o=a.createElement(n.Z,{name:"ClockClockwise",width:18,height:18})})=>a.createElement("li",{"data-fs-search-history-item":!0,"data-testid":e},a.createElement(c.Z,{...r,"data-fs-search-history-item-link":!0,variant:"display"},a.createElement("span",{"data-fs-search-history-item-icon":!0},o),a.createElement("span",null,t)))},6035:function(e,t,r){var a=r(2784),n=r(727);let c=(0,a.forwardRef)(function({testId:e="fs-search-product-item",linkProps:t,children:r},c){return a.createElement("li",{ref:c,"data-fs-search-product-item":!0,"data-testid":e},a.createElement(n.Z,{...t,"data-fs-search-product-item-link":!0,variant:"display"},r))});t.Z=c},3454:function(e,t,r){var a=r(2784),n=r(9088);let c=(0,a.forwardRef)(function({price:e,title:t,...r},c){return a.createElement("section",{ref:c,"data-fs-search-product-item-content":!0,...r},a.createElement("p",{"data-fs-search-product-item-title":!0},t),0!==e.value&&a.createElement(n.Z,{"data-fs-search-product-item-prices":!0,listPrice:e.listPrice,value:e.value,formatter:e.formatter}))});t.Z=c},9082:function(e,t,r){var a=r(2784);let n=(0,a.forwardRef)(function({testId:e="fs-search-product-item-image",children:t,...r},n){return a.createElement("div",{ref:n,"data-fs-search-product-item-image":!0,"data-testid":e,...r},t)});t.Z=n},9994:function(e,t,r){var a=r(2784),n=r(1933),c=r(4564);t.Z=({testId:e="fs-search-products",title:t="Suggested Products",children:r,...o})=>{let{inContext:s,values:i}=(0,n.R)();return s&&i.products.length<=0?null:a.createElement("section",{"data-testid":e,"data-fs-search-products":!0,...o},a.createElement("header",{"data-fs-search-products-header":!0},a.createElement("p",{"data-fs-search-products-title":!0},t)),a.createElement(c.Z,{as:"ol"},r))}},3311:function(e,t,r){var a=r(2784),n=r(1933),c=r(4564);let o=(0,a.forwardRef)(function({testId:e="fs-top-search",title:t="Top Search",children:r,...o},s){let{inContext:i,values:l}=(0,n.R)();return i&&(0!==l.term.length||l.isLoading)?null:a.createElement("section",{ref:s,"data-testid":e,"data-fs-search-top":!0,...o},a.createElement("header",{"data-fs-search-top-header":!0},a.createElement("p",{"data-fs-search-top-title":!0},t)),a.createElement(c.Z,{as:"ol"},r))});t.Z=o},1287:function(e,t,r){var a=r(2784),n=r(727),c=r(276);let o=(0,a.forwardRef)(function({testId:e="fs-top-search-term",value:t,linkProps:r,index:o},s){return a.createElement("li",{ref:s,"data-fs-search-top-item":!0,"data-testid":e},a.createElement(n.Z,{...r,"data-fs-search-top-item-link":!0,variant:"display"},a.createElement(c.Z,{"data-fs-search-top-item-badge":!0,variant:"info"},o+1),t))});t.Z=o},6942:function(e,t,r){r.r(t),r.d(t,{default:function(){return search_SearchDropdown_SearchDropdown}});var a=r(9499),n=r(4730),c=r(1933),o=r(4583),s=r(2174),i=r(757),l=r(9994),u=r(2701),d=r(9482),p=r(8543),f=r(2322);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchHistory_SearchHistory=e=>{var t=Object.assign({},e),{values:{onSearchSelection:r}}=(0,c.R)(),{searchHistory:a,clearSearchHistory:n}=(0,p.Z)();return a.length?(0,f.jsx)(u.Z,_objectSpread(_objectSpread({title:"History",onClear:n},t),{},{children:a.map(e=>(0,f.jsx)(d.Z,{value:e.term,linkProps:{href:e.path,onClick:()=>null==r?void 0:r(e.term,e.path)}},e.term))})):null},m=r(3311),h=r(1287),v=r(3295),y=r(3523),b=r(7553),O=r(5238),j=y.M,search_useTopSearch=function(){var{channel:e,locale:t}=(0,O.kP)(),{data:r,error:a}=(0,b.aM)(j,{term:"",selectedFacets:[{key:"channel",value:null!=e?e:""},{key:"locale",value:t}]});return{data:r,error:a}},g=["topTerms","sort"];function SearchTop_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function SearchTop_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchTop_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchTop_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchTop_SearchTop=function(e){var t,{topTerms:r=[],sort:a}=e,o=(0,n.Z)(e,g),{values:{onSearchSelection:s}}=(0,c.R)(),{data:i}=search_useTopSearch(),l=(null!==(t=null==i?void 0:i.search.suggestions.terms)&&void 0!==t?t:r).slice(0,5);return 0===l.length?null:(0,f.jsx)(m.Z,SearchTop_objectSpread(SearchTop_objectSpread({title:"Top Search"},o),{},{children:l.map((e,t)=>(0,f.jsx)(h.Z,{value:e.value,index:t,linkProps:{href:(0,v.u)({term:e.value,sort:a}),onClick:()=>null==s?void 0:s(e.value,(0,v.u)({term:e.value,sort:a}))}},t))}))},w=r(6035),S=r(9082),P=r(3454),E=r(8918),_=r(113),Z=r(5679),k=["product","index"],D=["href","onClick"];function SearchProductItem_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function SearchProductItem_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchProductItem_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchProductItem_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchProductItem_SearchProductItem=function(e){var{product:t,index:r}=e,a=(0,n.Z)(e,k),{values:{onSearchSelection:o}}=(0,c.R)(),s=(0,Z.w)({product:t,selectedOffer:0,index:r}),{href:i,onClick:l}=s,u=(0,n.Z)(s,D),{isVariantOf:{name:d},image:[p],offers:{lowPrice:m,offers:[{listPrice:h}]}}=t,v=SearchProductItem_objectSpread({href:i,onClick:()=>{l(),null==o||o(d,i)}},u);return(0,f.jsxs)(w.Z,SearchProductItem_objectSpread(SearchProductItem_objectSpread({linkProps:v},a),{},{children:[(0,f.jsx)(S.Z,{children:(0,f.jsx)(E.Z,{src:p.url,alt:p.alternateName,width:56,height:56})}),(0,f.jsx)(P.Z,{title:d,price:{value:m,listPrice:h,formatter:_.P}})]}))},x=["sort"];function SearchDropdown_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,a)}return r}function SearchDropdown_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?SearchDropdown_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):SearchDropdown_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var search_SearchDropdown_SearchDropdown=function(e){var{sort:t}=e,r=(0,n.Z)(e,x),{values:{onSearchSelection:a,products:u,term:d,terms:p}}=(0,c.R)();return(0,f.jsxs)(o.Z,SearchDropdown_objectSpread(SearchDropdown_objectSpread({},r),{},{children:[(0,f.jsx)(search_SearchHistory_SearchHistory,{sort:t}),(0,f.jsx)(search_SearchTop_SearchTop,{sort:t}),(0,f.jsx)(s.Z,{children:null==p?void 0:p.map(e=>{var{value:r}=e;return(0,f.jsx)(i.Z,{term:d,suggestion:r,linkProps:{href:(0,v.u)({term:r,sort:t}),onClick:()=>null==a?void 0:a(r,(0,v.u)({term:r,sort:t}))}},r)})}),(0,f.jsx)(l.Z,{children:u.map((e,t)=>(0,f.jsx)(search_SearchProductItem_SearchProductItem,{product:e,index:t},e.id))})]}))}},113:function(e,t,r){r.d(t,{P:function(){return useFormattedPrice}});var a=r(2784),n=r(5238),usePriceFormatter=function(){var{decimals:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{currency:t,locale:r}=(0,n.kP)();return(0,a.useCallback)(a=>Intl.NumberFormat(r,{style:"currency",currency:t.code,minimumFractionDigits:e?2:0}).format(a),[t.code,r,e])},useFormattedPrice=e=>{var t=usePriceFormatter();return(0,a.useMemo)(()=>t(e),[t,e])}},5679:function(e,t,r){r.d(t,{w:function(){return useProductLink}});var a=r(2784),n=r(5238),useProductLink=e=>{var{index:t,product:c,selectedOffer:o}=e,{slug:s}=c,{currency:{code:i}}=(0,n.kP)(),l=(0,a.useCallback)(()=>{r.e(7195).then(r.bind(r,1153)).then(e=>{var{sendAnalyticsEvent:r}=e;r({name:"select_item",params:{items:[{item_id:c.isVariantOf.productGroupID,item_name:c.isVariantOf.name,item_brand:c.brand.name,item_variant:c.sku,index:t,price:c.offers.offers[o].price,discount:c.offers.offers[o].listPrice-c.offers.offers[o].price,currency:i,item_variant_name:c.name,product_reference_id:c.gtin}]}}),r({name:"search_select_item",params:{url:window.location.href,items:[{item_id:c.isVariantOf.productGroupID,item_variant:c.sku,index:t}]}})})},[i,c,t,o]);return{href:"/".concat(s,"/p"),onClick:l,"data-testid":"product-link"}}}}]);