@spiffcommerce/core 6.0.0 → 7.0.0
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 +2 -1
- package/dist/module.js +2 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -637,6 +637,7 @@ var t=require("@apollo/client"),e=require("lodash.clonedeep"),A=require("react/j
|
|
|
637
637
|
loop
|
|
638
638
|
}
|
|
639
639
|
overlayImageKey
|
|
640
|
+
overlayImageUrl
|
|
640
641
|
placeholderImageKey
|
|
641
642
|
placeholderImageUrl
|
|
642
643
|
regions {
|
|
@@ -883,5 +884,5 @@ var t=require("@apollo/client"),e=require("lodash.clonedeep"),A=require("react/j
|
|
|
883
884
|
}
|
|
884
885
|
}
|
|
885
886
|
}
|
|
886
|
-
`,So=async t=>{const e=(await en.getShadowGraphqlClient().query({query:vo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:t}})).data.workflow;return e.steps.forEach((t=>{delete t.data.__typename})),e},No=(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 Ro{constructor(t){xo(this,"options",void 0),xo(this,"initialized",void 0),xo(this,"experienceOptions",void 0),xo(this,"currencyCode",void 0),xo(this,"updateTransactionState",(async t=>{try{return en.getShadowGraphqlClient().mutate({...t,mutation:ga})}catch(t){throw console.error(t),new zA("Critical - Unable to synchronize workflow state with server.")}})),this.initialized=!1,this.options=t}getAssetManager(){return Bn}getCurrencyCode(){if(void 0===this.currencyCode)throw new Error("No currency code set.");return this.currencyCode}async initFromIntegrationProduct(t){if(""===t)throw new zA("No integration product ID provided.");const e=en.getShadowGraphqlClient();await e.resetStore();const A=await e.mutate({mutation:ra,variables:{integrationProductId:t,bulk:this.options.bulk||!1},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!A.data)throw new zA("Failed to create transaction!");this.currencyCode=A.data.transactionCreate.product?.partner?.currencyCode;const n=(await e.mutate({mutation:sa,variables:{id:A.data.transactionCreate.id},errorPolicy:"all",fetchPolicy:"no-cache"})).data?.transactionClaim;if(!n)throw new zA("Failed to create transaction.");if(!A.data.transactionCreate.product)throw new zA("Failed to create transaction, product not available.");const i=XA.getMap("transactionOwnerIds")||new Map;i.set(n.id,n.transactionOwnerId),tn(n.transactionOwnerId||""),XA.setMap("transactionOwnerIds",i),this.experienceOptions={product:A.data.transactionCreate.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState},this.initialized=!0}async initFromTransaction(t,e=!1){if(""===t)throw new zA("No transaction ID provided.");const A=en.getShadowGraphqlClient();await A.resetStore();if(e)return await(async()=>{const n=(await A.query({query:ca,variables:{id:t},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new zA("Failed to read transaction.");if(!n.product)throw new zA("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 OA("State mutation is forbidden in read only mode!")},readOnly:e},this.initialized=!0})();const n=XA.getMap("transactionOwnerIds")||new Map,i=n.get(t);if(i){tn(i);const n=(await A.query({query:ca,variables:{id:t},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new zA("Failed to read transaction.");if(!n.product)throw new zA("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 i=(await A.mutate({mutation:sa,variables:{id:t},errorPolicy:"all"})).data?.transactionClaim;if(!i)throw new zA("Failed to read transaction.");if(!i.product)throw new zA("Failed to load transaction, product not available.");this.currencyCode=i.product.partner?.currencyCode,i.transactionOwnerId&&(n.set(i.id,i.transactionOwnerId),tn(i.transactionOwnerId),XA.setMap("transactionOwnerIds",n)),this.experienceOptions={product:i.product,transaction:i,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:e},this.initialized=!0}catch{throw new zA("Attempted to access a transaction that isn't available.")}}async getWorkflowExperience(t,e,A){if(!this.initialized||!this.experienceOptions)throw new zA("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===N.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await vA(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===N.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&jt(e.fontData.assetUrl)}}};if(this.experienceOptions.transaction.workflowId){const t=await So(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 He(t),await n(t),this.experienceOptions.reloadedState=t}this.experienceOptions.previewService=A&&A(t),this.experienceOptions.renderableContextService=new $i(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService);const e=new Mo(this,this.experienceOptions);return await e.getWorkflowManager().getInitializationPromise(),e}if(t){const i=await So(t);if(this.experienceOptions.workflow=i,await en.getShadowGraphqlClient().mutate({mutation:la,variables:{workflowId:t,id:this.experienceOptions.transaction.id}}),e){const t=JSON.parse(e);this.experienceOptions.layouts=Object.values(t.layouts).map((t=>t.layout)),await He(t),await n(t),this.experienceOptions.reloadedState=t}else this.experienceOptions.layouts=No(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(i),this.experienceOptions.renderableContextService=new $i(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&await(this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService));const a=new Mo(this,this.experienceOptions);return await a.getWorkflowManager().getInitializationPromise(),a}throw new zA("No workflow ID provided.")}getPreviewService(){return this.experienceOptions?.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new zA("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new zA("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}}function Ho(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 Po{constructor(){Ho(this,"getProduct",void 0),Ho(this,"getCommandContext",void 0),Ho(this,"getAllLayoutData",void 0),Ho(this,"getMetadata",void 0),Ho(this,"getWorkflowMetadata",void 0),Ho(this,"getStepStorage",void 0),Ho(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(){}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){}}function Uo(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 Go;var bo;(bo=Go||(Go={})).SelectFrame="SelectFrame",bo.SelectImage="SelectImage",bo.Position="Position";class ko extends Ao{constructor(t,e){super(t,e),Uo(this,"frameService",this.manager.getStepSpecificServices(this.getId())?.frameService)}selectVariant(t){const e=this.manager.getRegionElements(this.step.stepName);return Ra.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 Ra.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?Go.SelectFrame:e||A||this.getImageData()?Go.Position:Go.SelectImage}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasVaryingUpload(){return this.step.data.varyUpload}hasVaryingSelection(){return this.step.data.varySelection}}const Jo=t=>{const e=(0,E.useRef)(null),[n,i]=(0,E.useState)(void 0),[a,o]=(0,E.useState)(void 0),{addEvent:r,removeEvent:s,updateEvent:c,eventCache:g}=Qn(),[l,B]=(0,E.useState)(!1),[w,h]=(0,E.useState)(!1),{state:d,uiDispatcher:u}=Fn(),Q=(0,E.useCallback)((t=>{const e=t;u(new xn({zoom:Math.max(.1,Math.min(e,d.maxZoom))}))}),[u,d.maxZoom]),C=(0,E.useCallback)((t=>{s(t),1===g.length&&i(void 0),2===g.length&&o(void 0);"touch"===t.pointerType&&g.length>1&&g.length-1==1&&(h(!1),B(!1))}),[e,g]),m=(0,E.useCallback)((t=>{r(t);"touch"===t.pointerType&&1===g.length&&(u(new xn({selectedElement:void 0})),h(!0),B(!0))}),[e,w,g]),p=(0,E.useCallback)((t=>{c(t),t.isPrimary&&i({x:t.screenX,y:t.screenY});const e=1===g.length&&"touch"!==g[0].pointerType,A=2===g.length&&"touch"===g[0].pointerType;if(l&&A){const[t,e]=g,A=Math.abs(t.clientX-e.clientX),n=a;n&&Q(d.zoom-.0055*(n-A)),o(A)}if(w&&(e||A)&&t.isPrimary){const e=(n?.x||t.screenX)-t.screenX,A=(n?.y||t.screenY)-t.screenY;u(new xn({selectedElement:void 0,xTranslation:d.xTranslation-e/d.zoom,yTranslation:d.yTranslation-A/d.zoom}))}}),[d.xTranslation,d.yTranslation,d.zoom,w,l,Q,g,n,a]),f=(0,E.useCallback)((t=>{l&&Q(d.zoom-.035*Math.sign(t.deltaY))}),[d,l]);(0,E.useEffect)((()=>{if(!e.current||0===g.length)return;const t=g[0].pointerId,A=e.current.hasPointerCapture(t);w&&!A&&e.current.setPointerCapture(t),!w&&A&&e.current.releasePointerCapture(t)}),[e,w,g]),di([" "],(()=>{h(!0),u(new xn({selectedElement:void 0}))}),(()=>h(!1))),di(["Control"],(()=>B(!0)),(()=>B(!1)));const D=(0,E.useMemo)((()=>({cursor:w&&0===g.length?"grab":w&&1===g.length?"grabbing":l?"zoom-in":void 0,width:"100%",height:"100%",overflow:"clip"})),[w,l,g]);return(0,A.jsx)("div",{ref:e,className:"transform-wrapper",onWheel:f,onPointerDown:m,onPointerUp:C,onPointerCancel:C,onPointerLeave:C,onPointerMove:p,style:D,children:t.children})};
|
|
887
|
+
`,So=async t=>{const e=(await en.getShadowGraphqlClient().query({query:vo,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:t}})).data.workflow;return e.steps.forEach((t=>{delete t.data.__typename})),e},No=(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 Ro{constructor(t){xo(this,"options",void 0),xo(this,"initialized",void 0),xo(this,"experienceOptions",void 0),xo(this,"currencyCode",void 0),xo(this,"updateTransactionState",(async t=>{try{return en.getShadowGraphqlClient().mutate({...t,mutation:ga})}catch(t){throw console.error(t),new zA("Critical - Unable to synchronize workflow state with server.")}})),this.initialized=!1,this.options=t}getAssetManager(){return Bn}getCurrencyCode(){if(void 0===this.currencyCode)throw new Error("No currency code set.");return this.currencyCode}async initFromIntegrationProduct(t){if(""===t)throw new zA("No integration product ID provided.");const e=en.getShadowGraphqlClient();await e.resetStore();const A=await e.mutate({mutation:ra,variables:{integrationProductId:t,bulk:this.options.bulk||!1},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!A.data)throw new zA("Failed to create transaction!");this.currencyCode=A.data.transactionCreate.product?.partner?.currencyCode;const n=(await e.mutate({mutation:sa,variables:{id:A.data.transactionCreate.id},errorPolicy:"all",fetchPolicy:"no-cache"})).data?.transactionClaim;if(!n)throw new zA("Failed to create transaction.");if(!A.data.transactionCreate.product)throw new zA("Failed to create transaction, product not available.");const i=XA.getMap("transactionOwnerIds")||new Map;i.set(n.id,n.transactionOwnerId),tn(n.transactionOwnerId||""),XA.setMap("transactionOwnerIds",i),this.experienceOptions={product:A.data.transactionCreate.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState},this.initialized=!0}async initFromTransaction(t,e=!1){if(""===t)throw new zA("No transaction ID provided.");const A=en.getShadowGraphqlClient();await A.resetStore();if(e)return await(async()=>{const n=(await A.query({query:ca,variables:{id:t},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new zA("Failed to read transaction.");if(!n.product)throw new zA("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 OA("State mutation is forbidden in read only mode!")},readOnly:e},this.initialized=!0})();const n=XA.getMap("transactionOwnerIds")||new Map,i=n.get(t);if(i){tn(i);const n=(await A.query({query:ca,variables:{id:t},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new zA("Failed to read transaction.");if(!n.product)throw new zA("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 i=(await A.mutate({mutation:sa,variables:{id:t},errorPolicy:"all"})).data?.transactionClaim;if(!i)throw new zA("Failed to read transaction.");if(!i.product)throw new zA("Failed to load transaction, product not available.");this.currencyCode=i.product.partner?.currencyCode,i.transactionOwnerId&&(n.set(i.id,i.transactionOwnerId),tn(i.transactionOwnerId),XA.setMap("transactionOwnerIds",n)),this.experienceOptions={product:i.product,transaction:i,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:e},this.initialized=!0}catch{throw new zA("Attempted to access a transaction that isn't available.")}}async getWorkflowExperience(t,e,A){if(!this.initialized||!this.experienceOptions)throw new zA("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===N.Illustration));for(let t=0;t<A.length;++t){const e=A[t];e.src&&e.svg&&(e.cachedObjectURL=await vA(e.svg))}const n=t.layouts[e].elements.filter((t=>t.type===N.Textbox));for(let t=0;t<n.length;++t){const e=n[t];e.fontData?.assetUrl&&jt(e.fontData.assetUrl)}}};if(this.experienceOptions.transaction.workflowId){const t=await So(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 He(t),await n(t),this.experienceOptions.reloadedState=t}this.experienceOptions.previewService=A&&A(t),this.experienceOptions.renderableContextService=new $i(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService);const e=new Mo(this,this.experienceOptions);return await e.getWorkflowManager().getInitializationPromise(),e}if(t){const i=await So(t);if(this.experienceOptions.workflow=i,await en.getShadowGraphqlClient().mutate({mutation:la,variables:{workflowId:t,id:this.experienceOptions.transaction.id}}),e){const t=JSON.parse(e);this.experienceOptions.layouts=Object.values(t.layouts).map((t=>t.layout)),await He(t),await n(t),this.experienceOptions.reloadedState=t}else this.experienceOptions.layouts=No(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=A&&A(i),this.experienceOptions.renderableContextService=new $i(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&await(this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService));const a=new Mo(this,this.experienceOptions);return await a.getWorkflowManager().getInitializationPromise(),a}throw new zA("No workflow ID provided.")}getPreviewService(){return this.experienceOptions?.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new zA("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new zA("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}}function Ho(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 Po{constructor(){Ho(this,"getProduct",void 0),Ho(this,"getCommandContext",void 0),Ho(this,"getAllLayoutData",void 0),Ho(this,"getMetadata",void 0),Ho(this,"getWorkflowMetadata",void 0),Ho(this,"getStepStorage",void 0),Ho(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(){}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){}}function Uo(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 Go;var bo;(bo=Go||(Go={})).SelectFrame="SelectFrame",bo.SelectImage="SelectImage",bo.Position="Position";class ko extends Ao{constructor(t,e){super(t,e),Uo(this,"frameService",this.manager.getStepSpecificServices(this.getId())?.frameService)}selectVariant(t){const e=this.manager.getRegionElements(this.step.stepName);return Ra.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 Ra.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?Go.SelectFrame:e||A||this.getImageData()?Go.Position:Go.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 Jo=t=>{const e=(0,E.useRef)(null),[n,i]=(0,E.useState)(void 0),[a,o]=(0,E.useState)(void 0),{addEvent:r,removeEvent:s,updateEvent:c,eventCache:g}=Qn(),[l,B]=(0,E.useState)(!1),[w,h]=(0,E.useState)(!1),{state:d,uiDispatcher:u}=Fn(),Q=(0,E.useCallback)((t=>{const e=t;u(new xn({zoom:Math.max(.1,Math.min(e,d.maxZoom))}))}),[u,d.maxZoom]),C=(0,E.useCallback)((t=>{s(t),1===g.length&&i(void 0),2===g.length&&o(void 0);"touch"===t.pointerType&&g.length>1&&g.length-1==1&&(h(!1),B(!1))}),[e,g]),m=(0,E.useCallback)((t=>{r(t);"touch"===t.pointerType&&1===g.length&&(u(new xn({selectedElement:void 0})),h(!0),B(!0))}),[e,w,g]),p=(0,E.useCallback)((t=>{c(t),t.isPrimary&&i({x:t.screenX,y:t.screenY});const e=1===g.length&&"touch"!==g[0].pointerType,A=2===g.length&&"touch"===g[0].pointerType;if(l&&A){const[t,e]=g,A=Math.abs(t.clientX-e.clientX),n=a;n&&Q(d.zoom-.0055*(n-A)),o(A)}if(w&&(e||A)&&t.isPrimary){const e=(n?.x||t.screenX)-t.screenX,A=(n?.y||t.screenY)-t.screenY;u(new xn({selectedElement:void 0,xTranslation:d.xTranslation-e/d.zoom,yTranslation:d.yTranslation-A/d.zoom}))}}),[d.xTranslation,d.yTranslation,d.zoom,w,l,Q,g,n,a]),f=(0,E.useCallback)((t=>{l&&Q(d.zoom-.035*Math.sign(t.deltaY))}),[d,l]);(0,E.useEffect)((()=>{if(!e.current||0===g.length)return;const t=g[0].pointerId,A=e.current.hasPointerCapture(t);w&&!A&&e.current.setPointerCapture(t),!w&&A&&e.current.releasePointerCapture(t)}),[e,w,g]),di([" "],(()=>{h(!0),u(new xn({selectedElement:void 0}))}),(()=>h(!1))),di(["Control"],(()=>B(!0)),(()=>B(!1)));const D=(0,E.useMemo)((()=>({cursor:w&&0===g.length?"grab":w&&1===g.length?"grabbing":l?"zoom-in":void 0,width:"100%",height:"100%",overflow:"clip"})),[w,l,g]);return(0,A.jsx)("div",{ref:e,className:"transform-wrapper",onWheel:f,onPointerDown:m,onPointerUp:C,onPointerCancel:C,onPointerLeave:C,onPointerMove:p,style:D,children:t.children})};
|
|
887
888
|
//# sourceMappingURL=main.js.map
|
package/dist/module.js
CHANGED
|
@@ -637,6 +637,7 @@ import{CommandContext as A,AssetType as t,BringForwardCommand as e,BringToFrontC
|
|
|
637
637
|
loop
|
|
638
638
|
}
|
|
639
639
|
overlayImageKey
|
|
640
|
+
overlayImageUrl
|
|
640
641
|
placeholderImageKey
|
|
641
642
|
placeholderImageUrl
|
|
642
643
|
regions {
|
|
@@ -883,5 +884,5 @@ import{CommandContext as A,AssetType as t,BringForwardCommand as e,BringToFrontC
|
|
|
883
884
|
}
|
|
884
885
|
}
|
|
885
886
|
}
|
|
886
|
-
`,Oi=async A=>{const t=(await ht.getShadowGraphqlClient().query({query:Ti,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:A}})).data.workflow;return t.steps.forEach((A=>{delete A.data.__typename})),t},zi=(A,t)=>{const e=A.workflowState,n=e?JSON.parse(e):void 0;return n?Object.values(n.layouts).map((A=>A.layout)):t.panels.sort(((A,t)=>A.index-t.index)).map((A=>({id:F(),panelId:A.name,name:A.name,index:A.index,createdAt:new Date,updatedAt:new Date,transparentBackground:A.transparentBackground,height:A.height,width:A.width,previewRegion:A.previewRegion,useEditableArea:A.useEditableArea,editableArea:A.editableArea})))};class ji{constructor(A){Li(this,"options",void 0),Li(this,"initialized",void 0),Li(this,"experienceOptions",void 0),Li(this,"currencyCode",void 0),Li(this,"updateTransactionState",(async A=>{try{return ht.getShadowGraphqlClient().mutate({...A,mutation:Mn})}catch(A){throw console.error(A),new at("Critical - Unable to synchronize workflow state with server.")}})),this.initialized=!1,this.options=A}getAssetManager(){return yt}getCurrencyCode(){if(void 0===this.currencyCode)throw new Error("No currency code set.");return this.currencyCode}async initFromIntegrationProduct(A){if(""===A)throw new at("No integration product ID provided.");const t=ht.getShadowGraphqlClient();await t.resetStore();const e=await t.mutate({mutation:pn,variables:{integrationProductId:A,bulk:this.options.bulk||!1},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!e.data)throw new at("Failed to create transaction!");this.currencyCode=e.data.transactionCreate.product?.partner?.currencyCode;const n=(await t.mutate({mutation:In,variables:{id:e.data.transactionCreate.id},errorPolicy:"all",fetchPolicy:"no-cache"})).data?.transactionClaim;if(!n)throw new at("Failed to create transaction.");if(!e.data.transactionCreate.product)throw new at("Failed to create transaction, product not available.");const i=gt.getMap("transactionOwnerIds")||new Map;i.set(n.id,n.transactionOwnerId),dt(n.transactionOwnerId||""),gt.setMap("transactionOwnerIds",i),this.experienceOptions={product:e.data.transactionCreate.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState},this.initialized=!0}async initFromTransaction(A,t=!1){if(""===A)throw new at("No transaction ID provided.");const e=ht.getShadowGraphqlClient();await e.resetStore();if(t)return await(async()=>{const n=(await e.query({query:fn,variables:{id:A},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new at("Failed to read transaction.");if(!n.product)throw new at("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 nt("State mutation is forbidden in read only mode!")},readOnly:t},this.initialized=!0})();const n=gt.getMap("transactionOwnerIds")||new Map,i=n.get(A);if(i){dt(i);const n=(await e.query({query:fn,variables:{id:A},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new at("Failed to read transaction.");if(!n.product)throw new at("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:t},void(this.initialized=!0)}try{const i=(await e.mutate({mutation:In,variables:{id:A},errorPolicy:"all"})).data?.transactionClaim;if(!i)throw new at("Failed to read transaction.");if(!i.product)throw new at("Failed to load transaction, product not available.");this.currencyCode=i.product.partner?.currencyCode,i.transactionOwnerId&&(n.set(i.id,i.transactionOwnerId),dt(i.transactionOwnerId),gt.setMap("transactionOwnerIds",n)),this.experienceOptions={product:i.product,transaction:i,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:t},this.initialized=!0}catch{throw new at("Attempted to access a transaction that isn't available.")}}async getWorkflowExperience(A,t,e){if(!this.initialized||!this.experienceOptions)throw new at("Cannot launch experience: Not initialized.");const n=async A=>{for(const t in A.layouts){const e=A.layouts[t].elements.filter((A=>A.type===d.Illustration));for(let A=0;A<e.length;++A){const t=e[A];t.src&&t.svg&&(t.cachedObjectURL=await EA(t.svg))}const n=A.layouts[t].elements.filter((A=>A.type===d.Textbox));for(let A=0;A<n.length;++A){const t=n[A];t.fontData?.assetUrl&&U(t.fontData.assetUrl)}}};if(this.experienceOptions.transaction.workflowId){const A=await Oi(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=A,this.experienceOptions.transaction.workflowState){const A=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(A.layouts).map((A=>A.layout)),await v(A),await n(A),this.experienceOptions.reloadedState=A}this.experienceOptions.previewService=e&&e(A),this.experienceOptions.renderableContextService=new wn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService);const t=new bi(this,this.experienceOptions);return await t.getWorkflowManager().getInitializationPromise(),t}if(A){const i=await Oi(A);if(this.experienceOptions.workflow=i,await ht.getShadowGraphqlClient().mutate({mutation:yn,variables:{workflowId:A,id:this.experienceOptions.transaction.id}}),t){const A=JSON.parse(t);this.experienceOptions.layouts=Object.values(A.layouts).map((A=>A.layout)),await v(A),await n(A),this.experienceOptions.reloadedState=A}else this.experienceOptions.layouts=zi(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=e&&e(i),this.experienceOptions.renderableContextService=new wn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&await(this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService));const a=new bi(this,this.experienceOptions);return await a.getWorkflowManager().getInitializationPromise(),a}throw new at("No workflow ID provided.")}getPreviewService(){return this.experienceOptions?.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new at("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new at("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}}function Ki(A,t,e){return(t=function(A){var t=function(A,t){if("object"!=typeof A||null===A)return A;var e=A[Symbol.toPrimitive];if(void 0!==e){var n=e.call(A,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(A)}(A,"string");return"symbol"==typeof t?t:String(t)}(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}class Vi{constructor(){Ki(this,"getProduct",void 0),Ki(this,"getCommandContext",void 0),Ki(this,"getAllLayoutData",void 0),Ki(this,"getMetadata",void 0),Ki(this,"getWorkflowMetadata",void 0),Ki(this,"getStepStorage",void 0),Ki(this,"getUpdatesPending",void 0)}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}getVariationRecords(){return[]}async reset(){}updateStateWithServer(A){}addVariationRecord(A){return{recordNumber:0,transactionId:"",values:[]}}getCurrentVariationRecord(){}removeVariationRecord(A){return[]}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(A){}addPoller(A){}addConfirmCallback(A){}addCurrentVariationCallback(A){}addEditedCallback(A){}addElementsCallback(A){}addInformationResultCallback(A){}addInitCallback(A){}addMakingAdjustmentsCallback(A){}addMandatoryCallback(A){}addMetadataCallback(A){}addSelectionCallback(A){}addStepSpecificStorageCallback(A,t){}addStorageCallback(A){}addVariationRecordsCallback(A){}getCommandDispatcher(){return A=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getProfanities(){return[]}getRegionElements(A){return[]}getSerializedStep(A,t){}getStepSpecificServices(A){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(A){}markUpdateCompleted(A){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(A){}setCurrentVariationRecord(A){}setEditedStatus(A,t){}setInformationResults(A){}setMandatoryFulfilled(A,t){}async setSelectionsAndElements(A,t,e){}setVariationRecords(A){}toggleDesignConfirmed(){}updateMetadata(A,t){}async updateStorage(A,t){}}function Wi(A,t,e){return(t=function(A){var t=function(A,t){if("object"!=typeof A||null===A)return A;var e=A[Symbol.toPrimitive];if(void 0!==e){var n=e.call(A,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(A)}(A,"string");return"symbol"==typeof t?t:String(t)}(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}let Xi;var qi;(qi=Xi||(Xi={})).SelectFrame="SelectFrame",qi.SelectImage="SelectImage",qi.Position="Position";class Zi extends Qi{constructor(A,t){super(A,t),Wi(this,"frameService",this.manager.getStepSpecificServices(this.getId())?.frameService)}selectVariant(A){const t=this.manager.getRegionElements(this.step.stepName);return Wn.selectVariant(this.step,A.getResource(),t,this.manager,(A=>this.setUpdateState(A)))}onFrameDataChanged(A){this.frameService&&this.frameService.onFrameDataChanged((t=>{t&&A(t)}))}selectImage(A){return Wn.selectImage(this.step,A,this.manager)}getImageData(){if(this.frameService)return this.frameService.getImageData()}getCurrentFrameStep(A,t,e,n){return n&&n.length>1&&void 0===A?Xi.SelectFrame:t||e||this.getImageData()?Xi.Position:Xi.SelectImage}getFrameService(){return this.frameService}hasOverlayImageKey(){return this.step.data.overlayImageKey}hasVaryingUpload(){return this.step.data.varyUpload}hasVaryingSelection(){return this.step.data.varySelection}}const $i=A=>{const t=GA(null),[e,n]=vA(void 0),[i,a]=vA(void 0),{addEvent:o,removeEvent:r,updateEvent:s,eventCache:c}=Nt(),[g,B]=vA(!1),[l,w]=vA(!1),{state:E,uiDispatcher:d}=Tt(),h=NA((A=>{const t=A;d(new Lt({zoom:Math.max(.1,Math.min(t,E.maxZoom))}))}),[d,E.maxZoom]),Q=NA((A=>{r(A),1===c.length&&n(void 0),2===c.length&&a(void 0);"touch"===A.pointerType&&c.length>1&&c.length-1==1&&(w(!1),B(!1))}),[t,c]),C=NA((A=>{o(A);"touch"===A.pointerType&&1===c.length&&(d(new Lt({selectedElement:void 0})),w(!0),B(!0))}),[t,l,c]),u=NA((A=>{s(A),A.isPrimary&&n({x:A.screenX,y:A.screenY});const t=1===c.length&&"touch"!==c[0].pointerType,o=2===c.length&&"touch"===c[0].pointerType;if(g&&o){const[A,t]=c,e=Math.abs(A.clientX-t.clientX),n=i;n&&h(E.zoom-.0055*(n-e)),a(e)}if(l&&(t||o)&&A.isPrimary){const t=(e?.x||A.screenX)-A.screenX,n=(e?.y||A.screenY)-A.screenY;d(new Lt({selectedElement:void 0,xTranslation:E.xTranslation-t/E.zoom,yTranslation:E.yTranslation-n/E.zoom}))}}),[E.xTranslation,E.yTranslation,E.zoom,l,g,h,c,e,i]),D=NA((A=>{g&&h(E.zoom-.035*Math.sign(A.deltaY))}),[E,g]);HA((()=>{if(!t.current||0===c.length)return;const A=c[0].pointerId,e=t.current.hasPointerCapture(A);l&&!e&&t.current.setPointerCapture(A),!l&&e&&t.current.releasePointerCapture(A)}),[t,l,c]),xe([" "],(()=>{w(!0),d(new Lt({selectedElement:void 0}))}),(()=>w(!1))),xe(["Control"],(()=>B(!0)),(()=>B(!1)));const m=PA((()=>({cursor:l&&0===c.length?"grab":l&&1===c.length?"grabbing":g?"zoom-in":void 0,width:"100%",height:"100%",overflow:"clip"})),[l,g,c]);return kA("div",{ref:t,className:"transform-wrapper",onWheel:D,onPointerDown:C,onPointerUp:Q,onPointerCancel:Q,onPointerLeave:Q,onPointerMove:u,style:m,children:A.children})};export{ji as SpiffCommerceClient,A as CommandContext,lt as spiffCoreConfiguration,Re as PromiseQueue,Ne as QueueablePromise,Vi as MockWorkflowManager,gi as InformationMessageType,Qi as StepHandle,Yi as TextStepHandle,Zi as FrameStepHandle,mi as BulkStepHandle,Fi as ShapeStepHandle,pi as IllustrationStepHandle,Ii as MaterialStepHandle,fi as ModelStepHandle,Mi as PictureStepHandle,yi as QuestionStepHandle,jt as BulkPriceCalculationStrategy,di as Variant,ZA as OptionNotFoundError,$A as LayoutNotFoundError,_A as AssetNotFoundError,At as ResourceNotFoundError,tt as MisconfigurationError,it as ParseError,nt as UnhandledBehaviorError,yt as assetService,ki as designService,Ui as createDesign,St as optionService,gt as persistenceService,ht as graphQlManager,ni as toast,bn as FrameService,kn as getBoundedOffsets,Wn as frameStepService,Zn as modelStepService,qn as materialStepService,ti as shapeStepService,Ai as questionStepService,Kn as digitalContentStepService,$n as moduleStepService,_n as pictureStepService,si as textStepService,Xn as illustrationStepService,Ot as ProductCameraRig,Xi as FrameStep,Vt as ConversionLocation,Xt as ConversionDataType,Oi as getWorkflow,t as AssetType,e as BringForwardCommand,n as BringToFrontCommand,i as BringToBackCommand,a as CanvasCommand,o as CreateElementCommand,r as CreateLayoutCommand,s as DeleteElementCommand,c as FontAlignmentCommand,g as FontColorCommand,B as FontSizeCommand,l as FontSourceCommand,w as GroupCommand,E as LayoutElementFactory,d as LayoutElementType,h as MoveCommand,Q as ResizeCommand,C as RotateCommand,u as SendBackwardsCommand,D as StepAspectType,m as StepType,p as TextChangeCommand,I as UnitOfMeasurement,f as dataUrlFromExternalUrl,M as findElement,y as frameDataCache,F as generate,Y as getAxisAlignedBoundingBox,x as generateSVGWithUnknownColors,S as getAttributesFromArrayBuffer,v as rehydrateSerializedLayout,N as getFrameData,R as getSvgElement,H as loadFontFromDataUrl,U as loadFontFromExternalUrl,P as determineCorrectFontSizeAndLines,G as patternImageDataCache,Bn as generateCommands,k as registerJSDOM,ye as minZoom,mn as AdvancedEditor,$i as TransformWrapper,Dn as EditorCore,Rt as useLayouts,Tt as useEditorState,Ye as useEditorInteraction,xe as useShortcutCombination,kt as commandReducer,Gt as getDefaultState,vt as CommandContextContext,bt as AdvancedEditorStateProvider,Jt as AdvancedEditorContext,Lt as UICommand,Ut as EditorSubMenu,te as ElementEventType,ne as KeyEvent,Sn as gatherVaryingStepAspects};
|
|
887
|
+
`,Oi=async A=>{const t=(await ht.getShadowGraphqlClient().query({query:Ti,errorPolicy:"all",fetchPolicy:"no-cache",variables:{id:A}})).data.workflow;return t.steps.forEach((A=>{delete A.data.__typename})),t},zi=(A,t)=>{const e=A.workflowState,n=e?JSON.parse(e):void 0;return n?Object.values(n.layouts).map((A=>A.layout)):t.panels.sort(((A,t)=>A.index-t.index)).map((A=>({id:F(),panelId:A.name,name:A.name,index:A.index,createdAt:new Date,updatedAt:new Date,transparentBackground:A.transparentBackground,height:A.height,width:A.width,previewRegion:A.previewRegion,useEditableArea:A.useEditableArea,editableArea:A.editableArea})))};class ji{constructor(A){Li(this,"options",void 0),Li(this,"initialized",void 0),Li(this,"experienceOptions",void 0),Li(this,"currencyCode",void 0),Li(this,"updateTransactionState",(async A=>{try{return ht.getShadowGraphqlClient().mutate({...A,mutation:Mn})}catch(A){throw console.error(A),new at("Critical - Unable to synchronize workflow state with server.")}})),this.initialized=!1,this.options=A}getAssetManager(){return yt}getCurrencyCode(){if(void 0===this.currencyCode)throw new Error("No currency code set.");return this.currencyCode}async initFromIntegrationProduct(A){if(""===A)throw new at("No integration product ID provided.");const t=ht.getShadowGraphqlClient();await t.resetStore();const e=await t.mutate({mutation:pn,variables:{integrationProductId:A,bulk:this.options.bulk||!1},errorPolicy:"all",fetchPolicy:"no-cache",context:this.options.applicationKey?{headers:{"X-Application-Key":this.options.applicationKey}}:void 0});if(!e.data)throw new at("Failed to create transaction!");this.currencyCode=e.data.transactionCreate.product?.partner?.currencyCode;const n=(await t.mutate({mutation:In,variables:{id:e.data.transactionCreate.id},errorPolicy:"all",fetchPolicy:"no-cache"})).data?.transactionClaim;if(!n)throw new at("Failed to create transaction.");if(!e.data.transactionCreate.product)throw new at("Failed to create transaction, product not available.");const i=gt.getMap("transactionOwnerIds")||new Map;i.set(n.id,n.transactionOwnerId),dt(n.transactionOwnerId||""),gt.setMap("transactionOwnerIds",i),this.experienceOptions={product:e.data.transactionCreate.product,transaction:n,layouts:[],stateMutationFunc:this.updateTransactionState},this.initialized=!0}async initFromTransaction(A,t=!1){if(""===A)throw new at("No transaction ID provided.");const e=ht.getShadowGraphqlClient();await e.resetStore();if(t)return await(async()=>{const n=(await e.query({query:fn,variables:{id:A},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new at("Failed to read transaction.");if(!n.product)throw new at("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 nt("State mutation is forbidden in read only mode!")},readOnly:t},this.initialized=!0})();const n=gt.getMap("transactionOwnerIds")||new Map,i=n.get(A);if(i){dt(i);const n=(await e.query({query:fn,variables:{id:A},errorPolicy:"all"})).data?.transactions[0];if(!n)throw new at("Failed to read transaction.");if(!n.product)throw new at("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:t},void(this.initialized=!0)}try{const i=(await e.mutate({mutation:In,variables:{id:A},errorPolicy:"all"})).data?.transactionClaim;if(!i)throw new at("Failed to read transaction.");if(!i.product)throw new at("Failed to load transaction, product not available.");this.currencyCode=i.product.partner?.currencyCode,i.transactionOwnerId&&(n.set(i.id,i.transactionOwnerId),dt(i.transactionOwnerId),gt.setMap("transactionOwnerIds",n)),this.experienceOptions={product:i.product,transaction:i,layouts:[],stateMutationFunc:this.updateTransactionState,readOnly:t},this.initialized=!0}catch{throw new at("Attempted to access a transaction that isn't available.")}}async getWorkflowExperience(A,t,e){if(!this.initialized||!this.experienceOptions)throw new at("Cannot launch experience: Not initialized.");const n=async A=>{for(const t in A.layouts){const e=A.layouts[t].elements.filter((A=>A.type===d.Illustration));for(let A=0;A<e.length;++A){const t=e[A];t.src&&t.svg&&(t.cachedObjectURL=await EA(t.svg))}const n=A.layouts[t].elements.filter((A=>A.type===d.Textbox));for(let A=0;A<n.length;++A){const t=n[A];t.fontData?.assetUrl&&U(t.fontData.assetUrl)}}};if(this.experienceOptions.transaction.workflowId){const A=await Oi(this.experienceOptions.transaction.workflowId);if(this.experienceOptions.workflow=A,this.experienceOptions.transaction.workflowState){const A=JSON.parse(this.experienceOptions.transaction.workflowState);this.experienceOptions.layouts=Object.values(A.layouts).map((A=>A.layout)),await v(A),await n(A),this.experienceOptions.reloadedState=A}this.experienceOptions.previewService=e&&e(A),this.experienceOptions.renderableContextService=new wn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService);const t=new bi(this,this.experienceOptions);return await t.getWorkflowManager().getInitializationPromise(),t}if(A){const i=await Oi(A);if(this.experienceOptions.workflow=i,await ht.getShadowGraphqlClient().mutate({mutation:yn,variables:{workflowId:A,id:this.experienceOptions.transaction.id}}),t){const A=JSON.parse(t);this.experienceOptions.layouts=Object.values(A.layouts).map((A=>A.layout)),await v(A),await n(A),this.experienceOptions.reloadedState=A}else this.experienceOptions.layouts=zi(this.experienceOptions.transaction,this.experienceOptions.workflow);this.experienceOptions.previewService=e&&e(i),this.experienceOptions.renderableContextService=new wn(this.experienceOptions.layouts),this.experienceOptions.product?.modelUrl&&await(this.experienceOptions.previewService?.initialize(this.experienceOptions.product.modelUrl,this.experienceOptions.renderableContextService));const a=new bi(this,this.experienceOptions);return await a.getWorkflowManager().getInitializationPromise(),a}throw new at("No workflow ID provided.")}getPreviewService(){return this.experienceOptions?.previewService}getProduct(){if(!this.initialized||!this.experienceOptions)throw new at("Cannot get product: Not initialized.");return this.experienceOptions.product}getTransaction(){if(!this.initialized||!this.experienceOptions)throw new at("Cannot get transaction: Not initialized.");return this.experienceOptions.transaction}}function Ki(A,t,e){return(t=function(A){var t=function(A,t){if("object"!=typeof A||null===A)return A;var e=A[Symbol.toPrimitive];if(void 0!==e){var n=e.call(A,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(A)}(A,"string");return"symbol"==typeof t?t:String(t)}(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}class Vi{constructor(){Ki(this,"getProduct",void 0),Ki(this,"getCommandContext",void 0),Ki(this,"getAllLayoutData",void 0),Ki(this,"getMetadata",void 0),Ki(this,"getWorkflowMetadata",void 0),Ki(this,"getStepStorage",void 0),Ki(this,"getUpdatesPending",void 0)}getInitializationPromise(){return Promise.resolve()}isInitialized(){return!0}getInformationResults(){return[]}getVariationRecords(){return[]}async reset(){}updateStateWithServer(A){}addVariationRecord(A){return{recordNumber:0,transactionId:"",values:[]}}getCurrentVariationRecord(){}removeVariationRecord(A){return[]}async outstandingRequestsPromise(){}async updateStateWithServerImmediate(A){}addPoller(A){}addConfirmCallback(A){}addCurrentVariationCallback(A){}addEditedCallback(A){}addElementsCallback(A){}addInformationResultCallback(A){}addInitCallback(A){}addMakingAdjustmentsCallback(A){}addMandatoryCallback(A){}addMetadataCallback(A){}addSelectionCallback(A){}addStepSpecificStorageCallback(A,t){}addStorageCallback(A){}addVariationRecordsCallback(A){}getCommandDispatcher(){return A=>{}}getLayouts(){return[]}getLayoutPreviewService(){return{getAll:()=>new Map}}getPreviewService(){}getProfanities(){return[]}getRegionElements(A){return[]}getSerializedStep(A,t){}getStepSpecificServices(A){}getTransaction(){return{id:""}}getTransactionCustomer(){}setTransactionCustomer(){}setTransactionCustomerDetails(){}getWorkflow(){return{id:"",name:"",panels:[],steps:[],showModelOnFinishStep:!1,allowProofDownload:!1,introduction:"",stepGroups:[]}}markStepsAsInitialised(A){}markUpdateCompleted(A){}markUpdatePending(){return"123"}getWorkflowSelections(){return{}}setCurrentAdjustingStepId(A){}setCurrentVariationRecord(A){}setEditedStatus(A,t){}setInformationResults(A){}setMandatoryFulfilled(A,t){}async setSelectionsAndElements(A,t,e){}setVariationRecords(A){}toggleDesignConfirmed(){}updateMetadata(A,t){}async updateStorage(A,t){}}function Wi(A,t,e){return(t=function(A){var t=function(A,t){if("object"!=typeof A||null===A)return A;var e=A[Symbol.toPrimitive];if(void 0!==e){var n=e.call(A,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(A)}(A,"string");return"symbol"==typeof t?t:String(t)}(t))in A?Object.defineProperty(A,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):A[t]=e,A}let Xi;var qi;(qi=Xi||(Xi={})).SelectFrame="SelectFrame",qi.SelectImage="SelectImage",qi.Position="Position";class Zi extends Qi{constructor(A,t){super(A,t),Wi(this,"frameService",this.manager.getStepSpecificServices(this.getId())?.frameService)}selectVariant(A){const t=this.manager.getRegionElements(this.step.stepName);return Wn.selectVariant(this.step,A.getResource(),t,this.manager,(A=>this.setUpdateState(A)))}onFrameDataChanged(A){this.frameService&&this.frameService.onFrameDataChanged((t=>{t&&A(t)}))}selectImage(A){return Wn.selectImage(this.step,A,this.manager)}getImageData(){if(this.frameService)return this.frameService.getImageData()}getCurrentFrameStep(A,t,e,n){return n&&n.length>1&&void 0===A?Xi.SelectFrame:t||e||this.getImageData()?Xi.Position:Xi.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 $i=A=>{const t=GA(null),[e,n]=vA(void 0),[i,a]=vA(void 0),{addEvent:o,removeEvent:r,updateEvent:s,eventCache:c}=Nt(),[g,B]=vA(!1),[l,w]=vA(!1),{state:E,uiDispatcher:d}=Tt(),h=NA((A=>{const t=A;d(new Lt({zoom:Math.max(.1,Math.min(t,E.maxZoom))}))}),[d,E.maxZoom]),Q=NA((A=>{r(A),1===c.length&&n(void 0),2===c.length&&a(void 0);"touch"===A.pointerType&&c.length>1&&c.length-1==1&&(w(!1),B(!1))}),[t,c]),C=NA((A=>{o(A);"touch"===A.pointerType&&1===c.length&&(d(new Lt({selectedElement:void 0})),w(!0),B(!0))}),[t,l,c]),u=NA((A=>{s(A),A.isPrimary&&n({x:A.screenX,y:A.screenY});const t=1===c.length&&"touch"!==c[0].pointerType,o=2===c.length&&"touch"===c[0].pointerType;if(g&&o){const[A,t]=c,e=Math.abs(A.clientX-t.clientX),n=i;n&&h(E.zoom-.0055*(n-e)),a(e)}if(l&&(t||o)&&A.isPrimary){const t=(e?.x||A.screenX)-A.screenX,n=(e?.y||A.screenY)-A.screenY;d(new Lt({selectedElement:void 0,xTranslation:E.xTranslation-t/E.zoom,yTranslation:E.yTranslation-n/E.zoom}))}}),[E.xTranslation,E.yTranslation,E.zoom,l,g,h,c,e,i]),D=NA((A=>{g&&h(E.zoom-.035*Math.sign(A.deltaY))}),[E,g]);HA((()=>{if(!t.current||0===c.length)return;const A=c[0].pointerId,e=t.current.hasPointerCapture(A);l&&!e&&t.current.setPointerCapture(A),!l&&e&&t.current.releasePointerCapture(A)}),[t,l,c]),xe([" "],(()=>{w(!0),d(new Lt({selectedElement:void 0}))}),(()=>w(!1))),xe(["Control"],(()=>B(!0)),(()=>B(!1)));const m=PA((()=>({cursor:l&&0===c.length?"grab":l&&1===c.length?"grabbing":g?"zoom-in":void 0,width:"100%",height:"100%",overflow:"clip"})),[l,g,c]);return kA("div",{ref:t,className:"transform-wrapper",onWheel:D,onPointerDown:C,onPointerUp:Q,onPointerCancel:Q,onPointerLeave:Q,onPointerMove:u,style:m,children:A.children})};export{ji as SpiffCommerceClient,A as CommandContext,lt as spiffCoreConfiguration,Re as PromiseQueue,Ne as QueueablePromise,Vi as MockWorkflowManager,gi as InformationMessageType,Qi as StepHandle,Yi as TextStepHandle,Zi as FrameStepHandle,mi as BulkStepHandle,Fi as ShapeStepHandle,pi as IllustrationStepHandle,Ii as MaterialStepHandle,fi as ModelStepHandle,Mi as PictureStepHandle,yi as QuestionStepHandle,jt as BulkPriceCalculationStrategy,di as Variant,ZA as OptionNotFoundError,$A as LayoutNotFoundError,_A as AssetNotFoundError,At as ResourceNotFoundError,tt as MisconfigurationError,it as ParseError,nt as UnhandledBehaviorError,yt as assetService,ki as designService,Ui as createDesign,St as optionService,gt as persistenceService,ht as graphQlManager,ni as toast,bn as FrameService,kn as getBoundedOffsets,Wn as frameStepService,Zn as modelStepService,qn as materialStepService,ti as shapeStepService,Ai as questionStepService,Kn as digitalContentStepService,$n as moduleStepService,_n as pictureStepService,si as textStepService,Xn as illustrationStepService,Ot as ProductCameraRig,Xi as FrameStep,Vt as ConversionLocation,Xt as ConversionDataType,Oi as getWorkflow,t as AssetType,e as BringForwardCommand,n as BringToFrontCommand,i as BringToBackCommand,a as CanvasCommand,o as CreateElementCommand,r as CreateLayoutCommand,s as DeleteElementCommand,c as FontAlignmentCommand,g as FontColorCommand,B as FontSizeCommand,l as FontSourceCommand,w as GroupCommand,E as LayoutElementFactory,d as LayoutElementType,h as MoveCommand,Q as ResizeCommand,C as RotateCommand,u as SendBackwardsCommand,D as StepAspectType,m as StepType,p as TextChangeCommand,I as UnitOfMeasurement,f as dataUrlFromExternalUrl,M as findElement,y as frameDataCache,F as generate,Y as getAxisAlignedBoundingBox,x as generateSVGWithUnknownColors,S as getAttributesFromArrayBuffer,v as rehydrateSerializedLayout,N as getFrameData,R as getSvgElement,H as loadFontFromDataUrl,U as loadFontFromExternalUrl,P as determineCorrectFontSizeAndLines,G as patternImageDataCache,Bn as generateCommands,k as registerJSDOM,ye as minZoom,mn as AdvancedEditor,$i as TransformWrapper,Dn as EditorCore,Rt as useLayouts,Tt as useEditorState,Ye as useEditorInteraction,xe as useShortcutCombination,kt as commandReducer,Gt as getDefaultState,vt as CommandContextContext,bt as AdvancedEditorStateProvider,Jt as AdvancedEditorContext,Lt as UICommand,Ut as EditorSubMenu,te as ElementEventType,ne as KeyEvent,Sn as gatherVaryingStepAspects};
|
|
887
888
|
//# sourceMappingURL=module.js.map
|
package/dist/types.d.ts
CHANGED
|
@@ -1933,6 +1933,7 @@ export class FrameStepHandle extends StepHandle<_FrameStepData1> {
|
|
|
1933
1933
|
getCurrentFrameStep(frameData: _FrameData1, uploading?: any, imageUploadComplete?: any, variants?: _VariantResource1[]): FrameStep;
|
|
1934
1934
|
getFrameService(): FrameService | undefined;
|
|
1935
1935
|
hasOverlayImageKey(): string | undefined;
|
|
1936
|
+
hasOverlayImageUrl(): any;
|
|
1936
1937
|
hasVaryingUpload(): boolean | undefined;
|
|
1937
1938
|
hasVaryingSelection(): boolean | undefined;
|
|
1938
1939
|
}
|