'use client';
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),Text=require("../../../text/components/Text.js"),index=require("./components/variants/index.js"),Dropdown=require("./components/dropdown-swatches/Dropdown.js"),DropdownGroup=require("./components/dropdown-group/DropdownGroup.js"),NoDataState=require("../../../common/components/NoDataState.js"),system=require("@gem-sdk/system"),styles=require("./common/main/styles.js"),getAttr=require("./common/main/getAttr.js"),classes=require("./common/main/classes.js"),getData=require("./common/main/getData.js"),useGpVariants=require("./hooks/useGpVariants.js"),classes$1=require("./common/variants/classes.js"),styles$1=require("./common/variants/styles.js");const ProductVariants=e=>{let{builderProps:t,styles:s,setting:a}=e,{align:r,optionTypo:o,swatchItemWidth:n,dropdownItemWidth:i,swatchSpacing:l,marginBottom:c}=s??{},{label:p,showAsSwatches:u,layout:m,hasPreSelected:d}=a??{},{uid:y}=t??{},x=core.useVariants(),{mode:j,options:g,variantId:f,elementRef:h,variantGroup:w,isChangeVariant:D,selectedOptions:S,isDefaultVariant:v,getVariantConfiguration:V,redirectProductShopifyLink:q}=useGpVariants.useGpVariants(e,x),R=()=>{let e={};return core.DEVICES.forEach(t=>{let s=core.getResponsiveValueByScreen(n,t);e[t]="auto"===s}),e},C=()=>{let e={};return core.DEVICES.forEach(t=>{e[t]=i?.[t]==="fill"}),e},N=()=>{let t=g?.filter(e=>{let t=V(e.name);return!t?.hide});return t?.map((n,i)=>{let j=V(n.name),h=j?j.optionType:n.optionType,w=j?j.presets[j.optionType||"rectangle_list"]?.spacing:l,v=(d||f)&&n.name?S?.[n.name]:void 0,q=system.createClass(classes.getVariantOptionGroupClass(r)),N=system.createStyle(styles.getVariantOptionGroupStyle(l,w)),T=getData.getTextVariantTitleData(e,"React",{optionName:n.name,hasPreSelected:d,selectedOptions:S,styleOptionSelected:h}),A=system.createClass(classes$1.getWrapVariantOptionClass(m,r)),G=i===t.length-1;return jsxRuntime.jsxs("div",{className:A,style:system.createStyle(styles$1.getMarginBottomStyle(c,G)),children:[system.If(p,jsxRuntime.jsx(Text.default,{...T})),jsxRuntime.jsxs("div",{className:q,style:N,children:[u&&core.OptionSpecialStyle.includes(`${h}`)&&n.values.map(e=>{let t=(!!d||!!D||!!f)&&!!n.name&&S?.[n.name]===e.label;return jsxRuntime.jsx(index.default,{variantKey:`${n.id}-${e.id}`,showAsSwatches:u,uid:y,optionName:n.name??"",optionValue:e.label??"",name:n.name,value:e,optionNumber:g.length,optionPosition:i,...s,...a,presetConfiguration:V(n.name),checked:t,typeOfOption:h||"dropdown",swatchAutoWidth:R(),optionTypo:o},e.id)}),system.If(("dropdown"===h||u&&!core.OptionSpecialStyle.includes(`${h}`))&&"radio_buttons"!==h,jsxRuntime.jsx(Dropdown.default,{...s,...a,variants:x,option:n,initValue:v,presetConfiguration:V(n.name),swatchAutoWidth:C(),optionTypo:o,optionPosition:i,optionNumber:g.length}))]})]},n.id)})},T=system.createClass(classes.getWrapDropdownClass(r)),A=getData.getDropdownGroupData(e),G=()=>jsxRuntime.jsx("div",{className:T,children:jsxRuntime.jsx(DropdownGroup.default,{...A})});if(v&&"edit"===j)return jsxRuntime.jsx(NoDataState.default,{elementType:"secondary",description:"Setup options like colors, sizes with product variant.",descriptionActions:[{text:"Add new variant",callback:q},{text:"sync data",callback:"syncProduct"}]});if(v)return;let b=system.createAttr(getAttr.getAttrs({uid:y,hasPreSelected:d})),O=system.createStyle(styles.getWrapperStyle(e)),$=system.createClass({"gp-flex gp-flex-col !gp-ml-0":!0});return jsxRuntime.jsx("div",{ref:h,...b,className:$,style:O,children:system.If(w,G(),N())})};exports.default=ProductVariants;
