PageSourceSearch

https://www.theograce.co.uk/_next/static/chunks/6246-2cb8c338310fa481.js

js theograce.co.uk collected 2026-10-08 03:35:08 UTC 135,813 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6246],{204:e=>{e.exports={SizeChart:"sizeChartWidget_SizeChart__r3NA_",Actions:"sizeChartWidget_Actions__AazYm"}},450:e=>{e.exports={PhotoUploadInterface:"interface_PhotoUploadInterface__YcU2_",ImageContainer:"interface_ImageContainer__pBde0",WarningIndicator:"interface_WarningIndicator__XkMhd",ControlsBar:"interface_ControlsBar__hgkPV",disabled:"interface_disabled__nJZPi",PositionControls:"interface_PositionControls__7urgw",LowResWarning:"interface_LowResWarning__P7Bcx",WarningTitle:"interface_WarningTitle__OhWZh",LowResWarningContent:"interface_LowResWarningContent__n7z2d",SlowUploadWarning:"interface_SlowUploadWarning__CLcBn",visible:"interface_visible__ORKGw",CancelUploadLink:"interface_CancelUploadLink__J1QIC",Footer:"interface_Footer__shHwX",ErrorMessage:"interface_ErrorMessage__nlANU"}},773:(e,t,r)=>{"use strict";r.d(t,{h:()=>l});var n=r(8402);let i={Inscriptions:"name",Initials:"np-initial",Stones:"stone","Pendant Types":"np-leaf"},a={"np-leaf":!0},l=(e,t,r)=>{var l;let{productData:o,userSelections:s,sku:c}=e,d=((e,t)=>{let r=[];return t.forEach(t=>{let n=e.categories.filter(e=>e.uid===t.category_uid)[0];if(n){let e={category_id:n.id,category_uid:n.uid,categoryName:n.cart_name,order:n.order,value:"",type:n.type,labels:n.labels};switch(n.type){case"text":e.value=t.value;break;case"selection":{var i;let r=null==(i=n.options)?void 0:i.filter(e=>!e.is_placeholder).sort((e,t)=>e.order-t.order).findIndex(e=>e.id==t.value),a=n.options&&r?n.options[r]:null;a&&(e.value=a.cart_name,e.categoryOptionId=a.id,e.optionIndex=r)}}r.push(e)}}),r.sort((e,t)=>e.order-t.order)})(o,s),u=(0,n.h)(o.categories,o.show_and_hides,s),m={};u.forEach(e=>{if(s.find(t=>t.category_uid===e.uid)){let r=d.find(t=>t.category_uid===e.uid),n=null==r?void 0:r.labels.find(e=>e.name in i);if(null!=n&&null!=r){let e=i[n.name],a=null;if("selection"===r.type){var t;a=(null!=(t=r.optionIndex)?t:0)+1}else a=r.value;m[e]||(m[e]=[]),m[e].push(String(a))}}else if("text"===e.type){let e=i.Inscriptions;m[e]||(m[e]=[]),m[e].push("")}});let p={sku:c,site:t,brand:r||""},g=null==(l=m[i.Inscriptions])?void 0:l.length;for(let[e,t]of(g>=0&&(p.count=String(g)),Object.entries(m))){let r=1;for(let n of t)a[e]?p["".concat(e)]=n:p["".concat(e).concat(r)]=n,r+=1}return p}},1158:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(37876),i=r(53487),a=r(97241),l=r.n(a);let o=e=>{let{cropper:t}=e,r=t.getState(),a=t.getTransitions();if(!(null==r?void 0:r.coordinates))return null;let{width:o,height:s,left:c,top:d}=r.coordinates;return(0,n.jsx)(i.gOm,{className:l().OverlayStencil,width:o,height:s,left:c,top:d,transitions:a})}},5137:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=async(e,t)=>{let r=document.createElement("canvas"),n=r.getContext("2d");if(!n)return console.error("Failed to get canvas context"),null;let i=new Image;i.src=e;let a=new Image;t&&(a.src=t);let l=new Promise((e,t)=>{i.onload=()=>e(),i.onerror=e=>t(e)}),o=new Promise((e,r)=>{if(!t)return e();a.onload=()=>e(),a.onerror=e=>r(e)});try{await Promise.all([l,o])}catch(e){return console.error("Error loading images:",e),null}let s=i.width,c=i.height;return r.width=s,r.height=c,n.drawImage(i,0,0,s,c),t&&n.drawImage(a,0,0,s,c),new Promise(e=>{r.toBlob(t=>e(t),"image/png")})}},6034:(e,t,r)=>{"use strict";r.d(t,{B:()=>n});let n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(t){if("EnableLowRessolution_Skipping"===t)return{mode:"ignore",showWarnings:!1};if("EnableLowRessolution_Warning"===t)return{mode:"warn",showWarnings:!0}}let r=e.map(e=>e.name);return r.includes("EnableLowRessolution_Skipping")?{mode:"ignore",showWarnings:!1}:r.includes("EnableLowRessolution_Warning")?{mode:"warn",showWarnings:!0}:{mode:"block",showWarnings:!1}}},6153:e=>{e.exports={PositionControls:"positionControls_PositionControls__H0_eO"}},7563:(e,t,r)=>{"use strict";r.d(t,{Y:()=>c});var n=r(14232),i=r(28862),a=r(72091),l=r(8402),o=r(59961);let s=()=>null,c=(e,t)=>{let r=(0,i.KH)("photo-upload-v2-ft"),c=(0,a.u)(t=>{if(!e)return"";let r=t.getItemEditorById(e);if(!r)return"";let{productData:n,userSelections:i}=r;return(0,l.h)(n.categories,n.show_and_hides,i).map(e=>e.uid).join(",")});return(0,n.useMemo)(()=>
1{if(!r||!c||!t)return[];let e=[...t.categories].sort((e,t)=>e.order-t.order),n=new Set(c.split(",")),i=e.filter(e=>n.has(e.uid)),a=(0,o.ET)(i);if(!a)return[];let l=[];for(let e of(l.push({component:s,location:"field-name",categoryUid:a.primaryCategoryUid,props:{}}),a.managedCategoryUids))l.push({component:s,location:"field-name",categoryUid:e,props:{}});return l},[r,c,t])}},8456:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(19110);let i=e=>{let{pushToDataLayer:t}=(0,n.ur)();return{openAiModalDataLayer:(r,n,i,a,l,o)=>{t({event:"".concat(r,"_interactions"),interaction_type:"open",element:r,modalId:r,item_sku_clicked:i,value:n,item_price_clicked:a,parent_sku:l,parent_price:o,source:e})},onContinueDataLayer:(r,n,i,a,l,o)=>{t({event:"".concat(r,"_interactions"),interaction_type:"click",element:"continue",modalId:r,item_sku_clicked:i,position:n,item_price_clicked:a,parent_sku:l,parent_price:o,source:e})},onBackDataLayer:(r,n,i,a,l,o)=>{t({event:"".concat(r,"_interactions"),interaction_type:"click",element:"back",modalId:r,item_sku_clicked:i,item_price_clicked:a,parent_sku:l,parent_price:o,position:n,source:e})},closeAiModalDataLayer:(r,n,i,a,l,o)=>{t({event:"".concat(r,"_interactions"),interaction_type:"close",element:r,modalId:r,item_sku_clicked:i,position:n,item_price_clicked:a,parent_sku:l,parent_price:o,source:e})},onOptionSelectedDataLayer:(r,n,i,a,l,o,s,c,d)=>{let u="other"===l?"".concat(l,"_").concat(a):a;t({event:"".concat(r,"_interactions"),interaction_type:"select",element:r,modalId:r,item_sku_clicked:o,position:n,value:u,item_price_clicked:s,parent_sku:c,parent_price:d,step_name:i,source:e})},onRegenrateDataLayer:(r,n,i,a,l)=>{t({event:"".concat(r,"_interactions"),interaction_type:"regenerate",element:r,modalId:r,item_sku_clicked:n,item_price_clicked:i,parent_sku:a,parent_price:l,source:e})},onSaveMessageDataLayer:(r,n,i,a,l,o)=>{let s=n.map(e=>"question".concat(e.id,":").concat(void 0===e.response?"":e.response));t({event:"".concat(r,"_interactions"),interaction_type:"submit",element:r,modalId:r,item_sku_clicked:i,value:s,item_price_clicked:a,parent_sku:l,parent_price:o,source:e})},onErrorStepDataLayer:(r,n,i)=>{t({event:"".concat(r,"_interactions"),interaction_type:"error",element:"gift_note_generation_error",modalId:r,item_sku_default:null!=i?i:n,item_sku_clicked:n,source:e})},onTextAreaFocused:(r,n,i,a,l)=>{t({event:"".concat(r,"_interactions"),interaction_type:"click",element:r,modalId:r,parent_sku:a,parent_price:l,source:e,item_sku_clicked:n,item_price_clicked:i})},onTextFieldFocused:(r,n,i,a,l,o,s)=>{t({event:"".concat(r,"_interactions"),interaction_type:"put_cursor",element:"question_text_field",modalId:r,position:i,step_name:n,item_sku_clicked:a,item_price_clicked:l,parent_sku:o,parent_price:s,source:e})},onGenerateClicked:(r,n,i,a,l)=>{t({event:"".concat(r,"_interactions"),interaction_type:"click",element:"generate",modalId:r,item_sku_clicked:n,item_price_clicked:i,parent_sku:a,parent_price:l,source:e})}}}},9443:(e,t,r)=>{"use strict";r.d(t,{K:()=>o});var n=r(26635),i=r(67663),a=r(773),l=r(64387);let o=()=>{let{data:e}=(0,n.Ay)(e=>e.brand),{data:t}=(0,n.Ay)(e=>e.country),{data:r}=(0,n.rU)(e=>e.siteId),o=(0,l.g)(e=>e.setPreview),s=(0,l.g)(e=>e.removePreview);return n=>{let l=(0,i.CP)(r);n.forEach(r=>{let{key:n,sku:i,catalogProduct:c,userSelections:d}=r,u=(e=>{let{catalogProduct:t,userSelections:r,sku:n,country:i,brand:l,cdn:o}=e,s=(0,a.h)({productData:t,userSelections:r,sku:n},i,l),c=Object.keys(s).some(e=>"sku"!==e&&"site"!==e&&"brand"!==e),d=new URLSearchParams({...s,format:"inline"}).toString();return c?"".concat(o,"/np/v1/generate-preview-resp?").concat(d):null})({catalogProduct:c,userSelections:d,sku:i,country:t,brand:e,cdn:l});u?o(n,u):s(n)})}}},9889:e=>{e.exports={PhotoPendantInterface:"interface_PhotoPendantInterface__uWfJa"}},10947:(e,t,r)=>{"use strict";r.d(t,{$S:()=>s,I7:()=>i,Jg:()=>o,MF:()=>n,_x:()=>a,wr:()=>l});let n="multiple_photos_ux",i="SimplifiedImageUpload",a=e=>{let t=e.value.trim();return e.required&&!t?e.requiredErrorText||"":e.minLength>0&&t.length<e.minLength?e.minLengthErrorText||"":null},l=e=>e.every(e=>null===a(e)),o=(e,t,r)=>e.map((e,n)=>n===t?{...e,...r}:e),s={selectedImageUrl:null,originalImageUrl:null,confirmedImageUrl:null,submittedImageUrl:null,cropperState:null,confirmedCropperState:null,uploadStatus:"idle",uploadProgress:0,pendingUpload:!1,lowResWarnings:[]}},11838:e=>{e.exports={InputWrapper:"mapCanvasField_InputWrapper__r4GIw",AutocompleteField:"mapCanvasField_AutocompleteField__zckw_",Edit:"mapCanvasField_Edit__MahaY",CloseButton:"mapCanvasField_CloseButton__IW6Jb"}},14673:e=>{e.exports={SliderWrapper:"slider_SliderWrapper__Vv90V",Slider:"slider_Slider__SxNfu"}},16494:(e,t,r)=>{"use strict";r.d(t,{P:()=>l,u:()=>o});var n=r(98653),i=r(99423);let a="api/viewModels/product/image-upload",l=async(e,t,r)=>{let i=new FormData,l="image/jpeg"===e.type?"image.jpg":"image.png";i.append("image",e,l);let o=await (0,n.LO)({pathname:a,body:i,siteData:t,signal:r});if(!o.Url)throw Error("Failed to upload image to server");return o},o=e=>{let{blob:t,siteData:r,onProgress:n,signal:l}=e;return new Promise((e,o)=>{if(null==l?void 0:l.aborted)return void o(new DOMException("Upload cancelled by user","AbortError"));let s=new XMLHttpRequest,c=(e=>{let{country:t,brand:r}=e,n=(0,i.go)(r,t)?"/".concat(t):"";return"".concat(n,"/").concat(a)})(r),d=new FormData,u="image/jpeg"===t.type?"image.jpg":"image.png";d.append("image",t,u),d.append("currency",r.currency),d.append("userCountry",r.userCountry),d.append("targetL
1ocale",r.targetLocale),s.upload.onprogress=e=>{e.lengthComputable&&n(Math.round(e.loaded/e.total*100))},s.onload=()=>{if(s.status>=200&&s.status<300)try{let t=JSON.parse(s.responseText);if(!t.Url)return void o(Error("Failed to upload image to server"));e({Url:t.Url,Id:t.Id})}catch(e){o(Error("Invalid response from upload endpoint"))}else o(Error("Upload failed: ".concat(s.status," ").concat(s.statusText)))},s.onerror=()=>o(Error("Network error during upload")),s.onabort=()=>o(new DOMException("Upload cancelled by user","AbortError")),l&&l.addEventListener("abort",()=>s.abort(),{once:!0}),s.open("POST",c),s.send(d)})}},18093:e=>{e.exports={Header:"lowResWarningPanel_Header__lkxuX",Content:"lowResWarningPanel_Content__wzysj",ReplaceButton:"lowResWarningPanel_ReplaceButton__Z_gbh"}},19672:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=e=>e?"shopping_cart":"product_page"},26667:(e,t,r)=>{"use strict";r.d(t,{K:()=>tp});var n=r(37876),i=r(28862),a=r(72091),l=r(8402),o=r(60733),s=r(74883),c=r(59961),d=r(32649),u=r(14232),m=r(15039),p=r.n(m),g=r(25415),h=r(86113),v=r(35230),f=r.n(v);let _=e=>{let{category:t,instanceId:r,onInputBlur:i,onInputChange:l,onInputFocus:s,inputMaxLength:c,value:d}=e,{text_placeholder:m,text_is_multiline:v,uid:_,id:x,name:b}=t,S=(0,a.u)(e=>e.updateTextOptionSelection),[w,y]=(0,u.useState)(!!d),U=(0,u.useRef)(!1),C=["checkbox-text",r,_].filter(Boolean).join("-");(0,u.useEffect)(()=>{!U.current&&d&&y(!0)},[d]);let j={placeholder:m||"",onChange:l,onFocus:s,onBlur:i,maxLength:null!=c?c:v?200:70,value:d};return(0,n.jsxs)("div",{className:p()(f().CheckboxText,"checkbox-text-".concat(_)),children:[(0,n.jsx)(g.A,{id:C,label:b,defaultChecked:w,onChange:e=>{let{checked:t}=e.target;U.current=!0,y(t),t||S(null!=r?r:"",x,_,"")}}),w&&(v?(0,n.jsx)(h.A,{...j,className:p()(f().TextArea,"textArea-".concat(_))}):(0,n.jsx)(o.A,{...j,className:"textField-".concat(_)}))]})};var x=r(43851),b=r(15221),S=r(73459),w=r(18909),y=r(59023),U=r(32846),C=r.n(U);window.__activeImageUrls=new Set;let j=e=>{var t;let r=URL.createObjectURL(e);return null==(t=window.__activeImageUrls)||t.add(r),{url:r,isObjectUrl:!0,cleanup:()=>{var e;URL.revokeObjectURL(r),null==(e=window.__activeImageUrls)||e.delete(r)}}},E=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,n="string"==typeof e?e:e.url;if(n.startsWith("data:"))return await new Promise((e,i)=>{let a=new Image;a.onload=()=>{let n=document.createElement("canvas"),l=n.getContext("2d");if(!l)return void i(Error("Could not get canvas context"));n.width=t,n.height=r;let o=Math.min(t/a.width,r/a.height),s=a.width*o,c=a.height*o;l.drawImage(a,(t-s)/2,(r-c)/2,s,c),e(n.toDataURL("image/png"))},a.onerror=i,a.src=n});return new Promise((e,i)=>{let a=new Image;a.onload=async()=>{try{let n=document.createElement("canvas"),l=n.getContext("2d");if(!l)return void i(Error("Could not get canvas context"));let o=Math.min(t/a.width,r/a.height),s=a.width*o,c=a.height*o;n.width=t,n.height=r,l.drawImage(a,(t-s)/2,(r-c)/2,s,c),e(n.toDataURL("image/png"))}catch(e){i(e)}},a.onerror=i,a.src=n})},I=async e=>{if(!e.type.includes("jpeg")&&!e.type.includes("jpg"))return j(e);try{let t=await new Promise((t,r)=>{let n=new FileReader;n.readAsDataURL(e),n.onload=()=>{let e=n.result;e&&e.length>0?t(e):r(Error("Failed to read file: empty result"))},n.onerror=()=>r(Error("Failed to read file"))}),r=await (e=>{try{if(!(e.startsWith("data:image/jpeg")||e.startsWith("data:image/jpg")))return Promise.resolve(e);let t=C().load(e)["0th"][C().ImageIFD.Orientation];t||(t=1);let r=C().remove(e);return((e,t)=>new Promise((r,n)=>{let i=new Image;i.src=e,i.onload=()=>{let e=document.createElement("canvas"),a=e.getContext("2d"),l=i.width,o=i.height;if(t>4&&t<9?(e.width=o,e.height=l):(e.width=l,e.height=o),!a)return n(Error("Reset Orientation context was not created"));switch(t){case 2:a.transform(-1,0,0,1,l,0);break;case 3:a.transform(-1,0,0,-1,l,o);break;case 4:a.transform(1,0,0,-1,0,o);break;case 5:a.transform(0,1,1,0,0,0);break;case 6:a.transform(0,1,-1,0,o,0);break;case 7:a.transform(0,-1,-1,0,o,l);break;case 8:a.transform(0,-1,1,0,0,l)}return a.drawImage(i,0,0),r(e.toDataURL())}}))(r,t)}catch(t){return console.error("Error while removing metadata",t),Promise.resolve(e)}})(t),n=await fetch(r),i=await n.blob();return j(i)}catch(t){return console.warn("Failed to clean metadata, using original file:",t),j(e)}},A=async(e,t,r)=>{let n=document.createElement("canvas"),i=n.getContext("2d");if(!i)return console.error("Failed to get canvas context"),null;let a=new Image;a.src=e;let l=new Image;r&&(l.src=null!=r?r:null);let o=new Promise((e,t)=>
1{a.onload=()=>e(),a.onerror=e=>t(e)}),s=new Promise((e,t)=>{if(!r)return e();l.onload=()=>e(),l.onerror=e=>t(e)});try{await Promise.all([o,s])}catch(e){return console.error("Error loading images:",e),null}let c=a.width,d=a.height;if(n.width=c,n.height=d,i.drawImage(a,0,0,c,d),"none"!==t){let e=i.getImageData(0,0,c,d),r=e.data;for(let e=0;e<r.length;e+=4){let[n,i,a]=[r[e],r[e+1],r[e+2]];switch(t){case"grayscale(100%)":let l=.3*n+.59*i+.11*a;r[e]=r[e+1]=r[e+2]=l;break;case"sepia(100%)":r[e]=.393*n+.769*i+.189*a,r[e+1]=.349*n+.686*i+.168*a,r[e+2]=.272*n+.534*i+.131*a;break;case"contrast(1.1) saturate(1.1) brightness(1.07)":r[e]=Math.min(255,1.1*n*1.07),r[e+1]=Math.min(255,1.1*i*1.07),r[e+2]=Math.min(255,1.1*a*1.07);break;case"sepia(.3) brightness(1.1) saturate(1.2) contrast(1.05)":let o=.393*n+.769*i+.189*a,s=.349*n+.686*i+.168*a,c=.272*n+.534*i+.131*a;r[e]=Math.min(255,1.2*o*1.05),r[e+1]=Math.min(255,1.2*s*1.05),r[e+2]=Math.min(255,1.2*c*1.05)}}i.putImageData(e,0,0)}return r&&i.drawImage(l,0,0,c,d),n.toDataURL("image/png")};var R=r(98653);let{StoreProvider:L,useStoreContext:P,useStoreApi:k}=(0,y.B)((e,t)=>({initialized:!1,siteData:null,isSimple:!1,shouldUseSimpleUpload:!1,templateUrl:null,usageId:"",isEditMode:!1,label:null,initialize:(t,r,n,i,a,l)=>{var o,s;let c=n.labels.map(e=>{let{name:t}=e;return t}).includes("SimplePhoto"),d=n.labels.map(e=>{let{name:t}=e;return t}).includes("SimplifiedImageUpload"),u=null!=(s=null==(o=n.customization_template)?void 0:o.url)?s:null;e({initialized:!0,siteData:t,usageId:r,isSimple:c,templateUrl:u,shouldUseSimpleUpload:(null===i||!0===i)&&d,isEditMode:a,label:c?"SimplePhoto":d?"SimplifiedImageUpload":null,submittedImageUrl:l},!1,"initialize")},...((e,t)=>({overlay:null,fetchOverlayLoading:!1,fetchOverlayError:!1,fetchOverlay:async()=>{let{isSimple:r,templateUrl:n,overlay:i}=t();if(n&&!r){e({fetchOverlayLoading:!0},void 0,"fetch overlay -> start");try{let t=await fetch(n,{credentials:"omit"});if(!t.ok)throw Error("Failed to fetch overlay");let r=await t.blob();(null==i?void 0:i.cleanup)&&i.cleanup();let a=j(r);e({overlay:a},!1,"fetch overlay -> success")}catch(t){e({fetchOverlayError:!0},void 0,"fetch overlay -> failed")}finally{e({fetchOverlayLoading:!1},void 0,"fetch overlay -> end")}}}}))(e,t),...((e,t)=>({selectedImageLoading:!1,selectedImageError:!1,selectedImageUrl:null,selectImage:async r=>{var n,i;let{overlay:a,shouldUseSimpleUpload:l,submitImage:o,fetchOverlay:s,selectedImageUrl:c,confirmedImageUrl:d}=t();if(e({selectedImageLoading:!0,canvasData:null,filter:"",cropperData:null},void 0,"select image -> start"),l){e({isPopupOpen:!1},void 0,"select image -> simple upload start");try{let t=await I(r),i=await E(t,1e3,1e3);e({selectedImageLoading:!1,selectedImageUrl:t},void 0,"select image -> simple upload success"),await o(i,null,null),null==(n=t.cleanup)||n.call(t)}catch(t){console.error("Failed to process and submit image:",t),e({selectedImageError:!0,selectedImageLoading:!1},void 0,"select image -> simple upload failed")}}else try{a||await s();let t=await I(r);
1d!==c&&c!==d&&(null==c||null==(i=c.cleanup)||i.call(c)),e({isPopupOpen:!0,selectedImageUrl:t},void 0,"select image -> success")}catch(t){console.error("Failed to select and process image:",t),e({selectedImageError:!0},void 0,"select image -> failed")}finally{e({selectedImageLoading:!1},void 0,"select image -> end")}}}))(e,t),...((e,t)=>({isPopupOpen:!1,filter:"",cropperData:null,canvasData:null,confirmedFilter:"",confirmedCropperData:null,confirmedCanvasData:null,openPopup:()=>e({isPopupOpen:!0},void 0,"popup -> open"),closePopup:()=>{e({isPopupOpen:!1},void 0,"popup -> close"),setTimeout(()=>{let{confirmedImageUrl:r,confirmedFilter:n,confirmedCropperData:i,confirmedCanvasData:a,selectedImageUrl:l}=t();if(r&&l!==r){var o;null==l||null==(o=l.cleanup)||o.call(l),e({selectedImageUrl:r},void 0,"Close popup -> Revert selectedImageUrl to confirmedImageUrl")}e({filter:n,cropperData:i,canvasData:a},void 0,"Close popup -> revert to confirmed state")},500)},setFilter:t=>e({filter:t},void 0,"interface -> filter select")}))(e,t),...((e,t)=>({confirmedImageUrl:null,submitImageLoading:!1,submitImageError:null,submittedImageUrl:null,submitImage:async(r,n,i)=>{let{siteData:a,isSimple:l,overlay:o,filter:s,selectedImageUrl:c,confirmedImageUrl:d}=t();try{if(!a)throw Error("Site data is required");e({submitImageLoading:!0,submitImageError:null},void 0,"submit image -> start");let t=o&&!l?await E(o,1e3,1e3):null,m=await A(r,s,t);if(!m)throw Error("Failed to blend images");let p=await (0,R.LO)({pathname:"api/viewmodels/product/image",redirect:"error",body:{DataUrl:m},siteData:a});if(!p.Url)throw Error("Failed to upload image to server");if(d&&c!==d){var u;e({},void 0,"submit image -> success, cleanup confirmedImageUrl"),null==(u=d.cleanup)||u.call(d)}e({isPopupOpen:!1,confirmedImageUrl:c,submittedImageUrl:p.Url,canvasData:n,cropperData:i,submitImageLoading:!1,confirmedFilter:s,confirmedCropperData:i,confirmedCanvasData:n},void 0,"submit image -> success")}catch(t){console.error("Failed to submit image:",t),e({submitImageError:t instanceof Error?t.message:"Unknown error"},void 0,"submit image -> failed")}finally{e({submitImageLoading:!1},void 0,"submit image -> end")}}}))(e,t)}),"photo_pendant");var N=r(59199),T=r.n(N),z=r(6936),B=r(619);let M=e=>new Promise(t=>{if(!e)return void t({isValid:!1,errorReason:"noFile",image:null});if(!e.type.startsWith("image"))return void t({isValid:!1,errorReason:"wrongFileFormat",image:null});if(e.size/1024/1024>10)return void t({isValid:!1,errorReason:"imageIsTooBig",image:null});let r=new Image,n=URL.createObjectURL(e);r.onload=()=>{r.width<600||r.height<600?t({isValid:!1,errorReason:"lowResolution",image:null}):t({isValid:!0,errorReason:null,image:r}),URL.revokeObjectURL(n)},r.onerror=()=>{t({isValid:!1,errorReason:"imageLoadError",image:null}),URL.revokeObjectURL(n)},r.src=n});var F=r(82570),W=r.n(F),O=r(12632),D=r(68200),K=r(19110);let V=()=>{let{pushToDataLayer:e}=(0,K.ur)(),t=k(),r=function(r){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{initialized:i,isEditMode:a,label:l}=t.getState();i&&e({event:"photo_upload",action:r,label:l,source:a?"cart":"PDP",...n})};return{triggerWidgetEditEvent:()=>r("edit_photo"),triggerWidgetAddOrReplaceEvent:()=>{let{isEditMode:e}=t.getState();return r(e?"replace_photo":"add_photo")},triggerFileValidationEvent:(e,t)=>r("file_validation",{status:e,details:t}),triggerInterfaceCloseEvent:e=>r("close_photo_editor",{details:e}),triggerInterfaceEditEvent:e=>r("edit_action_on_photo_from_photo_editor",{details:e}),triggerInterfaceReplaceClickEvent:()=>r("change_photo_from_photo_editor"),triggerInterfaceConfirmEvent:()=>r("confirm_design_from_photo_editor"),triggerSubmitImageEvent:(e,t)=>r("file_upload",{status:e,details:t})}};var G=r(88771);
1let Z={lowResolution:"photoPendant.lowResolution",wrongFileFormat:"photoPendant.wrongFileFormat",imageIsTooBig:"photoPendant.imageIsTooBig"},q=()=>{let{t:e}=(0,G.B)("itemEditor"),{triggerWidgetAddOrReplaceEvent:t,triggerWidgetEditEvent:r,triggerFileValidationEvent:i}=V(),a=P(e=>e.isPopupOpen),l=P(e=>e.selectedImageLoading),o=P(e=>e.shouldUseSimpleUpload),s=P(e=>e.submitImageLoading),c=P(e=>e.isEditMode),d=P(e=>e.filter),m=P(e=>e.canvasData),g=P(e=>e.selectedImageUrl),h=P(e=>e.openPopup),v=P(e=>e.selectImage),f=(0,u.useRef)(null),[_,x]=(0,u.useState)(null);(0,u.useEffect)(()=>x(null),[d,m]);let b=(0,u.useCallback)(async t=>{t.stopPropagation(),t.preventDefault(),x(null);let r=(e=>"dataTransfer"in e?e.dataTransfer.files[0]:e.target.files?e.target.files[0]:null)(t),{isValid:n,errorReason:a}=await M(r);if(!r||!n){a&&a in Z&&(x(e(Z[a])),i("failed",a));return}i("passed"),v(r)},[e,v]),S=(0,u.useCallback)(e=>{if(o){t(),f&&"current"in f&&f.current&&f.current.click();return}g&&!a?(e.preventDefault(),h(),r()):(t(),f&&"current"in f&&f.current&&f.current.click())},[g,a,h,f,o]),w=(0,u.useMemo)(()=>{let t;switch(!0){case l||s:return(0,n.jsx)(B.A,{});case!!g:t=o||!g?e("photoPendant.changePhoto"):e("photoPendant.editPhoto");break;default:t=c?e("photoPendant.changePhoto"):e("photoPendant.addPhoto")}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(D.A,{name:"camera"}),(0,n.jsx)("span",{children:t})]})},[l,g,e,s,c,o]);return(0,n.jsxs)("div",{className:p()(W().UploadButton,"photo-pendant-upload-button"),children:[(0,n.jsx)("input",{type:"file",ref:f,accept:"image/*",onChange:b,style:{display:"none"}}),(0,n.jsx)(O.A,{variant:"preview",onClick:S,disabled:l||s,children:w}),_&&(0,n.jsx)(z.A,{className:W().ErrorMessage,variant:"caption1",children:_})]})};var H=r(54587),X=r.n(H),Q=r(61252);let Y=()=>{let e=P(e=>e.isSimple),t=P(e=>e.submittedImageUrl),r=P(e=>e.submitImageLoading),[i,a]=(0,u.useState)(!1);return(0,n.jsxs)("div",{className:p()(T().PhotoPendantWidget,{[T().EditMode]:t}),children:[(0,n.jsx)(q,{}),(r||i||t)&&(0,n.jsxs)("div",{className:T().PreviewContainer,children:[t&&(0,n.jsx)(X(),{className:p()(T().Preview,{[T().IsSimple]:e}),src:t,width:150,height:150,alt:"",onLoadStart:()=>a(!0),onLoad:()=>a(!1),onError:()=>a(!1)}),(r||i)&&(0,n.jsx)("div",{className:T().Loader,children:(0,n.jsx)(Q.A,{})})]})]})};var J=r(852),$=r(2842),ee=r(81731);r(84292);var et=r(81849),er=r.n(et);let en=e=>{let{cropper:t}=e,r=P(e=>e.overlay),i=P(e=>e.canvasData),a=P(e=>e.cropperData),l=P(e=>e.isSimple),o=P(e=>e.filter),s=P(e=>e.selectedImageUrl),[c,d]=(0,u.useState)(!l),[m,g]=(0,u.useState)(!1),h=(0,u.useRef)(null);return(0,u.useEffect)(()=>{m&&t.current&&t.current.cropper&&(i&&a?(t.current.cropper.setData(a),t.current.cropper.setCanvasData(i)):t.current.cropper.reset(),g(!1))},[m,i,a]),(0,u.useEffect)(()=>()=>{[h.current].forEach(e=>{(null==e?void 0:e.isObjectUrl)&&e.cleanup&&e.cleanup()})},[]),(0,n.jsxs)("div",{className:p()(er().PhotoCropper,"photo-cropper"),children:[(0,n.jsxs)("div",{className:er().Container,children:[c&&(0,n.jsx)(ee.A,{}),(null==s?void 0:s.url)&&(0,n.jsx)($.A,{className:er().Cropper,ref:t,responsive:!0,style:o?{filter:o}:{},src:null==s?void 0:s.url,minCropBoxWidth:400,minCropBoxHeight:400,dragMode:"move",autoCropArea:.1,viewMode:0,autoCrop:!0,center:!1,restore:!1,highlight:!1,cropBoxMovable:!1,cropBoxResizable:!1,toggleDragModeOnDblclick:!1,guides:!1,ready:()=>{d(!1),m||g(!0)}})]}),!l&&r&&(0,n.jsx)("img",{src:r.url,alt:"",className:er().Template,crossOrigin:"anonymous",onLoad:()=>d(!1)})]})};var ei=r(6153),ea=r.n(ei),el=r(59007),eo=r.n(el),es=r(18847),ec=r.n(es);let ed=[{method:"move",option:[-10,0],title:"Move Left",icon:()=>(0,n.jsx)(D.A,{name:"arrowRounded",className:eo().left})},{method:"move",option:[10,0],title:"Move Right",icon:()=>(0,n.jsx)(D.A,{name:"arrowRounded",className:eo().right})},{method:"move",option:[0,10],title:"Move Down",icon:()=>(0,n.jsx)(D.A,{name:"arrowRounded",className:eo().down})},{method:"move",option:[0,-10],title:"Move Up",icon:()=>(0,n.jsx)(D.A,{name:"arrowRounded",className:eo().up})},{method:"zoom",option:.1,title:"Zoom In",icon:ec()(()=>r.e(6047).then(r.bind(r,16047)),{loadableGenerated:{webpack:()=>[16047]}})},{method:"zoom",option:-.1,title:"Zoom Out",icon:ec()(()=>r.e(3373).then(r.bind(r,93373)),{loadableGenerated:{webpack:()=>[93373]}})},{method:"rotate",option:-15,title:"Rotate Left",icon:ec()(()=>r.e(1189).then(r.bind(r,41189)),{loadableGenerated:{webpack:()=>[41189]}})},{method:"rotate",option:15,title:"Rotate Right",icon:ec()(()=>r.e(392).then(r.bind(r,80392)),{loadableGenerated:{webpack:()=>[80392]}})}],eu=()=>null,em=e=>{let{changed:t,className:r}=e;return(0,n.jsx)("div",{className:p()(ea().PositionControls,r),children:ed.map(e=>{let{method:r,option:i,title:a}=e,l="image"in e?{backgroundImage:"url('".concat(e.image,"')")}:void 0,o="icon"in e?e.icon:eu;return(0,n.jsx)("button",{type:"button","data-type":"location","data-method":r,"data-option":i,title:a,onClick:()=>t(r,i,a),style:l,children:(0,n.jsx)(o,{})},a)})})};var ep=r(9889),eg=r.n(ep),eh=r(85329),ev=r.n(eh);let ef=()=>{let{t:e}=(0,G.B)("itemEditor"),t=(0,u.useRef)(null),{triggerInterfaceReplaceClickEvent:r,triggerFileValidationEvent:i}=V(),a=P(e=>e.submitImageLoading),l=P(e=>e.selectImage),[o,s]=(0,u.useState)(!1),c=(0,u.useCallback)(async e=>{var t;let r=null==(t=e.target.files)?void 0:t[0];if(!r)return;let{isValid:n,errorReason:a}=await M(r);if(!n){s(!0),i("failed",a);return}l(r),s(!1),i("passed")},[l]),d=(0,u.useCallback)(()=>{r(),requestAnimationFrame(()=>{var e;null==(e=t.current)||e.click()})},[]);return(0,n.jsxs)("div",{className:ev().ReplaceButton,children:[(0,n.jsx)("input",{type:"file",ref:t,accept:"image/*",onChange:c,onClick:e=>e.stopPropagation(),style:{display:"none"}}),(0,n.jsxs)(O.A,{variant:"upsell-primary",small:!0,onClick:d,disabled:a,children:[(0,n.jsx)(D.A,{name:"camera"}),(0,n.jsx)("span",{children:e("photoPendant.changePhoto")}),o&&(0,n.jsx)(D.A,{name:"warning"})]})]})},e_=()=>{let{t:e}=(0,G.B)("itemEditor"),t=(0,u.useRef)(null),{triggerInterfaceCloseEvent:r,triggerInterfaceEditEvent:i,triggerInterfaceConfirmEvent:a}=V(),l=P(e=>e.isSimple),o=P(e=>e.shouldUseSimpleUpload),s=P(e=>e.isPopupOpen),c=P(e=>e.closePopup),d=P(e=>e.submitImageLoading),m=P(e=>e.submitImageError),g=P(e=>e.submitImage);return o?null:(0,n.jsx)(J.A,{onClose:()=>{d||(r("X"),c())},onBackdropClick:()=>{d||(r("dismiss"),c())}
1,visible:s,slideFrom:{mobile:"block-end",desktop:"center"},header:e("photoPendant.editPhoto"),unmountAfterClose:!0,closeDisabled:d,children:(0,n.jsxs)("div",{className:eg().PhotoPendantInterface,children:[(0,n.jsx)(en,{cropper:t}),(0,n.jsx)(ef,{}),(0,n.jsx)(em,{changed:(e,r,n)=>{t.current&&("zoom"===e&&"number"==typeof r&&t.current.cropper.zoom(r),"rotate"===e&&"number"==typeof r&&t.current.cropper.rotate(r),"move"===e&&"number"!=typeof r&&t.current.cropper.move(r[0],r[1]),i(n))},className:p()(eg().PositionControls,l&&eg().isSimple)}),(0,n.jsxs)(O.A,{variant:"primary",onClick:()=>{if(!t.current)return;let e=t.current.cropper.getCroppedCanvas({width:1e3,height:1e3}).toDataURL();if(e)g(e,t.current.cropper.getCanvasData(),t.current.cropper.getData()),a()},className:eg().ConfirmButton,disabled:d,children:[(0,n.jsx)("span",{children:e("photoPendant.confirmDesign")}),d&&(0,n.jsx)(B.A,{})]}),m&&(0,n.jsx)(z.A,{className:eg().ErrorMessage,variant:"caption1",tag:"small",children:e("photoPendant.previewLoadingError")})]})})},ex=e=>{let{instanceKey:t,category:{id:r,uid:n}}=e,i=P(e=>e.submittedImageUrl),l=(0,a.u)(e=>e.updateUserSelectionByInstanceId);return(0,u.useEffect)(()=>{i&&l(t,{category_id:r,category_uid:n,value:i})},[i,r,n,t,l]),null};var eb=r(80998);let eS=e=>{switch((0,i.Br)(e,"disabled")){case"disabled":default:return null;case"true":return!0;case"false":return!1}};var ew=r(26635);let ey=e=>{let{usageId:t,category:r,isEditMode:i,initialImageUrl:a,...l}=e,{data:o}=(0,ew.Ay)(e=>e),s=P(e=>e.initialize),c=P(e=>e.submitImageError),d=P(e=>e.submittedImageUrl),m=P(e=>e.initialized),p=eS("is-photo-upload-popup-enabled-ft"),{getState:g}=k(),{triggerSubmitImageEvent:h}=V();return(0,u.useEffect)(()=>{s(o,t,r,p,i,a)},[o,t,r,p,a,i]),(0,u.useEffect)(()=>()=>{var e,t,r;let{selectedImageUrl:n,confirmedImageUrl:i,overlay:a}=g();null==n||null==(e=n.cleanup)||e.call(n),null==i||null==(t=i.cleanup)||t.call(i),null==a||null==(r=a.cleanup)||r.call(a)},[]),(0,u.useEffect)(()=>{m&&d!==a&&(d?h("passed"):h("failed",c))},[d,c,a,m]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Y,{}),(0,n.jsx)(e_,{}),(0,n.jsx)(ex,{category:r,...l})]})},eU=(0,u.memo)(e=>{let{category:{uid:t},instanceKey:r}=e,i=(0,eb.A)(r,t),l=r.toString().endsWith("edit"),o=(0,a.u)(e=>e.getFieldValueById)(r,t);return i?(0,n.jsx)(L,{id:i,children:(0,n.jsx)(ey,{...e,usageId:i,isEditMode:l,initialImageUrl:o||null})}):null},(e,t)=>e.instanceKey===t.instanceKey&&e.category.uid===t.category.uid),eC="photo-upload-v2";function ej(){try{let e=localStorage.getItem(eC);if(!e)return{};let t=JSON.parse(e);if(!t||"object"!=typeof t)return{};return t}catch(e){return localStorage.removeItem(eC),{}}}function eE(e){try{return localStorage.setItem(eC,JSON.stringify(e)),!0}catch(e){return console.warn("Failed to persist photo states:",e),!1}}function eI(e){let t=ej()[e.toString()];return t&&t&&"object"==typeof t&&"string"==typeof t.submittedImageUrl&&"boolean"==typeof t.hasLowResWarning&&Array.isArray(t.lowResWarnings)&&"number"==typeof t.timestamp&&!t.submittedImageUrl.toString().startsWith("blob:")&&(void 0===t.originalImageUrl||"string"==typeof t.originalImageUrl&&!t.originalImageUrl.toString().startsWith("blob:"))?Date.now()-t.timestamp>6048e5?(eR(e),null):t:null}function eA(e,t){if(t.submittedImageUrl.startsWith("blob:")||t.originalImageUrl.startsWith("blob:"))return console.warn("Attempted to persist blob URL, skipping"),!1;let r=ej(),n={...t,timestamp:Date.now()};r[e.toString()]=n,r[t.submittedImageUrl]=n;let i=Object.entries(r);if(i.length>20){i.sort((e,t)=>e[1].timestamp-t[1].timestamp);let e=i[0][0];delete r[e]}return eE(r)}function eR(e){let t=ej();delete t[e.toString()],eE(t)}var eL=r(6034),eP=r(51962),ek=r(52408),eN=r(16494),eT=r(63276),ez=r(97753),eB=r(50534),eM=r(5137);let{StoreProvider:eF,useStoreContext:eW,useStoreApi:eO}=(0,y.B)((e,t)=>({initialized:!1,siteData:null,isSimple:!1,shouldUseSimpleUpload:!1,templateUrl:null,usageId:"",categoryId:null,categoryUid:null,isEditMode:!1,label:null,lowResConfig:{mode:"block",showWarnings:!1},persistenceEnabled:!1,initialize:(r,n,i,a,l,o,s,c)=>{var d,u,m;let p=t();if(p.initialized&&p.categoryId===i.id&&p.submittedImageUrl)return;s&&!p.initialized&&function(){let e=ej(),t=Date.now(),r=!1;for(let[n,i]of Object.entries(e))t-i.timestamp>6048e5&&(delete e[n],r=!0);r&&eE(e)}();let g=i.labels.map(e=>{let{name:t}=e;return t}).includes("SimplePhoto"),h=i.labels.map(e=>{let{name:t}=e;return t}).includes("SimplifiedImageUpload"),v=null!=(u=null==(d=i.customization_template)?void 0:d.url)?u:null,f=(0,eL.B)(i.labels,c),_=o,x=!1,b=[],S=!1,w=null,y=null,U=null;if(s&&!p.initialized){let e=null!=(m=i.id?eI(i.id):null)?m:o?eI(o):null;if(e&&(!o||o===e.submittedImageUrl)){x=!0,b=e.lowResWarnings,S=e.hasLowResWarning;let t=e.originalImageUrl===e.submittedImageUrl,r=e.originalImageUrl||e.submittedImageUrl;U=t?null:r,w=t?null:e.cropperState,y={url:r,isObjectUrl:!1},o||(_=e.submittedImageUrl)}}let C={initialized:!0,siteData:r,usageId:n,categoryId:i.id,categoryUid:i.uid,isSimple:g,templateUrl:v,shouldUseSimpleUpload:null===a?h:!0===a||h,isEditMode:l,label:g?"SimplePhoto":h?"SimplifiedImageUpload":null,submittedImageUrl:_,lowResConfig:f,persistenceEnabled:s};x&&(C.lowResWarnings=b,C.hasLowResWarning=S,C.confirmedCropperState=w,C.cropperState=w,C.selectedImageUrl=y,C.confirmedImageUrl=y,C.originalImageUrl=U),e(C,!1,"initialize")},...((e,t)=>
1({overlay:null,fetchOverlayLoading:!1,fetchOverlayError:!1,fetchOverlay:async()=>{let{isSimple:r,templateUrl:n,overlay:i}=t();if(n&&!r){e({fetchOverlayLoading:!0},void 0,"fetch overlay -> start");try{let t=await fetch(n,{credentials:"omit"});if(!t.ok)throw Error("Failed to fetch overlay");let r=await t.blob();(null==i?void 0:i.cleanup)&&i.cleanup();let a=(0,eP.hN)(r);e({overlay:a},!1,"fetch overlay -> success")}catch(t){e({fetchOverlayError:!0},void 0,"fetch overlay -> failed")}finally{e({fetchOverlayLoading:!1},void 0,"fetch overlay -> end")}}}}))(e,t),...((e,t)=>{let r=0;return{selectedImageLoading:!1,selectedImageError:!1,selectedImageUrl:null,originalImageUrl:null,lowResWarnings:[],hasLowResWarning:!1,fileValidationError:null,setFileValidationError:t=>{e({fileValidationError:t},void 0,"set file validation error")},setSelectedImageLoading:t=>{e({selectedImageLoading:t},void 0,"set selected image loading")},clearLowResWarnings:()=>{e({lowResWarnings:[],hasLowResWarning:!1},void 0,"clear low res warnings")},removeImage:()=>{var r,n;let{selectedImageUrl:i,confirmedImageUrl:a,categoryId:l,persistenceEnabled:o,usageId:s}=t();if(i&&!i.isObjectUrl&&(0,eB.vt)(i.url),null==i||null==(r=i.cleanup)||r.call(i),a&&a!==i&&(null==(n=a.cleanup)||n.call(a)),o){let{submittedImageUrl:e}=t();l&&eR(l),e&&eR(e)}(0,eT.Rq)(s),e({selectedImageUrl:null,originalImageUrl:null,confirmedImageUrl:null,submittedImageUrl:null,lowResWarnings:[],hasLowResWarning:!1,cropperState:null,confirmedCropperState:null,isPopupOpen:!1},void 0,"remove image")},resetAfterAddToCart:()=>{var r,n;let{selectedImageUrl:i,confirmedImageUrl:a,categoryId:l,persistenceEnabled:o,usageId:s}=t();i&&!i.isObjectUrl&&(0,eB.vt)(i.url),null==i||null==(r=i.cleanup)||r.call(i),a&&a!==i&&(null==(n=a.cleanup)||n.call(a)),o&&l&&eR(l),(0,eT.Rq)(s),e({selectedImageUrl:null,originalImageUrl:null,confirmedImageUrl:null,submittedImageUrl:null,lowResWarnings:[],hasLowResWarning:!1,cropperState:null,confirmedCropperState:null,isPopupOpen:!1,submitImageError:null,fileValidationError:null},void 0,"reset after add to cart")},selectImage:async(n,i)=>{var a,l,o,s,c;let{overlay:d,shouldUseSimpleUpload:u,submitImage:m,fetchOverlay:p,selectedImageUrl:g,confirmedImageUrl:h}=t();g&&!g.isObjectUrl&&(0,eB.vt)(g.url);let v=++r,f=i&&i.length>0;if(e({selectedImageLoading:!0,cropperState:null,lowResWarnings:null!=i?i:[],hasLowResWarning:null!=f&&f,fileValidationError:null},void 0,"select image -> start"),u){e({isPopupOpen:!1},void 0,"select image -> simple upload start");try{let{selectedImageUrl:i}=t();i&&i!==h&&(null==(a=i.cleanup)||a.call(i));let s=await (0,eP.zF)(n);if(v!==r){null==s||null==(l=s.cleanup)||l.call(s);return}let{width:c,height:d}=await (0,ek.vX)(n),u=Math.min(c,d),p=u<2e3?u:2e3,g=await (0,eP.Ng)(s,p,p);if(v!==r){null==s||null==(o=s.cleanup)||o.call(s);return}e({selectedImageLoading:!1,selectedImageUrl:s},void 0,"select image -> simple upload success"),await m(g,null)}catch(t){if(v===r){let r=t instanceof Error?t.message:"Failed to process image";console.error("Failed to process and submit image:",t),e({selectedImageError:!0,selectedImageLoading:!1,submitImageError:r},void 0,"select image -> simple upload failed")}}}else try{if(d||await p(),v!==r)return;let i=await (0,eP.zF)(n);if(v!==r){null==i||null==(s=i.cleanup)||s.call(i);return}h!==g&&(null==g||null==(c=g.cleanup)||c.call(g));let{siteData:a,usageId:l,persistenceEnabled:o}=t();if(a&&o){let t=new AbortController;(0,ez.wR)(l,"original",t);let n=(0,eP.wr)(i.url,4096,4096).then(e=>(0,eN.P)(e,a,t.signal)).then(t=>(v===r&&e({originalImageUrl:t.Url},void 0,"select image -> original uploaded"),(0,ez.$G)(l,"original"),t.Url)).catch(e=>((0,ez.$G)(l,"original"),(0,ez.zf)(e)||console.warn("Background original upload failed:",e),null));(0,eT.yp)(l,n)}e({isPopupOpen:!0,selectedImageUrl:i,originalImageUrl:null},void 0,"select image -> success")}catch(t){v===r&&(console.error("Failed to select and process image:",t),e({selectedImageError:!0},void 0,"select image -> failed"))}finally{v===r&&e({selectedImageLoading:!1},void 0,"select image -> end")}}}})(e,t),...((e,t)=>
1{let r=null;return{isPopupOpen:!1,cropperState:null,confirmedCropperState:null,openPopup:()=>{let{overlay:r,isSimple:n,templateUrl:i,fetchOverlay:a}=t();r||n||!i||a(),e({isPopupOpen:!0},void 0,"popup -> open")},closePopup:()=>{r&&(clearTimeout(r),r=null);let{usageId:n}=t();(0,ez.K9)(n),e({isPopupOpen:!1,submitImageError:null,fileValidationError:null},void 0,"popup -> close"),r=setTimeout(()=>{let{confirmedImageUrl:n,confirmedCropperState:i,selectedImageUrl:a}=t();if(n&&a!==n){var l;null==a||null==(l=a.cleanup)||l.call(a),e({selectedImageUrl:n},void 0,"Close popup -> Revert selectedImageUrl to confirmedImageUrl")}e({submitImageLoading:!1,showSlowUpload:!1,cropperState:i},void 0,"Close popup -> revert to confirmed state"),r=null},500)}}})(e,t),...((e,t)=>{let r=null,n=()=>{r&&(clearTimeout(r),r=null)};return{confirmedImageUrl:null,submitImageLoading:!1,submitImageError:null,submittedImageUrl:null,showSlowUpload:!1,submitImage:async(i,a)=>{let{siteData:l,isSimple:o,overlay:s,selectedImageUrl:c,confirmedImageUrl:d,categoryId:u,hasLowResWarning:m,lowResWarnings:p,persistenceEnabled:g,shouldUseSimpleUpload:h,usageId:v,submittedImageUrl:f,originalImageUrl:_}=t();try{if(!l)throw Error("Site data is required");e({submitImageLoading:!0,submitImageError:null},void 0,"submit image -> start"),n(),r=setTimeout(()=>{e({showSlowUpload:!0},void 0,"submit image -> slow upload detected"),r=null},1e4);let b=new AbortController;(0,ez.wR)(v,"submit",b);let S=!_&&(null==c?void 0:c.url)===f,w=!s||o||S?null:await (0,eP.Ng)(s,2e3,2e3,"image/png"),y=await (0,eM.A)(i,w);if(!y)throw Error("Failed to blend images");let U=await (0,eN.P)(y,l,b.signal);if((0,ez.$G)(v,"submit"),d&&c!==d){var x;e({},void 0,"submit image -> success, cleanup confirmedImageUrl"),null==(x=d.cleanup)||x.call(d)}let C=null;if(h)C=U.Url;else{let{originalImageUrl:e}=t();e&&(C=e)}if(g&&u&&(eA(u,{originalImageUrl:null!=C?C:U.Url,submittedImageUrl:U.Url,hasLowResWarning:m,lowResWarnings:p,cropperState:C?a:null}),!C)){let t=(0,eT.oO)(v);t&&t.then(t=>{t&&(e({originalImageUrl:t},void 0,"submit image -> original upload resolved"),eA(u,{originalImageUrl:t,submittedImageUrl:U.Url,hasLowResWarning:m,lowResWarnings:p,cropperState:a})),(0,eT.Rq)(v)}).catch(()=>{(0,eT.Rq)(v)})}e({isPopupOpen:!1,submitImageLoading:!1,showSlowUpload:!1,confirmedImageUrl:c,submittedImageUrl:U.Url,originalImageUrl:null!=C?C:U.Url,cropperState:a,confirmedCropperState:a},void 0,"submit image -> success")}catch(t){if((0,ez.zf)(t))return;console.error("Failed to submit image:",t),e({submitImageLoading:!1,showSlowUpload:!1,submitImageError:t instanceof Error?t.message:"Unknown error"},void 0,"submit image -> failed")}finally{n()}}}})(e,t)}),"photo_upload");var eD=r(77672),eK=r.n(eD),eV=r(37713),eG=r(66595),eZ=r.n(eG);let eq=()=>{let{pushToDataLayer:e}=(0,K.ur)(),t=eO(),r=function(r){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{initialized:i,isEditMode:a,label:l}=t.getState();i&&e({event:"photo_upload",action:r,label:l,source:a?"cart":"PDP",...n})};return{triggerWidgetEditEvent:()=>r("edit_photo"),triggerWidgetAddOrReplaceEvent:()=>{let{isEditMode:e}=t.getState();return r(e?"replace_photo":"add_photo")},triggerFileValidationEvent:(e,t)=>r("file_validation",{status:e,details:t}),triggerInterfaceCloseEvent:e=>r("close_photo_editor",{details:e}),triggerInterfaceEditEvent:e=>r("edit_action_on_photo_from_photo_editor",{details:e}),triggerInterfaceReplaceClickEvent:()=>r("change_photo_from_photo_editor"),triggerInterfaceConfirmEvent:()=>r("confirm_design_from_photo_editor"),triggerSubmitImageEvent:(e,t)=>r("file_upload",{status:e,details:t})}};var eH=r(18093),eX=r.n(eH);let eQ=e=>{let{visible:t,onClose:r,onReplace:i}=e,{t:a}=(0,G.B)("itemEditor");return(0,n.jsx)(J.A,{visible:t,header:(0,n.jsxs)("div",{className:eX().Header,children:[(0,n.jsx)(D.A,{name:"warningTriangle"}),(0,n.jsx)(z.A,{variant:"text2",children:a("photoUpload.warnings.lowResolution")})]}),slideFrom:"center",className:eX().WarningPanel,onClose:r,onBackdropClick:r,children:(0,n.jsxs)("div",{className:eX().Content,children:[(0,n.jsx)(z.A,{variant:"text1",children:a("photoUpload.warnings.lowResMessage")}),(0,n.jsx)(z.A,{variant:"text1",children:a("photoUpload.warnings.lowResDisclaimer")}),(0,n.jsx)(z.A,{variant:"text1",className:eX().ReplaceButton,onClick:()=>{r(),i()},children:a("photoPendant.changePhoto")})]})})},eY=()=>{let{t:e}=(0,G.B)("itemEditor"),{triggerWidgetAddOrReplaceEvent:t,triggerWidgetEditEvent:r,triggerFileValidationEvent:i}=eq(),a=eW(e=>e.isPopupOpen),l=eW(e=>e.selectedImageLoading),o=eW(e=>e.submitImageLoading),s=eW(e=>e.lowResConfig),c=eW(e=>e.hasLowResWarning),d=eW(e=>e.submittedImageUrl),m=eW(e=>e.submitImageError),g=eW(e=>e.isEditMode),h=eW(e=>e.selectedImageUrl),v=eW(e=>e.openPopup),f=eW(e=>e.closePopup),_=eW(e=>e.selectImage),x=eW(e=>e.setSelectedImageLoading),b=eW(e=>e.shouldUseSimpleUpload),S=eW(e=>e.showSlowUpload),w=eW(e=>e.categoryUid),[y,U]=(0,u.useState)(null),[C,j]=(0,u.useState)(!1);(0,u.useEffect)(()=>U(null),[h]),(0,u.useEffect)(()=>{m&&U(e(m))},[m,e]),(0,u.useEffect)(()=>
1{if(!w)return;let e=document.querySelector(".field-wrapper-".concat(w," .error-border"));e&&(e.style.border=y?"none":"")},[y,w]);let E=(0,u.useCallback)(()=>{x(!0)},[x]),I=(0,u.useCallback)((e,t)=>{i("passed"),_(e,t)},[_,i]),A=(0,u.useCallback)(t=>{x(!1),U(t[0]||e("photoUpload.errors.uploadFailed")),i("failed",t[0]||"unknown")},[x,i,e]),{getInputProps:R,open:L,isDragActive:P}=(0,eV.l)({validationMode:s.mode,onFileSelected:E,onFileAccepted:I,onFileRejected:A,disabled:l||o}),k=(0,u.useCallback)(e=>{h&&!a?(e.preventDefault(),v(),r()):(t(),L())},[h,a,v,L,t,r]),N=(0,u.useMemo)(()=>{let t;switch(!0){case l||o:return(0,n.jsx)(B.A,{});case!!d:t=h?e("photoPendant.editPhoto"):e("photoPendant.changePhoto");break;default:t=g?e("photoPendant.changePhoto"):e("photoPendant.addPhoto")}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(D.A,{name:"camera"}),(0,n.jsx)(z.A,{variant:"button1",children:t})]})},[l,h,d,o,g,e]),T=c&&s.showWarnings&&d;return(0,n.jsxs)("div",{className:p()(eZ().UploadButton,"photo-upload-button",{[eZ().DragActive]:P}),children:[(0,n.jsx)("input",{...R()}),(0,n.jsx)(O.A,{variant:"preview",onClick:k,className:eZ().Button,disabled:l||o,children:N}),T&&(0,n.jsxs)(z.A,{className:eZ().LowResWarning,variant:"text1",onClick:()=>j(!0),children:[e("photoUpload.warnings.lowResolution")," ",(0,n.jsx)(D.A,{name:"tooltipOutline"})]}),(0,n.jsx)(eQ,{visible:C,onClose:()=>j(!1),onReplace:L}),b&&S&&(0,n.jsxs)("div",{className:p()(eZ().SlowUploadWarning,eZ().visible),children:[(0,n.jsx)(D.A,{name:"warning"}),(0,n.jsxs)(z.A,{variant:"text1",children:[e("photoUpload.warnings.slowUploadMessage")," ",(0,n.jsx)("span",{onClick:f,className:eZ().CancelUploadLink,children:e("photoUpload.warnings.slowUploadCancel")})," ",e("photoUpload.warnings.slowUploadOrWait")]})]}),y&&(0,n.jsx)(z.A,{className:eZ().ErrorMessage,variant:"text1",children:y})]})};var eJ=r(28383),e$=r.n(eJ);let e0=e=>{let{src:t,onClick:r,onRemove:i,showWarning:a,warningMessage:l,isSimple:o,disabled:s}=e,{t:c}=(0,G.B)("itemEditor"),d=(0,u.useCallback)(e=>{e.stopPropagation(),i()},[i]);return(0,n.jsxs)("div",{className:p()(e$().Thumbnail,{[e$().IsSimple]:o}),children:[(0,n.jsx)(X(),{src:t,width:160,height:160,alt:"",className:e$().Image,onClick:s?void 0:r,role:"button",tabIndex:s?-1:0,onKeyDown:e=>{s||"Enter"!==e.key&&" "!==e.key||r()}}),!s&&(0,n.jsx)("button",{className:e$().RemoveButton,onClick:d,type:"button","aria-label":c("photoUpload.removePhoto"),children:(0,n.jsx)(D.A,{name:"x"})}),a&&(0,n.jsx)("div",{className:e$().WarningBadge,title:l,children:(0,n.jsx)(D.A,{name:"warningTriangle"})})]})},e1=()=>{let e=eW(e=>e.isSimple),t=eW(e=>e.submittedImageUrl),r=eW(e=>e.submitImageLoading),i=eW(e=>e.hasLowResWarning),a=eW(e=>e.lowResWarnings),l=eW(e=>e.lowResConfig),o=eW(e=>e.openPopup),s=eW(e=>e.removeImage),c=(0,u.useCallback)(()=>{o()},[o]),d=(0,u.useCallback)(()=>{s()},[s]),m=i&&l.showWarnings;return(0,n.jsxs)("div",{className:p()(eK().PhotoUploadWidget,{[eK().EditMode]:t}),children:[(0,n.jsx)(eY,{}),(r||t)&&(0,n.jsx)("div",{className:eK().PreviewContainer,children:t&&(0,n.jsx)(e0,{src:t,onClick:c,onRemove:d,showWarning:m,warningMessage:a[0],isSimple:e,disabled:r})})]})};var e2=r(53487),e3=r(99735),e4=r(1158);r(52100);var e5=r(96742),e6=r.n(e5);let e7=e=>{let t=Math.max(e.imageSize.width,e.imageSize.height);return{width:t,height:t}},e9=e=>{let{cropper:t,disabled:r,onReady:i}=e,a=eO(),l=eW(e=>e.overlay),o=eW(e=>e.isSimple),s=eW(e=>e.selectedImageUrl),[c,d]=(0,u.useState)(!o),m=(0,u.useRef)(!1),g=(0,u.useRef)(Date.now()),[h,v]=(0,u.useState)(!1);(0,u.useEffect)(()=>{let e=setTimeout(()=>v(!0),Math.max(0,350-(Date.now()-g.current)));return()=>clearTimeout(e)},[]);let f=(0,u.useMemo)(()=>{var e;return(null==s?void 0:s.url)?s.isObjectUrl?s.url:null!=(e=(0,eB.VB)(s.url))?e:s.url:null},[null==s?void 0:s.url,null==s?void 0:s.isObjectUrl]),_=(0,u.useRef)(f);_.current!==f&&(_.current=f,m.current=!1),(0,u.useEffect)(()=>{!o&&f&&d(!0)},[f,o]);let x=(0,u.useCallback)(()=>{if(!m.current&&t.current){let{cropperState:e}=a.getState();if(e){m.current=!0;let r=((e,t)=>{var r,n;let i=null==(r=e.imageSize)?void 0:r.width,a=null==(n=e.imageSize)?void 0:n.height;if(!(null==t?void 0:t.width)||!(null==t?void 0:t.height)||!i||!a)return e;let l=t.width/i,o=t.height/a;return .001>Math.abs(l-1)&&.001>Math.abs(o-1)?e:{...e,imageSize:{width:t.width,height:t.height},coordinates:e.coordinates&&{left:e.coordinates.left*l,top:e.coordinates.top*o,width:e.coordinates.width*l,he
1ight:e.coordinates.height*o},visibleArea:e.visibleArea&&{left:e.visibleArea.left*l,top:e.visibleArea.top*o,width:e.visibleArea.width*l,height:e.visibleArea.height*o}}})(e,t.current.getImage());t.current.setState(r),requestAnimationFrame(()=>{d(!1)})}else d(!1)}else d(!1);let e=a.getState().selectedImageUrl;!e||e.isObjectUrl||(0,eB.VB)(e.url)||fetch(e.url,{mode:"cors"}).then(e=>e.blob()).then(t=>{let r=URL.createObjectURL(t);(0,eB.b6)(e.url,r)}).catch(()=>{}),null==i||i()},[t,a,i]),b=(0,u.useCallback)(e=>(0,n.jsx)(e4.A,{...e}),[]);return(0,n.jsxs)("div",{className:p()(e6().PhotoCropper,"photo-cropper",r&&e6().disabled),children:[(0,n.jsxs)("div",{className:e6().Container,children:[c&&(0,n.jsx)("div",{className:e6().Loading,children:(0,n.jsx)(ee.A,{})}),f&&h&&(0,n.jsx)(e2.SFv,{ref:t,className:p()(e6().Cropper,c&&e6().CropperHidden),src:f,crossOrigin:"anonymous",stencilComponent:b,stencilProps:{},stencilSize:e=>{let t=Math.min(e.boundary.width,e.boundary.height);return{width:t,height:t}},imageRestriction:e3.e.none,backgroundWrapperComponent:e2.NUk,defaultSize:e7,onReady:x})]}),!o&&l&&(0,n.jsx)("img",{src:l.url,className:e6().Template,crossOrigin:"anonymous",alt:"",onLoad:()=>d(!1)})]})};var e8=r(41361),te=r(450),tt=r.n(te),tr=r(70002),tn=r.n(tr);let ti=()=>{let{t:e}=(0,G.B)("itemEditor"),{triggerInterfaceReplaceClickEvent:t,triggerFileValidationEvent:r}=eq(),i=eW(e=>e.submitImageLoading),a=eW(e=>e.selectImage),l=eW(e=>e.lowResConfig),o=eW(e=>e.fileValidationError),s=eW(e=>e.setFileValidationError),c=eW(e=>e.setSelectedImageLoading),d=(0,u.useCallback)(()=>{c(!0)},[c]),m=(0,u.useCallback)((e,t)=>{s(null),r("passed"),a(e,t)},[a,s,r]),p=(0,u.useCallback)(t=>{c(!1),s(t[0]||e("photoUpload.errors.uploadFailed")),r("failed",t[0]||"unknown")},[c,s,r,e]),{getInputProps:g,open:h}=(0,eV.l)({validationMode:l.mode,onFileSelected:d,onFileAccepted:m,onFileRejected:p,disabled:i}),v=(0,u.useCallback)(()=>{t(),c(!0),requestAnimationFrame(()=>{h()})},[t,c,h]),f=(0,u.useCallback)(e=>{e.stopPropagation(),c(!1)},[c]),_=(0,u.useRef)(null);return(0,u.useEffect)(()=>{var e;let t=null==(e=_.current)?void 0:e.querySelector('input[type="file"]');
1if(t)return t.addEventListener("cancel",f),()=>t.removeEventListener("cancel",f)},[f]),(0,n.jsxs)("div",{ref:_,className:tn().ReplaceButton,children:[(0,n.jsx)("input",{...g(),onClick:e=>e.stopPropagation()}),(0,n.jsxs)(O.A,{variant:"upsell-primary",small:!0,onClick:v,disabled:i,children:[(0,n.jsx)(D.A,{name:"camera"}),(0,n.jsx)("span",{children:e("photoPendant.changePhoto")}),o&&(0,n.jsx)(D.A,{name:"warning"})]})]})};var ta=r(62919);let tl=()=>{let e=(0,u.useRef)(null),{t}=(0,G.B)("itemEditor"),{triggerInterfaceCloseEvent:r,triggerInterfaceEditEvent:i,triggerInterfaceConfirmEvent:a}=eq(),l=eW(e=>e.isSimple),o=eW(e=>e.isPopupOpen),s=eW(e=>e.closePopup),c=eW(e=>e.hasLowResWarning),d=eW(e=>e.lowResConfig),m=eW(e=>e.submitImageLoading),g=eW(e=>e.selectedImageLoading),h=eW(e=>e.selectedImageUrl),v=eW(e=>e.submitImageError),f=eW(e=>e.fileValidationError),_=eW(e=>e.submitImage),x=eW(e=>e.showSlowUpload),[b,S]=(0,u.useState)(!1);(0,u.useEffect)(()=>{S(!1)},[null==h?void 0:h.url,o]);let w=(0,u.useCallback)(()=>{S(!0)},[]),y=async()=>{if(!e.current)return;let t=e.current.getState(),r=e.current.getImage();if(!t||!r)return;let{width:n,height:i}=t.imageSize,l=Math.min(n,i),o=l<2e3?l:2e3,s=await (0,ta.A)(r.src,t,o,o);if(!s)return;let c=s.toDataURL("image/jpeg",.9);c&&(_(c,t),a())},U=c&&d.showWarnings;return(0,n.jsx)(J.A,{onClose:()=>{m||(r("X"),s())},onBackdropClick:()=>{m||(r("dismiss"),s())},visible:o,slideFrom:{mobile:"block-end",desktop:"center"},header:t("photoPendant.editPhoto"),unmountAfterClose:!0,closeDisabled:m,children:(0,n.jsxs)("div",{className:tt().PhotoUploadInterface,children:[(0,n.jsxs)("div",{className:tt().ImageContainer,children:[(0,n.jsx)(e9,{cropper:e,disabled:m,onReady:w}),U&&(0,n.jsx)("div",{className:tt().WarningIndicator,children:(0,n.jsx)(D.A,{name:"warningTriangle"})}),(0,n.jsxs)("div",{className:p()(tt().ControlsBar,m&&tt().disabled),children:[(0,n.jsx)(e8.default,{changed:(t,r,n)=>{if(e.current){if("zoom"===t&&"number"==typeof r){let t=1+r;e.current.zoomImage(t)}"rotate"===t&&"number"==typeof r&&e.current.rotateImage(r),"move"===t&&"number"!=typeof r&&e.current.moveImage(r[0],r[1]),i(n)}},className:p()(tt().PositionControls,l&&tt().isSimple)}),(0,n.jsx)(ti,{})]})]}),U&&(0,n.jsxs)("div",{className:tt().LowResWarning,children:[(0,n.jsxs)("div",{className:tt().WarningTitle,children:[(0,n.jsx)(D.A,{name:"warningTriangle"}),(0,n.jsx)(z.A,{variant:"text2",className:tt().LowResWarningTitle,children:t("photoUpload.warnings.lowResolution")})]}),(0,n.jsx)("div",{className:tt().LowResWarningContent,children:(0,n.jsx)(z.A,{variant:"text1",children:"".concat(t("photoUpload.warnings.lowResMessage")," ").concat(t("photoUpload.warnings.lowResDisclaimer"))})})]}),x&&(0,n.jsxs)("div",{className:p()(tt().SlowUploadWarning,x&&tt().visible),children:[(0,n.jsx)(D.A,{name:"warning"}),(0,n.jsxs)(z.A,{variant:"text1",children:[t("photoUpload.warnings.slowUploadMessage")," ",(0,n.jsx)("span",{onClick:()=>{r("cancel"),s()},className:tt().CancelUploadLink,children:t("photoUpload.warnings.slowUploadCancel")})," ",t("photoUpload.warnings.slowUploadOrWait")]})]}),(v||f)&&(0,n.jsx)(z.A,{className:tt().ErrorMessage,variant:"text1",children:f||t("photoPendant.previewLoadingError")}),(0,n.jsxs)("div",{className:tt().Footer,children:[(0,n.jsx)(O.A,{variant:"link",onClick:()=>{r("cancel"),s()},children:"Cancel"}),(0,n.jsxs)(O.A,{variant:"primary",onClick:y,disabled:m||g||!b||!!f,children:[(0,n.jsx)("span",{children:t(m?"photoPendant.uploadingPhoto":"photoPendant.confirmDesign")}),m&&(0,n.jsx)(B.A,{})]})]})]})})},to=e=>{let{instanceKey:t,category:{id:r,uid:n}}=e,i=eW(e=>e.submittedImageUrl),l=(0,a.u)(e=>e.updateUserSelectionByInstanceId),o=(0,u.useRef)(i);return(0,u.useEffect)(()=>{o.current&&!i&&l(t,{category_id:r,category_uid:n,value:""}),i&&l(t,{category_id:r,category_uid:n,value:i}),o.current=i},[i,r,n,t,l]),null};var ts=r(75582);let tc=e=>{let{usageId:t,category:r,isEditMode:a,initialImageUrl:l,...o}=e,{data:s}=(0,ew.Ay)(e=>e),c=eW(e=>e.initialize),d=eW(e=>e.submitImageError),m=eW(e=>e.submittedImageUrl),p=eW(e=>e.initialized),g=eW(e=>e.resetAfterAddToCart),h=eS("is-photo-upload-popup-enabled-ft"),v=(0,i.Br)("photo-upload-persistence-ft",!1),f=(0,i.Br)("photo-upload-low-res-label-ft",""),{getState:_}=eO(),{triggerSubmitImageEvent:x}=eq(),b=(0,ts.A)(e=>e.addToCartLoading),S=(0,ts.A)(e=>e.addToCartSucceed),w=(0,u.useRef)(b);return(0,u.useEffect)(()=>{!a&&w.current&&!b&&S&&g(),w.current=b},[b,S,a,g]),(0,u.useEffect)(()=>{c(s,t,r,h,a,l,v,f)},[s,t,r,h,l,a,v,f]),(0,u.useEffect)(()=>()=>{var e,t,r;let{selectedImageUrl:n,confirmedImageUrl:i,overlay:a}=_();n&&!n.isObjectUrl&&(0,eB.vt)(n.url),null==n||null==(e=n.cleanup)||e.call(n),null==i||null==(t=i.cleanup)||t.call(i),null==a||null==(r=a.cleanup)||r.call(a)},[]),(0,u.useEffect)(()=>{p&&m!==l&&(m?x("passed"):x("failed",d))},[m,d,l,p]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e1,{}),(0,n.jsx)(tl,{}),(0,n.jsx)(to,{category:r,...o}
1)]})},td=(0,u.memo)(e=>{let{category:{uid:t},instanceKey:r}=e,i=(0,eb.A)(r,t),l=r.toString().endsWith("edit"),o=(0,a.u)(e=>e.getFieldValueById)(r,t);return i?(0,n.jsx)(eF,{id:i,children:(0,n.jsx)(tc,{...e,usageId:i,isEditMode:l,initialImageUrl:o||null})}):null},(e,t)=>e.instanceKey===t.instanceKey&&e.category.uid===t.category.uid);var tu=r(60492);let tm=ec()(()=>Promise.all([r.e(8267),r.e(1851)]).then(r.bind(r,11851)),{loadableGenerated:{webpack:()=>[11851]},ssr:!1}),tp={text:e=>{let{category:t,instanceId:r,onInputBlur:u,onInputChange:m,onInputFocus:p,inputMaxLength:g,value:h}=e,v=(0,i.KH)("photo-upload-v2-ft");if((0,a.u)(e=>{var n,i;if(!v||!r||!(0,c.c)(t))return!1;let a=e.getItemEditorById(r);if(!a)return!1;let{productData:o,userSelections:s}=a,d=(0,l.h)(o.categories,o.show_and_hides,s);return null!=(i=null==(n=(0,c.ET)(d))?void 0:n.managedCategoryUids.includes(t.uid))&&i}))return null;if((0,d.h)(t))return(0,n.jsx)(_,{...e});let{text_placeholder:f}=t;return(0,n.jsx)(o.A,{"aria-label":(0,s.o)(t)||void 0,placeholder:f||"",maxLength:g,onBlur:u,onFocus:p,onChange:m,value:h})},carousel:w.A,textArea:e=>{let{category:t,onInputBlur:r,onInputChange:i,onInputFocus:a,inputMaxLength:l,value:o}=e,{text_placeholder:c,uid:u}=t;return(0,d.h)(t)?(0,n.jsx)(_,{...e}):(0,n.jsx)(h.A,{"aria-label":(0,s.o)(t)||void 0,placeholder:c||"",onChange:i,onFocus:a,onBlur:r,maxLength:l,value:o,className:"textArea-".concat(u)})},dropdown:x.A,label:b.A,grid:S.A,drawer:tu.A,photoUpload:e=>{let t=(0,i.KH)("photo-upload-v2-ft"),r=(0,a.u)(t=>t.getItemEditorById(e.instanceKey));if(t){if(!r)return null;let{productData:t,userSelections:i}=r,a=(0,l.h)(t.categories,t.show_and_hides,i),o=(0,c.ET)(a);if(o&&"template_customization"===e.category.type){if(o.primaryCategoryUid===e.category.uid)return(0,n.jsx)(tm,{...e});if(o.slots.some(t=>t.imageCategory.uid===e.category.uid))return null}return(0,n.jsx)(td,{...e})}return(0,n.jsx)(eU,{...e})}}},26725:e=>{e.exports={CountryToggle:"countryToggle_CountryToggle__E_ipD",Button:"countryToggle_Button__Ao9eR",Active:"countryToggle_Active__l5dGm",Label:"countryToggle_Label__eEqC4"}},27477:e=>{e.exports={Button:"sizerBackButton_Button__qCjw9",Arrow:"sizerBackButton_Arrow__WyJaq"}},28383:e=>{e.exports={Thumbnail:"thumbnail_Thumbnail__o6QJJ",Image:"thumbnail_Image__7Barm",RemoveButton:"thumbnail_RemoveButton__m_456",WarningBadge:"thumbnail_WarningBadge__6FDEj",IsSimple:"thumbnail_IsSimple__EvxuL"}},29457:e=>{e.exports={RingSizer:"measureByRing_RingSizer__Qkqz2",Content:"measureByRing_Content__DSm32",Steps:"measureByRing_Steps__YC0zp",TipBox:"measureByRing_TipBox__2quhP",RingWrapper:"measureByRing_RingWrapper__8Dm0h",Ring:"measureByRing_Ring__upBYd",Controls:"measureByRing_Controls__4FTOb",ButtonWrapper:"measureByRing_ButtonWrapper__9434p"}},31305:e=>{e.exports={MediaGalleryContainer:"mediaGallery_MediaGalleryContainer__NGS_j",MainColumn:"mediaGallery_MainColumn___lK_q",DefaultLayout:"mediaGallery_DefaultLayout__dlDZ_",HighLightSlide:"mediaGallery_HighLightSlide__Ezepx",WithThumbnails:"mediaGallery_WithThumbnails__UV1ID",ThumbnailsColumn:"mediaGallery_ThumbnailsColumn__Eh_6A"}},33231:(e,t,r)=>{"use strict";r.d(t,{A:()=>I});var n=r(14232),i=r(37876),a=r(18847),l=r.n(a),o=r(80998),s=r(74348),c=r(61068),d=r.n(c),u=r(64081),m=r(86649),p=r(68200),g=r(94962),h=r.n(g),v=r(8456),f=r(19672);let _=e=>{let{children:t}=e,r=(0,s.Ay)(e=>e.openPopup),n=(0,s.Ay)(e=>e.giftNoteMessage),a=(0,s.Ay)(e=>e.itemSkuClicked),l=(0,s.Ay)(e=>e.pipPrice),o=(0,s.Ay)(e=>e.mainItem),c=(0,s.Ay)(e=>e.isNested),d=(0,s.Ay)(e=>e.openFromShoppingCart),{openAiModalDataLayer:u}=(0,v.A)((0,f.A)(d));return(0,i.jsxs)("div",{id:"giftnote_button",className:h().GiftNoteWrapper,onClick:()=>void(r(),u("gift_note_assistant",n,a,l,c?null==o?void 0:o.sku:void 0,c?null==o?void 0:o.price:void 0)),children:[(0,i.jsx)(p.A,{name:"aiMagic"}),t]})};var x=r(86113),b=r(15039),S=r.n(b),w=r(74883);let y=e=>{let{maxLengthValidation:t,labelField:r,pipSku:a,fromShoppingCart:l,text_placeholder:o,uid:c,pipPrice:p,mainItem:g,isNested:h}=e,{data:b}=(0,u.K)(e=>e.giftNoteAssistant),y=(0,s.Ay)(e=>e.giftNoteForm),U=(0,s.Ay)(e=>e.giftNoteMessage),C=(0,f.A)(l),j=(0,s.Ay)(e=>e.initialize),E=(0,s.Ay)(e=>e.syncAnalyticsContext),I=(0,s.Ay)(e=>e.setGiftNoteMessage),{onTextAreaFocused:A}
1=(0,v.A)(C),[R,L]=(0,n.useState)(U.length);if((0,n.useEffect)(()=>{E(a,p,g,l,h)},[a,p,null==g?void 0:g.sku,null==g?void 0:g.price,l,h,E]),(0,n.useEffect)(()=>{let e=document.querySelector('div[class*="textArea-'.concat(c,'"]'));e&&(e.style.display="none")},[]),(0,n.useEffect)(()=>{L(U.length)},[U]),(0,n.useEffect)(()=>{b&&j(b.questionsForm,t,b.aiToggle,a,b.prompts.generatePrompt,b.prompts.regeneratePrompt,l,g,p,h)},[b,a,t,j]),!b||0===y.length)return null;let P=(0,w.o)({name:r,cart_name:""});return(0,i.jsxs)("div",{id:"gift_note_assistant",className:d().GiftNoteAssistantField,children:[(0,m.Ay)(r,{replace:e=>{try{if(e instanceof m.Hg){var t;let{name:r,attribs:n,children:a}=e;if("a"===r&&(null==(t=n.class)?void 0:t.includes("giftNoteAssistant")))return(0,i.jsx)(_,{children:(0,m.zd)(a)})}}catch(e){return console.warn("Error parsing content markup -",e),null}}}),(0,i.jsx)(x.A,{id:"textArea-".concat(c),"aria-label":P||void 0,onFocus:()=>A("gift_note_assistant",a,p,h?null==g?void 0:g.sku:void 0,h?null==g?void 0:g.price:void 0),maxLength:t,currentLenght:R>0&&R||void 0,onChange:e=>I(null==e?void 0:e.target.value),placeholder:o,value:U,className:S()(d().TextArea,{[d().Invalid]:R>t})})]})};var U=r(72091);let C=e=>{let{instanceKey:t,id:r,uid:i}=e,a=(0,s.Ay)(e=>e.giftNoteMessage),l=(0,s.Ay)(e=>e.setGiftNoteMessageSilent),o=(0,U.u)(e=>e.updateTextOptionSelection),c=(0,U.u)(e=>e.itemEditorsList[t]);return(0,n.useEffect)(()=>{if(c){let e=c.userSelections.find(e=>e.category_uid===i&&e.value);(null==e?void 0:e.value)&&e.value!==a&&l(String(e.value))}},[c,i,l]),(0,n.useEffect)(()=>{if(c){let e=c.userSelections.find(e=>e.category_uid===i&&e.value);(null==e?void 0:e.value)&&e.value!==a&&l(String(e.value))}},[c,i,l]),(0,n.useEffect)(()=>{c&&o(t,r,i,a)},[a,r,i,t]),null},j=l()(()=>Promise.all([r.e(6186),r.e(8848)]).then(r.bind(r,68848)),{loadableGenerated:{webpack:()=>[68848]},ssr:!1}),E=(0,n.memo)(e=>{let{instanceKey:t,uid:r}=e,n=(0,o.A)(t,r);return(0,i.jsxs)(s.Zz,{id:n,children:[(0,i.jsx)(y,{...e}),(0,i.jsx)(j,{}),(0,i.jsx)(C,{...e})]})},(e,t)=>{var r,n,i,a;return e.id===t.id&&e.pipSku===t.pipSku&&e.pipPrice===t.pipPrice&&e.fromShoppingCart===t.fromShoppingCart&&(null==(r=e.mainItem)?void 0:r.sku)===(null==(n=t.mainItem)?void 0:n.sku)&&(null==(i=e.mainItem)?void 0:i.price)===(null==(a=t.mainItem)?void 0:a.price)&&e.isNested===t.isNested}),I=(e,t,r,i)=>(0,n.useMemo)(()=>{if(!t)return[];let{categories:n,sku:a,pricing:l}=t,{selling_price:o}=l;return n.reduce((t,n)=>{var l;let{uid:s,validations:c,name:d,id:u,text_placeholder:m}=n;if(!d.includes("giftNoteAssistantWrapper"))return t;let p=!!i,g=null!=i?i:{sku:a,price:o},h=(null==c||null==(l=c.max_text_length)?void 0:l.value)||280;return t.push({component:E,location:"field-name",categoryUid:s,props:{id:u,uid:s,instanceKey:e,maxLengthValidation:h,labelField:d,pipSku:a,fromShoppingCart:r,text_placeholder:m,pipPrice:o,mainItem:g,isNested:p}}),t},[])},[t,r,i])},35230:e=>{e.exports={CheckboxText:"itemEditorCheckboxText_CheckboxText__GCUEI",TextArea:"itemEditorCheckboxText_TextArea__Bj5zx"}},35624:(e,t,r)=>{"use strict";r.d(t,{A:()=>B});var n=r(14232),i=r(37876),a=r(57447),l=r(80998),o=r(15039),s=r.n(o),c=r(24963),d=r(97804),u=r(50604),m=r.n(u),p=r(6936),g=r(619);let h=(0,n.forwardRef)((e,t)=>{let{id:r,className:a,placeholder:l,value:o="",label:u,required:h,error:v,options:f=[],onSearch:_,onOptionSelect:x,setValue:b,trigger:S,name:w,minQueryLength:y=1,maxSuggestions:U=10,allowCustomValue:C=!0,clearOnSelect:j=!1,isLoading:E=!1,onChange:I,onFocus:A,onBlur:R,loadingText:L="Searching",...P}=e,[k,N]=(0,n.useState)(String(o)),[T,z]=(0,n.useState)(!1),[B,M]=(0,n.useState)([]),[F,W]=(0,n.useState)(-1),[O,D]=(0,n.useState)(!1),K=(0,n.useRef)(null),V=(0,n.useRef)(null),G=(0,n.useRef)(null),Z=(0,n.useId)(),q=!!v&&"string"==typeof(null==v?void 0:v.message)&&v.message.length>0;(0,d.A)(K,()=>{z(!1),W(-1)}),(0,n.useEffect)(()=>{N(String(o))},[o]),(0,n.useEffect)(()=>{D(!!(k||l))},[k,l]),(0,n.useEffect)(()=>{let e=setTimeout(()=>{k&&k.length>0&&D(!0)},300);return()=>clearTimeout(e)},[r,k]),(0,n.useEffect)(()=>{_?M(f.slice(0,U)):k.length>=y?M(f.filter(e=>e.label.toLowerCase().includes(k.toLowerCase())&&!e.disabled).slice(0,U)):M([])},[k,f,y,U,_]);let H=e=>{var t;N(j?"":e.label),z(!1),W(-1),b&&w&&b(w,e.value),S&&w&&S(w),x&&x(e),null==(t=V.current)||t.focu
1s()},X=s()({["".concat(m().AutocompleteField," ").concat(null!=a?a:""," autocomplete-field")]:!0,["".concat(m().MiniLabel," miniLabel")]:O,["".concat(m().NoLabel," no-label")]:!u,["".concat(m().Error," error")]:q,["".concat(m().HasDropdown," has-dropdown")]:T}),Q=s()({["".concat(m().Dropdown," autocomplete-dropdown")]:!0});return(0,i.jsxs)("div",{className:X,ref:K,children:[(0,i.jsx)("input",{...P,id:r,ref:t||V,type:"text",value:k,placeholder:l,onChange:e=>{let t=e.target.value;N(t),W(-1),t.length>=y?(z(!0),_&&_(t)):z(!1),I&&I(e)},onFocus:e=>{D(!0),k.length>=y&&(_&&k.trim()&&_(k),(B.length>0||E)&&z(!0)),A&&A(e)},onBlur:e=>{e.target.value||D(!!l),R&&R(e)},onKeyDown:e=>{if(T&&0!==B.length)switch(e.key){case"ArrowDown":e.preventDefault(),W(e=>e<B.length-1?e+1:0);break;case"ArrowUp":e.preventDefault(),W(e=>e>0?e-1:B.length-1);break;case"Enter":e.preventDefault(),F>=0&&B[F]?H(B[F]):C&&k.trim()&&(z(!1),b&&w&&b(w,k.trim()),S&&w&&S(w));break;case"Escape":e.preventDefault(),z(!1),W(-1);break;case"Tab":z(!1),W(-1)}},autoComplete:"off","aria-expanded":T,"aria-haspopup":"listbox","aria-controls":T?Z:void 0,role:"combobox"}),u&&(0,i.jsx)(c.A,{htmlFor:r,required:h,children:u}),T&&(0,i.jsx)("div",{className:Q,ref:G,role:"listbox",id:Z,children:E&&0===B.length?(0,i.jsxs)("div",{className:m().LoadingState,children:[(0,i.jsx)(p.A,{variant:"text1",className:m().LoadingText,children:L}),(0,i.jsx)(g.A,{})]}):B.length>0?B.map((e,t)=>(0,i.jsxs)("div",{className:s()({["".concat(m().Option," autocomplete-option")]:!0,["".concat(m().Focused," focused")]:t===F,["".concat(m().Disabled," disabled")]:e.disabled}),role:"option","aria-selected":t===F,onMouseDown:e=>e.preventDefault(),onClick:()=>!e.disabled&&H(e),onMouseEnter:()=>W(t),children:[e.icon&&(0,i.jsx)("div",{className:m().OptionIcon,children:e.icon}),(0,i.jsx)(p.A,{variant:"text1",className:m().OptionLabel,children:e.label})]},"".concat(e.value,"-").concat(t))):null})]})});var v=r(11838),f=r.n(v);let _=()=>{let e=(0,a.ST)("geocoding");return(0,n.useMemo)(()=>e?new e.Geocoder:null,[e])};var x=r(12632),b=r(68200),S=r(59023);let w={lat:37.8651,lng:-119.5383},y=(e,t)=>e===w.lat&&t===w.lng,U={apiKey:"AIzaSyC3-5E5Zz3yvrlG0vH4aJi-_gokY5xG6N4",libraries:["places"],mapStyle:{styleId:"cb621e75dd94b71b752d3584"},errors:{apiKeyMissing:"Google Maps API key is missing."}},{StoreProvider:C,useStoreContext:j}=(0,S.B)((e,t)=>({isModalOpen:!1,selectedAddress:"",mapCenter:w,mapZoom:14,mapyURL:"",setAddress:t=>e({selectedAddress:t},!1,"setAddress"),setMapState:(t,r)=>e({mapCenter:t,...void 0!==r&&{mapZoom:r}},!1,"setMapState"),openModal:()=>e({isModalOpen:!0},!1,"openModal"),closeModal:()=>e({isModalOpen:!1},!1,"closeModal"),clearMap:()=>e({mapCenter:w,mapZoom:14,selectedAddress:"",mapyURL:""},!1,"clearMap"),confirmSelection:r=>{let n=t();if(!n.selectedAddress||y(n.mapCenter.lat,n.mapCenter.lng))return void e({isModalOpen:!1,mapyURL:"",selectedAddress:"",mapCenter:w,mapZoom:14},!1,"confirmSelection-cleared");let i="https://mapy.com/fnc/v1/showmap?mapset=winter&center=".concat(n.mapCenter.lng,",").concat(n.mapCenter.lat,"&zoom=").concat(n.mapZoom);n.selectedAddress?e({isModalOpen:!1,mapyURL:i},!1,"confirmSelection-preserve-address"):r?r.geocode({location:{lat:n.mapCenter.lat,lng:n.mapCenter.lng}},(t,r)=>{e({isModalOpen:!1,mapyURL:i,selectedAddress:"OK"===r&&t&&t[0]?t[0].formatted_address:""},!1,"confirmSelection-geocoded")}):e({isModalOpen:!1,mapyURL:i},!1,"confirmSelection-no-geocoder")},restoreFromMapyURL:t=>{if(t)try{let r=new URL(t),n=r.searchParams.get("center"),i=r.searchParams.get("zoom");if(n){let[r,a]=n.split(",").map(Number),l=i?parseInt(i,10):14;e({mapCenter:{lat:a,lng:r},mapZoom:l,mapyURL:t},!1,"restoreFromMapyURL")}}catch(e){console.warn("Failed to parse mapyURL:",e)}},reverseGeocode:(t,r,n)=>{n&&n.geocode({location:{lat:t,lng:r}},(t,r)=>{"OK"===r&&(null==t?void 0:t[0])?e({selectedAddress:t[0].formatted_address},!1,"reverseGeocode"):console.warn("Reverse geocoding failed:",r)})}}),"map_canvas");var E=r(45348),I=r(72091),A=r(88771);let R=e=>{let{category:t,fieldId:r,showEditButton:l=!0,instanceKey:o,id:s,uid:c,onClearOverride:d,localAddress:u,setLocalAddress:m,setLocalCenter:p}=e,{text_max_length:g}=t,{t:v}
1=(0,A.B)("itemEditor"),[S,w]=(0,n.useState)([]),[y,U]=(0,n.useState)(!1),C=(0,n.useRef)(null),R=j(e=>e.openModal),L=j(e=>e.setAddress),P=j(e=>e.setMapState),k=j(e=>e.selectedAddress),N=j(e=>e.clearMap),T=j(e=>e.mapyURL),z=(0,I.u)(e=>e.updateTextOptionSelection),B=(0,I.u)(e=>e.itemEditorsList),M=(0,a.ST)("places"),F=(0,a.ST)("geocoding"),W=void 0!==u?u:k,O=_(),D=async e=>{if(!M||!e.trim()||e.length<2){w([]),U(!1);return}U(!0),w([]);try{let{suggestions:t}=await M.AutocompleteSuggestion.fetchAutocompleteSuggestions({input:e,includedPrimaryTypes:["geocode"]});if(t&&t.length>0){let e=t.map(e=>{var t,r,n;return{value:(null==(t=e.placePrediction)?void 0:t.placeId)||"",label:(null==(n=e.placePrediction)||null==(r=n.text)?void 0:r.text)||"",icon:(0,i.jsx)(b.A,{name:"mapPin"}),disabled:!1}});w(e)}else w([])}catch(e){w([]),console.warn("Places API error:",e)}finally{U(!1)}},K=async e=>{if(w([]),!O)return void console.error("Geocoder not available");try{let t=(await new Promise((t,r)=>{O.geocode({address:e.label},(e,n)=>{"OK"===n&&(null==e?void 0:e[0])?t({results:e}):r(Error("Geocoding failed: ".concat(n)))})})).results[0].geometry.location,r={lat:t.lat(),lng:t.lng()};m&&p?(m(e.label),p(r)):(L(e.label),P(r),R())}catch(e){console.error("Geocoding failed:",e)}},V=!!(M&&F),G=""!==T&&W&&l,Z=W&&!G;return(0,i.jsxs)("div",{className:f().InputWrapper,children:[(0,i.jsx)(h,{ref:C,id:r||"mapCanvas-location-autocomplete",placeholder:v("mapCanvas.fieldPlaceholder"),maxLength:g||void 0,value:W,options:S,onSearch:D,onOptionSelect:K,minQueryLength:2,maxSuggestions:6,allowCustomValue:!0,clearOnSelect:!1,disabled:!V,isLoading:y,className:f().AutocompleteField,loadingText:v("mapCanvas.loadingStateText")}),G&&(0,i.jsx)(x.A,{variant:"link",onClick:R,className:f().Edit,children:v("mapCanvas.fieldEditButtonText")}),Z&&(0,i.jsx)(E.A,{className:f().CloseButton,onClick:()=>{w([]),U(!1),d?d():(N(),o&&B[o]&&z(o,s,c,""))}})]})};var L=r(40581),P=r.n(L),k=r(852);let N=e=>{let t=j(e=>e.isModalOpen),r=j(e=>e.mapCenter),l=j(e=>e.mapZoom),o=j(e=>e.selectedAddress),s=j(e=>e.closeModal),c=j(e=>e.confirmSelection),d=j(e=>e.setMapState),u=j(e=>e.setAddress),m=(0,I.u)(e=>e.updateTextOptionSelection),g=(0,I.u)(e=>e.itemEditorsList),{t:h}=(0,A.B)("itemEditor"),[v,f]=(0,n.useState)(o),[b,S]=(0,n.useState)({lat:r.lat,lng:r.lng}),[C,E]=(0,n.useState)(l),L=_();return((0,n.useEffect)(()=>{if(t){f(o),S({lat:r.lat,lng:r.lng}),E(l);let e=U.apiKey?{isValid:!0}:{isValid:!1,error:U.errors.apiKeyMissing};e.isValid||console.error("Google Maps configuration error:",e.error)}},[t,o,r.lat,r.lng,l]),t)?(0,i.jsx)(k.A,{id:"MapCanvasInterface",visible:t,onClose:s,onBackdropClick:s,slideFrom:"center",className:P().MapPanelInner,header:h("mapCanvas.modalTitle"),children:(0,i.jsx)(a.c4,{apiKey:U.apiKey,libraries:U.libraries,children:(0,i.jsxs)("div",{className:P().PanelContent,children:[(0,i.jsx)(p.A,{variant:"text1",children:h("mapCanvas.subtitle")}),(0,i.jsx)(R,{fieldId:"mapCanvas-panel-field",showEditButton:!1,onClearOverride:()=>{f(""),S(w),E(14)},localAddress:v,setLocalAddress:f,setLocalCenter:S,...e}),(0,i.jsx)("div",{className:P().Map,children:(0,i.jsx)(a.T5,{center:b,zoom:C,mapId:U.mapStyle.styleId,style:{width:"100%",height:"100%"},disableDefaultUI:!0,zoomControl:!0,gestureHandling:"greedy",onCenterChanged:e=>{var t;(null==e||null==(t=e.detail)?void 0:t.center)&&S({lat:e.detail.center.lat,lng:e.detail.center.lng})},onZoomChanged:e=>{var t;(null==e||null==(t=e.detail)?void 0:t.zoom)&&E(e.detail.zoom)}})}),(0,i.jsxs)("div",{className:P().Actions,children:[(0,i.jsx)(x.A,{variant:"link",className:P().cancelButton,onClick:()=>{s()},children:h("mapCanvas.cancelButtonText")}),(0,i.jsx)(x.A,{variant:"primary",className:P().confirmButton,onClick:()=>{if(u(v),d(b,C),!v||y(b.lat,b.lng)){let{instanceKey:t,id:r,uid:n}=e;t&&g[t]&&m(t,r,n,"")}c(L)},children:h("mapCanvas.confirmButtonText")})]})]})})}):null},T=e=>{let{instanceKey:t,id:r,uid:i,catalogProduct:a}=e,l=(0,I.u)(e=>e.updateTextOptionSelection),o=j(e=>e.mapyURL),s=j(e=>e.selectedAddress),c=j(e=>e.restoreFromMapyURL),d=j(e=>e.reverseGeocode),u=j(e=>e.setAddress),m=j(e=>e.mapCenter),p=(0,I.u)(e=>e.itemEditorsList[t]),g=_();return(0,n.useEffect)(()=>
1{if(!p||!a)return;let e=p.userSelections.find(e=>e.category_uid===i&&e.value);if((null==e?void 0:e.value)&&String(e.value)!==o&&""!==String(e.value)&&(!s||y(m.lat,m.lng))){let t=String(e.value),r=t.match(/address:\s*([^,]*(?:,[^,]*)*?)(?:,\s*mapyURL:|$)/),n=t.match(/mapyURL:\s*(.+?)(?:,\s*address:|$)/),i=r?r[1].trim():"",a=n?n[1].trim():"";a&&c(a),i&&u(i)}},[p,a,i,c,o,s,m,u]),(0,n.useEffect)(()=>{if(!g||!m||s)return;let e=!y(m.lat,m.lng),t=!(null==p?void 0:p.userSelections.find(e=>e.category_uid===i&&e.value&&String(e.value).includes("address:")));e&&!s&&t&&d(m.lat,m.lng,g)},[g,m,s,d,p,i]),(0,n.useEffect)(()=>{p&&l(t,r,i,"mapyURL: ".concat(o,", address: ").concat(s))},[o,r,i,t,l,p,s]),null},z=(0,n.memo)(e=>{let{uid:t,instanceKey:r}=e,o=(0,l.A)(r,t);return(0,n.useEffect)(()=>{document.querySelectorAll('div[class*="field-wrapper-'.concat(t,'"]')).forEach(e=>{Array.from(e.children).forEach(e=>{let t=e.className.includes("fieldLabel_FieldWrapper"),r=e.className.includes("plugin-default");t||r||(e.style.display="none"),r&&(e.style.marginTop="0")})})},[t]),(0,i.jsx)(C,{id:o,children:(0,i.jsx)(a.c4,{apiKey:U.apiKey,libraries:U.libraries,children:(0,i.jsxs)("div",{id:"mapCanvasField",children:[(0,i.jsx)(R,{...e}),(0,i.jsx)(N,{...e}),(0,i.jsx)(T,{...e})]})})})},(e,t)=>e.uid===t.uid),B=(e,t)=>(0,n.useMemo)(()=>{if(!t)return[];let{categories:r}=t;return r?r.reduce((r,n)=>{let{labels:i,uid:a,id:l}=n;return i.find(e=>"coordinates widget"===e.name.toLowerCase())&&r.push({component:z,categoryUid:a,props:{id:l,uid:a,instanceKey:e,catalogProduct:t,category:n}}),r},[]):[]},[t])},36936:(e,t,r)=>{"use strict";r.d(t,{A:()=>eS});var n=r(14232),i=r(37876),a=r(80998),l=r(64081);let{StoreProvider:o,useStoreContext:s}=(0,r(59023).B)(e=>({pixelsToMmRatio:3.9698,ringCurrentStep:1,ringSize:null,selectedRingSize:null,selectedCountry:"US",isPopUpOpen:!1,isError:!1,currentFlow:"initView",currentOption:null,currentStep:0,steps:{1:3,2:3,3:1,4:0},scale:null,diameter:null,sliderValue:37,currentCatalogProduct:null,source:null,setPixelsToMmRatio:t=>e({pixelsToMmRatio:t},!1,"setPixelToMmRatio"),setRingCurrentStep:t=>e({ringCurrentStep:t},!1,"ringStep"),setRingSize:t=>e({ringSize:t},!1,"selectedRingSize"),setSelectedRingSize:t=>e({selectedRingSize:t},!1,"finalRingSizeSelected"),setSelectedCountry:t=>e({selectedCountry:t},!1,"seletedCountry"),setIsError:t=>e({isError:t},!1,"isError"),setScale:t=>e({scale:t},!1,"setScaleValue"),setDiameter:t=>e({diameter:t},!1,"setDiamater"),setSliderValue:t=>e({sliderValue:t},!1,"setSliderValue"),animationViewed:[],setAnimationViewed:t=>e(e=>({animationViewed:[...e.animationViewed,t]}),!1,"setAnimatedView"),setCurrentFlow:(t,r)=>e({currentFlow:t,currentOption:r,currentStep:1},!1,"setCurrentFlow"),nextStep:()=>e(e=>({currentStep:e.currentStep<e.steps[e.currentOption]?e.currentStep+1:e.currentStep}),!1,"nextStepClicked"),prevStep:()=>e(e=>({currentStep:e.currentStep>1?e.currentStep-1:e.currentStep}),!1,"prevStepClicked"),reset:()=>e({currentOption:null,currentStep:0,currentFlow:"initView",isError:!1},!1,"resetSteps"),openRingSizerPopup:()=>e({isPopUpOpen:!0},!1,"openRingSizerPopup"),closeRingSizerPopup:()=>e({isPopUpOpen:!1,isError:!1},!1,"closeRingSizerPopup"),setCurrentCatalogProduct:t=>e({currentCatalogProduct:t},!1,"setCatalogProduct"),setSource:t=>e({source:t},!1,"setSource")}),"ring_sizer",{usePersist:!0});var c=r(6936),d=r(19110);let u=()=>{let{pushToDataLayer:e}=(0,d.ur)(),t=s(e=>e.currentCatalogProduct),r=s(e=>e.currentStep),i=s(e=>e.currentFlow),a=s(e=>e.source),l=(()=>{switch(r){case 1:case 2:return 1;case 3:case 4:return 2;case 5:return 3;default:return 0}})();return{triggerDataLayer:(0,n.useCallback)(function(r,n){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return void console.error("No catalog product in Ring Sizer data layer");let{sku:s,pricing:{selling_price:c}}=t;e({event:"cart"===a?"sc_interactions":"pdp_interactions",interaction_type:r,sku:s,price:c,ring_sizer_method:n||i,ring_sizer_step:l,...o})},[e,t,a])}};var m=r(68200),p=r(89590),g=r(89944),h=r.n(g),v=r(60045),f=r(12632),_=r(88771);let x=e=>{var t,r;let{id:a,catalogProduct:o,source:d}=e,{data:{ringSizerToggle:g}}
1=(0,l.K)(e=>e.ringSizer),{t:x}=(0,_.B)("itemEditor"),{isMD:b}=(0,v.A)(),{categories:S}=o,w=s(e=>e.setCurrentCatalogProduct),y=s(e=>e.setSource),U=s(e=>e.openRingSizerPopup),{triggerDataLayer:C}=u(),j=null==(t=S.filter(e=>e.id===a)[0])?void 0:t.options;if((0,n.useEffect)(()=>{w(o),y(d)},[o,w,d,y]),!g||!j)return null;let E=null==(r=S.find(e=>e.id===a))?void 0:r.name;return(0,i.jsxs)("div",{className:h().RingSizerWrapper,onClick:e=>{b||(e.preventDefault(),e.stopPropagation())},children:[(0,i.jsx)(c.A,{variant:"headline7",className:h().Label,children:(0,i.jsx)(p.A,{className:h().RingGuide,children:E})}),(0,i.jsxs)("div",{className:h().CTA,children:[(0,i.jsx)(m.A,{name:"measuringTape"}),(0,i.jsx)(f.A,{onClick:e=>{e.stopPropagation(),U(),C("open",void 0,{element:"ring_sizer"})},className:h().RingSizerButton,variant:"link",children:(0,i.jsx)(c.A,{variant:"text1",children:x("ringSizer.mainSettings.toggleButtonText")})})]})]})};var b=r(72091);let S=e=>{var t;let{instanceKey:r,id:i,uid:a,catalogProduct:l}=e,{categories:o}=l,c=null==(t=o.filter(e=>e.id===i)[0])?void 0:t.options,d=s(e=>e.selectedRingSize),u=s(e=>e.setIsError),m=(0,b.u)(e=>e.updateOptionSelectionForSelectionFields);return(0,n.useEffect)(()=>{if(!d)return;let e=(null==c?void 0:c.find(e=>e.english_name===d.toString()))||(null==c?void 0:c.find(e=>e.english_name===(+d+.5).toString()));if(!e)return void u(!0);u(!1),m(r,null==e?void 0:e.id,a)},[d,i,a,r]),null};var w=r(852),y=r(60273),U=r.n(y);let C=()=>{let e=s(e=>e.setCurrentFlow),{triggerDataLayer:t}=u(),{t:r}=(0,_.B)("itemEditor"),n={byRing:"ring_measure",byString:"finger_measure",table:"chart_measure",initView:"ring_sizer",sizerKit:"ring_sizer"};return(0,i.jsxs)("div",{className:U().InitView,children:[(0,i.jsx)(c.A,{variant:"headline3",className:U().Title,children:r("ringSizer.mainSettings.initView.mainTitle")}),(0,i.jsxs)("div",{className:U().Menu,children:[(0,i.jsx)(c.A,{variant:"headline9",children:r("ringSizer.mainSettings.initView.menuTitle")}),(0,i.jsx)("div",{className:U().Buttons,children:[{id:1,flow:"byRing",titleKey:"byRing"},{id:2,flow:"byString",titleKey:"byFinger"},{id:3,flow:"table",titleKey:"chart"}].map(a=>(0,i.jsxs)(f.A,{onClick:()=>((r,i)=>{e(r,i),t("select",r,{element:n[r]})})(a.flow,a.id),variant:"preview",children:[(e=>{switch(e){case"byRing":return(0,i.jsx)(m.A,{name:"ring"});case"byString":return(0,i.jsx)(m.A,{name:"measuringTape"});case"table":return(0,i.jsx)(m.A,{name:"measureChart"});default:return null}})(a.flow),r("ringSizer.mainSettings.initView.menuItems.".concat(a.titleKey))]},a.flow))})]})]})};var j=r(54587),E=r.n(j),I=r(15039),A=r.n(I),R=r(99273),L=r.n(R);let P={cardAnimation:{translationKey:"calibration",gifKey:"calibrationGif"},ringAnimation:{translationKey:"ringWidget",gifKey:"ringWidgetGif"},fingerAnimation:{translationKey:"fingerWidget",gifKey:"fingerWidgetGif"}},k=e=>{let{animationName:t,isVisible:r}=e,{data:n}
1=(0,l.K)(e=>e.ringSizer),{triggerDataLayer:a}=u(),o=s(e=>e.setAnimationViewed),d=s(e=>e.animationViewed),{t:p,tArray:g}=(0,_.B)("itemEditor"),h=P[t],v=null==h?void 0:h.translationKey,x=h?n[h.gifKey]:null;if(d.includes(t)||!v||!x)return null;let b=p("ringSizer.".concat(v,".animationStep.mainTitle")),S=p("ringSizer.".concat(v,".animationStep.CTAtext")),y=p("ringSizer.".concat(v,".animationStep.toolTipText")),U=g("ringSizer.".concat(v,".animationStep.description")),C=U.length>0?U:p("ringSizer.".concat(v,".animationStep.description"));return(0,i.jsxs)(w.A,{visible:r,className:L().InfoAnimations,children:[(0,i.jsx)("div",{className:L().Top,children:(0,i.jsx)(c.A,{variant:"headline9",children:b})}),(0,i.jsx)(E(),{src:x,alt:"ring sizer animation explainer",width:375,height:360,className:A()(L().Gif,L()[t]),unoptimized:!0}),(0,i.jsxs)("div",{className:L().Bottom,children:[Array.isArray(C)?(0,i.jsx)("ol",{className:L().StepsList,children:C.map((e,t)=>(0,i.jsx)(c.A,{variant:"text1",tag:"li",children:e},t))}):(0,i.jsx)(c.A,{variant:"text1",children:C}),(0,i.jsx)(f.A,{variant:"primary",className:L().Button,onClick:()=>{o(t),a("click",void 0,{element:"ring_sizer_got_it"})},children:S}),y&&(0,i.jsxs)("div",{className:L().BottomMsg,children:[(0,i.jsx)(m.A,{name:"toolTipExclamation"}),(0,i.jsx)(c.A,{variant:"text3",tag:"span",children:y})]})]})]})};var N=r(14673),T=r.n(N),z=r(83587);r(77409);let B=e=>{let{value:t,onChange:r,step:n=1}=e,{triggerDataLayer:a}=u(),{t:l}=(0,_.B)("itemEditor");return(0,i.jsxs)("div",{className:T().SliderWrapper,children:[(0,i.jsx)("button",{type:"button",onClick:()=>{t>0&&(r(t-n),a("click",void 0,{element:"ring_sizer_scale",slider_value:t}))},"aria-label":l("ringSizer.slider.decrease"),children:(0,i.jsx)(m.A,{name:"plusMinus",variant:"minus"})}),(0,i.jsx)(z.A,{onChange:e=>r(e),className:T().Slider,value:t,step:n,ariaLabelForHandle:l("ringSizer.slider.label")}),(0,i.jsx)("button",{type:"button",onClick:()=>{t<100&&(r(t+n),a("click",void 0,{element:"ring_sizer_scale",slider_value:t}))},"aria-label":l("ringSizer.slider.increase"),children:(0,i.jsx)(m.A,{name:"plusMinus",variant:"plus"})})]})};var M=r(42796);let F=e=>{let{currentStep:t=1}=e,{t:r}=(0,_.B)("itemEditor"),n=s(e=>e.currentFlow),{pushToDataLayer:a}=(0,d.ur)(),l=[{stepId:"calibrate",title:r("ringSizer.calibration.stepTitle")},{stepId:"measure",title:r("byRing"===n?"ringSizer.ringWidget.stepTitle":"ringSizer.fingerWidget.stepTitle")},{stepId:"final-size",title:r("ringSizer.finalResult.stepTitle")}];return(0,i.jsx)(M.A,{id:"RingSizerProgressBar",steps:l,activeSteps:t,onClick:()=>{a({event:"navigation_ring_sizer_clicked"})},lastStepCheckmark:!0})};var W=r(78773),O=r.n(W);let D=()=>{let[e,t]=(0,n.useState)(0),[r,a]=(0,n.useState)(1.04),l=s(e=>e.setPixelsToMmRatio),o=s(e=>e.nextStep),{triggerDataLayer:d}=u(),m=s(e=>e.animationViewed),[p,g]=(0,n.useState)(!0),{t:h}=(0,_.B)("itemEditor");(0,n.useEffect)(()=>{m.includes("cardAnimation")&&g(!1)},[m]);let v=(0,n.useRef)(null);return(0,i.jsxs)("div",{className:O().Calibrate,children:[(0,i.jsx)(k,{animationName:"cardAnimation",isVisible:p}),(0,i.jsx)(F,{}),(0,i.jsxs)("div",{className:O().CardWrapper,children:[(0,i.jsx)("div",{className:O().Card,children:(0,i.jsx)(c.A,{variant:"headline6",className:O().CardText,children:h("ringSizer.calibration.calibrationWidget.cardText")})}),(0,i.jsxs)("div",{className:O().CardScale,style:{transform:"scale(".concat(r,")")},ref:v,children:[(0,i.jsx)("div",{className:O().indicator}),(0,i.jsx)("div",{className:O().indicator})]})]}),(0,i.jsxs)("div",{className:O().Actions,children:[(0,i.jsxs)("div",{className:O().Content,children:[(0,i.jsx)(c.A,{variant:"headline9",children:h("ringSizer.calibration.calibrationWidget.title")}),(0,i.jsx)(c.A,{variant:"text1",children:h("ringSizer.calibration.calibrationWidget.description")})]}),(0,i.jsx)(B,{value:e,onChange:e=>{let r=e/100;if(t(e),a(.26*r+1.04),v.current){let e=v.current.getBoundingClientRect().height;e>=1&&l(e/54)}}}),(0,i.jsx)("div",{className:O().Action,children:(0,i.jsx)(f.A,{variant:"primary",onClick:()=>{o(),d("back",void 0,{element:"ring_sizer_next"})},className:O().Next,children:h("ringSizer.calibration.calibrationWidget.nextButtonText")})})]})]})},K=[{US:3,EU:44,UK:"F",mm:14.07,inch:.55},{US:3.5,EU:46,UK:"G",mm:14.48,inch:.57},{US:4,EU:48,UK:"H",mm:14.88,inch:.586},{US:4.5,EU:49,UK:"I",mm:15.29,inch:.602},{US:5,EU:50,UK:"J",mm:15.7,inch:.618},{US:5.5,EU:51,UK:"K",mm:16.1,inch:.634},{US:6,EU:52,UK:"L",mm:16.51,inch:.65},{US:6.5,EU:53,UK:"M",mm:16.92,inch:.666},{US:7,EU:54,UK:"N",mm:17.32,inch:.682},{US:7.5,EU:56,UK:"O",mm:17.73,inch:.698},{US:8,EU:57,UK:"P",mm:18.14,inch:.714},{US:8.5,EU:58,UK:"Q",mm:18.54,inch:.73},{US:9,EU:60,UK:"R",mm:18.95,inch:.746},{US:9.5,EU:61,UK:"S",mm:19.35,inch:.762},{US:10,EU:62,UK:"T",mm:19.76,inch:.778},{US:10.5,EU:64,UK:"U",mm:20.17,inch:.794},{US:11,EU:66,UK:"V",mm:20.57,inch:.81},{US:11.5,EU:67,UK:"W",mm:20.98,inch:.826},{US:12,EU:68,UK:"X",mm:21.39,inch:.842},{US:12.5,EU:69,UK:"Y",mm:21.79,inch:.858},{US:13,EU:70,UK:"Z",mm:22.2,inch:.874},{US:13.5,EU:72,UK:"Z2",mm:22.61,inch:.89},{US:14,EU:73,UK:"Z3",mm:23.01,inch:.906}],V=[{US:3,EU:44,UK:"F",mm:44.2,inch:1.74},{US:3.5,EU:46,UK:"G",mm:45.5,inch:1.79},{US:4,EU:48,UK:"H",mm:46.8,inch:1.84},{US:4.5,EU:49,UK:"I",mm:48,inch:1.89},{US:5,EU:50,UK:"J",mm:49.3,inch:1.94},{US:5.5,EU:51,UK:"K",mm:50.6,inch:1.99},{US:6,EU:52,UK:"L",mm:52,inch:2.04},{US:6.5,EU:53,UK:"M",mm:53.1,inch:2.09},{US:7,EU:54,UK:"N",mm:54.4,inch:2.14},{US:7.5,EU:56,UK:"O",mm:55.7,inch:2.19},{US:8,EU:57,UK:"P",mm:57,inch:2.24},{US:8.5,EU:58,UK:"Q",mm:58.3,inch:2.29},{US:9,EU:60,UK:"R",mm:59.5,inch:2.34},{US:9.5,EU:61,UK:"S",mm:60.8,inch:2.39},{US:10,EU:62,UK:"T",mm:62.1,inch:2.44},{US:10.5,EU:64,UK:"U",mm:63.4,inch:2.49},{US:11,EU:66,UK:"V",mm:64.6,inch:2.54},{US:11.5,EU:67,UK:"W",mm:65.9,inch:2.59},{US:12,EU:68,UK:"X",mm:67.2,inch:2.65},{US:12.5,EU:69,UK:"Y",mm:68.5,inch:2.7},{US:13,EU:70,UK:"Z",mm:69.7,inch:2.75},{US:13.5,EU:72,UK:"Z2",mm:71,inch:2.8},{US:14,EU:73,UK:"Z3",mm:72.3,inch:2.85}],G=(e,t)=>{let r=parseFloat(t),n="ring"===e?K:V;for(let e=0;e<n.length;e++)if(r<=n[e].mm)return n[e];return n[n.length-1]},Z=(e,t,r)=>{let i={ring:{initDiam:"17.32",elementHeight:116,initScale:.6},finger:{initDiam:"54.4",elementHeight:240,initScale:1.24}},a=s(e=>e.scale),l=s(e=>e.setScale),o=s(e=>e.diameter),c=s(e=>e.setDiameter),d=s(e=>e.sliderValue),m=s(e=>e.setSliderValue),p=s(e=>e.ringSize),g=s(e=>e.setRingSize),h=s(e=>e.pixelsToMmRatio),v=s(e=>e.setSelectedRingSize),f=s(e=>e.nextStep),{triggerDataLayer:_}=u();return(0,n.useEffect)(()=>
1{if(!o||!a){let n=.37*(t-e)+e;c(n.toFixed(2)),l(n/(i[r].elementHeight/h)),g(G(r,i[r].initDiam).US)}},[h]),{handleSliderChange:n=>{let a=n/100*(t-e)+e;l(a/(i[r].elementHeight/h)),m(n),c(a.toFixed(2)),g(G(r,a.toFixed(2)).US)},scale:a,sliderValue:d,diameter:o,selectRingSizeHandler:()=>{p&&(v(p),f(),_("click",void 0,{element:"ring_sizer_apply"}))}}};var q=r(29457),H=r.n(q);let X=()=>{let e=(0,n.useRef)(null),t=s(e=>e.animationViewed),[r,a]=(0,n.useState)(!0),{handleSliderChange:l,scale:o,sliderValue:d,diameter:u,selectRingSizeHandler:m}=Z(14.07,23.01,"ring"),{t:p}=(0,_.B)("itemEditor");return(0,n.useEffect)(()=>{t.includes("ringAnimation")&&a(!1)},[t]),(0,i.jsxs)("div",{className:H().RingSizer,children:[(0,i.jsx)(k,{animationName:"ringAnimation",isVisible:r}),(0,i.jsx)(F,{currentStep:2}),(0,i.jsx)("div",{className:H().RingWrapper,children:(0,i.jsx)("div",{className:H().Ring,style:{transform:"scale(".concat(o,")")},ref:e,children:(0,i.jsx)(c.A,{variant:"text1",children:"".concat(u," ").concat(p("ringSizer.ringWidget.widget.innerRingMeasureText"))})})}),(0,i.jsxs)("div",{className:H().Controls,children:[(0,i.jsxs)("div",{className:H().Content,children:[(0,i.jsx)(c.A,{variant:"headline9",children:p("ringSizer.ringWidget.widget.title")}),(0,i.jsx)(c.A,{variant:"text1",children:p("ringSizer.ringWidget.widget.description")})]}),(0,i.jsx)(B,{value:d,onChange:l}),(0,i.jsx)("div",{className:H().ButtonWrapper,children:(0,i.jsx)(f.A,{variant:"primary",onClick:m,children:p("ringSizer.ringWidget.widget.CTAtext")})})]})]})};var Q=r(26725),Y=r.n(Q),J=r(26635);let $=e=>{let{countries:t}=e,r=s(e=>e.setSelectedCountry),a=s(e=>e.selectedCountry),{triggerDataLayer:l}=u(),{data:o}=(0,J.Ay)(e=>e.country);return(0,n.useEffect)(()=>{r((e=>"us"===e||"mx"===e?"US":"uk"===e||"ie"===e?"UK":"EU")(o))},[]),(0,i.jsx)("div",{className:Y().CountryToggle,children:t.map(e=>(0,i.jsx)("button",{type:"button",className:A()(Y().Button,{[Y().Active]:a===e}),"aria-pressed":a===e,onClick:()=>(e=>{r(e),l("select",void 0,{element:"ring_sizer_metric",value:e})})(e),children:(0,i.jsx)(c.A,{variant:"text4",tag:"span",className:Y().Label,children:"UK"===e?"UK/AU":e})},e))})};var ee=r(72713),et=r.n(ee);let er=e=>{var t,r,n,a;let{catalogProduct:l}=e,{categories:o}=l,{t:d}=(0,_.B)("itemEditor"),p=s(e=>e.selectedRingSize),g=s(e=>e.reset),h=s(e=>e.selectedCountry),v=s(e=>e.closeRingSizerPopup),x=s(e=>e.isError),b=null!=(a=null==(n=((e,t)=>{if(null===e)throw Error("Size cannot be null in getRingSizeObject.");let r="string"==typeof e?parseFloat(e):e,n=null==t?void 0:t.find(e=>e===r);if(!n){let e=r+.5;n=null==t?void 0:t.find(t=>t===e)}if(void 0!==n){let e=K.find(e=>e.US===n);if(e)return e}return K.find(t=>t.US===e)})(p,null==o||null==(r=o.find(e=>e.labels.find(e=>"ring_sizer"===e.name.toLowerCase())))||null==(t=r.options)?void 0:t.map(e=>parseFloat(e.english_name))))?void 0:n[h])?a:"7",{triggerDataLayer:S}=u();return(0,i.jsxs)("div",{className:A()(et().FinalResult,"final-result"),children:[(0,i.jsx)(F,{currentStep:3}),(0,i.jsxs)("div",{className:et().Results,children:[(0,i.jsx)($,{countries:["US","UK","EU"]}),(0,i.jsx)(c.A,{variant:"headline9",children:d("ringSizer.finalResult.title")}),(0,i.jsx)(c.A,{variant:"headline9",className:et().Size,children:"".concat(h," ").concat(b)}),(0,i.jsxs)("div",{className:et().PillMsg,children:[(0,i.jsx)(m.A,{name:"measuringTape"}),(0,i.jsx)(c.A,{variant:"text2",children:d("ringSizer.finalResult.pillMessageText")})]}),x&&(0,i.jsx)(c.A,{variant:"text1",className:et().Error,children:d("ringSizer.finalResult.errorMessage")})]}),(0,i.jsxs)("div",{className:et().Actions,children:[(0,i.jsx)(f.A,{variant:"primary",onClick:x?v:()=>{S("select",void 0,{element:"ring_sizer_size"}),v()},className:et().CTA,children:d(x?"ringSizer.finalResult.errorButtonText":"ringSizer.finalResult.selectSizeButtonText")}),(0,i.jsx)(f.A,{variant:"link",onClick:()=>{g(),S("back",void 0,{element:"ring_sizer"})},className:et().Reset,children:(0,i.jsx)(c.A,{variant:"text2",children:d("ringSizer.finalResult.resetWidgetButtonText")})})]})]})},en=e=>{let{catalogProduct:t}=e;switch(s(e=>e.currentStep)){case 1:return(0,i.jsx)(D,{});case 2:return(0,i.jsx)(X,{});case 3:return(0,i.jsx)(er,{catalogProduct:t})}};var ei=r(89650),ea=r.n(ei);let el=()=>{let e=(0,n.useRef)(null),{handleSliderChange:t,scale:r,sliderValue:a,diameter:l,selectRingSizeHandler:o}=Z(44.2,72.3,"finger"),d=s(e=>
1e.animationViewed),[u,m]=(0,n.useState)(!0),{t:p,tArray:g}=(0,_.B)("itemEditor"),h=g("ringSizer.fingerWidget.widget.instructions");return(0,n.useEffect)(()=>{d.includes("fingerAnimation")&&m(!1)},[d]),(0,i.jsxs)("div",{className:ea().FingerSizer,children:[(0,i.jsx)(k,{animationName:"fingerAnimation",isVisible:u}),(0,i.jsx)(F,{currentStep:2}),(0,i.jsx)("div",{className:ea().Main,children:(0,i.jsxs)("div",{className:ea().Widget,children:[(0,i.jsxs)("div",{className:ea().Content,children:[(0,i.jsx)(c.A,{variant:"headline9",children:p("ringSizer.fingerWidget.widget.description")}),(0,i.jsx)("ol",{children:null==h?void 0:h.map(e=>(0,i.jsx)(c.A,{variant:"text1",tag:"li",children:e},e))})]}),(0,i.jsxs)("div",{className:ea().StringWrapper,children:[(0,i.jsx)("div",{className:ea().String,style:{transform:"scale(".concat(r,")")},ref:e}),(0,i.jsx)(c.A,{variant:"text1",children:"".concat(l," ").concat(p("ringSizer.fingerWidget.widget.innerFingerMeasureText"))})]})]})}),(0,i.jsxs)("div",{className:ea().Controls,children:[(0,i.jsx)(B,{value:a,onChange:t}),(0,i.jsx)("div",{className:ea().ButtonWrapper,children:(0,i.jsx)(f.A,{variant:"primary",onClick:o,children:p("ringSizer.fingerWidget.widget.CTAtext")})})]})]})},eo=e=>{let{catalogProduct:t}=e;switch(s(e=>e.currentStep)){case 1:return(0,i.jsx)(D,{});case 2:return(0,i.jsx)(el,{});case 3:return(0,i.jsx)(er,{catalogProduct:t})}};var es=r(27477),ec=r.n(es);let ed=e=>{let{}=e,t=s(e=>e.prevStep),r=s(e=>e.reset),n=s(e=>e.currentStep),{triggerDataLayer:a}=u(),{t:l}=(0,_.B)("itemEditor");return(0,i.jsxs)("button",{type:"button",onClick:()=>{1===n&&r(),t(),a("back",void 0,{element:"ring_sizer"})},className:ec().Button,children:[(0,i.jsx)(m.A,{name:"arrow",direction:"inline-start"}),(0,i.jsx)(c.A,{variant:"text2",tag:"span",className:ec().Text,children:l("ringSizer.mainSettings.backButtonText")})]})};var eu=r(74152),em=r.n(eu),ep=r(97168),eg=r.n(ep);let eh=e=>{let{values:t,headers:r,typographyVariantCol1:n="text1"}=e;return(0,i.jsxs)("table",{className:eg().Table,children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:r.map((e,t)=>(0,i.jsx)("th",{className:eg().Header,children:(0,i.jsx)(c.A,{variant:"text2",children:e})},t))})}),(0,i.jsx)("tbody",{children:t.map((e,t)=>(0,i.jsx)("tr",{children:Object.values(e).map((e,t)=>(0,i.jsx)("td",{children:(0,i.jsx)(c.A,{variant:0===t?n:"text1",children:String(e)})},t))},t))})]})};var ev=r(204),ef=r.n(ev);let e_=()=>{let e=(e=>K.map(t=>({[e]:t[e],size:"".concat(t.inch,'" / ').concat(t.mm," mm")})))(s(e=>e.selectedCountry)),{t}=(0,_.B)("itemEditor"),r=[t("ringSizer.chartWidget.firstColumnTitle"),t("ringSizer.chartWidget.secondColumnTitle")];return(0,i.jsxs)("div",{className:ef().SizeChart,children:[(0,i.jsxs)("div",{className:ef().Actions,children:[(0,i.jsx)(ed,{}),(0,i.jsx)($,{countries:["US","UK","EU"]})]}),(0,i.jsx)(eh,{headers:r,values:e,typographyVariantCol1:"text2"})]})},ex=e=>{let{catalogProduct:t}=e,r=s(e=>e.currentFlow),a=s(e=>e.isPopUpOpen),o=s(e=>e.closeRingSizerPopup);(e=>{(0,n.useEffect)(()=>{let t=e=>{e.touches.length>1&&e.cancelable&&e.preventDefault()};return e&&document.addEventListener("touchmove",t,{passive:!1}),()=>{document.removeEventListener("touchmove",t)}},[e])})(a);let{triggerDataLayer:c}=u(),{data:{ringSizerToggle:d}}=(0,l.K)(e=>e.ringSizer),{t:m}=(0,_.B)("itemEditor"),p=()=>{o(),c("close",r,{element:"ring_sizer"})};return d?(0,i.jsx)(w.A,{id:"RingSizer",visible:a,onClose:p,onBackdropClick:p,className:em().RingSizer,header:(()=>{switch(r){case"initView":return m("ringSizer.mainSettings.panelTitle");case"table":return m("ringSizer.chartWidget.chartPanelTitle");default:return(0,i.jsx)(ed,{})}})(),children:(()=>{switch(r){case"initView":return(0,i.jsx)(C,{});case"byRing":return(0,i.jsx)(en,{catalogProduct:t});case"byString":return(0,i.jsx)(eo,{catalogProduct:t});case"table":return(0,i.jsx)(e_,{});default:return null}})()}):null},eb=(0,n.memo)(e=>{let{uid:t,instanceKey:r}=e,n=(0,a.A)(r,t);return(0,i.jsxs)(o,{id:n,children:[(0,i.jsx)(x,{...e}),(0,i.jsx)(ex,{...e}),(0,i.jsx)(S,{...e})]})},(e,t)=>e.uid===t.uid),eS=(e,t,r)=>(0,n.useMemo)(()=>
1{if(!t)return[];let{categories:n}=t;return n.reduce((n,i)=>{let{labels:a,uid:l,id:o}=i;return a.find(e=>"ring_sizer"===e.name.toLowerCase())&&n.push({component:eb,location:"field-name",categoryUid:l,props:{id:o,uid:l,instanceKey:e,catalogProduct:t,source:r}}),n},[])},[t,r])},37713:(e,t,r)=>{"use strict";r.d(t,{l:()=>o});var n=r(14232),i=r(30236),a=r(88771),l=r(52408);let o=e=>{let{t}=(0,a.B)("itemEditor"),{maxSizeMB:r=l.sO,minResolution:o=l.yb,targetResolution:s=l.d3,validationMode:c="block",onFileAccepted:d,onFileRejected:u,onFileSelected:m,disabled:p=!1}=e,g=(0,n.useCallback)(async(e,n)=>{if(n.length>0){let e=n[0].errors.map(e=>"file-too-large"===e.code?t("photoUpload.errors.fileTooLarge",{maxSize:r}):"file-invalid-type"===e.code?t("photoUpload.errors.invalidFileType"):e.message);null==u||u(e);return}let i=e[0];if(!i)return;null==m||m();let a=(0,l.we)(i);if(!a.isValid){let e=[];"wrongFileFormat"===a.errorReason&&e.push(t("photoUpload.errors.invalidFormat")),null==u||u(e);return}try{let e=await (0,l.p_)(i,c,{imageTooSmall:(e,r,n)=>t("photoUpload.errors.imageTooSmall",{width:e,height:r,min:n}),imageTooLarge:(e,r,n)=>t("photoUpload.errors.imageTooLarge",{width:e,height:r,max:n}),lowResImage:(e,r,n)=>t("photoUpload.errors.lowResImage",{width:e,height:r,target:n})});if(e.isAboveMaximum){null==u||u(e.warnings);return}if(e.isBelowMinimum){if("warn"===c)return void d(i,e.warnings);null==u||u(e.warnings);return}if(e.isBelowTarget&&e.warnings.length>0)return void d(i);d(i)}catch(e){null==u||u([t("photoUpload.errors.validationFailed")])}},[r,c,d,u,m,t]),{getRootProps:h,getInputProps:v,isDragActive:f,open:_}=(0,i.VB)({accept:{"image/*":[]},maxSize:1024*r*1024,multiple:!1,disabled:p,onDrop:g});return{getRootProps:h,getInputProps:v,isDragActive:f,open:_}}},40581:e=>{e.exports={MapPanelInner:"mapCanvasInterface_MapPanelInner__vXcON",PanelContent:"mapCanvasInterface_PanelContent__xfuGA",Map:"mapCanvasInterface_Map__u4Xzq",Actions:"mapCanvasInterface_Actions__nW4gc"}},41361:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var n=r(37876);r(14232);var i=r(15039),a=r.n(i),l=r(68200),o=r(80110),s=r.n(o);let c=[{method:"zoom",option:.1,title:"Zoom In",icon:"zoomIn"},{method:"zoom",option:-.1,title:"Zoom Out",icon:"zoomOut"},{method:"rotate",option:90,title:"Rotate",icon:"rotate"}],d=e=>{let{changed:t,className:r}=e;return(0,n.jsx)("div",{className:a()(s().PositionControls,r),children:c.map(e=>{let{method:r,option:i,title:a,icon:o}=e;return(0,n.jsx)("button",{type:"button","data-type":"location","data-method":r,"data-option":i,title:a,onClick:()=>t(r,i,a),children:(0,n.jsx)(l.A,{name:o})},a)})})}},42796:(e,t,r)=>{"use strict";r.d(t,{A:()=>p});var n=r(37876),i=r(14232),a=r(15039),l=r.n(a),o=r(6936),s=r(74787),c=r.n(s),d=r(31262),u=r(35353),m=r(68200);let p=e=>{let{steps:t,id:r,className:a,activeSteps:s,design:p="steps",onClick:g,lastStepCheckmark:h=!1}=e;return((0,i.useEffect)(()=>{document.documentElement.style.setProperty("--currentStep","".concat(s)),document.documentElement.style.setProperty("--steps","".concat(null==t?void 0:t.length))},[t]),t)?(0,n.jsxs)("div",{className:l()({[c().StarsBar]:"stars"===p},c().ProgressBar,a),id:r,children:[(0,n.jsx)("div",{className:c().ProgressStepsBar,id:"ProgressStepsBar",children:(0,n.jsx)("span",{className:c().ProgressFullBar,id:"ProgressFullBar"})}),(0,n.jsx)("div",{className:c().StepsWrapper,children:t.map((e,r)=>{let{stepId:i,title:a,link:v}=e,f=r+1===t.length&&h,_=(0,n.jsxs)(n.Fragment,{children:["stars"===p?(0,n.jsx)(m.A,{name:"star",variant:"full"}):(0,n.jsx)(o.A,{className:c().StepNumber,variant:"text4",children:f?(0,n.jsx)(u.A,{className:c().LastStepCheckmark}):r+1}),a&&(0,n.jsx)(o.A,{className:l()(c().StepDescription,{[c().Current]:r===s-1}),variant:"text3",children:a})]});return v&&r!==s-1?(0,n.jsx)(d.A,{href:v,className:l()(c().StepWrapper,{[c().Active]:r<=s-1}),onClick:g,children:_},i):(0,n.jsx)("div",{className:l()(c().StepWrapper,{[c().Active]:r<=s-1}),onClick:g,children:_},i)})})]}):null}},43718:e=>{e.exports={ProductMediaZoom:"productMediaZoom_ProductMediaZoom__YrIhA",Content:"productMediaZoom_Content__EmSX5",Image:"productMediaZoom_Image__tijTy"}},45899:(e,t,r)=>{"use strict";r.d(t,{M:()=>n});let n=async e=>{let t=await fetch("/api-next/ai/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await t.json().catch(()=>null);if(!t.ok){let e=(null==r?void 0:r.upstream)?" - ".concat(JSON.stringify(r.upstream)):"";throw Error("".concat((null==r?void 0:r.message)||"AI generate failed (".concat(t.status,")")).concat(e))}return r}},46821:(e,t,r)=>{"use strict";r.d(t,{A:()=>
1o});var n=r(19110),i=r(78539),a=r(21135),l=r(75582);let o=()=>{let{pushToDataLayer:e}=(0,n.ur)(),{getPageType:t}=(0,i.A)(),{getCartEcommerceData:r}=(0,a.A)(),o=()=>({event:"floating_cart",page_type:t()});return{triggerCartPanelOpenedEvent:t=>{let n=l.A.getState().totalItems;e({...o(),interaction_type:"impression",trigger_action:t,ecommerce:r(0===n)})},triggerCartPanelDismissedEvent:t=>{e({...o(),interaction_type:"dismiss",trigger_action:t})},triggerContinueToCheckoutEvent:()=>{e({...o(),interaction_type:"click",trigger_action:"view_cart_link"})}}}},50255:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(14232);let i=new Map,a=e=>{let[t,r]=(0,n.useState)(()=>{var t;return null!=(t=i.get(e))?t:null});return(0,n.useEffect)(()=>{if(!e)return;let t=i.get(e);if(t)return void r(t);r(null);let n=!0;return fetch("https://vimeo.com/api/oembed.json?url=".concat(encodeURIComponent("https://vimeo.com/".concat(e)),"&width=640")).then(e=>e.json()).then(t=>{if(n&&t.thumbnail_url){var a;a=t.thumbnail_url,i.size>=100&&i.delete(i.keys().next().value),i.set(e,a),r(t.thumbnail_url)}}).catch(e=>console.warn("Vimeo thumbnail fetch error:",e)),()=>{n=!1}},[e]),t}},50534:(e,t,r)=>{"use strict";r.d(t,{VB:()=>i,b6:()=>a,h2:()=>o,vt:()=>l});let n=new Map,i=e=>{var t;return null!=(t=n.get(e))?t:null},a=(e,t)=>{n.set(e,t)},l=e=>{let t=n.get(e);t&&(URL.revokeObjectURL(t),n.delete(e))},o=()=>{n.forEach(e=>URL.revokeObjectURL(e)),n.clear()}},50604:e=>{e.exports={AutocompleteField:"autocomplete_AutocompleteField__U_Q7D",Dropdown:"autocomplete_Dropdown__VjRjd",Option:"autocomplete_Option__Thtlt",Focused:"autocomplete_Focused__gYgaP",Disabled:"autocomplete_Disabled__KIQXq",OptionLabel:"autocomplete_OptionLabel__oA07v",LoadingState:"autocomplete_LoadingState__ENgiq",LoadingText:"autocomplete_LoadingText__u4IQJ",MiniLabel:"autocomplete_MiniLabel__m363g",NoLabel:"autocomplete_NoLabel__J0XC_",Error:"autocomplete_Error__lXE5z",HasDropdown:"autocomplete_HasDropdown__ItjzB"}},51286:(e,t,r)=>{"use strict";r.d(t,{A:()=>g});var n=r(37876),i=r(14232),a=r(98477),l=r(54845),o=r(15039),s=r.n(o),c=r(68200),d=r(96617),u=r.n(d),m=r(89534);let p=(0,n.jsx)(c.A,{name:"zoomCursor"}),g=e=>{var t;let{children:r,disabled:o=!1,minScale:c=1,maxScale:d=4,doubleClickScale:g=2,wheelZoom:h=!0,resetTriggers:v,zoomId:f,onZoomChange:_,wrapperClassName:x,contentClassName:b,customCursor:S=p}=e,w=(0,i.useRef)(null),y=(0,i.useRef)(null),U=(0,i.useRef)(null),C=(0,i.useRef)(null),j=(0,i.useRef)({x:0,y:0}),E=(0,i.useRef)(0),I=(0,i.useId)(),A=null!=f?f:I,{activeZoomId:R=null,setActiveZoomId:L}=null!=(t=(0,m.N)())?t:{},[P,k]=(0,i.useState)(null),N=(0,i.useRef)(null);N.current=P;let[T,z]=(0,i.useState)(!1),[B,M]=(0,i.useState)(!1),[F,W]=(0,i.useState)(!1),[O,D]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=window.matchMedia("(any-hover: hover) and (any-pointer: fine)"),t=()=>D(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let K=!!S,[V,G]=(0,i.useState)(!1),Z=K&&V&&O&&B&&!F,q=(0,i.useRef)({isDragging:F,activeZoomId:R,onZoomChange:_,wheelZoom:h});q.current={isDragging:F,activeZoomId:R,onZoomChange:_,wheelZoom:h};let H=(0,i.useCallback)(()=>{let e=C.current;e&&(E.current+=1,e.reset({animate:!1}))},[]);(0,i.useEffect)(()=>{let e=w.current;if(o||!e||!(e instanceof HTMLElement)||!e.isConnected)return;let t=e.parentElement;if(!t)return;let r=(0,l.A)(e,{minScale:c,maxScale:d,contain:"outside",panOnlyWhenZoomed:!0,cursor:"zoom-in",animate:!1,touchAction:"pan-y",handleStartEvent:e=>{var t,r;(null!=(r=null==(t=C.current)?void 0:t.getScale())?r:c)>c+.01&&e.preventDefault()}});C.current=r,E.current=0;let n=function(e){var t,r;let n=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=e>c+.01;z(i),null==(t=(r=q.current).onZoomChange)||t.call(r,e,i,n),i?null==L||L(A):q.current.activeZoomId===A&&(null==L||L(null))},i=e=>{var t;let{scale:r}=null!=(t=e.detail)?t:{};"number"==typeof r&&n(r)},a=()=>{let e=E.current>0;e&&(E.current-=1),n(c,!e)},s=[],u=new Set,m=e=>{r.getScale()>c+.01&&e.stopPropagation()},p=e=>{if(0!==e.button)return;let t=e.pointerId,n=e.clientX,i=e.clientY,a=!1,l={multi:u.size>0};
1l.multi&&u.forEach(e=>{e.multi=!0}),u.add(l);let o=e=>{if(e.pointerId!==t||a)return;let l=e.clientX-n,o=e.clientY-i;!(l*l+o*o<=25)&&(a=!0,r.getScale()>c+.01&&W(!0))},m=()=>{document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",p),document.removeEventListener("pointercancel",h),u.delete(l);let e=s.indexOf(m);-1!==e&&s.splice(e,1)},p=e=>{if(e.pointerId!==t)return;let n=l.multi;m(),W(!1),a||n||(r.getScale()>c+.01?r.reset({animate:!1}):r.zoomToPoint(Math.min(g,d),{clientX:e.clientX,clientY:e.clientY}))},h=e=>{e.pointerId===t&&(m(),W(!1))};s.push(m),document.addEventListener("pointermove",o),document.addEventListener("pointerup",p),document.addEventListener("pointercancel",h)},h=e=>{if(!t.contains(e.target))return;if(e.ctrlKey){e.preventDefault(),e.stopPropagation(),r.zoomWithWheel(e);return}if(!q.current.wheelZoom||!(1===e.deltaMode||0===e.deltaX&&Number.isInteger(e.deltaY)&&0!==e.deltaY))return;let n=r.getScale();((0===e.deltaY&&e.deltaX?e.deltaX:e.deltaY)>0?n<=c+.01:n>=d-.01)||(e.preventDefault(),e.stopPropagation(),r.zoomWithWheel(e))};return e.addEventListener("panzoomzoom",i),e.addEventListener("panzoomreset",a),e.addEventListener("pointerdown",p),e.addEventListener("mousedown",m),e.addEventListener("touchstart",m,{passive:!0}),t.addEventListener("wheel",h,{passive:!1}),()=>{e.removeEventListener("panzoomzoom",i),e.removeEventListener("panzoomreset",a),e.removeEventListener("pointerdown",p),e.removeEventListener("mousedown",m),e.removeEventListener("touchstart",m),t.removeEventListener("wheel",h),[...s].forEach(e=>e());try{r.destroy()}catch(e){}C.current=null}},[o,c,d,g,A,L]),(0,i.useEffect)(()=>{if(o||!T)return;let e=e=>{var t;if("Escape"!==e.key)return;let r=w.current;r&&(Array.from(document.querySelectorAll("dialog[open]")).some(e=>{if(e.contains(r))return!1;try{return e.matches(":modal")}catch(e){return!0}})||(e.preventDefault(),null==(t=C.current)||t.reset({animate:!1})))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[o,T]),(0,i.useEffect)(()=>{var e;if(o||!R||R===A)return;let t=C.current;(null!=(e=null==t?void 0:t.getScale())?e:0)>c+.01&&H()},[R,A,c,o,H]);let X=(null!=v?v:[]).map(String).join("|");if((0,i.useEffect)(()=>{o||H()},[o,X,H]),(0,i.useEffect)(()=>{let e=y.current;if(!T||o||!e)return;let t=0,r=0,n=!1,i=null,a=a=>{let l=C.current;if(!l)return;if(q.current.isDragging){n=!1;return}let o=e.getBoundingClientRect(),s=(a.clientX-o.left)/o.width,c=(a.clientY-o.top)/o.height,d=l.getScale();d!==i&&(n=!1,i=d);let u=(.5-s)*(d-1)*o.width/d,m=(.5-c)*(d-1)*o.height/d;if(!n){let e=l.getPan();t=e.x-u,r=e.y-m,n=!0}l.pan(u+t,m+r)};return e.addEventListener("mousemove",a),()=>e.removeEventListener("mousemove",a)},[T,o]),(0,i.useEffect)(()=>{var e,t;K&&k(null!=(t=null==(e=y.current)?void 0:e.closest("dialog"))?t:document.body)},[K,o]),(0,i.useEffect)(()=>{let e=U.current;if(!e||V)return;let t=()=>{e.querySelector("svg *")&&G(!0)};t();let r=new MutationObserver(t);return r.observe(e,{childList:!0,subtree:!0}),()=>r.disconnect()},[V,P,O]),(0,i.useEffect)(()=>{let e=y.current;if(!K||!e)return;let t=e=>{if("mouse"!==e.pointerType)return;let t=U.current;t&&(t.style.left="".concat(e.clientX-j.current.x-14,"px"),t.style.top="".concat(e.clientY-j.current.y-14,"px")),M(!0)},r=e=>{let r=N.current,n=r&&r!==document.body?r.getBoundingClientRect():null;j.current=n?{x:n.left,y:n.top}:{x:0,y:0},t(e)},n=e=>{"mouse"===e.pointerType&&M(!1)};return e.addEventListener("pointermove",t),e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{e.removeEventListener("pointermove",t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}},[K,o]),o)return(0,n.jsx)("div",{className:s()(u().Wrapper,x),children:r});let Q=F?"grabbing":Z?"none":T?"zoom-out":"zoom-in",Y=T?"none":"pan-y";return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{ref:y,className:s()(u().Wrapper,x),style:{cursor:Q,touchAction:Y},children:(0,n.jsx)("div",{ref:w,className:s()(u().Content,b),style:{cursor:Q,touchAction:Y},children:r})}),K&&O&&P&&(0,a.createPortal)((0,n.jsx)("div",{ref:U,className:s()(u().CursorOverlay,T&&u().Zoomed),style:{display:Z?"flex":"none"}
1,"aria-hidden":!0,children:S}),P)]})}},51962:(e,t,r)=>{"use strict";r.d(t,{Ng:()=>o,hN:()=>l,zF:()=>s,wr:()=>c});var n=r(32846),i=r.n(n);let a=function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"image/jpeg";return new Promise((i,a)=>{let l=new Image;l.onload=()=>{let e=document.createElement("canvas"),o=e.getContext("2d");if(!o)return void a(Error("Could not get canvas context"));e.width=t,e.height=r;let s=Math.min(t/l.width,r/l.height),c=l.width*s,d=l.height*s;o.drawImage(l,(t-c)/2,(r-d)/2,c,d),i("image/png"===n?e.toDataURL("image/png"):e.toDataURL("image/jpeg",.9))},l.onerror=a,l.src=e})},l=e=>{let t=URL.createObjectURL(e);return{url:t,isObjectUrl:!0,cleanup:()=>{URL.revokeObjectURL(t)}}},o=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2e3,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"image/jpeg",i="string"==typeof e?e:e.url;return i.startsWith("data:")?await a(i,t,r,n):new Promise((e,a)=>{let l=new Image;l.onload=async()=>{try{let i=document.createElement("canvas"),o=i.getContext("2d");if(!o)return void a(Error("Could not get canvas context"));let s=Math.min(t/l.width,r/l.height),c=l.width*s,d=l.height*s;i.width=t,i.height=r,o.drawImage(l,(t-c)/2,(r-d)/2,c,d),e("image/png"===n?i.toDataURL("image/png"):i.toDataURL("image/jpeg",.9))}catch(e){a(e)}},l.onerror=a,l.src=i})},s=async e=>{if(!e.type.includes("jpeg")&&!e.type.includes("jpg"))return l(e);try{let t=await new Promise((t,r)=>{let n=new FileReader;n.readAsDataURL(e),n.onload=()=>{let e=n.result;e&&e.length>0?t(e):r(Error("Failed to read file: empty result"))},n.onerror=()=>r(Error("Failed to read file"))}),r=await (e=>{try{if(!(e.startsWith("data:image/jpeg")||e.startsWith("data:image/jpg")))return Promise.resolve(e);let t=i().load(e)["0th"][i().ImageIFD.Orientation];t||(t=1);let r=i().remove(e);return((e,t)=>new Promise((r,n)=>{let i=new Image;i.src=e,i.onload=()=>{let e=document.createElement("canvas"),a=e.getContext("2d"),l=i.width,o=i.height;if(t>4&&t<9?(e.width=o,e.height=l):(e.width=l,e.height=o),!a)return n(Error("Reset Orientation context was not created"));switch(t){case 2:a.transform(-1,0,0,1,l,0);break;case 3:a.transform(-1,0,0,-1,l,o);break;case 4:a.transform(1,0,0,-1,0,o);break;case 5:a.transform(0,1,1,0,0,0);break;case 6:a.transform(0,1,-1,0,o,0);break;case 7:a.transform(0,-1,-1,0,o,l);break;case 8:a.transform(0,-1,1,0,0,l)}return a.drawImage(i,0,0),r(e.toDataURL("image/jpeg",.9))}}))(r,t)}catch(t){return console.error("Error while removing metadata",t),Promise.resolve(e)}})(t),n=await fetch(r),a=await n.blob();return l(a)}catch(t){return console.warn("Failed to clean metadata, using original file:",t),l(e)}},c=function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"image/jpeg",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.9;return new Promise((a,l)=>{let o=new Image;o.onload=()=>{let e=Math.min(1,t/o.width,r/o.height),s=Math.round(o.width*e),c=Math.round(o.height*e),d=document.createElement("canvas"),u=d.getContext("2d");if(!u)return void l(Error("Could not get canvas context"));d.width=s,d.height=c,u.drawImage(o,0,0,s,c),d.toBlob(e=>e?a(e):l(Error("Failed to create blob")),n,"image/jpeg"===n?i:void 0)},o.onerror=()=>l(Error("Failed to load image for resize")),o.src=e})}},52408:(e,t,r)=>{"use strict";r.d(t,{Sm:()=>d,d3:()=>a,p_:()=>c,sO:()=>n,vX:()=>l,we:()=>o,yb:()=>i});let n=100,i=600,a=2e3,l=e=>new Promise((t,r)=>{let n=new Image,i=URL.createObjectURL(e);n.onload=()=>{t({width:n.width,height:n.height}),URL.revokeObjectURL(i)},n.onerror=()=>{r(Error("Failed to load image")),URL.revokeObjectURL(i)},n.src=i}),o=e=>e?e.type.startsWith("image")?e.size/1024/1024>n?{isValid:!1,errorReason:"imageIsTooBig"}:{isValid:!0,errorReason:null}:{isValid:!1,errorReason:"wrongFileFormat"}:{isValid:!1,errorReason:"noFile"},s={imageTooSmall:(e,t,r)=>"Image too small (".concat(e,"\xd7").concat(t,"). Minimum: ").concat(r,"\xd7").concat(r),imageTooLarge:(e,t,r)=>"Image resolution too high (".concat(e,"\xd7").concat(t,"). Maximum: ").concat(r,"\xd7").concat(r),lowResImage:(e,t,r)=>"Low resolution image (".concat(e,"\xd7").concat(t,"). Recommended: ").concat(r,"\xd7").concat(r," or higher for best print quality.")},c=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"warn",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s,n=await l(e),{width:o,height:c}=n,d=[],u=o>1e4||c>1e4;if(u)return d.push(r.imageTooLarge(o,c,1e4)),{isValid:!1,isBelowMinimum:!1,isAboveMaximum:u,isBelowTarget:!1,warnings:d,dimensions:n};if("ignore"===t)return{isValid:!0,isBelowMinimum:!1,isAboveMaximum:!1,isBelowTarget:!1,warnings:d,dimensions:n};let m=o<i||c<i,p=o<a||c<a;
1return m?(d.push(r.imageTooSmall(o,c,i)),"warn"===t)?{isValid:!0,isBelowMinimum:m,isAboveMaximum:!1,isBelowTarget:p,warnings:d,dimensions:n}:{isValid:!1,isBelowMinimum:m,isAboveMaximum:!1,isBelowTarget:p,warnings:d,dimensions:n}:(p&&d.push(r.lowResImage(o,c,a)),{isValid:!0,isBelowMinimum:m,isAboveMaximum:!1,isBelowTarget:p,warnings:d,dimensions:n})},d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"warn";return new Promise(async r=>{let n=o(e);if(!n.isValid)return void r({isValid:!1,errorReason:n.errorReason,warnings:[],image:null,dimensions:null});try{let n=await c(e,t);if(!n.isValid)return void r({isValid:!1,errorReason:(n.isBelowMinimum,"lowResolution"),warnings:n.warnings,image:null,dimensions:n.dimensions});let i=new Image,a=URL.createObjectURL(e);i.onload=()=>{URL.revokeObjectURL(a),r({isValid:!0,errorReason:null,warnings:n.warnings,image:i,dimensions:n.dimensions})},i.onerror=()=>{URL.revokeObjectURL(a),r({isValid:!1,errorReason:"imageLoadError",warnings:[],image:null,dimensions:null})},i.src=a}catch(e){r({isValid:!1,errorReason:"imageLoadError",warnings:[],image:null,dimensions:null})}})}},52705:(e,t,r)=>{"use strict";r.d(t,{A:()=>g});var n,i,a=r(37876),l=r(14232),o=["title","titleId"];function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let c=function(e){var t=e.title,r=e.titleId,i=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,o);return l.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"none",viewBox:"0 0 24 24","aria-labelledby":r},i),t?l.createElement("title",{id:r},t):null,n||(n=l.createElement("path",{fill:"currentColor",d:"M7.617 12.046 7.5 6l9.277 5.869-9.043 6.222z"})))};var d=["title","titleId"];function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let m=function(e){var t=e.title,r=e.titleId,n=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(e,d);return l.createElement("svg",u({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 20 20","aria-labelledby":r},n),t?l.createElement("title",{id:r},t):null,i||(i=l.createElement("path",{d:"M6.627 7.136c.012-.526.41-.895.868-.905a.93.93 0 0 1 .465.118l4.96 2.87a.9.9 0 0 1 0 1.563l-4.96 2.871c-.616.334-1.318-.091-1.333-.794z"})))};var p=r(26635);let g=e=>{let{className:t}=e;switch((0,p.DP)()){case"oal":case"sett":return(0,a.jsx)(c,{className:t});default:return(0,a.jsx)(m,{className:t})}}},57126:(e,t,r)=>{"use strict";r.d(t,{A:()=>P});var n=r(37876),i=r(18847),a=r.n(i),l=r(14232),o=r(52767),s=r(79694),c=r(51286),d=r(19110),u=r(43718),m=r.n(u);let p=e=>{let{src:t,alt:r,title:i,priority:a,sizes:o,position:u,maxScale:p=4,activeIndex:g,wheelZoom:h=!1}=e,{pushToDataLayer:v}=(0,d.ur)(),f=(0,l.useRef)(!1),_=(0,l.useCallback)((e,t,r)=>{if(!r){f.current=t;return}t!==f.current&&v({event:"pdp_interactions",interaction_type:t?"zoom_in":"zoom_out",element:"image",position_clicked:u,type_image:0,source:"default"}),f.current=t},[u,v]);return(0,n.jsx)(c.A,{resetTriggers:[t,g],maxScale:p,wheelZoom:h,onZoomChange:_,wrapperClassName:m().ProductMediaZoom,contentClassName:m().Content,children:(0,n.jsx)(s.A,{src:t,alt:null!=r?r:"",title:null!=i?i:"",priority:a,sizes:null!=o?o:"(max-width: 768px) 100vw, 50vw",className:m().Image})})};var g=r(89534),h=r(15039),v=r.n(h),f=r(54587),_=r.n(f),x=r(34820),b=r(52705),S=r(50255),w=r(88771),y=r(93219),U=r.n(y);let C=e=>{let{slide:t}=e,r=(0,S.A)(t.videoId),{t:i}=(0,w.B)("base");return r?(0,n.jsx)("img",{className:U().ThumbImage,src:r,alt:t.alt||i("ribbon.video")}):null},j=(0,l.memo)(e=>{let{slides:t,firstSlideThumbnail:r,activeIndex:i,onSelect:a}=e,o=null!=r,[s,c]=(0,x.A)({axis:"y",dragFree:!0,containScroll:"keepSnaps",skipSnaps:!0});(0,l.useEffect)(()=>{c&&c.scrollTo(i)},[c,i]);let d=(0,l.useCallback)(e=>{a(e)},[a]);return(0,n.jsx)("div",{className:U().Viewport,ref:s,children:(0,n.jsxs)("div",{className:U().Rail,role:"tablist","aria-label":"Product media thumbnails",children:[o&&(0,n.jsx)("button",{type:"button",role:"tab","aria-selected":0===i,onClick:()=>d(0),className:v()(U().Thumb,0===i&&U().ThumbActive),children:r}),t.map((e,t)=>{var r;let a=o?t+1:t;return(0,n.jsxs)("button",{type:"button",role:"tab","aria-selected":i===a,onClick:()=>d(a),className:v()(U().Thumb,"video"===e.type&&U().ThumbVideo,i===a&&U().ThumbActive),children:["video"===e.type?(0,n.jsx)(C,{slide:e}):(0,n.jsx)(_(),{src:e.src,alt:null!=(r=e.alt)?r:"",width:120,height:120,className:U().ThumbImage,sizes:"120px"}),"video"===e.type&&(0,n.jsx)("span",{className:U().PlayOverlay,"aria-hidden":!0,
1children:(0,n.jsx)(b.A,{})})]},"".concat("video"===e.type?e.videoId:e.src,"-").concat(t))})]})})});var E=r(31305),I=r.n(E),A=r(17705),R=r(60045);let L=a()(()=>Promise.all([r.e(3993),r.e(3619),r.e(3973)]).then(r.bind(r,43973)),{loadableGenerated:{webpack:()=>[43973]},ssr:!1}),P=(0,l.memo)(e=>{var t;let{slides:r,carouselId:i,highlightDataLayer:a,enableSound:c=!1,firstSlide:u,firstSlideThumbnail:m,layout:h="default",mainOverlay:v,previewAspectRatio:f,itemsPerView:_,dotsDisplay:x,itemsGap:S}=e,y=f?{"--main-aspect-ratio":String(f)}:void 0,{t:U}=(0,w.B)("base"),{pushToDataLayer:C}=(0,d.ur)(),E=(0,A.p)(e=>e.carousel.galleryDotsDisplay),P=(0,l.useRef)(null),[k,N]=(0,l.useState)(0),{isXL:T}=(0,R.A)(),z=null!=u,B=(0,l.useRef)(z),M=(0,l.useRef)(null);(0,l.useEffect)(()=>{var e;B.current!==z&&(B.current=z,N(e=>(0!==e&&(M.current=0),0)),null==(e=P.current)||e.scrollTo(0,!0))},[z]);let F=(0,l.useMemo)(()=>{let e=r.findIndex(e=>"video"===e.type);return e<0?e:z?e+1:e},[r,z]),W=(0,l.useCallback)((e,t)=>{if(N(t),e===t)return;if(M.current===t){M.current=null;return}let n=z?t-1:t,a=n>=0?r[n]:null;C({event:"pdp_interactions",interaction_type:"swipe",element:"image",carousel_id:i,scrollToIndex:t,position_clicked:e,type_image:2*((null==a?void 0:a.type)==="video")})},[r,i,z,C]),O=(0,l.useCallback)(e=>{var t;null==(t=P.current)||t.scrollTo(e)},[]);if(r.length<1&&!z)return(0,n.jsxs)("div",{className:I().DefaultLayout,children:[(0,n.jsx)(s.A,{src:"",alt:"",title:""}),v]});let D=r.map((e,t)=>"video"===e.type?(0,n.jsx)(L,{videoId:e.videoId,enableSound:c},"".concat(e.videoId,"-").concat(t)):(0,n.jsx)(p,{position:t,activeIndex:k,wheelZoom:T,src:e.src,alt:e.alt,title:e.title,priority:t<4},"".concat(e.src,"-").concat(t))),K=z?[(0,n.jsx)("div",{children:u},"first-slide"),...D]:D,V=(0,n.jsx)(o.A,{ref:P,id:i,itemsPerView:_,itemsGap:S,arrowsDisplay:"none",dotsDisplay:null!=(t=null!=x?x:E)?t:"block-end",dotsInteractive:!1,onScroll:W,highlightToggle:!0,highlightTitle:U("ribbon.video"),highlightIcon:(0,n.jsx)(b.A,{}),highlightSlideIndex:F,highlightId:"Video",highlightclassName:I().HighLightSlide,highlightDataLayer:a,children:K});return(0,n.jsx)("div",{className:I().MediaGalleryContainer,children:(0,n.jsx)(g.d,{children:"withThumbnails"===h?(0,n.jsxs)("div",{className:I().WithThumbnails,style:y,children:[(0,n.jsx)("div",{className:I().ThumbnailsColumn,children:(0,n.jsx)(j,{slides:r,firstSlideThumbnail:m,activeIndex:k,onSelect:O})}),(0,n.jsxs)("div",{className:I().MainColumn,children:[V,v]})]}):(0,n.jsxs)("div",{className:I().DefaultLayout,children:[V,v]})})})})},59007:e=>{e.exports={up:"arrowDirection_up__ZqZ7I",right:"arrowDirection_right__nnx4X",down:"arrowDirection_down__z0vaT",left:"arrowDirection_left__ogKwB"}},59023:(e,t,r)=>{"use strict";r.d(t,{B:()=>o});var n=r(37876),i=r(14232),a=r(8106),l=r(4319);let o=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],s=(0,i.createContext)(null);return{StoreProvider:c=>{let{children:d,id:u}=c,m=(0,i.useMemo)(()=>{if(!r.usePersist)return(0,a.v)()((0,l.lt)((t,r)=>e(t,r),{name:"".concat(t,"_").concat(u)}));{let n=r.storage||{getItem:e=>Promise.resolve(localStorage.getItem(e)),setItem:(e,t)=>(localStorage.setItem(e,t),Promise.resolve()),removeItem:e=>(localStorage.removeItem(e),Promise.resolve())};return(0,a.v)()((0,l.lt)((0,l.Zr)((t,r)=>e(t,r),{name:"".concat(t,"_").concat(u),storage:(0,l.KU)(()=>n)}),{name:"".concat(t,"_").concat(u)}))}},[u]),p=(0,i.useMemo)(()=>{let e=m;return o.forEach(t=>{e=t(e)}),e},[m]);return(0,n.jsx)(s.Provider,{value:p,children:d})},useStoreContext:e=>{let t=(0,i.useContext)(s);if(!t)throw Error("useStoreContext must be used within a StoreProvider");return t(e)},useStoreApi:()=>{let e=(0,i.useContext)(s);if(!e)throw Error("useStoreApi must be used within a StoreProvider");return{setState:e.setState,getState:e.getState,subscribe:e.subscribe}}}}},59199:e=>{e.exports={PhotoPendantWidget:"widget_PhotoPendantWidget__Imuuq",PreviewContainer:"widget_PreviewContainer__A0bE8",Preview:"widget_Preview___1UYE"}},59961:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,c:()=>i});var n=r(10947);let i=e=>e.labels.some(e=>
1e.name===n.MF),a=e=>"text"===e.type,l=e=>"template_customization"===e.type,o=e=>{let t=[],r=[];for(let n=0;n<e.length;n++){let o=e[n];if(i(o)){if(l(o))t.push(o);else if(a(o)){r.push(o);let a=n>0?e[n-1]:null;a&&l(a)&&!i(a)&&t.push(a)}}}if(0===t.length)return null;let n=new Map;for(let e of t)n.set(e.uid,[]);let o=null;for(let i of e)t.some(e=>e.uid===i.uid)?o=i.uid:o&&r.some(e=>e.uid===i.uid)&&n.get(o).push(i);if([...n.values()].some(e=>0===e.length)&&r.length>0&&t.length===r.length){for(let e of t)n.set(e.uid,[]);t.forEach((e,t)=>{n.get(e.uid).push(r[t])})}let s=t.map((e,t)=>{var r;let i=(null==(r=e.customization_template)?void 0:r.url)||null;return{index:t,imageCategory:e,textCategories:n.get(e.uid)||[],overlayUrl:i}}),c=s[0].imageCategory.uid,d=[];for(let e of t)e.uid!==c&&d.push(e.uid);for(let e of r)d.push(e.uid);return{primaryCategoryUid:c,slots:s,managedCategoryUids:d}}},60273:e=>{e.exports={InitView:"initView_InitView__HVB4a",Menu:"initView_Menu__6fvm9",Buttons:"initView_Buttons__XNk6d"}},61068:e=>{e.exports={GiftNoteAssistantField:"giftNoteAssistant_GiftNoteAssistantField__pVYDB",TextArea:"giftNoteAssistant_TextArea__9d4_3",Invalid:"giftNoteAssistant_Invalid__uzl2f"}},61442:(e,t,r)=>{"use strict";r.d(t,{dN:()=>o,jO:()=>s,jQ:()=>a,lu:()=>l,ns:()=>i,wg:()=>n});let n=e=>"edit-product"===e?"sc_dropdown":"binary-pop-up"===e?"binary_dropdown":"dropdown",i=(e,t,r,n,i)=>{var a,l,o;if(!e)return;let{productData:s,sku:c,key:d}=e,u=null==s||null==(a=s.categories)?void 0:a.find(e=>e.uid===t);if(!u)return;let m=(null==(l=u.options)?void 0:l.findIndex(e=>e.id===r))+1;return{sku:c,category_name:null==(o=u.english_cart_name)?void 0:o.replace(":",""),category_type:u.type,position:i||m,source:((e,t)=>{let r="default";return e.includes("edit")?r="edit-product":e.includes("add")?r="add-product-panel":e.includes("binary")?r="binary-pop-up":t||(r="pip"),r})(d,c===n)}},a=(e,t,r)=>{var n,i,a;let l=null==e||null==(i=e.productData)||null==(n=i.categories)?void 0:n.find(e=>e.uid===t);if(!l)return;let{options:o,cart_name:s,english_cart_name:c}=l,d=null==o?void 0:o.find(e=>String(e.id)===String(r)),u=null==o?void 0:o.find(e=>e.is_default);return{option_category:{site_cart_name:null==s?void 0:s.replace(/:$/,""),english_cart_name:null==c?void 0:c.replace(/:$/,"")},selected_option:{name:null==d?void 0:d.name,english_name:null==d?void 0:d.english_name,related_product:(null==d?void 0:d.related_product)&&{sku:d.related_product.sku,short_id:d.related_product.short_id,price:null==(a=d.related_product.pricing)?void 0:a.price,selected_position:"number"==typeof d.order?d.order+1:void 0,default_item_position:"number"==typeof(null==u?void 0:u.order)?u.order+1:void 0}}}},l=()=>new Map,o=(e,t)=>{e.forEach((r,n)=>{t.has(n)||e.delete(n)})},s=(e,t,r,n)=>{var i;let{from:a,to:l,selectedOptionId:o,gestureCount:s}=n;if(void 0===a||void 0===l)return!1;let c=null!=(i=e.get(t))?i:new Map;e.set(t,c);let d=c.get(r);return c.set(r,{snap:l,optionId:o,gestureCount:null!=s?s:0}),!!d&&a!==l&&d.snap!==l&&d.optionId===o&&(void 0===s||s!==d.gestureCount)}},62919:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(55e3);let i=async(e,t,r,i)=>{let{coordinates:a,transforms:l}=t;if(!a)return null;let o=await new Promise((t,r)=>{let n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=r,n.src=e}),s=0!==l.rotate||l.flip.horizontal||l.flip.vertical,c=document.createElement("canvas"),d=s?(0,n.pY)(c,o,l):o,u=s?c.width:o.naturalWidth,m=s?c.height:o.naturalHeight,p=Math.max(0,a.left),g=Math.max(0,a.top),h=Math.min(u,a.left+a.width),v=Math.min(m,a.top+a.height),f=h-p,_=v-g;if(f<=0||_<=0)return null;let x=r/a.width,b=i/a.height,S=(p-a.left)*x,w=(g-a.top)*b,y=document.createElement("canvas");y.width=r,y.height=i;let U=y.getContext("2d");return U?(U.imageSmoothingEnabled=!0,U.imageSmoothingQuality="high",U.fillStyle="#ffffff",U.fillRect(0,0,r,i),U.drawImage(d,p,g,f,_,S,w,f*x,_*b),y):null}},63276:(e,t,r)=>{"use strict";r.d(t,{Rq:()=>l,oO:()=>a,yp:()=>i});let n=new Map,i=(e,t)=>{n.set(e,t)},a=e=>{var t;return null!=(t=n.get(e))?t:null},l=e=>{n.delete(e)}},66595:e=>{e.exports={UploadButton:"uploadButton_UploadButton__fWLTg",Button:"uploadButton_Button__sUCnN",ErrorMessage:"uploadButton_ErrorMessage__N8UjP",LowResWarning:"uploadButton_LowResWarning__BY2pf",SlowUploadWarning:"uploadButton_SlowUploadWarning__GE4HK",visible:"uploadButton_visible__2fjNd",CancelUploadLink:"uploadButton_CancelUploadLink__TXhVu",DragActive:"uploadButton_DragActive__gMIld"}},70002:e=>{e.exports={ReplaceButton:"replaceButton_ReplaceButton__8aX45"}},71302:(e,t,r)=>{"use strict";r.d(t,{y:()=>a});var n=r(72091),i=r(8402);let a=e=>{let t=(0,n.u)(e=>e.getItemEditorListAsArray);return r=>{let n=e.some(e=>{let r=t().find(t=>t.key===e),n=null==r?void 0:r.validationErrors;
1return n&&n.forEach(t=>{let n=null==r?void 0:r.productData.categories.findIndex(e=>e.id===t.categoryId);if(-1===n)return null;let a=null==r?void 0:r.productData.categories[n];i.e.emit("focus_on_invalid_input",{instanceId:e,categoryUid:null==a?void 0:a.uid,value:t.categoryId,position:n+1})}),!!n&&n.length>0});return n&&(e=>{try{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let t=e.querySelector('[data-error="true"]');if(t){let e=t.previousElementSibling;e&&(e.classList.add("error-border"),t.style.display="block"),setTimeout(()=>{t.scrollIntoView({behavior:"smooth",block:"center"});let r=null==e?void 0:e.querySelector("input, textarea, select, button");r&&(r.focus(),(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement)&&r.select())},50)}})})}catch(e){console.error("Failed to focus on and highlight first error:",e)}})(r),!n}}},72713:e=>{e.exports={FinalResult:"finalSizeResult_FinalResult__Rqo5U",Results:"finalSizeResult_Results__18eBo",Size:"finalSizeResult_Size__8UQUu",PillMsg:"finalSizeResult_PillMsg__X0Sdr",Error:"finalSizeResult_Error__sOnra",Actions:"finalSizeResult_Actions__FaU5H"}},74152:e=>{e.exports={RingSizer:"ringSizer_RingSizer__oTd0g"}},74348:(e,t,r)=>{"use strict";r.d(t,{Zz:()=>l,Ay:()=>s});var n=r(98653);let i=async(e,t)=>{try{return(await (0,n.LO)({siteData:e,pathname:"api/v1/giftNoteAssistant",body:t})).responseData.trim()}catch(e){return null}};var a=r(45899);let{StoreProvider:l,useStoreContext:o}=(0,r(59023).B)((e,t)=>({AiToggle:!1,AiError:!1,visibleUI:!1,openPopup:()=>e({visibleUI:!0}),closePopup:()=>{let{openFromShoppingCart:r}=t();r?e({visibleUI:!1,activeStage:"welcome",AiError:!1}):e({visibleUI:!1,activeStage:"form",AiError:!1})},onBackClicked:()=>e(()=>({AiError:!1})),itemSkuClicked:"",activeStage:"welcome",currentStageIndex:0,currentQuestionIndex:0,setActiveStage:r=>{let{generateCounter:n}=t();e({activeStage:r,generateCounter:"form"===r?0:n,fromTemplate:!1,currentMessageInTemplateList:0,giftNoteTemplateList:[]})},setCurrentStageIndex:t=>e(()=>({currentStageIndex:t})),setCurrentQuestionIndex:t=>e(()=>({currentQuestionIndex:t})),giftNoteForm:[],fallbackGiftNoteForm:[],userSelections:[],userSelectionsFallback:[],generateSystemPrompt:"",regenerateSystemPrompt:"",itemEditorIndex:null,syncAnalyticsContext:(t,r,n,i,a)=>{e({itemSkuClicked:t,pipPrice:r,mainItem:n,openFromShoppingCart:i,isNested:a})},initialize:(r,n,i,a,l,o,s,c,d,u)=>{if(!r)return null;t().syncAnalyticsContext(a,d,c,s,u);let{userSelections:m,giftNoteForm:p}=r.reduce((e,t)=>{let{id:r,systemPrompt:n,featureType:i,fieldDescription:a,question:l,options:o,required:s,type:c,placeholder:d}=t;return e.userSelections.push({id:r,response:void 0,systemPropmpt:n,featureType:i}),e.giftNoteForm.push({id:r,fieldDescription:a,question:l,options:o,required:s,type:c,featureType:i,placeholder:d}),e},{userSelections:[],giftNoteForm:[]}),g=p.some(e=>e.featureType),h=e=>({form:p.filter(t=>t.featureType===e||"ALL"===t.featureType),selections:m.filter(t=>t.featureType===e||"ALL"===t.featureType)}),v=g?{AI:h("AI").form,TEMPLATES:h("TEMPLATES").form}:{AI:p,TEMPLATES:p},f=g?{AI:h("AI").selections,TEMPLATES:h("TEMPLATES").selections}:{AI:m,TEMPLATES:m},_=i?v.AI:v.TEMPLATES,x=i?v.TEMPLATES:v.AI;e({giftNoteForm:_,fallbackGiftNoteForm:x,userSelections:i?f.AI:f.TEMPLATES,userSelectionsFallback:i?f.TEMPLATES:f.AI,maxResponeLengthValidation:n,AiToggle:i,regenerateSystemPrompt:o||l,generateSystemPrompt:l})},setUserResponse:(e,r)=>{let{userSelections:n,userSelectionsFallback:i}=t();if(!r)return null;let a=n.findIndex(e=>e.id===r);-1!==a&&(n[a].response=e,i[a].response=e)},maxResponeLengthValidation:280,giftNoteMessage:"",savedGiftNoteMessage:"",generateCounter:0,maxGenerateCount:3,generateGiftNote:async r=>{let{userSelections:n,fetchGiftNoteTemplates:i,AiToggle:a,fetchGiftNoteAi:l}=t();e({activeStage:"loading"});try{if(a){let e=n.map(e=>{let{systemPropmpt:t,response:r}=e;return r?t.replace("..."," ".concat(r)):""}).join(",");l(r,e)}else i(r)}catch(t){e({activeStage:"error",generateCounter:0})}},fetchGiftNoteTemplates:async r=>{let{userSelections:n,generateCounter:a,maxGenerateCount:l,giftNoteTemplateList:o}=t(),s=((e,t)=>({recipient:e[0].response||"",recipientName:e[1].response||"",occasion:e[2].response||"",gifterName:e[3].response||"",tone:e[4].response||"heartfelt",counter:t+1}))(n,a),c=await i(r,s);if(c){o.push(c);e({activeStage:"summaryReview",giftNoteMessage:c,generateCounter:a+1,fromTemplate:a+1===l})}else e({activeStage:"error",generateCounter:0})},fetchGiftNoteAi:async(r,n)=>{let{fetchGiftNoteTemplates:i,fallbackGiftNoteForm:l,userSelectionsFallback:o,giftNoteMessage:s,regenerateSystemPrompt:c,generateSystemPrompt:d}=t(),u=s.trim()?"".concat(s," ").concat(c):d;try{let t=await (0,a.M)({requestType:"text",model:"gpt-4o-mini",systemPrompt:u,userPrompt:n,modelProps:{temperature:.7,max_tokens:70}}).catch(e=>(console.error({err:e,site:r},"Failed to generate gift note message"),null));if(null==t?void 0:t.text)return void e({activeStage:"summaryReview",giftNoteMessage:t.text,AiError:!1});let s=(e=>{let t=e.findIndex(e=>e.systemPropmpt.includes("tone"));return -1!==t&&e[t]&&(e[t].response="heartfelt"),e})(o);e({AiToggle:!1,giftNoteForm:l,userSelections:s,AiError:!0}),await i(r)}catch(t){e({activeStage:"error"})}},setGiftNoteMessage:t=>{e({visibleUI:!1,giftNoteMessage:t,activeStage:"summaryReview",currentQuestionIndex:0})},setGiftNoteMessageSilent:t=>{e({giftNoteMessage:t})},currentMessageInTemplateList:0,giftNoteTemplateList:[],fromTemplate:!1,setMessageResponseFromTemplateList:()=>{e({activeStage:"loading"});let{giftNoteTemplateList:r,currentMessageInTemplateList:n}=t();setTimeout(()=>{e({giftNoteMessage:r[n],currentMessageInTemplateList:n<2?n+1:0,activeStage:"summaryReview",generateCounter:n<3?n+1:1})},300)},backToForm:()=>e(()=>({activeStage:"form",currentQuestionIndex:0}))}),"gift-note-assistant",{usePersist:!0}),s=o},74787:e=>{e.exports={ProgressBar:"progressBar_ProgressBar__1uVr9",ProgressStepsBar:"progressBar_ProgressStepsBar__lnlKx",ProgressFullBar:"progressBar_ProgressFullBar__mWHKZ",bgLineMobile:"progressBar_bgLineMobile__bFwiv",bgLine:"progressBar_bgLine__xbquT",StepsWrapper:"progressBar_StepsWrapper__M24eN",StepWrapper:"progressBar_StepWrapper__IV_Q8",StepNumber:"progressBar_StepNumber__4RqU5",StepDescription:"progressBar_StepDescription__hdO2R",Active:"progressBar_Active__QyfDL",Current:"progressBar_Current__0DJEu",StarsBar:"progressBar_StarsBar__CSTqe",Star:"progressBar_Star__1bfxw",LastStepCheckmark:"progressBar_LastStepCheckmark__8WEUU"}},77672:e=>{e.exports={PhotoUploadWidget:"widget_PhotoUploadWidget__rJz5J",PreviewContainer:"widget_PreviewContainer__PKLik",Preview:"widget_Preview__FWJwt"}},78773:e=>{e.exports={Calibrate:"calibrate_Calibrate__AvfDG",Steps:"calibrate_Steps__3jaat",Content:"calibrate_Content__bDDjP",Actions:"calibrate_Actions__sU5hX",Action:"calibrate_Action__numd2",CardWrapper:"calibrate_CardWrapper__MZgXQ",Card:"calibrate_Card__T68Iy",CardText:"calibrate_CardText__yOdFs",CardScale:"calibrate_CardScale__6gzn9",indicator:"calibrate_indicator__9GXaV"}},80110:e=>{e.exports={PositionControls:"positionControls_PositionControls__B26og"}},80998:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(14232);let i=(e,t)=>(0,n.useMemo)(()=>{switch(!0){case e.toString().endsWith("edit"):case e.toString().endsWith("add"):let r=e.toString().split("-")[0];return"".concat(r,"-").concat(t);default:return"".concat(e,"-").concat(t)}},[e,t])},81849:e=>{e.exports={PhotoCropper:"photoCropper_PhotoCropper__Kd10j",Container:"photoCropper_Container__K5gMK",Loading:"photoCropper_Loading__uLT6O",Cropper:"photoCropper_Cropper__xIwaQ",Template:"photoCropper_Template__KqmTx"}},82570:e=>{e.exports={UploadButton:"uploadButton_UploadButton__KR0ee",ErrorMessage:"uploadButton_ErrorMessage__uQzAL"}},85329:e=>{e.exports={ReplaceButton:"replaceButton_ReplaceButton__E40jo"}},89534:(e,t,r)=>{"use strict";r.d(t,{N:()=>l,d:()=>o});var n=r(37876),i=r(14232);let a=(0,i.createContext)(null),l=()=>(0,i.useContext)(a),o=e=>{let{children:t}=e,[r,l]=(0,i.useState)(null);return(0,n.jsx)(a.Provider,{value:{activeZoomId:r,setActiveZoomId:l},children:t})}},89650:e=>{e.exports={FingerSizer:"measureByFinger_FingerSizer__lxwUk",Main:"measureByFinger_Main__F3Nnw",Steps:"measureByFinger_Steps__4_to1",Widget:"measureByFinger_Widget__dL80U",Content:"measureByFinger_Content__ZU44Y",StringWrapper:"measureByFinger_StringWrapper__Npw2Q",String:"measureByFinger_String__QA616",Controls:"measureByFinger_Controls__oaCUT",ButtonWrapper:"measureByFinger_ButtonWrapper__cpEL1"}},89944:e=>{e.exports={RingSizerWrapper:"ringSizeField_RingSizerWrapper__1OXVn",Label:"ringSizeField_Label__Zs7KT",CTA:"ringSizeField_CTA__uieYT",RingSizerButton:"ringSizeField_RingSizerButton__QcMAU",RingGuide:"ringSizeField_RingGuide__a9IZl"}},93219:e=>{e.exports={Viewport:"thumbnailsRail_Viewport__pXUL6",Rail:"thumbnailsRail_Rail__Iu6CE",Thumb:"thumbnailsRail_Thumb__NhVKp",ThumbVideo:"thumbnailsRail_ThumbVideo___XjZL",ThumbActive:"thumbnailsRail_ThumbActive__5BkjX",ThumbImage:"thumbnailsRail_ThumbImage__V6jc6",PlayOverlay:"thumbnailsRail_PlayOverlay__C_eT2"}},94962:e=>{e.exports={GiftNoteWrapper:"giftnoteMarkup_GiftNoteWrapper__f0eZi",AIIcon:"giftnoteMarkup_AIIcon__1SH6_"}},96617:e=>{e.exports={Wrapper:"zoomableContent_Wrapper__gLNcW",Content:"zoomableContent_Content__cNQiB",Curs
1orOverlay:"zoomableContent_CursorOverlay__Qf0me",Zoomed:"zoomableContent_Zoomed__wWsG4"}},96742:e=>{e.exports={PhotoCropper:"photoCropper_PhotoCropper__Z6drT",disabled:"photoCropper_disabled__e2zwa",Container:"photoCropper_Container__vRCV3",Loading:"photoCropper_Loading__tpPmt",Cropper:"photoCropper_Cropper__Ckq6e",CropperHidden:"photoCropper_CropperHidden__Jh77o",Template:"photoCropper_Template__jr1Up"}},97168:e=>{e.exports={Table:"table_Table__kcVXj",Header:"table_Header__p0rMm"}},97241:e=>{e.exports={OverlayStencil:"overlayStencil_OverlayStencil__aQzwl"}},97753:(e,t,r)=>{"use strict";r.d(t,{$G:()=>c,K9:()=>s,q:()=>o,wR:()=>l,zf:()=>n});let n=e=>e instanceof DOMException&&"AbortError"===e.name||"Upload cancelled by user"===e,i=new Map,a=(e,t)=>"".concat(e,":").concat(t),l=(e,t,r)=>{i.set(a(e,t),r)},o=(e,t)=>{let r=a(e,t),n=i.get(r);n&&(n.abort("Upload cancelled by user"),i.delete(r))},s=e=>{o(e,"original"),o(e,"submit")},c=(e,t)=>{i.delete(a(e,t))}},99273:e=>{e.exports={InfoAnimations:"infoAnimations_InfoAnimations__wK06c",Top:"infoAnimations_Top__i5P0v",Gif:"infoAnimations_Gif__cq_5C",fingerAnimation:"infoAnimations_fingerAnimation__g6K4w",Bottom:"infoAnimations_Bottom__ZRA3_",BottomMsg:"infoAnimations_BottomMsg__xSSQ4"}}}]);

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.