@dropins/storefront-order 0.1.0-alpha3 → 0.1.0-alpha4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export declare const ORDER_BY_TOKEN: string;
2
+ //# sourceMappingURL=guestOrderByToken.graphql.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { GuestOrderModelResponse } from '../../data/models';
2
+
3
+ export declare const guestOrderByToken: (token?: string) => Promise<GuestOrderModelResponse>;
4
+ //# sourceMappingURL=guestOrderByToken.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from './guestOrderByToken';
2
+ //# sourceMappingURL=index.d.ts.map
package/api/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './initialize';
2
2
  export * from './fetch-graphql';
3
3
  export * from './getOrderDetailsById';
4
4
  export * from './getGuestOrder';
5
+ export * from './guestOrderByToken';
5
6
  //# sourceMappingURL=index.d.ts.map
package/api.js CHANGED
@@ -1,4 +1,4 @@
1
- import{Initializer as l}from"@dropins/tools/lib.js";import{events as g}from"@dropins/tools/event-bus.js";import{O as p,a as f,A as _,f as m,h as D,b as O}from"./chunks/getGuestOrder.js";import{g as x,e as F,r as Q,s as T,c as z,d as H}from"./chunks/getGuestOrder.js";import"@dropins/tools/fetch-graphql.js";const y=`
1
+ import{Initializer as O}from"@dropins/tools/lib.js";import{events as y}from"@dropins/tools/event-bus.js";import{O as c,a as h,A as l,f as p,h as g,b as _,t as D}from"./chunks/getGuestOrder.js";import{g as x,e as F,r as L,s as Q,c as q,d as z}from"./chunks/getGuestOrder.js";import"@dropins/tools/fetch-graphql.js";const b=`
2
2
  query ORDER_BY_NUMBER($orderNumber: String!) {
3
3
  customer {
4
4
  orders(
@@ -29,7 +29,35 @@ query ORDER_BY_NUMBER($orderNumber: String!) {
29
29
  }
30
30
  }
31
31
  }
32
- ${p}
33
- ${f}
34
- ${_}
35
- `,S=r=>{const{shipping_address:a,billing_address:t,payment_methods:s,gift_receipt_included:d,order_date:n,shipping_method:o,total:e,gift_wrapping:i,gift_message:c,items:h}=r;return{defaultShipping:a,defaultBulling:t,paymentMethods:s,giftReceiptIncluded:d,orderDate:n,shippingMethod:o,giftWrapping:i,giftMessage:c,items:h,total:{discount:e==null?void 0:e.discounts,subtotal:e==null?void 0:e.subtotal,totalTax:e==null?void 0:e.total_tax,totalShipping:e==null?void 0:e.total_shipping,grandTotal:e==null?void 0:e.grand_total}}},b=r=>r.total,R=r=>({carrier:r==null?void 0:r.carrier,id:r==null?void 0:r.id,items:r==null?void 0:r.items,number:r==null?void 0:r.number,orderDate:r==null?void 0:r.order_date,paymentMethods:r==null?void 0:r.payment_methods,shippingMethod:r==null?void 0:r.shipping_method}),E=r=>({defaultShipping:r==null?void 0:r.shipping_address,defaultBulling:r==null?void 0:r.billing_address}),I=(r,a)=>{var s,d,n,o,e,i,c;if(!((o=(n=(d=(s=a==null?void 0:a.data)==null?void 0:s.customer)==null?void 0:d.orders)==null?void 0:n.items)!=null&&o.length))return null;const t=(c=(i=(e=a==null?void 0:a.data)==null?void 0:e.customer)==null?void 0:i.orders)==null?void 0:c.items[0];switch(r){case"orderData":return S(t);case"orderSummary":return b(t);case"orderStatus":return R(t);case"orderCustomerInformation":return E(t);default:return null}},M=async(r,a)=>await m(y,{method:"GET",cache:"force-cache",variables:{orderNumber:r}}).then(t=>{var s;return(s=t.errors)!=null&&s.length?D(t.errors):I(a||"orderData",t)}).catch(O),B=async r=>{const a=(r==null?void 0:r.orderId)||"";if(!a){console.error("Order ID not received.");return}const t=await M(a,"orderData");g.emit("order/data",t)},u=new l({init:async r=>{const a={};u.config.setConfig({...a,...r}),B(r).catch(console.error)},listeners:()=>[]}),C=u.config;export{C as config,m as fetchGraphQl,x as getConfig,F as getGuestOrder,M as getOrderDetailsById,u as initialize,Q as removeFetchGraphQlHeader,T as setEndpoint,z as setFetchGraphQlHeader,H as setFetchGraphQlHeaders};
32
+ ${c}
33
+ ${h}
34
+ ${l}
35
+ `,E=r=>{const{shipping_address:e,billing_address:t,payment_methods:s,gift_receipt_included:d,order_date:n,shipping_method:o,total:a,gift_wrapping:i,gift_message:u,items:m}=r;return{defaultShipping:e,defaultBulling:t,paymentMethods:s,giftReceiptIncluded:d,orderDate:n,shippingMethod:o,giftWrapping:i,giftMessage:u,items:m,total:{discount:a==null?void 0:a.discounts,subtotal:a==null?void 0:a.subtotal,totalTax:a==null?void 0:a.total_tax,totalShipping:a==null?void 0:a.total_shipping,grandTotal:a==null?void 0:a.grand_total}}},R=r=>r.total,S=r=>({carrier:r==null?void 0:r.carrier,id:r==null?void 0:r.id,items:r==null?void 0:r.items,number:r==null?void 0:r.number,orderDate:r==null?void 0:r.order_date,paymentMethods:r==null?void 0:r.payment_methods,shippingMethod:r==null?void 0:r.shipping_method}),T=r=>({defaultShipping:r==null?void 0:r.shipping_address,defaultBulling:r==null?void 0:r.billing_address}),B=(r,e)=>{var s,d,n,o,a,i,u;if(!((o=(n=(d=(s=e==null?void 0:e.data)==null?void 0:s.customer)==null?void 0:d.orders)==null?void 0:n.items)!=null&&o.length))return null;const t=(u=(i=(a=e==null?void 0:e.data)==null?void 0:a.customer)==null?void 0:i.orders)==null?void 0:u.items[0];switch(r){case"orderData":return E(t);case"orderSummary":return R(t);case"orderStatus":return S(t);case"orderCustomerInformation":return T(t);default:return null}},k=async(r,e)=>await p(b,{method:"GET",cache:"force-cache",variables:{orderNumber:r}}).then(t=>{var s;return(s=t.errors)!=null&&s.length?g(t.errors):B(e||"orderData",t)}).catch(_),I=`
36
+ query ORDER_BY_TOKEN($token: String!) {
37
+ guestOrderByToken( input: {token: $token} ) {
38
+ shipping_method
39
+ payment_methods {
40
+ name
41
+ }
42
+ shipping_address {
43
+ ...AddressesList
44
+ }
45
+ billing_address {
46
+ ...AddressesList
47
+ }
48
+ number
49
+ id
50
+ order_date
51
+ carrier
52
+ items {
53
+ ...OrderItems
54
+ }
55
+ total {
56
+ ...OrderSummary
57
+ }
58
+ }
59
+ }
60
+ ${c}
61
+ ${h}
62
+ ${l}
63
+ `,M=async r=>await p(I,{method:"GET",cache:"no-cache",variables:{token:r}}).then(e=>{var t;return(t=e.errors)!=null&&t.length?g(e.errors):D(e)}).catch(_),$=async r=>{let e=null;const t=(r==null?void 0:r.orderId)||"",s=(r==null?void 0:r.orderToken)||"";if(!t&&!s){console.error("Order Token or ID not received.");return}if(t&&s){console.error("Error: You cannot pass both id and token together. You should pass only one identifier.");return}t&&(e=await k(t,"orderData")),s&&(e=await M(s)),y.emit("order/data",e)},f=new O({init:async r=>{const e={};f.config.setConfig({...e,...r}),$(r).catch(console.error)},listeners:()=>[]}),Y=f.config;export{Y as config,p as fetchGraphQl,x as getConfig,F as getGuestOrder,k as getOrderDetailsById,M as guestOrderByToken,f as initialize,L as removeFetchGraphQlHeader,Q as setEndpoint,q as setFetchGraphQlHeader,z as setFetchGraphQlHeaders};
@@ -1,4 +1,4 @@
1
- import{events as p}from"@dropins/tools/event-bus.js";import{FetchGraphQL as _}from"@dropins/tools/fetch-graphql.js";const g=`
1
+ import{events as l}from"@dropins/tools/event-bus.js";import{FetchGraphQL as m}from"@dropins/tools/fetch-graphql.js";const _=`
2
2
  fragment OrderSummary on OrderTotal {
3
3
  grand_total {
4
4
  value
@@ -31,7 +31,7 @@ fragment OrderSummary on OrderTotal {
31
31
  }
32
32
  label
33
33
  }
34
- }`,h=`
34
+ }`,g=`
35
35
  fragment AddressesList on OrderAddress {
36
36
  city
37
37
  company
@@ -48,7 +48,7 @@ fragment AddressesList on OrderAddress {
48
48
  suffix
49
49
  telephone
50
50
  vat_id
51
- }`,f=`
51
+ }`,p=`
52
52
  fragment OrderItems on OrderItem {
53
53
  status
54
54
  product_name
@@ -81,7 +81,7 @@ fragment OrderItems on OrderItem {
81
81
  }
82
82
  }
83
83
  }
84
- }`,O=e=>{const t=e.map(a=>a.message).join(" ");throw Error(t)},y=e=>{throw e instanceof DOMException&&e.name==="AbortError"||p.emit("error",{source:"auth",type:"network",error:e}),e},E=e=>{var n,d;if(!((n=e==null?void 0:e.data)!=null&&n.guestOrder))return null;const t=(d=e==null?void 0:e.data)==null?void 0:d.guestOrder,{shipping_address:a,billing_address:s,payment_methods:i,gift_receipt_included:u,order_date:c,printed_card_included:o,shipping_method:l,total:r,...m}=t;return{defaultShipping:a,defaultBulling:s,paymentMethods:i,giftReceiptIncluded:u,orderDate:c,printedCardIncluded:o,shippingMethod:l,total:{discounts:(r==null?void 0:r.discounts)||null,subtotal:(r==null?void 0:r.subtotal)||null,totalTax:(r==null?void 0:r.total_tax)||null,totalShipping:(r==null?void 0:r.total_shipping)||null,grandTotal:(r==null?void 0:r.grand_total)||null},...m}},{setEndpoint:D,setFetchGraphQlHeader:S,removeFetchGraphQlHeader:T,setFetchGraphQlHeaders:x,fetchGraphQl:b,getConfig:I}=new _().getMethods(),G=`
84
+ }`,h=e=>{const t=e.map(a=>a.message).join(" ");throw Error(t)},O=e=>{throw e instanceof DOMException&&e.name==="AbortError"||l.emit("order/error",{source:"auth",type:"network",error:e}),e},d=e=>{const{shipping_address:t,billing_address:a,payment_methods:n,gift_receipt_included:i,order_date:u,printed_card_included:s,shipping_method:c,total:r,...o}=e;return{defaultShipping:t,defaultBulling:a,paymentMethods:n,giftReceiptIncluded:i,orderDate:u,printedCardIncluded:s,shippingMethod:c,total:{discounts:(r==null?void 0:r.discounts)||null,subtotal:(r==null?void 0:r.subtotal)||null,totalTax:(r==null?void 0:r.total_tax)||null,totalShipping:(r==null?void 0:r.total_shipping)||null,grandTotal:(r==null?void 0:r.grand_total)||null},...o}},f=e=>{var a,n;if(!((a=e==null?void 0:e.data)!=null&&a.guestOrder))return null;const t=(n=e==null?void 0:e.data)==null?void 0:n.guestOrder;return d(t)},R=e=>{var a,n;if(!((a=e==null?void 0:e.data)!=null&&a.guestOrderByToken))return null;const t=(n=e==null?void 0:e.data)==null?void 0:n.guestOrderByToken;return d(t)},{setEndpoint:v,setFetchGraphQlHeader:A,removeFetchGraphQlHeader:D,setFetchGraphQlHeaders:S,fetchGraphQl:y,getConfig:x}=new m().getMethods(),E=`
85
85
  fragment guestOrderData on CustomerOrder {
86
86
  gift_receipt_included
87
87
  carrier
@@ -120,14 +120,14 @@ fragment OrderItems on OrderItem {
120
120
  }
121
121
  }
122
122
  }
123
+ ${_}
123
124
  ${g}
124
- ${h}
125
- ${f}
126
- `,R=`
125
+ ${p}
126
+ `,G=`
127
127
  query GET_GUEST_ORDER($input: OrderInformationInput!) {
128
128
  guestOrder(input:$input) {
129
129
  ...guestOrderData
130
130
  }
131
131
  }
132
- ${G}
133
- `,M=async e=>await b(R,{method:"GET",cache:"no-cache",variables:{input:e}}).then(t=>{var a;return(a=t.errors)!=null&&a.length?O(t.errors):E(t)}).catch(y);export{h as A,g as O,f as a,y as b,S as c,x as d,M as e,b as f,I as g,O as h,T as r,D as s};
132
+ ${E}
133
+ `,I=async e=>await y(G,{method:"GET",cache:"no-cache",variables:{input:e}}).then(t=>{var a;return(a=t.errors)!=null&&a.length?h(t.errors):f(t)}).catch(O);export{g as A,_ as O,p as a,O as b,A as c,S as d,I as e,y as f,x as g,h,D as r,v as s,R as t};
@@ -1 +1 @@
1
- import{jsxs as M,jsx as c,Fragment as v}from"@dropins/tools/preact-jsx-runtime.js";import{classes as S}from"@dropins/tools/lib.js";import{Card as C,InLineAlert as w,Icon as L,Button as R,Field as O,Picker as q,Input as V,InputDate as g,Checkbox as F,TextArea as U}from"@dropins/tools/components.js";import{useRef as H,useState as N,useEffect as G,useCallback as A,useMemo as X}from"@dropins/tools/preact-hooks.js";import{Text as _,useText as x}from"@dropins/tools/i18n.js";import*as m from"@dropins/tools/preact-compat.js";import{memo as k,useCallback as D}from"@dropins/tools/preact-compat.js";import{events as P}from"@dropins/tools/event-bus.js";import{e as W}from"../chunks/getGuestOrder.js";import"@dropins/tools/fetch-graphql.js";const z=r=>m.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},m.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M11.8052 14.4968C10.8552 14.4968 9.9752 14.0268 9.4452 13.2368L9.4152 13.1868L9.3852 13.1268C8.1352 11.2268 7.5352 8.96681 7.6852 6.68681C7.7552 4.42681 9.6052 2.61681 11.8652 2.60681H12.0052C14.2752 2.47681 16.2152 4.21681 16.3452 6.47681C16.3452 6.55681 16.3452 6.62681 16.3452 6.70681C16.4852 8.94681 15.9052 11.1768 14.6852 13.0568L14.6052 13.1768C14.0552 13.9868 13.1352 14.4668 12.1652 14.4768H12.0052C11.9352 14.4768 11.8652 14.4868 11.7952 14.4868L11.8052 14.4968Z",stroke:"currentColor"}),m.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M4.3252 21.5469C4.3552 20.4169 4.4752 19.2869 4.6752 18.1769C4.8952 17.1669 6.4752 16.0269 8.9052 15.1569C9.2352 15.0369 9.4852 14.7869 9.5952 14.4569L9.8052 14.0269",stroke:"currentColor"}),m.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M14.425 14.4069L14.165 14.1569C14.375 14.5969 14.725 14.9569 15.155 15.1869C16.945 15.7969 19.125 16.9569 19.375 18.2069C19.585 19.3069 19.685 20.4269 19.675 21.5369",stroke:"currentColor"})),Z=r=>m.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},m.createElement("path",{vectorEffect:"non-scaling-stroke",fillRule:"evenodd",clipRule:"evenodd",d:"M1 20.8953L12.1922 1.5L23.395 20.8953H1ZM13.0278 13.9638L13.25 10.0377V9H11.25V10.0377L11.4722 13.9638H13.0278ZM11.2994 16V17.7509H13.2253V16H11.2994Z",fill:"currentColor"})),j=({onSubmit:r,loading:n,inLineAlert:u,fieldsConfig:o})=>M(C,{variant:"secondary",className:"dropin-order-search-form",children:[c("h2",{className:"dropin-order-search-form__title",children:c(_,{id:"Order.OrderSearchForm.title"})}),c("p",{children:c(_,{id:"Order.OrderSearchForm.description"})}),u.text?c(w,{"data-testid":"orderAlert",className:"dropin-order-search-form__alert",type:u.type,variant:"secondary",heading:u.text,icon:c(L,{source:Z})}):null,c(K,{className:"dropin-order-search-form__wrapper",name:"orderSearchForm",loading:n,fieldsConfig:o,onSubmit:r,children:c("div",{class:"dropin-order-search-form__button-container",children:c(R,{className:"dropin-order-search-form__button",size:"medium",variant:"primary",type:"submit",disabled:n,children:c(_,{id:"Order.OrderSearchForm.button"})},"logIn")})})]}),Y=r=>r.reduce((n,{code:u,required:o,defaultValue:a})=>(o&&(n[u]=a),n),{}),J=({fieldsConfig:r,onSubmit:n})=>{const{requiredFieldError:u}=x({requiredFieldError:"Order.Form.notifications.requiredFieldError"}),o=H(null),[a,i]=N({}),[h,l]=N({});G(()=>{if(!r||!r.length)return;const f=Y(r);i(f)},[r==null?void 0:r.length]);const p=A((f,e)=>{const t=r.find(s=>s.code===f);return t!=null&&t.required&&!e?u:""},[r,u]),b=A(f=>{const{name:e,value:t,type:d,checked:s}=f==null?void 0:f.target,E=d==="checkbox"?s:t;i($=>({...$,[e]:E}))},[]),T=A(f=>{const{name:e,value:t,type:d,checked:s}=f==null?void 0:f.target,E=d==="checkbox"?s:t;l($=>({...$,[e]:p(e,E)}))},[p]),I=A(f=>{f.preventDefault();let e=!0,t={},d=null;for(const[s,E]of Object.entries(a)){const $=p(s,E);$&&(t[s]=$,e=!1,d||(d=s))}if(l(t),d&&o.current){const s=o.current.elements.namedItem(d);s==null||s.focus()}n==null||n(f,e)},[a,p,n]);return{formData:a,errors:h,formRef:o,handleChange:b,handleBlur:T,handleSubmit:I}},B=k(({loading:r,values:n,fields:u=[],errors:o,className:a="",onChange:i,onBlur:h})=>{const l=`${a}__item`,p=D((e,t,d)=>{const s=e.options.map(E=>({text:E.label,value:E.value}));return c(O,{error:d,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${a}--${e.id}`,disabled:r,children:c(q,{name:e.id,floatingLabel:`${e.label} ${e.required?"*":""}`,placeholder:e.label,"aria-label":e.label,options:s,onBlur:h,handleSelect:i,value:t||e.defaultValue})},e.id)},[a,r,l,h,i]),b=D((e,t,d)=>{const s=e.id==="email",E=s?c(z,{}):void 0,$=s?"username":"";return c(O,{error:d,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e==null?void 0:e.is_hidden],e.className]),"data-testid":`${a}--${e.id}`,disabled:r,children:c(V,{"aria-label":e.label,"aria-required":e.required,autoComplete:$,icon:E,type:"text",name:e.id,value:t||e.defaultValue,placeholder:e.label,floatingLabel:`${e.label} ${e.required?"*":""}`,onBlur:h,onChange:i})},e.id)},[a,r,l,h,i]),T=D((e,t,d)=>c(O,{error:d,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${a}--${e.id}`,disabled:r,children:c(g,{type:"text",name:e.id,value:t||e.defaultValue,placeholder:e.label,floatingLabel:`${e.label} ${e.required?"*":""}`,onBlur:h,onChange:i})},e.id),[a,r,l,h,i]),I=D((e,t,d)=>c(O,{error:d,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${a}--${e.id}`,disabled:r,children:c(F,{name:e.id,checked:t||e.defaultValue,placeholder:e.label,label:`${e.label} ${e.required?"*":""}`,onBlur:h,onChange:i})},e.id),[a,r,l,h,i]),f=D((e,t,d)=>c(O,{error:d,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${a}--${e.id}`,disabled:r,children:c(U,{type:"text",name:e.id,value:t===void 0?e.defaultValue:t,label:`${e.label} ${e.required?"*":""}`,onBlur:h,onChange:i})},e.id),[a,r,l,h,i]);return u.length?c(v,{children:u.map(e=>{var s;const t=(o==null?void 0:o[e.id])??"",d=(n==null?void 0:n[e.id])??"";switch(e.fieldType){case"TEXT":return(s=e==null?void 0:e.options)!=null&&s.length?p(e,d,t):b(e,d,t);case"MULTILINE":return b(e,d,t);case"SELECT":return p(e,d,t);case"DATE":return T(e,d,t);case"BOOLEAN":return I(e,d,t);case"TEXTAREA":return f(e,d,t);default:return null}})}):null}),K=k(({name:r,loading:n,children:u,className:o="defaultForm",fieldsConfig:a,onSubmit:i})=>{const{formData:h,errors:l,formRef:p,handleChange:b,handleBlur:T,handleSubmit:I}=J({fieldsConfig:a,onSubmit:i});return M("form",{className:S(["dropin-form",o]),onSubmit:I,name:r,ref:p,children:[c(B,{className:o,loading:n,fields:a,onChange:b,onBlur:T,errors:l,values:h}),u]})});var y=(r=>(r.BOOLEAN="BOOLEAN",r.DATE="DATE",r.DATETIME="DATETIME",r.DROPDOWN="DROPDOWN",r.FILE="FILE",r.GALLERY="GALLERY",r.HIDDEN="HIDDEN",r.IMAGE="IMAGE",r.MEDIA_IMAGE="MEDIA_IMAGE",r.MULTILINE="MULTILINE",r.MULTISELECT="MULTISELECT",r.PRICE="PRICE",r.SELECT="SELECT",r.TEXT="TEXT",r.TEXTAREA="TEXTAREA",r.UNDEFINED="UNDEFINED",r.VISUAL="VISUAL",r.WEIGHT="WEIGHT",r.EMPTY="",r))(y||{});const Q=r=>{if(!r)return null;const n=new FormData(r);if(r.querySelectorAll('input[type="checkbox"]').forEach(o=>{n.has(o.name)||n.set(o.name,"false"),o.checked&&n.set(o.name,"true")}),n&&typeof n.entries=="function"){const o=n.entries();if(o&&typeof o[Symbol.iterator]=="function")return JSON.parse(JSON.stringify(Object.fromEntries(o)))||{}}return{}},ee=()=>{const[r,n]=N({text:"",type:"success"}),[u,o]=N(!1),a=x({invalidSearch:"Order.Errors.invalidSearch",unknown:"Order.Errors.unknown",email:"Order.OrderSearchForm.email",postcode:"Order.OrderSearchForm.postcode",number:"Order.OrderSearchForm.orderNumber"}),i=X(()=>[{entity_type:"CUSTOMER_ADDRESS",is_unique:!1,label:a.email,options:[],defaultValue:"",fieldType:y.TEXT,className:"",required:!0,orderNumber:1,name:"email",id:"email",code:"email"},{entity_type:"CUSTOMER_ADDRESS",is_unique:!1,label:a.postcode,options:[],defaultValue:"",fieldType:y.TEXT,className:"",required:!0,orderNumber:2,name:"postcode",id:"postcode",code:"postcode"},{entity_type:"CUSTOMER_ADDRESS",is_unique:!1,label:a.number,options:[],defaultValue:"",fieldType:y.TEXT,className:"",required:!0,orderNumber:3,name:"number",id:"number",code:"number"}],[a]);return{onSubmit:A(async(l,p)=>{if(!p)return null;o(!0);const b=Q(l.target);await W(b).then(T=>{T||n({text:a.invalidSearch,type:"warning"}),P.emit("order/data",T)}).catch(()=>{n({text:a.unknown,type:"warning"})}).finally(()=>{o(!1)}),l.target.reset()},[a]),inLineAlert:r,loading:u,normalizeFieldsConfig:i}},ue=({className:r})=>{const{onSubmit:n,loading:u,inLineAlert:o,normalizeFieldsConfig:a}=ee();return c("div",{className:S(["dropin-order-search",r]),children:c(j,{onSubmit:n,loading:u,inLineAlert:o,fieldsConfig:a})})};export{ue as OrderSearch,ue as default};
1
+ import{jsxs as M,jsx as c,Fragment as C}from"@dropins/tools/preact-jsx-runtime.js";import{classes as S}from"@dropins/tools/lib.js";import{Card as L,InLineAlert as R,Icon as k,Button as q,Field as D,Picker as w,Input as V,InputDate as g,Checkbox as F,TextArea as U}from"@dropins/tools/components.js";import{useRef as H,useState as N,useEffect as G,useCallback as A,useMemo as X}from"@dropins/tools/preact-hooks.js";import{Text as _,useText as v}from"@dropins/tools/i18n.js";import*as I from"@dropins/tools/preact-compat.js";import{memo as x,useCallback as O}from"@dropins/tools/preact-compat.js";import{events as P}from"@dropins/tools/event-bus.js";import{e as W}from"../chunks/getGuestOrder.js";import"@dropins/tools/fetch-graphql.js";const z=r=>I.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},I.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M11.8052 14.4968C10.8552 14.4968 9.9752 14.0268 9.4452 13.2368L9.4152 13.1868L9.3852 13.1268C8.1352 11.2268 7.5352 8.96681 7.6852 6.68681C7.7552 4.42681 9.6052 2.61681 11.8652 2.60681H12.0052C14.2752 2.47681 16.2152 4.21681 16.3452 6.47681C16.3452 6.55681 16.3452 6.62681 16.3452 6.70681C16.4852 8.94681 15.9052 11.1768 14.6852 13.0568L14.6052 13.1768C14.0552 13.9868 13.1352 14.4668 12.1652 14.4768H12.0052C11.9352 14.4768 11.8652 14.4868 11.7952 14.4868L11.8052 14.4968Z",stroke:"currentColor"}),I.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M4.3252 21.5469C4.3552 20.4169 4.4752 19.2869 4.6752 18.1769C4.8952 17.1669 6.4752 16.0269 8.9052 15.1569C9.2352 15.0369 9.4852 14.7869 9.5952 14.4569L9.8052 14.0269",stroke:"currentColor"}),I.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M14.425 14.4069L14.165 14.1569C14.375 14.5969 14.725 14.9569 15.155 15.1869C16.945 15.7969 19.125 16.9569 19.375 18.2069C19.585 19.3069 19.685 20.4269 19.675 21.5369",stroke:"currentColor"})),Z=r=>I.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...r},I.createElement("path",{vectorEffect:"non-scaling-stroke",fillRule:"evenodd",clipRule:"evenodd",d:"M1 20.8953L12.1922 1.5L23.395 20.8953H1ZM13.0278 13.9638L13.25 10.0377V9H11.25V10.0377L11.4722 13.9638H13.0278ZM11.2994 16V17.7509H13.2253V16H11.2994Z",fill:"currentColor"})),j=({onSubmit:r,loading:t,inLineAlert:i,fieldsConfig:n})=>M(L,{variant:"secondary",className:"dropin-order-search-form",children:[c("h2",{className:"dropin-order-search-form__title",children:c(_,{id:"Order.OrderSearchForm.title"})}),c("p",{children:c(_,{id:"Order.OrderSearchForm.description"})}),i.text?c(R,{"data-testid":"orderAlert",className:"dropin-order-search-form__alert",type:i.type,variant:"secondary",heading:i.text,icon:c(k,{source:Z})}):null,c(K,{className:"dropin-order-search-form__wrapper",name:"orderSearchForm",loading:t,fieldsConfig:n,onSubmit:r,children:c("div",{className:"dropin-order-search-form__button-container",children:c(q,{className:"dropin-order-search-form__button",size:"medium",variant:"primary",type:"submit",disabled:t,children:c(_,{id:"Order.OrderSearchForm.button"})},"logIn")})})]}),Y=r=>r.reduce((t,{code:i,required:n,defaultValue:d})=>(n&&(t[i]=d),t),{}),J=({fieldsConfig:r,onSubmit:t})=>{const{requiredFieldError:i}=v({requiredFieldError:"Order.Form.notifications.requiredFieldError"}),n=H(null),[d,s]=N({}),[f,l]=N({});G(()=>{if(!r||!r.length)return;const h=Y(r);s(h)},[r==null?void 0:r.length]);const p=A((h,e)=>{const a=r.find(u=>u.code===h);return a!=null&&a.required&&!e?i:""},[r,i]),T=A(h=>{const{name:e,value:a,type:o,checked:u}=h==null?void 0:h.target,b=o==="checkbox"?u:a;s(m=>({...m,[e]:b}))},[]),$=A(h=>{const{name:e,value:a,type:o,checked:u}=h==null?void 0:h.target,b=o==="checkbox"?u:a;l(m=>({...m,[e]:p(e,b)}))},[p]),E=A(h=>{h.preventDefault();let e=!0,a={},o=null;for(const[u,b]of Object.entries(d)){const m=p(u,b);m&&(a[u]=m,e=!1,o||(o=u))}if(l(a),o&&n.current){const u=n.current.elements.namedItem(o);u==null||u.focus()}t==null||t(h,e)},[d,p,t]);return{formData:d,errors:f,formRef:n,handleChange:T,handleBlur:$,handleSubmit:E}},B=x(({loading:r,values:t,fields:i=[],errors:n,className:d="",onChange:s,onBlur:f})=>{const l=`${d}__item`,p=O((e,a,o)=>{const u=e.options.map(b=>({text:b.label,value:b.value}));return c(D,{error:o,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${d}--${e.id}`,disabled:r,children:c(w,{name:e.id,floatingLabel:`${e.label} ${e.required?"*":""}`,placeholder:e.label,"aria-label":e.label,options:u,onBlur:f,handleSelect:s,value:a||e.defaultValue})},e.id)},[d,r,l,f,s]),T=O((e,a,o)=>{const u=e.id==="email",b=u?c(z,{}):void 0,m=u?"username":"";return c(D,{error:o,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e==null?void 0:e.is_hidden],e.className]),"data-testid":`${d}--${e.id}`,disabled:r,children:c(V,{"aria-label":e.label,"aria-required":e.required,autoComplete:m,icon:b,type:"text",name:e.id,value:a||e.defaultValue,placeholder:e.label,floatingLabel:`${e.label} ${e.required?"*":""}`,onBlur:f,onChange:s})},e.id)},[d,r,l,f,s]),$=O((e,a,o)=>c(D,{error:o,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${d}--${e.id}`,disabled:r,children:c(g,{type:"text",name:e.id,value:a||e.defaultValue,placeholder:e.label,floatingLabel:`${e.label} ${e.required?"*":""}`,onBlur:f,onChange:s})},e.id),[d,r,l,f,s]),E=O((e,a,o)=>c(D,{error:o,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${d}--${e.id}`,disabled:r,children:c(F,{name:e.id,checked:a||e.defaultValue,placeholder:e.label,label:`${e.label} ${e.required?"*":""}`,onBlur:f,onChange:s})},e.id),[d,r,l,f,s]),h=O((e,a,o)=>c(D,{error:o,className:S([l,`${l}--${e.id}`,[`${l}--${e.id}-hidden`,e.is_hidden],e.className]),"data-testid":`${d}--${e.id}`,disabled:r,children:c(U,{type:"text",name:e.id,value:a===void 0?e.defaultValue:a,label:`${e.label} ${e.required?"*":""}`,onBlur:f,onChange:s})},e.id),[d,r,l,f,s]);return i.length?c(C,{children:i.map(e=>{var u;const a=(n==null?void 0:n[e.id])??"",o=(t==null?void 0:t[e.id])??"";switch(e.fieldType){case"TEXT":return(u=e==null?void 0:e.options)!=null&&u.length?p(e,o,a):T(e,o,a);case"MULTILINE":return T(e,o,a);case"SELECT":return p(e,o,a);case"DATE":return $(e,o,a);case"BOOLEAN":return E(e,o,a);case"TEXTAREA":return h(e,o,a);default:return null}})}):null}),K=x(({name:r,loading:t,children:i,className:n="defaultForm",fieldsConfig:d,onSubmit:s})=>{const{formData:f,errors:l,formRef:p,handleChange:T,handleBlur:$,handleSubmit:E}=J({fieldsConfig:d,onSubmit:s});return M("form",{className:S(["dropin-form",n]),onSubmit:E,name:r,ref:p,children:[c(B,{className:n,loading:t,fields:d,onChange:T,onBlur:$,errors:l,values:f}),i]})});var y=(r=>(r.BOOLEAN="BOOLEAN",r.DATE="DATE",r.DATETIME="DATETIME",r.DROPDOWN="DROPDOWN",r.FILE="FILE",r.GALLERY="GALLERY",r.HIDDEN="HIDDEN",r.IMAGE="IMAGE",r.MEDIA_IMAGE="MEDIA_IMAGE",r.MULTILINE="MULTILINE",r.MULTISELECT="MULTISELECT",r.PRICE="PRICE",r.SELECT="SELECT",r.TEXT="TEXT",r.TEXTAREA="TEXTAREA",r.UNDEFINED="UNDEFINED",r.VISUAL="VISUAL",r.WEIGHT="WEIGHT",r.EMPTY="",r))(y||{});const Q=r=>{if(!r)return null;const t=new FormData(r);if(r.querySelectorAll('input[type="checkbox"]').forEach(n=>{t.has(n.name)||t.set(n.name,"false"),n.checked&&t.set(n.name,"true")}),t&&typeof t.entries=="function"){const n=t.entries();if(n&&typeof n[Symbol.iterator]=="function")return JSON.parse(JSON.stringify(Object.fromEntries(n)))||{}}return{}},ee=({onError:r})=>{const[t,i]=N({text:"",type:"success"}),[n,d]=N(!1),s=v({invalidSearch:"Order.Errors.invalidSearch",email:"Order.OrderSearchForm.email",postcode:"Order.OrderSearchForm.postcode",number:"Order.OrderSearchForm.orderNumber"}),f=X(()=>[{entity_type:"CUSTOMER_ADDRESS",is_unique:!1,label:s.email,options:[],defaultValue:"",fieldType:y.TEXT,className:"",required:!0,orderNumber:1,name:"email",id:"email",code:"email"},{entity_type:"CUSTOMER_ADDRESS",is_unique:!1,label:s.postcode,options:[],defaultValue:"",fieldType:y.TEXT,className:"",required:!0,orderNumber:2,name:"postcode",id:"postcode",code:"postcode"},{entity_type:"CUSTOMER_ADDRESS",is_unique:!1,label:s.number,options:[],defaultValue:"",fieldType:y.TEXT,className:"",required:!0,orderNumber:3,name:"number",id:"number",code:"number"}],[s]);return{onSubmit:A(async(p,T)=>{if(!T)return null;d(!0);const $=Q(p.target);await W($).then(E=>{E||i({text:s.invalidSearch,type:"warning"}),P.emit("order/data",E)}).catch(E=>{r==null||r({error:E.message,formValues:$}),i({text:E.message,type:"warning"})}).finally(()=>{d(!1)})},[r,s]),inLineAlert:t,loading:n,normalizeFieldsConfig:f}},ue=({className:r,onError:t})=>{const{onSubmit:i,loading:n,inLineAlert:d,normalizeFieldsConfig:s}=ee({onError:t});return c("div",{className:S(["dropin-order-search",r]),children:c(j,{onSubmit:i,loading:n,inLineAlert:d,fieldsConfig:s})})};export{ue as OrderSearch,ue as default};
@@ -1,5 +1,6 @@
1
- import { GuestOrderResponse } from '../../types';
1
+ import { GuestOrderByTokenResponse, GuestOrderResponse } from '../../types';
2
2
  import { GuestOrderModelResponse } from '../models';
3
3
 
4
4
  export declare const transformGuestOrder: (response: GuestOrderResponse) => GuestOrderModelResponse;
5
+ export declare const transformGuestOrderByToken: (response: GuestOrderByTokenResponse) => GuestOrderModelResponse;
5
6
  //# sourceMappingURL=transform-guest-order.d.ts.map
@@ -1,6 +1,6 @@
1
- import { FieldEnumList, inLineAlertProps } from '../../types';
1
+ import { FieldEnumList, inLineAlertProps, useOrderSearchProps } from '../../types';
2
2
 
3
- export declare const useOrderSearch: () => {
3
+ export declare const useOrderSearch: ({ onError }: useOrderSearchProps) => {
4
4
  onSubmit: (event: Event, valid: boolean) => Promise<null | undefined>;
5
5
  inLineAlert: inLineAlertProps;
6
6
  loading: boolean;
@@ -15,8 +15,7 @@ declare const _default: {
15
15
  },
16
16
  "Errors": {
17
17
  "invalidOrder": "Invalid order. Please try again.",
18
- "invalidSearch": "No order found with these order details.",
19
- "unknown": "Something went wrong. Please try again."
18
+ "invalidSearch": "No order found with these order details."
20
19
  }
21
20
  }
22
21
  }
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-order", "version": "0.1.0-alpha3", "@dropins/elsie": "0.26.0-alpha225"}
1
+ {"name": "@dropins/storefront-order", "version": "0.1.0-alpha4", "@dropins/elsie": "0.28.2-alpha592"}
package/render.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(a,t){try{if(typeof document<"u"){const e=document.createElement("style"),n=t.styleId;for(const r in t.attributes)e.setAttribute(r,t.attributes[r]);e.setAttribute("data-dropin",n),e.appendChild(document.createTextNode(a));const o=document.querySelector('style[data-dropin="sdk"]');if(o)o.after(e);else{const r=document.querySelector('link[rel="stylesheet"], style');r?r.before(e):document.head.append(e)}}}catch(e){console.error("dropin-styles (injectCodeFunction)",e)}})('.dropin-order-search-form{gap:var(--spacing-small)}.dropin-order-search-form p{color:var(--color-neutral-700);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);margin:0}.dropin-order-search-form__title{color:var(--color-neutral-800);font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);margin:0}.dropin-order-search-form__wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"email" "postcode" "number" "button";gap:var(--spacing-medium)}.dropin-order-search-form__wrapper__item--email{grid-area:email}.dropin-order-search-form__wrapper__item--postcode{grid-area:postcode}.dropin-order-search-form__wrapper__item--number{grid-area:number}.dropin-order-search-form__button-container{display:flex;justify-content:flex-end;grid-area:button}.dropin-order-search-form form button{align-self:flex-end;justify-self:flex-end;margin-top:var(--spacing-small)}@media (min-width: 768px){.dropin-order-search-form__wrapper{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-template-areas:"email postcode" "number number" "button button"}}',{styleId:"order"});
2
- import{jsx as e}from"@dropins/tools/preact-jsx-runtime.js";import{Render as d}from"@dropins/tools/lib.js";import{useState as a,useEffect as s}from"@dropins/tools/preact-hooks.js";import{UIProvider as m}from"@dropins/tools/components.js";import{events as u}from"@dropins/tools/event-bus.js";const c={OrderSearchForm:{title:"Enter your information to view order details",description:"You can find your order number in the receipt you received via email.",button:"View Order",email:"Email",postcode:"Zip Code",orderNumber:"Order Number"},Form:{notifications:{requiredFieldError:"This is a required field."}},Errors:{invalidOrder:"Invalid order. Please try again.",invalidSearch:"No order found with these order details.",unknown:"Something went wrong. Please try again."}},f={Order:c},l={default:f},p=({children:o})=>{const[i,n]=a("en_US");return s(()=>{const r=u.on("locale",t=>{n(t)},{eager:!0});return()=>{r==null||r.off()}},[]),e(m,{lang:i,langDefinitions:l,children:o})},S=new d(e(p,{}));export{S as render};
1
+ (function(a,t){try{if(typeof document<"u"){const e=document.createElement("style"),n=t.styleId;for(const r in t.attributes)e.setAttribute(r,t.attributes[r]);e.setAttribute("data-dropin",n),e.appendChild(document.createTextNode(a));const o=document.querySelector('style[data-dropin="sdk"]');if(o)o.after(e);else{const r=document.querySelector('link[rel="stylesheet"], style');r?r.before(e):document.head.append(e)}}}catch(e){console.error("dropin-styles (injectCodeFunction)",e)}})('.dropin-order-search-form{gap:var(--spacing-small);border-color:transparent}.dropin-order-search-form .dropin-card__content{padding:var(--spacing-big) var(--spacing-xxbig) var(--spacing-xxbig) var(--spacing-xxbig)}.dropin-order-search-form p{color:var(--color-neutral-700);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);margin:0}.dropin-order-search-form__title{color:var(--color-neutral-800);font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);margin:0}.dropin-order-search-form__wrapper{display:grid;grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"email" "postcode" "number" "button";gap:var(--spacing-medium)}.dropin-order-search-form__wrapper__item--email{grid-area:email}.dropin-order-search-form__wrapper__item--postcode{grid-area:postcode}.dropin-order-search-form__wrapper__item--number{grid-area:number}.dropin-order-search-form__button-container{display:flex;justify-content:flex-end;grid-area:button}.dropin-order-search-form form button{align-self:flex-end;justify-self:flex-end;margin-top:var(--spacing-small)}@media (min-width: 768px){.dropin-order-search-form__wrapper{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-template-areas:"email postcode" "number number" "button button"}}',{styleId:"order"});
2
+ import{jsx as e}from"@dropins/tools/preact-jsx-runtime.js";import{Render as d}from"@dropins/tools/lib.js";import{useState as a,useEffect as s}from"@dropins/tools/preact-hooks.js";import{UIProvider as m}from"@dropins/tools/components.js";import{events as u}from"@dropins/tools/event-bus.js";const c={OrderSearchForm:{title:"Enter your information to view order details",description:"You can find your order number in the receipt you received via email.",button:"View Order",email:"Email",postcode:"Zip Code",orderNumber:"Order Number"},Form:{notifications:{requiredFieldError:"This is a required field."}},Errors:{invalidOrder:"Invalid order. Please try again.",invalidSearch:"No order found with these order details."}},f={Order:c},l={default:f},p=({children:o})=>{const[i,t]=a("en_US");return s(()=>{const r=u.on("locale",n=>{t(n)},{eager:!0});return()=>{r==null||r.off()}},[]),e(m,{lang:i,langDefinitions:l,children:o})},b=new d(e(p,{}));export{b as render};
@@ -0,0 +1,13 @@
1
+ import { OrderProps } from '..';
2
+
3
+ export interface GuestOrderByTokenProps extends OrderProps {
4
+ }
5
+ export interface GuestOrderByTokenResponse {
6
+ data: {
7
+ guestOrderByToken?: GuestOrderByTokenProps;
8
+ };
9
+ errors?: {
10
+ message: string;
11
+ }[];
12
+ }
13
+ //# sourceMappingURL=guestOrderByToken.types.d.ts.map
package/types/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './api/getOrderDetails.types';
2
2
  export * from './api/getGuestOrder.types';
3
3
  export * from './orderSearch.types';
4
4
  export * from './form.types';
5
+ export * from './api/guestOrderByToken.types';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,13 +1,25 @@
1
1
  import { FieldsProps } from '.';
2
2
 
3
+ type errorInformationProps = {
4
+ error: string;
5
+ formValues: {
6
+ email: string;
7
+ postcode: string;
8
+ number: string;
9
+ };
10
+ };
3
11
  export interface inLineAlertProps {
4
12
  text: string;
5
13
  type: 'success' | 'warning' | 'error';
6
14
  }
7
15
  export interface OrderSearchProps {
8
16
  className?: string;
17
+ onError?: (errorInformation: errorInformationProps) => void;
9
18
  }
10
- export interface OrderSearchFormProps extends Omit<OrderSearchProps, 'className'> {
19
+ export interface useOrderSearchProps {
20
+ onError?: (errorInformation: errorInformationProps) => void;
21
+ }
22
+ export interface OrderSearchFormProps extends Omit<OrderSearchProps, 'className' | 'onError'> {
11
23
  onSubmit?: (event: SubmitEvent, isValid: boolean) => Promise<void | null | undefined>;
12
24
  loading: boolean;
13
25
  inLineAlert: inLineAlertProps;
@@ -15,4 +27,5 @@ export interface OrderSearchFormProps extends Omit<OrderSearchProps, 'className'
15
27
  }
16
28
  export interface useOrderSearch extends Omit<OrderSearchProps, 'className'> {
17
29
  }
30
+ export {};
18
31
  //# sourceMappingURL=orderSearch.types.d.ts.map