@spiffcommerce/core 22.4.6 → 22.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1565,7 +1565,7 @@ class BA {
1565
1565
  * Disabling processing will not cancel any active promises.
1566
1566
  */
1567
1567
  set enabled(e) {
1568
- !this.isEnabled && e && !this.activePromise && (this.activePromise = this.dequeue()), this.isEnabled = e;
1568
+ !this.isEnabled && e && !this.activePromise && this.getRemainingQueueSize() > 0 && (this.activePromise = this.dequeue()), this.isEnabled = e;
1569
1569
  }
1570
1570
  /**
1571
1571
  * @returns Returns true when work is being actively processed by this queue.
@@ -13553,7 +13553,7 @@ class es {
13553
13553
  } catch (A) {
13554
13554
  throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
13555
13555
  }
13556
- }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.4.5"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13556
+ }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.4.7"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13557
13557
  }
13558
13558
  /** @deprecated Use `configure` instead */
13559
13559
  configureUrls(e, t, A) {
@@ -782,7 +782,7 @@
782
782
  }
783
783
  }
784
784
  }
785
- `,he=[l.StepType.SilentIllustration,l.StepType.ProductOverlay],Bn=async c=>{const e=[];c.introduction&&e.push({name:"Introduction",title:c.name,renderableSteps:[{type:l.StepType.Introduction,stepName:"Introduction",stepTitle:c.name,helpText:c.introduction,data:{},conditions:[]}],silentSteps:[]});for(const A of c.steps){const n=dn(A.stepName,c.stepGroups);if(!n)e.push({name:A.stepName,title:A.stepTitle,renderableSteps:he.includes(A.type)?[]:[A],silentSteps:he.includes(A.type)?[A]:[]});else{const a=e.find(i=>i.name===n.name);a?he.includes(A.type)?a.silentSteps.push(A):a.renderableSteps.push(A):e.push({name:n.name,title:n.name,renderableSteps:he.includes(A.type)?[]:[A],silentSteps:he.includes(A.type)?[A]:[]})}}const t="workflow.steps.finish.confirmDesign";return e.push({name:"Finish",title:t,renderableSteps:[{type:l.StepType.Finish,stepName:"Finish",stepTitle:t,helpText:"",data:{modelAnimation:c.finalizeStepConfig?c.finalizeStepConfig.modelAnimation:void 0,lookAtAnimation:c.finalizeStepConfig?c.finalizeStepConfig.lookAtAnimation:void 0},conditions:[]}],silentSteps:[]}),e},dn=(c,e)=>e.find(t=>t.stepNames.includes(c)),ne=(c,e)=>(c.conditions||[]).every(t=>{const A=e[t.targetStepName];if(A&&A.selectedVariants){const n=A.selectedVariants;return t.requiredVariantSelections.some(a=>n.find(i=>i.id===a)!==void 0)}return!1}),Cn=(c,e)=>{const t={name:c.name,title:c.title,renderableSteps:c.renderableSteps.filter(A=>ne(A,e)),silentSteps:c.silentSteps.filter(A=>ne(A,e))};return t.silentSteps.length===0&&t.renderableSteps.length===0?null:t},ae=(c,e)=>c.map(t=>Cn(t,e)).filter(t=>t!==null),wn=async(c,e,t=!1)=>{var i;const A=ae(c,e),n=[];for(const o of A)for(const s of o.renderableSteps){const r=(((i=s.option)==null?void 0:i.variants)||[]).length;s.silent||(s.type===l.StepType.Model||s.type===l.StepType.Material||s.type===l.StepType.Picture||s.type===l.StepType.Shape?(r>1||t)&&n.push(s.stepName):n.push(s.stepName))}const a=A.filter(o=>o.renderableSteps.filter(r=>n.includes(r.stepName)).length>0);for(const o of a)o.renderableSteps=o.renderableSteps.filter(s=>n.includes(s.stepName));return a};class Je{constructor(){this.timestamp=Date.now()}}class Oe{constructor(e,t=!0){this.queue=[],this.activePromise=void 0,this.queueMaxSize=void 0,this.queueMaxSize=e,this.isEnabled=t}enqueue(e){if(this.queue.push(e),this.queueMaxSize!==void 0&&this.queue.length>this.queueMaxSize){const t=this.queue.length-1;for(let A=0;A<t;++A)this.queue.shift()}this.isEnabled&&(this.activePromise||(this.activePromise=this.dequeue()))}get enabled(){return this.isEnabled}set enabled(e){!this.isEnabled&&e&&!this.activePromise&&(this.activePromise=this.dequeue()),this.isEnabled=e}hasActivePromise(){return!!this.activePromise}getRemainingQueueSize(){return this.queue.length}async finalize(){return this.activePromise?this.activePromise:Promise.resolve()}async dequeue(){const e=this.queue.shift();if(!e){this.activePromise=void 0;return}try{await e.execute()}catch(t){console.log(t)}finally{await this.dequeue()}}}function Gt(c,e,t,A){const n=t.width*c.zoom,a=t.height*c.zoom;if(A){const o=c,s=Math.max(e.width/t.width,e.height/t.height);o.zoom=Math.max(s,c.zoom);const r=t.width*o.zoom,g=t.height*o.zoom;return o.x=ye(c.x,e.width-r,0),o.y=ye(c.y,e.height-g,0),o}const i=c;return i.x=ye(i.x,-n,e.width),i.y=ye(i.y,-a,e.height),i}function ye(c,e,t){return Math.min(Math.max(c,e),t)}class bt{constructor(e){this.minZoomScale=[.03],this.maxZoomScale=[20],this._debouncedUpdateFrameOffsets=Ct(this.updateFrameOffsets,200),this.targetElements=[],this.onFrameDataChangeListeners=[],this.onZoomChangeListeners=[],this.forceImageCover=e,this.thresholdSettings={useThreshold:!1,invertThreshold:!1,threshold:128,thresholdSaturation:.5}}connectWorkflowManager(e,t){t&&e.addStepSpecificStorageCallback(async A=>{if(A){const n=A;if(n.currentFrameSources){let a=!1;for(let i=0;i<n.currentFrameSources.length;i++){const o=n.currentFrameSources[i],s=await l.getFrameData(o),r=this.frameData?this.frameData[i]:void 0;wt(s,r)||(this.frameData||(this.frameData=new Array(n.currentFrameSources.length)),this.frameData[i]=s,a=!0)}a&&(this.onFrameDataChangeListeners.forEach(i=>i(this.frameData)),this.frameData&&this.imageData&&(this.recalculateOffsets(this.imageData),this.updateOffsets(this.offsets),this.recalculateZoomLimits(this.imageData,this.frameData)))}}},t),this.workflowManager=e,this.stepName=t}setTargetElements(e){this.targetElements=e}getFrameData(){return this.frameData}setFrameData(e){if(!e){this.frameData=void 0;return}e.forEach((t,A)=>{const n=l.frameDataCache.get(t);n&&(this.frameData||(this.frameData=new Array(e.length)),this.frameData[A]=n)})}getImageData(){return this.imageData}getImageSrc(){if(this.imageData){if(this.imageData.svg){const e=l.modifySVGColors(this.imageData.svg,this.imageData.colors||{},!1);return l.svgToDataUrl(e)}return this.imageData.src}}getOffsets(){return this.offsets}setOffsets(e){this.offsets=e}setZoom(e,t,A,n){if(this.imageData&&this.offsets&&this.frameData){(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length));const a=this.frameData.map((i,o)=>{const s=(t[o]-this.offsets[o].x)/this.offsets[o].zoom,r=(A[o]-this.offsets[o].y)/this.offsets[o].zoom,g=t[o]-s*e[o],d=A[o]-r*e[o];return{x:g,y:d,zoom:this.imageData.width*e[o]/this.imageData.width}});this.updateOffsets(a,n),this.onZoomChangeListeners.forEach(i=>i(e))}}setPatternData(e,t=!0){this.imageData=e,e&&this.frameData&&((t||!this.offsets)&&this.recalculateOffsets(e),this.updateOffsets(this.offsets,void 0,!0)),this.imageData&&this.frameData&&this.recalculateZoomLimits(this.imageData,this.frameData)}updateOffsets(e,t,A){const n=this.imageData;if(!n||!this.frameData)return;if(this.frameData.length!==e.length)throw new G("Frame data and offsets are not the same length. This is a bug. Please report it.");if(!this.offsets.some((i,o)=>!(e[o].x===i.x&&e[o].y===i.y&&e[o].zoom===i.zoom))&&!A){t&&t();return}(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((i,o)=>{this.offsets[o]=Gt(e[o],i,this.imageData,this.forceImageCover)}),this._debouncedUpdateFrameOffsets(this.offsets,n,this.frameData,this.thresholdSettings,t)}getThresholdSettings(){return this.thresholdSettings}setThresholdSettings(e){this.thresholdSettings=e,this.imageData&&this.frameData&&this._debouncedUpdateFrameOffsets(this.offsets,this.imageData,this.frameData,e)}onFrameDataChanged(e){e(this.frameData),this.onFrameDataChangeListeners.push(e)}onZoom(e){this.onZoomChangeListeners.push(e)}updateFrameOffsets(e,t,A,n,a){if(!A||A.length===0||A.some(o=>!o))throw new G("Frame data not set. This is a bug");if(!this.workflowManager)throw new G("No workflow manager set, cannot update offsets.");const i=this.workflowManager.getCommandDispatcher();this.targetElements.forEach((o,s)=>{i(new l.GroupCommand([new l.UpdateFramePattern(o,t,e[s]),new l.UpdateFrameThresholdSettingsCommand(o,n.useThreshold,n.invertThreshold,n.threshold,n.thresholdSaturation)]))}),this.stepName&&this.workflowManager.updateStorage(this.stepName,{frameOffsetsList:e}),a&&a()}recalculateZoomLimits(e,t){(this.minZoomScale.length!==t.length||this.maxZoomScale.length!==t.length)&&(this.minZoomScale=new Array(t.length),this.maxZoomScale=new Array(t.length)),t.forEach((A,n)=>{const a=Math.max(A.width/e.width,A.height/e.height);this.forceImageCover?(this.minZoomScale[n]=a,this.maxZoomScale[n]=a*2.5):(this.minZoomScale[n]=a/10,this.maxZoomScale[n]=a*2.5)})}recalculateOffsets(e){this.frameData&&((!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((t,A)=>{this.offsets[A]=l.calculateOffsets(e,t)}),this._debouncedUpdateFrameOffsets(this.offsets,e,this.frameData,this.thresholdSettings))}}class Tt{constructor(e,t,A){this.processRegion=async n=>{var s,r,g,d;const a=this.layouts.find(B=>B.panelId===n.panelId);if(!a)throw new T(n);let i="";if(this.configuration.type===l.StepType.ProductOverlay){let B="";if((s=this.product)!=null&&s.overlayImageUrl&&(B=this.product.overlayImageUrl),i=B,!B)throw new de(this.configuration,"Couldn't find an asset for product overlay step")}const o=this.evaluateAssetType();if(o===l.LayoutElementType.Image){const B=this.configuration.type===l.StepType.SilentIllustration?(r=this.configuration.data.asset)==null?void 0:r.fileLink:(g=this.product)==null?void 0:g.overlayImageUrl;if(!B)throw new Error("Undefined raster silent step source");const C={stepName:this.configuration.stepName,id:l.generate(),src:B,type:o,y:n.top,x:n.left,width:n.width,height:n.height,layer:n.layer,layerIndex:n.layerIndex,immutable:n.immutable,productOverlay:this.configuration.type===l.StepType.ProductOverlay?!0:void 0,rotation:n.rotation,excludeFromExport:this.configuration.data.excludeFromPrint,preserveAspectRatio:"none"};return{regionElement:{id:C.id,region:n},command:new l.CreateElementCommand(C,a)}}else{const B=this.configuration.type===l.StepType.SilentIllustration?(d=this.configuration.data.asset)==null?void 0:d.fileLink:i,C=async()=>new Promise((h,Q)=>{if(!B){Q("Undefined vector silent step source");return}l.fetchAsString(B,!0).then(m=>{h(m)}).catch(m=>console.error(m))}),w=await l.generateSVGWithUnknownColors(await C()),u={stepName:this.configuration.stepName,id:l.generate(),cachedObjectURL:await l.svgObjectURL(w.svg),src:B,svg:w.svg,colors:w.colors,type:o,y:n.top,x:n.left,width:n.width,height:n.height,layer:n.layer,layerIndex:n.layerIndex,rotation:n.rotation,immutable:n.immutable,productOverlay:this.configuration.type===l.StepType.ProductOverlay?!0:void 0,excludeFromExport:this.configuration.data.excludeFromPrint};return{regionElement:{id:u.id,region:n},command:new l.CreateElementCommand(u,a)}}},this.configuration=e,this.layouts=t,this.product=A||void 0}async trigger(){if(!this.configuration.data.regions)throw new de(this.configuration,"Missing regions.");if(this.configuration.type===l.StepType.SilentIllustration){const e=this.configuration.data.regions.map(this.processRegion);return Promise.all(e)}else return this.configuration.type===l.StepType.ProductOverlay?Promise.all(this.configuration.data.regions.map(e=>{if(!this.layouts.find(A=>e.panelId===A.panelId))throw new T(e);return this.processRegion(e)})):Promise.reject("Unknown silent step. This is a bug")}evaluateAssetType(){var t,A,n;const e=this.configuration.type===l.StepType.ProductOverlay&&((t=this.product)!=null&&t.overlayImageUrl)?this.product.overlayImageUrl.toLowerCase():(n=(A=this.configuration.data.asset)==null?void 0:A.fileLink)==null?void 0:n.toLowerCase().split("?")[0];return e!=null&&e.startsWith("data:image/png")||e!=null&&e.endsWith(".jpeg")||e!=null&&e.endsWith(".jpg")||e!=null&&e.endsWith(".png")?l.LayoutElementType.Image:(e!=null&&e.endsWith(".svg")||e!=null&&e.startsWith("image/svg+xml"),l.LayoutElementType.Illustration)}}const Jt=async c=>{const e=`${j.getServicesApiUrl()}/shortener`;try{return(await(await fetch(e,{method:"POST",body:JSON.stringify({longUrl:c}),headers:{"Content-Type":"application/json"}})).json()).shortUrl}catch(t){throw console.error(t),new Fe("Failed to shorten URL, see console.")}};class Ot{async poll(){try{if(await this.predicate()){this.onSuccess(),this.pollingId>-1&&window.clearInterval(this.pollingId);return}}catch{}this.attempts+=1,this.attempts<this.maxAttempts?this.pollingId=window.setTimeout(this.poll.bind(this),this.interval):this.onFailure()}constructor(e,t,A,n=3e3,a=10){this.onSuccess=t,this.onFailure=A,this.predicate=e,this.attempts=0,this.pollingId=-1,this.interval=n,this.maxAttempts=a,this.poll()}}class En{async init(e,t,A){return A&&await this.reload(e,t,A),null}async reload(e,t,A){const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(r=>r.elements).flat().filter(r=>r.stepName===e.stepName).map(r=>({id:r.id,region:r.stepRegion}));await t.setSelectionsAndElements(e.stepName,[],s,async()=>{var d,B;const r=(d=n==null?void 0:n.storage)==null?void 0:d.videoShortUrl,g=(B=n==null?void 0:n.storage)==null?void 0:B.videoUrl;t.updateStorage(e.stepName,{videoShortUrl:r,videoUrl:g})})}async regenerateQRCode(e,t,A,n){const a=async()=>{var u,h;const C=(await Te([t]))[0],w=(h=(u=C==null?void 0:C.versions)==null?void 0:u.find(Q=>Q.name==="mpeg4"))==null?void 0:h.link;return{asset:C,link:w}},i=await new Promise((C,w)=>{new Ot(async()=>!!(await a()).link,async()=>{const u=await a();if(!u.link||!u.link)throw new $(u.asset);C({rel:"mpeg4",href:u.link})},()=>{w("Poller timed out with 40 attempts @ 3 second interval")},3e3,40)});e.forEach(C=>A.getCommandDispatcher()(new l.DeleteElementCommand(C.id)));const o=n.data.baseUrl.slice(0,4)==="http"?"":"https://",s=new URL(o+n.data.baseUrl);s.searchParams.append("video",btoa(JSON.stringify([i]))),s.pathname=s.pathname+(s.pathname.slice(-1)==="/"?"":"/");const r=s.toString();if(r.length>=2e3)throw new Fe("Cannot create QR code, URL too long.");const g=await Jt(r);if(!n.data||!n.data.regions)throw new de(n,"Missing regions.");const d=await this.regionElements(n),B=await this.command(g,d,A,n.stepName);return B&&(B.command&&A.getCommandDispatcher()(B.command),B.followup&&await B.followup()),await A.setSelectionsAndElements(n.stepName,[],d,async()=>{A.updateStorage(n.stepName,{videoShortUrl:g,videoUrl:i.href})}),g}async regionElements(e){const t=A=>({id:l.generate(),region:A});return e.data.regions.map(t)}async command(e,t,A,n){const a=A.getLayouts(),o=`data:image/svg+xml;base64,${btoa(await Et.toString(e,{type:"svg"}))}`,s=t.map(r=>{const g=r.region,d=a.find(B=>B.panelId===(g==null?void 0:g.panelId));if(!d&&g)throw new T(g);if(d&&!g)throw new Error("Region not found");if(!d||!g)throw new Error("Neither a region or layout found!");return new l.CreateElementCommand({stepRegion:g,stepName:n,id:r.id,src:o,type:l.LayoutElementType.Image,y:g.top,x:g.left,width:g.width,height:g.height,rotation:0},d)});return{command:new l.GroupCommand(s),followup:async()=>{}}}}const Le=new En,ue=["Yellow C","Yellow 012 C","Orange 021 C","Warm Red C","Red 032 C","Rubine Red C","Rhodamine Red C","Purple C","Violet C","Blue 072 C","Reflex Blue C","Process Blue C","Green C","Black C","Yellow 0131 C","Red 0331 C","Magenta 0521 C","Violet 0631 C","Blue 0821 C","Green 0921 C","Black 0961 C","801 C","802 C","803 C","804 C","805 C","806 C","807 C","871 C","872 C","873 C","874 C","875 C","876 C","877 C","Medium Yellow C","Bright Orange C","Bright Red C","Strong Red C","Pink C","Medium Purple C","Dark Blue C","Medium Blue C","Bright Green C","Neutral Black C","100 C","101 C","102 C","103 C","104 C","105 C","7401 C","7402 C","7403 C","7404 C","7405 C","7406 C","7407 C","106 C","107 C","108 C","109 C","110 C","111 C","112 C","113 C","114 C","115 C","116 C","117 C","118 C","119 C","127 C","128 C","129 C","130 C","131 C","132 C","133 C","1205 C","1215 C","1225 C","1235 C","1245 C","1255 C","1265 C","120 C","121 C","122 C","123 C","124 C","125 C","126 C","7548 C","7549 C","7550 C","7551 C","7552 C","7553 C","7554 C","7555 C","7556 C","7557 C","7558 C","7559 C","7560 C","7561 C","134 C","135 C","136 C","137 C","138 C","139 C","140 C","1345 C","1355 C","1365 C","1375 C","1385 C","1395 C","1405 C","141 C","142 C","143 C","144 C","145 C","146 C","147 C","7408 C","7409 C","7410 C","7411 C","7412 C","7413 C","7414 C","7562 C","7563 C","7564 C","7565 C","7566 C","7567 C","7568 C","7569 C","7570 C","7571 C","7572 C","7573 C","7574 C","7575 C","712 C","713 C","714 C","715 C","716 C","717 C","718 C","148 C","149 C","150 C","151 C","152 C","153 C","154 C","155 C","156 C","157 C","158 C","159 C","160 C","161 C","1485 C","1495 C","1505 C","1525 C","1535 C","1545 C","1555 C","1565 C","1575 C","1585 C","1595 C","1605 C","1615 C","162 C","163 C","164 C","165 C","166 C","167 C","168 C","7576 C","7577 C","7578 C","7579 C","7580 C","7581 C","7582 C","1625 C","1635 C","1645 C","1655 C","1665 C","1675 C","1685 C","169 C","170 C","171 C","172 C","173 C","174 C","175 C","7583 C","7584 C","7585 C","7586 C","7587 C","7588 C","7589 C","7590 C","7591 C","7592 C","7593 C","7594 C","7595 C","7596 C","7597 C","7598 C","7599 C","7600 C","7601 C","7602 C","7603 C","7604 C","7605 C","7606 C","7607 C","7608 C","7609 C","7610 C","7611 C","7612 C","7613 C","7614 C","7615 C","7616 C","7617 C","7520 C","7521 C","7522 C","7523 C","7524 C","7525 C","7526 C","489 C","488 C","487 C","486 C","485 C","484 C","483 C","176 C","177 C","178 C","179 C","180 C","181 C","1765 C","1775 C","1785 C","1788 C","1795 C","1805 C","1815 C","1767 C","1777 C","1787 C","1797 C","1807 C","1817 C","7618 C","7619 C","7620 C","7621 C","7622 C","7623 C","7624 C","7625 C","7626 C","7627 C","7628 C","7629 C","7630 C","7631 C","7415 C","7416 C","7417 C","7418 C","7419 C","7420 C","7421 C","182 C","183 C","184 C","185 C","186 C","187 C","188 C","196 C","197 C","198 C","199 C","200 C","201 C","202 C","189 C","190 C","191 C","192 C","193 C","194 C","195 C","1895 C","1905 C","1915 C","1925 C","1935 C","1945 C","1955 C","705 C","706 C","707 C","708 C","709 C","710 C","711 C","698 C","699 C","700 C","701 C","702 C","703 C","704 C","203 C","204 C","205 C","206 C","207 C","208 C","209 C","210 C","211 C","212 C","213 C","214 C","215 C","216 C","7422 C","7423 C","7424 C","7425 C","7426 C","7427 C","7428 C","7632 C","7633 C","7634 C","7635 C","7636 C","7637 C","7638 C","217 C","218 C","219 C","220 C","221 C","222 C","7639 C","7640 C","7641 C","7642 C","7643 C","7644 C","7645 C","223 C","224 C","225 C","226 C","227 C","228 C","229 C","230 C","231 C","232 C","233 C","234 C","235 C","670 C","671 C","672 C","673 C","674 C","675 C","676 C","677 C","678 C","679 C","680 C","681 C","682 C","683 C","684 C","685 C","686 C","687 C","688 C","689 C","690 C","510 C","509 C","508 C","507 C","506 C","505 C","504 C","7429 C","7430 C","7431 C","7432 C","7433 C","7434 C","7435 C","691 C","692 C","693 C","694 C","695 C","696 C","697 C","496 C","495 C","494 C","493 C","492 C","491 C","490 C","503 C","502 C","501 C","500 C","499 C","498 C","497 C","5035 C","5025 C","5015 C","5005 C","4995 C","4985 C","4975 C","236 C","237 C","238 C","239 C","240 C","241 C","242 C","2365 C","2375 C","2385 C","2395 C","2405 C","2415 C","2425 C","243 C","244 C","245 C","246 C","247 C","248 C","249 C","7646 C","7647 C","7648 C","7649 C","7650 C","7651 C","7652 C","250 C","251 C","252 C","253 C","254 C","255 C","517 C","516 C","515 C","514 C","513 C","512 C","511 C","7436 C","7437 C","7438 C","7439 C","7440 C","7441 C","7442 C","2562 C","2572 C","2582 C","2592 C","2602 C","2612 C","2622 C","7653 C","7654 C","7655 C","7656 C","7657 C","7658 C","7659 C","524 C","523 C","522 C","521 C","520 C","519 C","518 C","5245 C","5235 C","5225 C","5215 C","5205 C","5195 C","5185 C","5175 C","5165 C","5155 C","5145 C","5135 C","5125 C","5115 C","531 C","530 C","529 C","528 C","527 C","526 C","525 C","256 C","257 C","258 C","259 C","260 C","261 C","262 C","2563 C","2573 C","2583 C","2593 C","2603 C","2613 C","2623 C","7660 C","7661 C","7662 C","7663 C","7664 C","7665 C","7666 C","2567 C","2577 C","2587 C","2597 C","2607 C","2617 C","2627 C","263 C","264 C","265 C","266 C","267 C","268 C","269 C","2635 C","2645 C","2655 C","2665 C","2685 C","2695 C","270 C","271 C","272 C","273 C","274 C","275 C","276 C","2705 C","2715 C","2725 C","2735 C","2745 C","2755 C","2765 C","7667 C","7668 C","7669 C","7670 C","7671 C","7672 C","7673 C","7443 C","7444 C","7445 C","7446 C","7447 C","7448 C","7449 C","7674 C","7675 C","7676 C","7677 C","7678 C","7679 C","7680 C","663 C","664 C","665 C","666 C","667 C","668 C","669 C","5315 C","5305 C","5295 C","5285 C","5275 C","5265 C","5255 C","538 C","537 C","536 C","535 C","534 C","533 C","532 C","7541 C","7542 C","7543 C","7544 C","7545 C","7546 C","7547 C","552 C","551 C","550 C","549 C","548 C","547 C","546 C","5455 C","5445 C","5435 C","5425 C","5415 C","5405 C","5395 C","642 C","643 C","644 C","645 C","646 C","647 C","648 C","649 C","650 C","651 C","652 C","653 C","654 C","655 C","656 C","657 C","658 C","659 C","660 C","661 C","662 C","7450 C","7451 C","7452 C","7453 C","7454 C","7455 C","7456 C","2706 C","2716 C","2726 C","2736 C","2746 C","2756 C","2766 C","2708 C","2718 C","2728 C","2738 C","2748 C","2758 C","2768 C","2707 C","2717 C","2727 C","2747 C","2757 C","2767 C","277 C","278 C","279 C","280 C","281 C","282 C","283 C","284 C","285 C","286 C","287 C","288 C","289 C","7681 C","7682 C","7683 C","7684 C","7685 C","7686 C","7687 C","545 C","544 C","543 C","542 C","541 C","540 C","539 C","290 C","291 C","292 C","293 C","294 C","295 C","296 C","2905 C","2915 C","2925 C","2935 C","2945 C","2955 C","2965 C","297 C","298 C","299 C","300 C","301 C","302 C","303 C","7688 C","7689 C","7690 C","7691 C","7692 C","7693 C","7694 C","2975 C","2985 C","2995 C","3005 C","3015 C","3025 C","3035 C","7695 C","7696 C","7697 C","7698 C","7699 C","7700 C","7701 C","7457 C","7458 C","7459 C","7460 C","7461 C","7462 C","7463 C","304 C","305 C","306 C","307 C","308 C","309 C","635 C","636 C","637 C","638 C","639 C","640 C","641 C","7702 C","7703 C","7704 C","7705 C","7706 C","7707 C","7708 C","628 C","629 C","630 C","631 C","632 C","633 C","634 C","310 C","311 C","312 C","313 C","314 C","315 C","316 C","3105 C","3115 C","3125 C","3135 C","3145 C","3155 C","3165 C","7709 C","7710 C","7711 C","7712 C","7713 C","7714 C","7715 C","317 C","318 C","319 C","320 C","321 C","322 C","323 C","7464 C","7465 C","7466 C","7467 C","7468 C","7469 C","7470 C","7471 C","7472 C","7473 C","7474 C","7475 C","7476 C","7477 C","5523 C","5513 C","5503 C","5493 C","5483 C","5473 C","5463 C","7716 C","7717 C","7718 C","7719 C","7720 C","7721 C","7722 C","324 C","325 C","326 C","327 C","328 C","329 C","330 C","3242 C","3252 C","3262 C","3272 C","3282 C","3292 C","3302 C","3245 C","3255 C","3265 C","3275 C","3285 C","3295 C","3305 C","3248 C","3258 C","3268 C","3278 C","3288 C","3298 C","3308 C","566 C","565 C","564 C","563 C","562 C","561 C","560 C","573 C","572 C","571 C","570 C","569 C","568 C","567 C","559 C","558 C","557 C","556 C","555 C","554 C","553 C","5595 C","5585 C","5575 C","5565 C","5555 C","5545 C","5535 C","5665 C","5655 C","5645 C","5635 C","5625 C","5615 C","5605 C","5527 C","5517 C","5507 C","5497 C","5487 C","5477 C","5467 C","621 C","622 C","623 C","624 C","625 C","626 C","627 C","331 C","332 C","333 C","334 C","335 C","336 C","337 C","338 C","339 C","340 C","341 C","342 C","343 C","7723 C","7724 C","7725 C","7726 C","7727 C","7728 C","7729 C","3375 C","3385 C","3395 C","3405 C","3415 C","3425 C","3435 C","344 C","345 C","346 C","347 C","348 C","349 C","350 C","351 C","352 C","353 C","354 C","355 C","356 C","357 C","7478 C","7479 C","7480 C","7481 C","7482 C","7483 C","7484 C","7730 C","7731 C","7732 C","7733 C","7734 C","7735 C","7736 C","7737 C","7738 C","7739 C","7740 C","7741 C","7742 C","7743 C","358 C","359 C","360 C","361 C","362 C","363 C","364 C","7485 C","7486 C","7487 C","7488 C","7489 C","7490 C","7491 C","365 C","366 C","367 C","368 C","369 C","370 C","371 C","372 C","373 C","374 C","375 C","376 C","377 C","378 C","580 C","579 C","578 C","577 C","576 C","575 C","574 C","5807 C","5797 C","5787 C","5777 C","5767 C","5757 C","5747 C","5875 C","5865 C","5855 C","5845 C","5835 C","5825 C","5815 C","5803 C","5793 C","5783 C","5773 C","5763 C","5753 C","5743 C","7492 C","7493 C","7494 C","7495 C","7496 C","7497 C","7498 C","7744 C","7745 C","7746 C","7747 C","7748 C","7749 C","7750 C","379 C","380 C","381 C","382 C","383 C","384 C","385 C","386 C","387 C","388 C","389 C","390 C","391 C","392 C","587 C","586 C","585 C","584 C","583 C","582 C","581 C","393 C","394 C","395 C","396 C","397 C","398 C","399 C","3935 C","3945 C","3955 C","3965 C","3975 C","3985 C","3995 C","600 C","601 C","602 C","603 C","604 C","605 C","606 C","607 C","608 C","609 C","610 C","611 C","612 C","613 C","461 C","460 C","459 C","458 C","457 C","456 C","455 C","614 C","615 C","616 C","617 C","618 C","619 C","620 C","7751 C","7752 C","7753 C","7754 C","7755 C","7756 C","7757 C","7758 C","7759 C","7760 C","7761 C","7762 C","7763 C","7764 C","7765 C","7766 C","7767 C","7768 C","7769 C","7770 C","7771 C","4545 C","4535 C","4525 C","4515 C","4505 C","4495 C","4485 C","454 C","453 C","452 C","451 C","450 C","449 C","448 C","7499 C","7500 C","7501 C","7502 C","7503 C","7504 C","7505 C","468 C","467 C","466 C","465 C","464 C","463 C","462 C","7506 C","7507 C","7508 C","7509 C","7510 C","7511 C","7512 C","719 C","720 C","721 C","722 C","723 C","724 C","725 C","475 C","474 C","473 C","472 C","471 C","470 C","469 C","726 C","727 C","728 C","729 C","730 C","731 C","732 C","4685 C","4675 C","4665 C","4655 C","4645 C","4635 C","4625 C","7513 C","7514 C","7515 C","7516 C","7517 C","7518 C","7519 C","4755 C","4745 C","4735 C","4725 C","4715 C","4705 C","4695 C","482 C","481 C","480 C","479 C","478 C","477 C","476 C","7527 C","7528 C","7529 C","7530 C","7531 C","7532 C","7533 C","7534 C","7535 C","7536 C","7537 C","7538 C","7539 C","7540 C","427 C","428 C","429 C","430 C","431 C","432 C","433 C","420 C","421 C","422 C","423 C","424 C","425 C","426 C","441 C","442 C","443 C","444 C","445 C","446 C","447 C","413 C","414 C","415 C","416 C","417 C","418 C","419 C","400 C","401 C","402 C","403 C","404 C","405 C","406 C","407 C","408 C","409 C","410 C","411 C","412 C","434 C","435 C","436 C","437 C","438 C","439 C","440 C","Warm Gray 1 C","Warm Gray 2 C","Warm Gray 3 C","Warm Gray 4 C","Warm Gray 5 C","Warm Gray 6 C","Warm Gray 7 C","Warm Gray 8 C","Warm Gray 9 C","Warm Gray 10 C","Warm Gray 11 C","Cool Gray 1 C","Cool Gray 2 C","Cool Gray 3 C","Cool Gray 4 C","Cool Gray 5 C","Cool Gray 6 C","Cool Gray 7 C","Cool Gray 8 C","Cool Gray 9 C","Cool Gray 10 C","Cool Gray 11 C","Black 2 C","Black 3 C","Black 4 C","Black 5 C","Black 6 C","Black 7 C"],ie=["FEDD00","FFD700","FE5000","F9423A","EF3340","CE0058","E10098","BB29BB","440099","10069F","001489","0085CA","00AB84","2D2926","F2F0A1","FCAEBB","F1B2DC","BF9BDE","74D1EA","9DE7D7","9E978E","009ACE","44D62C","FFE900","FFAA4D","FF7276","FF3EB5","EA27C2","84754E","85714D","866D4B","8B6F4E","87674F","8B634B","8A8D8F","FFD900","FF5E00","F93822","CE0056","D62598","4E008E","00239C","0084CA","00B08B","222223","F6EB61","F7EA48","FCE300","C5A900","AF9800","897A27","F5E1A4","ECD898","EED484","F4DA40","F2CD00","F1C400","CBA052","F9E547","FBE122","FEDB00","FFD100","DAAA00","AA8A00","9C8412","FAE053","FBDD40","FDDA24","FFCD00","C99700","AC8400","897322","F3DD6D","F3D54E","F3D03E","F2A900","CC8A00","A07400","6C571B","F8E08E","FBD872","FFC845","FFB81C","C69214","AD841F","886B25","FBDB65","FDD757","FED141","FFC72C","EAAA00","B58500","9A7611","FFC600","FFB500","D19000","B47E00","73531D","5A4522","4B3D2A","D29F13","B78B20","9F7D23","967126","8F6A2A","7D622E","6C5D34","FDD26E","FFC658","FFBF3F","FFA300","DE7C00","AF6D04","74531C","FDD086","FFC56E","FFB549","FF9E1B","D57800","996017","6E4C1E","F2C75C","F1BE48","F1B434","ED8B00","CF7F00","A76D11","715C2A","F6BE00","F0B323","FEAD77","E6A65D","D38235","DC8633","C16C18","BD9B60","D69A2D","DB8A06","CD7925","AD6433","89532F","775135","D78825","D3832B","C67D30","B67233","A7662B","9E6A38","835D32","FCC89B","FDBE87","FDAA63","F68D2E","EA7600","D45D00","BE4D00","FECB8B","FFC27B","FFB25B","FF8200","E57200","BE6A14","9B5A1A","EFD19F","EFBE7D","ECA154","E87722","CB6015","A1561C","603D20","FFAE62","FF8F1C","FF6900","B94700","94450B","653819","FFB990","FFA06A","FF7F32","FF6A13","D86018","A65523","8B4720","FFBE9F","FF9D6E","FF7F41","FF671F","E35205","BE531C","73381D","DB864E","E07E3C","DC6B2F","DC582A","C05131","864A33","674736","FFA38B","FF8D6D","FF6A39","FC4C02","DC4405","A9431E","833921","FFB3AB","FF8674","FF5C39","FA4616","CF4520","963821","6B3529","C4622D","BA5826","AF5C37","9E5330","924C2E","7B4D35","5C4738","D4B59E","C07D59","B15533","9D432C","7C3A2D","6B3D2E","5C3D31","D14124","BD472A","B33D26","8D3F2B","83412C","7B4931","674230","E4D5D3","E1BBB4","D6938A","C26E60","A4493D","823B34","683431","DDBCB0","CA9A8E","BC8A7E","A37F74","866761","6B4C4C","583D3E","EABEB0","C09C83","B46A55","AB5C57","A45248","9A6A4F","8A391B","ECC3B2","ECBAA8","EAA794","E8927C","DA291C","9A3324","653024","FFB1BB","FF808B","FF585D","E03C31","BE3A34","81312F","FFA3B5","FF8DA1","F8485E","EE2737","D22630","AF272F","7C2529","FCAFC0","FB637E","F4364C","CB333B","A4343A","643335","C66E4E","C04C36","B7312C","AB2328","93272C","8A2A2B","802F2D","E1523D","C63527","A72B2A","9E2A2B","6D3332","633231","572D2D","E6BAA8","E56A54","E04E39","CD545B","B04A5A","9B2242","651D32","FABBCB","FC9BB3","F65275","E4002B","C8102E","A6192E","76232F","ECC7CD","E89CAE","DF4661","D50032","BA0C2F","9D2235","862633","F8A3BC","F67599","EF426F","E40046","BF0D3E","9B2743","782F40","F5B6CD","F59BBB","EF4A81","E0004D","C5003E","A6093D","8A1538","F5DADF","F7CED7","F9B5C4","F890A5","EF6079","E03E52","CB2C30","F2D4D7","F4C3CC","F2ACB9","E68699","D25B73","B83A4B","9E2A2F","ECB3CB","E782A9","E0457B","CE0037","A50034","861F41","6F263D","F99FC9","F57EB6","F04E98","E31C79","CE0F69","AC145A","7D2248","F4CDD4","E06287","E24585","B52555","A4123F","971B2F","6A2C3E","D6C9CA","C4A4A7","C16784","C63663","BC204B","912F46","7E2D40","EABEDB","E56DB1","DA1884","A50050","910048","6C1D45","936D73","934054","8E2C48","732E4A","672E45","582D40","502B3A","EF95CF","EB6FBD","DF1995","D0006F","AA0061","890C58","672146","F4A6D7","F277C6","E93CAC","C6007E","A20067","840B55","EAD3E2","E6BCD8","DFA0C9","D986BA","C6579A","AE2573","960051","E5CEDB","E3C8D8","DEBED2","C996B6","B06C96","994878","7C2855","E4C6D4","DCB6C9","D0A1BA","BE84A3","A76389","893B67","612141","EBBECB","E8B3C3","E4A9BB","D592AA","84344E","6F2C3F","572932","E2BCCB","DCA9BF","C9809E","B55C80","A73A64","9B3259","872651","E9CDD0","E4BEC3","D7A3AB","C48490","B46B7A","984856","893C47","F2C6CF","F1BDC8","E9A2B2","DC8699","8F3237","7F3035","5D2A2C","E9C4C7","E5BAC1","DAA5AD","C6858F","7A3E3A","6A3735","512F2E","DFC2C3","DBB7BB","CCA1A6","B07C83","9C6169","874B52","3F2021","F1A7DC","EC86D0","E45DBF","DB3EB1","C5299B","AF1685","80225F","EFBAE1","E277CD","D539B5","C800A1","B0008E","9E007E","830065","EAB8E4","E59BDC","DD7FD3","C724B1","BB16A3","A51890","80276C","A56E87","A83D72","991E66","8A1B61","722257","6A2A5B","5E2751","E7BAE4","DD9CDF","C964CF","AD1AAC","981D97","72246C","EBC6DF","E6BEDD","E2ACD7","D48BC8","93328E","833177","612C51","EEDAEA","CCAED0","D59ED7","B288B9","A277A6","9F5CC0","963CBD","D7A9E3","C98BDB","AC4FC6","9B26B6","87189D","772583","653165","948794","A2789C","A15A95","8E3A80","6E2B62","6A3460","5D3754","D5C2D8","C9B1D0","BA9CC5","A57FB2","642F6C","59315F","4B3048","DBCDD3","D0BEC7","C6B0BC","AF95A6","86647A","66435A","4A3041","D8C8D1","D3C0CD","BFA5B8","9B7793","7E5475","693C5E","512A44","DFC8E7","D7B9E4","CAA2DD","B580D1","8031A7","702F8A","572C5F","D6BFDD","C6A1CF","8C4799","6D2077","642667","5D285F","51284F","CBA3D8","B884CB","A05EB5","84329B","702082","671E75","5F2167","9991A4","8D6E97","7A4183","6B3077","653279","5E366E","5C4E63","C1A0DA","A77BCA","8246AF","5C068C","500778","470A68","3C1053","D7C6E6","C1A7E2","9063CD","753BBD","5F259F","582C83","512D6D","C5B4E3","AD96DC","9678D3","7D55C7","330072","2E1A47","B4B5DF","9595D2","7474C1","24135F","211551","201747","221C35","A7A4E0","8B84D7","685BC7","2E008B","280071","250E62","201547","6E7CA0","686E9F","615E9B","565294","514689","4C4184","535486","DDDAE8","B6B8DC","A7A2C3","8986CA","5D4777","4B384C","41273B","878CB4","7C7FAB","7566A0","6F5091","68478D","563D82","523178","E5E1E6","E0DBE3","C6BCD0","A192B2","7C6992","614B79","3F2A56","D8D7DF","C6C4D2","B3B0C4","8D89A5","595478","403A60","1E1A34","C5CFDA","BBC7D6","A2B2C8","8E9FBC","1B365D","1F2A44","1C1F2A","D9E1E2","A4BCC2","98A4AE","768692","425563","253746","131E29","B9D3DC","A3C7D2","8DB9CA","6BA4B8","003D4C","00313C","072B31","BFCED6","B7C9D3","A6BBC8","7A99AC","5B7F95","4F758B","081F2C","D1DDE6","C6D6E3","9BB8D3","7DA1C4","5E8AB4","236192","002E5D","DBE2E9","CED9E5","A7BCD6","7D9BC1","326295","003A70","002554","DDE5ED","C8D8EB","B1C9E8","7BA4DB","407EC9","003594","001A70","BDC5DB","89ABE3","8094DD","7BA6DE","5F8FB4","3A5DAE","606EB2","CBD3EB","9FAEE5","485CC7","1E22AA","171C8F","151F6D","141B4D","B8CCEA","5C88DA","0047BB","06038D","001871","001E62","071D49","C3D7EE","A7C6ED","307FE2","001A72","001E60","13294B","ABCAE9","8BB8E8","418FDE","012169","00205B","041E42","92C1E9","6CACE4","0072CE","0033A0","003087","002D72","0C2340","94A9CB","6787B7","426DA9","385E9D","2C5697","1D4F91","1D428A","C6DAE7","BDD6E6","A4C8E1","7BAFD4","003C71","003057","00263A","B9D9EB","9BCBEB","69B3E7","003DA5","002F6C","002855","041C2C","8DC8E8","62B5E5","009CDE","0057B8","004C97","003865","00263E","71C5E8","41B6E6","00A3E0","005EB8","004B87","003B5C","002A3A","4698CB","298FC2","0076A8","006298","005587","004976","01426A","99D6EA","5BC2E7","00A9E0","0077C8","00629B","004F71","003E51","7BA7BC","6399AE","4E87A0","41748D","34657F","165C7D","005776","BBDDE6","71B2C9","4298B5","0086BF","007DBA","00558C","002B49","9ADBE8","59CBE8","00B5E2","006BA6","00587C","003B49","A4DBE8","8BD3E6","4EC3E0","00AFD7","0095C8","0082BA","0067A0","48A9C5","009CBD","0085AD","007096","006A8E","00617F","005670","B8DDE1","9BD3DD","77C5D5","3EB1C8","0093B2","007396","005F83","6AD1E3","05C3DE","00A9CE","0092BC","007FA3","00677F","004851","68D2DF","00C1D5","00AEC7","008EAA","00778B","006272","004F59","63B1BC","00A7B5","0097A9","00859B","007D8A","007680","006269","B1E4E3","88DBDF","2DCCD3","009CA6","008C95","007377","005F61","A0D1CA","40C1AC","00B0B9","00A3AD","007398","005F86","005A70","7EDDD3","5CB8B2","279989","007681","487A7B","0D5257","244C5A","B6CFD0","ABC7CA","94B7BB","7FA9AE","4F868E","115E67","07272D","00968F","00857D","007672","006D68","00635B","005E5D","005151","9CDBD9","64CCC9","00B2A9","008675","007367","00685E","00534C","71DBD4","2AD2C9","00BFB3","00A499","008578","00594F","004C45","7CE0D3","2CD5C4","00C7B1","00B398","009681","007864","004E42","6DCDB8","49C5B1","00AB8E","009B77","008264","006A52","034638","B9DCD2","A1D6CA","86C8BC","6BBBAE","006F62","00594C","1D3C34","B5E3D8","A5DFD3","98DBCE","6BCABA","00816D","006C5B","173F35","ADCAB8","9ABEAA","85B09A","6FA287","28724F","205C40","284734","BFCEC2","A7BDB1","92ACA0","7F9C90","5C7F71","43695B","183028","BAC5B9","B0BDB0","A3B2A4","94A596","708573","5E7461","22372B","BCC9C5","B1C0BC","9DB0AC","829995","5D7975","3E5D58","18332F","D1E0D7","B7CDC2","9AB9AD","789F90","507F70","285C4D","13322B","A7E6D7","8CE2D0","3CDBC0","009775","007B5F","00664F","8FD6BD","6ECEB2","00B388","00965E","007A53","006747","115740","50A684","00966C","008755","007B4B","006F44","006845","005844","7AE1BF","47D7AC","00C389","00AF66","007749","006341","154734","A0DAB3","91D6AC","71CC98","009A44","00843D","046A38","2C5234","A2E4B8","8FE2B0","80E0A7","00B140","009639","007A33","215732","9BE3BF","26D07C","00BF6F","00B74F","009F4D","275D38","00573F","4B9560","228848","007A3E","007041","286140","36573B","395542","6BA539","48A23F","319B42","3A913F","44883E","4A773C","44693D","ADDC91","A1D884","6CC24A","43B02A","509E2F","4C8C2B","4A7729","D0DEBB","BCE194","8EDD65","78D64B","74AA50","719949","79863C","C2E189","B7DD79","A4D65E","78BE20","64A70B","658D1B","546223","D4EB8E","CDEA80","C5E86C","97D700","84BD00","7A9A01","59621D","C4D6A4","BCD19B","B7CE95","A9C47F","789D4A","67823A","4E5B31","D0D1AB","C6C89B","BABD8B","A2A569","8A8D4A","6D712E","3D441E","D2CE9E","CBC793","C0BB87","AFA96E","A09958","89813D","555025","C3C6A8","B3B995","A3AA83","899064","737B4C","5E6738","3E4827","BFCC80","BBC592","9CAF88","8F993E","76881D","7A7256","5B6236","BABC16","ABAD23","999B30","888D30","7C8034","727337","656635","E2E868","DBE442","CEDC00","C4D600","A8AD00","949300","787121","E9EC6B","E3E935","E0E721","D0DF00","B5BD00","9A9500","827A04","E3E48D","E0E27C","DBDE70","D2D755","B7BF10","8E8C13","625D20","F0EC74","EDE939","ECE81A","E1E000","BFB800","ADA400","A09200","F3EA5D","F3E500","EFDF00","EEDC00","BBA600","9A8700","685C20","F1EB9C","F0E991","F0E87B","EDE04B","EADA24","E1CD00","CFB500","EBE49A","E9E186","E6DE77","E1D555","D7C826","C4B000","B39B00","E9DF97","E4D77E","DECD63","D9C756","B89D18","A28E2A","695B24","DCD59A","D6CF8D","D0C883","C0B561","AC9F3C","9F912A","8A7B19","CAB64B","CFB023","C1A01E","A08629","897630","736635","675E33","D4C304","C4B200","91852C","747136","5D6439","585C3B","535435","BBB323","B4A91F","AA9D2E","8F7E35","716135","635939","4E4934","D5CB9F","CFC493","C5B783","B3A369","998542","8C7732","614F25","CAC7A7","BFBB98","B0AA7E","9B945F","594A25","524727","4A412A","F1E6B2","DFD1A7","D9C89E","CEB888","A89968","94795D","816040","DDCBA4","D3BC8D","C6AA76","B9975B","8B5B29","744F28","5C462B","EFDBB2","FCD299","E1B87F","D6A461","C6893F","B77729","A6631B","EDC8A3","E7B78A","DDA46F","C88242","B36924","934D11","7D3F16","F3CFB3","F1C6A7","F0BF9B","E59E6D","B86125","A45A2A","693F23","E0C09F","D9B48F","CDA077","B58150","9E652E","774212","623412","E0C6AD","DCBFA6","CDA788","BF9474","AD7C59","946037","4F2C1D","E1B7A7","D5A286","C58B68","99552B","85431E","6D4F47","5E4B3C","D7C4B7","CDB5A7","C0A392","AE8A79","956C58","7C4D3A","5B3427","DBC8B6","D3BBA8","C6A992","AA8066","703F2A","623B2A","4E3629","D6D2C4","C5B9AC","B7A99A","A39382","7A6855","63513D","473729","D1CCBD","B7B09C","A69F88","A7ACA2","949A90","8E9089","4B4F54","D0D3D4","C1C6C8","A2AAAD","7C878E","5B6770","333F48","1D252D","C7C9C7","B2B4B2","9EA2A2","898D8D","707372","54585A","25282A","BEC6C4","A2ACAB","919D9D","717C7D","505759","3F4444","373A36","BABBB1","A8A99E","919388","7E7F74","65665C","51534A","212322","C4BFB6","AFA9A0","9D968D","8C857B","776E64","696158","C4BCB7","B2A8A2","978C87","857874","746661","5E514D","382F2D","D0C4C5","C1B2B6","AB989D","7B6469","584446","453536","382E2C","D7D2CB","CBC4BC","BFB8AF","B6ADA5","ACA39A","A59C94","968C83","8C8279","83786F","796E65","6E6259","D9D9D6","D0D0CE","C8C9C7","BBBCBC","B1B3B3","A7A8AA","97999B","888B8D","75787B","63666A","53565A","332F21","212721","31261D","3E2B2E","101820","3D3935"],ze=ie.map(c=>[parseInt(c.substring(0,2),16),parseInt(c.substring(2,4),16),parseInt(c.substring(4,6),16)]);function hn(c){const e=ue.indexOf(c);return e>=0?ie[e]:""}function Lt(c){const e=ie.indexOf(c);return e>=0?ue[e]:""}function un(c,e=64){const t=[],A=[],n=Lt(c);n&&t.push({pms:n,hex:c,distance:0});const a=parseInt(c.substring(0,2),16),i=parseInt(c.substring(2,4),16),o=parseInt(c.substring(4,6),16);let s,r,g;for(let d=0;d<ie.length;d++){s=ze[d][0],r=ze[d][1],g=ze[d][2];const B=Math.sqrt(Math.pow(a-s,2)+Math.pow(i-r,2)+Math.pow(o-g,2));A.push(B)}for(let d=0;d<A.length;d++)A[d]<=e&&!t.some(B=>B.pms===ue[d])&&t.push({pms:ue[d],hex:ie[d],distance:A[d]});return t.sort((d,B)=>d.distance-B.distance)}const mn=ue.map((c,e)=>({pms:c,hex:ie[e]})),Qn=new vA(mn,{keys:["pms"]});function Dn(c,e){return Qn.search(c,e?{limit:e}:void 0)}let me=null;function zt(c){if(c.startsWith("#"))return Kt(c);if(!document)throw new Error("browserColorToHex is only supported on browsers");if(me||(me=document.createElement("canvas").getContext("2d")),!me)throw new Error("Failed to create canvas context required to convert colors");me.fillStyle=c;const e=Kt(me.fillStyle);return e||console.error(`Unknown browser color ${c}`),e}function Kt(c){const e=c.substring(1).toUpperCase();return e.length===6?e:e.length===3?`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`:""}class fn{constructor(){this.frameSourceSvg=async(e,t)=>{if(!e)return l.generateDefaultRectangleFrameSvg(t);const A=e.asset;if(!A)throw new X(e);const n=A.fileLink;if(n)return l.fetchAsString(n,!0);throw new $(A)}}async init(e,t,A){if(A)return await this.reload(e,t,A),null;e.mandatory&&t.setMandatoryFulfilled(e.stepName,!1),t.markStepsAsInitialised([e.stepName]);let n;const a=t.getWorkflowExperience().getBundle();if(a&&e.globalPropertyAspectConfigurations){const i=a.getGlobalPropertyStateManager(),o=e.globalPropertyAspectConfigurations[0],s=i.getAspectStorage(o.aspectName);s&&s.originalAssetKey&&(n=(await k.getLocalOrFromServer(s.originalAssetKey)).fileLink)}if(e.option&&e.option.variants&&e.option.variants.length>0){const i=e.option,o=L.getDefaultVariant(i);return o?this.selectVariantCommand(e,o,[],t,void 0,n||e.data.placeholderImageUrl):null}return this.selectVariantCommand(e,void 0,[],t,void 0,n||e.data.placeholderImageUrl)}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName).map(g=>({id:g.id,region:g.stepRegion}));if(!e.option||(e.option.variants||[]).length===0){const g=e.data.regions.map(d=>l.generateDefaultRectangleFrameSvg(d));t.updateStorage(e.stepName,{currentFrameSources:g})}if(n){const g=async()=>{var w,u,h,Q,m;const d=(w=n.storage)==null?void 0:w.colors,B=(u=n.storage)==null?void 0:u.framePatternSrc,C=(h=n.storage)==null?void 0:h.frameOffsetsList;if(t.updateMetadata(e.stepName,{frameOffsetsList:C,framePatternSrc:B}),B){const M=(Q=t.getStepSpecificServices(e.stepName))==null?void 0:Q.frameService;if(!M)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(B,M,!0,d),t.updateMetadata(e.stepName,{image:B}),t.updateStorage(e.stepName,{framePatternSrc:B}),this.validateColorCount(e,t)}if(C!=null&&C.some(M=>M.zoom)){const M=(m=t.getStepSpecificServices(e.stepName))==null?void 0:m.frameService;if(!M)throw new Error("Frame service unavailable, cannot load pattern!");M.updateOffsets(C)}t.setMandatoryFulfilled(e.stepName,!0)};if(n.selectedVariants&&n.selectedVariants.length>0){const d=n.selectedVariants[0].id;if(e.option&&d){const B=(r=e.option.variants)==null?void 0:r.find(C=>C.id===d);B&&await t.setSelectionsAndElements(e.stepName,[B],s,async()=>{const C=await Promise.all(e.data.regions.map(w=>this.frameSourceSvg(B,w)));t.updateStorage(e.stepName,{currentFrameSources:C}),await g()})}}else await t.setSelectionsAndElements(e.stepName,[],s,g)}}async availableColors(e,t){var n;const A=e.data.colorOption;return((n=A==null?void 0:A.variants)==null?void 0:n.map(a=>({fill:a.color,stroke:a.color,variant:a,pmsValue:a.name})))??[]}selectImage(e,t,A,n=!0){var s;const a=this.patternSource(t),i=(s=A.getStepStorage(e.stepName))==null?void 0:s.framePatternSrc;if(i&&i===a)return Promise.resolve();A.setEditedStatus(e.stepName,!0);const o=t.fileLink||"";return o.endsWith(".pdf")||o.endsWith(".eps")||o.endsWith(".ai")?new Promise(r=>{A.addPoller(new Ot(async()=>{var C;const d=(C=(await k.getFromServer(t.key||"")).versions)==null?void 0:C.find(w=>w.name==="svg");return d?(await fetch(d.link)).status===200:!1},()=>{k.getLocalOrFromServer(t.key||"").then(g=>{this.loadPatternFromAsset(g,e,A,n).then(r)})},()=>{throw new Fe("Failed to resolve transcoded PDF")}))}):this.loadPatternFromAsset(t,e,A,n)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A,n,a);i&&(i.command&&n.getCommandDispatcher()(i.command),i.followup&&await i.followup())}getCreateElementCommand(e,t,A,n){return new l.CreateElementCommand({id:e,type:l.LayoutElementType.Frame,x:t.left,y:t.top,width:t.width,height:t.height,layer:t.layer,layerIndex:t.layerIndex,rotation:t.rotation,scaleX:t.width/n.frameData.width,scaleY:t.height/n.frameData.height,path:n.frameData.path,dataWidth:n.frameData.width,dataHeight:n.frameData.height,stepRegion:t,stepName:n.stepName,disablePlaceholder:n.disablePlaceholder,focalBlur:n.focalBlur,focalBlurStrength:n.focalBlurStrength,focalBlurRadius:n.focalBlurRadius,pattern:n.pattern,immutable:t.immutable},A)}async loadPatternFromString(e,t,A=!0,n=void 0,a){if(e.endsWith("svg")){const i=await l.GetSVGDimensions(e),o=i.width,s=i.height,r=await l.fetchAsString(e);if(a){const B=r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);if(B&&B.length>0)throw new Error("Vector files may not include images or gradients when a color limit is specified.")}const g=await l.generateSVGWithUnknownColors(r),d={src:e,width:o,height:s,aspect:o/s,svg:g.svg,colors:n??g.colors};l.patternImageDataCache.set(e,d),t.setPatternData(d,A)}else{const i=await l.fetchAsArrayBuffer(e,!0),o=await l.getAttributesFromArrayBuffer(i),s={src:e,width:o.width,height:o.height,aspect:o.width/o.height,svg:void 0,colors:void 0};l.patternImageDataCache.set(e,s),t.setPatternData(s,A)}}changeColors(e,t,A){var i,o;const n=(i=t.getStepSpecificServices(e.stepName))==null?void 0:i.frameService;if(!n||!((o=n.getImageData())!=null&&o.svg)){console.warn("changeColors was called without an SVG being assigned to a frame step");return}const a=this.calculateColorMetadata(n,e,A);t.updateMetadata(e.stepName,{colors:a.metadataColors}),t.updateStorage(e.stepName,{colors:a.storageColors}),n.setPatternData({...n.getImageData(),colors:a.newColors},!1),this.validateColorCount(e,t)}getUniqueColorCount(e,t){var i,o;const A=(i=t.getStepSpecificServices(e.stepName))==null?void 0:i.frameService;if(!A)return 0;const n=((o=A.getImageData())==null?void 0:o.colors)??{},a=[];for(const s in n){const r=n[s];if(r.pmsValue){const g=r.pmsValue.trim().toLocaleLowerCase();a.includes(g)||a.push(g)}else if(r.browserValue){const g=zt(r.browserValue);a.includes(g)||a.push(g)}}return a.length}calculateColorMetadata(e,t,A){var s,r;if(!((s=e.getImageData())!=null&&s.svg))return{newColors:void 0,metadataColors:void 0,storageColors:void 0};const n={...e.getImageData().colors??{}},a={};Object.entries(n).forEach(([g,d])=>{const B={browserValue:d.browserValue};a[g]=B});for(const[g,d]of A.entries())n[g]={browserValue:d.browserValue,pmsValue:d.pmsValue},a[g]=d;let i=Array.from(Object.values(n)).map(g=>g.browserValue);const o=t.data.colorOption;return o&&((r=o.variants)==null||r.forEach(g=>{i=i.map(d=>{var B;return d.toLowerCase()===((B=g.color)==null?void 0:B.toLowerCase())?g.name:d})})),{newColors:n,metadataColors:i,storageColors:a}}validateColorCount(e,t){const A=e.data.colorPickerEnabled?e.data.maxColors??0:0;t.setStepError(e.stepName,"colors",A>0&&this.getUniqueColorCount(e,t)>A?"workflow.steps.frame.tooManyColors":void 0)}async selectVariantCommand(e,t,A,n,a,i){var B;const o=(B=n.getStepSpecificServices(e.stepName))==null?void 0:B.frameService;if(!o)throw new Error("Frame service unavailable, cannot load pattern!");const s=await Promise.all(e.data.regions.map(C=>this.frameSourceSvg(t,C)));a&&a(!0);const r=await Promise.all(e.data.regions.map(async(C,w)=>{const u=await l.getFrameData(s[w]),h=o.getImageData(),Q=A.map(I=>new l.DeleteElementCommand(I.id)),m=h?l.calculateOffsets(h,u):void 0,M=h?{id:l.generate(),src:h.src,x:(m==null?void 0:m.x)||0,y:(m==null?void 0:m.y)||0,width:h.width,height:h.height,scaleX:(m==null?void 0:m.zoom)||1,scaleY:(m==null?void 0:m.zoom)||1,rotation:0}:void 0,p=l.generate(),D=n.getLayouts().find(I=>I.panelId===C.panelId);if(!D)throw new T(C);return{command:this.getCreateElementCommand(p,C,D,{frameData:u,pattern:M,disablePlaceholder:e.data.disablePlaceholder,focalBlur:e.data.focalBlur,focalBlurStrength:e.data.focalBlurStrength,focalBlurRadius:e.data.focalBlurRadius,stepName:e.stepName}),regionEl:{id:p,region:C},removeExistingCommands:Q}})),g=r.map(C=>C.command),d=r.map(C=>C.removeExistingCommands).flat();return{command:new l.GroupCommand([...g,...d]),followup:async()=>{a&&a(!1),await n.setSelectionsAndElements(e.stepName,t?[t]:[],[...r.map(C=>C.regionEl)],async()=>{var C;if(n.updateStorage(e.stepName,{currentFrameSources:s}),i){const w=(C=n.getStepSpecificServices(e.stepName))==null?void 0:C.frameService;if(!w)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(i,w,!0)}})}}}patternSource(e){var n;const t=(n=e.versions)==null?void 0:n.find(a=>a.name==="svg");if(t)return t.link;const A=e.fileLink;if(A)return A;throw new $(e)}async loadPatternFromAsset(e,t,A,n){var r,g;const a=this.patternSource(e),i=A.markUpdatePending(),o=(r=A.getStepSpecificServices(t.stepName))==null?void 0:r.frameService;if(!o)throw A.markUpdateCompleted(i),new Error("Frame service unavailable, cannot load pattern!");try{await this.loadPatternFromString(a,o,n,void 0,t.data.colorPickerEnabled&&!!t.data.maxColors&&t.data.maxColors>0)}catch(d){throw A.markUpdateCompleted(i),d}const s=this.calculateColorMetadata(o,t,new Map(Object.entries(((g=o.getImageData())==null?void 0:g.colors)??{})));A.updateMetadata(t.stepName,{image:a,colors:s.metadataColors}),A.updateStorage(t.stepName,{framePatternSrc:a,colors:s.storageColors}),A.markUpdateCompleted(i),A.setMandatoryFulfilled(t.stepName,!0),A.setInformationResults(A.getInformationResults().filter(d=>d.stepID===t.stepName)),this.validateColorCount(t,A)}}const q=new fn;class In{async getIllustrationBody(e){return new Promise(t=>{l.fetchAsString(e,!0).then(A=>{t(A)}).catch(A=>console.error(A))})}getCreateElementCommand(e,t,A,n){return new l.CreateElementCommand({stepRegion:t,stepName:n.stepName,colors:n.svg.colors,id:e,src:n.src,svg:n.svg.svg,cachedObjectURL:n.objectURL,type:l.LayoutElementType.Illustration,y:t.top,x:t.left,rotation:t.rotation,width:t.width,height:t.height,layer:t.layer,layerIndex:t.layerIndex,immutable:t.immutable},A)}getColors(e,t){const A=t.getRegionElements(e.stepName)||[];if(A.length===0)return[];try{return l.findElement(A[0].id,t.getAllLayoutData()).colors}catch{return[]}}async init(e,t,A){const n=e.option;if(!n)return null;if(A)return this.reload(e,t,A);{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantCommand(e,a,[],()=>{},t)}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{var C;t.updateMetadata(e.stepName,{colors:(C=n.storage)==null?void 0:C.colors}),t.setMandatoryFulfilled(e.stepName,!0)})}}else throw new Error("Required illustration variant no longer available")}return null}async availableColors(e,t){var n;const A=e.data.colorOption;return A?A?(n=A.variants)==null?void 0:n.map(a=>({fill:a.color,stroke:a.color,variant:a})):[]:[]}async changeColorsCommand(e,t,A,n,a){var g;const i={};for(const[d,B]of a.entries())i[d]={browserValue:B,spotColor:(g=i[d])==null?void 0:g.spotColor};const o=l.modifySVGWithElementProperties(e,t,A,i),s=await l.svgObjectURL(o),r=[];for(const d of n){for(const[B,C]of a.entries())r.push(new l.IllustrationColorCommand(d,B,C));r.push(new l.IllustrationCacheCommand(d,o,s))}return new l.GroupCommand(r)}async changeColors(e,t,A,n,a){var C,w;if(t.length===0)return;const i=l.findElement(t[0].id,n().map(u=>u.layoutState)),o={...i.colors},s={};Object.entries(o).forEach(([u,h])=>{const Q={browserValue:h.browserValue},m=h.spotColor;m&&(Q.spotColor={profileName:m.profileName,namedColor:m.namedColor}),s[u]=Q});for(const[u,h]of a.entries())o[u]={browserValue:h,spotColor:(C=o[u])==null?void 0:C.spotColor},s[u]={browserValue:h};let r=Array.from(Object.values(o)).map(u=>u.browserValue);const g=e.data.colorOption;g&&((w=g.variants)==null||w.forEach(u=>{r=r.map(h=>{var Q;return h.toLowerCase()===((Q=u.color)==null?void 0:Q.toLowerCase())?u.name:h})})),A.updateMetadata(e.stepName,{colors:r});const d=new Map;if(Object.entries(o).forEach(([u,h])=>{d.set(u,h.browserValue)}),!i.svg)throw new Error("Colors changed before SVG loaded. This should never happen!");const B=await this.changeColorsCommand(i.svg,i.width,i.height,t.map(u=>u.id),d);A.updateStorage(e.stepName,{colors:s}),A.getCommandDispatcher()(B)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A,n,a);i&&(i.command&&a.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async selectVariantCommand(e,t,A,n,a){var Q;if(!e.data||!e.data.regions)throw new de(e,"Missing regions.");n(!0);const i=A.map(m=>new l.DeleteElementCommand(m.id));e.mandatory&&a.setMandatoryFulfilled(e.stepName,!1);const o=t.asset;if(!o)throw new X(t);const s=o.fileLink;if(!s)throw new $(o);const r=await l.generateSVGWithUnknownColors(await this.getIllustrationBody(s)),g=await l.svgObjectURL(r.svg),d=m=>{const M=a.getLayouts().find(f=>f.panelId===m.panelId);if(!M)throw new T(m);const p=l.generate();return{regionElement:{id:p,region:m},command:this.getCreateElementCommand(p,m,M,{stepName:e.stepName,src:s,objectURL:g,svg:r})}},B=e.data.regions.map(d),w=[...B.map(m=>m.command),...i];let u=Array.from(Object.values(r.colors)).map(m=>m.browserValue);const h=e.data.colorOption;return h&&((Q=h.variants)==null||Q.forEach(m=>{u=u.map(M=>{var p;return M.toLowerCase()===((p=m.color)==null?void 0:p.toLowerCase())?m.name:M})})),a.updateMetadata(e.stepName,{colors:u}),{command:new l.GroupCommand(w),followup:async()=>{await a.setSelectionsAndElements(e.stepName,[t],B.map(m=>m.regionElement),async()=>{a.setMandatoryFulfilled(e.stepName,!0),n(!1)}),e.data.colorPickerEnabled&&await this.changeColors(e,B.map(m=>m.regionElement),a,()=>a.getCommandContext().getAllLayouts(),new Map)}}}}const Qe=new In;class pn{async init(e,t,A){const n=e.option;if(!n)throw new Be(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantLambda(e,a,t,()=>{})}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(!s)throw new Be(e);if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=d.material,C=o.map(w=>({id:w.id,region:w.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],C,async()=>{const w=t.getModelContainer();if(w){const u=e.data.targetMaterials.map(h=>w.applyMaterialVariant(h,s.id||"",B||{}));Promise.all(u).then(()=>t.setMandatoryFulfilled(e.stepName,!0))}})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantLambda(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(e,t,A,n){const a=A.getModelContainer();n(!0);const i=t.material;if(!i)throw n(!1),new X(t);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],[],async()=>{try{a&&e.data.targetMaterials.forEach(o=>{e.option&&a.applyMaterialVariant(o,e.option.id||"",i)}),A.setMandatoryFulfilled(e.stepName,!0)}finally{n(!1)}})}}}}const Ke=new pn;class Fn{async init(e,t,A){const n=e.option;if(!n)throw new Be(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantLambda(e,a,t,()=>{})}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{var w;const C=t.getModelContainer();if(C&&e.option){const u=(w=d.asset)==null?void 0:w.fileLink;if(!u)throw new X(d);await C.applyModelVariant(e.stepName||"",{model:u,contextService:t.getLayoutPreviewService()},e.data.replaceProductModel||!1),t.setMandatoryFulfilled(e.stepName,!0)}})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantLambda(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(e,t,A,n){var i;n(!0);const a=(i=t.asset)==null?void 0:i.fileLink;if(!a)throw new X(t);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],[],async()=>{try{const o=A.getModelContainer();o&&await o.applyModelVariant(e.stepName,{model:a,contextService:A.getLayoutPreviewService()},e.data.replaceProductModel||!1),A.setMandatoryFulfilled(e.stepName,!0)}finally{n(!1)}})}}}}const je=new Fn;class Mn{async init(e,t,A){if(A)await this.reload(e,t,A);else return t.updateMetadata(e.stepName,{text:""}),this.changeTextCommand(e,"",t,"",()=>{});return null}async reload(e,t,A){const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(r=>r.elements).flat().filter(r=>r.stepName===e.stepName).map(r=>({id:r.id,region:r.stepRegion}));await t.setSelectionsAndElements(e.stepName,[],s,async()=>{var r,g;t.updateStorage(e.stepName,{text:(r=n==null?void 0:n.storage)==null?void 0:r.text}),t.setMandatoryFulfilled(e.stepName,((g=n==null?void 0:n.storage)==null?void 0:g.text)!=="")})}async changeText(e,t,A,n,a){const i=await this.changeTextCommand(e,t,A,n,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async changeTextCommand(e,t,A,n,a){var g;const i=A.getRegionElements(e.stepName),o=(g=A.getStepSpecificServices(e.stepName))==null?void 0:g.module;if(!o)return console.error("Missing module."),null;const s=A.getProfanities();if(!this.validateInput(e,t,s,a))return A.setMandatoryFulfilled(e.stepName,!1),console.error(n),null;if(A.setMandatoryFulfilled(e.stepName,t!==""),!e.data||!e.data.regions||e.data.regions.length<=0)return console.error("Missing configuration."),null;A.updateStorage(e.stepName,{text:t}),A.updateMetadata(e.stepName,{text:t});const r=(d,B,C)=>{const w=C||l.generate(),h=A.getLayouts().find(m=>m.panelId===B.panelId);if(!h)return console.error(`Can not find layout for region: ${B.panelId}`),null;const Q=[];return C&&Q.push(new l.DeleteElementCommand(w)),Q.push(new l.CreateElementCommand({stepRegion:B,stepName:e.stepName,colors:{},id:w,svg:d,type:l.LayoutElementType.Illustration,y:B.top,x:B.left,rotation:B.rotation,width:B.width,height:B.height,layer:B.layer,layerIndex:B.layerIndex,immutable:B.immutable},h)),{id:w,region:B,command:new l.GroupCommand(Q)}};if(i.length>0){const B=i.map(C=>{if(!C.region)return null;const w=o.svgPrint(t,C.region);return r(w,C.region,C.id)}).filter(C=>!!C).filter(C=>!!C).map(C=>C&&C.command);return{command:new l.GroupCommand(B),followup:async()=>{}}}else{const d=e.data.regions.map(C=>r(o.svgPrint(t,C),C)),B=d.filter(C=>!!C).map(C=>C&&C.command);return{command:new l.GroupCommand(B),followup:async()=>{const C=d.filter(w=>w).map(w=>w&&{id:w.id,region:w.region});await A.setSelectionsAndElements(e.stepName,[],C)}}}}validateInput(e,t,A,n){if(e.data&&e.data.maxLength){const i=e.data.maxLength;if(t.length>i)return n("Too many characters."),!1}if(!/^$|^[a-zA-Z0-9 ]+$/.test(t))return n("Unsupported characters."),!1;const a=Ue.split(t.toLowerCase());for(const i of a)for(const o in A){const s=A[o].toLowerCase().replace(/\s/g,"");if(i===s)return n("Blocked profanity."),!1}return n(""),!0}}const Ve=new Mn;class Sn{async init(e,t,A){const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else if(n.defaultVariant)return t.markStepsAsInitialised([e.stepName]),this.selectVariantCommand(e,n.defaultVariant,t,()=>{});return t.markStepsAsInitialised([e.stepName]),null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{t.setMandatoryFulfilled(e.stepName,!0)})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantCommand(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantCommand(e,t,A,n){const a=t.asset;if(!a)throw new X(t);const i=a==null?void 0:a.fileLink;if(!i)return console.error("No URL for picture!"),null;n(!0),e.mandatory&&A.setMandatoryFulfilled(e.stepName,!1);const s=A.getRegionElements(e.stepName).map(d=>new l.DeleteElementCommand(d.id)),r=d=>{const C=A.getLayouts().find(u=>u.panelId===d.panelId);if(!C)throw new T(d);const w=l.generate();return{regionElement:{id:w,region:d},command:new l.CreateElementCommand({stepName:e.stepName,stepRegion:d,id:w,src:i,type:l.LayoutElementType.Image,y:d.top,x:d.left,rotation:d.rotation,width:d.width,height:d.height,layer:d.layer,layerIndex:d.layerIndex,immutable:d.immutable,preserveAspectRatio:"none"},C)}},g=e.data.regions.map(r);return{command:new l.GroupCommand([...s,...g.map(d=>d.command)]),followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],g.map(d=>d.regionElement),async()=>{A.setMandatoryFulfilled(e.stepName,!0),n(!1)})}}}}const We=new Sn;class yn{async init(e,t,A){const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else{const a=n.variants;if(L.getDefaultVariant(n)){const o=a==null?void 0:a.find(s=>{var r;return s.id===((r=n.defaultVariant)==null?void 0:r.id)});return this.selectVariantLambda(e,(o==null?void 0:o.id)||"",t)}}return null}async reload(e,t,A){var i;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),a=e.option;if(n!=null&&n.selectedVariants){const o=n.selectedVariants[0].id;if(a&&o){const s=(i=a.variants)==null?void 0:i.find(r=>r.id===o);s&&await t.setSelectionsAndElements(e.stepName,[s],[])}}}async selectVariant(e,t,A){await A.getInitializationPromise();const n=await this.selectVariantLambda(e,t,A);n&&(n.command&&A.getCommandDispatcher()(n.command),n.followup&&await n.followup())}async selectVariantLambda(e,t,A){const n=e.option;if(!n)return null;const a=n.variants;if(!a)return null;const i=a.length>1?a.find(o=>o.id===t):a[0];if(!i)throw new Error("Failed to find selected variant in step variants, this should never happen!");return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[i],[],async()=>{A.setMandatoryFulfilled(e.stepName,!0)})}}}}const Xe=new yn;class Yn{constructor(){this.shapeFillId="spiff-fill-shape"}async availableColours(e){var A;const t=e.option;return t?((A=t.variants)==null?void 0:A.map(n=>({fill:n.color,stroke:n.color,variant:n})))||[]:[]}setCustomColor(e,t,A){const n=A.getLayouts(),i=(A.getRegionElements(t.stepName)||[]).map(o=>{const s=o.region;if(!n.find(g=>g.panelId===(s==null?void 0:s.panelId)))throw new T(s);return new l.IllustrationColorCommand(o.id,this.shapeFillId,e)}).filter(o=>!!o);A.getCommandDispatcher()(new l.GroupCommand(i)),A.updateStorage(t.stepName,{colour:e})}async init(e,t,A){const n=e.option;if(!n)throw new Be(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);return a?this.selectVariantCommand(e,{fill:a.color,stroke:a.color,variant:a},[],t):null}return null}async selectVariant(e,t,A,n){const a=await this.selectVariantCommand(e,t,A,n);a&&(a.command&&n.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{var C;t.updateStorage(e.stepName,{colour:((C=n==null?void 0:n.storage)==null?void 0:C.colour)||""}),t.setMandatoryFulfilled(e.stepName,!0)})}}}}async selectVariantCommand(e,t,A,n){var s;const a=n.getLayouts(),i=(s=n.getStepStorage(e.stepName))==null?void 0:s.colour,o=()=>{var r,g;if(((r=t.variant)==null?void 0:r.color)==="#custom")return i||"#FFFFFF";if((g=t.variant)!=null&&g.color)return t.variant.color;throw new Error("Failed to resolve color for shape step.")};if(A.length>0){const r=d=>{const B=d.region;if(!a.find(u=>u.panelId===(B==null?void 0:B.panelId)))throw new T(B);const w=o();return new l.IllustrationColorCommand(d.id,this.shapeFillId,w)},g=A.map(r).filter(d=>!!d);return{command:new l.GroupCommand(g),followup:async()=>{await n.setSelectionsAndElements(e.stepName,t.variant?[t.variant]:[],A),n.updateStorage(e.stepName,{colour:o()})}}}else{const r=C=>{const w=a.find(M=>M.panelId===C.panelId);if(!w)throw new T(C);const u=o(),h=`
785
+ `,he=[l.StepType.SilentIllustration,l.StepType.ProductOverlay],Bn=async c=>{const e=[];c.introduction&&e.push({name:"Introduction",title:c.name,renderableSteps:[{type:l.StepType.Introduction,stepName:"Introduction",stepTitle:c.name,helpText:c.introduction,data:{},conditions:[]}],silentSteps:[]});for(const A of c.steps){const n=dn(A.stepName,c.stepGroups);if(!n)e.push({name:A.stepName,title:A.stepTitle,renderableSteps:he.includes(A.type)?[]:[A],silentSteps:he.includes(A.type)?[A]:[]});else{const a=e.find(i=>i.name===n.name);a?he.includes(A.type)?a.silentSteps.push(A):a.renderableSteps.push(A):e.push({name:n.name,title:n.name,renderableSteps:he.includes(A.type)?[]:[A],silentSteps:he.includes(A.type)?[A]:[]})}}const t="workflow.steps.finish.confirmDesign";return e.push({name:"Finish",title:t,renderableSteps:[{type:l.StepType.Finish,stepName:"Finish",stepTitle:t,helpText:"",data:{modelAnimation:c.finalizeStepConfig?c.finalizeStepConfig.modelAnimation:void 0,lookAtAnimation:c.finalizeStepConfig?c.finalizeStepConfig.lookAtAnimation:void 0},conditions:[]}],silentSteps:[]}),e},dn=(c,e)=>e.find(t=>t.stepNames.includes(c)),ne=(c,e)=>(c.conditions||[]).every(t=>{const A=e[t.targetStepName];if(A&&A.selectedVariants){const n=A.selectedVariants;return t.requiredVariantSelections.some(a=>n.find(i=>i.id===a)!==void 0)}return!1}),Cn=(c,e)=>{const t={name:c.name,title:c.title,renderableSteps:c.renderableSteps.filter(A=>ne(A,e)),silentSteps:c.silentSteps.filter(A=>ne(A,e))};return t.silentSteps.length===0&&t.renderableSteps.length===0?null:t},ae=(c,e)=>c.map(t=>Cn(t,e)).filter(t=>t!==null),wn=async(c,e,t=!1)=>{var i;const A=ae(c,e),n=[];for(const o of A)for(const s of o.renderableSteps){const r=(((i=s.option)==null?void 0:i.variants)||[]).length;s.silent||(s.type===l.StepType.Model||s.type===l.StepType.Material||s.type===l.StepType.Picture||s.type===l.StepType.Shape?(r>1||t)&&n.push(s.stepName):n.push(s.stepName))}const a=A.filter(o=>o.renderableSteps.filter(r=>n.includes(r.stepName)).length>0);for(const o of a)o.renderableSteps=o.renderableSteps.filter(s=>n.includes(s.stepName));return a};class Je{constructor(){this.timestamp=Date.now()}}class Oe{constructor(e,t=!0){this.queue=[],this.activePromise=void 0,this.queueMaxSize=void 0,this.queueMaxSize=e,this.isEnabled=t}enqueue(e){if(this.queue.push(e),this.queueMaxSize!==void 0&&this.queue.length>this.queueMaxSize){const t=this.queue.length-1;for(let A=0;A<t;++A)this.queue.shift()}this.isEnabled&&(this.activePromise||(this.activePromise=this.dequeue()))}get enabled(){return this.isEnabled}set enabled(e){!this.isEnabled&&e&&!this.activePromise&&this.getRemainingQueueSize()>0&&(this.activePromise=this.dequeue()),this.isEnabled=e}hasActivePromise(){return!!this.activePromise}getRemainingQueueSize(){return this.queue.length}async finalize(){return this.activePromise?this.activePromise:Promise.resolve()}async dequeue(){const e=this.queue.shift();if(!e){this.activePromise=void 0;return}try{await e.execute()}catch(t){console.log(t)}finally{await this.dequeue()}}}function Gt(c,e,t,A){const n=t.width*c.zoom,a=t.height*c.zoom;if(A){const o=c,s=Math.max(e.width/t.width,e.height/t.height);o.zoom=Math.max(s,c.zoom);const r=t.width*o.zoom,g=t.height*o.zoom;return o.x=ye(c.x,e.width-r,0),o.y=ye(c.y,e.height-g,0),o}const i=c;return i.x=ye(i.x,-n,e.width),i.y=ye(i.y,-a,e.height),i}function ye(c,e,t){return Math.min(Math.max(c,e),t)}class bt{constructor(e){this.minZoomScale=[.03],this.maxZoomScale=[20],this._debouncedUpdateFrameOffsets=Ct(this.updateFrameOffsets,200),this.targetElements=[],this.onFrameDataChangeListeners=[],this.onZoomChangeListeners=[],this.forceImageCover=e,this.thresholdSettings={useThreshold:!1,invertThreshold:!1,threshold:128,thresholdSaturation:.5}}connectWorkflowManager(e,t){t&&e.addStepSpecificStorageCallback(async A=>{if(A){const n=A;if(n.currentFrameSources){let a=!1;for(let i=0;i<n.currentFrameSources.length;i++){const o=n.currentFrameSources[i],s=await l.getFrameData(o),r=this.frameData?this.frameData[i]:void 0;wt(s,r)||(this.frameData||(this.frameData=new Array(n.currentFrameSources.length)),this.frameData[i]=s,a=!0)}a&&(this.onFrameDataChangeListeners.forEach(i=>i(this.frameData)),this.frameData&&this.imageData&&(this.recalculateOffsets(this.imageData),this.updateOffsets(this.offsets),this.recalculateZoomLimits(this.imageData,this.frameData)))}}},t),this.workflowManager=e,this.stepName=t}setTargetElements(e){this.targetElements=e}getFrameData(){return this.frameData}setFrameData(e){if(!e){this.frameData=void 0;return}e.forEach((t,A)=>{const n=l.frameDataCache.get(t);n&&(this.frameData||(this.frameData=new Array(e.length)),this.frameData[A]=n)})}getImageData(){return this.imageData}getImageSrc(){if(this.imageData){if(this.imageData.svg){const e=l.modifySVGColors(this.imageData.svg,this.imageData.colors||{},!1);return l.svgToDataUrl(e)}return this.imageData.src}}getOffsets(){return this.offsets}setOffsets(e){this.offsets=e}setZoom(e,t,A,n){if(this.imageData&&this.offsets&&this.frameData){(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length));const a=this.frameData.map((i,o)=>{const s=(t[o]-this.offsets[o].x)/this.offsets[o].zoom,r=(A[o]-this.offsets[o].y)/this.offsets[o].zoom,g=t[o]-s*e[o],d=A[o]-r*e[o];return{x:g,y:d,zoom:this.imageData.width*e[o]/this.imageData.width}});this.updateOffsets(a,n),this.onZoomChangeListeners.forEach(i=>i(e))}}setPatternData(e,t=!0){this.imageData=e,e&&this.frameData&&((t||!this.offsets)&&this.recalculateOffsets(e),this.updateOffsets(this.offsets,void 0,!0)),this.imageData&&this.frameData&&this.recalculateZoomLimits(this.imageData,this.frameData)}updateOffsets(e,t,A){const n=this.imageData;if(!n||!this.frameData)return;if(this.frameData.length!==e.length)throw new G("Frame data and offsets are not the same length. This is a bug. Please report it.");if(!this.offsets.some((i,o)=>!(e[o].x===i.x&&e[o].y===i.y&&e[o].zoom===i.zoom))&&!A){t&&t();return}(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((i,o)=>{this.offsets[o]=Gt(e[o],i,this.imageData,this.forceImageCover)}),this._debouncedUpdateFrameOffsets(this.offsets,n,this.frameData,this.thresholdSettings,t)}getThresholdSettings(){return this.thresholdSettings}setThresholdSettings(e){this.thresholdSettings=e,this.imageData&&this.frameData&&this._debouncedUpdateFrameOffsets(this.offsets,this.imageData,this.frameData,e)}onFrameDataChanged(e){e(this.frameData),this.onFrameDataChangeListeners.push(e)}onZoom(e){this.onZoomChangeListeners.push(e)}updateFrameOffsets(e,t,A,n,a){if(!A||A.length===0||A.some(o=>!o))throw new G("Frame data not set. This is a bug");if(!this.workflowManager)throw new G("No workflow manager set, cannot update offsets.");const i=this.workflowManager.getCommandDispatcher();this.targetElements.forEach((o,s)=>{i(new l.GroupCommand([new l.UpdateFramePattern(o,t,e[s]),new l.UpdateFrameThresholdSettingsCommand(o,n.useThreshold,n.invertThreshold,n.threshold,n.thresholdSaturation)]))}),this.stepName&&this.workflowManager.updateStorage(this.stepName,{frameOffsetsList:e}),a&&a()}recalculateZoomLimits(e,t){(this.minZoomScale.length!==t.length||this.maxZoomScale.length!==t.length)&&(this.minZoomScale=new Array(t.length),this.maxZoomScale=new Array(t.length)),t.forEach((A,n)=>{const a=Math.max(A.width/e.width,A.height/e.height);this.forceImageCover?(this.minZoomScale[n]=a,this.maxZoomScale[n]=a*2.5):(this.minZoomScale[n]=a/10,this.maxZoomScale[n]=a*2.5)})}recalculateOffsets(e){this.frameData&&((!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((t,A)=>{this.offsets[A]=l.calculateOffsets(e,t)}),this._debouncedUpdateFrameOffsets(this.offsets,e,this.frameData,this.thresholdSettings))}}class Tt{constructor(e,t,A){this.processRegion=async n=>{var s,r,g,d;const a=this.layouts.find(B=>B.panelId===n.panelId);if(!a)throw new T(n);let i="";if(this.configuration.type===l.StepType.ProductOverlay){let B="";if((s=this.product)!=null&&s.overlayImageUrl&&(B=this.product.overlayImageUrl),i=B,!B)throw new de(this.configuration,"Couldn't find an asset for product overlay step")}const o=this.evaluateAssetType();if(o===l.LayoutElementType.Image){const B=this.configuration.type===l.StepType.SilentIllustration?(r=this.configuration.data.asset)==null?void 0:r.fileLink:(g=this.product)==null?void 0:g.overlayImageUrl;if(!B)throw new Error("Undefined raster silent step source");const C={stepName:this.configuration.stepName,id:l.generate(),src:B,type:o,y:n.top,x:n.left,width:n.width,height:n.height,layer:n.layer,layerIndex:n.layerIndex,immutable:n.immutable,productOverlay:this.configuration.type===l.StepType.ProductOverlay?!0:void 0,rotation:n.rotation,excludeFromExport:this.configuration.data.excludeFromPrint,preserveAspectRatio:"none"};return{regionElement:{id:C.id,region:n},command:new l.CreateElementCommand(C,a)}}else{const B=this.configuration.type===l.StepType.SilentIllustration?(d=this.configuration.data.asset)==null?void 0:d.fileLink:i,C=async()=>new Promise((h,Q)=>{if(!B){Q("Undefined vector silent step source");return}l.fetchAsString(B,!0).then(m=>{h(m)}).catch(m=>console.error(m))}),w=await l.generateSVGWithUnknownColors(await C()),u={stepName:this.configuration.stepName,id:l.generate(),cachedObjectURL:await l.svgObjectURL(w.svg),src:B,svg:w.svg,colors:w.colors,type:o,y:n.top,x:n.left,width:n.width,height:n.height,layer:n.layer,layerIndex:n.layerIndex,rotation:n.rotation,immutable:n.immutable,productOverlay:this.configuration.type===l.StepType.ProductOverlay?!0:void 0,excludeFromExport:this.configuration.data.excludeFromPrint};return{regionElement:{id:u.id,region:n},command:new l.CreateElementCommand(u,a)}}},this.configuration=e,this.layouts=t,this.product=A||void 0}async trigger(){if(!this.configuration.data.regions)throw new de(this.configuration,"Missing regions.");if(this.configuration.type===l.StepType.SilentIllustration){const e=this.configuration.data.regions.map(this.processRegion);return Promise.all(e)}else return this.configuration.type===l.StepType.ProductOverlay?Promise.all(this.configuration.data.regions.map(e=>{if(!this.layouts.find(A=>e.panelId===A.panelId))throw new T(e);return this.processRegion(e)})):Promise.reject("Unknown silent step. This is a bug")}evaluateAssetType(){var t,A,n;const e=this.configuration.type===l.StepType.ProductOverlay&&((t=this.product)!=null&&t.overlayImageUrl)?this.product.overlayImageUrl.toLowerCase():(n=(A=this.configuration.data.asset)==null?void 0:A.fileLink)==null?void 0:n.toLowerCase().split("?")[0];return e!=null&&e.startsWith("data:image/png")||e!=null&&e.endsWith(".jpeg")||e!=null&&e.endsWith(".jpg")||e!=null&&e.endsWith(".png")?l.LayoutElementType.Image:(e!=null&&e.endsWith(".svg")||e!=null&&e.startsWith("image/svg+xml"),l.LayoutElementType.Illustration)}}const Jt=async c=>{const e=`${j.getServicesApiUrl()}/shortener`;try{return(await(await fetch(e,{method:"POST",body:JSON.stringify({longUrl:c}),headers:{"Content-Type":"application/json"}})).json()).shortUrl}catch(t){throw console.error(t),new Fe("Failed to shorten URL, see console.")}};class Ot{async poll(){try{if(await this.predicate()){this.onSuccess(),this.pollingId>-1&&window.clearInterval(this.pollingId);return}}catch{}this.attempts+=1,this.attempts<this.maxAttempts?this.pollingId=window.setTimeout(this.poll.bind(this),this.interval):this.onFailure()}constructor(e,t,A,n=3e3,a=10){this.onSuccess=t,this.onFailure=A,this.predicate=e,this.attempts=0,this.pollingId=-1,this.interval=n,this.maxAttempts=a,this.poll()}}class En{async init(e,t,A){return A&&await this.reload(e,t,A),null}async reload(e,t,A){const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(r=>r.elements).flat().filter(r=>r.stepName===e.stepName).map(r=>({id:r.id,region:r.stepRegion}));await t.setSelectionsAndElements(e.stepName,[],s,async()=>{var d,B;const r=(d=n==null?void 0:n.storage)==null?void 0:d.videoShortUrl,g=(B=n==null?void 0:n.storage)==null?void 0:B.videoUrl;t.updateStorage(e.stepName,{videoShortUrl:r,videoUrl:g})})}async regenerateQRCode(e,t,A,n){const a=async()=>{var u,h;const C=(await Te([t]))[0],w=(h=(u=C==null?void 0:C.versions)==null?void 0:u.find(Q=>Q.name==="mpeg4"))==null?void 0:h.link;return{asset:C,link:w}},i=await new Promise((C,w)=>{new Ot(async()=>!!(await a()).link,async()=>{const u=await a();if(!u.link||!u.link)throw new $(u.asset);C({rel:"mpeg4",href:u.link})},()=>{w("Poller timed out with 40 attempts @ 3 second interval")},3e3,40)});e.forEach(C=>A.getCommandDispatcher()(new l.DeleteElementCommand(C.id)));const o=n.data.baseUrl.slice(0,4)==="http"?"":"https://",s=new URL(o+n.data.baseUrl);s.searchParams.append("video",btoa(JSON.stringify([i]))),s.pathname=s.pathname+(s.pathname.slice(-1)==="/"?"":"/");const r=s.toString();if(r.length>=2e3)throw new Fe("Cannot create QR code, URL too long.");const g=await Jt(r);if(!n.data||!n.data.regions)throw new de(n,"Missing regions.");const d=await this.regionElements(n),B=await this.command(g,d,A,n.stepName);return B&&(B.command&&A.getCommandDispatcher()(B.command),B.followup&&await B.followup()),await A.setSelectionsAndElements(n.stepName,[],d,async()=>{A.updateStorage(n.stepName,{videoShortUrl:g,videoUrl:i.href})}),g}async regionElements(e){const t=A=>({id:l.generate(),region:A});return e.data.regions.map(t)}async command(e,t,A,n){const a=A.getLayouts(),o=`data:image/svg+xml;base64,${btoa(await Et.toString(e,{type:"svg"}))}`,s=t.map(r=>{const g=r.region,d=a.find(B=>B.panelId===(g==null?void 0:g.panelId));if(!d&&g)throw new T(g);if(d&&!g)throw new Error("Region not found");if(!d||!g)throw new Error("Neither a region or layout found!");return new l.CreateElementCommand({stepRegion:g,stepName:n,id:r.id,src:o,type:l.LayoutElementType.Image,y:g.top,x:g.left,width:g.width,height:g.height,rotation:0},d)});return{command:new l.GroupCommand(s),followup:async()=>{}}}}const Le=new En,ue=["Yellow C","Yellow 012 C","Orange 021 C","Warm Red C","Red 032 C","Rubine Red C","Rhodamine Red C","Purple C","Violet C","Blue 072 C","Reflex Blue C","Process Blue C","Green C","Black C","Yellow 0131 C","Red 0331 C","Magenta 0521 C","Violet 0631 C","Blue 0821 C","Green 0921 C","Black 0961 C","801 C","802 C","803 C","804 C","805 C","806 C","807 C","871 C","872 C","873 C","874 C","875 C","876 C","877 C","Medium Yellow C","Bright Orange C","Bright Red C","Strong Red C","Pink C","Medium Purple C","Dark Blue C","Medium Blue C","Bright Green C","Neutral Black C","100 C","101 C","102 C","103 C","104 C","105 C","7401 C","7402 C","7403 C","7404 C","7405 C","7406 C","7407 C","106 C","107 C","108 C","109 C","110 C","111 C","112 C","113 C","114 C","115 C","116 C","117 C","118 C","119 C","127 C","128 C","129 C","130 C","131 C","132 C","133 C","1205 C","1215 C","1225 C","1235 C","1245 C","1255 C","1265 C","120 C","121 C","122 C","123 C","124 C","125 C","126 C","7548 C","7549 C","7550 C","7551 C","7552 C","7553 C","7554 C","7555 C","7556 C","7557 C","7558 C","7559 C","7560 C","7561 C","134 C","135 C","136 C","137 C","138 C","139 C","140 C","1345 C","1355 C","1365 C","1375 C","1385 C","1395 C","1405 C","141 C","142 C","143 C","144 C","145 C","146 C","147 C","7408 C","7409 C","7410 C","7411 C","7412 C","7413 C","7414 C","7562 C","7563 C","7564 C","7565 C","7566 C","7567 C","7568 C","7569 C","7570 C","7571 C","7572 C","7573 C","7574 C","7575 C","712 C","713 C","714 C","715 C","716 C","717 C","718 C","148 C","149 C","150 C","151 C","152 C","153 C","154 C","155 C","156 C","157 C","158 C","159 C","160 C","161 C","1485 C","1495 C","1505 C","1525 C","1535 C","1545 C","1555 C","1565 C","1575 C","1585 C","1595 C","1605 C","1615 C","162 C","163 C","164 C","165 C","166 C","167 C","168 C","7576 C","7577 C","7578 C","7579 C","7580 C","7581 C","7582 C","1625 C","1635 C","1645 C","1655 C","1665 C","1675 C","1685 C","169 C","170 C","171 C","172 C","173 C","174 C","175 C","7583 C","7584 C","7585 C","7586 C","7587 C","7588 C","7589 C","7590 C","7591 C","7592 C","7593 C","7594 C","7595 C","7596 C","7597 C","7598 C","7599 C","7600 C","7601 C","7602 C","7603 C","7604 C","7605 C","7606 C","7607 C","7608 C","7609 C","7610 C","7611 C","7612 C","7613 C","7614 C","7615 C","7616 C","7617 C","7520 C","7521 C","7522 C","7523 C","7524 C","7525 C","7526 C","489 C","488 C","487 C","486 C","485 C","484 C","483 C","176 C","177 C","178 C","179 C","180 C","181 C","1765 C","1775 C","1785 C","1788 C","1795 C","1805 C","1815 C","1767 C","1777 C","1787 C","1797 C","1807 C","1817 C","7618 C","7619 C","7620 C","7621 C","7622 C","7623 C","7624 C","7625 C","7626 C","7627 C","7628 C","7629 C","7630 C","7631 C","7415 C","7416 C","7417 C","7418 C","7419 C","7420 C","7421 C","182 C","183 C","184 C","185 C","186 C","187 C","188 C","196 C","197 C","198 C","199 C","200 C","201 C","202 C","189 C","190 C","191 C","192 C","193 C","194 C","195 C","1895 C","1905 C","1915 C","1925 C","1935 C","1945 C","1955 C","705 C","706 C","707 C","708 C","709 C","710 C","711 C","698 C","699 C","700 C","701 C","702 C","703 C","704 C","203 C","204 C","205 C","206 C","207 C","208 C","209 C","210 C","211 C","212 C","213 C","214 C","215 C","216 C","7422 C","7423 C","7424 C","7425 C","7426 C","7427 C","7428 C","7632 C","7633 C","7634 C","7635 C","7636 C","7637 C","7638 C","217 C","218 C","219 C","220 C","221 C","222 C","7639 C","7640 C","7641 C","7642 C","7643 C","7644 C","7645 C","223 C","224 C","225 C","226 C","227 C","228 C","229 C","230 C","231 C","232 C","233 C","234 C","235 C","670 C","671 C","672 C","673 C","674 C","675 C","676 C","677 C","678 C","679 C","680 C","681 C","682 C","683 C","684 C","685 C","686 C","687 C","688 C","689 C","690 C","510 C","509 C","508 C","507 C","506 C","505 C","504 C","7429 C","7430 C","7431 C","7432 C","7433 C","7434 C","7435 C","691 C","692 C","693 C","694 C","695 C","696 C","697 C","496 C","495 C","494 C","493 C","492 C","491 C","490 C","503 C","502 C","501 C","500 C","499 C","498 C","497 C","5035 C","5025 C","5015 C","5005 C","4995 C","4985 C","4975 C","236 C","237 C","238 C","239 C","240 C","241 C","242 C","2365 C","2375 C","2385 C","2395 C","2405 C","2415 C","2425 C","243 C","244 C","245 C","246 C","247 C","248 C","249 C","7646 C","7647 C","7648 C","7649 C","7650 C","7651 C","7652 C","250 C","251 C","252 C","253 C","254 C","255 C","517 C","516 C","515 C","514 C","513 C","512 C","511 C","7436 C","7437 C","7438 C","7439 C","7440 C","7441 C","7442 C","2562 C","2572 C","2582 C","2592 C","2602 C","2612 C","2622 C","7653 C","7654 C","7655 C","7656 C","7657 C","7658 C","7659 C","524 C","523 C","522 C","521 C","520 C","519 C","518 C","5245 C","5235 C","5225 C","5215 C","5205 C","5195 C","5185 C","5175 C","5165 C","5155 C","5145 C","5135 C","5125 C","5115 C","531 C","530 C","529 C","528 C","527 C","526 C","525 C","256 C","257 C","258 C","259 C","260 C","261 C","262 C","2563 C","2573 C","2583 C","2593 C","2603 C","2613 C","2623 C","7660 C","7661 C","7662 C","7663 C","7664 C","7665 C","7666 C","2567 C","2577 C","2587 C","2597 C","2607 C","2617 C","2627 C","263 C","264 C","265 C","266 C","267 C","268 C","269 C","2635 C","2645 C","2655 C","2665 C","2685 C","2695 C","270 C","271 C","272 C","273 C","274 C","275 C","276 C","2705 C","2715 C","2725 C","2735 C","2745 C","2755 C","2765 C","7667 C","7668 C","7669 C","7670 C","7671 C","7672 C","7673 C","7443 C","7444 C","7445 C","7446 C","7447 C","7448 C","7449 C","7674 C","7675 C","7676 C","7677 C","7678 C","7679 C","7680 C","663 C","664 C","665 C","666 C","667 C","668 C","669 C","5315 C","5305 C","5295 C","5285 C","5275 C","5265 C","5255 C","538 C","537 C","536 C","535 C","534 C","533 C","532 C","7541 C","7542 C","7543 C","7544 C","7545 C","7546 C","7547 C","552 C","551 C","550 C","549 C","548 C","547 C","546 C","5455 C","5445 C","5435 C","5425 C","5415 C","5405 C","5395 C","642 C","643 C","644 C","645 C","646 C","647 C","648 C","649 C","650 C","651 C","652 C","653 C","654 C","655 C","656 C","657 C","658 C","659 C","660 C","661 C","662 C","7450 C","7451 C","7452 C","7453 C","7454 C","7455 C","7456 C","2706 C","2716 C","2726 C","2736 C","2746 C","2756 C","2766 C","2708 C","2718 C","2728 C","2738 C","2748 C","2758 C","2768 C","2707 C","2717 C","2727 C","2747 C","2757 C","2767 C","277 C","278 C","279 C","280 C","281 C","282 C","283 C","284 C","285 C","286 C","287 C","288 C","289 C","7681 C","7682 C","7683 C","7684 C","7685 C","7686 C","7687 C","545 C","544 C","543 C","542 C","541 C","540 C","539 C","290 C","291 C","292 C","293 C","294 C","295 C","296 C","2905 C","2915 C","2925 C","2935 C","2945 C","2955 C","2965 C","297 C","298 C","299 C","300 C","301 C","302 C","303 C","7688 C","7689 C","7690 C","7691 C","7692 C","7693 C","7694 C","2975 C","2985 C","2995 C","3005 C","3015 C","3025 C","3035 C","7695 C","7696 C","7697 C","7698 C","7699 C","7700 C","7701 C","7457 C","7458 C","7459 C","7460 C","7461 C","7462 C","7463 C","304 C","305 C","306 C","307 C","308 C","309 C","635 C","636 C","637 C","638 C","639 C","640 C","641 C","7702 C","7703 C","7704 C","7705 C","7706 C","7707 C","7708 C","628 C","629 C","630 C","631 C","632 C","633 C","634 C","310 C","311 C","312 C","313 C","314 C","315 C","316 C","3105 C","3115 C","3125 C","3135 C","3145 C","3155 C","3165 C","7709 C","7710 C","7711 C","7712 C","7713 C","7714 C","7715 C","317 C","318 C","319 C","320 C","321 C","322 C","323 C","7464 C","7465 C","7466 C","7467 C","7468 C","7469 C","7470 C","7471 C","7472 C","7473 C","7474 C","7475 C","7476 C","7477 C","5523 C","5513 C","5503 C","5493 C","5483 C","5473 C","5463 C","7716 C","7717 C","7718 C","7719 C","7720 C","7721 C","7722 C","324 C","325 C","326 C","327 C","328 C","329 C","330 C","3242 C","3252 C","3262 C","3272 C","3282 C","3292 C","3302 C","3245 C","3255 C","3265 C","3275 C","3285 C","3295 C","3305 C","3248 C","3258 C","3268 C","3278 C","3288 C","3298 C","3308 C","566 C","565 C","564 C","563 C","562 C","561 C","560 C","573 C","572 C","571 C","570 C","569 C","568 C","567 C","559 C","558 C","557 C","556 C","555 C","554 C","553 C","5595 C","5585 C","5575 C","5565 C","5555 C","5545 C","5535 C","5665 C","5655 C","5645 C","5635 C","5625 C","5615 C","5605 C","5527 C","5517 C","5507 C","5497 C","5487 C","5477 C","5467 C","621 C","622 C","623 C","624 C","625 C","626 C","627 C","331 C","332 C","333 C","334 C","335 C","336 C","337 C","338 C","339 C","340 C","341 C","342 C","343 C","7723 C","7724 C","7725 C","7726 C","7727 C","7728 C","7729 C","3375 C","3385 C","3395 C","3405 C","3415 C","3425 C","3435 C","344 C","345 C","346 C","347 C","348 C","349 C","350 C","351 C","352 C","353 C","354 C","355 C","356 C","357 C","7478 C","7479 C","7480 C","7481 C","7482 C","7483 C","7484 C","7730 C","7731 C","7732 C","7733 C","7734 C","7735 C","7736 C","7737 C","7738 C","7739 C","7740 C","7741 C","7742 C","7743 C","358 C","359 C","360 C","361 C","362 C","363 C","364 C","7485 C","7486 C","7487 C","7488 C","7489 C","7490 C","7491 C","365 C","366 C","367 C","368 C","369 C","370 C","371 C","372 C","373 C","374 C","375 C","376 C","377 C","378 C","580 C","579 C","578 C","577 C","576 C","575 C","574 C","5807 C","5797 C","5787 C","5777 C","5767 C","5757 C","5747 C","5875 C","5865 C","5855 C","5845 C","5835 C","5825 C","5815 C","5803 C","5793 C","5783 C","5773 C","5763 C","5753 C","5743 C","7492 C","7493 C","7494 C","7495 C","7496 C","7497 C","7498 C","7744 C","7745 C","7746 C","7747 C","7748 C","7749 C","7750 C","379 C","380 C","381 C","382 C","383 C","384 C","385 C","386 C","387 C","388 C","389 C","390 C","391 C","392 C","587 C","586 C","585 C","584 C","583 C","582 C","581 C","393 C","394 C","395 C","396 C","397 C","398 C","399 C","3935 C","3945 C","3955 C","3965 C","3975 C","3985 C","3995 C","600 C","601 C","602 C","603 C","604 C","605 C","606 C","607 C","608 C","609 C","610 C","611 C","612 C","613 C","461 C","460 C","459 C","458 C","457 C","456 C","455 C","614 C","615 C","616 C","617 C","618 C","619 C","620 C","7751 C","7752 C","7753 C","7754 C","7755 C","7756 C","7757 C","7758 C","7759 C","7760 C","7761 C","7762 C","7763 C","7764 C","7765 C","7766 C","7767 C","7768 C","7769 C","7770 C","7771 C","4545 C","4535 C","4525 C","4515 C","4505 C","4495 C","4485 C","454 C","453 C","452 C","451 C","450 C","449 C","448 C","7499 C","7500 C","7501 C","7502 C","7503 C","7504 C","7505 C","468 C","467 C","466 C","465 C","464 C","463 C","462 C","7506 C","7507 C","7508 C","7509 C","7510 C","7511 C","7512 C","719 C","720 C","721 C","722 C","723 C","724 C","725 C","475 C","474 C","473 C","472 C","471 C","470 C","469 C","726 C","727 C","728 C","729 C","730 C","731 C","732 C","4685 C","4675 C","4665 C","4655 C","4645 C","4635 C","4625 C","7513 C","7514 C","7515 C","7516 C","7517 C","7518 C","7519 C","4755 C","4745 C","4735 C","4725 C","4715 C","4705 C","4695 C","482 C","481 C","480 C","479 C","478 C","477 C","476 C","7527 C","7528 C","7529 C","7530 C","7531 C","7532 C","7533 C","7534 C","7535 C","7536 C","7537 C","7538 C","7539 C","7540 C","427 C","428 C","429 C","430 C","431 C","432 C","433 C","420 C","421 C","422 C","423 C","424 C","425 C","426 C","441 C","442 C","443 C","444 C","445 C","446 C","447 C","413 C","414 C","415 C","416 C","417 C","418 C","419 C","400 C","401 C","402 C","403 C","404 C","405 C","406 C","407 C","408 C","409 C","410 C","411 C","412 C","434 C","435 C","436 C","437 C","438 C","439 C","440 C","Warm Gray 1 C","Warm Gray 2 C","Warm Gray 3 C","Warm Gray 4 C","Warm Gray 5 C","Warm Gray 6 C","Warm Gray 7 C","Warm Gray 8 C","Warm Gray 9 C","Warm Gray 10 C","Warm Gray 11 C","Cool Gray 1 C","Cool Gray 2 C","Cool Gray 3 C","Cool Gray 4 C","Cool Gray 5 C","Cool Gray 6 C","Cool Gray 7 C","Cool Gray 8 C","Cool Gray 9 C","Cool Gray 10 C","Cool Gray 11 C","Black 2 C","Black 3 C","Black 4 C","Black 5 C","Black 6 C","Black 7 C"],ie=["FEDD00","FFD700","FE5000","F9423A","EF3340","CE0058","E10098","BB29BB","440099","10069F","001489","0085CA","00AB84","2D2926","F2F0A1","FCAEBB","F1B2DC","BF9BDE","74D1EA","9DE7D7","9E978E","009ACE","44D62C","FFE900","FFAA4D","FF7276","FF3EB5","EA27C2","84754E","85714D","866D4B","8B6F4E","87674F","8B634B","8A8D8F","FFD900","FF5E00","F93822","CE0056","D62598","4E008E","00239C","0084CA","00B08B","222223","F6EB61","F7EA48","FCE300","C5A900","AF9800","897A27","F5E1A4","ECD898","EED484","F4DA40","F2CD00","F1C400","CBA052","F9E547","FBE122","FEDB00","FFD100","DAAA00","AA8A00","9C8412","FAE053","FBDD40","FDDA24","FFCD00","C99700","AC8400","897322","F3DD6D","F3D54E","F3D03E","F2A900","CC8A00","A07400","6C571B","F8E08E","FBD872","FFC845","FFB81C","C69214","AD841F","886B25","FBDB65","FDD757","FED141","FFC72C","EAAA00","B58500","9A7611","FFC600","FFB500","D19000","B47E00","73531D","5A4522","4B3D2A","D29F13","B78B20","9F7D23","967126","8F6A2A","7D622E","6C5D34","FDD26E","FFC658","FFBF3F","FFA300","DE7C00","AF6D04","74531C","FDD086","FFC56E","FFB549","FF9E1B","D57800","996017","6E4C1E","F2C75C","F1BE48","F1B434","ED8B00","CF7F00","A76D11","715C2A","F6BE00","F0B323","FEAD77","E6A65D","D38235","DC8633","C16C18","BD9B60","D69A2D","DB8A06","CD7925","AD6433","89532F","775135","D78825","D3832B","C67D30","B67233","A7662B","9E6A38","835D32","FCC89B","FDBE87","FDAA63","F68D2E","EA7600","D45D00","BE4D00","FECB8B","FFC27B","FFB25B","FF8200","E57200","BE6A14","9B5A1A","EFD19F","EFBE7D","ECA154","E87722","CB6015","A1561C","603D20","FFAE62","FF8F1C","FF6900","B94700","94450B","653819","FFB990","FFA06A","FF7F32","FF6A13","D86018","A65523","8B4720","FFBE9F","FF9D6E","FF7F41","FF671F","E35205","BE531C","73381D","DB864E","E07E3C","DC6B2F","DC582A","C05131","864A33","674736","FFA38B","FF8D6D","FF6A39","FC4C02","DC4405","A9431E","833921","FFB3AB","FF8674","FF5C39","FA4616","CF4520","963821","6B3529","C4622D","BA5826","AF5C37","9E5330","924C2E","7B4D35","5C4738","D4B59E","C07D59","B15533","9D432C","7C3A2D","6B3D2E","5C3D31","D14124","BD472A","B33D26","8D3F2B","83412C","7B4931","674230","E4D5D3","E1BBB4","D6938A","C26E60","A4493D","823B34","683431","DDBCB0","CA9A8E","BC8A7E","A37F74","866761","6B4C4C","583D3E","EABEB0","C09C83","B46A55","AB5C57","A45248","9A6A4F","8A391B","ECC3B2","ECBAA8","EAA794","E8927C","DA291C","9A3324","653024","FFB1BB","FF808B","FF585D","E03C31","BE3A34","81312F","FFA3B5","FF8DA1","F8485E","EE2737","D22630","AF272F","7C2529","FCAFC0","FB637E","F4364C","CB333B","A4343A","643335","C66E4E","C04C36","B7312C","AB2328","93272C","8A2A2B","802F2D","E1523D","C63527","A72B2A","9E2A2B","6D3332","633231","572D2D","E6BAA8","E56A54","E04E39","CD545B","B04A5A","9B2242","651D32","FABBCB","FC9BB3","F65275","E4002B","C8102E","A6192E","76232F","ECC7CD","E89CAE","DF4661","D50032","BA0C2F","9D2235","862633","F8A3BC","F67599","EF426F","E40046","BF0D3E","9B2743","782F40","F5B6CD","F59BBB","EF4A81","E0004D","C5003E","A6093D","8A1538","F5DADF","F7CED7","F9B5C4","F890A5","EF6079","E03E52","CB2C30","F2D4D7","F4C3CC","F2ACB9","E68699","D25B73","B83A4B","9E2A2F","ECB3CB","E782A9","E0457B","CE0037","A50034","861F41","6F263D","F99FC9","F57EB6","F04E98","E31C79","CE0F69","AC145A","7D2248","F4CDD4","E06287","E24585","B52555","A4123F","971B2F","6A2C3E","D6C9CA","C4A4A7","C16784","C63663","BC204B","912F46","7E2D40","EABEDB","E56DB1","DA1884","A50050","910048","6C1D45","936D73","934054","8E2C48","732E4A","672E45","582D40","502B3A","EF95CF","EB6FBD","DF1995","D0006F","AA0061","890C58","672146","F4A6D7","F277C6","E93CAC","C6007E","A20067","840B55","EAD3E2","E6BCD8","DFA0C9","D986BA","C6579A","AE2573","960051","E5CEDB","E3C8D8","DEBED2","C996B6","B06C96","994878","7C2855","E4C6D4","DCB6C9","D0A1BA","BE84A3","A76389","893B67","612141","EBBECB","E8B3C3","E4A9BB","D592AA","84344E","6F2C3F","572932","E2BCCB","DCA9BF","C9809E","B55C80","A73A64","9B3259","872651","E9CDD0","E4BEC3","D7A3AB","C48490","B46B7A","984856","893C47","F2C6CF","F1BDC8","E9A2B2","DC8699","8F3237","7F3035","5D2A2C","E9C4C7","E5BAC1","DAA5AD","C6858F","7A3E3A","6A3735","512F2E","DFC2C3","DBB7BB","CCA1A6","B07C83","9C6169","874B52","3F2021","F1A7DC","EC86D0","E45DBF","DB3EB1","C5299B","AF1685","80225F","EFBAE1","E277CD","D539B5","C800A1","B0008E","9E007E","830065","EAB8E4","E59BDC","DD7FD3","C724B1","BB16A3","A51890","80276C","A56E87","A83D72","991E66","8A1B61","722257","6A2A5B","5E2751","E7BAE4","DD9CDF","C964CF","AD1AAC","981D97","72246C","EBC6DF","E6BEDD","E2ACD7","D48BC8","93328E","833177","612C51","EEDAEA","CCAED0","D59ED7","B288B9","A277A6","9F5CC0","963CBD","D7A9E3","C98BDB","AC4FC6","9B26B6","87189D","772583","653165","948794","A2789C","A15A95","8E3A80","6E2B62","6A3460","5D3754","D5C2D8","C9B1D0","BA9CC5","A57FB2","642F6C","59315F","4B3048","DBCDD3","D0BEC7","C6B0BC","AF95A6","86647A","66435A","4A3041","D8C8D1","D3C0CD","BFA5B8","9B7793","7E5475","693C5E","512A44","DFC8E7","D7B9E4","CAA2DD","B580D1","8031A7","702F8A","572C5F","D6BFDD","C6A1CF","8C4799","6D2077","642667","5D285F","51284F","CBA3D8","B884CB","A05EB5","84329B","702082","671E75","5F2167","9991A4","8D6E97","7A4183","6B3077","653279","5E366E","5C4E63","C1A0DA","A77BCA","8246AF","5C068C","500778","470A68","3C1053","D7C6E6","C1A7E2","9063CD","753BBD","5F259F","582C83","512D6D","C5B4E3","AD96DC","9678D3","7D55C7","330072","2E1A47","B4B5DF","9595D2","7474C1","24135F","211551","201747","221C35","A7A4E0","8B84D7","685BC7","2E008B","280071","250E62","201547","6E7CA0","686E9F","615E9B","565294","514689","4C4184","535486","DDDAE8","B6B8DC","A7A2C3","8986CA","5D4777","4B384C","41273B","878CB4","7C7FAB","7566A0","6F5091","68478D","563D82","523178","E5E1E6","E0DBE3","C6BCD0","A192B2","7C6992","614B79","3F2A56","D8D7DF","C6C4D2","B3B0C4","8D89A5","595478","403A60","1E1A34","C5CFDA","BBC7D6","A2B2C8","8E9FBC","1B365D","1F2A44","1C1F2A","D9E1E2","A4BCC2","98A4AE","768692","425563","253746","131E29","B9D3DC","A3C7D2","8DB9CA","6BA4B8","003D4C","00313C","072B31","BFCED6","B7C9D3","A6BBC8","7A99AC","5B7F95","4F758B","081F2C","D1DDE6","C6D6E3","9BB8D3","7DA1C4","5E8AB4","236192","002E5D","DBE2E9","CED9E5","A7BCD6","7D9BC1","326295","003A70","002554","DDE5ED","C8D8EB","B1C9E8","7BA4DB","407EC9","003594","001A70","BDC5DB","89ABE3","8094DD","7BA6DE","5F8FB4","3A5DAE","606EB2","CBD3EB","9FAEE5","485CC7","1E22AA","171C8F","151F6D","141B4D","B8CCEA","5C88DA","0047BB","06038D","001871","001E62","071D49","C3D7EE","A7C6ED","307FE2","001A72","001E60","13294B","ABCAE9","8BB8E8","418FDE","012169","00205B","041E42","92C1E9","6CACE4","0072CE","0033A0","003087","002D72","0C2340","94A9CB","6787B7","426DA9","385E9D","2C5697","1D4F91","1D428A","C6DAE7","BDD6E6","A4C8E1","7BAFD4","003C71","003057","00263A","B9D9EB","9BCBEB","69B3E7","003DA5","002F6C","002855","041C2C","8DC8E8","62B5E5","009CDE","0057B8","004C97","003865","00263E","71C5E8","41B6E6","00A3E0","005EB8","004B87","003B5C","002A3A","4698CB","298FC2","0076A8","006298","005587","004976","01426A","99D6EA","5BC2E7","00A9E0","0077C8","00629B","004F71","003E51","7BA7BC","6399AE","4E87A0","41748D","34657F","165C7D","005776","BBDDE6","71B2C9","4298B5","0086BF","007DBA","00558C","002B49","9ADBE8","59CBE8","00B5E2","006BA6","00587C","003B49","A4DBE8","8BD3E6","4EC3E0","00AFD7","0095C8","0082BA","0067A0","48A9C5","009CBD","0085AD","007096","006A8E","00617F","005670","B8DDE1","9BD3DD","77C5D5","3EB1C8","0093B2","007396","005F83","6AD1E3","05C3DE","00A9CE","0092BC","007FA3","00677F","004851","68D2DF","00C1D5","00AEC7","008EAA","00778B","006272","004F59","63B1BC","00A7B5","0097A9","00859B","007D8A","007680","006269","B1E4E3","88DBDF","2DCCD3","009CA6","008C95","007377","005F61","A0D1CA","40C1AC","00B0B9","00A3AD","007398","005F86","005A70","7EDDD3","5CB8B2","279989","007681","487A7B","0D5257","244C5A","B6CFD0","ABC7CA","94B7BB","7FA9AE","4F868E","115E67","07272D","00968F","00857D","007672","006D68","00635B","005E5D","005151","9CDBD9","64CCC9","00B2A9","008675","007367","00685E","00534C","71DBD4","2AD2C9","00BFB3","00A499","008578","00594F","004C45","7CE0D3","2CD5C4","00C7B1","00B398","009681","007864","004E42","6DCDB8","49C5B1","00AB8E","009B77","008264","006A52","034638","B9DCD2","A1D6CA","86C8BC","6BBBAE","006F62","00594C","1D3C34","B5E3D8","A5DFD3","98DBCE","6BCABA","00816D","006C5B","173F35","ADCAB8","9ABEAA","85B09A","6FA287","28724F","205C40","284734","BFCEC2","A7BDB1","92ACA0","7F9C90","5C7F71","43695B","183028","BAC5B9","B0BDB0","A3B2A4","94A596","708573","5E7461","22372B","BCC9C5","B1C0BC","9DB0AC","829995","5D7975","3E5D58","18332F","D1E0D7","B7CDC2","9AB9AD","789F90","507F70","285C4D","13322B","A7E6D7","8CE2D0","3CDBC0","009775","007B5F","00664F","8FD6BD","6ECEB2","00B388","00965E","007A53","006747","115740","50A684","00966C","008755","007B4B","006F44","006845","005844","7AE1BF","47D7AC","00C389","00AF66","007749","006341","154734","A0DAB3","91D6AC","71CC98","009A44","00843D","046A38","2C5234","A2E4B8","8FE2B0","80E0A7","00B140","009639","007A33","215732","9BE3BF","26D07C","00BF6F","00B74F","009F4D","275D38","00573F","4B9560","228848","007A3E","007041","286140","36573B","395542","6BA539","48A23F","319B42","3A913F","44883E","4A773C","44693D","ADDC91","A1D884","6CC24A","43B02A","509E2F","4C8C2B","4A7729","D0DEBB","BCE194","8EDD65","78D64B","74AA50","719949","79863C","C2E189","B7DD79","A4D65E","78BE20","64A70B","658D1B","546223","D4EB8E","CDEA80","C5E86C","97D700","84BD00","7A9A01","59621D","C4D6A4","BCD19B","B7CE95","A9C47F","789D4A","67823A","4E5B31","D0D1AB","C6C89B","BABD8B","A2A569","8A8D4A","6D712E","3D441E","D2CE9E","CBC793","C0BB87","AFA96E","A09958","89813D","555025","C3C6A8","B3B995","A3AA83","899064","737B4C","5E6738","3E4827","BFCC80","BBC592","9CAF88","8F993E","76881D","7A7256","5B6236","BABC16","ABAD23","999B30","888D30","7C8034","727337","656635","E2E868","DBE442","CEDC00","C4D600","A8AD00","949300","787121","E9EC6B","E3E935","E0E721","D0DF00","B5BD00","9A9500","827A04","E3E48D","E0E27C","DBDE70","D2D755","B7BF10","8E8C13","625D20","F0EC74","EDE939","ECE81A","E1E000","BFB800","ADA400","A09200","F3EA5D","F3E500","EFDF00","EEDC00","BBA600","9A8700","685C20","F1EB9C","F0E991","F0E87B","EDE04B","EADA24","E1CD00","CFB500","EBE49A","E9E186","E6DE77","E1D555","D7C826","C4B000","B39B00","E9DF97","E4D77E","DECD63","D9C756","B89D18","A28E2A","695B24","DCD59A","D6CF8D","D0C883","C0B561","AC9F3C","9F912A","8A7B19","CAB64B","CFB023","C1A01E","A08629","897630","736635","675E33","D4C304","C4B200","91852C","747136","5D6439","585C3B","535435","BBB323","B4A91F","AA9D2E","8F7E35","716135","635939","4E4934","D5CB9F","CFC493","C5B783","B3A369","998542","8C7732","614F25","CAC7A7","BFBB98","B0AA7E","9B945F","594A25","524727","4A412A","F1E6B2","DFD1A7","D9C89E","CEB888","A89968","94795D","816040","DDCBA4","D3BC8D","C6AA76","B9975B","8B5B29","744F28","5C462B","EFDBB2","FCD299","E1B87F","D6A461","C6893F","B77729","A6631B","EDC8A3","E7B78A","DDA46F","C88242","B36924","934D11","7D3F16","F3CFB3","F1C6A7","F0BF9B","E59E6D","B86125","A45A2A","693F23","E0C09F","D9B48F","CDA077","B58150","9E652E","774212","623412","E0C6AD","DCBFA6","CDA788","BF9474","AD7C59","946037","4F2C1D","E1B7A7","D5A286","C58B68","99552B","85431E","6D4F47","5E4B3C","D7C4B7","CDB5A7","C0A392","AE8A79","956C58","7C4D3A","5B3427","DBC8B6","D3BBA8","C6A992","AA8066","703F2A","623B2A","4E3629","D6D2C4","C5B9AC","B7A99A","A39382","7A6855","63513D","473729","D1CCBD","B7B09C","A69F88","A7ACA2","949A90","8E9089","4B4F54","D0D3D4","C1C6C8","A2AAAD","7C878E","5B6770","333F48","1D252D","C7C9C7","B2B4B2","9EA2A2","898D8D","707372","54585A","25282A","BEC6C4","A2ACAB","919D9D","717C7D","505759","3F4444","373A36","BABBB1","A8A99E","919388","7E7F74","65665C","51534A","212322","C4BFB6","AFA9A0","9D968D","8C857B","776E64","696158","C4BCB7","B2A8A2","978C87","857874","746661","5E514D","382F2D","D0C4C5","C1B2B6","AB989D","7B6469","584446","453536","382E2C","D7D2CB","CBC4BC","BFB8AF","B6ADA5","ACA39A","A59C94","968C83","8C8279","83786F","796E65","6E6259","D9D9D6","D0D0CE","C8C9C7","BBBCBC","B1B3B3","A7A8AA","97999B","888B8D","75787B","63666A","53565A","332F21","212721","31261D","3E2B2E","101820","3D3935"],ze=ie.map(c=>[parseInt(c.substring(0,2),16),parseInt(c.substring(2,4),16),parseInt(c.substring(4,6),16)]);function hn(c){const e=ue.indexOf(c);return e>=0?ie[e]:""}function Lt(c){const e=ie.indexOf(c);return e>=0?ue[e]:""}function un(c,e=64){const t=[],A=[],n=Lt(c);n&&t.push({pms:n,hex:c,distance:0});const a=parseInt(c.substring(0,2),16),i=parseInt(c.substring(2,4),16),o=parseInt(c.substring(4,6),16);let s,r,g;for(let d=0;d<ie.length;d++){s=ze[d][0],r=ze[d][1],g=ze[d][2];const B=Math.sqrt(Math.pow(a-s,2)+Math.pow(i-r,2)+Math.pow(o-g,2));A.push(B)}for(let d=0;d<A.length;d++)A[d]<=e&&!t.some(B=>B.pms===ue[d])&&t.push({pms:ue[d],hex:ie[d],distance:A[d]});return t.sort((d,B)=>d.distance-B.distance)}const mn=ue.map((c,e)=>({pms:c,hex:ie[e]})),Qn=new vA(mn,{keys:["pms"]});function Dn(c,e){return Qn.search(c,e?{limit:e}:void 0)}let me=null;function zt(c){if(c.startsWith("#"))return Kt(c);if(!document)throw new Error("browserColorToHex is only supported on browsers");if(me||(me=document.createElement("canvas").getContext("2d")),!me)throw new Error("Failed to create canvas context required to convert colors");me.fillStyle=c;const e=Kt(me.fillStyle);return e||console.error(`Unknown browser color ${c}`),e}function Kt(c){const e=c.substring(1).toUpperCase();return e.length===6?e:e.length===3?`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`:""}class fn{constructor(){this.frameSourceSvg=async(e,t)=>{if(!e)return l.generateDefaultRectangleFrameSvg(t);const A=e.asset;if(!A)throw new X(e);const n=A.fileLink;if(n)return l.fetchAsString(n,!0);throw new $(A)}}async init(e,t,A){if(A)return await this.reload(e,t,A),null;e.mandatory&&t.setMandatoryFulfilled(e.stepName,!1),t.markStepsAsInitialised([e.stepName]);let n;const a=t.getWorkflowExperience().getBundle();if(a&&e.globalPropertyAspectConfigurations){const i=a.getGlobalPropertyStateManager(),o=e.globalPropertyAspectConfigurations[0],s=i.getAspectStorage(o.aspectName);s&&s.originalAssetKey&&(n=(await k.getLocalOrFromServer(s.originalAssetKey)).fileLink)}if(e.option&&e.option.variants&&e.option.variants.length>0){const i=e.option,o=L.getDefaultVariant(i);return o?this.selectVariantCommand(e,o,[],t,void 0,n||e.data.placeholderImageUrl):null}return this.selectVariantCommand(e,void 0,[],t,void 0,n||e.data.placeholderImageUrl)}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName).map(g=>({id:g.id,region:g.stepRegion}));if(!e.option||(e.option.variants||[]).length===0){const g=e.data.regions.map(d=>l.generateDefaultRectangleFrameSvg(d));t.updateStorage(e.stepName,{currentFrameSources:g})}if(n){const g=async()=>{var w,u,h,Q,m;const d=(w=n.storage)==null?void 0:w.colors,B=(u=n.storage)==null?void 0:u.framePatternSrc,C=(h=n.storage)==null?void 0:h.frameOffsetsList;if(t.updateMetadata(e.stepName,{frameOffsetsList:C,framePatternSrc:B}),B){const M=(Q=t.getStepSpecificServices(e.stepName))==null?void 0:Q.frameService;if(!M)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(B,M,!0,d),t.updateMetadata(e.stepName,{image:B}),t.updateStorage(e.stepName,{framePatternSrc:B}),this.validateColorCount(e,t)}if(C!=null&&C.some(M=>M.zoom)){const M=(m=t.getStepSpecificServices(e.stepName))==null?void 0:m.frameService;if(!M)throw new Error("Frame service unavailable, cannot load pattern!");M.updateOffsets(C)}t.setMandatoryFulfilled(e.stepName,!0)};if(n.selectedVariants&&n.selectedVariants.length>0){const d=n.selectedVariants[0].id;if(e.option&&d){const B=(r=e.option.variants)==null?void 0:r.find(C=>C.id===d);B&&await t.setSelectionsAndElements(e.stepName,[B],s,async()=>{const C=await Promise.all(e.data.regions.map(w=>this.frameSourceSvg(B,w)));t.updateStorage(e.stepName,{currentFrameSources:C}),await g()})}}else await t.setSelectionsAndElements(e.stepName,[],s,g)}}async availableColors(e,t){var n;const A=e.data.colorOption;return((n=A==null?void 0:A.variants)==null?void 0:n.map(a=>({fill:a.color,stroke:a.color,variant:a,pmsValue:a.name})))??[]}selectImage(e,t,A,n=!0){var s;const a=this.patternSource(t),i=(s=A.getStepStorage(e.stepName))==null?void 0:s.framePatternSrc;if(i&&i===a)return Promise.resolve();A.setEditedStatus(e.stepName,!0);const o=t.fileLink||"";return o.endsWith(".pdf")||o.endsWith(".eps")||o.endsWith(".ai")?new Promise(r=>{A.addPoller(new Ot(async()=>{var C;const d=(C=(await k.getFromServer(t.key||"")).versions)==null?void 0:C.find(w=>w.name==="svg");return d?(await fetch(d.link)).status===200:!1},()=>{k.getLocalOrFromServer(t.key||"").then(g=>{this.loadPatternFromAsset(g,e,A,n).then(r)})},()=>{throw new Fe("Failed to resolve transcoded PDF")}))}):this.loadPatternFromAsset(t,e,A,n)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A,n,a);i&&(i.command&&n.getCommandDispatcher()(i.command),i.followup&&await i.followup())}getCreateElementCommand(e,t,A,n){return new l.CreateElementCommand({id:e,type:l.LayoutElementType.Frame,x:t.left,y:t.top,width:t.width,height:t.height,layer:t.layer,layerIndex:t.layerIndex,rotation:t.rotation,scaleX:t.width/n.frameData.width,scaleY:t.height/n.frameData.height,path:n.frameData.path,dataWidth:n.frameData.width,dataHeight:n.frameData.height,stepRegion:t,stepName:n.stepName,disablePlaceholder:n.disablePlaceholder,focalBlur:n.focalBlur,focalBlurStrength:n.focalBlurStrength,focalBlurRadius:n.focalBlurRadius,pattern:n.pattern,immutable:t.immutable},A)}async loadPatternFromString(e,t,A=!0,n=void 0,a){if(e.endsWith("svg")){const i=await l.GetSVGDimensions(e),o=i.width,s=i.height,r=await l.fetchAsString(e);if(a){const B=r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);if(B&&B.length>0)throw new Error("Vector files may not include images or gradients when a color limit is specified.")}const g=await l.generateSVGWithUnknownColors(r),d={src:e,width:o,height:s,aspect:o/s,svg:g.svg,colors:n??g.colors};l.patternImageDataCache.set(e,d),t.setPatternData(d,A)}else{const i=await l.fetchAsArrayBuffer(e,!0),o=await l.getAttributesFromArrayBuffer(i),s={src:e,width:o.width,height:o.height,aspect:o.width/o.height,svg:void 0,colors:void 0};l.patternImageDataCache.set(e,s),t.setPatternData(s,A)}}changeColors(e,t,A){var i,o;const n=(i=t.getStepSpecificServices(e.stepName))==null?void 0:i.frameService;if(!n||!((o=n.getImageData())!=null&&o.svg)){console.warn("changeColors was called without an SVG being assigned to a frame step");return}const a=this.calculateColorMetadata(n,e,A);t.updateMetadata(e.stepName,{colors:a.metadataColors}),t.updateStorage(e.stepName,{colors:a.storageColors}),n.setPatternData({...n.getImageData(),colors:a.newColors},!1),this.validateColorCount(e,t)}getUniqueColorCount(e,t){var i,o;const A=(i=t.getStepSpecificServices(e.stepName))==null?void 0:i.frameService;if(!A)return 0;const n=((o=A.getImageData())==null?void 0:o.colors)??{},a=[];for(const s in n){const r=n[s];if(r.pmsValue){const g=r.pmsValue.trim().toLocaleLowerCase();a.includes(g)||a.push(g)}else if(r.browserValue){const g=zt(r.browserValue);a.includes(g)||a.push(g)}}return a.length}calculateColorMetadata(e,t,A){var s,r;if(!((s=e.getImageData())!=null&&s.svg))return{newColors:void 0,metadataColors:void 0,storageColors:void 0};const n={...e.getImageData().colors??{}},a={};Object.entries(n).forEach(([g,d])=>{const B={browserValue:d.browserValue};a[g]=B});for(const[g,d]of A.entries())n[g]={browserValue:d.browserValue,pmsValue:d.pmsValue},a[g]=d;let i=Array.from(Object.values(n)).map(g=>g.browserValue);const o=t.data.colorOption;return o&&((r=o.variants)==null||r.forEach(g=>{i=i.map(d=>{var B;return d.toLowerCase()===((B=g.color)==null?void 0:B.toLowerCase())?g.name:d})})),{newColors:n,metadataColors:i,storageColors:a}}validateColorCount(e,t){const A=e.data.colorPickerEnabled?e.data.maxColors??0:0;t.setStepError(e.stepName,"colors",A>0&&this.getUniqueColorCount(e,t)>A?"workflow.steps.frame.tooManyColors":void 0)}async selectVariantCommand(e,t,A,n,a,i){var B;const o=(B=n.getStepSpecificServices(e.stepName))==null?void 0:B.frameService;if(!o)throw new Error("Frame service unavailable, cannot load pattern!");const s=await Promise.all(e.data.regions.map(C=>this.frameSourceSvg(t,C)));a&&a(!0);const r=await Promise.all(e.data.regions.map(async(C,w)=>{const u=await l.getFrameData(s[w]),h=o.getImageData(),Q=A.map(I=>new l.DeleteElementCommand(I.id)),m=h?l.calculateOffsets(h,u):void 0,M=h?{id:l.generate(),src:h.src,x:(m==null?void 0:m.x)||0,y:(m==null?void 0:m.y)||0,width:h.width,height:h.height,scaleX:(m==null?void 0:m.zoom)||1,scaleY:(m==null?void 0:m.zoom)||1,rotation:0}:void 0,p=l.generate(),D=n.getLayouts().find(I=>I.panelId===C.panelId);if(!D)throw new T(C);return{command:this.getCreateElementCommand(p,C,D,{frameData:u,pattern:M,disablePlaceholder:e.data.disablePlaceholder,focalBlur:e.data.focalBlur,focalBlurStrength:e.data.focalBlurStrength,focalBlurRadius:e.data.focalBlurRadius,stepName:e.stepName}),regionEl:{id:p,region:C},removeExistingCommands:Q}})),g=r.map(C=>C.command),d=r.map(C=>C.removeExistingCommands).flat();return{command:new l.GroupCommand([...g,...d]),followup:async()=>{a&&a(!1),await n.setSelectionsAndElements(e.stepName,t?[t]:[],[...r.map(C=>C.regionEl)],async()=>{var C;if(n.updateStorage(e.stepName,{currentFrameSources:s}),i){const w=(C=n.getStepSpecificServices(e.stepName))==null?void 0:C.frameService;if(!w)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(i,w,!0)}})}}}patternSource(e){var n;const t=(n=e.versions)==null?void 0:n.find(a=>a.name==="svg");if(t)return t.link;const A=e.fileLink;if(A)return A;throw new $(e)}async loadPatternFromAsset(e,t,A,n){var r,g;const a=this.patternSource(e),i=A.markUpdatePending(),o=(r=A.getStepSpecificServices(t.stepName))==null?void 0:r.frameService;if(!o)throw A.markUpdateCompleted(i),new Error("Frame service unavailable, cannot load pattern!");try{await this.loadPatternFromString(a,o,n,void 0,t.data.colorPickerEnabled&&!!t.data.maxColors&&t.data.maxColors>0)}catch(d){throw A.markUpdateCompleted(i),d}const s=this.calculateColorMetadata(o,t,new Map(Object.entries(((g=o.getImageData())==null?void 0:g.colors)??{})));A.updateMetadata(t.stepName,{image:a,colors:s.metadataColors}),A.updateStorage(t.stepName,{framePatternSrc:a,colors:s.storageColors}),A.markUpdateCompleted(i),A.setMandatoryFulfilled(t.stepName,!0),A.setInformationResults(A.getInformationResults().filter(d=>d.stepID===t.stepName)),this.validateColorCount(t,A)}}const q=new fn;class In{async getIllustrationBody(e){return new Promise(t=>{l.fetchAsString(e,!0).then(A=>{t(A)}).catch(A=>console.error(A))})}getCreateElementCommand(e,t,A,n){return new l.CreateElementCommand({stepRegion:t,stepName:n.stepName,colors:n.svg.colors,id:e,src:n.src,svg:n.svg.svg,cachedObjectURL:n.objectURL,type:l.LayoutElementType.Illustration,y:t.top,x:t.left,rotation:t.rotation,width:t.width,height:t.height,layer:t.layer,layerIndex:t.layerIndex,immutable:t.immutable},A)}getColors(e,t){const A=t.getRegionElements(e.stepName)||[];if(A.length===0)return[];try{return l.findElement(A[0].id,t.getAllLayoutData()).colors}catch{return[]}}async init(e,t,A){const n=e.option;if(!n)return null;if(A)return this.reload(e,t,A);{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantCommand(e,a,[],()=>{},t)}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{var C;t.updateMetadata(e.stepName,{colors:(C=n.storage)==null?void 0:C.colors}),t.setMandatoryFulfilled(e.stepName,!0)})}}else throw new Error("Required illustration variant no longer available")}return null}async availableColors(e,t){var n;const A=e.data.colorOption;return A?A?(n=A.variants)==null?void 0:n.map(a=>({fill:a.color,stroke:a.color,variant:a})):[]:[]}async changeColorsCommand(e,t,A,n,a){var g;const i={};for(const[d,B]of a.entries())i[d]={browserValue:B,spotColor:(g=i[d])==null?void 0:g.spotColor};const o=l.modifySVGWithElementProperties(e,t,A,i),s=await l.svgObjectURL(o),r=[];for(const d of n){for(const[B,C]of a.entries())r.push(new l.IllustrationColorCommand(d,B,C));r.push(new l.IllustrationCacheCommand(d,o,s))}return new l.GroupCommand(r)}async changeColors(e,t,A,n,a){var C,w;if(t.length===0)return;const i=l.findElement(t[0].id,n().map(u=>u.layoutState)),o={...i.colors},s={};Object.entries(o).forEach(([u,h])=>{const Q={browserValue:h.browserValue},m=h.spotColor;m&&(Q.spotColor={profileName:m.profileName,namedColor:m.namedColor}),s[u]=Q});for(const[u,h]of a.entries())o[u]={browserValue:h,spotColor:(C=o[u])==null?void 0:C.spotColor},s[u]={browserValue:h};let r=Array.from(Object.values(o)).map(u=>u.browserValue);const g=e.data.colorOption;g&&((w=g.variants)==null||w.forEach(u=>{r=r.map(h=>{var Q;return h.toLowerCase()===((Q=u.color)==null?void 0:Q.toLowerCase())?u.name:h})})),A.updateMetadata(e.stepName,{colors:r});const d=new Map;if(Object.entries(o).forEach(([u,h])=>{d.set(u,h.browserValue)}),!i.svg)throw new Error("Colors changed before SVG loaded. This should never happen!");const B=await this.changeColorsCommand(i.svg,i.width,i.height,t.map(u=>u.id),d);A.updateStorage(e.stepName,{colors:s}),A.getCommandDispatcher()(B)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A,n,a);i&&(i.command&&a.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async selectVariantCommand(e,t,A,n,a){var Q;if(!e.data||!e.data.regions)throw new de(e,"Missing regions.");n(!0);const i=A.map(m=>new l.DeleteElementCommand(m.id));e.mandatory&&a.setMandatoryFulfilled(e.stepName,!1);const o=t.asset;if(!o)throw new X(t);const s=o.fileLink;if(!s)throw new $(o);const r=await l.generateSVGWithUnknownColors(await this.getIllustrationBody(s)),g=await l.svgObjectURL(r.svg),d=m=>{const M=a.getLayouts().find(f=>f.panelId===m.panelId);if(!M)throw new T(m);const p=l.generate();return{regionElement:{id:p,region:m},command:this.getCreateElementCommand(p,m,M,{stepName:e.stepName,src:s,objectURL:g,svg:r})}},B=e.data.regions.map(d),w=[...B.map(m=>m.command),...i];let u=Array.from(Object.values(r.colors)).map(m=>m.browserValue);const h=e.data.colorOption;return h&&((Q=h.variants)==null||Q.forEach(m=>{u=u.map(M=>{var p;return M.toLowerCase()===((p=m.color)==null?void 0:p.toLowerCase())?m.name:M})})),a.updateMetadata(e.stepName,{colors:u}),{command:new l.GroupCommand(w),followup:async()=>{await a.setSelectionsAndElements(e.stepName,[t],B.map(m=>m.regionElement),async()=>{a.setMandatoryFulfilled(e.stepName,!0),n(!1)}),e.data.colorPickerEnabled&&await this.changeColors(e,B.map(m=>m.regionElement),a,()=>a.getCommandContext().getAllLayouts(),new Map)}}}}const Qe=new In;class pn{async init(e,t,A){const n=e.option;if(!n)throw new Be(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantLambda(e,a,t,()=>{})}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(!s)throw new Be(e);if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=d.material,C=o.map(w=>({id:w.id,region:w.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],C,async()=>{const w=t.getModelContainer();if(w){const u=e.data.targetMaterials.map(h=>w.applyMaterialVariant(h,s.id||"",B||{}));Promise.all(u).then(()=>t.setMandatoryFulfilled(e.stepName,!0))}})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantLambda(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(e,t,A,n){const a=A.getModelContainer();n(!0);const i=t.material;if(!i)throw n(!1),new X(t);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],[],async()=>{try{a&&e.data.targetMaterials.forEach(o=>{e.option&&a.applyMaterialVariant(o,e.option.id||"",i)}),A.setMandatoryFulfilled(e.stepName,!0)}finally{n(!1)}})}}}}const Ke=new pn;class Fn{async init(e,t,A){const n=e.option;if(!n)throw new Be(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantLambda(e,a,t,()=>{})}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{var w;const C=t.getModelContainer();if(C&&e.option){const u=(w=d.asset)==null?void 0:w.fileLink;if(!u)throw new X(d);await C.applyModelVariant(e.stepName||"",{model:u,contextService:t.getLayoutPreviewService()},e.data.replaceProductModel||!1),t.setMandatoryFulfilled(e.stepName,!0)}})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantLambda(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(e,t,A,n){var i;n(!0);const a=(i=t.asset)==null?void 0:i.fileLink;if(!a)throw new X(t);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],[],async()=>{try{const o=A.getModelContainer();o&&await o.applyModelVariant(e.stepName,{model:a,contextService:A.getLayoutPreviewService()},e.data.replaceProductModel||!1),A.setMandatoryFulfilled(e.stepName,!0)}finally{n(!1)}})}}}}const je=new Fn;class Mn{async init(e,t,A){if(A)await this.reload(e,t,A);else return t.updateMetadata(e.stepName,{text:""}),this.changeTextCommand(e,"",t,"",()=>{});return null}async reload(e,t,A){const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(r=>r.elements).flat().filter(r=>r.stepName===e.stepName).map(r=>({id:r.id,region:r.stepRegion}));await t.setSelectionsAndElements(e.stepName,[],s,async()=>{var r,g;t.updateStorage(e.stepName,{text:(r=n==null?void 0:n.storage)==null?void 0:r.text}),t.setMandatoryFulfilled(e.stepName,((g=n==null?void 0:n.storage)==null?void 0:g.text)!=="")})}async changeText(e,t,A,n,a){const i=await this.changeTextCommand(e,t,A,n,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async changeTextCommand(e,t,A,n,a){var g;const i=A.getRegionElements(e.stepName),o=(g=A.getStepSpecificServices(e.stepName))==null?void 0:g.module;if(!o)return console.error("Missing module."),null;const s=A.getProfanities();if(!this.validateInput(e,t,s,a))return A.setMandatoryFulfilled(e.stepName,!1),console.error(n),null;if(A.setMandatoryFulfilled(e.stepName,t!==""),!e.data||!e.data.regions||e.data.regions.length<=0)return console.error("Missing configuration."),null;A.updateStorage(e.stepName,{text:t}),A.updateMetadata(e.stepName,{text:t});const r=(d,B,C)=>{const w=C||l.generate(),h=A.getLayouts().find(m=>m.panelId===B.panelId);if(!h)return console.error(`Can not find layout for region: ${B.panelId}`),null;const Q=[];return C&&Q.push(new l.DeleteElementCommand(w)),Q.push(new l.CreateElementCommand({stepRegion:B,stepName:e.stepName,colors:{},id:w,svg:d,type:l.LayoutElementType.Illustration,y:B.top,x:B.left,rotation:B.rotation,width:B.width,height:B.height,layer:B.layer,layerIndex:B.layerIndex,immutable:B.immutable},h)),{id:w,region:B,command:new l.GroupCommand(Q)}};if(i.length>0){const B=i.map(C=>{if(!C.region)return null;const w=o.svgPrint(t,C.region);return r(w,C.region,C.id)}).filter(C=>!!C).filter(C=>!!C).map(C=>C&&C.command);return{command:new l.GroupCommand(B),followup:async()=>{}}}else{const d=e.data.regions.map(C=>r(o.svgPrint(t,C),C)),B=d.filter(C=>!!C).map(C=>C&&C.command);return{command:new l.GroupCommand(B),followup:async()=>{const C=d.filter(w=>w).map(w=>w&&{id:w.id,region:w.region});await A.setSelectionsAndElements(e.stepName,[],C)}}}}validateInput(e,t,A,n){if(e.data&&e.data.maxLength){const i=e.data.maxLength;if(t.length>i)return n("Too many characters."),!1}if(!/^$|^[a-zA-Z0-9 ]+$/.test(t))return n("Unsupported characters."),!1;const a=Ue.split(t.toLowerCase());for(const i of a)for(const o in A){const s=A[o].toLowerCase().replace(/\s/g,"");if(i===s)return n("Blocked profanity."),!1}return n(""),!0}}const Ve=new Mn;class Sn{async init(e,t,A){const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else if(n.defaultVariant)return t.markStepsAsInitialised([e.stepName]),this.selectVariantCommand(e,n.defaultVariant,t,()=>{});return t.markStepsAsInitialised([e.stepName]),null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{t.setMandatoryFulfilled(e.stepName,!0)})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantCommand(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantCommand(e,t,A,n){const a=t.asset;if(!a)throw new X(t);const i=a==null?void 0:a.fileLink;if(!i)return console.error("No URL for picture!"),null;n(!0),e.mandatory&&A.setMandatoryFulfilled(e.stepName,!1);const s=A.getRegionElements(e.stepName).map(d=>new l.DeleteElementCommand(d.id)),r=d=>{const C=A.getLayouts().find(u=>u.panelId===d.panelId);if(!C)throw new T(d);const w=l.generate();return{regionElement:{id:w,region:d},command:new l.CreateElementCommand({stepName:e.stepName,stepRegion:d,id:w,src:i,type:l.LayoutElementType.Image,y:d.top,x:d.left,rotation:d.rotation,width:d.width,height:d.height,layer:d.layer,layerIndex:d.layerIndex,immutable:d.immutable,preserveAspectRatio:"none"},C)}},g=e.data.regions.map(r);return{command:new l.GroupCommand([...s,...g.map(d=>d.command)]),followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],g.map(d=>d.regionElement),async()=>{A.setMandatoryFulfilled(e.stepName,!0),n(!1)})}}}}const We=new Sn;class yn{async init(e,t,A){const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else{const a=n.variants;if(L.getDefaultVariant(n)){const o=a==null?void 0:a.find(s=>{var r;return s.id===((r=n.defaultVariant)==null?void 0:r.id)});return this.selectVariantLambda(e,(o==null?void 0:o.id)||"",t)}}return null}async reload(e,t,A){var i;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),a=e.option;if(n!=null&&n.selectedVariants){const o=n.selectedVariants[0].id;if(a&&o){const s=(i=a.variants)==null?void 0:i.find(r=>r.id===o);s&&await t.setSelectionsAndElements(e.stepName,[s],[])}}}async selectVariant(e,t,A){await A.getInitializationPromise();const n=await this.selectVariantLambda(e,t,A);n&&(n.command&&A.getCommandDispatcher()(n.command),n.followup&&await n.followup())}async selectVariantLambda(e,t,A){const n=e.option;if(!n)return null;const a=n.variants;if(!a)return null;const i=a.length>1?a.find(o=>o.id===t):a[0];if(!i)throw new Error("Failed to find selected variant in step variants, this should never happen!");return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[i],[],async()=>{A.setMandatoryFulfilled(e.stepName,!0)})}}}}const Xe=new yn;class Yn{constructor(){this.shapeFillId="spiff-fill-shape"}async availableColours(e){var A;const t=e.option;return t?((A=t.variants)==null?void 0:A.map(n=>({fill:n.color,stroke:n.color,variant:n})))||[]:[]}setCustomColor(e,t,A){const n=A.getLayouts(),i=(A.getRegionElements(t.stepName)||[]).map(o=>{const s=o.region;if(!n.find(g=>g.panelId===(s==null?void 0:s.panelId)))throw new T(s);return new l.IllustrationColorCommand(o.id,this.shapeFillId,e)}).filter(o=>!!o);A.getCommandDispatcher()(new l.GroupCommand(i)),A.updateStorage(t.stepName,{colour:e})}async init(e,t,A){const n=e.option;if(!n)throw new Be(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);return a?this.selectVariantCommand(e,{fill:a.color,stroke:a.color,variant:a},[],t):null}return null}async selectVariant(e,t,A,n){const a=await this.selectVariantCommand(e,t,A,n);a&&(a.command&&n.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const d=(r=s.variants)==null?void 0:r.find(B=>B.id===g);if(d){const B=o.map(C=>({id:C.id,region:C.stepRegion}));await t.setSelectionsAndElements(e.stepName,[d],B,async()=>{var C;t.updateStorage(e.stepName,{colour:((C=n==null?void 0:n.storage)==null?void 0:C.colour)||""}),t.setMandatoryFulfilled(e.stepName,!0)})}}}}async selectVariantCommand(e,t,A,n){var s;const a=n.getLayouts(),i=(s=n.getStepStorage(e.stepName))==null?void 0:s.colour,o=()=>{var r,g;if(((r=t.variant)==null?void 0:r.color)==="#custom")return i||"#FFFFFF";if((g=t.variant)!=null&&g.color)return t.variant.color;throw new Error("Failed to resolve color for shape step.")};if(A.length>0){const r=d=>{const B=d.region;if(!a.find(u=>u.panelId===(B==null?void 0:B.panelId)))throw new T(B);const w=o();return new l.IllustrationColorCommand(d.id,this.shapeFillId,w)},g=A.map(r).filter(d=>!!d);return{command:new l.GroupCommand(g),followup:async()=>{await n.setSelectionsAndElements(e.stepName,t.variant?[t.variant]:[],A),n.updateStorage(e.stepName,{colour:o()})}}}else{const r=C=>{const w=a.find(M=>M.panelId===C.panelId);if(!w)throw new T(C);const u=o(),h=`
786
786
  <svg
787
787
  xmlns="http://www.w3.org/2000/svg"
788
788
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -3164,4 +3164,4 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
3164
3164
  }
3165
3165
  }
3166
3166
  }
3167
- `,ce=async c=>{var e;for(const t in c.layouts){const A=c.layouts[t].elements.filter(a=>a.type===l.LayoutElementType.Illustration);for(let a=0;a<A.length;++a){const i=A[a];i.src&&i.svg&&(i.cachedObjectURL=await l.svgObjectURL(i.svg))}const n=c.layouts[t].elements.filter(a=>a.type===l.LayoutElementType.Textbox);for(let a=0;a<n.length;++a){const i=n[a];(e=i.fontData)!=null&&e.assetUrl&&await l.loadFont(i.fontData.assetUrl)}}},Za=async(c,e)=>{var n;const t=await x.getShadowGraphqlClient().query({query:La(((n=e==null?void 0:e.assets)==null?void 0:n.metadata)||!1),errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:c}}),A=t.data.workflows;if(A===void 0||A.length!==c.length)throw new Error(`Unable to read workflows: ${t.errors??"Length mismatch in response"}`);return A.forEach(a=>{a.steps.forEach(i=>{var o,s,r;delete i.data.__typename,(o=i.option)!=null&&o.id&&((s=i.option.defaultVariant)!=null&&s.asset&&k.cacheAsset(i.option.defaultVariant.asset),i.option.colorProfile&&k.cacheAsset(i.option.colorProfile),(r=i.option.variants)==null||r.forEach(g=>{g.asset&&k.cacheAsset(g.asset),g.displayImage&&k.cacheAsset(g.displayImage),g.thumbnail&&k.cacheAsset(g.thumbnail),g.material&&k.cacheMaterial(g.material)}),te.set({id:i.option.id},Promise.resolve(i.option)))}),a.finalizeStepConfig||(a.finalizeStepConfig={}),a.finalizeStepConfig.termsMarkdown=a.partner.termsMarkdown}),A},$a=async(c,e)=>{const A=(await e).find(n=>n.id===c);if(!A)throw new Error(`Workflow not found: ${c}`);return A},ct=async(c,e)=>{const t=c.map(o=>te.get({id:o,options:e})),A=c.filter((o,s)=>t[s]===void 0);if(A.length===0)return Promise.all(t);const n=Za(A,e),a=A.map(o=>te.set({id:o,options:e},$a(o,n))),i=t.filter(o=>o!==void 0);return await Promise.all(i.concat(a))},Ie=async(c,e)=>(await ct([c],e))[0],_a=c=>c.sort((e,t)=>e.index-t.index).map(e=>({id:l.generate(),panelId:e.name,name:e.name,index:e.index,createdAt:new Date,updatedAt:new Date,transparentBackground:e.transparentBackground,height:e.height,width:e.width,previewRegion:e.previewRegion,useEditableArea:e.useEditableArea,editableArea:e.editableArea})),gt=(c,e)=>{const t=c.workflowState,A=t?JSON.parse(t):void 0;return A?Object.values(A.layouts).map(n=>n.layout):_a(e.panels)};class yA{constructor(e){this.activeIntegration=void 0,this.updateTransactionState=async t=>{try{return x.getShadowGraphqlClient().mutate({...t,mutation:an})}catch(A){throw console.error(A),new U("Critical - Unable to synchronize workflow state with server.")}},this.initialized=!1,this.options=e,this.options.applicationKey&&UA(this.options.applicationKey),console.debug("------------------------"),console.debug("Spiff Commerce Core SDK"),console.debug("Version: 22.4.5"),console.debug(`Application Key Provided: ${!!this.options.applicationKey}`),console.debug("------------------------")}configureUrls(e,t,A){j.setHubUrl(e),j.setServerUrl(t),j.setServicesApiUrl(A),this.options.applicationKey&&this.getIntegration()}configure(e){j.setHubUrl(e.hubUrl),j.setServerUrl(e.serverUrl),j.setServicesApiUrl(e.servicesApiUrl),this.marketplaceThemeInstallId=e.marketplaceThemeInstallId,this.marketplaceThemeInstallConfigurationId=e.marketplaceThemeInstallConfigurationId,e.bearerAuthenticationToken&&It(e.bearerAuthenticationToken),this.options.applicationKey&&this.getIntegration()}getAssetManager(){return k}getCurrencyCode(){if(this.currencyCode===void 0)throw new Error("No currency code set.");return this.currencyCode}getFlowService(){if(!kA())throw new Error("Application key required to use Flow Service.");return new FA}async getIntegration(){if(this.activeIntegration)return this.activeIntegration;if(!this.options.applicationKey)throw new Error("Cannot get current Integration without specifying an Application Key.");const e=async()=>(await x.getShadowGraphqlClient().query({query:tn,errorPolicy:"all",fetchPolicy:"no-cache"})).data.currentIntegration;return this.activeIntegration=e(),this.activeIntegration}async canUseAddon(e){var t;try{return((t=(await this.getIntegration()).partner.activeAddons)==null?void 0:t.includes(e))??!1}catch(A){return console.error(A),!1}}async authenticateBundleFromLocalStorage(e){var n,a;const t=P.getMap("bundleOwnerIds");if(t!=null&&t.has(e))return Promise.resolve({success:!0,stakeholderType:Ee.Owner});const A=P.getMap("bundlePartnerIds")||new Map;if(A.has(e)){const i=A.get(e),s=(P.getMap("partnerCustomerIds")||new Map).get(i);if(s&&await this.authenticateCustomerId(s)){const g=(a=(n=this.customer)==null?void 0:n.bundleStakeholders)==null?void 0:a.find(d=>{var B;return((B=d.bundle)==null?void 0:B.id)===e});if(g)return Promise.resolve({success:!0,stakeholderType:g.type})}}return Promise.resolve({success:!1})}async authenticateTransactionFromLocalStorage(e){var g,d,B,C,w,u;const t=x.getShadowGraphqlClient(),A=await t.query({query:za,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:e}});if(!A.data.transactions||A.data.transactions.length===0)throw new Error(`Transaction not found: ${e}`);const n=A.data.transactions[0];if(!((d=(g=n.product)==null?void 0:g.partner)==null?void 0:d.id))throw new Error(`Unable to read transaction: ${e}`);if(n.isOrdered)return Promise.resolve({success:!1,transactionReadOnly:!0});const i=P.getMap("transactionOwnerIds");if(i!=null&&i.has(e))return Promise.resolve({success:!0,stakeholderType:Ee.Owner});const o=P.getMap("transactionCustomerIds");if(o!=null&&o.has(e)){const h=o.get(e);if(h&&await this.authenticateCustomerId(h)){const m=((C=(B=this.customer)==null?void 0:B.bundleStakeholders)==null?void 0:C.find(M=>{var p,f;return(f=(p=M.bundle)==null?void 0:p.transactions)==null?void 0:f.some(D=>D.id===e)}))||((u=(w=this.customer)==null?void 0:w.stakeholders)==null?void 0:u.find(M=>{var p;return((p=M.transaction)==null?void 0:p.id)===e}));if(m)return Promise.resolve({success:!0,stakeholderType:m.type})}}const r=(await t.query({query:Ka,errorPolicy:"all",variables:{id:n.workflowId}})).data.workflow;if(!r)throw new Error(`Unable to read workflow: ${n.workflowId}`);return Promise.resolve({success:!1,theme:r.overrideTheme,customLogoLink:n.customLogoLink})}clearCustomer(){this.customer=void 0}clearCustomerForTransaction(e){const t=P.getMap("transactionCustomerIds");t!=null&&t.has(e)&&(t.delete(e),P.setMap("transactionCustomerIds",t))}getStakeholderTypeForTransaction(e){var A,n;const t=(n=(A=this.customer)==null?void 0:A.stakeholders)==null?void 0:n.find(a=>{var i;return((i=a.transaction)==null?void 0:i.id)===e});if(t)return t.type}async getOrCreateCustomer(e){var i;this.customer=void 0;const t=x.getShadowGraphqlClient(),n=(await t.query({query:ja,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:e}})).data.customer;if(!n.id){const s=(i=(await t.mutate({mutation:Va,errorPolicy:"all",fetchPolicy:"no-cache",variables:{details:{emailAddress:e}}})).data)==null?void 0:i.customerCreate;if(!s)throw new Error("Unable to create customer.");return this.storeCustomer(s),this.customer=s,{customer:s,isAuthenticated:!1}}this.storeCustomer(n);const a=await this.authenticateCustomerId(n.id);return{customer:this.customer||n,isAuthenticated:a}}async authenticateCustomerId(e){var o;const t=x.getShadowGraphqlClient(),A=P.getMap("customerTokens");if(!(A!=null&&A.has(e)))return!1;const n=A.get(e);if(!n)return!1;const i=(o=(await t.mutate({mutation:Wa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{loginToken:n}})).data)==null?void 0:o.customerAuthenticate;return i?(this.storeCustomer(i),Dt(n),this.customer=i,!0):!1}async generateVerificationCode(e){await x.getShadowGraphqlClient().mutate({mutation:Xa,variables:{emailAddress:e}})}async verifyCode(e,t){var a,i;const n=(a=(await x.getShadowGraphqlClient().mutate({mutation:qa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:e,verificationCode:t}})).data)==null?void 0:a.customerVerifyCode;if(n!=null&&n.loginToken){if(!((i=n.partner)!=null&&i.id))throw new Error(`Unable to find customer: ${e}`);const o=P.getMap("customerTokens")||new Map;return o.set(n.id,n.loginToken),P.setMap("customerTokens",o),this.storeCustomer(n),Dt(n.loginToken),this.customer={...n,loginToken:void 0},!0}return!1}async getNewBundle(e,t,A){var r,g,d;const a=(d=(await x.getShadowGraphqlClient().mutate({mutation:Qa(((g=(r=A==null?void 0:A.graphql)==null?void 0:r.productCollection)==null?void 0:g.eagerFetchProducts)||!1),variables:{collectionId:e,initialMetadata:t?Object.entries(t).map((B,C)=>({key:B[0],value:B[1]})):void 0},fetchPolicy:"no-cache"})).data)==null?void 0:d.bundleCreate;if(!(a!=null&&a.id))throw new Error("Unable to create bundle");const i=P.getMap("bundlePartnerIds")||new Map;i.set(a.id,a.partner.id),P.setMap("bundlePartnerIds",i);const o=P.getMap("bundleOwnerIds")||new Map;o.set(a.id,a.bundleOwnerId),P.setMap("bundleOwnerIds",o);const s=new pA(this,a,void 0,void 0,a.bundleOwnerId);return await s.getInitializationPromise(),s}async getExistingBundle(e,t,A,n){var h,Q,m,M,p,f,D,I,S;const a=P.getMap("bundleOwnerIds"),i=a==null?void 0:a.get(e),s=((h=Object.entries(localStorage).find(([y,Y])=>y.startsWith("CognitoIdentityServiceProvider")&&y.endsWith("idToken")))==null?void 0:h[0])||"",r=localStorage.getItem(s),g={};r&&!tt(r)&&(g.Authorization=`Bearer ${r}`);const d={bundleOwnerId:i,...g,...(Q=n==null?void 0:n.graphql)==null?void 0:Q.additionalHeaders},B=await x.getShadowGraphqlClient().query({query:Ea(((M=(m=n==null?void 0:n.graphql)==null?void 0:m.productCollection)==null?void 0:M.eagerFetchProducts)||!1),variables:{id:e},fetchPolicy:"no-cache",context:{headers:d}});if(!((p=B.data)!=null&&p.bundles)||((f=B.data)==null?void 0:f.bundles.length)===0||!((D=B.data)!=null&&D.bundles[0]))throw new Error(`Unable to find bundle: ${e}`);const C=(I=B.data)==null?void 0:I.bundles[0],w=P.getMap("bundlePartnerIds")||new Map;w.set(C.id,C.partner.id),P.setMap("bundlePartnerIds",w);const u=new pA(this,C,t,A,i,{additionalHeaders:(S=n==null?void 0:n.graphql)==null?void 0:S.additionalHeaders});return await u.getInitializationPromise(),u}async getBundleStakeholders(){var a;if(!this.customer)throw new Error("Customer not authenticated.");const e=await x.getShadowGraphqlClient().query({query:ua,variables:{id:this.customer.id},fetchPolicy:"no-cache"});if(!((a=e.data)!=null&&a.customers)||e.data.customers.length===0)throw new Error("Unable to find customer.");const A=e.data.customers[0].bundleStakeholders||[],n=P.getMap("bundlePartnerIds")||new Map;return A.forEach(i=>{var o,s;(o=i.bundle)!=null&&o.id&&((s=i.bundle.partner)!=null&&s.id)&&n.set(i.bundle.id,i.bundle.partner.id)}),P.setMap("bundlePartnerIds",n),A}async getWorkflowExperience(e,t,A,n){var d,B,C,w,u;if(!n)return await this.getWorkflowExperienceDeprecated(e,t,A);const a=async()=>{var Q,m,M;const h=x.getShadowGraphqlClient();if(n.type==="transaction"){const{transactionId:p,readOnly:f}=n,D=await h.query({query:Se,variables:{ids:[p]},errorPolicy:"all",fetchPolicy:"no-cache"});if(!((Q=D.data)!=null&&Q.transactions)||D.data.transactions.length===0)throw new U("Existing transaction not found.");const I=(m=D.data)==null?void 0:m.transactions[0];if(!I.workflowId)throw new U("Existing transaction has no workflow ID.");const S=await Ie(I.workflowId);if(!I.product)throw new U("Failed to load transaction, product not available.");return!this.activeIntegration&&((M=I.integrationProduct)!=null&&M.integration)&&(this.activeIntegration=Promise.resolve(I.integrationProduct.integration)),{transaction:I,workflow:S,readOnly:f}}if(n.type==="integration"||n.type==="external"){const p=async()=>{const S=n.type==="integration"?{integrationProductId:n.integrationProductId}:{externalIntegrationId:n.externalIntegrationId,externalProductId:n.externalProductId},y=await h.mutate({mutation:vt,variables:{...S,workflowId:n.workflowId,designName:n.designName,claim:!0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!y.data||!y.data.transactionCreate)throw new U("Failed to create transaction!");const Y=y.data.transactionCreate;if(!Y.product)throw new U("Failed to create transaction, product not available.");return Y},f=Ie(n.workflowId,n==null?void 0:n.graphql),[D,I]=await Promise.all([p(),f]);return{transaction:D,workflow:I}}throw new U("No workflow ID provided.")},{transaction:i,workflow:o,readOnly:s}=await a();this.currencyCode=(d=i.product.partner)==null?void 0:d.currencyCode;const r={product:i.product,transaction:i,layouts:[],singleVariantsRenderable:(B=n==null?void 0:n.workflowConfiguration)==null?void 0:B.singleVariantsRenderable,stateMutationFunc:s?async()=>{throw new G("State mutation is forbidden in read only mode!")}:async h=>{const m=(P.getMap("transactionOwnerIds")||new Map).get(i.id)||void 0;return this.updateTransactionState({...h,context:{transactionOwnerId:m}})},readOnly:s,workflow:o};if(n.type==="transaction"&&i.workflowState){const h=JSON.parse(i.workflowState);r.layouts=Object.values(h.layouts).map(Q=>Q.layout),await l.rehydrateSerializedLayout(h),await ce(h),r.reloadedState=h}else if(!s&&n.workflowState){const h=JSON.parse(n.workflowState);r.layouts=Object.values(h.layouts).map(Q=>Q.layout),await l.rehydrateSerializedLayout(h),await ce(h),r.reloadedState=h}else r.layouts=gt(r.transaction,r.workflow);if(r.renderableContextService=new ve(r.layouts),n.previewService?(r.previewService=n.previewService,(C=r.product)!=null&&C.modelUrl&&(r.modelContainer=r.previewService.loadModel({model:r.product.modelUrl,contextService:r.renderableContextService}))):(r.previewService=A&&A(o),(w=r.product)!=null&&w.modelUrl&&(r.modelContainer=(u=r.previewService)==null?void 0:u.loadModel({model:r.product.modelUrl,contextService:r.renderableContextService}))),n.type!=="transaction"){const h=P.getMap("transactionOwnerIds")||new Map;h.set(i.id,i.transactionOwnerId),P.setMap("transactionOwnerIds",h)}else r.isReloadedTransaction=!0;this.initialized=!0,this.experienceOptions=r;const g=new De(this,r);return await g.getWorkflowManager().getInitializationPromise(),n.type!=="transaction"&&this.customer&&await g.attachCustomerDetails({email:this.customer.emailAddress}),g}async getWorkflowExperiences(e,t){if(e.length===0)throw new U("No options provided!");const A=x.getShadowGraphqlClient(),n=async f=>{var y,Y,v;if(f.length===0)return[];const D=f.map(N=>N.option.transactionId),I=await A.query({query:Se,variables:{ids:D},errorPolicy:"all",fetchPolicy:"no-cache"}),S=I.data.transactions;if(S.length!==f.length){const N=((Y=(y=I.errors)==null?void 0:y[0])==null?void 0:Y.message)||"Unknown error";throw new U(`Not all transactions were found: ${N}`)}return!this.activeIntegration&&((v=S[0].integrationProduct)!=null&&v.integration)&&(this.activeIntegration=Promise.resolve(S[0].integrationProduct.integration)),S.map((N,H)=>{var J;return{transaction:N,workflowId:N.workflowId,readOnly:((J=f.find(b=>b.option.transactionId===N.id))==null?void 0:J.option.readOnly)??!1,index:f[H].index}})},a=async f=>{var S,y,Y;if(f.length===0)return[];const D=await A.mutate({mutation:An,variables:{inputs:f.map(v=>({integrationProductId:v.option.type==="integration"?v.option.integrationProductId:void 0,externalIntegrationId:v.option.type==="external"?v.option.externalIntegrationId:void 0,externalProductId:v.option.type==="external"?v.option.externalProductId:void 0,workflowId:v.option.workflowId,designName:v.option.designName,claim:!0})),marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache"}),I=(S=D.data)==null?void 0:S.transactionCreateMany;if(!I||I.length===0){const v=((Y=(y=D.errors)==null?void 0:y[0])==null?void 0:Y.message)||"Unknown error";throw new U(`Failed to create transactions: ${v}`)}return I.map((v,N)=>({transaction:v,workflowId:v.workflowId,readOnly:!1,index:f[N].index}))},i=e.map((f,D)=>({option:f,index:D})),o=i.filter(f=>f.option.type==="transaction"),s=i.filter(f=>f.option.type==="integration"||f.option.type==="external"),r=ht(o,10),g=ht(s,10),d=(await Promise.all([...r.map(n),...g.map(a)])).flat(),B=[...new Set(d.map(f=>f.workflowId))],C=await ct(B,t),w=new Map(C.map(f=>[f.id,f])),u=P.getMap("transactionOwnerIds")||new Map,h=d.map(async f=>{var J;const{transaction:D,workflowId:I,readOnly:S,index:y}=f,Y=w.get(I),v=e[y];!u.get(D.id)&&D.transactionOwnerId&&u.set(D.id,D.transactionOwnerId);const N=u.get(D.id)||void 0,H={product:D.product,transaction:D,layouts:[],singleVariantsRenderable:(J=v==null?void 0:v.workflowConfiguration)==null?void 0:J.singleVariantsRenderable,stateMutationFunc:S?async()=>{throw new G("State mutation is forbidden in read only mode!")}:async b=>this.updateTransactionState({...b,context:{transactionOwnerId:N}}),readOnly:S,workflow:Y,isReloadedTransaction:v.type==="transaction"};if(v.type==="transaction"&&D.workflowState){const b=JSON.parse(D.workflowState);H.layouts=Object.values(b.layouts||{}).map(V=>V.layout),await l.rehydrateSerializedLayout(b),await ce(b),H.reloadedState=b}else if(!S&&v.workflowState){const b=JSON.parse(v.workflowState);H.layouts=Object.values(b.layouts||{}).map(V=>V.layout),await l.rehydrateSerializedLayout(b),await ce(b),H.reloadedState=b}else H.layouts=gt(H.transaction,H.workflow);return H.renderableContextService=new ve(H.layouts),H.delayWorkflowStateSync=!0,this.initialized=!0,this.experienceOptions=H,{experienceOptions:H,index:y,options:v}});P.setMap("transactionOwnerIds",u);const M=(await Promise.all(h)).sort((f,D)=>f.index-D.index).map(async f=>{const{experienceOptions:D,options:I}=f,S=new De(this,D);return await S.getWorkflowManager().getInitializationPromise(),I.type!=="transaction"&&this.customer&&await S.attachCustomerDetails({email:this.customer.emailAddress}),S}),p=await Promise.all(M);return p.forEach(f=>f.getWorkflowManager().setWorkflowStateSyncEnabled(!0)),p}async initFromIntegrationProduct(e){var i;if(e==="")throw new U("No integration product ID provided.");const A=await x.getShadowGraphqlClient().mutate({mutation:vt,variables:{integrationProductId:e,claim:!0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!A.data||!A.data.transactionCreate)throw new U("Failed to create transaction!");const n=A.data.transactionCreate;if(!n.product)throw new U("Failed to create transaction, product not available.");this.currencyCode=(i=n.product.partner)==null?void 0:i.currencyCode;const a=P.getMap("transactionOwnerIds")||new Map;a.set(n.id,n.transactionOwnerId),P.setMap("transactionOwnerIds",a),this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:async o=>this.updateTransactionState({...o,context:{transactionOwnerId:n.transactionOwnerId}})},this.initialized=!0}async initFromTransaction(e,t=!1){var o,s,r,g;if(e==="")throw new U("No transaction ID provided.");const A=x.getShadowGraphqlClient(),n=async()=>{var C,w;const B=(C=(await A.query({query:Se,variables:{ids:[e]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:C.transactions[0];if(!B)throw new U("Failed to read transaction.");if(!B.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(w=B.product.partner)==null?void 0:w.currencyCode,this.experienceOptions={product:B.product,transaction:B,layouts:[],stateMutationFunc:async()=>{throw new G("State mutation is forbidden in read only mode!")},readOnly:t},this.initialized=!0};if(t)return await n();const a=P.getMap("transactionOwnerIds")||new Map,i=a.get(e);if(i){const B=(o=(await A.query({query:Se,variables:{ids:[e]},errorPolicy:"all"})).data)==null?void 0:o.transactions[0];if(!B)throw new U("Failed to read transaction.");if(!B.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(s=B.product.partner)==null?void 0:s.currencyCode,this.experienceOptions={product:B.product,transaction:B,layouts:[],stateMutationFunc:async C=>this.updateTransactionState({...C,context:{transactionOwnerId:i}}),readOnly:t},this.initialized=!0;return}try{const B=(r=(await A.mutate({mutation:nn,variables:{id:e},errorPolicy:"all"})).data)==null?void 0:r.transactionClaim;if(!B)throw new U("Failed to read transaction.");if(!B.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(g=B.product.partner)==null?void 0:g.currencyCode,B.transactionOwnerId&&(a.set(B.id,B.transactionOwnerId),P.setMap("transactionOwnerIds",a)),this.experienceOptions={product:B.product,transaction:B,layouts:[],stateMutationFunc:async C=>this.updateTransactionState({...C,context:{transactionOwnerId:B.transactionOwnerId}}),readOnly:t},this.initialized=!0}catch{throw new U("Attempted to access a transaction that isn't available.")}}async getWorkflowExperienceDeprecated(e,t,A){var n,a,i,o;if(!this.initialized||!this.experienceOptions)throw new U("Cannot launch experience: Not initialized.");if(this.experienceOptions.transaction.workflowId){const s=await Ie(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=s,this.experienceOptions.transaction.workflowState){const g=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(g.layouts).map(d=>d.layout),await l.rehydrateSerializedLayout(g),await ce(g),this.experienceOptions.reloadedState=g}this.experienceOptions.previewService=A&&A(s),this.experienceOptions.renderableContextService=new ve(this.experienceOptions.layouts),(n=this.experienceOptions.product)!=null&&n.modelUrl&&(this.experienceOptions.modelContainer=(a=this.experienceOptions.previewService)==null?void 0:a.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const r=new De(this,this.experienceOptions);return await r.getWorkflowManager().getInitializationPromise(),r}if(e){const r=(P.getMap("transactionOwnerIds")||new Map).get(this.experienceOptions.transaction.id),g=x.getShadowGraphqlClient().mutate({mutation:on,variables:{workflowId:e,id:this.experienceOptions.transaction.id},context:{transactionOwnerId:r}}),d=Ie(e);if(await Promise.all([g,d]),this.experienceOptions.workflow=await d,t){const C=JSON.parse(t);this.experienceOptions.layouts=Object.values(C.layouts).map(w=>w.layout),await l.rehydrateSerializedLayout(C),await ce(C),this.experienceOptions.reloadedState=C}else this.experienceOptions.layouts=gt(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(await d),this.experienceOptions.renderableContextService=new ve(this.experienceOptions.layouts),(i=this.experienceOptions.product)!=null&&i.modelUrl&&(this.experienceOptions.modelContainer=(o=this.experienceOptions.previewService)==null?void 0:o.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const B=new De(this,this.experienceOptions);return await B.getWorkflowManager().getInitializationPromise(),B}throw new U("No workflow ID provided.")}getPreviewService(){var e;return(e=this.experienceOptions)==null?void 0:e.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new U("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new U("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}storeCustomer(e){const t=P.getMap("partnerCustomerIds")||new Map;t.set(e.partner.id,e.id),P.setMap("partnerCustomerIds",t)}async getIntegrationProductById(e){var a,i;const n=(a=(await x.getShadowGraphqlClient().query({query:cn,variables:{ids:[e]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:a.integrationProducts;if(!n||n.length===0||!((i=n[0])!=null&&i.id))throw new Error("Integration product not found.");return new rt(n[0])}async getIntegrationProductFromExternalIds(e,t){var i;const a=(i=(await x.getShadowGraphqlClient().query({query:gn,variables:{externalProductId:t,externalIntegrationId:e},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:i.integrationProductFromExternalIds;if(!(a!=null&&a.id))throw new Error("Integration product not found.");return new rt(a)}async getIntegrationProduct(e){return e.type==="integration"?this.getIntegrationProductById(e.integrationProductId):this.getIntegrationProductFromExternalIds(e.externalIntegrationId,e.externalProductId)}async getShareActionsForTransaction(e){const A=(P.getMap("transactionOwnerIds")||new Map).get(e)||void 0,n=await x.getShadowGraphqlClient().query({query:rn,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:e},context:{transactionOwnerId:A}});if(!n.data.transactions||n.data.transactions.length!==1)throw new Error(`Failed to fetch share actions for transaction: ${e}`);return n.data.transactions[0].transactionShareActions}}class ei{getClient(){return this.client??{}}getWorkflowExperience(){return{}}setClient(e){this.client=e}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}async reset(){}updateStateWithServer(e){}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(e){}addPoller(e){}addConfirmCallback(e){}addEditedCallback(e){}addElementsCallback(e){}addInformationResultCallback(e){}addInitCallback(e){}addMakingAdjustmentsCallback(e){}addMandatoryCallback(e){}addMetadataCallback(e){}addSelectionCallback(e){}addStepSpecificStorageCallback(e,t){}addStorageCallback(e){}getCommandDispatcher(){return e=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getModelContainer(){}getProfanities(){return[]}getRegionElements(e){return[]}getSerializedStep(e,t){}getStepSpecificServices(e){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(e){}markUpdateCompleted(e){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(e){}setEditedStatus(e,t){}setInformationResults(e){}setMandatoryFulfilled(e,t){}async setSelectionsAndElements(e,t,A){}toggleDesignConfirmed(){}updateMetadata(e,t){}async updateStorage(e,t){}injectIntoPreviewService(e){return Promise.resolve()}ejectFromPreviewService(){}setWorkflowStateSyncEnabled(e){}async updateTransactionShareActions(){}addValidationCallback(e){}setStepError(e,t,A){}getStepErrors(e){}getValidationErrors(){return{steps:new Map}}async updateTransactionStakeholders(){}}var YA=(c=>(c.SelectFrame="SelectFrame",c.SelectImage="SelectImage",c.Position="Position",c))(YA||{});class PA extends K{constructor(e,t){var A;super(e,t),this.frameService=(A=this.manager.getStepSpecificServices(this.getId()))==null?void 0:A.frameService}selectVariant(e){const t=this.manager.getRegionElements(this.step.stepName);return q.selectVariant(this.step,e.getResource(),t,this.manager,A=>this.setUpdateState(A))}onFrameDataChanged(e){this.frameService&&this.frameService.onFrameDataChanged(t=>{t&&e(t)})}async selectImage(e,t=!0,A=!0){var n;if(await q.selectImage(this.step,e,this.manager,A),t){const a=((n=this.manager.getStepStorage(this.step.stepName))==null?void 0:n.framePatternData)||{};this.manager.updateStorage(this.step.stepName,{framePatternData:{...a,originalAssetKey:e.key,backgroundRemovedAssetKey:void 0,useOriginalAsset:void 0}})}}async canUseBackgroundRemover(){return this.manager.getClient().canUseAddon(Me.BackgroundRemover)}async canRemoveBackground(){var e,t,A,n;return await this.canUseBackgroundRemover()&&this.hasOriginalImageSelection()&&!!((t=(e=this.frameService)==null?void 0:e.getImageData())!=null&&t.src)&&!((n=(A=this.frameService)==null?void 0:A.getImageData())!=null&&n.svg)}async removeBackgroundFromImageSelection(e=!0){var a;if(!await this.canUseBackgroundRemover())throw new Error("The current Integration does not have access to the Background Remover. Please call canUseBackgroundRemover to ensure you disable this feature when appropriate.");const t=await this.getOriginalImageSelection();if(!t)throw new Error("You must supply an image selection before attempting to remove the background.");const A=await k.removeBackgroundFromAsset(t);e&&await q.selectImage(this.step,A,this.manager,!1);const n=((a=this.manager.getStepStorage(this.step.stepName))==null?void 0:a.framePatternData)||{};return this.manager.updateStorage(this.step.stepName,{framePatternData:{...n,backgroundRemovedAssetKey:A.key,useOriginalAsset:!e}}),A}changeColors(e){q.changeColors(this.step,this.manager,e)}getImageData(){if(this.frameService)return this.frameService.getImageData()}async getColorOption(){return this.step.data.colorOption}getAvailableColors(){return this.step.data.colorPickerEnabled?q.availableColors(this.step,this.manager):Promise.resolve([])}isColorPickerEnabled(){return this.step.data.colorPickerEnabled??!1}async getOriginalImageColors(){const e=this.getImageData();return e!=null&&e.svg?(await l.generateSVGWithUnknownColors(e.svg)).colors:void 0}getMaxAllowedColors(){return this.step.data.maxColors}getUniqueColorCount(){return q.getUniqueColorCount(this.step,this.manager)}getCurrentFrameStep(e,t,A,n){return n&&n.length>1&&e===void 0?"SelectFrame":t||A||this.getImageData()?"Position":"SelectImage"}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasOverlayImageUrl(){return this.step.data.overlayImageUrl}getWhitelistedExtensions(){return[...this.step.data.whitelistedExtensions,...this.step.data.whitelistedExtensions.includes(".jpg")?[".jpeg"]:[]]}async getOriginalImageSelection(){var t,A;const e=(A=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)==null?void 0:A.originalAssetKey;if(e)return k.getLocalOrFromServer(e)}async getBackgroundRemovedImageSelection(){var t,A;const e=(A=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)==null?void 0:A.backgroundRemovedAssetKey;if(e)return k.getLocalOrFromServer(e)}hasOriginalImageSelection(){var e,t;return!!((t=(e=this.manager.getStepStorage(this.step.stepName))==null?void 0:e.framePatternData)!=null&&t.originalAssetKey)}hasBackgroundRemovedImageSelection(){var e,t;return!!((t=(e=this.getFrameStepStorage())==null?void 0:e.framePatternData)!=null&&t.backgroundRemovedAssetKey)}getUseOriginalImageSelection(){var e,t;return((t=(e=this.getFrameStepStorage())==null?void 0:e.framePatternData)==null?void 0:t.useOriginalAsset)??!1}async setUseOriginalImageSelection(e){var n;const t=((n=this.getFrameStepStorage())==null?void 0:n.framePatternData)||{};if(t.useOriginalAsset===e)return;const A=await this.getOriginalImageSelection();if(!A)throw new Error("You must provide an image selection before calling setUseOriginalImageSelection");if(e)await this.selectImage(A,!1,!1);else{const a=await this.getBackgroundRemovedImageSelection();if(!a)throw new Error("You must call removeBackgroundFromImageSelection before attempting to apply the image.");await this.selectImage(a,!1,!1)}this.manager.updateStorage(this.step.stepName,{framePatternData:{...t,useOriginalAsset:e}})}getFrameStepStorage(){return this.manager.getStepStorage(this.step.stepName)}}Object.defineProperty(E,"AspectType",{enumerable:!0,get:()=>l.AspectType}),Object.defineProperty(E,"AssetType",{enumerable:!0,get:()=>l.AssetType}),Object.defineProperty(E,"BringForwardCommand",{enumerable:!0,get:()=>l.BringForwardCommand}),Object.defineProperty(E,"BringToBackCommand",{enumerable:!0,get:()=>l.BringToBackCommand}),Object.defineProperty(E,"BringToFrontCommand",{enumerable:!0,get:()=>l.BringToFrontCommand}),Object.defineProperty(E,"CanvasCommand",{enumerable:!0,get:()=>l.CanvasCommand}),Object.defineProperty(E,"CommandContext",{enumerable:!0,get:()=>l.CommandContext}),Object.defineProperty(E,"CreateElementCommand",{enumerable:!0,get:()=>l.CreateElementCommand}),Object.defineProperty(E,"CreateLayoutCommand",{enumerable:!0,get:()=>l.CreateLayoutCommand}),Object.defineProperty(E,"DeleteElementCommand",{enumerable:!0,get:()=>l.DeleteElementCommand}),Object.defineProperty(E,"FontAlignmentCommand",{enumerable:!0,get:()=>l.FontAlignmentCommand}),Object.defineProperty(E,"FontColorCommand",{enumerable:!0,get:()=>l.FontColorCommand}),Object.defineProperty(E,"FontSizeCommand",{enumerable:!0,get:()=>l.FontSizeCommand}),Object.defineProperty(E,"FontSourceCommand",{enumerable:!0,get:()=>l.FontSourceCommand}),Object.defineProperty(E,"GroupCommand",{enumerable:!0,get:()=>l.GroupCommand}),Object.defineProperty(E,"LayoutElementFactory",{enumerable:!0,get:()=>l.LayoutElementFactory}),Object.defineProperty(E,"LayoutElementType",{enumerable:!0,get:()=>l.LayoutElementType}),Object.defineProperty(E,"MoveCommand",{enumerable:!0,get:()=>l.MoveCommand}),Object.defineProperty(E,"ResizeCommand",{enumerable:!0,get:()=>l.ResizeCommand}),Object.defineProperty(E,"RotateCommand",{enumerable:!0,get:()=>l.RotateCommand}),Object.defineProperty(E,"SendBackwardsCommand",{enumerable:!0,get:()=>l.SendBackwardsCommand}),Object.defineProperty(E,"StepAspectType",{enumerable:!0,get:()=>l.StepAspectType}),Object.defineProperty(E,"StepType",{enumerable:!0,get:()=>l.StepType}),Object.defineProperty(E,"TextChangeCommand",{enumerable:!0,get:()=>l.TextChangeCommand}),Object.defineProperty(E,"UnitOfMeasurement",{enumerable:!0,get:()=>l.UnitOfMeasurement}),Object.defineProperty(E,"UpdateImageSourceCommand",{enumerable:!0,get:()=>l.UpdateImageSourceCommand}),Object.defineProperty(E,"dataUrlFromExternalUrl",{enumerable:!0,get:()=>l.dataUrlFromExternalUrl}),Object.defineProperty(E,"determineCorrectFontSizeAndLines",{enumerable:!0,get:()=>l.determineCorrectFontSizeAndLines}),Object.defineProperty(E,"findElement",{enumerable:!0,get:()=>l.findElement}),Object.defineProperty(E,"frameDataCache",{enumerable:!0,get:()=>l.frameDataCache}),Object.defineProperty(E,"generate",{enumerable:!0,get:()=>l.generate}),Object.defineProperty(E,"generateSVGWithUnknownColors",{enumerable:!0,get:()=>l.generateSVGWithUnknownColors}),Object.defineProperty(E,"getAttributesFromArrayBuffer",{enumerable:!0,get:()=>l.getAttributesFromArrayBuffer}),Object.defineProperty(E,"getAxisAlignedBoundingBox",{enumerable:!0,get:()=>l.getAxisAlignedBoundingBox}),Object.defineProperty(E,"getFrameData",{enumerable:!0,get:()=>l.getFrameData}),Object.defineProperty(E,"getSvgElement",{enumerable:!0,get:()=>l.getSvgElement}),Object.defineProperty(E,"loadFont",{enumerable:!0,get:()=>l.loadFont}),Object.defineProperty(E,"patternImageDataCache",{enumerable:!0,get:()=>l.patternImageDataCache}),Object.defineProperty(E,"registerFetchImplementation",{enumerable:!0,get:()=>l.registerFetchImplementation}),Object.defineProperty(E,"registerWindowImplementation",{enumerable:!0,get:()=>l.registerWindowImplementation}),Object.defineProperty(E,"rehydrateSerializedLayout",{enumerable:!0,get:()=>l.rehydrateSerializedLayout}),Object.defineProperty(E,"setCanvasModule",{enumerable:!0,get:()=>l.setCanvasModule}),Object.defineProperty(E,"svgToDataUrl",{enumerable:!0,get:()=>l.svgToDataUrl}),E.AddonHandle=Me,E.ArrayInput=Ga,E.AssetNotFoundError=X,E.CollectionProduct=He,E.ColorOptionGlobalPropertyHandle=at,E.ConversionDataType=xt,E.ConversionLocation=Pt,E.DigitalContentStepHandle=cA,E.FileUploadGlobalPropertyHandle=mA,E.FlowExecutionNodeResult=fe,E.FlowExecutionResult=MA,E.FlowService=FA,E.FrameService=bt,E.FrameStep=YA,E.FrameStepHandle=PA,E.GlobalPropertyHandle=Re,E.IllustrationStepHandle=tA,E.InformationMessageType=se,E.InformationStepHandle=rA,E.IntegrationProduct=rt,E.IntegrationType=yt,E.LayoutNotFoundError=T,E.MaterialStepHandle=AA,E.MisconfigurationError=de,E.MockWorkflowManager=ei,E.ModelStepHandle=nA,E.ModuleStepHandle=gA,E.ObjectInput=st,E.ObjectInputType=SA,E.OptionGlobalPropertyHandle=nt,E.OptionNotFoundError=Be,E.ParseError=_,E.PictureStepHandle=aA,E.ProductCameraRig=Yt,E.ProductCollection=DA,E.ProductWorkflow=re,E.PromiseCache=te,E.PromiseQueue=Oe,E.QuestionStepHandle=iA,E.QueueablePromise=Je,E.ResourceNotFoundError=$,E.ShapeStepHandle=oA,E.SpiffCommerceClient=yA,E.StakeholderType=Ee,E.StepHandle=K,E.TextGlobalPropertyHandle=QA,E.TextInput=ka,E.TextStepHandle=sA,E.TransactionShareActionType=St,E.Transform=IA,E.TransformCollection=fA,E.UnhandledBehaviorError=G,E.Variant=W,E.WorkflowExperienceEventType=wA,E.WorkflowExperienceImpl=De,E.assetService=k,E.browserColorToHex=zt,E.createDesign=CA,E.designService=Ne,E.digitalContentStepService=Le,E.findPmsColors=Dn,E.frameStepService=q,E.generateCommands=EA,E.generateStateFromDesignInputSteps=Ca,E.getBoundedOffsets=Gt,E.getWorkflow=Ie,E.getWorkflows=ct,E.graphQlManager=x,E.illustrationStepService=Qe,E.matchHexToPms=un,E.materialStepService=Ke,E.modelStepService=je,E.moduleStepService=Ve,E.optionService=L,E.persistenceService=P,E.pictureStepService=We,E.pmsToRgb=hn,E.questionStepService=Xe,E.rgbToPms=Lt,E.setBearerAuthenticationToken=It,E.shapeStepService=oe,E.shortenUrl=Jt,E.spiffCoreConfiguration=j,E.stepAspectValuesToDesignInputSteps=da,E.textStepService=z,E.toast=jt,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})});
3167
+ `,ce=async c=>{var e;for(const t in c.layouts){const A=c.layouts[t].elements.filter(a=>a.type===l.LayoutElementType.Illustration);for(let a=0;a<A.length;++a){const i=A[a];i.src&&i.svg&&(i.cachedObjectURL=await l.svgObjectURL(i.svg))}const n=c.layouts[t].elements.filter(a=>a.type===l.LayoutElementType.Textbox);for(let a=0;a<n.length;++a){const i=n[a];(e=i.fontData)!=null&&e.assetUrl&&await l.loadFont(i.fontData.assetUrl)}}},Za=async(c,e)=>{var n;const t=await x.getShadowGraphqlClient().query({query:La(((n=e==null?void 0:e.assets)==null?void 0:n.metadata)||!1),errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:c}}),A=t.data.workflows;if(A===void 0||A.length!==c.length)throw new Error(`Unable to read workflows: ${t.errors??"Length mismatch in response"}`);return A.forEach(a=>{a.steps.forEach(i=>{var o,s,r;delete i.data.__typename,(o=i.option)!=null&&o.id&&((s=i.option.defaultVariant)!=null&&s.asset&&k.cacheAsset(i.option.defaultVariant.asset),i.option.colorProfile&&k.cacheAsset(i.option.colorProfile),(r=i.option.variants)==null||r.forEach(g=>{g.asset&&k.cacheAsset(g.asset),g.displayImage&&k.cacheAsset(g.displayImage),g.thumbnail&&k.cacheAsset(g.thumbnail),g.material&&k.cacheMaterial(g.material)}),te.set({id:i.option.id},Promise.resolve(i.option)))}),a.finalizeStepConfig||(a.finalizeStepConfig={}),a.finalizeStepConfig.termsMarkdown=a.partner.termsMarkdown}),A},$a=async(c,e)=>{const A=(await e).find(n=>n.id===c);if(!A)throw new Error(`Workflow not found: ${c}`);return A},ct=async(c,e)=>{const t=c.map(o=>te.get({id:o,options:e})),A=c.filter((o,s)=>t[s]===void 0);if(A.length===0)return Promise.all(t);const n=Za(A,e),a=A.map(o=>te.set({id:o,options:e},$a(o,n))),i=t.filter(o=>o!==void 0);return await Promise.all(i.concat(a))},Ie=async(c,e)=>(await ct([c],e))[0],_a=c=>c.sort((e,t)=>e.index-t.index).map(e=>({id:l.generate(),panelId:e.name,name:e.name,index:e.index,createdAt:new Date,updatedAt:new Date,transparentBackground:e.transparentBackground,height:e.height,width:e.width,previewRegion:e.previewRegion,useEditableArea:e.useEditableArea,editableArea:e.editableArea})),gt=(c,e)=>{const t=c.workflowState,A=t?JSON.parse(t):void 0;return A?Object.values(A.layouts).map(n=>n.layout):_a(e.panels)};class yA{constructor(e){this.activeIntegration=void 0,this.updateTransactionState=async t=>{try{return x.getShadowGraphqlClient().mutate({...t,mutation:an})}catch(A){throw console.error(A),new U("Critical - Unable to synchronize workflow state with server.")}},this.initialized=!1,this.options=e,this.options.applicationKey&&UA(this.options.applicationKey),console.debug("------------------------"),console.debug("Spiff Commerce Core SDK"),console.debug("Version: 22.4.7"),console.debug(`Application Key Provided: ${!!this.options.applicationKey}`),console.debug("------------------------")}configureUrls(e,t,A){j.setHubUrl(e),j.setServerUrl(t),j.setServicesApiUrl(A),this.options.applicationKey&&this.getIntegration()}configure(e){j.setHubUrl(e.hubUrl),j.setServerUrl(e.serverUrl),j.setServicesApiUrl(e.servicesApiUrl),this.marketplaceThemeInstallId=e.marketplaceThemeInstallId,this.marketplaceThemeInstallConfigurationId=e.marketplaceThemeInstallConfigurationId,e.bearerAuthenticationToken&&It(e.bearerAuthenticationToken),this.options.applicationKey&&this.getIntegration()}getAssetManager(){return k}getCurrencyCode(){if(this.currencyCode===void 0)throw new Error("No currency code set.");return this.currencyCode}getFlowService(){if(!kA())throw new Error("Application key required to use Flow Service.");return new FA}async getIntegration(){if(this.activeIntegration)return this.activeIntegration;if(!this.options.applicationKey)throw new Error("Cannot get current Integration without specifying an Application Key.");const e=async()=>(await x.getShadowGraphqlClient().query({query:tn,errorPolicy:"all",fetchPolicy:"no-cache"})).data.currentIntegration;return this.activeIntegration=e(),this.activeIntegration}async canUseAddon(e){var t;try{return((t=(await this.getIntegration()).partner.activeAddons)==null?void 0:t.includes(e))??!1}catch(A){return console.error(A),!1}}async authenticateBundleFromLocalStorage(e){var n,a;const t=P.getMap("bundleOwnerIds");if(t!=null&&t.has(e))return Promise.resolve({success:!0,stakeholderType:Ee.Owner});const A=P.getMap("bundlePartnerIds")||new Map;if(A.has(e)){const i=A.get(e),s=(P.getMap("partnerCustomerIds")||new Map).get(i);if(s&&await this.authenticateCustomerId(s)){const g=(a=(n=this.customer)==null?void 0:n.bundleStakeholders)==null?void 0:a.find(d=>{var B;return((B=d.bundle)==null?void 0:B.id)===e});if(g)return Promise.resolve({success:!0,stakeholderType:g.type})}}return Promise.resolve({success:!1})}async authenticateTransactionFromLocalStorage(e){var g,d,B,C,w,u;const t=x.getShadowGraphqlClient(),A=await t.query({query:za,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:e}});if(!A.data.transactions||A.data.transactions.length===0)throw new Error(`Transaction not found: ${e}`);const n=A.data.transactions[0];if(!((d=(g=n.product)==null?void 0:g.partner)==null?void 0:d.id))throw new Error(`Unable to read transaction: ${e}`);if(n.isOrdered)return Promise.resolve({success:!1,transactionReadOnly:!0});const i=P.getMap("transactionOwnerIds");if(i!=null&&i.has(e))return Promise.resolve({success:!0,stakeholderType:Ee.Owner});const o=P.getMap("transactionCustomerIds");if(o!=null&&o.has(e)){const h=o.get(e);if(h&&await this.authenticateCustomerId(h)){const m=((C=(B=this.customer)==null?void 0:B.bundleStakeholders)==null?void 0:C.find(M=>{var p,f;return(f=(p=M.bundle)==null?void 0:p.transactions)==null?void 0:f.some(D=>D.id===e)}))||((u=(w=this.customer)==null?void 0:w.stakeholders)==null?void 0:u.find(M=>{var p;return((p=M.transaction)==null?void 0:p.id)===e}));if(m)return Promise.resolve({success:!0,stakeholderType:m.type})}}const r=(await t.query({query:Ka,errorPolicy:"all",variables:{id:n.workflowId}})).data.workflow;if(!r)throw new Error(`Unable to read workflow: ${n.workflowId}`);return Promise.resolve({success:!1,theme:r.overrideTheme,customLogoLink:n.customLogoLink})}clearCustomer(){this.customer=void 0}clearCustomerForTransaction(e){const t=P.getMap("transactionCustomerIds");t!=null&&t.has(e)&&(t.delete(e),P.setMap("transactionCustomerIds",t))}getStakeholderTypeForTransaction(e){var A,n;const t=(n=(A=this.customer)==null?void 0:A.stakeholders)==null?void 0:n.find(a=>{var i;return((i=a.transaction)==null?void 0:i.id)===e});if(t)return t.type}async getOrCreateCustomer(e){var i;this.customer=void 0;const t=x.getShadowGraphqlClient(),n=(await t.query({query:ja,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:e}})).data.customer;if(!n.id){const s=(i=(await t.mutate({mutation:Va,errorPolicy:"all",fetchPolicy:"no-cache",variables:{details:{emailAddress:e}}})).data)==null?void 0:i.customerCreate;if(!s)throw new Error("Unable to create customer.");return this.storeCustomer(s),this.customer=s,{customer:s,isAuthenticated:!1}}this.storeCustomer(n);const a=await this.authenticateCustomerId(n.id);return{customer:this.customer||n,isAuthenticated:a}}async authenticateCustomerId(e){var o;const t=x.getShadowGraphqlClient(),A=P.getMap("customerTokens");if(!(A!=null&&A.has(e)))return!1;const n=A.get(e);if(!n)return!1;const i=(o=(await t.mutate({mutation:Wa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{loginToken:n}})).data)==null?void 0:o.customerAuthenticate;return i?(this.storeCustomer(i),Dt(n),this.customer=i,!0):!1}async generateVerificationCode(e){await x.getShadowGraphqlClient().mutate({mutation:Xa,variables:{emailAddress:e}})}async verifyCode(e,t){var a,i;const n=(a=(await x.getShadowGraphqlClient().mutate({mutation:qa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:e,verificationCode:t}})).data)==null?void 0:a.customerVerifyCode;if(n!=null&&n.loginToken){if(!((i=n.partner)!=null&&i.id))throw new Error(`Unable to find customer: ${e}`);const o=P.getMap("customerTokens")||new Map;return o.set(n.id,n.loginToken),P.setMap("customerTokens",o),this.storeCustomer(n),Dt(n.loginToken),this.customer={...n,loginToken:void 0},!0}return!1}async getNewBundle(e,t,A){var r,g,d;const a=(d=(await x.getShadowGraphqlClient().mutate({mutation:Qa(((g=(r=A==null?void 0:A.graphql)==null?void 0:r.productCollection)==null?void 0:g.eagerFetchProducts)||!1),variables:{collectionId:e,initialMetadata:t?Object.entries(t).map((B,C)=>({key:B[0],value:B[1]})):void 0},fetchPolicy:"no-cache"})).data)==null?void 0:d.bundleCreate;if(!(a!=null&&a.id))throw new Error("Unable to create bundle");const i=P.getMap("bundlePartnerIds")||new Map;i.set(a.id,a.partner.id),P.setMap("bundlePartnerIds",i);const o=P.getMap("bundleOwnerIds")||new Map;o.set(a.id,a.bundleOwnerId),P.setMap("bundleOwnerIds",o);const s=new pA(this,a,void 0,void 0,a.bundleOwnerId);return await s.getInitializationPromise(),s}async getExistingBundle(e,t,A,n){var h,Q,m,M,p,f,D,I,S;const a=P.getMap("bundleOwnerIds"),i=a==null?void 0:a.get(e),s=((h=Object.entries(localStorage).find(([y,Y])=>y.startsWith("CognitoIdentityServiceProvider")&&y.endsWith("idToken")))==null?void 0:h[0])||"",r=localStorage.getItem(s),g={};r&&!tt(r)&&(g.Authorization=`Bearer ${r}`);const d={bundleOwnerId:i,...g,...(Q=n==null?void 0:n.graphql)==null?void 0:Q.additionalHeaders},B=await x.getShadowGraphqlClient().query({query:Ea(((M=(m=n==null?void 0:n.graphql)==null?void 0:m.productCollection)==null?void 0:M.eagerFetchProducts)||!1),variables:{id:e},fetchPolicy:"no-cache",context:{headers:d}});if(!((p=B.data)!=null&&p.bundles)||((f=B.data)==null?void 0:f.bundles.length)===0||!((D=B.data)!=null&&D.bundles[0]))throw new Error(`Unable to find bundle: ${e}`);const C=(I=B.data)==null?void 0:I.bundles[0],w=P.getMap("bundlePartnerIds")||new Map;w.set(C.id,C.partner.id),P.setMap("bundlePartnerIds",w);const u=new pA(this,C,t,A,i,{additionalHeaders:(S=n==null?void 0:n.graphql)==null?void 0:S.additionalHeaders});return await u.getInitializationPromise(),u}async getBundleStakeholders(){var a;if(!this.customer)throw new Error("Customer not authenticated.");const e=await x.getShadowGraphqlClient().query({query:ua,variables:{id:this.customer.id},fetchPolicy:"no-cache"});if(!((a=e.data)!=null&&a.customers)||e.data.customers.length===0)throw new Error("Unable to find customer.");const A=e.data.customers[0].bundleStakeholders||[],n=P.getMap("bundlePartnerIds")||new Map;return A.forEach(i=>{var o,s;(o=i.bundle)!=null&&o.id&&((s=i.bundle.partner)!=null&&s.id)&&n.set(i.bundle.id,i.bundle.partner.id)}),P.setMap("bundlePartnerIds",n),A}async getWorkflowExperience(e,t,A,n){var d,B,C,w,u;if(!n)return await this.getWorkflowExperienceDeprecated(e,t,A);const a=async()=>{var Q,m,M;const h=x.getShadowGraphqlClient();if(n.type==="transaction"){const{transactionId:p,readOnly:f}=n,D=await h.query({query:Se,variables:{ids:[p]},errorPolicy:"all",fetchPolicy:"no-cache"});if(!((Q=D.data)!=null&&Q.transactions)||D.data.transactions.length===0)throw new U("Existing transaction not found.");const I=(m=D.data)==null?void 0:m.transactions[0];if(!I.workflowId)throw new U("Existing transaction has no workflow ID.");const S=await Ie(I.workflowId);if(!I.product)throw new U("Failed to load transaction, product not available.");return!this.activeIntegration&&((M=I.integrationProduct)!=null&&M.integration)&&(this.activeIntegration=Promise.resolve(I.integrationProduct.integration)),{transaction:I,workflow:S,readOnly:f}}if(n.type==="integration"||n.type==="external"){const p=async()=>{const S=n.type==="integration"?{integrationProductId:n.integrationProductId}:{externalIntegrationId:n.externalIntegrationId,externalProductId:n.externalProductId},y=await h.mutate({mutation:vt,variables:{...S,workflowId:n.workflowId,designName:n.designName,claim:!0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!y.data||!y.data.transactionCreate)throw new U("Failed to create transaction!");const Y=y.data.transactionCreate;if(!Y.product)throw new U("Failed to create transaction, product not available.");return Y},f=Ie(n.workflowId,n==null?void 0:n.graphql),[D,I]=await Promise.all([p(),f]);return{transaction:D,workflow:I}}throw new U("No workflow ID provided.")},{transaction:i,workflow:o,readOnly:s}=await a();this.currencyCode=(d=i.product.partner)==null?void 0:d.currencyCode;const r={product:i.product,transaction:i,layouts:[],singleVariantsRenderable:(B=n==null?void 0:n.workflowConfiguration)==null?void 0:B.singleVariantsRenderable,stateMutationFunc:s?async()=>{throw new G("State mutation is forbidden in read only mode!")}:async h=>{const m=(P.getMap("transactionOwnerIds")||new Map).get(i.id)||void 0;return this.updateTransactionState({...h,context:{transactionOwnerId:m}})},readOnly:s,workflow:o};if(n.type==="transaction"&&i.workflowState){const h=JSON.parse(i.workflowState);r.layouts=Object.values(h.layouts).map(Q=>Q.layout),await l.rehydrateSerializedLayout(h),await ce(h),r.reloadedState=h}else if(!s&&n.workflowState){const h=JSON.parse(n.workflowState);r.layouts=Object.values(h.layouts).map(Q=>Q.layout),await l.rehydrateSerializedLayout(h),await ce(h),r.reloadedState=h}else r.layouts=gt(r.transaction,r.workflow);if(r.renderableContextService=new ve(r.layouts),n.previewService?(r.previewService=n.previewService,(C=r.product)!=null&&C.modelUrl&&(r.modelContainer=r.previewService.loadModel({model:r.product.modelUrl,contextService:r.renderableContextService}))):(r.previewService=A&&A(o),(w=r.product)!=null&&w.modelUrl&&(r.modelContainer=(u=r.previewService)==null?void 0:u.loadModel({model:r.product.modelUrl,contextService:r.renderableContextService}))),n.type!=="transaction"){const h=P.getMap("transactionOwnerIds")||new Map;h.set(i.id,i.transactionOwnerId),P.setMap("transactionOwnerIds",h)}else r.isReloadedTransaction=!0;this.initialized=!0,this.experienceOptions=r;const g=new De(this,r);return await g.getWorkflowManager().getInitializationPromise(),n.type!=="transaction"&&this.customer&&await g.attachCustomerDetails({email:this.customer.emailAddress}),g}async getWorkflowExperiences(e,t){if(e.length===0)throw new U("No options provided!");const A=x.getShadowGraphqlClient(),n=async f=>{var y,Y,v;if(f.length===0)return[];const D=f.map(N=>N.option.transactionId),I=await A.query({query:Se,variables:{ids:D},errorPolicy:"all",fetchPolicy:"no-cache"}),S=I.data.transactions;if(S.length!==f.length){const N=((Y=(y=I.errors)==null?void 0:y[0])==null?void 0:Y.message)||"Unknown error";throw new U(`Not all transactions were found: ${N}`)}return!this.activeIntegration&&((v=S[0].integrationProduct)!=null&&v.integration)&&(this.activeIntegration=Promise.resolve(S[0].integrationProduct.integration)),S.map((N,H)=>{var J;return{transaction:N,workflowId:N.workflowId,readOnly:((J=f.find(b=>b.option.transactionId===N.id))==null?void 0:J.option.readOnly)??!1,index:f[H].index}})},a=async f=>{var S,y,Y;if(f.length===0)return[];const D=await A.mutate({mutation:An,variables:{inputs:f.map(v=>({integrationProductId:v.option.type==="integration"?v.option.integrationProductId:void 0,externalIntegrationId:v.option.type==="external"?v.option.externalIntegrationId:void 0,externalProductId:v.option.type==="external"?v.option.externalProductId:void 0,workflowId:v.option.workflowId,designName:v.option.designName,claim:!0})),marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache"}),I=(S=D.data)==null?void 0:S.transactionCreateMany;if(!I||I.length===0){const v=((Y=(y=D.errors)==null?void 0:y[0])==null?void 0:Y.message)||"Unknown error";throw new U(`Failed to create transactions: ${v}`)}return I.map((v,N)=>({transaction:v,workflowId:v.workflowId,readOnly:!1,index:f[N].index}))},i=e.map((f,D)=>({option:f,index:D})),o=i.filter(f=>f.option.type==="transaction"),s=i.filter(f=>f.option.type==="integration"||f.option.type==="external"),r=ht(o,10),g=ht(s,10),d=(await Promise.all([...r.map(n),...g.map(a)])).flat(),B=[...new Set(d.map(f=>f.workflowId))],C=await ct(B,t),w=new Map(C.map(f=>[f.id,f])),u=P.getMap("transactionOwnerIds")||new Map,h=d.map(async f=>{var J;const{transaction:D,workflowId:I,readOnly:S,index:y}=f,Y=w.get(I),v=e[y];!u.get(D.id)&&D.transactionOwnerId&&u.set(D.id,D.transactionOwnerId);const N=u.get(D.id)||void 0,H={product:D.product,transaction:D,layouts:[],singleVariantsRenderable:(J=v==null?void 0:v.workflowConfiguration)==null?void 0:J.singleVariantsRenderable,stateMutationFunc:S?async()=>{throw new G("State mutation is forbidden in read only mode!")}:async b=>this.updateTransactionState({...b,context:{transactionOwnerId:N}}),readOnly:S,workflow:Y,isReloadedTransaction:v.type==="transaction"};if(v.type==="transaction"&&D.workflowState){const b=JSON.parse(D.workflowState);H.layouts=Object.values(b.layouts||{}).map(V=>V.layout),await l.rehydrateSerializedLayout(b),await ce(b),H.reloadedState=b}else if(!S&&v.workflowState){const b=JSON.parse(v.workflowState);H.layouts=Object.values(b.layouts||{}).map(V=>V.layout),await l.rehydrateSerializedLayout(b),await ce(b),H.reloadedState=b}else H.layouts=gt(H.transaction,H.workflow);return H.renderableContextService=new ve(H.layouts),H.delayWorkflowStateSync=!0,this.initialized=!0,this.experienceOptions=H,{experienceOptions:H,index:y,options:v}});P.setMap("transactionOwnerIds",u);const M=(await Promise.all(h)).sort((f,D)=>f.index-D.index).map(async f=>{const{experienceOptions:D,options:I}=f,S=new De(this,D);return await S.getWorkflowManager().getInitializationPromise(),I.type!=="transaction"&&this.customer&&await S.attachCustomerDetails({email:this.customer.emailAddress}),S}),p=await Promise.all(M);return p.forEach(f=>f.getWorkflowManager().setWorkflowStateSyncEnabled(!0)),p}async initFromIntegrationProduct(e){var i;if(e==="")throw new U("No integration product ID provided.");const A=await x.getShadowGraphqlClient().mutate({mutation:vt,variables:{integrationProductId:e,claim:!0,marketplaceThemeInstallId:this.marketplaceThemeInstallId,marketplaceThemeInstallConfigurationId:this.marketplaceThemeInstallConfigurationId},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!A.data||!A.data.transactionCreate)throw new U("Failed to create transaction!");const n=A.data.transactionCreate;if(!n.product)throw new U("Failed to create transaction, product not available.");this.currencyCode=(i=n.product.partner)==null?void 0:i.currencyCode;const a=P.getMap("transactionOwnerIds")||new Map;a.set(n.id,n.transactionOwnerId),P.setMap("transactionOwnerIds",a),this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:async o=>this.updateTransactionState({...o,context:{transactionOwnerId:n.transactionOwnerId}})},this.initialized=!0}async initFromTransaction(e,t=!1){var o,s,r,g;if(e==="")throw new U("No transaction ID provided.");const A=x.getShadowGraphqlClient(),n=async()=>{var C,w;const B=(C=(await A.query({query:Se,variables:{ids:[e]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:C.transactions[0];if(!B)throw new U("Failed to read transaction.");if(!B.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(w=B.product.partner)==null?void 0:w.currencyCode,this.experienceOptions={product:B.product,transaction:B,layouts:[],stateMutationFunc:async()=>{throw new G("State mutation is forbidden in read only mode!")},readOnly:t},this.initialized=!0};if(t)return await n();const a=P.getMap("transactionOwnerIds")||new Map,i=a.get(e);if(i){const B=(o=(await A.query({query:Se,variables:{ids:[e]},errorPolicy:"all"})).data)==null?void 0:o.transactions[0];if(!B)throw new U("Failed to read transaction.");if(!B.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(s=B.product.partner)==null?void 0:s.currencyCode,this.experienceOptions={product:B.product,transaction:B,layouts:[],stateMutationFunc:async C=>this.updateTransactionState({...C,context:{transactionOwnerId:i}}),readOnly:t},this.initialized=!0;return}try{const B=(r=(await A.mutate({mutation:nn,variables:{id:e},errorPolicy:"all"})).data)==null?void 0:r.transactionClaim;if(!B)throw new U("Failed to read transaction.");if(!B.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(g=B.product.partner)==null?void 0:g.currencyCode,B.transactionOwnerId&&(a.set(B.id,B.transactionOwnerId),P.setMap("transactionOwnerIds",a)),this.experienceOptions={product:B.product,transaction:B,layouts:[],stateMutationFunc:async C=>this.updateTransactionState({...C,context:{transactionOwnerId:B.transactionOwnerId}}),readOnly:t},this.initialized=!0}catch{throw new U("Attempted to access a transaction that isn't available.")}}async getWorkflowExperienceDeprecated(e,t,A){var n,a,i,o;if(!this.initialized||!this.experienceOptions)throw new U("Cannot launch experience: Not initialized.");if(this.experienceOptions.transaction.workflowId){const s=await Ie(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=s,this.experienceOptions.transaction.workflowState){const g=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(g.layouts).map(d=>d.layout),await l.rehydrateSerializedLayout(g),await ce(g),this.experienceOptions.reloadedState=g}this.experienceOptions.previewService=A&&A(s),this.experienceOptions.renderableContextService=new ve(this.experienceOptions.layouts),(n=this.experienceOptions.product)!=null&&n.modelUrl&&(this.experienceOptions.modelContainer=(a=this.experienceOptions.previewService)==null?void 0:a.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const r=new De(this,this.experienceOptions);return await r.getWorkflowManager().getInitializationPromise(),r}if(e){const r=(P.getMap("transactionOwnerIds")||new Map).get(this.experienceOptions.transaction.id),g=x.getShadowGraphqlClient().mutate({mutation:on,variables:{workflowId:e,id:this.experienceOptions.transaction.id},context:{transactionOwnerId:r}}),d=Ie(e);if(await Promise.all([g,d]),this.experienceOptions.workflow=await d,t){const C=JSON.parse(t);this.experienceOptions.layouts=Object.values(C.layouts).map(w=>w.layout),await l.rehydrateSerializedLayout(C),await ce(C),this.experienceOptions.reloadedState=C}else this.experienceOptions.layouts=gt(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(await d),this.experienceOptions.renderableContextService=new ve(this.experienceOptions.layouts),(i=this.experienceOptions.product)!=null&&i.modelUrl&&(this.experienceOptions.modelContainer=(o=this.experienceOptions.previewService)==null?void 0:o.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const B=new De(this,this.experienceOptions);return await B.getWorkflowManager().getInitializationPromise(),B}throw new U("No workflow ID provided.")}getPreviewService(){var e;return(e=this.experienceOptions)==null?void 0:e.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new U("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new U("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}storeCustomer(e){const t=P.getMap("partnerCustomerIds")||new Map;t.set(e.partner.id,e.id),P.setMap("partnerCustomerIds",t)}async getIntegrationProductById(e){var a,i;const n=(a=(await x.getShadowGraphqlClient().query({query:cn,variables:{ids:[e]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:a.integrationProducts;if(!n||n.length===0||!((i=n[0])!=null&&i.id))throw new Error("Integration product not found.");return new rt(n[0])}async getIntegrationProductFromExternalIds(e,t){var i;const a=(i=(await x.getShadowGraphqlClient().query({query:gn,variables:{externalProductId:t,externalIntegrationId:e},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:i.integrationProductFromExternalIds;if(!(a!=null&&a.id))throw new Error("Integration product not found.");return new rt(a)}async getIntegrationProduct(e){return e.type==="integration"?this.getIntegrationProductById(e.integrationProductId):this.getIntegrationProductFromExternalIds(e.externalIntegrationId,e.externalProductId)}async getShareActionsForTransaction(e){const A=(P.getMap("transactionOwnerIds")||new Map).get(e)||void 0,n=await x.getShadowGraphqlClient().query({query:rn,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:e},context:{transactionOwnerId:A}});if(!n.data.transactions||n.data.transactions.length!==1)throw new Error(`Failed to fetch share actions for transaction: ${e}`);return n.data.transactions[0].transactionShareActions}}class ei{getClient(){return this.client??{}}getWorkflowExperience(){return{}}setClient(e){this.client=e}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}async reset(){}updateStateWithServer(e){}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(e){}addPoller(e){}addConfirmCallback(e){}addEditedCallback(e){}addElementsCallback(e){}addInformationResultCallback(e){}addInitCallback(e){}addMakingAdjustmentsCallback(e){}addMandatoryCallback(e){}addMetadataCallback(e){}addSelectionCallback(e){}addStepSpecificStorageCallback(e,t){}addStorageCallback(e){}getCommandDispatcher(){return e=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getModelContainer(){}getProfanities(){return[]}getRegionElements(e){return[]}getSerializedStep(e,t){}getStepSpecificServices(e){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(e){}markUpdateCompleted(e){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(e){}setEditedStatus(e,t){}setInformationResults(e){}setMandatoryFulfilled(e,t){}async setSelectionsAndElements(e,t,A){}toggleDesignConfirmed(){}updateMetadata(e,t){}async updateStorage(e,t){}injectIntoPreviewService(e){return Promise.resolve()}ejectFromPreviewService(){}setWorkflowStateSyncEnabled(e){}async updateTransactionShareActions(){}addValidationCallback(e){}setStepError(e,t,A){}getStepErrors(e){}getValidationErrors(){return{steps:new Map}}async updateTransactionStakeholders(){}}var YA=(c=>(c.SelectFrame="SelectFrame",c.SelectImage="SelectImage",c.Position="Position",c))(YA||{});class PA extends K{constructor(e,t){var A;super(e,t),this.frameService=(A=this.manager.getStepSpecificServices(this.getId()))==null?void 0:A.frameService}selectVariant(e){const t=this.manager.getRegionElements(this.step.stepName);return q.selectVariant(this.step,e.getResource(),t,this.manager,A=>this.setUpdateState(A))}onFrameDataChanged(e){this.frameService&&this.frameService.onFrameDataChanged(t=>{t&&e(t)})}async selectImage(e,t=!0,A=!0){var n;if(await q.selectImage(this.step,e,this.manager,A),t){const a=((n=this.manager.getStepStorage(this.step.stepName))==null?void 0:n.framePatternData)||{};this.manager.updateStorage(this.step.stepName,{framePatternData:{...a,originalAssetKey:e.key,backgroundRemovedAssetKey:void 0,useOriginalAsset:void 0}})}}async canUseBackgroundRemover(){return this.manager.getClient().canUseAddon(Me.BackgroundRemover)}async canRemoveBackground(){var e,t,A,n;return await this.canUseBackgroundRemover()&&this.hasOriginalImageSelection()&&!!((t=(e=this.frameService)==null?void 0:e.getImageData())!=null&&t.src)&&!((n=(A=this.frameService)==null?void 0:A.getImageData())!=null&&n.svg)}async removeBackgroundFromImageSelection(e=!0){var a;if(!await this.canUseBackgroundRemover())throw new Error("The current Integration does not have access to the Background Remover. Please call canUseBackgroundRemover to ensure you disable this feature when appropriate.");const t=await this.getOriginalImageSelection();if(!t)throw new Error("You must supply an image selection before attempting to remove the background.");const A=await k.removeBackgroundFromAsset(t);e&&await q.selectImage(this.step,A,this.manager,!1);const n=((a=this.manager.getStepStorage(this.step.stepName))==null?void 0:a.framePatternData)||{};return this.manager.updateStorage(this.step.stepName,{framePatternData:{...n,backgroundRemovedAssetKey:A.key,useOriginalAsset:!e}}),A}changeColors(e){q.changeColors(this.step,this.manager,e)}getImageData(){if(this.frameService)return this.frameService.getImageData()}async getColorOption(){return this.step.data.colorOption}getAvailableColors(){return this.step.data.colorPickerEnabled?q.availableColors(this.step,this.manager):Promise.resolve([])}isColorPickerEnabled(){return this.step.data.colorPickerEnabled??!1}async getOriginalImageColors(){const e=this.getImageData();return e!=null&&e.svg?(await l.generateSVGWithUnknownColors(e.svg)).colors:void 0}getMaxAllowedColors(){return this.step.data.maxColors}getUniqueColorCount(){return q.getUniqueColorCount(this.step,this.manager)}getCurrentFrameStep(e,t,A,n){return n&&n.length>1&&e===void 0?"SelectFrame":t||A||this.getImageData()?"Position":"SelectImage"}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasOverlayImageUrl(){return this.step.data.overlayImageUrl}getWhitelistedExtensions(){return[...this.step.data.whitelistedExtensions,...this.step.data.whitelistedExtensions.includes(".jpg")?[".jpeg"]:[]]}async getOriginalImageSelection(){var t,A;const e=(A=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)==null?void 0:A.originalAssetKey;if(e)return k.getLocalOrFromServer(e)}async getBackgroundRemovedImageSelection(){var t,A;const e=(A=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)==null?void 0:A.backgroundRemovedAssetKey;if(e)return k.getLocalOrFromServer(e)}hasOriginalImageSelection(){var e,t;return!!((t=(e=this.manager.getStepStorage(this.step.stepName))==null?void 0:e.framePatternData)!=null&&t.originalAssetKey)}hasBackgroundRemovedImageSelection(){var e,t;return!!((t=(e=this.getFrameStepStorage())==null?void 0:e.framePatternData)!=null&&t.backgroundRemovedAssetKey)}getUseOriginalImageSelection(){var e,t;return((t=(e=this.getFrameStepStorage())==null?void 0:e.framePatternData)==null?void 0:t.useOriginalAsset)??!1}async setUseOriginalImageSelection(e){var n;const t=((n=this.getFrameStepStorage())==null?void 0:n.framePatternData)||{};if(t.useOriginalAsset===e)return;const A=await this.getOriginalImageSelection();if(!A)throw new Error("You must provide an image selection before calling setUseOriginalImageSelection");if(e)await this.selectImage(A,!1,!1);else{const a=await this.getBackgroundRemovedImageSelection();if(!a)throw new Error("You must call removeBackgroundFromImageSelection before attempting to apply the image.");await this.selectImage(a,!1,!1)}this.manager.updateStorage(this.step.stepName,{framePatternData:{...t,useOriginalAsset:e}})}getFrameStepStorage(){return this.manager.getStepStorage(this.step.stepName)}}Object.defineProperty(E,"AspectType",{enumerable:!0,get:()=>l.AspectType}),Object.defineProperty(E,"AssetType",{enumerable:!0,get:()=>l.AssetType}),Object.defineProperty(E,"BringForwardCommand",{enumerable:!0,get:()=>l.BringForwardCommand}),Object.defineProperty(E,"BringToBackCommand",{enumerable:!0,get:()=>l.BringToBackCommand}),Object.defineProperty(E,"BringToFrontCommand",{enumerable:!0,get:()=>l.BringToFrontCommand}),Object.defineProperty(E,"CanvasCommand",{enumerable:!0,get:()=>l.CanvasCommand}),Object.defineProperty(E,"CommandContext",{enumerable:!0,get:()=>l.CommandContext}),Object.defineProperty(E,"CreateElementCommand",{enumerable:!0,get:()=>l.CreateElementCommand}),Object.defineProperty(E,"CreateLayoutCommand",{enumerable:!0,get:()=>l.CreateLayoutCommand}),Object.defineProperty(E,"DeleteElementCommand",{enumerable:!0,get:()=>l.DeleteElementCommand}),Object.defineProperty(E,"FontAlignmentCommand",{enumerable:!0,get:()=>l.FontAlignmentCommand}),Object.defineProperty(E,"FontColorCommand",{enumerable:!0,get:()=>l.FontColorCommand}),Object.defineProperty(E,"FontSizeCommand",{enumerable:!0,get:()=>l.FontSizeCommand}),Object.defineProperty(E,"FontSourceCommand",{enumerable:!0,get:()=>l.FontSourceCommand}),Object.defineProperty(E,"GroupCommand",{enumerable:!0,get:()=>l.GroupCommand}),Object.defineProperty(E,"LayoutElementFactory",{enumerable:!0,get:()=>l.LayoutElementFactory}),Object.defineProperty(E,"LayoutElementType",{enumerable:!0,get:()=>l.LayoutElementType}),Object.defineProperty(E,"MoveCommand",{enumerable:!0,get:()=>l.MoveCommand}),Object.defineProperty(E,"ResizeCommand",{enumerable:!0,get:()=>l.ResizeCommand}),Object.defineProperty(E,"RotateCommand",{enumerable:!0,get:()=>l.RotateCommand}),Object.defineProperty(E,"SendBackwardsCommand",{enumerable:!0,get:()=>l.SendBackwardsCommand}),Object.defineProperty(E,"StepAspectType",{enumerable:!0,get:()=>l.StepAspectType}),Object.defineProperty(E,"StepType",{enumerable:!0,get:()=>l.StepType}),Object.defineProperty(E,"TextChangeCommand",{enumerable:!0,get:()=>l.TextChangeCommand}),Object.defineProperty(E,"UnitOfMeasurement",{enumerable:!0,get:()=>l.UnitOfMeasurement}),Object.defineProperty(E,"UpdateImageSourceCommand",{enumerable:!0,get:()=>l.UpdateImageSourceCommand}),Object.defineProperty(E,"dataUrlFromExternalUrl",{enumerable:!0,get:()=>l.dataUrlFromExternalUrl}),Object.defineProperty(E,"determineCorrectFontSizeAndLines",{enumerable:!0,get:()=>l.determineCorrectFontSizeAndLines}),Object.defineProperty(E,"findElement",{enumerable:!0,get:()=>l.findElement}),Object.defineProperty(E,"frameDataCache",{enumerable:!0,get:()=>l.frameDataCache}),Object.defineProperty(E,"generate",{enumerable:!0,get:()=>l.generate}),Object.defineProperty(E,"generateSVGWithUnknownColors",{enumerable:!0,get:()=>l.generateSVGWithUnknownColors}),Object.defineProperty(E,"getAttributesFromArrayBuffer",{enumerable:!0,get:()=>l.getAttributesFromArrayBuffer}),Object.defineProperty(E,"getAxisAlignedBoundingBox",{enumerable:!0,get:()=>l.getAxisAlignedBoundingBox}),Object.defineProperty(E,"getFrameData",{enumerable:!0,get:()=>l.getFrameData}),Object.defineProperty(E,"getSvgElement",{enumerable:!0,get:()=>l.getSvgElement}),Object.defineProperty(E,"loadFont",{enumerable:!0,get:()=>l.loadFont}),Object.defineProperty(E,"patternImageDataCache",{enumerable:!0,get:()=>l.patternImageDataCache}),Object.defineProperty(E,"registerFetchImplementation",{enumerable:!0,get:()=>l.registerFetchImplementation}),Object.defineProperty(E,"registerWindowImplementation",{enumerable:!0,get:()=>l.registerWindowImplementation}),Object.defineProperty(E,"rehydrateSerializedLayout",{enumerable:!0,get:()=>l.rehydrateSerializedLayout}),Object.defineProperty(E,"setCanvasModule",{enumerable:!0,get:()=>l.setCanvasModule}),Object.defineProperty(E,"svgToDataUrl",{enumerable:!0,get:()=>l.svgToDataUrl}),E.AddonHandle=Me,E.ArrayInput=Ga,E.AssetNotFoundError=X,E.CollectionProduct=He,E.ColorOptionGlobalPropertyHandle=at,E.ConversionDataType=xt,E.ConversionLocation=Pt,E.DigitalContentStepHandle=cA,E.FileUploadGlobalPropertyHandle=mA,E.FlowExecutionNodeResult=fe,E.FlowExecutionResult=MA,E.FlowService=FA,E.FrameService=bt,E.FrameStep=YA,E.FrameStepHandle=PA,E.GlobalPropertyHandle=Re,E.IllustrationStepHandle=tA,E.InformationMessageType=se,E.InformationStepHandle=rA,E.IntegrationProduct=rt,E.IntegrationType=yt,E.LayoutNotFoundError=T,E.MaterialStepHandle=AA,E.MisconfigurationError=de,E.MockWorkflowManager=ei,E.ModelStepHandle=nA,E.ModuleStepHandle=gA,E.ObjectInput=st,E.ObjectInputType=SA,E.OptionGlobalPropertyHandle=nt,E.OptionNotFoundError=Be,E.ParseError=_,E.PictureStepHandle=aA,E.ProductCameraRig=Yt,E.ProductCollection=DA,E.ProductWorkflow=re,E.PromiseCache=te,E.PromiseQueue=Oe,E.QuestionStepHandle=iA,E.QueueablePromise=Je,E.ResourceNotFoundError=$,E.ShapeStepHandle=oA,E.SpiffCommerceClient=yA,E.StakeholderType=Ee,E.StepHandle=K,E.TextGlobalPropertyHandle=QA,E.TextInput=ka,E.TextStepHandle=sA,E.TransactionShareActionType=St,E.Transform=IA,E.TransformCollection=fA,E.UnhandledBehaviorError=G,E.Variant=W,E.WorkflowExperienceEventType=wA,E.WorkflowExperienceImpl=De,E.assetService=k,E.browserColorToHex=zt,E.createDesign=CA,E.designService=Ne,E.digitalContentStepService=Le,E.findPmsColors=Dn,E.frameStepService=q,E.generateCommands=EA,E.generateStateFromDesignInputSteps=Ca,E.getBoundedOffsets=Gt,E.getWorkflow=Ie,E.getWorkflows=ct,E.graphQlManager=x,E.illustrationStepService=Qe,E.matchHexToPms=un,E.materialStepService=Ke,E.modelStepService=je,E.moduleStepService=Ve,E.optionService=L,E.persistenceService=P,E.pictureStepService=We,E.pmsToRgb=hn,E.questionStepService=Xe,E.rgbToPms=Lt,E.setBearerAuthenticationToken=It,E.shapeStepService=oe,E.shortenUrl=Jt,E.spiffCoreConfiguration=j,E.stepAspectValuesToDesignInputSteps=da,E.textStepService=z,E.toast=jt,Object.defineProperty(E,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spiffcommerce/core",
3
- "version": "22.4.6",
3
+ "version": "22.4.7",
4
4
  "description": "Core client API for interacting with the Spiff Commerce backend.",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.umd.cjs",