@spiffcommerce/core 0.0.0-a2ce672c-2d8f-54fc-934a-a5036bd9742e

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.
@@ -0,0 +1,3102 @@
1
+ (function(u,M){typeof exports=="object"&&typeof module<"u"?M(exports,require("@apollo/client/core"),require("@spiffcommerce/papyrus"),require("@apollo/client/link/context"),require("@apollo/client/link/error"),require("pith"),require("lodash.debounce"),require("lodash.isequal"),require("lodash.clonedeep"),require("qrcode"),require("unicode-default-word-boundary"),require("svg-path-bbox"),require("lodash.chunk")):typeof define=="function"&&define.amd?define(["exports","@apollo/client/core","@spiffcommerce/papyrus","@apollo/client/link/context","@apollo/client/link/error","pith","lodash.debounce","lodash.isequal","lodash.clonedeep","qrcode","unicode-default-word-boundary","svg-path-bbox","lodash.chunk"],M):(u=typeof globalThis<"u"?globalThis:u||self,M(u.Core={},u.core,u.papyrus,u.context,u.error,u.pith,u.debounce,u.isEqual,u.cloneDeep,u.qrcode,u.unicodeDefaultWordBoundary,u.svgPathBbox,u.chunk))})(this,function(u,M,l,CA,uA,ot,st,rt,se,ct,He,Re,gt){"use strict";class lt extends Error{constructor(e){super(e),this.name=this.constructor.name}}class re extends lt{constructor(e){super(`ConfigurationError - ${e}`)}}class ce extends re{constructor(e){super(`Option not Configured: ${e.stepTitle}`),this.optionId=(e==null?void 0:e.optionId)||"N/A"}}class J extends re{constructor(e){super(`Panel not Found: ${e.panelId}`),this.panelId=(e==null?void 0:e.panelId)||"N/A"}}class W extends re{constructor(e){super(`Asset not found for variant: ${e.name}`),this.variant=e}}class Z extends re{constructor(e){super(`Resource not found for asset: ${e.name}`),this.asset=e}}class ge extends re{constructor(e,t){super(`Workflow Misconfiguration: ${e.stepName} - ${t}`),this.step=e}}class fe extends lt{constructor(e){super(`ImplementationError - ${e}`)}}class k extends fe{constructor(e){super(`Unhandled Behavior Encountered: ${e}`)}}class $ extends fe{constructor(e){super(`Parsing Error: ${e}`)}}class U extends fe{constructor(e){super(`Client Error: ${e}`)}}class Ie extends fe{constructor(e){super(`Resource Generation Failed: ${e}`)}}class QA{get(e){return localStorage.getItem(e)||void 0}set(e,t){localStorage.setItem(e,t)}remove(e){localStorage.removeItem(e)}getMap(e){const t=this.get(e);if(t)return new Map(JSON.parse(t))}setMap(e,t){const A=JSON.stringify([...t.entries()]);this.set(e,A)}}class dt{constructor(){this.storage=new Map}get(e){return this.storage.get(e)||void 0}set(e,t){this.storage.set(e,t)}remove(e){this.storage.delete(e)}getMap(e){const t=this.get(e);if(t)return new Map(JSON.parse(t))}setMap(e,t){const A=JSON.stringify([...t.entries()]);this.set(e,A)}}const Y=(()=>{try{return localStorage?new QA:new dt}catch{return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."),new dt}})();class mA{constructor(){this.defaultServerUrl="https://api.spiff.com.au",this.defaultServicesApiUrl="https://services.spiff.com.au",this.defaultHubUrl="https://hub.spiff.com.au",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(e){this.serverUrl=e,this.serverUrlCallbacks.forEach(t=>t())}setServicesApiUrl(e){this.servicesApiUrl=e}setHubUrl(e){this.hubUrl=e}addServerUrlCallback(e){this.serverUrlCallbacks.push(e)}}const X=new mA;let Bt;const wt=c=>{Bt=c};let ve;const fA=c=>{ve=c},IA=()=>ve;let ht;const pA=c=>{ht=c},DA=()=>new Promise(c=>{const e=X.getHubUrl(),t=A=>{A.origin===e&&(window.removeEventListener("message",t),c(A.data))};window.parent!==window&&(window.addEventListener("message",t,!1),window.parent.postMessage("ready",e))}),FA=async()=>{const c={applicationKey:ve,customerToken:Bt,bearer:ht};return typeof window<"u"&&(window.location.href.includes("/workflows/product/")||window.location.href.includes("hub=true"))?{...await DA(),...c}:c};class MA{constructor(){this.shadowGraphqlClient=this.constructShadowGraphqlClient(),X.addServerUrlCallback(()=>{this.shadowGraphqlClient=this.constructShadowGraphqlClient()})}getShadowGraphqlClient(){return this.shadowGraphqlClient}constructShadowGraphqlClient(){const e=M.createHttpLink({uri:`${X.getServerUrl()}/graphql`,fetch:l.fetch}),t=CA.setContext(async(i,o)=>{const{headers:s}=o,r=s||{},g=await FA(),B=o.bearer??g.bearer,d=o.partnerId??g.partnerId,w=o.activeIntegration??g.activeIntegration,h=o.transactionOwnerId,C=o.customerToken??g.customerToken,E=o.applicationKey??g.applicationKey,m=o.bundleOwnerId;try{if(window&&window.__SENTRY__){const Q=window.__SENTRY__.hub;if(Q){const D=Q.traceHeaders();Object.entries(D).forEach(([f,p])=>{r[f]=p})}}}catch{}return B&&(r.Authorization=`Bearer ${B}`),d&&(r.partnerId=d),w&&(r.activeIntegration=w),h&&(r.transactionOwnerId=h),C&&(r.customerToken=C),E&&(r["X-Application-Key"]=E),m&&(r.bundleOwnerId=m),{headers:r}}),A=uA.onError(({operation:i,graphQLErrors:o,networkError:s})=>{const r=o||[];s&&console.log("GraphQL Network error"),r.forEach(()=>console.log("GraphQL Error: "+i.operationName))});function n(){return{read(i=null){return i},merge(i,o){return o||i||null}}}const a=new M.InMemoryCache({addTypename:!1,typePolicies:{Transaction:{fields:{transactionOwnerId:n(),customLogoLink:n(),workflowFooterLogoLink:n(),workflowState:n(),externalDesignProductId:n(),externalDesignProductVariantId:n(),externalCartProductId:n(),externalCartProductVariantId:n(),lastSyncedAt:n(),quantity:n(),lineItem:n()}},WorkflowProduct:{fields:{isPresent:n()}},Product:{fields:{imageUrl:n(),overlayImageUrl:n(),preloadImageUrl:n(),weight:n(),conversionConfiguration:n()}}}});return new M.ApolloClient({link:M.from([A,t,e]),cache:a,name:"Core"})}}const N=new MA,SA=M.gql`
2
+ fragment AssetMetadataFields on Asset {
3
+ metadata {
4
+ key
5
+ value
6
+ }
7
+ }
8
+ `,le=c=>M.gql`
9
+ ${c&&SA||""}
10
+ fragment AssetFields on Asset {
11
+ name
12
+ key
13
+ type
14
+ createdAt
15
+ mimeType
16
+ fileLink
17
+ versions {
18
+ name
19
+ link
20
+ }
21
+ ${c&&"...AssetMetadataFields"||""}
22
+ }
23
+ `,yA=M.gql`
24
+ ${le(!1)}
25
+ query GetAssets($keys: [String]!) {
26
+ assets(keys: $keys) {
27
+ ...AssetFields
28
+ }
29
+ }
30
+ `,Ue=M.gql`
31
+ fragment MaterialFields on Material {
32
+ id
33
+ name
34
+ createdAt
35
+ clearCoat
36
+ clearCoatIor
37
+ refractionIntensity
38
+ reflectionIntensity
39
+ reflectionRotation
40
+ albedoMap {
41
+ key
42
+ fileLink
43
+ }
44
+ alphaMap {
45
+ key
46
+ fileLink
47
+ }
48
+ ambientMap {
49
+ key
50
+ fileLink
51
+ }
52
+ emissionMap {
53
+ key
54
+ fileLink
55
+ }
56
+ metallicMap {
57
+ key
58
+ fileLink
59
+ }
60
+ normalMap {
61
+ key
62
+ fileLink
63
+ }
64
+ refractionMap {
65
+ key
66
+ fileLink
67
+ }
68
+ reflectionMap {
69
+ key
70
+ fileLink
71
+ }
72
+ roughnessMap {
73
+ key
74
+ fileLink
75
+ }
76
+ }
77
+ `,YA=M.gql`
78
+ ${Ue}
79
+ query GetMaterials($ids: [String]) {
80
+ materials(id: $ids) {
81
+ ...MaterialFields
82
+ }
83
+ }
84
+ `,PA=M.gql`
85
+ mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
86
+ assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
87
+ uploadUrl
88
+ asset {
89
+ name
90
+ key
91
+ type
92
+ createdAt
93
+ mimeType
94
+ fileLink
95
+ }
96
+ }
97
+ }
98
+ `,xA=M.gql`
99
+ ${le(!1)}
100
+ mutation RemoveBackgroundFromAsset($key: String!) {
101
+ assetRemoveBackground(key: $key) {
102
+ ...AssetFields
103
+ }
104
+ }
105
+ `,Ge=async c=>(await N.getShadowGraphqlClient().query({query:yA,errorPolicy:"all",fetchPolicy:"no-cache",variables:{keys:c}})).data.assets,NA=async c=>(await N.getShadowGraphqlClient().query({query:YA,errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:c}})).data.materials,HA=async(c,e,t,A,n)=>{var i;return(i=(await N.getShadowGraphqlClient().mutate({mutation:PA,errorPolicy:"all",fetchPolicy:"no-cache",variables:{name:c,type:e,mimeType:t,anonymous:A,temporary:n}})).data)==null?void 0:i.assetCreate};class RA{constructor(){this.cache=new Map,this.bgrmProcessCache=new Map,this.materialCache=new Map,this.loadImageAsFileInfo=async e=>{const t=await e.arrayBuffer(),A=await l.getAttributesFromArrayBuffer(t),n=(a,i)=>{const o=atob(a.split(",")[1]),s=[];for(let r=0;r<o.length;r++)s.push(o.charCodeAt(r));return new Blob([new Uint8Array(s)],{type:i})};return{name:e.name.substring(e.name.lastIndexOf("/")+1),blob:n(A.dataUrl,e.type)}}}async getLocalOrFromServer(e){if(this.cache.has(e)){const n=this.cache.get(e);if(!n)throw new k("Failed to get asset from cache!");return n}const A=(async()=>(await Ge([e]))[0])();return this.cache.set(e,A),A}async getFromServer(e){const A=(async()=>(await Ge([e]))[0])();return this.cache.set(e,A),A}keyFromURL(e){let t;try{t=new URL(e).pathname}catch{t=void 0}return t!==void 0&&t.startsWith("/")&&(t=t.replace("/","")),t==null?void 0:t.split("?")[0]}cacheAsset(e){if(!e.key)throw new k("Asset has no key!");this.cache.has(e.key)||this.cache.set(e.key,Promise.resolve(e))}cacheMaterial(e){if(!e.id)throw new k("Material has no id!");this.materialCache.has(e.id)||this.materialCache.set(e.id,Promise.resolve(e))}async getMaterialLocalOrFromServer(e){if(this.materialCache.has(e))return this.materialCache.get(e);const A=(async()=>(await NA([e]))[0])();return this.materialCache.set(e,A),A}async uploadAssetWithProgress(e,t,A,n,a){const i=await this.dispatchCreateAssetRequest(e,t,n,a);if(!i)throw new Error("Failed to create asset.");return await new Promise((o,s)=>{const r=new XMLHttpRequest;r.open("PUT",i.assetResponse.uploadUrl,!0),r.setRequestHeader("Content-Type",i.mimeType),r.setRequestHeader("Cache-Control","public,max-age=31536000,immutable"),r.upload.onprogress=g=>{g.lengthComputable&&A(g.loaded*100/g.total)},r.onload=()=>{const g=i.assetResponse.asset;_.add(i.assetResponse.asset),o(g)},r.onerror=s,r.send(e.blob)}),this.cacheAsset(i.assetResponse.asset),i.assetResponse.asset}async uploadAsset(e,t,A,n){return this.uploadAssetWithProgress(e,t,()=>{},A,n)}async uploadFile(e,t){const A=!(e.type==="image/svg+xml"||e.type==="application/pdf"||e.type==="application/postscript"),n=A?l.AssetType.Image:l.AssetType.Illustration;if(A){const a=await this.loadImageAsFileInfo(e);return await this.uploadAssetWithProgress(a,n,t,!0)}else{const a={name:e.name,blob:new Blob([e],{type:e.type})};return await this.uploadAssetWithProgress(a,n,t,!0)}}async removeBackgroundFromAsset(e){const t=e.key;if(this.bgrmProcessCache.has(t))return this.bgrmProcessCache.get(t);if(O.has(t)){const a=this.getLocalOrFromServer(O.get(t));return this.bgrmProcessCache.set(t,a),a}const n=(async()=>{var i,o;const a=await N.getShadowGraphqlClient().mutate({mutation:xA,fetchPolicy:"no-cache",errorPolicy:"all",variables:{key:t}});if(this.bgrmProcessCache.delete(t),!((o=(i=a.data)==null?void 0:i.assetRemoveBackground)!=null&&o.key))throw new Error("Failed to remove background from image");return _.add(a.data.assetRemoveBackground),O.add(t,a.data.assetRemoveBackground.key),this.cache.set(a.data.assetRemoveBackground.key,Promise.resolve(a.data.assetRemoveBackground)),a.data.assetRemoveBackground})();return this.bgrmProcessCache.set(t,n),n}removePersistedAsset(e){_.remove(e),O.delete(e),O.deleteForBgRemovedKey(e)}getPersistedAssets(){return _.list()}registerPersistedAssetListener(e){_.addCallback(e)}unRegisterPersistedAssetListener(e){_.removeCallback(e)}async dispatchCreateAssetRequest(e,t,A,n){const a=e.blob.type?e.blob.type:this.guessMIME(e.name),i=await HA(e.name,t,a,A,n);if(i)return{assetResponse:i,mimeType:a}}guessMIME(e){const t=e.split(".").pop();switch(t){case"glb":return"model/gltf-binary";case"ttf":return"font/ttf";case"mkv":return"video/x-matroska";default:throw new k("Unexpected mimetype: "+t)}}}const de="persistentAssets",Et=class q{static add(e){if(!e.fileLink){console.error("Failed to find cdn link on asset, cannot persist!");return}const t=new Map;t.set(e.key||"",e.fileLink);const A=Y.getMap(de);A&&A.forEach((n,a)=>{t.set(a,n)}),Y.setMap(de,t),q.executeCallbacks()}static remove(e){const t=Y.getMap(de);if(!t)return;const A=Array.from(t.entries()).find(n=>n[0]===e);A&&(t.delete(A[0]),Y.setMap(de,t),q.executeCallbacks())}static list(){const e=Y.getMap(de);return e?Array.from(e.entries()).map(t=>({assetKey:t[0],src:t[1]})):[]}static addCallback(e){q.callbacks.push(e)}static removeCallback(e){q.callbacks=q.callbacks.filter(t=>t!==e)}static executeCallbacks(){q.callbacks.forEach(e=>e())}};Et.callbacks=[];let _=Et;const Ct="bgrmPersistentAssets";class O{static has(e){return O.getMap().has(e)}static get(e){return O.getMap().get(e)}static keys(){return O.getMap().keys()}static values(){return O.getMap().values()}static add(e,t){const A=O.getMap();A.set(e,t),O.setMap(A)}static delete(e){const t=O.getMap();t.delete(e),O.setMap(t)}static deleteForBgRemovedKey(e){const t=O.getMap(),A=Array.from(t.keys()).find(n=>t.get(n)===e);A&&(t.delete(A),O.setMap(t))}static getMap(){return Y.getMap(Ct)||new Map}static setMap(e){Y.setMap(Ct,e)}}const G=new RA;class vA{constructor(){this.cache={},this.disabled=!1}get(e){if(this.disabled)return;const t=JSON.stringify(e);return this.cache[t]}set(e,t){if(this.disabled)return t;const A=JSON.stringify(e);return this.cache[A]=t,t}disable(e){this.disabled=e}}const ee=new vA,ut=M.gql`
106
+ fragment OptionFields on Option {
107
+ id
108
+ name
109
+ public
110
+ currencyCode
111
+ type
112
+ workflowId
113
+ displayType
114
+ variants {
115
+ id
116
+ name
117
+ enabled
118
+ color
119
+ namedColor
120
+ priceModifier
121
+ asset {
122
+ ...AssetFields
123
+ }
124
+ displayImage {
125
+ ...AssetFields
126
+ }
127
+ thumbnail {
128
+ ...AssetFields
129
+ }
130
+ material {
131
+ ...MaterialFields
132
+ }
133
+ }
134
+ defaultVariant {
135
+ id
136
+ name
137
+ asset {
138
+ ...AssetFields
139
+ }
140
+ }
141
+ colorProfile {
142
+ ...AssetFields
143
+ }
144
+ }
145
+ `,UA=M.gql`
146
+ ${le(!1)}
147
+ ${Ue}
148
+ ${ut}
149
+ query GetOptions($ids: [String]!) {
150
+ options(ids: $ids) {
151
+ ...OptionFields
152
+ }
153
+ }
154
+ `,GA=async c=>{const e=await N.getShadowGraphqlClient().query({query:UA,errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:c}});return e.data.options.forEach(t=>{var A,n;(A=t.defaultVariant)!=null&&A.asset&&G.cacheAsset(t.defaultVariant.asset),t.colorProfile&&G.cacheAsset(t.colorProfile),(n=t.variants)==null||n.forEach(a=>{a.asset&&G.cacheAsset(a.asset),a.displayImage&&G.cacheAsset(a.displayImage),a.thumbnail&&G.cacheAsset(a.thumbnail),a.material&&G.cacheMaterial(a.material)})}),e.data.options},kA=async(c,e)=>(await e).find(A=>A.id===c),bA=async c=>{const e=c.map(i=>ee.get({id:i})),t=c.filter((i,o)=>e[o]===void 0);if(t.length===0)return Promise.all(e);const A=GA(t),n=t.map(i=>ee.set({id:i},kA(i,A))),a=e.filter(i=>i!==void 0);return await Promise.all(a.concat(n))};class JA{constructor(){this.getDisplayImageSource=e=>{var t;if(e){const A=(t=e.displayImage)==null?void 0:t.fileLink;if(A)return A}},this.getSelectedVariant=(e,t)=>{var A;if(!(!e||t.length===0))return(A=e.variants)==null?void 0:A.find(n=>n.id===t[0])}}async getOption(e){return(async()=>{const n=(await bA([e]))[0];if(n)return n})()}async getAssetTileImageForVariant(e){var n,a;const t=e.thumbnail;if(t){const i=(n=t.versions)==null?void 0:n.find(s=>s.name==="thumbnail"),o=t.fileLink;return(i==null?void 0:i.link)||o}const A=e.asset;if(A){const i=(a=A.versions)==null?void 0:a.find(s=>s.name==="thumbnail"),o=A.fileLink;return(i==null?void 0:i.link)||o}return e.material?e.material.id:""}getDefaultVariant(e){const t=e.variants;if(t){if(t.length===1)return t[0];if(e.defaultVariant!==void 0)return t.find(A=>{var n;return A.id===((n=e.defaultVariant)==null?void 0:n.id)})}}}const L=new JA;var Qt=(c=>(c.Hub="Hub",c.Shopify="Shopify",c))(Qt||{}),pe=(c=>(c.BackgroundRemover="BackgroundRemover",c.ConversionAccelerator="Conversion Accelerator",c.ProcessBuilder="ProcessBuilder",c))(pe||{}),mt=(c=>(c[c.Orbit=0]="Orbit",c[c.Pan=1]="Pan",c))(mt||{}),ft=(c=>(c.Manual="Manual",c.OnStart="OnStart",c.OnQuit="OnQuit",c.OnEnd="OnEnd",c))(ft||{}),It=(c=>(c.Email="Email",c.FirstName="FirstName",c.LastName="LastName",c.Phone="Phone",c))(It||{}),Be=(c=>(c.Owner="Owner",c.Approver="Approver",c.Editor="Editor",c.Viewer="Viewer",c))(Be||{});const te=M.gql`
155
+ fragment AdditionalIntegrationProductFields on IntegrationProduct {
156
+ id
157
+ product {
158
+ id
159
+ basePrice
160
+ enabled
161
+ name
162
+ description
163
+ sku
164
+ skuCode
165
+ weight
166
+ imageUrl
167
+ modelUrl
168
+ overlayImageUrl
169
+ preloadImageUrl
170
+ }
171
+ }
172
+ `,pt=M.gql`
173
+ ${te}
174
+ mutation CreateTransaction(
175
+ $integrationProductId: String
176
+ $externalIntegrationId: String
177
+ $externalProductId: String
178
+ $claim: Boolean
179
+ $workflowId: String
180
+ $designName: String
181
+ ) {
182
+ transactionCreate(
183
+ integrationProductId: $integrationProductId
184
+ externalIntegrationId: $externalIntegrationId
185
+ externalProductId: $externalProductId
186
+ claim: $claim
187
+ workflowId: $workflowId
188
+ designName: $designName
189
+ ) {
190
+ id
191
+ designName
192
+ transactionOwnerId
193
+ workflowId
194
+ customLogoLink
195
+ workflowFooterLogoLink
196
+ restApiIntegrationLink
197
+ workflowState
198
+ workflowViewerLink
199
+ workflowViewerReadOnlyLink
200
+ product {
201
+ id
202
+ basePrice
203
+ enabled
204
+ name
205
+ description
206
+ partner {
207
+ id
208
+ name
209
+ currencyCode
210
+ customerDetailsPromptMarkdown
211
+ }
212
+ profanities {
213
+ id
214
+ word
215
+ }
216
+ sku
217
+ skuCode
218
+ weight
219
+ workflows {
220
+ id
221
+ friendlyName
222
+ isPresent
223
+ workflowName
224
+ imageUrl
225
+ }
226
+ imageUrl
227
+ modelUrl
228
+ overlayImageUrl
229
+ preloadImageUrl
230
+ promptForCustomerDetails
231
+ conversionConfiguration {
232
+ id
233
+ name
234
+ locations
235
+ requestedData
236
+ requestedDataItems {
237
+ type
238
+ mandatory
239
+ }
240
+ mandatory
241
+ }
242
+ productTags {
243
+ id
244
+ name
245
+ }
246
+ priceBreaks {
247
+ id
248
+ minQty
249
+ percentage
250
+ }
251
+ }
252
+ integrationProduct {
253
+ id
254
+ externalProductId
255
+ externalVariantId
256
+ additionalExternalProductId
257
+ additionalExternalVariantId
258
+ additionalIntegrationProduct {
259
+ ...AdditionalIntegrationProductFields
260
+ }
261
+ }
262
+ }
263
+ }
264
+ `,TA=M.gql`
265
+ ${te}
266
+ mutation CreateTransactions($inputs: [TransactionCreateInput]!) {
267
+ transactionCreateMany(inputs: $inputs) {
268
+ id
269
+ designName
270
+ transactionOwnerId
271
+ workflowId
272
+ customLogoLink
273
+ workflowFooterLogoLink
274
+ restApiIntegrationLink
275
+ workflowState
276
+ workflowViewerLink
277
+ workflowViewerReadOnlyLink
278
+ product {
279
+ id
280
+ basePrice
281
+ enabled
282
+ name
283
+ description
284
+ partner {
285
+ id
286
+ name
287
+ currencyCode
288
+ customerDetailsPromptMarkdown
289
+ }
290
+ profanities {
291
+ id
292
+ word
293
+ }
294
+ sku
295
+ skuCode
296
+ weight
297
+ workflows {
298
+ id
299
+ friendlyName
300
+ isPresent
301
+ workflowName
302
+ imageUrl
303
+ }
304
+ imageUrl
305
+ modelUrl
306
+ overlayImageUrl
307
+ preloadImageUrl
308
+ promptForCustomerDetails
309
+ conversionConfiguration {
310
+ id
311
+ name
312
+ locations
313
+ requestedData
314
+ requestedDataItems {
315
+ type
316
+ mandatory
317
+ }
318
+ mandatory
319
+ }
320
+ productTags {
321
+ id
322
+ name
323
+ }
324
+ priceBreaks {
325
+ id
326
+ minQty
327
+ percentage
328
+ }
329
+ }
330
+ integrationProduct {
331
+ id
332
+ externalProductId
333
+ externalVariantId
334
+ additionalExternalProductId
335
+ additionalExternalVariantId
336
+ additionalIntegrationProduct {
337
+ ...AdditionalIntegrationProductFields
338
+ }
339
+ }
340
+ }
341
+ }
342
+ `,OA=M.gql`
343
+ ${te}
344
+ mutation ClaimTransaction($id: String!) {
345
+ transactionClaim(id: $id) {
346
+ id
347
+ designName
348
+ transactionOwnerId
349
+ workflowId
350
+ customLogoLink
351
+ workflowFooterLogoLink
352
+ restApiIntegrationLink
353
+ workflowState
354
+ workflowViewerLink
355
+ workflowViewerReadOnlyLink
356
+ product {
357
+ id
358
+ basePrice
359
+ enabled
360
+ name
361
+ description
362
+ partner {
363
+ id
364
+ name
365
+ currencyCode
366
+ customerDetailsPromptMarkdown
367
+ }
368
+ profanities {
369
+ id
370
+ word
371
+ }
372
+ sku
373
+ skuCode
374
+ weight
375
+ workflows {
376
+ id
377
+ friendlyName
378
+ isPresent
379
+ workflowName
380
+ imageUrl
381
+ }
382
+ imageUrl
383
+ modelUrl
384
+ overlayImageUrl
385
+ preloadImageUrl
386
+ promptForCustomerDetails
387
+ conversionConfiguration {
388
+ id
389
+ name
390
+ locations
391
+ requestedData
392
+ requestedDataItems {
393
+ type
394
+ mandatory
395
+ }
396
+ mandatory
397
+ }
398
+ productTags {
399
+ id
400
+ name
401
+ }
402
+ priceBreaks {
403
+ id
404
+ minQty
405
+ percentage
406
+ }
407
+ }
408
+ integrationProduct {
409
+ id
410
+ externalProductId
411
+ externalVariantId
412
+ additionalExternalProductId
413
+ additionalExternalVariantId
414
+ additionalIntegrationProduct {
415
+ ...AdditionalIntegrationProductFields
416
+ }
417
+ }
418
+ }
419
+ }
420
+ `,De=M.gql`
421
+ ${te}
422
+ query ReadTransactions($ids: [String]!) {
423
+ transactions(ids: $ids) {
424
+ customLogoLink
425
+ designName
426
+ externalDesignProductId
427
+ externalDesignProductVariantId
428
+ externalCartProductId
429
+ externalCartProductVariantId
430
+ id
431
+ lastSyncedAt
432
+ priceModifierTotal
433
+ restApiIntegrationLink
434
+ workflowFooterLogoLink
435
+ workflowId
436
+ workflowState
437
+ workflowViewerLink
438
+ workflowViewerReadOnlyLink
439
+ previewImageLink
440
+ isOrdered
441
+ quantity
442
+ printFileUrl1
443
+ printFileUrl2
444
+ printFileUrl3
445
+ printFileUrl4
446
+ printFileUrl5
447
+ printFileName1
448
+ printFileName2
449
+ printFileName3
450
+ printFileName4
451
+ printFileName5
452
+ transactionShareActions {
453
+ id
454
+ title
455
+ stakeholderType
456
+ precedence
457
+ url
458
+ }
459
+ product {
460
+ id
461
+ basePrice
462
+ enabled
463
+ name
464
+ description
465
+ partner {
466
+ id
467
+ name
468
+ currencyCode
469
+ customerDetailsPromptMarkdown
470
+ }
471
+ productImages {
472
+ id
473
+ precedence
474
+ asset {
475
+ key
476
+ fileLink
477
+ name
478
+ type
479
+ versions {
480
+ name
481
+ link
482
+ }
483
+ }
484
+ }
485
+ integrationProducts {
486
+ id
487
+ integration {
488
+ id
489
+ type
490
+ }
491
+ externalProductId
492
+ externalVariantId
493
+ additionalExternalProductId
494
+ additionalExternalVariantId
495
+ additionalIntegrationProduct {
496
+ ...AdditionalIntegrationProductFields
497
+ }
498
+ }
499
+ profanities {
500
+ id
501
+ word
502
+ }
503
+ sku
504
+ skuCode
505
+ weight
506
+ workflows {
507
+ id
508
+ friendlyName
509
+ isPresent
510
+ workflowName
511
+ imageUrl
512
+ }
513
+ imageUrl
514
+ modelUrl
515
+ overlayImageUrl
516
+ preloadImageUrl
517
+ promptForCustomerDetails
518
+ conversionConfiguration {
519
+ id
520
+ name
521
+ locations
522
+ requestedData
523
+ requestedDataItems {
524
+ type
525
+ mandatory
526
+ }
527
+ mandatory
528
+ }
529
+ productTags {
530
+ id
531
+ name
532
+ }
533
+ priceBreaks {
534
+ id
535
+ minQty
536
+ percentage
537
+ }
538
+ }
539
+ integrationProduct {
540
+ id
541
+ externalProductId
542
+ externalVariantId
543
+ additionalExternalProductId
544
+ additionalExternalVariantId
545
+ additionalIntegrationProduct {
546
+ ...AdditionalIntegrationProductFields
547
+ }
548
+ }
549
+ }
550
+ }
551
+ `,LA=M.gql`
552
+ mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
553
+ transactionUpdate(id: $id, workflowState: $workflowState) {
554
+ id
555
+ }
556
+ }
557
+ `,zA=M.gql`
558
+ mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
559
+ transactionUpdate(id: $id, workflowId: $workflowId) {
560
+ id
561
+ }
562
+ }
563
+ `,jA=M.gql`
564
+ mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
565
+ transactionUpdate(id: $id, quantity: $quantity) {
566
+ id
567
+ }
568
+ }
569
+ `;M.gql`
570
+ query ReadTransactionForDesignCreation($id: String!) {
571
+ transactions(ids: [$id]) {
572
+ id
573
+ designName
574
+ product {
575
+ basePrice
576
+ promptForCustomerDetails
577
+ partner {
578
+ id
579
+ name
580
+ customerDetailsPromptMarkdown
581
+ }
582
+ conversionConfiguration {
583
+ id
584
+ name
585
+ locations
586
+ requestedData
587
+ requestedDataItems {
588
+ type
589
+ mandatory
590
+ }
591
+ mandatory
592
+ }
593
+ productTags {
594
+ id
595
+ name
596
+ }
597
+ priceBreaks {
598
+ id
599
+ minQty
600
+ percentage
601
+ }
602
+ }
603
+ priceModifierTotal
604
+ externalDesignProductId
605
+ externalDesignProductVariantId
606
+ externalCartProductId
607
+ externalCartProductVariantId
608
+ workflowViewerLink
609
+ workflowViewerReadOnlyLink
610
+ lastSyncedAt
611
+ quantity
612
+ }
613
+ }
614
+ `;const KA=M.gql`
615
+ query ReadTransactionForShareActions($id: String!) {
616
+ transactions(ids: [$id]) {
617
+ id
618
+ transactionShareActions {
619
+ id
620
+ title
621
+ stakeholderType
622
+ precedence
623
+ url
624
+ }
625
+ }
626
+ }
627
+ `,Dt=M.gql`
628
+ query ReadWorkflowStates($ids: [String]!) {
629
+ transactions(ids: $ids) {
630
+ id
631
+ workflowState
632
+ }
633
+ }
634
+ `,Ft=M.gql`
635
+ ${te}
636
+ fragment IntegrationProductFields on IntegrationProduct {
637
+ id
638
+ externalProductId
639
+ externalVariantId
640
+ additionalExternalProductId
641
+ additionalExternalVariantId
642
+ additionalIntegrationProduct {
643
+ ...AdditionalIntegrationProductFields
644
+ }
645
+ integration {
646
+ id
647
+ enabled
648
+ externalIntegrationId
649
+ type
650
+ }
651
+ product {
652
+ id
653
+ basePrice
654
+ enabled
655
+ imageUrl
656
+ modelUrl
657
+ name
658
+ description
659
+ overlayImageUrl
660
+ preloadImageUrl
661
+ sku
662
+ skuCode
663
+ workflows {
664
+ id
665
+ index
666
+ friendlyName
667
+ isPresent
668
+ workflowName
669
+ imageUrl
670
+ }
671
+ productTags {
672
+ id
673
+ name
674
+ }
675
+ productImages {
676
+ id
677
+ precedence
678
+ asset {
679
+ key
680
+ fileLink
681
+ name
682
+ type
683
+ versions {
684
+ name
685
+ link
686
+ }
687
+ }
688
+ }
689
+ priceBreaks {
690
+ id
691
+ minQty
692
+ percentage
693
+ }
694
+ }
695
+ }
696
+ `,VA=M.gql`
697
+ ${Ft}
698
+ query GetIntegrationProducts($ids: [String!]!) {
699
+ integrationProducts(ids: $ids) {
700
+ ...IntegrationProductFields
701
+ }
702
+ }
703
+ `,WA=M.gql`
704
+ ${Ft}
705
+ query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
706
+ integrationProductFromExternalIds(
707
+ externalIntegrationId: $externalIntegrationId
708
+ externalProductId: $externalProductId
709
+ ) {
710
+ ...IntegrationProductFields
711
+ }
712
+ }
713
+ `,we=[l.StepType.SilentIllustration,l.StepType.ProductOverlay],XA=async c=>{const e=[];c.introduction&&e.push({name:"Introduction",title:c.name,renderableSteps:[{type:l.StepType.Introduction,stepName:"Introduction",stepTitle:c.name,helpText:c.introduction,data:{},conditions:[]}],silentSteps:[]});for(const A of c.steps){const n=qA(A.stepName,c.stepGroups);if(!n)e.push({name:A.stepName,title:A.stepTitle,renderableSteps:we.includes(A.type)?[]:[A],silentSteps:we.includes(A.type)?[A]:[]});else{const a=e.find(i=>i.name===n.name);a?we.includes(A.type)?a.silentSteps.push(A):a.renderableSteps.push(A):e.push({name:n.name,title:n.name,renderableSteps:we.includes(A.type)?[]:[A],silentSteps:we.includes(A.type)?[A]:[]})}}const t="workflow.steps.finish.confirmDesign";return e.push({name:"Finish",title:t,renderableSteps:[{type:l.StepType.Finish,stepName:"Finish",stepTitle:t,helpText:"",data:{modelAnimation:c.finalizeStepConfig?c.finalizeStepConfig.modelAnimation:void 0,lookAtAnimation:c.finalizeStepConfig?c.finalizeStepConfig.lookAtAnimation:void 0},conditions:[]}],silentSteps:[]}),e},qA=(c,e)=>e.find(t=>t.stepNames.includes(c)),Ae=(c,e)=>(c.conditions||[]).every(t=>{const A=e[t.targetStepName];if(A&&A.selectedVariants){const n=A.selectedVariants;return t.requiredVariantSelections.some(a=>n.find(i=>i.id===a)!==void 0)}return!1}),ZA=(c,e)=>{const t={name:c.name,title:c.title,renderableSteps:c.renderableSteps.filter(A=>Ae(A,e)),silentSteps:c.silentSteps.filter(A=>Ae(A,e))};return t.silentSteps.length===0&&t.renderableSteps.length===0?null:t},ne=(c,e)=>c.map(t=>ZA(t,e)).filter(t=>t!==null),$A=async(c,e,t=!1)=>{var i;const A=ne(c,e),n=[];for(const o of A)for(const s of o.renderableSteps){const r=(((i=s.option)==null?void 0:i.variants)||[]).length;s.silent||(s.type===l.StepType.Model||s.type===l.StepType.Material||s.type===l.StepType.Picture||s.type===l.StepType.Shape?(r>1||t)&&n.push(s.stepName):n.push(s.stepName))}const a=A.filter(o=>o.renderableSteps.filter(r=>n.includes(r.stepName)).length>0);for(const o of a)o.renderableSteps=o.renderableSteps.filter(s=>n.includes(s.stepName));return a};class ke{constructor(){this.timestamp=Date.now()}}class be{constructor(e,t=!0){this.queue=[],this.activePromise=void 0,this.queueMaxSize=void 0,this.queueMaxSize=e,this.isEnabled=t}enqueue(e){if(this.queue.push(e),this.queueMaxSize!==void 0&&this.queue.length>this.queueMaxSize){const t=this.queue.length-1;for(let A=0;A<t;++A)this.queue.shift()}this.isEnabled&&(this.activePromise||(this.activePromise=this.dequeue()))}get enabled(){return this.isEnabled}set enabled(e){!this.isEnabled&&e&&!this.activePromise&&(this.activePromise=this.dequeue()),this.isEnabled=e}hasActivePromise(){return!!this.activePromise}getRemainingQueueSize(){return this.queue.length}async finalize(){return this.activePromise?this.activePromise:Promise.resolve()}async dequeue(){const e=this.queue.shift();if(!e){this.activePromise=void 0;return}try{await e.execute()}catch(t){console.log(t)}finally{await this.dequeue()}}}function Mt(c,e,t,A){const n=t.width*c.zoom,a=t.height*c.zoom;if(A){const o=c,s=Math.max(e.width/t.width,e.height/t.height);o.zoom=Math.max(s,c.zoom);const r=t.width*o.zoom,g=t.height*o.zoom;return o.x=Fe(c.x,e.width-r,0),o.y=Fe(c.y,e.height-g,0),o}const i=c;return i.x=Fe(i.x,-n,e.width),i.y=Fe(i.y,-a,e.height),i}function Fe(c,e,t){return Math.min(Math.max(c,e),t)}class St{constructor(e){this.minZoomScale=[.03],this.maxZoomScale=[20],this._debouncedUpdateFrameOffsets=st(this.updateFrameOffsets,200),this.targetElements=[],this.onFrameDataChangeListeners=[],this.onZoomChangeListeners=[],this.forceImageCover=e,this.thresholdSettings={useThreshold:!1,invertThreshold:!1,threshold:128,thresholdSaturation:.5}}connectWorkflowManager(e,t){t&&e.addStepSpecificStorageCallback(async A=>{if(A){const n=A;if(n.currentFrameSources){let a=!1;for(let i=0;i<n.currentFrameSources.length;i++){const o=n.currentFrameSources[i],s=await l.getFrameData(o),r=this.frameData?this.frameData[i]:void 0;rt(s,r)||(this.frameData||(this.frameData=new Array(n.currentFrameSources.length)),this.frameData[i]=s,a=!0)}a&&(this.onFrameDataChangeListeners.forEach(i=>i(this.frameData)),this.frameData&&this.imageData&&(this.recalculateOffsets(this.imageData),this.updateOffsets(this.offsets),this.recalculateZoomLimits(this.imageData,this.frameData)))}}},t),this.workflowManager=e,this.stepName=t}setTargetElements(e){this.targetElements=e}getFrameData(){return this.frameData}setFrameData(e){if(!e){this.frameData=void 0;return}e.forEach((t,A)=>{const n=l.frameDataCache.get(t);n&&(this.frameData||(this.frameData=new Array(e.length)),this.frameData[A]=n)})}getImageData(){return this.imageData}getOffsets(){return this.offsets}setOffsets(e){this.offsets=e}setZoom(e,t,A,n){if(this.imageData&&this.offsets&&this.frameData){(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length));const a=this.frameData.map((i,o)=>{const s=(t[o]-this.offsets[o].x)/this.offsets[o].zoom,r=(A[o]-this.offsets[o].y)/this.offsets[o].zoom,g=t[o]-s*e[o],B=A[o]-r*e[o];return{x:g,y:B,zoom:this.imageData.width*e[o]/this.imageData.width}});this.updateOffsets(a,n),this.onZoomChangeListeners.forEach(i=>i(e))}}setPatternData(e,t=!0){this.imageData=e,e&&this.frameData&&((t||!this.offsets)&&this.recalculateOffsets(e),this.updateOffsets(this.offsets,void 0,!0)),this.imageData&&this.frameData&&this.recalculateZoomLimits(this.imageData,this.frameData)}updateOffsets(e,t,A){const n=this.imageData;if(!n||!this.frameData)return;if(this.frameData.length!==e.length)throw new k("Frame data and offsets are not the same length. This is a bug. Please report it.");if(!this.offsets.some((i,o)=>!(e[o].x===i.x&&e[o].y===i.y&&e[o].zoom===i.zoom))&&!A){t&&t();return}(!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((i,o)=>{this.offsets[o]=Mt(e[o],i,this.imageData,this.forceImageCover)}),this._debouncedUpdateFrameOffsets(this.offsets,n,this.frameData,this.thresholdSettings,this.targetElements,t)}getThresholdSettings(){return this.thresholdSettings}setThresholdSettings(e){this.thresholdSettings=e,this.imageData&&this.frameData&&this._debouncedUpdateFrameOffsets(this.offsets,this.imageData,this.frameData,e,this.targetElements)}onFrameDataChanged(e){e(this.frameData),this.onFrameDataChangeListeners.push(e)}onZoom(e){this.onZoomChangeListeners.push(e)}updateFrameOffsets(e,t,A,n,a,i){if(!A||A.length===0||A.some(s=>!s))throw new k("Frame data not set. This is a bug");if(!this.workflowManager)throw new k("No workflow manager set, cannot update offsets.");const o=this.workflowManager.getCommandDispatcher();a.forEach((s,r)=>{o(new l.GroupCommand([new l.UpdateFramePattern(s,t,e[r]),new l.UpdateFrameThresholdSettingsCommand(s,n.useThreshold,n.invertThreshold,n.threshold,n.thresholdSaturation)]))}),this.stepName&&this.workflowManager.updateStorage(this.stepName,{frameOffsetsList:e}),i&&i()}recalculateZoomLimits(e,t){(this.minZoomScale.length!==t.length||this.maxZoomScale.length!==t.length)&&(this.minZoomScale=new Array(t.length),this.maxZoomScale=new Array(t.length)),t.forEach((A,n)=>{const a=Math.max(A.width/e.width,A.height/e.height);this.forceImageCover?(this.minZoomScale[n]=a,this.maxZoomScale[n]=a*2.5):(this.minZoomScale[n]=a/10,this.maxZoomScale[n]=a*2.5)})}recalculateOffsets(e){this.frameData&&((!this.offsets||this.offsets.length!==this.frameData.length)&&(this.offsets=new Array(this.frameData.length)),this.frameData.forEach((t,A)=>{this.offsets[A]=l.calculateOffsets(e,t)}),this._debouncedUpdateFrameOffsets(this.offsets,e,this.frameData,this.thresholdSettings,this.targetElements))}}class yt{constructor(e,t,A){this.processRegion=async n=>{var s,r,g,B;const a=this.layouts.find(d=>d.panelId===n.panelId);if(!a)throw new J(n);let i="";if(this.configuration.type===l.StepType.ProductOverlay){let d="";if((s=this.product)!=null&&s.overlayImageUrl&&(d=this.product.overlayImageUrl),i=d,!d)throw new ge(this.configuration,"Couldn't find an asset for product overlay step")}const o=this.evaluateAssetType();if(o===l.LayoutElementType.Image){const d=this.configuration.type===l.StepType.SilentIllustration?(r=this.configuration.data.asset)==null?void 0:r.fileLink:(g=this.product)==null?void 0:g.overlayImageUrl;if(!d)throw new Error("Undefined raster silent step source");const w={stepName:this.configuration.stepName,id:l.generate(),src:d,type:o,y:n.top,x:n.left,width:n.width,height:n.height,layer:n.layer,layerIndex:n.layerIndex,immutable:n.immutable,productOverlay:this.configuration.type===l.StepType.ProductOverlay?!0:void 0,rotation:n.rotation,excludeFromExport:this.configuration.data.excludeFromPrint,preserveAspectRatio:"none"};return{regionElement:{id:w.id,region:n},command:new l.CreateElementCommand(w,a)}}else{const d=this.configuration.type===l.StepType.SilentIllustration?(B=this.configuration.data.asset)==null?void 0:B.fileLink:i,w=async()=>new Promise((E,m)=>{if(!d){m("Undefined vector silent step source");return}l.fetchAsString(d,!0).then(Q=>{E(Q)}).catch(Q=>console.error(Q))}),h=await l.generateSVGWithUnknownColors(await w()),C={stepName:this.configuration.stepName,id:l.generate(),cachedObjectURL:await l.svgObjectURL(h.svg),src:d,svg:h.svg,colors:h.colors,type:o,y:n.top,x:n.left,width:n.width,height:n.height,layer:n.layer,layerIndex:n.layerIndex,rotation:n.rotation,immutable:n.immutable,productOverlay:this.configuration.type===l.StepType.ProductOverlay?!0:void 0,excludeFromExport:this.configuration.data.excludeFromPrint};return{regionElement:{id:C.id,region:n},command:new l.CreateElementCommand(C,a)}}},this.configuration=e,this.layouts=t,this.product=A||void 0}async trigger(){if(!this.configuration.data.regions)throw new ge(this.configuration,"Missing regions.");if(this.configuration.type===l.StepType.SilentIllustration){const e=this.configuration.data.regions.map(this.processRegion);return Promise.all(e)}else return this.configuration.type===l.StepType.ProductOverlay?Promise.all(this.configuration.data.regions.map(e=>{if(!this.layouts.find(A=>e.panelId===A.panelId))throw new J(e);return this.processRegion(e)})):Promise.reject("Unknown silent step. This is a bug")}evaluateAssetType(){var t,A,n;const e=this.configuration.type===l.StepType.ProductOverlay&&((t=this.product)!=null&&t.overlayImageUrl)?this.product.overlayImageUrl.toLowerCase():(n=(A=this.configuration.data.asset)==null?void 0:A.fileLink)==null?void 0:n.toLowerCase().split("?")[0];return e!=null&&e.startsWith("data:image/png")||e!=null&&e.endsWith(".jpeg")||e!=null&&e.endsWith(".jpg")||e!=null&&e.endsWith(".png")?l.LayoutElementType.Image:(e!=null&&e.endsWith(".svg")||e!=null&&e.startsWith("image/svg+xml"),l.LayoutElementType.Illustration)}}const Yt=async c=>{const e=`${X.getServicesApiUrl()}/shortener`;try{return(await(await fetch(e,{method:"POST",body:JSON.stringify({longUrl:c}),headers:{"Content-Type":"application/json"}})).json()).shortUrl}catch(t){throw console.error(t),new Ie("Failed to shorten URL, see console.")}};class Pt{async poll(){try{if(await this.predicate()){this.onSuccess(),this.pollingId>-1&&window.clearInterval(this.pollingId);return}}catch{}this.attempts+=1,this.attempts<this.maxAttempts?this.pollingId=window.setTimeout(this.poll.bind(this),this.interval):this.onFailure()}constructor(e,t,A,n=3e3,a=10){this.onSuccess=t,this.onFailure=A,this.predicate=e,this.attempts=0,this.pollingId=-1,this.interval=n,this.maxAttempts=a,this.poll()}}class _A{async init(e,t,A){return A&&await this.reload(e,t,A),null}async reload(e,t,A){const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(r=>r.elements).flat().filter(r=>r.stepName===e.stepName).map(r=>({id:r.id,region:r.stepRegion}));await t.setSelectionsAndElements(e.stepName,[],s,async()=>{var B,d;const r=(B=n==null?void 0:n.storage)==null?void 0:B.videoShortUrl,g=(d=n==null?void 0:n.storage)==null?void 0:d.videoUrl;t.updateStorage(e.stepName,{videoShortUrl:r,videoUrl:g})})}async regenerateQRCode(e,t,A,n,a,i,o,s,r){if(!t&&A!==""&&n===""){const g=async()=>{var f,p;const Q=(await Ge([A]))[0],D=(p=(f=Q==null?void 0:Q.versions)==null?void 0:f.find(I=>I.name==="mpeg4"))==null?void 0:p.link;return{asset:Q,link:D}},B=await new Promise((Q,D)=>{new Pt(async()=>!!(await g()).link,async()=>{const f=await g();if(!f.link||!f.link)throw new Z(f.asset);Q({rel:"mpeg4",href:f.link})},()=>{D("Poller timed out with 40 attempts @ 3 second interval")},3e3,40)});e.forEach(Q=>s(new l.DeleteElementCommand(Q.id)));const d=i.data.baseUrl.slice(0,4)==="http"?"":"https://",w=new URL(d+i.data.baseUrl);w.searchParams.append("video",btoa(JSON.stringify([B]))),w.pathname=w.pathname+(w.pathname.slice(-1)==="/"?"":"/");const h=w.toString();if(h.length>=2e3)throw new Ie("Cannot create QR code, URL too long.");const C=await Yt(h);if(o(C),!i.data||!i.data.regions)throw new ge(i,"Missing regions.");const E=await this.regionElements(i),m=await this.command(C,E,a,i.stepName);m&&(m.command&&a.getCommandDispatcher()(m.command),m.followup&&await m.followup()),await a.setSelectionsAndElements(i.stepName,[],E,async()=>{a.updateStorage(i.stepName,{videoShortUrl:C,videoUrl:n}),r(!1)})}else r(!1)}async regionElements(e){const t=A=>({id:l.generate(),region:A});return e.data.regions.map(t)}async command(e,t,A,n){const a=A.getLayouts(),o=`data:image/svg+xml;base64,${btoa(await ct.toString(e,{type:"svg"}))}`,s=t.map(r=>{const g=r.region,B=a.find(d=>d.panelId===(g==null?void 0:g.panelId));if(!B&&g)throw new J(g);if(B&&!g)throw new Error("Region not found");if(!B||!g)throw new Error("Neither a region or layout found!");return new l.CreateElementCommand({stepRegion:g,stepName:n,id:r.id,src:o,type:l.LayoutElementType.Image,y:g.top,x:g.left,width:g.width,height:g.height,rotation:0},B)});return{command:new l.GroupCommand(s),followup:async()=>{}}}}const xt=new _A;class en{constructor(){this.frameSourceSvg=async(e,t)=>{if(!e)return l.generateDefaultRectangleFrameSvg(t);const A=e.asset;if(!A)throw new W(e);const n=A.fileLink;if(n)return l.fetchAsString(n,!0);throw new Z(A)}}async init(e,t,A){if(A)return await this.reload(e,t,A),null;if(e.mandatory&&t.setMandatoryFulfilled(e.stepName,!1),t.markStepsAsInitialised([e.stepName]),e.option&&e.option.variants&&e.option.variants.length>0){const n=e.option,a=L.getDefaultVariant(n);return a?this.selectVariantCommand(e,a,[],t,void 0,e.data.placeholderImageUrl):null}return this.selectVariantCommand(e,void 0,[],t,void 0,e.data.placeholderImageUrl)}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName).map(g=>({id:g.id,region:g.stepRegion}));if(!e.option||(e.option.variants||[]).length===0){const g=e.data.regions.map(B=>l.generateDefaultRectangleFrameSvg(B));t.updateStorage(e.stepName,{currentFrameSources:g})}if(n){const g=async()=>{var h,C,E,m,Q;const B=(h=n.storage)==null?void 0:h.colors,d=(C=n.storage)==null?void 0:C.framePatternSrc,w=(E=n.storage)==null?void 0:E.frameOffsetsList;if(t.updateMetadata(e.stepName,{frameOffsetsList:w,framePatternSrc:d}),d){const D=(m=t.getStepSpecificServices(e.stepName))==null?void 0:m.frameService;if(!D)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(d,D,!0,B),t.updateMetadata(e.stepName,{image:d}),t.updateStorage(e.stepName,{framePatternSrc:d})}if(w!=null&&w.some(D=>D.zoom)){const D=(Q=t.getStepSpecificServices(e.stepName))==null?void 0:Q.frameService;if(!D)throw new Error("Frame service unavailable, cannot load pattern!");D.updateOffsets(w)}t.setMandatoryFulfilled(e.stepName,!0)};if(n.selectedVariants&&n.selectedVariants.length>0){const B=n.selectedVariants[0].id;if(e.option&&B){const d=(r=e.option.variants)==null?void 0:r.find(w=>w.id===B);d&&await t.setSelectionsAndElements(e.stepName,[d],s,async()=>{const w=await Promise.all(e.data.regions.map(h=>this.frameSourceSvg(d,h)));t.updateStorage(e.stepName,{currentFrameSources:w}),await g()})}}else await t.setSelectionsAndElements(e.stepName,[],s,g)}}selectImage(e,t,A,n=!0){var s;const a=this.patternSource(t),i=(s=A.getStepStorage(e.stepName))==null?void 0:s.framePatternSrc;if(i&&i===a)return Promise.resolve();A.setEditedStatus(e.stepName,!0);const o=t.fileLink||"";return o.endsWith(".pdf")||o.endsWith(".eps")||o.endsWith(".ai")?new Promise(r=>{A.addPoller(new Pt(async()=>{var w;const B=(w=(await G.getFromServer(t.key||"")).versions)==null?void 0:w.find(h=>h.name==="svg");return B?(await fetch(B.link)).status===200:!1},()=>{G.getLocalOrFromServer(t.key||"").then(g=>{this.loadPatternFromAsset(g,e,A,n).then(r)})},()=>{throw new Ie("Failed to resolve transcoded PDF")}))}):this.loadPatternFromAsset(t,e,A,n)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A,n,a);i&&(i.command&&n.getCommandDispatcher()(i.command),i.followup&&await i.followup())}getCreateElementCommand(e,t,A,n){return new l.CreateElementCommand({id:e,type:l.LayoutElementType.Frame,x:t.left,y:t.top,width:t.width,height:t.height,layer:t.layer,layerIndex:t.layerIndex,rotation:t.rotation,scaleX:t.width/n.frameData.width,scaleY:t.height/n.frameData.height,path:n.frameData.path,dataWidth:n.frameData.width,dataHeight:n.frameData.height,stepRegion:t,stepName:n.stepName,disablePlaceholder:n.disablePlaceholder,focalBlur:n.focalBlur,focalBlurStrength:n.focalBlurStrength,focalBlurRadius:n.focalBlurRadius,pattern:n.pattern,immutable:t.immutable},A)}async loadPatternFromString(e,t,A=!0,n=void 0){if(e.endsWith("svg")){const a=await l.GetSVGDimensions(e),i=a.width,o=a.height,s=await l.fetchAsString(e),r=n??l.getSvgColors(s),g={src:e,width:i,height:o,aspect:i/o,svg:s,colors:r};l.patternImageDataCache.set(e,g),t.setPatternData(g,A)}else{const a=await l.fetchAsArrayBuffer(e,!0),i=await l.getAttributesFromArrayBuffer(a),o={src:e,width:i.width,height:i.height,aspect:i.width/i.height};l.patternImageDataCache.set(e,o),t.setPatternData(o,A)}}async getPatternColors(e,t){var n,a,i;const A=(n=t.getStepSpecificServices(e.stepName))==null?void 0:n.frameService;return!A||!((a=A.getImageData())!=null&&a.svg)?{}:((i=A.getImageData())==null?void 0:i.colors)||{}}async changeColors(e,t,A){var r,g,B,d;const n=(r=t.getStepSpecificServices(e.stepName))==null?void 0:r.frameService;if(!n||!((g=n.getImageData())!=null&&g.svg))return;const a={...n.getImageData().colors??{}},i={};Object.entries(a).forEach(([w,h])=>{const C={browserValue:h.browserValue};i[w]=C});for(const[w,h]of A.entries())a[w]={browserValue:h,spotColor:(B=a[w])==null?void 0:B.spotColor},i[w]={browserValue:h};let o=Array.from(Object.values(a)).map(w=>w.browserValue);const s=e.data.colorOption;s&&((d=s.variants)==null||d.forEach(w=>{o=o.map(h=>{var C;return h.toLowerCase()===((C=w.color)==null?void 0:C.toLowerCase())?w.name:h})})),t.updateMetadata(e.stepName,{colors:o}),t.updateStorage(e.stepName,{colors:i}),n.setPatternData({...n.getImageData(),colors:a},!1)}async selectVariantCommand(e,t,A,n,a,i){var d;const o=(d=n.getStepSpecificServices(e.stepName))==null?void 0:d.frameService;if(!o)throw new Error("Frame service unavailable, cannot load pattern!");const s=await Promise.all(e.data.regions.map(w=>this.frameSourceSvg(t,w)));a&&a(!0);const r=await Promise.all(e.data.regions.map(async(w,h)=>{const C=await l.getFrameData(s[h]),E=o.getImageData(),m=A.map(F=>new l.DeleteElementCommand(F.id)),Q=E?l.calculateOffsets(E,C):void 0,D=E?{id:l.generate(),src:E.src,x:(Q==null?void 0:Q.x)||0,y:(Q==null?void 0:Q.y)||0,width:E.width,height:E.height,scaleX:(Q==null?void 0:Q.zoom)||1,scaleY:(Q==null?void 0:Q.zoom)||1,rotation:0}:void 0,f=l.generate(),I=n.getLayouts().find(F=>F.panelId===w.panelId);if(!I)throw new J(w);return{command:this.getCreateElementCommand(f,w,I,{frameData:C,pattern:D,disablePlaceholder:e.data.disablePlaceholder,focalBlur:e.data.focalBlur,focalBlurStrength:e.data.focalBlurStrength,focalBlurRadius:e.data.focalBlurRadius,stepName:e.stepName}),regionEl:{id:f,region:w},removeExistingCommands:m}})),g=r.map(w=>w.command),B=r.map(w=>w.removeExistingCommands).flat();return{command:new l.GroupCommand([...g,...B]),followup:async()=>{a&&a(!1),await n.setSelectionsAndElements(e.stepName,t?[t]:[],[...r.map(w=>w.regionEl)],async()=>{var w;if(n.updateStorage(e.stepName,{currentFrameSources:s}),i){const h=(w=n.getStepSpecificServices(e.stepName))==null?void 0:w.frameService;if(!h)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(i,h,!0)}})}}}patternSource(e){var n;const t=(n=e.versions)==null?void 0:n.find(a=>a.name==="svg");if(t)return t.link;const A=e.fileLink;if(A)return A;throw new Z(e)}async loadPatternFromAsset(e,t,A,n){var s;const a=this.patternSource(e),i=A.markUpdatePending(),o=(s=A.getStepSpecificServices(t.stepName))==null?void 0:s.frameService;if(!o)throw new Error("Frame service unavailable, cannot load pattern!");await this.loadPatternFromString(a,o,n),A.updateMetadata(t.stepName,{image:a}),A.updateStorage(t.stepName,{framePatternSrc:a}),A.markUpdateCompleted(i)}}const he=new en;class tn{async getIllustrationBody(e){return new Promise(t=>{l.fetchAsString(e,!0).then(A=>{t(A)}).catch(A=>console.error(A))})}getCreateElementCommand(e,t,A,n){return new l.CreateElementCommand({stepRegion:t,stepName:n.stepName,colors:n.svg.colors,id:e,src:n.src,svg:n.svg.svg,cachedObjectURL:n.objectURL,type:l.LayoutElementType.Illustration,y:t.top,x:t.left,rotation:t.rotation,width:t.width,height:t.height,layer:t.layer,layerIndex:t.layerIndex,immutable:t.immutable},A)}getColors(e,t){const A=t.getRegionElements(e.stepName)||[];if(A.length===0)return[];try{return l.findElement(A[0].id,t.getAllLayoutData()).colors}catch{return[]}}async init(e,t,A){const n=e.option;if(!n)return null;if(A)return this.reload(e,t,A);{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantCommand(e,a,[],()=>{},t)}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const B=(r=s.variants)==null?void 0:r.find(d=>d.id===g);if(B){const d=o.map(w=>({id:w.id,region:w.stepRegion}));await t.setSelectionsAndElements(e.stepName,[B],d,async()=>{var w;t.updateMetadata(e.stepName,{colors:(w=n.storage)==null?void 0:w.colors}),t.setMandatoryFulfilled(e.stepName,!0)})}}else throw new Error("Required illustration variant no longer available")}return null}async availableColors(e,t){var n;const A=e.data.colorOption;return A?A?(n=A.variants)==null?void 0:n.map(a=>({fill:a.color,stroke:a.color,variant:a})):[]:[]}async changeColorsCommand(e,t,A,n,a){var g;const i={};for(const[B,d]of a.entries())i[B]={browserValue:d,spotColor:(g=i[B])==null?void 0:g.spotColor};const o=l.modifySVGWithElementProperties(e,t,A,i),s=await l.svgObjectURL(o),r=[];for(const B of n){for(const[d,w]of a.entries())r.push(new l.IllustrationColorCommand(B,d,w));r.push(new l.IllustrationCacheCommand(B,o,s))}return new l.GroupCommand(r)}async changeColors(e,t,A,n,a){var w,h;if(t.length===0)return;const i=l.findElement(t[0].id,n().map(C=>C.layoutState)),o={...i.colors},s={};Object.entries(o).forEach(([C,E])=>{const m={browserValue:E.browserValue},Q=E.spotColor;Q&&(m.spotColor={profileName:Q.profileName,namedColor:Q.namedColor}),s[C]=m});for(const[C,E]of a.entries())o[C]={browserValue:E,spotColor:(w=o[C])==null?void 0:w.spotColor},s[C]={browserValue:E};let r=Array.from(Object.values(o)).map(C=>C.browserValue);const g=e.data.colorOption;g&&((h=g.variants)==null||h.forEach(C=>{r=r.map(E=>{var m;return E.toLowerCase()===((m=C.color)==null?void 0:m.toLowerCase())?C.name:E})})),A.updateMetadata(e.stepName,{colors:r});const B=new Map;if(Object.entries(o).forEach(([C,E])=>{B.set(C,E.browserValue)}),!i.svg)throw new Error("Colors changed before SVG loaded. This should never happen!");const d=await this.changeColorsCommand(i.svg,i.width,i.height,t.map(C=>C.id),B);A.updateStorage(e.stepName,{colors:s}),A.getCommandDispatcher()(d)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A,n,a);i&&(i.command&&a.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async selectVariantCommand(e,t,A,n,a){var m;if(!e.data||!e.data.regions)throw new ge(e,"Missing regions.");n(!0);const i=A.map(Q=>new l.DeleteElementCommand(Q.id));e.mandatory&&a.setMandatoryFulfilled(e.stepName,!1);const o=t.asset;if(!o)throw new W(t);const s=o.fileLink;if(!s)throw new Z(o);const r=await l.generateSVGWithUnknownColors(await this.getIllustrationBody(s)),g=await l.svgObjectURL(r.svg),B=Q=>{const D=a.getLayouts().find(p=>p.panelId===Q.panelId);if(!D)throw new J(Q);const f=l.generate();return{regionElement:{id:f,region:Q},command:this.getCreateElementCommand(f,Q,D,{stepName:e.stepName,src:s,objectURL:g,svg:r})}},d=e.data.regions.map(B),h=[...d.map(Q=>Q.command),...i];let C=Array.from(Object.values(r.colors)).map(Q=>Q.browserValue);const E=e.data.colorOption;return E&&((m=E.variants)==null||m.forEach(Q=>{C=C.map(D=>{var f;return D.toLowerCase()===((f=Q.color)==null?void 0:f.toLowerCase())?Q.name:D})})),a.updateMetadata(e.stepName,{colors:C}),{command:new l.GroupCommand(h),followup:async()=>{await a.setSelectionsAndElements(e.stepName,[t],d.map(f=>f.regionElement),async()=>{a.setMandatoryFulfilled(e.stepName,!0),n(!1)});const Q=await this.availableColors(e,a)||[],D=Object.keys(r.colors);if(e.data.colorPickerEnabled&&Q.length===1&&D.length===1){const f=Q[0],p=D[0];await this.changeColors(e,d.map(I=>I.regionElement),a,()=>a.getCommandContext().getAllLayouts(),new Map([[p,f.variant.color]]))}}}}}const Ee=new tn;class An{async init(e,t,A){const n=e.option;if(!n)throw new ce(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantLambda(e,a,t,()=>{})}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(!s)throw new ce(e);if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(g){const B=(r=s.variants)==null?void 0:r.find(d=>d.id===g);if(B){const d=B.material,w=o.map(h=>({id:h.id,region:h.stepRegion}));await t.setSelectionsAndElements(e.stepName,[B],w,async()=>{const h=t.getModelContainer();if(h){const C=e.data.targetMaterials.map(E=>h.applyMaterialVariant(E,s.id||"",d||{}));Promise.all(C).then(()=>t.setMandatoryFulfilled(e.stepName,!0))}})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantLambda(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(e,t,A,n){const a=A.getModelContainer();n(!0);const i=t.material;if(!i)throw n(!1),new W(t);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],[],async()=>{try{a&&e.data.targetMaterials.forEach(o=>{e.option&&a.applyMaterialVariant(o,e.option.id||"",i)}),A.setMandatoryFulfilled(e.stepName,!0)}finally{n(!1)}})}}}}const Je=new An;class nn{async init(e,t,A){const n=e.option;if(!n)throw new ce(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);if(a)return await this.selectVariantLambda(e,a,t,()=>{})}return null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const B=(r=s.variants)==null?void 0:r.find(d=>d.id===g);if(B){const d=o.map(w=>({id:w.id,region:w.stepRegion}));await t.setSelectionsAndElements(e.stepName,[B],d,async()=>{var h;const w=t.getModelContainer();if(w&&e.option){const C=(h=B.asset)==null?void 0:h.fileLink;if(!C)throw new W(B);await w.applyModelVariant(e.stepName||"",{model:C,contextService:t.getLayoutPreviewService()},e.data.replaceProductModel||!1),t.setMandatoryFulfilled(e.stepName,!0)}})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantLambda(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantLambda(e,t,A,n){var i;n(!0);const a=(i=t.asset)==null?void 0:i.fileLink;if(!a)throw new W(t);return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],[],async()=>{try{const o=A.getModelContainer();o&&await o.applyModelVariant(e.stepName,{model:a,contextService:A.getLayoutPreviewService()},e.data.replaceProductModel||!1),A.setMandatoryFulfilled(e.stepName,!0)}finally{n(!1)}})}}}}const Te=new nn;class an{async init(e,t,A){if(A)await this.reload(e,t,A);else return t.updateMetadata(e.stepName,{text:""}),this.changeTextCommand(e,"",t,"",()=>{});return null}async reload(e,t,A){const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),s=Object.values(A.layouts).map(r=>r.elements).flat().filter(r=>r.stepName===e.stepName).map(r=>({id:r.id,region:r.stepRegion}));await t.setSelectionsAndElements(e.stepName,[],s,async()=>{var r,g;t.updateStorage(e.stepName,{text:(r=n==null?void 0:n.storage)==null?void 0:r.text}),t.setMandatoryFulfilled(e.stepName,((g=n==null?void 0:n.storage)==null?void 0:g.text)!=="")})}async changeText(e,t,A,n,a){const i=await this.changeTextCommand(e,t,A,n,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}async changeTextCommand(e,t,A,n,a){var g;const i=A.getRegionElements(e.stepName),o=(g=A.getStepSpecificServices(e.stepName))==null?void 0:g.module;if(!o)return console.error("Missing module."),null;const s=A.getProfanities();if(!this.validateInput(e,t,s,a))return A.setMandatoryFulfilled(e.stepName,!1),console.error(n),null;if(A.setMandatoryFulfilled(e.stepName,t!==""),!e.data||!e.data.regions||e.data.regions.length<=0)return console.error("Missing configuration."),null;A.updateStorage(e.stepName,{text:t});const r=(B,d,w)=>{const h=w||l.generate(),E=A.getLayouts().find(Q=>Q.panelId===d.panelId);if(!E)return console.error(`Can not find layout for region: ${d.panelId}`),null;const m=[];return w&&m.push(new l.DeleteElementCommand(h)),m.push(new l.CreateElementCommand({stepRegion:d,stepName:e.stepName,colors:{},id:h,svg:B,type:l.LayoutElementType.Illustration,y:d.top,x:d.left,rotation:d.rotation,width:d.width,height:d.height,layer:d.layer,layerIndex:d.layerIndex,immutable:d.immutable},E)),{id:h,region:d,command:new l.GroupCommand(m)}};if(i.length>0){const d=i.map(w=>{if(!w.region)return null;const h=o.svgPrint(t,w.region);return r(h,w.region,w.id)}).filter(w=>!!w).filter(w=>!!w).map(w=>w&&w.command);return{command:new l.GroupCommand(d),followup:async()=>{}}}else{const B=e.data.regions.map(w=>r(o.svgPrint(t,w),w)),d=B.filter(w=>!!w).map(w=>w&&w.command);return{command:new l.GroupCommand(d),followup:async()=>{const w=B.filter(h=>h).map(h=>h&&{id:h.id,region:h.region});await A.setSelectionsAndElements(e.stepName,[],w)}}}}validateInput(e,t,A,n){if(e.data&&e.data.maxLength){const i=e.data.maxLength;if(t.length>i)return n("Too many characters."),!1}if(!/^$|^[a-zA-Z0-9 ]+$/.test(t))return n("Unsupported characters."),!1;const a=He.split(t.toLowerCase());for(const i of a)for(const o in A){const s=A[o].toLowerCase().replace(/\s/g,"");if(i===s)return n("Blocked profanity."),!1}return n(""),!0}}const Nt=new an;class on{async init(e,t,A){const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else if(n.defaultVariant)return t.markStepsAsInitialised([e.stepName]),this.selectVariantCommand(e,n.defaultVariant,t,()=>{});return t.markStepsAsInitialised([e.stepName]),null}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const B=(r=s.variants)==null?void 0:r.find(d=>d.id===g);if(B){const d=o.map(w=>({id:w.id,region:w.stepRegion}));await t.setSelectionsAndElements(e.stepName,[B],d,async()=>{t.setMandatoryFulfilled(e.stepName,!0)})}}}}async selectVariant(e,t,A,n){const a=await this.selectVariantCommand(e,t,A,n);a&&(a.command&&A.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async selectVariantCommand(e,t,A,n){const a=t.asset;if(!a)throw new W(t);const i=a==null?void 0:a.fileLink;if(!i)return console.error("No URL for picture!"),null;n(!0),e.mandatory&&A.setMandatoryFulfilled(e.stepName,!1);const s=A.getRegionElements(e.stepName).map(B=>new l.DeleteElementCommand(B.id)),r=B=>{const w=A.getLayouts().find(C=>C.panelId===B.panelId);if(!w)throw new J(B);const h=l.generate();return{regionElement:{id:h,region:B},command:new l.CreateElementCommand({stepName:e.stepName,stepRegion:B,id:h,src:i,type:l.LayoutElementType.Image,y:B.top,x:B.left,rotation:B.rotation,width:B.width,height:B.height,layer:B.layer,layerIndex:B.layerIndex,immutable:B.immutable,preserveAspectRatio:"none"},w)}},g=e.data.regions.map(r);return{command:new l.GroupCommand([...s,...g.map(B=>B.command)]),followup:async()=>{await A.setSelectionsAndElements(e.stepName,[t],g.map(B=>B.regionElement),async()=>{A.setMandatoryFulfilled(e.stepName,!0),n(!1)})}}}}const Oe=new on;class sn{async init(e,t,A){const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else{const a=n.variants;if(L.getDefaultVariant(n)){const o=a==null?void 0:a.find(s=>{var r;return s.id===((r=n.defaultVariant)==null?void 0:r.id)});return this.selectVariantLambda(e,(o==null?void 0:o.id)||"",t)}}return null}async reload(e,t,A){var i;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),a=e.option;if(n!=null&&n.selectedVariants){const o=n.selectedVariants[0].id;if(a&&o){const s=(i=a.variants)==null?void 0:i.find(r=>r.id===o);s&&await t.setSelectionsAndElements(e.stepName,[s],[])}}}async selectVariant(e,t,A){await A.getInitializationPromise();const n=await this.selectVariantLambda(e,t,A);n&&(n.command&&A.getCommandDispatcher()(n.command),n.followup&&await n.followup())}async selectVariantLambda(e,t,A){const n=e.option;if(!n)return null;const a=n.variants;if(!a)return null;const i=a.length>1?a.find(o=>o.id===t):a[0];if(!i)throw new Error("Failed to find selected variant in step variants, this should never happen!");return{command:void 0,followup:async()=>{await A.setSelectionsAndElements(e.stepName,[i],[],async()=>{A.setMandatoryFulfilled(e.stepName,!0)})}}}}const Le=new sn;class rn{constructor(){this.shapeFillId="spiff-fill-shape"}async availableColours(e){var A;const t=e.option;return t?((A=t.variants)==null?void 0:A.map(n=>({fill:n.color,stroke:n.color,variant:n})))||[]:[]}setCustomColor(e,t,A){const n=A.getLayouts(),i=(A.getRegionElements(t.stepName)||[]).map(o=>{const s=o.region;if(!n.find(g=>g.panelId===(s==null?void 0:s.panelId)))throw new J(s);return new l.IllustrationColorCommand(o.id,this.shapeFillId,e)}).filter(o=>!!o);A.getCommandDispatcher()(new l.GroupCommand(i)),A.updateStorage(t.stepName,{colour:e})}async init(e,t,A){const n=e.option;if(!n)throw new ce(e);if(A)await this.reload(e,t,A);else{const a=L.getDefaultVariant(n);return a?this.selectVariantCommand(e,{fill:a.color,stroke:a.color,variant:a},[],t):null}return null}async selectVariant(e,t,A,n){const a=await this.selectVariantCommand(e,t,A,n);a&&(a.command&&n.getCommandDispatcher()(a.command),a.followup&&await a.followup())}async reload(e,t,A){var r;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(g=>g.elements).flat().filter(g=>g.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const g=n.selectedVariants[0].id;if(s&&g){const B=(r=s.variants)==null?void 0:r.find(d=>d.id===g);if(B){const d=o.map(w=>({id:w.id,region:w.stepRegion}));await t.setSelectionsAndElements(e.stepName,[B],d,async()=>{var w;t.updateStorage(e.stepName,{colour:((w=n==null?void 0:n.storage)==null?void 0:w.colour)||""}),t.setMandatoryFulfilled(e.stepName,!0)})}}}}async selectVariantCommand(e,t,A,n){var s;const a=n.getLayouts(),i=(s=n.getStepStorage(e.stepName))==null?void 0:s.colour,o=()=>{var r,g;if(((r=t.variant)==null?void 0:r.color)==="#custom")return i||"#FFFFFF";if((g=t.variant)!=null&&g.color)return t.variant.color;throw new Error("Failed to resolve color for shape step.")};if(A.length>0){const r=B=>{const d=B.region;if(!a.find(C=>C.panelId===(d==null?void 0:d.panelId)))throw new J(d);const h=o();return new l.IllustrationColorCommand(B.id,this.shapeFillId,h)},g=A.map(r).filter(B=>!!B);return{command:new l.GroupCommand(g),followup:async()=>{await n.setSelectionsAndElements(e.stepName,t.variant?[t.variant]:[],A),n.updateStorage(e.stepName,{colour:o()})}}}else{const r=w=>{const h=a.find(D=>D.panelId===w.panelId);if(!h)throw new J(w);const C=o(),E=`
714
+ <svg
715
+ xmlns="http://www.w3.org/2000/svg"
716
+ xmlnsXlink="http://www.w3.org/1999/xlink"
717
+ xmlSpace="preserve"
718
+ preserveAspectRatio="none"
719
+ version="1.1"
720
+ width="1"
721
+ height="1"
722
+ viewBox="0 0 1 1"
723
+ >
724
+ <rect
725
+ x="0"
726
+ y="0"
727
+ width="1"
728
+ height="1"
729
+ class="${this.shapeFillId}"
730
+ fill="${C}"
731
+ />
732
+ </svg>
733
+ `,m={};m[this.shapeFillId]={browserValue:C};const Q=l.generate();return{id:Q,region:w,command:new l.CreateElementCommand({stepRegion:w,stepName:e.stepName,colors:m,id:Q,svg:E,type:l.LayoutElementType.Illustration,y:w.top,x:w.left,rotation:w.rotation,width:w.width,height:w.height,layer:w.layer,layerIndex:w.layerIndex,immutable:w.immutable,excludeFromExport:e.data.excludeFromPrint},h)}},g=e.data.regions.map(r),B=g.filter(w=>!!w).map(w=>w==null?void 0:w.command),d=g.filter(w=>!!w).map(w=>({id:w.id,region:w.region}));return{command:new l.GroupCommand(B),followup:async()=>{await n.setSelectionsAndElements(e.stepName,t.variant?[t.variant]:[],d,async()=>{n.updateStorage(e.stepName,{colour:o()})})}}}}}const ae=new rn;class cn{constructor(){this.latestToast=null,this.toastType=null,this.toastCallbacks=[]}addToastCallback(e){e({toastMessage:this.latestToast,toastType:this.toastType}),this.toastCallbacks.push(e)}removeToastCallback(e){this.toastCallbacks=this.toastCallbacks.filter(t=>t!==e)}setLatestToast(e,t){this.latestToast=e,this.toastType=t,this.onToastChange()}onToastChange(){this.toastCallbacks.forEach(e=>e({toastMessage:this.latestToast,toastType:this.toastType}))}}const Ht=new cn,ze=30;class Me extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype),this.name=Me.name}}const gn=["‘","’","“","”",`
734
+ `];class Se extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype),this.name=Se.name}}class ln{constructor(){this.cachedColors=new Map,this.filterUnsupportedCharacters=(e,t)=>{let A=e.replace(/(\r\n|\r|(\u2665|\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,"");const n=[],a=t?l.getFontMetrics(t.assetUrl):void 0;if(a){const i=A.split("").filter(s=>!gn.includes(s)).join(""),o=i.split("").map(s=>a.getFont().charToGlyph(s));for(let s=0;s<o.length;s++)o[s].name===".notdef"&&n.push(String.fromCharCode(i.charCodeAt(s)))}for(let i=0;i<n.length;i++)A=A.replaceAll(n[i],"");return A},this.textAlign=e=>e.vertical?"center":e.textAlign||"center",this.getErrorsForText=(e,t,A)=>{const n=[];t.data&&t.data.maxLength&&e.length>t.data.maxLength&&n.push({localizationKey:"workflow.steps.text.characterLimit"});const a=A.getProfanities(),i=He.split(e.toLowerCase());for(const s of i)for(const r in a){const g=a[r].toLowerCase().replace(/\s/g,"");if(s===g){n.push({localizationKey:"workflow.steps.text.blockedProfanity"});break}}return!t.data.allowNewlines&&(e.includes(`
735
+ `)||e.includes("\r"))&&n.push({localizationKey:"workflow.steps.text.multipleLines"}),n}}async init(e,t,A){var a,i,o;const n=e.option;if(!n)return null;if(A)await this.reload(e,t,A);else{const s=this.getDefaultImageFillVariant(e.data),r=(a=s==null?void 0:s.asset)==null?void 0:a.fileLink,g=r?await l.getPatternImageData(r):void 0,B=g?{src:g.src,height:g.height,width:g.width,scale:e.data.imageFillScale||1}:void 0;t.updateStorage(e.stepName,{inputText:e.data.defaultText||"",color:((i=await this.getDefaultColorVariant(e.data))==null?void 0:i.color)||await this.getDefaultColor(e.data),fillImage:B}),t.updateMetadata(e.stepName,{text:e.data.defaultText||"",color:((o=await this.getDefaultColorVariant(e.data))==null?void 0:o.name)||await this.getDefaultColor(e.data),fillImage:s==null?void 0:s.name});const d=L.getDefaultVariant(n);if(d)return this.selectVariantCommand(e,d,{},[],t,()=>{},()=>{},B)}return null}findLayoutElements(e,t){return e.getRegionElements(t.stepName).map(a=>l.findElement(a.id,e.getAllLayoutData()))}availableFillColors(e){var n;const t=this.cachedColors.get(e.stepName);if(t)return t;const A=e.data.colorOption;if(A){const a=((n=A.variants)==null?void 0:n.map(i=>({fill:i.color,stroke:i.color,variant:i})))||[];return this.cachedColors.set(e.stepName,a),a}return[]}changeAlignment(e,t,A,n){if(!e.data||!e.data.regions)return;const a=n.getCommandDispatcher();for(const i of A){const o=new l.FontAlignmentCommand(i.id,t);a(o)}}async changeFillColor(e,t,A,n){var s;if(!e.data||!e.data.regions)return;const a=n.getCommandDispatcher();t.variant?n.updateMetadata(e.stepName,{color:t.variant.name}):n.updateMetadata(e.stepName,{color:t.fill});const i=e.data.colorOption,o=i?this.createTextFillSpotColor(i,t.variant):void 0;i?n.updateStorage(e.stepName,{color:t.fill,colorProfileAssetKey:(s=i.colorProfile)==null?void 0:s.key}):n.updateStorage(e.stepName,{color:t.fill});for(const r of A){if(!t.fill)throw new Error("Fill not set on new color selection!");const g=new l.FontColorCommand(r.id,t.fill,o);a(g)}}async availableFillImages(e){var A,n;const t=e.data.imageFillOption;if(t){const a=((n=(A=t.variants)==null?void 0:A.map(i=>{var o;return(o=i.asset)==null?void 0:o.fileLink}))==null?void 0:n.filter(i=>!!i))||[];return Promise.all(a.map(async i=>{const o=await l.getPatternImageData(i);return{src:i,width:o.width,height:o.height,scale:e.data.imageFillScale||1}}))}return Promise.resolve([])}async changeFillImage(e,t,A,n){var o,s;if(!e.data||!e.data.regions)return;const a=n.getCommandDispatcher(),i=(s=(o=e.option)==null?void 0:o.variants)==null?void 0:s.find(r=>{var g;return((g=r.asset)==null?void 0:g.fileLink)===t.src});n.updateMetadata(e.stepName,{fillImage:i==null?void 0:i.name}),n.updateStorage(e.stepName,{fillImage:t});for(const r of A){const g=new l.FontImageFillCommand(r.id,t);a(g)}}getProcessedInput(e,t,A){const n=A?e:this.injectReplaceableText(e,t);return l.applyTextTransformations(n,{vertical:t.vertical,uppercase:t.uppercase})}updateInputText(e,t,A,n){const a=n.getStepStorage(A.stepName),i=this.getProcessedInput(e,A.data,!!a.customiseAllText),o={command:void 0,helperText:"",errors:this.getErrorsForText(e,A,n)};if(o.errors.length>0)return o.helperText=o.errors[0].localizationKey,o;const s=(A.data.maxLength-i.length).toString();o.helperText=`${s} characters remaining`;const r=[],g=new Map,B=new Map;for(const d of t){if(!d.fontData)throw new k("Failed to resolve font data for text.");const[w,h]=l.determineCorrectFontSizeAndLines(d.fontSize,d.fontData,{left:d.x,top:d.y,width:d.width,height:d.height,rotation:d.rotation,panelId:""},[i],{size:A.data.size,minSize:A.data.minSize,maxSize:A.data.maxSize});g.set(d.id,w),B.set(d.id,h);const C=A.data.curved?i:(h||[]).join(`
736
+ `);r.push(this.generateTextChangeCommandsForRegion(w,A.data,d.id,C))}return!A.data.curved&&t.length>0&&!Array.from(B.values()).every(w=>w)?(o.errors.push({localizationKey:"workflow.steps.text.doesNotFit"}),o):(n.updateStorage(A.stepName,{text:e}),n.updateMetadata(A.stepName,{text:i}),a.defaultCleared&&n.setMandatoryFulfilled(A.stepName,!0),o.command=new l.GroupCommand(r),o)}async selectVariant(e,t,A,n,a){const i=await this.selectVariantCommand(e,t,A.getStepStorage(e.stepName)||{},A.getRegionElements(e.stepName),A,n,a);i&&(i.command&&A.getCommandDispatcher()(i.command),i.followup&&await i.followup())}createTextFillSpotColor(e,t){const A=e.colorProfile;if(A){const n=(A.name||"").replace(/\s/g,"-"),a=n.lastIndexOf("/"),o=n.slice(a+1).slice(0,-4);if(!t.namedColor)throw new Error("variant named color not set!");return{profileName:o,namedColor:t.namedColor}}}async reload(e,t,A){var r,g,B;const n=t.getSerializedStep(e.stepName,A.serializableWorkflow.steps),o=Object.values(A.layouts).map(d=>d.elements).flat().filter(d=>d.stepName===e.stepName),s=e.option;if(n!=null&&n.selectedVariants){const d=n.selectedVariants[0].id;if(s&&d){const w=(r=s.variants)==null?void 0:r.find(h=>h.id===d);if(w){const h=await this.fontDataFromVariant(w),C=o.map(D=>({id:D.id,region:D.stepRegion})),E=(g=n.storage)==null?void 0:g.color,m=(B=n.storage)==null?void 0:B.text;await t.setSelectionsAndElements(e.stepName,[w],C,async()=>{t.updateMetadata(e.stepName,{color:E,text:m}),t.updateStorage(e.stepName,{text:m,inputText:m});const D=o.map(p=>new l.FontSourceCommand(p.id,h)),f=new l.GroupCommand(D);t.getCommandDispatcher()(f)});const{command:Q}=z.updateInputText(m||"",o,e,t);Q&&t.getCommandDispatcher()(Q)}}}}async getDefaultColorVariant(e){const t=e.colorOption;if(t)return L.getDefaultVariant(t)}async getDefaultColor(e){const t=e.colorOption;if(!t)return;const A=L.getDefaultVariant(t);return A==null?void 0:A.color}getDefaultImageFillVariant(e){const t=e.imageFillOption;if(t)return L.getDefaultVariant(t)}async fontDataFromVariant(e){const t=e.asset;if(!t)throw new W(e);const A=t.fileLink;if(!A)throw new Z(t);const n=await l.loadFont(A);return{assetUrl:A,name:n.names.fullName.en}}async selectVariantCommand(e,t,A,n,a,i,o,s){var B;const r=a.markUpdatePending(),g=await this.fontDataFromVariant(t);if(n.length>0){const d=n.map(C=>new l.FontSourceCommand(C.id,g));if(s){const C=n.map(E=>new l.FontImageFillCommand(E.id,s));d.push(...C)}const w=await this.changeInputTextWithRegion(e,e.data.size||ze,g,A.text||"",A,a,!!A.customiseAllText,i,o);return w&&d.push(w),{command:new l.GroupCommand(d),followup:async()=>{a.markUpdateCompleted(r),await a.setSelectionsAndElements(e.stepName,[t],n)}}}else{const d=await this.createTextboxRegions(e.stepName,t,e.data,g,A,a),w=await this.changeInputTextWithRegion(e,e.data.size||ze,g,((B=d[0])==null?void 0:B.newElement.input)||A.text||e.data.defaultText||"",A,a,!!A.customiseAllText,i,o),h=d.flatMap(E=>E.commands);if(s){const E=d.map(m=>new l.FontImageFillCommand(m.regionElement.id,s));h.push(...E)}return w&&h.push(w),{command:new l.GroupCommand(h),followup:async()=>{a.markUpdateCompleted(r)}}}}injectReplaceableText(e,t){return t.replaceableText?t.replaceableText.replace("{{}}",e):e}async createTextboxRegions(e,t,A,n,a,i){if(!A||!A.regions)throw new Error("Step data not supplied");const o=a.text||A.defaultText||"",s=this.getProcessedInput(o,A,!1),r=async B=>{var C;const w=i.getLayouts().find(E=>E.panelId===B.panelId),h=l.generate();try{if(!w)throw new Se("Failed to find layout for region: "+B.panelId);const E=A.colorOption;let m;if(E&&E.variants){const H=E.variants.find(R=>{var T;return R.id===((T=E.defaultVariant)==null?void 0:T.id)})||E.variants[0];m=this.createTextFillSpotColor(E,H),i.updateStorage(e,{colorProfileAssetKey:(C=E.colorProfile)==null?void 0:C.key})}const Q=await this.getDefaultColor(A),D=Q||"#000000",f={stepRegion:B,stepName:e,align:this.textAlign(A),fill:a.color?a.color:D,fontSize:A.size||ze,fontData:n,id:h,layer:B.layer,layerIndex:B.layerIndex,rotation:B.rotation,text:s,input:o,type:l.LayoutElementType.Textbox,vertical:A.vertical,x:B.left,y:B.top,height:B.height,width:B.width,immutable:B.immutable,verticalAlign:A.verticalAlign||"middle",curved:A.curved,paths:A.paths,fillSpotColorDefinition:m},p=[],I=new Map,F=new Map;if(!f.fontData)throw new k("Failed to resolve font data for text.");const[S,y]=l.determineCorrectFontSizeAndLines(f.fontSize,f.fontData,{left:f.x,top:f.y,width:f.width,height:f.height,rotation:f.rotation,panelId:""},[s],{size:A.size,minSize:A.minSize,maxSize:A.maxSize});I.set(f.id,S),F.set(f.id,y);const x=A.curved||A.vertical?s:(y||[]).join(`
737
+ `);p.push(this.generateTextChangeCommandsForRegion(S,A,f.id,x));const P=new l.CreateElementCommand(f,w);return{regionElement:{id:h,region:B},commands:[P,...p],newElement:f,fontData:n}}catch(E){throw console.log(E),new Me("Error adding font to region")}},g=await Promise.all(A.regions.map(r)).catch(B=>{throw B instanceof Me?(Ht.setLatestToast("Failed to load font.",Ce.Error),B):B instanceof Se?B:new Error(B)});return await i.setSelectionsAndElements(e,[t],g.map(B=>B.regionElement),async()=>{i.updateMetadata(e,{text:o}),i.updateStorage(e,{text:o})}),g}generateTextChangeCommandsForRegion(e,t,A,n){const a=[],i=new l.TextChangeCommand(A,n);if(a.push(i),!t.size){const s=new l.FontSizeCommand(A,e);a.push(s)}return new l.GroupCommand(a)}async changeInputTextWithRegion(e,t,A,n,a,i,o,s,r,g){const B=(n||"").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g,""),d=this.getProcessedInput(B,e.data,o),w=i.getRegionElements(e.stepName),h=new Map,C=new Map;for(const f of w)if(f.region){const[p,I]=l.determineCorrectFontSizeAndLines(t,A,f.region,[d],{size:e.data.size,minSize:e.data.minSize,maxSize:e.data.maxSize});h.set(f.id,p),C.set(f.id,I)}const m=(()=>{if(e.data&&e.data.maxLength&&d.length>e.data.maxLength)return g&&g(!0),{info:"0"};const f=i.getProfanities(),p=He.split(d.toLowerCase());for(const I of p)for(const F in f){const S=f[F].toLowerCase().replace(/\s/g,"");if(I===S)return s(!0),{error:"Blocked profanity."}}return!e.data.vertical&&!e.data.allowNewlines&&(d.includes(`
738
+ `)||d.includes("\r"))?(s(!0),{error:"Cannot span multiple lines."}):!e.data.curved&&!Array.from(C.values()).every(F=>F)?(s(!0),{error:"Does not fit."}):(s(!1),{info:(e.data.maxLength-d.length).toString()})})();if(m.error){r(m.error);return}if(r(`${m.info} characters remaining`||""),g)return;i.updateStorage(e.stepName,{text:B}),i.updateMetadata(e.stepName,{text:this.injectReplaceableText(B,e.data)}),a.defaultCleared&&i.setMandatoryFulfilled(e.stepName,!0);const Q=[];for(const f of w){const p=e.data.curved?d:(C.get(f.id)||[]).join(`
739
+ `);Q.push(this.generateTextChangeCommandsForRegion(h.get(f.id)||1,e.data,f.id,p))}return new l.GroupCommand(Q)}}const z=new ln;class je{}const dn="data:application/font-woff;base64,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",Bn=`<?xml version="1.0" encoding="iso-8859-1"?>
740
+ <!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
741
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
742
+ width="289.691px" height="204.059px" viewBox="0 0 289.691 204.059" enable-background="new 0 0 289.691 204.059"
743
+ xml:space="preserve">
744
+ <g id="Layer_3">
745
+ <g>
746
+ <g>
747
+ <defs>
748
+ <path id="SVGID_1_" d="M132.799,0L132.799,0c-2.85,0-5.611,0.376-8.204,1.119c-6.512,1.865-14.407,8.455-17.575,17.447
749
+ c-5.374,1.759-16.263,6.039-18.474,16.876c-12.301,4.695-59.215,23.718-76.41,46.864c-1.783,2.067-14.076,17.86-11.873,42.198
750
+ c2.083,23.017,14.66,39.637,20.03,46.733c0.496,0.655,0.925,1.223,1.271,1.697c3.272,4.502,16.448,20.198,29.967,27.96
751
+ c0.985,0.565,2.526,1.337,3.598,1.671c9.286,2.898,13.053,0.684,13.053,0.684l-5.734-6.704
752
+ c-0.113-0.047-1.555-2.104-2.024-3.528c-0.401-1.1-0.683-3.708,1.941-8.822c1.92-3.74,8.466-11.905,30.74-24.556
753
+ c19.286-10.953,45.665-22.672,78.404-34.831c0.384-0.138,43.36-15.521,71.448-17.843l0.084-0.007l0.084-0.01
754
+ c0.056-0.006,5.722-0.659,11.761-0.659c7.122,0,10.06,0.898,11.094,1.355l0.378,9.638c0,0,5.87-4.852,7.88-7.117
755
+ c2.01-2.264,12.031-11.822,14.79-47.407c0.084-0.941,1.244-14.374,0.202-25.831c-0.428-4.706-2.167-9.042-5.03-12.54
756
+ c-4.914-6.004-15.065-13.686-35.521-16.2c-0.84-0.118-8.692-1.176-21.503-1.176c-14.431,0-29.204,1.305-43.952,3.882
757
+ c-1.858-1.395-4.78-2.782-9.053-2.782c-0.427,0-0.861,0.014-1.303,0.043c-1.604-2.318-4.231-4.531-8.237-5.259
758
+ c-0.396-0.076-1.797-0.315-3.752-0.315c-0.897,0-1.798,0.051-2.676,0.152h-0.001c-0.244,0.007-1.149-0.008-2.428-0.517
759
+ c-0.623-0.317-2.157-1.062-3.567-1.46c-0.945-0.267-2.142-0.54-3.842-0.54c-1.387,0-2.951,0.186-4.78,0.569l-0.214,0.045
760
+ l-0.073,0.023c-0.141,0.032-0.727,0.154-1.455,0.154c-0.378,0-0.727-0.033-1.036-0.098C139.516,0.637,136.489,0,132.799,0z"/>
761
+ </defs>
762
+ <clipPath id="SVGID_2_">
763
+ <use xlink:href="#SVGID_1_" overflow="visible"/>
764
+ </clipPath>
765
+
766
+ <radialGradient id="SVGID_3_" cx="0.6661" cy="211.1478" r="1" gradientTransform="matrix(196.7466 -33.1074 59.2188 355.3871 -12531.9229 -75128.1562)" gradientUnits="userSpaceOnUse">
767
+ <stop offset="0" style="stop-color:#31006F"/>
768
+ <stop offset="0.7044" style="stop-color:#31006F"/>
769
+ <stop offset="0.9025" style="stop-color:#8663A8"/>
770
+ <stop offset="0.9837" style="stop-color:#380874"/>
771
+ </radialGradient>
772
+ <path clip-path="url(#SVGID_2_)" fill="url(#SVGID_3_)" d="M289.231,36.928c0-15.893-21.025-34.603-52.712-35.045
773
+ c-15.771-0.22-99.017-1.969-102.404-3.731C132.43-2.669,102,8.514,99.071,14.978c-1.352,2.989-12.46,12.774-12.087,16.225
774
+ C43.908,47.213,14.509,73.752,3.19,93.894c-4.256,7.574-5.912,24.772,1.863,48.426c7.171,21.815,39.719,65.369,55.762,70.653
775
+ c34.873-19.08-3.701-15.168,25.189-33.173c37.467-23.352,96.365-43.82,128.896-51.007c51.454-11.366,72.09-9.938,70.905-8.055
776
+ C293.781,108.06,291.07,57.024,289.231,36.928z"/>
777
+ </g>
778
+ <path fill="#F4F5F5" d="M273.502,102.985c0,0-0.484,7.046-0.92,8.889l-0.856,0.768l-1.487,1.343c0,0,0.746-3.28,0.676-7.538
779
+ L273.502,102.985z"/>
780
+ <g>
781
+ <defs>
782
+ <path id="SVGID_4_" d="M273.495,103.048l-0.914,8.826l-6.223,5.407l-0.378-9.638c-3.51-1.84-20.124-1.91-40.523,1.965
783
+ c-20.398,3.875-55.726,13.5-108.591,37.875c-52.865,24.375-56.042,40.035-56.3,41.165c-0.258,1.129-0.609,2.871-0.246,4.106
784
+ c0.363,1.234,1.566,3.062,1.566,3.062c0.622,0.875,6.294,7.434,6.294,7.434c-0.243,0.139-0.713,0.296-0.713,0.296
785
+ c-3.776-1.363-10.024-5.048-12.507-6.55c-0.105-0.059-0.211-0.109-0.316-0.168c-0.213-0.126-0.425-0.267-0.634-0.411
786
+ l-0.127-0.079l-0.016-0.022c-4.346-3.133-7.493-10.523,1.153-21.838c7.623-9.975,16.641-15.494,27.199-21.737
787
+ c35.97-21.271,88.653-41.928,128.445-51.065c20.468-4.7,37.871-6.713,47.404-5.994
788
+ C270.766,96.641,274.312,100.216,273.495,103.048z M103.152,50.182c-0.754,0.298-4.411,1.78-5.162,2.081
789
+ c-46.711,18.73-75.543,39.262-85.429,55.22c-4.89,7.894-6.183,14.713-7.333,23.376c-0.528,3.979-0.264,9.917,0.182,13.905
790
+ c0.098,0.872,0.196,1.558,0.285,1.837c-6.447-20.414-0.184-36.278,3.696-43.319c10.903-19.787,49.756-42.606,92.09-58.743
791
+ C101.625,47.168,102.123,48.443,103.152,50.182z M289.642,46.027c0,0-1.68-8.208-8.18-16.932
792
+ C281.44,29.064,260.598,16,235.788,15.96c-15.584-0.025-35.217,2.462-56.404,6.836c0.858,0.69,2.004,2.132,1.76,4.812
793
+ c21.139-4.514,40.632-7.022,56.269-6.997c16.325,0.026,32.385,3.661,38.959,8.397c2.862,2.062,6.187,5.337,8.039,8.968
794
+ c0.562,1.011,3.167,5.866,5.214,12.307C289.626,50.282,289.762,47.693,289.642,46.027z"/>
795
+ </defs>
796
+ <clipPath id="SVGID_5_">
797
+ <use xlink:href="#SVGID_4_" overflow="visible"/>
798
+ </clipPath>
799
+ <rect x="282.522" y="30.129" clip-path="url(#SVGID_5_)" fill="#95979A" width="7.146" height="21.322"/>
800
+
801
+ <radialGradient id="SVGID_6_" cx="0.6661" cy="211.1478" r="1" gradientTransform="matrix(270.0389 19.3946 -19.0497 267.9429 3989.5959 -56677.875)" gradientUnits="userSpaceOnUse">
802
+ <stop offset="0" style="stop-color:#000000"/>
803
+ <stop offset="0.0996" style="stop-color:#242425"/>
804
+ <stop offset="0.2741" style="stop-color:#4E4F51"/>
805
+ <stop offset="0.5029" style="stop-color:#757779"/>
806
+ <stop offset="0.7746" style="stop-color:#A6A8AB"/>
807
+ <stop offset="0.8165" style="stop-color:#E2E3E4"/>
808
+ <stop offset="0.8338" style="stop-color:#ECEDED"/>
809
+ <stop offset="0.8581" style="stop-color:#F2F2F3"/>
810
+ <stop offset="0.9255" style="stop-color:#F3F4F4"/>
811
+ <stop offset="0.9497" style="stop-color:#85878A"/>
812
+ <stop offset="0.9601" style="stop-color:#77787B"/>
813
+ <stop offset="0.9911" style="stop-color:#C8CACC"/>
814
+ </radialGradient>
815
+ <path clip-path="url(#SVGID_5_)" fill="url(#SVGID_6_)" d="M274.97,104.208c-1.015,1.477-1.895,7.095-2.389,7.667
816
+ c0.266-0.396-6.223,5.407-6.223,5.407S53.633,196.961,60.248,199.321c-1.672-0.501-3.655-1.4-5.602-2.491
817
+ c-4.713-2.786-8.78-10.369,0.376-22.35c7.623-9.975,16.641-15.494,27.199-21.736c35.97-21.271,88.653-41.929,128.445-51.066
818
+ c20.468-4.7,37.871-6.713,47.404-5.994C271.591,96.703,276.421,101.309,274.97,104.208z M101.481,44.54
819
+ c-42.334,16.137-81.187,38.956-92.09,58.743c-3.88,7.042-10.143,22.905-3.696,43.319c-0.089-0.279-0.188-0.965-0.285-1.837
820
+ c-0.446-3.989-0.711-9.927-0.182-13.905c1.15-8.662,2.444-15.482,7.333-23.376c9.886-15.959,38.718-36.49,85.429-55.219
821
+ c0.752-0.301,4.408-1.784,5.162-2.081C102.123,48.443,101.625,47.168,101.481,44.54z M235.789,15.959
822
+ c-15.583-0.025-35.217,2.462-56.404,6.835c0.858,0.69,2.004,2.132,1.76,4.812c21.139-4.514,40.632-7.022,56.269-6.997
823
+ c16.325,0.026,32.385,3.661,38.959,8.397c2.862,2.062,7.305,5.886,8.059,9.237c-0.04-1.016-0.352-2.27-0.408-2.911
824
+ C283.11,25.107,267.1,16.009,235.789,15.959z"/>
825
+ </g>
826
+ <path fill="#DCDDDE" d="M60.273,199.427l7.908,3.825l-5.24-6.101C62.941,197.152,58.272,198.786,60.273,199.427"/>
827
+
828
+ <radialGradient id="SVGID_7_" cx="0.6661" cy="211.1478" r="1" gradientTransform="matrix(270.0424 19.3949 -19.05 267.9464 3989.6995 -56678.5859)" gradientUnits="userSpaceOnUse">
829
+ <stop offset="0" style="stop-color:#000000"/>
830
+ <stop offset="0.0996" style="stop-color:#242425"/>
831
+ <stop offset="0.2741" style="stop-color:#4E4F51"/>
832
+ <stop offset="0.5029" style="stop-color:#757779"/>
833
+ <stop offset="0.7746" style="stop-color:#A6A8AB"/>
834
+ <stop offset="0.8338" style="stop-color:#ECEDED"/>
835
+ <stop offset="0.8581" style="stop-color:#F2F2F3"/>
836
+ <stop offset="0.9255" style="stop-color:#F3F4F4"/>
837
+ <stop offset="0.9601" style="stop-color:#77787B"/>
838
+ <stop offset="0.9911" style="stop-color:#C8CACC"/>
839
+ </radialGradient>
840
+ <path fill="url(#SVGID_7_)" d="M273.283,103.591c-1.014,1.477-1.926,2.342-2.419,2.914c1.213-1.808-4.269-10.909-55.135-0.044
841
+ c-20.898,4.464-58.364,17.017-91.77,32.224c-14.657,6.627-44.582,21.095-57.613,32.959c-12.456,11.341-14.277,24.658-5.817,27.676
842
+ c-1.672-0.501-3.937-1.4-5.884-2.491c-4.713-2.786-8.78-10.369,0.376-22.35c7.623-9.975,16.641-15.494,27.199-21.737
843
+ c35.97-21.271,88.653-41.928,128.445-51.065c20.468-4.7,37.871-6.713,47.404-5.994
844
+ C271.591,96.703,274.735,100.692,273.283,103.591z M101.481,44.54c-42.334,16.137-81.187,38.956-92.09,58.743
845
+ c-3.88,7.042-10.143,22.905-3.696,43.319c-0.089-0.279-0.188-0.965-0.285-1.837c-0.446-3.989-0.711-9.927-0.182-13.905
846
+ c1.15-8.662,2.444-15.482,7.333-23.376c9.886-15.959,38.718-36.49,85.429-55.219c0.752-0.301,4.408-1.784,5.162-2.081
847
+ C102.123,48.443,101.625,47.168,101.481,44.54z M235.789,15.959c-15.583-0.025-35.217,2.462-56.404,6.835
848
+ c0.858,0.69,2.004,2.132,1.76,4.812c21.139-4.514,40.632-7.022,56.269-6.997c16.325,0.026,32.385,3.661,38.959,8.397
849
+ c2.862,2.062,6.771,6.064,8.179,9.197c-0.546-1.213-0.441-2.314-0.498-2.954C283.141,25.023,267.1,16.009,235.789,15.959z"/>
850
+ </g>
851
+ </g>
852
+ <g id="Layer_2">
853
+ <g opacity="0.7">
854
+ <defs>
855
+
856
+ <rect id="SVGID_8_" x="112.559" y="3.607" transform="matrix(0.1079 -0.9942 0.9942 0.1079 82.6225 182.4761)" opacity="0.7" width="60.856" height="83.188"/>
857
+ </defs>
858
+ <clipPath id="SVGID_9_">
859
+ <use xlink:href="#SVGID_8_" overflow="visible"/>
860
+ </clipPath>
861
+ <g clip-path="url(#SVGID_9_)">
862
+ <g>
863
+ <defs>
864
+
865
+ <rect id="SVGID_10_" x="112.559" y="3.607" transform="matrix(0.1079 -0.9942 0.9942 0.1079 82.6225 182.4761)" width="60.856" height="83.188"/>
866
+ </defs>
867
+ <clipPath id="SVGID_11_">
868
+ <use xlink:href="#SVGID_10_" overflow="visible"/>
869
+ </clipPath>
870
+ <g transform="matrix(1 0 7.450581e-09 1 -7.629395e-06 0)" clip-path="url(#SVGID_11_)">
871
+
872
+ <image overflow="visible" enable-background="new " width="636" height="465" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnwAAAHRCAYAAADwh2T7AAAACXBIWXMAAAsSAAALEgHS3X78AAAA
873
+ GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAyOdJREFUeNrsvQmYJddVJnhuRLwt
874
+ X26VSlWpnC4ttiTLwrIMwiC7PcYG3MYbiw0NxgZ6eub7hvVjuoH5mOlvtp6mu5mmm8GAaRpk424w
875
+ tpFNgxdZNjZehCRbaClbaLNcUqmcVapSKisrt5dviYiJGxXnvT/OuxEvsyqztjz/p9B7GW+tFxH3
876
+ /vc/5/yHSKFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKh
877
+ UCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQ
878
+ KBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAo
879
+ FAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgU
880
+ CoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQK
881
+ hUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqF
882
+ QqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVC
883
+ oVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKh
884
+ UCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQ
885
+ KBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUik0gjmNj
886
+ t628ZmJi0ktuvEaj4We77OvtPj/bvGzfdnw/n7dOp+u1Ox0vDENvs9/bPqfX6xl4ncfvF0WRr2eA
887
+ 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
1776
+ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 10.4696)">
1777
+ </image>
1778
+ </g>
1779
+ </g>
1780
+ </g>
1781
+ </g>
1782
+ <g>
1783
+ <path fill="#ED1C24" d="M174.957,30.203c-0.284-0.646-1.032-1.349-2.281-1.388c-0.213-0.007-0.435,0.007-0.667,0.04
1784
+ c-0.904,0.135-1.788,0.676-2.397,1.515c-0.402-0.719-1.081-1.196-1.905-1.321c-0.113-0.015-0.225-0.023-0.335-0.027
1785
+ c-0.035-0.001-0.07-0.002-0.105-0.002c0.172-0.292,0.28-0.589,0.333-0.87c0.131-0.693-0.072-1.291-0.545-1.601
1786
+ c-0.191-0.125-0.416-0.196-0.65-0.203c-0.414-0.013-0.742,0.159-1.09,0.342c-0.158,0.083-0.322,0.169-0.491,0.236
1787
+ c-0.302,0.121-0.62,0.221-0.948,0.31c-0.029-0.454-0.146-0.885-0.436-1.223c-0.197-0.229-0.553-0.506-1.131-0.524
1788
+ c-0.063-0.002-0.128-0.001-0.194,0.004c-0.966,0.063-1.745,0.958-2.372,2.727c-0.002-0.19-0.031-0.381-0.09-0.567
1789
+ c-0.244-0.763-0.938-1.273-1.766-1.299c-0.319-0.01-0.649,0.055-0.953,0.188c-1.049,0.458-1.616,1.61-1.291,2.623
1790
+ c0.025,0.077,0.057,0.15,0.091,0.222c-1.238,0.182-2.105,1.065-2.674,1.944c-0.238-0.137-0.515-0.227-0.835-0.237
1791
+ c-0.169-0.005-0.339,0.014-0.506,0.058c-0.744,0.195-1.028,0.664-1.142,1.25c-0.255-0.728-0.738-1.205-1.626-1.278
1792
+ c-0.04-0.003-0.08-0.006-0.119-0.007c-0.921-0.029-2.08,0.433-2.367,2.796c-0.036,0.299-0.063,0.607-0.082,0.909
1793
+ c-0.185-0.607-0.511-1.198-1.091-1.689c-0.646-0.547-1.254-0.676-1.651-0.689c-0.637-0.02-1.129,0.236-1.377,0.481
1794
+ c-0.597,0.589-0.39,1.317-0.29,1.724c0.101,0.407,0.175,0.841,0.148,1.094c-0.193-0.645-0.454-1.168-0.971-1.624
1795
+ c-0.483-0.427-1.119-0.664-1.84-0.686c-0.187-0.006-0.378,0.003-0.569,0.027c-1.897,0.236-3.379,1.794-4.103,4.067
1796
+ c-0.137-0.23-0.291-0.438-0.46-0.621c-0.752-0.814-1.642-1.242-2.643-1.273c-0.282-0.009-0.576,0.014-0.874,0.068l-0.035,0.007
1797
+ c-0.416,0.089-1.162,0.321-1.482,0.869c-0.247,0.423-0.376,1.01,0.169,1.614c-0.218-0.108-0.428-0.184-0.624-0.236
1798
+ c-0.283-0.076-0.568-0.119-0.846-0.128c-0.847-0.026-1.578,0.258-1.956,0.761c-0.202,0.269-0.366,0.639-0.279,1.093
1799
+ c-0.423-0.205-0.899-0.324-1.389-0.34c-0.248-0.008-0.501,0.011-0.752,0.055c-1.608,0.242-2.789,1.427-3.544,3.038
1800
+ c-0.073-0.026-0.149-0.046-0.227-0.059l-0.102-0.013l-0.051-0.002c-0.585-0.018-0.94,0.353-1.176,0.599
1801
+ c-0.035,0.036-0.07,0.073-0.108,0.111c-0.072-0.797-0.11-1.449-0.109-2.219c0.002-1.13,0.277-1.776,0.46-2.081l0.108-0.037
1802
+ c0.742-0.252,1.458-0.494,2.075-0.713c1.449-0.513,2.455-0.881,3.21-1.315c1.468-0.844,2.565-2.057,2.934-3.245
1803
+ c0.274-0.882,0.244-1.625-0.086-2.15c-0.22-0.35-0.557-0.574-0.947-0.631l-0.09-0.012l-0.063-0.002
1804
+ c-0.458-0.014-0.795,0.195-1.15,0.417c-0.257,0.16-0.576,0.359-1.07,0.584c-1.027,0.468-2.291,0.943-4.226,1.588
1805
+ c-2.061,0.687-4.653,1.655-6.419,3.049c-1.906,1.505-2.48,3.077-2.625,4.121c-0.222,1.504,0.493,1.941,0.939,2.068
1806
+ c0.108,0.03,0.218,0.048,0.329,0.051c0.725,0.023,1.146-0.487,1.453-0.86l0.116-0.139c0.058-0.068,0.217-0.242,0.521-0.483
1807
+ c-0.311,1.478-0.287,3.07-0.178,4.325c-0.914,0.725-1.319,1.77-1.384,2.545c-0.083,1.003,0.31,1.736,1.028,1.915l0.123,0.029
1808
+ l0.115,0.004c0.321,0.01,0.567-0.108,0.757-0.244c0.609,4.554,0.717,8.077,0.29,9.801l-0.016,0.064
1809
+ c-0.387,1.52,0.233,2.055,0.822,2.236l0.046,0.014l0.047,0.01c0.123,0.026,0.251,0.042,0.379,0.046
1810
+ c1.267,0.04,2.568-0.992,3.313-2.627c0.805-1.768,0.616-5.234,0.038-9.882c0.532,3.639,2.059,5.666,4.39,5.738
1811
+ c0.124,0.004,0.251,0.001,0.368-0.009c0.849-0.062,1.602-0.463,2.178-1.159c0.355-0.43,0.617-0.941,0.809-1.457
1812
+ c0.11,0.087,0.225,0.168,0.344,0.243c0.554,0.365,1.192,0.568,1.845,0.588c1.091,0.034,2.317-0.442,2.439-1.389
1813
+ c0.013-0.096,0.022-0.263-0.018-0.454c1.075-0.184,2.154-1.507,2.94-3.632c0.244-0.61,0.524-1.38,0.754-2.37
1814
+ c0.905,1.882,2.357,2.659,3.709,2.702c0.195,0.006,0.395-0.002,0.594-0.025c1.006-0.116,1.957-0.705,2.679-1.659
1815
+ c0.437-0.578,0.776-1.268,1.008-2.029c0.451,0.709,1.149,1.203,2.224,1.267l0.046,0.002c1.327,0.023,2.306-0.963,2.955-2.236
1816
+ c0.959,1.074,1.995,1.336,2.721,1.359c0.829,0.026,1.462-0.254,1.695-0.376c0.59-0.307,0.946-0.813,0.963-1.342
1817
+ c1.498-0.553,1.303-2.42,1.236-3.064c-0.027-0.256-0.048-0.613-0.06-1.022c0.391,3.088,2.039,3.501,2.788,3.524l0,0
1818
+ c0.15,0.005,0.304-0.004,0.458-0.026c1.034-0.145,1.704-0.783,1.915-1.46c0.426,0.451,0.991,0.741,1.74,0.764
1819
+ c0.067,0.002,0.133,0.002,0.199-0.001c0.842-0.031,1.792-0.53,2.195-1.222c0.463,0.425,1.031,0.713,1.71,0.813
1820
+ c0.143,0.021,0.287,0.034,0.429,0.039c1.101,0.034,1.976-0.421,2.642-1.037c0.006,0.012,0.012,0.024,0.018,0.035
1821
+ c0.269,0.491,0.752,0.65,0.988,0.699c0.12,0.028,0.256,0.044,0.408,0.049c1.154,0.036,2.81-0.562,3.673-2.358
1822
+ c0.97-1.986,0.067-3.915-0.472-5.068c-0.1-0.213-0.194-0.414-0.246-0.554c-0.098-0.265-0.126-0.473-0.126-0.618
1823
+ c0.146,0.07,0.336,0.137,0.569,0.144l0,0c0.134,0.004,0.268-0.012,0.4-0.05c0.389-0.113,0.702-0.386,0.881-0.77
1824
+ C175.21,31.395,175.199,30.754,174.957,30.203z"/>
1825
+ <g opacity="0.5">
1826
+ <g>
1827
+ <g>
1828
+ <defs>
1829
+
1830
+ <rect id="SVGID_12_" x="122.62" y="13.483" transform="matrix(0.1079 -0.9942 0.9942 0.1079 82.8799 180.6859)" width="38.995" height="61.358"/>
1831
+ </defs>
1832
+ <clipPath id="SVGID_13_">
1833
+ <use xlink:href="#SVGID_12_" overflow="visible"/>
1834
+ </clipPath>
1835
+ <path clip-path="url(#SVGID_13_)" fill="#595959" d="M157.669,27.744c0.539-0.235,1.102-0.034,1.257,0.45
1836
+ c0.155,0.484-0.156,1.067-0.695,1.302s-1.102,0.034-1.257-0.45C156.819,28.563,157.13,27.98,157.669,27.744z M119.826,43.655
1837
+ c-0.307-0.039-0.601,0.927-2.176,1.357c-0.184-1.752-0.28-2.686-0.278-3.95c0.003-1.842,0.643-2.734,0.871-2.994
1838
+ c0.889-0.302,1.761-0.595,2.492-0.854c1.426-0.504,2.373-0.855,3.031-1.233c1.285-0.739,2.168-1.752,2.44-2.628
1839
+ c0.263-0.848,0.108-1.352-0.159-1.391c-0.268-0.04-0.628,0.384-1.766,0.903c-1.137,0.518-2.508,1.022-4.332,1.63
1840
+ c-1.822,0.608-4.417,1.551-6.091,2.872c-1.67,1.319-2.117,2.651-2.225,3.43c-0.095,0.645,0.021,0.83,0.164,0.871
1841
+ c0.261,0.074,0.47-0.245,0.779-0.608c0.34-0.4,1.422-1.42,3.907-2.374c-2.038,1.607-1.804,5.732-1.598,7.467
1842
+ c-1.159,0.567-1.417,1.691-1.45,2.084c-0.032,0.393,0.058,0.739,0.21,0.777c0.161,0.04,0.533-0.636,1.571-0.962
1843
+ c0.69,4.555,1.107,9.428,0.505,11.861c-0.075,0.302-0.256,0.905,0.074,1.007c0.727,0.155,1.8-0.473,2.483-1.972
1844
+ c0.704-1.547,0.439-5.103-0.081-9.294c-0.117-0.94-0.224-1.812-0.321-2.628c1.211-0.291,1.874-1.491,2.028-1.952
1845
+ C120.088,44.523,120.118,43.702,119.826,43.655z M130.074,51.611c-0.265-0.039-0.868-0.51-1.296-1.466
1846
+ c-0.428-0.956-0.667-2.03-0.996-4.399c-0.33-2.376-0.494-2.793-1.161-2.785c-1.585,0.11-1.332,3.047-1.225,4.474
1847
+ c-0.121,2.203-0.473,3.913-1.194,3.923c-0.693,0.009-1.276-0.779-1.295-4.642c0.132-5.085,2.759-4.477,3.032-4.377
1848
+ c0.26,0.095,0.382,0.213,0.49,0.129c0.164-0.13-0.002-0.695-0.34-1.104s-1.109-0.875-2.144-0.688
1849
+ c-2.001,0.292-3.796,3.05-3.633,7.367c0.164,4.356,1.895,6.263,3.668,6.12c2.348-0.172,2.497-4.137,2.494-4.163
1850
+ c0.1,0.365,0.627,1.421,1.498,1.957c1.252,0.833,2.599,0.21,2.629-0.029C130.633,51.688,130.339,51.65,130.074,51.611z
1851
+ M131.157,36.977c-0.397,0.085-0.709,0.243-0.775,0.358c-0.29,0.497,0.606,0.526,1.43,1.498
1852
+ c0.597,0.704,1.088,1.814,1.094,4.28c0.007,2.777-0.854,4.389-0.854,4.389s-0.213-3.202-0.935-5.373
1853
+ c-0.606-1.823-1.491-2.673-2.404-2.919c-0.85-0.228-1.487,0.01-1.658,0.238s-0.076,0.389,0.168,0.665
1854
+ c0.244,0.276,1.377,1.501,2.216,4.524c0.789,2.842,0.893,3.765,1.024,4.472s0.258,1.386,0.905,1.443
1855
+ c0.46,0.04,1.424-0.8,2.219-2.96c0.423-1.054,0.808-2.278,1.011-3.944c0.381-3.08-0.149-4.973-0.91-5.796
1856
+ C133.158,37.278,132.392,36.753,131.157,36.977z M139.529,47.213c1.948-0.224,3.569-3.052,2.982-6.673
1857
+ c-0.106-0.653-0.375-1.867-0.943-2.583c-0.426-0.538-0.973-0.891-1.403-0.615c-0.26,0.236-0.128,0.378,0.164,1.215
1858
+ c0.292,0.836,0.412,1.987,0.38,3.117c-0.039,1.394-0.291,2.961-1.279,2.961c-1.021,0-1.49-1.887-1.492-3.975
1859
+ c-0.002-2.093,0.829-4.31,2.061-4.3c0.628,0.012,0.855,0.441,1.052,0.375c0.272-0.091,0.413-0.952-0.313-1.592
1860
+ c-0.413-0.365-1.001-0.466-1.56-0.397c-2.419,0.301-3.811,3.434-3.624,6.951C135.752,45.425,137.38,47.46,139.529,47.213z
1861
+ M145.628,44.787c1.515,0.026,2.403-2.327,2.68-3.779c0.203,0.594,0.482,1.172,0.864,1.664c1.306,1.69,2.804,1.247,3.31,0.984
1862
+ c0.268-0.139,0.403-0.329,0.379-0.45c-0.014-0.073-0.086-0.121-0.221-0.12c-0.761-0.005-1.35-0.307-1.926-1.249
1863
+ c-0.545-0.911-0.744-3.102-0.662-6.233c0.076-2.898-0.336-3.145-0.888-3.191c-0.947-0.078-1.215,0.941-1.324,1.842
1864
+ c-0.15,1.235-0.122,2.681-0.105,3.1c0.01,0.243,0.023,0.688,0.077,1.236c-0.174,1.228-0.597,3.492-1.341,3.448
1865
+ c-0.899-0.054-0.589-3.584-0.614-4.841c-0.02-1.043-0.045-2.252-0.962-3.028c-0.822-0.696-1.46-0.372-1.57-0.263
1866
+ c-0.175,0.173-0.065,0.431,0.043,0.857c0.12,0.474,0.2,2.01,0.238,4.057C143.646,40.891,143.24,44.643,145.628,44.787z
1867
+ M157.653,33.034c-1.42-0.098-1.575,2.98-1.534,4.971c0.052,2.5,0.824,3.789,2.097,3.61c0.758-0.106,1.073-0.619,1.056-0.869
1868
+ c-0.025-0.362-0.44-0.311-0.717-1.207c-0.34-1.504-0.41-2.85-0.249-4.672C158.452,33.225,158.059,33.062,157.653,33.034z
1869
+ M159.146,31.495c0.26,0.093,0.283-0.215,1.269-0.659c0.037-0.016,0.075-0.029,0.111-0.043
1870
+ c-0.167,0.823-0.362,2.163-0.43,4.646c-0.122,4.802,1.093,5.506,2.084,5.469c0.708-0.026,1.348-0.566,1.35-0.83
1871
+ c0.003-0.321-0.308-0.301-0.523-0.704c-0.487-0.802-0.629-2.096-0.625-4.917c0.044-1.726,0.21-3.044,0.374-4.116
1872
+ c0.462-0.075,1.018-0.172,1.714-0.317c2.379-0.495,2.569-2.178,2.294-2.358c-0.195-0.128-0.631,0.233-1.238,0.475
1873
+ c-0.829,0.331-1.742,0.524-2.532,0.685c0.024-0.163,0.046-0.321,0.064-0.473c0.165-1.38-0.145-1.597-0.572-1.57
1874
+ c-0.738,0.048-1.35,1.713-1.615,2.592c-0.501,0.186-0.913,0.419-1.261,0.725C159.065,30.582,158.878,31.4,159.146,31.495z
1875
+ M169.767,37.669c-0.163,0.581-1.266,3.171-3.484,2.843c-2.028-0.3-2.627-3.201-2.293-5.576
1876
+ c0.252-1.79,1.569-4.898,3.883-4.603c1.266,0.193,1.987,1.876,0.644,4.281c-0.739,1.323-1.79,2.002-2.322,2.279
1877
+ c0.213,0.858,0.64,1.375,1.301,1.421c0.713,0.049,1.354-0.274,1.843-0.843c0.154-0.18,0.277-0.33,0.393-0.312
1878
+ C169.872,37.181,169.841,37.405,169.767,37.669z M166.053,35.928c0.386-0.343,1.023-1.013,1.459-2.014
1879
+ c0.637-1.461,0.445-2.312,0.018-2.358c-0.569-0.061-1.407,1.512-1.485,3.318C166.029,35.25,166.031,35.602,166.053,35.928z
1880
+ M174.271,30.85c-0.17-0.386-0.72-0.87-1.799-0.714c-1.189,0.178-2.432,1.418-2.263,3.34c0.164,1.861,0.986,2.894,1.051,4.055
1881
+ c0.06,1.08-0.326,1.672-0.87,2.138c-0.257,0.219-0.283,0.328-0.229,0.428c0.054,0.099,0.193,0.148,0.274,0.163
1882
+ c0.317,0.085,2.019,0.054,2.875-1.728c0.914-1.871-0.402-3.806-0.759-4.771c-0.391-1.049-0.161-1.942,0.416-2.143
1883
+ c0.642-0.224,0.869,0.281,1.138,0.203C174.391,31.739,174.445,31.245,174.271,30.85z M153.379,42.311
1884
+ c0.913-0.181,0.801-1.27,0.726-1.99c-0.097-0.932-0.125-3.023,0.072-4.446c0.223-1.611,0.891-3.178,2.191-3.604
1885
+ c1.146-0.376,1.619,0.165,1.894-0.117c0.232-0.238-0.183-1.484-1.721-1.509c-1.773-0.029-2.703,2.153-2.97,2.93
1886
+ c0,0-0.437-1.385-1.277-1.166c-0.465,0.122-0.385,0.411-0.432,2.009c-0.047,1.596-0.18,3.627,0.031,5.384
1887
+ C152.104,41.557,152.467,42.492,153.379,42.311z"/>
1888
+ </g>
1889
+ </g>
1890
+ </g>
1891
+ <path fill="#FFF200" d="M157.366,27.533c0.539-0.235,1.102-0.034,1.257,0.45c0.155,0.484-0.156,1.067-0.695,1.302
1892
+ c-0.539,0.236-1.102,0.034-1.257-0.45C156.515,28.351,156.827,27.768,157.366,27.533z M119.523,43.443
1893
+ c-0.307-0.039-0.601,0.927-2.176,1.357c-0.184-1.752-0.28-2.686-0.278-3.95c0.003-1.842,0.643-2.734,0.871-2.994
1894
+ c0.889-0.302,1.761-0.595,2.492-0.854c1.426-0.504,2.373-0.854,3.031-1.233c1.285-0.739,2.168-1.752,2.44-2.628
1895
+ c0.263-0.848,0.108-1.352-0.159-1.391c-0.268-0.04-0.628,0.384-1.766,0.902c-1.137,0.518-2.508,1.022-4.332,1.63
1896
+ c-1.822,0.608-4.417,1.551-6.091,2.872c-1.67,1.319-2.117,2.651-2.225,3.43c-0.095,0.645,0.021,0.83,0.164,0.871
1897
+ c0.261,0.074,0.47-0.245,0.779-0.608c0.34-0.4,1.422-1.42,3.907-2.374c-2.038,1.607-1.804,5.732-1.598,7.467
1898
+ c-1.159,0.567-1.417,1.691-1.45,2.084c-0.032,0.393,0.058,0.739,0.21,0.777c0.161,0.04,0.533-0.636,1.571-0.962
1899
+ c0.69,4.555,1.107,9.428,0.505,11.861c-0.075,0.302-0.256,0.905,0.074,1.007c0.727,0.155,1.8-0.473,2.483-1.972
1900
+ c0.704-1.547,0.439-5.103-0.081-9.294c-0.117-0.94-0.224-1.812-0.321-2.628c1.211-0.291,1.874-1.491,2.028-1.952
1901
+ C119.785,44.311,119.815,43.491,119.523,43.443z M129.771,51.4c-0.265-0.039-0.868-0.51-1.296-1.466
1902
+ c-0.428-0.956-0.666-2.03-0.996-4.399c-0.33-2.376-0.494-2.793-1.161-2.785c-1.585,0.11-1.332,3.047-1.225,4.474
1903
+ c-0.121,2.203-0.473,3.913-1.194,3.923c-0.693,0.009-1.276-0.779-1.295-4.642c0.132-5.085,2.759-4.477,3.032-4.377
1904
+ c0.26,0.094,0.382,0.213,0.49,0.129c0.164-0.13-0.002-0.695-0.34-1.104s-1.109-0.875-2.144-0.688
1905
+ c-2.001,0.292-3.796,3.05-3.633,7.367c0.164,4.356,1.895,6.263,3.668,6.12c2.348-0.172,2.497-4.137,2.494-4.163
1906
+ c0.1,0.365,0.627,1.421,1.498,1.957c1.252,0.833,2.599,0.21,2.629-0.029C130.33,51.477,130.036,51.439,129.771,51.4z
1907
+ M130.853,36.765c-0.397,0.085-0.709,0.243-0.775,0.358c-0.29,0.497,0.606,0.526,1.43,1.498c0.597,0.704,1.088,1.814,1.094,4.28
1908
+ c0.007,2.777-0.854,4.389-0.854,4.389s-0.213-3.202-0.935-5.373c-0.606-1.823-1.491-2.673-2.404-2.919
1909
+ c-0.85-0.228-1.487,0.01-1.658,0.238s-0.076,0.389,0.168,0.665c0.244,0.276,1.377,1.501,2.216,4.524
1910
+ c0.789,2.842,0.893,3.765,1.024,4.472c0.131,0.706,0.258,1.386,0.905,1.443c0.46,0.04,1.424-0.8,2.219-2.96
1911
+ c0.423-1.054,0.808-2.278,1.011-3.944c0.381-3.08-0.149-4.973-0.91-5.796C132.854,37.066,132.088,36.542,130.853,36.765z
1912
+ M139.225,47.001c1.948-0.224,3.569-3.052,2.982-6.673c-0.106-0.653-0.375-1.867-0.943-2.583
1913
+ c-0.426-0.538-0.973-0.891-1.403-0.615c-0.26,0.236-0.128,0.378,0.164,1.215c0.292,0.836,0.412,1.987,0.38,3.117
1914
+ c-0.039,1.394-0.291,2.961-1.279,2.961c-1.021,0-1.49-1.887-1.492-3.975c-0.002-2.093,0.829-4.31,2.061-4.3
1915
+ c0.628,0.012,0.855,0.441,1.052,0.375c0.272-0.091,0.412-0.951-0.313-1.592c-0.413-0.365-1.001-0.466-1.56-0.397
1916
+ c-2.419,0.301-3.811,3.434-3.624,6.951C135.449,45.214,137.077,47.248,139.225,47.001z M145.325,44.575
1917
+ c1.515,0.026,2.403-2.327,2.68-3.779c0.203,0.594,0.482,1.172,0.864,1.664c1.306,1.69,2.804,1.247,3.31,0.984
1918
+ c0.268-0.139,0.403-0.329,0.379-0.451c-0.014-0.073-0.086-0.121-0.221-0.12c-0.761-0.005-1.35-0.307-1.926-1.249
1919
+ c-0.545-0.911-0.744-3.102-0.662-6.232c0.076-2.898-0.336-3.145-0.888-3.191c-0.947-0.078-1.215,0.941-1.324,1.842
1920
+ c-0.15,1.235-0.122,2.68-0.105,3.1c0.01,0.243,0.023,0.688,0.077,1.236c-0.174,1.228-0.597,3.492-1.341,3.448
1921
+ c-0.899-0.053-0.589-3.584-0.614-4.841c-0.02-1.043-0.045-2.252-0.962-3.028c-0.822-0.696-1.46-0.372-1.57-0.263
1922
+ c-0.175,0.173-0.065,0.431,0.043,0.857c0.12,0.474,0.2,2.01,0.238,4.057C143.342,40.679,142.937,44.431,145.325,44.575z
1923
+ M157.349,32.822c-1.42-0.098-1.575,2.98-1.534,4.971c0.052,2.5,0.824,3.789,2.097,3.61c0.757-0.106,1.073-0.619,1.056-0.869
1924
+ c-0.025-0.362-0.44-0.311-0.717-1.207c-0.34-1.504-0.41-2.85-0.249-4.672C158.149,33.014,157.756,32.85,157.349,32.822z
1925
+ M158.843,31.284c0.26,0.093,0.283-0.215,1.269-0.659c0.037-0.016,0.074-0.029,0.111-0.043c-0.167,0.823-0.362,2.163-0.43,4.646
1926
+ c-0.122,4.802,1.093,5.506,2.084,5.469c0.708-0.026,1.348-0.566,1.35-0.83c0.003-0.321-0.308-0.301-0.523-0.704
1927
+ c-0.487-0.802-0.629-2.096-0.625-4.917c0.044-1.726,0.21-3.044,0.374-4.116c0.462-0.075,1.018-0.172,1.715-0.317
1928
+ c2.379-0.495,2.569-2.178,2.294-2.358c-0.195-0.128-0.631,0.233-1.238,0.475c-0.829,0.331-1.742,0.524-2.532,0.685
1929
+ c0.024-0.163,0.046-0.321,0.064-0.473c0.165-1.38-0.145-1.597-0.572-1.57c-0.738,0.048-1.35,1.713-1.615,2.592
1930
+ c-0.501,0.186-0.914,0.419-1.261,0.725C158.762,30.371,158.575,31.188,158.843,31.284z M169.464,37.457
1931
+ c-0.163,0.581-1.266,3.171-3.484,2.843c-2.028-0.3-2.627-3.201-2.293-5.576c0.252-1.79,1.569-4.898,3.883-4.603
1932
+ c1.266,0.193,1.987,1.876,0.644,4.281c-0.739,1.323-1.79,2.002-2.322,2.279c0.213,0.858,0.64,1.375,1.301,1.421
1933
+ c0.713,0.049,1.354-0.274,1.843-0.843c0.154-0.18,0.277-0.33,0.393-0.312C169.569,36.97,169.538,37.194,169.464,37.457z
1934
+ M165.75,35.716c0.386-0.343,1.023-1.013,1.459-2.014c0.637-1.461,0.445-2.312,0.018-2.358c-0.569-0.061-1.407,1.512-1.485,3.318
1935
+ C165.725,35.038,165.728,35.391,165.75,35.716z M173.968,30.638c-0.17-0.386-0.72-0.87-1.799-0.714
1936
+ c-1.189,0.178-2.432,1.418-2.263,3.34c0.164,1.861,0.986,2.894,1.051,4.055c0.06,1.08-0.326,1.672-0.87,2.138
1937
+ c-0.257,0.219-0.283,0.328-0.228,0.428c0.054,0.099,0.193,0.148,0.274,0.163c0.317,0.085,2.019,0.054,2.875-1.728
1938
+ c0.914-1.871-0.402-3.805-0.759-4.77c-0.391-1.049-0.161-1.943,0.416-2.143c0.642-0.224,0.869,0.281,1.138,0.203
1939
+ C174.087,31.527,174.141,31.033,173.968,30.638z M153.075,42.099c0.913-0.181,0.801-1.27,0.726-1.99
1940
+ c-0.097-0.932-0.125-3.023,0.072-4.446c0.223-1.611,0.891-3.178,2.191-3.604c1.146-0.376,1.619,0.165,1.894-0.117
1941
+ c0.232-0.238-0.183-1.484-1.721-1.509c-1.773-0.029-2.703,2.153-2.97,2.93c0,0-0.437-1.385-1.277-1.166
1942
+ c-0.465,0.122-0.385,0.411-0.432,2.009c-0.047,1.596-0.18,3.627,0.031,5.384C151.801,41.345,152.163,42.28,153.075,42.099z"/>
1943
+ </g>
1944
+
1945
+ <linearGradient id="cadbury_logo_2_" gradientUnits="userSpaceOnUse" x1="151.1472" y1="251.8356" x2="178.1811" y2="232.0889" gradientTransform="matrix(0.99 0.1407 0.1407 -0.99 -56.0405 236.3141)">
1946
+ <stop offset="0" style="stop-color:#986E3A"/>
1947
+ <stop offset="0.511" style="stop-color:#D6B37C"/>
1948
+ <stop offset="1" style="stop-color:#9A673B"/>
1949
+ </linearGradient>
1950
+ <path id="cadbury_logo_1_" fill="url(#cadbury_logo_2_)" d="M160.872,15.197c0.086-0.372,0.157-0.937-0.174-1.216
1951
+ c-0.116-0.072-0.243-0.08-0.381-0.036c-0.196,0.076-0.326,0.259-0.39,0.459c-0.353,0.937-0.622,1.924-1.184,2.793
1952
+ c-0.168,0.259-0.395,0.583-0.658,0.576c-0.065-0.004-0.117-0.039-0.155-0.17c-0.175-0.763,0.2-1.636,0.454-2.383
1953
+ c0.091-0.22,0.15-0.53,0.046-0.738c-0.059-0.109-0.167-0.174-0.284-0.184c-0.334-0.017-0.534,0.258-0.7,0.522
1954
+ c-0.606,1.125-1.099,2.418-1.915,3.445c-0.122,0.126-0.242,0.298-0.432,0.28c-0.082-0.012-0.148-0.077-0.178-0.183
1955
+ c-0.106-0.462,0.035-1.152,0.243-1.692c0.152-0.393,0.327-0.638,0.402-1.033c0.03-0.212-0.035-0.402-0.231-0.509
1956
+ c-0.105-0.045-0.209-0.066-0.358,0.006c-0.282,0.153-0.53,0.382-0.862,0.444c0.066-0.236,0.151-0.459,0.136-0.708
1957
+ c-0.02-0.211-0.089-0.449-0.284-0.531c-0.189-0.069-0.423-0.018-0.597,0.134c-0.499,0.5-0.529,1.315-0.303,1.961
1958
+ c-0.157,0.821-0.547,1.604-0.992,2.3c-0.166,0.224-0.328,0.479-0.608,0.514c-0.188,0.001-0.279-0.133-0.327-0.364
1959
+ c0.275-0.536,0.607-1.127,0.758-1.694c0.119-0.441,0.282-1.121,0.01-1.539c-0.058-0.102-0.194-0.172-0.338-0.161
1960
+ c-0.27,0.011-0.47,0.209-0.628,0.407c-0.595,0.865-0.739,1.875-0.754,2.904c-0.107,0.328-0.283,0.666-0.545,0.914
1961
+ c-0.124,0.123-0.334,0.24-0.5,0.161c-0.094-0.062-0.15-0.161-0.169-0.275c-0.096-0.637,0.147-1.258,0.35-1.852
1962
+ c0.362-1.059,0.739-1.311,0.551-1.759c-0.073-0.165-0.239-0.27-0.407-0.277c-0.219-0.021-0.469,0.105-0.604,0.312
1963
+ c-0.295,0.49-0.602,1.004-1.025,1.409c-0.249,0.222-0.459,0.429-0.829,0.589c-0.023-0.205-0.069-0.415-0.131-0.603
1964
+ c-0.197-0.605-0.578-1.196-1.284-1.15c-0.245,0.015-0.485,0.143-0.651,0.244c0.09-0.875,0.321-1.735,0.74-2.5
1965
+ c0.255-0.467,0.664-0.939,0.713-1.334c0.026-0.212-0.065-0.419-0.243-0.524c-0.186-0.096-0.374-0.096-0.583,0.004
1966
+ c-0.423,0.242-0.674,0.708-0.888,1.135c-0.402,0.443-1.005,0.643-1.614,0.777c-0.808,0.21-1.324-0.023-1.864-0.518
1967
+ c-0.147-0.116-0.328-0.243-0.541-0.226c-0.222-0.002-0.444,0.199-0.531,0.354c-0.114,0.182-0.118,0.435-0.006,0.61
1968
+ c0.457,0.663,1.038,1.173,1.296,2.062c0.059,0.206,0.106,0.411,0.107,0.626c-1.579,0.918-2.489,2.841-2.42,4.606
1969
+ c-0.157,0.514-0.311,1.399-0.913,1.365c-0.304-0.063-0.729-1.071,0.118-4.043c0.044-0.447,0.176-0.92-0.058-1.35
1970
+ c-0.134-0.242-0.449-0.288-0.698-0.28c-1.978,0.201-3.175,2.511-4.069,4.116c-1.125,1.8-2.473,2.883-3.843,3.561
1971
+ c-3.361,1.665-7.159,1.041-7.425-2.664c-0.255-3.531,1.91-7.598,6.584-9.522c3.61-1.485,5.994-0.295,5.953,1.836
1972
+ c-0.02,1.037-0.719,4.227-5.229,5.846c-0.775,0.278-2.187,0.391-2.762-0.277c-0.902-1.064-0.583-2.368-0.007-3.289
1973
+ c1.005-1.489,2.717-2.402,4.498-2.85c0.146-0.029,0.267-0.096,0.342-0.259c0.044-0.111,0.042-0.214-0.014-0.355
1974
+ c-0.096-0.19-0.278-0.234-0.459-0.215c-1.623,0.229-3.108,0.916-4.264,1.891c-1.366,1.243-2.38,2.854-2.253,4.68
1975
+ c0.092,1.191,0.898,2.265,2.078,2.571c1.308,0.292,3.093-0.317,4.279-0.927c2.478-1.401,4.552-3.835,4.883-6.584
1976
+ c0.121-1.23-0.477-2.475-1.557-3.129c-1.735-0.995-5.294-0.958-8.865,1.322c-1.286,0.823-3.225,2.255-4.59,4.855
1977
+ c-1.364,2.601-1.449,6.171,0.654,8.159c1.531,1.447,4.03,1.905,6.552,1.207c1.826-0.506,3.653-1.959,5.125-3.85
1978
+ c-0.081,1.148,0.661,1.663,1.375,1.677c1.581,0.02,2.267-1.975,2.267-1.975c0.19,0.575,0.264,0.837,0.872,0.994
1979
+ c1.026,0.261,1.476-0.572,1.657-1.215c0.175,0.408,0.636,0.79,1.117,0.739c0.759-0.073,1.291-0.769,1.577-1.373
1980
+ c1.009-2.136,1.002-4.585,0.396-6.807c0.431-0.025,0.712-0.134,1.084-0.257c0.21-0.068,0.373-0.122,0.579-0.205
1981
+ c-0.345,1.389-0.567,2.831-0.558,4.315c0.044,0.98,0.096,2.118,0.788,2.783c0.298,0.306,0.729,0.407,1.152,0.268
1982
+ c0.539-0.158,0.988-0.897,1.171-1.439c0.132-0.331,0.325-1.121,0.373-1.659c0.214-0.151,0.435-0.286,0.641-0.451
1983
+ c0.085-0.069,0.13-0.101,0.212-0.169c-0.101,0.607-0.207,1.302-0.064,1.912c0.091,0.424,0.355,0.799,0.773,0.9
1984
+ c0.688,0.142,1.395-0.759,1.801-1.273c0.137,0.243,0.307,0.499,0.589,0.593c0.332,0.109,0.784-0.029,1.067-0.36
1985
+ c0.826-0.967,1.176-2.288,1.596-3.486l0.045-0.125c0.215-0.056,0.397-0.136,0.595-0.257c-0.181,0.503-0.33,1.025-0.396,1.563
1986
+ c-0.089,0.655,0.013,1.49,0.571,1.83c0.286,0.15,0.666-0.028,0.87-0.193c0.658-0.565,1.088-1.383,1.492-2.119l0.031-0.05
1987
+ c-0.014,0.404,0.055,0.946,0.254,1.288c0.114,0.201,0.361,0.368,0.583,0.35c0.677-0.078,1.008-0.707,1.391-1.23
1988
+ c0.066-0.09,0.136-0.209,0.177-0.266c-0.169,0.857-0.485,1.799-0.675,2.663c-0.049,0.22-0.204,0.705-0.125,0.998
1989
+ c0.089,0.332,0.34,0.563,0.83,0.614c0.091,0.008,0.139-0.037,0.148-0.106c-0.116-0.546,0.002-0.992,0.22-1.791
1990
+ C160.065,18.438,160.489,16.803,160.872,15.197z M137.211,19.107c-0.455,1.511-1.221,3.579-1.733,4.151
1991
+ c-0.694,0.776-1.06-0.081-0.88-0.598c0.272-1.31,0.914-3.001,1.948-3.999c0.137-0.115,0.473-0.4,0.664-0.182
1992
+ C137.279,18.616,137.261,18.942,137.211,19.107z M141.501,20.641c-0.125,0.378-0.278,0.806-0.557,1.127
1993
+ c-0.081,0.099-0.235,0.216-0.368,0.117c-0.328-0.263-0.291-0.978-0.222-1.421c0.131-0.847,0.558-1.744,1.347-2.201l0.043-0.022
1994
+ C141.852,19.053,141.705,19.865,141.501,20.641z M145.322,20.76c-0.086,0.025-0.165,0.006-0.233-0.034
1995
+ c-0.314-0.245-0.397-0.973-0.422-1.517c-0.02-0.431,0.041-1.236,0.425-1.577c0.242-0.179,0.531-0.126,0.629,0.136
1996
+ c0.209,0.505,0.213,1.379,0.116,1.958C145.779,20.072,145.676,20.676,145.322,20.76z"/>
1997
+ </g>
1998
+ </svg>
1999
+
2000
+ `,v=c=>l.createElementNS("http://www.w3.org/2000/svg",c),Ke=(c,e)=>{const t=v("rect");return t.setAttribute("height",`${c}`),t.setAttribute("width",`${e}`),t},wn=()=>{const c=v("svg");return c.setAttribute("xmlns","http://www.w3.org/2000/svg"),c.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),c.setAttribute("version","1.1"),c},hn=c=>{const e=v("use");return e.setAttribute("xlink:href",c),e.setAttribute("href",c),e};function Rt(c){const e=wn(),t=/viewBox="0 0 (.+?) (.+?)"/.exec(c)||["0","0"],A=parseFloat(t[1]),n=parseFloat(t[2]);return e.setAttribute("height",`${n}`),e.setAttribute("width",`${A}`),[e,n,A]}const En=(c,e,t)=>{const A=v("g");c.appendChild(A),A.setAttribute("id",t),A.innerHTML=e};function vt(c,e,t){const A=l.generate();En(e,t,`bgdef-${A}`),c.appendChild(hn(`#bgdef-${A}`))}const Ut=(c,e,t,A)=>{const n=l.createElement("filter");n.setAttribute("id",A),n.setAttribute("height","200%"),n.setAttribute("width","200%"),n.setAttribute("x","-50%"),n.setAttribute("y","-50%");const a=l.createElement("feOffset");n.appendChild(a),a.setAttribute("result","offOut"),a.setAttribute("in","SourceAlpha"),a.setAttribute("dx",`${c}`),a.setAttribute("dy",`${e}`);const i=l.createElement("feGaussianBlur");n.appendChild(i),i.setAttribute("result","blurOut"),i.setAttribute("in","offOut"),i.setAttribute("stdDeviation",`${t}`);const o=l.createElement("feBlend");return n.appendChild(o),o.setAttribute("in","SourceGraphic"),o.setAttribute("in2","blurOut"),o.setAttribute("mode","normal"),n},Gt=c=>{let e=c;return e=e.replace(/feoffset/gi,"feOffset"),e=e.replace(/fegaussianblur/gi,"feGaussianBlur"),e=e.replace(/feblend/gi,"feBlend"),e=e.replace(/lineargradient/gi,"linearGradient"),e=e.replace(/stddeviation/gi,"stdDeviation"),e};function Ve(c,e,t,A,n,a){const i=n||1,o=a||1,s={x:e[0],y:e[1],width:e[2]-e[0],height:e[3]-e[1]};if(s.width<=0)return;const r=Cn(s.height,s.width,t*i,A*o),g=(A-r*s.width)/2-r*s.x,B=(t-r*s.height)/2-r*s.y;c.setAttribute("transform",`translate(${g} ${B}) scale(${r} ${r})`)}function Cn(c,e,t,A){const n=t/c,a=A/e;return n>1&&a>1?Math.min(n,a):n>1&&a<1?a:n<1&&a>1?n:Math.min(n,a)}const kt={m:["x","y"],z:[],l:["x","y"],h:["x"],v:["y"],c:["x1","y1","x2","y2","x","y"],s:["x2","y2","x","y"],q:["x1","y1","x","y"],t:["x","y"],a:["rx","ry","xRotation","largeArc","sweep","x","y"]};class We{constructor(e){const t=Array.from(e.querySelectorAll("path"));this.paths=t.map(A=>{const n=A.getAttribute("d")||"",a=this.parsePath(n);return{pathElement:A,pathData:a}})}transform(e){for(const t of this.paths)t.pathData=this.runTransformer(t.pathData,e);this.update()}encodePath(e){let t="";const n=a=>{const i=[],o=a.relative?a.type:a.type.toUpperCase();let s=t!==o;const r=kt[a.type];s&&(i.push(o),t=o);for(const g of r){const B=a[g];let d;switch(typeof B){case"boolean":d=B|0;break;case"number":d=(B*100|0)/100;break;default:throw new $("Failed to encode path.")}s||i.push(" "),i.push(d),s=!1}return i.join("")};return e.map(n).join("")}parsePath(e){const t=/([mzlhvcsqta])([^mzlhvcsqta]*)/gi,A=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi,n=[];let a;for(t.lastIndex=0;a=t.exec(e);){const i=a[1].toLowerCase(),o=(a[2].match(A)||[]).map(parseFloat),s=i===a[1],r=kt[i];if(o.length<r.length)throw new $(`Path type "${i}" given ${o.length} arguments, expected ${r.length}.`);if(r.length>0){if(o.length%r.length!==0)throw new $(`Path type "${i}" given ${o.length} arguments, not divisible by ${r.length}`);for(let g=0;g<o.length/r.length;g++){const B={type:i,relative:s};for(let d=0;d<r.length;d++)B[r[d]]=o[g*r.length+d];n.push(B)}}else n.push({type:i,relative:s})}return n}runTransformer(e,t){const A=[["x1","y1"],["x2","y2"],["x","y"]],n=a=>{for(let i=0;i<A.length;i++){const[o,s]=A[i];if(o in a&&s in a){const r=[a[o],a[s]],g=t(r);if(g.length<2)throw new $("Transformer must return at least 2 points.");a[o]=g[0],a[s]=g[1]}}return a};return this.transformPath(e,n)}transformPath(e,t){const A=[];for(let n=0;n<e.length;n++){const a=JSON.parse(JSON.stringify(e[n])),i=t(a);Array.isArray(i)?A.push(...i):i&&A.push(i)}return A}update(){for(const{pathElement:e,pathData:t}of this.paths){const A=this.encodePath(t);e.setAttribute("d",A)}}}class un extends je{constructor(){super(...arguments),this.moduleName="Favourites"}svgPreview(e){return this.svg(e)}svgPrint(e){return this.svg(e)}svg(e){const t=l._loadFontExternalDataURL(dn),n=e!==""?(i=>i.charAt(0).toUpperCase()+i.substr(1).toLowerCase())(e):"",a=t.getPath(n,0,72,72);return this.brandSvg(a,Bn)}brandSvg(e,t){const A=e.toSVG(2),n=e.getBoundingBox(),a=n.x2-n.x1,i=e.toPathData(3),o=()=>{const p=v("g"),I=v("defs");p.appendChild(I),I.appendChild(Ut(3,7,4,"shadow"));const F=v("g");p.appendChild(F),F.setAttribute("filter","url(#shadow)"),F.innerHTML=A;const S=v("g");p.appendChild(S),S.setAttribute("fill","red"),S.setAttribute("stroke","red"),S.setAttribute("stroke-width","9"),S.innerHTML=A;const y=v("g");p.appendChild(y),y.setAttribute("fill","#9d2621"),y.setAttribute("transform","translate(1,1)"),y.innerHTML=A;const x=v("g");return p.appendChild(x),x.setAttribute("fill","yellow"),x.innerHTML=A,new We(p).transform(([H,R])=>[H,R+(a/2-H)**2/(a*2.9)]),p},[s,r,g]=Rt(t);if(!s)return"";const B=v("defs");s.appendChild(B),vt(s,B,t);const d=r*.23,w=g*.94,h=g*.04,C=r*.53,E=v("g");s.appendChild(E),E.setAttribute("transform",`translate(${h} ${C}) rotate(-21)`);const m=Ke(d,w);m.setAttribute("opacity","0"),E.appendChild(m);const Q=v("g");E.appendChild(Q);const D=o();Q.appendChild(D);const f=Re(i);return Ve(Q,f,d,w),Gt(s.outerHTML)}}const Qn="data:application/octet-stream;base64,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ZWxmIE1ha2VyIDIuMy41AABNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAABNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAABAAIBAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCsAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAljb250cm9sTEYJY29udHJvbENSB0FwLmxpZ2EHQWoubGlnYQdFdC5saWdhB0VmLmxpZ2EHRWoubGlnYQdFay5saWdhB0VsLmxpZ2EHRWIubGlnYQdGdC5saWdhB0ZoLmxpZ2EHRmsubGlnYQdGbC5saWdhB0ZiLmxpZ2EHSHQubGlnYQdIZi5saWdhB0l0LmxpZ2EHSXAubGlnYQdJZi5saWdhB0lqLmxpZ2EHSWwubGlnYQdJYi5saWdhB0p0LmxpZ2EHSmYubGlnYQdKaC5saWdhB0prLmxpZ2EHSmwubGlnYQdKYi5saWdhB0t0LmxpZ2EHS3AubGlnYQdLeS5saWdhB0xqLmxpZ2EHTWoubGlnYQdNaC5saWdhB01mLmxpZ2EHTnQubGlnYQdOZi5saWdhB09mLmxpZ2EHT3oubGlnYQdQcS5saWdhB1B3LmxpZ2EHUHIubGlnYQdQdC5saWdhB1B5LmxpZ2EHUHUubGlnYQdQaS5saWdhB1BmLmxpZ2EHUGgubGlnYQdQai5saWdhB1BrLmxpZ2EHUGwubGlnYQdQei5saWdhB1B4LmxpZ2EHUHYubGlnYQdQYi5saWdhB1BuLmxpZ2EHUG0ubGlnYQdScC5saWdhB1JmLmxpZ2EHUmoubGlnYQdUdC5saWdhB1RmLmxpZ2EHVGgubGlnYQdUay5saWdhB1RsLmxpZ2EHVGIubGlnYQdVdC5saWdhB1VzLmxpZ2EHVWYubGlnYQdWdC5saWdhB1ZzLmxpZ2EHVmYubGlnYQdWbC5saWdhB1d0LmxpZ2EHV2YubGlnYQdYcC5saWdhB1l0LmxpZ2EHWWkubGlnYQdZZi5saWdhB1loLmxpZ2EHWWwubGlnYQdZay5saWdhB1liLmxpZ2EHQWYubGlnYQdDeS5saWdhB0VoLmxpZ2EHR3IubGlnYQdPcC5saWdhB2J0LmxpZ2EHYnIubGlnYQdiZi5saWdhB2JqLmxpZ2EHYnoubGlnYQdkdC5saWdhB2VmLmxpZ2EHZnQubGlnYQdmaC5saWdhB2ZiLmxpZ2EHZmsubGlnYQdnai5saWdhB2pqLmxpZ2EHeWoubGlnYQd0dC5saWdhB3RmLmxpZ2EHdGgubGlnYQd0aS5saWdhB3RrLmxpZ2EHdGwubGlnYQh0dGgubGlnYQhlZmYubGlnYQhlZmIubGlnYQdmZi5saWdhB2ZpLmxpZ2EHZmwubGlnYQAAAAAAAAH//wACAAEAAAAMAAAAHAAAAAIAAgADADoAAQA7AKsAAgAEAAAAAgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQQIAB0AQABaAGQAngDIANIA5AEWAUgBYgFsAYYBmAGyAkQCXgKQAqoCzALeAugDIgNMA1YDdAOuA7gDwgP+AAMACAAOABQAjQACACUAPAACACkAOwACAC8AAQAEAI4AAgA4AAcAEAAWABwAIgAoAC4ANACPAAIAJwBCAAIAIQBBAAIAKwBAAAIAKgA/AAIAKQA+AAIAJQA9AAIAMwAFAAwAEgAYAB4AJABHAAIAIQBGAAIAKwBFAAIAKgBEAAIAJwBDAAIAMwABAAQAkAACADEAAgAGAAwASQACACUASAACADMABgAOABQAGgAgACYALABPAAIAIQBOAAIAKwBNAAIAKQBMAAIAJQBLAAIALwBKAAIAMwAGAA4AFAAaACAAJgAsAFUAAgAhAFQAAgArAFMAAgAqAFIAAgAnAFEAAgAlAFAAAgAzAAMACAAOABQAWAACADgAVwACAC8AVgACADMAAQAEAFkAAgApAAMACAAOABQAXAACACUAWwACACcAWgACACkAAgAGAAwAXgACACUAXQACADMAAwAIAA4AFACRAAIALwBgAAIAOQBfAAIAJQASACYALAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAHIAAgAsAHEAAgAtAHAAAgAhAG8AAgA1AG4AAgA3AG0AAgA5AGwAAgArAGsAAgAqAGoAAgApAGkAAgAnAGgAAgAlAGcAAgAoAGYAAgA0AGUAAgA4AGQAAgAzAGMAAgAxAGIAAgA2AGEAAgAwAAMACAAOABQAdQACACkAdAACACUAcwACAC8ABgAOABQAGgAgACYALAB7AAIAIQB6AAIAKwB5AAIAKgB4AAIAJwB3AAIAJQB2AAIAMwADAAgADgAUAH4AAgAlAH0AAgAyAHwAAgAzAAQACgAQABYAHACCAAIAKwCBAAIAJQCAAAIAMgB/AAIAMwACAAYADACEAAIAJQCDAAIAMwABAAQAhQACAC8ABwAQABYAHAAiACgALgA0AIwAAgAhAIsAAgAqAIoAAgArAIkAAgAnAIgAAgAlAIcAAgAoAIYAAgAzAAUADAASABgAHgAkAJYAAgA5AJUAAgApAJQAAgAlAJMAAgAxAJIAAgAzAAEABACXAAIAMwADAAgAEAAYAKgAAwAlACEApwADACUAJQCYAAIAJQAHABAAFgAcACIAKAAuADQAqwACACsAqgACACgAqQACACUAnAACACoAmwACACEAmgACACcAmQACADMAAQAEAJ0AAgApAAEABACeAAIAKQAHABAAGAAeACQAKgAwADYApgADADMAJwClAAIAKwCkAAIAKgCjAAIAKACiAAIAJwChAAIAJQCgAAIAMwABAAQAnwACACkAAQAdAAYACAAKAAsADAANAA4ADwAQABEAEgATABQAFQAXABkAGgAbABwAHQAeACEAIwAkACUAJgApADMAOAAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAAQPGAAQAAABEAJIAnADSAOABIgEoATYBPAFKAVABXgFkAW4BfAGKAawBsgHAAcYB1AHiAewB/gIIAhYCSAJiAnAChgKcAqoCvALKAtAC6gL0AvoDAAMKAxADGgMgAyYDLAMyAzgDOAMyAz4DRANOAz4DVANaA2ADIANmA2wDcgN4A34DiAOOA5gDngOkA7IDvAACAC7//AA3//IADQAl/+oAKP/8ACn/9AAq//AAK//6ACz//gAt//4AMf/qADP//AA0//wANf/+ADb/+AA5//QAAwAt//wALv/8ADb//AAQACT//AAl/+wAJv/6ACf//AAp/+wAKv/0ACv/+gAs//gALf/8AC//7gAx//gAMv/0ADT/9gA3/+oAOP/6ADn/5AABADf/+gADADX//AA3/+gAOf/6AAEALv/2AAMAKP/8ACn/6AAy/+QAAQAu//IAAwAo/+4AL//2ADX/5gABACT/8AACABgAAgAoAAQAAwAo//4ALv/wADL/+AADACf/9gAv/+4Ao//sAAgAKf/qACv/9AAu//wAL//uADH/7gAy//IAN//mAJX/9AABADYADgADACAABAAjAAQAM//4AAEAMv/8AAMAJv/+ACr/+AA3//4AAwAo//gALv/0AJn/7AACACMAAgAl/+wABAAk//wAL//8ADT/9AA4//4AAgAt//IAq//iAAMAJf/sACb/+AA3//wADAAk//wAJv/+ACj/+gAp/+AAK//+ACz/9gAt//wAL//qADH/7AAy//IAN//cAKP/4gAGACQAAgAl/9oAK//yAC//4gAx/+gAMv/8AAMAKQB+ADL/7ACeAIgABQAg//wAIv/4ACb//AAu//YANQAEAAUAKf/0ACr/+AAv//QAM//mAKP/3gADACEAHAAkAAIALv/4AAQAJf/0AC3//gAv//wAmf/8AAMAJP/wACf/+AAp/+4AAQAk//oABgAg//QAIf/wACj/9gAu/+wAL//0ADP/9AACACH//gA3//IAAQApAEIAAQAnACgAAgAzADQAqgAoAAEAMwA0AAIAMwAyAKEARgABADL/6gABADMALAABACkANAABAJoAGAABADMAMgABACkAOAABADMAMAACACUAEgAzAC4AAQApAHgAAQApADYAAQAzAC4AAQAzADgAAQAzAEIAAQAzAEwAAQAz//IAAQAnAEgAAgAl/+4Amv/oAAEAKQBiAAIAKQBaAJ4AUAABACkAVgABAKEARAADADMANgCaABIAogBKAAIAJwAsAKEARgACAC3/8gA3/+oAAQBEAAYABwAIAAkACgAMABEAFAAVABgAHQAgACEAIgAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOQA8AD0APgBIAEkASwBMAE0AUABRAFkAWgBcAF4AXwBhAGgAagB+AIEAhACIAI0AkQCYAJoAnQCeAJ8AoAChAKkAqgAAAAAAAQAAAADUGBYRAAAAANfpcqUAAAAA1+lypQ==";class mn extends je{constructor(e,t){super(),this.moduleName="Maltesers",this.shortLength=5,this.indicator=A=>A?1:0,this.backgroundSvg=e,this.backgroundShortSvg=t}svgPreview(e){return this.svg(e)}svgPrint(e){return this.svg(e)}svg(e){const t=l._loadFontExternalDataURL(Qn),n=e!==""?(s=>s.charAt(0).toUpperCase()+s.substr(1).toLowerCase())(e):"",a=t.getPath(n,0,72,72),i=e.length<this.shortLength,o=i?this.backgroundShortSvg:this.backgroundSvg;return this.brandSvg(a,o,i)}brandSvg(e,t,A){const n=e.toSVG(2),a=e.getBoundingBox(),i=a.y2-a.y1,o=a.x2-a.x1,s=e.toPathData(3),r=()=>{const F=v("g"),S=v("g");F.appendChild(S),S.setAttribute("stroke","#5C1A0D"),S.setAttribute("stroke-width","4"),S.setAttribute("transform","translate(1,1)"),S.innerHTML=n;const y=v("g");F.appendChild(y),y.setAttribute("fill","#FFE386"),y.setAttribute("transform","translate(1,1)"),y.innerHTML=n;const x=v("g");F.appendChild(x),x.setAttribute("fill","white"),x.innerHTML=n;const P=new We(F);return P.transform(([H,R])=>[H,R+((o-H)*R)**2/(o*5e4)]),P.transform(([H,R])=>[H,R+(o/3-H)**2/o*this.indicator(H<o/3)]),P.transform(([H,R])=>[H-(i-R)*(o-H)/800,R]),F},[g,B,d]=Rt(t);if(!g)return"";const w=v("defs");g.appendChild(w),vt(g,w,t);let h,C,E,m;A?(h=B*.25*(1+.1),C=d/2*(1+.1),E=d*.22,m=B*.32):(h=B*.22*(1+.1),C=d*.8,E=d*.067,m=B*.33);const Q=v("g");g.appendChild(Q),Q.setAttribute("transform",`translate(${E} ${m}) rotate(-10)`);const D=Ke(h,C);D.setAttribute("opacity","0"),Q.appendChild(D);const f=v("g");Q.appendChild(f);const p=r();f.appendChild(p);const I=Re(s);return Ve(f,I,h,C),g.outerHTML}}const fn="data:application/octet-stream;base64,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DOYNZA3mDlQOyg88D54QEBCGEQARchHsEmIS1BOWFAwUghTwFWIV1BaiFxQXkhgEGMYZdBomGtQbfhwYHL4dYB3+HpgfPh/oIJYhPCHmIpQjRiPsJJolSCXuJpQnQifoKJIpRAAmAAn/8QAK//sADP/7AA3/+wAO//sAD//7ABD/+wAR//sAEv/7ABP/+wAU//sAFf/xABb/8QAZ//sAHf/2AB7/+wAf//sAIP/xACH/+wAi//sAI//7ACT/+wAl//EAJv/2ACf/8QAo//sAKf/2ACr/+wAr//sALP/sAC3/7AAu/+IAL//dADD/9gAx/+wAMv/7ADP/+wA0//YAKwAG//EACP/nAAn/4gAK/9MAC//iAAz/9gAN/+IADv/sAA//4gAQ/9gAEf/iABL/1QAT//EAFP/nABX/8QAW/9gAMf/TADL/pgAz//MANP/nADX/8QA2//EAN//7ADj/7gA5//YAOv/7ADv/2AA8//EAPf/2AD7/9gA///EAQP/sAEH/+wBC/+wAQ//xAET/7ABF/+wARv/2AEf/3QBI/90ASf/EAEr/zgBL//YAKwAG//YAB//2AAn/3QAL/+wADP/sAA3/8QAO//YAD//sABD/8QAR/+wAEv/iABP/5wAU/+wAFf/dABb/7AAX/78AMf/YADL/sAAz/+IANP/iADX/8QA2/+cAN//xADj/3QA5/+wAOv/2ADv/4gA8//EAPf/xAD7/8QA///YAQP/YAEH/9gBC/+cAQ//sAET/7ABF/+wARv/xAEf/zgBI/9MASf/OAEr/zgBL/+wAKgAG//YAB//iAAj/4gAK/+IADP/dAA3/ugAO/+IAD//iABD/5wAR/+IAEv/dABP/yQAU/90AFf+mABb/0wAx/5gAMv/YADP/4gA0/9MANf/xADb/7AA3/+wAOP/iADn/7AA6//EAO//dADz/5wA9/+wAPv/sAD//5wBA/9gAQf/sAEL/zgBD/+wARP/YAEX/tQBG/90AR/+hAEj/oQBJ/8QASv+DAEv/7AAqAAb/8QAH/90ACP/YAAn/oQAL/8kADP/iAA3/sAAO/+cAD//YABD/4gAR/90AEv/bABP/4gAU/+IAFf/TABb/5wAg/+QAMf/nADL/3AAz//QANP/rADX/9AA2//IAN//4ADj/8AA5//QAOv/1ADv/7AA8/+oAPf/7AD7/9wA///IAQP/tAEH/+wBC/+IAQ//2AET/4wBF/7YARv/vAEf/pgBK/6MAS//yACYAB//TAAj/8QAK/84ADP/dAA3/9gAO//EAD//dABD/pgAR/8kAEv+6ABP/7AAU/90AFf/OADH/xAAy/5IAM//sADT/3QA1/+cANv/xADf/9gA4/90AO/9WADz/5wA9//EAPv/sAD//5wBA/84AQf/dAEL/0wBD/+cARP/nAEX/5wBG/+cAR//dAEj/2ABJ/7oASv/JAEv/4gAsAAb/+wAH//sACP/xAAn/zgAK/+cAC//dAAz/9gAN/9gADv/tAA//7AAQ/+kAEf/rABL/3QAT/90AFP/hABX/3QAW/90AMf/nADL/vwAz/+cANP/nADX/8QA2//EAN//sADj/5wA5//YAOv/2ADv/4gA8//EAPf/2AD7/+wA///sAQP/2AEH/+wBC/+wAQ//7AET/7ABF/9MARv/7AEf/yQBI/84ASf+wAEr/xABL/+cADgAG//sACf/xAAv/7AAN//sADv/7AA8AAAAR//EAEv/0ABP/9gAU//EAFf/xABb/7AAx//YAQP/2ACkABv/7AAf/9gAI//sACf/iAAr/5wAL/+wADP/vAA3/3QAO//sAD//qABD/8QAR/+wAEv/nABP/8QAU/+cAFf/iABb/7AAx/+cAMv/vADP//AA0/+cANf/7ADb//gA4//EAOf/8ADr//AA7/+kAPP/6AD3//QA+//4AP//7AEL/6gBD//0ARP/2AEX/7ABG//EAR//YAEj/4gBJ/+wASv/LAEv//AAsAAb/+wAH//EACP/2AAn/0wAK/+IAC//JAAz/5wAN/90ADv/iAA//7AAQ/+cAEf/sABL/3QAT/9MAFP/iABX/zgAW/+cAMf/YADL/xAAz/+wANP/dADX/6AA2//EAN//xADj/4wA5//EAOv/2ADv/7AA8/+wAPf/sAD7/9gA//+wAQP/iAEH/8QBC/90AQ//nAET/5wBF/8QARv/mAEf/xABI/8kASf+1AEr/rQBL/+IALAAG//sAB//7AAj/9gAJ/9MACv/2AAv/ugAM/+kADf/dAA7/9gAP/+wAEP/2ABH/8AAS//EAE//2ABT/5wAV/9gAFv/sADH/vwAy/9UAM//eADT/3wA1//EANv/xADf/9gA4/+IAOf/xADr/9gA7/+wAPP/xAD3/9gA+//EAP//2AED/2ABB//EAQv/nAEP/9gBE/+cARf/TAEb/8QBH/9gASP/YAEn/xgBK/78AS//xACsABv/7AAf/9gAI/+wACf/TAAr/5wAL/90ADP/lAA3/zgAO/90AD//dABD/7AAR/+IAEv/iABP/2AAU/+IAFf/JABb/5wAx/90AMv/EADP/6wA0/+EANf/wADb/8AA4/9wAOf/dADr/7AA7/9gAPP/sAD3/5wA+/+wAP//iAED/0wBB/+IAQv/YAEP/4gBE/84ARf/JAEb/4gBH/8kASP/OAEn/vwBK/8kAS//TACwABv/7AAf/3wAI/+cACf+wAAr/4wAL/8kADP/dAA3/xwAO/+cAD//dABD/7AAR/+cAEv/iABP/yQAU/9cAFf+/ABb/4gAa/+kAMf/YADL/uwAz/+EANP/dADb/6wA3//MAOP/lADn/8QA6//IAO//eADz/5wA9/+4APv/zAD//8ABA/+IAQf/2AEL/6gBD//YARP/kAEX/zABG/+8AR/+0AEj/uwBJ/64ASv+vAEv/5QAsAAb/+wAH/90ACP/nAAn/4gAK/9MAC//nAAz/3QAN//YADv/eAA//3QAQ/7AAEf/OABL/sAAT//sAFP/dABX/0wAW/9MAMf/iADL/iAAz//YANP/OADX/9gA2//EAN//xADj/0wA5//YAOv/zADv/gAA8//EAPf/7AD7/+wA///YAQP/OAEH/7gBC/84AQ//2AET/2ABF//sARv/2AEf/5wBI/+cASf/TAEr/4gBL/+wALAAG//sAB//2AAj/8QAJ/9gACv/nAAv/3QAM/+IADf/dAA7/4gAP/+IAEP/nABH/5wAS/9gAE//YABT/3QAV/84AFv/sADH/5wAy/78AM//nADT/2AA1/+cANv/nADf/7AA4/90AOf/sADr/7AA7/+cAPP/sAD3/8QA+/+wAP//xAED/4gBB//EAQv/dAEP/5wBE/+IARf/YAEb/5wBH/78ASP/HAEn/sABK/7UAS//dACsABv/xAAf/8QAI/+IACf/dAAr/0wAL/+IADP/iAA3/3QAO/+cAD//dABD/zgAR/9MAEv/EABP/0wAU/84AFv/dADH/4gAy/6EAM//jADT/3QA1/+wANv/sADf/5wA4/90AOf/nADr/8QA7/78APP/xAD3/9gA+/+wAP//nAED/3QBB/+cAQv/nAEP/5wBE/+IARf/OAEb/3QBH/8QASP/JAEn/lwBK/7oAS//YACkABv/sAAf/0wAI/90ACf/OAAr/3QAM/90ADf/EAA7/5wAP/9gAEP/YABH/3QAS/9MAE//YABT/4gAV/90AMf/sADL/wAAz/+8ANP/kADX/6wA2//AAN//2ADj/5AA5//EAOv/uADv/1gA8//QAPf/2AD7/8QA///AAQP/dAEH/7ABD/+gARP/YAEX/1QBG/+wAR/+3AEj/wwBJ/7UASv+wAEv/5gAeAAf/zgAi/+4AI//5ACT/7wAy/9AAM//pADT/sQA1/+sANv/nADf/5gA4/7oAOf/vADr/9wA7/9AAPP/sAD3/6wA+/+YAP//sAED/uwBB/+kAQv+7AEP/5ABE/9QARf+6AEb/0ABH/34ASP+SAEn/zQBK/5sAS//nABwAF//RACT//wAy/9EAM//uADT/5wA1/+8ANv/3ADf/7gA4/+gAOf/3ADr/+wA7/9oAPP/vAD3/9wA+/+4AP//vAED/4QBB//cAQv/nAEP/7wBE/+4ARf/QAEb/9wBH/8EASP/MAEn/wwBK/7sAS//nABwAF//QABv/+QAy/8EAM//zADT/6wA1//sANv/zADf/+wA4/+8AOf/zADr//gA7/+EAPP/vAD3/9wA+//kAP//3AED/4gBB//kAQv/jAEP/8wBE/+YARf/VAEb/+QBH/84ASP/JAEn/twBK/8EAS//rAB8ABv/7ABL/3wAX/8kAJf/5ACv/7wAy/7oAM//zADT/6wA1/+8ANv/uADf/8wA4/+oAOf/vADr/7wA7/9QAPP/5AD3//gA+//EAP//vAED/4wBB//MAQv/mAEP/7gBE/+cARf/XAEb/6wBH/8kASP/JAEn/twBK/7cAS//nACAABv/7ACQAAgAl/+8AJ//5AC3//gAv//4AMv/oADP//QA0/+sANf/7ADb/+gA3//sAOP/jADn/9wA6//oAO//kADz//wA9//0APv/+AD8AAABA/+gAQf/7AEL/6ABD//sARP/sAEX/8QBG//sAR//qAEj/6wBJ/+cASv/qAEv/+QAbAAb/+wAl/+8AMv+5ADP/+wA0/+8ANf/7ADb/+wA3//0AOP/vADn/+wA6AAAAO/+7ADz//gA9//4APv/7AED/7ABB//4AQv/nAEP/+QBE//kARf/7AEb/+QBH//MASP/rAEn/4gBK/+8AS//7AB0ABv/2ABf/zgAl/+8AMv+3ADP/9wA0/+sANf/3ADb/8QA3//kAOP/uADn/8wA6//sAO//YADz/8wA9/+4APv/3AD//8wBA/+MAQf/3AEL/6QBD/+8ARP/nAEX/1ABG/+8AR//JAEj/zABJ/6YASv/JAEv/3AAcAAb/+wAX//MAJf/7ADL/6wAz//4ANP/uADX/+wA2//4AN//+ADj/8wA5//0AOv/+ADv/7gA8//4APf/+AD7/+wA///4AQP/uAEL/9wBD//4ARP/+AEX/+QBG//4AR//uAEj/9wBJ/+4ASv/zAEv//gAYAAb/+wAx//YAMv/rADP//wA0//MANf//ADYAAQA3//8AOP/zADv/6AA8//4APf/+AD4AAQBA/+4AQf//AEL/8wBD//4ARP/4AEX//QBH/+wASP/3AEn/7ABK//EASwABABwABv/2ABf/4QAy/8oAM//9ADT/+QA1//4ANv/7ADf//gA4//MAOf/+ADr//wA7/+EAPP/7AD3//gA+//4AP//+AED/7wBB//4AQv/zAEP//gBE//sARf/7AEb//gBH/+8ASP/5AEn/2gBK//oAS//+AB0ABv/nABf/5wAx/7AAMv/hADP/7gA0/7QANf/rADb/5wA3/+4AOP+sADn/6wA6//kAO/+3ADz/6gA9/+8APv/nAD//5wBA/6wAQf/uAEL/rgBD/+cARP+8AEX/3ABG/9oAR//cAEj/0QBJ/9oASv/RAEv/7wAeAAb/9gAX//cAI//9ADH/vwAy/+4AM//5ADT/2gA1//4ANv/3ADf/+wA4/9oAOf/3ADr/+wA7/+cAPP/7AD3/+QA+//cAP//5AED/1ABB//sAQv/cAEP/9wBE/+8ARf/JAEb/6wBH/8QASP++AEn/5wBK/8EAS//+ABwAF//7ADH/7AAy/+QAM//+ADT/7gA1//4ANgAAADf//QA4//cAOf/7ADr//gA7/+4APP/+AD3//gA+//0AP//7AED/7wBB//4AQv/uAEP//gBE//cARf/7AEb/+QBH/+gASP/vAEn/6wBK/+gAS//+AB4ABv/7ABf/8wAa//4AHf/3ACX/9wAq//4AMf/2ADL/5AAz//0ANP/zADX/+wA2//4AN//+ADj/+QA7/+4APf/+AD7/+wA///4AQP/2AEH/+gBC/+4AQ//7AET/+QBF//sARv/+AEf/8wBI/+8ASf/zAEr/6wBL//4AHQAG//EAJP/3ADH/7AAy/7sAM//sADT/4wA1/+8ANv/vADf/9wA4/+QAOf/qADr/9wA7/98APP/vAD3/9wA+/+sAP//uAED/4wBB/+4AQv/mAEP/7wBE/+IARf/VAEb/7gBH/8MASP/GAEn/uwBK/7oAS//fABwABv/sACT//gAy/54AM//rADT/6gA1//EANv/rADf/9wA4/+MAOf/oADr/9wA7/64APP/sAD3/8QA+/+wAP//sAED/4QBB//MAQv/oAEP/5ABE/9gARf/kAEb/7gBH/9EASP/QAEn/uwBK/8QAS//zADAAF//3ABj//wAZ/+kAGv//ABv//QAc//4AHf/pAB7/+wAf//8AIP/iACH//gAi//8AI//+ACT//wAl/+IAJ//uACj//gAp/+cAKv/hACv/+QAs/8MALf/QAC7/5AAv/8wAMP//ADL/4QAz//4ANP/jADX/9wA3//kAOP/fADn/9wA7/+IAPP/5AD3/+gA+//EAP//6AED/2gBB/+8AQv/aAET/7wBF/9cARv/qAEf/xgBI/7sASf/qAEr/tABL//sAHQAG/+cAF//oACT/+gAy/+IAM//xADT/zAA1/+8ANv/sADf/+gA4/8wAOf/3ADr/8wA7/8kAPP/uAD3/7wA+/+wAP//rAED/yQBB//cAQv/MAEP/+ABE/9QARf/KAEb/2gBH/8EASP/EAEn/4gBK/7cAS//vAB0ABv/xABv/+QAl/+4AMv+8ADP/7wA0/9wANf/zADb/6AA3//cAOP/hADn/5gA6//MAO//aADz/6QA9//MAPv/pAD//6wBA/+MAQf/3AEL/2gBD/+kARP/rAEX/1ABG/+kAR//JAEj/zABJ/7QASv+7AEv/5wAbAAb/9gAy/6YAM//9ADT/0wA1//oANv/+ADf//QA4/9UAOf/3ADr//wA7/7kAPP/6AD3//gA+//sAP//7AED/0ABB//oAQv/XAEP/+QBE/+IARf/zAEb/9wBH/+8ASP/vAEn/6gBK/+cAS//6ABwABv/7ACQAAgAy/9UAM//7ADT/7wA1//cANv/9ADf//wA4/+4AOf/7ADr//wA7/+sAPP/+AD3//gA+//0AP//6AED/7gBB//sAQv/sAEP/+wBE/+8ARf/7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ABX/3QAx//YAMv+5ADP/+AA0/+MANf/3ADb/+AA3//kAOP/iADn/+gA6//0AO//OADz//QA9//4APv/5AD///ABA/+YAQv/jAEP/9wBE/+YARf/vAEb//gBH/+cASP/vAEn/0QBK/+YAS//9ACgAB//2AAj/4gAJ/90ACv/sAAv/4gAM/+gADf/iAA7/9QAP/+gAEP/dABH/4AAS/+YAE//OABT/4gAV/90AJP/7ADH/9gAy/8EAM//vADT/3wA2//QAN//4ADj/4wA5/+kAOv/6ADv/0QA8/+YAPf/zAD7/6QA///EAQP/qAEL/3ABD/+gARP/fAEb/+ABH/7sASP+7AEn/rwBK/68AS//jACcACP/xAAn/7AAK//gADP/2AA7/9wAP//YAEP/xABH/5wAS/+cAE//xABT/7AAV/+UAMf/2ADL/6AAz//kANP/qADX/+wA2//oAN//7ADj/6wA5//cAOv//ADv/4wA8//sAPf/+AD7/+wA///oAQP/sAEH/+gBC/+MAQ//5AET/7wBF/+oARv/7AEf/4wBI/+wASf/jAEr/6gBL//4AJgAH//sACP/7AAn/5wAK//oADP/2AA7/9gAP//YAEP/xABH/8QAS//IAE//xABT/5wAV//EAMv/nADP/+wA0//EANf/9ADb//gA3//4AOP/uADn/+wA6//4AO//oAD0AAAA+//sAP//+AED/7wBB//4AQv/qAEP//wBE//EARf/3AEb/+wBH/+YASP/3AEn/2gBK/+QAS//7ACkAB//2AAj/9gAJ/90ACv/yAAz/8QAO//EAD//wABD/6gAR/+wAEv/mABP/9AAU/+wAFf/rABf/zgAx//YAMv/OADP/7wA0/+oANf/5ADb//gA3//0AOP/oADn/+QA6//0AO//YADz//gA9//8APv/6AD//+QBA/+4AQf/5AEL/4wBD//gARP/qAEX/+QBG//oAR//pAEj/6QBJ/9UASv/rAEv/+gAqAAf/sgAI/8kACf+wAAr/ugAL/7UADP+1AA3/3QAO/+QAD/+6ABD/sgAR/7UAEv+xABP/4gAU/6sAFf+mADH/lwAy/9oAM//jADT/qwA1/+IANv/iADf/4wA4/5oAOf/XADr/7gA7/7QAPP/kAD3/6wA+/+4AP//mAED/rQBB/+8AQv+qAEP/6gBE/74ARf/XAEb/2gBH/9AASP/SAEn/1QBK/80AS//qACsAB//nAAj/8QAJ/6YACv/sAAv/nAAM/90ADf+6AA7/9gAP/+IAEP/sABH/3QAS/9oAE//sABT/3QAV/8QAJP/+ADH/pgAy/+sAM//vADT/ygA1//0ANv/zADf/+wA4/9MAOf/vADr/+wA7/9gAPP/3AD3/9wA+//EAP//7AED/1QBB//cAQv/PAEP/8wBE/+YARf+7AEb/5wBH/7UASP/JAEn/2gBK/6UAS//zACkAB//2AAn/7AAK//kAC//sAAz/9gAO//oAD//2ABD/7AAR/+cAEv/vABP/9gAU//EAFf/sABcAAQAx/+YAMv/pADP/+QA0/+oANf/zADb/+wA3//oAOP/nADn/9wA6//4AO//uADz/+QA9//oAPv/7AD//+QBA/+8AQf/3AEL/6QBD//oARP/sAEX/8wBG//gAR//pAEj/6QBJ/+MASv/nAEv//QAqAAf/9gAI//sACf/sAAr/9wAL/+wADP/7AA7/+gAP//EAEP/2ABH/7AAS//EAE//2ABT/9gAV/+QAFwABADH/8QAy/+kAM//3ADT/6QA1//kANv/5ADf/+QA4/+8AOf/6ADr//gA7/+8APP/7AD3/+gA+//oAP//4AED/7wBB//sAQv/rAEP//QBE/+8ARf/3AEb/+gBH/+4ASP/rAEn/4QBK/+wAS//5ACsAB//xAAj/4gAJ/9gACv/sAAv/2AAM//YADf/iAA7/8QAP/90AEP/iABH/0wAS/+IAE//JABT/4gAV/94AJP/7ADH/3QAy/7QAM//pADT/4QA1/+wANv/vADf/6gA4/+IAOf/qADr/+gA7/9oAPP/pAD3/6wA+/+wAP//pAED/4QBB/+sAQv/cAEP/6wBE/+IARf/JAEb/7gBH/7wASP/BAEn/pgBK/7UAS//kACwAB//iAAj/5wAJ/+IACv/OAAv/2AAM/+cADf/nAA7/8AAP/90AEP+6ABH/xAAS/9cAE//XABT/2AAV/9gAG//3ACT/+wAx/+IAMv+gADP/6QA0/+MANf/mADb/7wA3/+sAOP/aADn/6AA6//YAO/+xADz/6wA9/+4APv/oAD//7wBA/9oAQf/oAEL/1wBD/+MARP/aAEX/2ABG/+cAR//PAEj/yQBJ/7kASv/BAEv/6AApAAf/8QAI/+wACf/OAAr/6gAL/84ADP/nAA3/2AAO//YAD//fABD/4gAR/9gAEv/lABP/5wAU/+IAFf/YADH/4gAy/+cAM//3ADT/2gA1//gANv/5ADf/+wA4/9wAOf/3ADr//gA7/+MAPP/3AD3//QA+//cAP//3AED/1QBC/9UAQ//9AET/6QBF/+EARv/pAEf/ugBI/8QASf/aAEr/wgBL//sAKwAH/8kACP/YAAn/xAAK/9MAC/+/AAz/yQAN/9gADv/nAA//xAAQ/7oAEf+1ABL/wQAT/9gAFP+6ABX/vwAk//sAMf+/ADL/2gAz/+gANP/KADX/6QA2/+kAN//oADj/xgA5/+QAOv/nADv/uQA8/+wAPf/uAD7/6QA//+cAQP/GAEH/7ABC/8kAQ//mAET/2ABF/84ARv/VAEf/wQBI/7wASf/GAEr/tABL/+8AKwAH//EACP/2AAn/yQAK/+oAC//TAAz/3QAN/+cADv/sAA//4gAQ/+IAEf/YABL/3wAT/90AFP/dABX/2AAk//sAMf/nADL/xgAz//MANP/iADX/7wA2/+4AN//3ADj/4wA5/+kAOv/vADv/1wA8/+4APf/zAD7/6gA//+0AQP/kAEH/9wBC/98AQ//qAET/5wBF/9AARv/vAEf/yQBI/9AASf/PAEr/xABL/+8AKQAH/+cACP/sAAn/5wAK/+kAC//dAAz/2AAO/+wAD//XABD/qwAR/8kAEv/AABP/9gAU/9MAFf/OADH/2AAy/7AAM//5ADT/2gA1//0ANv/6ADf//gA4/98AOf/3ADr//QA7/8YAPP/7AD3//gA+//gAP//4AED/1QBB//0AQv/VAEP/+ABE/+MARf/zAEb/+QBH/+4ASP/zAEn/4gBK/+cAS//zACkACP/2AAn/5wAK//QAC//sAAz/+wAN//4ADv/2AA//5QAQ/+wAEf/nABL/8wAT//EAFP/nABX/3QAx/+QAMv/KADP/+QA0/+wANf/6ADb/+gA3//sAOP/vADn/+gA6AAAAO//hADz//wA9//0APv/5AD///gBA/+wAQf/7AEL/7ABD//sARP/vAEX/9wBG//sAR//zAEj/6gBJ/+EASv/jAEv/+wArAAf/zgAI/84ACf/YAAr/ygAL/9gADP/JAA3/+wAO/9kAD//JABD/ogAR/7oAEv+5ABP/5wAU/8QAFf+9ACT/+wAx/7oAMv+FADP/+wA0/7sANf/qADb/6wA3/+wAOP++ADn/5gA6/+8AO/+iADz/6AA9/+oAPv/sAD//7wBA/8MAQf/mAEL/uwBD/+YARP/KAEX/6QBG/+8AR//jAEj/3wBJ/9MASv/hAEv/6wApAAf/zgAI/84ACf/TAAv/2AAM/84ADv/eAA//xAAQ/7AAEf/TABL/sQAT/+wAFP/FABX/yQAk//sAMf/JADL/lQAz//MANP/BADX/+QA2//MAN//3ADj/xgA5//sAOv/3ADv/pQA8/+8APf/+AD7/7gA//+oAQP/DAEH/7gBC/8QAQ//vAET/0ABF/+4ARv/uAEf/6QBI/+QASf/aAEr/5gBL//cAKgAH/8QACP/OAAn/pgAL/7oADP+rAA3/3QAO/+cAD/+5ABD/twAR/8QAEv+zABP/0wAU/7AAFf+cACT/+wAx/6EAMv/aADP/4wA0/7cANf/4ADb/4wA3//0AOP+3ADn/7gA6/+8AO/+7ADz/7gA9//EAPv/jAD//6ABA/7oAQf/zAEL/uQBD/+sARP/OAEX/3wBG/+EAR//aAEj/2ABJ/9gASv/MAEv/7gAsAAf/yQAI/84ACf/JAAr/wgAL/8kADP/JAA3//gAO/8kAD/+6ABD/jQAR/7oAEv+gABP/4gAU/7UAFf+6AB7/8QAk//sAMf+1ADL/lwAz/+8ANP+7ADX/5gA2/+4AN//uADj/uQA5/+gAOv/3ADv/hAA8/+8APf/sAD7/7AA//+oAQP+6AEH/7ABC/7kAQ//pAET/ygBF/+8ARv/vAEf/6ABI/+kASf/fAEr/5ABL//EAJgAH//YACf/iAAr/7AAL/+cADP/iAA3//wAO//UAD//nABD/7AAR/+IAEv/gABP/7AAU/90AFf/TADH/4gAy/+sAM//+ADT/6AA1//4ANgAEADf//wA4/9wAOf/6ADv/5gA8//8APf//AD///QBA/+MAQf//AEMAAABE/+8ARf/4AEb/+wBH//cASP/rAEn/6QBK/+kAS//9AAIAAQAGAEsAAAAAAAAAAQAAAADUGBYRAAAAANmXsTQAAAAA2ZexNA==";class In extends je{constructor(){super(...arguments),this.moduleName="Vegemite"}svgPreview(e,t){return this.svgElement(e,t)}svgPrint(e,t){return this.svgElement(e,t)}svgElement(e,t){const A=l._loadFontExternalDataURL(fn),a=e!==""?(D=>D.charAt(0).toUpperCase()+D.substr(1).toLowerCase())(e):"",i=A.getPath(a,0,72,72),o=i.toSVG(2),s=i.getBoundingBox(),r=s.x2-s.x1,g=i.toPathData(3),B=()=>{const D=v("g");D.classList.add("module-text-group");const f=v("defs");D.appendChild(f),f.appendChild(Ut(0,2,2,"shadow"));const p=v("path");p.setAttribute("d",g),p.setAttribute("stroke","black"),p.setAttribute("stroke-width","3"),f.appendChild(p);const I=v("g");I.classList.add("module-layer0"),D.appendChild(I),I.setAttribute("filter","url(#shadow)"),I.innerHTML=p.outerHTML;const F=v("g");F.classList.add("module-layer1"),D.appendChild(F),F.setAttribute("stroke-width","3"),F.setAttribute("stroke","rgb(45,41,38)"),F.setAttribute("fill","rgb(45,41,38)"),F.setAttribute("transform","translate(0.5,0)"),F.innerHTML=o;const S=v("g");S.classList.add("module-layer2"),D.appendChild(S),S.setAttribute("fill","rgb(255,209,0)"),S.setAttribute("transform","translate(1,-0.1)"),S.innerHTML=o;const y=v("g");return y.classList.add("module-layer3"),D.appendChild(y),y.setAttribute("fill","white"),y.innerHTML=o,new We(D).transform(([P,H])=>[P,H+(r/2-P)**2/(r*6)]),D},d=v("g");d.classList.add("module-root");const w=v("defs");d.appendChild(w);const h=v("g");h.classList.add("module-bounds"),d.appendChild(h);const C=Ke(t.height,t.width);C.setAttribute("opacity","0"),h.appendChild(C);const E=v("g");E.classList.add("module-text-enclosure"),d.appendChild(E);const m=B();E.appendChild(m);const Q=Re(g);return Ve(E,Q,t.height,t.width,.35,.65),Gt(d.outerHTML)}}async function bt(c){if(c==="Favourites")return new un;if(c==="Maltesers"){const e=l.fetchAsString("https://assets.spiff.com.au/public/modules/img/MaltesersBackground.svg"),t=l.fetchAsString("https://assets.spiff.com.au/public/modules/img/MaltesersBackgroundShort.svg"),A=await Promise.all([e,t]);return new mn(A[0],A[1])}if(c==="Vegemite")return new In;throw new k(`Failed to resolve Module, Module ${c} not found`)}var Ce=(c=>(c.Error="Error",c.Warning="Warning",c.Info="Info",c))(Ce||{});const pn=1e3;class Jt extends ke{constructor(e){super(),this.createdAt=new Date,this.update=e}async execute(){await this.update(),await new Promise(e=>{window.setTimeout(()=>{e()},pn)})}}class Dn{constructor(e,t,A,n,a,i,o,s,r,g,B,d=!1,w,h=!1,C=!1,E=!1){this.workflowStatePromiseQueue=new be(1),this.initialized=!1,this.readOnly=!1,this.isReloadedTransaction=!1,this.singleVariantsRenderable=!1,this.renderLayouts=()=>{var D;if(!this.previewService)return;const m=this.getCommandContext().getAllLayouts(),Q=(D=this.getLayoutPreviewService())==null?void 0:D.getAll();if(Q)for(const[,f]of Q)f.render(m)},this.client=e,this.updateTransaction=i,this.commandContext=a,this.reloadedState=B,this.transaction=o,this.readOnly=d,this.singleVariantsRenderable=C,this.confirmedDesign=!1,this.editedSteps={},this.informationResults=[],this.mandatorySteps={},this.pendingUpdates=[],this.selectionCost=0,this.workflow=t,this.stepSpecificServices={},this.profanityFilter=A,this.pollers=[],this.allScenes=[],this.layouts=n,this.product=s,this.previewService=r,this.modelContainer=w,this.stepElements={},this.stepInitialised={},this.stepMetadata={},this.stepSelections={},this.storage={},this.confirmCallbacks=[],this.editedCallbacks=[],this.elementsCallbacks=[],this.informationResultCallbacks=[],this.initCallbacks=[],this.mandatoryCallbacks=[],this.makingAdjustmentsCallback=[],this.metadataCallbacks=[],this.selectionCallbacks=[],this.stepSpecificStorageCallbacks={},this.storageCallbacks=[],this.currentAdjustingStepId="",this.renderableContextService=g,this.isReloadedTransaction=h,E&&(this.workflowStatePromiseQueue.enabled=!1),this.initializationPromise=this.initializeDefaultWorkflowState(t),this.initializationPromise.then(()=>{this.initialized=!0}),this.initializationPromise.catch(m=>{throw console.error(m),this.initialized=!1,new Error("Workflow initialization failed due to an error. See console.")}),this.initializationPromise.finally(()=>this.getCommandContext().registerStateCallback(()=>{this.updateStateWithServer(),this.renderLayouts()}))}async initializeDefaultWorkflowState(e){const t=()=>{var g,B;const o=this.workflow.finalizeStepConfig;if(!o)return;const s=o.lookAtAnimation,r=o.modelAnimation;s&&((g=this.previewService)==null||g.executeCameraAnimation(s)),r&&((B=this.modelContainer)==null||B.executeAnimation(r))};this.reloadedState&&this.reloadedState.serializableWorkflow.steps.forEach(o=>{this.storage[o.stepName]=o.storage||{}}),this.allScenes=await XA(e);const n=ne(this.allScenes,this.stepSelections).map(o=>o.silentSteps).flat(),{stepElements:a,commands:i}=await this.stepElementsForIntroducedSilentSteps(n,!!this.reloadedState);this.commandContext.apply(new l.GroupCommand(i),!0),this.stepElements={...this.stepElements,...a},await this.ensureStepsAreLoaded(),!this.isReloadedTransaction&&this.updateStateWithServer(),this.renderLayouts(),this.reloadedState&&t()}getClient(){return this.client}setWorkflowStateSyncEnabled(e){this.workflowStatePromiseQueue.enabled=e}getProduct(){return this.product}getInitializationPromise(){return this.initializationPromise}isInitialized(){return this.initialized}addConfirmCallback(e){e(this.confirmedDesign),this.confirmCallbacks.push(e)}addEditedCallback(e){e(this.editedSteps),this.editedCallbacks.push(e)}addElementsCallback(e){e(this.stepElements),this.elementsCallbacks.push(e)}addInformationResultCallback(e){e(this.informationResults),this.informationResultCallbacks.push(e)}addInitCallback(e){e(this.stepInitialised),this.initCallbacks.push(e)}addMandatoryCallback(e){e(this.mandatorySteps),this.mandatoryCallbacks.push(e)}addMetadataCallback(e){e(this.stepMetadata),this.metadataCallbacks.push(e)}async addSelectionCallback(e){e({selectionCost:this.selectionCost,selections:this.stepSelections,traversableScenes:await this.traversableScenes()}),this.selectionCallbacks.push(e)}addStepSpecificStorageCallback(e,t){Object.keys(this.storage).includes(t)||(this.storage[t]={}),e(this.storage[t]),Object.keys(this.stepSpecificStorageCallbacks).includes(t)||(this.stepSpecificStorageCallbacks[t]=[]),this.stepSpecificStorageCallbacks[t].push(e)}addStorageCallback(e){e(this.storage),this.storageCallbacks.push(e)}addMakingAdjustmentsCallback(e){e(this.currentAdjustingStepId),this.makingAdjustmentsCallback.push(e)}addPoller(e){this.pollers.push(e)}getLayouts(){return this.layouts}getAllLayoutData(){return this.commandContext.getAllLayouts().map(e=>e.layoutState)}getLayoutPreviewService(){return this.renderableContextService}getInformationResults(){return this.informationResults}getPreviewService(){return this.previewService}getProfanities(){return this.profanityFilter}getCommandContext(){return this.commandContext}getRegionElements(e){return this.stepElements[e]||[]}getStepSpecificServices(e){return this.stepSpecificServices[e]}getTransaction(){return this.transaction}getTransactionCustomer(){return this.ownerCustomer}setTransactionCustomer(e){this.ownerCustomer=e}setTransactionCustomerDetails(e){this.ownerCustomer={...this.ownerCustomer,emailAddress:e.email}}getModelContainer(){return this.modelContainer}setModelContainer(e){(!e||this.previewService&&this.previewService.getAllModels().includes(e))&&(this.modelContainer=e,e&&e.metadata&&e.metadata instanceof Map&&this.modelContainer.metadata.set("workflowManager",this))}setTransaction(e){this.transaction=e}getWorkflow(){return this.workflow}getCommandDispatcher(){return e=>this.commandContext.apply(e,!this.initialized)}getWorkflowSelections(){const e={};return this.workflow.steps.forEach(t=>{const A=this.stepSelections[t.stepName];A&&A.selectedVariants&&A.selectedVariants.length>0&&(e[t.stepName]={selections:A.selectedVariants})}),e}markStepsAsInitialised(e){const t={...this.stepInitialised};e.forEach(A=>{t[A]=!0}),this.stepInitialised=t,this.onInitChange()}getUpdatesPending(){return this.pendingUpdates.length>0}markUpdateCompleted(e){this.pendingUpdates=this.pendingUpdates.filter(t=>t!==e)}markUpdatePending(){const e=l.generate();return this.pendingUpdates=[...this.pendingUpdates,e],e}setEditedStatus(e,t){this.editedSteps={...this.editedSteps,[e]:t},this.onEditedChange()}setInformationResults(e){this.informationResults=[...e],this.onInformationResultChange()}setCurrentAdjustingStepId(e){this.currentAdjustingStepId=e,this.onMakingAdjustmentsChange()}setMandatoryFulfilled(e,t){this.mandatorySteps[e]!==t&&(this.mandatorySteps={...this.mandatorySteps,[e]:t},this.onMandatoryChange())}toggleDesignConfirmed(){this.confirmedDesign=!this.confirmedDesign,this.onConfirmChange()}toggleMakingAdjustmentsCallback(e){e(this.mandatorySteps),this.mandatoryCallbacks.push(e)}async injectIntoPreviewService(e,t){if(this.modelContainer)throw new Error("You must eject from the preview service before injecting again.");if(this.previewService=e,!this.getProduct().modelUrl||!this.previewService)return;const A=e.loadModel({model:this.getProduct().modelUrl,contextService:this.getLayoutPreviewService()},{refocusCamera:t});this.setModelContainer(A),ne(this.allScenes,this.stepSelections).filter(i=>i).map(i=>i.renderableSteps).flat().filter(i=>i.type===l.StepType.Model||i.type===l.StepType.Material).forEach(i=>{var r,g,B;if(!((r=i.option)!=null&&r.id)){console.error(`Failed to read option id from step: ${i.stepName}`);return}const o=((g=this.stepSelections[i.stepName])==null?void 0:g.selectedVariants)||[];if(o.length===0)return;const s=o[0];if(i.type===l.StepType.Model){if(!this.modelContainer)throw new k("We should always have a model container when injecting a preview!");const d=(B=s.asset)==null?void 0:B.fileLink;if(!d){console.error(`Failed to read model url from variant: ${s.id} for step: ${i.stepName}`);return}const w=i.data;this.modelContainer.applyModelVariant(i.stepName,{model:d,contextService:this.getLayoutPreviewService()},w.replaceProductModel||!1)}else{const d=s.material;if(!d){console.error(`Failed to read material from variant: ${s.id} for step: ${i.stepName}`);return}i.data.targetMaterials.forEach(h=>{if(!this.modelContainer)throw new k("We should always have a model container when injecting a preview!");this.modelContainer.applyMaterialVariant(h,i.option.id,d)})}}),await A.getInitializationPromise(),this.renderLayouts()}ejectFromPreviewService(){if(this.modelContainer){if(!this.modelContainer.dispose)throw new Error("This feature is not supported in the current preview service.");this.modelContainer.dispose(),this.modelContainer=void 0}this.previewService=void 0}updateStorage(e,t){const A={...this.storage,[e]:{...this.storage[e],...t}};if(!rt(A,this.storage)){this.storage=A;const n=new l.UpdateWorkflowStateCommand(this.constructSerializableWorkflow());this.commandContext.apply(n,!0),this.onStepSpecificStorageChange(e),this.onStorageChange()}}constructSerializableWorkflow(){const e=[];return this.allScenes.forEach(t=>{t.renderableSteps.forEach(A=>{var a,i;const n={stepName:A.stepName};n.storage=this.storage[A.stepName],n.selectedVariants=(i=(a=this.stepSelections[A.stepName])==null?void 0:a.selectedVariants)==null?void 0:i.map(o=>({id:o.id,priceModifier:o.priceModifier})),e.push(n)})}),{steps:e}}updateStateWithServer(){if(this.readOnly)return;const e=this.serialize();this.workflowStatePromiseQueue.enqueue(new Jt(async()=>{await new Promise(t=>{setTimeout(()=>{t()},1)}),await this.updateTransaction({variables:{id:this.transaction.id,workflowState:e.transaction}})}))}async updateStateWithServerImmediate(){if(this.readOnly)return;const e=this.serialize();return new Jt(async()=>{await this.updateTransaction({variables:{id:this.transaction.id,workflowState:e.transaction}})}).execute()}serialize(){const e=this.getCommandContext().getState();if(!e)throw new k("Attempted to serialize state before it was initialized.");return{transaction:JSON.stringify(this.dehydrateState(se(e.transaction)))}}dehydrateState(e){for(const t of Object.values(e.layouts).map(A=>A.elements).flat())t.type==="illustration"&&(delete t.cachedObjectURL,t.src&&delete t.svg);return e}async outstandingRequestsPromise(){return this.workflowStatePromiseQueue.finalize()}updateMetadata(e,t){this.stepMetadata={...this.stepMetadata,[e]:{...this.stepMetadata[e],...t}},this.onMetadataChange()}removeElements(e){const t=(A,n)=>Object.keys(A).reduce((a,i)=>{const o=[...A[i]||[]];return n.forEach(s=>{const r=o.findIndex(g=>g.id===s.id);r>-1&&o.splice(r,1)}),a[i]=o,a},{});this.stepElements=t(this.stepElements,e)}getInvalidCanvasRegions(){return this.workflow.steps.reduce((e,t)=>(Ae(t,this.stepSelections)||this.stepElements[t.stepName]&&this.stepElements[t.stepName].forEach(A=>e.push(A)),e),[])}getInvalidModelVariants(){return this.workflow.steps.reduce((e,t)=>(t.type===l.StepType.Model&&!Ae(t,this.stepSelections)&&e.push(t.stepName),e),[])}async stepElementsForIntroducedSilentSteps(e,t){const A=this.product;if(!A)return Promise.resolve({stepElements:{},commands:[]});const n=async(r,g,B)=>{if(r.type===l.StepType.SilentIllustration){const d=await new yt(r,g).trigger();return{step:r,results:d}}else if(r.type===l.StepType.ProductOverlay){const d=await new yt(r,g,B).trigger();return{step:r,results:d}}return Promise.reject("Unknown silent step. This is a bug")},a=e.filter(r=>!this.stepInitialised[r.stepName]),i={stepElements:{},commands:[]},o=[];for(const r of a)this.markStepsAsInitialised([r.stepName]),t||o.push(n(r,this.layouts,A));const s=await Promise.all(o);for(const r of s)i.stepElements[r.step.stepName]=r.results.map(g=>g.regionElement),i.commands=[...i.commands,...r.results.map(g=>g.command)];return i}getStepStorage(e){return this.storage[e]}getMetadata(e){return this.stepMetadata[e]}getWorkflowMetadata(){return this.stepMetadata}getSerializedStep(e,t){return t.find(A=>A.stepName===e)}async updateTransactionShareActions(){const e=await this.client.getShareActionsForTransaction(this.transaction.id);this.transaction.transactionShareActions=e}async reset(){this.commandContext.getAllLayouts().forEach(t=>t.layoutState.elements.forEach(A=>{this.getCommandDispatcher()(new l.DeleteElementCommand(A.id))})),this.stepElements={},this.stepInitialised={},this.stepMetadata={},this.stepSelections={},this.storage={},await this.ensureStepsAreLoaded()}async setSelectionsAndElements(e,t,A,n){var p;const a=this.stepSelections;this.stepSelections={...this.stepSelections,[e]:{selectedVariants:t}},this.selectionCost=Object.values(this.stepSelections).reduce((I,F)=>I+F.selectedVariants.map(S=>S.priceModifier||0).reduce((S,y)=>S+y,0),0),this.workflow.steps.forEach(I=>{Ae(I,this.stepSelections)||(this.stepInitialised[I.stepName]=!1,delete this.stepMetadata[I.stepName],delete this.stepSelections[I.stepName],delete this.storage[I.stepName])});const i=this.allScenes,o=ne(i,a),s=ne(i,this.stepSelections),r=o.map(I=>I.silentSteps).flat(),B=s.map(I=>I.silentSteps).flat().filter(I=>!r.some(F=>F.stepName===I.stepName));r.forEach(I=>{Ae(I,this.stepSelections)||(this.stepInitialised[I.stepName]=!1)});const d=this.getInvalidCanvasRegions(),{stepElements:w,commands:h}=await this.stepElementsForIntroducedSilentSteps(B,!1);this.stepElements={...this.stepElements,...w,[e]:A},this.removeElements(d);const C=this.workflow.steps.find(I=>I.stepName===e);if((C==null?void 0:C.type)===l.StepType.Frame){const I=this.getStepSpecificServices(e);(p=I==null?void 0:I.frameService)==null||p.setTargetElements(A.map(F=>F.id))}const E=d.map(I=>new l.DeleteElementCommand(I.id)),m=new l.UpdateWorkflowStateCommand(this.constructSerializableWorkflow()),Q=[...h,...E,m];Q.length>0&&this.commandContext.apply(new l.GroupCommand(Q),!0),await this.ensureStepsAreLoaded(),this.onElementsChange();const D=this.getInvalidModelVariants(),f=this.modelContainer;if(f){const I=D.map(F=>f.applyModelVariant(F,{contextService:this.getLayoutPreviewService()},!1));await Promise.all(I)}await this.onSelectionChange(),n&&await n()}async ensureStepsAreLoaded(){const t=ne(this.allScenes,this.stepSelections).map(s=>s.renderableSteps),A=[],n=t.flat();for(const s of n)if(!this.stepInitialised[s.stepName])switch(this.stepInitialised[s.stepName]=!0,s.type){case l.StepType.DigitalContent:A.push(xt.init(s,this,this.reloadedState));break;case l.StepType.Frame:case l.StepType.Photo:{const r=new St(s.data.forceImageCover);r.connectWorkflowManager(this,s.stepName),this.stepSpecificServices[s.stepName]={frameService:r},A.push(he.init(s,this,this.reloadedState))}break;case l.StepType.Illustration:A.push(Ee.init(s,this,this.reloadedState));break;case l.StepType.Material:A.push(Je.init(s,this,this.reloadedState));break;case l.StepType.Model:A.push(Te.init(s,this,this.reloadedState));break;case l.StepType.Module:this.stepSpecificServices[s.stepName]={module:await bt(s.data.module)},A.push(Nt.init(s,this,this.reloadedState));break;case l.StepType.Picture:A.push(Oe.init(s,this,this.reloadedState));break;case l.StepType.Question:A.push(Le.init(s,this,this.reloadedState));break;case l.StepType.Shape:A.push(ae.init(s,this,this.reloadedState));break;case l.StepType.Text:A.push(z.init(s,this,this.reloadedState));break}const a=(await Promise.allSettled(A)).map(s=>{if(s.status==="rejected")throw new Error(`Step initialization failed: ${s.reason}`);return s.value}),i=a.filter(s=>!!s&&!!s.command).map(s=>s.command),o=a.filter(s=>!!s&&!!s.followup).map(s=>s.followup);i&&i.length>0&&this.commandContext.apply(new l.GroupCommand(i),!0);for(const s of o)await s();o.length>0&&await this.ensureStepsAreLoaded(),this.onInitChange()}onConfirmChange(){this.confirmCallbacks.forEach(e=>e(this.confirmedDesign))}onEditedChange(){this.editedCallbacks.forEach(e=>e(this.editedSteps))}onElementsChange(){this.elementsCallbacks.forEach(e=>e(this.stepElements))}onInformationResultChange(){this.informationResultCallbacks.forEach(e=>e(this.informationResults))}onInitChange(){this.initCallbacks.forEach(e=>e(this.stepInitialised))}onMakingAdjustmentsChange(){this.makingAdjustmentsCallback.forEach(e=>{e(this.currentAdjustingStepId)})}onMandatoryChange(){this.mandatoryCallbacks.forEach(e=>e(this.mandatorySteps))}onMetadataChange(){this.metadataCallbacks.forEach(e=>{e(this.stepMetadata)})}async onSelectionChange(){const e=await this.traversableScenes();for(const t of this.selectionCallbacks)t({selectionCost:this.selectionCost,selections:this.stepSelections,traversableScenes:e})}onStepSpecificStorageChange(e){Object.keys(this.stepSpecificStorageCallbacks).includes(e)||(this.stepSpecificStorageCallbacks[e]=[]),this.stepSpecificStorageCallbacks[e].forEach(t=>t(this.storage[e]))}onStorageChange(){this.storageCallbacks.forEach(e=>e(this.storage))}traversableScenes(){return $A(this.allScenes,this.stepSelections,this.singleVariantsRenderable)}}class V{constructor(e){this.variantData=e}getType(){var e;return(e=this.variantData.asset)==null?void 0:e.type}getId(){return this.variantData.id}getName(){return this.variantData.name}getPriceFormatted(e,t){return this.variantData.priceModifier.toLocaleString(e||"en-US",{style:"currency",currency:"USD",...t})}getPrice(){return this.variantData.priceModifier}getAsset(){var e,t,A;return(A=(t=(e=this.variantData.asset)==null?void 0:e.versions)==null?void 0:t.find(n=>n.name==="cdn"))==null?void 0:A.link}getAssetResource(){return this.variantData.asset}getThumbnail(){var A,n,a,i;const e=(a=(n=(A=this.variantData.thumbnail)==null?void 0:A.versions)==null?void 0:n.find(o=>o.name==="thumbnail"))==null?void 0:a.link,t=(i=this.variantData.thumbnail)==null?void 0:i.fileLink;return e||t}getDisplayImage(){var e,t,A;return(A=(t=(e=this.variantData.displayImage)==null?void 0:e.versions)==null?void 0:t.find(n=>n.name==="medium"))==null?void 0:A.link}getColor(){return this.variantData.color}isDefault(){return!!this.variantData.default}getResource(){return this.variantData}isEnabled(){return this.variantData.enabled}}const Tt=class it{constructor(e,t){this.manager=e,this.step=t}setUpdateState(e){it.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`,e)}getUpdateState(){return!!it.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`)}getCurrentVariant(){const t=this.manager.getWorkflowSelections()[this.step.stepName],A=t==null?void 0:t.selections[0];if(A)return new V(A)}getAvailableVariants(){var t,A;return(((A=(t=this.step.option)==null?void 0:t.variants)==null?void 0:A.filter(n=>n.enabled))||[]).map(n=>new V(n))}getAllVariants(){var t;return(((t=this.step.option)==null?void 0:t.variants)||[]).map(A=>new V(A))}getId(){return this.step.stepName}getName(){return this.step.stepTitle}getHelpText(){return this.step.helpText}getType(){return this.step.type}getRaw(){return this.step}getTags(){return this.step.tags||[]}hasTag(e){var t;return((t=this.step.tags)==null?void 0:t.includes(e))||!1}getOverrideGlobalPropertyConfiguration(e){var A;return(((A=this.manager.getStepStorage(this.step.stepName))==null?void 0:A.overrideGlobalConfigurations)??{})[e.toString()]??!1}setOverrideGlobalPropertyConfiguration(e,t){var n;const A=((n=this.manager.getStepStorage(this.step.stepName))==null?void 0:n.overrideGlobalConfigurations)??{};this.manager.updateStorage(this.step.stepName,{overrideGlobalConfigurations:{...A,[e.toString()]:t}})}getGlobalPropertyAspects(e){var t;return((t=this.step.globalPropertyAspectConfigurations)==null?void 0:t.filter(A=>A.globalPropertyConfigurationId===e&&A.aspectName).map(A=>A.aspectName))??[]}executeAnimations(){const e=this.manager.getPreviewService(),t=this.manager.getModelContainer(),A=this.step.data.modelAnimation,n=this.step.data.lookAtAnimation;e?n&&e.executeCameraAnimation(n):console.warn("No preview service available, cannot execute camera animations."),t?A&&t.executeAnimation(A):console.warn("No model container available, cannot execute model animations.")}};Tt.updateState=new Map;let K=Tt;class Ot extends K{constructor(e,t){super(e,t)}async selectVariant(e){if(!this.getUpdateState()&&this.getCurrentVariant()!==e)return Ee.selectVariant(this.step,e.getResource(),this.manager.getRegionElements(this.step.stepName)||[],t=>this.setUpdateState(t),this.manager)}getColors(){const e=this.manager.getRegionElements(this.step.stepName)||[];if(e.length!==0)try{return l.findElement(e[0].id,this.manager.getAllLayoutData()).colors}catch(t){console.error(t)}}setColor(e,t){const A=new Map;return A.set(e,t),Ee.changeColors(this.step,this.manager.getRegionElements(this.step.stepName),this.manager,()=>this.manager.getCommandContext().getAllLayouts(),A)}async getColorOption(){return this.step.data.colorOption}getAvailableColors(){return this.step.data.colorPickerEnabled?Ee.availableColors(this.step,this.manager):Promise.resolve([])}isColorPickerEnabled(){return this.step.data.colorPickerEnabled}}class Lt extends K{constructor(e,t){super(e,t)}selectVariant(e){return Je.selectVariant(this.step,e.getResource(),this.manager,t=>this.setUpdateState(t))}}class zt extends K{constructor(e,t){super(e,t)}selectVariant(e){return Te.selectVariant(this.step,e.getResource(),this.manager,t=>this.setUpdateState(t))}}class jt extends K{constructor(e,t){super(e,t)}selectVariant(e){return Oe.selectVariant(this.step,e.getResource(),this.manager,t=>this.setUpdateState(t))}}class Kt extends K{constructor(e,t){super(e,t)}async selectVariant(e){if(!e.getId())throw new Error("Unable to select variant with a null ID");await Le.selectVariant(this.step,e.getId(),this.manager)}getDisplayType(){var e;return this.step.data.displayType||((e=this.step.option)==null?void 0:e.displayType)}}class Vt extends K{constructor(e,t){super(e,t)}selectVariant(e){const t=e.getResource();return ae.selectVariant(this.step,{fill:t.color,stroke:t.color,variant:t},this.manager.getRegionElements(this.step.stepName)||[],this.manager)}setColor(e){return ae.selectVariant(this.step,e,this.manager.getRegionElements(this.step.stepName)||[],this.manager)}getColors(){return ae.availableColours(this.step)}setCustomColor(e){var t;if(((t=this.getCurrentVariant())==null?void 0:t.getColor())!=="#custom")throw new Error("Custom colors can only be set on a non-custom variant. Please add a custom variant to the step.");return ae.setCustomColor(e,this.step,this.manager)}getCustomColor(){var t,A;const e=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.colour;if(((A=this.getCurrentVariant())==null?void 0:A.getColor())!=="#custom")throw new Error("Custom colors can only be set on a non-custom variant. Please add a custom variant to the step.");if(!e)throw new Error("Color not available on step. Set a default on the workflow to fix this.");return e}}class Wt extends K{constructor(e,t){super(e,t)}async selectVariant(e){z.selectVariant(this.step,e.getResource(),this.manager,t=>{if(t)this.manager.setInformationResults([...this.manager.getInformationResults(),{message:"An issue has occured with test",messageType:Ce.Error,stepID:this.step.stepName}]);else{const A=this.manager.getInformationResults().filter(n=>n.stepID!==this.step.stepName);this.manager.setInformationResults(A)}},()=>{})}getAvailableFillColors(){return this.step.data.colorPickerEnabled?z.availableFillColors(this.step):[]}async setFillColor(e){const t=this.manager.getRegionElements(this.step.stepName);await z.changeFillColor(this.step,e,t,this.manager)}getFillColor(){var e;return((e=this.manager.getStepStorage(this.step.stepName))==null?void 0:e.color)||"#000000"}getAvailableFillImages(){return z.availableFillImages(this.step)}async setFillImage(e){const t=this.manager.getRegionElements(this.step.stepName);await z.changeFillImage(this.step,e,t,this.manager)}getFillImage(){var e;return(e=this.manager.getStepStorage(this.step.stepName))==null?void 0:e.fillImage}getAlignment(){const e=z.findLayoutElements(this.manager,this.step);return e==null?void 0:e[0].align}setAlignment(e){const t=this.manager.getRegionElements(this.step.stepName);z.changeAlignment(this.step,e,t,this.manager)}setFullTextCustomization(e){var i;const t=((i=this.manager.getStepStorage(this.step.stepName))==null?void 0:i.inputText)||"",A=this.step.data.replaceableText!==void 0?this.step.data.replaceableText.replace("{{}}",t):t,n=e?A:this.step.data.defaultText;return this.manager.updateStorage(this.step.stepName,{customiseAllText:e,text:n,defaultCleared:!1}),this.setText(n)}setText(e){var w,h;const t={input:e},A=z.findLayoutElements(this.manager,this.step),n=z.filterUnsupportedCharacters(e,(w=A[0])==null?void 0:w.fontData);!!this.step.data&&!!this.step.data.maxLength&&n.length>this.step.data.maxLength||(t.input=n);const i=A.length<=0,o=i?{inputText:n,text:n}:{inputText:n};if(this.manager.updateStorage(this.step.stepName,o),this.manager.updateMetadata(this.step.stepName,{text:n}),i)return t;const{command:s,errors:r,helperText:g}=z.updateInputText(n,A,this.step,this.manager);s&&this.manager.getCommandDispatcher()(s);const B=this.manager.getInformationResults(),d=(h=r[0])==null?void 0:h.localizationKey;if(d)this.manager.setInformationResults([...B,{message:`${d} - ${this.step.stepTitle}`,messageType:Ce.Error,stepID:this.step.stepName}]);else{const C=B.filter(E=>E.stepID!==this.step.stepName);this.manager.setInformationResults(C)}return t.helperText=d||g,t.errorText=d,t}getText(){var t;const e=this.step.data.defaultText;return((t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.text)||e||""}isReplaceable(){return this.step.data.userCanReplaceText}clearDefaultTextIfNecessary(){const e=this.manager.getStepStorage(this.step.stepName);if(!(e!=null&&e.defaultCleared)&&this.step.data.deleteDefaultOnFocus){const t=this.setText("");return this.manager.updateStorage(this.step.stepName,{defaultCleared:!0,inputText:""}),t}}hasColorPicker(){return this.step.data.colorPickerEnabled}getRegions(){return this.step.data.regions}getCharacterLimit(){return this.step.data.maxLength}getCharactersRemaining(){const e=this.step.data.maxLength;if(e===void 0)return;const t=this.getText();return e-t.length}}class Xt extends K{constructor(e,t){super(e,t)}async selectVariant(){}getContent(){return this.step.data.content}}class ye{static get(e,t){switch(t.type){case l.StepType.Information:return new Xt(e,t);case l.StepType.Question:return new Kt(e,t);case l.StepType.Text:return new Wt(e,t);case l.StepType.Illustration:return new Ot(e,t);case l.StepType.Picture:return new jt(e,t);case l.StepType.Shape:return new Vt(e,t);case l.StepType.Material:return new Lt(e,t);case l.StepType.Model:return new zt(e,t);case l.StepType.Frame:return new EA(e,t);default:throw new k(`Step type ${t.type} not yet supported in Core SDK`)}}}const qt=M.gql`
2001
+ fragment CreateDesignTransaction on Transaction {
2002
+ id
2003
+ designName
2004
+ externalCartProductId
2005
+ externalCartProductVariantId
2006
+ externalDesignProductId
2007
+ externalDesignProductVariantId
2008
+ lastSyncedAt
2009
+ quantity
2010
+ previewImageLink
2011
+ priceModifierTotal
2012
+ workflowViewerLink
2013
+ workflowViewerReadOnlyLink
2014
+ integrationProduct {
2015
+ id
2016
+ additionalExternalProductId
2017
+ additionalExternalVariantId
2018
+ }
2019
+ designExternalVariants {
2020
+ id
2021
+ externalProductId
2022
+ externalProductVariantId
2023
+ }
2024
+ }
2025
+ `,Fn=M.gql`
2026
+ ${qt}
2027
+ mutation CreateDesign(
2028
+ $name: String!
2029
+ $layouts: [LayoutInput]!
2030
+ $workflowId: String!
2031
+ $transactionId: String!
2032
+ $previewImage: String
2033
+ $useThreeDimPreview: Boolean
2034
+ $metadata: [MetadataInput]
2035
+ $selectedVariants: [SelectedVariantInput]
2036
+ ) {
2037
+ designCreate(
2038
+ name: $name
2039
+ layouts: $layouts
2040
+ workflowId: $workflowId
2041
+ transactionId: $transactionId
2042
+ previewImage: $previewImage
2043
+ useThreeDimPreview: $useThreeDimPreview
2044
+ metadata: $metadata
2045
+ selectedVariants: $selectedVariants
2046
+ ) {
2047
+ id
2048
+ sku
2049
+ transaction {
2050
+ ...CreateDesignTransaction
2051
+ }
2052
+ processExecution {
2053
+ id
2054
+ }
2055
+ }
2056
+ }
2057
+ `,Mn=M.gql`
2058
+ ${qt}
2059
+ mutation CreateDesigns($inputs: [DesignCreateInput]!) {
2060
+ designCreateMany(inputs: $inputs) {
2061
+ id
2062
+ sku
2063
+ transaction {
2064
+ ...CreateDesignTransaction
2065
+ }
2066
+ processExecution {
2067
+ id
2068
+ }
2069
+ }
2070
+ }
2071
+ `;function Xe(c){const e=JSON.parse(atob(c.split(".")[1])).exp;return Math.floor(new Date().getTime()/1e3)>=e}const Sn=async c=>{var i,o;const t=((i=Object.entries(localStorage).find(([s,r])=>s.startsWith("CognitoIdentityServiceProvider")&&s.endsWith("idToken")))==null?void 0:i[0])||"",A=localStorage.getItem(t),n={};return A&&!Xe(A)&&(n.Authorization=`Bearer ${A}`),(o=(await N.getShadowGraphqlClient().mutate({mutation:Fn,errorPolicy:"all",fetchPolicy:"no-cache",variables:{name:c.name,layouts:c.layouts,workflowId:c.workflowId,transactionId:c.transactionId,previewImage:c.previewImage,useThreeDimPreview:c.useThreeDimPreview,metadata:c.metadata,selectedVariants:c.selectedVariants},context:{headers:n}})).data)==null?void 0:o.designCreate},yn=async c=>{var i,o;const t=((i=Object.entries(localStorage).find(([s,r])=>s.startsWith("CognitoIdentityServiceProvider")&&s.endsWith("idToken")))==null?void 0:i[0])||"",A=localStorage.getItem(t),n={};return A&&!Xe(A)&&(n.Authorization=`Bearer ${A}`),(o=(await N.getShadowGraphqlClient().mutate({mutation:Mn,errorPolicy:"all",fetchPolicy:"no-cache",variables:{inputs:c.map(s=>({name:s.name,layouts:s.layouts,workflowId:s.workflowId,transactionId:s.transactionId,previewImage:s.previewImage,useThreeDimPreview:s.useThreeDimPreview,metadata:s.metadata,selectedVariants:s.selectedVariants}))},context:{headers:n}})).data)==null?void 0:o.designCreateMany},qe=(c,e,t)=>{const A=a=>{const i={};if(a.type==="Frame"){const o=c[a.stepName],s=a.data;if(!o||!o.image||s.hideImageInCart&&t)return i;i[`${a.stepTitle} image`]=o.image}if(a.type==="Illustration"){const o=c[a.stepName],s=a.data;if(!o||s.hideColorsInCart&&t||!o.colors)return i;if(o.colors.length>0){const r=o.colors.join(", ").toUpperCase();i[`${a.stepTitle} colors`]=r}}if(a.type==="Module"){const o=c[a.stepName],s=a.data;if(!o||o.text===void 0||o.text===null||s.hideTextInCart&&t)return i;i[`${a.stepTitle} text`]=o.text}if(a.type==="Text"){const o=c[a.stepName];if(!o)return i;const s=a.data;(!s.hideTextInCart||!t&&o.text!==void 0&&o.text!==null)&&(i[`${a.stepTitle} text`]=o.text),o.color&&(!s.hideColorInCart||!t)&&(i[`${a.stepTitle} color`]=o.color)}return i},n={};return e.steps.forEach(a=>{Object.assign(n,A(a))}),n},Yn=(c,e,t,A)=>{const n={};let a;if(t){a=qe(t,e,!1);for(const i of Object.keys(a))n[i]={value:a[i],priceModifier:0}}else if(A){a=A;for(const i of Object.keys(a))n[i]={value:a[i],priceModifier:0}}for(const i of Object.keys(c)){const o=c[i],s=e.steps.find(r=>r.stepTitle===i);if(o.length===1)n[`${s==null?void 0:s.stepTitle} selection`]={value:o[0].name,priceModifier:o[0].priceModifier};else if(o.length>1)for(let r=0;r<o.length;r++)n[`${s==null?void 0:s.stepTitle} selection ${r+1}`]={value:o[r].name,priceModifier:o[r].priceModifier}}return n},Zt=(c,e,t,A,n,a,i,o)=>{var h,C;const s=e.basePrice||0,r=c.priceModifierTotal||0,g=Yn(A,t,void 0,a),d=(Y.getMap("transactionOwnerIds")||new Map).get(c.id),w={additionalExternalProductId:(h=c.integrationProduct)==null?void 0:h.additionalExternalProductId,additionalExternalVariantId:(C=c.integrationProduct)==null?void 0:C.additionalExternalVariantId,baseCost:s,designExternalVariants:c.designExternalVariants,designProductId:c.externalDesignProductId,designProductVariantId:c.externalDesignProductVariantId,event:"onComplete",exportedData:g,externalCartProductId:c.externalCartProductId,externalCartProductVariantId:c.externalCartProductVariantId,lineItemImageUrl:i||"",optionsCost:r,processExecutionId:o,quantity:c.quantity,transactionId:c.id,transactionOwnerId:d,weight:e.weight,workflowViewerLink:c.workflowViewerLink||"",workflowViewerReadOnlyLink:c.workflowViewerReadOnlyLink||""};return a&&(w.metadata=a),A&&(w.selectedVariants=A),n&&(w.sku=n),w},$t=async(c,e,t,A,n,a,i,o,s,r)=>{var S;await(async()=>{var T;if(r!==void 0)return r;await c.outstandingRequestsPromise();const x=(Y.getMap("transactionOwnerIds")||new Map).get(n.id),H=await N.getShadowGraphqlClient().query({query:Dt,variables:{ids:[n.id]},fetchPolicy:"no-cache",errorPolicy:"all",context:{transactionOwnerId:x}}),R=(T=H.data)==null?void 0:T.transactions[0].workflowState;return H.errors?(H.errors.forEach(b=>{H.errors&&console.log("Server Error:",b.message)}),null):R??null})()||(console.warn("State mismatch detected. Uploading known state explicitly"),console.warn("State Object:",JSON.stringify(A())),await c.updateStateWithServerImmediate(A),console.log("Server state is undefined @ Workflow completion"));const d=c.getPreviewService(),w=(S=e==null?void 0:e.finalizeStepConfig)==null?void 0:S.lookAtAnimation,h=d&&e.showModelOnFinishStep&&!!w,C=s&&qe(s,e,!0),E=s&&qe(s,e,!1),m=async y=>{const x={};let P=0;if(Object.keys(a).length>0)for(const H of Object.keys(a)){const R=a[H],T=e.steps.find(b=>b.stepName===H);for(let b=0;b<R.selections.length;++b){const j=R.selections[b];if(T&&(!y||T.option&&(T.option.variants||[]).length>1&&!T.data.hideSelectionInCart&&!T.data.hideSelectionsInCart)){const at=T.stepTitle;x[at]?x[at].push({id:j.id||"",name:j.name,priceModifier:j.priceModifier}):x[at]=[{id:j.id||"",name:j.name,priceModifier:j.priceModifier}]}P+=j.priceModifier}}return[x,P]},[Q]=await m(!0),D=Object.fromEntries(Object.keys(Q).map(y=>[y,Q[y].map(x=>x.id)])),[f]=await m(!1),p=Object.fromEntries(Object.keys(f).map(y=>[y,f[y].map(x=>x.id)]));let I=await o(h,n.id);if(I){const y=await(await fetch(I)).blob();I=(await G.uploadAsset({name:`${n.id}-preview-image.png`,blob:y},l.AssetType.Image,!0,!1)).fileLink}return{designDetails:(()=>{const y={name:i,layouts:t.map(x=>({index:x.index,panelId:x.panelId})),workflowId:e.id,transactionId:n.id,useThreeDimPreview:!!h,previewImage:I};if(E){const x=[];for(const[P,H]of Object.entries(E))x.push({key:P,value:H});y.metadata=x}if(D){const x=[];for(const[P,H]of Object.entries(p))x.push({key:P,ids:H});y.selectedVariants=x}return y})(),cartSelectionsWithPrices:Q,cartMetadata:C}},_t=async(c,e,t,A,n,a,i,o,s,r,g)=>{var m,Q;s("workflow.steps.finish.finalize.buildingLayouts");const{designDetails:B,cartSelectionsWithPrices:d,cartMetadata:w}=await $t(c,e,t,A,a,i,o,r,g);s("workflow.steps.finish.finalize.creatingDesign");const h=await Sn(B),C=(m=h==null?void 0:h.transaction)==null?void 0:m.previewImageLink;if(!(h!=null&&h.transaction))throw new Error("Failed to create design");s("workflow.steps.finish.finalize.updatingTransaction");const E=h.transaction;return Zt(E,n,e,d,h==null?void 0:h.sku,w,C,(Q=h==null?void 0:h.processExecution)==null?void 0:Q.id)},Pn=async(c,e,t)=>{e("workflow.steps.finish.finalize.buildingLayouts"),await Promise.all(c.map(async o=>{await o.workflowManager.outstandingRequestsPromise()}));const n=await(async()=>{var r;const s=await N.getShadowGraphqlClient().query({query:Dt,variables:{ids:c.map(g=>g.transaction.id)},fetchPolicy:"no-cache",errorPolicy:"all"});return s.errors?(s.errors.forEach(g=>{s.errors&&console.log("Server Error:",g.message)}),null):(r=s.data)!=null&&r.transactions?s.data.transactions.map(g=>g.workflowState??null):null})(),a=await Promise.all(c.map(async(o,s)=>await $t(o.workflowManager,o.workflow,o.layouts,o.getReducerState,o.transaction,o.workflowSelections,o.designName,t??(()=>Promise.resolve(void 0)),o.workflowMetadata,n?n[s]:void 0)));e("workflow.steps.finish.finalize.creatingDesign");const i=await yn(a.map(o=>o.designDetails));if(!i)throw new Error("Failed to create designs");return e("workflow.steps.finish.finalize.updatingTransaction"),i.map((o,s)=>{var d;const r=c[s],g=a[s],B=o.transaction;return Zt(B,r.product,r.workflow,g.cartSelectionsWithPrices,o.sku,g.cartMetadata,void 0,(d=o.processExecution)==null?void 0:d.id)})};class xn{constructor(){this.localPersistenceKey="designTransactions",this.storageMethod="Local",this.designSavedListeners=[]}attachSaveListener(e){this.designSavedListeners.push(e)}detachSaveListener(e){this.designSavedListeners=this.designSavedListeners.filter(t=>t!==e)}async getSavedDesigns(){if(this.storageMethod==="Local"){const e=Y.get(this.localPersistenceKey);return e?JSON.parse(e):[]}throw new k("Unexpected storage method requested")}async getSavedDesignByTransaction(e){return(await this.getSavedDesigns()).find(A=>A.transactionId===e)}async addDesign(e){const A=(await this.getSavedDesigns()).filter(n=>n.transactionId!==e.transactionId);A.unshift(e),await this.setDesigns(A),this.designSavedListeners.forEach(n=>n(e))}async renameDesign(e,t){const A=await this.getSavedDesigns(),n=A.find(a=>a.transactionId===e);if(!n)throw new Error(`No saved design for transaction ${e}.`);n.title=t,await this.setDesigns(A)}async removeDesign(e){const t=await this.getSavedDesigns();await this.setDesigns(t.filter(A=>A.transactionId!==e))}async setDesigns(e){if(this.storageMethod==="Local"){Y.set(this.localPersistenceKey,JSON.stringify(e));return}throw new k("Unexpected storage method requested")}}const Ye=new xn,Nn=M.gql`
2072
+ mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
2073
+ transactionAddStakeholder(id: $id, details: $details, type: $type) {
2074
+ id
2075
+ stakeholders {
2076
+ id
2077
+ type
2078
+ customer {
2079
+ id
2080
+ emailAddress
2081
+ }
2082
+ }
2083
+ }
2084
+ }
2085
+ `;var eA=(c=>(c.QuantityChanged="QuantityChanged",c.PriceBreakChanged="PriceBreakChanged",c))(eA||{});class ue{constructor(e,t){var n;if(this.cachedStepHandles=new Map,this.currentPriceBreak=1,this.renderableScenes=[],this.renderableSceneCallbacks=[],this.eventCallbacks=new Map,this.debouncedSavedDesignUpdate=st(async()=>{await Ye.getSavedDesignByTransaction(this.getWorkflowManager().getTransaction().id)&&this.save()},2500),this.getCanvasObjectURLAsync=async a=>new Promise((i,o)=>{try{a.toBlob(s=>{if(s){const r=URL.createObjectURL(s);i(r)}})}catch(s){o(s)}}),!t.workflow)throw new Error("No Workflow ID provided.");this.client=e;const A=t.layouts;this.commandContext=new l.CommandContext,this.commandContext.initialize(A,t.reloadedState),this.isReadOnly=t.transaction.isOrdered||!!t.readOnly,this.workflowManager=new Dn(e,t.workflow,((n=t.product.profanities)==null?void 0:n.map(a=>a.word))||[],A,this.commandContext,a=>{try{this.debouncedSavedDesignUpdate()}catch{console.error("Failed to update saved design details.")}return t.stateMutationFunc(a)},t.transaction,t.product,t.previewService,t.renderableContextService,t.reloadedState,t.readOnly,t.modelContainer,t.isReloadedTransaction,t.singleVariantsRenderable,t.delayWorkflowStateSync),this.workflowManager.addSelectionCallback(a=>{const i=a.traversableScenes.map(o=>{const s=o.renderableSteps.map(r=>r.stepName);return{id:o.name,title:o.title,renderableSteps:s,workflowScene:o}});this.renderableScenes=i,this.renderableSceneCallbacks.forEach(o=>o(i))}),this.currentPriceBreak=this.priceBreakToBeApplied()}getBundle(){return this.bundle}setBundle(e){this.bundle=e}getClient(){return this.client}getIsReadOnly(){return this.isReadOnly}getCommandContext(){return this.commandContext}getWorkflowManager(){return this.workflowManager}async createPreviewImage(e,t){var Q,D;const A=this.workflowManager.getWorkflow(),n=(Q=A==null?void 0:A.finalizeStepConfig)==null?void 0:Q.lookAtAnimation;if(e){if(!n)throw new Error("Failed to generate cart preview image!");return await((D=this.workflowManager.getPreviewService())==null?void 0:D.renderSceneScreenshot(t??512,n))||""}let a=2048;t&&t<=2048&&(a=t);const i=l.createCanvas(a,a),o=this.commandContext.getAllLayouts(),s=A.defaultPreviewPanelIndex||0,r=A.panels[s],g=o.find(f=>{var p;return((p=f.layoutState)==null?void 0:p.layout.panelId)===(r==null?void 0:r.name)})||o[0],B=g.layoutState.layout.previewRegion?{x:g.layoutState.layout.previewRegion.left,y:g.layoutState.layout.previewRegion.top,width:g.layoutState.layout.previewRegion.width,height:g.layoutState.layout.previewRegion.height}:{x:0,y:0,width:g.layoutState.layout.width,height:g.layoutState.layout.height},d=this.commandContext.getLayoutById(g.layoutState.layout.id),w=i.getContext("2d");if(!w)throw new Ie("Failed to obtain 2D context for preview image creation");const h=l.getSvgElement(d.layoutState.layout,d.layoutState.elements,{renderingConfiguration:{purpose:l.LayoutRenderingPurpose.Print,region:{left:B.x,top:B.y,width:B.width,height:B.height}}}),C=l.renderPapyrusComponentAsString(h);await(await ot.Pith.from(w,C,{anonymousCrossOrigin:!0,ignoreDimensions:!1,createCanvas:l.createCanvas,createImage:l.loadImage,DOMParser:l.getDomParser(),fetch:l.fetch})).render();const m=await this.getCanvasObjectURLAsync(i);return i.toDataURL(m)}getStepById(e){const t=this.getWorkflowManager().getWorkflow().steps.find(a=>a.stepName===e);if(!t||!this.stepHasHandle(t))return;const A=this.cachedStepHandles.get(t.stepName);if(A)return A;const n=ye.get(this.getWorkflowManager(),t);return this.cachedStepHandles.set(t.stepName,n),n}getSteps(){return this.getScenes().flatMap(e=>this.getStepsByScene(e))}getScenes(){return this.getWorkflowManager().getWorkflow().stepGroups.map(t=>({id:t.id,name:t.name,stepIds:t.stepNames}))}getSelectionPriceSubunits(e){const t=this.getWorkflowManager().getWorkflowSelections();let A=0;return Object.values(t).forEach(n=>{A+=n.selections.reduce((a,i)=>a+(i.priceModifier||0),0)}),this.getPriceSubUnitsAfterPriceBreaks(A,e)}getBasePriceSubunits(e,t){const A=this.getPriceSubUnitsAfterPriceBreaks(this.getWorkflowManager().getProduct().basePrice||0,t);if(e){const n=this.getAdditionalProductPriceSubunits(t)||0;return A+n}return A}getAdditionalProductPriceSubunits(e){var A;const t=this.getWorkflowManager().getTransaction().integrationProduct;if((A=t==null?void 0:t.additionalIntegrationProduct)!=null&&A.product){const n=t.additionalIntegrationProduct.product.basePrice||0;return this.getPriceSubUnitsAfterPriceBreaks(n,e)}}getTotalPriceSubunits(e){return this.getBasePriceSubunits(!1,e)+this.getSelectionPriceSubunits(e)}getPriceSubUnitsAfterPriceBreaks(e,t){const A=t?1:this.priceBreakToBeApplied(),n=e*A;return Math.ceil(n)}priceBreakToBeApplied(){const e=(this.getWorkflowManager().getProduct().priceBreaks||[]).sort((n,a)=>-(n.minQty-a.minQty)),A=[...this.getMatchingExperiencesFromBundle(),this].reduce((n,a)=>n+a.getQuantity(),0);for(const n of e)if(n.minQty<=A)return n.percentage;return 1}checkForPriceBreakChanges(){const e=this.priceBreakToBeApplied();this.currentPriceBreak!==e&&(this.updatePriceBreak(e),this.getMatchingExperiencesFromBundle().forEach(t=>t.updatePriceBreak(e)))}getMatchingExperiencesFromBundle(){var e;return(((e=this.bundle)==null?void 0:e.getWorkflowExperiences())||[]).filter(t=>t.getWorkflowManager().getTransaction().id!==this.getWorkflowManager().getTransaction().id&&t.getWorkflowManager().getProduct().id===this.getWorkflowManager().getProduct().id)}updatePriceBreak(e){this.currentPriceBreak=e,this.callEvent("PriceBreakChanged")}async copySelectionsViaGlobalConfiguration(e,t,A){const n=await e.getGlobalProperties(),a=A==null?void 0:A.map(r=>r.getId()),i=this.getSteps().filter(r=>a===void 0||a.includes(r.getId())),o=t.getSteps(),s=r=>n.find(g=>g.getRawProperty().name===r.aspectName);i.forEach(r=>{const g=new Set,B=r.getRaw().globalPropertyAspectConfigurations;B!==void 0&&(B.forEach(d=>g.add(JSON.stringify(d))),o.forEach(d=>{const w=d.getRaw().globalPropertyAspectConfigurations;w!==void 0&&w.forEach(h=>{const C=s(h),E=g.has(JSON.stringify(h));if(E&&(C==null?void 0:C.getType())==="Option"){const m=d.getCurrentVariant();if(!m)return;r.selectVariant(m),g.delete(JSON.stringify(h))}else if(E&&(C==null?void 0:C.getType())==="Text"){const m=d.getText();r.setText(m),g.delete(JSON.stringify(h))}})}))})}getStepByName(e){const t=this.getWorkflowManager().getWorkflow().steps.find(A=>A.stepTitle===e);if(!(!t||!this.stepHasHandle(t)))return ye.get(this.getWorkflowManager(),t)}getStepsByType(e){return this.getWorkflowManager().getWorkflow().steps.filter(t=>t.type===e).map(t=>ye.get(this.getWorkflowManager(),t))}getStepsByScene(e){if(!this.getWorkflowManager().getWorkflow().stepGroups.find(A=>A.name===e.name))throw new Error("Given scene is not present on workflow! Be careful when persisting scenes that you only use them with the relevant workflow.");return e.stepIds.map(A=>this.getWorkflowManager().getWorkflow().steps.find(n=>n.stepName===A)).filter(A=>this.stepHasHandle(A)).map(A=>ye.get(this.getWorkflowManager(),A))}async attachCustomerDetails(e){return this.assignCustomerDetails({emailAddress:e.email})}async assignCustomerDetails(e){var i,o,s;const A=(Y.getMap("transactionOwnerIds")||new Map).get(this.getWorkflowManager().getTransaction().id),a=(s=(o=(i=(await N.getShadowGraphqlClient().mutate({mutation:Nn,variables:{id:this.getWorkflowManager().getTransaction().id,details:e,type:"Owner"},context:{transactionOwnerId:A}})).data)==null?void 0:i.transactionAddStakeholder)==null?void 0:o.stakeholders)==null?void 0:s.find(r=>{var g;return((g=r.customer)==null?void 0:g.emailAddress)===e.emailAddress});if(a!=null&&a.customer){this.getWorkflowManager().setTransactionCustomer(a.customer);const r=Y.getMap("transactionCustomerIds")||new Map;r.set(this.getWorkflowManager().getTransaction().id,a.customer.id),Y.setMap("transactionCustomerIds",r)}}attachRenderableSceneListener(e){this.renderableSceneCallbacks.push(e),e(this.renderableScenes)}detachRenderableSceneListener(e){this.renderableSceneCallbacks=this.renderableSceneCallbacks.filter(t=>t!==e)}async save(e){if(!this.getCommandContext().getState())throw new k("State undefined!");const n={title:await(async()=>{var s;if(e)return e;const a=this.getWorkflowManager().getTransaction().id,o=(s=(await Ye.getSavedDesigns()).find(r=>r.transactionId===a))==null?void 0:s.title;return o||"My design"})(),thumbnail:await this.createPreviewImage(!1,256),transactionId:this.getWorkflowManager().getTransaction().id,productId:this.getWorkflowManager().getProduct().id,integrationProductId:this.getWorkflowManager().getTransaction().integrationProduct.id,workflowName:this.getWorkflowManager().getWorkflow().name,workflowId:this.getWorkflowManager().getWorkflow().id,lastEdited:new Date};return await Ye.addDesign(n),n}async copy(){var o;const e=se(this.getCommandContext().getState());if(!e)throw new k("Internal state is undefined! Cannot copy experience!");const t=JSON.stringify(e.transaction),A=this.getWorkflowManager().getWorkflow(),n=new wA({}),a=(o=this.getWorkflowManager().getTransaction().integrationProduct)==null?void 0:o.id;if(!a)throw new k("Integration product id is undefined!");return await n.initFromIntegrationProduct(a),await n.getWorkflowExperience(A.id,t,void 0)}async onDesignFinished(e,t=!0){return _t(this.workflowManager,this.workflowManager.getWorkflow(),this.workflowManager.getLayouts(),()=>this.commandContext.getState(),this.workflowManager.getProduct(),this.workflowManager.getTransaction(),this.workflowManager.getWorkflowSelections(),this.workflowManager.getWorkflow().name,e||(()=>{}),A=>t?this.createPreviewImage(A,1024):Promise.resolve(void 0),this.workflowManager.getWorkflowMetadata())}stepHasHandle(e){return e.type!==l.StepType.SilentIllustration&&e.type!==l.StepType.ProductOverlay}getExportedData(){var n;const e=new Map,t=this.getWorkflowManager().getWorkflowMetadata(),A=this.getWorkflowManager().getWorkflowSelections();return Object.keys(t).forEach(a=>{const i=this.workflowManager.getWorkflow().steps.find(s=>s.stepName===a);if(!i)return;e.has(i.stepTitle)||e.set(i.stepTitle,{});const o=t[a];Object.keys(o).forEach(s=>{e.get(i.stepTitle)[s]=o[s]})}),(n=Object.keys(A))==null||n.forEach(a=>{const i=this.workflowManager.getWorkflow().steps.find(o=>o.stepName===a);i&&(e.has(i.stepTitle)||e.set(i.stepTitle,{}),e.get(i.stepTitle).selection=A[a].selections[0].name)}),e}getQuantity(){return this.getWorkflowManager().getTransaction().quantity||1}async setQuantity(e){if(e<1)throw new RangeError("WorkflowExperience quantity must be greater than zero.");if(this.isReadOnly)throw new Error("Cannot update quantity on a read-only WorkflowExperience");this.getWorkflowManager().getTransaction().quantity=e,this.callEvent("QuantityChanged"),this.checkForPriceBreakChanges();const t=Y.getMap("transactionOwnerIds")||new Map,A=this.getWorkflowManager().getTransaction(),n=t.get(A.id)||void 0;await N.getShadowGraphqlClient().mutate({mutation:jA,variables:{id:A.id,quantity:e},context:{transactionOwnerId:n}})}addEventListener(e,t){const A=this.eventCallbacks.get(e)||[];A.push(t),this.eventCallbacks.set(e,A)}removeEventListener(e,t){const A=this.eventCallbacks.get(e)||[];this.eventCallbacks.set(e,A.filter(n=>n!==t))}callEvent(e){(this.eventCallbacks.get(e)||[]).forEach(t=>t(this))}}const Hn=["altGlyph","circle","ellipse","path","polygon","polyline","rect","text","textPath","tref","tspan"],Rn=async(c,e,t)=>{const A=e.data,n=t.data.baseUrl,a=A.assetUrl.replace("localhost","localstack"),i=n.slice(0,4)==="http"?"":"https://",o=new URL(i+n);o.searchParams.append("video",l.toBase64(JSON.stringify([{href:a}]))),o.pathname=o.pathname+(o.pathname.slice(-1)==="/"?"":"/");const s=o.toString(),g=`data:image/svg+xml;base64,${l.toBase64(await ct.toString(s,{type:"svg"}))}`,B=w=>{const h=c.find(E=>E.panelId===w.panelId);if(!h)throw new J(w);const C=l.generate();return new l.CreateElementCommand({id:C,src:g,type:l.LayoutElementType.Image,y:w.top,x:w.left,width:w.width,height:w.height,rotation:0},h)},d=t.data.regions;try{return d.map(B)}catch(w){return console.error(w),[]}},vn=async(c,e,t,A)=>{const n=t.data,a=n.assetUrl,i=await l.getPatternImageData(a);try{const o=l.getVariant(n,A.option);o&&(e[A.stepName]={selectedVariants:[o]});const s=async r=>{var C;const g=await l.generateFrameSVG(r||{width:1,height:1},(C=o==null?void 0:o.asset)==null?void 0:C.fileLink),B=await l.getFrameData(g),d=l.generate(),w=c.find(E=>E.panelId===r.panelId);if(!w)throw new J(r);const h=l.calculateOffsets(i,B,{scale:n.scale,left:n.x,top:n.y});return[new l.CreateElementCommand({id:d,path:B.path,dataWidth:B.width,dataHeight:B.height,type:l.LayoutElementType.Frame,focalBlur:A.data.focalBlur,focalBlurStrength:A.data.focalBlurStrength,focalBlurRadius:A.data.focalBlurRadius,forceImageCover:A.data.forceImageCover,x:r.left,y:r.top,width:r.width,height:r.height,layer:r.layer,layerIndex:r.layerIndex,rotation:r.rotation,scaleX:r.width/B.width,scaleY:r.height/B.height,pattern:void 0},w),new l.UpdateFramePattern(d,i,h)]};return(await Promise.all(A.data.regions.map(r=>s(r)))).flat()}catch(o){return console.error(o),[]}},Un=async(c,e,t,A)=>{var p,I;const n=t.data,a=A.option;if(!a)return console.error(`No option for step ${A.stepName}.`),[];const i=((p=a.variants)==null?void 0:p.find(F=>F.id===n.illustrationVariantId))||l.getDefaultVariant(a);if(!i)return console.error(`No variant with ID: ${n.illustrationVariantId}`),[];if(!i.asset)return console.error(`No asset for variant with ID: ${n.illustrationVariantId}`),[];e[A.stepName]={selectedVariants:[i]};const o=(I=i.asset)==null?void 0:I.fileLink;if(!o)return console.error(`No asset link for variant with ID: ${n.illustrationVariantId}`),[];const s=await l.fetchAsString(o,!0),r=/<svg.*?<\/svg>/s,g=s.match(r)||[],B=(g==null?void 0:g.length)>0?g[0]:"",h=l.domParser().parseFromString(B,"image/svg+xml").firstElementChild;if(!h)return console.error("Failed to read SVG."),[];l.sanitizeSvgTree(h);const C={};l.traverse(h,F=>{Hn.includes(F.tagName)&&!F.attributes.getNamedItem("fill")&&F.setAttribute("fill","#000000");const S=F.attributes.getNamedItem("fill");if(S&&S.value!=="none"){const x=S.value,H=`spiff-fill-${x.replace(/\W/g,"")}`;F.classList.add(H),C[H]={browserValue:x}}const y=F.attributes.getNamedItem("stroke");if(y&&y.value!=="none"){const x=y.value,H=`spiff-stroke-${x.replace(/\W/g,"")}`;F.classList.add(H),C[H]={browserValue:x}}});const m=l.xmlSerializer().serializeToString(h),Q=n.colors;if(Q){for(const[F,S]of Object.entries(C))for(const y of Object.keys(Q))if(S.browserValue===y){C[F]={browserValue:Q[y]};break}}const D=F=>{const S=c.find(x=>x.panelId===F.panelId);if(!S)throw new J(F);const y=l.generate();return new l.CreateElementCommand({colors:C,id:y,svg:m,type:l.LayoutElementType.Illustration,y:F.top,x:F.left,rotation:F.rotation,width:F.width,height:F.height,layer:F.layer,layerIndex:F.layerIndex,immutable:F.immutable},S)},f=A.data.regions;try{return f.map(D)}catch(F){return console.error(F),[]}},Gn=async(c,e,t)=>{const A=await bt(t.data.module),n=e.data,a=(o,s)=>{const r=c.find(B=>B.panelId===s.panelId);if(!r)throw new J(s);const g=l.generate();return new l.CreateElementCommand({colors:{},id:g,svg:o,type:l.LayoutElementType.Illustration,y:s.top,x:s.left,rotation:s.rotation,width:s.width,height:s.height,layer:s.layer,layerIndex:s.layerIndex},r)},i=t.data.regions;try{return i.map(o=>a(A.svgPrint(n.text,o),o))}catch(o){return console.error(o),[]}},kn=async(c,e,t,A)=>{var g,B;const n=t.data,a=A.option;if(!a)return console.error(`No option for step ${A.stepName}.`),[];const i=((g=a.variants)==null?void 0:g.find(d=>d.id===n.pictureVariantId))||l.getDefaultVariant(a);if(!i)return console.error(`No variant with ID: ${n.pictureVariantId}`),[];if(!i.asset)return console.error(`No asset for variant with ID: ${n.pictureVariantId}`),[];e[A.stepName]={selectedVariants:[i]};const o=(B=i.asset)==null?void 0:B.fileLink;if(!o)return console.error(`No asset link for variant with ID: ${n.pictureVariantId}`),[];const s=d=>{const w=c.find(C=>C.panelId===d.panelId);if(!w)throw new J(d);const h=l.generate();return new l.CreateElementCommand({id:h,src:o,type:l.LayoutElementType.Image,y:d.top,x:d.left,rotation:d.rotation,width:d.width,height:d.height,layer:d.layer,layerIndex:d.layerIndex,immutable:d.immutable,preserveAspectRatio:"none"},w)},r=A.data.regions;try{return r.map(s)}catch(d){return console.error(d),[]}},bn=async(c,e,t,A)=>{var r;const n=t.data,a=A.option;if(!a)return console.error(`No option for step ${A.stepName}.`),[];const i=((r=a.variants)==null?void 0:r.find(g=>g.id===n.colorVariantId))||l.getDefaultVariant(a);if(!i)return console.error(`No variant with ID: ${n.colorVariantId}`),[];e[A.stepName]={selectedVariants:[i]};const o=g=>{const B=c.find(E=>E.panelId===g.panelId);if(!B)throw new J(g);const d=`
2086
+ <svg
2087
+ xmlns="http://www.w3.org/2000/svg"
2088
+ xmlnsXlink="http://www.w3.org/1999/xlink"
2089
+ xmlSpace="preserve"
2090
+ preserveAspectRatio="none"
2091
+ version="1.1"
2092
+ width="1"
2093
+ height="1"
2094
+ viewBox="0 0 1 1"
2095
+ >
2096
+ <rect
2097
+ x="0"
2098
+ y="0"
2099
+ width="1"
2100
+ height="1"
2101
+ class="spiff-fill-shape"
2102
+ fill="${i==null?void 0:i.color}"
2103
+ />
2104
+ </svg>
2105
+ `,h={"spiff-fill-shape":{browserValue:i.color||"#000000"}},C=l.generate();return new l.CreateElementCommand({colors:h,id:C,svg:d,type:l.LayoutElementType.Illustration,y:g.top,x:g.left,rotation:g.rotation,width:g.width,height:g.height,layer:g.layer,layerIndex:g.layerIndex,immutable:g.immutable},B)},s=A.data.regions;try{return s.map(o)}catch(g){return console.error(g),[]}},Jn=async(c,e,t)=>{const A=[],a=(()=>{var r,g;return e.type===l.StepType.ProductOverlay?t||((r=e.data.asset)==null?void 0:r.fileLink)||"":((g=e.data.asset)==null?void 0:g.fileLink)||""})(),o=(()=>a.endsWith(".jpeg")||a.endsWith(".jpg")||a.endsWith(".png")?l.LayoutElementType.Image:(a.endsWith(".svg"),l.LayoutElementType.Illustration))(),s=e.data.regions;if(o==="image")try{s.forEach(r=>{const g=c.find(d=>d.panelId===r.panelId);if(!g)throw new J(r);const B={id:l.generate(),src:a,type:o,y:r.top,x:r.left,width:r.width,height:r.height,layer:r.layer,layerIndex:r.layerIndex,productOverlay:e.type===l.StepType.ProductOverlay?!0:void 0,scaleX:1,scaleY:1,rotation:r.rotation,excludeFromExport:e.data.excludeFromPrint,preserveAspectRatio:"none"};A.push(new l.CreateElementCommand(B,g))})}catch(r){console.error(r)}else{const r=await l.fetchAsString(a,!0),g=B=>{const d=/<svg.*?<\/svg>/s,w=B.match(d)||[],h=(w==null?void 0:w.length)>0?w[0]:"",m=l.domParser().parseFromString(h,"image/svg+xml").firstElementChild;if(!m)throw new $("Failed to read SVG.");return l.sanitizeSvgTree(m),l.xmlSerializer().serializeToString(m)};s.forEach(B=>{const d=c.find(h=>h.panelId===B.panelId);if(!d)throw new J(B);const w={id:l.generate(),src:a,asset_key:a,svg:g(r),colors:{},type:o,y:B.top,x:B.left,width:B.width,height:B.height,layer:B.layer,layerIndex:B.layerIndex,scaleX:1,scaleY:1,rotation:B.rotation,productOverlay:e.type===l.StepType.ProductOverlay?!0:void 0,excludeFromExport:e.data.excludeFromPrint};A.push(new l.CreateElementCommand(w,d))})}return A},Tn=async(c,e,t,A)=>{const n=[],a=t.data,i=30,o=E=>E.vertical?"center":E.textAlign||"center",s=()=>{var D;const E=A.option;if(!E)return;const m=((D=E.variants)==null?void 0:D.find(f=>f.id===a.fontVariantId))||l.getDefaultVariant(E);if(!m||!m.asset)return;e[A.stepName]={selectedVariants:[m]};const Q=m.asset.fileLink;if(Q)return Q},g=await(async()=>{const E=s();if(!E)return;const m=await l.loadFont(E);return{assetUrl:E,name:m.names.fullName.en}})(),B=(A.data.replaceableText?A.data.replaceableText.replace("{{}}",a.text):a.text)||"",d=l.applyTextTransformations(B,{vertical:A.data.vertical,uppercase:A.data.uppercase}),w=async E=>{const m=E.colorOption;if(!m)return;const Q=L.getDefaultVariant(m);return Q==null?void 0:Q.color},h=a.color||await w(A.data),C=A.data.regions;for(const E of C){const m=c.find(D=>D.panelId===E.panelId);if(!m)continue;const Q={stepName:t.name,id:l.generate(),align:o(A.data),curved:A.data.curved,fill:a.color||h||"#000000",fontData:g,fontSize:A.data.size||i,height:E.height,layer:E.layer,layerIndex:E.layerIndex,paths:A.data.paths,rotation:E.rotation,text:d,type:l.LayoutElementType.Textbox,vertical:A.data.vertical,verticalAlign:A.data.verticalAlign||"middle",width:E.width,x:E.left,y:E.top};if(g){const[D,f]=l.determineCorrectFontSizeAndLines(A.data.size||i,g,E,[l.applyTextTransformations(d,{vertical:A.data.vertical,uppercase:A.data.uppercase})],{size:A.data.size,minSize:A.data.minSize,maxSize:A.data.maxSize});n.push(new l.CreateElementCommand({...Q,fontSize:D,text:Q.curved?Q.text:(f||[]).join(`
2106
+ `)},m))}else n.push(new l.CreateElementCommand(Q,m))}return n},On=(c,e)=>c.conditions?c.conditions.every(t=>{const A=e[t.targetStepName];if(A&&A.selectedVariants){const n=A.selectedVariants;return t.requiredVariantSelections.some(a=>n.find(i=>i.id===a)!==void 0)}return!1}):!0,tA=async(c,e,t,A)=>{const n=[],a={};for(const i of c){const o=e.steps.find(s=>s.stepName===i.name);if(o)switch(o.type){case l.StepType.DigitalContent:n.push(...await Rn(t,i,o));break;case l.StepType.Frame:case l.StepType.Photo:n.push(...await vn(t,a,i,o));break;case l.StepType.Illustration:n.push(...await Un(t,a,i,o));break;case l.StepType.Module:n.push(...await Gn(t,i,o));break;case l.StepType.Picture:n.push(...await kn(t,a,i,o));break;case l.StepType.Shape:n.push(...await bn(t,a,i,o));break;case l.StepType.Text:n.push(...await Tn(t,a,i,o));break}}for(const i of e.steps)i.type!==l.StepType.SilentIllustration&&i.type!==l.StepType.ProductOverlay||On(i,a)&&n.push(...await Jn(t,i,A));return n};class Pe{constructor(e){this.handleCompleteRender=null;const t=new Map;e.forEach(A=>t.set(A.id,new zn(A.id,A.name,this,{width:A.width,height:A.height}))),this.layouts=t}setCompleteRenderCallback(e){this.handleCompleteRender=e,e(Array.from(this.layouts.values()))}onCompleteRender(){this.handleCompleteRender&&this.handleCompleteRender(Array.from(this.layouts.values()))}getAll(){return this.layouts}}const Ln=(()=>new Promise((c,e)=>{try{const A=l.createCanvas().getContext("webgl2");c(!!A)}catch{c(!1)}}))();class zn{constructor(e,t,A,n){this.hasSetStaticContext=!1,this.interactiveDirty=!1,this.staticCtxDirty=!1,this.lastRequestedRenderArguments=void 0,this.lastCompletedStaticRender=void 0,this.renderQueue=new be(2),this.id=e,this.name=t,this.service=A,this.panelSize=n}getID(){return this.id}getName(){return this.name}getPanelSize(){return this.panelSize}getStaticContext(){return this.textureCtx}setStaticContext(e){this.textureCtx=e,this.lastRequestedRenderArguments&&this.render(this.lastRequestedRenderArguments)}getStaticContextDirty(){return this.staticCtxDirty}setStaticContextDirty(e){this.staticCtxDirty=e}getInteractiveCanvasDirty(){return this.interactiveDirty}setInteractiveCanvasDirty(e){this.interactiveDirty=e}markLastCompletedStaticRender(){this.lastCompletedStaticRender=Date.now(),this.service.onCompleteRender()}getLastCompletedStaticRender(){return this.lastCompletedStaticRender}async render(e){const t=se(e);this.lastRequestedRenderArguments=t;const A=this.getStaticContext();if(!A){this.markLastCompletedStaticRender(),this.setStaticContextDirty(!1);return}this.renderQueue.enqueue(new jn(this.getID(),A,await Ln,()=>{this.markLastCompletedStaticRender(),this.setStaticContextDirty(!0)},t))}}class jn extends ke{constructor(e,t,A,n,a){super(),this.layoutId=e,this.ctx=t,this.nonPOTSupport=A,this.onRender=n,this.layouts=a}getDynamicTextureResolution(){return this.getIsMobile()||!this.offscreenRenderingSupported()?{width:1024,height:1024}:{width:2048,height:2048}}getIsMobile(){return window.innerWidth<=480}offscreenRenderingSupported(){return navigator.userAgent.includes("SamsungBrowser")?!1:!!window.Worker&&!!window.OffscreenCanvas}resizeFit(e,t=4096){const A=t/e.width,n=t/e.height,a=Math.min(A,n);return a>1?e:{width:e.width*a,height:e.height*a}}async execute(){const e=this.layouts.find(w=>w.layoutState.layout.id===this.layoutId);if(!e)return;const t=e.layoutState.elements||[],A=e.layoutState.layout.width,n=e.layoutState.layout.height,a=A===1||n===1?{width:1,height:1}:this.getDynamicTextureResolution(),i=a.width,o=a.height;let s,r;if(this.nonPOTSupport){const w=i/o;A/n<w?(s=i,r=n*(i/A)):(s=A*(o/n),r=o);const C=this.resizeFit({width:s,height:r});s=C.width,r=C.height}else s=a.width,r=a.height;const g=l.getSvgElement(e.layoutState.layout,t,{renderingConfiguration:{purpose:l.LayoutRenderingPurpose.ThreeD}}),B=l.renderPapyrusComponentAsString(g),d=await ot.Pith.from(this.ctx,B,{anonymousCrossOrigin:!0,ignoreDimensions:!this.nonPOTSupport,ignoreAnimation:!0,ignoreClear:!0,ignoreMouse:!0,enableRedraw:!1,createCanvas:l.createCanvas,createImage:l.loadImage,DOMParser:l.getDomParser(),fetch:l.fetch});d.resize(s,r),await d.render(),this.onRender()}}const Kn=(c,e)=>{const t=[];return c.forEach(A=>{const n=e.steps.find(a=>a.stepName===A.stepName);(n==null?void 0:n.type)===l.StepType.Text&&A.stepAspectType==="Text"&&t.push({name:n.stepName,data:{text:A.value}})}),t},Vn=async(c,e,t,A)=>{let n={serializableWorkflow:{steps:[]},layouts:{}};n=new l.GroupCommand(t.map(s=>new l.CreateLayoutCommand(s))).apply(n);const i=await tA(c,e,t,A);return new l.GroupCommand(i).apply(n)},Wn=M.gql`
2107
+ ${te}
2108
+ fragment ProductFields on Product {
2109
+ id
2110
+ basePrice
2111
+ enabled
2112
+ imageUrl
2113
+ integrationProducts {
2114
+ id
2115
+ externalProductId
2116
+ externalVariantId
2117
+ additionalExternalProductId
2118
+ additionalExternalVariantId
2119
+ additionalIntegrationProduct {
2120
+ ...AdditionalIntegrationProductFields
2121
+ }
2122
+ integration {
2123
+ id
2124
+ enabled
2125
+ externalIntegrationId
2126
+ type
2127
+ isCurrent
2128
+ }
2129
+ }
2130
+ modelUrl
2131
+ name
2132
+ description
2133
+ overlayImageUrl
2134
+ preloadImageUrl
2135
+ sku
2136
+ skuCode
2137
+ workflows {
2138
+ id
2139
+ index
2140
+ friendlyName
2141
+ isPresent
2142
+ workflowName
2143
+ imageUrl
2144
+ }
2145
+ productTags {
2146
+ id
2147
+ name
2148
+ }
2149
+ }
2150
+ `,AA=M.gql`
2151
+ ${Wn}
2152
+ fragment ProductCollectionProductFields on ProductCollectionProduct {
2153
+ id
2154
+ productId
2155
+ workflowId
2156
+ product {
2157
+ ...ProductFields
2158
+ }
2159
+ }
2160
+ `,nA=c=>M.gql`
2161
+ ${c?AA:""}
2162
+ fragment ProductCollectionFields on ProductCollection {
2163
+ id
2164
+ name
2165
+ globalPropertyConfiguration {
2166
+ id
2167
+ aspects {
2168
+ name
2169
+ type
2170
+ title
2171
+ description
2172
+ entityId
2173
+ conditions {
2174
+ targetAspectName
2175
+ action
2176
+ requiredVariantSelections
2177
+ }
2178
+ }
2179
+ }
2180
+ ${c?"productCollectionProducts { ...ProductCollectionProductFields }":""}
2181
+ transformCollection {
2182
+ id
2183
+ name
2184
+ transforms {
2185
+ id
2186
+ name
2187
+ position {
2188
+ x
2189
+ y
2190
+ z
2191
+ }
2192
+ rotation {
2193
+ x
2194
+ y
2195
+ z
2196
+ }
2197
+ scale {
2198
+ x
2199
+ y
2200
+ z
2201
+ }
2202
+ }
2203
+ }
2204
+ }
2205
+ `,Xn=c=>M.gql`
2206
+ ${nA(c)}
2207
+ query GetBundle($id: String!) {
2208
+ bundles(ids: [$id]) {
2209
+ id
2210
+ bundleStateData
2211
+ metadata {
2212
+ key
2213
+ value
2214
+ }
2215
+ name
2216
+ partner {
2217
+ id
2218
+ }
2219
+ productCollection {
2220
+ ...ProductCollectionFields
2221
+ }
2222
+ transactions {
2223
+ id
2224
+ }
2225
+ }
2226
+ }
2227
+ `,qn=M.gql`
2228
+ query GetBundleStakeholders($id: String!) {
2229
+ bundles(ids: [$id]) {
2230
+ id
2231
+ bundleStakeholders {
2232
+ id
2233
+ customer {
2234
+ id
2235
+ emailAddress
2236
+ firstName
2237
+ lastName
2238
+ phoneNumber
2239
+ partner {
2240
+ id
2241
+ }
2242
+ }
2243
+ type
2244
+ }
2245
+ }
2246
+ }
2247
+ `,Zn=M.gql`
2248
+ query GetBundlesForCustomer($id: String!) {
2249
+ customers(ids: [$id]) {
2250
+ bundleStakeholders {
2251
+ id
2252
+ type
2253
+ bundle {
2254
+ id
2255
+ name
2256
+ createdAt
2257
+ metadata {
2258
+ key
2259
+ value
2260
+ }
2261
+ partner {
2262
+ id
2263
+ }
2264
+ }
2265
+ }
2266
+ }
2267
+ }
2268
+ `,$n=M.gql`
2269
+ ${AA}
2270
+ query GetProductCollectionProducts($id: String!) {
2271
+ productCollections(ids: [$id]) {
2272
+ id
2273
+ productCollectionProducts {
2274
+ ...ProductCollectionProductFields
2275
+ }
2276
+ }
2277
+ }
2278
+ `,_n=c=>M.gql`
2279
+ ${nA(c)}
2280
+ mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
2281
+ bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
2282
+ id
2283
+ bundleOwnerId
2284
+ metadata {
2285
+ key
2286
+ value
2287
+ }
2288
+ name
2289
+ partner {
2290
+ id
2291
+ }
2292
+ productCollection {
2293
+ ...ProductCollectionFields
2294
+ }
2295
+ }
2296
+ }
2297
+ `,ea=M.gql`
2298
+ mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
2299
+ bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
2300
+ id
2301
+ }
2302
+ }
2303
+ `,ta=M.gql`
2304
+ mutation BundleAddTransaction($id: String!, $transactionId: String!) {
2305
+ bundleAddTransaction(id: $id, transactionId: $transactionId) {
2306
+ id
2307
+ }
2308
+ }
2309
+ `,Aa=M.gql`
2310
+ mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
2311
+ bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
2312
+ id
2313
+ }
2314
+ }
2315
+ `,na=M.gql`
2316
+ mutation BundleRemoveTransaction(
2317
+ $id: String!
2318
+ $transactionId: String!
2319
+ $name: String
2320
+ $metadata: [MetadataInput!]
2321
+ $bundleStateData: String
2322
+ ) {
2323
+ bundleRemoveTransaction(id: $id, transactionId: $transactionId) {
2324
+ id
2325
+ }
2326
+ bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
2327
+ id
2328
+ }
2329
+ }
2330
+ `,aa=M.gql`
2331
+ mutation BundleRemoveTransactions(
2332
+ $id: String!
2333
+ $transactionIds: [String!]!
2334
+ $name: String
2335
+ $metadata: [MetadataInput!]
2336
+ $bundleStateData: String
2337
+ ) {
2338
+ bundleRemoveTransactions(id: $id, transactionIds: $transactionIds) {
2339
+ id
2340
+ }
2341
+ bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
2342
+ id
2343
+ }
2344
+ }
2345
+ `,ia=M.gql`
2346
+ mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
2347
+ bundleAddStakeholder(id: $id, details: $details, type: $type) {
2348
+ id
2349
+ bundleStakeholders {
2350
+ id
2351
+ customer {
2352
+ id
2353
+ emailAddress
2354
+ firstName
2355
+ lastName
2356
+ phoneNumber
2357
+ partner {
2358
+ id
2359
+ }
2360
+ }
2361
+ type
2362
+ }
2363
+ }
2364
+ }
2365
+ `,oa=M.gql`
2366
+ mutation BundleAddStakeholder($id: String!, $emailAddress: String!) {
2367
+ bundleRemoveStakeholder(id: $id, emailAddress: $emailAddress) {
2368
+ id
2369
+ }
2370
+ }
2371
+ `,sa=M.gql`
2372
+ mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
2373
+ bundleUpdateStakeholders(id: $id, input: $input) {
2374
+ id
2375
+ bundleStakeholders {
2376
+ id
2377
+ customer {
2378
+ id
2379
+ emailAddress
2380
+ firstName
2381
+ lastName
2382
+ phoneNumber
2383
+ partner {
2384
+ id
2385
+ }
2386
+ }
2387
+ type
2388
+ }
2389
+ }
2390
+ }
2391
+ `,ra=M.gql`
2392
+ mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
2393
+ bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
2394
+ id
2395
+ }
2396
+ }
2397
+ `;class ca{constructor(e){this.handleCache={},this.bundle=e}async getHandle(e){if(this.handleCache[e.name])return this.handleCache[e.name];const t=await this.createHandle(e);return this.handleCache[e.name]=t,t}async getHandles(){var t;if(!((t=this.bundle.getProductCollection())!=null&&t.getResource().globalPropertyConfiguration))return[];const e=this.bundle.getProductCollection().getResource().globalPropertyConfiguration;return Promise.all(e.aspects.map(A=>this.getHandle(A)))}applyConditionsFromState(e,t){return t?e.filter(A=>this.aspectConditionsSatisfied(A.getRawProperty(),t)):e}aspectConditionsSatisfied(e,t){return!e.conditions||e.conditions.length===0?!0:e.conditions.some(A=>{const n=t.aspects.find(a=>a.name===A.targetAspectName);return n?A.requiredVariantSelections.some(a=>a===n.value):!1})}async createHandle(e){switch(e.type){case l.AspectType.FileUpload:return new aA(this.bundle,e);case l.AspectType.Option:{const t=e.entityId?await L.getOption(e.entityId):void 0;return(t==null?void 0:t.type)==="Color"?new oA(this.bundle,e,t):new Ze(this.bundle,e,t)}case l.AspectType.Text:return new iA(this.bundle,e)}}}class xe{constructor(e,t){this.bundle=e,this.property=t}getName(){return this.property.name}getTitle(){return this.property.title}getDescription(){return this.property.description}getType(){return this.property.type}getRawProperty(){return this.property}getSharedSteps(e){return(e??this.bundle.getWorkflowExperiences()).flatMap(n=>n.getSteps().filter(a=>{var i;return a.getOverrideGlobalPropertyConfiguration(this.property.type)?!1:(i=a.getRaw().globalPropertyAspectConfigurations)==null?void 0:i.some(o=>{var s,r;return o.globalPropertyConfigurationId===((r=(s=this.bundle.getProductCollection())==null?void 0:s.getResource().globalPropertyConfiguration)==null?void 0:r.id)&&o.aspectName===this.property.name})}))}getStateValue(){return this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name)}}class aA extends xe{constructor(e,t){super(e,t)}async selectImage(e){const t=this.bundle.getGlobalPropertyStateManager();await Promise.all([t.setAspect(this.property.name,e.key,{...t.getAspectStorage(this.property.name)||{},originalAssetKey:e.key,backgroundRemovedAssetKey:void 0,useOriginalAsset:void 0}),this.applyImageSelection(e)])}async canUseBackgroundRemover(){return this.bundle.getClient().canUseAddon(pe.BackgroundRemover)}async removeBackgroundFromImage(e=!0){if(!await this.canUseBackgroundRemover())throw new Error("The current Integration does not have access to the Background Remover. Please call canUseBackgroundRemover to ensure you disable this feature when appropriate.");const t=await this.getOriginalImage();if(!t)throw new Error("You must supply an image selection before attempting to remove the background.");const A=this.bundle.getGlobalPropertyStateManager(),n=await G.removeBackgroundFromAsset(t),i={...A.getAspectStorage(this.property.name),backgroundRemovedAssetKey:n.key,useOriginalAsset:!e},s=[e?A.setAspect(this.property.name,n.key,i):A.setAspectStorage(this.property.name,i)];return e&&s.push(this.applyImageSelection(n,void 0,!1,!1)),await Promise.all(s),this.updateSharedStepStorage(i),n}hasImage(){return!!this.getStateValue()}async getImage(){const e=this.getStateValue();if(e)return G.getLocalOrFromServer(e)}async getOriginalImage(){const e=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);if(e!=null&&e.originalAssetKey)return G.getLocalOrFromServer(e.originalAssetKey)}async getBackgroundRemovedImage(){const e=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);if(e!=null&&e.backgroundRemovedAssetKey)return G.getLocalOrFromServer(e.backgroundRemovedAssetKey)}getUseOriginalImage(){var e;return((e=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name))==null?void 0:e.useOriginalAsset)??!1}async setUseOriginalImage(e){const t=await this.getOriginalImage();if(!t)throw new Error("You must select an image before calling setUseOriginalImage");const A=this.bundle.getGlobalPropertyStateManager(),n=A.getAspectStorage(this.property.name);if((n==null?void 0:n.useOriginalAsset)===e)return;const a={...n,useOriginalAsset:e},i=e?n==null?void 0:n.originalAssetKey:n==null?void 0:n.backgroundRemovedAssetKey,o=[A.setAspect(this.property.name,i||"",a)];if(e)o.push(this.applyImageSelection(t,void 0,!1,!1));else{const s=async()=>{const r=await this.getBackgroundRemovedImage();if(!r)throw new Error("You must call removeBackgroundFromImage before attempting to use that version of the image.");this.applyImageSelection(r,void 0,!1,!1)};o.push(s())}this.updateSharedStepStorage(a)}async applyGlobalState(e){const t=this.getStateValue();if(!t)return;const A=await G.getLocalOrFromServer(t);if(!A)return;const n=this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);await this.applyImageSelection(A,e,!1,!0),n?this.updateSharedStepStorage({...n}):(this.updateSharedStepStorage({originalAssetKey:t}),await this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name,{originalAssetKey:t}))}async applyImageSelection(e,t,A=!0,n=!0){const i=this.getSharedSteps(t).map(o=>o.selectImage(e,A,n));await Promise.all(i)}updateSharedStepStorage(e){this.bundle.getWorkflowExperiences().forEach(A=>A.getSteps().forEach(n=>{var i;if(n.getOverrideGlobalPropertyConfiguration(this.property.type))return;((i=n.getRaw().globalPropertyAspectConfigurations)==null?void 0:i.some(o=>{var s,r;return o.globalPropertyConfigurationId===((r=(s=this.bundle.getProductCollection())==null?void 0:s.getResource().globalPropertyConfiguration)==null?void 0:r.id)&&o.aspectName===this.property.name}))&&A.getWorkflowManager().updateStorage(n.getId(),{framePatternData:e})}))}}class iA extends xe{constructor(e,t){super(e,t)}getText(){const e=this.getStateValue();return e||""}async setText(e){await Promise.all([this.bundle.getGlobalPropertyStateManager().setAspect(this.property.name,e),this.applyTextSelection(e)])}async applyGlobalState(e){const t=this.getStateValue();if(!t)return Promise.resolve();await this.applyTextSelection(t,e)}async applyTextSelection(e,t){const n=this.getSharedSteps(t).map(a=>{a.setText(e)});await Promise.all(n)}}class Ze extends xe{constructor(e,t,A){super(e,t),this.optionResource=A}getCurrentVariant(){var t,A;if(!this.optionResource)return;const e=this.getStateValue();if(e){const n=(A=this.optionResource.variants)==null?void 0:A.find(a=>a.id===e);return n?new V(n):void 0}else{const n=(t=this.optionResource.variants)==null?void 0:t.find(a=>{var i,o;return a.id===((o=(i=this.optionResource)==null?void 0:i.defaultVariant)==null?void 0:o.id)});return n?new V(n):void 0}}getAvailableVariants(){var t,A;return(((A=(t=this.optionResource)==null?void 0:t.variants)==null?void 0:A.filter(n=>n.enabled))||[]).map(n=>new V(n))}getAllVariants(){var t;return(((t=this.optionResource)==null?void 0:t.variants)||[]).map(A=>new V(A))}async selectVariant(e){await Promise.all([this.bundle.getGlobalPropertyStateManager().setAspect(this.property.name,e.getId()),this.applyVariantSelection(e)])}async applyGlobalState(e){var n,a;const t=this.getStateValue();if(!t)return Promise.resolve();const A=(a=(n=this.optionResource)==null?void 0:n.variants)==null?void 0:a.find(i=>i.id===t);return A?this.applyVariantSelection(new V(A),e):Promise.resolve()}async applyVariantSelection(e,t){const n=this.getSharedSteps(t).map(a=>a.selectVariant(e));await Promise.all(n)}}class oA extends Ze{constructor(e,t,A){super(e,t,A)}setCustomColor(e){this.getSharedSteps().forEach(A=>A.setCustomColor(e))}getCustomColor(){return this.getSharedSteps()[0].getCustomColor()}}const $e=M.gql`
2398
+ fragment GlobalPropertyStateAspectFields on GlobalPropertyStateAspect {
2399
+ name
2400
+ value
2401
+ type
2402
+ storage {
2403
+ ... on GlobalPropertyStateFileUploadStorage {
2404
+ originalAssetKey
2405
+ backgroundRemovedAssetKey
2406
+ useOriginalAsset
2407
+ }
2408
+ }
2409
+ }
2410
+ `,ga=M.gql`
2411
+ ${$e}
2412
+ mutation CreateGlobalPropertyState($bundleId: String!) {
2413
+ globalPropertyStateCreate(bundleId: $bundleId) {
2414
+ id
2415
+ aspects {
2416
+ ...GlobalPropertyStateAspectFields
2417
+ }
2418
+ }
2419
+ }
2420
+ `,la=M.gql`
2421
+ ${$e}
2422
+ mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
2423
+ globalPropertyStateUpdate(id: $id, aspects: $aspects) {
2424
+ id
2425
+ aspects {
2426
+ ...GlobalPropertyStateAspectFields
2427
+ }
2428
+ }
2429
+ }
2430
+ `,da=M.gql`
2431
+ ${$e}
2432
+ query GetGlobalPropertyState($bundleId: String!) {
2433
+ globalPropertyState(bundleId: $bundleId) {
2434
+ id
2435
+ aspects {
2436
+ ...GlobalPropertyStateAspectFields
2437
+ }
2438
+ }
2439
+ }
2440
+ `;class Ba{constructor(e,t,A,n,a){this.bundleId=e,this.bundleOwnerId=t,this.configuration=A,this.bundleOptions=a,this.initPromise=this.getOrCreateGlobalPropertyState().then(i=>{this.globalPropertyState=i}),this.onGlobalPropertyStateChange=n}setBundleOptions(e){this.bundleOptions=e}getInitializationPromise(){return this.initPromise}getGlobalPropertyState(){return this.globalPropertyState}getAspect(e){if(!this.globalPropertyState)throw new Error("Global property state not initialized");const t=this.globalPropertyState.aspects.find(A=>A.name===e);if(t)return t.value}getAspectStorage(e){var t;if(!this.globalPropertyState)throw new Error("Global property state not initialized");return(t=this.globalPropertyState.aspects.find(A=>A.name===e))==null?void 0:t.storage}async setAspect(e,t,A){if(!this.globalPropertyState)throw new Error("Global property state not initialized");if(!this.configuration)throw new Error("Global property configuration not linked to the state manager.");const n=this.configuration.aspects.find(o=>o.name===e);if(!n)throw new Error(`Failed to find configuration aspect with name: ${e}`);const a=se(this.globalPropertyState),i=this.globalPropertyState.aspects.find(o=>o.name===e);i?(i.value=t,A!==void 0&&(i.type=n.type,i.storage=A!==null?A:void 0)):this.globalPropertyState.aspects.push({name:e,value:t,...A===void 0?{}:{storage:A!==null?A:void 0,type:n.type}}),await this.updateGlobalPropertyState(),await this.onGlobalPropertyStateChange(a,this.globalPropertyState)}async setAspectStorage(e,t){if(!this.globalPropertyState)throw new Error("Global property state not initialized");if(!this.configuration)throw new Error("Global property configuration not linked to the state manager.");const A=this.configuration.aspects.find(i=>i.name===e);if(!A)throw new Error(`Failed to find configuration aspect with name: ${e}`);const n=se(this.globalPropertyState),a=this.globalPropertyState.aspects.find(i=>i.name===e);a?(a.storage=t!==null?t:void 0,a.type=A.type):this.globalPropertyState.aspects.push({name:e,value:"",type:A.type,storage:t!==null?t:void 0}),await this.updateGlobalPropertyState(),await this.onGlobalPropertyStateChange(n,this.globalPropertyState)}async updateGlobalPropertyState(){var t,A;if(!this.globalPropertyState)throw new Error("Global property state not initialized");const e=await N.getShadowGraphqlClient().mutate({mutation:la,variables:{id:this.globalPropertyState.id,aspects:this.globalPropertyState.aspects.map(n=>{const a=n.type&&n.storage?{}:void 0;if(a)switch(n.type){case l.AspectType.FileUpload:{a.fileUpload=n.storage;break}}return{name:n.name,value:n.value,type:n.type,storage:a}})},context:{headers:{bundleOwnerId:this.bundleOwnerId,...(t=this.bundleOptions)==null?void 0:t.additionalHeaders}}});if((A=e.data)!=null&&A.globalPropertyStateUpdate)this.globalPropertyState=e.data.globalPropertyStateUpdate;else throw new Error("Unable to update global property state")}async getOrCreateGlobalPropertyState(){var A,n,a;const e=await N.getShadowGraphqlClient().query({query:da,errorPolicy:"all",fetchPolicy:"no-cache",variables:{bundleId:this.bundleId},context:{headers:{bundleOwnerId:this.bundleOwnerId,...(A=this.bundleOptions)==null?void 0:A.additionalHeaders}}});if(e.data.globalPropertyState&&e.data.globalPropertyState.id)return e.data.globalPropertyState;const t=await N.getShadowGraphqlClient().mutate({mutation:ga,variables:{bundleId:this.bundleId},context:{headers:{bundleOwnerId:this.bundleOwnerId,...(n=this.bundleOptions)==null?void 0:n.additionalHeaders}}});if((a=t.data)!=null&&a.globalPropertyStateCreate&&t.data.globalPropertyStateCreate.id)return t.data.globalPropertyStateCreate;throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`)}}class wa{constructor(e){this.setState(e)}setState(e){e&&(this.state=JSON.parse(e))}applyStateToWorkflowExperience(e){var i;if(!this.state||!((i=e==null?void 0:e.getWorkflowManager())!=null&&i.getModelContainer()))return;const t=this.state.transactions.find(o=>o.transactionId===e.getWorkflowManager().getTransaction().id);if(!t)return;const A=this.getTransformToApply(t);if(!A)return;const n=this.flipTransform(A,e.getWorkflowManager().getPreviewService()),a=e.getWorkflowManager().getModelContainer();a.position=n.position,a.rotation=n.rotation,a.scale=n.scale}getTransformToApply(e){return e.activeTransform&&e.transforms?e.transforms[e.activeTransform]:e.transform}updateWorkflowExperienceTransform(e,t,A){const n=e.getWorkflowManager().getTransaction().id;this.state?this.state.transactions||(this.state.transactions=[]):this.state={transactions:[]};const a=this.state.transactions.find(i=>i.transactionId===n);a?(a.transforms||(a.transforms={}),a.transforms[t]=A):this.state.transactions.push({transactionId:n,activeTransform:t,transforms:{[t]:A}})}activateWorkflowExperienceTransform(e,t){var s,r;if(!((s=e==null?void 0:e.getWorkflowManager())!=null&&s.getModelContainer())||!this.state)return;const A=e.getWorkflowManager().getTransaction().id,n=this.state.transactions.find(g=>g.transactionId===A),a=(r=n==null?void 0:n.transforms)==null?void 0:r[t];if(!a)return;const i=this.flipTransform(a,e.getWorkflowManager().getPreviewService()),o=e.getWorkflowManager().getModelContainer();o.position=i.position,o.rotation=i.rotation,o.scale=i.scale,n.activeTransform=t}removeStateForTransaction(e){if(!this.state||!this.state.transactions)return;const t=this.state.transactions.findIndex(A=>A.transactionId===e);t!==-1&&this.state.transactions.splice(t,1)}getSerializedState(){if(this.state)return JSON.stringify(this.state)}flipTransform(e,t){return t&&t.flipTransform?t.flipTransform(e.position,{x:e.rotation.x*Math.PI/180,y:e.rotation.y*Math.PI/180,z:e.rotation.z*Math.PI/180},e.scale):{position:e.position,rotation:{x:e.rotation.x*Math.PI/180,y:e.rotation.y*Math.PI/180,z:e.rotation.z*Math.PI/180},scale:e.scale}}}class sA{constructor(e){this.collection=e}getId(){return this.collection.id}getName(){return this.collection.name}getProducts(){if(!this.collection.productCollectionProducts)throw new Error("Failed to find products on collection. Ensure you fetch them first!");return this.collection.productCollectionProducts.map(e=>new Ne(e))}async fetchProducts(){if(this.collection.productCollectionProducts)return this.collection.productCollectionProducts.map(t=>new Ne(t));const e=await N.getShadowGraphqlClient().query({query:$n,variables:{id:this.getId()},errorPolicy:"all",fetchPolicy:"no-cache"});return this.collection.productCollectionProducts=e.data.productCollections[0].productCollectionProducts||[],this.collection.productCollectionProducts.map(t=>new Ne(t))}getTransformCollection(){if(this.collection.transformCollection)return new rA(this.collection.transformCollection)}getResource(){return this.collection}}class Ne{constructor(e){this.product=e.product,this.productResource=e}getId(){return this.product.id}getName(){return this.product.name}getIntegrationByType(e,t){const n=(this.product.integrationProducts||[]).find(a=>{var r,g,B;const i=(r=a.integration)==null?void 0:r.type,o=((g=a.integration)==null?void 0:g.type)===e,s=t?((B=a.integration)==null?void 0:B.externalIntegrationId)===t:!0;return i&&o&&s});if(!n)throw new Error("Failed to find requested integration type on product. This is generally due to a configuration error");return n}getCurrentIntegration(){const t=(this.product.integrationProducts||[]).find(A=>{var n;return(n=A.integration)==null?void 0:n.isCurrent});if(!t)throw new Error(`Product: ${this.productResource.id} is not linked to this current integration. This is generally due to a configuration error.`);return t}getDefaultWorkflow(){const e=this.product.workflows||[];if(e.length===0)throw new U("No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product.");const t=this.productResource.workflowId;if(t){const n=e.find(a=>a.workflowName===t);if(n)return new ie(n)}const A=e[0];return new ie(A)}getAllWorkflows(){if((this.product.workflows||[]).length===0)throw new U("No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product.");return this.product.workflows.sort((t,A)=>(t.index??0)-(A.index??0)).map(t=>new ie(t))}getIntegrations(){return this.product.integrationProducts||[]}getResource(){return this.product}getBasePrice(e){var n,a,i,o;const t=this.product.basePrice||0;if(!e)return t;if(!e.integrationType&&!e.externalId&&!e.integrationId)throw new Error("You must provide at least one of the following fields on the includeAdditionalProduct object: integrationType, externalId, integrationId");let A;return e.integrationId?A=(n=this.product.integrationProducts)==null?void 0:n.find(s=>{var r;return((r=s.integration)==null?void 0:r.id)===e.integrationId}):e.externalId?A=(a=this.product.integrationProducts)==null?void 0:a.find(s=>{var r;return((r=s.integration)==null?void 0:r.externalIntegrationId)===e.externalId}):A=(i=this.product.integrationProducts)==null?void 0:i.find(s=>{var r;return((r=s.integration)==null?void 0:r.type)===e.integrationType}),(o=A==null?void 0:A.additionalIntegrationProduct)!=null&&o.product?t+(A.additionalIntegrationProduct.product.basePrice||0):t}}class ie{constructor(e){this.workflow=e}getId(){return this.workflow.workflowName}getName(){return this.workflow.friendlyName}getThumbnail(){return this.workflow.imageUrl}}class rA{constructor(e){this.collection=e}getId(){return this.collection.id}getName(){return this.collection.name}getTransforms(){return this.collection.transforms.map(e=>new cA(e))}}class cA{constructor(e){this.transform=e}getId(){return this.transform.id}getName(){return this.transform.name}get(){return{position:this.transform.position,rotation:this.transform.rotation,scale:this.transform.scale}}}class gA{constructor(e,t,A,n,a,i){var o,s,r;this.eventListeners=new Map,this.workflowExperiences=[],this.client=e,this.id=t.id,this.name=t.name||"",this.ownerId=a,this.metadata=new Map(((o=t.metadata)==null?void 0:o.map(g=>[g.key,g.value]))||[]),this.productCollection=t.productCollection,this.bundleStateManager=new wa(t.bundleStateData),this.globalPropertyStateManager=new Ba(this.id,this.ownerId,(s=this.productCollection)==null?void 0:s.globalPropertyConfiguration,this.checkConditionalHandlesChanged.bind(this),i),this.globalPropertyHandleService=new ca(this),this.setPreviewService(A),this.initializationPromise=this.loadExistingWorkflowExperiences(((r=t.transactions)==null?void 0:r.map(g=>g.id))||[],n)}setBundleOptions(e){this.globalPropertyStateManager.setBundleOptions(e)}getInitializationPromise(){return this.initializationPromise}addEventListener(e,t){this.eventListeners.set(e,[...this.eventListeners.get(e)||[],t])}removeEventListener(e,t){const A=this.eventListeners.get(e)||[],n=A.indexOf(t);n>-1&&A.splice(n,1)}getClient(){return this.client}getId(){return this.id}getName(){return this.name}setName(e){return this.name=e,this.updateBundle()}getMetadata(){return new Map(this.metadata)}setMetadata(e){return this.metadata=new Map(e),this.updateBundle()}setNameAndMetadata(e,t){return this.name=e,this.metadata=new Map(t),this.updateBundle()}hasGlobalProperties(){var e;return!!((e=this.productCollection)!=null&&e.globalPropertyConfiguration)}getGlobalPropertyConfiguration(){var e;return(e=this.productCollection)==null?void 0:e.globalPropertyConfiguration}async getGlobalProperties(){return this.globalPropertyHandleService.applyConditionsFromState(await this.globalPropertyHandleService.getHandles(),this.getGlobalPropertyStateManager().getGlobalPropertyState())}getGlobalPropertyStateManager(){return this.globalPropertyStateManager}async getGlobalPropertyTotalSubunits(){return(await this.globalPropertyHandleService.getHandles()).filter(A=>A.getType()===l.AspectType.Option).map(A=>{var n;return((n=A.getCurrentVariant())==null?void 0:n.getPrice())||0}).reduce((A,n)=>A+n,0)}getTotalSubunits(){return this.workflowExperiences.map(e=>e.getTotalPriceSubunits()).reduce((e,t)=>e+t,0)}getProductCollection(){return this.productCollection?new sA(this.productCollection):void 0}async addWorkflowExperience(e){e.setBundle(this),await this.appendWorkflowExperience(e),await this.injectExperienceIntoPreviewService(e);const t=await this.getGlobalProperties();await Promise.all(t.map(A=>A.applyGlobalState([e])))}async addWorkflowExperiences(e){const t=e.map(i=>i.getWorkflowManager().getTransaction().id),A=t.map(i=>this.workflowExperiences.find(o=>o.getWorkflowManager().getTransaction().id===i));if(A.some(i=>!!i))throw new Error("Unable to add transaction to bundle - Already Exists: "+A.filter(i=>!!i).map(i=>i==null?void 0:i.getWorkflowManager().getTransaction().id).join(", "));const n=Y.getMap("transactionOwnerIds")||new Map,a=t.map(i=>n.get(i));await N.getShadowGraphqlClient().mutate({mutation:Aa,variables:{id:this.id,transactionIds:t,transactionOwnerIds:a},context:{bundleOwnerId:this.ownerId}}).catch(i=>{console.error(i)}),this.workflowExperiences.push(...e),await Promise.all([this.updateTransactionOrder(),(async()=>{for(const o of e)await this.injectExperienceIntoPreviewService(o);const i=await this.getGlobalProperties();await Promise.all(i.map(o=>o.applyGlobalState(e)))})()]),this.workflowExperiences.forEach(i=>i.setBundle(this)),this.workflowExperiences.forEach(i=>i.checkForPriceBreakChanges())}async appendWorkflowExperience(e,t=!0){const A=e.getWorkflowManager().getTransaction().id;if(this.workflowExperiences.find(o=>o.getWorkflowManager().getTransaction().id===A))throw new Error("Unable to add transaction to bundle - Already Exists!");const i=(Y.getMap("transactionOwnerIds")||new Map).get(A);await N.getShadowGraphqlClient().mutate({mutation:ta,variables:{id:this.id,transactionId:A},context:{bundleOwnerId:this.ownerId,transactionOwnerId:i}}),t&&(this.workflowExperiences.push(e),this.workflowExperiences.forEach(o=>o.checkForPriceBreakChanges()))}async removeWorkflowExperience(e){const t=this.workflowExperiences.indexOf(e);await this.removeTransaction(t,this.workflowExperiences[t].getWorkflowManager().getTransaction())}async removeWorkflowExperiences(e){await this.removeTransactions(e.map(t=>t.getWorkflowManager().getTransaction()))}async removeWorkflowExperienceByTransaction(e){const t=this.workflowExperiences.findIndex(A=>A.getWorkflowManager().getTransaction().id===e.id);await this.removeTransaction(t,e)}async removeWorkflowExperiencesByTransactions(e){await this.removeTransactions(e)}async removeTransaction(e,t,A=!0){if(e>-1){const n=this.workflowExperiences.find(a=>a.getWorkflowManager().getTransaction().id===t.id);n.setBundle(void 0),this.previewService&&n.getWorkflowManager().ejectFromPreviewService(),this.bundleStateManager.removeStateForTransaction(t.id),await N.getShadowGraphqlClient().mutate({mutation:na,variables:{id:this.id,transactionId:t.id,name:this.name,metadata:Array.from(this.metadata.entries()).map(([a,i])=>({key:a,value:i})),bundleStateData:this.bundleStateManager.getSerializedState()},context:{bundleOwnerId:this.ownerId}}),A&&(this.workflowExperiences.splice(e,1),this.workflowExperiences.forEach(a=>a.checkForPriceBreakChanges()),n.checkForPriceBreakChanges(),await this.updateTransactionOrder())}else throw new Error("Unable to remove workflow experience from bundle - Not Found! - "+t.id)}async removeTransactions(e){const t=e.map(n=>this.workflowExperiences.findIndex(a=>a.getWorkflowManager().getTransaction().id===n.id));if(t.some(n=>n===-1))throw new Error("Unable to remove workflow experience from bundle - The following aren't included in the bundle: "+e.filter((n,a)=>t[a]===-1).map(n=>n.id).join(", "));const A=e.map(n=>this.workflowExperiences.splice(this.workflowExperiences.findIndex(a=>a.getWorkflowManager().getTransaction().id===n.id),1)[0]);A.forEach(n=>n.setBundle(void 0)),[...this.workflowExperiences,...A].forEach(n=>n.checkForPriceBreakChanges()),this.previewService&&A.forEach(n=>n.getWorkflowManager().ejectFromPreviewService()),e.forEach(n=>this.bundleStateManager.removeStateForTransaction(n.id)),await N.getShadowGraphqlClient().mutate({mutation:aa,variables:{id:this.id,transactionIds:e.map(n=>n.id),name:this.name,metadata:Array.from(this.metadata.entries()).map(([n,a])=>({key:n,value:a})),bundleStateData:this.bundleStateManager.getSerializedState()},context:{bundleOwnerId:this.ownerId}}),await this.updateTransactionOrder()}async insertWorkflowExperience(e,t){await this.appendWorkflowExperience(e,!1),this.workflowExperiences.splice(t,0,e),await Promise.all([this.updateTransactionOrder(),(async()=>{await this.injectExperienceIntoPreviewService(e);const A=await this.getGlobalProperties();await Promise.all(A.map(n=>n.applyGlobalState([e])))})()])}async replaceWorkflowExperience(e,t){if(e<0||e>=this.workflowExperiences.length)throw new Error("Unable to replace workflow experience in bundle - Index out of range!");const A=this.workflowExperiences[e];if(A.getWorkflowManager().getTransaction().id===t.getWorkflowManager().getTransaction().id)throw new Error("Unable to replace workflow experience in bundle - Same transaction!");await Promise.all([this.removeTransaction(e,A.getWorkflowManager().getTransaction(),!1),this.appendWorkflowExperience(t,!1)]),this.workflowExperiences[e]=t,await Promise.all([this.updateTransactionOrder(),(async()=>{await this.injectExperienceIntoPreviewService(t);const n=await this.getGlobalProperties();await Promise.all(n.map(a=>a.applyGlobalState([t])))})()])}async swapWorkflowExperiences(e,t){if(e<0||e>=this.workflowExperiences.length||t<0||t>=this.workflowExperiences.length)throw new Error("Unable to swap workflow experiences in bundle - Index out of range!");if(e===t)return;const A=this.workflowExperiences[e];this.workflowExperiences[e]=this.workflowExperiences[t],this.workflowExperiences[t]=A,await this.updateTransactionOrder()}getWorkflowExperiences(){return[...this.workflowExperiences]}async sortWorkflowExperiences(e){this.workflowExperiences=this.workflowExperiences.sort(e),await this.updateTransactionOrder()}getWorkflowExperienceCount(){return this.workflowExperiences.length}async addStakeholder(e,t){var a;const A=await N.getShadowGraphqlClient().mutate({mutation:ia,variables:{id:this.id,details:e,type:t||Be.Owner},context:{bundleOwnerId:this.ownerId}});if(!((a=A.data)!=null&&a.bundleAddStakeholder))throw new Error("Bundle not found!");const n=A.data.bundleAddStakeholder.bundleStakeholders||[];this.storeStakeholderCustomers(n)}async removeStakeholder(e){var A;if(!((A=(await N.getShadowGraphqlClient().mutate({mutation:oa,variables:{id:this.id,emailAddress:e},context:{bundleOwnerId:this.ownerId}})).data)!=null&&A.bundleRemoveStakeholder))throw new Error("Bundle not found!")}async updateStakeholders(e){var n;const t=await N.getShadowGraphqlClient().mutate({mutation:sa,variables:{id:this.id,input:e},context:{bundleOwnerId:this.ownerId}});if(!((n=t.data)!=null&&n.bundleUpdateStakeholders))throw new Error("Bundle not found!");const A=t.data.bundleUpdateStakeholders.bundleStakeholders||[];this.storeStakeholderCustomers(A)}async getAllStakeholders(){const e=await N.getShadowGraphqlClient().query({query:qn,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:this.id},context:{bundleOwnerId:this.ownerId}});if(!e.data.bundles||e.data.bundles.length===0)throw new Error("Bundle not found!");const t=e.data.bundles[0].bundleStakeholders||[];return this.storeStakeholderCustomers(t),t}storeStakeholderCustomers(e){e.forEach(t=>{t.customer&&this.client.storeCustomer(t.customer)})}async finish(e,t){const A=await Pn(this.workflowExperiences.map(n=>({workflowManager:n.getWorkflowManager(),workflow:n.getWorkflowManager().getWorkflow(),layouts:n.getWorkflowManager().getLayouts(),getReducerState:()=>n.getCommandContext().getState(),product:n.getWorkflowManager().getProduct(),transaction:n.getWorkflowManager().getTransaction(),workflowSelections:n.getWorkflowManager().getWorkflowSelections(),designName:n.getWorkflowManager().getWorkflow().name,workflowMetadata:n.getWorkflowManager().getWorkflowMetadata()})),e??(()=>{}),t?(n,a)=>{const i=this.workflowExperiences.find(o=>o.getWorkflowManager().getTransaction().id===a);return i?t(i):(console.warn("SpiffCommerce - Bundle create design - Unable to find experience for transaction: "+a),Promise.resolve(void 0))}:void 0);return{bundleId:this.id,items:A}}getPreviewService(){return this.previewService}async setPreviewService(e){if(this.workflowExperiences&&this.workflowExperiences.length>0&&(this.workflowExperiences.forEach(t=>t.getWorkflowManager().ejectFromPreviewService()),e))for(const t of this.workflowExperiences)await this.injectExperienceIntoPreviewService(t);e&&e.registerModelLoadEventListener&&e.registerModelLoadEventListener(this.onModelLoadEvent.bind(this)),this.previewService&&this.previewService!==e&&this.previewService.unregisterModelLoadEventListener&&this.previewService.unregisterModelLoadEventListener(this.onModelLoadEvent.bind(this)),this.previewService=e}updateWorkflowExperienceTransform(e,t,A){return this.bundleStateManager.updateWorkflowExperienceTransform(e,t,A),this.updateBundle()}activateWorkflowExperienceTransform(e,t){return this.bundleStateManager.activateWorkflowExperienceTransform(e,t),this.updateBundle()}onModelLoadEvent(e){e.eventType==="unload"||!e.modelContainer||(e.modelContainer.registerMaterialSelectedCallback(()=>this.onModelSelectedEvent(e.modelContainer,!0)),e.modelContainer.registerMaterialDeselectedCallback(()=>this.onModelSelectedEvent(e.modelContainer,!1)))}onModelSelectedEvent(e,t){if(e&&e.metadata&&e.metadata instanceof Map&&e.metadata.has("workflowManager")){const n=e.metadata.get("workflowManager").getTransaction(),a=this.workflowExperiences.find(i=>i.getWorkflowManager().getTransaction().id===n.id);a&&this.fireEvent(t?"workflow-experience-hover-enter":"workflow-experience-hover-exit",{workflowExperience:a})}}async injectExperienceIntoPreviewService(e){if(this.previewService){const t=e.getWorkflowManager().injectIntoPreviewService(this.previewService);try{this.bundleStateManager.applyStateToWorkflowExperience(e)}catch(A){console.error(`Unable to apply state to workflow experience: ${A}`)}await t}}async loadExistingWorkflowExperiences(e,t){if(e.length===0)return;const A=await this.client.getWorkflowExperiences(e.map(n=>({type:"transaction",transactionId:n})),t);if(A.forEach(n=>n.setBundle(this)),A.forEach(n=>n.checkForPriceBreakChanges()),this.workflowExperiences=A,this.previewService)for(const n of A)await this.injectExperienceIntoPreviewService(n)}async updateBundle(){var t;if(!((t=(await N.getShadowGraphqlClient().mutate({mutation:ea,variables:{id:this.id,name:this.name,metadata:Array.from(this.metadata.entries()).map(([A,n])=>({key:A,value:n})),bundleStateData:this.bundleStateManager.getSerializedState()},context:{bundleOwnerId:this.ownerId}})).data)!=null&&t.bundleUpdate))throw new Error("Bundle not found!")}async updateTransactionOrder(){await N.getShadowGraphqlClient().mutate({mutation:ra,variables:{id:this.id,transactionIds:this.workflowExperiences.map(e=>e.getWorkflowManager().getTransaction().id)},context:{bundleOwnerId:this.ownerId}})}async checkConditionalHandlesChanged(e,t){const A=await this.globalPropertyHandleService.getHandles(),n=this.globalPropertyHandleService.applyConditionsFromState(A,e),a=this.globalPropertyHandleService.applyConditionsFromState(A,t);(()=>{if(n.length!==a.length)return!0;for(let o=0;o<n.length;o++)if(n[o].getName()!==a[o].getName())return!0;return!1})()&&this.fireEvent("conditional-global-properties-changed",{globalProperties:a})}fireEvent(e,t){(this.eventListeners.get(e)||[]).forEach(n=>n({bundle:this,event:e,data:t}))}}const ha=M.gql`
2441
+ mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
2442
+ processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
2443
+ id
2444
+ }
2445
+ }
2446
+ `;class lA{async execute(e,t,A){var B,d,w;const a=(d=(B=(await N.getShadowGraphqlClient().mutate({mutation:ha,variables:{processFlowId:e,inputs:[...t.map(h=>h.getValueForTransmission())]}})).data)==null?void 0:B.processExecutionCreate)==null?void 0:d.id;if(!a)throw new Error("Failed to create process execution.");function i(h){return new Promise(C=>{setTimeout(C,h)})}let o=!1,s=0,r,g;for(;!o;){r=await N.getShadowGraphqlClient().query({query:M.gql`
2447
+ query getProcessFlowExecution($ids: [String]!) {
2448
+ processExecutions(ids: $ids) {
2449
+ id
2450
+ completedAt
2451
+ failedAt
2452
+ nodes {
2453
+ id
2454
+ type
2455
+ artifacts
2456
+ }
2457
+ }
2458
+ }
2459
+ `,variables:{ids:[a]}});const h=(w=r.data)==null?void 0:w.processExecutions[0];if(!r||!h)throw new Error("Failed to retrieve server response for execution.");if(h.failedAt)throw new Error("Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub.");if(h.completedAt){o=!0,g=new dA(h);break}s+=1;const C=A!=null&&A.repeats?A==null?void 0:A.repeats:5;if(s>=C)throw new Error("Maximum wait time exceeded for execution result.");await i(A!=null&&A.sleepTime?Math.max(A.sleepTime,500):2e3)}if(!g)throw new Error("Failed to retrieve server response for execution.");return Promise.resolve(g)}}class dA{constructor(e){this.execution=e}getRaw(){return this.execution}getNodes(){return this.execution.nodes.map(e=>new Qe(e))}getNodesByType(e){return this.execution.nodes.filter(t=>t.type===e).map(t=>new Qe(t))}getInputs(){return this.execution.nodes.filter(e=>e.type==="StartTerminal").map(e=>new Qe(e))}getOutputs(){return this.execution.nodes.filter(e=>e.type==="EndTerminal").map(e=>new Qe(e))}getCompletedAt(){if(this.execution.completedAt)return new Date(this.execution.completedAt)}getFailedAt(){if(this.execution.failedAt)return new Date(this.execution.failedAt)}}class Qe{constructor(e){this.node=e}getId(){return this.node.id}getType(){return this.node.type}getArtifacts(){return new Map(Object.entries(JSON.parse(this.node.artifacts).value))}getArtifactByName(e){return this.getArtifacts().get(e)}}class _e{constructor(e){this.value=e}getRaw(){return this.value}getValueForTransmission(){const e=this.value;return e.startsWith("[")?JSON.stringify(JSON.parse(e)):e}}var BA=(c=>(c.Transaction="Transaction",c.Bundle="Bundle",c.Product="Product",c.Variant="Variant",c.Option="Option",c.LineItem="LineItem",c.Asset="Asset",c))(BA||{});class Ea extends _e{constructor(e){super(`"${e}"`)}}class et extends _e{constructor(e,t){if(t!=="Asset"&&!et.validUUID(e))throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`)}static validUUID(e){return e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)}}class Ca extends _e{constructor(e){super(`[${e.map(t=>t.getRaw()).join(",")}]`)}}class tt{constructor(e){this.integrationProduct=e}getId(){return this.integrationProduct.id}getResource(){return this.integrationProduct}getBasePrice(){var A;if(!this.integrationProduct.product)throw new Error("IntegrationProductResource does not have a product");const e=this.integrationProduct.product.basePrice||0,t=(A=this.integrationProduct)==null?void 0:A.additionalIntegrationProduct;if(!t)return e;if(t&&!t.product)throw new Error("An additional integration product was found, but it does not have a product");return e+(t.product.basePrice||0)}getDefaultWorkflow(){if(!this.integrationProduct.product)throw new Error("IntegrationProductResource does not have a product");const e=this.integrationProduct.product.workflows||[];if(e.length===0)throw new Error("No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product.");return new ie(e[0])}getAllWorkflows(){if(!this.integrationProduct.product)throw new Error("IntegrationProductResource does not have a product");const e=this.integrationProduct.product.workflows||[];if(e.length===0)throw new Error("No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product.");return e.sort((t,A)=>(t.index??0)-(A.index??0)).map(t=>new ie(t))}}const ua=M.gql`
2460
+ fragment RegionFields on Region {
2461
+ width
2462
+ top
2463
+ left
2464
+ height
2465
+ layer
2466
+ layerIndex
2467
+ rotation
2468
+ panelId
2469
+ immutable
2470
+ adjustmentBoundary {
2471
+ width
2472
+ x
2473
+ y
2474
+ height
2475
+ }
2476
+ }
2477
+ `,Qa=M.gql`
2478
+ fragment LookAtAnimationFields on LookAtAnimation {
2479
+ latDeg
2480
+ lonDeg
2481
+ radius
2482
+ target {
2483
+ x
2484
+ y
2485
+ z
2486
+ }
2487
+ }
2488
+ `,ma=M.gql`
2489
+ fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
2490
+ antiAliasing {
2491
+ samples
2492
+ fxaaEnabled
2493
+ }
2494
+ bloom {
2495
+ enabled
2496
+ kernel
2497
+ scale
2498
+ threshold
2499
+ weight
2500
+ }
2501
+ chromaticAberration {
2502
+ enabled
2503
+ aberrationAmount
2504
+ direction {
2505
+ x
2506
+ y
2507
+ }
2508
+ radialIntensity
2509
+ }
2510
+ colorCurves {
2511
+ enabled
2512
+ globalDensity
2513
+ globalExposure
2514
+ globalHue
2515
+ globalSaturation
2516
+ highlightsDensity
2517
+ highlightsExposure
2518
+ highlightsHue
2519
+ highlightsSaturation
2520
+ midtonesDensity
2521
+ midtonesExposure
2522
+ midtonesHue
2523
+ midtonesSaturation
2524
+ shadowsDensity
2525
+ shadowsExposure
2526
+ shadowsHue
2527
+ shadowsSaturation
2528
+ }
2529
+ depthOfField {
2530
+ enabled
2531
+ blurLevel
2532
+ focusDistance
2533
+ focalLength
2534
+ fStop
2535
+ lensSize
2536
+ }
2537
+ grain {
2538
+ enabled
2539
+ animated
2540
+ intensity
2541
+ }
2542
+ misc {
2543
+ contrast
2544
+ exposure
2545
+ toneMappingEnabled
2546
+ toneMappingType
2547
+ }
2548
+ sharpen {
2549
+ enabled
2550
+ colorAmount
2551
+ edgeAmount
2552
+ }
2553
+ vignette {
2554
+ enabled
2555
+ blendMode
2556
+ cameraFov
2557
+ center {
2558
+ x
2559
+ y
2560
+ }
2561
+ colorRgba {
2562
+ r
2563
+ g
2564
+ b
2565
+ a
2566
+ }
2567
+ colorHex
2568
+ stretch
2569
+ weight
2570
+ }
2571
+ }
2572
+ `,fa=M.gql`
2573
+ fragment ModelAnimationFields on ModelAnimation {
2574
+ from
2575
+ to
2576
+ loop
2577
+ name
2578
+ }
2579
+ `,Ia=c=>M.gql`
2580
+ ${le(c)}
2581
+ ${Ue}
2582
+ ${ut}
2583
+ ${ua}
2584
+ ${Qa}
2585
+ ${ma}
2586
+ ${fa}
2587
+ query GetWorkflows($ids: [String!]!) {
2588
+ workflows(ids: $ids) {
2589
+ allowProofDownload
2590
+ defaultPreviewPanelIndex
2591
+ finalizeStepConfig {
2592
+ termsMarkdown
2593
+ lookAtAnimation {
2594
+ ...LookAtAnimationFields
2595
+ }
2596
+ modelAnimation {
2597
+ ...ModelAnimationFields
2598
+ }
2599
+ }
2600
+ globalPreviewConfig {
2601
+ autoRotation
2602
+ backgroundColor
2603
+ backgroundImage
2604
+ clearColor
2605
+ disableActionBar
2606
+ disableAutomaticOrientation
2607
+ emissiveGlowIntensity
2608
+ enableAR
2609
+ environmentFile
2610
+ environmentIntensity
2611
+ environmentRotationY
2612
+ idleTimeBeforeRotation
2613
+ lowerAlphaLimitDeg
2614
+ lowerBetaLimitDeg
2615
+ maxZoomOverride
2616
+ minZoomOverride
2617
+ noPan
2618
+ upperAlphaLimitDeg
2619
+ upperBetaLimitDeg
2620
+ renderingPipelineConfiguration {
2621
+ ...RenderingPipelineConfigurationFields
2622
+ }
2623
+ }
2624
+ id
2625
+ introduction
2626
+ name
2627
+ overrideTheme {
2628
+ id
2629
+ configuration
2630
+ name
2631
+ primaryColor
2632
+ secondaryColor
2633
+ textColor
2634
+ themeLayout {
2635
+ id
2636
+ name
2637
+ }
2638
+ fontAsset {
2639
+ ...AssetFields
2640
+ }
2641
+ }
2642
+ panels {
2643
+ editableArea {
2644
+ height
2645
+ width
2646
+ x
2647
+ y
2648
+ }
2649
+ height
2650
+ width
2651
+ index
2652
+ name
2653
+ useEditableArea
2654
+ transparentBackground
2655
+ previewRegion {
2656
+ ...RegionFields
2657
+ }
2658
+ }
2659
+ previewAsset {
2660
+ ...AssetFields
2661
+ }
2662
+ showModelOnFinishStep
2663
+ showPlusInVariantPrices
2664
+ showPricing
2665
+ skuCode
2666
+ stepGroups {
2667
+ name
2668
+ stepNames
2669
+ }
2670
+ steps {
2671
+ stepName
2672
+ type
2673
+ tags
2674
+ globalPropertyAspectConfigurations {
2675
+ aspectName
2676
+ globalPropertyConfigurationId
2677
+ }
2678
+ option {
2679
+ ...OptionFields
2680
+ }
2681
+ stepTitle
2682
+ helpText
2683
+ mandatory
2684
+ silent
2685
+ conditions {
2686
+ requiredVariantSelections
2687
+ targetStepName
2688
+ action
2689
+ }
2690
+ data {
2691
+ __typename
2692
+ ... on InformationStepData {
2693
+ content
2694
+ lookAtAnimation {
2695
+ ...LookAtAnimationFields
2696
+ }
2697
+ modelAnimation {
2698
+ ...ModelAnimationFields
2699
+ }
2700
+ }
2701
+ ... on DigitalContentStepData {
2702
+ advancedEditorAnimation {
2703
+ x
2704
+ y
2705
+ zoom
2706
+ layoutName
2707
+ }
2708
+ baseUrl
2709
+ lookAtAnimation {
2710
+ ...LookAtAnimationFields
2711
+ }
2712
+ modelAnimation {
2713
+ ...ModelAnimationFields
2714
+ }
2715
+ regions {
2716
+ ...RegionFields
2717
+ }
2718
+ }
2719
+ ... on FrameStepData {
2720
+ advancedEditorAnimation {
2721
+ x
2722
+ y
2723
+ zoom
2724
+ layoutName
2725
+ }
2726
+ disablePlaceholder
2727
+ displayImageOnFinishStep
2728
+ displaySelectionOnFinishStep
2729
+ focalBlur
2730
+ focalBlurRadius
2731
+ focalBlurStrength
2732
+ forceImageCover
2733
+ hideImageInCart
2734
+ hideSelectionInCart
2735
+ lookAtAnimation {
2736
+ ...LookAtAnimationFields
2737
+ }
2738
+ modelAnimation {
2739
+ ...ModelAnimationFields
2740
+ }
2741
+ overlayImageKey
2742
+ overlayImageUrl
2743
+ placeholderImageKey
2744
+ placeholderImageUrl
2745
+ regions {
2746
+ ...RegionFields
2747
+ }
2748
+ }
2749
+ ... on IllustrationStepData {
2750
+ advancedEditorAnimation {
2751
+ x
2752
+ y
2753
+ zoom
2754
+ layoutName
2755
+ }
2756
+ colorOption {
2757
+ ...OptionFields
2758
+ }
2759
+ colorPickerEnabled
2760
+ displayColorsOnFinishStep
2761
+ displaySelectionOnFinishStep
2762
+ hideColorsInCart
2763
+ hideSelectionInCart
2764
+ lookAtAnimation {
2765
+ ...LookAtAnimationFields
2766
+ }
2767
+ modelAnimation {
2768
+ ...ModelAnimationFields
2769
+ }
2770
+ regions {
2771
+ ...RegionFields
2772
+ }
2773
+ }
2774
+ ... on MaterialStepData {
2775
+ advancedEditorAnimation {
2776
+ x
2777
+ y
2778
+ zoom
2779
+ layoutName
2780
+ }
2781
+ displaySelectionOnFinishStep
2782
+ hideSelectionInCart
2783
+ lookAtAnimation {
2784
+ ...LookAtAnimationFields
2785
+ }
2786
+ modelAnimation {
2787
+ ...ModelAnimationFields
2788
+ }
2789
+ targetMaterials
2790
+ }
2791
+ ... on ModelStepData {
2792
+ advancedEditorAnimation {
2793
+ x
2794
+ y
2795
+ zoom
2796
+ layoutName
2797
+ }
2798
+ displaySelectionOnFinishStep
2799
+ hideSelectionInCart
2800
+ lookAtAnimation {
2801
+ ...LookAtAnimationFields
2802
+ }
2803
+ modelAnimation {
2804
+ ...ModelAnimationFields
2805
+ }
2806
+ replaceProductModel
2807
+ }
2808
+ ... on ModuleStepData {
2809
+ advancedEditorAnimation {
2810
+ x
2811
+ y
2812
+ zoom
2813
+ layoutName
2814
+ }
2815
+ displayTextOnFinishStep
2816
+ hideTextInCart
2817
+ lookAtAnimation {
2818
+ ...LookAtAnimationFields
2819
+ }
2820
+ maxLength
2821
+ modelAnimation {
2822
+ ...ModelAnimationFields
2823
+ }
2824
+ module
2825
+ regions {
2826
+ ...RegionFields
2827
+ }
2828
+ }
2829
+ ... on PictureStepData {
2830
+ advancedEditorAnimation {
2831
+ x
2832
+ y
2833
+ zoom
2834
+ layoutName
2835
+ }
2836
+ displaySelectionOnFinishStep
2837
+ hideSelectionInCart
2838
+ lookAtAnimation {
2839
+ ...LookAtAnimationFields
2840
+ }
2841
+ modelAnimation {
2842
+ ...ModelAnimationFields
2843
+ }
2844
+ regions {
2845
+ ...RegionFields
2846
+ }
2847
+ }
2848
+ ... on ProductOverlayStepData {
2849
+ regions {
2850
+ ...RegionFields
2851
+ }
2852
+ overlayType
2853
+ }
2854
+ ... on QuestionStepData {
2855
+ advancedEditorAnimation {
2856
+ x
2857
+ y
2858
+ zoom
2859
+ layoutName
2860
+ }
2861
+ allowMultipleSelections
2862
+ displaySelectionsOnFinishStep
2863
+ displayType
2864
+ hideSelectionsInCart
2865
+ lookAtAnimation {
2866
+ ...LookAtAnimationFields
2867
+ }
2868
+ modelAnimation {
2869
+ ...ModelAnimationFields
2870
+ }
2871
+ }
2872
+ ... on ShapeStepData {
2873
+ advancedEditorAnimation {
2874
+ x
2875
+ y
2876
+ zoom
2877
+ layoutName
2878
+ }
2879
+ displaySelectionOnFinishStep
2880
+ excludeFromPrint
2881
+ hideSelectionInCart
2882
+ lookAtAnimation {
2883
+ ...LookAtAnimationFields
2884
+ }
2885
+ modelAnimation {
2886
+ ...ModelAnimationFields
2887
+ }
2888
+ regions {
2889
+ ...RegionFields
2890
+ }
2891
+ }
2892
+ ... on SilentIllustrationStepData {
2893
+ advancedEditorAnimation {
2894
+ x
2895
+ y
2896
+ zoom
2897
+ layoutName
2898
+ }
2899
+ asset {
2900
+ ...AssetFields
2901
+ }
2902
+ excludeFromPrint
2903
+ lookAtAnimation {
2904
+ ...LookAtAnimationFields
2905
+ }
2906
+ modelAnimation {
2907
+ ...ModelAnimationFields
2908
+ }
2909
+ regions {
2910
+ ...RegionFields
2911
+ }
2912
+ }
2913
+ ... on TextStepData {
2914
+ advancedEditorAnimation {
2915
+ x
2916
+ y
2917
+ zoom
2918
+ layoutName
2919
+ }
2920
+ allowNewlines
2921
+ colorOption {
2922
+ ...OptionFields
2923
+ }
2924
+ colorPickerEnabled
2925
+ curved
2926
+ defaultText
2927
+ deleteDefaultOnFocus
2928
+ displayColorOnFinishStep
2929
+ displayImageFillOnFinishStep
2930
+ displaySelectionOnFinishStep
2931
+ displayTextOnFinishStep
2932
+ hideColorInCart
2933
+ hideImageFillInCart
2934
+ hideSelectionInCart
2935
+ hideTextInCart
2936
+ imageFillOption {
2937
+ ...OptionFields
2938
+ }
2939
+ imageFillScale
2940
+ lookAtAnimation {
2941
+ ...LookAtAnimationFields
2942
+ }
2943
+ maxLength
2944
+ maxSize
2945
+ minSize
2946
+ modelAnimation {
2947
+ ...ModelAnimationFields
2948
+ }
2949
+ paths
2950
+ regions {
2951
+ ...RegionFields
2952
+ }
2953
+ replaceableText
2954
+ size
2955
+ textAlign
2956
+ uppercase
2957
+ userCanReplaceText
2958
+ vertical
2959
+ verticalAlign
2960
+ }
2961
+ }
2962
+ }
2963
+ }
2964
+ }
2965
+ `,pa=M.gql`
2966
+ query GetTransactionForPartner($id: String!) {
2967
+ transactions(ids: [$id]) {
2968
+ id
2969
+ bundle {
2970
+ id
2971
+ }
2972
+ customLogoLink
2973
+ isOrdered
2974
+ product {
2975
+ id
2976
+ partner {
2977
+ id
2978
+ }
2979
+ }
2980
+ }
2981
+ }
2982
+ `,Da=M.gql`
2983
+ query GetCurrentIntegration {
2984
+ currentIntegration {
2985
+ id
2986
+ logo
2987
+ theme {
2988
+ id
2989
+ configuration
2990
+ primaryColor
2991
+ secondaryColor
2992
+ textColor
2993
+ }
2994
+ partner {
2995
+ id
2996
+ name
2997
+ activeAddons
2998
+ }
2999
+ }
3000
+ }
3001
+ `,Fa=M.gql`
3002
+ ${le(!1)}
3003
+ query GetWorkflowForTheme($id: String!) {
3004
+ workflow(id: $id) {
3005
+ id
3006
+ overrideTheme {
3007
+ id
3008
+ configuration
3009
+ name
3010
+ primaryColor
3011
+ secondaryColor
3012
+ textColor
3013
+ themeLayout {
3014
+ id
3015
+ name
3016
+ }
3017
+ fontAsset {
3018
+ ...AssetFields
3019
+ }
3020
+ }
3021
+ }
3022
+ }
3023
+ `,Ma=M.gql`
3024
+ query GetCustomer($emailAddress: String!) {
3025
+ customer(emailAddress: $emailAddress) {
3026
+ id
3027
+ emailAddress
3028
+ partner {
3029
+ id
3030
+ }
3031
+ }
3032
+ }
3033
+ `,Sa=M.gql`
3034
+ mutation CustomerCreate($details: CustomerDetailsInput!) {
3035
+ customerCreate(details: $details) {
3036
+ id
3037
+ emailAddress
3038
+ partner {
3039
+ id
3040
+ }
3041
+ }
3042
+ }
3043
+ `,ya=M.gql`
3044
+ mutation CustomerAuthenticate($loginToken: String!) {
3045
+ customerAuthenticate(loginToken: $loginToken) {
3046
+ id
3047
+ emailAddress
3048
+ stakeholders {
3049
+ id
3050
+ type
3051
+ transaction {
3052
+ id
3053
+ }
3054
+ }
3055
+ bundleStakeholders {
3056
+ id
3057
+ type
3058
+ bundle {
3059
+ id
3060
+ transactions {
3061
+ id
3062
+ }
3063
+ }
3064
+ }
3065
+ partner {
3066
+ id
3067
+ }
3068
+ }
3069
+ }
3070
+ `,Ya=M.gql`
3071
+ mutation CustomerGenerateVerificationCode($emailAddress: String!) {
3072
+ customerGenerateVerificationCode(emailAddress: $emailAddress)
3073
+ }
3074
+ `,Pa=M.gql`
3075
+ mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
3076
+ customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
3077
+ id
3078
+ emailAddress
3079
+ loginToken
3080
+ partner {
3081
+ id
3082
+ }
3083
+ stakeholders {
3084
+ id
3085
+ type
3086
+ transaction {
3087
+ id
3088
+ }
3089
+ }
3090
+ bundleStakeholders {
3091
+ id
3092
+ type
3093
+ bundle {
3094
+ id
3095
+ transactions {
3096
+ id
3097
+ }
3098
+ }
3099
+ }
3100
+ }
3101
+ }
3102
+ `,oe=async c=>{var e;for(const t in c.layouts){const A=c.layouts[t].elements.filter(a=>a.type===l.LayoutElementType.Illustration);for(let a=0;a<A.length;++a){const i=A[a];i.src&&i.svg&&(i.cachedObjectURL=await l.svgObjectURL(i.svg))}const n=c.layouts[t].elements.filter(a=>a.type===l.LayoutElementType.Textbox);for(let a=0;a<n.length;++a){const i=n[a];(e=i.fontData)!=null&&e.assetUrl&&await l.loadFont(i.fontData.assetUrl)}}},xa=async(c,e)=>{var n;const t=await N.getShadowGraphqlClient().query({query:Ia(((n=e==null?void 0:e.assets)==null?void 0:n.metadata)||!1),errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:c}}),A=t.data.workflows;if(A===void 0||A.length!==c.length)throw new Error(`Unable to read workflows: ${t.errors??"Length mismatch in response"}`);return A.forEach(a=>{a.steps.forEach(i=>{var o,s,r;delete i.data.__typename,(o=i.option)!=null&&o.id&&((s=i.option.defaultVariant)!=null&&s.asset&&G.cacheAsset(i.option.defaultVariant.asset),i.option.colorProfile&&G.cacheAsset(i.option.colorProfile),(r=i.option.variants)==null||r.forEach(g=>{g.asset&&G.cacheAsset(g.asset),g.displayImage&&G.cacheAsset(g.displayImage),g.thumbnail&&G.cacheAsset(g.thumbnail),g.material&&G.cacheMaterial(g.material)}),ee.set({id:i.option.id},Promise.resolve(i.option)))})}),A},Na=async(c,e)=>{const A=(await e).find(n=>n.id===c);if(!A)throw new Error(`Workflow not found: ${c}`);return A},At=async(c,e)=>{const t=c.map(o=>ee.get({id:o,options:e})),A=c.filter((o,s)=>t[s]===void 0);if(A.length===0)return Promise.all(t);const n=xa(A,e),a=A.map(o=>ee.set({id:o,options:e},Na(o,n))),i=t.filter(o=>o!==void 0);return await Promise.all(i.concat(a))},me=async(c,e)=>(await At([c],e))[0],Ha=c=>c.sort((e,t)=>e.index-t.index).map(e=>({id:l.generate(),panelId:e.name,name:e.name,index:e.index,createdAt:new Date,updatedAt:new Date,transparentBackground:e.transparentBackground,height:e.height,width:e.width,previewRegion:e.previewRegion,useEditableArea:e.useEditableArea,editableArea:e.editableArea})),nt=(c,e)=>{const t=c.workflowState,A=t?JSON.parse(t):void 0;return A?Object.values(A.layouts).map(n=>n.layout):Ha(e.panels)};class wA{constructor(e){this.activeIntegration=void 0,this.updateTransactionState=async t=>{try{return N.getShadowGraphqlClient().mutate({...t,mutation:LA})}catch(A){throw console.error(A),new U("Critical - Unable to synchronize workflow state with server.")}},this.initialized=!1,this.options=e,this.options.applicationKey&&fA(this.options.applicationKey)}getAssetManager(){return G}getCurrencyCode(){if(this.currencyCode===void 0)throw new Error("No currency code set.");return this.currencyCode}getFlowService(){if(!IA())throw new Error("Application key required to use Flow Service.");return new lA}async getIntegration(){if(!this.options.applicationKey)throw new Error("Cannot get current Integration without specifying an Application Key.");if(this.activeIntegration)return this.activeIntegration;const e=async()=>(await N.getShadowGraphqlClient().query({query:Da,errorPolicy:"all",fetchPolicy:"no-cache"})).data.currentIntegration;return this.activeIntegration=e(),this.activeIntegration}async canUseAddon(e){var t;try{return((t=(await this.getIntegration()).partner.activeAddons)==null?void 0:t.includes(e))??!1}catch(A){return console.error(A),!1}}async authenticateBundleFromLocalStorage(e){var n,a;const t=Y.getMap("bundleOwnerIds");if(t!=null&&t.has(e))return Promise.resolve({success:!0,stakeholderType:Be.Owner});const A=Y.getMap("bundlePartnerIds")||new Map;if(A.has(e)){const i=A.get(e),s=(Y.getMap("partnerCustomerIds")||new Map).get(i);if(s&&await this.authenticateCustomerId(s)){const g=(a=(n=this.customer)==null?void 0:n.bundleStakeholders)==null?void 0:a.find(B=>{var d;return((d=B.bundle)==null?void 0:d.id)===e});if(g)return Promise.resolve({success:!0,stakeholderType:g.type})}}return Promise.resolve({success:!1})}async authenticateTransactionFromLocalStorage(e){var g,B,d,w,h,C;const t=N.getShadowGraphqlClient(),A=await t.query({query:pa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:e}});if(!A.data.transactions||A.data.transactions.length===0)throw new Error(`Transaction not found: ${e}`);const n=A.data.transactions[0];if(!((B=(g=n.product)==null?void 0:g.partner)==null?void 0:B.id))throw new Error(`Unable to read transaction: ${e}`);if(n.isOrdered)return Promise.resolve({success:!1,transactionReadOnly:!0});const i=Y.getMap("transactionOwnerIds");if(i!=null&&i.has(e))return Promise.resolve({success:!0,stakeholderType:Be.Owner});const o=Y.getMap("transactionCustomerIds");if(o!=null&&o.has(e)){const E=o.get(e);if(E&&await this.authenticateCustomerId(E)){const Q=((w=(d=this.customer)==null?void 0:d.bundleStakeholders)==null?void 0:w.find(D=>{var f,p;return(p=(f=D.bundle)==null?void 0:f.transactions)==null?void 0:p.some(I=>I.id===e)}))||((C=(h=this.customer)==null?void 0:h.stakeholders)==null?void 0:C.find(D=>{var f;return((f=D.transaction)==null?void 0:f.id)===e}));if(Q)return Promise.resolve({success:!0,stakeholderType:Q.type})}}const r=(await t.query({query:Fa,errorPolicy:"all",variables:{id:n.workflowId}})).data.workflow;if(!r)throw new Error(`Unable to read workflow: ${n.workflowId}`);return Promise.resolve({success:!1,theme:r.overrideTheme,customLogoLink:n.customLogoLink})}clearCustomer(){this.customer=void 0}clearCustomerForTransaction(e){const t=Y.getMap("transactionCustomerIds");t!=null&&t.has(e)&&(t.delete(e),Y.setMap("transactionCustomerIds",t))}getStakeholderTypeForTransaction(e){var A,n;const t=(n=(A=this.customer)==null?void 0:A.stakeholders)==null?void 0:n.find(a=>{var i;return((i=a.transaction)==null?void 0:i.id)===e});if(t)return t.type}async getOrCreateCustomer(e){var i;this.customer=void 0;const t=N.getShadowGraphqlClient(),n=(await t.query({query:Ma,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:e}})).data.customer;if(!n.id){const s=(i=(await t.mutate({mutation:Sa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{details:{emailAddress:e}}})).data)==null?void 0:i.customerCreate;if(!s)throw new Error("Unable to create customer.");return this.storeCustomer(s),this.customer=s,{customer:s,isAuthenticated:!1}}this.storeCustomer(n);const a=await this.authenticateCustomerId(n.id);return{customer:this.customer||n,isAuthenticated:a}}async authenticateCustomerId(e){var o;const t=N.getShadowGraphqlClient(),A=Y.getMap("customerTokens");if(!(A!=null&&A.has(e)))return!1;const n=A.get(e);if(!n)return!1;const i=(o=(await t.mutate({mutation:ya,errorPolicy:"all",fetchPolicy:"no-cache",variables:{loginToken:n}})).data)==null?void 0:o.customerAuthenticate;return i?(this.storeCustomer(i),wt(n),this.customer=i,!0):!1}async generateVerificationCode(e){await N.getShadowGraphqlClient().mutate({mutation:Ya,variables:{emailAddress:e}})}async verifyCode(e,t){var a,i;const n=(a=(await N.getShadowGraphqlClient().mutate({mutation:Pa,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:e,verificationCode:t}})).data)==null?void 0:a.customerVerifyCode;if(n!=null&&n.loginToken){if(!((i=n.partner)!=null&&i.id))throw new Error(`Unable to find customer: ${e}`);const o=Y.getMap("customerTokens")||new Map;return o.set(n.id,n.loginToken),Y.setMap("customerTokens",o),this.storeCustomer(n),wt(n.loginToken),this.customer={...n,loginToken:void 0},!0}return!1}async getNewBundle(e,t,A){var s,r,g;const a=(g=(await N.getShadowGraphqlClient().mutate({mutation:_n(((r=(s=A==null?void 0:A.graphql)==null?void 0:s.productCollection)==null?void 0:r.eagerFetchProducts)||!1),variables:{collectionId:e,initialMetadata:t?Object.entries(t).map((B,d)=>({key:B[0],value:B[1]})):void 0},fetchPolicy:"no-cache"})).data)==null?void 0:g.bundleCreate;if(!(a!=null&&a.id))throw new Error("Unable to create bundle");const i=Y.getMap("bundlePartnerIds")||new Map;i.set(a.id,a.partner.id),Y.setMap("bundlePartnerIds",i);const o=Y.getMap("bundleOwnerIds")||new Map;return o.set(a.id,a.bundleOwnerId),Y.setMap("bundleOwnerIds",o),new gA(this,a,void 0,void 0,a.bundleOwnerId)}async getExistingBundle(e,t,A,n){var E,m,Q,D,f,p,I,F,S;const a=Y.getMap("bundleOwnerIds"),i=a==null?void 0:a.get(e),s=((E=Object.entries(localStorage).find(([y,x])=>y.startsWith("CognitoIdentityServiceProvider")&&y.endsWith("idToken")))==null?void 0:E[0])||"",r=localStorage.getItem(s),g={};r&&!Xe(r)&&(g.Authorization=`Bearer ${r}`);const B={bundleOwnerId:i,...g,...(m=n==null?void 0:n.graphql)==null?void 0:m.additionalHeaders},d=await N.getShadowGraphqlClient().query({query:Xn(((D=(Q=n==null?void 0:n.graphql)==null?void 0:Q.productCollection)==null?void 0:D.eagerFetchProducts)||!1),variables:{id:e},fetchPolicy:"no-cache",context:{headers:B}});if(!((f=d.data)!=null&&f.bundles)||((p=d.data)==null?void 0:p.bundles.length)===0||!((I=d.data)!=null&&I.bundles[0]))throw new Error(`Unable to find bundle: ${e}`);const w=(F=d.data)==null?void 0:F.bundles[0],h=Y.getMap("bundlePartnerIds")||new Map;h.set(w.id,w.partner.id),Y.setMap("bundlePartnerIds",h);const C=new gA(this,w,t,A,i,{additionalHeaders:(S=n==null?void 0:n.graphql)==null?void 0:S.additionalHeaders});return await C.getInitializationPromise(),C}async getBundleStakeholders(){var a;if(!this.customer)throw new Error("Customer not authenticated.");const e=await N.getShadowGraphqlClient().query({query:Zn,variables:{id:this.customer.id},fetchPolicy:"no-cache"});if(!((a=e.data)!=null&&a.customers)||e.data.customers.length===0)throw new Error("Unable to find customer.");const A=e.data.customers[0].bundleStakeholders||[],n=Y.getMap("bundlePartnerIds")||new Map;return A.forEach(i=>{var o,s;(o=i.bundle)!=null&&o.id&&((s=i.bundle.partner)!=null&&s.id)&&n.set(i.bundle.id,i.bundle.partner.id)}),Y.setMap("bundlePartnerIds",n),A}async getWorkflowExperience(e,t,A,n){var B,d,w,h,C;if(!n)return await this.getWorkflowExperienceDeprecated(e,t,A);const a=async()=>{var m,Q;const E=N.getShadowGraphqlClient();if(n.type==="transaction"){const{transactionId:D,readOnly:f}=n,p=await E.query({query:De,variables:{ids:[D]},errorPolicy:"all",fetchPolicy:"no-cache"});if(!((m=p.data)!=null&&m.transactions)||p.data.transactions.length===0)throw new U("Existing transaction not found.");const I=(Q=p.data)==null?void 0:Q.transactions[0];if(!I.workflowId)throw new U("Existing transaction has no workflow ID.");const F=await me(I.workflowId);if(!I.product)throw new U("Failed to load transaction, product not available.");return{transaction:I,workflow:F,readOnly:f}}if(n.type==="integration"||n.type==="external"){const D=async()=>{const F=n.type==="integration"?{integrationProductId:n.integrationProductId}:{externalIntegrationId:n.externalIntegrationId,externalProductId:n.externalProductId},S=await E.mutate({mutation:pt,variables:{...F,workflowId:n.workflowId,designName:n.designName,claim:!0},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!S.data||!S.data.transactionCreate)throw new U("Failed to create transaction!");const y=S.data.transactionCreate;if(!y.product)throw new U("Failed to create transaction, product not available.");return y},f=me(n.workflowId,n==null?void 0:n.graphql),[p,I]=await Promise.all([D(),f]);return{transaction:p,workflow:I}}throw new U("No workflow ID provided.")},{transaction:i,workflow:o,readOnly:s}=await a();this.currencyCode=(B=i.product.partner)==null?void 0:B.currencyCode;const r={product:i.product,transaction:i,layouts:[],singleVariantsRenderable:(d=n==null?void 0:n.workflowConfiguration)==null?void 0:d.singleVariantsRenderable,stateMutationFunc:s?async()=>{throw new k("State mutation is forbidden in read only mode!")}:async E=>{const Q=(Y.getMap("transactionOwnerIds")||new Map).get(i.id)||void 0;return this.updateTransactionState({...E,context:{transactionOwnerId:Q}})},readOnly:s,workflow:o};if(n.type==="transaction"&&i.workflowState){const E=JSON.parse(i.workflowState);r.layouts=Object.values(E.layouts).map(m=>m.layout),await l.rehydrateSerializedLayout(E),await oe(E),r.reloadedState=E}else if(!s&&n.workflowState){const E=JSON.parse(n.workflowState);r.layouts=Object.values(E.layouts).map(m=>m.layout),await l.rehydrateSerializedLayout(E),await oe(E),r.reloadedState=E}else r.layouts=nt(r.transaction,r.workflow);if(r.renderableContextService=new Pe(r.layouts),n.previewService?(r.previewService=n.previewService,(w=r.product)!=null&&w.modelUrl&&(r.modelContainer=r.previewService.loadModel({model:r.product.modelUrl,contextService:r.renderableContextService}))):(r.previewService=A&&A(o),(h=r.product)!=null&&h.modelUrl&&(r.modelContainer=(C=r.previewService)==null?void 0:C.loadModel({model:r.product.modelUrl,contextService:r.renderableContextService}))),n.type!=="transaction"){const E=Y.getMap("transactionOwnerIds")||new Map;E.set(i.id,i.transactionOwnerId),Y.setMap("transactionOwnerIds",E)}else r.isReloadedTransaction=!0;this.initialized=!0,this.experienceOptions=r;const g=new ue(this,r);return await g.getWorkflowManager().getInitializationPromise(),n.type!=="transaction"&&this.customer&&await g.attachCustomerDetails({email:this.customer.emailAddress}),g}async getWorkflowExperiences(e,t){if(e.length===0)throw new U("No options provided!");const A=N.getShadowGraphqlClient(),n=async p=>{var y,x;if(p.length===0)return[];const I=p.map(P=>P.option.transactionId),F=await A.query({query:De,variables:{ids:I},errorPolicy:"all",fetchPolicy:"no-cache"}),S=F.data.transactions;if(S.length!==p.length){const P=((x=(y=F.errors)==null?void 0:y[0])==null?void 0:x.message)||"Unknown error";throw new U(`Not all transactions were found: ${P}`)}return S.map((P,H)=>{var R;return{transaction:P,workflowId:P.workflowId,readOnly:((R=p.find(T=>T.option.transactionId===P.id))==null?void 0:R.option.readOnly)??!1,index:p[H].index}})},a=async p=>{var S,y,x;if(p.length===0)return[];const I=await A.mutate({mutation:TA,variables:{inputs:p.map(P=>({integrationProductId:P.option.type==="integration"?P.option.integrationProductId:void 0,externalIntegrationId:P.option.type==="external"?P.option.externalIntegrationId:void 0,externalProductId:P.option.type==="external"?P.option.externalProductId:void 0,workflowId:P.option.workflowId,designName:P.option.designName,claim:!0}))},errorPolicy:"all",fetchPolicy:"no-cache"}),F=(S=I.data)==null?void 0:S.transactionCreateMany;if(!F||F.length===0){const P=((x=(y=I.errors)==null?void 0:y[0])==null?void 0:x.message)||"Unknown error";throw new U(`Failed to create transactions: ${P}`)}return F.map((P,H)=>({transaction:P,workflowId:P.workflowId,readOnly:!1,index:p[H].index}))},i=e.map((p,I)=>({option:p,index:I})),o=i.filter(p=>p.option.type==="transaction"),s=i.filter(p=>p.option.type==="integration"||p.option.type==="external"),r=gt(o,10),g=gt(s,10),B=(await Promise.all([...r.map(n),...g.map(a)])).flat(),d=[...new Set(B.map(p=>p.workflowId))],w=await At(d,t),h=new Map(w.map(p=>[p.id,p])),C=Y.getMap("transactionOwnerIds")||new Map,E=B.map(async p=>{var T;const{transaction:I,workflowId:F,readOnly:S,index:y}=p,x=h.get(F),P=e[y];!C.get(I.id)&&I.transactionOwnerId&&C.set(I.id,I.transactionOwnerId);const H=C.get(I.id)||void 0,R={product:I.product,transaction:I,layouts:[],singleVariantsRenderable:(T=P==null?void 0:P.workflowConfiguration)==null?void 0:T.singleVariantsRenderable,stateMutationFunc:S?async()=>{throw new k("State mutation is forbidden in read only mode!")}:async b=>this.updateTransactionState({...b,context:{transactionOwnerId:H}}),readOnly:S,workflow:x,isReloadedTransaction:P.type==="transaction"};if(P.type==="transaction"&&I.workflowState){const b=JSON.parse(I.workflowState);R.layouts=Object.values(b.layouts||{}).map(j=>j.layout),await l.rehydrateSerializedLayout(b),await oe(b),R.reloadedState=b}else if(!S&&P.workflowState){const b=JSON.parse(P.workflowState);R.layouts=Object.values(b.layouts||{}).map(j=>j.layout),await l.rehydrateSerializedLayout(b),await oe(b),R.reloadedState=b}else R.layouts=nt(R.transaction,R.workflow);return R.renderableContextService=new Pe(R.layouts),R.delayWorkflowStateSync=!0,this.initialized=!0,this.experienceOptions=R,{experienceOptions:R,index:y,options:P}});Y.setMap("transactionOwnerIds",C);const D=(await Promise.all(E)).sort((p,I)=>p.index-I.index).map(async p=>{const{experienceOptions:I,options:F}=p,S=new ue(this,I);return await S.getWorkflowManager().getInitializationPromise(),F.type!=="transaction"&&this.customer&&await S.attachCustomerDetails({email:this.customer.emailAddress}),S}),f=await Promise.all(D);return f.forEach(p=>p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)),f}async initFromIntegrationProduct(e){var i;if(e==="")throw new U("No integration product ID provided.");const A=await N.getShadowGraphqlClient().mutate({mutation:pt,variables:{integrationProductId:e,claim:!0},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!A.data||!A.data.transactionCreate)throw new U("Failed to create transaction!");const n=A.data.transactionCreate;if(!n.product)throw new U("Failed to create transaction, product not available.");this.currencyCode=(i=n.product.partner)==null?void 0:i.currencyCode;const a=Y.getMap("transactionOwnerIds")||new Map;a.set(n.id,n.transactionOwnerId),Y.setMap("transactionOwnerIds",a),this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:async o=>this.updateTransactionState({...o,context:{transactionOwnerId:n.transactionOwnerId}})},this.initialized=!0}async initFromTransaction(e,t=!1){var o,s,r,g;if(e==="")throw new U("No transaction ID provided.");const A=N.getShadowGraphqlClient(),n=async()=>{var w,h;const d=(w=(await A.query({query:De,variables:{ids:[e]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:w.transactions[0];if(!d)throw new U("Failed to read transaction.");if(!d.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(h=d.product.partner)==null?void 0:h.currencyCode,this.experienceOptions={product:d.product,transaction:d,layouts:[],stateMutationFunc:async()=>{throw new k("State mutation is forbidden in read only mode!")},readOnly:t},this.initialized=!0};if(t)return await n();const a=Y.getMap("transactionOwnerIds")||new Map,i=a.get(e);if(i){const d=(o=(await A.query({query:De,variables:{ids:[e]},errorPolicy:"all"})).data)==null?void 0:o.transactions[0];if(!d)throw new U("Failed to read transaction.");if(!d.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(s=d.product.partner)==null?void 0:s.currencyCode,this.experienceOptions={product:d.product,transaction:d,layouts:[],stateMutationFunc:async w=>this.updateTransactionState({...w,context:{transactionOwnerId:i}}),readOnly:t},this.initialized=!0;return}try{const d=(r=(await A.mutate({mutation:OA,variables:{id:e},errorPolicy:"all"})).data)==null?void 0:r.transactionClaim;if(!d)throw new U("Failed to read transaction.");if(!d.product)throw new U("Failed to load transaction, product not available.");this.currencyCode=(g=d.product.partner)==null?void 0:g.currencyCode,d.transactionOwnerId&&(a.set(d.id,d.transactionOwnerId),Y.setMap("transactionOwnerIds",a)),this.experienceOptions={product:d.product,transaction:d,layouts:[],stateMutationFunc:async w=>this.updateTransactionState({...w,context:{transactionOwnerId:d.transactionOwnerId}}),readOnly:t},this.initialized=!0}catch{throw new U("Attempted to access a transaction that isn't available.")}}async getWorkflowExperienceDeprecated(e,t,A){var n,a,i,o;if(!this.initialized||!this.experienceOptions)throw new U("Cannot launch experience: Not initialized.");if(this.experienceOptions.transaction.workflowId){const s=await me(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=s,this.experienceOptions.transaction.workflowState){const g=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(g.layouts).map(B=>B.layout),await l.rehydrateSerializedLayout(g),await oe(g),this.experienceOptions.reloadedState=g}this.experienceOptions.previewService=A&&A(s),this.experienceOptions.renderableContextService=new Pe(this.experienceOptions.layouts),(n=this.experienceOptions.product)!=null&&n.modelUrl&&(this.experienceOptions.modelContainer=(a=this.experienceOptions.previewService)==null?void 0:a.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const r=new ue(this,this.experienceOptions);return await r.getWorkflowManager().getInitializationPromise(),r}if(e){const r=(Y.getMap("transactionOwnerIds")||new Map).get(this.experienceOptions.transaction.id),g=N.getShadowGraphqlClient().mutate({mutation:zA,variables:{workflowId:e,id:this.experienceOptions.transaction.id},context:{transactionOwnerId:r}}),B=me(e);if(await Promise.all([g,B]),this.experienceOptions.workflow=await B,t){const w=JSON.parse(t);this.experienceOptions.layouts=Object.values(w.layouts).map(h=>h.layout),await l.rehydrateSerializedLayout(w),await oe(w),this.experienceOptions.reloadedState=w}else this.experienceOptions.layouts=nt(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(await B),this.experienceOptions.renderableContextService=new Pe(this.experienceOptions.layouts),(i=this.experienceOptions.product)!=null&&i.modelUrl&&(this.experienceOptions.modelContainer=(o=this.experienceOptions.previewService)==null?void 0:o.loadModel({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}));const d=new ue(this,this.experienceOptions);return await d.getWorkflowManager().getInitializationPromise(),d}throw new U("No workflow ID provided.")}getPreviewService(){var e;return(e=this.experienceOptions)==null?void 0:e.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new U("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new U("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}configureUrls(e,t,A){X.setHubUrl(e),X.setServerUrl(t),X.setServicesApiUrl(A),this.getIntegration()}storeCustomer(e){const t=Y.getMap("partnerCustomerIds")||new Map;t.set(e.partner.id,e.id),Y.setMap("partnerCustomerIds",t)}async getIntegrationProductById(e){var a,i;const n=(a=(await N.getShadowGraphqlClient().query({query:VA,variables:{ids:[e]},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:a.integrationProducts;if(!n||n.length===0||!((i=n[0])!=null&&i.id))throw new Error("Integration product not found.");return new tt(n[0])}async getIntegrationProductFromExternalIds(e,t){var i;const a=(i=(await N.getShadowGraphqlClient().query({query:WA,variables:{externalProductId:t,externalIntegrationId:e},fetchPolicy:"no-cache",errorPolicy:"all"})).data)==null?void 0:i.integrationProductFromExternalIds;if(!(a!=null&&a.id))throw new Error("Integration product not found.");return new tt(a)}async getIntegrationProduct(e){return e.type==="integration"?this.getIntegrationProductById(e.integrationProductId):this.getIntegrationProductFromExternalIds(e.externalIntegrationId,e.externalProductId)}async getShareActionsForTransaction(e){const A=(Y.getMap("transactionOwnerIds")||new Map).get(e)||void 0,n=await N.getShadowGraphqlClient().query({query:KA,errorPolicy:"all",fetchPolicy:"network-only",variables:{id:e},context:{transactionOwnerId:A}});if(!n.data.transactions||n.data.transactions.length!==1)throw new Error(`Failed to fetch share actions for transaction: ${e}`);return n.data.transactions[0].transactionShareActions}}class Ra{getClient(){return this.client??{}}setClient(e){this.client=e}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}async reset(){}updateStateWithServer(e){}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(e){}addPoller(e){}addConfirmCallback(e){}addEditedCallback(e){}addElementsCallback(e){}addInformationResultCallback(e){}addInitCallback(e){}addMakingAdjustmentsCallback(e){}addMandatoryCallback(e){}addMetadataCallback(e){}addSelectionCallback(e){}addStepSpecificStorageCallback(e,t){}addStorageCallback(e){}getCommandDispatcher(){return e=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getModelContainer(){}getProfanities(){return[]}getRegionElements(e){return[]}getSerializedStep(e,t){}getStepSpecificServices(e){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(e){}markUpdateCompleted(e){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(e){}setEditedStatus(e,t){}setInformationResults(e){}setMandatoryFulfilled(e,t){}async setSelectionsAndElements(e,t,A){}toggleDesignConfirmed(){}updateMetadata(e,t){}async updateStorage(e,t){}injectIntoPreviewService(e){return Promise.resolve()}ejectFromPreviewService(){}setWorkflowStateSyncEnabled(e){}async updateTransactionShareActions(){}}var hA=(c=>(c.SelectFrame="SelectFrame",c.SelectImage="SelectImage",c.Position="Position",c))(hA||{});class EA extends K{constructor(e,t){var A;super(e,t),this.frameService=(A=this.manager.getStepSpecificServices(this.getId()))==null?void 0:A.frameService}selectVariant(e){const t=this.manager.getRegionElements(this.step.stepName);return he.selectVariant(this.step,e.getResource(),t,this.manager,A=>this.setUpdateState(A))}onFrameDataChanged(e){this.frameService&&this.frameService.onFrameDataChanged(t=>{t&&e(t)})}async selectImage(e,t=!0,A=!0){var n;if(await he.selectImage(this.step,e,this.manager,A),t){const a=((n=this.manager.getStepStorage(this.step.stepName))==null?void 0:n.framePatternData)||{};this.manager.updateStorage(this.step.stepName,{framePatternData:{...a,originalAssetKey:e.key,backgroundRemovedAssetKey:void 0,useOriginalAsset:void 0}})}}async canUseBackgroundRemover(){return this.manager.getClient().canUseAddon(pe.BackgroundRemover)}async removeBackgroundFromImageSelection(e=!0){var a;if(!await this.canUseBackgroundRemover())throw new Error("The current Integration does not have access to the Background Remover. Please call canUseBackgroundRemover to ensure you disable this feature when appropriate.");const t=await this.getOriginalImageSelection();if(!t)throw new Error("You must supply an image selection before attempting to remove the background.");const A=await G.removeBackgroundFromAsset(t);e&&await he.selectImage(this.step,A,this.manager,!1);const n=((a=this.manager.getStepStorage(this.step.stepName))==null?void 0:a.framePatternData)||{};return this.manager.updateStorage(this.step.stepName,{framePatternData:{...n,backgroundRemovedAssetKey:A.key,useOriginalAsset:!e}}),A}getImageData(){if(this.frameService)return this.frameService.getImageData()}getCurrentFrameStep(e,t,A,n){return n&&n.length>1&&e===void 0?"SelectFrame":t||A||this.getImageData()?"Position":"SelectImage"}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasOverlayImageUrl(){return this.step.data.overlayImageUrl}async getOriginalImageSelection(){var t,A;const e=(A=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)==null?void 0:A.originalAssetKey;if(e)return G.getLocalOrFromServer(e)}async getBackgroundRemovedImageSelection(){var t,A;const e=(A=(t=this.manager.getStepStorage(this.step.stepName))==null?void 0:t.framePatternData)==null?void 0:A.backgroundRemovedAssetKey;if(e)return G.getLocalOrFromServer(e)}hasBackgroundRemovedImageSelection(){var e,t;return!!((t=(e=this.getFrameStepStorage())==null?void 0:e.framePatternData)!=null&&t.backgroundRemovedAssetKey)}getUseOriginalImageSelection(){var e,t;return((t=(e=this.getFrameStepStorage())==null?void 0:e.framePatternData)==null?void 0:t.useOriginalAsset)??!1}async setUseOriginalImageSelection(e){var n;const t=((n=this.getFrameStepStorage())==null?void 0:n.framePatternData)||{};if(t.useOriginalAsset===e)return;const A=await this.getOriginalImageSelection();if(!A)throw new Error("You must provide an image selection before calling setUseOriginalImageSelection");if(e)await this.selectImage(A,!1,!1);else{const a=await this.getBackgroundRemovedImageSelection();if(!a)throw new Error("You must call removeBackgroundFromImageSelection before attempting to apply the image.");await this.selectImage(a,!1,!1)}this.manager.updateStorage(this.step.stepName,{framePatternData:{...t,useOriginalAsset:e}})}getFrameStepStorage(){return this.manager.getStepStorage(this.step.stepName)}}Object.defineProperty(u,"AspectType",{enumerable:!0,get:()=>l.AspectType}),Object.defineProperty(u,"AssetType",{enumerable:!0,get:()=>l.AssetType}),Object.defineProperty(u,"BringForwardCommand",{enumerable:!0,get:()=>l.BringForwardCommand}),Object.defineProperty(u,"BringToBackCommand",{enumerable:!0,get:()=>l.BringToBackCommand}),Object.defineProperty(u,"BringToFrontCommand",{enumerable:!0,get:()=>l.BringToFrontCommand}),Object.defineProperty(u,"CanvasCommand",{enumerable:!0,get:()=>l.CanvasCommand}),Object.defineProperty(u,"CommandContext",{enumerable:!0,get:()=>l.CommandContext}),Object.defineProperty(u,"CreateElementCommand",{enumerable:!0,get:()=>l.CreateElementCommand}),Object.defineProperty(u,"CreateLayoutCommand",{enumerable:!0,get:()=>l.CreateLayoutCommand}),Object.defineProperty(u,"DeleteElementCommand",{enumerable:!0,get:()=>l.DeleteElementCommand}),Object.defineProperty(u,"FontAlignmentCommand",{enumerable:!0,get:()=>l.FontAlignmentCommand}),Object.defineProperty(u,"FontColorCommand",{enumerable:!0,get:()=>l.FontColorCommand}),Object.defineProperty(u,"FontSizeCommand",{enumerable:!0,get:()=>l.FontSizeCommand}),Object.defineProperty(u,"FontSourceCommand",{enumerable:!0,get:()=>l.FontSourceCommand}),Object.defineProperty(u,"GroupCommand",{enumerable:!0,get:()=>l.GroupCommand}),Object.defineProperty(u,"LayoutElementFactory",{enumerable:!0,get:()=>l.LayoutElementFactory}),Object.defineProperty(u,"LayoutElementType",{enumerable:!0,get:()=>l.LayoutElementType}),Object.defineProperty(u,"MoveCommand",{enumerable:!0,get:()=>l.MoveCommand}),Object.defineProperty(u,"ResizeCommand",{enumerable:!0,get:()=>l.ResizeCommand}),Object.defineProperty(u,"RotateCommand",{enumerable:!0,get:()=>l.RotateCommand}),Object.defineProperty(u,"SendBackwardsCommand",{enumerable:!0,get:()=>l.SendBackwardsCommand}),Object.defineProperty(u,"StepAspectType",{enumerable:!0,get:()=>l.StepAspectType}),Object.defineProperty(u,"StepType",{enumerable:!0,get:()=>l.StepType}),Object.defineProperty(u,"TextChangeCommand",{enumerable:!0,get:()=>l.TextChangeCommand}),Object.defineProperty(u,"UnitOfMeasurement",{enumerable:!0,get:()=>l.UnitOfMeasurement}),Object.defineProperty(u,"UpdateImageSourceCommand",{enumerable:!0,get:()=>l.UpdateImageSourceCommand}),Object.defineProperty(u,"dataUrlFromExternalUrl",{enumerable:!0,get:()=>l.dataUrlFromExternalUrl}),Object.defineProperty(u,"determineCorrectFontSizeAndLines",{enumerable:!0,get:()=>l.determineCorrectFontSizeAndLines}),Object.defineProperty(u,"findElement",{enumerable:!0,get:()=>l.findElement}),Object.defineProperty(u,"frameDataCache",{enumerable:!0,get:()=>l.frameDataCache}),Object.defineProperty(u,"generate",{enumerable:!0,get:()=>l.generate}),Object.defineProperty(u,"generateSVGWithUnknownColors",{enumerable:!0,get:()=>l.generateSVGWithUnknownColors}),Object.defineProperty(u,"getAttributesFromArrayBuffer",{enumerable:!0,get:()=>l.getAttributesFromArrayBuffer}),Object.defineProperty(u,"getAxisAlignedBoundingBox",{enumerable:!0,get:()=>l.getAxisAlignedBoundingBox}),Object.defineProperty(u,"getFrameData",{enumerable:!0,get:()=>l.getFrameData}),Object.defineProperty(u,"getSvgElement",{enumerable:!0,get:()=>l.getSvgElement}),Object.defineProperty(u,"loadFont",{enumerable:!0,get:()=>l.loadFont}),Object.defineProperty(u,"patternImageDataCache",{enumerable:!0,get:()=>l.patternImageDataCache}),Object.defineProperty(u,"registerFetchImplementation",{enumerable:!0,get:()=>l.registerFetchImplementation}),Object.defineProperty(u,"registerWindowImplementation",{enumerable:!0,get:()=>l.registerWindowImplementation}),Object.defineProperty(u,"rehydrateSerializedLayout",{enumerable:!0,get:()=>l.rehydrateSerializedLayout}),Object.defineProperty(u,"setCanvasModule",{enumerable:!0,get:()=>l.setCanvasModule}),u.AddonHandle=pe,u.ArrayInput=Ca,u.AssetNotFoundError=W,u.CollectionProduct=Ne,u.ColorOptionGlobalPropertyHandle=oA,u.ConversionDataType=It,u.ConversionLocation=ft,u.FileUploadGlobalPropertyHandle=aA,u.FlowExecutionNodeResult=Qe,u.FlowExecutionResult=dA,u.FlowService=lA,u.FrameService=St,u.FrameStep=hA,u.FrameStepHandle=EA,u.GlobalPropertyHandle=xe,u.IllustrationStepHandle=Ot,u.InformationMessageType=Ce,u.InformationStepHandle=Xt,u.IntegrationProduct=tt,u.IntegrationType=Qt,u.LayoutNotFoundError=J,u.MaterialStepHandle=Lt,u.MisconfigurationError=ge,u.MockWorkflowManager=Ra,u.ModelStepHandle=zt,u.ObjectInput=et,u.ObjectInputType=BA,u.OptionGlobalPropertyHandle=Ze,u.OptionNotFoundError=ce,u.ParseError=$,u.PictureStepHandle=jt,u.ProductCameraRig=mt,u.ProductCollection=sA,u.ProductWorkflow=ie,u.PromiseCache=ee,u.PromiseQueue=be,u.QuestionStepHandle=Kt,u.QueueablePromise=ke,u.ResourceNotFoundError=Z,u.ShapeStepHandle=Vt,u.SpiffCommerceClient=wA,u.StakeholderType=Be,u.StepHandle=K,u.TextGlobalPropertyHandle=iA,u.TextInput=Ea,u.TextStepHandle=Wt,u.Transform=cA,u.TransformCollection=rA,u.UnhandledBehaviorError=k,u.Variant=V,u.WorkflowExperienceEventType=eA,u.WorkflowExperienceImpl=ue,u.assetService=G,u.createDesign=_t,u.designService=Ye,u.digitalContentStepService=xt,u.frameStepService=he,u.generateCommands=tA,u.generateStateFromDesignInputSteps=Vn,u.getBoundedOffsets=Mt,u.getWorkflow=me,u.getWorkflows=At,u.graphQlManager=N,u.illustrationStepService=Ee,u.materialStepService=Je,u.modelStepService=Te,u.moduleStepService=Nt,u.optionService=L,u.persistenceService=Y,u.pictureStepService=Oe,u.questionStepService=Le,u.setBearerAuthenticationToken=pA,u.shapeStepService=ae,u.shortenUrl=Yt,u.spiffCoreConfiguration=X,u.stepAspectValuesToDesignInputSteps=Kn,u.textStepService=z,u.toast=Ht,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});