{
  "version": 3,
  "sources": ["/cdn/shop/t/13/assets/branding-logo-placer.js?blp=58"],
  "sourcesContent": ["import{StandardEvents}from\"@shopify/events\";import{knockoutBackground}from\"@theme/fp-logo-knockout\";const PREVIEW_WIDTH=960,PREVIEW_TYPE=\"image/jpeg\",PREVIEW_QUALITY=.85,LOGO_UPLOAD_BYTES=1024*1024,LOGO_UPLOAD_EDGES=[2e3,1600,1200,1e3],SEAT_PHOTOS={\"fc3d60dd-97d5-4353-9340-03c727248278\":{back:.56,mm:480,aspect:1.25},ChatGPT_Image_Aug_15_2026_at_10_46_36_PM:{back:.6,mm:480,aspect:1.25},\"excavator-high-back-branding\":{back:.48,mm:480,aspect:1.23},\"excavator-low-back-branding\":{back:.47,mm:480,aspect:1.25},\"loader-high-back-branding\":{back:.52,mm:480,aspect:1.23},\"loader-low-back-branding\":{back:.5,mm:480,aspect:1.131},\"van-driver-branding\":{back:.54,mm:480,aspect:1.25},\"van-double-branding\":{back:.82,mm:900,aspect:1.25}},SEAT_PHOTO_DEFAULT={back:.52,mm:480,aspect:1.25};class BrandingLogoPlacer extends HTMLElement{refs={};#section=null;#form=null;#target=null;#logos=[];#nextId=1;#activeId=null;#seatStep=1;#editorSession=0;#productSelectVersion=0;#uploadSequence=0;#pendingUploads=new Map;#pointerId=-1;#previewVersion=0;#attachedVersion=-1;#attachPromise=null;#attachPromiseVersion=-1;#prerenderTimer;#dragMode=null;#cropHandle=null;#cropStart={x:0,y:0,left:8,top:8,width:84,height:84};#addInFlight=!1;#allowNextClick=!1;#wasHidden=!0;#position=\"backrest\";connectedCallback(){this.#collectRefs(),this.#wasHidden=this.hasAttribute(\"hidden\"),this.#section=this.closest(\".shopify-section, dialog\"),this.#section?.addEventListener(StandardEvents.productSelect,this.#handleProductSelect),this.#form=document.getElementById(this.dataset.formId||\"\"),document.addEventListener(\"click\",this.#onAddButtonClick,!0),this.refs.fileInput?.addEventListener(\"change\",this.#onFileChange),this.refs.openButton?.addEventListener(\"click\",()=>this.#openModal()),this.refs.clearButton?.addEventListener(\"click\",event=>{event.preventDefault(),event.stopPropagation(),this.#askRemovePersonalisation()}),this.refs.removeCancel?.addEventListener(\"click\",()=>this.#closeRemoveDialog()),this.refs.removeConfirm?.addEventListener(\"click\",()=>this.#removePersonalisation()),this.refs.removeDialog?.addEventListener(\"click\",event=>{event.target===this.refs.removeDialog&&this.#closeRemoveDialog()}),this.refs.closeButton?.addEventListener(\"click\",()=>this.#closeModal({discard:!this.#applied})),this.refs.dialog?.addEventListener(\"cancel\",event=>{event.preventDefault(),this.#closeModal({discard:!this.#applied})}),this.refs.finishButton?.addEventListener(\"click\",()=>{if(this.#isPerSeat&&this.#seatStep<this.#brandedSeats){this.#goToSeat(this.#seatStep+1);return}this.#confirmPersonalisation()}),this.refs.finishButtonOnSeat?.addEventListener(\"click\",()=>this.refs.finishButton?.click()),this.refs.backButton?.addEventListener(\"click\",()=>this.#goToSeat(this.#seatStep-1)),this.refs.seatSteps?.addEventListener(\"click\",event=>{const tab=event.target instanceof Element?event.target.closest(\"[data-seat]\"):null;tab instanceof HTMLElement&&this.#goToSeat(Number(tab.dataset.seat))}),this.refs.deleteButton?.addEventListener(\"click\",()=>{this.#activeId!=null&&this.#removeLogo(this.#activeId)}),this.refs.cropButton?.addEventListener(\"click\",()=>this.#applyCrop()),this.refs.resetButton?.addEventListener(\"click\",()=>this.#resetLogo()),this.refs.bgButton?.addEventListener(\"click\",()=>this.#removeBackground()),this.refs.bgButtonOnSeat?.addEventListener(\"click\",()=>this.#removeBackground()),this.refs.posHead?.addEventListener(\"change\",()=>this.#setPosition(\"headrest\")),this.refs.posBack?.addEventListener(\"change\",()=>this.#setPosition(\"backrest\")),this.refs.noteField?.addEventListener(\"input\",()=>this.#syncEmbroideryNote()),this.refs.dialog?.addEventListener(\"click\",event=>{event.target===this.refs.dialog&&this.#closeModal({discard:!this.#applied})}),this.addEventListener(\"dragenter\",this.#onDragEnter),this.addEventListener(\"dragover\",this.#onDragOver),this.addEventListener(\"dragleave\",this.#onDragLeave),this.addEventListener(\"drop\",this.#onDrop),this.refs.cropBox?.addEventListener(\"pointerdown\",this.#onCropPointerDown),window.addEventListener(\"resize\",this.#onResize),this.#target=this.refs.previewHost||null,this.#syncSeatPreview(),this.#syncPositionOptions(),this.#syncFormState(),this.#syncPersonalisedUi()}disconnectedCallback(){this.#section?.removeEventListener(StandardEvents.productSelect,this.#handleProductSelect),document.removeEventListener(\"click\",this.#onAddButtonClick,!0),window.removeEventListener(\"resize\",this.#onResize),this.#section=null,this.#form=null}#onResize=()=>{this.#applySlotToLogos()};#collectRefs(){const refs={};for(const element of this.querySelectorAll(\"[ref]\")){if(!(element instanceof HTMLElement))continue;const key=element.getAttribute(\"ref\");key&&(refs[key]=element)}this.refs=refs}get#requireUpload(){return this.dataset.requireUpload===\"true\"}get#maxBytes(){return Math.min((Number(this.dataset.maxFileMb)||5)*1024*1024,LOGO_UPLOAD_BYTES)}get#isVanDouble(){return this.dataset.previewGroup===\"van-double\"}get#vanDoubleSpread(){return Number(this.dataset.vanDoubleSpread||19.5)}get#vanDoubleBackrestSpread(){return Number(this.dataset.vanDoubleBackrestSpread||20)}get#vanDoubleHeadrestY(){return Number(this.dataset.vanDoubleHeadrestY||16)}get#vanDoubleHeadrestScale(){return Number(this.dataset.vanDoubleHeadrestScale||14)}get#maxLogos(){return this.#isVanDouble?1:Math.max(1,Math.min(4,Number(this.dataset.maxLogos)||1))}get#brandedSeats(){return this.#isVanDouble?1:Math.max(1,Math.min(this.#maxLogos,Number(this.dataset.brandedSeats)||1))}get#isPerSeat(){return this.#brandedSeats>1}#firstEmptySeat(){for(let n=1;n<=this.#brandedSeats;n+=1)if(!this.#logoForSeat(n))return n;return this.#brandedSeats}#logoForSeat(seat){return this.#logos.find(logo=>logo.seat===seat)??null}#goToSeat(seat){const target=Math.max(1,Math.min(this.#brandedSeats,seat));this.#seatStep=target;const logo=this.#logoForSeat(target);logo?(this.#setActive(logo.id),this.#position=this.#positionFor(logo),this.#syncPositionOptions()):this.#activeId=null,this.#clearError(),this.#syncSeatSlides(),this.#syncFormState(),this.#resetCropBox(),this.#drawEditor()}#syncSeatSlides(){for(const logo of this.#logos){const mine=!this.#isPerSeat||logo.seat===this.#seatStep;logo.layer.toggleAttribute(\"hidden\",!mine),logo.twinLayer?.toggleAttribute(\"hidden\",!mine)}}get#formId(){return this.dataset.formId||\"\"}get#active(){return this.#logos.find(logo=>logo.id===this.#activeId)??null}get#dialog(){return this.refs.dialog}#openModal(){const opening=!this.#dialog?.open;if(opening&&(this.#editorSession+=1),this.#isPerSeat&&!this.#dialog?.open){const want=this.#firstEmptySeat();if(want!==this.#seatStep){this.#seatStep=want;const logo=this.#logoForSeat(want);this.#activeId=logo?logo.id:null}this.#syncSeatSlides()}this.#syncSeatPreview(),this.#syncPositionOptions(),this.#ensureTwinLayers(),this.#dialog?.open||this.#dialog?.showModal(),opening&&this.#dialog?.open&&this.#trackPersonalisation(\"personalisation_start\"),this.#drawEditor()}#trackPersonalisation(name){window.fpAnalytics?.track(name,{product_id:this.dataset.productId||\"\",product_handle:this.dataset.productHandle||\"\",branded_seats:this.#applied?this.#requiredLogoCount():0})}#closeModal(options={}){this.#cancelPendingUploads(),this.#syncEmbroideryNote(),this.#dialog?.open&&this.#dialog.close(),this.#applied||this.#clearError(),options.discard&&!this.#applied&&this.#clearAllLogos(),this.#syncFormState(),this.#syncPersonalisedUi()}get#applied(){return this.dataset.applied===\"true\"}#setApplied(value){this.dataset.applied=value?\"true\":\"false\",this.#syncPersonalisedUi(),this.#syncFormState()}#syncPersonalisedUi(){const applied=this.#applied;this.refs.openButton?.classList.toggle(\"is-applied\",applied),this.refs.openButton?.setAttribute(\"aria-pressed\",String(applied)),this.refs.clearButton?.toggleAttribute(\"hidden\",!applied)}#askRemovePersonalisation(){const dialog=this.refs.removeDialog;if(!dialog){this.#removePersonalisation();return}dialog.open||dialog.showModal()}#closeRemoveDialog(){const dialog=this.refs.removeDialog;dialog?.open&&dialog.close()}#removePersonalisation(){const wasApplied=this.#applied;this.#closeRemoveDialog(),this.#clearAllLogos(),this.#selectBrandingValue(\"Unbranded\"),this.#setApplied(!1),wasApplied&&this.#trackPersonalisation(\"personalisation_remove\")}#targetBrandingValue(){return this.#isPerSeat?this.#logos.filter(logo=>logo.seat).length>=2?\"Both seats branded\":\"One seat branded\":this.dataset.brandedValue||\"Branded\"}#selectBrandingValue(value){const picker=this.#section?.querySelector(\"variant-picker\")||document.querySelector(\"variant-picker\");if(!(picker instanceof HTMLElement))return;const radios=[...picker.querySelectorAll('input[data-option-name=\"Branding\"]')].filter(radio=>radio instanceof HTMLInputElement);if(!radios.length)return;const wanted=(value||\"\").toLowerCase(),match=radios.find(radio=>radio.value.toLowerCase()===wanted)||radios.find(radio=>{const down=radio.value.toLowerCase();return down.includes(\"unbranded\")?wanted.includes(\"unbranded\"):wanted.includes(\"both\")?down.includes(\"both\"):wanted.includes(\"one\")?down.includes(\"one\"):down.includes(\"branded\")&&!down.includes(\"unbranded\")});match instanceof HTMLInputElement&&(match.checked||(match.checked=!0,match.dispatchEvent(new Event(\"change\",{bubbles:!0}))))}#confirmPersonalisation(){if(this.#pendingUploads.size){this.#showError(\"Your logo is still loading. Please wait before confirming personalisation.\");return}const ready=this.#logos.filter(logo=>logo.file instanceof File&&logo.file.size>0).length;if(this.#requireUpload&&ready<1){this.#showError(\"Please upload a logo before confirming personalisation.\");return}this.#clearError(),this.#setApplied(!0),this.#selectBrandingValue(this.#targetBrandingValue()),this.#trackPersonalisation(\"personalisation_confirm\"),this.#closeModal()}#detectSeatKind(){const forced=this.dataset.seatStyle;if(forced===\"high\"||forced===\"low\")return forced;const seatBack=(this.#section?.querySelector(\"variant-picker\")||document.querySelector(\"variant-picker\"))?.querySelector('input[data-option-name=\"Seat back\"]:checked');if(seatBack instanceof HTMLInputElement)return/low/i.test(seatBack.value)?\"low\":\"high\";const haystack=`${this.dataset.productHandle||\"\"} ${this.dataset.productTitle||\"\"}`.toLowerCase();return/\\blow[\\s-]?back\\b|\\blowback\\b|\\blow\\b/.test(haystack)&&!/\\bhigh[\\s-]?back\\b/.test(haystack)?\"low\":\"high\"}#syncSeatPreview(){const kind=this.#detectSeatKind();this.dataset.seatKind=kind;const high=this.dataset.highImage||\"\",low=this.dataset.lowImage||\"\",src=kind===\"low\"?low||high:high||low,seat=this.refs.seatImage,placeholder=this.refs.seatPlaceholder,label=this.refs.seatLabel;label&&(label.textContent=this.#seatKindLabel()),seat&&src?(seat.hidden=!1,seat.src!==src&&(seat.src=src,seat.alt=`${kind}-back seat cover preview`),placeholder&&(placeholder.hidden=!0)):placeholder&&(placeholder.hidden=!1),this.refs.modalTitle&&this.dataset.productTitle&&(this.refs.modalTitle.textContent=this.dataset.productTitle);const brandedPrice=this.#brandedDisplayPrice();brandedPrice&&(this.refs.modalPrice&&(this.refs.modalPrice.textContent=brandedPrice),this.refs.footerPrice&&(this.refs.footerPrice.textContent=brandedPrice))}#requiredLogoCount(){return this.#isPerSeat&&this.#targetBrandingValue().toLowerCase().includes(\"both\")?2:1}#brandedDisplayPrice(){return this.#isPerSeat&&this.#requiredLogoCount()>=2&&this.dataset.bothSeatsPrice?this.dataset.bothSeatsPrice:this.dataset.personalisedPrice||this.dataset.productPrice||this.dataset.productPriceBase||\"\"}#syncPositionOptions(){const lowBack=this.#detectSeatKind()===\"low\";if(this.refs.headrestOption?.toggleAttribute(\"hidden\",lowBack),lowBack&&this.#position===\"headrest\"){this.#setPosition(\"backrest\");return}const head=this.refs.posHead,back=this.refs.posBack;head&&(head.checked=this.#position===\"headrest\"),back&&(back.checked=this.#position===\"backrest\")}get#fixedScale(){return this.#scaleFor(null)}#sizingPhotoSrc=\"\";get#seatPhoto(){let src=this.#sizingPhotoSrc;if(!src){const high=this.dataset.highImage||\"\",low=this.dataset.lowImage||\"\";src=this.#detectSeatKind()===\"low\"?low||high:high||low}const match=Object.keys(SEAT_PHOTOS).find(name=>src.includes(name));return match?SEAT_PHOTOS[match]:SEAT_PHOTO_DEFAULT}get#trueScale(){const photo=this.#seatPhoto;return(Number(this.dataset.logoMm)||145)/photo.mm*photo.back*100}#scaleFor(logo){const headrest=this.#positionFor(logo)===\"headrest\"&&this.#detectSeatKind()!==\"low\",scale=Math.min(this.#trueScale,Number(this.dataset.fixedScale)||36);return this.#isVanDouble&&headrest?Math.min(scale,this.#vanDoubleHeadrestScale):scale}#logoMaxHeight(logo){const headrest=this.#positionFor(logo)===\"headrest\"&&this.#detectSeatKind()!==\"low\";let height=this.#trueScale/this.#seatPhoto.aspect;return this.#isVanDouble&&headrest&&(height=Math.min(height,7)),logo.hasBackground?height*(headrest?.78:.86):height}#slotCoords(position){const lowBack=this.#detectSeatKind()===\"low\";return(position||this.#position)===\"headrest\"&&!lowBack?{x:Number(this.dataset.headrestX||50),y:this.#isVanDouble?this.#vanDoubleHeadrestY:Number(this.dataset.headrestY||11)}:{x:Number(this.dataset.backrestX||50),y:Number(this.dataset.backrestY||31)}}#setPosition(position){const next=this.#detectSeatKind()===\"low\"?\"backrest\":position;this.#position=next;const head=this.refs.posHead,back=this.refs.posBack;if(head&&(head.checked=next===\"headrest\"),back&&(back.checked=next===\"backrest\"),this.#isPerSeat){const mine=this.#logoForSeat(this.#seatStep);mine&&(mine.position=next,this.#applyLogoTransform(mine))}else{for(const logo of this.#logos)logo.position=next;this.#applySlotToLogos()}this.#writePlacements()}#positionFor(logo){const want=logo&&logo.position||this.#position;return this.#detectSeatKind()===\"low\"?\"backrest\":want}#applySlotToLogos(){this.#ensureTwinLayers();for(const logo of this.#logos){const slot=this.#slotCoords(this.#positionFor(logo));logo.x=slot.x,logo.y=slot.y,logo.scale=this.#scaleFor(logo),this.#applyLogoTransform(logo)}}#handleProductSelect=event=>{if(!(event.target instanceof Element)||event.target.closest(\"product-card\"))return;const version=++this.#productSelectVersion,editorSession=this.#editorSession;event.promise?.then(({detail})=>{if(version!==this.#productSelectVersion||!detail?.html)return;const{html,newProduct}=detail,reopenedEditor=!!!(newProduct&&String(newProduct.id)!==String(this.dataset.productId))&&this.#dialog?.open&&this.#editorSession!==editorSession;if(newProduct)this.dataset.productId=newProduct.id;else if(detail.productId&&detail.productId!==this.dataset.productId)return;const updated=html.querySelector(`branding-logo-placer[data-block-id=\"${this.dataset.blockId}\"]`);if(!updated)return;const nowApplied=updated.getAttribute(\"data-applied\")===\"true\";if(this.dataset.applied=nowApplied?\"true\":\"false\",updated instanceof HTMLElement)for(const key of[\"productTitle\",\"productHandle\",\"productPrice\",\"productPriceBase\",\"personalisedPrice\",\"bothSeatsPrice\",\"personaliseUplift\",\"brandedValue\",\"highImage\",\"lowImage\",\"seatKind\",\"previewGroup\",\"maxLogos\",\"brandedSeats\",\"vanDoubleSpread\",\"vanDoubleBackrestSpread\",\"vanDoubleHeadrestY\",\"vanDoubleHeadrestScale\"]){const attr=key.replace(/[A-Z]/g,m=>`-${m.toLowerCase()}`),value=updated.getAttribute(`data-${attr}`);value!=null&&(this.dataset[key]=value)}this.#syncSeatPreview(),this.#syncPositionOptions(),this.#ensureTwinLayers(),this.#syncFormState(),this.#syncPersonalisedUi(),!this.#applied&&!reopenedEditor&&(this.#closeModal({discard:!0}),this.#clearError())}).catch(error=>{error?.name!==\"AbortError\"&&console.warn(\"[branding-logo-placer] Event promise rejected:\",error)})};#syncFormState(){const active=this.#applied,count=this.#logos.length,submitProps=active&&count>0,{fileInput,countInput,previewInput,dropzoneTitle,editor,statusText,openButton,positionFieldset,positionInput,sizeInput}=this.refs;fileInput instanceof HTMLInputElement&&(fileInput.disabled=!this.#isPerSeat&&count>=this.#maxLogos&&this.#maxLogos>1),countInput instanceof HTMLInputElement&&(countInput.disabled=!submitProps,countInput.value=submitProps?String(count):\"0\"),previewInput instanceof HTMLInputElement&&(previewInput.disabled=!submitProps),this.refs.previewInput2 instanceof HTMLInputElement&&(this.refs.previewInput2.disabled=!submitProps||!this.#isPerSeat),positionInput instanceof HTMLInputElement&&(positionInput.disabled=!submitProps),sizeInput instanceof HTMLInputElement&&(sizeInput.disabled=!submitProps);const{embroideryInput}=this.refs;embroideryInput instanceof HTMLInputElement&&(embroideryInput.disabled=!submitProps),this.#syncEmbroideryNote();for(const logo of this.#logos)logo.fileInput.disabled=!submitProps,logo.placementInput.disabled=!submitProps;this.#syncSeatSlides(),active&&this.#mountFilesOnForm(),this.#syncAcceleratedCheckout(active),editor?.toggleAttribute(\"hidden\",count===0),positionFieldset?.toggleAttribute(\"hidden\",count===0),this.#syncBgButtonOnSeat(),this.refs.vanDoubleHint?.toggleAttribute(\"hidden\",!this.#isVanDouble);const seats=this.#brandedSeats,perSeat=this.#isPerSeat;perSeat&&this.#seatStep>seats&&(this.#seatStep=seats);const step=perSeat?this.#seatStep:1,thisSeat=perSeat?this.#logoForSeat(step):null,filled=perSeat?this.#logos.filter(logo=>logo.seat).length:count,seatsDone=perSeat&&filled>=seats,nextSeat=Math.min(perSeat?step+1:count+1,seats);if(this.refs.seatSteps?.toggleAttribute(\"hidden\",!perSeat),perSeat)for(let n=1;n<=2;n+=1){const tab=this.refs[`seatTab${n}`],state=this.refs[`seatState${n}`];if(tab instanceof HTMLElement){const on=n===step;tab.classList.toggle(\"is-active\",on),tab.setAttribute(\"aria-selected\",String(on)),tab.toggleAttribute(\"hidden\",n>seats)}state instanceof HTMLElement&&(state.textContent=this.#logoForSeat(n)?\"Logo added\":\"Empty\")}if(this.refs.backButton instanceof HTMLElement){const canGoBack=perSeat&&step>1;this.refs.backButton.toggleAttribute(\"hidden\",!canGoBack),canGoBack&&(this.refs.backButton.textContent=`Back to seat ${step-1}`)}dropzoneTitle&&(dropzoneTitle.textContent=perSeat?thisSeat?`Replace the logo for seat ${step}`:`Add the logo for seat ${step}`:count>=this.#maxLogos&&this.#maxLogos>1?`Maximum ${this.#maxLogos} logos`:count>0?\"Replace logo\":this.#isVanDouble?\"Add a logo (both seats)\":\"Add a logo file\"),this.refs.dropzoneHint&&(this.refs.dropzoneHint.textContent=this.#isVanDouble?`One logo, embroidered on both seats \\xB7 PNG, JPG or WEBP \\xB7 max ${this.dataset.maxFileMb||5}MB`:perSeat?`Seat ${step} of ${seats} \\xB7 PNG, JPG or WEBP \\xB7 max ${this.dataset.maxFileMb||5}MB`:`PNG, JPG or WEBP \\xB7 max ${this.dataset.maxFileMb||5}MB`),statusText&&(statusText.textContent=this.#pendingUploads.size?\"Your logo is still loading. Please wait before confirming personalisation.\":count?this.#isVanDouble?\"1 logo ready on both seats. Saved with your order when you add to cart.\":perSeat?seatsDone?\"Both seats ready. Saved with your order when you add to cart.\":`${filled} of ${seats} seats done. Confirm for one seat, or add seat ${this.#firstEmptySeat()} for both.`:`${count} logo${count===1?\"\":\"s\"} ready. Saved with your order when you add to cart.`:perSeat?\"No logos yet. Add one for a single seat, or both seats.\":\"No logo yet.\");const finishLabel=perSeat&&step<seats?`Continue to seat ${nextSeat}`:\"Confirm personalisation\";this.refs.finishButton instanceof HTMLElement&&(this.refs.finishButton.textContent=finishLabel),this.refs.finishButtonOnSeat instanceof HTMLElement&&(this.refs.finishButtonOnSeat.textContent=finishLabel,this.refs.finishButtonOnSeat.toggleAttribute(\"hidden\",count===0&&!perSeat)),this.#writePlacements()}#syncAcceleratedCheckout(active){const form=this.#refreshForm(),container=form?.closest(\"product-form-component\")?.querySelector('[ref=\"acceleratedCheckoutButtonContainer\"]');if(!(container instanceof HTMLElement))return;if(active){container.setAttribute(\"hidden\",\"\"),container.dataset.fpPlacerHidden=\"\";return}const addButton=form?.querySelector('button[name=\"add\"]');!(addButton instanceof HTMLButtonElement&&addButton.disabled)&&(\"fpPlacerHidden\"in container.dataset||container.hasAttribute(\"hidden\"))&&(delete container.dataset.fpPlacerHidden,container.removeAttribute(\"hidden\"))}hasLogoFile(){return this.#logos.some(logo=>logo.file instanceof File&&logo.file.size>0)}blockIfMissingLogo(){return this.#blockIfMissingLogo()}#blockIfMissingLogo(){if(this.#applied===!1)return!1;if(this.#pendingUploads.size)return this.#showError(\"Your logo is still loading. Please wait before adding to cart.\"),this.#openModal(),!0;if(!this.#requireUpload)return!1;const ready=this.#logos.filter(logo=>logo.file instanceof File&&logo.file.size>0).length,needed=this.#requiredLogoCount();if(ready>=needed)return!1;const empty=this.#firstEmptySeat();return this.#isPerSeat&&this.#goToSeat(empty),this.#showError(needed>1?ready===0?`Please add a logo for each seat (${needed} needed) before adding to cart.`:`Add the logo for seat ${empty} before adding to cart.`:\"Please upload a logo before adding to cart.\"),this.#openModal(),!0}#refreshForm(){return this.#form=document.getElementById(this.#formId),this.#form}#syncEmbroideryNote(){const field=this.refs.noteField,input=this.refs.noteInput;if(!(input instanceof HTMLInputElement))return;const active=this.#applied,text=field instanceof HTMLTextAreaElement?field.value.trim().slice(0,255):\"\";if(field instanceof HTMLTextAreaElement&&field.value.length>255&&(field.value=field.value.slice(0,255)),!active||!text){input.value=\"\",input.disabled=!0;return}input.disabled=!1,input.value=text}#mountFilesOnForm(){const form=this.#refreshForm(),host=this.refs.inputsHost;if(!(!form||!this.#applied)){host instanceof HTMLElement&&host.parentElement!==form&&form.append(host);for(const ref of[\"previewInput\",\"previewInput2\",\"noteInput\"]){const field=this.refs[ref];field instanceof HTMLInputElement&&field.parentElement!==form&&form.append(field)}for(const logo of this.#logos)logo.file instanceof File&&this.#assignFile(logo.fileInput,logo.file)}}appendFilesToFormData(formData){if(!(formData instanceof FormData))return;for(const[key,value]of[...formData.entries()])(/^properties\\[Logo \\d+]$/.test(key)||key===\"properties[Placement preview]\"||key===\"properties[Seat 2 preview]\")&&(typeof value==\"string\"||value instanceof File&&value.size===0)&&formData.delete(key);for(const key of[...formData.keys()])/^properties\\[(Embroidery( position| note)?|Logo( count| size)|Placement preview|Seat 2 preview)]$/.test(key)&&!(this.#applied&&this.#logos.length>0)&&formData.delete(key);if(!(this.#applied&&this.#logos.length>0))return;this.#syncEmbroideryNote(),this.#mountFilesOnForm();const noteInput=this.refs.noteInput;noteInput?.name&&(formData.delete(noteInput.name),!noteInput.disabled&&noteInput.value.trim()&&formData.set(noteInput.name,noteInput.value.trim()));for(const logo of this.#logos){if(!(logo.file instanceof File)||logo.file.size===0)continue;const name=logo.fileInput?.name||`properties[Logo ${logo.index}]`;formData.delete(name),formData.set(name,logo.file,logo.file.name||\"logo.png\")}for(const ref of[\"previewInput\",\"previewInput2\"]){const preview=this.refs[ref],previewFile=preview?.files?.[0];preview?.name&&!preview.disabled&&previewFile instanceof File&&previewFile.size>0&&(formData.delete(preview.name),formData.set(preview.name,previewFile,previewFile.name))}}#findOurAddButton(event){if(!(event.target instanceof Element))return null;const form=this.#refreshForm();if(!form)return null;const button=event.target.closest('button[type=\"submit\"], button[name=\"add\"]');return button instanceof HTMLButtonElement&&(button.form===form||form.contains(button))?button:null}#findWalletButton(event){if(!(event.target instanceof Element))return null;const host=this.#refreshForm()?.closest(\"product-form-component\");if(!host)return null;const wallet=event.target.closest(\"shopify-accelerated-checkout, .shopify-payment-button, shopify-accelerated-checkout-cart, .accelerated-checkout-block\");return!wallet||!host.contains(wallet)?null:wallet}#onAddButtonClick=event=>{if(!this.#applied)return;if(this.#findWalletButton(event)){if(event.preventDefault(),event.stopPropagation(),event.stopImmediatePropagation(),this.#blockIfMissingLogo())return;const addButton=this.#refreshForm()?.closest(\"product-form-component\")?.querySelector('[ref=\"addToCartButton\"]');addButton instanceof HTMLButtonElement?addButton.click():this.#showError(\"Please use Add to cart so your logo is saved with the order.\");return}const button=this.#findOurAddButton(event);if(button){if(this.#blockIfMissingLogo()){event.preventDefault(),event.stopPropagation(),event.stopImmediatePropagation();return}if(this.#allowNextClick){this.#allowNextClick=!1;return}if(this.#attachedVersion===this.#previewVersion){this.#mountFilesOnForm();return}if(this.#addInFlight){event.preventDefault(),event.stopPropagation(),event.stopImmediatePropagation();return}event.preventDefault(),event.stopPropagation(),event.stopImmediatePropagation(),this.#addInFlight=!0,this.#ensurePreview().catch(error=>console.warn(\"[branding-logo-placer] Screenshot skipped:\",error)).then(()=>{this.#mountFilesOnForm(),this.#allowNextClick=!0,button.click()}).finally(()=>{setTimeout(()=>{this.#addInFlight=!1,this.#allowNextClick=!1},1500)})}};#onFileChange=event=>{const file=event.target.files?.[0];this.refs.fileInput instanceof HTMLInputElement&&(this.refs.fileInput.value=\"\"),file&&this.#loadFile(file)};#onDragEnter=event=>{event.preventDefault(),this.classList.add(\"is-dragging-file\")};#onDragOver=event=>{event.preventDefault()};#onDragLeave=event=>{(event.target===this||!this.contains(event.relatedTarget))&&this.classList.remove(\"is-dragging-file\")};#onDrop=event=>{if(event.preventDefault(),this.classList.remove(\"is-dragging-file\"),!this.#applied&&!this.#dialog?.open)return;const file=event.dataTransfer?.files?.[0];file&&this.#loadFile(file)};async#loadFile(file){const perSeat=this.#isPerSeat,seat=this.#seatStep,position=this.#position;if(perSeat){const existing=this.#logoForSeat(seat);existing&&this.#removeLogo(existing.id)}else if(this.#maxLogos===1)this.#logos[0]&&this.#removeLogo(this.#logos[0].id);else if(this.#logos.length+this.#pendingUploads.size>=this.#maxLogos){this.#showError(`You can add up to ${this.#maxLogos} logos.`);return}const version=++this.#uploadSequence,key=perSeat?`seat:${seat}`:this.#maxLogos===1?\"single\":`upload:${version}`;this.#pendingUploads.set(key,version);const isCurrent=()=>this.#pendingUploads.get(key)===version&&perSeat===this.#isPerSeat&&(!perSeat||seat<=this.#brandedSeats);this.#clearError(),this.#syncFormState();let objectUrl=\"\",mounted=!1;try{const logoFile=await this.#normalizeLogoFile(file);if(!isCurrent())return;objectUrl=URL.createObjectURL(logoFile);const workingSrc=await this.#fileToPngDataUrl(logoFile).catch(()=>objectUrl),hasBackground=await this.#detectBackgroundLayer(workingSrc).catch(()=>!1),warpedSrc=await this.#warpPreview(workingSrc).catch(()=>null);if(!isCurrent())return;this.#clearError();const slot=this.#slotCoords(position),entry=this.#createLogoEntry({file:logoFile,objectUrl,workingSrc,warpedSrc,hasBackground,x:slot.x,y:slot.y,scale:this.#fixedScale,rotation:0});entry.position=position,this.#constrainLogo(entry),perSeat&&(entry.seat=seat),this.#logos.push(entry),mounted=!0,this.#pendingUploads.delete(key),this.#reindexLogos(),(!perSeat||this.#seatStep===seat)&&this.#setActive(entry.id),this.#mountLogo(entry),this.#syncSeatSlides(),this.#syncFormState(),this.#resetCropBox(),this.#drawEditor(),this.#openModal()}catch{isCurrent()&&this.#showError(\"Please use a PNG, JPG, WEBP or HEIC file.\")}finally{objectUrl&&!mounted&&URL.revokeObjectURL(objectUrl),this.#pendingUploads.get(key)===version&&(this.#pendingUploads.delete(key),this.#syncFormState())}}#createLogoEntry(data){const id=this.#nextId++,fragment=this.refs.layerTemplate?.content?.cloneNode(!0),layer=fragment instanceof DocumentFragment?fragment.querySelector(\".branding-preview__logo\"):null;if(!layer)throw new Error(\"Logo layer template missing\");const image=layer.querySelector(\"img\");image.alt=`Logo preview ${id}`,image.src=data.warpedSrc||data.workingSrc;let twinLayer=null,twinImage=null;this.#isVanDouble&&(twinLayer=this.#cloneTwinLayer(layer),twinImage=twinLayer.querySelector(\"img\"));const fileInput=document.createElement(\"input\");fileInput.type=\"file\",fileInput.accept=\"image/png,image/jpeg,image/webp,image/heic,image/heif,.png,.jpg,.jpeg,.webp,.heic,.heif\",fileInput.name=\"properties[Logo 1]\",fileInput.setAttribute(\"form\",this.#formId),fileInput.className=\"visually-hidden\",this.#assignFile(fileInput,data.file);const placementInput=document.createElement(\"input\");placementInput.type=\"hidden\",placementInput.name=\"properties[Logo 1 placement]\",placementInput.setAttribute(\"form\",this.#formId),this.refs.inputsHost?.append(fileInput,placementInput),this.#mountFilesOnForm();const entry={id,index:1,file:data.file,originalFile:data.file,objectUrl:data.objectUrl,workingSrc:data.workingSrc,warpedSrc:data.warpedSrc,hasBackground:data.hasBackground,x:data.x,y:data.y,scale:data.scale,rotation:data.rotation,layer,image,twinLayer,twinImage,fileInput,placementInput};return this.#applyLogoTransform(entry),entry}#mountLogo(logo){this.#target=this.refs.previewHost||null,this.#target&&(logo.layer.parentElement!==this.#target&&this.#target.appendChild(logo.layer),logo.twinLayer&&logo.twinLayer.parentElement!==this.#target&&this.#target.appendChild(logo.twinLayer),this.#applyLogoTransform(logo))}#reindexLogos(){if(this.#isPerSeat){this.#logos.sort((a,b)=>(a.seat||0)-(b.seat||0));for(const logo of this.#logos)logo.index=logo.seat||1,logo.fileInput.name=`properties[Logo ${logo.index}]`,logo.placementInput.name=`properties[Logo ${logo.index} placement]`;return}this.#logos.forEach((logo,i)=>{logo.index=i+1,logo.fileInput.name=`properties[Logo ${logo.index}]`,logo.placementInput.name=`properties[Logo ${logo.index} placement]`})}#setActive(id){this.#activeId=id;for(const logo of this.#logos)logo.layer.classList.toggle(\"is-selected\",logo.id===id);this.#syncBgButtonOnSeat(),this.#drawEditor()}#removeLogo(id){const index=this.#logos.findIndex(logo2=>logo2.id===id);if(index<0)return;const[logo]=this.#logos.splice(index,1);logo.layer.remove(),logo.twinLayer?.remove(),logo.fileInput.remove(),logo.placementInput.remove(),URL.revokeObjectURL(logo.objectUrl);const stay=this.#isPerSeat?this.#logoForSeat(this.#seatStep):null;this.#activeId=(stay??this.#logos[this.#logos.length-1])?.id??null,this.#activeId!=null&&this.#setActive(this.#activeId),this.#reindexLogos(),this.#syncSeatSlides(),this.#syncFormState(),this.#drawEditor()}#cancelPendingUploads(){this.#pendingUploads.clear()}#clearAllLogos(){this.#cancelPendingUploads();for(const logo of[...this.#logos])this.#removeLogo(logo.id)}#cloneTwinLayer(layer){const twinLayer=layer.cloneNode(!0);twinLayer.removeAttribute(\"hidden\"),twinLayer.classList.remove(\"is-selected\"),twinLayer.classList.add(\"branding-preview__logo--twin\"),twinLayer.setAttribute(\"aria-hidden\",\"true\");const twinImage=twinLayer.querySelector(\"img\");return twinImage instanceof HTMLImageElement&&(twinImage.alt=\"\"),twinLayer}#ensureTwinLayers(){for(;this.#logos.length>this.#maxLogos;)this.#removeLogo(this.#logos[this.#logos.length-1].id);for(const logo of this.#logos)this.#isVanDouble?(logo.twinLayer||(logo.twinLayer=this.#cloneTwinLayer(logo.layer),logo.twinImage=logo.twinLayer.querySelector(\"img\")),this.#mountLogo(logo)):logo.twinLayer&&(logo.twinLayer.remove(),logo.twinLayer=null,logo.twinImage=null,this.#applyLogoTransform(logo))}#previewPoints(logo){if(!this.#isVanDouble)return[{x:logo.x,y:logo.y}];const spread=this.#positionFor(logo)===\"headrest\"&&this.#detectSeatKind()!==\"low\"?this.#vanDoubleSpread:this.#vanDoubleBackrestSpread,clamp=value=>Math.max(8,Math.min(92,value));return[{x:clamp(logo.x-spread),y:logo.y},{x:clamp(logo.x+spread),y:logo.y}]}#constrainLogo(logo){const place=this.#positionFor(logo),slot=this.#slotCoords(place),headrest=place===\"headrest\"&&this.#detectSeatKind()!==\"low\",backgroundScale=headrest?.76:.85;logo.scale=this.#scaleFor(logo)*(logo.hasBackground?backgroundScale:1),logo.x=slot.x,logo.y=logo.hasBackground&&headrest?slot.y-.5:slot.y}#applyLogoTransform(logo){this.#constrainLogo(logo);const points=this.#previewPoints(logo),src=logo.warpedSrc||logo.workingSrc,applyLayer=(layer,image,point)=>{!(layer instanceof HTMLElement)||!point||(layer.style.setProperty(\"--logo-x\",`${point.x}%`),layer.style.setProperty(\"--logo-y\",`${point.y}%`),layer.style.setProperty(\"--logo-scale\",String(logo.scale)),layer.style.setProperty(\"--logo-max-height\",String(this.#logoMaxHeight(logo))),layer.toggleAttribute(\"data-background-layer\",logo.hasBackground),layer.style.setProperty(\"--logo-rotation\",\"0deg\"),image&&image.src!==src&&(image.src=src))};applyLayer(logo.layer,logo.image,points[0]),applyLayer(logo.twinLayer,logo.twinImage,points[1]||points[0]),logo.rotation=0,this.#previewChanged()}get previewVersion(){return this.#previewVersion}#previewChanged(){this.#previewVersion+=1,clearTimeout(this.#prerenderTimer),!(!this.#applied||this.#logos.length===0)&&(this.#prerenderTimer=setTimeout(()=>{this.#ensurePreview().catch(error=>console.warn(\"[branding-logo-placer] Preview skipped:\",error))},500))}#ensurePreview(){const version=this.#previewVersion;if(this.#attachedVersion===version)return Promise.resolve();if(this.#attachPromise&&this.#attachPromiseVersion===version)return this.#attachPromise;this.#attachPromiseVersion=version;const pending=this.#attachScreenshot().then(()=>{this.#previewVersion===version&&(this.#attachedVersion=version)}).finally(()=>{this.#attachPromise===pending&&(this.#attachPromise=null)});return this.#attachPromise=pending,pending}#seatKindLabel(){const group=this.dataset.previewGroup;return group===\"van-double\"?\"Double passenger\":group===\"van-driver\"||group===\"pickup-driver\"?\"Driver\":group===\"pickup-passenger\"?\"Passenger\":this.#detectSeatKind()===\"low\"?\"Low back\":\"High back\"}#writePlacements(){this.#previewChanged();const kind=this.#seatKindLabel(),mm=this.dataset.logoMm||\"145\",label=place=>{const slot=place===\"headrest\"&&this.#detectSeatKind()!==\"low\"?\"Headrest\":\"Backrest\";return this.#isVanDouble?`Both seats \\xB7 ${slot}`:slot};if(this.refs.positionInput instanceof HTMLInputElement){const each=this.#isPerSeat?this.#logos.map(logo=>`Seat ${logo.index}: ${label(this.#positionFor(logo))}`).join(\" \\xB7 \"):\"\";this.refs.positionInput.value=each||label(this.#position)}this.refs.sizeInput instanceof HTMLInputElement&&(this.refs.sizeInput.value=`${mm} mm`);for(const logo of this.#logos){const seat=this.#isPerSeat?`Seat ${logo.index} \\xB7 `:\"\";logo.placementInput.value=`${seat}${kind} \\xB7 ${label(this.#positionFor(logo))} \\xB7 ${mm} mm`}this.refs.countInput instanceof HTMLInputElement&&this.#applied&&(this.refs.countInput.value=String(this.#logos.length))}#onCropPointerDown=event=>{if(!(event.target instanceof Element))return;event.preventDefault(),event.stopPropagation();const handle=event.target.closest(\"[data-crop]\");this.#pointerId=event.pointerId,this.#dragMode=handle?\"crop-resize\":\"crop-move\",this.#cropHandle=handle?.getAttribute(\"data-crop\")||null;const box=this.refs.cropBox;this.#cropStart={x:event.clientX,y:event.clientY,left:parseFloat(box?.style.left||\"8\"),top:parseFloat(box?.style.top||\"8\"),width:parseFloat(box?.style.width||\"84\"),height:parseFloat(box?.style.height||\"84\")},window.addEventListener(\"pointermove\",this.#onPointerMove),window.addEventListener(\"pointerup\",this.#onPointerUp),window.addEventListener(\"pointercancel\",this.#onPointerUp)};#onPointerMove=event=>{if(event.pointerId!==this.#pointerId||!this.#dragMode)return;event.preventDefault();const stage=this.refs.editorStage?.getBoundingClientRect(),box=this.refs.cropBox;if(!stage||!box||!stage.width)return;const dx=(event.clientX-this.#cropStart.x)/stage.width*100,dy=(event.clientY-this.#cropStart.y)/stage.height*100;let{left,top,width,height}=this.#cropStart;this.#dragMode===\"crop-move\"?(left+=dx,top+=dy):this.#cropHandle===\"se\"?(width+=dx,height+=dy):this.#cropHandle===\"ne\"?(width+=dx,top+=dy,height-=dy):this.#cropHandle===\"sw\"?(left+=dx,width-=dx,height+=dy):this.#cropHandle===\"nw\"&&(left+=dx,top+=dy,width-=dx,height-=dy),width=this.#clamp(width,12,100),height=this.#clamp(height,12,100),left=this.#clamp(left,0,100-width),top=this.#clamp(top,0,100-height),this.#setCropBox(left,top,width,height)};#onPointerUp=event=>{event.pointerId===this.#pointerId&&(this.#dragMode=null,this.#cropHandle=null,this.#pointerId=-1,window.removeEventListener(\"pointermove\",this.#onPointerMove),window.removeEventListener(\"pointerup\",this.#onPointerUp),window.removeEventListener(\"pointercancel\",this.#onPointerUp),this.#writePlacements())};async#resetCropBox(){const logo=this.#active;if(!logo){this.#setCropBox(8,8,84,84);return}try{const img=await this.#loadImageElement(logo.workingSrc),fit=Math.min(1/img.naturalWidth,1/img.naturalHeight),width=img.naturalWidth*fit*100,height=img.naturalHeight*fit*100;this.#setCropBox((100-width)/2,(100-height)/2,width,height)}catch{this.#setCropBox(8,8,84,84)}}async#resetLogo(){const logo=this.#active;logo&&(logo.backgroundRemoved=!1,this.#syncBgButtonOnSeat(),logo.file=logo.originalFile,this.#assignFile(logo.fileInput,logo.originalFile),logo.workingSrc=logo.objectUrl,logo.hasBackground=await this.#detectBackgroundLayer(logo.workingSrc).catch(()=>!1),logo.warpedSrc=await this.#warpPreview(logo.workingSrc).catch(()=>null),this.#applyLogoTransform(logo),await this.#resetCropBox(),this.#drawEditor(),this.#writePlacements())}#setCropBox(left,top,width,height){const box=this.refs.cropBox;box&&(box.style.left=`${left}%`,box.style.top=`${top}%`,box.style.width=`${width}%`,box.style.height=`${height}%`)}async#drawEditor(){const canvas=this.refs.editorCanvas,logo=this.#active;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const size=520;if(canvas.width=size,canvas.height=size,ctx.clearRect(0,0,size,size),!!logo)try{const img=await this.#loadImageElement(logo.workingSrc),scale=Math.min(size/img.naturalWidth,size/img.naturalHeight),w=img.naturalWidth*scale,h=img.naturalHeight*scale;ctx.drawImage(img,(size-w)/2,(size-h)/2,w,h)}catch{}}async#applyCrop(){const logo=this.#active,box=this.refs.cropBox;if(!logo||!box)return;const left=parseFloat(box.style.left||\"8\")/100,top=parseFloat(box.style.top||\"8\")/100,width=parseFloat(box.style.width||\"84\")/100,height=parseFloat(box.style.height||\"84\")/100,img=await this.#loadImageElement(logo.workingSrc),size=520,fit=Math.min(1/img.naturalWidth,1/img.naturalHeight),full={w:img.naturalWidth*fit,h:img.naturalHeight*fit};if(Math.abs(width-full.w)<.01&&Math.abs(height-full.h)<.01&&Math.abs(left-(1-full.w)/2)<.01&&Math.abs(top-(1-full.h)/2)<.01)return;const scale=Math.min(size/img.naturalWidth,size/img.naturalHeight),drawW=img.naturalWidth*scale,drawH=img.naturalHeight*scale,offsetX=(size-drawW)/2,offsetY=(size-drawH)/2,sx=this.#clamp((left*size-offsetX)/drawW*img.naturalWidth,0,img.naturalWidth-1),sy=this.#clamp((top*size-offsetY)/drawH*img.naturalHeight,0,img.naturalHeight-1),sw=this.#clamp(width*size/drawW*img.naturalWidth,1,img.naturalWidth-sx),sh=this.#clamp(height*size/drawH*img.naturalHeight,1,img.naturalHeight-sy),out=document.createElement(\"canvas\");out.width=Math.max(1,Math.round(sw)),out.height=Math.max(1,Math.round(sh));const ctx=out.getContext(\"2d\");ctx&&(ctx.drawImage(img,sx,sy,sw,sh,0,0,out.width,out.height),await this.#commitCanvas(logo,out,`${this.#baseName(logo.file.name)}-cropped.png`),await this.#resetCropBox())}async#removeBackground(){const logo=this.#active;if(!logo)return;const button=this.refs.bgButtonOnSeat;button instanceof HTMLButtonElement&&(button.disabled=!0,button.textContent=\"Removing\\u2026\");try{await this.#knockOutLogo(logo),logo.backgroundRemoved=!0}finally{this.#syncBgButtonOnSeat()}}#syncBgButtonOnSeat(){const button=this.refs.bgButtonOnSeat;if(!(button instanceof HTMLButtonElement))return;const logo=this.#active;button.toggleAttribute(\"hidden\",!logo),button.disabled=!!logo?.backgroundRemoved,button.textContent=logo?.backgroundRemoved?\"Background removed\":\"Remove background\"}async#knockOutLogo(logo){const img=await this.#loadImageElement(logo.workingSrc),canvas=document.createElement(\"canvas\");canvas.width=img.naturalWidth,canvas.height=img.naturalHeight;const ctx=canvas.getContext(\"2d\",{willReadFrequently:!0});if(!ctx)return;ctx.drawImage(img,0,0);const image=ctx.getImageData(0,0,canvas.width,canvas.height);knockoutBackground(image),ctx.putImageData(image,0,0),await this.#commitCanvas(logo,canvas,`${this.#baseName(logo.file.name)}-nobg.png`)}async#commitCanvas(logo,canvas,filename){const file=await this.#encodeLogo(canvas,canvas.width,canvas.height,this.#baseName(filename)).catch(()=>null);file&&(logo.file=file,this.#assignFile(logo.fileInput,file),logo.workingSrc=canvas.toDataURL(\"image/png\"),logo.hasBackground=await this.#detectBackgroundLayer(logo.workingSrc).catch(()=>!1),logo.warpedSrc=await this.#warpPreview(logo.workingSrc).catch(()=>null),this.#applyLogoTransform(logo),this.#drawEditor(),this.#writePlacements())}#assignFile(input,file){const transfer=new DataTransfer;file instanceof File&&transfer.items.add(file),input.files=transfer.files}#baseName(name){return name.replace(/\\.[^.]+$/,\"\")||\"logo\"}async#attachScreenshot(){if(this.#logos.length===0)return;if(this.#isPerSeat){const slots=[[1,this.refs.previewInput],[2,this.refs.previewInput2]];for(const[seat,input2]of slots){if(!(input2 instanceof HTMLInputElement))continue;const logo=this.#logoForSeat(seat);if(!logo){this.#assignFile(input2,null);continue}const blob2=await this.#capturePreviewBlob([logo]);blob2&&this.#assignFile(input2,new File([blob2],`seat-${seat}-preview.jpg`,{type:PREVIEW_TYPE}))}return}const input=this.refs.previewInput;if(!input)return;const blob=await this.#capturePreviewBlob();blob&&this.#assignFile(input,new File([blob],\"placement-preview.jpg\",{type:PREVIEW_TYPE}))}async#capturePreviewBlob(only){const host=this.#target||this.refs.previewHost,seat=this.refs.seatImage;if(!host)return null;const width=PREVIEW_WIDTH,height=seat&&seat.naturalWidth?Math.round(width*(seat.naturalHeight/seat.naturalWidth)):Math.round(width*((host.clientHeight||900)/(host.clientWidth||900))),canvas=document.createElement(\"canvas\");canvas.width=width,canvas.height=height;const ctx=canvas.getContext(\"2d\");if(!ctx)return null;ctx.fillStyle=\"#ececec\",ctx.fillRect(0,0,width,height),seat&&!seat.hidden&&seat.naturalWidth&&this.#drawContain(ctx,seat,width,height);for(const logo of only||this.#logos)try{const img=await this.#loadImageElement(logo.warpedSrc||logo.workingSrc),maxLogoW=logo.scale/100*width,maxLogoH=this.#logoMaxHeight(logo)/100*height,logoScale=Math.min(maxLogoW/(img.naturalWidth||1),maxLogoH/(img.naturalHeight||1)),logoW=img.naturalWidth*logoScale,logoH=img.naturalHeight*logoScale;for(const point of this.#previewPoints(logo))ctx.save(),ctx.translate(point.x/100*width,point.y/100*height),ctx.drawImage(img,-logoW/2,-logoH/2,logoW,logoH),ctx.restore()}catch(error){console.warn(\"[branding-logo-placer] Logo composite skipped:\",error)}return new Promise(resolve=>canvas.toBlob(blob=>resolve(blob),PREVIEW_TYPE,PREVIEW_QUALITY))}async prepareLogo(file){const logoFile=await this.#normalizeLogoFile(file),workingSrc=await this.#fileToPngDataUrl(logoFile),hasBackground=await this.#detectBackgroundLayer(workingSrc).catch(()=>!1),warpedSrc=await this.#warpPreview(workingSrc).catch(()=>null);return{file:logoFile,workingSrc,warpedSrc,hasBackground}}async capturePreviewFor(group,instead){if(!instead&&(!this.#applied||this.#logos.length===0))return null;const sources=instead?[{...instead.logo,position:instead.position,scale:this.#fixedScale,x:50,y:50}]:this.#logos;let seatSrc=\"\";try{seatSrc=JSON.parse(this.dataset.seatImages||\"{}\")[group]||\"\"}catch{seatSrc=\"\"}const seat=seatSrc?await this.#loadImageElement(seatSrc).catch(()=>null):null,saved=this.dataset.previewGroup,placed=[];try{this.dataset.previewGroup=group,this.#sizingPhotoSrc=seatSrc;for(const logo of sources){const copy={...logo};this.#constrainLogo(copy),placed.push({logo,points:this.#previewPoints(copy),scale:copy.scale,maxHeight:this.#logoMaxHeight(copy)})}}finally{this.#sizingPhotoSrc=\"\",saved==null?delete this.dataset.previewGroup:this.dataset.previewGroup=saved}const width=PREVIEW_WIDTH,height=seat?.naturalWidth?Math.round(width*(seat.naturalHeight/seat.naturalWidth)):width,canvas=document.createElement(\"canvas\");canvas.width=width,canvas.height=height;const ctx=canvas.getContext(\"2d\");if(!ctx)return null;ctx.fillStyle=\"#ececec\",ctx.fillRect(0,0,width,height),seat&&this.#drawContain(ctx,seat,width,height);for(const{logo,points,scale,maxHeight}of placed)try{const img=await this.#loadImageElement(logo.warpedSrc||logo.workingSrc),logoScale=Math.min(scale/100*width/(img.naturalWidth||1),maxHeight/100*height/(img.naturalHeight||1)),logoW=img.naturalWidth*logoScale,logoH=img.naturalHeight*logoScale;for(const point of points)ctx.drawImage(img,point.x/100*width-logoW/2,point.y/100*height-logoH/2,logoW,logoH)}catch(error){console.warn(\"[branding-logo-placer] Logo composite skipped:\",error)}const blob=await new Promise(resolve=>canvas.toBlob(b=>resolve(b),PREVIEW_TYPE,PREVIEW_QUALITY));return blob?new File([blob],`${group}-placement-preview.jpg`,{type:PREVIEW_TYPE}):null}#drawContain(ctx,img,width,height){const iw=Number(img.naturalWidth||img.width)||width,ih=Number(img.naturalHeight||img.height)||height,scale=Math.min(width/iw,height/ih),dw=iw*scale,dh=ih*scale;ctx.drawImage(img,(width-dw)/2,(height-dh)/2,dw,dh)}#loadImageElement(src){return new Promise((resolve,reject)=>{const img=new Image;img.onload=()=>resolve(img),img.onerror=()=>reject(new Error(\"Image failed to load\")),img.src=src})}async#detectBackgroundLayer(src){const image=await this.#loadImageElement(src),size=48,canvas=document.createElement(\"canvas\");canvas.width=size,canvas.height=size;const ctx=canvas.getContext(\"2d\",{willReadFrequently:!0});if(!ctx)return!1;ctx.clearRect(0,0,size,size),ctx.drawImage(image,0,0,size,size);const{data}=ctx.getImageData(0,0,size,size),alphaAt=(x,y)=>data[(y*size+x)*4+3];let borderPixels=0,opaqueBorderPixels=0;for(let y=0;y<size;y++)for(let x=0;x<size;x++)x>2&&x<size-3&&y>2&&y<size-3||(borderPixels++,alphaAt(x,y)>220&&opaqueBorderPixels++);const cornerAlpha=(startX,startY)=>{let total=0;for(let y=startY;y<startY+4;y++)for(let x=startX;x<startX+4;x++)total+=alphaAt(x,y);return total/16};return[cornerAlpha(0,0),cornerAlpha(size-4,0),cornerAlpha(0,size-4),cornerAlpha(size-4,size-4)].every(alpha=>alpha>220)&&opaqueBorderPixels/borderPixels>.82}async#normalizeLogoFile(file){const decoded=await this.#decodeImage(file);if([\"image/png\",\"image/jpeg\",\"image/webp\"].includes(file.type)&&file.size<=this.#maxBytes&&Math.max(decoded.width,decoded.height)<=2e3)return decoded.close?.(),file;try{return await this.#encodeLogo(decoded.image,decoded.width,decoded.height,this.#baseName(file.name))}finally{decoded.close?.()}}async#encodeLogo(source,sourceWidth,sourceHeight,baseName){const canvas=document.createElement(\"canvas\"),ctx=canvas.getContext(\"2d\");if(!ctx)throw new Error(\"Canvas unavailable\");const toBlob=(type,quality)=>new Promise(resolve=>canvas.toBlob(result=>resolve(result),type,quality)),fits=candidate=>candidate&&candidate.size<=this.#maxBytes,transparent=this.#hasTransparency(source),longest=Math.max(sourceWidth,sourceHeight);let blob=null;for(const edge of LOGO_UPLOAD_EDGES){const scale=Math.min(1,edge/longest);if(canvas.width=Math.max(1,Math.round(sourceWidth*scale)),canvas.height=Math.max(1,Math.round(sourceHeight*scale)),ctx.drawImage(source,0,0,canvas.width,canvas.height),(transparent||edge===LOGO_UPLOAD_EDGES[0])&&(blob=await toBlob(\"image/png\")),!fits(blob)&&!transparent&&(blob=await toBlob(\"image/jpeg\",.88),fits(blob)||(blob=await toBlob(\"image/jpeg\",.75))),fits(blob)||scale===1)break}if(!blob||blob.size===0)throw new Error(\"Could not encode logo\");const ext=blob.type===\"image/jpeg\"?\"jpg\":\"png\";return new File([blob],`${baseName}.${ext}`,{type:blob.type})}#hasTransparency(source){const canvas=document.createElement(\"canvas\");canvas.width=64,canvas.height=64;const ctx=canvas.getContext(\"2d\",{willReadFrequently:!0});if(!ctx)return!0;ctx.drawImage(source,0,0,64,64);const{data}=ctx.getImageData(0,0,64,64);for(let i=3;i<data.length;i+=4)if(data[i]<250)return!0;return!1}async#fileToPngDataUrl(file){const decoded=await this.#decodeImage(file),canvas=document.createElement(\"canvas\");canvas.width=decoded.width,canvas.height=decoded.height;const ctx=canvas.getContext(\"2d\");return ctx?(ctx.drawImage(decoded.image,0,0),decoded.close?.(),canvas.toDataURL(\"image/png\")):(decoded.close?.(),URL.createObjectURL(file))}async#decodeImage(file){if(typeof createImageBitmap==\"function\")try{const bitmap=await createImageBitmap(file);return{image:bitmap,width:bitmap.width,height:bitmap.height,close:()=>bitmap.close?.()}}catch{}const url=URL.createObjectURL(file),image=await this.#loadImageElement(url);return{image,width:image.naturalWidth,height:image.naturalHeight}}async#warpPreview(src){const image=await this.#loadImageElement(src),width=Math.max(1,Math.min(900,image.naturalWidth||image.width)),height=Math.max(1,Math.round(width/image.naturalWidth*image.naturalHeight)),source=document.createElement(\"canvas\");source.width=width,source.height=height;const sourceCtx=source.getContext(\"2d\",{willReadFrequently:!0});if(!sourceCtx)return null;sourceCtx.drawImage(image,0,0,width,height);const sourceData=sourceCtx.getImageData(0,0,width,height),out=document.createElement(\"canvas\");out.width=width,out.height=height;const outCtx=out.getContext(\"2d\");if(!outCtx)return null;const outImage=outCtx.createImageData(width,height),strength=.12,vBulge=.03;for(let y=0;y<height;y++){const ny=y/(height-1||1),vCurve=1+vBulge*Math.sin(ny*Math.PI);for(let x=0;x<width;x++){const nx=x/(width-1||1)*2-1,srcNx=nx+strength*(Math.sin(nx*(Math.PI/2))-nx),srcX=this.#clamp((srcNx+1)/2*(width-1),0,width-1),srcY=this.#clamp(((ny-.5)/vCurve+.5)*(height-1),0,height-1),x0=Math.floor(srcX),y0=Math.floor(srcY),x1=Math.min(width-1,x0+1),y1=Math.min(height-1,y0+1),fx=srcX-x0,fy=srcY-y0,i=(y*width+x)*4,s=sourceData.data,i00=(y0*width+x0)*4,i10=(y0*width+x1)*4,i01=(y1*width+x0)*4,i11=(y1*width+x1)*4,a00=s[i00+3]*(1-fx)*(1-fy),a10=s[i10+3]*fx*(1-fy),a01=s[i01+3]*(1-fx)*fy,a11=s[i11+3]*fx*fy,alpha=a00+a10+a01+a11;for(let c=0;c<3;c++)outImage.data[i+c]=alpha>0?Math.round((s[i00+c]*a00+s[i10+c]*a10+s[i01+c]*a01+s[i11+c]*a11)/alpha):0;outImage.data[i+3]=Math.round(alpha);const shade=1-Math.abs(nx)*.1;outImage.data[i]=Math.round(outImage.data[i]*shade),outImage.data[i+1]=Math.round(outImage.data[i+1]*shade),outImage.data[i+2]=Math.round(outImage.data[i+2]*shade)}}return outCtx.putImageData(outImage,0,0),out.toDataURL(\"image/png\")}#showError(message){for(const el of[this.refs.errorMessage,this.refs.modalError])el&&(el.textContent=message,el.removeAttribute(\"hidden\"))}#clearError(){for(const el of[this.refs.errorMessage,this.refs.modalError])el&&(el.textContent=\"\",el.setAttribute(\"hidden\",\"\"))}#clamp(value,min,max){return Math.min(max,Math.max(min,value))}}customElements.get(\"branding-logo-placer\")||customElements.define(\"branding-logo-placer\",BrandingLogoPlacer);\n//# sourceMappingURL=/cdn/shop/t/4/assets/branding-logo-placer.js.map?blp=58&v=63988041252299313891793881240\n"],
  "mappings": "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",
  "names": []
}
