@spiffcommerce/core 0.10.248 → 0.10.249

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.
Files changed (2) hide show
  1. package/dist/main.js +1 -1
  2. package/package.json +2 -2
package/dist/main.js CHANGED
@@ -1,4 +1,4 @@
1
- var t=require("@apollo/client"),A=require("lodash.clonedeep"),e=require("react/jsx-runtime"),n=require("opentype.js"),i=require("buffer"),a=require("axios"),o=require("https"),r=require("file-type"),s=require("util"),c=require("css"),g=require("canvas"),l=require("exif"),B=require("canvg"),w=require("@apollo/client/link/context"),h=require("@apollo/client/link/error"),d=require("cross-fetch"),E=require("react"),u=require("lodash.isequal"),Q=require("react-dom/server"),C=require("qrcode"),m=require("svg-path-bbox"),p=require("lodash.debounce");function D(t,A,e,n){Object.defineProperty(t,A,{get:e,set:n,enumerable:!0,configurable:!0})}var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function I(t){return t&&t.__esModule?t.default:t}function y(t,A,e,n){Object.defineProperty(t,A,{get:e,set:n,enumerable:!0,configurable:!0})}D(module.exports,"SpiffCommerceClient",(()=>Mo)),D(module.exports,"CommandContext",(()=>MA)),D(module.exports,"spiffCoreConfiguration",(()=>Ze)),D(module.exports,"PromiseQueue",(()=>di)),D(module.exports,"QueueablePromise",(()=>hi)),D(module.exports,"MockWorkflowManager",(()=>Fo)),D(module.exports,"InformationMessageType",(()=>Ta)),D(module.exports,"StepHandle",(()=>Xa)),D(module.exports,"TextStepHandle",(()=>oo)),D(module.exports,"FrameStepHandle",(()=>No)),D(module.exports,"BulkStepHandle",(()=>_a)),D(module.exports,"ShapeStepHandle",(()=>ao)),D(module.exports,"IllustrationStepHandle",(()=>to)),D(module.exports,"MaterialStepHandle",(()=>Ao)),D(module.exports,"ModelStepHandle",(()=>eo)),D(module.exports,"PictureStepHandle",(()=>no)),D(module.exports,"QuestionStepHandle",(()=>io)),D(module.exports,"BulkPriceCalculationStrategy",(()=>vn)),D(module.exports,"OptionNotFoundError",(()=>Ue)),D(module.exports,"LayoutNotFoundError",(()=>Ge)),D(module.exports,"AssetNotFoundError",(()=>be)),D(module.exports,"ResourceNotFoundError",(()=>ke)),D(module.exports,"MisconfigurationError",(()=>Je)),D(module.exports,"ParseError",(()=>ze)),D(module.exports,"UnhandledBehaviorError",(()=>Oe)),D(module.exports,"assetService",(()=>ln)),D(module.exports,"designService",(()=>uo)),D(module.exports,"createDesign",(()=>wo)),D(module.exports,"optionService",(()=>dn)),D(module.exports,"persistenceService",(()=>Xe)),D(module.exports,"graphQlManager",(()=>An)),D(module.exports,"toast",(()=>ba)),D(module.exports,"FrameService",(()=>pa)),D(module.exports,"frameStepService",(()=>Ya)),D(module.exports,"modelStepService",(()=>Na)),D(module.exports,"materialStepService",(()=>Sa)),D(module.exports,"shapeStepService",(()=>Ua)),D(module.exports,"questionStepService",(()=>Pa)),D(module.exports,"digitalContentStepService",(()=>xa)),D(module.exports,"moduleStepService",(()=>Ra)),D(module.exports,"pictureStepService",(()=>Ha)),D(module.exports,"textStepService",(()=>Oa)),D(module.exports,"illustrationStepService",(()=>va)),D(module.exports,"ProductCameraRig",(()=>Fn)),D(module.exports,"FrameStep",(()=>vo)),D(module.exports,"ConversionLocation",(()=>Nn)),D(module.exports,"ConversionData",(()=>Hn)),D(module.exports,"getWorkflow",(()=>Io)),D(module.exports,"AssetType",(()=>T)),D(module.exports,"BringForwardCommand",(()=>ne)),D(module.exports,"BringToFrontCommand",(()=>Ae)),D(module.exports,"BringToBackCommand",(()=>ee)),D(module.exports,"CanvasCommand",(()=>PA)),D(module.exports,"CreateElementCommand",(()=>zA)),D(module.exports,"CreateLayoutCommand",(()=>LA)),D(module.exports,"DeleteElementCommand",(()=>TA)),D(module.exports,"FontAlignmentCommand",(()=>qA)),D(module.exports,"FontColorCommand",(()=>KA)),D(module.exports,"FontSizeCommand",(()=>VA)),D(module.exports,"FontSourceCommand",(()=>XA)),D(module.exports,"GroupCommand",(()=>JA)),D(module.exports,"LayoutElementFactory",(()=>Ne)),D(module.exports,"LayoutElementType",(()=>N)),D(module.exports,"MoveCommand",(()=>GA)),D(module.exports,"ResizeCommand",(()=>kA)),D(module.exports,"RotateCommand",(()=>bA)),D(module.exports,"SendBackwardsCommand",(()=>ie)),D(module.exports,"StepAspectType",(()=>W)),D(module.exports,"StepType",(()=>K)),D(module.exports,"TextChangeCommand",(()=>$A)),D(module.exports,"UnitOfMeasurement",(()=>b)),D(module.exports,"dataUrlFromExternalUrl",(()=>Ut)),D(module.exports,"findElement",(()=>SA)),D(module.exports,"frameDataCache",(()=>he)),D(module.exports,"generate",(()=>F)),D(module.exports,"getAxisAlignedBoundingBox",(()=>$)),D(module.exports,"generateSVGWithUnknownColors",(()=>IA)),D(module.exports,"getAttributesFromArrayBuffer",(()=>le)),D(module.exports,"rehydrateSerializedLayout",(()=>HA)),D(module.exports,"getFrameData",(()=>Qe)),D(module.exports,"getSvgElement",(()=>FA)),D(module.exports,"loadFontFromDataUrl",(()=>Kt)),D(module.exports,"loadFontFromExternalUrl",(()=>jt)),D(module.exports,"determineCorrectFontSizeAndLines",(()=>ye)),D(module.exports,"patternImageDataCache",(()=>we)),D(module.exports,"generateCommands",(()=>Ki)),D(module.exports,"registerJSDOM",(()=>It)),D(module.exports,"minZoom",(()=>si)),D(module.exports,"AdvancedEditor",(()=>ea)),D(module.exports,"TransformWrapper",(()=>Ro)),D(module.exports,"EditorCore",(()=>Aa)),D(module.exports,"useLayouts",(()=>Qn)),D(module.exports,"useEditorState",(()=>xn)),D(module.exports,"useEditorInteraction",(()=>gi)),D(module.exports,"useShortcutCombination",(()=>li)),D(module.exports,"commandReducer",(()=>fn)),D(module.exports,"getDefaultState",(()=>Dn)),D(module.exports,"CommandContextContext",(()=>En)),D(module.exports,"AdvancedEditorStateProvider",(()=>yn)),D(module.exports,"AdvancedEditorContext",(()=>In)),D(module.exports,"UICommand",(()=>Mn)),D(module.exports,"EditorSubMenu",(()=>mn)),D(module.exports,"ElementEventType",(()=>Gn)),D(module.exports,"KeyEvent",(()=>kn)),D(module.exports,"gatherVaryingStepAspects",(()=>la));var M="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==f?f:{},x={};y(x,"CanvasCommand",(()=>PA)),y(x,"UpdateWorkflowStateCommand",(()=>UA)),y(x,"MoveCommand",(()=>GA)),y(x,"RotateCommand",(()=>bA)),y(x,"ResizeCommand",(()=>kA)),y(x,"GroupCommand",(()=>JA)),y(x,"CreateLayoutCommand",(()=>LA)),y(x,"ClearLayoutCommand",(()=>OA)),y(x,"CreateElementCommand",(()=>zA)),y(x,"DeleteElementCommand",(()=>TA)),y(x,"CloneElementCommand",(()=>jA)),y(x,"FontColorCommand",(()=>KA)),y(x,"FontSizeCommand",(()=>VA)),y(x,"FontAlgorithmCommand",(()=>WA)),y(x,"FontSourceCommand",(()=>XA)),y(x,"FontAlignmentCommand",(()=>qA)),y(x,"UpdateFramePattern",(()=>ZA)),y(x,"TextChangeCommand",(()=>$A)),y(x,"IllustrationColorCommand",(()=>_A)),y(x,"IllustrationCacheCommand",(()=>te)),y(x,"BringToFrontCommand",(()=>Ae)),y(x,"BringToBackCommand",(()=>ee)),y(x,"BringForwardCommand",(()=>ne)),y(x,"SendBackwardsCommand",(()=>ie)),y(x,"LayerCommand",(()=>ae)),y({},"generate",(()=>F));const F=()=>{const t=()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1);return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()};var Y={};y(Y,"ElementNotFoundError",(()=>vA)),y(Y,"findElement",(()=>SA)),y(Y,"findLayoutForElement",(()=>NA)),y(Y,"updatedLayoutForElement",(()=>RA)),y(Y,"rehydrateSerializedLayout",(()=>HA));var v={};y(v,"CommandContext",(()=>MA)),y(v,"getSvgElement",(()=>FA)),y(v,"elementFactory",(()=>xA)),y(v,"sortElementsByLayersWithIndex",(()=>YA)),y({},"SVGLayout",(()=>q));var S={};let N;var R;let H;var P;let U;var G;let b;var k;let J;var L;let O;var z;let T;var j;let K;var V;let W;var X;y(S,"LayoutElementType",(()=>N)),y(S,"LayoutRenderingPurpose",(()=>H)),y(S,"TextAlgorithm",(()=>U)),y(S,"UnitOfMeasurement",(()=>b)),y(S,"ScaleAxis",(()=>J)),y(S,"MaterialEffectMode",(()=>O)),y(S,"AssetType",(()=>T)),y(S,"StepType",(()=>K)),y(S,"StepAspectType",(()=>W)),(R=N||(N={})).Frame="frame",R.Image="image",R.Illustration="illustration",R.Textbox="textbox",(P=H||(H={}))[P.ThreeD=0]="ThreeD",P[P.FreeDesign=1]="FreeDesign",P[P.Print=2]="Print",(G=U||(U={})).Autosize="Autosize",G.Traditional="Traditional",(k=b||(b={})).Pixel="px",k.Millimeter="mm",k.Centimeter="cm",(L=J||(J={}))[L.North=0]="North",L[L.Northeast=1]="Northeast",L[L.East=2]="East",L[L.Southeast=3]="Southeast",L[L.South=4]="South",L[L.Southwest=5]="Southwest",L[L.West=6]="West",L[L.Northwest=7]="Northwest",(z=O||(O={})).None="None",z.RemoveWhenSelected="RemoveWhenSelected",z.ApplyWhenSelected="ApplyWhenSelected",(j=T||(T={})).Font="Font",j.Frame="Frame",j.Illustration="Illustration",j.Image="Image",j.Model="Model",j.Material="Material",j.Color="Color",j.QuestionnaireCollateral="QuestionnaireCollateral",j.RequestCollateral="RequestCollateral",j.SignupCollateral="SignupCollateral",j.Video="Video",j.ColorProfile="ColorProfile",(V=K||(K={})).Bulk="Bulk",V.DigitalContent="DigitalContent",V.Finish="Finish",V.Frame="Frame",V.Illustration="Illustration",V.Introduction="Introduction",V.Material="Material",V.Model="Model",V.Module="Module",V.Picture="Picture",V.Photo="Photo",V.ProductOverlay="ProductOverlay",V.Question="Question",V.Shape="Shape",V.SilentIllustration="SilentIllustration",V.Text="Text",(X=W||(W={})).Color="Color",X.Colors="Colors",X.Selection="Selection",X.Selections="Selections",X.Text="Text",X.Upload="Upload";const q=({backgroundColor:t,outlineColor:A,borderRadius:n,configuration:i,elements:a,height:o,maxHeight:r,maxWidth:s,outlineArea:c,position:g,preserveAspectRatio:l,viewBox:B,width:w})=>{const h=n||0,d=2*(c?.scale||1),E=B||{x:0,y:0,width:w,height:o},u=`${E.x} ${E.y} ${E.width} ${E.height}`,Q=F(),C=i.purpose===H.FreeDesign&&(0,e.jsx)("defs",{children:(0,e.jsx)("clipPath",{id:"viewboxClip",children:(0,e.jsx)("rect",{width:E.width,height:E.height,rx:h})})}),m=i.colorProfiles?.map(((t,A)=>(0,e.jsx)("color-profile",{name:t.name,xlinkHref:t.key,children:" "},A))),p=YA(a.map((t=>({...t,_renderingConfiguration:i,mask:c?`url(#viewmask-${Q})`:void 0}))));return(0,e.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve",version:"1.1",preserveAspectRatio:l,width:w,height:o,style:{gridColumn:1,gridRow:1,maxWidth:s,maxHeight:r,position:g},viewBox:u,children:[m,C,!!t&&(0,e.jsx)("rect",{id:"layout-background",width:E.width,height:E.height,fill:t,rx:h}),(0,e.jsx)("g",{id:"element-group",clipPath:i.purpose===H.FreeDesign?"url(#viewboxClip)":void 0,children:p.map((t=>xA(t))).filter((t=>!!t))}),c&&(0,e.jsx)("rect",{x:c.x,y:c.y,width:c.width,height:c.height,fill:"none",stroke:c.hidden?"none":A||"#aaaaaa",strokeWidth:d/2,strokeDasharray:`${2*d} ${d}`}),c&&(0,e.jsxs)("mask",{id:`viewmask-${Q}`,children:[(0,e.jsx)("rect",{x:E.x,y:E.y,width:E.width,height:E.height,fill:"black"}),(0,e.jsx)("rect",{x:c.x,y:c.y,width:c.width,height:c.height,fill:"white"})]})]})};y({},"Image",(()=>dt));var Z={};y(Z,"getAxisAlignedBoundingBox",(()=>$)),y(Z,"degreesToRadians",(()=>tt)),y(Z,"findAngle",(()=>_)),y(Z,"radiansToDegrees",(()=>At)),y(Z,"isCloseToValue",(()=>et)),y(Z,"getTrueCoordinates",(()=>nt)),y(Z,"getPointOfRotation",(()=>it)),y(Z,"getNWPoint",(()=>at)),y(Z,"getNEPoint",(()=>ot)),y(Z,"getSWPoint",(()=>rt)),y(Z,"getSEPoint",(()=>st)),y(Z,"turnRightClockwise",(()=>ct)),y(Z,"currentDirection",(()=>gt)),y(Z,"getElementVertices",(()=>lt)),y(Z,"rotateAroundPoint",(()=>Bt)),y(Z,"mmPerPixel",(()=>wt)),y(Z,"cmPerPixel",(()=>ht));const $=(t,A,e,n,i)=>{const a=tt(i),o=e/2,r=n/2,s=t+o,c=A+r,g=Math.sin(a),l=Math.cos(a),B=-r,w=o*l-B*g,h=o*l-r*g,d=o*g+B*l,E=o*g+r*l,u=Math.max(Math.abs(w),Math.abs(h)),Q=Math.max(Math.abs(d),Math.abs(E));return{minX:s-u,maxX:s+u,minY:c-Q,maxY:c+Q}},_=(t,A,e)=>{const n=Math.sqrt(Math.pow(A.x-t.x,2)+Math.pow(A.y-t.y,2)),i=Math.sqrt(Math.pow(A.x-e.x,2)+Math.pow(A.y-e.y,2)),a=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));return Math.acos((i*i+n*n-a*a)/(2*i*n))*(180/Math.PI)},tt=t=>t*(Math.PI/180),At=t=>t*(180/Math.PI),et=(t,A,e)=>Math.abs(t-A)<e,nt=(t,A,e)=>{const n=Math.sin(tt(e)),i=Math.cos(tt(e));return{x:(t.x-A.x)*i-(t.y-A.y)*n+A.x,y:(t.x-A.x)*n+(t.y-A.y)*i+A.y}},it=(t,A)=>({x:(t.x+A.x)/2,y:(t.y+A.y)/2}),at=(t,A,e,n)=>({x:t.x+A?.x*e,y:t.y+A?.y*n}),ot=(t,A,e,n)=>({x:t.x+(A?.x+A?.width)*e,y:t.y+A?.y*n}),rt=(t,A,e,n)=>({x:t.x+A?.x*e,y:t.y+(A?.y+A?.height)*n}),st=(t,A,e,n)=>({x:t.x+(A?.x+A?.width)*e,y:t.y+(A?.y+A?.height)*n}),ct=t=>{switch(t){case J.North:return J.East;case J.East:return J.South;case J.South:return J.West;case J.West:return J.North;case J.Northwest:return J.Northeast;case J.Northeast:return J.Southeast;case J.Southeast:return J.Southwest;case J.Southwest:return J.Northwest}},gt=(t,A)=>A>45&&A<=135?ct(t):A>135&&A<=225?ct(ct(t)):A>225&&A<=315?ct(ct(ct(t))):t,lt=(t,A={x:0,y:0},e={x:1,y:1})=>{const n=tt(t.rotation),i={x:A.x+t.x*e.x,y:A.x+t.y*e.y},a={x:t.x+t.width,y:t.y},o={x:A.x+(t.x+t.width)*e.x,y:A.y+(t.height+t.y)*e.y},r={x:A.x+t.x*e.x,y:A.y+(t.height+t.y)*e.y},s={x:(r.x+o.x)/2,y:r.y-t.height*e.y/2};return{a:Bt(i,s,n),b:Bt(a,s,n),c:Bt(o,s,n),d:Bt(r,s,n),center:s}},Bt=(t,A,e)=>{const n=Math.sin(e),i=Math.cos(e);return{x:(t.x-A.x)*i-(t.y-A.y)*n+A.x,y:(t.x-A.x)*n+(t.y-A.y)*i+A.y}},wt=.352778,ht=.035277,dt=t=>{const A=t.rotation||0,n=tt(A),i=Math.cos(n),a=-Math.sin(n);return(0,e.jsx)("g",{mask:t.stepName||t.productOverlay?void 0:t.mask,children:(0,e.jsx)("g",{transform:`\n matrix(1, 0, 0, 1, ${t.x}, ${t.y})\n matrix(1, 0, 0, 1, ${t.width/2}, ${t.height/2})\n matrix(${i}, ${-a}, ${a}, ${i}, 0, 0)\n matrix(1, 0, 0, 1, ${-t.width/2}, ${-t.height/2})\n `,children:(0,e.jsx)("image",{xlinkHref:t.src,preserveAspectRatio:t.preserveAspectRatio,width:t.width,height:t.height})})})};y({},"Frame",(()=>Et));const Et=t=>{const A=`spiff-frame-${t.id}`,n=`spiff-frame-blur-${t.id}`,i=`spiff-frame-blur-edge-${t.id}`,a=`spiff-frame-focal-mask-${t.id}`,o=!!t.focalBlur&&!!t.pattern,r=t.rotation||0,s=tt(r),c=Math.cos(s),g=-Math.sin(s);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("defs",{children:(o=>{const r=t.pattern?.x||0,s=t.pattern?.y||0,c=t.pattern?t.pattern.width*t.pattern.scaleX+Math.abs(r):256,g=t.pattern?t.pattern.height*t.pattern.scaleY+Math.abs(s):256,l=t.pattern?t.pattern.width*t.pattern.scaleX:256,B=t.pattern?t.pattern.height*t.pattern.scaleY:256;return(0,e.jsxs)("g",{mask:t.stepName?void 0:t.mask,children:[(0,e.jsx)("pattern",{patternUnits:t.pattern?void 0:"userSpaceOnUse",x:0,y:0,width:t.pattern?1:c,height:t.pattern?1:g,"data-frame-width":t.pattern?c:void 0,"data-frame-height":t.pattern?g:void 0,id:A,children:(0,e.jsx)("image",{preserveAspectRatio:"none",x:r,y:s,width:l,height:B,xlinkHref:t.disablePlaceholder?"":t.pattern?t.pattern.src:"data:image/png;base64,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"})}),o?(0,e.jsx)(ut,{path:t.path,width:t.width,height:t.height,focalBlurStrength:t.focalBlurStrength||1,focalBlurRadius:t.focalBlurRadius||10,blurFilterId:n,focalMaskId:a,blurEdgeClipId:i}):null]})})(o)}),(0,e.jsx)("g",{mask:t.stepName?void 0:t.mask,children:(0,e.jsxs)("g",{transform:`\n matrix(1, 0, 0, 1, ${t.x}, ${t.y})\n matrix(1, 0, 0, 1, ${t.width/2}, ${t.height/2})\n matrix(${c}, ${-g}, ${g}, ${c}, 0, 0)\n matrix(1, 0, 0, 1, ${-t.width/2}, ${-t.height/2})\n matrix(${t.scaleX}, 0, 0, ${t.scaleY}, 0, 0)\n `,children:[(0,e.jsx)("path",{filter:o?`url(#${n})`:void 0,mask:o?`url(#${i})`:void 0,d:t.path,style:{fill:`url(#${A})`,opacity:t.opacity}}),o?(0,e.jsx)("path",{mask:`url(#${a})`,d:t.path,style:{fill:`url(#${A})`,opacity:t.opacity}}):void 0]})})]})},ut=t=>{const{path:A,width:n,height:i,focalBlurStrength:a,focalBlurRadius:o,blurFilterId:r,focalMaskId:s,blurEdgeClipId:c}=t;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("filter",{id:r,children:(0,e.jsx)("feGaussianBlur",{stdDeviation:a||0})}),(0,e.jsx)("mask",{id:s,children:(0,e.jsx)("circle",{cx:n/2,cy:i/2,r:o||0,fill:"white",filter:`url(#${r})`})}),(0,e.jsx)("mask",{id:c,children:(0,e.jsx)("path",{d:A,style:{fill:"white",opacity:1}})})]})};y({},"Textbox",(()=>EA));var Qt={};y(Qt,"fontSizeStep",(()=>AA)),y(Qt,"textWidth",(()=>eA)),y(Qt,"charWidth",(()=>nA)),y(Qt,"lineWidth",(()=>iA)),y(Qt,"applyTextTransformations",(()=>oA)),y(Qt,"zip",(()=>rA)),y(Qt,"getTextAlignment",(()=>sA)),y(Qt,"getAnchor",(()=>cA)),y(Qt,"recomputeTextOnElement",(()=>gA)),y(Qt,"defaultLineHeightFactor",(()=>lA));var Ct={};y(Ct,"refitTextbox",(()=>_t)),y(Ct,"recalculateTextboxRegion",(()=>tA));var mt={};y(mt,"FontMetrics",(()=>zt)),y(mt,"loadFontFromExternalUrl",(()=>jt)),y(mt,"loadFontFromDataUrl",(()=>Kt)),y(mt,"getFontMetrics",(()=>Vt));var pt={};y(pt,"registerJSDOM",(()=>It)),y(pt,"createElement",(()=>Ft)),y(pt,"createElementNS",(()=>Yt)),y(pt,"domParser",(()=>vt)),y(pt,"fetchAsArrayBuffer",(()=>St)),y(pt,"fetchAsString",(()=>Nt)),y(pt,"loadFontFaceSet",(()=>Rt)),y(pt,"xmlSerializer",(()=>Ht)),y(pt,"toBase64",(()=>Pt)),y(pt,"dataUrlFromExternalUrl",(()=>Ut)),y(pt,"arrayBufferToDataUrl",(()=>Gt)),y(pt,"arrayBufferToBuffer",(()=>kt)),y(pt,"dataUrlToArrayBuffer",(()=>bt));var Dt=i.Buffer;let ft;function It(t){ft=t}function yt(){if(!ft)throw new Error("JSDOM is not registered. Please register it before calling this function.");return new ft}if(void 0===M.TextEncoder){const{TextEncoder:t}=s;M.TextEncoder=t}if(void 0===M.TextDecoder){const{TextDecoder:t}=s;M.TextDecoder=t}const Mt=new(I(o).Agent)({rejectUnauthorized:!0}),xt=t=>t.every((t=>"undefined"!==t)),Ft=t=>xt([typeof document])?document.createElement(t):yt().window.document.createElement(t),Yt=(t,A)=>{if(xt([typeof document]))return document.createElementNS(t,A);const e=yt().window.document.createElement(A);return e.setAttribute("xmlns",t),e},vt=()=>xt([typeof DOMParser])?new DOMParser:new(yt().window.DOMParser),St=t=>{if(xt([typeof fetch]))return new Promise(((A,e)=>{fetch(t).then((t=>{A(t.arrayBuffer())})).catch((t=>{e(t)}))}));{const A=t.replace("localhost","localstack");return new Promise(((t,e)=>{I(a).get(A,{responseType:"arraybuffer",httpsAgent:Mt}).then((A=>{t(A.data)})).catch((t=>{e(t)}))}))}},Nt=t=>{if(xt([typeof fetch]))return new Promise(((A,e)=>{fetch(t).then((t=>{A(t.text())})).catch(e)}));{const A=t.replace("localhost","localstack");return new Promise(((t,e)=>{I(a).get(A,{responseType:"text",httpsAgent:Mt}).then((A=>{t(A.data)})).catch(e)}))}},Rt=async(t,A)=>{if(xt([typeof FontFace])){const e=t.names.fullName.en,n=new FontFace(e,`url(${A})`);return document.fonts.add(n),n.load()}},Ht=()=>xt([typeof XMLSerializer])?new XMLSerializer:new(yt().window.XMLSerializer),Pt=t=>xt([typeof btoa])?btoa(t):Dt.from(t).toString("base64"),Ut=async t=>{if(xt([typeof fetch,typeof Blob,typeof FileReader])){const A=await fetch(t),e=await A.blob();return await Lt(e)}const A=(await I(a).get(t,{responseType:"arraybuffer"})).data;return Gt(A)},Gt=async t=>{const A=await(async t=>{const A=await(0,r.fromBuffer)(t);return A?A.mime:"image/svg+xml"})(t);return`data:${A};base64,${kt(t).toString("base64")}`},bt=t=>{const A=t.replace(/\r?\n/g,""),e=A.indexOf(",");if(-1===e||e<=4)throw new TypeError("malformed data: URI");const n=A.substring(5,e).split(";");let i=!1;for(let t=1;t<n.length;t++)"base64"===n[t]&&(i=!0);const a=i?"base64":"ascii",o=unescape(A.substring(e+1)),r=Dt.from(o,a);return Jt(r)},kt=t=>Dt.from(t),Jt=t=>{const A=new ArrayBuffer(t.byteLength),e=new Uint8Array(A);for(let A=0;A<t.length;++A)e[A]=t[A];return A},Lt=t=>new Promise(((A,e)=>{const n=new FileReader;n.onload=function(t){const n=t.target;n&&n.result?A(n.result.toString()):e()},n.readAsDataURL(t)})),Ot=new Map;class zt{constructor(t){this.font=t,this.glyphsFromText=new Map,this.kerningValues=new Map,this.height=this.calculateApproximateHeight()}getFont(){return this.font}getGlyphs(t){const A=this.glyphsFromText.get(t);if(A)return A;const e=this.font.stringToGlyphs(t);return this.glyphsFromText.set(t,e),e}getApproximateHeight(){return this.height}getExactHeight(t){const A=this.font.stringToGlyphs(t);let e=0,n=0;return A.forEach((t=>{const A=t.getMetrics();e=Math.max(e,A.yMax),n=Math.min(n,A.yMin)})),e-n}getKerningValue(t,A){let e=this.kerningValues.get(t.name);e||(e=new Map,this.kerningValues.set(t.name,e));let n=e.get(A.name);return n||(n=this.font.getKerningValue(t,A),e.set(A.name,n)),n}calculateApproximateHeight(){const t=this.font.stringToGlyphs("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");let A=0,e=0;return t.forEach((t=>{const n=t.getMetrics();A=Math.max(A,n.yMax),e=Math.min(e,n.yMin)})),A-e}}const Tt=t=>"data:"===t.substring(0,5).toLowerCase().trim(),jt=async t=>{const A=Tt(t)?Kt(t):Kt(await Ut(t));return Wt(A,{assetUrl:Tt(t)?t:await Ut(t),name:A.names.fullName.en}),await Rt(A,t),A},Kt=t=>{const A=bt(t),e=I(n).parse(A);return Wt(e,{assetUrl:t,name:e.names.fullName.en}),e},Vt=t=>{const A=Ot.get(t.name);if(A)return A;throw new Error("Font metrics unavailable for font")},Wt=(t,A)=>{const e=new zt(t);return Ot.set(A.name,e),e},Xt=(t,A,e,n)=>Math.max(nA(t.join("\n"),e,n),A),qt=(t,A,e,n,i,a)=>{const o=(a||lA)*i.getApproximateHeight(),r=A.split("\n");try{const A=r.flatMap((A=>Zt(A,t.width,n,i))),a=A.flatMap((t=>t.lines));return{lines:a,requiredHeight:A.flatMap((t=>t.lines)).length*(n*o),fontSize:e,requiredWidth:Xt(a,t.width,n,i)}}catch(a){const r=A.split("");return{lines:r,requiredHeight:r.length*(n*o),fontSize:e,requiredWidth:Xt(r,t.width,n,i)}}},Zt=(t,A,e,n)=>{const i=eA(t,e,n);if(i<=A)return{lines:[t],width:i};if(!(t.indexOf(" ")>-1)){if(t.length<=1)throw new Error(`Character ${t} is wider than region`);const i=Math.floor(t.length/2),a=Zt(t.slice(0,i),A,e,n),o=Zt(t.slice(i),A,e,n);return{lines:[...a.lines,...o.lines],width:Math.max(a.width,o.width)}}const a=t.split(" "),o=[];let r=-1/0,s=0;for(;s<a.length;){const t=a[s];if(eA(t,e,n)>A){const i=Zt(t,A,e,n);o.push(...i.lines),r=Math.max(r,i.width),s++}else{const i=[t];r=Math.max(r,eA(t,e,n));let c=s+1,g=!0;for(;c<a.length&&g;){const t=a[c],o=eA(`${i.join(" ")} ${t}`,e,n);o<=A?(i.push(t),r=Math.max(r,o),c++):g=!1}o.push(i.join(" ")),s=c}}if(r<0)throw new Error(`No max width calculated for text: ${o}.`);return{lines:o,width:r}},$t=(t,A,e,n,i,a)=>{const o=(a??lA)*A.getApproximateHeight(),r=1/e.unitsPerEm,s=n/iA(t,r,A),c=i/(t.length*o*r);return Math.min(c,s)},_t=(t,A,e,n)=>{const i=Vt(A.fontData),a=i.getFont(),o=A.fontSize/a.unitsPerEm;if(!e)return qt(A,t,A.fontSize,o,i,n);let r;if(r=A.text?A.text.split("\n"):A.input?.split("\n")??[""],e.input===t&&A.width===e.width&&A.height===e.height&&A.lineHeight===e.lineHeight)return{lines:r,requiredHeight:A.height,requiredWidth:Xt(r,A.width,o,i),fontSize:A.fontSize};const s=A.width!==e.width!=(A.height!==e.height);return A.lineHeight!==e.lineHeight||s||e.input!==t?qt(A,t,A.fontSize,o,i,n):{lines:r,requiredHeight:A.height,requiredWidth:Xt(r,A.width,o,i),fontSize:$t(r,i,a,A.width,A.height,n)}},tA=(t,A,e,n,i)=>{const a=Vt(A).getFont();let o={...t},r={...t},s=iA(n,e/a.unitsPerEm,Vt(A));return s&&s<o.width&&(r.width=s,"left"===i?(r.left+=Math.sin(o.rotation*Math.PI/360)*(o.width-s),r.top+=Math.sin(o.rotation*Math.PI/180)*(s-o.width)/2):r.left+="right"===i?o.width-s:(o.width-s)/2,n&&rA(n,n).every((([t,A])=>t===A))&&(o=r)),o},AA=1,eA=(t,A,e)=>{let n=0;const i=e.getGlyphs(t);return i.forEach(((t,A)=>{if(t.advanceWidth&&(n+=t.advanceWidth),A<i.length-1){const a=e.getKerningValue(t,i[A+1]);n+=a}})),n*=A,n},nA=(t,A,e)=>{let n=0;const i=e.getGlyphs(t);return i.forEach(((t,A)=>{if(t.advanceWidth&&(n=Math.max(n,t.advanceWidth)),A<i.length-1){const a=e.getKerningValue(t,i[A+1]);n=Math.max(n,a)}})),n*=A,n},iA=(t,A,e)=>{let n=0;return t.forEach((t=>{n=Math.max(n,eA(t,A,e))})),n},aA={stripControlCharacters:!0,vertical:!1,uppercase:!1},oA=(t,A=aA)=>{const e={...aA,...A};let n=t||"";return e.stripControlCharacters&&(n=n.replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g,"")),e.uppercase&&(n=n.toUpperCase()),e.vertical&&(n=n.split("").join("\n")),n},rA=(t,A)=>t.map(((t,e)=>[t,A[e]])),sA=(t="center",A=!1)=>A?"center":t,cA=t=>"left"===t?"start":"right"===t?"end":"middle",gA=(t,A,e)=>t.fontData?{...t,...(()=>{if(t.algorithm===U.Traditional){const n=_t(A,t,e,t.lineHeight);return{text:n.lines.join("\n"),height:n.requiredHeight,width:n.requiredWidth,fontSize:n.fontSize,input:A}}return{text:A}})()}:t,lA=1.1;var BA={};y(BA,"colorDefinitionPrintValue",(()=>wA)),y(BA,"spotColorDefinitionString",(()=>hA)),y(BA,"svgColorValueToDefinition",(()=>dA));const wA=t=>{const A=hA(t.spotColor);return A?`${t.browserValue} ${A}`:t.browserValue},hA=t=>{if(!t)return"";if(t.profileName.includes("/")&&t.profileName.includes(".icc")){const A=t.profileName.replace(/\s/g,"-"),e=A.lastIndexOf("/");return`icc-named-color(${A.slice(e+1).slice(0,-4)}, ${t.namedColor})`}return`icc-named-color(${t.profileName}, ${t.namedColor})`},dA=t=>{const A=t.split(/[ ](?=[^)]*?(?:\(|$))/);if(0===A.length)return{browserValue:"#000000"};if(1===A.length)return{browserValue:A[0]};const e=A[1].match(/\(([^)]+)\)/gm);if(!e)throw new Error("Unhandled state of color value in SVG");const n=e[0].replace(/[() ]/g,"").split(",");return{browserValue:A[0],spotColor:{profileName:n[0],namedColor:n[1]}}},EA=t=>{const A=(t.rotation||0)*Math.PI/180,n=Math.cos(A),i=-Math.sin(A),a=`text-path-${t.id}`,o=t.x+(t.curved?0:t.width/2),r=t.y+(t.curved?0:t.height/2),s=(t.text||"").split("\n");return t.curved&&!t.paths?null:t.fontData?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("defs",{children:[(0,e.jsx)("style",{type:"text/css",dangerouslySetInnerHTML:{__html:`\n @font-face {\n font-family: '${t.fontData.name}';\n src: url('${t.fontData.assetUrl}') format('truetype');\n }\n `}}),t.curved&&t.paths?(0,e.jsx)("path",{id:a,d:t.paths[0]}):void 0]}),t._renderingConfiguration?.debug?(0,e.jsx)("rect",{stroke:"blue",fill:"none",x:t.x,y:t.y,width:t.width,height:t.height}):void 0,(0,e.jsx)("g",{mask:t.stepName?void 0:t.mask,children:(0,e.jsx)("g",{transform:`matrix(${n}, ${-i}, ${i}, ${n}, ${o}, ${r})`,children:(0,e.jsx)("text",{xmlSpace:"preserve",fontFamily:`'${t.fontData.name}'`,fontSize:t.fontSize,fontStyle:"normal",fontWeight:"normal",fill:t._renderingConfiguration?.spotColors&&t.fillSpotColorDefinition?`${t.fill} ${hA(t.fillSpotColorDefinition)}`:t.fill,style:{whiteSpace:"pre",userSelect:"none"},children:t.curved?(0,e.jsx)(QA,{text:t.text||"",curvedPathId:a,align:t.align}):s.map(((A,n)=>(0,e.jsx)(uA,{align:t.vertical?"center":t.align,fontSize:t.fontSize,thisLineIdx:n,amountLines:s.length,text:A,textboxHeight:t.height,textboxWidth:t.width,lineHeight:t.lineHeight,vertical:t.vertical,verticalAlign:t.verticalAlign},n)))})})})]}):null},uA=t=>(0,e.jsx)("tspan",{textAnchor:cA(t.align),x:"left"===t.align?-t.textboxWidth/2:"right"===t.align?t.textboxWidth/2:0,y:`${(()=>{const A=t.fontSize*(void 0!==t.lineHeight?t.lineHeight:lA),e=t.textboxHeight/2;if("top"===t.verticalAlign)return-e+3*t.fontSize/4+t.thisLineIdx*A;if("bottom"===t.verticalAlign){const n=t.amountLines-1-t.thisLineIdx;return e-t.fontSize/4-n*A}const n=(t.amountLines-1)/2;return(t.thisLineIdx-n)*A+t.fontSize/4})()}px`,children:t.text}),QA=t=>{const A=`#${t.curvedPathId}`;return(0,e.jsx)("textPath",{startOffset:"left"===t.align?"0%":"right"===t.align?"100%":"50%",textAnchor:cA(t.align),href:A,xlinkHref:A,children:t.text})};y({},"Illustration",(()=>yA));var CA={};y(CA,"traverse",(()=>pA)),y(CA,"sanitizeSvgTree",(()=>DA)),y(CA,"modifySVGWithElementProperties",(()=>fA)),y(CA,"generateSVGWithUnknownColors",(()=>IA));const mA=["altGlyph","circle","ellipse","path","polygon","polyline","rect","text","textPath","tref","tspan"],pA=(t,A)=>{A(t),t.children.length>0&&Array.from(t.children).forEach((t=>pA(t,A)))},DA=(t,A=!1)=>{!A&&t.setAttribute("preserveAspectRatio","none");const e=[];pA(t,(t=>{if("script"!==t.tagName)if("style"!==t.tagName);else try{(0,c.parse)(t.innerHTML).stylesheet?.rules.forEach((t=>{e.push(t)})),t.remove()}catch(t){console.error(t)}else t.remove()})),pA(t,(t=>{e.forEach((A=>{A.selectors?.forEach((e=>{((t,A)=>{try{return t.matches(A)}catch(e){return t.classList.contains(A.substring(1))}})(t,e)&&A.declarations?.forEach((A=>{A.property&&A.value&&t.setAttribute(A.property,A.value)}))}))}))}))},fA=(t,A,e,n,i)=>{const a=(t=>vt().parseFromString(t,"image/svg+xml").firstElementChild)(t);if(!a)throw new Error("Failed to read SVG.");return((t,A,e)=>{t.setAttribute("height",`${e}px`),t.setAttribute("width",`${A}px`)})(a,A,e),((t,A,e)=>{pA(t,(t=>{const n=t.attributes.getNamedItem("fill");n&&"none"!==n.value&&t.classList.forEach((n=>{if(n.startsWith("spiff-fill")){const i=A[n];i&&t.setAttribute("fill",e?wA(i):i.browserValue)}}));const i=t.attributes.getNamedItem("stroke");i&&"none"!==i.value&&t.classList.forEach((n=>{if(n.startsWith("spiff-stroke")){const i=A[n];i&&t.setAttribute("stroke",e?wA(i):i.browserValue)}}))}))})(a,n,i),(t=>Ht().serializeToString(t))(a)},IA=async t=>{const A=t.match(/<svg.*?<\/svg>/s)||[],e=A?.length>0?A[0]:"",n=vt().parseFromString(e,"image/svg+xml").firstElementChild;if(!n)throw new Error("Failed to read SVG.");DA(n);const i={};pA(n,(t=>{mA.includes(t.tagName)&&!t.attributes.getNamedItem("fill")&&t.setAttribute("fill","black");const A=t.attributes.getNamedItem("fill");if(A&&"none"!==A.value){const e=dA(A.value),n=`spiff-fill-${e.browserValue.replace(/\W/g,"")}`;t.setAttribute("fill",e.browserValue),t.classList.add(n),i[n]=e}const e=t.attributes.getNamedItem("stroke");if(e&&"none"!==e.value){const A=dA(e.value),n=`spiff-stroke-${A.browserValue.replace(/\W/g,"")}`;t.classList.add(n),t.setAttribute("stroke",A.browserValue),i[n]=A}}));const a=Ht().serializeToString(n);return{colors:i,svg:a}},yA=t=>{if(t.cachedObjectURL&&!t._renderingConfiguration?.omitCachedFields)return(0,e.jsx)(dt,{id:t.id,src:t.cachedObjectURL,x:t.x,y:t.y,width:t.width,height:t.height,rotation:t.rotation,preserveAspectRatio:"none",immutable:t.immutable,mask:t.stepName?void 0:t.mask});const A=t.rotation||0,n=tt(A),i=Math.cos(n),a=-Math.sin(n),o=`\n matrix(1, 0, 0, 1, ${t.x}, ${t.y})\n matrix(1, 0, 0, 1, ${t.width/2}, ${t.height/2})\n matrix(${i}, ${-a}, ${a}, ${i}, 0, 0)\n matrix(1, 0, 0, 1, ${-t.width/2}, ${-t.height/2})\n `;if(!t.svg)throw new Error(`Illustration element ${t.id} (stepName ${t.stepName}) lacked svg from src ${t.src} at render time.`);return(0,e.jsx)("g",{mask:t.stepName?void 0:t.mask,children:(0,e.jsx)("g",{transform:o,dangerouslySetInnerHTML:{__html:fA(t.svg,t.width,t.height,t.colors,t._renderingConfiguration?.spotColors)}})})};class MA{constructor(){this.id=F(),this.stateCallbacks=[],this.prevCommands=[],this.nextCommands=[]}registerStateCallback(t){this.stateCallbacks.push(t)}unregisterStateCallback(t){this.stateCallbacks.filter((A=>A!==t))}getState(){return this.state}runStateCallbacks(){this.stateCallbacks.forEach((t=>t()))}apply(t,A){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);this.state=this.commandReducer(this.state,t),this.runStateCallbacks(),this.nextCommands=[],A||this.prevCommands.push(t)}undo(){if(!this.state)return;const t=this.prevCommands.pop();if(!t)return;const A=t.undo();t.varying?this.state={...this.state,variation:A}:this.state={...this.state,transaction:A},this.nextCommands.push(t),this.runStateCallbacks()}redo(){if(!this.state)return;const t=this.nextCommands.pop();t&&(this.state=this.commandReducer(this.state,t),this.runStateCallbacks(),this.prevCommands.push(t))}flattenSequence(t,A){const e=this.prevCommands.filter((A=>A.sequenceId===t)).pop();e&&(this.prevCommands=this.prevCommands.filter((A=>A.sequenceId!==t)),e?.overrideOldState(A),this.prevCommands.push(e))}getLayoutById(t){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);const A=this.state.transaction?.layouts?.[t],e=this.state.variation?.layouts?.[t],n=A?.layout||e?.layout;if(!n)throw new Error(`No layout: ${t}`);const i=[...A?.elements||[],...e?.elements||[]];return this.getLayoutDataWithState(n,i)}getAllLayouts(){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);const t=[...Object.keys(this.state.transaction?.layouts),...Object.keys(this.state.variation?.layouts||{})];return[...new Set(t)].map((t=>this.getLayoutById(t)))}getLayoutDataWithState(t,A){return{layoutState:{layout:t,elements:A},getComponentWithProps:e=>FA(t,A,e)}}initialize(t,A){if(A)return void(this.state={transaction:A});let e={serializableWorkflow:{steps:[]},layouts:{}};t.forEach((t=>{e=new LA(t).apply(e)})),this.runStateCallbacks(),this.state={transaction:e}}commandReducer(t,A){if(A.varying){const e={layouts:{},serializableWorkflow:{steps:[]},...t.variation};return{...t,variation:A.apply(e)}}{const e=t.transaction||{layouts:{},serializableWorkflow:{steps:[]}};return{...t,transaction:A.apply(e)}}}}const xA=t=>"image"===t.type?(0,e.jsx)(dt,{...t},t.id):"frame"===t.type?(0,e.jsx)(Et,{...t},t.id):"illustration"===t.type?(0,e.jsx)(yA,{...t},t.id):"textbox"===t.type?(0,e.jsx)(EA,{...t},t.id):null,FA=(t,A,n)=>{const i=n.renderingConfiguration,a=i?.removeExcludedElements?A.filter((t=>!t.excludeFromExport)):A;return(0,e.jsx)(q,{preserveAspectRatio:void 0,elements:a,backgroundColor:t.transparentBackground?void 0:"white",width:n.width||t.width,height:n.height||t.height,viewBox:i?.region?{x:i.region.left,y:i.region.top,width:i.region.width,height:i.region.height}:{x:0,y:0,width:t.width,height:t.height},configuration:i,outlineArea:n.outlineArea,maxHeight:n.maxHeight,maxWidth:n.maxWidth,position:n.position,borderRadius:n.borderRadius,outlineColor:n.outlineColor})};function YA(t){return t.sort(((t,A)=>{const e=t.layer||0,n=A.layer||0;if(e<n)return-1;if(e>n)return 1;const i=t.layerIndex||0,a=A.layerIndex||0;return i<a?-1:i>a?1:0}))}class vA extends Error{constructor(){super("Element not found!"),Object.setPrototypeOf(this,vA.prototype)}}const SA=(t,A)=>NA(t,A).elements.find((A=>A.id===t)),NA=(t,A)=>{const e=Object.values(A).find((A=>A.elements.some((A=>A.id===t))));if(!e)throw new vA;return e},RA=(t,A)=>{const e=YA([...A.elements.filter((A=>A.id!==t.id)),t]);return{layout:A.layout,elements:e,modificationID:F()}},HA=async(t,A)=>{const e=[...Object.keys(t.layouts),...Object.keys(A?.layouts||{})],n=[...new Set(e)];for(let e=0;e<n.length;e++){const i=n[e],a=t.layouts[i],o=A?.layouts[i],r=(a||o).elements.filter((t=>"illustration"===t.type));for(let t=0;t<r.length;++t){const A=r[t];if(A.src&&!A.svg){const t=await Nt(A.src),e=await IA(t);A.svg=fA(e.svg,A.width,A.height,A.colors)}}}};class PA{undo(){if(!this.oldState)throw new Error("Cannot undo.");return this.oldState}overrideOldState(t){this.oldState=t}}class UA extends PA{constructor(t){super(),this.serializableWorkflow=t}apply(t){return this.oldState=t,{...t,serializableWorkflow:this.serializableWorkflow}}}class GA extends PA{constructor(t,A,e){super(),this.id=t,this.x=A,this.y=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,x:this.x,y:this.y},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class bA extends PA{constructor(t,A){super(),this.id=t,this.angle=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,rotation:this.angle},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class kA extends PA{constructor(t,A,e){super(),this.id=t,this.width=Math.abs(A),this.height=Math.abs(e)}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;let e={...A,width:this.width,height:this.height};if("frame"===A.type){const t=e;t.scaleX=t.scaleX*this.width/A.width,t.scaleY=t.scaleY*this.height/A.height}else if("textbox"===A.type){const t=e,n=(t.algorithm&&t.algorithm!==U.Autosize?t.input:t.text)??"";e=gA(t,n,A)}const n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class JA extends PA{constructor(t){super(),this.commands=t}apply(t){return this.oldState=t,this.commands.reduce(((t,A)=>A.apply(t)),t)}}class LA extends PA{constructor(t){super(),this.layout=t}apply(t){return this.oldState=t,{...t,layouts:{...t.layouts,[this.layout.id]:{elements:[],layout:{...this.layout},modificationID:F()}}}}}class OA extends PA{constructor(t){super(),this.panelName=t}apply(t){this.oldState=t;const A=Object.values(t.layouts).map((t=>{const A=t.layout.panelId===this.panelName;return{...t,elements:A?[]:[...t.elements],modificationID:F()}})),e={};return A.forEach((t=>{e[t.layout.id]=t})),{...t,layouts:e}}}class zA extends PA{constructor(t,A){super(),this.element=t,this.layout=A}apply(t){this.oldState=t,t.layouts[this.layout.id]||(t.layouts[this.layout.id]={layout:this.layout,elements:[],modificationID:""});const A=t.layouts[this.layout.id].elements;if(A.find((t=>t.id===this.element.id)))throw new Error(`Failed to apply new ${this.element.type} element because ID ${this.element.id} already taken`);if(this.element.productOverlay||0===A.length){const e=[...A,this.element];return void 0===this.element.layerIndex&&(this.element.layerIndex=this.assignIndex(this.element,e)),{...t,layouts:{...t.layouts,[this.layout.id]:{...t.layouts[this.layout.id],elements:e,modificationID:F()}}}}const e=A[A.length-1],n=e.productOverlay?e:null;let i;if(n&&A.pop(),null!==this.element.layerIndex&&void 0!==this.element.layerIndex)i=[...A,this.element].sort(((t,A)=>void 0!==t.layerIndex&&void 0!==A.layerIndex?t.layerIndex-A.layerIndex:0));else{const t=this.assignIndex(this.element,A);this.element.layerIndex=void 0!==t?t:0,i=[...A,this.element]}return n&&i.push(n),{...t,layouts:{...t.layouts,[this.layout.id]:{...t.layouts[this.layout.id],elements:i,modificationID:F()}}}}assignIndex(t,A){if(0===A.length)return 0;const e=A.filter((A=>(A.layer||0)===(t.layer||0))).sort(((t,A)=>(t.layerIndex||0)-(A.layerIndex||0)))[A.length-1]?.layerIndex;return void 0!==e?e+1:0}}class TA extends PA{constructor(t){super(),this.id=t}apply(t){this.oldState=t;let A=!1;const e=Object.values(t.layouts).map((t=>(t.elements.filter((t=>t.id!==this.id)).length!==t.elements.length&&(A=!0),{...t,elements:t.elements.filter((t=>t.id!==this.id)),modificationID:F()})));A||console.log(`Failed to delete element ${this.id}`);const n={};return e.forEach((t=>{n[t.layout.id]=t})),{...t,layouts:n}}}class jA extends PA{constructor(t,e){super(),this.el=I(A)(t),this.layout=e,this.el.id=F(),this.el.x+=5,this.el.y+=5}apply(t){return this.oldState=t,new zA(this.el,this.layout).apply(t)}}class KA extends PA{constructor(t,A,e){super(),this.id=t,this.color=A,this.textFillSpotColor=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,fill:this.color,fillSpotColorDefinition:this.textFillSpotColor},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class VA extends PA{constructor(t,A){super(),this.id=t,this.size=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,fontSize:this.size},n=NA(A.id,Object.values(t.layouts)),i=(A.algorithm&&A.algorithm!==U.Autosize?A.input:A.text)??"",a=RA(gA(e,i),n);return{...t,layouts:{...t.layouts,[n.layout.id]:a}}}}class WA extends PA{constructor(t,A){super(),this.id=t,this.algorithm=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,algorithm:this.algorithm},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class XA extends PA{constructor(t,A){super(),this.id=t,this.fontData=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,fontData:this.fontData},n=NA(A.id,Object.values(t.layouts)),i=(A.algorithm&&A.algorithm!==U.Autosize?A.input:A.text)??"",a=RA(gA(e,i),n);return{...t,layouts:{...t.layouts,[n.layout.id]:a}}}}class qA extends PA{constructor(t,A){super(),this.id=t,this.align=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,align:this.align},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class ZA extends PA{constructor(t,A,e){super(),this.id=t,this.imageData=A,this.offsets=e}apply(t){this.oldState=t;const A=NA(this.id,Object.values(t.layouts)),e=A.elements.findIndex((t=>t.id===this.id)),n=A.elements[e].pattern,i=[...A.elements];i.splice(e,1,{...A.elements[e],pattern:{...n,src:this.imageData.src,x:this.offsets.x,y:this.offsets.y,width:this.imageData.width,height:this.imageData.height,scaleX:this.offsets.zoom,scaleY:this.offsets.zoom}});const a={...A,elements:i,modificationID:F()};return{...t,layouts:{...t.layouts,[A.layout.id]:a}}}}class $A extends PA{constructor(t,A){super(),this.id=t,this.text=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=NA(A.id,Object.values(t.layouts)),n=RA(gA(A,this.text,A),e);return{...t,layouts:{...t.layouts,[e.layout.id]:n}}}}class _A extends PA{constructor(t,A,e){super(),this.id=t,this.className=A,this.fill=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=A.colors||{},n=e[this.className];e[this.className]={browserValue:this.fill,spotColor:n?.spotColor};const i={...A,colors:e},a=NA(A.id,Object.values(t.layouts)),o=RA(i,a);return{...t,layouts:{...t.layouts,[a.layout.id]:o}}}}class te extends PA{constructor(t,A,e){super(),this.id=t,this.svgBody=A,this.objectURL=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,svg:this.svgBody,cachedObjectURL:this.objectURL},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class Ae extends PA{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!SA(this.id,Object.values(t.layouts)).id)throw new vA;const A=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!A)throw new Error("Layout missing from state!");const e=A.elements.findIndex((t=>t.id===this.id));A.elements.push(A.elements.splice(e,1)[0]);const n=[...A.elements];return n.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:n,modificationID:F()}}}}}class ee extends PA{constructor(t){super(),this.id=t}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!e)throw new Error("Layout missing from state!");const n=e.elements.findIndex((t=>t.id===this.id));e.elements.splice(n,1),e.elements.unshift(A);const i=[...e.elements],a=i.splice(n,1)[0];return i.splice(n,0,a),i.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[e.layout.id]:{...t.layouts[e.layout.id],elements:i,modificationID:F()}}}}}class ne extends PA{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!SA(this.id,Object.values(t.layouts)).id)throw new vA;const A=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!A)throw new Error("Layout missing from state!");const e=A.elements.findIndex((t=>t.id===this.id)),n=e+1,i=[...A.elements],a=i.splice(e,1)[0];return i.splice(n,0,a),i.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:i,modificationID:F()}}}}}class ie extends PA{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!SA(this.id,Object.values(t.layouts)).id)throw new vA;const A=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!A)throw new Error("Layout missing from state!");const e=A.elements.findIndex((t=>t.id===this.id)),n=e-1,i=[...A.elements],a=i.splice(e,1)[0];return i.splice(n,0,a),i.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:i,modificationID:F()}}}}}class ae extends PA{constructor(t,A){super(),this.id=t,this.value=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!e)throw new Error("Layout missing from state!");return{...t,layouts:{...t.layouts,[e.layout.id]:RA({...A,layer:this.value},e)}}}}var oe={};y(oe,"patternImageDataCache",(()=>we)),y(oe,"frameDataCache",(()=>he)),y(oe,"generateFrameSVG",(()=>de)),y(oe,"generateDefaultRectangleFrameSvg",(()=>Ee)),y(oe,"getVariant",(()=>ue)),y(oe,"getFrameData",(()=>Qe)),y(oe,"calculateOffsets",(()=>Ce)),y(oe,"getPatternImageData",(()=>me)),y(oe,"GetSVGDimensions",(()=>pe)),y(oe,"svgStringDimensions",(()=>De));var re={};y(re,"getExifOrientation",(()=>ce)),y(re,"canvasDims",(()=>ge)),y(re,"getAttributesFromArrayBuffer",(()=>le));let se=null;const ce=t=>new Promise((A=>{const e=kt(t);(0,r.fromBuffer)(t).then((t=>{const n=t?.mime;if("image/jpeg"!==n)return A(1);(new(0,l.ExifImage)).loadImage(e,((t,e)=>A(t?1:e.image.Orientation||1)))}))})),ge=t=>{const A=8192,e=t.naturalWidth/t.naturalHeight;return t.naturalHeight<=A&&t.naturalWidth<=A?[t.naturalWidth,t.naturalHeight]:t.naturalHeight>t.naturalWidth?[e*A,A]:[A,A/e]},le=async t=>{const A=await(async t=>{const A=await Gt(t),e=await(0,g.loadImage)(A),[n,i]=ge(e),a=await(async()=>{if(null!==se)return!se;const t=await(0,g.loadImage)("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k=");return se=2===t.width&&3===t.height,!se})();if(!a){const t=(0,g.createCanvas)(n,i);return t.getContext("2d").drawImage(e,0,0,n,i),t}const o=await ce(t),[r,s]=o>4?[i,n]:[n,i],c=(0,g.createCanvas)(r,s),l=c.getContext("2d");switch(o){case 2:l.translate(r,0),l.scale(-1,1);break;case 3:l.translate(r,s),l.rotate(Math.PI);break;case 4:l.translate(0,s),l.scale(1,-1);break;case 5:l.rotate(-.5*Math.PI),l.scale(-1,1);break;case 6:l.rotate(-.5*Math.PI),l.translate(-r,0);break;case 7:l.rotate(-.5*Math.PI),l.translate(-r,s),l.scale(1,-1);break;case 8:l.rotate(.5*Math.PI),l.translate(0,-s)}return l.drawImage(e,0,0,r,s),c})(t);return"image/jpeg"===(await(0,r.fromBuffer)(t))?.mime?{dataUrl:A.toDataURL("image/jpeg",1),height:A.height,width:A.width}:{dataUrl:A.toDataURL(),height:A.height,width:A.width}};y({},"getDefaultVariant",(()=>Be));const Be=t=>{const A=t.variants;if(A){if(1===A.length)return A[0];if(void 0!==t.defaultVariant)return A.find((A=>A.id===t.defaultVariant))}},we=new Map,he=new Map,de=async(t,A)=>{if(!A){if(!t)throw new Error("No region or src supplied. Cannot construct frame!");return Ee(t)}return Nt(A)},Ee=t=>{const A=t.width,e=A/t.height,n=Math.max(A,512),i=n/e;return`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${n} ${i}'>\n <path id="target-path" d='M0 0 h ${n} v ${i} h ${-n} Z' />\n </svg>\n `},ue=(t,A)=>{if(!A)return;const e=A.variants?.find((A=>A.id===t.frameVariantId))||Be(A);if(!e)throw new Error(`No variant with ID: ${t.frameVariantId}`);if(!e.asset)throw new Error(`No asset for variant with ID: ${t.frameVariantId}`);return e},Qe=async t=>{const A=vt().parseFromString(t,"image/svg+xml"),e=A.querySelector("svg");if(!e)throw new Error("Malformed frame SVG: <svg> tag not found");const n=e.getAttribute("viewBox");if(!n)throw new Error("SVG missing viewBox.");const i=n.split(" "),a=parseFloat(i[3])||1,o=parseFloat(i[2])||1,r=A.getElementById("target-path"),s=A.getElementsByClassName("st0").item(0);if(r){const t=r.getAttribute("d");if(!t)throw new Error("Malformed frame SVG: 'd' attribute not found on target element");const A={path:t,width:o,height:a};return he.set(t,A),A}if(s){const t=s.getAttribute("d");if(!t)throw new Error("Malformed frame SVG: 'd' attribute not found on target element");const A={path:t,width:o,height:a};return he.set(t,A),A}throw new Error("Malformed frame SVG")},Ce=(t,A,e)=>{const n=A.width>=A.height,i=t.width>=t.height,a=A.width/2,o=A.height/2,r=(n?A.height:A.width)/(i?t.width:t.height),s=e?.scale||r,c=a-t.width/2*s,g=e?.left||c,l=o-t.height/2*s;return{x:g,y:e?.top||l,zoom:s}},me=async t=>{if(we.has(t))return we.get(t);if(t.endsWith("svg")){const A=await pe(t),e=A.width,n=A.height,i={src:t,width:e,height:n,aspect:e/n};return we.set(t,i),i}{const A=await St(t),e=await le(A),n={src:t,width:e.width,height:e.height,aspect:e.width/e.height};return we.set(t,n),n}},pe=async t=>{const A=await Nt(t);return De(A)},De=t=>{const A=vt().parseFromString(t,"image/svg+xml").querySelector("svg");if(!A)throw new Error("No svg tag found, this svg must be malformed!");const e=A.getAttribute("viewBox"),n=A.getAttribute("width"),i=A.getAttribute("height"),a=e?e?.split(" ").map((t=>Number(t))):[0,0,Number(n),Number(i)];if(!a)throw new Error("No viewbox or width/height values detected on SVG file!");return{width:a[2],height:a[3]}};var fe={};y(fe,"determineCorrectFontSizeAndLines",(()=>ye)),y(fe,"determineCorrectTextboxRegion",(()=>Me));const Ie=(t,A,e,n,i)=>{let a=A.map((t=>t.split("\n"))).flat(),o=a.length,r=a.map((t=>eA(t,n,i)));const s=i.getApproximateHeight()*n;let c=!0;for(;c;){if(s+(o-1)*e>t.height)return[null,null];const A=Math.max(...r);if(A<=t.width)return[a,A];const g=r.reduce(((t,A,e,n)=>A>n[t]?e:t),0),l=a[g];let B=!1,w=l.length;for(;!B&&w>-1;){w=l.lastIndexOf(" ",w-1);const A=[l.slice(0,w),l.slice(w+1)],e=A.map((t=>eA(t,n,i)));e[0]<=t.width&&(a=[...a.slice(0,g),...A,...a.slice(g+1)],r=[...r.slice(0,g),...e,...r.slice(g+1)],o+=1,B=!0)}B||(c=!1)}return[null,null]},ye=(t,A,e,n,i)=>{let a,o;const r=Vt(A),s=r.getFont();if(i.size){const A=t/s.unitsPerEm;return[a,o]=Ie(e,n,t,A,r),[i.size,a,o]}let c=6-AA;if(n.length>0){let t=n,A=0;for(;(!i.maxSize||c<=i.maxSize)&&t;)c+=AA,A=c/s.unitsPerEm,[t,o]=Ie(e,n,c,A,r)}c>6&&(c-=AA),i.minSize&&c<i.minSize&&(c=i.minSize);const g=c/s.unitsPerEm;return[a,o]=Ie(e,n,c,g,r),[c,a,o]},Me=(t,A,e,n,i)=>{let a={...t},o={...t},[r,s,c]=ye(e,A,o,n,{size:0,minSize:e,maxSize:e});var g,l;return c&&c<a.width&&(o.width=c,"left"===i?(o.left+=Math.sin(a.rotation*Math.PI/360)*(a.width-c),o.top+=Math.sin(a.rotation*Math.PI/180)*(c-a.width)/2):o.left+="right"===i?a.width-c:(a.width-c)/2,[r,s]=ye(e,A,o,n,{size:e}),r===e&&s&&(g=n,l=s,g.map(((t,A)=>[t,l[A]]))).every((([t,A])=>t===A))&&(a=o)),a};var xe={};y(xe,"svgObjectURL",(()=>ve)),y(xe,"LayoutElementFactory",(()=>Ne));const Fe=(t,A)=>{const e=t.layoutState.elements.filter((t=>t.layer===A)),n=Math.max(...e.map((t=>t.layerIndex)).filter((t=>void 0!==t)));return Math.max(n,0)+1},Ye=async t=>new Promise((A=>{Nt(t).then((t=>{A(t)})).catch((t=>console.error(t)))})),ve=async t=>{const A=vt().parseFromString(t,"image/svg+xml").firstElementChild;if(!A)throw new Error("Failed to read SVG");const e=(new XMLSerializer).serializeToString(A),n=document.createElement("canvas"),i=n.getContext("2d"),a=await B.Canvg.from(i,e,{anonymousCrossOrigin:!0,ignoreDimensions:!1}),o=A.getAttribute("width"),r=A.getAttribute("height"),s=2048;if(r&&o){const t=parseFloat(r),A=parseFloat(o)/t;A>1?a.resize(s,s/A):a.resize(s*A,s)}else a.resize(s,s);return await a.render(),await(async t=>new Promise(((A,e)=>{try{if(!URL||!URL.createObjectURL)throw new Error("Environment incapable of generating ObjectURL");t.toBlob((e=>{if(!e){if(0===t.width||0===t.height)throw new Error(`Canvas dimensions are invalid (${t.width},${t.height})`);if(t.width*t.height>=268435456)throw new Error(`Canvas dimensions exceed device limit (${t.width},${t.height})`);throw new Error("Couldn't generate object URL for Illustration, the blob was undefined!")}A(URL.createObjectURL(e))}))}catch(t){e(t)}})))(n)},Se=async(t,A,e,n)=>{const i=t.layoutState.layout.useEditableArea&&t.layoutState.layout.editableArea||{width:t.layoutState.layout.width,height:t.layoutState.layout.height,x:0,y:0},a=i.width<i.height?i.width:i.height,o=t.layoutState.layout.useEditableArea?a/1.3:a/2,r={top:i.y+i.height/2-o/2,left:i.x+i.width/2-o/2,width:o,height:o,rotation:0,panelId:t.layoutState.layout.panelId};if(e&&A===N.Illustration){const t=await IA(await Ye(e)),A=vt().parseFromString(t.svg,"image/svg+xml").firstElementChild.getAttribute("viewBox");if(!A)throw new Error("SVG missing viewBox.");const n=r.height,i=A.split(" "),a=(parseFloat(i[2])||1)/(parseFloat(i[3])||1);r.height=r.width/a,r.top+=(n-r.height)/2}if(e&&A===N.Image){const t=r.height,A=await St(e),n=await le(A),i=n.width/n.height;r.height=r.width/i,r.top+=(t-r.height)/2}if(e&&A===N.Textbox&&n?.text&&n?.fontScale){const t={assetUrl:e,name:(await jt(e)).names.fullName.en},A=Vt(t),a=eA(n.text,n?.fontScale,A);r.width=Math.min(a,.85*i.width),r.left=i.x+i.width/2-r.width/2}return r};class Ne{static async getFrame(t,A){const e=await de(A.region,A.src),n=await Qe(e),i=A.region||await Se(t,N.Frame);return{id:F(),x:i.left,y:i.top,width:i.width,height:i.height,layer:i.layer||0,layerIndex:i.layerIndex||Fe(t,i.layer||0),rotation:i.rotation,scaleX:i.width/n.width,scaleY:i.height/n.height,path:n.path,type:N.Frame,disablePlaceholder:A.configuration.disablePlaceholder,focalBlur:A.configuration.focalBlur,focalBlurStrength:A.configuration.focalBlurStrength,focalBlurRadius:A.configuration.focalBlurRadius,pattern:void 0,immutable:i.immutable}}static async getImage(t,A){const e=A.region||await Se(t,N.Image,A.src);return{id:F(),src:A.src,type:N.Image,y:e.top,x:e.left,rotation:e.rotation,width:e.width,height:e.height,layer:e.layer||0,layerIndex:e.layerIndex||Fe(t,e.layer||0),immutable:e.immutable,preserveAspectRatio:"none"}}static async getTextbox(t,A){const{configuration:e,fontSrc:n,designInputStep:i}=A,a=await jt(n),o={assetUrl:n,name:a.names.fullName.en},r=i?.text||e.defaultText||"",s=e.replaceableText?e.replaceableText.replace("{{}}",r):r,c=oA(s,{vertical:e.vertical,uppercase:e.uppercase}),g=A.region||await Se(t,N.Textbox,n,{text:c,fontScale:e.size?e.size/a.unitsPerEm:void 0}),l=gA({id:F(),type:N.Textbox,x:g.left,y:g.top,width:g.width,height:g.height,align:sA(e.textAlign,e.vertical),curved:e.curved,fill:i?.color||e.colour||"#000000",fontData:o,layer:g.layer||0,layerIndex:g.layerIndex||Fe(t,g.layer||0),paths:e.paths,rotation:g.rotation,vertical:e.vertical,verticalAlign:e.verticalAlign||"middle",algorithm:U.Traditional,fontSize:e.size||Math.max(Math.round(.025*g.height),1),text:c,input:r},c),B=tA({...g,height:l.height},o,l.fontSize,l?.text?.split("\n")||[],l.align);return{...l,x:B.left,y:B.top+(g.height-B.height)/2,width:B.width,height:B.height}}static async getShape(t,A){const e=`\n <svg\n xmlns="http://www.w3.org/2000/svg"\n xmlnsXlink="http://www.w3.org/1999/xlink"\n xmlSpace="preserve"\n preserveAspectRatio="none"\n version="1.1"\n width="1"\n height="1"\n viewBox="0 0 1 1"\n >\n <rect\n x="0"\n y="0"\n width="1"\n height="1"\n class="spiff-fill-shape"\n fill="${A.color}"\n />\n </svg>\n `,n={};n["spiff-fill-shape"]={browserValue:A.color};const i=A.region||await Se(t,N.Illustration),a=F();return{stepRegion:A.region,colors:n,id:a,svg:e,type:N.Illustration,y:i.top,x:i.left,rotation:i.rotation,width:i.width,height:i.height,layer:i.layer||0,layerIndex:i.layerIndex||Fe(t,i.layer||0),immutable:i.immutable}}static async getIllustration(t,A){const e=A.region||await Se(t,N.Illustration,A.src),n=await IA(await Ye(A.src)),i=await ve(n.svg),a=F();return{cachedObjectURL:i,stepRegion:A.region,colors:n.colors,id:a,svg:n.svg,type:N.Illustration,y:e.top,x:e.left,rotation:e.rotation,width:e.width,height:e.height,layer:e.layer||0,layerIndex:e.layerIndex||Fe(t,e.layer||0),immutable:e.immutable}}}function Re(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}class He extends Error{constructor(t){super(t),this.name=this.constructor.name}}class Pe extends He{constructor(t){super(`ConfigurationError - ${t}`)}}class Ue extends Pe{constructor(t){super(`Option not Configured: ${t.stepTitle}`),Re(this,"optionId",void 0),this.optionId=t?.optionId||"N/A"}}class Ge extends Pe{constructor(t){super(`Panel not Found: ${t.panelId}`),Re(this,"panelId",void 0),this.panelId=t?.panelId||"N/A"}}class be extends Pe{constructor(t){super(`Asset not found for variant: ${t.name}`),Re(this,"variant",void 0),this.variant=t}}class ke extends Pe{constructor(t){super(`Resource not found for asset: ${t.name}`),Re(this,"asset",void 0),this.asset=t}}class Je extends Pe{constructor(t,A){super(`Workflow Misconfiguration: ${t.stepName} - ${A}`),Re(this,"step",void 0),this.step=t}}class Le extends He{constructor(t){super(`ImplementationError - ${t}`)}}class Oe extends Le{constructor(t){super(`Unhandled Behavior Encountered: ${t}`)}}class ze extends Le{constructor(t){super(`Parsing Error: ${t}`)}}class Te extends Le{constructor(t){super(`Client Error: ${t}`)}}class je extends Le{constructor(t){super(`Resource Generation Failed: ${t}`)}}function Ke(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}class Ve{get(t){return localStorage.getItem(t)||void 0}set(t,A){localStorage.setItem(t,A)}remove(t){localStorage.removeItem(t)}getMap(t){const A=this.get(t);if(A)return new Map(JSON.parse(A))}setMap(t,A){const e=JSON.stringify([...A.entries()]);this.set(t,e)}}class We{constructor(){Ke(this,"storage",new Map)}get(t){return this.storage.get(t)||void 0}set(t,A){this.storage.set(t,A)}remove(t){this.storage.delete(t)}getMap(t){const A=this.get(t);if(A)return new Map(JSON.parse(A))}setMap(t,A){const e=JSON.stringify([...A.entries()]);this.set(t,e)}}const Xe=(()=>{try{return localStorage?new Ve:new We}catch{return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."),new We}})();function qe(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}const Ze=new class{constructor(){qe(this,"defaultServerUrl","https://api.spiff.com.au"),qe(this,"defaultServicesApiUrl","https://services.spiff.com.au"),qe(this,"defaultHubUrl","https://hub.spiff.com.au"),qe(this,"serverUrl",void 0),qe(this,"servicesApiUrl",void 0),qe(this,"hubUrl",void 0),qe(this,"serverUrlCallbacks",void 0),this.serverUrl=this.defaultServerUrl,this.servicesApiUrl=this.defaultServicesApiUrl,this.hubUrl=this.defaultHubUrl,this.serverUrlCallbacks=[]}getServerUrl(){return this.serverUrl}getServicesApiUrl(){return this.servicesApiUrl}getHubUrl(){return this.hubUrl}setServerUrl(t){this.serverUrl=t,this.serverUrlCallbacks.forEach((t=>t()))}setServicesApiUrl(t){this.servicesApiUrl=t}setHubUrl(t){this.hubUrl=t}addServerUrlCallback(t){this.serverUrlCallbacks.push(t)}};function $e(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}let _e;const tn=t=>{_e=t};const An=new class{constructor(){$e(this,"shadowGraphqlClient",void 0),this.shadowGraphqlClient=this.constructShadowGraphqlClient(),Ze.addServerUrlCallback((()=>{this.shadowGraphqlClient=this.constructShadowGraphqlClient()}))}getShadowGraphqlClient(){return this.shadowGraphqlClient}constructShadowGraphqlClient(){const A=(0,t.createHttpLink)({uri:`${Ze.getServerUrl()}/graphql`,fetch:d.fetch}),e=(0,w.setContext)((async(t,{headers:A})=>{const e=A||{},n=await(async()=>{const t={transactionOwnerId:_e};return"undefined"!=typeof window&&window.location.href.includes("/workflows/product/")?{...await new Promise((t=>{const A=Ze.getHubUrl();if(window.location.href.includes("localhost")||window.location.href.includes("ngrok"))return void t({});const e=n=>{n.origin===A&&(window.removeEventListener("message",e),t(n.data))};window.parent!==window&&(window.addEventListener("message",e,!1),window.parent.postMessage("ready",A))})),...t}:t})();return n.bearer&&(e.Authorization=`Bearer ${n.bearer}`),n.partnerId&&(e.partnerId=n.partnerId),n.activeIntegration&&(e.activeIntegration=n.activeIntegration),n.transactionOwnerId&&(e.transactionOwnerId=n.transactionOwnerId),{headers:e}})),n=(0,h.onError)((({operation:t,graphQLErrors:A,networkError:e})=>{(A||[]).forEach((({message:A,locations:e,path:n})=>{console.log("[GraphQL Operation Error]"),console.log("Name:"+t.operationName),console.log("Query:"+JSON.stringify(t.query)),console.log(`Message: ${A}, Location: ${JSON.stringify(e,null,2)}, Path: ${n}`),console.log("Variables:"+JSON.stringify(t.variables))})),e&&console.log("GraphQL Network error")}));const i=new(0,t.InMemoryCache)({addTypename:!1,typePolicies:{Transaction:{fields:{bulkEmailAddress:{read:(t=null)=>t,merge:(t,A)=>A||t||null},transactionOwnerId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},customLogoLink:{read:(t=null)=>t,merge:(t,A)=>A||t||null},workflowFooterLogoLink:{read:(t=null)=>t,merge:(t,A)=>A||t||null},workflowState:{read:(t=null)=>t,merge:(t,A)=>A||t||null},bulkSourceUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalDesignProductId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalDesignProductVariantId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalCartProductId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalCartProductVariantId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},lastSyncedAt:{read:(t=null)=>t,merge:(t,A)=>A||t||null}}},WorkflowProduct:{fields:{isPresent:{read:(t=null)=>t,merge:(t,A)=>A||t||null}}},Product:{fields:{imageUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},overlayImageUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},preloadImageUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},weight:{read:(t=null)=>t,merge:(t,A)=>A||t||null},conversionConfiguration:{read:(t=null)=>t,merge:(t,A)=>A||t||null},bulkConfiguration:{read:(t=null)=>t,merge:(t,A)=>A||t||null}}}}});return new(0,t.ApolloClient)({link:(0,t.from)([n,e,A]),cache:i,name:"Core"})}};function en(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}const nn=t.gql`
1
+ var t=require("@apollo/client"),A=require("lodash.clonedeep"),e=require("react/jsx-runtime"),n=require("opentype.js"),i=require("buffer"),a=require("axios"),o=require("https"),r=require("file-type"),s=require("util"),c=require("css"),g=require("canvas"),l=require("exif"),B=require("canvg"),w=require("@apollo/client/link/context"),h=require("@apollo/client/link/error"),d=require("cross-fetch"),E=require("react"),u=require("lodash.isequal"),Q=require("react-dom/server"),C=require("qrcode"),m=require("svg-path-bbox"),p=require("lodash.debounce");function D(t,A,e,n){Object.defineProperty(t,A,{get:e,set:n,enumerable:!0,configurable:!0})}var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function I(t){return t&&t.__esModule?t.default:t}function y(t,A,e,n){Object.defineProperty(t,A,{get:e,set:n,enumerable:!0,configurable:!0})}D(module.exports,"SpiffCommerceClient",(()=>Mo)),D(module.exports,"CommandContext",(()=>MA)),D(module.exports,"spiffCoreConfiguration",(()=>Ze)),D(module.exports,"PromiseQueue",(()=>di)),D(module.exports,"QueueablePromise",(()=>hi)),D(module.exports,"MockWorkflowManager",(()=>Fo)),D(module.exports,"InformationMessageType",(()=>Ta)),D(module.exports,"StepHandle",(()=>Xa)),D(module.exports,"TextStepHandle",(()=>oo)),D(module.exports,"FrameStepHandle",(()=>No)),D(module.exports,"BulkStepHandle",(()=>_a)),D(module.exports,"ShapeStepHandle",(()=>ao)),D(module.exports,"IllustrationStepHandle",(()=>to)),D(module.exports,"MaterialStepHandle",(()=>Ao)),D(module.exports,"ModelStepHandle",(()=>eo)),D(module.exports,"PictureStepHandle",(()=>no)),D(module.exports,"QuestionStepHandle",(()=>io)),D(module.exports,"BulkPriceCalculationStrategy",(()=>vn)),D(module.exports,"OptionNotFoundError",(()=>Ue)),D(module.exports,"LayoutNotFoundError",(()=>Ge)),D(module.exports,"AssetNotFoundError",(()=>be)),D(module.exports,"ResourceNotFoundError",(()=>ke)),D(module.exports,"MisconfigurationError",(()=>Je)),D(module.exports,"ParseError",(()=>ze)),D(module.exports,"UnhandledBehaviorError",(()=>Oe)),D(module.exports,"assetService",(()=>ln)),D(module.exports,"designService",(()=>uo)),D(module.exports,"createDesign",(()=>wo)),D(module.exports,"optionService",(()=>dn)),D(module.exports,"persistenceService",(()=>Xe)),D(module.exports,"graphQlManager",(()=>An)),D(module.exports,"toast",(()=>ba)),D(module.exports,"FrameService",(()=>pa)),D(module.exports,"frameStepService",(()=>Ya)),D(module.exports,"modelStepService",(()=>Na)),D(module.exports,"materialStepService",(()=>Sa)),D(module.exports,"shapeStepService",(()=>Ua)),D(module.exports,"questionStepService",(()=>Pa)),D(module.exports,"digitalContentStepService",(()=>xa)),D(module.exports,"moduleStepService",(()=>Ra)),D(module.exports,"pictureStepService",(()=>Ha)),D(module.exports,"textStepService",(()=>Oa)),D(module.exports,"illustrationStepService",(()=>va)),D(module.exports,"ProductCameraRig",(()=>Fn)),D(module.exports,"FrameStep",(()=>vo)),D(module.exports,"ConversionLocation",(()=>Nn)),D(module.exports,"ConversionData",(()=>Hn)),D(module.exports,"getWorkflow",(()=>Io)),D(module.exports,"AssetType",(()=>T)),D(module.exports,"BringForwardCommand",(()=>ne)),D(module.exports,"BringToFrontCommand",(()=>Ae)),D(module.exports,"BringToBackCommand",(()=>ee)),D(module.exports,"CanvasCommand",(()=>PA)),D(module.exports,"CreateElementCommand",(()=>zA)),D(module.exports,"CreateLayoutCommand",(()=>LA)),D(module.exports,"DeleteElementCommand",(()=>TA)),D(module.exports,"FontAlignmentCommand",(()=>qA)),D(module.exports,"FontColorCommand",(()=>KA)),D(module.exports,"FontSizeCommand",(()=>VA)),D(module.exports,"FontSourceCommand",(()=>XA)),D(module.exports,"GroupCommand",(()=>JA)),D(module.exports,"LayoutElementFactory",(()=>Ne)),D(module.exports,"LayoutElementType",(()=>N)),D(module.exports,"MoveCommand",(()=>GA)),D(module.exports,"ResizeCommand",(()=>kA)),D(module.exports,"RotateCommand",(()=>bA)),D(module.exports,"SendBackwardsCommand",(()=>ie)),D(module.exports,"StepAspectType",(()=>W)),D(module.exports,"StepType",(()=>K)),D(module.exports,"TextChangeCommand",(()=>$A)),D(module.exports,"UnitOfMeasurement",(()=>b)),D(module.exports,"dataUrlFromExternalUrl",(()=>Ut)),D(module.exports,"findElement",(()=>SA)),D(module.exports,"frameDataCache",(()=>he)),D(module.exports,"generate",(()=>F)),D(module.exports,"getAxisAlignedBoundingBox",(()=>$)),D(module.exports,"generateSVGWithUnknownColors",(()=>IA)),D(module.exports,"getAttributesFromArrayBuffer",(()=>le)),D(module.exports,"rehydrateSerializedLayout",(()=>HA)),D(module.exports,"getFrameData",(()=>Qe)),D(module.exports,"getSvgElement",(()=>FA)),D(module.exports,"loadFontFromDataUrl",(()=>Kt)),D(module.exports,"loadFontFromExternalUrl",(()=>jt)),D(module.exports,"determineCorrectFontSizeAndLines",(()=>ye)),D(module.exports,"patternImageDataCache",(()=>we)),D(module.exports,"generateCommands",(()=>Ki)),D(module.exports,"registerJSDOM",(()=>It)),D(module.exports,"minZoom",(()=>si)),D(module.exports,"AdvancedEditor",(()=>ea)),D(module.exports,"TransformWrapper",(()=>Ro)),D(module.exports,"EditorCore",(()=>Aa)),D(module.exports,"useLayouts",(()=>Qn)),D(module.exports,"useEditorState",(()=>xn)),D(module.exports,"useEditorInteraction",(()=>gi)),D(module.exports,"useShortcutCombination",(()=>li)),D(module.exports,"commandReducer",(()=>fn)),D(module.exports,"getDefaultState",(()=>Dn)),D(module.exports,"CommandContextContext",(()=>En)),D(module.exports,"AdvancedEditorStateProvider",(()=>yn)),D(module.exports,"AdvancedEditorContext",(()=>In)),D(module.exports,"UICommand",(()=>Mn)),D(module.exports,"EditorSubMenu",(()=>mn)),D(module.exports,"ElementEventType",(()=>Gn)),D(module.exports,"KeyEvent",(()=>kn)),D(module.exports,"gatherVaryingStepAspects",(()=>la));var M="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==f?f:{},x={};y(x,"CanvasCommand",(()=>PA)),y(x,"UpdateWorkflowStateCommand",(()=>UA)),y(x,"MoveCommand",(()=>GA)),y(x,"RotateCommand",(()=>bA)),y(x,"ResizeCommand",(()=>kA)),y(x,"GroupCommand",(()=>JA)),y(x,"CreateLayoutCommand",(()=>LA)),y(x,"ClearLayoutCommand",(()=>OA)),y(x,"CreateElementCommand",(()=>zA)),y(x,"DeleteElementCommand",(()=>TA)),y(x,"CloneElementCommand",(()=>jA)),y(x,"FontColorCommand",(()=>KA)),y(x,"FontSizeCommand",(()=>VA)),y(x,"FontAlgorithmCommand",(()=>WA)),y(x,"FontSourceCommand",(()=>XA)),y(x,"FontAlignmentCommand",(()=>qA)),y(x,"UpdateFramePattern",(()=>ZA)),y(x,"TextChangeCommand",(()=>$A)),y(x,"IllustrationColorCommand",(()=>_A)),y(x,"IllustrationCacheCommand",(()=>te)),y(x,"BringToFrontCommand",(()=>Ae)),y(x,"BringToBackCommand",(()=>ee)),y(x,"BringForwardCommand",(()=>ne)),y(x,"SendBackwardsCommand",(()=>ie)),y(x,"LayerCommand",(()=>ae)),y({},"generate",(()=>F));const F=()=>{const t=()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1);return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()};var Y={};y(Y,"ElementNotFoundError",(()=>vA)),y(Y,"findElement",(()=>SA)),y(Y,"findLayoutForElement",(()=>NA)),y(Y,"updatedLayoutForElement",(()=>RA)),y(Y,"rehydrateSerializedLayout",(()=>HA));var v={};y(v,"CommandContext",(()=>MA)),y(v,"getSvgElement",(()=>FA)),y(v,"elementFactory",(()=>xA)),y(v,"sortElementsByLayersWithIndex",(()=>YA)),y({},"SVGLayout",(()=>q));var S={};let N;var R;let H;var P;let U;var G;let b;var k;let J;var L;let O;var z;let T;var j;let K;var V;let W;var X;y(S,"LayoutElementType",(()=>N)),y(S,"LayoutRenderingPurpose",(()=>H)),y(S,"TextAlgorithm",(()=>U)),y(S,"UnitOfMeasurement",(()=>b)),y(S,"ScaleAxis",(()=>J)),y(S,"MaterialEffectMode",(()=>O)),y(S,"AssetType",(()=>T)),y(S,"StepType",(()=>K)),y(S,"StepAspectType",(()=>W)),(R=N||(N={})).Frame="frame",R.Image="image",R.Illustration="illustration",R.Textbox="textbox",(P=H||(H={}))[P.ThreeD=0]="ThreeD",P[P.FreeDesign=1]="FreeDesign",P[P.Print=2]="Print",(G=U||(U={})).Autosize="Autosize",G.Traditional="Traditional",(k=b||(b={})).Pixel="px",k.Millimeter="mm",k.Centimeter="cm",(L=J||(J={}))[L.North=0]="North",L[L.Northeast=1]="Northeast",L[L.East=2]="East",L[L.Southeast=3]="Southeast",L[L.South=4]="South",L[L.Southwest=5]="Southwest",L[L.West=6]="West",L[L.Northwest=7]="Northwest",(z=O||(O={})).None="None",z.RemoveWhenSelected="RemoveWhenSelected",z.ApplyWhenSelected="ApplyWhenSelected",(j=T||(T={})).Font="Font",j.Frame="Frame",j.Illustration="Illustration",j.Image="Image",j.Model="Model",j.Material="Material",j.Color="Color",j.QuestionnaireCollateral="QuestionnaireCollateral",j.RequestCollateral="RequestCollateral",j.SignupCollateral="SignupCollateral",j.Video="Video",j.ColorProfile="ColorProfile",(V=K||(K={})).Bulk="Bulk",V.DigitalContent="DigitalContent",V.Finish="Finish",V.Frame="Frame",V.Illustration="Illustration",V.Introduction="Introduction",V.Material="Material",V.Model="Model",V.Module="Module",V.Picture="Picture",V.Photo="Photo",V.ProductOverlay="ProductOverlay",V.Question="Question",V.Shape="Shape",V.SilentIllustration="SilentIllustration",V.Text="Text",(X=W||(W={})).Color="Color",X.Colors="Colors",X.Selection="Selection",X.Selections="Selections",X.Text="Text",X.Upload="Upload";const q=({backgroundColor:t,outlineColor:A,borderRadius:n,configuration:i,elements:a,height:o,maxHeight:r,maxWidth:s,outlineArea:c,position:g,preserveAspectRatio:l,viewBox:B,width:w})=>{const h=n||0,d=2*(c?.scale||1),E=B||{x:0,y:0,width:w,height:o},u=`${E.x} ${E.y} ${E.width} ${E.height}`,Q=F(),C=i.purpose===H.FreeDesign&&(0,e.jsx)("defs",{children:(0,e.jsx)("clipPath",{id:"viewboxClip",children:(0,e.jsx)("rect",{width:E.width,height:E.height,rx:h})})}),m=i.colorProfiles?.map(((t,A)=>(0,e.jsx)("color-profile",{name:t.name,xlinkHref:t.key,children:" "},A))),p=YA(a.map((t=>({...t,_renderingConfiguration:i,mask:c?`url(#viewmask-${Q})`:void 0}))));return(0,e.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve",version:"1.1",preserveAspectRatio:l,width:w,height:o,style:{gridColumn:1,gridRow:1,maxWidth:s,maxHeight:r,position:g},viewBox:u,children:[m,C,!!t&&(0,e.jsx)("rect",{id:"layout-background",width:E.width,height:E.height,fill:t,rx:h}),(0,e.jsx)("g",{id:"element-group",clipPath:i.purpose===H.FreeDesign?"url(#viewboxClip)":void 0,children:p.map((t=>xA(t))).filter((t=>!!t))}),c&&(0,e.jsx)("rect",{x:c.x,y:c.y,width:c.width,height:c.height,fill:"none",stroke:c.hidden?"none":A||"#aaaaaa",strokeWidth:d/2,strokeDasharray:`${2*d} ${d}`}),c&&(0,e.jsxs)("mask",{id:`viewmask-${Q}`,children:[(0,e.jsx)("rect",{x:E.x,y:E.y,width:E.width,height:E.height,fill:"black"}),(0,e.jsx)("rect",{x:c.x,y:c.y,width:c.width,height:c.height,fill:"white"})]})]})};y({},"Image",(()=>dt));var Z={};y(Z,"getAxisAlignedBoundingBox",(()=>$)),y(Z,"degreesToRadians",(()=>tt)),y(Z,"findAngle",(()=>_)),y(Z,"radiansToDegrees",(()=>At)),y(Z,"isCloseToValue",(()=>et)),y(Z,"getTrueCoordinates",(()=>nt)),y(Z,"getPointOfRotation",(()=>it)),y(Z,"getNWPoint",(()=>at)),y(Z,"getNEPoint",(()=>ot)),y(Z,"getSWPoint",(()=>rt)),y(Z,"getSEPoint",(()=>st)),y(Z,"turnRightClockwise",(()=>ct)),y(Z,"currentDirection",(()=>gt)),y(Z,"getElementVertices",(()=>lt)),y(Z,"rotateAroundPoint",(()=>Bt)),y(Z,"mmPerPixel",(()=>wt)),y(Z,"cmPerPixel",(()=>ht));const $=(t,A,e,n,i)=>{const a=tt(i),o=e/2,r=n/2,s=t+o,c=A+r,g=Math.sin(a),l=Math.cos(a),B=-r,w=o*l-B*g,h=o*l-r*g,d=o*g+B*l,E=o*g+r*l,u=Math.max(Math.abs(w),Math.abs(h)),Q=Math.max(Math.abs(d),Math.abs(E));return{minX:s-u,maxX:s+u,minY:c-Q,maxY:c+Q}},_=(t,A,e)=>{const n=Math.sqrt(Math.pow(A.x-t.x,2)+Math.pow(A.y-t.y,2)),i=Math.sqrt(Math.pow(A.x-e.x,2)+Math.pow(A.y-e.y,2)),a=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));return Math.acos((i*i+n*n-a*a)/(2*i*n))*(180/Math.PI)},tt=t=>t*(Math.PI/180),At=t=>t*(180/Math.PI),et=(t,A,e)=>Math.abs(t-A)<e,nt=(t,A,e)=>{const n=Math.sin(tt(e)),i=Math.cos(tt(e));return{x:(t.x-A.x)*i-(t.y-A.y)*n+A.x,y:(t.x-A.x)*n+(t.y-A.y)*i+A.y}},it=(t,A)=>({x:(t.x+A.x)/2,y:(t.y+A.y)/2}),at=(t,A,e,n)=>({x:t.x+A?.x*e,y:t.y+A?.y*n}),ot=(t,A,e,n)=>({x:t.x+(A?.x+A?.width)*e,y:t.y+A?.y*n}),rt=(t,A,e,n)=>({x:t.x+A?.x*e,y:t.y+(A?.y+A?.height)*n}),st=(t,A,e,n)=>({x:t.x+(A?.x+A?.width)*e,y:t.y+(A?.y+A?.height)*n}),ct=t=>{switch(t){case J.North:return J.East;case J.East:return J.South;case J.South:return J.West;case J.West:return J.North;case J.Northwest:return J.Northeast;case J.Northeast:return J.Southeast;case J.Southeast:return J.Southwest;case J.Southwest:return J.Northwest}},gt=(t,A)=>A>45&&A<=135?ct(t):A>135&&A<=225?ct(ct(t)):A>225&&A<=315?ct(ct(ct(t))):t,lt=(t,A={x:0,y:0},e={x:1,y:1})=>{const n=tt(t.rotation),i={x:A.x+t.x*e.x,y:A.x+t.y*e.y},a={x:t.x+t.width,y:t.y},o={x:A.x+(t.x+t.width)*e.x,y:A.y+(t.height+t.y)*e.y},r={x:A.x+t.x*e.x,y:A.y+(t.height+t.y)*e.y},s={x:(r.x+o.x)/2,y:r.y-t.height*e.y/2};return{a:Bt(i,s,n),b:Bt(a,s,n),c:Bt(o,s,n),d:Bt(r,s,n),center:s}},Bt=(t,A,e)=>{const n=Math.sin(e),i=Math.cos(e);return{x:(t.x-A.x)*i-(t.y-A.y)*n+A.x,y:(t.x-A.x)*n+(t.y-A.y)*i+A.y}},wt=.352778,ht=.035277,dt=t=>{const A=t.rotation||0,n=tt(A),i=Math.cos(n),a=-Math.sin(n);return(0,e.jsx)("g",{mask:t.stepName||t.productOverlay?void 0:t.mask,children:(0,e.jsx)("g",{transform:`\n matrix(1, 0, 0, 1, ${t.x}, ${t.y})\n matrix(1, 0, 0, 1, ${t.width/2}, ${t.height/2})\n matrix(${i}, ${-a}, ${a}, ${i}, 0, 0)\n matrix(1, 0, 0, 1, ${-t.width/2}, ${-t.height/2})\n `,children:(0,e.jsx)("image",{xlinkHref:t.src,preserveAspectRatio:t.preserveAspectRatio,width:t.width,height:t.height})})})};y({},"Frame",(()=>Et));const Et=t=>{const A=`spiff-frame-${t.id}`,n=`spiff-frame-blur-${t.id}`,i=`spiff-frame-blur-edge-${t.id}`,a=`spiff-frame-focal-mask-${t.id}`,o=!!t.focalBlur&&!!t.pattern,r=t.rotation||0,s=tt(r),c=Math.cos(s),g=-Math.sin(s);return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("defs",{children:(o=>{const r=t.pattern?.x||0,s=t.pattern?.y||0,c=t.pattern?t.pattern.width*t.pattern.scaleX+Math.abs(r):256,g=t.pattern?t.pattern.height*t.pattern.scaleY+Math.abs(s):256,l=t.pattern?t.pattern.width*t.pattern.scaleX:256,B=t.pattern?t.pattern.height*t.pattern.scaleY:256;return(0,e.jsxs)("g",{mask:t.stepName?void 0:t.mask,children:[(0,e.jsx)("pattern",{patternUnits:t.pattern?void 0:"userSpaceOnUse",x:0,y:0,width:t.pattern?1:c,height:t.pattern?1:g,"data-frame-width":t.pattern?c:void 0,"data-frame-height":t.pattern?g:void 0,id:A,children:(0,e.jsx)("image",{preserveAspectRatio:"none",x:r,y:s,width:l,height:B,xlinkHref:t.disablePlaceholder?"":t.pattern?t.pattern.src:"data:image/png;base64,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"})}),o?(0,e.jsx)(ut,{path:t.path,width:t.width,height:t.height,focalBlurStrength:t.focalBlurStrength||1,focalBlurRadius:t.focalBlurRadius||10,blurFilterId:n,focalMaskId:a,blurEdgeClipId:i}):null]})})(o)}),(0,e.jsx)("g",{mask:t.stepName?void 0:t.mask,children:(0,e.jsxs)("g",{transform:`\n matrix(1, 0, 0, 1, ${t.x}, ${t.y})\n matrix(1, 0, 0, 1, ${t.width/2}, ${t.height/2})\n matrix(${c}, ${-g}, ${g}, ${c}, 0, 0)\n matrix(1, 0, 0, 1, ${-t.width/2}, ${-t.height/2})\n matrix(${t.scaleX}, 0, 0, ${t.scaleY}, 0, 0)\n `,children:[(0,e.jsx)("path",{filter:o?`url(#${n})`:void 0,mask:o?`url(#${i})`:void 0,d:t.path,style:{fill:`url(#${A})`,opacity:t.opacity}}),o?(0,e.jsx)("path",{mask:`url(#${a})`,d:t.path,style:{fill:`url(#${A})`,opacity:t.opacity}}):void 0]})})]})},ut=t=>{const{path:A,width:n,height:i,focalBlurStrength:a,focalBlurRadius:o,blurFilterId:r,focalMaskId:s,blurEdgeClipId:c}=t;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("filter",{id:r,children:(0,e.jsx)("feGaussianBlur",{stdDeviation:a||0})}),(0,e.jsx)("mask",{id:s,children:(0,e.jsx)("circle",{cx:n/2,cy:i/2,r:o||0,fill:"white",filter:`url(#${r})`})}),(0,e.jsx)("mask",{id:c,children:(0,e.jsx)("path",{d:A,style:{fill:"white",opacity:1}})})]})};y({},"Textbox",(()=>EA));var Qt={};y(Qt,"fontSizeStep",(()=>AA)),y(Qt,"textWidth",(()=>eA)),y(Qt,"charWidth",(()=>nA)),y(Qt,"lineWidth",(()=>iA)),y(Qt,"applyTextTransformations",(()=>oA)),y(Qt,"zip",(()=>rA)),y(Qt,"getTextAlignment",(()=>sA)),y(Qt,"getAnchor",(()=>cA)),y(Qt,"recomputeTextOnElement",(()=>gA)),y(Qt,"defaultLineHeightFactor",(()=>lA));var Ct={};y(Ct,"refitTextbox",(()=>_t)),y(Ct,"recalculateTextboxRegion",(()=>tA));var mt={};y(mt,"FontMetrics",(()=>zt)),y(mt,"loadFontFromExternalUrl",(()=>jt)),y(mt,"loadFontFromDataUrl",(()=>Kt)),y(mt,"getFontMetrics",(()=>Vt));var pt={};y(pt,"registerJSDOM",(()=>It)),y(pt,"createElement",(()=>Ft)),y(pt,"createElementNS",(()=>Yt)),y(pt,"domParser",(()=>vt)),y(pt,"fetchAsArrayBuffer",(()=>St)),y(pt,"fetchAsString",(()=>Nt)),y(pt,"loadFontFaceSet",(()=>Rt)),y(pt,"xmlSerializer",(()=>Ht)),y(pt,"toBase64",(()=>Pt)),y(pt,"dataUrlFromExternalUrl",(()=>Ut)),y(pt,"arrayBufferToDataUrl",(()=>Gt)),y(pt,"arrayBufferToBuffer",(()=>kt)),y(pt,"dataUrlToArrayBuffer",(()=>bt));var Dt=i.Buffer;let ft;function It(t){ft=t}function yt(){if(!ft)throw new Error("JSDOM is not registered. Please register it before calling this function.");return new ft}if(void 0===M.TextEncoder){const{TextEncoder:t}=s;M.TextEncoder=t}if(void 0===M.TextDecoder){const{TextDecoder:t}=s;M.TextDecoder=t}const Mt=new(I(o).Agent)({rejectUnauthorized:!0}),xt=t=>t.every((t=>"undefined"!==t)),Ft=t=>xt([typeof document])?document.createElement(t):yt().window.document.createElement(t),Yt=(t,A)=>{if(xt([typeof document]))return document.createElementNS(t,A);const e=yt().window.document.createElement(A);return e.setAttribute("xmlns",t),e},vt=()=>xt([typeof DOMParser])?new DOMParser:new(yt().window.DOMParser),St=t=>{if(xt([typeof fetch]))return new Promise(((A,e)=>{fetch(t).then((t=>{A(t.arrayBuffer())})).catch((t=>{e(t)}))}));{const A=t.replace("localhost","localstack");return new Promise(((t,e)=>{I(a).get(A,{responseType:"arraybuffer",httpsAgent:Mt}).then((A=>{t(A.data)})).catch((t=>{e(t)}))}))}},Nt=t=>{if(xt([typeof fetch]))return new Promise(((A,e)=>{fetch(t).then((t=>{A(t.text())})).catch(e)}));{const A=t.replace("localhost","localstack");return new Promise(((t,e)=>{I(a).get(A,{responseType:"text",httpsAgent:Mt}).then((A=>{t(A.data)})).catch(e)}))}},Rt=async(t,A)=>{if(xt([typeof FontFace])){const e=t.names.fullName.en,n=new FontFace(e,`url(${A})`);return document.fonts.add(n),n.load()}},Ht=()=>xt([typeof XMLSerializer])?new XMLSerializer:new(yt().window.XMLSerializer),Pt=t=>xt([typeof btoa])?btoa(t):Dt.from(t).toString("base64"),Ut=async t=>{if(xt([typeof fetch,typeof Blob,typeof FileReader])){const A=await fetch(t),e=await A.blob();return await Lt(e)}const A=(await I(a).get(t,{responseType:"arraybuffer"})).data;return Gt(A)},Gt=async t=>{const A=await(async t=>{const A=await(0,r.fromBuffer)(t);return A?A.mime:"image/svg+xml"})(t);return`data:${A};base64,${kt(t).toString("base64")}`},bt=t=>{const A=t.replace(/\r?\n/g,""),e=A.indexOf(",");if(-1===e||e<=4)throw new TypeError("malformed data: URI");const n=A.substring(5,e).split(";");let i=!1;for(let t=1;t<n.length;t++)"base64"===n[t]&&(i=!0);const a=i?"base64":"ascii",o=unescape(A.substring(e+1)),r=Dt.from(o,a);return Jt(r)},kt=t=>Dt.from(t),Jt=t=>{const A=new ArrayBuffer(t.byteLength),e=new Uint8Array(A);for(let A=0;A<t.length;++A)e[A]=t[A];return A},Lt=t=>new Promise(((A,e)=>{const n=new FileReader;n.onload=function(t){const n=t.target;n&&n.result?A(n.result.toString()):e()},n.readAsDataURL(t)})),Ot=new Map;class zt{constructor(t){this.font=t,this.glyphsFromText=new Map,this.kerningValues=new Map,this.height=this.calculateApproximateHeight()}getFont(){return this.font}getGlyphs(t){const A=this.glyphsFromText.get(t);if(A)return A;const e=this.font.stringToGlyphs(t);return this.glyphsFromText.set(t,e),e}getApproximateHeight(){return this.height}getExactHeight(t){const A=this.font.stringToGlyphs(t);let e=0,n=0;return A.forEach((t=>{const A=t.getMetrics();e=Math.max(e,A.yMax),n=Math.min(n,A.yMin)})),e-n}getKerningValue(t,A){let e=this.kerningValues.get(t.name);e||(e=new Map,this.kerningValues.set(t.name,e));let n=e.get(A.name);return n||(n=this.font.getKerningValue(t,A),e.set(A.name,n)),n}calculateApproximateHeight(){const t=this.font.stringToGlyphs("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");let A=0,e=0;return t.forEach((t=>{const n=t.getMetrics();A=Math.max(A,n.yMax),e=Math.min(e,n.yMin)})),A-e}}const Tt=t=>"data:"===t.substring(0,5).toLowerCase().trim(),jt=async t=>{const A=Tt(t)?Kt(t):Kt(await Ut(t));return Wt(A,{assetUrl:Tt(t)?t:await Ut(t),name:A.names.fullName.en}),await Rt(A,t),A},Kt=t=>{const A=bt(t),e=I(n).parse(A);return Wt(e,{assetUrl:t,name:e.names.fullName.en}),e},Vt=t=>{const A=Ot.get(t.name);if(A)return A;throw new Error("Font metrics unavailable for font")},Wt=(t,A)=>{const e=new zt(t);return Ot.set(A.name,e),e},Xt=(t,A,e,n)=>Math.max(nA(t.join("\n"),e,n),A),qt=(t,A,e,n,i,a)=>{const o=(a||lA)*i.getApproximateHeight(),r=A.split("\n");try{const A=r.flatMap((A=>Zt(A,t.width,n,i))),a=A.flatMap((t=>t.lines));return{lines:a,requiredHeight:A.flatMap((t=>t.lines)).length*(n*o),fontSize:e,requiredWidth:Xt(a,t.width,n,i)}}catch(a){const r=A.split("");return{lines:r,requiredHeight:r.length*(n*o),fontSize:e,requiredWidth:Xt(r,t.width,n,i)}}},Zt=(t,A,e,n)=>{const i=eA(t,e,n);if(i<=A)return{lines:[t],width:i};if(!(t.indexOf(" ")>-1)){if(t.length<=1)throw new Error(`Character ${t} is wider than region`);const i=Math.floor(t.length/2),a=Zt(t.slice(0,i),A,e,n),o=Zt(t.slice(i),A,e,n);return{lines:[...a.lines,...o.lines],width:Math.max(a.width,o.width)}}const a=t.split(" "),o=[];let r=-1/0,s=0;for(;s<a.length;){const t=a[s];if(eA(t,e,n)>A){const i=Zt(t,A,e,n);o.push(...i.lines),r=Math.max(r,i.width),s++}else{const i=[t];r=Math.max(r,eA(t,e,n));let c=s+1,g=!0;for(;c<a.length&&g;){const t=a[c],o=eA(`${i.join(" ")} ${t}`,e,n);o<=A?(i.push(t),r=Math.max(r,o),c++):g=!1}o.push(i.join(" ")),s=c}}if(r<0)throw new Error(`No max width calculated for text: ${o}.`);return{lines:o,width:r}},$t=(t,A,e,n,i,a)=>{const o=(a??lA)*A.getApproximateHeight(),r=1/e.unitsPerEm,s=n/iA(t,r,A),c=i/(t.length*o*r);return Math.min(c,s)},_t=(t,A,e,n)=>{const i=Vt(A.fontData),a=i.getFont(),o=A.fontSize/a.unitsPerEm;if(!e)return qt(A,t,A.fontSize,o,i,n);let r;if(r=A.text?A.text.split("\n"):A.input?.split("\n")??[""],e.input===t&&A.width===e.width&&A.height===e.height&&A.lineHeight===e.lineHeight)return{lines:r,requiredHeight:A.height,requiredWidth:Xt(r,A.width,o,i),fontSize:A.fontSize};const s=A.width!==e.width!=(A.height!==e.height);return A.lineHeight!==e.lineHeight||s||e.input!==t?qt(A,t,A.fontSize,o,i,n):{lines:r,requiredHeight:A.height,requiredWidth:Xt(r,A.width,o,i),fontSize:$t(r,i,a,A.width,A.height,n)}},tA=(t,A,e,n,i)=>{const a=Vt(A).getFont();let o={...t},r={...t},s=iA(n,e/a.unitsPerEm,Vt(A));return s&&s<o.width&&(r.width=s,"left"===i?(r.left+=Math.sin(o.rotation*Math.PI/360)*(o.width-s),r.top+=Math.sin(o.rotation*Math.PI/180)*(s-o.width)/2):r.left+="right"===i?o.width-s:(o.width-s)/2,n&&rA(n,n).every((([t,A])=>t===A))&&(o=r)),o},AA=1,eA=(t,A,e)=>{let n=0;const i=e.getGlyphs(t);return i.forEach(((t,A)=>{if(t.advanceWidth&&(n+=t.advanceWidth),A<i.length-1){const a=e.getKerningValue(t,i[A+1]);n+=a}})),n*=A,n},nA=(t,A,e)=>{let n=0;const i=e.getGlyphs(t);return i.forEach(((t,A)=>{if(t.advanceWidth&&(n=Math.max(n,t.advanceWidth)),A<i.length-1){const a=e.getKerningValue(t,i[A+1]);n=Math.max(n,a)}})),n*=A,n},iA=(t,A,e)=>{let n=0;return t.forEach((t=>{n=Math.max(n,eA(t,A,e))})),n},aA={stripControlCharacters:!0,vertical:!1,uppercase:!1},oA=(t,A=aA)=>{const e={...aA,...A};let n=t||"";return e.stripControlCharacters&&(n=n.replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g,"")),e.uppercase&&(n=n.toUpperCase()),e.vertical&&(n=n.split("").join("\n")),n},rA=(t,A)=>t.map(((t,e)=>[t,A[e]])),sA=(t="center",A=!1)=>A?"center":t,cA=t=>"left"===t?"start":"right"===t?"end":"middle",gA=(t,A,e)=>t.fontData?{...t,...(()=>{if(t.algorithm===U.Traditional){const n=_t(A,t,e,t.lineHeight);return{text:n.lines.join("\n"),height:n.requiredHeight,width:n.requiredWidth,fontSize:n.fontSize,input:A}}return{text:A}})()}:t,lA=1.1;var BA={};y(BA,"colorDefinitionPrintValue",(()=>wA)),y(BA,"spotColorDefinitionString",(()=>hA)),y(BA,"svgColorValueToDefinition",(()=>dA));const wA=t=>{const A=hA(t.spotColor);return A?`${t.browserValue} ${A}`:t.browserValue},hA=t=>{if(!t)return"";if(t.profileName.includes("/")&&t.profileName.includes(".icc")){const A=t.profileName.replace(/\s/g,"-"),e=A.lastIndexOf("/");return`icc-named-color(${A.slice(e+1).slice(0,-4)}, ${t.namedColor})`}return`icc-named-color(${t.profileName}, ${t.namedColor})`},dA=t=>{const A=t.split(/[ ](?=[^)]*?(?:\(|$))/);if(0===A.length)return{browserValue:"#000000"};if(1===A.length)return{browserValue:A[0]};const e=A[1].match(/\(([^)]+)\)/gm);if(!e)throw new Error("Unhandled state of color value in SVG");const n=e[0].replace(/[() ]/g,"").split(",");return{browserValue:A[0],spotColor:{profileName:n[0],namedColor:n[1]}}},EA=t=>{const A=(t.rotation||0)*Math.PI/180,n=Math.cos(A),i=-Math.sin(A),a=`text-path-${t.id}`,o=t.x+(t.curved?0:t.width/2),r=t.y+(t.curved?0:t.height/2),s=(t.text||"").split("\n");return t.curved&&!t.paths?null:t.fontData?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("defs",{children:[(0,e.jsx)("style",{type:"text/css",dangerouslySetInnerHTML:{__html:`\n @font-face {\n font-family: '${t.fontData.name}';\n src: url('${t.fontData.assetUrl}') format('truetype');\n }\n `}}),t.curved&&t.paths?(0,e.jsx)("path",{id:a,d:t.paths[0]}):void 0]}),t._renderingConfiguration?.debug?(0,e.jsx)("rect",{stroke:"blue",fill:"none",x:t.x,y:t.y,width:t.width,height:t.height}):void 0,(0,e.jsx)("g",{mask:t.stepName?void 0:t.mask,children:(0,e.jsx)("g",{transform:`matrix(${n}, ${-i}, ${i}, ${n}, ${o}, ${r})`,children:(0,e.jsx)("text",{xmlSpace:"preserve",fontFamily:`'${t.fontData.name}'`,fontSize:t.fontSize,fontStyle:"normal",fontWeight:"normal",fill:t._renderingConfiguration?.spotColors&&t.fillSpotColorDefinition?`${t.fill} ${hA(t.fillSpotColorDefinition)}`:t.fill,style:{whiteSpace:"pre",userSelect:"none"},children:t.curved?(0,e.jsx)(QA,{text:t.text||"",curvedPathId:a,align:t.align}):s.map(((A,n)=>(0,e.jsx)(uA,{align:t.vertical?"center":t.align,fontSize:t.fontSize,thisLineIdx:n,amountLines:s.length,text:A,textboxHeight:t.height,textboxWidth:t.width,lineHeight:t.lineHeight,vertical:t.vertical,verticalAlign:t.verticalAlign},n)))})})})]}):null},uA=t=>(0,e.jsx)("tspan",{textAnchor:cA(t.align),x:"left"===t.align?-t.textboxWidth/2:"right"===t.align?t.textboxWidth/2:0,y:`${(()=>{const A=t.fontSize*(void 0!==t.lineHeight?t.lineHeight:lA),e=t.textboxHeight/2;if("top"===t.verticalAlign)return-e+3*t.fontSize/4+t.thisLineIdx*A;if("bottom"===t.verticalAlign){const n=t.amountLines-1-t.thisLineIdx;return e-t.fontSize/4-n*A}const n=(t.amountLines-1)/2;return(t.thisLineIdx-n)*A+t.fontSize/4})()}px`,children:t.text}),QA=t=>{const A=`#${t.curvedPathId}`;return(0,e.jsx)("textPath",{startOffset:"left"===t.align?"0%":"right"===t.align?"100%":"50%",textAnchor:cA(t.align),href:A,xlinkHref:A,children:t.text})};y({},"Illustration",(()=>yA));var CA={};y(CA,"traverse",(()=>pA)),y(CA,"sanitizeSvgTree",(()=>DA)),y(CA,"modifySVGWithElementProperties",(()=>fA)),y(CA,"generateSVGWithUnknownColors",(()=>IA));const mA=["altGlyph","circle","ellipse","path","polygon","polyline","rect","text","textPath","tref","tspan"],pA=(t,A)=>{A(t),t.children.length>0&&Array.from(t.children).forEach((t=>pA(t,A)))},DA=(t,A=!1)=>{!A&&t.setAttribute("preserveAspectRatio","none");const e=[];pA(t,(t=>{if("script"!==t.tagName)if("style"!==t.tagName);else try{(0,c.parse)(t.innerHTML).stylesheet?.rules.forEach((t=>{e.push(t)})),t.remove()}catch(t){console.error(t)}else t.remove()})),pA(t,(t=>{e.forEach((A=>{A.selectors?.forEach((e=>{((t,A)=>{try{return t.matches(A)}catch(e){return t.classList.contains(A.substring(1))}})(t,e)&&A.declarations?.forEach((A=>{A.property&&A.value&&t.setAttribute(A.property,A.value)}))}))}))}))},fA=(t,A,e,n,i)=>{const a=(t=>vt().parseFromString(t,"image/svg+xml").firstElementChild)(t);if(!a)throw new Error("Failed to read SVG.");return((t,A,e)=>{t.setAttribute("height",`${e}px`),t.setAttribute("width",`${A}px`)})(a,A,e),((t,A,e)=>{pA(t,(t=>{const n=t.attributes.getNamedItem("fill");n&&"none"!==n.value&&t.classList.forEach((n=>{if(n.startsWith("spiff-fill")){const i=A[n];i&&t.setAttribute("fill",e?wA(i):i.browserValue)}}));const i=t.attributes.getNamedItem("stroke");i&&"none"!==i.value&&t.classList.forEach((n=>{if(n.startsWith("spiff-stroke")){const i=A[n];i&&t.setAttribute("stroke",e?wA(i):i.browserValue)}}))}))})(a,n,i),(t=>Ht().serializeToString(t))(a)},IA=async t=>{const A=t.match(/<svg.*?<\/svg>/s)||[],e=A?.length>0?A[0]:"",n=vt().parseFromString(e,"image/svg+xml").firstElementChild;if(!n)throw new Error("Failed to read SVG.");DA(n);const i={};pA(n,(t=>{mA.includes(t.tagName)&&!t.attributes.getNamedItem("fill")&&t.setAttribute("fill","black");const A=t.attributes.getNamedItem("fill");if(A&&"none"!==A.value){const e=dA(A.value),n=`spiff-fill-${e.browserValue.replace(/\W/g,"")}`;t.setAttribute("fill",e.browserValue),t.classList.add(n),i[n]=e}const e=t.attributes.getNamedItem("stroke");if(e&&"none"!==e.value){const A=dA(e.value),n=`spiff-stroke-${A.browserValue.replace(/\W/g,"")}`;t.classList.add(n),t.setAttribute("stroke",A.browserValue),i[n]=A}}));const a=Ht().serializeToString(n);return{colors:i,svg:a}},yA=t=>{if(t.cachedObjectURL&&!t._renderingConfiguration?.omitCachedFields)return(0,e.jsx)(dt,{id:t.id,src:t.cachedObjectURL,x:t.x,y:t.y,width:t.width,height:t.height,rotation:t.rotation,preserveAspectRatio:"none",immutable:t.immutable,mask:t.stepName?void 0:t.mask});const A=t.rotation||0,n=tt(A),i=Math.cos(n),a=-Math.sin(n),o=`\n matrix(1, 0, 0, 1, ${t.x}, ${t.y})\n matrix(1, 0, 0, 1, ${t.width/2}, ${t.height/2})\n matrix(${i}, ${-a}, ${a}, ${i}, 0, 0)\n matrix(1, 0, 0, 1, ${-t.width/2}, ${-t.height/2})\n `;if(!t.svg)throw new Error(`Illustration element ${t.id} (stepName ${t.stepName}) lacked svg from src ${t.src} at render time.`);return(0,e.jsx)("g",{mask:t.stepName?void 0:t.mask,children:(0,e.jsx)("g",{transform:o,dangerouslySetInnerHTML:{__html:fA(t.svg,t.width,t.height,t.colors,t._renderingConfiguration?.spotColors)}})})};class MA{constructor(){this.id=F(),this.stateCallbacks=[],this.prevCommands=[],this.nextCommands=[]}registerStateCallback(t){this.stateCallbacks.push(t)}unregisterStateCallback(t){this.stateCallbacks.filter((A=>A!==t))}getState(){return this.state}runStateCallbacks(){this.stateCallbacks.forEach((t=>t()))}apply(t,A){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);this.state=this.commandReducer(this.state,t),this.runStateCallbacks(),this.nextCommands=[],A||this.prevCommands.push(t)}undo(){if(!this.state)return;const t=this.prevCommands.pop();if(!t)return;const A=t.undo();t.varying?this.state={...this.state,variation:A}:this.state={...this.state,transaction:A},this.nextCommands.push(t),this.runStateCallbacks()}redo(){if(!this.state)return;const t=this.nextCommands.pop();t&&(this.state=this.commandReducer(this.state,t),this.runStateCallbacks(),this.prevCommands.push(t))}flattenSequence(t,A){const e=this.prevCommands.filter((A=>A.sequenceId===t)).pop();e&&(this.prevCommands=this.prevCommands.filter((A=>A.sequenceId!==t)),e?.overrideOldState(A),this.prevCommands.push(e))}getLayoutById(t){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);const A=this.state.transaction?.layouts?.[t],e=this.state.variation?.layouts?.[t],n=A?.layout||e?.layout;if(!n)throw new Error(`No layout: ${t}`);const i=[...A?.elements||[],...e?.elements||[]];return this.getLayoutDataWithState(n,i)}getAllLayouts(){if(!this.state)throw new Error(`State not initialized for cc ${this.id}!`);const t=[...Object.keys(this.state.transaction?.layouts),...Object.keys(this.state.variation?.layouts||{})];return[...new Set(t)].map((t=>this.getLayoutById(t)))}getLayoutDataWithState(t,A){return{layoutState:{layout:t,elements:A},getComponentWithProps:e=>FA(t,A,e)}}initialize(t,A){if(A)return void(this.state={transaction:A});let e={serializableWorkflow:{steps:[]},layouts:{}};t.forEach((t=>{e=new LA(t).apply(e)})),this.runStateCallbacks(),this.state={transaction:e}}commandReducer(t,A){if(A.varying){const e={layouts:{},serializableWorkflow:{steps:[]},...t.variation};return{...t,variation:A.apply(e)}}{const e=t.transaction||{layouts:{},serializableWorkflow:{steps:[]}};return{...t,transaction:A.apply(e)}}}}const xA=t=>"image"===t.type?(0,e.jsx)(dt,{...t},t.id):"frame"===t.type?(0,e.jsx)(Et,{...t},t.id):"illustration"===t.type?(0,e.jsx)(yA,{...t},t.id):"textbox"===t.type?(0,e.jsx)(EA,{...t},t.id):null,FA=(t,A,n)=>{const i=n.renderingConfiguration,a=i?.removeExcludedElements?A.filter((t=>!t.excludeFromExport)):A;return(0,e.jsx)(q,{preserveAspectRatio:void 0,elements:a,backgroundColor:t.transparentBackground?void 0:"white",width:n.width||t.width,height:n.height||t.height,viewBox:i?.region?{x:i.region.left,y:i.region.top,width:i.region.width,height:i.region.height}:{x:0,y:0,width:t.width,height:t.height},configuration:i,outlineArea:n.outlineArea,maxHeight:n.maxHeight,maxWidth:n.maxWidth,position:n.position,borderRadius:n.borderRadius,outlineColor:n.outlineColor})};function YA(t){return t.sort(((t,A)=>{const e=t.layer||0,n=A.layer||0;if(e<n)return-1;if(e>n)return 1;const i=t.layerIndex||0,a=A.layerIndex||0;return i<a?-1:i>a?1:0}))}class vA extends Error{constructor(){super("Element not found!"),Object.setPrototypeOf(this,vA.prototype)}}const SA=(t,A)=>NA(t,A).elements.find((A=>A.id===t)),NA=(t,A)=>{const e=Object.values(A).find((A=>A.elements.some((A=>A.id===t))));if(!e)throw new vA;return e},RA=(t,A)=>{const e=YA([...A.elements.filter((A=>A.id!==t.id)),t]);return{layout:A.layout,elements:e,modificationID:F()}},HA=async(t,A)=>{const e=[...Object.keys(t.layouts),...Object.keys(A?.layouts||{})],n=[...new Set(e)];for(let e=0;e<n.length;e++){const i=n[e],a=t.layouts[i],o=A?.layouts[i],r=(a||o).elements.filter((t=>"illustration"===t.type));for(let t=0;t<r.length;++t){const A=r[t];if(A.src&&!A.svg){const t=await Nt(A.src),e=await IA(t);A.svg=fA(e.svg,A.width,A.height,A.colors)}}}};class PA{undo(){if(!this.oldState)throw new Error("Cannot undo.");return this.oldState}overrideOldState(t){this.oldState=t}}class UA extends PA{constructor(t){super(),this.serializableWorkflow=t}apply(t){return this.oldState=t,{...t,serializableWorkflow:this.serializableWorkflow}}}class GA extends PA{constructor(t,A,e){super(),this.id=t,this.x=A,this.y=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,x:this.x,y:this.y},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class bA extends PA{constructor(t,A){super(),this.id=t,this.angle=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,rotation:this.angle},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class kA extends PA{constructor(t,A,e){super(),this.id=t,this.width=Math.abs(A),this.height=Math.abs(e)}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;let e={...A,width:this.width,height:this.height};if("frame"===A.type){const t=e;t.scaleX=t.scaleX*this.width/A.width,t.scaleY=t.scaleY*this.height/A.height}else if("textbox"===A.type){const t=e,n=(t.algorithm&&t.algorithm!==U.Autosize?t.input:t.text)??"";e=gA(t,n,A)}const n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class JA extends PA{constructor(t){super(),this.commands=t}apply(t){return this.oldState=t,this.commands.reduce(((t,A)=>A.apply(t)),t)}}class LA extends PA{constructor(t){super(),this.layout=t}apply(t){return this.oldState=t,{...t,layouts:{...t.layouts,[this.layout.id]:{elements:[],layout:{...this.layout},modificationID:F()}}}}}class OA extends PA{constructor(t){super(),this.panelName=t}apply(t){this.oldState=t;const A=Object.values(t.layouts).map((t=>{const A=t.layout.panelId===this.panelName;return{...t,elements:A?[]:[...t.elements],modificationID:F()}})),e={};return A.forEach((t=>{e[t.layout.id]=t})),{...t,layouts:e}}}class zA extends PA{constructor(t,A){super(),this.element=t,this.layout=A}apply(t){this.oldState=t,t.layouts[this.layout.id]||(t.layouts[this.layout.id]={layout:this.layout,elements:[],modificationID:""});const A=t.layouts[this.layout.id].elements;if(A.find((t=>t.id===this.element.id)))throw new Error(`Failed to apply new ${this.element.type} element because ID ${this.element.id} already taken`);if(this.element.productOverlay||0===A.length){const e=[...A,this.element];return void 0===this.element.layerIndex&&(this.element.layerIndex=this.assignIndex(this.element,e)),{...t,layouts:{...t.layouts,[this.layout.id]:{...t.layouts[this.layout.id],elements:e,modificationID:F()}}}}const e=A[A.length-1],n=e.productOverlay?e:null;let i;if(n&&A.pop(),null!==this.element.layerIndex&&void 0!==this.element.layerIndex)i=[...A,this.element].sort(((t,A)=>void 0!==t.layerIndex&&void 0!==A.layerIndex?t.layerIndex-A.layerIndex:0));else{const t=this.assignIndex(this.element,A);this.element.layerIndex=void 0!==t?t:0,i=[...A,this.element]}return n&&i.push(n),{...t,layouts:{...t.layouts,[this.layout.id]:{...t.layouts[this.layout.id],elements:i,modificationID:F()}}}}assignIndex(t,A){if(0===A.length)return 0;const e=A.filter((A=>(A.layer||0)===(t.layer||0))).sort(((t,A)=>(t.layerIndex||0)-(A.layerIndex||0)))[A.length-1]?.layerIndex;return void 0!==e?e+1:0}}class TA extends PA{constructor(t){super(),this.id=t}apply(t){this.oldState=t;let A=!1;const e=Object.values(t.layouts).map((t=>(t.elements.filter((t=>t.id!==this.id)).length!==t.elements.length&&(A=!0),{...t,elements:t.elements.filter((t=>t.id!==this.id)),modificationID:F()})));A||console.log(`Failed to delete element ${this.id}`);const n={};return e.forEach((t=>{n[t.layout.id]=t})),{...t,layouts:n}}}class jA extends PA{constructor(t,e){super(),this.el=I(A)(t),this.layout=e,this.el.id=F(),this.el.x+=5,this.el.y+=5}apply(t){return this.oldState=t,new zA(this.el,this.layout).apply(t)}}class KA extends PA{constructor(t,A,e){super(),this.id=t,this.color=A,this.textFillSpotColor=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,fill:this.color,fillSpotColorDefinition:this.textFillSpotColor},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class VA extends PA{constructor(t,A){super(),this.id=t,this.size=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,fontSize:this.size},n=NA(A.id,Object.values(t.layouts)),i=(A.algorithm&&A.algorithm!==U.Autosize?A.input:A.text)??"",a=RA(gA(e,i),n);return{...t,layouts:{...t.layouts,[n.layout.id]:a}}}}class WA extends PA{constructor(t,A){super(),this.id=t,this.algorithm=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,algorithm:this.algorithm},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class XA extends PA{constructor(t,A){super(),this.id=t,this.fontData=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,fontData:this.fontData},n=NA(A.id,Object.values(t.layouts)),i=(A.algorithm&&A.algorithm!==U.Autosize?A.input:A.text)??"",a=RA(gA(e,i),n);return{...t,layouts:{...t.layouts,[n.layout.id]:a}}}}class qA extends PA{constructor(t,A){super(),this.id=t,this.align=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,align:this.align},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class ZA extends PA{constructor(t,A,e){super(),this.id=t,this.imageData=A,this.offsets=e}apply(t){this.oldState=t;const A=NA(this.id,Object.values(t.layouts)),e=A.elements.findIndex((t=>t.id===this.id)),n=A.elements[e].pattern,i=[...A.elements];i.splice(e,1,{...A.elements[e],pattern:{...n,src:this.imageData.src,x:this.offsets.x,y:this.offsets.y,width:this.imageData.width,height:this.imageData.height,scaleX:this.offsets.zoom,scaleY:this.offsets.zoom}});const a={...A,elements:i,modificationID:F()};return{...t,layouts:{...t.layouts,[A.layout.id]:a}}}}class $A extends PA{constructor(t,A){super(),this.id=t,this.text=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=NA(A.id,Object.values(t.layouts)),n=RA(gA(A,this.text,A),e);return{...t,layouts:{...t.layouts,[e.layout.id]:n}}}}class _A extends PA{constructor(t,A,e){super(),this.id=t,this.className=A,this.fill=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=A.colors||{},n=e[this.className];e[this.className]={browserValue:this.fill,spotColor:n?.spotColor};const i={...A,colors:e},a=NA(A.id,Object.values(t.layouts)),o=RA(i,a);return{...t,layouts:{...t.layouts,[a.layout.id]:o}}}}class te extends PA{constructor(t,A,e){super(),this.id=t,this.svgBody=A,this.objectURL=e}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e={...A,svg:this.svgBody,cachedObjectURL:this.objectURL},n=NA(A.id,Object.values(t.layouts)),i=RA(e,n);return{...t,layouts:{...t.layouts,[n.layout.id]:i}}}}class Ae extends PA{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!SA(this.id,Object.values(t.layouts)).id)throw new vA;const A=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!A)throw new Error("Layout missing from state!");const e=A.elements.findIndex((t=>t.id===this.id));A.elements.push(A.elements.splice(e,1)[0]);const n=[...A.elements];return n.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:n,modificationID:F()}}}}}class ee extends PA{constructor(t){super(),this.id=t}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!e)throw new Error("Layout missing from state!");const n=e.elements.findIndex((t=>t.id===this.id));e.elements.splice(n,1),e.elements.unshift(A);const i=[...e.elements],a=i.splice(n,1)[0];return i.splice(n,0,a),i.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[e.layout.id]:{...t.layouts[e.layout.id],elements:i,modificationID:F()}}}}}class ne extends PA{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!SA(this.id,Object.values(t.layouts)).id)throw new vA;const A=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!A)throw new Error("Layout missing from state!");const e=A.elements.findIndex((t=>t.id===this.id)),n=e+1,i=[...A.elements],a=i.splice(e,1)[0];return i.splice(n,0,a),i.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:i,modificationID:F()}}}}}class ie extends PA{constructor(t){super(),this.id=t}apply(t){if(this.oldState=t,!SA(this.id,Object.values(t.layouts)).id)throw new vA;const A=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!A)throw new Error("Layout missing from state!");const e=A.elements.findIndex((t=>t.id===this.id)),n=e-1,i=[...A.elements],a=i.splice(e,1)[0];return i.splice(n,0,a),i.forEach(((t,A)=>t.layerIndex=A)),{...t,layouts:{...t.layouts,[A.layout.id]:{...t.layouts[A.layout.id],elements:i,modificationID:F()}}}}}class ae extends PA{constructor(t,A){super(),this.id=t,this.value=A}apply(t){this.oldState=t;const A=SA(this.id,Object.values(t.layouts));if(!A.id)throw new vA;const e=Object.values(t.layouts).find((t=>t.elements.find((t=>t.id===this.id))));if(!e)throw new Error("Layout missing from state!");return{...t,layouts:{...t.layouts,[e.layout.id]:RA({...A,layer:this.value},e)}}}}var oe={};y(oe,"patternImageDataCache",(()=>we)),y(oe,"frameDataCache",(()=>he)),y(oe,"generateFrameSVG",(()=>de)),y(oe,"generateDefaultRectangleFrameSvg",(()=>Ee)),y(oe,"getVariant",(()=>ue)),y(oe,"getFrameData",(()=>Qe)),y(oe,"calculateOffsets",(()=>Ce)),y(oe,"getPatternImageData",(()=>me)),y(oe,"GetSVGDimensions",(()=>pe)),y(oe,"svgStringDimensions",(()=>De));var re={};y(re,"getExifOrientation",(()=>ce)),y(re,"canvasDims",(()=>ge)),y(re,"getAttributesFromArrayBuffer",(()=>le));let se=null;const ce=t=>new Promise((A=>{const e=kt(t);(0,r.fromBuffer)(t).then((t=>{const n=t?.mime;if("image/jpeg"!==n)return A(1);(new(0,l.ExifImage)).loadImage(e,((t,e)=>A(t?1:e.image.Orientation||1)))}))})),ge=t=>{const A=8192,e=t.naturalWidth/t.naturalHeight;return t.naturalHeight<=A&&t.naturalWidth<=A?[t.naturalWidth,t.naturalHeight]:t.naturalHeight>t.naturalWidth?[e*A,A]:[A,A/e]},le=async t=>{const A=await(async t=>{const A=await Gt(t),e=await(0,g.loadImage)(A),[n,i]=ge(e),a=await(async()=>{if(null!==se)return!se;const t=await(0,g.loadImage)("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k=");return se=2===t.width&&3===t.height,!se})();if(!a){const t=(0,g.createCanvas)(n,i);return t.getContext("2d").drawImage(e,0,0,n,i),t}const o=await ce(t),[r,s]=o>4?[i,n]:[n,i],c=(0,g.createCanvas)(r,s),l=c.getContext("2d");switch(o){case 2:l.translate(r,0),l.scale(-1,1);break;case 3:l.translate(r,s),l.rotate(Math.PI);break;case 4:l.translate(0,s),l.scale(1,-1);break;case 5:l.rotate(-.5*Math.PI),l.scale(-1,1);break;case 6:l.rotate(-.5*Math.PI),l.translate(-r,0);break;case 7:l.rotate(-.5*Math.PI),l.translate(-r,s),l.scale(1,-1);break;case 8:l.rotate(.5*Math.PI),l.translate(0,-s)}return l.drawImage(e,0,0,r,s),c})(t);return"image/jpeg"===(await(0,r.fromBuffer)(t))?.mime?{dataUrl:A.toDataURL("image/jpeg",1),height:A.height,width:A.width}:{dataUrl:A.toDataURL(),height:A.height,width:A.width}};y({},"getDefaultVariant",(()=>Be));const Be=t=>{const A=t.variants;if(A){if(1===A.length)return A[0];if(void 0!==t.defaultVariant)return A.find((A=>A.id===t.defaultVariant))}},we=new Map,he=new Map,de=async(t,A)=>{if(!A){if(!t)throw new Error("No region or src supplied. Cannot construct frame!");return Ee(t)}return Nt(A)},Ee=t=>{const A=t.width,e=A/t.height,n=Math.max(A,512),i=n/e;return`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${n} ${i}'>\n <path id="target-path" d='M0 0 h ${n} v ${i} h ${-n} Z' />\n </svg>\n `},ue=(t,A)=>{if(!A)return;const e=A.variants?.find((A=>A.id===t.frameVariantId))||Be(A);if(!e)throw new Error(`No variant with ID: ${t.frameVariantId}`);if(!e.asset)throw new Error(`No asset for variant with ID: ${t.frameVariantId}`);return e},Qe=async t=>{const A=vt().parseFromString(t,"image/svg+xml"),e=A.querySelector("svg");if(!e)throw new Error("Malformed frame SVG: <svg> tag not found");const n=e.getAttribute("viewBox");if(!n)throw new Error("SVG missing viewBox.");const i=n.split(" "),a=parseFloat(i[3])||1,o=parseFloat(i[2])||1,r=A.getElementById("target-path"),s=A.getElementsByClassName("st0").item(0);if(r){const t=r.getAttribute("d");if(!t)throw new Error("Malformed frame SVG: 'd' attribute not found on target element");const A={path:t,width:o,height:a};return he.set(t,A),A}if(s){const t=s.getAttribute("d");if(!t)throw new Error("Malformed frame SVG: 'd' attribute not found on target element");const A={path:t,width:o,height:a};return he.set(t,A),A}throw new Error("Malformed frame SVG")},Ce=(t,A,e)=>{const n=A.width>=A.height,i=t.width>=t.height,a=A.width/2,o=A.height/2,r=(n?A.height:A.width)/(i?t.width:t.height),s=e?.scale||r,c=a-t.width/2*s,g=e?.left||c,l=o-t.height/2*s;return{x:g,y:e?.top||l,zoom:s}},me=async t=>{if(we.has(t))return we.get(t);if(t.endsWith("svg")){const A=await pe(t),e=A.width,n=A.height,i={src:t,width:e,height:n,aspect:e/n};return we.set(t,i),i}{const A=await St(t),e=await le(A),n={src:t,width:e.width,height:e.height,aspect:e.width/e.height};return we.set(t,n),n}},pe=async t=>{const A=await Nt(t);return De(A)},De=t=>{const A=vt().parseFromString(t,"image/svg+xml").querySelector("svg");if(!A)throw new Error("No svg tag found, this svg must be malformed!");const e=A.getAttribute("viewBox"),n=A.getAttribute("width"),i=A.getAttribute("height"),a=e?e?.split(" ").map((t=>Number(t))):[0,0,Number(n),Number(i)];if(!a)throw new Error("No viewbox or width/height values detected on SVG file!");return{width:a[2],height:a[3]}};var fe={};y(fe,"determineCorrectFontSizeAndLines",(()=>ye)),y(fe,"determineCorrectTextboxRegion",(()=>Me));const Ie=(t,A,e,n,i)=>{let a=A.map((t=>t.split("\n"))).flat(),o=a.length,r=a.map((t=>eA(t,n,i)));const s=i.getApproximateHeight()*n;let c=!0;for(;c;){if(s+(o-1)*e>t.height)return[null,null];const A=Math.max(...r);if(A<=t.width)return[a,A];const g=r.reduce(((t,A,e,n)=>A>n[t]?e:t),0),l=a[g];let B=!1,w=l.length;for(;!B&&w>-1;){w=l.lastIndexOf(" ",w-1);const A=[l.slice(0,w),l.slice(w+1)],e=A.map((t=>eA(t,n,i)));e[0]<=t.width&&(a=[...a.slice(0,g),...A,...a.slice(g+1)],r=[...r.slice(0,g),...e,...r.slice(g+1)],o+=1,B=!0)}B||(c=!1)}return[null,null]},ye=(t,A,e,n,i)=>{let a,o;const r=Vt(A),s=r.getFont();if(i.size){const A=t/s.unitsPerEm;return[a,o]=Ie(e,n,t,A,r),[i.size,a,o]}let c=6-AA;if(n.length>0){let t=n,A=0;for(;(!i.maxSize||c<=i.maxSize)&&t;)c+=AA,A=c/s.unitsPerEm,[t,o]=Ie(e,n,c,A,r)}c>6&&(c-=AA),i.minSize&&c<i.minSize&&(c=i.minSize);const g=c/s.unitsPerEm;return[a,o]=Ie(e,n,c,g,r),[c,a,o]},Me=(t,A,e,n,i)=>{let a={...t},o={...t},[r,s,c]=ye(e,A,o,n,{size:0,minSize:e,maxSize:e});var g,l;return c&&c<a.width&&(o.width=c,"left"===i?(o.left+=Math.sin(a.rotation*Math.PI/360)*(a.width-c),o.top+=Math.sin(a.rotation*Math.PI/180)*(c-a.width)/2):o.left+="right"===i?a.width-c:(a.width-c)/2,[r,s]=ye(e,A,o,n,{size:e}),r===e&&s&&(g=n,l=s,g.map(((t,A)=>[t,l[A]]))).every((([t,A])=>t===A))&&(a=o)),a};var xe={};y(xe,"svgObjectURL",(()=>ve)),y(xe,"LayoutElementFactory",(()=>Ne));const Fe=(t,A)=>{const e=t.layoutState.elements.filter((t=>t.layer===A)),n=Math.max(...e.map((t=>t.layerIndex)).filter((t=>void 0!==t)));return Math.max(n,0)+1},Ye=async t=>new Promise((A=>{Nt(t).then((t=>{A(t)})).catch((t=>console.error(t)))})),ve=async t=>{const A=vt().parseFromString(t,"image/svg+xml").firstElementChild;if(!A)throw new Error("Failed to read SVG");const e=(new XMLSerializer).serializeToString(A),n=document.createElement("canvas"),i=n.getContext("2d"),a=await B.Canvg.from(i,e,{anonymousCrossOrigin:!0,ignoreDimensions:!1}),o=A.getAttribute("width"),r=A.getAttribute("height"),s=2048;if(r&&o){const t=parseFloat(r),A=parseFloat(o)/t;A>1?a.resize(s,s/A):a.resize(s*A,s)}else a.resize(s,s);return await a.render(),await(async t=>new Promise(((A,e)=>{try{if(!URL||!URL.createObjectURL)throw new Error("Environment incapable of generating ObjectURL");t.toBlob((e=>{if(!e){if(0===t.width||0===t.height)throw new Error(`Canvas dimensions are invalid (${t.width},${t.height})`);if(t.width*t.height>=268435456)throw new Error(`Canvas dimensions exceed device limit (${t.width},${t.height})`);throw new Error("Couldn't generate object URL for Illustration, the blob was undefined!")}A(URL.createObjectURL(e))}))}catch(t){e(t)}})))(n)},Se=async(t,A,e,n)=>{const i=t.layoutState.layout.useEditableArea&&t.layoutState.layout.editableArea||{width:t.layoutState.layout.width,height:t.layoutState.layout.height,x:0,y:0},a=i.width<i.height?i.width:i.height,o=t.layoutState.layout.useEditableArea?a/1.3:a/2,r={top:i.y+i.height/2-o/2,left:i.x+i.width/2-o/2,width:o,height:o,rotation:0,panelId:t.layoutState.layout.panelId};if(e&&A===N.Illustration){const t=await IA(await Ye(e)),A=vt().parseFromString(t.svg,"image/svg+xml").firstElementChild.getAttribute("viewBox");if(!A)throw new Error("SVG missing viewBox.");const n=r.height,i=A.split(" "),a=(parseFloat(i[2])||1)/(parseFloat(i[3])||1);r.height=r.width/a,r.top+=(n-r.height)/2}if(e&&A===N.Image){const t=r.height,A=await St(e),n=await le(A),i=n.width/n.height;r.height=r.width/i,r.top+=(t-r.height)/2}if(e&&A===N.Textbox&&n?.text&&n?.fontScale){const t={assetUrl:e,name:(await jt(e)).names.fullName.en},A=Vt(t),a=eA(n.text,n?.fontScale,A);r.width=Math.min(a,.85*i.width),r.left=i.x+i.width/2-r.width/2}return r};class Ne{static async getFrame(t,A){const e=await de(A.region,A.src),n=await Qe(e),i=A.region||await Se(t,N.Frame);return{id:F(),x:i.left,y:i.top,width:i.width,height:i.height,layer:i.layer||0,layerIndex:i.layerIndex||Fe(t,i.layer||0),rotation:i.rotation,scaleX:i.width/n.width,scaleY:i.height/n.height,path:n.path,type:N.Frame,disablePlaceholder:A.configuration.disablePlaceholder,focalBlur:A.configuration.focalBlur,focalBlurStrength:A.configuration.focalBlurStrength,focalBlurRadius:A.configuration.focalBlurRadius,forceImageCover:A.configuration.forceImageCover,pattern:void 0,immutable:i.immutable}}static async getImage(t,A){const e=A.region||await Se(t,N.Image,A.src);return{id:F(),src:A.src,type:N.Image,y:e.top,x:e.left,rotation:e.rotation,width:e.width,height:e.height,layer:e.layer||0,layerIndex:e.layerIndex||Fe(t,e.layer||0),immutable:e.immutable,preserveAspectRatio:"none"}}static async getTextbox(t,A){const{configuration:e,fontSrc:n,designInputStep:i}=A,a=await jt(n),o={assetUrl:n,name:a.names.fullName.en},r=i?.text||e.defaultText||"",s=e.replaceableText?e.replaceableText.replace("{{}}",r):r,c=oA(s,{vertical:e.vertical,uppercase:e.uppercase}),g=A.region||await Se(t,N.Textbox,n,{text:c,fontScale:e.size?e.size/a.unitsPerEm:void 0}),l=gA({id:F(),type:N.Textbox,x:g.left,y:g.top,width:g.width,height:g.height,align:sA(e.textAlign,e.vertical),curved:e.curved,fill:i?.color||e.colour||"#000000",fontData:o,layer:g.layer||0,layerIndex:g.layerIndex||Fe(t,g.layer||0),paths:e.paths,rotation:g.rotation,vertical:e.vertical,verticalAlign:e.verticalAlign||"middle",algorithm:U.Traditional,fontSize:e.size||Math.max(Math.round(.025*g.height),1),text:c,input:r},c),B=tA({...g,height:l.height},o,l.fontSize,l?.text?.split("\n")||[],l.align);return{...l,x:B.left,y:B.top+(g.height-B.height)/2,width:B.width,height:B.height}}static async getShape(t,A){const e=`\n <svg\n xmlns="http://www.w3.org/2000/svg"\n xmlnsXlink="http://www.w3.org/1999/xlink"\n xmlSpace="preserve"\n preserveAspectRatio="none"\n version="1.1"\n width="1"\n height="1"\n viewBox="0 0 1 1"\n >\n <rect\n x="0"\n y="0"\n width="1"\n height="1"\n class="spiff-fill-shape"\n fill="${A.color}"\n />\n </svg>\n `,n={};n["spiff-fill-shape"]={browserValue:A.color};const i=A.region||await Se(t,N.Illustration),a=F();return{stepRegion:A.region,colors:n,id:a,svg:e,type:N.Illustration,y:i.top,x:i.left,rotation:i.rotation,width:i.width,height:i.height,layer:i.layer||0,layerIndex:i.layerIndex||Fe(t,i.layer||0),immutable:i.immutable}}static async getIllustration(t,A){const e=A.region||await Se(t,N.Illustration,A.src),n=await IA(await Ye(A.src)),i=await ve(n.svg),a=F();return{cachedObjectURL:i,stepRegion:A.region,colors:n.colors,id:a,svg:n.svg,type:N.Illustration,y:e.top,x:e.left,rotation:e.rotation,width:e.width,height:e.height,layer:e.layer||0,layerIndex:e.layerIndex||Fe(t,e.layer||0),immutable:e.immutable}}}function Re(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}class He extends Error{constructor(t){super(t),this.name=this.constructor.name}}class Pe extends He{constructor(t){super(`ConfigurationError - ${t}`)}}class Ue extends Pe{constructor(t){super(`Option not Configured: ${t.stepTitle}`),Re(this,"optionId",void 0),this.optionId=t?.optionId||"N/A"}}class Ge extends Pe{constructor(t){super(`Panel not Found: ${t.panelId}`),Re(this,"panelId",void 0),this.panelId=t?.panelId||"N/A"}}class be extends Pe{constructor(t){super(`Asset not found for variant: ${t.name}`),Re(this,"variant",void 0),this.variant=t}}class ke extends Pe{constructor(t){super(`Resource not found for asset: ${t.name}`),Re(this,"asset",void 0),this.asset=t}}class Je extends Pe{constructor(t,A){super(`Workflow Misconfiguration: ${t.stepName} - ${A}`),Re(this,"step",void 0),this.step=t}}class Le extends He{constructor(t){super(`ImplementationError - ${t}`)}}class Oe extends Le{constructor(t){super(`Unhandled Behavior Encountered: ${t}`)}}class ze extends Le{constructor(t){super(`Parsing Error: ${t}`)}}class Te extends Le{constructor(t){super(`Client Error: ${t}`)}}class je extends Le{constructor(t){super(`Resource Generation Failed: ${t}`)}}function Ke(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}class Ve{get(t){return localStorage.getItem(t)||void 0}set(t,A){localStorage.setItem(t,A)}remove(t){localStorage.removeItem(t)}getMap(t){const A=this.get(t);if(A)return new Map(JSON.parse(A))}setMap(t,A){const e=JSON.stringify([...A.entries()]);this.set(t,e)}}class We{constructor(){Ke(this,"storage",new Map)}get(t){return this.storage.get(t)||void 0}set(t,A){this.storage.set(t,A)}remove(t){this.storage.delete(t)}getMap(t){const A=this.get(t);if(A)return new Map(JSON.parse(A))}setMap(t,A){const e=JSON.stringify([...A.entries()]);this.set(t,e)}}const Xe=(()=>{try{return localStorage?new Ve:new We}catch{return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."),new We}})();function qe(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}const Ze=new class{constructor(){qe(this,"defaultServerUrl","https://api.spiff.com.au"),qe(this,"defaultServicesApiUrl","https://services.spiff.com.au"),qe(this,"defaultHubUrl","https://hub.spiff.com.au"),qe(this,"serverUrl",void 0),qe(this,"servicesApiUrl",void 0),qe(this,"hubUrl",void 0),qe(this,"serverUrlCallbacks",void 0),this.serverUrl=this.defaultServerUrl,this.servicesApiUrl=this.defaultServicesApiUrl,this.hubUrl=this.defaultHubUrl,this.serverUrlCallbacks=[]}getServerUrl(){return this.serverUrl}getServicesApiUrl(){return this.servicesApiUrl}getHubUrl(){return this.hubUrl}setServerUrl(t){this.serverUrl=t,this.serverUrlCallbacks.forEach((t=>t()))}setServicesApiUrl(t){this.servicesApiUrl=t}setHubUrl(t){this.hubUrl=t}addServerUrlCallback(t){this.serverUrlCallbacks.push(t)}};function $e(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}let _e;const tn=t=>{_e=t};const An=new class{constructor(){$e(this,"shadowGraphqlClient",void 0),this.shadowGraphqlClient=this.constructShadowGraphqlClient(),Ze.addServerUrlCallback((()=>{this.shadowGraphqlClient=this.constructShadowGraphqlClient()}))}getShadowGraphqlClient(){return this.shadowGraphqlClient}constructShadowGraphqlClient(){const A=(0,t.createHttpLink)({uri:`${Ze.getServerUrl()}/graphql`,fetch:d.fetch}),e=(0,w.setContext)((async(t,{headers:A})=>{const e=A||{},n=await(async()=>{const t={transactionOwnerId:_e};return"undefined"!=typeof window&&window.location.href.includes("/workflows/product/")?{...await new Promise((t=>{const A=Ze.getHubUrl();if(window.location.href.includes("localhost")||window.location.href.includes("ngrok"))return void t({});const e=n=>{n.origin===A&&(window.removeEventListener("message",e),t(n.data))};window.parent!==window&&(window.addEventListener("message",e,!1),window.parent.postMessage("ready",A))})),...t}:t})();return n.bearer&&(e.Authorization=`Bearer ${n.bearer}`),n.partnerId&&(e.partnerId=n.partnerId),n.activeIntegration&&(e.activeIntegration=n.activeIntegration),n.transactionOwnerId&&(e.transactionOwnerId=n.transactionOwnerId),{headers:e}})),n=(0,h.onError)((({operation:t,graphQLErrors:A,networkError:e})=>{(A||[]).forEach((({message:A,locations:e,path:n})=>{console.log("[GraphQL Operation Error]"),console.log("Name:"+t.operationName),console.log("Query:"+JSON.stringify(t.query)),console.log(`Message: ${A}, Location: ${JSON.stringify(e,null,2)}, Path: ${n}`),console.log("Variables:"+JSON.stringify(t.variables))})),e&&console.log("GraphQL Network error")}));const i=new(0,t.InMemoryCache)({addTypename:!1,typePolicies:{Transaction:{fields:{bulkEmailAddress:{read:(t=null)=>t,merge:(t,A)=>A||t||null},transactionOwnerId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},customLogoLink:{read:(t=null)=>t,merge:(t,A)=>A||t||null},workflowFooterLogoLink:{read:(t=null)=>t,merge:(t,A)=>A||t||null},workflowState:{read:(t=null)=>t,merge:(t,A)=>A||t||null},bulkSourceUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalDesignProductId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalDesignProductVariantId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalCartProductId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},externalCartProductVariantId:{read:(t=null)=>t,merge:(t,A)=>A||t||null},lastSyncedAt:{read:(t=null)=>t,merge:(t,A)=>A||t||null}}},WorkflowProduct:{fields:{isPresent:{read:(t=null)=>t,merge:(t,A)=>A||t||null}}},Product:{fields:{imageUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},overlayImageUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},preloadImageUrl:{read:(t=null)=>t,merge:(t,A)=>A||t||null},weight:{read:(t=null)=>t,merge:(t,A)=>A||t||null},conversionConfiguration:{read:(t=null)=>t,merge:(t,A)=>A||t||null},bulkConfiguration:{read:(t=null)=>t,merge:(t,A)=>A||t||null}}}}});return new(0,t.ApolloClient)({link:(0,t.from)([n,e,A]),cache:i,name:"Core"})}};function en(t,A,e){return(A=function(t){var A=function(t,A){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,A||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(t)}(t,"string");return"symbol"==typeof A?A:String(A)}(A))in t?Object.defineProperty(t,A,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[A]=e,t}const nn=t.gql`
2
2
  fragment AssetFields on Asset {
3
3
  name
4
4
  key
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spiffcommerce/core",
3
- "version": "0.10.248",
3
+ "version": "0.10.249",
4
4
  "description": "Core client API for interacting with the Spiff Commerce backend.",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/main.js",
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "dependencies": {
87
87
  "@apollo/client": "^3.7.0",
88
- "@spiffcommerce/papyrus": "1.5.69",
88
+ "@spiffcommerce/papyrus": "1.5.70",
89
89
  "canvg": "https://github.com/spiffdev/canvg.git#03bcd151b12441e88ecb552bb658356f5bbe92c4",
90
90
  "cross-fetch": "^3.1.5",
91
91
  "graphql": "^16.6.0",