PageSourceSearch

https://cdn.vodafone.co.uk/web-marketing/consumer-marketing/assets…igationMap-5c839f7a.6eb1b4ffbd4a1a2e620e.js

js vodafone.co.uk collected 2026-09-24 07:23:01 UTC 19,869 bytes, 1 lines download raw bytes

1"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[7755],{39307:(e,t,s)=>{s.d(t,{bp:()=>oe});var a={};s.r(a),s.d(a,{isCloseMatch:()=>d,searchThroughFacet:()=>o});var i=s(37892);class r{constructor(){this.latestRequestIds={universalQuery:0,verticalQuery:0,generativeDirectAnswer:0},this.latestResponseIds={universalQuery:0,verticalQuery:0,generativeDirectAnswer:0}}updateRequestId(e){return++this.latestRequestIds[e]}setResponseId(e,t){this.latestResponseIds[e]=t}getLatestResponseId(e){return this.latestResponseIds[e]}processRequestId(e,t){return t>this.getLatestResponseId(e)&&(this.setResponseId(e,t),!0)}}class n{constructor(e,t,s){this.store=e,this.headlessId=t,s.addAnswersReducer(this.headlessId),e.replaceReducer(s.getParentReducer())}getState(){return this.store.getState()[this.headlessId]}dispatchEvent(e,t){const s="set-state"===e?"set-state":this.headlessId+"/"+e;this.store.dispatch({type:s,payload:t,headlessId:this.headlessId})}addListener(e){let t=e.valueAccessor(this.getState());return this.store.subscribe(()=>{const s=e.valueAccessor(this.getState());s!==t&&(t=s,e.callback(s))})}}var c=s(5045),l=s.n(c);function o(e,t){return Object.assign(Object.assign({},e),{options:e.options.filter(e=>d(e.displayName,t))})}function d(e,t){return function(e,t){if(e.includes(t))return!0;if(t.length<3)return!1;const s=function(e,t){const s=[];for(let a=0;a<=e.length-t.length;a++)s.push(e.substr(a,t.length));let a=t.length;for(const e of s){const s=l()(e,t);s<a&&(a=s)}return a}(e,t);return s<=1}(e.toLowerCase(),t.toLowerCase())}var u,h=s(79794);function p(e){return 1===e.length?e[0]:{kind:"disjunction",combinator:h.d.OR,filters:e}}!function(e){e.Universal="universal",e.Vertical="vertical"}(u||(u={}));var v=s(50785);const g={},y={handleSearchResponse:(e,t)=>{var s,a,i,r,n,c,l,o,d,u,h,p,v,g;if((null===(s=t.payload)||void 0===s?void 0:s.allResultsForVertical)&&(null===(a=t.payload)||void 0===a?void 0:a.alternativeVerticals)){const s={facets:t.payload.allResultsForVertical.facets||[],results:null===(i=t.payload.allResultsForVertical.verticalResults)||void 0===i?void 0:i.results,resultsCount:null===(r=t.payload.allResultsForVertical.verticalResults)||void 0===r?void 0:r.resultsCount};e.noResults={allResultsForVertical:s,alternativeVerticals:t.payload.alternativeVerticals}}else e.noResults=void 0;e.appliedQueryFilters=null===(c=null===(n=t.payload)||void 0===n?void 0:n.verticalResults)||void 0===c?void 0:c.appliedQueryFilters,e.queryDurationMillis=null===(o=null===(l=t.payload)||void 0===l?void 0:l.verticalResults)||void 0===o?void 0:o.queryDurationMillis,e.results=null===(u=null===(d=t.payload)||void 0===d?void 0:d.verticalResults)||void 0===u?void 0:u.results,e.resultsCount=null===(p=null===(h=t.payload)||void 0===h?void 0:h.verticalResults)||void 0===p?void 0:p.resultsCount,e.source=null===(g=null===(v=t.payload)||void 0===v?void 0:v.verticalResults)||void 0===g?void 0:g.source},setDisplayName:(e,t)=>{e.displayName=t.payload},setLimit:(e,t)=>{e.limit=t.payload},setOffset:(e,t)=>{e.offset=t.payload},setSortBys:(e,t)=>{e.sortBys=t.payload},setVerticalKey:(e,t)=>{e.verticalKey=t.payload},setLocationRadius:(e,t)=>{e.locationRadius=t.payload},setFacetAllowList:(e,t)=>{e.facetAllowlist=t.payload},setAutocompleteLimit:(e,t)=>{e.autocompleteLimit=t.payload}};function f(e){return(0,v.Z0)({name:e+"vertical",initialState:g,reducers:y})}const m={},S={setVerticals:(e,t)=>{e.verticals=t.payload},setLimit:(e,t)=>{e.limit=t.payload},setRestrictVerticals:(e,t)=>{e.restrictVerticals=t.payload},setAutocompleteLimit:(e,t)=>{e.autocompleteLimit=t.payload}};function E(e){return(0,v.Z0)({name:e+"universal",initialState:m,reducers:S})}var I=s(24169),M=s.n(I);function R(e,t){return"fieldValue"===e.kind?"fieldValue"===t.kind&&function(e,t){return e.fieldId===t.fieldId&&e.matcher===t.matcher&&M()(e.value,t.value)}(e,t):"fieldValue"!==t.kind&&e.combinator===t.combinator&&e.filters.length===t.filters.length&&e.filters.every(e=>t.filters.some(t=>R(e,t)))&&t.filters.every(t=>e.filters.some(e=>R(t,e)))}const b={},A={setStatic:(e,t)=>{e.static=t.payload},setFacets:(e,t)=>{e.facets=t.payload},resetFacets:e=>{var t;
1null===(t=e.facets)||void 0===t||t.forEach(e=>{e.options.forEach(e=>e.selected=!1)})},setFacetOption:(e,{payload:t})=>{if(!e.facets)return void console.warn("Trying to select a facet option when no facets exist.");const{fieldId:s,facetOption:a,shouldSelect:i}=t,r=e.facets.filter(e=>e.fieldId===s);0!==r.length?r.forEach(e=>{e.options=e.options.map(e=>e.matcher===a.matcher&&M()(e.value,a.value)?Object.assign(Object.assign({},e),{selected:i}):e)}):console.warn(`Could not select a facet option for fieldId "${s}": the fieldId was not found.`)},setFilterOption:(e,{payload:t})=>{e.static||(e.static=[]);const{selected:s,displayName:a,filter:i}=t,r=e.static.find(e=>R(e.filter,i));r?r.selected=s:s?e.static.push(t):console.warn(`Could not unselect a non-existing filter option in state with the following fields:\n${JSON.stringify(i)}.`)}};function L(e){return(0,v.Z0)({name:e+"filters",initialState:b,reducers:A})}const w={},q={setResult:(e,t)=>{e.result=t.payload}};function T(e){return(0,v.Z0)({name:e+"directAnswer",initialState:w,reducers:q})}const O={actions:[]},V={setActions:(e,t)=>{e.actions=t.payload}};function H(e){return(0,v.Z0)({name:e+"queryRules",initialState:O,reducers:V})}const k={},C={setIsLoading:(e,t)=>
1{e.isLoading=t.payload}};function D(e){return(0,v.Z0)({name:e+"searchStatus",initialState:k,reducers:C})}const j={},U={setIsLoading:(e,t)=>{e.isLoading=t.payload},setResponse:(e,t)=>{e.response=t.payload}};function F(e){return(0,v.Z0)({name:e+"generativeDirectAnswer",initialState:j,reducers:U})}class P{constructor(e,t,s,i,r){this.config=e,this.core=t,this.stateManager=s,this.httpManager=i,this.additionalHttpHeaders=r,this.utilities=a,this.stateManager.dispatchEvent("meta/setExperienceKey",e.experienceKey),this.stateManager.dispatchEvent("meta/setLocale",e.locale)}setIsPagination(e){this.stateManager.dispatchEvent("query/setIsPagination",e)}setQuery(e){this.stateManager.dispatchEvent("query/setInput",e)}setQueryTrigger(e){this.stateManager.dispatchEvent("query/setTrigger",e)}setQuerySource(e){this.stateManager.dispatchEvent("query/setSource",e)}setVertical(e){this._resetSearcherStates(),this.stateManager.dispatchEvent("vertical/setVerticalKey",e),this.stateManager.dispatchEvent("meta/setSearchType",u.Vertical)}setUniversal(){this._resetSearcherStates(),this.stateManager.dispatchEvent("vertical/setVerticalKey",void 0),this.stateManager.dispatchEvent("meta/setSearchType",u.Universal)}_resetSearcherStates(){this.stateManager.dispatchEvent("set-state",Object.assign(Object.assign({},this.state),{directAnswer:w,filters:b,queryRules:O,searchStatus:k,vertical:g,universal:m,generativeDirectAnswer:j}))}setVerticalLimit(e){this.stateManager.dispatchEvent("vertical/setLimit",e)}setVerticalAutocompleteLimit(e){this.stateManager.dispatchEvent("vertical/setAutocompleteLimit",e)}setUniversalLimit(e){this.stateManager.dispatchEvent("universal/setLimit",e)}setUniversalAutocompleteLimit(e){this.stateManager.dispatchEvent("universal/setAutocompleteLimit",e)}setOffset(e){this.stateManager.dispatchEvent("vertical/setOffset",e)}setStaticFilters(e){this.stateManager.dispatchEvent("filters/setStatic",e)}setFacets(e){this.stateManager.dispatchEvent("filters/setFacets",e)}resetFacets(){this.stateManager.dispatchEvent("filters/resetFacets")}setSpellCheckEnabled(e){this.stateManager.dispatchEvent("spellCheck/setEnabled",e)}setSessionTrackingEnabled(e){this.stateManager.dispatchEvent("sessionTracking/setEnabled",e)}setSessionId(e){this.stateManager.dispatchEvent("sessionTracking/setSessionId",e)}setAlternativeVerticals(e){this.stateManager.dispatchEvent("vertical/setAlternativeVerticals",e)}setSortBys(e){this.stateManager.dispatchEvent("vertical/setSortBys",e)}setContext(e){this.stateManager.dispatchEvent("meta/setContext",e)}setReferrerPageUrl(e){this.stateManager.dispatchEvent("meta/setReferrerPageUrl",e)}setUserLocation(e){this.stateManager.dispatchEvent("location/setUserLocation",e)}setState(e){this.stateManager.dispatchEvent("set-state",e)}setRestrictVerticals(e){this.stateManager.dispatchEvent("universal/setRestrictVerticals",e)}setLocationRadius(e){this.stateManager.dispatchEvent("vertical/setLocationRadius",e)}setFacetAllowList(e){this.stateManager.dispatchEvent("vertical/setFacetAllowList",e)}get state(){return this.stateManager.getState()}addListener(e){return this.stateManager.addListener(e)}async submitQuestion(e){return this.core.submitQuestion(Object.assign(Object.assign({},e),{additionalHttpHeaders:this.additionalHttpHeaders}))}async executeUniversalQuery(){if(this.state.meta.searchType!==u.Universal)return void console.error("The meta.searchType must be set to 'universal' for universal search. Set the searchType to universal by calling `setUniversal()`");const e=this.httpManager.updateRequestId("universalQuery");this.stateManager.dispatchEvent("searchStatus/setIsLoading",!0);const{input:t,querySource:s,queryTrigger:a}=this.state.query,i=!this.state.spellCheck.enabled,r=this.state.sessionTracking.enabled,{limit:n,restrictVerticals:c}=this.state.universal,l=this.state.sessionTracking.sessionId,{referrerPageUrl:o,context:d}=this.state.meta,{userLocation:h}=this.state.location,p=Object.assign(Object.assign({query:t||"",querySource:s,queryTrigger:a,skipSpellCheck:i},r&&{sessionId:l}),{sessionTrackingEnabled:r,limit:n,location:h,context:d,referrerPageUrl:o,restrictVerticals:c,additionalHttpHeaders:this.additionalHttpHeaders});let v;try{v=await this.core.universalSearch(p)}catch(t){return this.httpManager.processRequestId("universalQuery",e)&&this.stateManager.dispatchEvent("searchStatus/setIsLoading",!1),Promise.reject(t)}return this.httpManager.processRequestId("universalQuery",e)?(this.stateManager.dispatchEvent("universal/setVerticals",v.verticalResults),this.stateManager.dispatchEvent("query/setQueryId",v.queryId),this.stateManager.dispatchEvent("query/setMostRecentSearch",t),this.stateManager.dispatchEvent("spellCheck/setResult",v.spellCheck),this.stateManager.dispatchEvent("query/setSearchIntents",v.
1searchIntents||[]),this.stateManager.dispatchEvent("location/setLocationBias",v.locationBias),this.stateManager.dispatchEvent("searchStatus/setIsLoading",!1),this.stateManager.dispatchEvent("meta/setUUID",v.uuid),this.stateManager.dispatchEvent("directAnswer/setResult",v.directAnswer),this.stateManager.dispatchEvent("queryRules/setActions",v.queryRulesActionsData||[]),v):v}async executeUniversalAutocomplete(){const e=this.state.query.input||"",t=this.state.universal.autocompleteLimit;return this.core.universalAutocomplete({input:e,limit:t,additionalHttpHeaders:this.additionalHttpHeaders})}async executeVerticalQuery(){var e;if(this.state.meta.searchType!==u.Vertical)return void console.error("The meta.searchType must be set to 'vertical' for vertical search. Set the searchType to vertical by calling `setVertical()`");const t=this.httpManager.updateRequestId("verticalQuery"),s=this.state.vertical.verticalKey;if(!s)return void console.error("no verticalKey supplied for vertical search");this.stateManager.dispatchEvent("searchStatus/setIsLoading",!0);const{input:a,isPagination:i,queryId:r,querySource:n,queryTrigger:c}=this.state.query,l=!this.state.spellCheck.enabled,o=this.state.sessionTracking.enabled,d=this.state.sessionTracking.sessionId,v=function(e){if(!e)return null;const t=e.filter(e=>e.selected).map(e=>e.filter);if(0===t.length)return null;if(1===t.length)return t[0];const s=[],a=t.reduce((e,t)=>("fieldValue"!==t.kind?s.push(t):e[t.fieldId]?e[t.fieldId].push(t):e[t.fieldId]=[t],e),{}),i=Object.values(a);return 1===i.length&&0===s.length?p(i[0]):{kind:"conjunction",combinator:h.d.AND,filters:i.map(e=>p(e)).concat(s)}}(this.state.filters.static)||void 0,g=null===(e=this.state.filters)||void 0===e?void 0:e.facets,{limit:y,offset:f,sortBys:m,locationRadius:S,facetAllowlist:E}=this.state.vertical,{referrerPageUrl:I,context:M}=this.state.meta,{userLocation:R}=this.state.location,b=i?r:void 0,A=null==g?void 0:g.map(e=>({fieldId:e.fieldId,options:e.options.filter(e=>e.selected)})),L=Object.assign(Object.assign({query:a||"",querySource:n,queryTrigger:c,verticalKey:s,staticFilter:v,facets:A,retrieveFacets:!0,limit:y,offset:f,skipSpellCheck:l},o&&{sessionId:d}),{sessionTrackingEnabled:o,location:R,sortBys:m,context:M,referrerPageUrl:I,locationRadius:S,facetAllowlist:E,queryId:b,additionalHttpHeaders:this.additionalHttpHeaders});let w;try{w=await this.core.verticalSearch(L)}catch(e){return this.httpManager.processRequestId("verticalQuery",t)&&this.stateManager.dispatchEvent("searchStatus/setIsLoading",!1),Promise.reject(e)}return this.httpManager.processRequestId("verticalQuery",t)?(this.stateManager.dispatchEvent("query/setQueryId",w.queryId),this.stateManager.dispatchEvent("query/setMostRecentSearch",a),this.stateManager.dispatchEvent("query/setIsPagination",!1),this.stateManager.dispatchEvent("filters/setFacets",w.facets),this.stateManager.dispatchEvent("spellCheck/setResult",w.spellCheck),this.stateManager.dispatchEvent("query/setSearchIntents",w.searchIntents||[]),this.stateManager.dispatchEvent("location/setLocationBias",w.locationBias),this.stateManager.dispatchEvent("directAnswer/setResult",w.directAnswer),this.stateManager.dispatchEvent("meta/setUUID",w.uuid),this.stateManager.dispatchEvent("searchStatus/setIsLoading",!1),this.stateManager.dispatchEvent("vertical/handleSearchResponse",w),this.stateManager.dispatchEvent("queryRules/setActions",w.queryRulesActionsData||[]),w):w}async executeVerticalAutocomplete(){if(this.state.meta.searchType!==u.Vertical)return void console.error("The meta.searchType must be set to 'vertical' for vertical autocomplete. Set the searchType to vertical by calling `setVertical()`");const e=this.state.query.input||"",t=this.state.vertical.verticalKey;if(!t)return void console.error("no verticalKey supplied for vertical autocomplete");const s=this.state.vertical.autocompleteLimit;return this.core.verticalAutocomplete({input:e,verticalKey:t,limit:s,additionalHttpHeaders:this.additionalHttpHeaders})}async executeFilterSearch(e,t,s){if(this.state.meta.searchType!==u.Vertical)return void console.error("The meta.searchType must be set to 'vertical' for filter search. Set the searchType to vertical by calling `setVertical()`");const a=this.state.vertical.verticalKey;if(a)return this.core.filterSearch({input:e,verticalKey:a,sessionTrackingEnabled:this.state.sessionTracking.enabled,sectioned:t,fields:s,additionalHttpHeaders:this.additionalHttpHeaders});console.error("no verticalKey supplied for filter search")}setFacetOption(e,t,s){const a={shouldSelect:s,fieldId:e,facetOption:t};this.stateManager.dispatchEvent("filters/setFacetOption",a)}setFilterOption(e){this.stateManager.dispatchEvent("filters/setFilterOption",e)}async executeGenerativeDirectAnswer(){const e=this.httpManager.updateRequestId("generativeDirectAnswer"),t=this.state.meta.uuid,s=this.state.query.mostRecentSearch;let a,i;if(this.state.meta.searchType===u.Vertical?function(e){const t=e;return void 0!==t.appliedQueryFilters&&void 0!==t.results&&void 0!==t.resultsCount&&void 0!==t.source&&void 0!==t.verticalKey}(this.state.vertical)&&(a=[this.state.vertical]):a=this.state.universal.verticals,t)if(s){if(a&&0!==a.length){this.stateManager.dispatchEvent("generativeDirectAnswer/setIsLoading",!0);try{i=await this.core.generativeDirectAnswer({searchId:t,results:a,searchTerm:s,additionalHttpHeaders:this.additionalHttpHeaders})}catch(t){return this.httpManager.processRequestId("generativeDirectAnswer",e)&&(this.stateManager.dispatchEvent("generativeDirectAnswer/setResponse",void 0),this.stateManager.dispatchEvent("generativeDirectAnswer/setIsLoading",!1)),Promise.reject(t)}return this.httpManager.processRequestId("generativeDirectAnswer",e)?(this.stateManager.dispatchEvent("generativeDirectAnswer/setResponse",i),this.stateManager.dispatchEvent("generativeDirectAnswer/setIsLoading",!1),i):i}console.error("no results supplied for generative direct answer")}else console.error("no search term supplied for generative direct answer");else console.error("no search id supplied for generative direct answer")}}var x=s(77489);const K={},Q={setInput:(e,t)=>{e.input=t.payload},setIsPagination:(e,t)=>{e.isPagination=t.payload},setTrigger:(e,t)=>{e.queryTrigger=t.payload},setSource:(e,t)=>{e.querySource=t.payload},setQueryId:(e,t)=>{e.queryId=t.payload},setMostRecentSearch:(e,t)=>{e.mostRecentSearch=t.payload},setSearchIntents:(e,t)=>{e.searchIntents=t.payload}};function _(e){return(0,v.Z0)({name:e+"query",initialState:K,reducers:Q})}const B={enabled:!0},Z={setResult:(e,t)=>Object.assign({enabled:e.enabled},t.payload),setEnabled:(e,t)=>{e.enabled=t.payload}};function N(e){return(0,v.Z0)({name:e+"spellCheck",initialState:B,reducers:Z})}const $={enabled:!0},Y={setEnabled:(e,t)=>{e.enabled=t.payload},setSessionId:(e,t)=>{e.sessionId=t.payload}};function z(e){return(0,v.Z0)({name:e+"sessionTracking",initialState:$,reducers:Y})}const G={searchType:u.Universal},J={setContext:(e,t)=>
1{e.context=t.payload},setReferrerPageUrl:(e,t)=>{e.referrerPageUrl=t.payload},setUUID:(e,t)=>{e.uuid=t.payload},setSearchType:(e,t)=>{e.searchType=t.payload},setExperienceKey:(e,t)=>{e.experienceKey=t.payload},setLocale:(e,t)=>{e.locale=t.payload}};function W(e){return(0,v.Z0)({name:e+"meta",initialState:G,reducers:J})}const X={},ee={setUserLocation:(e,t)=>{e.userLocation=t.payload},setLocationBias:(e,t)=>{e.locationBias=t.payload}};function te(e){return(0,v.Z0)({name:e+"location",initialState:X,reducers:ee})}const se="main",ae="Client-SDK",{rE:ie}={rE:"2.8.1"};var re=function(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(s[a[i]]=e[a[i]])}return s};let ne;const ce=(0,v.U1)({middleware:e=>e({serializableCheck:!1}),reducer:e=>e||{},devTools:!1}),le=new class{constructor(){this.headlessIdToReducer={}}addAnswersReducer(e){var t;this.headlessIdToReducer[e]=(t=e+"/",(0,x.HY)({query:_(t).reducer,vertical:f(t).reducer,universal:E(t).reducer,directAnswer:T(t).reducer,queryRules:H(t).reducer,filters:L(t).reducer,spellCheck:N(t).reducer,sessionTracking:z(t).reducer,searchStatus:D(t).reducer,meta:W(t).reducer,location:te(t).reducer,generativeDirectAnswer:F(t).reducer}))}getParentReducer(){const e=(0,x.HY)(this.headlessIdToReducer);return(t,s)=>"set-state"===s.type?Object.assign(Object.assign({},t),{[s.headlessId]:s.payload}):e(t,s)}};function oe(e,t){const{verticalKey:s,headlessId:a}=e,c=re(e,["verticalKey","headlessId"]);if(a===se)throw new Error(`Cannot instantiate a SearchHeadless using the default headlessId "${a}". Specify a different headlessId.`);const l=(0,i.T)(c),o=new n(ce,a||se,le),d=new r,u=function(e){const t=Object.assign(Object.assign({},null==e?void 0:e[ae]),{ANSWERS_HEADLESS:ie});return Object.assign(Object.assign({},e),{[ae]:t})}(t),h=new P(c,l,o,d,u);return s?h.setVertical(s):h.setUniversal(),ne?(de(ne,h),de(h,ne)):ne=h,h}function de(e,t){e.addListener({valueAccessor:e=>e.sessionTracking,callback:e=>{t.setState(Object.assign(Object.assign({},t.state),{sessionTracking:e}))}})}},29928:(e,t,s)=>{s.d(t,{HK:()=>r,p5:()=>n});var a=s(48431),i=(s(61783),s(39307),(0,a.createContext)({}));function r(){const e=(0,a.useContext)(i);if(void 0===e.state)throw new Error("Attempted to call useSearchActions() outside of SearchHeadlessProvider. Please ensure that 'useSearchActions()' is called within an SearchHeadlessProvider component.");return e}function n(e){const{children:t,searcher:s}=e;return a.createElement(i.Provider,{value:s},t)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.