1import{ta as pt}from"./chunk-X73SDHYL.js";import{$ as w,Aa as ct,Ab as st,Bb as L,Lc as lt,O as rt,Qc as F,R as O,Yc as R,Zc as E,ea as ot,fa as b,kd as k,qc as j,ra as D,sa as at}from"./chunk-ZNBNGGFO.js";import"./chunk-LYPGPWQS.js";import{E as y,m as nt,o as $,p as A,u as q}from"./chunk-PAKKVVEV.js";import{$b as m,Bd as _,Dc as B,Fa as H,Ga as p,Hd as it,Ja as z,Jb as X,Ka as J,Mc as o,N as S,Nc as a,Ob as r,Oc as s,Od as u,Pc as M,Pd as v,Ta as K,Tc as P,Ua as W,Uc as T,Wc as tt,Z as V,_c as N,ad as l,ca as Y,gc as I,hc as d,mc as g,pd as h,q as U,qd as et,rd as C,va as Z,y as Q,ya as G}from"./chunk-5W3PVHQP.js";import"./chunk-5JJ6SBZ6.js";var ht={backend:{occ:{endpoints:{product:{variants:"products/${productCode}?fields=name,purchasable,baseOptions(DEFAULT),baseProduct,variantOptions(DEFAULT),variantType"}}}}},ut=(()=>{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({providers:[w(ht)],imports:[y]})}}return i})();function St(i,c){if(i&1&&(a(0,"option",4),h(1),s()),i&2){let e=c.$implicit,t=l();o("value",_(e.code))("selected",e.code===(t.product==null?null:t.product.code)),r(),C(" ",t.getVariantOptionValue(e.variantOptionQualifiers)," ")}}function Ct(i,c){if(i&1&&(a(0,"option",5),u(1,"async"),h(2),s()),i&2){let e=c.$implicit,t=c.index,n=l();o("value",_(e.code))("selected",e.code===(n.product==null?null:n.product.code)),B("aria-label",v(1,5,n.ariaLabel$(e.variantOptionQualifiers,t,n.variants==null||n.variants.options==null?null:n.variants.options.length))),r(2),C(" ",n.getVariantOptionValue(e.variantOptionQualifiers)," ")}}var _t=i=>({"selected-variant":i});function yt(i,c){if(i&1&&(a(0,"div",4),h(1),u(2,"cxTranslate"),a(3,"span",5),h(4),s()()),i&2){let e=l();r(),C(" ",v(2,2,"productVariants.style"),": "),r(3),et(e.getVariantOptionValue(e.variants==null?null:e.variants.selected.variantOptionQualifiers))}}function xt(i,c){if(i&1){let e=tt();a(0,"li",6)(1,"button",7),N("click",function(){let n=K(e).$implicit,f=l();return W(f.changeStyle(n.code))}),M(2,"img",8),s()()}if(i&2){let e=c.$implicit,t=l();o("ngClass",it(7,_t,e.code===(t.variants==null||t.variants.selected==null?null:t.variants.selected.code))),r(2),o("src",_(t.getVariantThumbnailUrl(e.variantOptionQualifiers)),X)("title",_(t.getVariantOptionValue(e.variantOptionQualifiers)))("alt",_(t.getVariantOptionValue(e.variantOptionQualifiers)))}}function Vt(i,c){if(i&1&&M(0,"cx-product-variant-style-selector",5),i&2){let e=l(3);o("variants",e.variants[e.variantType.STYLE])}}function It(i,c){if(i&1&&M(0,"cx-product-variant-size-selector",6),i&2){let e=l(2).ngIf,t=l();o("product",e)("variants",t.variants[t.variantType.SIZE])}}function Mt(i,c){if(i&1&&M(0,"cx-product-variant-color-selector",6),i&2){let e=l(2).ngIf,t=l();o("product",e)("variants",t.variants[t.variantType.COLOR])}}function Pt(i,c){if(i&1&&(a(0,"div",2),g(1,Vt,1,1,"cx-product-variant-style-selector",3)(2,It,1,2,"cx-product-variant-size-selector",4)(3,Mt,1,2,"cx-product-variant-color-selector",4),s()),i&2){let e=l(2);r(),o("ngIf",e.variants[e.variantType.STYLE]),r(),o("ngIf",e.variants[e.variantType.SIZE]),r(),o("ngIf",e.variants[e.variantType.COLOR])}}function Tt(i,c){if(i&1&&(P(0),g(1,Pt,4,3,"div",1),T()),i&2){let e=c.ngIf;r(),o("ngIf",e.baseOptions==null?null:e.baseOptions.length)}}var Ot=(()=>{class i{constructor(e){this.routingService=e}changeColor(e,t){return e&&this.routingService.go({cxRoute:"product",params:{code:e,name:t}}),null}getVariantOptionValue(e){let t=e.find(n=>n.qualifier===b.COLOR);return t?t.value:""}static{this.\u0275fac=function(t){return new(t||i)(m(L))}}static{this.\u0275cmp=I({type:i,selectors:[["cx-product-variant-color-selector"]],inputs:{product:"product",variants:"variants"},decls:7,vars:4,consts:[[1,"variant-selector"],[1,"variant-name"],[1,"form-control","variant-select",3,"change"],[3,"value","selected",4,"ngFor","ngForOf"],[3,"value","selected"]],template:function(t,n){t&1&&(P(0),a(1,"div",0)(2,"div",1),h(3),u(4,"cxTranslate"),s(),a(5,"select",2),N("change",function(x){return n.changeColor(x.target.value,n.product==null?null:n.product.name)}),g(6,St,2,4,"option",3),s()(),T()),t&2&&(r(3),C("",v(4,2,"productVariants.color"),":"),r(3),o("ngForOf",n.variants==null?null:n.variants.options))},dependencies:[$,R],encapsulation:2,changeDetection:0})}}return i})(),vt=(()=>
1{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({imports:[y,O,F,E]})}}return i})(),bt=(()=>{class i{constructor(e,t){this.productService=e,this.routingService=t,this.translationService=J(lt)}changeSize(e){return e&&this.productService.get(e,j.LIST).pipe(S(D),V(1)).subscribe(t=>{this.routingService.go({cxRoute:"product",params:t})}),null}getVariantOptionValue(e){let t=e.find(n=>n.qualifier===b.SIZE);return t?t.value:""}ariaLabel$(e,t,n){return this.translationService.translate("common.of").pipe(V(1),Q(f=>`${this.getVariantOptionValue(e)}, ${t+1} ${f} ${n}`))}static{this.\u0275fac=function(t){return new(t||i)(m(k),m(L))}}static{this.\u0275cmp=I({type:i,selectors:[["cx-product-variant-size-selector"]],inputs:{product:"product",variants:"variants"},decls:12,vars:14,consts:[[1,"variant-selector"],[1,"variant-name"],[1,"form-control","variant-select",3,"change"],[3,"value","selected",4,"ngFor","ngForOf"],["href","#",1,"size-guide",3,"title"],[3,"value","selected"]],template:function(t,n){t&1&&(P(0),a(1,"div",0)(2,"div",1),h(3),u(4,"cxTranslate"),s(),a(5,"select",2),u(6,"cxTranslate"),N("change",function(x){return n.changeSize(x.target.value)}),g(7,Ct,3,7,"option",3),s(),a(8,"a",4),u(9,"cxTranslate"),h(10),u(11,"cxTranslate"),s()(),T()),t&2&&(r(3),C("",v(4,6,"productVariants.size"),":"),r(2),B("aria-label",v(6,8,"productVariants.size")),r(2),o("ngForOf",n.variants==null?null:n.variants.options),r(),o("title",_(v(9,10,"productVariants.sizeGuideL
1abel"))),r(2),C(" ",v(11,12,"productVariants.sizeGuideLabel")," "))},dependencies:[$,q,R],encapsulation:2,changeDetection:0})}}return i})(),ft=(()=>{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({imports:[y,O,F,E]})}}return i})(),Dt=(()=>{class i{constructor(e,t,n){this.config=e,this.productService=t,this.routingService=n,this.variantQualifier=b}getVariantOptionValue(e){let t=e.find(n=>n.qualifier===b.STYLE);return t?t.value:""}getVariantThumbnailUrl(e){let t=e.find(n=>n.image);return t?`${this.config?.backend?.occ?.baseUrl}${t.image?.url}`:""}changeStyle(e){return e&&this.productService.get(e,j.LIST).pipe(S(D),V(1)).subscribe(t=>{this.routingService.go({cxRoute:"product",params:t})}),null}static{this.\u0275fac=function(t){return new(t||i)(m(ct),m(k),m(L))}}static{this.\u0275cmp=I({type:i,selectors:[["cx-product-variant-style-selector"]],inputs:{variants:"variants"},decls:5,vars:2,consts:[[1,"variant-selector"],["class","variant-name",4,"ngIf"],[1,"variant-list"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"variant-name"],[1,"style-name"],[3,"ngClass"],[1,"variant-button",3,"click"],[3,"src","title","alt"]],template:function(t,n){t&1&&(P(0),a(1,"div",0),g(2,yt,5,4,"div",1),a(3,"ul",2),g(4,xt,3,9,"li",3),s()(),T()),t&2&&(r(2),o("ngIf",n.variants.selected),r(2),o("ngForOf",n.variants==null?null:n.variants.options))},dependencies:[A,$,nt,R],encapsulation:2,changeDetection:0})}}return i})(),mt=(()=>{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({imports:[y,O,F,E]})}}return i})(),jt=(()=>{class i{constructor(e){this.currentProductService=e,this.variants={},this.variantType=ot}ngOnInit(){this.product$=this.currentProductService.getProduct().pipe(S(at),S(e=>!!e.baseOptions),Y(),G(e=>{e.baseOptions.forEach(t=>{t?.variantType&&(this.variants[t.variantType]=t)})}
1))}static{this.\u0275fac=function(t){return new(t||i)(m(pt))}}static{this.\u0275cmp=I({type:i,selectors:[["cx-product-variants-container"]],decls:2,vars:3,consts:[[4,"ngIf"],["class","variant-section",4,"ngIf"],[1,"variant-section"],[3,"variants",4,"ngIf"],[3,"product","variants",4,"ngIf"],[3,"variants"],[3,"product","variants"]],template:function(t,n){t&1&&(g(0,Tt,2,1,"ng-container",0),u(1,"async")),t&2&&o("ngIf",v(1,1,n.product$))},dependencies:[A,Dt,bt,Ot,q],encapsulation:2,changeDetection:0})}}return i})(),Ft=(()=>{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({imports:[y,O,F,E,mt,ft,vt]})}}return i})(),Et=(()=>{class i{constructor(e,t,n){this.productService=e,this.semanticPathService=t,this.router=n}canActivate(e){let t=e.params?.productCode;return t?this.productService.get(t,j.VARIANTS).pipe(S(D),Z(n=>{if(!n.purchasable){let f=this.findPurchasableProductCode(n);if(f)return this.productService.get(f,j.LIST).pipe(S(D),V(1),Q(x=>this.router.createUrlTree(this.semanticPathService.transform({cxRoute:"product",params:x}))))}return U(!0)})):U(!0)}findPurchasableProductCode(e){if(e.variantOptions?.length){let t=e.variantOptions.filter(n=>n.stock&&n.stock.stockLevel?n:!1);return t&&t.length?t[0]?.code:e.variantOptions[0]?.code}}static{this.\u0275fac=function(t){return new(t||i)(z(k),z(st),z(rt))}}static{this.\u0275prov=H({token:i,factory:i.\u0275fac,providedIn:"root"})}}return i})(),gt=(()=>{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({providers:[w({cmsComponents:{ProductVariantSelectorComponent:{component:jt,guards:[Et]}}})],imports:[Ft,vt,ft,mt]})}}return i})();var te=(()=>{class i{static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275mod=d({type:i})}static{this.\u0275inj=p({imports:[ut,gt]})}}return i})();export{te as ProductVariantsModule};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.