/*! For license information please see productname.js.LICENSE.txt */ (self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[568],{28057:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>getRewrittenUrl});const getRewrittenUrl=(url,site,territory,customTrackingId,articleUrl,articleName)=>{articleUrl=articleUrl||"hawk-article-url",articleName=articleName||"hawk-article-name",site=(site||"hawk").toLowerCase(),territory=(territory||"zz").toLowerCase();const separator=-1===(url||"").indexOf("go.redirectingat.com")||"custom-tracking"===customTrackingId?"-":"_",prefix="hawk"===site?site:"".concat(site).concat(separator).concat(territory);return customTrackingId=customTrackingId||"custom-tracking",(url=(url||"").replace("hawk-article-url",encodeURIComponent(articleUrl)).replace("hawk-article-name",encodeURIComponent(articleName)).replace("hawk-prefix",prefix)).replace(/hawk-custom-tracking/g,"".concat(prefix).concat(separator).concat(customTrackingId))}},42797:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>ContractAllowance_ContractAllowance});var react=__webpack_require__(67294),HawkWidgetProviderContext=__webpack_require__(24412),getMinutesDisplay=__webpack_require__(2662);var formatContractLength=__webpack_require__(52196),getTextsValue=__webpack_require__(66470),formatPhoneAmount=__webpack_require__(70034);const contract_allowance={container:"hawk-contract-allowance-container",value:"hawk-contract-allowance-value",label:"hawk-contract-allowance-label",productname:"hawk-contract-allowance-productname",review:"hawk-contract-allowance-review",broadband:"hawk-contract-allowance-broadband",above:"hawk-contract-allowance-above","cc-simplified":"hawk-contract-allowance-cc-simplified"},ContractAllowance_ContractAllowance=_ref=>{let{deal,className,showLabel,type}=_ref;return react.createElement(HawkWidgetProviderContext.$6,null,(value=>{const{translate}=value,containerStyle=className&&contract_allowance[className]?className:"container",displayValue=((type,deal,translate)=>{var _deal$contract;switch(type){case"data":return null!=deal&&deal.contract&&"number"==typeof deal.contract.data?(0,formatPhoneAmount.Z)(deal.contract.data,translate):null;case"length":return(0,formatContractLength.Z)(deal,translate);case"minutes":return(0,getMinutesDisplay.H)(deal,translate);case"speed":return null!=deal&&null!==(_deal$contract=deal.contract)&&void 0!==_deal$contract&&_deal$contract.speed?translate("speedBlockValue",[String(deal.contract.speed)]):null;case"texts":return(0,getTextsValue.Z)(deal,translate);default:return null}})(type,deal,translate);return displayValue||!displayValue&&"number"==typeof displayValue?react.createElement("div",{className:contract_allowance[containerStyle],"data-type":type},react.createElement("strong",{className:contract_allowance.value},displayValue),showLabel&&react.createElement("span",{className:contract_allowance.label},((type,deal,translate)=>{switch(type){case"data":return translate("dataBlockLabel");case"length":return translate("contractLengthBlockLabel");case"minutes":return(0,getMinutesDisplay.z)(deal,translate);case"speed":return translate("speedBlockLabel");case"texts":return translate("textsBlockLabel");default:return null}})(type,deal,translate))):null}))}},13469:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>Filter_Filter});var react=__webpack_require__(67294),getImageUrl=__webpack_require__(4636),HawkWidgetProviderContext=__webpack_require__(24412);const filter={container:"hawk-filter-container",select:"hawk-filter-select",pocket:"hawk-filter-pocket",broadband:"hawk-filter-broadband",specs:"hawk-filter-specs","bordered-full-width":"hawk-filter-bordered-full-width",bordered:"hawk-filter-bordered",shop:"hawk-filter-shop",image:"hawk-filter-image","cc-simplified":"hawk-filter-cc-simplified"},Filter_Filter=_ref=>{let{values,selectedValue,changeFilter,type,filterKey,className}=_ref;const{translate,genericSharedComponents:{LazyImage}}=(0,HawkWidgetProviderContext.KF)(),containerStyle=className&&filter[className]?className:"container";return react.createElement("div",{className:filter[containerStyle]},react.createElement("select",{className:filter.select,onChange:changeFilter,value:selectedValue,"data-type":type,"data-filter-key":filterKey},(values||[]).map((value=>react.createElement("option",{value:value.value,disabled:value.disabled,key:"".concat(value.value,"-").concat(value.desc)},value.label)))),react.createElement(LazyImage,{src:(0,getImageUrl.Z)("misc/arrow_down.png"),alt:translate("arrowAltText"),width:13,height:13,className:"pocket"===className?"pocket-filter-arrow":"filter-arrow"}))}},18984:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>Filters_Filters});var react=__webpack_require__(67294),useFilterConfigs=__webpack_require__(91396),getItemsPerRow=__webpack_require__(65888),HawkWidgetProviderContext=__webpack_require__(24412),Filter=__webpack_require__(13469);const filters_row_container="hawk-filters-row-container",Filters_FiltersRow=props=>{let{filters}=props;return filters=filters||[],react.createElement(HawkWidgetProviderContext.$6,null,(value=>{const{changeFilter}=value;let{selectedFilters}=value;return selectedFilters=selectedFilters||{},react.createElement("div",{className:filters_row_container},filters.map((filter=>react.createElement(Filter.Z,{selectedValue:selectedFilters[filter.filter_key],values:filter.values.map((v=>({value:v.value,label:String(v.formatted_value),disabled:!1}))),type:filter.type,filterKey:filter.filter_key,changeFilter,className:"bordered-full-width",key:filter.filter_key}))))}))},filters_container="hawk-filters-container",filters_image_heading_container="hawk-filters-image-heading-container",filters_heading_filters_container="hawk-filters-heading-filters-container",filters_subheading_container="hawk-filters-subheading-container",filters_label="hawk-filters-label",filters_filters_container="hawk-filters-filters-container",Filters_Filters=()=>{const{translate,showFilters,genericSharedComponents:{AllDeals}}=(0,HawkWidgetProviderContext.KF)();let{dealData,data}=(0,HawkWidgetProviderContext.KF)();dealData=dealData||{},data=data||{};const labelFilters=(0,useFilterConfigs.t)(data.filters,"label").slice(0,4);if(showFilters){const{title}=data;return react.createElement("div",{className:filters_container},react.createElement("div",{className:filters_image_heading_container},react.createElement("div",{className:filters_heading_filters_container},react.createElement("div",{className:filters_subheading_container},dealData.totalDeals>0&&react.createElement(AllDeals,{params:{modelName:title}},react.createElement("div",{className:filters_label},react.createElement("span",null,translate("reviewFiltersLabel",[String(dealData.totalDeals)]))))),react.createElement("div",{className:filters_filters_container},(0,getItemsPerRow.Z)(labelFilters,2).map((filters=>react.createElement(Filters_FiltersRow,{filters,key:filters.map((filter=>filter.filter_key)).join(",")})))))))}return null}},85356:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>Footer_Footer});var react=__webpack_require__(67294),HawkWidgetProviderContext=__webpack_require__(24412),loadable=__webpack_require__(75157);const footer={container:"hawk-footer-container",description:"hawk-footer-description","all-deals-container":"hawk-footer-all-deals-container",transparent:"hawk-footer-transparent","price-widget":"hawk-footer-price-widget","review-merchantlink":"hawk-footer-review-merchantlink"},Footer_Footer=_ref=>{let{showDescription,showPoweredBy,className,label}=_ref;return react.createElement(HawkWidgetProviderContext.$6,null,(value=>{const{translate,dealData,params,loadMore,showLink,activeTab,genericSharedComponents:{AllDeals}}=value;if(showLink){const containerStyle=className&&footer[className]?className:"container",dealsDisplayed=dealData.deals?dealData.deals.length:0,modelNames=new Set;return(dealData.deals||[]).forEach((deal=>{null!=deal&&deal.model&&null!=deal&&deal.product_type&&200!==deal.product_type&&modelNames.add(deal.model)})),react.createElement("div",{className:footer[containerStyle]},showDescription&&react.createElement("div",{className:footer.description},translate("hawkFooterDescription")),!loadMore&&dealsDisplayed{"use strict";__webpack_require__.d(__webpack_exports__,{f:()=>_loadable__WEBPACK_IMPORTED_MODULE_0__.f});var _loadable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(4758)},4758:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{f:()=>HoverOver});var _loadable_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(23810);const HoverOver=(0,_loadable_component__WEBPACK_IMPORTED_MODULE_0__.ZP)({resolved:{},chunkName:()=>"hover-over",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(7149).then(__webpack_require__.bind(__webpack_require__,69168)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 69168}})},75157:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C:()=>PoweredBy});var _loadable_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(23810);const PoweredBy=(0,_loadable_component__WEBPACK_IMPORTED_MODULE_0__.ZP)({resolved:{},chunkName:()=>"powered-by",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(7596).then(__webpack_require__.bind(__webpack_require__,5951)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 5951}})},56862:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>PriceButtonWrapper_PriceButtonWrapper});var react=__webpack_require__(67294),shouldDisplayUpfrontPrice=__webpack_require__(28887),HawkWidgetProviderContext=__webpack_require__(24412),UpfrontPrice=__webpack_require__(21205),ViewAt=__webpack_require__(3322);const price_button_wrapper_price_wrapper="hawk-price-button-wrapper-price-wrapper",price_button_wrapper_button_wrapper="hawk-price-button-wrapper-button-wrapper",PriceButtonWrapper_PriceButtonWrapper=_ref=>{let{deal}=_ref;const{genericSharedComponents:{Button,MainPrice,PriceNote}}=(0,HawkWidgetProviderContext.KF)();return react.createElement(react.Fragment,null,react.createElement("div",{className:price_button_wrapper_price_wrapper},(0,shouldDisplayUpfrontPrice.Z)(deal)&&react.createElement(UpfrontPrice.C,{deal,className:"above"}),react.createElement(MainPrice,{deal,className:"above"}),react.createElement(PriceNote,{deal})),react.createElement("div",{className:price_button_wrapper_button_wrapper},react.createElement(Button,{deal}),react.createElement(ViewAt.Z,{deal})))}},21205:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C:()=>_loadable__WEBPACK_IMPORTED_MODULE_0__.C});var _loadable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(84178)},84178:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C:()=>UpfrontPrice});var _loadable_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(23810);const UpfrontPrice=(0,_loadable_component__WEBPACK_IMPORTED_MODULE_0__.ZP)({resolved:{},chunkName:()=>"upfront-price",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(8815).then(__webpack_require__.bind(__webpack_require__,91693)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 91693}})},3322:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>ViewAt_ViewAt});var react=__webpack_require__(67294),getClickType=__webpack_require__(49129),HawkWidgetProviderContext=__webpack_require__(24412);const view_at={container:"hawk-view-at-container",peacock:"hawk-view-at-peacock"},ViewAt_ViewAt=_ref=>{let{deal,className}=_ref;return react.createElement(HawkWidgetProviderContext.$6,null,(value=>{var _deal$merchant$name,_deal$merchant;const{articleUrl,translate,genericSharedComponents:{AffiliateLink}}=value,containerStyle=className&&view_at[className]?className:"container",merchantName=null!==(_deal$merchant$name=null==deal||null===(_deal$merchant=deal.merchant)||void 0===_deal$merchant?void 0:_deal$merchant.name)&&void 0!==_deal$merchant$name?_deal$merchant$name:"";return react.createElement("div",{className:view_at[containerStyle]},react.createElement("span",null,translate("viewAtBlockLabel")," "),react.createElement(AffiliateLink,{deal,className:className||"underline",clickType:(0,getClickType.h)({link:deal.offer.link,articleUrl,productType:deal.product_type})},merchantName))}))}},71332:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>Main_ProductName});var defineProperty=__webpack_require__(4942),objectWithoutProperties=__webpack_require__(45987),react=__webpack_require__(67294),getWidgetInitialiser=__webpack_require__(82983),loadCSS=__webpack_require__(70535),getInitialiser=__webpack_require__(93808),GetInitialiserProps=__webpack_require__(87214),HawkWidgetProviderContext=__webpack_require__(24412),getDefaultTitle=__webpack_require__(57435),Filters=__webpack_require__(18984),Footer=__webpack_require__(85356),getHoverOverItems=__webpack_require__(5791),ContractAllowance=__webpack_require__(42797),HoverOver=__webpack_require__(16399),PriceButtonWrapper=__webpack_require__(56862);const product_name_items_grid_item_main="hawk-product-name-items-grid-item-main",product_name_items_grid_item="hawk-product-name-items-grid-item",product_name_items_grid_item_block="hawk-product-name-items-grid-item-block",Contracts_ProductNameContractsItems=()=>{const{genericSharedComponents:{GridItems,DealImage,DisplayName}}=(0,react.useContext)(HawkWidgetProviderContext._y);return react.createElement(GridItems,{className:{gridItemMain:product_name_items_grid_item_main,gridItem:product_name_items_grid_item,gridItemBlock:product_name_items_grid_item_block},widgetName:"productname"},(deal=>{const hoverItems=(0,getHoverOverItems.E)(deal);return react.createElement(react.Fragment,null,react.createElement(react.Fragment,{key:"network"},react.createElement(DealImage,{deal,priority:["network","merchant"]}),react.createElement(ContractAllowance.Z,{deal,type:"length"})),react.createElement(DisplayName,{key:"name",deal,expandable:!0}),react.createElement(react.Fragment,{key:"allowance"},react.createElement(ContractAllowance.Z,{deal,showLabel:!0,type:"minutes",className:"productname"}),react.createElement(ContractAllowance.Z,{deal,showLabel:!0,type:"texts",className:"productname"}),react.createElement(ContractAllowance.Z,{deal,showLabel:!0,type:"data",className:"productname"}),hoverItems.length>0&&react.createElement(HoverOver.f,{items:hoverItems})),react.createElement(PriceButtonWrapper.Z,{key:"priceLink",deal}))}))},Contracts_ProductNameContracts=()=>react.createElement(HawkWidgetProviderContext.$6,null,(_ref=>{let{loading,widgetTitle,translate,data,models,genericSharedComponents:{HawkTabs,Spinner,Title}}=_ref;return react.createElement(react.Fragment,null,loading&&react.createElement(Spinner,null),react.createElement(Title,{title:widgetTitle||translate("reviewDefaultTitle",[(0,getDefaultTitle.Z)(data,models)])}),react.createElement(Filters.Z,null),react.createElement(HawkTabs,null),react.createElement(Contracts_ProductNameContractsItems,null),react.createElement(Footer.Z,{showDescription:!0,showPoweredBy:!0}))}));var useSortSimilarAtLastPosition=__webpack_require__(38452);const Retail_ProductNameRetailItems=()=>{const{genericSharedComponents:{Button,GridItems,DealImage,DisplayName,MainPrice},dealData,sortSimilarAtLastPosition,loading}=(0,HawkWidgetProviderContext.KF)();return(0,react.useEffect)((()=>{(0,useSortSimilarAtLastPosition.Z)(dealData,sortSimilarAtLastPosition)}),[loading]),react.createElement(GridItems,{className:{gridItemMain:product_name_items_grid_item_main,gridItem:product_name_items_grid_item,gridItemBlock:product_name_items_grid_item_block},widgetName:"productname"},(deal=>react.createElement(react.Fragment,null,react.createElement(DealImage,{key:"image",deal}),react.createElement(DealImage,{key:"merchant",deal,priority:["merchant"]}),react.createElement(react.Fragment,{key:"priceLink"},react.createElement(MainPrice,{deal}),react.createElement(Button,{deal})),200!==deal.product_type&&react.createElement(DisplayName,{key:"name",deal,expandable:!0}))))},Retail_ProductNameRetail=()=>react.createElement(HawkWidgetProviderContext.$6,null,(_ref=>{let{loading,widgetTitle,translate,data,models,showReviewsPosition,genericSharedComponents:{HawkTabs,LoadMore,ModelCodeReviews,Spinner,Title}}=_ref;return react.createElement(react.Fragment,null,loading&&react.createElement(Spinner,null),react.createElement(Title,{title:widgetTitle||translate("reviewDefaultTitle",[(0,getDefaultTitle.Z)(data,models)])}),["default","top"].indexOf(showReviewsPosition)>=0&&react.createElement(ModelCodeReviews,{className:"review-widget"}),react.createElement(Filters.Z,null),react.createElement(HawkTabs,null),react.createElement(Retail_ProductNameRetailItems,null),react.createElement(LoadMore,null),react.createElement(Footer.Z,{showDescription:!0,showPoweredBy:!0}))})),_excluded=["el","site","articleUrl"];function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}(0,loadCSS.j)("productname");const ProductName=props=>{const{genericSharedComponents:{HawkWidgetAdvanced,Main}}=props;return react.createElement(HawkWidgetAdvanced,props,react.createElement(HawkWidgetProviderContext.$6,null,(_ref=>{let{activeTab}=_ref;return react.createElement(Main,props,"contracts"===(null==activeTab?void 0:activeTab.category)?react.createElement(Contracts_ProductNameContracts,null):react.createElement(Retail_ProductNameRetail,null))})))};ProductName.getInitialiserProps=async(_ref2,attributes,getJSON,editorial,defaultParams,endpoint,url,origin,dataLinkMerchant)=>{let{el,site,articleUrl}=_ref2,restRenderProps=(0,objectWithoutProperties.Z)(_ref2,_excluded);const{props,type,apiCall}=await(0,getWidgetInitialiser.k)(function _objectSpread(target){for(var i=1;i{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>getFilterConfigs,t:()=>useFilterConfigs});const getFilterConfigs=(filters,type)=>{switch(type){case"brand":return filters.filter((filter=>"filter_label[text_brand]"===filter.filter_key));case"label":return filters.filter((filter=>"label"===filter.category&&!["filter_label[text_network]","filter_label[text_brand]"].includes(filter.filter_key)));case"monthlyCost":return filters.filter((filter=>"filter_monthly_cost"===filter.filter_key));case"upfrontCost":return filters.filter((filter=>"filter_upfront"===filter.filter_key&&"contract_price"===filter.category));case"retailCost":return filters.filter((filter=>"filter_upfront"===filter.filter_key&&"price"===filter.category));case"cost":return filters.filter((filter=>"price"===filter.category));case"contractCost":return filters.filter((filter=>"contract_price"===filter.category));case"merchant":return filters.filter((filter=>"filter_merchants"===filter.filter_key));case"basicContract":return filters.filter((filter=>"contract"===filter.category&&"filter_upgrade"!==filter.filter_key&&"filter_contract_length"!==filter.filter_key&&"filter_data"!==filter.filter_key));case"data":return filters.filter((filter=>"contract"===filter.category&&"filter_data"===filter.filter_key));case"model":return filters.filter((filter=>"model_name"===filter.filter_key&&"model"===filter.category));case"category":return filters.filter((filter=>"model_name"===filter.filter_key&&"category"===filter.category));case"contractLength":return filters.filter((filter=>"filter_contract_length"===filter.filter_key));case"network":return filters.filter((filter=>"filter_label[text_network]"===filter.filter_key));case"upgrade":return filters.filter((filter=>"filter_upgrade"===filter.filter_key));case"package":return filters.filter((filter=>"filter_includes"===filter.filter_key));case"speed":return filters.filter((filter=>"filter_speed"===filter.filter_key));case"type":return filters.filter((filter=>"filter_type"===filter.filter_key));case"colour":return filters.filter((filter=>"filter_label[text_colour]"===filter.filter_key));default:return[]}};var HawkWidgetProviderContext=__webpack_require__(24412);function useFilterConfigs(filters,type){const{blacklistedFilters}=(0,HawkWidgetProviderContext.KF)(),blacklistedFiltersArray=blacklistedFilters.split(","),newFilters=filters.filter((filter=>!blacklistedFiltersArray.includes(filter.title)));return getFilterConfigs(newFilters,type)}},38452:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function useSortSimilarAtLastPosition(dealData,callback){const reOrderedDeals=null==dealData?void 0:dealData.deals;(null==dealData?void 0:dealData.deals.map(((deal,index)=>200===deal.product_type?index:null)).filter((item=>null!==item))).filter((i=>i&&reOrderedDeals.push(reOrderedDeals.splice(i,1)[0]))),callback({offers:reOrderedDeals})}__webpack_require__.d(__webpack_exports__,{Z:()=>useSortSimilarAtLastPosition})},93808:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{v:()=>getInitialiser});var Widget=__webpack_require__(40459),getAirdaleInfo=__webpack_require__(78951);var defineProperty=__webpack_require__(4942),he=__webpack_require__(86492),he_default=__webpack_require__.n(he),getSkip=__webpack_require__(45184);var getUrlParameters=__webpack_require__(59776),global=__webpack_require__(43426),getFormattedPrice=__webpack_require__(11259),getPriceType=__webpack_require__(46570),getDisplay=__webpack_require__(69972);const getInbodyLabel=(deal,linkText,language,translate)=>{var _deal$offer,_deal$offer2,_deal$contract,_deal$offer3,_deal$contract2,_deal$contract3,_deal$offer4,_deal$contract4,_deal$offer5,_deal$contract5,_deal$offer6,_deal$offer9,_deal$merchant$name4,_deal$merchant4,_deal$offer11,_deal$contract9,_deal$contract10,_deal$contract11,_deal$merchant$name6,_deal$merchant6,_deal$merchant$name7,_deal$merchant7;if(linkText)return linkText;const upfrontPrice=(0,getFormattedPrice._)({price:null==deal||null===(_deal$offer=deal.offer)||void 0===_deal$offer?void 0:_deal$offer.price,currencyIso:null==deal||null===(_deal$offer2=deal.offer)||void 0===_deal$offer2?void 0:_deal$offer2.currency_iso,showOfferLabel:!1,type:(0,getPriceType.Z)(deal),locale:language,translate,showPriceRounded:"no"})||"",monthlyPrice=(0,getFormattedPrice._)({price:(null==deal||null===(_deal$contract=deal.contract)||void 0===_deal$contract?void 0:_deal$contract.monthly_price)||null,currencyIso:null==deal||null===(_deal$offer3=deal.offer)||void 0===_deal$offer3?void 0:_deal$offer3.currency_iso,showOfferLabel:!1,type:(0,getPriceType.Z)(deal),locale:language,translate,showPriceRounded:"no"})||"",totalMonthlyPrice=(0,getFormattedPrice._)({price:(null==deal||null===(_deal$contract2=deal.contract)||void 0===_deal$contract2?void 0:_deal$contract2.length)&&(null==deal||null===(_deal$contract3=deal.contract)||void 0===_deal$contract3?void 0:_deal$contract3.monthly_price)&&String(Number(deal.contract.monthly_price)*deal.contract.length)||null,currencyIso:null==deal||null===(_deal$offer4=deal.offer)||void 0===_deal$offer4?void 0:_deal$offer4.currency_iso,showOfferLabel:!1,type:(0,getPriceType.Z)(deal),locale:language,translate,showPriceRounded:"no"})||"",hasYearlyPrice=null==deal||null===(_deal$contract4=deal.contract)||void 0===_deal$contract4?void 0:_deal$contract4.yearly_price,yearlyPrice=(0,getFormattedPrice._)({price:(null==deal?void 0:deal.contract)&&String(deal.contract.yearly_price)||null,currencyIso:null==deal||null===(_deal$offer5=deal.offer)||void 0===_deal$offer5?void 0:_deal$offer5.currency_iso,showOfferLabel:!1,type:(0,getPriceType.Z)(deal),locale:language,translate,showPriceRounded:"no"})||"",data=(null==deal||null===(_deal$contract5=deal.contract)||void 0===_deal$contract5?void 0:_deal$contract5.data)&&((amount,translate)=>{if(null==amount)return translate("n/a");if(999999===Math.floor(amount))return translate("unlimitedValue");if(amount>=1e3){let newAmount=amount;return amount%1024==0&&(newAmount=1e3*Math.floor(amount/1e3)),newAmount/1e3+translate("gigabyte")}return amount+translate("megabyte")})(deal.contract.data,translate);switch(null==deal?void 0:deal.product_type){case 3e3:var _deal$merchant$name,_deal$merchant,_deal$offer7,_deal$contract6,_deal$merchant$name2,_deal$merchant2,_deal$offer8,_deal$contract7,_deal$merchant$name3,_deal$merchant3,_deal$offer10,_deal$contract8;return hasYearlyPrice&&yearlyPrice&&0!==parseInt(null==deal||null===(_deal$offer6=deal.offer)||void 0===_deal$offer6?void 0:_deal$offer6.price,10)?translate("inbodyTextBroadbandYearly",[null!==(_deal$merchant$name=null==deal||null===(_deal$merchant=deal.merchant)||void 0===_deal$merchant?void 0:_deal$merchant.name)&&void 0!==_deal$merchant$name?_deal$merchant$name:"",null==deal||null===(_deal$offer7=deal.offer)||void 0===_deal$offer7?void 0:_deal$offer7.name,String(null==deal||null===(_deal$contract6=deal.contract)||void 0===_deal$contract6?void 0:_deal$contract6.speed),yearlyPrice,upfrontPrice]):hasYearlyPrice&&yearlyPrice?translate("inbodyTextBroadbandYearlyFreeUpfront",[null!==(_deal$merchant$name2=null==deal||null===(_deal$merchant2=deal.merchant)||void 0===_deal$merchant2?void 0:_deal$merchant2.name)&&void 0!==_deal$merchant$name2?_deal$merchant$name2:"",null==deal||null===(_deal$offer8=deal.offer)||void 0===_deal$offer8?void 0:_deal$offer8.name,String(null==deal||null===(_deal$contract7=deal.contract)||void 0===_deal$contract7?void 0:_deal$contract7.speed),yearlyPrice]):0!==parseInt(null==deal||null===(_deal$offer9=deal.offer)||void 0===_deal$offer9?void 0:_deal$offer9.price,10)?translate("inbodyTextBroadbandMonthly",[null!==(_deal$merchant$name3=null==deal||null===(_deal$merchant3=deal.merchant)||void 0===_deal$merchant3?void 0:_deal$merchant3.name)&&void 0!==_deal$merchant$name3?_deal$merchant$name3:"",null==deal||null===(_deal$offer10=deal.offer)||void 0===_deal$offer10?void 0:_deal$offer10.name,String(null==deal||null===(_deal$contract8=deal.contract)||void 0===_deal$contract8?void 0:_deal$contract8.speed),monthlyPrice,upfrontPrice]):translate("inbodyTextBroadbandMonthlyFreeUpfront",[null!==(_deal$merchant$name4=null==deal||null===(_deal$merchant4=deal.merchant)||void 0===_deal$merchant4?void 0:_deal$merchant4.name)&&void 0!==_deal$merchant$name4?_deal$merchant$name4:"",null==deal||null===(_deal$offer11=deal.offer)||void 0===_deal$offer11?void 0:_deal$offer11.name,String(null==deal||null===(_deal$contract9=deal.contract)||void 0===_deal$contract9?void 0:_deal$contract9.speed),monthlyPrice]);case 2500:return hasYearlyPrice&&yearlyPrice?translate("inbodyTextSubscriptionsYearly",[(0,getDisplay.G)(deal),yearlyPrice]):null!=deal&&null!==(_deal$contract10=deal.contract)&&void 0!==_deal$contract10&&_deal$contract10.length&&999999===deal.contract.length?translate("inbodyTextVPNLifetime",[upfrontPrice]):translate("inbodyTextVPNMonthly",[String(null==deal||null===(_deal$contract11=deal.contract)||void 0===_deal$contract11?void 0:_deal$contract11.length),monthlyPrice,totalMonthlyPrice]);case 2e3:var _deal$merchant$name5,_deal$merchant5;return hasYearlyPrice&&yearlyPrice?translate("inbodyTextContractsYearly",[(0,getDisplay.G)(deal),upfrontPrice,data||"",yearlyPrice,null!==(_deal$merchant$name5=null==deal||null===(_deal$merchant5=deal.merchant)||void 0===_deal$merchant5?void 0:_deal$merchant5.name)&&void 0!==_deal$merchant$name5?_deal$merchant$name5:""]):translate("inbodyTextContractsMonthly",[(0,getDisplay.G)(deal),upfrontPrice,data||"",monthlyPrice,null!==(_deal$merchant$name6=null==deal||null===(_deal$merchant6=deal.merchant)||void 0===_deal$merchant6?void 0:_deal$merchant6.name)&&void 0!==_deal$merchant$name6?_deal$merchant$name6:""]);default:return translate("inbodyTextRetail",[(0,getDisplay.G)(deal),null!==(_deal$merchant$name7=null==deal||null===(_deal$merchant7=deal.merchant)||void 0===_deal$merchant7?void 0:_deal$merchant7.name)&&void 0!==_deal$merchant$name7?_deal$merchant$name7:"",upfrontPrice])}};function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i{let cta,{deal,widget,showFallback,localiser,localisedLinkText=localiser.translate("alternativeLinkText"),modelName,showPrice}=_ref;return 300===deal.product_type?deal:(cta=widget.id===Widget.U.DEAL?"editors-choice"===showFallback?localiser.translate("editorsChoiceLinkText",[modelName]):localisedLinkText:((localiser,widget,deal,linkText,showPrice)=>{var _deal$offer2,_deal$offer3;switch(widget.id){case Widget.U.BUTTON:return null!=deal&&deal.product_type&&200!==deal.product_type?localiser.translate("checkPriceLinkText"):"";case Widget.U.MERCHANT_LINK:if("noPrice"===showPrice)return"";if(null!=deal&&deal.offer&&null!=deal&&deal.product_type&&3500===deal.product_type){var _deal$offer;if("stream"===showPrice)return null!==(_deal$offer=deal.offer)&&void 0!==_deal$offer&&_deal$offer.price&&Number(deal.offer.price)>0?deal.merchant&&localiser.translate("multimediaStreamOn",[String(deal.merchant.name)]):deal.merchant&&localiser.translate("multimediaStreamOnWithoutFor",[String(deal.merchant.name)]);if("availableToStream"===showPrice)return deal.merchant&&localiser.translate("multimediaAvailableToStream",[String(deal.merchant.name)])}var _deal$merchant;return null!=deal&&deal.offer&&(null!=deal&&deal.product_type&&200===deal.product_type||null==deal||null===(_deal$offer2=deal.offer)||void 0===_deal$offer2||!_deal$offer2.price)?"".concat(localiser.translate("merchantLinkWidgetItemBuySimilarLabel")," ").concat((null==deal||null===(_deal$merchant=deal.merchant)||void 0===_deal$merchant?void 0:_deal$merchant.name)||"merchant"):(null==deal?void 0:deal.merchant)&&localiser.translate("priceLinkAtMerchant",[String(deal.merchant.name)]);case Widget.U.STREAMING:return"noPrice"===showPrice?"":null!=deal&&deal.offer&&null!=deal&&deal.product_type&&(3500===deal.product_type||2500===deal.product_type)?(null==deal?void 0:deal.merchant)&&localiser.translate("multimediaWatchAtWithoutFor",[String(deal.merchant.name)]):null==deal||!deal.offer||null==deal||!deal.product_type||200!==deal.product_type&&null!=deal&&null!==(_deal$offer3=deal.offer)&&void 0!==_deal$offer3&&_deal$offer3.price?(null==deal?void 0:deal.merchant)&&localiser.translate("priceLinkAtMerchant",[String(deal.merchant.name)]):"".concat(localiser.translate("merchantLinkWidgetItemBuySimilarLabel")," ").concat((null==deal||null===(_deal$merchant2=deal.merchant)||void 0===_deal$merchant2?void 0:_deal$merchant2.name)||"merchant");var _deal$merchant2;case Widget.U.INBODY:return getInbodyLabel(deal,linkText,localiser.language,localiser.translate.bind(localiser));case Widget.U.PRODUCT_BLOCK:return localiser.translate("shopNow");default:return""}})(localiser,widget,_objectSpread({},deal),localisedLinkText,showPrice),cta?_objectSpread(_objectSpread({},deal),{},{offer:_objectSpread(_objectSpread({},deal.offer),{},{merchant_link_text:cta,link_text:cta})}):deal)};var URI=__webpack_require__(54998),URI_default=__webpack_require__.n(URI),getCurrencySymbol=__webpack_require__(45343),getImageUrl=__webpack_require__(4636);const getFallbackOffer=_ref=>{let{dataLinkMerchant,link,linkText,localiser,modelName,widgetId,editorialCurrency,editorialPrice,editorialWasPrice}=_ref;const elDomain=null!=dataLinkMerchant?dataLinkMerchant:link?new(URI_default())(link).domain():"merchant",ctaDealWidget=linkText||localiser.translate("alternativeLinkText");return{an:null,bundle_models:[],click_count:0,image:null,label_image:null,last_update:0,mobile_match_score:0,model_id:0,percentage:0,popularity:0,product_key:"",score:0,shipping:{prime:!1,url:null},id:0,match_id:0,product_type:300,offer:{link,name:modelName,link_text:"deal"===widgetId?ctaDealWidget:linkText,merchant_link_text:"deal"===widgetId?ctaDealWidget:linkText,label:localiser.translate("offerLabelNoPrice"),price:editorialPrice||"0.00",in_stock:!0,stock_quantity:null,currency_iso:editorialCurrency||"GBP",currency_symbol:editorialCurrency&&(0,getCurrencySymbol.Z)(editorialCurrency)||"£",percentage_saving:null,percentage_saving_label:null,money_saving:null,money_saving_label:null,display_name:modelName,display_labels:"",was_price:editorialWasPrice},merchant:{id:null,name:elDomain,url:null,logo_url:"",territory:"",preference:0},model:modelName,model_matched:[modelName],model_image:(0,getImageUrl.Z)("misc/blank.png")}};var getCustomTrackedOffer=__webpack_require__(21746);function getDealOverrides_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}const getDealOverrides=function(deal){let overrides=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const convertedOverrides={};return Object.keys(overrides).forEach((key=>{const value=overrides[key];if("string"==typeof value){const placeholderIndex=value.indexOf("{{");if(placeholderIndex>=0){const placeholderText=value.substring(placeholderIndex).replace(/([{}]*)/g,"");let result=function getDealOverrides_objectSpread(target){for(var i=1;i{result=result[str]})),convertedOverrides[key]="".concat(overrides[key].substring(0,placeholderIndex)).concat(result)}else convertedOverrides[key]=value}else convertedOverrides[key]=value})),convertedOverrides},getPropBasedOnConditionFields=(prop,propPath)=>{const propChild=propPath.shift();return propChild?getPropBasedOnConditionFields(prop[propChild],propPath):prop};function getOverridedDeal_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function getOverridedDeal_objectSpread(target){for(var i=1;i{let{customPromo,customPromos,promos,localiser}=_ref;if(customPromos){const customPromosArray=(customPromos=>JSON.parse(he_default().decode(customPromos)))(customPromos);return customPromosArray.map((element=>({type:"custom-promo",value:localiser.translate(element),display_value:localiser.translate(element)}))).concat(promos||[])}return customPromo?[{type:"custom-promo",value:localiser.translate(customPromo),display_value:localiser.translate(customPromo)}].concat(promos||[]):promos};var getPercentageSaving=__webpack_require__(83320);const getPromos=_ref=>{let{showWasPrice,percentageOffThreshold,localiser,deal,customPromo,customPromos,excludeFrom,showPromos,widget}=_ref;const wasPricePromos=(_ref=>{let{showWasPrice,percentageOffThreshold,localiser,deal}=_ref;var _deal$offer,_deal$promos;if(["promoPercentage","allPercentage"].includes(showWasPrice)){if(null!=deal&&null!==(_deal$offer=deal.offer)&&void 0!==_deal$offer&&_deal$offer.was_price&&(null==deal||null===(_deal$promos=deal.promos)||void 0===_deal$promos||!_deal$promos.some((promo=>"was-price-percentage"===promo.type)))){const percentage=(0,getPercentageSaving.Z)(deal);if(percentage&&Number(percentage)>=percentageOffThreshold){const value=localiser.translate("percentageDiscount",[percentage]);return[{type:"was-price-percentage",value,display_value:value}].concat((null==deal?void 0:deal.promos)||[])}return(null==deal?void 0:deal.promos)||[]}}else if(["promoSaving","allSaving"].includes(showWasPrice)){var _deal$offer2,_deal$promos2;if(null!=deal&&null!==(_deal$offer2=deal.offer)&&void 0!==_deal$offer2&&_deal$offer2.was_price&&(null==deal||null===(_deal$promos2=deal.promos)||void 0===_deal$promos2||!_deal$promos2.some((promo=>"was-price-light"===promo.type)))){const saving=(0,getFormattedPrice._)({price:(Number(deal.offer.was_price)-Number(deal.offer.price)).toFixed(2),currencyIso:deal.offer.currency_iso,showOfferLabel:!1,type:(0,getPriceType.Z)(deal),locale:localiser.language,translate:localiser.translate,showPriceRounded:"no"}),value=localiser.translate("priceDiscount",[saving||""]);return((null==deal?void 0:deal.promos)||[]).concat([{type:"was-price-light",value,display_value:value}])}}return null==deal?void 0:deal.promos})({percentageOffThreshold,showWasPrice,localiser,deal});return(_ref=>{let{excludeFrom,localiser,widget,promos,showPromos}=_ref;return excludeFrom?[{value:localiser.translate("reportedOutOfStockPromo"),display_value:localiser.translate("reportedOutOfStockPromo"),type:""}]:widget&&widget.id===Widget.U.BUNDLE&&promos?promos.filter((promo=>"bundle"!==promo.type)):showPromos?promos:[]})({localiser,excludeFrom,promos:addCustomPromos({localiser,customPromo,customPromos,promos:wasPricePromos}),showPromos,widget})};function getFormattedOffers_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function getFormattedOffers_objectSpread(target){for(var i=1;i{const{dataLinkMerchant,showPrice="",showWasPrice="",percentageOffThreshold,showPromos,localiser,site,area,articleName,articleUrl,link,linkText="",params,widget,overrides,customPromo,excludeFrom,showFallback,customPromos,preserveEditorialLink,defaultTab,editorialCurrency="",editorialPrice="",editorialWasPrice=""}=options;let{data}=options;data=data||{};const{customTrackingId:forcedCustomTrackingId}=(0,global.ie)(),overrideConfig=(overrides=>{const{overrides:hawkOverrides}=(0,global.ie)();return hawkOverrides&&hawkOverrides.length>0?hawkOverrides:overrides||[]})(overrides).find((config=>config.dealTypes&&config.dealTypes.indexOf(data.offer_type)>=0)),modelName=params&¶ms.model_name,localisedLinkText=localiser.translate(linkText),offers=(_ref=>{let{dataLinkMerchant,link,localisedLinkText,offers,preserveEditorialLink,pageSize,localiser,modelName,widgetId,editorialCurrency,editorialPrice,editorialWasPrice}=_ref;const addFallback=Boolean(link&&localisedLinkText&&(0===offers.length||offers.length===offers.filter((o=>200===o.product_type)).length&&offers.length{let mostClicks=0,mostClickedDealIndex=null;const{forceHotDeal}=(0,getUrlParameters.Z)(["forceHotDeal"]);return data.map(((deal,index)=>((null==deal?void 0:deal.click_count)>mostClicks&&(mostClicks=deal.click_count,mostClickedDealIndex=index),deal))),null!==mostClickedDealIndex&&mostClicks>=1e3&&(data[mostClickedDealIndex].hot_deal=mostClicks),forceHotDeal&&null!==mostClickedDealIndex&&mostClicks>=Number(forceHotDeal)&&(data[mostClickedDealIndex].hot_deal=mostClicks),data})(offers);return Promise.all(offers_with_hotdeal.map((async deal=>{const ctaDeal=addCtaToDeal({localiser,localisedLinkText,showFallback,showPrice,modelName,widget,deal}),shouldOverrideDeal=overrideConfig&&((deal,condition)=>{let overrideDeal=!0;if(condition){const{value,fields}=condition;overrideDeal=getPropBasedOnConditionFields(deal,fields)===value}return overrideDeal})(ctaDeal,overrideConfig.condition),overridedDeal=shouldOverrideDeal?((overrides,deal)=>Object.keys(overrides).reduce(((dealAcc,key)=>Array.isArray(overrides[key])?getOverridedDeal_objectSpread(getOverridedDeal_objectSpread({},dealAcc),{},{[key]:(deal[key]||[]).concat(overrides[key])}):"object"==typeof overrides[key]?getOverridedDeal_objectSpread(getOverridedDeal_objectSpread({},dealAcc),{},{[key]:getOverridedDeal_objectSpread(getOverridedDeal_objectSpread({},dealAcc[key]),getDealOverrides(dealAcc,overrides[key]))}):getOverridedDeal_objectSpread(getOverridedDeal_objectSpread({},dealAcc),{},{[key]:overrides[key]})),deal))(overrideConfig.overrides,getFormattedOffers_objectSpread({},ctaDeal)):ctaDeal,{hotDeal}=(0,getUrlParameters.Z)(["hotDeal"]),hotDealProps=!overrideConfig&&hotDeal?{hot_deal:hotDeal}:{},promos=getPromos({percentageOffThreshold,showWasPrice,localiser,deal:overridedDeal,customPromo,customPromos,excludeFrom,showPromos,widget}),customTrackedOffer=await(0,getCustomTrackedOffer.$)({deal:overridedDeal,site,articleName,articleUrl,params,area,link,linkText:localisedLinkText,widget,forcedCustomTrackingId,rawLink:null});return getFormattedOffers_objectSpread(getFormattedOffers_objectSpread(getFormattedOffers_objectSpread(getFormattedOffers_objectSpread({},overridedDeal),hotDealProps),customTrackedOffer),promos?{promos}:{})})))};var getModelCodeReviews=__webpack_require__(62999);var cookie=__webpack_require__(34678),useFilterConfigs=__webpack_require__(91396);const getWhitelist=(filter,params)=>params[filter.filter_key]?params[filter.filter_key].split(","):[],getFilterValues=(filter,params)=>{const whitelist=getWhitelist(filter,params),values=filter&&filter.values?filter.values:[],order=whitelist.length>0?whitelist:values.map((v=>String(v.value))),result=[];return order.forEach((orderValue=>{const value=values.find((v=>String(v.value).toLowerCase()===orderValue.toLowerCase()));value&&result.push(value)})),result},setupTabs=_ref=>{let{data,params,features,widget,localiser,models,area}=_ref;const tabConfigs=(_ref=>{let{data,params,features,area,widget,localiser,models}=_ref;const{counts={},filters=[]}=data||{},{tabs,showBundleOffers,link,linkText}=features,labelFilter=filters.find((f=>{if("priority"===tabs){var _f$values;const islabelType="label"===f.category,hasValuesWithTabActive=null==f||null===(_f$values=f.values)||void 0===_f$values?void 0:_f$values.find((v=>v.tab_active));return islabelType&&hasValuesWithTabActive}return"review"===widget.id&&"filter_label[text_game_platform]"===f.filter_key&&f}));if("requestedModel"===tabs){const popularModelFilter=filters.find((f=>"popular_model"===f.type));return popularModelFilter?(popularModelFilter.values||[]).map((v=>({value:v.formatted_value,label:v.formatted_value,countProperty:data.offer_type,params:{model_name:v.formatted_value},category:"model",pageSize:params.rows||1}))):Object.keys(models).map((modelName=>({value:modelName,label:modelName,countProperty:data.offer_type,params:{model_name:modelName},category:"model",pageSize:params.rows||1})))}if("nighthawk"===widget.id)return(0,useFilterConfigs.z)(filters,"label").length>0?[{value:"deals",label:localiser.translate("specifications"),countProperty:"deals",params:{filter_product_types:"deals,similar"},category:"retail",pageSize:params.rows||4}]:[];if(counts.broadband>0)return[{value:"broadband",label:localiser.translate("comparisonBroadbandTabLabel"),countProperty:"broadband",params:{filter_product_types:"broadband"},category:"broadband",pageSize:params.rows||3}];if(counts.multimedia>0)return[{value:"multimedia",label:localiser.translate("multimediaTabLabel"),countProperty:"multimedia",params:{filter_product_types:"multimedia"},category:"multimedia",pageSize:params.rows||3}];if(counts.subscriptions>0)return[{value:"subscriptions",label:localiser.translate("reviewSubscriptionsTabLabel"),countProperty:"subscriptions",params:{filter_product_types:"subscriptions"},category:"subscriptions",pageSize:params.rows||3}];if(counts.contracts>0){const tabConfigs=[],networkFilter=filters.find((f=>"network"===tabs&&"filter_label[text_network]"===f.filter_key));return networkFilter?getFilterValues(networkFilter,params).filter((v=>""!==v.value)).map((value=>({value:String(value.value).toLowerCase().replace(/ /g,"-"),label:localiser.translate(value.formatted_value),image:value.image_url,countProperty:"contracts",params:{[networkFilter.filter_key]:value.value},category:"contracts",pageSize:params.rows||3}))):(tabConfigs.push({value:"contracts",label:widget.id===Widget.U.COMPARISON?localiser.translate("comparisonContractsTabLabel"):localiser.translate("reviewContractsTabLabel"),countProperty:"contracts",params:{filter_product_types:"contracts"},category:"contracts",pageSize:params.rows||3}),(counts.deals>0||counts.similar>0)&&tabConfigs.push({value:"deals",label:localiser.translate("reviewHandsetsTabLabel"),countProperty:"deals",params:{filter_product_types:"deals"},category:"retail",pageSize:params.rows||4}),"simOnly"===tabs&&counts.contracts>0&&"GB"===area&&tabConfigs.push({value:"simOnly",label:localiser.translate("comparisonSimOnlyTabLabel"),countProperty:"contracts",params:{model_name:"Sim Only",filter_product_types:"contracts"},category:"contracts",pageSize:params.rows||3}),tabConfigs)}if(counts.deals>0||counts.similar>0){if(labelFilter){const getTabConfigForValue=value=>{const modelLabelValue=(labelFilter.values||[]).find((v=>v.tab_active&&(v.value===value.value||parseFloat(String(v.value))===parseFloat(String(value.value)))));return modelLabelValue?{value:String(value.value).toLowerCase().replace(/ /g,"-"),rawValue:String(value.value),label:localiser.translate(value.formatted_value),image:modelLabelValue.image_url,mobileImage:modelLabelValue.mobile_image_url,countProperty:"deals",params:{[labelFilter.filter_key]:value.value},category:"retail",type:labelFilter.type,pageSize:params.rows||4}:null},tabConfigs=getFilterValues(labelFilter,params).reduce(((result,value)=>{const tabConfig=getTabConfigForValue(value);return tabConfig?result.concat([tabConfig]):result}),[]),whitelist=getWhitelist(labelFilter,params),tabConfigValues=tabConfigs.map((t=>t.params[labelFilter.filter_key]));if((labelFilter.values||[]).filter((v=>-1===tabConfigValues.indexOf(v.value))).length>0&&tabConfigs.push({value:"other",rawValue:"null",label:localiser.translate("reviewOtherPlatformTabLabel"),image:tabConfigs.find((t=>t.image))||0===tabConfigs.length?(0,getImageUrl.Z)("misc/three_dots.png"):null,countProperty:"deals",params:{[labelFilter.filter_key.replace("filter_label","filter_label_blacklist")]:tabConfigValues.join(",")},category:"retail",type:labelFilter.type,pageSize:params.rows||4}),tabConfigs.length>0)return whitelist.length>0?whitelist.reduce(((result,value)=>{const tab=tabConfigs.find((t=>t.rawValue&&t.rawValue.toLowerCase()===value.toLowerCase()));return tab?result.concat(tab):result}),[]):tabConfigs}const tabsConfigs=[{value:"deals",label:localiser.translate("reviewRetailTabLabel"),countProperty:"deals",params:{filter_product_types:"deals,similar"},category:"retail",pageSize:params.rows||4}];return showBundleOffers&&tabsConfigs.push({value:"bundle",label:localiser.translate("bundleTabLabel"),countProperty:"deals",params:{filter_product_types:"deals",bundle_models:1},category:"retail",pageSize:params.rows||4}),tabsConfigs}return counts.offers>0?[{value:"offers",label:localiser.translate("offersTabLabel"),countProperty:"offers",params:{filter_product_types:"offers"},category:"offers",pageSize:params.rows||3}]:counts.vouchers>0?[{value:"vouchers",label:localiser.translate("offersVouchersTabLabel"),countProperty:"vouchers",params:{filter_product_types:"vouchers"},category:"vouchers",pageSize:params.rows||3}]:counts.offer_deals>0?[{value:"offer_deals",label:localiser.translate("offersDealsTabLabel"),countProperty:"offer_deals",params:{filter_product_types:"offer_deals"},category:"offer_deals",pageSize:params.rows||3}]:counts.fallback>0||link&&linkText?[{value:"fallback",label:localiser.translate("fallbackLabel"),countProperty:"fallback",params:{filter_product_types:"fallback"},category:"retail",pageSize:params.rows||4}]:counts.unique_codes>0?[{value:"unique_codes",label:localiser.translate("offersUniqueCodesTabLabel"),countProperty:"unique_codes",params:{filter_product_types:"unique_codes"},category:"unique_codes",pageSize:params.rows||3}]:counts.newsletter>0?[{value:"newsletter",label:localiser.translate("newsletterTabLabel"),countProperty:"newsletter",params:{filter_product_types:"newsletter"},category:"newsletter",pageSize:params.rows||3}]:counts.rewards>0?[{value:"rewards",label:localiser.translate("rewardsTabLabel"),countProperty:"rewards",params:{filter_product_types:"rewards"},category:"rewards",pageSize:params.rows||3}]:[]})({data,params,features,area,widget,localiser,models});return{tabConfigs,defaultTab:(()=>{const cookieTab=(0,cookie.e)("hawk-review-widget-tab");if(cookieTab&&tabConfigs.find((tab=>tab.value===cookieTab&&"gamePlatform"===tab.type))){const tab=(tabConfigs||[]).find((tab=>tab.value===cookieTab));if(tab)return tab}return tabConfigs&&tabConfigs[0]?tabConfigs[0]:null})()}};var storeWidgetData=__webpack_require__(81086);function getModelWidget_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function getModelWidget_objectSpread(target){for(var i=1;i{const{model,options}=setupModelWidgetData,{localiser,features,props}=options,{params,site,articleName,articleUrl,widget,dataLinkMerchant,modelBrand}=props,{defaultTab,tabConfigs,responseTime,status,response,tabData,battleDealOverrides,tabParams,widgetMissing,airdaleData}=model,{models,battle}=response,area=((props,response)=>{const{territory}=props,{area:modelArea}=response;return modelArea?String(modelArea):territory?String(territory):"GB"})(props,response),widgetProps=getModelWidget_objectSpread(getModelWidget_objectSpread({},props),{},{area,airdaleData,widgetIntroduction:props.widgetIntroduction&&he_default().decode(props.widgetIntroduction).trim().replace(/(\\n|\\)/g,""),data:tabData,params:tabParams,tabConfigs,defaultTab,getTabConfigs:(data,params)=>{const{tabConfigs}=setupTabs({data,params,features,widget,localiser,models,area});return tabConfigs},models,reviews:await(async()=>{const keys=Object.keys(models||{}),value=defaultTab?defaultTab.value:null;if(value&&keys&&keys.length>0&&tabData[value]&&tabData[value].model_info){var _features$showReviews;const modelId=keys.map((key=>models[key])).reduce(((result,modelId)=>(result||(result=modelId),result)));return(0,getModelCodeReviews.Z)(tabData[value].model_info[modelId]||{},null!==(_features$showReviews=features.showReviews)&&void 0!==_features$showReviews?_features$showReviews:"",site,area,articleUrl,battle)}return[]})(),getDealData:async(data,overrides)=>{var _data$model_info,_data;data=data||{},overrides=overrides||battleDealOverrides;const offers=await getFormattedOffers(getModelWidget_objectSpread(getModelWidget_objectSpread({dataLinkMerchant,data},features),{},{params,localiser,site,area,articleName,articleUrl,overrides,widget,defaultTab})),modelInfo=null!==(_data$model_info=null===(_data=data)||void 0===_data?void 0:_data.model_info)&&void 0!==_data$model_info?_data$model_info:{0:{brand:modelBrand,model_name:null==params?void 0:params.model_name}};return{deals:offers,totalDeals:data.counts&&void 0!==data.counts[data.offer_type]?data.counts[data.offer_type]:offers.length,dealType:data.offer_type,modelInfo}}});if(widgetProps.dealData=await widgetProps.getDealData(defaultTab?tabData[defaultTab.value]:{}),!widgetMissing&&defaultTab&&((apiCall,dealData,_ref)=>{let{showNoDeals}=_ref;const validData=dealData&&dealData.deals&&dealData.deals.length>0||showNoDeals;return!("success"!==apiCall||!validData)||!("success"===apiCall&&!validData)&&(apiCall&&["failure","skipped"].indexOf(apiCall),!1)})(status,widgetProps.dealData,features)){return(0,getSkip.e)(widgetProps,options,widgetProps.widget)?{props:widgetProps,responseTime,apiCall:status,type:"skipped",battle:response.battle}:(function(data,widgetId){let battleId=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;(0,storeWidgetData.o)({data,battleId},"".concat(widgetId))}(tabData[defaultTab.value],widgetProps.widgetId,widgetProps.battleId),{props:widgetProps,responseTime,apiCall:status,type:"success",battle:response.battle})}const{only_fallback_offers}=params;return{props:widgetProps,responseTime,apiCall:status,type:options.props.widget.id===Widget.U.DEAL||only_fallback_offers&&defaultTab?"success":"missing",battle:response.battle}},fetchModelData=async function(getJSON,endpoint){let params=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(getJSON){const result=await getJSON(endpoint,params),{body,responseTime}=result;if(body)return{data:body.widget&&body.widget.data,battle:body.battle,area:body.area,models:body.models,responseTime}}return{data:{},battle:null,area:null,models:{},responseTime:0}};var getWidget=__webpack_require__(21070);const getWidgetTypeComponent=(props,defaultTab)=>{const{params,site,platform,editorial,widget,name}=props,{widgetType:urlWidgetType}=(0,getUrlParameters.Z)(["widgetType"]);return"0"===String(0)&&urlWidgetType?urlWidgetType:"trd"===site.id&&widget.id===Widget.U.REVIEW&&defaultTab&&"contracts"===defaultTab.value?Widget.U.POCKET:"responsive"===platform&&"review"===params.article_type&&defaultTab&&"deals"===defaultTab.value&&widget.id===Widget.U.REVIEW&&!editorial&&"BOT widget"!==name?Widget.U.MERCHANT_LINK:defaultTab&&"label_text_game_platform"===defaultTab.type&&widget.id===Widget.U.REVIEW?Widget.U.TABS:"buying_guide"===params.article_type&&widget.id===Widget.U.MERCHANT_LINK&&defaultTab&&"subscriptions"===defaultTab.value?Widget.U.PRICE:widget.id};function changeToNighthawk_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function changeToNighthawk_objectSpread(target){for(var i=1;i{const{options,model}=setupModelWidgetData,{props:defaultProps}=options,{getJSON,widgetEndpoint}=defaultProps;if(!((widget,params)=>{const{model_name,model_id,offer,match_id,only_fallback_offers}=null!=params?params:{};return!((null==widget?void 0:widget.id)===Widget.U.DEAL&&!match_id)&&!only_fallback_offers&&Boolean(model_name||model_id||offer)})(defaultProps.widget,defaultProps.params))return{options,model:sendApiRequest_objectSpread(sendApiRequest_objectSpread({},model),{},{status:"skipped"})};try{const{props,widgetFeatures,apiFeatures,features}=(_ref=>{let{props,widgetFeatures,apiFeatures,features}=_ref;const widgetTypeComponent=getWidgetTypeComponent(props,null);if(props.widget.id!==widgetTypeComponent&&"nighthawk"===widgetTypeComponent){const widget=(0,getWidget.Z)(widgetTypeComponent);widgetFeatures.setAttribute("widget",widget),apiFeatures.setAttribute("widget",widget);const features=widgetFeatures.getFeatures("id");return{widgetFeatures,apiFeatures,features,props:changeToNighthawk_objectSpread(changeToNighthawk_objectSpread(changeToNighthawk_objectSpread({},props),features),{},{params:apiFeatures.getFeatures("value",!0),widget})}}return{widgetFeatures,apiFeatures,features,props}})(options),{params}=props,result=await fetchModelData(getJSON,widgetEndpoint,params);return{options:sendApiRequest_objectSpread(sendApiRequest_objectSpread({},options),{},{apiFeatures,widgetFeatures,features,props}),model:sendApiRequest_objectSpread(sendApiRequest_objectSpread({},model),{},{status:"success",responseTime:result.responseTime,response:result})}}catch(e){return{options,model:sendApiRequest_objectSpread(sendApiRequest_objectSpread({},model),{},{status:"failure"})}}};function getBattleVariant_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function getBattleVariant_objectSpread(target){for(var i=1;i{if(test&&test.variants&&test.variants.length>0){const{variants}=test,getVariantNumberResult=((id,props,variants)=>{const urlParams=(0,getUrlParameters.Z)(["battle"]),paramUrl=urlParams&&urlParams.battle?urlParams.battle:"",paramFlexi=props&&props.params&&props.params.battle?props.params.battle:"",paramBattle=paramUrl||paramFlexi;if(/\d*-v\d*/.test(paramBattle)){const match=paramBattle.match(new RegExp("^".concat(id,"-v(\\d)")));if(match&&match&&match[1])return parseInt(match[1],10)}if(/\d*-\d*/.test(paramBattle)){const variantId=Number(paramBattle.split("-")[1]);return variants.findIndex((variant=>variant.id===variantId))}return 0})(test.id,props,variants),variantNumber="number"==typeof getVariantNumberResult?getVariantNumberResult:0,variant=variants[variantNumber];return variant?getBattleVariant_objectSpread(getBattleVariant_objectSpread({},variant),{},{variantNumber}):null}return null},getBattleData=(test,props,models,data)=>{if(test&&function(criteria,props){let models=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,data=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return 0===criteria.length||criteria.filter((_ref=>{let{attribute}=_ref;return"modelName"!==attribute})).every((_ref2=>{let{attribute,values}=_ref2;return(values||[]).some((value=>"widgetType"===attribute?value===props.widget.id:"editorial"===attribute?Boolean(parseInt(value,10))===props[attribute]:"modelId"!==attribute||!models||!!Object.values(models).find((id=>String(id)===value))||Boolean(Object.keys(models).find((modelName=>{const modelId=models[modelName];return(data&&data.model_info&&data.model_info[modelId]&&data.model_info[modelId].parents?data.model_info[modelId].parents:[]).find((p=>String(p.id)===value))})))))}))}(test.criteria,props,models,data)){const variant=getBattleVariant(test,props),dealOverrides=[];return variant&&variant.deal_types&&variant.deal_types.length>0&&dealOverrides.push({overrides:variant.overrides,dealTypes:variant.deal_types,condition:variant.condition}),{battleFeatures:variant?variant.features:null,battleDealOverrides:dealOverrides,test,variant}}return{}};function setupBattle_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function setupBattle_objectSpread(target){for(var i=1;i{if(0===nonBundleData.offers.filter((d=>200!==d.product_type)).length&&bundleData.offers.length>0)return bundleData.offers;if(nonBundleData.offers.length>0&&bundleData.offers.length>0){const priorityNonBundleOffers=nonBundleData.offers.filter((o=>!bundleData.offers.find((offer=>offer.match_id===o.match_id)))).sort(((a,b)=>b.score0&&0===bundleData.offers.length?nonBundleData.offers:bundleData.offers};function getBundleTabData_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function getBundleTabData_objectSpread(target){for(var i=1;i{let{tab,tabConfigs,defaultTab,getDataForAllTabs,showFilters,index,reFetchData}=_ref;return defaultTab&&tab.value===defaultTab.value?!!(tab.params&&Object.keys(tab.params).filter((k=>k.indexOf("filter_")>=0&&"filter_product_types"!==k)).length>0)||(!!reFetchData||!!(showFilters&&tabConfigs.length>1)):!(!getDataForAllTabs||0===index)||"bundle"===tab.value};function getTabScopedProps_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function getTabScopedProps_objectSpread(target){for(var i=1;i{var _features$showFilters;const{options,model}=setupModelWidgetData,{apiFeatures,widgetFeatures,props,features}=options,{getJSON,widgetEndpoint,widget}=props,{response,defaultTab,reFetchData,widgetMissing,responseTime,tabConfigs}=model,{data}=response;if(widgetMissing)return setupModelWidgetData;const tabScopedProps=await(async options=>{const{defaultTab,tabConfigs,data,params,showFilters,reFetchData,getJSON,widgetEndpoint,widget}=options,getDataForAllTabs=Boolean(params.bundle_models)||defaultTab&&"model"===defaultTab.category||widget.id===Widget.U.SPECS,tabData={},tabParams={};let tabResponseTime=0;for(const[index,tab]of tabConfigs.entries()){const newParams=getTabScopedProps_objectSpread(getTabScopedProps_objectSpread({},params),tab.params||{}),shouldGetData=shouldGetDataForTab({tab,tabConfigs,defaultTab,getDataForAllTabs,showFilters,index,reFetchData}),defaultData={model_info:{},offers:[],filters:[]};if(defaultTab&&tab.value===defaultTab.value&&!shouldGetData)tabData[tab.value]=data,tabParams[tab.value]=params;else if(shouldGetData)try{const{data:resultData,responseTime}=await fetchModelData(getJSON,widgetEndpoint,newParams);tabData[tab.value]=resultData,tabParams[tab.value]=newParams,tabResponseTime+=responseTime}catch(e){tabData[tab.value]=defaultData,tabParams[tab.value]=newParams}else tabData[tab.value]=defaultData,tabParams[tab.value]=newParams}return{tabData,tabParams,tabResponseTime}})({defaultTab,tabConfigs,data,params:props.params,showFilters:null!==(_features$showFilters=features.showFilters)&&void 0!==_features$showFilters&&_features$showFilters,reFetchData,getJSON,widgetEndpoint,widget}),bundle=((data,tabConfigs,defaultTab)=>{if(defaultTab&&tabConfigs&&tabConfigs.find((t=>"bundle"===t.value))){const bundleData=data.bundle,nonBundleData=data[defaultTab.value];nonBundleData&&nonBundleData.offers&&bundleData&&bundleData.offers&&(data[defaultTab.value]=getBundleTabData_objectSpread(getBundleTabData_objectSpread({},data[defaultTab.value]),{},{offers:getBundleOffers(bundleData,nonBundleData)}),delete data.bundle,tabConfigs=tabConfigs.filter((t=>"bundle"!==t.value)))}return{tabConfigs,data}})(tabScopedProps.tabData,tabConfigs,defaultTab);widgetFeatures.setAttribute("defaultTab",defaultTab),apiFeatures.setAttribute("defaultTab",defaultTab);const newFeatures=widgetFeatures.getFeatures("id");return{options:setupTabBasedData_objectSpread(setupTabBasedData_objectSpread({},options),{},{props:setupTabBasedData_objectSpread(setupTabBasedData_objectSpread(setupTabBasedData_objectSpread({},props),newFeatures),{},{params:apiFeatures.getFeatures("value",!0)}),widgetFeatures,apiFeatures,features:newFeatures}),model:setupTabBasedData_objectSpread(setupTabBasedData_objectSpread({},model),{},{tabData:bundle.data,tabConfigs:bundle.tabConfigs,responseTime:responseTime+tabScopedProps.tabResponseTime,tabParams:tabScopedProps.tabParams})}},checkParamsDifference=(params,newParams,offerType)=>{const diff=[];return Array.from(new Set(Object.keys(params).concat(Object.keys(newParams)))).forEach((key=>{if(newParams[key]!==params[key])if("filter_product_types"===key){-1===(newParams[key]||"").split(",").indexOf(offerType)&&diff.push(key)}else diff.push(key)})),diff.length>0};function shouldReFetchData_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function shouldReFetchData_objectSpread(target){for(var i=1;i{const updatedModelData=(setupModelWidgetData=>{const{options,model}=setupModelWidgetData,{features,localiser,props}=options,{params,widget}=props,{response}=model,{models,area,data}=response,{tabConfigs,defaultTab}=setupTabs({data,params,features,widget,localiser,models,area}),widgetMissing=((defaultTab,tabConfigs)=>!(defaultTab&&(defaultTab.value||defaultTab.type)&&tabConfigs&&tabConfigs.length>0))(defaultTab,tabConfigs);if(widgetMissing)return{options,model:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},model),{},{defaultTab,tabConfigs,widgetMissing})};const widgetTypeComponent=getWidgetTypeComponent(props,defaultTab);return widget.id!==widgetTypeComponent?{options:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},options),{},{props:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},props),{},{widgetTypeComponent,widget:(0,getWidget.Z)(widgetTypeComponent)})}),model:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},model),{},{widgetChanged:!0,defaultTab,tabConfigs,widgetMissing})}:{options:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},options),{},{props:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},props),{},{widgetTypeComponent})}),model:updateWidgetConfig_objectSpread(updateWidgetConfig_objectSpread({},model),{},{widgetChanged:!1,defaultTab,tabConfigs,widgetMissing})}})(await sendApiRequest({options,model:{status:"",response:{},responseTime:0,battleDealOverrides:[],battleFeatures:null,widgetMissing:!1,widgetChanged:!1,reFetchData:!1,tabConfigs:[],defaultTab:null,tabData:{},tabParams:{},airdaleData:{}}})),dataWithBattleTest=(setupModelWidgetData=>{const{options,model}=setupModelWidgetData,{apiFeatures,widgetFeatures,props}=options,{response,widgetMissing}=model,{data,models,battle}=response;if(widgetMissing||!battle)return setupModelWidgetData;const{battleFeatures,battleDealOverrides,test,variant}=getBattleData(battle,props,models,data);if(apiFeatures.setAttribute("battleFeatures",battleFeatures),widgetFeatures.setAttribute("battleFeatures",battleFeatures),battleFeatures&&battleFeatures.switchMerchantlinkToReview&&(battleFeatures.widgetType=Widget.U.REVIEW),battleFeatures&&battleFeatures.widgetType){const widget=(0,getWidget.Z)(battleFeatures.widgetType);return{options:setupBattle_objectSpread(setupBattle_objectSpread({},options),{},{apiFeatures,widgetFeatures,props:setupBattle_objectSpread(setupBattle_objectSpread({},props),{},{widget,widgetTypeComponent:widget.id,battle:{test,variant:{id:(null==variant?void 0:variant.id)||0,name:(null==variant?void 0:variant.name)||""}}})}),model:setupBattle_objectSpread(setupBattle_objectSpread({},model),{},{battleDealOverrides,battleFeatures,widgetChanged:!0})}}return{options:setupBattle_objectSpread(setupBattle_objectSpread({},options),{},{apiFeatures,widgetFeatures,props:setupBattle_objectSpread(setupBattle_objectSpread({},props),{},{battle:{test,variant:{id:(null==variant?void 0:variant.id)||0,name:(null==variant?void 0:variant.name)||""}}})}),model:setupBattle_objectSpread(setupBattle_objectSpread({},model),{},{battleDealOverrides,battleFeatures})}})(updatedModelData),dataWithChangedWidget=(setupModelWidgetData=>{const{options,model}=setupModelWidgetData,{apiFeatures,widgetFeatures,localiser,props}=options,{widget,params}=props,{response,battleFeatures,widgetChanged,widgetMissing}=model,{data,models,area}=response;if(widgetMissing)return setupModelWidgetData;if(widgetChanged){widgetFeatures.setAttribute("widget",widget),apiFeatures.setAttribute("widget",widget);const newParams=apiFeatures.getFeatures("value",!0),tabs=setupTabs({data,params:newParams,features:widgetFeatures.getFeatures("id"),widget,localiser,models,area}),{tabConfigs,defaultTab}=tabs;return{options:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},options),{},{widgetFeatures,apiFeatures,props:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},props),widgetFeatures.getFeatures("id")),{},{params:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},params),newParams)})}),model:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},model),{},{reFetchData:checkParamsDifference(params,newParams,null==data?void 0:data.offer_type),tabConfigs,defaultTab})}}if(battleFeatures){const newParams=apiFeatures.getFeatures("value",!0);return{options:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},options),{},{widgetFeatures,apiFeatures,props:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},props),widgetFeatures.getFeatures("id")),{},{params:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},params),newParams)})}),model:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},model),{},{reFetchData:checkParamsDifference(params,newParams,null==data?void 0:data.offer_type)})}}return{options,model:shouldReFetchData_objectSpread(shouldReFetchData_objectSpread({},model),{},{reFetchData:widget.id===Widget.U.SPECS})}})(dataWithBattleTest),tabBasedData=await setupTabBasedData(dataWithChangedWidget),airedaleInfoData=await(0,getAirdaleInfo.T)(tabBasedData);return getModelWidget(airedaleInfoData)};function setupSeasonalWidget_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function setupSeasonalWidget_objectSpread(target){for(var i=1;i{const seasonalTags=(null==data?void 0:data.tags)||[];if("success"!==apiCall||!data)return"missing";if((null==seasonalTags?void 0:seasonalTags.length)>0&&keywords){return seasonalTags.find((tag=>keywords.includes(tag)))?"success":"skipped"}return"success"},modules_setupSeasonalWidget=async _ref=>{let{props}=_ref;const{getJSON,widgetEndpoint,params,keywords}=props;try{var _ref2;const result=await async function(getJSON,endpoint){let params=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(getJSON){const result=await getJSON(endpoint,params),{body,responseTime}=result;if(body&&body.link)return{data:body.link,responseTime}}return{data:null,responseTime:0}}(getJSON,widgetEndpoint,params);return{props:setupSeasonalWidget_objectSpread(setupSeasonalWidget_objectSpread({},props),{},{data:null!==(_ref2=result.data)&&void 0!==_ref2?_ref2:{}}),battle:null,responseTime:result.responseTime,apiCall:"success",type:getType("success",result.data,keywords)}}catch(e){return{props:setupSeasonalWidget_objectSpread(setupSeasonalWidget_objectSpread({},props),{},{data:{}}),battle:null,responseTime:0,apiCall:"failure",type:getType("failure",null,keywords)}}},getInitialiser=async widget=>widget.id===Widget.U.SEASONAL?modules_setupSeasonalWidget:modules_setupModelWidget},2662:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{H:()=>getMinutesDisplayValue,z:()=>getMinutesDisplayLabel});var _utils_productAmount__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(48062),_getMinutesValueDisplay__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(94530);const getMinutesDisplayValue=(deal,translate)=>null!=deal&&deal.contract&&"number"==typeof deal.contract.minutes?(0,_utils_productAmount__WEBPACK_IMPORTED_MODULE_0__.Z)(deal.contract.minutes,translate):null!=deal&&deal.contract&&"number"==typeof deal.contract.minutes_value?(0,_getMinutesValueDisplay__WEBPACK_IMPORTED_MODULE_1__.Z)(deal,translate):"",getMinutesDisplayLabel=(deal,translate)=>null!=deal&&deal.contract&&"number"==typeof deal.contract.minutes?" ".concat(translate("minutesDisplayMinutesLabel")):null!=deal&&deal.contract&&"number"==typeof deal.contract.minutes_value?" ".concat(translate("minutesDisplayMinutesValueLabel")):""},94530:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var _utils_getCurrencySymbol__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(45343),_utils_productAmount__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(48062);const __WEBPACK_DEFAULT_EXPORT__=(deal,translate)=>null!=deal&&deal.contract&&null!=deal&&deal.offer?(0,_utils_productAmount__WEBPACK_IMPORTED_MODULE_0__.Z)(deal.contract.minutes_value,translate)!==deal.contract.minutes_value?(0,_utils_productAmount__WEBPACK_IMPORTED_MODULE_0__.Z)(deal.contract.minutes_value,translate):"".concat((0,_utils_getCurrencySymbol__WEBPACK_IMPORTED_MODULE_1__.Z)(deal.offer.currency_iso)).concat(deal.contract.minutes_value):""},83320:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__=deal=>{var _deal$offer;if(null!=deal&&null!==(_deal$offer=deal.offer)&&void 0!==_deal$offer&&_deal$offer.was_price){return(parseFloat((deal.offer.was_price-parseFloat(deal.offer.price)).toFixed(2))/deal.offer.was_price*100).toFixed(0)}return null}},66470:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var _utils_productAmount__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(48062),_getMinutesValueDisplay__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(94530);const __WEBPACK_DEFAULT_EXPORT__=(deal,translate)=>null!=deal&&deal.contract&&"number"==typeof deal.contract.texts?(0,_utils_productAmount__WEBPACK_IMPORTED_MODULE_0__.Z)(deal.contract.texts,translate):null!=deal&&deal.contract&&"number"==typeof deal.contract.minutes_value?(0,_getMinutesValueDisplay__WEBPACK_IMPORTED_MODULE_1__.Z)(deal,translate):""},21746:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>getCustomTrackedOffer});var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(4942),_loadable_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(23810),_analytics_library_entry__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(28057),_types_Widget__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(40459);function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i"analytics-library-entry-getCustomTrackingIdServerside",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(6030).then(__webpack_require__.bind(__webpack_require__,66408)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 66408}}),lazyGetCustomTrackingId=_loadable_component__WEBPACK_IMPORTED_MODULE_1__.ZP.lib({resolved:{},chunkName:()=>"analytics-library-entry-getCustomTrackingId",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(5420).then(__webpack_require__.bind(__webpack_require__,60046)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 60046}}),getCustomTrackedOffer=async _ref=>{var _deal$offer;let{deal,site,articleUrl,area,params,widget,forcedCustomTrackingId,link,linkText,articleName,rawLink}=_ref;if(null!=deal&&null!==(_deal$offer=deal.offer)&&void 0!==_deal$offer&&_deal$offer.link){var _deal$offer2,_deal$offer3;let customTrackingId;{const{getCustomTrackingId}=await lazyGetCustomTrackingId.load();customTrackingId=await getCustomTrackingId({pageUrl:articleUrl,site,deal,area,battle:params&¶ms.battle||""},forcedCustomTrackingId)}const usePlaceholderLink=widget.id===_types_Widget__WEBPACK_IMPORTED_MODULE_2__.U.DEAL&&link,offerLinkText=usePlaceholderLink&&linkText?linkText:null==deal||null===(_deal$offer2=deal.offer)||void 0===_deal$offer2?void 0:_deal$offer2.linkText;return _objectSpread(_objectSpread({},deal),{},{offer:_objectSpread(_objectSpread(_objectSpread(_objectSpread({},deal.offer),offerLinkText?{linkText:offerLinkText}:{}),{},{link:(0,_analytics_library_entry__WEBPACK_IMPORTED_MODULE_3__.n)(null!=rawLink?rawLink:usePlaceholderLink?link:deal.offer.link,site&&site.analyticsName,area,customTrackingId,articleUrl,articleName)},null!=deal&&null!==(_deal$offer3=deal.offer)&&void 0!==_deal$offer3&&_deal$offer3.rawLink?{}:{rawLink:usePlaceholderLink?link:deal.offer.link}),{},{custom_tracking_id:customTrackingId})})}return _objectSpread(_objectSpread({},deal),{},{offer:_objectSpread({},deal.offer)})}},62999:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(4942),_loadable_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(23810),_analytics_library_entry__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(28057),_utils_global__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(43426);function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i"analytics-library-entry-getCustomTrackingIdServerside",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(6030).then(__webpack_require__.bind(__webpack_require__,66408)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 66408}}),lazyGetCustomTrackingId=_loadable_component__WEBPACK_IMPORTED_MODULE_1__.ZP.lib({resolved:{},chunkName:()=>"analytics-library-entry-getCustomTrackingId",isReady(props){const key=this.resolve(props);return!0===this.resolved[key]&&!!__webpack_require__.m[key]},importAsync:()=>__webpack_require__.e(5420).then(__webpack_require__.bind(__webpack_require__,60046)),requireAsync(props){const key=this.resolve(props);return this.resolved[key]=!1,this.importAsync(props).then((resolved=>(this.resolved[key]=!0,resolved)))},requireSync(props){const id=this.resolve(props);return __webpack_require__(id)},resolve(){return 60046}}),__WEBPACK_DEFAULT_EXPORT__=async(modelInfo,showReviews,site,area,articleUrl,battle)=>{modelInfo=modelInfo||{};const reviews=Object.keys(modelInfo.reviews||{}).map((key=>modelInfo.reviews[key]));if(reviews){const priorities=(()=>{const defaultPriorities=["asin","walmart"],streamingScores=["imdb","rt"];switch(showReviews){case"asin":case"walmart":return[showReviews];case"none":return[];case"reversePriority":return defaultPriorities.reverse();case"streamingScores":return streamingScores;default:return defaultPriorities}})(),max=(()=>{switch(showReviews){case"priority":case"reversePriority":return 1;default:return priorities.length}})(),{customTrackingId:forcedCustomTrackingId}=(0,_utils_global__WEBPACK_IMPORTED_MODULE_2__.ie)(),result=[];for(let i=0;i["imdb","rt"].includes(review.code_name)?review.code_name===priorities[i]:review.code_name===priorities[i]&&review.reviews_url));if(review){let customTrackingId;{const{getCustomTrackingId}=await lazyGetCustomTrackingId.load();customTrackingId=await getCustomTrackingId({pageUrl:articleUrl,site,review,area,battle},forcedCustomTrackingId)}review.reviews_customTrackingId=customTrackingId,result.push(_objectSpread(_objectSpread({},review),{},{reviews_url:(0,_analytics_library_entry__WEBPACK_IMPORTED_MODULE_3__.n)(review.reviews_url,site&&site.analyticsName,area,customTrackingId)}))}}return result}return[]}},28887:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__=deal=>deal&&deal.offer&&"AUD"!==deal.offer.currency_iso&&"SIM Only"!==deal.model},81086:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{o:()=>storeWidgetData});const storeWidgetData=(data,key)=>{try{"undefined"!=typeof window&&(window.localStorage["hawk-".concat(key)]=JSON.stringify(data))}catch(e){}}},87214:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";let WidgetWrapper;__webpack_require__.d(__webpack_exports__,{w:()=>WidgetWrapper}),function(WidgetWrapper){WidgetWrapper.SPAN="span",WidgetWrapper.DIV="div"}(WidgetWrapper||(WidgetWrapper={}))},70034:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__=(amount,translate)=>{if(null==amount)return translate("n/a");if(99999===Math.floor(amount)||999999===Math.floor(amount))return translate("unlimitedValue");if(amount>=1e3){let newAmount=amount;return amount%1024==0&&(newAmount=1e3*Math.floor(amount/1e3)),newAmount/1e3+translate("gigabyte")}return amount+translate("megabyte")}},45343:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__=currency=>{switch(currency){case"GBP":return"£";case"NGN":return"₦";case"JPY":return"¥";case"EUR":return"€";case"KRW":return"₩";case"USD":case"AUD":case"CAD":case"SGD":case"NZD":return"$";case"INR":return"₹";case"THB":return"฿";case"PHP":return"₱";case"IDR":return"Rp";case"MYR":return"RM";case"NOK":case"SEK":case"DKK":return"kr";default:return currency}}},39447:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";let HoverOverTypes;__webpack_require__.d(__webpack_exports__,{E:()=>getHoverOverItems,X:()=>HoverOverTypes}),function(HoverOverTypes){HoverOverTypes.STANDARD_RATE_NOTE="standard_rate_note",HoverOverTypes.MINUTES_DESCRIPTION="minutes_description",HoverOverTypes.TEXTS_DESCRIPTION="texts_description",HoverOverTypes.DATA_DESCRIPTION="data_description",HoverOverTypes.PRICE_NOTE="price_note"}(HoverOverTypes||(HoverOverTypes={}));const getHoverOverItems=(deal,defaultTypes)=>{var _deal$contract,_deal$contract2,_deal$contract3,_deal$contract4,_deal$contract5;const types=defaultTypes||[HoverOverTypes.STANDARD_RATE_NOTE,HoverOverTypes.MINUTES_DESCRIPTION,HoverOverTypes.TEXTS_DESCRIPTION,HoverOverTypes.DATA_DESCRIPTION],items=[];return null!=deal&&null!==(_deal$contract=deal.contract)&&void 0!==_deal$contract&&_deal$contract.price_note&&types.indexOf(HoverOverTypes.PRICE_NOTE)>=0&&items.push({bold:"",normal:deal.contract.price_note}),null!=deal&&null!==(_deal$contract2=deal.contract)&&void 0!==_deal$contract2&&_deal$contract2.standard_rate_note&&types.indexOf(HoverOverTypes.STANDARD_RATE_NOTE)>=0&&items.push({bold:"",normal:deal.contract.standard_rate_note}),null!=deal&&null!==(_deal$contract3=deal.contract)&&void 0!==_deal$contract3&&_deal$contract3.minutes_description&&types.indexOf(HoverOverTypes.MINUTES_DESCRIPTION)>=0&&items.push({bold:"Calls: ",normal:deal.contract.minutes_description}),null!=deal&&null!==(_deal$contract4=deal.contract)&&void 0!==_deal$contract4&&_deal$contract4.texts_description&&types.indexOf(HoverOverTypes.TEXTS_DESCRIPTION)>=0&&items.push({bold:"Texts: ",normal:deal.contract.texts_description}),null!=deal&&null!==(_deal$contract5=deal.contract)&&void 0!==_deal$contract5&&_deal$contract5.data_description&&types.indexOf(HoverOverTypes.DATA_DESCRIPTION)>=0&&items.push({bold:"Data: ",normal:deal.contract.data_description}),items}},5791:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{E:()=>_getHoverOverItems__WEBPACK_IMPORTED_MODULE_0__.E});var _getHoverOverItems__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(39447)},45184:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{e:()=>getSkip});var Widget=__webpack_require__(40459);const getSkip=(props,options,widget)=>{const{editorialOnPage,keywords,defaultParams}=options,{skip,excludeFrom,hiddenDealWidget}=props;let skipWidget=Boolean((skip||"").split(",").find((s=>{switch(s){case"disabled":return!0;case"editorial":return editorialOnPage;case"phones":return"phones"===(null==defaultParams?void 0:defaultParams.articleCategory);case"retail":return"retail"===(null==defaultParams?void 0:defaultParams.articleCategory);case"dealsy":return null==keywords?void 0:keywords.find((k=>["amazonprimeday","blackfriday","sensitive"].find((t=>{return(str=k,(str=(str=str||"").toLowerCase()).replace(/(_|-| )/g,"")).indexOf(t)>=0;var str}))||"deals"===(null==defaultParams?void 0:defaultParams.articleType)));default:return!1}})));return widget.id===Widget.U.DEAL&&excludeFrom&&hiddenDealWidget&&(skipWidget=!0),skipWidget}},82983:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{k:()=>getWidgetInitialiser});var defineProperty=__webpack_require__(4942),modules_features=__webpack_require__(98606),Widget=__webpack_require__(40459);var getUrlParameters=__webpack_require__(59776),getSkip=__webpack_require__(45184),getWidget=__webpack_require__(21070),enumFromStringValue=__webpack_require__(63054);const getWidgetFromDisplayType_getWidgetType=widgetType=>{var _enumFromStringValue;return widgetType&&null!==(_enumFromStringValue=(0,enumFromStringValue.J)(Widget.U,widgetType))&&void 0!==_enumFromStringValue?_enumFromStringValue:null},esm_browser_native={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const byteToHex=[];for(let i=0;i<256;++i)byteToHex.push((i+256).toString(16).slice(1));function unsafeStringify(arr,offset=0){return(byteToHex[arr[offset+0]]+byteToHex[arr[offset+1]]+byteToHex[arr[offset+2]]+byteToHex[arr[offset+3]]+"-"+byteToHex[arr[offset+4]]+byteToHex[arr[offset+5]]+"-"+byteToHex[arr[offset+6]]+byteToHex[arr[offset+7]]+"-"+byteToHex[arr[offset+8]]+byteToHex[arr[offset+9]]+"-"+byteToHex[arr[offset+10]]+byteToHex[arr[offset+11]]+byteToHex[arr[offset+12]]+byteToHex[arr[offset+13]]+byteToHex[arr[offset+14]]+byteToHex[arr[offset+15]]).toLowerCase()}const esm_browser_v4=function v4(options,buf,offset){if(esm_browser_native.randomUUID&&!buf&&!options)return esm_browser_native.randomUUID();const rnds=(options=options||{}).random||(options.rng||rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf){offset=offset||0;for(let i=0;i<16;++i)buf[offset+i]=rnds[i];return buf}return unsafeStringify(rnds)};var global=__webpack_require__(43426);const getWidgetId=()=>{const{widgetId}=(0,global.ie)();return widgetId||esm_browser_v4()};var storeWidgetData=__webpack_require__(81086);function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i{options=options||{};const{editorial,placeholder,defaultParams,endpoint,index,site,platform,territory,localiser,url,keywords,getJSON,articleId,articleName,articleUrl,getInitialiser,origin,dataLinkMerchant}=options;let{attributes}=options;const whitelist=(articleUrl=>{if((articleUrl||"").indexOf("iframe.html")>=0)return[]})(articleUrl),urlParams=(0,getUrlParameters.Z)(whitelist),widget=((displayType,widgetType)=>{if(displayType){const displayTypeWidget=(0,getWidget.Z)(getWidgetFromDisplayType_getWidgetType(displayType));if(displayTypeWidget&&displayTypeWidget.id)return displayTypeWidget}return(0,getWidget.Z)(getWidgetFromDisplayType_getWidgetType(widgetType))})(attributes.displayType,attributes.widgetType);attributes=_objectSpread(_objectSpread(_objectSpread({},defaultParams),attributes),urlParams);const apiFeatures=new modules_features.Hf(attributes,widget,editorial,platform,localiser,site,territory,keywords,origin),widgetFeatures=new modules_features.LN(attributes,widget,editorial,platform,localiser,site,territory,keywords),features=widgetFeatures.getFeatures("id"),params=_objectSpread(_objectSpread({},apiFeatures.getFeatures("value")),apiFeatures.getLabels()),skipWidget=(0,getSkip.e)(features,options,widget),props=_objectSpread(_objectSpread({widget,endpoint,widgetEndpoint:""===widget.endpoint?"":"".concat(endpoint,"/").concat(widget.endpoint),editorial,placeholder,site,platform,territory,localiser,language:localiser.language,translate:localiser.translate.bind(localiser),url,index,articleId,articleName,articleUrl,keywords},features),{},{params,widgetTypeComponent:widget.id,getJSON,widgetId:getWidgetId(),dataLinkMerchant});if(widget&&widget.id&&!skipWidget){((territory,localiser,articleType,articleCategory)=>{(0,storeWidgetData.o)({articleType,articleCategory,territory,language:localiser.articleLanguage,hawkLanguage:localiser.language},"article")})(territory,localiser,params.article_type,params.article_category);const setup=await getInitialiser(widget);if("function"!=typeof setup)return{props,type:"skipped"};const result=await setup({props,apiFeatures,widgetFeatures,localiser,features}),widgetTypeComponent="missing"===result.type&&result.props.widgetTypeComponent===Widget.U.PROMOTION?Widget.U.PROMOTION_FALLBACK:result.props.widgetTypeComponent,type="failure"===result.apiCall?"preserved":result.type;return _objectSpread(_objectSpread({},result),{},{type,props:_objectSpread(_objectSpread({},result.props),{},{widgetTypeComponent})})}return{props,type:"skipped"}}},21070:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var _core_modules_widgetConfigs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(15294),_core_types_Widget__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(40459);const __WEBPACK_DEFAULT_EXPORT__=widgetId=>{if(widgetId){const widget=_core_modules_widgetConfigs__WEBPACK_IMPORTED_MODULE_0__.Z.find((widget=>widget.id===widgetId||(widget.aliases||[]).indexOf(widgetId)>=0));if(widget)return widget;if(widgetId===_core_types_Widget__WEBPACK_IMPORTED_MODULE_1__.U.PROMOTION_FALLBACK)return{id:_core_types_Widget__WEBPACK_IMPORTED_MODULE_1__.U.PROMOTION_FALLBACK,dir:"Promotion",label:"Promotion",gaLabel:"Promotion widget",endpoint:"widget.php",sites:["all"],group:"default"}}return{id:"",dir:"",label:"",gaLabel:"",endpoint:"",sites:[],group:""}}},70535:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{j:()=>loadCSS});var _getWidgetsEndpoint__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(85746);const loadCSS=component=>{if("undefined"!=typeof window&&!document.getElementById("hawkStyles-".concat(component))){const linkTag=document.createElement("link");linkTag.rel="stylesheet",linkTag.type="text/css",linkTag.id="hawkStyles-".concat(component),linkTag.href="".concat((0,_getWidgetsEndpoint__WEBPACK_IMPORTED_MODULE_0__.Z)(),"/css/browser/").concat("17.7.5-f30d5fd60f530acad6653d0c82e0a493fbf63dd6","/").concat(component,".min.css"),document.head.appendChild(linkTag)}}},2251:function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(root,factory){"use strict";module.exports?module.exports=factory():void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=factory)?__WEBPACK_AMD_DEFINE_FACTORY__.call(exports,__webpack_require__,exports,module):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}(0,(function(root){"use strict";var _IPv6=root&&root.IPv6;return{best:function bestPresentation(address){var pos,_segments,segments=address.toLowerCase().split(":"),length=segments.length,total=8;for(""===segments[0]&&""===segments[1]&&""===segments[2]?(segments.shift(),segments.shift()):""===segments[0]&&""===segments[1]?segments.shift():""===segments[length-1]&&""===segments[length-2]&&segments.pop(),-1!==segments[(length=segments.length)-1].indexOf(".")&&(total=7),pos=0;pos1);j++)_segments.splice(0,1);segments[i]=_segments.join("")}var best=-1,_best=0,_current=0,current=-1,inzeroes=!1;for(i=0;i_best&&(best=current,_best=_current)):"0"===segments[i]&&(inzeroes=!0,current=i,_current=1);_current>_best&&(best=current,_best=_current),_best>1&&segments.splice(best,_best,""),length=segments.length;var result="";for(""===segments[0]&&(result=":"),i=0;i=domain.length-1)return!1;var sldOffset=domain.lastIndexOf(".",tldOffset-1);if(sldOffset<=0||sldOffset>=tldOffset-1)return!1;var sldList=SLD.list[domain.slice(tldOffset+1)];return!!sldList&&sldList.indexOf(" "+domain.slice(sldOffset+1,tldOffset)+" ")>=0},is:function(domain){var tldOffset=domain.lastIndexOf(".");if(tldOffset<=0||tldOffset>=domain.length-1)return!1;if(domain.lastIndexOf(".",tldOffset-1)>=0)return!1;var sldList=SLD.list[domain.slice(tldOffset+1)];return!!sldList&&sldList.indexOf(" "+domain.slice(0,tldOffset)+" ")>=0},get:function(domain){var tldOffset=domain.lastIndexOf(".");if(tldOffset<=0||tldOffset>=domain.length-1)return null;var sldOffset=domain.lastIndexOf(".",tldOffset-1);if(sldOffset<=0||sldOffset>=tldOffset-1)return null;var sldList=SLD.list[domain.slice(tldOffset+1)];return sldList?sldList.indexOf(" "+domain.slice(sldOffset+1,tldOffset)+" ")<0?null:domain.slice(sldOffset+1):null},noConflict:function(){return root.SecondLevelDomains===this&&(root.SecondLevelDomains=_SecondLevelDomains),this}};return SLD}))},54998:function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;!function(root,factory){"use strict";module.exports?module.exports=factory(__webpack_require__(33132),__webpack_require__(2251),__webpack_require__(76106)):(__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__(33132),__webpack_require__(2251),__webpack_require__(76106)],void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=factory)?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}(0,(function(punycode,IPv6,SLD,root){"use strict";var _URI=root&&root.URI;function URI(url,base){var _urlSupplied=arguments.length>=1;if(!(this instanceof URI))return _urlSupplied?arguments.length>=2?new URI(url,base):new URI(url):new URI;if(void 0===url){if(_urlSupplied)throw new TypeError("undefined is not a valid argument for URI");url="undefined"!=typeof location?location.href+"":""}if(null===url&&_urlSupplied)throw new TypeError("null is not a valid argument for URI");return this.href(url),void 0!==base?this.absoluteTo(base):this}URI.version="1.19.11";var p=URI.prototype,hasOwn=Object.prototype.hasOwnProperty;function escapeRegEx(string){return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function getType(value){return void 0===value?"Undefined":String(Object.prototype.toString.call(value)).slice(8,-1)}function isArray(obj){return"Array"===getType(obj)}function filterArrayValues(data,value){var i,length,lookup={};if("RegExp"===getType(value))lookup=null;else if(isArray(value))for(i=0,length=value.length;i]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi,URI.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},URI.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,URI.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,URI.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},URI.hostProtocols=["http","https"],URI.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,URI.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},URI.getDomAttribute=function(node){if(node&&node.nodeName){var nodeName=node.nodeName.toLowerCase();if("input"!==nodeName||"image"===node.type)return URI.domAttributes[nodeName]}},URI.encode=strictEncodeURIComponent,URI.decode=decodeURIComponent,URI.iso8859=function(){URI.encode=escape,URI.decode=unescape},URI.unicode=function(){URI.encode=strictEncodeURIComponent,URI.decode=decodeURIComponent},URI.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/gi,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},URI.encodeQuery=function(string,escapeQuerySpace){var escaped=URI.encode(string+"");return void 0===escapeQuerySpace&&(escapeQuerySpace=URI.escapeQuerySpace),escapeQuerySpace?escaped.replace(/%20/g,"+"):escaped},URI.decodeQuery=function(string,escapeQuerySpace){string+="",void 0===escapeQuerySpace&&(escapeQuerySpace=URI.escapeQuerySpace);try{return URI.decode(escapeQuerySpace?string.replace(/\+/g,"%20"):string)}catch(e){return string}};var _part,_parts={encode:"encode",decode:"decode"},generateAccessor=function(_group,_part){return function(string){try{return URI[_part](string+"").replace(URI.characters[_group][_part].expression,(function(c){return URI.characters[_group][_part].map[c]}))}catch(e){return string}}};for(_part in _parts)URI[_part+"PathSegment"]=generateAccessor("pathname",_parts[_part]),URI[_part+"UrnPathSegment"]=generateAccessor("urnpath",_parts[_part]);var generateSegmentedPathFunction=function(_sep,_codingFuncName,_innerCodingFuncName){return function(string){var actualCodingFunc;actualCodingFunc=_innerCodingFuncName?function(string){return URI[_codingFuncName](URI[_innerCodingFuncName](string))}:URI[_codingFuncName];for(var segments=(string+"").split(_sep),i=0,length=segments.length;i-1&&(parts.fragment=string.substring(pos+1)||null,string=string.substring(0,pos)),(pos=string.indexOf("?"))>-1&&(parts.query=string.substring(pos+1)||null,string=string.substring(0,pos)),"//"===(string=(string=string.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://")).replace(/^[/\\]{2,}/i,"//")).substring(0,2)?(parts.protocol=null,string=string.substring(2),string=URI.parseAuthority(string,parts)):(pos=string.indexOf(":"))>-1&&(parts.protocol=string.substring(0,pos)||null,parts.protocol&&!parts.protocol.match(URI.protocol_expression)?parts.protocol=void 0:"//"===string.substring(pos+1,pos+3).replace(/\\/g,"/")?(string=string.substring(pos+3),string=URI.parseAuthority(string,parts)):(string=string.substring(pos+1),parts.urn=!0)),parts.path=string,parts},URI.parseHost=function(string,parts){string||(string="");var bracketPos,t,pos=(string=string.replace(/\\/g,"/")).indexOf("/");if(-1===pos&&(pos=string.length),"["===string.charAt(0))bracketPos=string.indexOf("]"),parts.hostname=string.substring(1,bracketPos)||null,parts.port=string.substring(bracketPos+2,pos)||null,"/"===parts.port&&(parts.port=null);else{var firstColon=string.indexOf(":"),firstSlash=string.indexOf("/"),nextColon=string.indexOf(":",firstColon+1);-1!==nextColon&&(-1===firstSlash||nextColon-1?firstSlash:string.length-1);return pos>-1&&(-1===firstSlash||pos-1?slice.slice(0,parensEnd)+slice.slice(parensEnd).replace(_trim,""):slice.replace(_trim,"")).length<=match[0].length||options.ignore&&options.ignore.test(slice))){var result=callback(slice,start,end=start+slice.length,string);void 0!==result?(result=String(result),string=string.slice(0,start)+result+string.slice(end),_start.lastIndex=start+result.length):_start.lastIndex=end}}return _start.lastIndex=0,string},URI.ensureValidHostname=function(v,protocol){var hasHostname=!!v,rejectEmptyHostname=!1;if(!!protocol&&(rejectEmptyHostname=arrayContains(URI.hostProtocols,protocol)),rejectEmptyHostname&&!hasHostname)throw new TypeError("Hostname cannot be empty, if protocol is "+protocol);if(v&&v.match(URI.invalid_hostname_characters)){if(!punycode)throw new TypeError('Hostname "'+v+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(punycode.toASCII(v).match(URI.invalid_hostname_characters))throw new TypeError('Hostname "'+v+'" contains characters other than [A-Z0-9.-:_]')}},URI.ensureValidPort=function(v){if(v){var port=Number(v);if(!(function isInteger(value){return/^[0-9]+$/.test(value)}(port)&&port>0&&port<65536))throw new TypeError('Port "'+v+'" is not a valid port')}},URI.noConflict=function(removeAll){if(removeAll){var unconflicted={URI:this.noConflict()};return root.URITemplate&&"function"==typeof root.URITemplate.noConflict&&(unconflicted.URITemplate=root.URITemplate.noConflict()),root.IPv6&&"function"==typeof root.IPv6.noConflict&&(unconflicted.IPv6=root.IPv6.noConflict()),root.SecondLevelDomains&&"function"==typeof root.SecondLevelDomains.noConflict&&(unconflicted.SecondLevelDomains=root.SecondLevelDomains.noConflict()),unconflicted}return root.URI===this&&(root.URI=_URI),this},p.build=function(deferBuild){return!0===deferBuild?this._deferred_build=!0:(void 0===deferBuild||this._deferred_build)&&(this._string=URI.build(this._parts),this._deferred_build=!1),this},p.clone=function(){return new URI(this)},p.valueOf=p.toString=function(){return this.build(!1)._string},p.protocol=generateSimpleAccessor("protocol"),p.username=generateSimpleAccessor("username"),p.password=generateSimpleAccessor("password"),p.hostname=generateSimpleAccessor("hostname"),p.port=generateSimpleAccessor("port"),p.query=generatePrefixAccessor("query","?"),p.fragment=generatePrefixAccessor("fragment","#"),p.search=function(v,build){var t=this.query(v,build);return"string"==typeof t&&t.length?"?"+t:t},p.hash=function(v,build){var t=this.fragment(v,build);return"string"==typeof t&&t.length?"#"+t:t},p.pathname=function(v,build){if(void 0===v||!0===v){var res=this._parts.path||(this._parts.hostname?"/":"");return v?(this._parts.urn?URI.decodeUrnPath:URI.decodePath)(res):res}return this._parts.urn?this._parts.path=v?URI.recodeUrnPath(v):"":this._parts.path=v?URI.recodePath(v):"/",this.build(!build),this},p.path=p.pathname,p.href=function(href,build){var key;if(void 0===href)return this.toString();this._string="",this._parts=URI._parts();var _URI=href instanceof URI,_object="object"==typeof href&&(href.hostname||href.path||href.pathname);href.nodeName&&(href=href[URI.getDomAttribute(href)]||"",_object=!1);if(!_URI&&_object&&void 0!==href.pathname&&(href=href.toString()),"string"==typeof href||href instanceof String)this._parts=URI.parse(String(href),this._parts);else{if(!_URI&&!_object)throw new TypeError("invalid input");var src=_URI?href._parts:href;for(key in src)"query"!==key&&hasOwn.call(this._parts,key)&&(this._parts[key]=src[key]);src.query&&this.query(src.query,!1)}return this.build(!build),this},p.is=function(what){var ip=!1,ip4=!1,ip6=!1,name=!1,sld=!1,idn=!1,punycode=!1,relative=!this._parts.urn;switch(this._parts.hostname&&(relative=!1,ip4=URI.ip4_expression.test(this._parts.hostname),ip6=URI.ip6_expression.test(this._parts.hostname),sld=(name=!(ip=ip4||ip6))&&SLD&&SLD.has(this._parts.hostname),idn=name&&URI.idn_expression.test(this._parts.hostname),punycode=name&&URI.punycode_expression.test(this._parts.hostname)),what.toLowerCase()){case"relative":return relative;case"absolute":return!relative;case"domain":case"name":return name;case"sld":return sld;case"ip":return ip;case"ip4":case"ipv4":case"inet4":return ip4;case"ip6":case"ipv6":case"inet6":return ip6;case"idn":return idn;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return punycode}return null};var _protocol=p.protocol,_port=p.port,_hostname=p.hostname;p.protocol=function(v,build){if(v&&!(v=v.replace(/:(\/\/)?$/,"")).match(URI.protocol_expression))throw new TypeError('Protocol "'+v+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return _protocol.call(this,v,build)},p.scheme=p.protocol,p.port=function(v,build){return this._parts.urn?void 0===v?"":this:(void 0!==v&&(0===v&&(v=null),v&&(":"===(v+="").charAt(0)&&(v=v.substring(1)),URI.ensureValidPort(v))),_port.call(this,v,build))},p.hostname=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0!==v){var x={preventInvalidHostname:this._parts.preventInvalidHostname};if("/"!==URI.parseHost(v,x))throw new TypeError('Hostname "'+v+'" contains characters other than [A-Z0-9.-]');v=x.hostname,this._parts.preventInvalidHostname&&URI.ensureValidHostname(v,this._parts.protocol)}return _hostname.call(this,v,build)},p.origin=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v){var protocol=this.protocol();return this.authority()?(protocol?protocol+"://":"")+this.authority():""}var origin=URI(v);return this.protocol(origin.protocol()).authority(origin.authority()).build(!build),this},p.host=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v)return this._parts.hostname?URI.buildHost(this._parts):"";if("/"!==URI.parseHost(v,this._parts))throw new TypeError('Hostname "'+v+'" contains characters other than [A-Z0-9.-]');return this.build(!build),this},p.authority=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v)return this._parts.hostname?URI.buildAuthority(this._parts):"";if("/"!==URI.parseAuthority(v,this._parts))throw new TypeError('Hostname "'+v+'" contains characters other than [A-Z0-9.-]');return this.build(!build),this},p.userinfo=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v){var t=URI.buildUserinfo(this._parts);return t?t.substring(0,t.length-1):t}return"@"!==v[v.length-1]&&(v+="@"),URI.parseUserinfo(v,this._parts),this.build(!build),this},p.resource=function(v,build){var parts;return void 0===v?this.path()+this.search()+this.hash():(parts=URI.parse(v),this._parts.path=parts.path,this._parts.query=parts.query,this._parts.fragment=parts.fragment,this.build(!build),this)},p.subdomain=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v){if(!this._parts.hostname||this.is("IP"))return"";var end=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,end)||""}var e=this._parts.hostname.length-this.domain().length,sub=this._parts.hostname.substring(0,e),replace=new RegExp("^"+escapeRegEx(sub));if(v&&"."!==v.charAt(v.length-1)&&(v+="."),-1!==v.indexOf(":"))throw new TypeError("Domains cannot contain colons");return v&&URI.ensureValidHostname(v,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(replace,v),this.build(!build),this},p.domain=function(v,build){if(this._parts.urn)return void 0===v?"":this;if("boolean"==typeof v&&(build=v,v=void 0),void 0===v){if(!this._parts.hostname||this.is("IP"))return"";var t=this._parts.hostname.match(/\./g);if(t&&t.length<2)return this._parts.hostname;var end=this._parts.hostname.length-this.tld(build).length-1;return end=this._parts.hostname.lastIndexOf(".",end-1)+1,this._parts.hostname.substring(end)||""}if(!v)throw new TypeError("cannot set domain empty");if(-1!==v.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(URI.ensureValidHostname(v,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=v;else{var replace=new RegExp(escapeRegEx(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(replace,v)}return this.build(!build),this},p.tld=function(v,build){if(this._parts.urn)return void 0===v?"":this;if("boolean"==typeof v&&(build=v,v=void 0),void 0===v){if(!this._parts.hostname||this.is("IP"))return"";var pos=this._parts.hostname.lastIndexOf("."),tld=this._parts.hostname.substring(pos+1);return!0!==build&&SLD&&SLD.list[tld.toLowerCase()]&&SLD.get(this._parts.hostname)||tld}var replace;if(!v)throw new TypeError("cannot set TLD empty");if(v.match(/[^a-zA-Z0-9-]/)){if(!SLD||!SLD.is(v))throw new TypeError('TLD "'+v+'" contains characters other than [A-Z0-9]');replace=new RegExp(escapeRegEx(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(replace,v)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");replace=new RegExp(escapeRegEx(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(replace,v)}return this.build(!build),this},p.directory=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v||!0===v){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var end=this._parts.path.length-this.filename().length-1,res=this._parts.path.substring(0,end)||(this._parts.hostname?"/":"");return v?URI.decodePath(res):res}var e=this._parts.path.length-this.filename().length,directory=this._parts.path.substring(0,e),replace=new RegExp("^"+escapeRegEx(directory));return this.is("relative")||(v||(v="/"),"/"!==v.charAt(0)&&(v="/"+v)),v&&"/"!==v.charAt(v.length-1)&&(v+="/"),v=URI.recodePath(v),this._parts.path=this._parts.path.replace(replace,v),this.build(!build),this},p.filename=function(v,build){if(this._parts.urn)return void 0===v?"":this;if("string"!=typeof v){if(!this._parts.path||"/"===this._parts.path)return"";var pos=this._parts.path.lastIndexOf("/"),res=this._parts.path.substring(pos+1);return v?URI.decodePathSegment(res):res}var mutatedDirectory=!1;"/"===v.charAt(0)&&(v=v.substring(1)),v.match(/\.?\//)&&(mutatedDirectory=!0);var replace=new RegExp(escapeRegEx(this.filename())+"$");return v=URI.recodePath(v),this._parts.path=this._parts.path.replace(replace,v),mutatedDirectory?this.normalizePath(build):this.build(!build),this},p.suffix=function(v,build){if(this._parts.urn)return void 0===v?"":this;if(void 0===v||!0===v){if(!this._parts.path||"/"===this._parts.path)return"";var s,res,filename=this.filename(),pos=filename.lastIndexOf(".");return-1===pos?"":(s=filename.substring(pos+1),res=/^[a-z0-9%]+$/i.test(s)?s:"",v?URI.decodePathSegment(res):res)}"."===v.charAt(0)&&(v=v.substring(1));var replace,suffix=this.suffix();if(suffix)replace=v?new RegExp(escapeRegEx(suffix)+"$"):new RegExp(escapeRegEx("."+suffix)+"$");else{if(!v)return this;this._parts.path+="."+URI.recodePath(v)}return replace&&(v=URI.recodePath(v),this._parts.path=this._parts.path.replace(replace,v)),this.build(!build),this},p.segment=function(segment,v,build){var separator=this._parts.urn?":":"/",path=this.path(),absolute="/"===path.substring(0,1),segments=path.split(separator);if(void 0!==segment&&"number"!=typeof segment&&(build=v,v=segment,segment=void 0),void 0!==segment&&"number"!=typeof segment)throw new Error('Bad segment "'+segment+'", must be 0-based integer');if(absolute&&segments.shift(),segment<0&&(segment=Math.max(segments.length+segment,0)),void 0===v)return void 0===segment?segments:segments[segment];if(null===segment||void 0===segments[segment])if(isArray(v)){segments=[];for(var i=0,l=v.length;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;function error(type){throw new RangeError(errors[type])}function map(array,fn){for(var length=array.length,result=[];length--;)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@"),result="";return parts.length>1&&(result=parts[0]+"@",string=parts[1]),result+map((string=string.replace(regexSeparators,".")).split("."),fn).join(".")}function ucs2decode(string){for(var value,extra,output=[],counter=0,length=string.length;counter=55296&&value<=56319&&counter65535&&(output+=stringFromCharCode((value-=65536)>>>10&1023|55296),value=56320|1023&value),output+=stringFromCharCode(value)})).join("")}function digitToBasic(digit,flag){return digit+22+75*(digit<26)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){var k=0;for(delta=firstTime?floor(delta/damp):delta>>1,delta+=floor(delta/numPoints);delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var out,basic,j,index,oldi,w,k,digit,t,baseMinusT,codePoint,output=[],inputLength=input.length,i=0,n=initialN,bias=initialBias;for((basic=input.lastIndexOf(delimiter))<0&&(basic=0),j=0;j=128&&error("not-basic"),output.push(input.charCodeAt(j));for(index=basic>0?basic+1:0;index=inputLength&&error("invalid-input"),((digit=(codePoint=input.charCodeAt(index++))-48<10?codePoint-22:codePoint-65<26?codePoint-65:codePoint-97<26?codePoint-97:base)>=base||digit>floor((maxInt-i)/w))&&error("overflow"),i+=digit*w,!(digit<(t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias));k+=base)w>floor(maxInt/(baseMinusT=base-t))&&error("overflow"),w*=baseMinusT;bias=adapt(i-oldi,out=output.length+1,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT,output=[];for(inputLength=(input=ucs2decode(input)).length,n=initialN,delta=0,bias=initialBias,j=0;j=n&¤tValuefloor((maxInt-delta)/(handledCPCountPlusOne=handledCPCount+1))&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;jmaxInt&&error("overflow"),currentValue==n){for(q=delta,k=base;!(q<(t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias));k+=base)qMinusT=q-t,baseMinusT=base-t,output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT);output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")}punycode={version:"1.3.2",ucs2:{decode:ucs2decode,encode:ucs2encode},decode,encode,toASCII:function toASCII(input){return mapDomain(input,(function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string}))},toUnicode:function toUnicode(input){return mapDomain(input,(function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string}))}},void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return punycode}.call(exports,__webpack_require__,exports,module))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)}()}}]); //# sourceMappingURL=productname.js.map