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};