import{a as U,b as J}from"./chunk-ZDETG3HQ.js";import{h as D}from"./chunk-LMTFYFBP.js";import{a as Q}from"./chunk-5L2Z4GZW.js";import{a as q}from"./chunk-77WMUU2O.js";import{p as L}from"./chunk-UBPC4FNO.js";import{a as B}from"./chunk-JWAFQ6PQ.js";import{f as M,h as O,i as c}from"./chunk-PQ4LRPD5.js";import{a as _}from"./chunk-O7K2RE33.js";import{f as H}from"./chunk-767ZUJWF.js";import{D as I}from"./chunk-QYQ7WNYU.js";import{Ea as F,La as y,Oa as b,Qa as T,Ra as d,Td as C,Ud as G,Vd as w,a as s,b as g,dc as $,ec as j,h as K,pb as A}from"./chunk-HC2G7LSI.js";var V=new b("Key to specify the feature to search in storage"),x=new b("Configuration for compare feature");var l=Symbol("STATE_SIGNAL");function u(t,...e){t[l].update(r=>e.reduce((o,n)=>s(s({},o),typeof n=="function"?n(o):n),r))}function X(t){let e=G(()=>t());return yt(e)?new Proxy(t,{get(r,o){return o in e?($(r[o])||Object.defineProperty(r,o,{value:C(()=>r()[o]),configurable:!0}),X(r[o])):r[o]}}):t}function yt(t){return t?.constructor===Object}function z(...t){let e=[...t],r="providedIn"in e[0]?e.shift():{},o=e;return(()=>{let a=class a{constructor(){let f=o.reduce((S,gt)=>gt(S),ht()),{slices:P,signals:dt,methods:lt,hooks:ft}=f,R=s(s(s({},P),dt),lt);this[l]=f[l];for(let S in R)this[S]=R[S];let{onInit:N,onDestroy:k}=ft;N&&N(),k&&d(A).onDestroy(k)}};K(a,"\u0275fac",function(P){return new(P||a)}),K(a,"\u0275prov",y({token:a,factory:a.\u0275fac,providedIn:r.providedIn||null}));let i=a;return i})()}function ht(){return{[l]:j({}),slices:{},signals:{},methods:{},hooks:{}}}function Y(t,...e){let r=typeof t=="function"?[t,...e]:e;return o=>r.reduce((n,i)=>i(n),o)}function h(t,e){return Object.keys(t).reduce((r,o)=>e.includes(o)?r:g(s({},r),{[o]:t[o]}),{})}function Z(t){return e=>{let r=t(s(s({},e.slices),e.signals)),o=Object.keys(r),n=h(e.slices,o),i=h(e.methods,o);return g(s({},e),{slices:n,signals:s(s({},e.signals),r),methods:i})}}function tt(t){return e=>{let r=s(s(s({[l]:e[l]},e.slices),e.signals),e.methods),o=typeof t=="function"?t(r):t,n=i=>{let a=o[i],m=e.hooks[i];return a?()=>{m&&m(),a(r)}:m};return g(s({},e),{hooks:{onInit:n("onInit"),onDestroy:n("onDestroy")}})}}function et(t){return e=>{let r=t(s(s(s({[l]:e[l]},e.slices),e.signals),e.methods)),o=Object.keys(r),n=h(e.slices,o),i=h(e.signals,o);return g(s({},e),{slices:n,signals:i,methods:s(s({},e.methods),r)})}}function v(t){return e=>{let r=typeof t=="function"?t():t,o=Object.keys(r);e[l].update(m=>s(s({},m),r));let n=o.reduce((m,f)=>{let P=C(()=>e[l]()[f]);return g(s({},m),{[f]:X(P)})},{}),i=h(e.signals,o),a=h(e.methods,o);return g(s({},e),{slices:s(s({},e.slices),n),signals:i,methods:a})}}var p=function(t){return t[t.None=0]="None",t[t.Entities=1]="Entities",t[t.Both=2]="Both",t}(p||{});function ot(t){return t?.idKey??"id"}function E(t){let e=t?.collection,r=e===void 0?"entityMap":`${e}EntityMap`,o=e===void 0?"ids":`${e}Ids`,n=e===void 0?"entities":`${e}Entities`;return{entityMapKey:r,idsKey:o,entitiesKey:n}}function nt(t,e){return{entityMap:s({},t[e.entityMapKey]),ids:[...t[e.idsKey]]}}function rt(t,e,r){switch(r){case p.Both:return{[e.entityMapKey]:t.entityMap,[e.idsKey]:t.ids};case p.Entities:return{[e.entityMapKey]:t.entityMap};default:return{}}}function Pt(t,e,r){let o=e[r];return t.entityMap[o]?p.None:(t.entityMap[o]=e,t.ids.push(o),p.Both)}function Ct(t,e,r){let o=e[r];return t.entityMap[o]?(t.entityMap[o]=e,p.Entities):(t.entityMap[o]=e,t.ids.push(o),p.Both)}function It(t,e,r){let o=p.None;for(let n of e){let i=Ct(t,n,r);o!==p.Both&&(o=i)}return o}function Dt(t,e){let r=Array.isArray(e)?e:t.ids.filter(n=>e(t.entityMap[n])),o=p.None;for(let n of r)t.entityMap[n]&&(delete t.entityMap[n],o=p.Both);return o===p.Both&&(t.ids=t.ids.filter(n=>n in t.entityMap)),o}function it(t,e){let r=ot(e),o=E(e);return n=>{let i=nt(n,o),a=Pt(i,t,r);return rt(i,o,a)}}function at(t,e){let r=E(e);return o=>{let n=nt(o,r),i=Dt(n,[t]);return rt(n,r,i)}}function st(t,e){let r=ot(e),o=E(e);return()=>{let n={entityMap:{},ids:[]};return It(n,t,r),{[o.entityMapKey]:n.entityMap,[o.idsKey]:n.ids}}}function ct(t){let{entityMapKey:e,idsKey:r,entitiesKey:o}=E(t);return Y(v({[e]:{},[r]:[]}),Z(n=>({[o]:C(()=>{let i=n[e]();return n[r]().map(m=>i[m])})})))}var Mt=c` fragment SpotlightParamDetail on SpotlightParamDetail { value id __typename } `,vt=c` fragment ProductComparisonSpotlightParam on ProductComparisonSpotlightParam { icon param details { ...SpotlightParamDetail } __typename } ${Mt}`,Et=c` fragment PictureNew on PictureNew { href rel } `,Kt=c` fragment CarouselPicture on CarouselPicture { displayOrder pictures { ...PictureNew } } ${Et}`,bt=c` fragment ProductCompareImageItem on ProductCompareImageItem { id values { ...CarouselPicture } } ${Kt}`,wt=c` fragment CompareProductsImages on CompareProductsImages { items { ...ProductCompareImageItem } } ${bt}`,xt=c` fragment Rating on Rating { reviews value } `,Rt=c` fragment ProductCompareRatingItem on ProductCompareRatingItem { id values { ...Rating } } ${xt}`,Nt=c` fragment CompareProductsRatings on CompareProductsRatings { items { ...ProductCompareRatingItem } } ${Rt}`,kt=c` fragment DisplayDetails on DisplayDetails { brand shortName } `,Ft=c` fragment ProductCompareDisplayDetailsItem on ProductCompareDisplayDetailsItem { id values { ...DisplayDetails } } ${kt}`,Tt=c` fragment CompareProductsDisplayDetails on CompareProductsDisplayDetails { items { ...ProductCompareDisplayDetailsItem } } ${Ft}`,At=c` fragment SpotlightParam on SpotlightParam { icon value param } `,te=c` fragment ProductCompareSpotlightItem on ProductCompareSpotlightItem { id values { ...SpotlightParam } } ${At}`,$t=c` fragment ProductComparisonCharacteristicItemDetail on ProductComparisonCharacteristicItemDetail { value id variants } `,jt=c` fragment ProductComparisonCharacteristicItem on ProductComparisonCharacteristicItem { name checkbox differences details { ...ProductComparisonCharacteristicItemDetail } } ${$t}`,Gt=c` fragment ProductComparisonCharacteristicGroup on ProductComparisonCharacteristicGroup { name icon items { ...ProductComparisonCharacteristicItem } } ${jt}`,Bt=c` fragment ProductComparisonHrefDetails on ProductComparisonHrefDetails { id href } `,Ot=c` query GetProductComparisonDetails($request: ProductComparisonDetailsRequest) { getProductComparisonDetailsResponse(request: $request) { images { ...CompareProductsImages } ratings { ...CompareProductsRatings } displayDetails { ...CompareProductsDisplayDetails } spotlightParams { ...ProductComparisonSpotlightParam } characteristics { ...ProductComparisonCharacteristicGroup } hrefDetails { ...ProductComparisonHrefDetails } productIds } } ${wt} ${Nt} ${Tt} ${vt} ${Gt} ${Bt}`,mt=(()=>{let e=class e extends O{constructor(o){super(o),this.document=Ot}};e.\u0275fac=function(n){return new(n||e)(T(M))},e.\u0275prov=y({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var ut=(()=>{let e=class e{constructor(){this.apollo=d(M),this.getProductComparisonDetailsGQL=new mt(this.apollo),this.getProductComparisonDetailsGQL.client=Q}getCompareProductsDetails(o){return this.getProductComparisonDetailsGQL.fetch({request:{productIds:o.map(n=>Number(n))}})}};e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=y({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function pt(t){return t.productIds?.map((e,r)=>Ht(e,t,r))||[]}function Ht(t,e,r){let o=_.getHrefAndFallbackFromCarousel({carouselPictures:e.images?.items?.find(n=>n?.id===t)?.values,relType:"300x300"});return{abonamentAtasat:null,availability:void 0,base_price:void 0,brand:e.displayDetails?.items?.find(n=>n?.id===t)?.values?.brand||D.brand,category:"telefoane",color:e.characteristics?.flatMap(n=>n?.items).find(n=>n?.name.toLowerCase()==="culoare")?.details?.find(n=>n?.id===t)?.value,file:"compare-products-to-product-impression.tracking.ts",id:D.id,img_url:o.href||o.fallback,installments:0,item_name_full:e.displayDetails?.items?.find(n=>n?.id===t)?.values?.shortName||D.name,list:"compare",memory:e.characteristics?.flatMap(n=>n?.items).find(n=>n?.name.toLowerCase()==="capacitate")?.details?.find(n=>n?.id===t)?.value,name:e.displayDetails?.items?.find(n=>n?.id===t)?.values?.shortName.toLowerCase()||D.name,period:1,position:r,price:void 0,promotion_name:void 0,retail_price:void 0,reviews:e.ratings?.items?.find(n=>n?.id===t)?.values?.value||null,transactionType:void 0,transactionSubType:void 0}}var Lt={compareResponse:void 0,status:I.initial,comparePageIds:[]},Ee=z(v(Lt),ct({entity:void 0,collection:"compare"}),et(t=>{let e=d(Storage),r=d(V),o=d(x),n=d(ut);return{load(){let i=e.getItem(r);if(!i)return;let a=JSON.parse(i);a&&u(t,st(a,{collection:"compare"}))},persist(){e.setItem(r,JSON.stringify(t.compareEntities()))},itemAlreadyInState(i){return i?t.compareIds().includes(i):!1},addItemToCompare(i){let a=o();if(a&&t.compareIds().length>=a.maxNumberOfProductsSupported)throw new Error("Maximum number of products.");u(t,it(i,{collection:"compare"})),this.persist()},removeFromCompare(i){u(t,at(i,{collection:"compare"})),this.persist()},getItemById(i){return t.compareEntityMap()?.[i]},getCompare(i){return u(t,a=>({status:I.loading})),n.getCompareProductsDetails(i).pipe(F(a=>a.data.getProductComparisonDetailsResponse&&!a.errors?this.writeResponse(a):this.detailsError()))},responseIds(){return t.compareResponse()?.data.getProductComparisonDetailsResponse?.displayDetails?.items?.map(i=>i?.id)},writeResponse(i){u(t,a=>({compareResponse:s({},i),status:I.success})),u(t,a=>({comparePageIds:H(i.data.getProductComparisonDetailsResponse?.productIds?.map(m=>Number(m)))}))},detailsError(){u(t,i=>({status:I.error})),u(t,i=>({comparePageIds:[]}))},setComparePageIds(i){u(t,a=>({comparePageIds:[...i]}))},addIdToComparePage(i){let a=o();if(a&&t.comparePageIds().length>=a.maxNumberOfProductsSupported)throw new Error("Maximum number of products.");let m=t.comparePageIds();m.push(i),u(t,f=>({comparePageIds:[...m]}))},removeIdFromComparePage(i){let a=t.comparePageIds().filter(m=>m!==i);u(t,m=>({comparePageIds:[...a]}))}}}),tt({onInit:t=>{let e=d(x);t.load(),w(()=>{let r=e()?.maxNumberOfProductsSupported;r&&r<t.compareIds().length&&t.removeFromCompare(t.compareIds()[t.compareIds().length-1])},{allowSignalWrites:!0}),w(()=>{let r=t.compareResponse()?.data.getProductComparisonDetailsResponse;if(r){let o={event:L.productImpression,page_type:J.listing,page_section:U.main_offer,shop_type:"B2C",ecommerce:{currencyCode:B.EUR,impressions:{products:pt(r)}}};q.analyticsPush(o)}})},onDestroy:t=>t.persist()}));export{V as a,x as b,Ee as c};