@spiffcommerce/core 15.1.0 → 15.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +34 -25
- package/dist/module.js +10 -1
- package/dist/types.d.ts +12 -4
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -1294,6 +1294,15 @@ import{CommandContext as t,AssetType as e,BringForwardCommand as A,BringToFrontC
|
|
|
1294
1294
|
}
|
|
1295
1295
|
data {
|
|
1296
1296
|
__typename
|
|
1297
|
+
... on InformationStepData {
|
|
1298
|
+
content
|
|
1299
|
+
lookAtAnimation {
|
|
1300
|
+
...LookAtAnimationFields
|
|
1301
|
+
}
|
|
1302
|
+
modelAnimation {
|
|
1303
|
+
...ModelAnimationFields
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1297
1306
|
... on DigitalContentStepData {
|
|
1298
1307
|
advancedEditorAnimation {
|
|
1299
1308
|
x
|
|
@@ -1571,5 +1580,5 @@ import{CommandContext as t,AssetType as e,BringForwardCommand as A,BringToFrontC
|
|
|
1571
1580
|
}
|
|
1572
1581
|
}
|
|
1573
1582
|
}
|
|
1574
|
-
`),errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:t}});var n;const a=A.data.workflows;if(void 0===a||a.length!==t.length)throw new Error(`Unable to read workflows: ${A.errors??"Length mismatch in response"}`);return a.forEach((t=>{t.steps.forEach((t=>{delete t.data.__typename,t.option?.id&&(t.option.defaultVariant?.asset&&be.cacheAsset(t.option.defaultVariant.asset),t.option.colorProfile&&be.cacheAsset(t.option.colorProfile),t.option.variants?.forEach((t=>{t.asset&&be.cacheAsset(t.asset),t.displayImage&&be.cacheAsset(t.displayImage),t.thumbnail&&be.cacheAsset(t.thumbnail),t.material&&be.cacheMaterial(t.material)})),Ue.set({id:t.option.id},Promise.resolve(t.option)))}))})),a})(n,e),i=n.map((t=>Ue.set({id:t,options:e},(async(t,e)=>{const A=(await e).find((e=>e.id===t));if(!A)throw new Error(`Workflow not found: ${t}`);return A})(t,a)))),o=A.filter((t=>void 0!==t));return await Promise.all(o.concat(i))},ro=async(t,e)=>(await oo([t],e))[0],so=(t,e)=>{const A=t.workflowState,n=A?JSON.parse(A):void 0;return n?Object.values(n.layouts).map((t=>t.layout)):e.panels.sort(((t,e)=>t.index-e.index)).map((t=>({id:F(),panelId:t.name,name:t.name,index:t.index,createdAt:new Date,updatedAt:new Date,transparentBackground:t.transparentBackground,height:t.height,width:t.width,previewRegion:t.previewRegion,useEditableArea:t.useEditableArea,editableArea:t.editableArea})))};class co{constructor(t){var e;Wi(this,"options",void 0),Wi(this,"initialized",void 0),Wi(this,"currencyCode",void 0),Wi(this,"customer",void 0),Wi(this,"experienceOptions",void 0),Wi(this,"updateTransactionState",(async t=>{try{return ye.getShadowGraphqlClient().mutate({...t,mutation:On})}catch(t){throw console.error(t),new ce("Critical - Unable to synchronize workflow state with server.")}})),this.initialized=!1,this.options=t,this.options.applicationKey&&(e=this.options.applicationKey,Ie=e)}getAssetManager(){return be}getCurrencyCode(){if(void 0===this.currencyCode)throw new Error("No currency code set.");return this.currencyCode}getFlowService(){if(!this.options.applicationKey)throw new Error("Application key required to use Flow Service.");return new Li}async authenticateBundleFromLocalStorage(t){const e=we.getMap("bundleOwnerIds");if(e?.has(t)){const A=e.get(t);return me(A),Promise.resolve({success:!0,stakeholderType:BA.Owner})}const A=we.getMap("bundlePartnerIds")||new Map;if(A.has(t)){const e=A.get(t),n=(we.getMap("partnerCustomerIds")||new Map).get(e);if(n){if(await this.authenticateCustomerId(n)){const e=this.customer?.bundleStakeholders?.find((e=>e.bundle?.id===t));if(e)return Promise.resolve({success:!0,stakeholderType:e.type})}}}return Promise.resolve({success:!1})}async authenticateTransactionFromLocalStorage(t){const e=ye.getShadowGraphqlClient(),A=await e.query({query:_i,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:t}});if(!A.data.transactions||0===A.data.transactions.length)throw new Error(`Transaction not found: ${t}`);const n=A.data.transactions[0],a=n.product?.partner?.id;if(!a)throw new Error(`Unable to read transaction: ${t}`);if(n.isOrdered)return Promise.resolve({success:!1,transactionReadOnly:!0});const i=we.getMap("transactionOwnerIds");if(i?.has(t)){const e=i.get(t);return Qe(e),Promise.resolve({success:!0,stakeholderType:BA.Owner})}const o=we.getMap("transactionCustomerIds");if(o?.has(t)){const e=o.get(t);if(e){if(await this.authenticateCustomerId(e)){const e=this.customer?.bundleStakeholders?.find((e=>e.bundle?.transactions?.some((e=>e.id===t))))||this.customer?.stakeholders?.find((e=>e.transaction?.id===t));if(e)return Promise.resolve({success:!0,stakeholderType:e.type})}}}const r=(await e.query({query:to,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(t){const e=we.getMap("transactionCustomerIds");e?.has(t)&&(e.delete(t),we.setMap("transactionCustomerIds",e))}getStakeholderTypeForTransaction(t){const e=this.customer?.stakeholders?.find((e=>e.transaction?.id===t));if(e)return e.type}async getOrCreateCustomer(t){this.customer=void 0;const e=ye.getShadowGraphqlClient(),A=(await e.query({query:eo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:t}})).data.customer;if(!A.id){const A=(await e.mutate({mutation:Ao,errorPolicy:"all",fetchPolicy:"no-cache",variables:{details:{emailAddress:t}}})).data?.customerCreate;if(!A)throw new Error("Unable to create customer.");return this.storeCustomer(A),this.customer=A,{customer:A,isAuthenticated:!1}}this.storeCustomer(A);const n=await this.authenticateCustomerId(A.id);return{customer:this.customer||A,isAuthenticated:n}}async authenticateCustomerId(t){const e=ye.getShadowGraphqlClient(),A=we.getMap("customerTokens");if(!A?.has(t))return!1;const n=A.get(t);if(!n)return!1;const a=(await e.mutate({mutation:no,errorPolicy:"all",fetchPolicy:"no-cache",variables:{loginToken:n}})).data?.customerAuthenticate;return!!a&&(this.storeCustomer(a),De(n),this.customer=a,!0)}async generateVerificationCode(t){await ye.getShadowGraphqlClient().mutate({mutation:ao,variables:{emailAddress:t}})}async verifyCode(t,e){const A=(await ye.getShadowGraphqlClient().mutate({mutation:io,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:t,verificationCode:e}})).data?.customerVerifyCode;if(A?.loginToken){if(!A.partner?.id)throw new Error(`Unable to find customer: ${t}`);const e=we.getMap("customerTokens")||new Map;return e.set(A.id,A.loginToken),we.setMap("customerTokens",e),this.storeCustomer(A),De(A.loginToken),this.customer={...A,loginToken:void 0},!0}return!1}async getNewBundle(t){const e=(await ye.getShadowGraphqlClient().mutate({mutation:Bi,variables:{collectionId:t},fetchPolicy:"no-cache"})).data?.bundleCreate;if(!e?.id)throw new Error("Unable to create bundle");const A=we.getMap("bundlePartnerIds")||new Map;A.set(e.id,e.partner.id),we.setMap("bundlePartnerIds",A),me(e.bundleOwnerId);const n=we.getMap("bundleOwnerIds")||new Map;return n.set(e.id,e.bundleOwnerId),we.setMap("bundleOwnerIds",n),new Gi(this,e)}async getExistingBundle(t,e,A){const n=we.getMap("bundleOwnerIds")?.get(t);n&&me(n);const a=await ye.getShadowGraphqlClient().query({query:ci,variables:{id:t},fetchPolicy:"no-cache"});if(!a.data?.bundles||0===a.data?.bundles.length||!a.data?.bundles[0])throw new Error(`Unable to find bundle: ${t}`);const i=a.data?.bundles[0],o=we.getMap("bundlePartnerIds")||new Map;o.set(i.id,i.partner.id),we.setMap("bundlePartnerIds",o);const r=new Gi(this,i,e,A);return await r.getInitializationPromise(),r}async getBundleStakeholders(){if(!this.customer)throw new Error("Customer not authenticated.");const t=await ye.getShadowGraphqlClient().query({query:li,variables:{id:this.customer.id},fetchPolicy:"no-cache"});if(!t.data?.customers||0===t.data.customers.length)throw new Error("Unable to find customer.");return t.data.customers[0].bundleStakeholders||[]}async getWorkflowExperience(t,e,A,n){if(!n)return await this.getWorkflowExperienceDeprecated(t,e,A);const a=async t=>{for(const e in t.layouts){const A=t.layouts[e].elements.filter((t=>t.type===h.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await wt(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===h.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&H(e.fontData.assetUrl)}}},{transaction:i,workflow:o,readOnly:r}=await(async()=>{const t=ye.getShadowGraphqlClient();if("transaction"===n.type){const{transactionId:e,readOnly:A}=n,a=await t.query({query:Ln,variables:{ids:[e]},errorPolicy:"all",fetchPolicy:"no-cache"});if(!a.data?.transactions||0===a.data.transactions.length)throw new ce("Existing transaction not found.");const i=a.data?.transactions[0];if(!i.workflowId)throw new ce("Existing transaction has no workflow ID.");const o=await ro(i.workflowId);if(!i.product)throw new ce("Failed to load transaction, product not available.");return{transaction:i,workflow:o,readOnly:A}}if("integration"===n.type||"external"===n.type){const e=async()=>{const e="integration"===n.type?{integrationProductId:n.integrationProductId}:{externalIntegrationId:n.externalIntegrationId,externalProductId:n.externalProductId},A=await t.mutate({mutation:Gn,variables:{...e,bulk:n.bulk,workflowId:n.workflowId,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 ce("Failed to create transaction!");const a=A.data.transactionCreate;if(!a.product)throw new ce("Failed to create transaction, product not available.");return a},A=ro(n.workflowId,n?.graphql),[a,i]=await Promise.all([e(),A]);return{transaction:a,workflow:i}}throw new ce("No workflow ID provided.")})();this.currencyCode=i.product.partner?.currencyCode;const s={product:i.product,transaction:i,layouts:[],stateMutationFunc:r?async()=>{throw new re("State mutation is forbidden in read only mode!")}:async t=>{const e=(we.getMap("transactionOwnerIds")||new Map).get(i.id)||void 0;return this.updateTransactionState({...t,context:{transactionOwnerId:e}})},readOnly:r,workflow:o};if("transaction"===n.type&&i.workflowState){const t=JSON.parse(i.workflowState);s.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await a(t),s.reloadedState=t}else if(!r&&n.workflowState){const t=JSON.parse(n.workflowState);s.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await a(t),s.reloadedState=t}else s.layouts=so(s.transaction,s.workflow);if(s.renderableContextService=new vn(s.layouts),n.previewService?(s.previewService=n.previewService,s.product?.modelUrl&&(s.modelContainer=s.previewService.loadModel({model:s.product.modelUrl,contextService:s.renderableContextService}))):(s.previewService=A&&A(o),s.product?.modelUrl&&(s.previewService?.initialize({model:s.product.modelUrl,contextService:s.renderableContextService}),s.modelContainer=s.previewService?.getAllModels()[0])),"transaction"!==n.type){const t=we.getMap("transactionOwnerIds")||new Map;t.set(i.id,i.transactionOwnerId),Qe(i.transactionOwnerId||""),we.setMap("transactionOwnerIds",t)}else{const t=(we.getMap("transactionOwnerIds")||new Map).get(i.id);t&&Qe(t),s.isReloadedTransaction=!0}this.initialized=!0,this.experienceOptions=s;const c=new ri(this,s);return await c.getWorkflowManager().getInitializationPromise(),"transaction"!==n.type&&this.customer&&await c.attachCustomerDetails({email:this.customer.emailAddress}),c}async getWorkflowExperiences(t,e){if(0===t.length)throw new ce("No options provided!");const A=ye.getShadowGraphqlClient(),n=t.map(((t,e)=>({option:t,index:e}))),a=n.filter((t=>"transaction"===t.option.type)),i=n.filter((t=>"integration"===t.option.type||"external"===t.option.type)),o=(await Promise.all([(async()=>{if(0===a.length)return[];const t=a.map((t=>t.option.transactionId)),e=await A.query({query:Ln,variables:{ids:t},errorPolicy:"all",fetchPolicy:"no-cache"}),n=e.data.transactions;if(n.length!==a.length){const t=e.errors?.[0]?.message||"Unknown error";throw new ce(`Not all transactions were found: ${t}`)}return n.map(((t,e)=>({transaction:t,workflowId:t.workflowId,readOnly:a.find((e=>e.option.transactionId===t.id))?.option.readOnly??!1,index:a[e].index})))})(),(async()=>{if(0===i.length)return[];const t=await A.mutate({mutation:Jn,variables:{inputs:i.map((t=>({integrationProductId:"integration"===t.option.type?t.option.integrationProductId:void 0,externalIntegrationId:"external"===t.option.type?t.option.externalIntegrationId:void 0,externalProductId:"external"===t.option.type?t.option.externalProductId:void 0,workflowId:t.option.workflowId,bulk:t.option.bulk,claim:!0})))},errorPolicy:"all",fetchPolicy:"no-cache"}),e=t.data?.transactionCreateMany;if(!e||0===e.length){const e=t.errors?.[0]?.message||"Unknown error";throw new ce(`Failed to create transactions: ${e}`)}return e.map(((t,e)=>({transaction:t,workflowId:t.workflowId,readOnly:!1,index:i[e].index})))})()])).flat(),r=[...new Set(o.map((t=>t.workflowId)))],s=await oo(r,e),c=new Map(s.map((t=>[t.id,t]))),g=async t=>{for(const e in t.layouts){const A=t.layouts[e].elements.filter((t=>t.type===h.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await wt(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===h.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&H(e.fontData.assetUrl)}}},l=we.getMap("transactionOwnerIds")||new Map,B=o.map((async e=>{const{transaction:A,workflowId:n,readOnly:a,index:i}=e,o=c.get(n),r=t[i];!l.get(A.id)&&A.transactionOwnerId&&l.set(A.id,A.transactionOwnerId);const s=l.get(A.id)||void 0,B={product:A.product,transaction:A,layouts:[],stateMutationFunc:a?async()=>{throw new re("State mutation is forbidden in read only mode!")}:async t=>this.updateTransactionState({...t,context:{transactionOwnerId:s}}),readOnly:a,workflow:o,isReloadedTransaction:"transaction"===r.type};if("transaction"===r.type&&A.workflowState){const t=JSON.parse(A.workflowState);B.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await g(t),B.reloadedState=t}else if(!a&&r.workflowState){const t=JSON.parse(r.workflowState);B.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await g(t),B.reloadedState=t}else B.layouts=so(B.transaction,B.workflow);return B.renderableContextService=new vn(B.layouts),this.initialized=!0,this.experienceOptions=B,{experienceOptions:B,index:i,options:r}}));we.setMap("transactionOwnerIds",l);const d=(await Promise.all(B)).sort(((t,e)=>t.index-e.index)).map((async t=>{const{experienceOptions:e,options:A}=t,n=new ri(this,e);return await n.getWorkflowManager().getInitializationPromise(),"transaction"!==A.type&&this.customer&&await n.attachCustomerDetails({email:this.customer.emailAddress}),n}));return await Promise.all(d)}async initFromIntegrationProduct(t){if(""===t)throw new ce("No integration product ID provided.");const e=ye.getShadowGraphqlClient(),A=await e.mutate({mutation:Gn,variables:{integrationProductId:t,bulk:this.options.bulk||!1,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 ce("Failed to create transaction!");const n=A.data.transactionCreate;if(!n.product)throw new ce("Failed to create transaction, product not available.");this.currencyCode=n.product.partner?.currencyCode;const a=we.getMap("transactionOwnerIds")||new Map;a.set(n.id,n.transactionOwnerId),Qe(n.transactionOwnerId||""),we.setMap("transactionOwnerIds",a),this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState},this.initialized=!0}async initFromTransaction(t,e=!1){if(""===t)throw new ce("No transaction ID provided.");const A=ye.getShadowGraphqlClient();if(e)return await(async()=>{const n=(await A.query({query:Ln,variables:{ids:[t]},fetchPolicy:"no-cache",errorPolicy:"all"})).data?.transactions[0];if(!n)throw new ce("Failed to read transaction.");if(!n.product)throw new ce("Failed to load transaction, product not available.");this.currencyCode=n.product.partner?.currencyCode,this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:async()=>{throw new re("State mutation is forbidden in read only mode!")},readOnly:e},this.initialized=!0})();const n=we.getMap("transactionOwnerIds")||new Map,a=n.get(t);if(a){Qe(a);const n=(await A.query({query:Ln,variables:{ids:[t]},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new ce("Failed to read transaction.");if(!n.product)throw new ce("Failed to load transaction, product not available.");return this.currencyCode=n.product.partner?.currencyCode,this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:e},void(this.initialized=!0)}try{const a=(await A.mutate({mutation:Tn,variables:{id:t},errorPolicy:"all"})).data?.transactionClaim;if(!a)throw new ce("Failed to read transaction.");if(!a.product)throw new ce("Failed to load transaction, product not available.");this.currencyCode=a.product.partner?.currencyCode,a.transactionOwnerId&&(n.set(a.id,a.transactionOwnerId),Qe(a.transactionOwnerId),we.setMap("transactionOwnerIds",n)),this.experienceOptions={product:a.product,transaction:a,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:e},this.initialized=!0}catch{throw new ce("Attempted to access a transaction that isn't available.")}}async getWorkflowExperienceDeprecated(t,e,A){if(!this.initialized||!this.experienceOptions)throw new ce("Cannot launch experience: Not initialized.");const n=async t=>{for(const e in t.layouts){const A=t.layouts[e].elements.filter((t=>t.type===h.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await wt(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===h.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&H(e.fontData.assetUrl)}}};if(this.experienceOptions.transaction.workflowId){const t=await ro(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=t,this.experienceOptions.transaction.workflowState){const t=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await n(t),this.experienceOptions.reloadedState=t}this.experienceOptions.previewService=A&&A(t),this.experienceOptions.renderableContextService=new vn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&(this.experienceOptions.previewService?.initialize({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}),this.experienceOptions.modelContainer=this.experienceOptions.previewService?.getAllModels()[0]);const e=new ri(this,this.experienceOptions);return await e.getWorkflowManager().getInitializationPromise(),e}if(t){const a=ye.getShadowGraphqlClient().mutate({mutation:zn,variables:{workflowId:t,id:this.experienceOptions.transaction.id}}),i=ro(t);if(await Promise.all([a,i]),this.experienceOptions.workflow=await i,e){const t=JSON.parse(e);this.experienceOptions.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await n(t),this.experienceOptions.reloadedState=t}else this.experienceOptions.layouts=so(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(await i),this.experienceOptions.renderableContextService=new vn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&(this.experienceOptions.previewService?.initialize({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}),this.experienceOptions.modelContainer=this.experienceOptions.previewService?.getAllModels()[0]);const o=new ri(this,this.experienceOptions);return await o.getWorkflowManager().getInitializationPromise(),o}throw new ce("No workflow ID provided.")}getPreviewService(){return this.experienceOptions?.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new ce("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new ce("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}storeCustomer(t){const e=we.getMap("partnerCustomerIds")||new Map;e.set(t.partner.id,t.id),we.setMap("partnerCustomerIds",e)}}function go(t,e,A){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var A=t[Symbol.toPrimitive];if(void 0!==A){var n=A.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:A,enumerable:!0,configurable:!0,writable:!0}):t[e]=A,t}class lo{constructor(){go(this,"getProduct",void 0),go(this,"getCommandContext",void 0),go(this,"getAllLayoutData",void 0),go(this,"getMetadata",void 0),go(this,"getWorkflowMetadata",void 0),go(this,"getStepStorage",void 0),go(this,"setModelContainer",void 0),go(this,"getUpdatesPending",void 0)}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}getVariationRecords(){return[]}async reset(){}updateStateWithServer(t){}addVariationRecord(t){return{recordNumber:0,transactionId:"",values:[]}}getCurrentVariationRecord(){}removeVariationRecord(t){return[]}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(t){}addPoller(t){}addConfirmCallback(t){}addCurrentVariationCallback(t){}addEditedCallback(t){}addElementsCallback(t){}addInformationResultCallback(t){}addInitCallback(t){}addMakingAdjustmentsCallback(t){}addMandatoryCallback(t){}addMetadataCallback(t){}addSelectionCallback(t){}addStepSpecificStorageCallback(t,e){}addStorageCallback(t){}addVariationRecordsCallback(t){}getCommandDispatcher(){return t=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getModelContainer(){}getProfanities(){return[]}getRegionElements(t){return[]}getSerializedStep(t,e){}getStepSpecificServices(t){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(t){}markUpdateCompleted(t){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(t){}setCurrentVariationRecord(t){}setEditedStatus(t,e){}setInformationResults(t){}setMandatoryFulfilled(t,e){}async setSelectionsAndElements(t,e,A){}setVariationRecords(t){}toggleDesignConfirmed(){}updateMetadata(t,e){}async updateStorage(t,e){}injectIntoPreviewService(t){return Promise.resolve()}ejectFromPreviewService(){}}function Bo(t,e,A){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var A=t[Symbol.toPrimitive];if(void 0!==A){var n=A.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:A,enumerable:!0,configurable:!0,writable:!0}):t[e]=A,t}let wo;var ho;(ho=wo||(wo={})).SelectFrame="SelectFrame",ho.SelectImage="SelectImage",ho.Position="Position";class Eo extends Na{constructor(t,e){super(t,e),Bo(this,"frameService",this.manager.getStepSpecificServices(this.getId())?.frameService)}selectVariant(t){const e=this.manager.getRegionElements(this.step.stepName);return la.selectVariant(this.step,t.getResource(),e,this.manager,(t=>this.setUpdateState(t)))}onFrameDataChanged(t){this.frameService&&this.frameService.onFrameDataChanged((e=>{e&&t(e)}))}selectImage(t){return la.selectImage(this.step,t,this.manager)}getImageData(){if(this.frameService)return this.frameService.getImageData()}getCurrentFrameStep(t,e,A,n){return n&&n.length>1&&void 0===t?wo.SelectFrame:e||A||this.getImageData()?wo.Position:wo.SelectImage}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasOverlayImageUrl(){return this.step.data.overlayImageUrl}hasVaryingUpload(){return this.step.data.varyUpload}hasVaryingSelection(){return this.step.data.varySelection}}const uo=t=>{const e=Gt(null),A=Gt(void 0),[n,a]=Nt(void 0),{addEvent:i,removeEvent:o,updateEvent:r,eventCache:s}=je(),[c,g]=Nt(!1),[l,B]=Nt(!1),{state:d,uiDispatcher:w}=eA(),h=Rt((t=>{const e=t;w(new tA({zoom:Math.max(.1,Math.min(e,d.maxZoom))}))}),[w,d.maxZoom]),E=Rt((t=>{o(t),1===s.length&&(A.current=void 0),2===s.length&&a(void 0);"touch"===t.pointerType&&s.length>1&&s.length-1==1&&(B(!1),g(!1))}),[o,s.length]),u=Rt((t=>{i(t);"touch"===t.pointerType&&1===s.length&&(w(new tA({selectedElement:void 0})),B(!0),g(!0))}),[i,s.length,w]),C=Rt((t=>{r(t);const e=1===s.length&&"touch"!==s[0].pointerType,i=2===s.length&&"touch"===s[0].pointerType;if(c&&i){const[t,e]=s,A=Math.abs(t.clientX-e.clientX),i=n;i&&h(d.zoom-.0055*(i-A)),a(A)}if(l&&(e||i)&&t.isPrimary){const e=(A?.current?.x||t.screenX)-t.screenX,n=(A?.current?.y||t.screenY)-t.screenY;w(new tA({selectedElement:void 0,xTranslation:d.xTranslation-e/d.zoom,yTranslation:d.yTranslation-n/d.zoom}))}t.isPrimary&&(A.current={x:t.screenX,y:t.screenY})}),[r,s,c,l,n,h,d.zoom,d.xTranslation,d.yTranslation,w]),Q=Rt((t=>{c&&h(d.zoom-.035*Math.sign(t.deltaY))}),[h,d.zoom,c]);bt((()=>{if(!e.current||0===s.length)return;const t=s[0].pointerId,A=e.current.hasPointerCapture(t);l&&!A&&e.current.setPointerCapture(t),!l&&A&&e.current.releasePointerCapture(t)}),[e,l,s]),KA([" "],(()=>{B(!0),w(new tA({selectedElement:void 0}))}),(()=>B(!1))),KA(["Control"],(()=>g(!0)),(()=>g(!1)));const p=Ut((()=>({cursor:l&&0===s.length?"grab":l&&1===s.length?"grabbing":c?"zoom-in":void 0,width:"100%",height:"100%",overflow:"clip"})),[l,c,s]);return Jt("div",{ref:e,className:"transform-wrapper",onWheel:Q,onPointerDown:u,onPointerUp:E,onPointerCancel:E,onPointerLeave:E,onPointerMove:C,style:p,children:t.children})};export{co as SpiffCommerceClient,t as CommandContext,Ee as spiffCoreConfiguration,qA as PromiseQueue,XA as QueueablePromise,lo as MockWorkflowManager,Ma as InformationMessageType,Na as StepHandle,za as TextStepHandle,Eo as FrameStepHandle,ka as BulkStepHandle,Oa as ShapeStepHandle,Ua as IllustrationStepHandle,Ga as MaterialStepHandle,Ja as ModelStepHandle,Ta as PictureStepHandle,La as QuestionStepHandle,Di as GlobalPropertyHandle,oA as BulkPriceCalculationStrategy,xa as Variant,ri as WorkflowExperienceImpl,ee as OptionNotFoundError,Ae as LayoutNotFoundError,ne as AssetNotFoundError,ae as ResourceNotFoundError,ie as MisconfigurationError,se as ParseError,re as UnhandledBehaviorError,be as assetService,ii as designService,ei as createDesign,Oe as optionService,we as persistenceService,ye as graphQlManager,EA as toast,na as FrameService,ea as getBoundedOffsets,la as frameStepService,wa as modelStepService,da as materialStepService,Qa as shapeStepService,ua as questionStepService,ca as digitalContentStepService,ha as moduleStepService,Ea as pictureStepService,Ia as textStepService,Ba as illustrationStepService,aA as ProductCameraRig,wo as FrameStep,sA as ConversionLocation,gA as ConversionDataType,ro as getWorkflow,oo as getWorkflows,oa as shortenUrl,Ki as ObjectInput,Vi as TextInput,zi as ObjectInputType,bi as ProductCollection,ki as CollectionProduct,e as AssetType,A as BringForwardCommand,n as BringToFrontCommand,a as BringToBackCommand,i as CanvasCommand,o as CreateElementCommand,r as CreateLayoutCommand,s as DeleteElementCommand,c as FontAlignmentCommand,g as FontColorCommand,l as FontSizeCommand,B as FontSourceCommand,d as GroupCommand,w as LayoutElementFactory,h as LayoutElementType,E as MoveCommand,u as ResizeCommand,C as RotateCommand,Q as SendBackwardsCommand,BA as StakeholderType,p as StepAspectType,m as StepType,f as TextChangeCommand,D as UnitOfMeasurement,I as dataUrlFromExternalUrl,y as findElement,M as frameDataCache,F as generate,S as getAxisAlignedBoundingBox,Y as generateSVGWithUnknownColors,v as getAttributesFromArrayBuffer,x as rehydrateSerializedLayout,P as getFrameData,N as getSvgElement,R as loadFontFromDataUrl,H as loadFontFromExternalUrl,b as determineCorrectFontSizeAndLines,k as patternImageDataCache,Sn as generateCommands,U as registerJSDOM,OA as minZoom,Un as AdvancedEditor,uo as TransformWrapper,kn as EditorCore,Ke as useLayouts,eA as useEditorState,jA as useEditorInteraction,KA as useShortcutCombination,Ze as commandReducer,qe as getDefaultState,ze as CommandContextContext,_e as AdvancedEditorStateProvider,$e as AdvancedEditorContext,tA as UICommand,We as EditorSubMenu,uA as ElementEventType,QA as KeyEvent,Vn as gatherVaryingStepAspects};
|
|
1583
|
+
`),errorPolicy:"all",fetchPolicy:"no-cache",variables:{ids:t}});var n;const a=A.data.workflows;if(void 0===a||a.length!==t.length)throw new Error(`Unable to read workflows: ${A.errors??"Length mismatch in response"}`);return a.forEach((t=>{t.steps.forEach((t=>{delete t.data.__typename,t.option?.id&&(t.option.defaultVariant?.asset&&be.cacheAsset(t.option.defaultVariant.asset),t.option.colorProfile&&be.cacheAsset(t.option.colorProfile),t.option.variants?.forEach((t=>{t.asset&&be.cacheAsset(t.asset),t.displayImage&&be.cacheAsset(t.displayImage),t.thumbnail&&be.cacheAsset(t.thumbnail),t.material&&be.cacheMaterial(t.material)})),Ue.set({id:t.option.id},Promise.resolve(t.option)))}))})),a})(n,e),i=n.map((t=>Ue.set({id:t,options:e},(async(t,e)=>{const A=(await e).find((e=>e.id===t));if(!A)throw new Error(`Workflow not found: ${t}`);return A})(t,a)))),o=A.filter((t=>void 0!==t));return await Promise.all(o.concat(i))},ro=async(t,e)=>(await oo([t],e))[0],so=(t,e)=>{const A=t.workflowState,n=A?JSON.parse(A):void 0;return n?Object.values(n.layouts).map((t=>t.layout)):e.panels.sort(((t,e)=>t.index-e.index)).map((t=>({id:F(),panelId:t.name,name:t.name,index:t.index,createdAt:new Date,updatedAt:new Date,transparentBackground:t.transparentBackground,height:t.height,width:t.width,previewRegion:t.previewRegion,useEditableArea:t.useEditableArea,editableArea:t.editableArea})))};class co{constructor(t){var e;Wi(this,"options",void 0),Wi(this,"initialized",void 0),Wi(this,"currencyCode",void 0),Wi(this,"customer",void 0),Wi(this,"experienceOptions",void 0),Wi(this,"updateTransactionState",(async t=>{try{return ye.getShadowGraphqlClient().mutate({...t,mutation:On})}catch(t){throw console.error(t),new ce("Critical - Unable to synchronize workflow state with server.")}})),this.initialized=!1,this.options=t,this.options.applicationKey&&(e=this.options.applicationKey,Ie=e)}getAssetManager(){return be}getCurrencyCode(){if(void 0===this.currencyCode)throw new Error("No currency code set.");return this.currencyCode}getFlowService(){if(!this.options.applicationKey)throw new Error("Application key required to use Flow Service.");return new Li}async authenticateBundleFromLocalStorage(t){const e=we.getMap("bundleOwnerIds");if(e?.has(t)){const A=e.get(t);return me(A),Promise.resolve({success:!0,stakeholderType:BA.Owner})}const A=we.getMap("bundlePartnerIds")||new Map;if(A.has(t)){const e=A.get(t),n=(we.getMap("partnerCustomerIds")||new Map).get(e);if(n){if(await this.authenticateCustomerId(n)){const e=this.customer?.bundleStakeholders?.find((e=>e.bundle?.id===t));if(e)return Promise.resolve({success:!0,stakeholderType:e.type})}}}return Promise.resolve({success:!1})}async authenticateTransactionFromLocalStorage(t){const e=ye.getShadowGraphqlClient(),A=await e.query({query:_i,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:t}});if(!A.data.transactions||0===A.data.transactions.length)throw new Error(`Transaction not found: ${t}`);const n=A.data.transactions[0],a=n.product?.partner?.id;if(!a)throw new Error(`Unable to read transaction: ${t}`);if(n.isOrdered)return Promise.resolve({success:!1,transactionReadOnly:!0});const i=we.getMap("transactionOwnerIds");if(i?.has(t)){const e=i.get(t);return Qe(e),Promise.resolve({success:!0,stakeholderType:BA.Owner})}const o=we.getMap("transactionCustomerIds");if(o?.has(t)){const e=o.get(t);if(e){if(await this.authenticateCustomerId(e)){const e=this.customer?.bundleStakeholders?.find((e=>e.bundle?.transactions?.some((e=>e.id===t))))||this.customer?.stakeholders?.find((e=>e.transaction?.id===t));if(e)return Promise.resolve({success:!0,stakeholderType:e.type})}}}const r=(await e.query({query:to,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(t){const e=we.getMap("transactionCustomerIds");e?.has(t)&&(e.delete(t),we.setMap("transactionCustomerIds",e))}getStakeholderTypeForTransaction(t){const e=this.customer?.stakeholders?.find((e=>e.transaction?.id===t));if(e)return e.type}async getOrCreateCustomer(t){this.customer=void 0;const e=ye.getShadowGraphqlClient(),A=(await e.query({query:eo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:t}})).data.customer;if(!A.id){const A=(await e.mutate({mutation:Ao,errorPolicy:"all",fetchPolicy:"no-cache",variables:{details:{emailAddress:t}}})).data?.customerCreate;if(!A)throw new Error("Unable to create customer.");return this.storeCustomer(A),this.customer=A,{customer:A,isAuthenticated:!1}}this.storeCustomer(A);const n=await this.authenticateCustomerId(A.id);return{customer:this.customer||A,isAuthenticated:n}}async authenticateCustomerId(t){const e=ye.getShadowGraphqlClient(),A=we.getMap("customerTokens");if(!A?.has(t))return!1;const n=A.get(t);if(!n)return!1;const a=(await e.mutate({mutation:no,errorPolicy:"all",fetchPolicy:"no-cache",variables:{loginToken:n}})).data?.customerAuthenticate;return!!a&&(this.storeCustomer(a),De(n),this.customer=a,!0)}async generateVerificationCode(t){await ye.getShadowGraphqlClient().mutate({mutation:ao,variables:{emailAddress:t}})}async verifyCode(t,e){const A=(await ye.getShadowGraphqlClient().mutate({mutation:io,errorPolicy:"all",fetchPolicy:"no-cache",variables:{emailAddress:t,verificationCode:e}})).data?.customerVerifyCode;if(A?.loginToken){if(!A.partner?.id)throw new Error(`Unable to find customer: ${t}`);const e=we.getMap("customerTokens")||new Map;return e.set(A.id,A.loginToken),we.setMap("customerTokens",e),this.storeCustomer(A),De(A.loginToken),this.customer={...A,loginToken:void 0},!0}return!1}async getNewBundle(t){const e=(await ye.getShadowGraphqlClient().mutate({mutation:Bi,variables:{collectionId:t},fetchPolicy:"no-cache"})).data?.bundleCreate;if(!e?.id)throw new Error("Unable to create bundle");const A=we.getMap("bundlePartnerIds")||new Map;A.set(e.id,e.partner.id),we.setMap("bundlePartnerIds",A),me(e.bundleOwnerId);const n=we.getMap("bundleOwnerIds")||new Map;return n.set(e.id,e.bundleOwnerId),we.setMap("bundleOwnerIds",n),new Gi(this,e)}async getExistingBundle(t,e,A){const n=we.getMap("bundleOwnerIds")?.get(t);n&&me(n);const a=await ye.getShadowGraphqlClient().query({query:ci,variables:{id:t},fetchPolicy:"no-cache"});if(!a.data?.bundles||0===a.data?.bundles.length||!a.data?.bundles[0])throw new Error(`Unable to find bundle: ${t}`);const i=a.data?.bundles[0],o=we.getMap("bundlePartnerIds")||new Map;o.set(i.id,i.partner.id),we.setMap("bundlePartnerIds",o);const r=new Gi(this,i,e,A);return await r.getInitializationPromise(),r}async getBundleStakeholders(){if(!this.customer)throw new Error("Customer not authenticated.");const t=await ye.getShadowGraphqlClient().query({query:li,variables:{id:this.customer.id},fetchPolicy:"no-cache"});if(!t.data?.customers||0===t.data.customers.length)throw new Error("Unable to find customer.");return t.data.customers[0].bundleStakeholders||[]}async getWorkflowExperience(t,e,A,n){if(!n)return await this.getWorkflowExperienceDeprecated(t,e,A);const a=async t=>{for(const e in t.layouts){const A=t.layouts[e].elements.filter((t=>t.type===h.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await wt(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===h.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&H(e.fontData.assetUrl)}}},{transaction:i,workflow:o,readOnly:r}=await(async()=>{const t=ye.getShadowGraphqlClient();if("transaction"===n.type){const{transactionId:e,readOnly:A}=n,a=await t.query({query:Ln,variables:{ids:[e]},errorPolicy:"all",fetchPolicy:"no-cache"});if(!a.data?.transactions||0===a.data.transactions.length)throw new ce("Existing transaction not found.");const i=a.data?.transactions[0];if(!i.workflowId)throw new ce("Existing transaction has no workflow ID.");const o=await ro(i.workflowId);if(!i.product)throw new ce("Failed to load transaction, product not available.");return{transaction:i,workflow:o,readOnly:A}}if("integration"===n.type||"external"===n.type){const e=async()=>{const e="integration"===n.type?{integrationProductId:n.integrationProductId}:{externalIntegrationId:n.externalIntegrationId,externalProductId:n.externalProductId},A=await t.mutate({mutation:Gn,variables:{...e,bulk:n.bulk,workflowId:n.workflowId,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 ce("Failed to create transaction!");const a=A.data.transactionCreate;if(!a.product)throw new ce("Failed to create transaction, product not available.");return a},A=ro(n.workflowId,n?.graphql),[a,i]=await Promise.all([e(),A]);return{transaction:a,workflow:i}}throw new ce("No workflow ID provided.")})();this.currencyCode=i.product.partner?.currencyCode;const s={product:i.product,transaction:i,layouts:[],stateMutationFunc:r?async()=>{throw new re("State mutation is forbidden in read only mode!")}:async t=>{const e=(we.getMap("transactionOwnerIds")||new Map).get(i.id)||void 0;return this.updateTransactionState({...t,context:{transactionOwnerId:e}})},readOnly:r,workflow:o};if("transaction"===n.type&&i.workflowState){const t=JSON.parse(i.workflowState);s.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await a(t),s.reloadedState=t}else if(!r&&n.workflowState){const t=JSON.parse(n.workflowState);s.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await a(t),s.reloadedState=t}else s.layouts=so(s.transaction,s.workflow);if(s.renderableContextService=new vn(s.layouts),n.previewService?(s.previewService=n.previewService,s.product?.modelUrl&&(s.modelContainer=s.previewService.loadModel({model:s.product.modelUrl,contextService:s.renderableContextService}))):(s.previewService=A&&A(o),s.product?.modelUrl&&(s.previewService?.initialize({model:s.product.modelUrl,contextService:s.renderableContextService}),s.modelContainer=s.previewService?.getAllModels()[0])),"transaction"!==n.type){const t=we.getMap("transactionOwnerIds")||new Map;t.set(i.id,i.transactionOwnerId),Qe(i.transactionOwnerId||""),we.setMap("transactionOwnerIds",t)}else{const t=(we.getMap("transactionOwnerIds")||new Map).get(i.id);t&&Qe(t),s.isReloadedTransaction=!0}this.initialized=!0,this.experienceOptions=s;const c=new ri(this,s);return await c.getWorkflowManager().getInitializationPromise(),"transaction"!==n.type&&this.customer&&await c.attachCustomerDetails({email:this.customer.emailAddress}),c}async getWorkflowExperiences(t,e){if(0===t.length)throw new ce("No options provided!");const A=ye.getShadowGraphqlClient(),n=t.map(((t,e)=>({option:t,index:e}))),a=n.filter((t=>"transaction"===t.option.type)),i=n.filter((t=>"integration"===t.option.type||"external"===t.option.type)),o=(await Promise.all([(async()=>{if(0===a.length)return[];const t=a.map((t=>t.option.transactionId)),e=await A.query({query:Ln,variables:{ids:t},errorPolicy:"all",fetchPolicy:"no-cache"}),n=e.data.transactions;if(n.length!==a.length){const t=e.errors?.[0]?.message||"Unknown error";throw new ce(`Not all transactions were found: ${t}`)}return n.map(((t,e)=>({transaction:t,workflowId:t.workflowId,readOnly:a.find((e=>e.option.transactionId===t.id))?.option.readOnly??!1,index:a[e].index})))})(),(async()=>{if(0===i.length)return[];const t=await A.mutate({mutation:Jn,variables:{inputs:i.map((t=>({integrationProductId:"integration"===t.option.type?t.option.integrationProductId:void 0,externalIntegrationId:"external"===t.option.type?t.option.externalIntegrationId:void 0,externalProductId:"external"===t.option.type?t.option.externalProductId:void 0,workflowId:t.option.workflowId,bulk:t.option.bulk,claim:!0})))},errorPolicy:"all",fetchPolicy:"no-cache"}),e=t.data?.transactionCreateMany;if(!e||0===e.length){const e=t.errors?.[0]?.message||"Unknown error";throw new ce(`Failed to create transactions: ${e}`)}return e.map(((t,e)=>({transaction:t,workflowId:t.workflowId,readOnly:!1,index:i[e].index})))})()])).flat(),r=[...new Set(o.map((t=>t.workflowId)))],s=await oo(r,e),c=new Map(s.map((t=>[t.id,t]))),g=async t=>{for(const e in t.layouts){const A=t.layouts[e].elements.filter((t=>t.type===h.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await wt(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===h.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&H(e.fontData.assetUrl)}}},l=we.getMap("transactionOwnerIds")||new Map,B=o.map((async e=>{const{transaction:A,workflowId:n,readOnly:a,index:i}=e,o=c.get(n),r=t[i];!l.get(A.id)&&A.transactionOwnerId&&l.set(A.id,A.transactionOwnerId);const s=l.get(A.id)||void 0,B={product:A.product,transaction:A,layouts:[],stateMutationFunc:a?async()=>{throw new re("State mutation is forbidden in read only mode!")}:async t=>this.updateTransactionState({...t,context:{transactionOwnerId:s}}),readOnly:a,workflow:o,isReloadedTransaction:"transaction"===r.type};if("transaction"===r.type&&A.workflowState){const t=JSON.parse(A.workflowState);B.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await g(t),B.reloadedState=t}else if(!a&&r.workflowState){const t=JSON.parse(r.workflowState);B.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await g(t),B.reloadedState=t}else B.layouts=so(B.transaction,B.workflow);return B.renderableContextService=new vn(B.layouts),this.initialized=!0,this.experienceOptions=B,{experienceOptions:B,index:i,options:r}}));we.setMap("transactionOwnerIds",l);const d=(await Promise.all(B)).sort(((t,e)=>t.index-e.index)).map((async t=>{const{experienceOptions:e,options:A}=t,n=new ri(this,e);return await n.getWorkflowManager().getInitializationPromise(),"transaction"!==A.type&&this.customer&&await n.attachCustomerDetails({email:this.customer.emailAddress}),n}));return await Promise.all(d)}async initFromIntegrationProduct(t){if(""===t)throw new ce("No integration product ID provided.");const e=ye.getShadowGraphqlClient(),A=await e.mutate({mutation:Gn,variables:{integrationProductId:t,bulk:this.options.bulk||!1,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 ce("Failed to create transaction!");const n=A.data.transactionCreate;if(!n.product)throw new ce("Failed to create transaction, product not available.");this.currencyCode=n.product.partner?.currencyCode;const a=we.getMap("transactionOwnerIds")||new Map;a.set(n.id,n.transactionOwnerId),Qe(n.transactionOwnerId||""),we.setMap("transactionOwnerIds",a),this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState},this.initialized=!0}async initFromTransaction(t,e=!1){if(""===t)throw new ce("No transaction ID provided.");const A=ye.getShadowGraphqlClient();if(e)return await(async()=>{const n=(await A.query({query:Ln,variables:{ids:[t]},fetchPolicy:"no-cache",errorPolicy:"all"})).data?.transactions[0];if(!n)throw new ce("Failed to read transaction.");if(!n.product)throw new ce("Failed to load transaction, product not available.");this.currencyCode=n.product.partner?.currencyCode,this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:async()=>{throw new re("State mutation is forbidden in read only mode!")},readOnly:e},this.initialized=!0})();const n=we.getMap("transactionOwnerIds")||new Map,a=n.get(t);if(a){Qe(a);const n=(await A.query({query:Ln,variables:{ids:[t]},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new ce("Failed to read transaction.");if(!n.product)throw new ce("Failed to load transaction, product not available.");return this.currencyCode=n.product.partner?.currencyCode,this.experienceOptions={product:n.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:e},void(this.initialized=!0)}try{const a=(await A.mutate({mutation:Tn,variables:{id:t},errorPolicy:"all"})).data?.transactionClaim;if(!a)throw new ce("Failed to read transaction.");if(!a.product)throw new ce("Failed to load transaction, product not available.");this.currencyCode=a.product.partner?.currencyCode,a.transactionOwnerId&&(n.set(a.id,a.transactionOwnerId),Qe(a.transactionOwnerId),we.setMap("transactionOwnerIds",n)),this.experienceOptions={product:a.product,transaction:a,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:e},this.initialized=!0}catch{throw new ce("Attempted to access a transaction that isn't available.")}}async getWorkflowExperienceDeprecated(t,e,A){if(!this.initialized||!this.experienceOptions)throw new ce("Cannot launch experience: Not initialized.");const n=async t=>{for(const e in t.layouts){const A=t.layouts[e].elements.filter((t=>t.type===h.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await wt(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===h.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&H(e.fontData.assetUrl)}}};if(this.experienceOptions.transaction.workflowId){const t=await ro(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=t,this.experienceOptions.transaction.workflowState){const t=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await n(t),this.experienceOptions.reloadedState=t}this.experienceOptions.previewService=A&&A(t),this.experienceOptions.renderableContextService=new vn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&(this.experienceOptions.previewService?.initialize({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}),this.experienceOptions.modelContainer=this.experienceOptions.previewService?.getAllModels()[0]);const e=new ri(this,this.experienceOptions);return await e.getWorkflowManager().getInitializationPromise(),e}if(t){const a=ye.getShadowGraphqlClient().mutate({mutation:zn,variables:{workflowId:t,id:this.experienceOptions.transaction.id}}),i=ro(t);if(await Promise.all([a,i]),this.experienceOptions.workflow=await i,e){const t=JSON.parse(e);this.experienceOptions.layouts=Object.values(t.layouts).map((t=>t.layout)),await x(t),await n(t),this.experienceOptions.reloadedState=t}else this.experienceOptions.layouts=so(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(await i),this.experienceOptions.renderableContextService=new vn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&(this.experienceOptions.previewService?.initialize({model:this.experienceOptions.product.modelUrl,contextService:this.experienceOptions.renderableContextService}),this.experienceOptions.modelContainer=this.experienceOptions.previewService?.getAllModels()[0]);const o=new ri(this,this.experienceOptions);return await o.getWorkflowManager().getInitializationPromise(),o}throw new ce("No workflow ID provided.")}getPreviewService(){return this.experienceOptions?.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new ce("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new ce("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}storeCustomer(t){const e=we.getMap("partnerCustomerIds")||new Map;e.set(t.partner.id,t.id),we.setMap("partnerCustomerIds",e)}}function go(t,e,A){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var A=t[Symbol.toPrimitive];if(void 0!==A){var n=A.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:A,enumerable:!0,configurable:!0,writable:!0}):t[e]=A,t}class lo{constructor(){go(this,"getProduct",void 0),go(this,"getCommandContext",void 0),go(this,"getAllLayoutData",void 0),go(this,"getMetadata",void 0),go(this,"getWorkflowMetadata",void 0),go(this,"getStepStorage",void 0),go(this,"setModelContainer",void 0),go(this,"getUpdatesPending",void 0)}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}getVariationRecords(){return[]}async reset(){}updateStateWithServer(t){}addVariationRecord(t){return{recordNumber:0,transactionId:"",values:[]}}getCurrentVariationRecord(){}removeVariationRecord(t){return[]}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(t){}addPoller(t){}addConfirmCallback(t){}addCurrentVariationCallback(t){}addEditedCallback(t){}addElementsCallback(t){}addInformationResultCallback(t){}addInitCallback(t){}addMakingAdjustmentsCallback(t){}addMandatoryCallback(t){}addMetadataCallback(t){}addSelectionCallback(t){}addStepSpecificStorageCallback(t,e){}addStorageCallback(t){}addVariationRecordsCallback(t){}getCommandDispatcher(){return t=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getModelContainer(){}getProfanities(){return[]}getRegionElements(t){return[]}getSerializedStep(t,e){}getStepSpecificServices(t){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(t){}markUpdateCompleted(t){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(t){}setCurrentVariationRecord(t){}setEditedStatus(t,e){}setInformationResults(t){}setMandatoryFulfilled(t,e){}async setSelectionsAndElements(t,e,A){}setVariationRecords(t){}toggleDesignConfirmed(){}updateMetadata(t,e){}async updateStorage(t,e){}injectIntoPreviewService(t){return Promise.resolve()}ejectFromPreviewService(){}}function Bo(t,e,A){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var A=t[Symbol.toPrimitive];if(void 0!==A){var n=A.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:A,enumerable:!0,configurable:!0,writable:!0}):t[e]=A,t}let wo;var ho;(ho=wo||(wo={})).SelectFrame="SelectFrame",ho.SelectImage="SelectImage",ho.Position="Position";class Eo extends Na{constructor(t,e){super(t,e),Bo(this,"frameService",this.manager.getStepSpecificServices(this.getId())?.frameService)}selectVariant(t){const e=this.manager.getRegionElements(this.step.stepName);return la.selectVariant(this.step,t.getResource(),e,this.manager,(t=>this.setUpdateState(t)))}onFrameDataChanged(t){this.frameService&&this.frameService.onFrameDataChanged((e=>{e&&t(e)}))}selectImage(t){return la.selectImage(this.step,t,this.manager)}getImageData(){if(this.frameService)return this.frameService.getImageData()}getCurrentFrameStep(t,e,A,n){return n&&n.length>1&&void 0===t?wo.SelectFrame:e||A||this.getImageData()?wo.Position:wo.SelectImage}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasOverlayImageUrl(){return this.step.data.overlayImageUrl}hasVaryingUpload(){return this.step.data.varyUpload}hasVaryingSelection(){return this.step.data.varySelection}}const uo=t=>{const e=Gt(null),A=Gt(void 0),[n,a]=Nt(void 0),{addEvent:i,removeEvent:o,updateEvent:r,eventCache:s}=je(),[c,g]=Nt(!1),[l,B]=Nt(!1),{state:d,uiDispatcher:w}=eA(),h=Rt((t=>{const e=t;w(new tA({zoom:Math.max(.1,Math.min(e,d.maxZoom))}))}),[w,d.maxZoom]),E=Rt((t=>{o(t),1===s.length&&(A.current=void 0),2===s.length&&a(void 0);"touch"===t.pointerType&&s.length>1&&s.length-1==1&&(B(!1),g(!1))}),[o,s.length]),u=Rt((t=>{i(t);"touch"===t.pointerType&&1===s.length&&(w(new tA({selectedElement:void 0})),B(!0),g(!0))}),[i,s.length,w]),C=Rt((t=>{r(t);const e=1===s.length&&"touch"!==s[0].pointerType,i=2===s.length&&"touch"===s[0].pointerType;if(c&&i){const[t,e]=s,A=Math.abs(t.clientX-e.clientX),i=n;i&&h(d.zoom-.0055*(i-A)),a(A)}if(l&&(e||i)&&t.isPrimary){const e=(A?.current?.x||t.screenX)-t.screenX,n=(A?.current?.y||t.screenY)-t.screenY;w(new tA({selectedElement:void 0,xTranslation:d.xTranslation-e/d.zoom,yTranslation:d.yTranslation-n/d.zoom}))}t.isPrimary&&(A.current={x:t.screenX,y:t.screenY})}),[r,s,c,l,n,h,d.zoom,d.xTranslation,d.yTranslation,w]),Q=Rt((t=>{c&&h(d.zoom-.035*Math.sign(t.deltaY))}),[h,d.zoom,c]);bt((()=>{if(!e.current||0===s.length)return;const t=s[0].pointerId,A=e.current.hasPointerCapture(t);l&&!A&&e.current.setPointerCapture(t),!l&&A&&e.current.releasePointerCapture(t)}),[e,l,s]),KA([" "],(()=>{B(!0),w(new tA({selectedElement:void 0}))}),(()=>B(!1))),KA(["Control"],(()=>g(!0)),(()=>g(!1)));const p=Ut((()=>({cursor:l&&0===s.length?"grab":l&&1===s.length?"grabbing":c?"zoom-in":void 0,width:"100%",height:"100%",overflow:"clip"})),[l,c,s]);return Jt("div",{ref:e,className:"transform-wrapper",onWheel:Q,onPointerDown:u,onPointerUp:E,onPointerCancel:E,onPointerLeave:E,onPointerMove:C,style:p,children:t.children})};export{co as SpiffCommerceClient,t as CommandContext,Ee as spiffCoreConfiguration,qA as PromiseQueue,XA as QueueablePromise,lo as MockWorkflowManager,Ma as InformationMessageType,Na as StepHandle,za as TextStepHandle,Eo as FrameStepHandle,ka as BulkStepHandle,Oa as ShapeStepHandle,ja as InformationStepHandle,Ua as IllustrationStepHandle,Ga as MaterialStepHandle,Ja as ModelStepHandle,Ta as PictureStepHandle,La as QuestionStepHandle,Di as GlobalPropertyHandle,oA as BulkPriceCalculationStrategy,xa as Variant,ri as WorkflowExperienceImpl,ee as OptionNotFoundError,Ae as LayoutNotFoundError,ne as AssetNotFoundError,ae as ResourceNotFoundError,ie as MisconfigurationError,se as ParseError,re as UnhandledBehaviorError,be as assetService,ii as designService,ei as createDesign,Oe as optionService,we as persistenceService,ye as graphQlManager,EA as toast,na as FrameService,ea as getBoundedOffsets,la as frameStepService,wa as modelStepService,da as materialStepService,Qa as shapeStepService,ua as questionStepService,ca as digitalContentStepService,ha as moduleStepService,Ea as pictureStepService,Ia as textStepService,Ba as illustrationStepService,aA as ProductCameraRig,wo as FrameStep,sA as ConversionLocation,gA as ConversionDataType,ro as getWorkflow,oo as getWorkflows,oa as shortenUrl,Ki as ObjectInput,Vi as TextInput,zi as ObjectInputType,bi as ProductCollection,ki as CollectionProduct,e as AssetType,A as BringForwardCommand,n as BringToFrontCommand,a as BringToBackCommand,i as CanvasCommand,o as CreateElementCommand,r as CreateLayoutCommand,s as DeleteElementCommand,c as FontAlignmentCommand,g as FontColorCommand,l as FontSizeCommand,B as FontSourceCommand,d as GroupCommand,w as LayoutElementFactory,h as LayoutElementType,E as MoveCommand,u as ResizeCommand,C as RotateCommand,Q as SendBackwardsCommand,BA as StakeholderType,p as StepAspectType,m as StepType,f as TextChangeCommand,D as UnitOfMeasurement,I as dataUrlFromExternalUrl,y as findElement,M as frameDataCache,F as generate,S as getAxisAlignedBoundingBox,Y as generateSVGWithUnknownColors,v as getAttributesFromArrayBuffer,x as rehydrateSerializedLayout,P as getFrameData,N as getSvgElement,R as loadFontFromDataUrl,H as loadFontFromExternalUrl,b as determineCorrectFontSizeAndLines,k as patternImageDataCache,Sn as generateCommands,U as registerJSDOM,OA as minZoom,Un as AdvancedEditor,uo as TransformWrapper,kn as EditorCore,Ke as useLayouts,eA as useEditorState,jA as useEditorInteraction,KA as useShortcutCombination,Ze as commandReducer,qe as getDefaultState,ze as CommandContextContext,_e as AdvancedEditorStateProvider,$e as AdvancedEditorContext,tA as UICommand,We as EditorSubMenu,uA as ElementEventType,QA as KeyEvent,Vn as gatherVaryingStepAspects};
|
|
1575
1584
|
//# sourceMappingURL=module.js.map
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Workflow as _Workflow1, StepAspect as _StepAspect1, Step as _Step1, AnyStepData as _AnyStepData1, Asset as _Asset1, Region, VariantResource as _VariantResource1, FrameOffsets, PatternImageData, DigitalContentStepData as _DigitalContentStepData1, LayoutsState as _LayoutsState1, CanvasCommand as _CanvasCommand1, FrameStepData as _FrameStepData1, ILayout as _ILayout1, CreateElementCommand as _CreateElementCommand1, FrameElement as _FrameElement1, ColorDefinition as _ColorDefinition1, IllustrationStepData as _IllustrationStepData1, IllustrationElement as _IllustrationElement1, LayoutData as _LayoutData1, MaterialStepData as _MaterialStepData1, ModelStepData as _ModelStepData1, ModuleStepData as _ModuleStepData1, PictureStepData as _PictureStepData1, QuestionStepData as _QuestionStepData1, ShapeStepData as _ShapeStepData1, FontData, GroupCommand as _GroupCommand1, OptionResource as _OptionResource1, TextboxElement as _TextboxElement1, TextFillImage, TextStepData as _TextStepData1, SilentStepData, Placeable, StepStorage as _StepStorage1, SerializableStep, CommandState as _CommandState1, CommandContext as _CommandContext1, LayoutState, GlobalPropertyConfiguration, MaterialResource, AssetType as _AssetType1, Point, ScaleAxis, UnitOfMeasurement as _UnitOfMeasurement1, StepType as _StepType1, BulkStepData as _BulkStepData1, FrameData as _FrameData1, AspectType, GlobalPropertyConfigurationAspect, Theme as _Theme1, Animatable, AnyStepData, Asset, AssetType, BringForwardCommand, BringToFrontCommand, BringToBackCommand, BulkStepData, CanvasCommand, ColorDefinition, CommandContext, CommandState, CreateElementCommand, DeleteElementCommand, DigitalContentStepData, FontAlignmentCommand, FontColorCommand, FontSizeCommand, FontSourceCommand, FrameElement, FrameStepData, GroupCommand, ILayout, IllustrationElement, IllustrationStepData, ImageElement, LayoutData, LayoutElement, LayoutElementFactory, LayoutElementType, LayoutsState, MaterialStepData, ModelStepData, ModuleStepData, MoveCommand, OptionResource, PictureStepData, QuestionStepData, ResizeCommand, RotateCommand, SendBackwardsCommand, ShapeStepData, Step, StepAspect, StepAspectType, StepStorage, StepType, TextChangeCommand, TextStepData, TextboxElement, UnitOfMeasurement, VariantResource, Workflow, dataUrlFromExternalUrl, findElement, frameDataCache, generate, generateSVGWithUnknownColors, getAttributesFromArrayBuffer, getFrameData, getSvgElement, loadFontFromDataUrl, loadFontFromExternalUrl, patternImageDataCache, CreateLayoutCommand, rehydrateSerializedLayout, ColorProfileProps, WorkflowPanel, determineCorrectFontSizeAndLines, registerJSDOM, getAxisAlignedBoundingBox, Theme } from "@spiffcommerce/papyrus";
|
|
1
|
+
import { Workflow as _Workflow1, StepAspect as _StepAspect1, Step as _Step1, AnyStepData as _AnyStepData1, Asset as _Asset1, Region, VariantResource as _VariantResource1, FrameOffsets, PatternImageData, DigitalContentStepData as _DigitalContentStepData1, LayoutsState as _LayoutsState1, CanvasCommand as _CanvasCommand1, FrameStepData as _FrameStepData1, ILayout as _ILayout1, CreateElementCommand as _CreateElementCommand1, FrameElement as _FrameElement1, ColorDefinition as _ColorDefinition1, IllustrationStepData as _IllustrationStepData1, IllustrationElement as _IllustrationElement1, LayoutData as _LayoutData1, MaterialStepData as _MaterialStepData1, ModelStepData as _ModelStepData1, ModuleStepData as _ModuleStepData1, PictureStepData as _PictureStepData1, QuestionStepData as _QuestionStepData1, ShapeStepData as _ShapeStepData1, FontData, GroupCommand as _GroupCommand1, OptionResource as _OptionResource1, TextboxElement as _TextboxElement1, TextFillImage, TextStepData as _TextStepData1, SilentStepData, Placeable, StepStorage as _StepStorage1, SerializableStep, CommandState as _CommandState1, CommandContext as _CommandContext1, LayoutState, GlobalPropertyConfiguration, MaterialResource, AssetType as _AssetType1, Point, ScaleAxis, UnitOfMeasurement as _UnitOfMeasurement1, StepType as _StepType1, BulkStepData as _BulkStepData1, InformationStepData as _InformationStepData1, FrameData as _FrameData1, AspectType, GlobalPropertyConfigurationAspect, Theme as _Theme1, Animatable, AnyStepData, Asset, AssetType, BringForwardCommand, BringToFrontCommand, BringToBackCommand, BulkStepData, CanvasCommand, ColorDefinition, CommandContext, CommandState, CreateElementCommand, DeleteElementCommand, DigitalContentStepData, FontAlignmentCommand, FontColorCommand, FontSizeCommand, FontSourceCommand, FrameElement, FrameStepData, GroupCommand, ILayout, IllustrationElement, IllustrationStepData, ImageElement, LayoutData, LayoutElement, LayoutElementFactory, LayoutElementType, LayoutsState, MaterialStepData, ModelStepData, ModuleStepData, MoveCommand, OptionResource, PictureStepData, QuestionStepData, ResizeCommand, RotateCommand, SendBackwardsCommand, ShapeStepData, Step, StepAspect, StepAspectType, StepStorage, StepType, TextChangeCommand, TextStepData, TextboxElement, UnitOfMeasurement, VariantResource, Workflow, dataUrlFromExternalUrl, findElement, frameDataCache, generate, generateSVGWithUnknownColors, getAttributesFromArrayBuffer, getFrameData, getSvgElement, loadFontFromDataUrl, loadFontFromExternalUrl, patternImageDataCache, CreateLayoutCommand, rehydrateSerializedLayout, ColorProfileProps, WorkflowPanel, determineCorrectFontSizeAndLines, registerJSDOM, getAxisAlignedBoundingBox, Theme, InformationStepData } from "@spiffcommerce/papyrus";
|
|
2
2
|
import { DefaultContext, OperationVariables } from "@apollo/client/core/types";
|
|
3
3
|
import { MutationFunctionOptions } from "@apollo/client/react/types/types";
|
|
4
4
|
import { ApolloCache, FetchResult } from "@apollo/client/core";
|
|
@@ -1750,6 +1750,14 @@ export class TextStepHandle extends StepHandle<_TextStepData1> {
|
|
|
1750
1750
|
*/
|
|
1751
1751
|
getCharactersRemaining(): number | undefined;
|
|
1752
1752
|
}
|
|
1753
|
+
export class InformationStepHandle extends StepHandle<_InformationStepData1> {
|
|
1754
|
+
constructor(manager: WorkflowManager, step: _Step1<_InformationStepData1>);
|
|
1755
|
+
selectVariant(): Promise<void>;
|
|
1756
|
+
/**
|
|
1757
|
+
* The way that this step expects to be rendered.
|
|
1758
|
+
*/
|
|
1759
|
+
getContent(): string;
|
|
1760
|
+
}
|
|
1753
1761
|
export const createDesign: (workflowManager: WorkflowManager, workflow: _Workflow1, layouts: _ILayout1[], getReducerState: () => _CommandState1, product: Product, transaction: Transaction, workflowSelections: WorkflowSelections, designName: string, onProgressUpdate: DesignCreationProgressUpdate, updateVariationRecords: (variationRecords: VariationRecord[]) => Promise<void>, variationRecords: VariationRecord[], createPreviewImage: (shouldRender3D?: boolean) => Promise<string | undefined>, workflowMetadata?: WorkflowMetadata) => Promise<DesignCreationMessage>;
|
|
1754
1762
|
export interface SavedDesign {
|
|
1755
1763
|
/**
|
|
@@ -2007,14 +2015,14 @@ export class WorkflowExperienceImpl implements WorkflowExperience {
|
|
|
2007
2015
|
getWorkflowManager(): WorkflowManager;
|
|
2008
2016
|
updateVariationRecords(variationRecords: VariationRecord[]): Promise<void>;
|
|
2009
2017
|
createPreviewImage(isThreeD?: boolean, resolution?: number): Promise<string>;
|
|
2010
|
-
getStepById(id: string): BulkStepHandle | import("index").IllustrationStepHandle | import("index").MaterialStepHandle | import("index").ModelStepHandle | import("index").PictureStepHandle | import("index").QuestionStepHandle | import("index").ShapeStepHandle | import("index").TextStepHandle | import("
|
|
2018
|
+
getStepById(id: string): BulkStepHandle | import("index").IllustrationStepHandle | import("index").MaterialStepHandle | import("index").ModelStepHandle | import("index").PictureStepHandle | import("index").QuestionStepHandle | import("index").ShapeStepHandle | import("index").TextStepHandle | import("index").InformationStepHandle | import("index").FrameStepHandle | undefined;
|
|
2011
2019
|
getSteps(): StepHandle<_AnyStepData1>[];
|
|
2012
2020
|
getScenes(): Scene[];
|
|
2013
2021
|
getSelectionPriceSubunits(): number;
|
|
2014
2022
|
getBasePriceSubunits(): number;
|
|
2015
2023
|
getTotalPriceSubunits(): number;
|
|
2016
2024
|
getBulkStep(): BulkStepHandle | undefined;
|
|
2017
|
-
getStepByName(name: string): BulkStepHandle | import("index").IllustrationStepHandle | import("index").MaterialStepHandle | import("index").ModelStepHandle | import("index").PictureStepHandle | import("index").QuestionStepHandle | import("index").ShapeStepHandle | import("index").TextStepHandle | import("
|
|
2025
|
+
getStepByName(name: string): BulkStepHandle | import("index").IllustrationStepHandle | import("index").MaterialStepHandle | import("index").ModelStepHandle | import("index").PictureStepHandle | import("index").QuestionStepHandle | import("index").ShapeStepHandle | import("index").TextStepHandle | import("index").InformationStepHandle | import("index").FrameStepHandle | undefined;
|
|
2018
2026
|
getStepsByType(type: _StepType1): StepHandle<_AnyStepData1>[];
|
|
2019
2027
|
getStepsByScene(scene: Scene): StepHandle<_AnyStepData1>[];
|
|
2020
2028
|
attachCustomerDetails(details: {
|
|
@@ -2659,6 +2667,6 @@ export class MockWorkflowManager implements WorkflowManager {
|
|
|
2659
2667
|
export const TransformWrapper: React.FunctionComponent;
|
|
2660
2668
|
export { CommandContext };
|
|
2661
2669
|
export { AssetType, BringForwardCommand, BringToFrontCommand, BringToBackCommand, CanvasCommand, CreateElementCommand, CreateLayoutCommand, DeleteElementCommand, FontAlignmentCommand, FontColorCommand, FontSizeCommand, FontSourceCommand, GroupCommand, LayoutElementFactory, LayoutElementType, MoveCommand, ResizeCommand, RotateCommand, SendBackwardsCommand, StepAspectType, StepType, TextChangeCommand, UnitOfMeasurement, dataUrlFromExternalUrl, findElement, frameDataCache, generate, getAxisAlignedBoundingBox, generateSVGWithUnknownColors, getAttributesFromArrayBuffer, rehydrateSerializedLayout, getFrameData, getSvgElement, loadFontFromDataUrl, loadFontFromExternalUrl, determineCorrectFontSizeAndLines, patternImageDataCache, registerJSDOM };
|
|
2662
|
-
export { Animatable, AnyStepData, Asset, BulkStepData, ColorProfileProps, ColorDefinition, CommandState, WorkflowPanel, DigitalContentStepData, FrameElement, FrameStepData, ILayout, IllustrationElement, IllustrationStepData, ImageElement, LayoutData, LayoutElement, LayoutsState, MaterialStepData, ModelStepData, ModuleStepData, OptionResource, PictureStepData, QuestionStepData, ShapeStepData, Step, StepAspect, StepStorage, TextStepData, TextboxElement, Theme, VariantResource, Workflow };
|
|
2670
|
+
export { Animatable, AnyStepData, Asset, BulkStepData, ColorProfileProps, ColorDefinition, CommandState, WorkflowPanel, DigitalContentStepData, FrameElement, FrameStepData, ILayout, IllustrationElement, IllustrationStepData, InformationStepData, ImageElement, LayoutData, LayoutElement, LayoutsState, MaterialStepData, ModelStepData, ModuleStepData, OptionResource, PictureStepData, QuestionStepData, ShapeStepData, Step, StepAspect, StepStorage, TextStepData, TextboxElement, Theme, VariantResource, Workflow };
|
|
2663
2671
|
|
|
2664
2672
|
//# sourceMappingURL=types.d.ts.map
|