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