1import{Ea as pt}from"./chunk-QAMCV7RW.js";import{B as y,Bc as L,Fd as lt,Ja as w,Nd as F,Ta as ot,Ua as b,Wd as R,Xd as E,da as rt,ga as O,gb as D,hb as at,j as nt,kd as j,l as $,m as A,oe as k,qb as ct,s as q,zc as st}from"./chunk-HVIIKB3M.js";import{Ea as H,Ec as o,Fa as p,Fc as a,Fd as it,Gc as s,Hb as X,Hc as M,Ia as z,Ja as J,L as S,Lc as P,Mc as T,Md as u,Nb as r,Nd as v,Rc as tt,Sa as K,Ta as W,W as V,Wc as N,Yc as l,_b as m,aa as Y,fc as I,gc as d,kc as g,ld as h,md as et,nd as C,p as U,ua as Z,vc as B,x as Q,xa as G,xd as _}from"./chunk-XJU45MUC.js";import"./chunk-2BAXZMGZ.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.