@zonos/elements 1.3.187 → 1.3.189

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/cjs/TaxId-12acedde.js +94 -0
  2. package/dist/cjs/{cart-f9df3ac8.js → cart-27f6c7a4.js} +60 -0
  3. package/dist/cjs/index.cjs.js +9 -8
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{paypal-5e73c8f5.js → paypal-84d83a76.js} +1 -1
  6. package/dist/cjs/zonos-address_11.cjs.entry.js +61 -4
  7. package/dist/cjs/zonos-cart-items_13.cjs.entry.js +37 -31
  8. package/dist/cjs/zonos-checkout.cjs.entry.js +2 -2
  9. package/dist/cjs/zonos-controller.cjs.entry.js +1 -1
  10. package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
  11. package/dist/cjs/zonos-country-select_4.cjs.entry.js +1 -1
  12. package/dist/cjs/zonos-elements.cjs.js +1 -1
  13. package/dist/cjs/zonos-empty-state-payment_4.cjs.entry.js +2 -2
  14. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +1 -1
  15. package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
  16. package/dist/cjs/zonos-language-select_2.cjs.entry.js +1 -1
  17. package/dist/cjs/zonos-stripe-input.cjs.entry.js +2 -2
  18. package/dist/collection/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.js +14 -28
  19. package/dist/collection/components/common/zonos-stripe-input/zonos-stripe-input.css +1 -0
  20. package/dist/collection/components/common/zonos-stripe-input/zonos-stripe-input.js +1 -1
  21. package/dist/collection/components/store/translationStore/strings.arabic.js +3 -0
  22. package/dist/collection/components/store/translationStore/strings.base.js +3 -0
  23. package/dist/collection/components/store/translationStore/strings.chinese.js +3 -0
  24. package/dist/collection/components/store/translationStore/strings.danish.js +3 -0
  25. package/dist/collection/components/store/translationStore/strings.dutch.js +3 -0
  26. package/dist/collection/components/store/translationStore/strings.french.js +3 -0
  27. package/dist/collection/components/store/translationStore/strings.german.js +3 -0
  28. package/dist/collection/components/store/translationStore/strings.hebrew.js +3 -0
  29. package/dist/collection/components/store/translationStore/strings.indonesian.js +3 -0
  30. package/dist/collection/components/store/translationStore/strings.italian.js +3 -0
  31. package/dist/collection/components/store/translationStore/strings.japanese.js +3 -0
  32. package/dist/collection/components/store/translationStore/strings.korean.js +3 -0
  33. package/dist/collection/components/store/translationStore/strings.norwegian.js +3 -0
  34. package/dist/collection/components/store/translationStore/strings.polish.js +3 -0
  35. package/dist/collection/components/store/translationStore/strings.portuguese.js +3 -0
  36. package/dist/collection/components/store/translationStore/strings.russian.js +3 -0
  37. package/dist/collection/components/store/translationStore/strings.spanish.js +3 -0
  38. package/dist/collection/components/store/translationStore/strings.swedish.js +3 -0
  39. package/dist/collection/components/store/translationStore/strings.turkish.js +3 -0
  40. package/dist/collection/components/store/translationStore/strings.vietnamese.js +3 -0
  41. package/dist/collection/components/stripe/zonos-address/zonos-address.js +65 -1
  42. package/dist/collection/components/stripe/zonos-custom-address/zonos-custom-address.js +50 -2
  43. package/dist/collection/components/utils/taxIdValidationResult.js +23 -2
  44. package/dist/collection/types/checkout/TaxId.js +64 -0
  45. package/dist/esm/TaxId-50d72254.js +90 -0
  46. package/dist/esm/{cart-4725a63b.js → cart-f5c12be6.js} +60 -0
  47. package/dist/esm/index.js +8 -8
  48. package/dist/esm/loader.js +1 -1
  49. package/dist/esm/{paypal-a09943f4.js → paypal-594f49e9.js} +1 -1
  50. package/dist/esm/zonos-address_11.entry.js +61 -4
  51. package/dist/esm/zonos-cart-items_13.entry.js +37 -31
  52. package/dist/esm/zonos-checkout.entry.js +2 -2
  53. package/dist/esm/zonos-controller.entry.js +1 -1
  54. package/dist/esm/zonos-country-flag.entry.js +1 -1
  55. package/dist/esm/zonos-country-select_4.entry.js +1 -1
  56. package/dist/esm/zonos-elements.js +1 -1
  57. package/dist/esm/zonos-empty-state-payment_4.entry.js +2 -2
  58. package/dist/esm/zonos-hello-dialog.entry.js +1 -1
  59. package/dist/esm/zonos-hello.entry.js +1 -1
  60. package/dist/esm/zonos-language-select_2.entry.js +1 -1
  61. package/dist/esm/zonos-stripe-input.entry.js +2 -2
  62. package/dist/esm-es5/TaxId-50d72254.js +1 -0
  63. package/dist/esm-es5/cart-f5c12be6.js +1 -0
  64. package/dist/esm-es5/index.js +1 -1
  65. package/dist/esm-es5/loader.js +1 -1
  66. package/dist/esm-es5/{paypal-a09943f4.js → paypal-594f49e9.js} +1 -1
  67. package/dist/esm-es5/zonos-address_11.entry.js +1 -1
  68. package/dist/esm-es5/zonos-cart-items_13.entry.js +1 -1
  69. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  70. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  71. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  72. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  73. package/dist/esm-es5/zonos-elements.js +1 -1
  74. package/dist/esm-es5/zonos-empty-state-payment_4.entry.js +1 -1
  75. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  76. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  77. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  78. package/dist/esm-es5/zonos-stripe-input.entry.js +1 -1
  79. package/dist/scripts/index.d.ts +21 -0
  80. package/dist/scripts/index.js +1 -1
  81. package/dist/scripts/loadZonos.js +1 -1
  82. package/dist/scripts/zonos.js +1 -1
  83. package/dist/types/components/checkout/zonos-checkout/zonos-customer-info/zonos-customer-info.d.ts +4 -5
  84. package/dist/types/components/store/translationStore/strings.arabic.d.ts +3 -0
  85. package/dist/types/components/store/translationStore/strings.base.d.ts +3 -0
  86. package/dist/types/components/store/translationStore/strings.chinese.d.ts +3 -0
  87. package/dist/types/components/store/translationStore/strings.danish.d.ts +3 -0
  88. package/dist/types/components/store/translationStore/strings.dutch.d.ts +3 -0
  89. package/dist/types/components/store/translationStore/strings.french.d.ts +3 -0
  90. package/dist/types/components/store/translationStore/strings.german.d.ts +3 -0
  91. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +3 -0
  92. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +3 -0
  93. package/dist/types/components/store/translationStore/strings.italian.d.ts +3 -0
  94. package/dist/types/components/store/translationStore/strings.japanese.d.ts +3 -0
  95. package/dist/types/components/store/translationStore/strings.korean.d.ts +3 -0
  96. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +3 -0
  97. package/dist/types/components/store/translationStore/strings.polish.d.ts +3 -0
  98. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +3 -0
  99. package/dist/types/components/store/translationStore/strings.russian.d.ts +3 -0
  100. package/dist/types/components/store/translationStore/strings.spanish.d.ts +3 -0
  101. package/dist/types/components/store/translationStore/strings.swedish.d.ts +3 -0
  102. package/dist/types/components/store/translationStore/strings.turkish.d.ts +3 -0
  103. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +3 -0
  104. package/dist/types/components/stripe/zonos-address/zonos-address.d.ts +13 -0
  105. package/dist/types/components/stripe/zonos-custom-address/zonos-custom-address.d.ts +9 -0
  106. package/dist/types/components/utils/taxIdValidationResult.d.ts +2 -1
  107. package/dist/types/components.d.ts +21 -0
  108. package/dist/types/types/checkout/TaxId.d.ts +123 -1
  109. package/dist/zonos-elements/index.esm.js +1 -1
  110. package/dist/zonos-elements/p-01eda7f2.entry.js +1 -0
  111. package/dist/zonos-elements/p-0252b8e9.system.js +1 -0
  112. package/dist/zonos-elements/p-03bbd1af.entry.js +1 -0
  113. package/dist/zonos-elements/p-04a0e38b.system.entry.js +1 -0
  114. package/dist/zonos-elements/{p-e90cb997.entry.js → p-0dae66d2.entry.js} +1 -1
  115. package/dist/zonos-elements/{p-aaff5dcc.entry.js → p-1146b6e0.entry.js} +1 -1
  116. package/dist/zonos-elements/p-23975acb.system.entry.js +1 -0
  117. package/dist/zonos-elements/p-2b8345d8.system.js +1 -0
  118. package/dist/zonos-elements/{p-04303b56.system.entry.js → p-315d8e78.system.entry.js} +1 -1
  119. package/dist/zonos-elements/{p-175e242e.entry.js → p-3707564c.entry.js} +1 -1
  120. package/dist/zonos-elements/p-3831dab5.system.js +1 -0
  121. package/dist/zonos-elements/{p-341f40c2.system.entry.js → p-3d130579.system.entry.js} +1 -1
  122. package/dist/zonos-elements/{p-0104d3ba.entry.js → p-4d1269a7.entry.js} +1 -1
  123. package/dist/zonos-elements/p-54fdf40b.entry.js +1 -0
  124. package/dist/zonos-elements/{p-de462b9b.js → p-657390e6.js} +2 -2
  125. package/dist/zonos-elements/p-6b361d2b.js +1 -0
  126. package/dist/zonos-elements/{p-fd348fd4.system.entry.js → p-751bfce8.system.entry.js} +1 -1
  127. package/dist/zonos-elements/{p-9a7a9b1c.entry.js → p-77654589.entry.js} +1 -1
  128. package/dist/zonos-elements/{p-e5d081d8.entry.js → p-7bed199d.entry.js} +1 -1
  129. package/dist/zonos-elements/{p-995761ea.system.entry.js → p-83a7ece6.system.entry.js} +1 -1
  130. package/dist/zonos-elements/p-86d29d50.system.entry.js +1 -0
  131. package/dist/zonos-elements/{p-98e4a965.system.entry.js → p-9aa94d71.system.entry.js} +1 -1
  132. package/dist/zonos-elements/{p-818d6f17.entry.js → p-a09f64e1.entry.js} +1 -1
  133. package/dist/zonos-elements/p-d7b5b237.js +1 -0
  134. package/dist/zonos-elements/{p-6fd6af48.system.entry.js → p-db3f6d6e.system.entry.js} +1 -1
  135. package/dist/zonos-elements/{p-70d4d436.entry.js → p-ddc464c4.entry.js} +1 -1
  136. package/dist/zonos-elements/{p-9913c186.system.js → p-e2d45b2e.system.js} +1 -1
  137. package/dist/zonos-elements/p-ea6d87a1.system.js +1 -1
  138. package/dist/zonos-elements/{p-64ea232c.system.entry.js → p-ee99cf66.system.entry.js} +1 -1
  139. package/dist/zonos-elements/{p-9f7b9d66.system.entry.js → p-eeaff898.system.entry.js} +1 -1
  140. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  141. package/package.json +1 -1
  142. package/dist/cjs/TaxId-4632639d.js +0 -29
  143. package/dist/esm/TaxId-915ef042.js +0 -26
  144. package/dist/esm-es5/TaxId-915ef042.js +0 -1
  145. package/dist/esm-es5/cart-4725a63b.js +0 -1
  146. package/dist/zonos-elements/p-12a6b7bd.system.js +0 -1
  147. package/dist/zonos-elements/p-25c47bf9.system.entry.js +0 -1
  148. package/dist/zonos-elements/p-33bdbcfd.entry.js +0 -1
  149. package/dist/zonos-elements/p-36bb3cbb.entry.js +0 -1
  150. package/dist/zonos-elements/p-56b56caa.system.entry.js +0 -1
  151. package/dist/zonos-elements/p-5bd927f2.js +0 -1
  152. package/dist/zonos-elements/p-6b40da70.system.js +0 -1
  153. package/dist/zonos-elements/p-92d83e23.system.entry.js +0 -1
  154. package/dist/zonos-elements/p-961620ae.entry.js +0 -1
  155. package/dist/zonos-elements/p-d6a43167.system.js +0 -1
  156. package/dist/zonos-elements/p-fa6de0f3.js +0 -1
@@ -1 +1 @@
1
- (function(){"use strict";const e=({id:e,payload:o,target:t,type:n})=>{var r;t instanceof HTMLIFrameElement?null===(r=t.contentWindow)||void 0===r||r.postMessage({id:e,payload:o,type:n},"*"):t.postMessage({id:e,payload:o,type:n},"*")};class o{constructor(o,t){this.targetElement=o,this.targetId=t,this.sendMessage=(o,t)=>{e({id:this.targetId,payload:t,target:this.targetElement,type:o})}}}o.iframeServices={GOOGLE_PLACES:"zonos--private-iframe-google-places-service-m9bmuh7g"},o.sendMessage=e,o.injectPrivateIframe=({id:e,onload:o,src:t})=>{const n=document.createElement("iframe");return n.src=t,n.id=e,n.style.display="none",n.role="presentation",n.ariaHidden="true",n.tabIndex=-1,n.style.border="none !important",n.style.margin="0px !important",n.style.padding="0px !important",n.style.width="1px !important",n.style.minWidth="100% !important",n.style.overflow="hidden !important",n.style.display="block !important",n.style.visibility="hidden !important",n.style.position="fixed !important",n.style.pointerEvents="none !important",n.style.userSelect="none !important",n.style.height="1px !important",n.onload=()=>o(n),document.body.appendChild(n),n};const t=performance.now(),n=e=>{if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(o){if(e&&"function"==typeof e.toString){return e.toString()}return"Unable to stringify info"}},r=(e,o,...r)=>{var s,i;const{elapsedTimePretty:a}=(()=>{const e=performance.now()-t,o=e>1e3?`${(e/1e3).toFixed(2)}s`:`${e.toFixed(2)}ms`;return{elapsedTime:e,elapsedTimePretty:o}})(),l=[`(${a})`,...r];l.map(n).join(" ");if(!(!!(null===(s=window.Zonos)||void 0===s?void 0:s.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===o&&console.error(e,...l));let d=document.querySelector("iframe#zonos---debug-logging-iframe");d||(d=document.createElement("iframe"),d.id="zonos---debug-logging-iframe",d.style.display="none",d.style.opacity="0",d.style.position="absolute",d.style.top="-9999px",d.style.left="-9999px",d.style.width="1px",d.style.height="1px",d.style.border="none",d.style.overflow="hidden",d.style.visibility="hidden",document.body.appendChild(d));const c=(null===(i=d.contentWindow)||void 0===i?void 0:i.window.console)||window.console;switch(o){case"warn":c.warn(e,...l);break;case"info":c.info(e,...l);break;case"error":c.error(e,...l);break;default:c.groupCollapsed(e,...l),c.trace(),c.groupEnd()}},s=(e,...o)=>{r(e,"error",...o)},i=["jsdelivr","cdnjs","unpkg","vercel"],a="jsdelivr",l=e=>{const o=i.indexOf(e);return i[o+1]||null},d=()=>window.location.search.includes("zonosStagingMode=1"),c=()=>{var e;return(null===(e=window.Zonos.zonosApiKey)||void 0===e?void 0:e.includes("test"))||window.location.search.includes("zonosTestMode=1")};function u(e,o){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)o.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(t[n[r]]=e[n[r]])}return t}"function"==typeof SuppressedError&&SuppressedError;const p=["cloudflare","vercel"],m=p[0],w={cloudflare:"https://route.elements.zonos.com",vercel:"https://route.js.zonos.com"},h=w[m],y=(e=m)=>{const o=p.indexOf(e),t=p[o+1];return t||null},g=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(e){return null}return null},f=()=>{const e="userAgentData"in window.navigator?window.navigator.userAgentData:null,o=(()=>{const e="connection"in window.navigator?window.navigator.connection:null,o="mozConnection"in window.navigator?window.navigator.mozConnection:null,t="webkitConnection"in window.navigator?window.navigator.webkitConnection:null;return e||o||t})();return{connectionDownlink:null==o?void 0:o.downlink,connectionEffectiveType:null==o?void 0:o.effectiveType,connectionRtt:null==o?void 0:o.rtt,connectionSaveData:null==o?void 0:o.saveData,isHostedCheckout:window.Zonos.isLegacyCheckout,screenHeight:window.screen.height,screenWidth:window.innerWidth,userAgent:e&&e.brands.length>0?e:window.navigator.userAgent}},v=["/api/zonos-elements/log-script-load","/api/zonos-elements/log-bulk-load-data"],b=async({response:e,shouldLog:o=!0,shouldThrow:t=!1})=>{try{const o=await e.text(),t=g(o);if(!t)throw new Error(`Failed to parse content: ${o}`);return t}catch(e){if(t)throw e;return o&&console.error(e),null}},S=async({basePathType:e,options:o,path:t})=>{let n;const r=window.Zonos.zonosQaUrlApi||w[e]||m,s=new URL(r+t),i=window.Zonos.cartId?`${window.location.hostname}-${window.Zonos.cartId}`:window.location.hostname;s.searchParams.set("zToken",(e=>{try{return btoa(e).replace(/=/g,"")}catch(o){return e.replace(/[^A-Za-z0-9]/g,"").split("").reverse().join("")}})(i));try{n=await fetch(s.toString(),o)}catch(e){if(e instanceof Error)return{baseUrl:r,errors:[{message:e.message,type:"unknown"}],json:null,response:null,zonosMode:null};return{baseUrl:r,errors:[{message:"Failed to fetch",type:"unknown"}],json:null,response:null,zonosMode:null}}const a=n.headers.get("Zonos-Mode"),l=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&a&&l&&(window.Zonos.modeAlerted=!0),n.ok){return{baseUrl:r,errors:[],json:await b({response:n}),response:n,zonosMode:a}}const d=n.status.toString();try{const e=await b({response:n,shouldThrow:!0});if(e&&"errors"in e&&Array.isArray(e.errors)){const o=e.errors;return{baseUrl:r,errors:o.map((e=>"string"==typeof e?{message:e,type:d}:e)),json:null,response:n,zonosMode:a}}return{baseUrl:r,errors:[{message:JSON.stringify(e),type:d}],json:null,response:n,zonosMode:a}}catch(e){return{baseUrl:r,errors:[{message:`${d}: ${"Unknown error"}`,type:d}],json:null,response:null,zonosMode:a}}},z=async({basePathType:e,options:o,path:t})=>{var n,s;const i=t.startsWith("/api/bigcommerce")?"vercel":e,a=performance.now(),l=await S({basePathType:i,options:o,path:t}),{errors:d,response:c}=l,p=u(l,["errors","response"]),m=performance.now()-a;r(`${t} (${m.toFixed(2)}ms)`,"info");const b=null==c?void 0:c.headers.get("Zonos-Duration");200===(null==c?void 0:c.status)&&(({apiPath:e,apiType:o,loadTimeInternal:t,loadTimeTotal:n})=>{if(v.includes(e))return;const r=n-t;if(r<0)return;const s=e.split("?")[0]||e,i=f(),a="object"==typeof i.userAgent&&i.userAgent.mobile,l={apiType:o,connectionType:i.connectionEffectiveType,href:s,isHostedCheckout:window.Zonos.isLegacyCheckout,isMobile:(d=a,d||window.innerWidth<890),loadTimeBrowserApi:r,loadTimeInternal:t,loadTimeTotal:n,metadata:Object.assign({},i),screenHeight:i.screenHeight,screenWidth:i.screenWidth,userAgent:"string"==typeof i.userAgent?i.userAgent:i.userAgent.brands.map((e=>e.brand)).filter((e=>!/Not.*A.*Brand.*/.test(e))).join(",")};var d;window.Zonos.loadTimeApiInfoList.push(l)})({apiPath:t,apiType:i,loadTimeInternal:b?Number(b):0,loadTimeTotal:m});const C=y(i),O=!!d.find((({type:e})=>"unknown"===e))||404===(null==c?void 0:c.status),Z=C&&O;return O&&(async({endpoint:e,errors:o,metadata:t,shouldPostReleaseErrorReporting:n})=>{if(r("sendErrorLog","warn",e,t,o),n){const e=Number(window.Zonos.releaseDate);if((new Date).getTime()-e>36e5)return}const s="userAgentData"in window.navigator?window.navigator.userAgentData:null,i={endpoint:e,errors:o,href:window.location.href,metadata:Object.assign({appVersion:window.Zonos.version,domain:window.Zonos.domain,publicCredential:window.Zonos.zonosApiKey,userAgent:s&&s.brands.length>0?s:window.navigator.userAgent},t)};try{fetch(`${h}/api/zonos-elements/log-error`,{body:JSON.stringify(i),headers:{"Zonos-Referer":window.location.hostname},method:"POST"})}catch(e){const o=y();if(!o)return;fetch(`${w[o]}/api/zonos-elements/log-error`,{body:JSON.stringify(i),method:"POST"})}})({endpoint:w[i]+t,errors:d.map((({message:e})=>`API: ${e}`)),metadata:{currentBasePath:i,nextFallbackApiType:C,requestHeaders:null==o?void 0:o.headers,requestPayload:g(null===(n=null==o?void 0:o.body)||void 0===n?void 0:n.toString())||(null===(s=null==o?void 0:o.body)||void 0===s?void 0:s.toString()),status:null==c?void 0:c.status,statusText:null==c?void 0:c.statusText},shouldPostReleaseErrorReporting:!0}),Z?(r(`=== "${t}" failed to fetch, trying next fallback ${C}`),z({basePathType:C,options:o,path:t})):Object.assign({errors:d,response:c},p)},C=async(e,o)=>{const t=u(o||{},[]),n=t.body?JSON.stringify(t.body):void 0,r=t.method||"GET",s=Object.assign({"Content-Type":"application/json","Zonos-Is-BigCommerce":window.Zonos.isBigCommerce.toString(),"Zonos-Referer":window.location.hostname,"Zonos-Staging-Mode":d()?"1":void 0,"Zonos-Test-Mode":c()?"1":void 0,"Zonos-Version":window.Zonos.version,credentialtoken:window.Zonos.zonosApiKey||"Empty credential token from zonos-elements"},t.headers);Object.keys(s).forEach((e=>void 0===s[e]&&delete s[e]));const i=Object.assign(Object.assign({},t),{body:"GET"===r?void 0:n,headers:s,method:r}),a=new URLSearchParams(window.location.search).get("useFallbackApi");return z({basePathType:a||m,options:i,path:e})},O=()=>{const e=window&&window.location.href.includes("forceLoadCdn");if("undefined"==typeof window||e)return null;const o=(e=>{if(!e)return null;const o=new URL(e).searchParams.get("zonosQaUrl");return o?/[^a-zA-Z0-9-_]+/.test(o)?null:o:null})(window.location.href),t="https://v1.3.187.js.zonos.com";if(!o&&(t.includes("test.")||t.includes("test-")))return t;if(!o&&["dev.demo.elements.zonos.com"].includes(window.location.hostname))return"https://dev.elements.zonos.com";if(!o)return null;if("dev-elements"===o)return"https://dev.elements.zonos.com";const n=`https://${o}.preview.js.zonos.com`;return r(`[ZONOS-WARNING] using '${n}' for loading elements script`,"warn"),fetch(n).then((()=>{window.sessionStorage.removeItem("zonos--checkout-session-id"),window.sessionStorage.removeItem("zonos--client-secret")})).catch((()=>{alert(`[ZONOS-WARNING] '${n}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);const e=new URLSearchParams(window.location.search);e.delete("zonosQaUrl");const{pathname:o}=window.location,t=`${o}?${e.toString()}`;return window.history.replaceState(window.history.state,"",t),window.location.reload(),null})),n},Z="https://js.stripe.com/v3",j=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,k="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let A=null;const I=e=>(null!==A||(A=new Promise(((o,t)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(k),window.Stripe)o(window.Stripe);else try{let n=(()=>{const e=document.querySelectorAll(`script[src^="${Z}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&j.test(t.src))return t}return null})();n&&e?console.warn(k):n||(n=(e=>{const o=document.createElement("script");o.src=`${Z}`;const t=document.head||document.body;return t?(t.appendChild(o),o):(s("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==n||n.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):t(new Error("Stripe.js not available"))})),null==n||n.addEventListener("error",(()=>{t(new Error("Failed to load Stripe.js"))}))}catch(e){return void t(e)}else o(null)}))),A),E=Promise.resolve().then((()=>I(null)));let T=!1;E.catch((e=>{T||console.warn(e)}));const L=async({cartId:e,retries:o})=>{const t=c(),n=(()=>{const e=new URLSearchParams(window.location.search);return{overrideShouldEnabledCustomAddress:window.Zonos.overrideUseCustomAddressForm?"1":e.get("overrideShouldEnabledCustomAddress")}})(),s=new URLSearchParams;n.overrideShouldEnabledCustomAddress&&s.set("overrideShouldEnabledCustomAddress",n.overrideShouldEnabledCustomAddress);const{errors:i,json:a,zonosMode:l}=await C(`/api/zonos-elements/get-cart?${s.toString()}`,{body:{isTestMode:t,tempCartUUID:e},headers:{"Content-Type":"application/json"},method:"POST"}),d=!a||i.length;return d&&o?(r("[ZONOS - loadZonos] temp cart not ready, retrying in 1 second","info",{retries:o}),await new Promise((e=>setTimeout(e,500))),L({cartId:e,retries:o-1})):d?null:Object.assign(Object.assign({},a),{zonosMode:l})},P=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/,$=new RegExp(`^${P.source}$`),U=new RegExp(`^cart_${P.source}$`),N=/^[a-zA-Z0-9]{2,}$/,D=/^cart_[a-zA-Z0-9]{2,}$/,F=async e=>{const{isDgsCartId:o,isLegacyCartId:t}=(e=>e?e.includes("undefined")?{isDgsCartId:!1,isLegacyCartId:!1}:D.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:N.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:U.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:$.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:{isDgsCartId:!1,isLegacyCartId:!1}:{isDgsCartId:!1,isLegacyCartId:!1})(e);if(!t&&!o)return s("[ZONOS - loadZonos] invalid cart id"),null;const n=await L({cartId:e,retries:5});return r("[ZONOS - loadZonos] getting temp cart data","info",n),n?(window.Zonos.storeId=n.cartData.storeId,window.Zonos.zonosApiKey=n.cartData.credentialToken,window.Zonos.zonosMode=n.zonosMode,{cartData:n.cartData,settings:n.settings,storeFavicon:n.storeFaviconUrl,storeId:n.cartData.storeId,storeLogo:n.storeLogoUrl,zonosApiKey:n.cartData.credentialToken}):(s("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),null)};var R;const M=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:o,isWhiteListed:t}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const o=new URL(e).origin,t=["dev.elements.zonos.com","dev.assets-checkout.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>o.includes(e))),n=["qa.js.zonos.com"].some((e=>o.includes(e)));return{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:t}})({loadScriptSrc:null==e?void 0:e.src});return t?o:null})(),x="https://v1.3.187.js.zonos.com",B=M||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.187",q="https://fonts.googleapis.com",W=/^https:\/\/fonts\.googleapis\.com/;class K{}R=K,K.doneInit=!1,K.cartSettings=null,K.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),K.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),K._paypalMockResponse=null,K.iframeLogType="undefined"!=typeof window?new URLSearchParams(window.location.search).get("iframeLogType"):null,K.isBigCommerce=!1,K.releaseDate="1745613597900",K.isLegacyCheckout=!1,K.domain="undefined"!=typeof window?window.location!=window.parent.location&&document.referrer||document.location.hostname:"",K.showBaseForeign="undefined"!=typeof window&&window.location.search.includes("zonosShowBaseForeign"),K.overrideUseCustomAddressForm=!1,K.isNpm=!0,K.zonosQaUrl=null,K.zonosQaUrlApi=null,K.trackEventLogs=[],K.version="v1.3.187",K.modeAlerted=!1,K.cartData=null,K.paypal=null,K.zonosMode=null,K.IframeService=o,K.getCurrentTimestamp=()=>(new Date).getTime(),K.zonosController=null,K.loadTimeApiInfoList=[],K.logIntervalId=null,K.init=async e=>{const{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l,storeId:u,zonosApiKey:p}=e;if(R.cartId=new URLSearchParams(window.location.search).get("tempCartUUID"),R.doneInit)return;if(r(`====== ZONOS DEBUG MODE: on (${R.version}) ======`),R.zonosApiKey=p,R.storeId=u,R.isNpm){r("====== ZONOS LOADING FROM NPM ======");const o=O();if(o&&!window.isZonosPreview){r(`====== RE-INJECT "zonos.js" FROM PRVIEW: ${o} ======`,"info");const t=document.createElement("script");return t.src=`${o}/dist/scripts/zonos.js`,document.head.appendChild(t),t.addEventListener("load",(()=>{window.Zonos.isNpm=R.isNpm,window.Zonos.isBigCommerce=R.isBigCommerce,window.Zonos.isLegacyCheckout=R.isLegacyCheckout,window.Zonos.init(e)})),t.addEventListener("error",(()=>{alert(`[ZONOS - loadZonos] Failed to load "loadZonos.js" from zonosQaUrl: ${o}`)})),void(window.isZonosPreview=!0)}if(!p&&!R.cartId)return void s("Zonos API key is required unless `tempCartUUID` is provided in url query params.");if(!R.cartData&&R.cartId){r("Initialize cart data");const e=await F(R.cartId);if(!e)return void s("Failed to get cart data");R.cartData=e.cartData,R.zonosApiKey=e.zonosApiKey,R.cartSettings=e.settings}const t=await(async()=>{const e=c(),o=d();if(!e&&!o||!window.Zonos.zonosApiKey)return null;if(r("[ZONOS - loadZonos] Attempt test public credential","info"),window.Zonos.zonosApiKey.includes("credential_test"))return r("[ZONOS - loadZonos] Test mode is enabled but the API key is already a test key","info"),null;const{errors:t,json:n}=await C("/api/get-test-public-credential");if(t.length||!n)return s("[ZONOS - loadZonos] Failed to get test public credential. Keep using production key",t),null;const i=n.publicCredential;return i?(r(`[ZONOS - loadZonos] Retrieve new test public token ${i}`,"info"),i):(s("[ZONOS - loadZonos] No test public key credential. Keep using production key"),null)})();t&&(R.zonosApiKey=t)}const m=new URL(window.location.href).searchParams.get("payment_intent_client_secret")||sessionStorage.getItem("zonos--client-secret");if(R.cartId&&R.cartData||!!m){r("Cart data or stripe client secret is available, inject hidden button and trigger checkout");const e=document.createElement("button");e.style.display="none",e.id="zonos--checkout-hidden-button",document.body.appendChild(e)}r("init zonos"),R.restoreNativeBrowserFunctions(),R.injectCustomScriptForHostedCheckout(),R.injectZonosCdn(),R.injectZonosCss(),R.injectFonts(),R.injectController({config:{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l}}),R.doneInit=!0},K.injectCustomScriptForHostedCheckout=()=>{const e=R.cartData,o=(null==e?void 0:e.metadata)||[],t=o.find((e=>"customHeaderScript"===e.key)),n=o.find((e=>"customFooterScript"===e.key));if(window.Zonos.isLegacyCheckout&&(t||n)){if(t){r("Injecting custom header script");const e=document.createElement("script");e.textContent=t.value,document.head.appendChild(e)}if(n){r("Injecting custom footer script");const e=document.createElement("script");e.textContent=n.value,document.body.appendChild(e)}}else r("Skip injecting custom script for hosted checkout","info",{footerScript:n,headerScript:t,isLegacyCheckout:window.Zonos.isLegacyCheckout})},K.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},K.openHelloDialog=e=>{const o=document.querySelector("zonos-hello");o&&o.openHelloDialog(null==e||e)},K.showNotification=e=>{var o;null===(o=R.zonosController)||void 0===o||o.showNotification(e)},K.updateOrganizationName=e=>{var o;null===(o=R.zonosController)||void 0===o||o.updateOrganizationName(e)},K.disablePlaceOrderButtons=({autoEnable:e=!0,config:o,disable:t,placeOrderButtonSelector:n})=>{var r;if(!(null===(r=o.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&n){const o=document.querySelectorAll(n),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};o.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(t?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&t&&setTimeout((()=>{o.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},K.restoreNativeBrowserFunctions=()=>{var e;if("1"===new URL(window.location.href).searchParams.get("useMerchantPolyfill"))return;const o="zonos---native-browser";let t=document.querySelector(`iframe#${o}`);t||(t=document.createElement("iframe"),t.id=o,t.style.display="none",t.style.opacity="0",t.style.position="absolute",t.style.top="-9999px",t.style.left="-9999px",t.style.width="1px",t.style.height="1px",t.style.border="none",t.style.overflow="hidden",t.style.visibility="hidden",document.body.appendChild(t));const n=(null===(e=t.contentWindow)||void 0===e?void 0:e.window.Array.from)||Array.from;Array.from=n,document.body.removeChild(t)},K.injectController=({config:e})=>{var o,t;if(document.querySelector("zonos-controller"))return;if(null===(o=e.checkoutSettings)||void 0===o?void 0:o.placeOrderButtonSelector){const o=e.checkoutSettings.placeOrderButtonSelector;R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}if(null===(t=e.checkoutSettings)||void 0===t?void 0:t.alwaysTriggerInternationalCheckoutSelector){const o=e.checkoutSettings.alwaysTriggerInternationalCheckoutSelector;R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}const n=document.createElement("zonos-controller");n.config=e,n.zonosApiKey=R.zonosApiKey||"",n.addEventListener("stripeInitEvent",(async e=>{const{detail:o}=e;r("loading Stripe");const t=await(async(...e)=>{T=!0;const o=Date.now();return E.then((t=>((e,o,t)=>{if(null===e)return null;const n=e.apply(void 0,o);return((e,o)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:o})})(n,t),n})(t,e,o)))})(o.publishableKey);t?(window.Zonos.stripe=t,n.initCheckoutElement(t)):s("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(n),R.zonosController=n,r("Zonos controller injected!")},K.injectScript=({cdnType:e,isModule:o,theRestUrl:t})=>{const n=`${R.getZonosUrl(e)}/${t}`;if(document.querySelector(`script[src="${n}"]`))return void r(`Zonos script "${n}" already exists in the document`,"warn");const i=document.head||document.body,a=document.createElement("script");o?a.type="module":a.noModule=!0,a.src=n,a.crossOrigin="anonymous",a.onerror=()=>{s(`Failed to load ${a.src}`);const n=l(e);n&&R.injectScript({cdnType:n,isModule:o,theRestUrl:t})},i.appendChild(a)},K.getZonosUrl=e=>{const o=()=>{switch(e){case"jsdelivr":return B;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.187";case"cdnjs":return"https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.3.187";case"vercel":return x}};if(R.isNpm){return O()||o()}return o()},K.injectZonosCdn=()=>{R.injectScript({cdnType:a,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),R.injectScript({cdnType:a,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),r("Zonos cdn script injected!")},K.injectStylesheet=({cdnType:e,theRestUrl:o})=>{const t=R.getZonosUrl(e),n=document.head||document.body,r=document.createElement("link");r.rel="preconnect",r.href=`${x}/`,n.appendChild(r);const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/${o}`,i.onerror=()=>{s(`Failed to load ${i.href}`);const t=l(e);t&&R.injectStylesheet({cdnType:t,theRestUrl:o})},n.appendChild(i)},K.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?r("Zonos style links already injected","warn"):(R.injectStylesheet({cdnType:a,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),r("Zonos style css injected!"))},K.injectFonts=()=>{if((()=>{if(document.fonts.check("1em Inter"))return void r("Inter font already loaded","warn");const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${q}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&!W.test(t.href))return t}return null})())return void r("Inter font already injected","warn");const e=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=q,e.appendChild(o);const t=document.createElement("link");t.rel="stylesheet",t.href=`${q}/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap`,e.appendChild(t),r("Zonos font injected!")},K.setupGoogleFont=e=>{var o;null===(o=R.zonosController)||void 0===o||o.setupGoogleFont(e)},K.injectSupportGoogleFont=e=>{var o;r(`[FONT] injecting ${e}`);const t=null===(o=e.match(/family=(.*?):/))||void 0===o?void 0:o[1],n=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${q}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=q,n.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${e}"]`))return void r(`[FONT] ${t} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=e,n.appendChild(s),r(`[FONT] ${t} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=K)})();
1
+ (function(){"use strict";const e=({id:e,payload:o,target:t,type:n})=>{var r;t instanceof HTMLIFrameElement?null===(r=t.contentWindow)||void 0===r||r.postMessage({id:e,payload:o,type:n},"*"):t.postMessage({id:e,payload:o,type:n},"*")};class o{constructor(o,t){this.targetElement=o,this.targetId=t,this.sendMessage=(o,t)=>{e({id:this.targetId,payload:t,target:this.targetElement,type:o})}}}o.iframeServices={GOOGLE_PLACES:"zonos--private-iframe-google-places-service-m9bmuh7g"},o.sendMessage=e,o.injectPrivateIframe=({id:e,onload:o,src:t})=>{const n=document.createElement("iframe");return n.src=t,n.id=e,n.style.display="none",n.role="presentation",n.ariaHidden="true",n.tabIndex=-1,n.style.border="none !important",n.style.margin="0px !important",n.style.padding="0px !important",n.style.width="1px !important",n.style.minWidth="100% !important",n.style.overflow="hidden !important",n.style.display="block !important",n.style.visibility="hidden !important",n.style.position="fixed !important",n.style.pointerEvents="none !important",n.style.userSelect="none !important",n.style.height="1px !important",n.onload=()=>o(n),document.body.appendChild(n),n};const t=performance.now(),n=e=>{if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(o){if(e&&"function"==typeof e.toString){return e.toString()}return"Unable to stringify info"}},r=(e,o,...r)=>{var s,i;const{elapsedTimePretty:a}=(()=>{const e=performance.now()-t,o=e>1e3?`${(e/1e3).toFixed(2)}s`:`${e.toFixed(2)}ms`;return{elapsedTime:e,elapsedTimePretty:o}})(),l=[`(${a})`,...r];l.map(n).join(" ");if(!(!!(null===(s=window.Zonos)||void 0===s?void 0:s.debug)||!!window.location.search.match(/\?.*(&*)zonosDebug=1/)))return void("error"===o&&console.error(e,...l));let d=document.querySelector("iframe#zonos---debug-logging-iframe");d||(d=document.createElement("iframe"),d.id="zonos---debug-logging-iframe",d.style.display="none",d.style.opacity="0",d.style.position="absolute",d.style.top="-9999px",d.style.left="-9999px",d.style.width="1px",d.style.height="1px",d.style.border="none",d.style.overflow="hidden",d.style.visibility="hidden",document.body.appendChild(d));const c=(null===(i=d.contentWindow)||void 0===i?void 0:i.window.console)||window.console;switch(o){case"warn":c.warn(e,...l);break;case"info":c.info(e,...l);break;case"error":c.error(e,...l);break;default:c.groupCollapsed(e,...l),c.trace(),c.groupEnd()}},s=(e,...o)=>{r(e,"error",...o)},i=["jsdelivr","cdnjs","unpkg","vercel"],a="jsdelivr",l=e=>{const o=i.indexOf(e);return i[o+1]||null},d=()=>window.location.search.includes("zonosStagingMode=1"),c=()=>{var e;return(null===(e=window.Zonos.zonosApiKey)||void 0===e?void 0:e.includes("test"))||window.location.search.includes("zonosTestMode=1")};function u(e,o){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)o.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(t[n[r]]=e[n[r]])}return t}"function"==typeof SuppressedError&&SuppressedError;const p=["cloudflare","vercel"],m=p[0],w={cloudflare:"https://route.elements.zonos.com",vercel:"https://route.js.zonos.com"},h=w[m],y=(e=m)=>{const o=p.indexOf(e),t=p[o+1];return t||null},g=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(e){return null}return null},f=()=>{const e="userAgentData"in window.navigator?window.navigator.userAgentData:null,o=(()=>{const e="connection"in window.navigator?window.navigator.connection:null,o="mozConnection"in window.navigator?window.navigator.mozConnection:null,t="webkitConnection"in window.navigator?window.navigator.webkitConnection:null;return e||o||t})();return{connectionDownlink:null==o?void 0:o.downlink,connectionEffectiveType:null==o?void 0:o.effectiveType,connectionRtt:null==o?void 0:o.rtt,connectionSaveData:null==o?void 0:o.saveData,isHostedCheckout:window.Zonos.isLegacyCheckout,screenHeight:window.screen.height,screenWidth:window.innerWidth,userAgent:e&&e.brands.length>0?e:window.navigator.userAgent}},v=["/api/zonos-elements/log-script-load","/api/zonos-elements/log-bulk-load-data"],b=async({response:e,shouldLog:o=!0,shouldThrow:t=!1})=>{try{const o=await e.text(),t=g(o);if(!t)throw new Error(`Failed to parse content: ${o}`);return t}catch(e){if(t)throw e;return o&&console.error(e),null}},S=async({basePathType:e,options:o,path:t})=>{let n;const r=window.Zonos.zonosQaUrlApi||w[e]||m,s=new URL(r+t),i=window.Zonos.cartId?`${window.location.hostname}-${window.Zonos.cartId}`:window.location.hostname;s.searchParams.set("zToken",(e=>{try{return btoa(e).replace(/=/g,"")}catch(o){return e.replace(/[^A-Za-z0-9]/g,"").split("").reverse().join("")}})(i));try{n=await fetch(s.toString(),o)}catch(e){if(e instanceof Error)return{baseUrl:r,errors:[{message:e.message,type:"unknown"}],json:null,response:null,zonosMode:null};return{baseUrl:r,errors:[{message:"Failed to fetch",type:"unknown"}],json:null,response:null,zonosMode:null}}const a=n.headers.get("Zonos-Mode"),l=window.Zonos.zonosQaUrl;if(!window.Zonos.modeAlerted&&a&&l&&(window.Zonos.modeAlerted=!0),n.ok){return{baseUrl:r,errors:[],json:await b({response:n}),response:n,zonosMode:a}}const d=n.status.toString();try{const e=await b({response:n,shouldThrow:!0});if(e&&"errors"in e&&Array.isArray(e.errors)){const o=e.errors;return{baseUrl:r,errors:o.map((e=>"string"==typeof e?{message:e,type:d}:e)),json:null,response:n,zonosMode:a}}return{baseUrl:r,errors:[{message:JSON.stringify(e),type:d}],json:null,response:n,zonosMode:a}}catch(e){return{baseUrl:r,errors:[{message:`${d}: ${"Unknown error"}`,type:d}],json:null,response:null,zonosMode:a}}},z=async({basePathType:e,options:o,path:t})=>{var n,s;const i=t.startsWith("/api/bigcommerce")?"vercel":e,a=performance.now(),l=await S({basePathType:i,options:o,path:t}),{errors:d,response:c}=l,p=u(l,["errors","response"]),m=performance.now()-a;r(`${t} (${m.toFixed(2)}ms)`,"info");const b=null==c?void 0:c.headers.get("Zonos-Duration");200===(null==c?void 0:c.status)&&(({apiPath:e,apiType:o,loadTimeInternal:t,loadTimeTotal:n})=>{if(v.includes(e))return;const r=n-t;if(r<0)return;const s=e.split("?")[0]||e,i=f(),a="object"==typeof i.userAgent&&i.userAgent.mobile,l={apiType:o,connectionType:i.connectionEffectiveType,href:s,isHostedCheckout:window.Zonos.isLegacyCheckout,isMobile:(d=a,d||window.innerWidth<890),loadTimeBrowserApi:r,loadTimeInternal:t,loadTimeTotal:n,metadata:Object.assign({},i),screenHeight:i.screenHeight,screenWidth:i.screenWidth,userAgent:"string"==typeof i.userAgent?i.userAgent:i.userAgent.brands.map((e=>e.brand)).filter((e=>!/Not.*A.*Brand.*/.test(e))).join(",")};var d;window.Zonos.loadTimeApiInfoList.push(l)})({apiPath:t,apiType:i,loadTimeInternal:b?Number(b):0,loadTimeTotal:m});const C=y(i),O=!!d.find((({type:e})=>"unknown"===e))||404===(null==c?void 0:c.status),Z=C&&O;return O&&(async({endpoint:e,errors:o,metadata:t,shouldPostReleaseErrorReporting:n})=>{if(r("sendErrorLog","warn",e,t,o),n){const e=Number(window.Zonos.releaseDate);if((new Date).getTime()-e>36e5)return}const s="userAgentData"in window.navigator?window.navigator.userAgentData:null,i={endpoint:e,errors:o,href:window.location.href,metadata:Object.assign({appVersion:window.Zonos.version,domain:window.Zonos.domain,publicCredential:window.Zonos.zonosApiKey,userAgent:s&&s.brands.length>0?s:window.navigator.userAgent},t)};try{fetch(`${h}/api/zonos-elements/log-error`,{body:JSON.stringify(i),headers:{"Zonos-Referer":window.location.hostname},method:"POST"})}catch(e){const o=y();if(!o)return;fetch(`${w[o]}/api/zonos-elements/log-error`,{body:JSON.stringify(i),method:"POST"})}})({endpoint:w[i]+t,errors:d.map((({message:e})=>`API: ${e}`)),metadata:{currentBasePath:i,nextFallbackApiType:C,requestHeaders:null==o?void 0:o.headers,requestPayload:g(null===(n=null==o?void 0:o.body)||void 0===n?void 0:n.toString())||(null===(s=null==o?void 0:o.body)||void 0===s?void 0:s.toString()),status:null==c?void 0:c.status,statusText:null==c?void 0:c.statusText},shouldPostReleaseErrorReporting:!0}),Z?(r(`=== "${t}" failed to fetch, trying next fallback ${C}`),z({basePathType:C,options:o,path:t})):Object.assign({errors:d,response:c},p)},C=async(e,o)=>{const t=u(o||{},[]),n=t.body?JSON.stringify(t.body):void 0,r=t.method||"GET",s=Object.assign({"Content-Type":"application/json","Zonos-Is-BigCommerce":window.Zonos.isBigCommerce.toString(),"Zonos-Referer":window.location.hostname,"Zonos-Staging-Mode":d()?"1":void 0,"Zonos-Test-Mode":c()?"1":void 0,"Zonos-Version":window.Zonos.version,credentialtoken:window.Zonos.zonosApiKey||"Empty credential token from zonos-elements"},t.headers);Object.keys(s).forEach((e=>void 0===s[e]&&delete s[e]));const i=Object.assign(Object.assign({},t),{body:"GET"===r?void 0:n,headers:s,method:r}),a=new URLSearchParams(window.location.search).get("useFallbackApi");return z({basePathType:a||m,options:i,path:e})},O=()=>{const e=window&&window.location.href.includes("forceLoadCdn");if("undefined"==typeof window||e)return null;const o=(e=>{if(!e)return null;const o=new URL(e).searchParams.get("zonosQaUrl");return o?/[^a-zA-Z0-9-_]+/.test(o)?null:o:null})(window.location.href),t="https://v1.3.189.js.zonos.com";if(!o&&(t.includes("test.")||t.includes("test-")))return t;if(!o&&["dev.demo.elements.zonos.com"].includes(window.location.hostname))return"https://dev.elements.zonos.com";if(!o)return null;if("dev-elements"===o)return"https://dev.elements.zonos.com";const n=`https://${o}.preview.js.zonos.com`;return r(`[ZONOS-WARNING] using '${n}' for loading elements script`,"warn"),fetch(n).then((()=>{window.sessionStorage.removeItem("zonos--checkout-session-id"),window.sessionStorage.removeItem("zonos--client-secret")})).catch((()=>{alert(`[ZONOS-WARNING] '${n}' IS NO LONGER AVAILABLE. REMOVING zonosQaUrl PARAM AND RELOADING THE PAGE`);const e=new URLSearchParams(window.location.search);e.delete("zonosQaUrl");const{pathname:o}=window.location,t=`${o}?${e.toString()}`;return window.history.replaceState(window.history.state,"",t),window.location.reload(),null})),n},Z="https://js.stripe.com/v3",j=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,k="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used";let A=null;const I=e=>(null!==A||(A=new Promise(((o,t)=>{if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(k),window.Stripe)o(window.Stripe);else try{let n=(()=>{const e=document.querySelectorAll(`script[src^="${Z}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&j.test(t.src))return t}return null})();n&&e?console.warn(k):n||(n=(e=>{const o=document.createElement("script");o.src=`${Z}`;const t=document.head||document.body;return t?(t.appendChild(o),o):(s("Expected document.body not to be null. Stripe.js requires a <body> element."),null)})()),null==n||n.addEventListener("load",(()=>{window.Stripe?o(window.Stripe):t(new Error("Stripe.js not available"))})),null==n||n.addEventListener("error",(()=>{t(new Error("Failed to load Stripe.js"))}))}catch(e){return void t(e)}else o(null)}))),A),E=Promise.resolve().then((()=>I(null)));let T=!1;E.catch((e=>{T||console.warn(e)}));const L=async({cartId:e,retries:o})=>{const t=c(),n=(()=>{const e=new URLSearchParams(window.location.search);return{overrideShouldEnabledCustomAddress:window.Zonos.overrideUseCustomAddressForm?"1":e.get("overrideShouldEnabledCustomAddress")}})(),s=new URLSearchParams;n.overrideShouldEnabledCustomAddress&&s.set("overrideShouldEnabledCustomAddress",n.overrideShouldEnabledCustomAddress);const{errors:i,json:a,zonosMode:l}=await C(`/api/zonos-elements/get-cart?${s.toString()}`,{body:{isTestMode:t,tempCartUUID:e},headers:{"Content-Type":"application/json"},method:"POST"}),d=!a||i.length;return d&&o?(r("[ZONOS - loadZonos] temp cart not ready, retrying in 1 second","info",{retries:o}),await new Promise((e=>setTimeout(e,500))),L({cartId:e,retries:o-1})):d?null:Object.assign(Object.assign({},a),{zonosMode:l})},P=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/,$=new RegExp(`^${P.source}$`),U=new RegExp(`^cart_${P.source}$`),N=/^[a-zA-Z0-9]{2,}$/,D=/^cart_[a-zA-Z0-9]{2,}$/,F=async e=>{const{isDgsCartId:o,isLegacyCartId:t}=(e=>e?e.includes("undefined")?{isDgsCartId:!1,isLegacyCartId:!1}:D.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:N.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:U.test(e)?{isDgsCartId:!0,isLegacyCartId:!1}:$.test(e)?{isDgsCartId:!1,isLegacyCartId:!0}:{isDgsCartId:!1,isLegacyCartId:!1}:{isDgsCartId:!1,isLegacyCartId:!1})(e);if(!t&&!o)return s("[ZONOS - loadZonos] invalid cart id"),null;const n=await L({cartId:e,retries:5});return r("[ZONOS - loadZonos] getting temp cart data","info",n),n?(window.Zonos.storeId=n.cartData.storeId,window.Zonos.zonosApiKey=n.cartData.credentialToken,window.Zonos.zonosMode=n.zonosMode,{cartData:n.cartData,settings:n.settings,storeFavicon:n.storeFaviconUrl,storeId:n.cartData.storeId,storeLogo:n.storeLogoUrl,zonosApiKey:n.cartData.credentialToken}):(s("[ZONOS - loadZonos] Error getting temp cart data, stop checkout process."),null)};var R;const M=(()=>{if("undefined"==typeof document)return null;const e=document.querySelector('script[src*="/zonos.js"]'),{currentLoadScriptUrl:o,isWhiteListed:t}=(({loadScriptSrc:e})=>{if(!e)return{currentLoadScriptUrl:"",isForceLoadVersionDomain:!1,isWhiteListed:!1};const o=new URL(e).origin,t=["dev.elements.zonos.com","dev.assets-checkout.zonos.com",".js.zonos.com","zonos-elements-test-git","zonos-elements-git"].some((e=>o.includes(e))),n=["qa.js.zonos.com"].some((e=>o.includes(e)));return{currentLoadScriptUrl:o,isForceLoadVersionDomain:n,isWhiteListed:t}})({loadScriptSrc:null==e?void 0:e.src});return t?o:null})(),x="https://v1.3.189.js.zonos.com",B=M||"https://cdn.jsdelivr.net/npm/@zonos/elements@1.3.189",q="https://fonts.googleapis.com",W=/^https:\/\/fonts\.googleapis\.com/;class K{}R=K,K.doneInit=!1,K.cartSettings=null,K.debug="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosDebug=1/),K.zonosConversionTest="undefined"!=typeof window&&!!window.location.search.match(/\?.*(&*)zonosConversionTest/),K._paypalMockResponse=null,K.iframeLogType="undefined"!=typeof window?new URLSearchParams(window.location.search).get("iframeLogType"):null,K.isBigCommerce=!1,K.releaseDate="1745853376635",K.isLegacyCheckout=!1,K.domain="undefined"!=typeof window?window.location!=window.parent.location&&document.referrer||document.location.hostname:"",K.showBaseForeign="undefined"!=typeof window&&window.location.search.includes("zonosShowBaseForeign"),K.overrideUseCustomAddressForm=!1,K.isNpm=!0,K.zonosQaUrl=null,K.zonosQaUrlApi=null,K.trackEventLogs=[],K.version="v1.3.189",K.modeAlerted=!1,K.cartData=null,K.paypal=null,K.zonosMode=null,K.IframeService=o,K.getCurrentTimestamp=()=>(new Date).getTime(),K.zonosController=null,K.loadTimeApiInfoList=[],K.logIntervalId=null,K.init=async e=>{const{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l,storeId:u,zonosApiKey:p}=e;if(R.cartId=new URLSearchParams(window.location.search).get("tempCartUUID"),R.doneInit)return;if(r(`====== ZONOS DEBUG MODE: on (${R.version}) ======`),R.zonosApiKey=p,R.storeId=u,R.isNpm){r("====== ZONOS LOADING FROM NPM ======");const o=O();if(o&&!window.isZonosPreview){r(`====== RE-INJECT "zonos.js" FROM PRVIEW: ${o} ======`,"info");const t=document.createElement("script");return t.src=`${o}/dist/scripts/zonos.js`,document.head.appendChild(t),t.addEventListener("load",(()=>{window.Zonos.isNpm=R.isNpm,window.Zonos.isBigCommerce=R.isBigCommerce,window.Zonos.isLegacyCheckout=R.isLegacyCheckout,window.Zonos.init(e)})),t.addEventListener("error",(()=>{alert(`[ZONOS - loadZonos] Failed to load "loadZonos.js" from zonosQaUrl: ${o}`)})),void(window.isZonosPreview=!0)}if(!p&&!R.cartId)return void s("Zonos API key is required unless `tempCartUUID` is provided in url query params.");if(!R.cartData&&R.cartId){r("Initialize cart data");const e=await F(R.cartId);if(!e)return void s("Failed to get cart data");R.cartData=e.cartData,R.zonosApiKey=e.zonosApiKey,R.cartSettings=e.settings}const t=await(async()=>{const e=c(),o=d();if(!e&&!o||!window.Zonos.zonosApiKey)return null;if(r("[ZONOS - loadZonos] Attempt test public credential","info"),window.Zonos.zonosApiKey.includes("credential_test"))return r("[ZONOS - loadZonos] Test mode is enabled but the API key is already a test key","info"),null;const{errors:t,json:n}=await C("/api/get-test-public-credential");if(t.length||!n)return s("[ZONOS - loadZonos] Failed to get test public credential. Keep using production key",t),null;const i=n.publicCredential;return i?(r(`[ZONOS - loadZonos] Retrieve new test public token ${i}`,"info"),i):(s("[ZONOS - loadZonos] No test public key credential. Keep using production key"),null)})();t&&(R.zonosApiKey=t)}const m=new URL(window.location.href).searchParams.get("payment_intent_client_secret")||sessionStorage.getItem("zonos--client-secret");if(R.cartId&&R.cartData||!!m){r("Cart data or stripe client secret is available, inject hidden button and trigger checkout");const e=document.createElement("button");e.style.display="none",e.id="zonos--checkout-hidden-button",document.body.appendChild(e)}r("init zonos"),R.restoreNativeBrowserFunctions(),R.injectCustomScriptForHostedCheckout(),R.injectZonosCdn(),R.injectZonosCss(),R.injectFonts(),R.injectController({config:{appearance:o,checkoutSettings:t,currencyConverter:n,helloSettings:i,onCountryChange:a,overrideCurrencyFormat:l}}),R.doneInit=!0},K.injectCustomScriptForHostedCheckout=()=>{const e=R.cartData,o=(null==e?void 0:e.metadata)||[],t=o.find((e=>"customHeaderScript"===e.key)),n=o.find((e=>"customFooterScript"===e.key));if(window.Zonos.isLegacyCheckout&&(t||n)){if(t){r("Injecting custom header script");const e=document.createElement("script");e.textContent=t.value,document.head.appendChild(e)}if(n){r("Injecting custom footer script");const e=document.createElement("script");e.textContent=n.value,document.body.appendChild(e)}}else r("Skip injecting custom script for hosted checkout","info",{footerScript:n,headerScript:t,isLegacyCheckout:window.Zonos.isLegacyCheckout})},K.displayCurrency=()=>{const e=document.querySelector("zonos-hello");e&&e.displayCurrency()},K.openHelloDialog=e=>{const o=document.querySelector("zonos-hello");o&&o.openHelloDialog(null==e||e)},K.showNotification=e=>{var o;null===(o=R.zonosController)||void 0===o||o.showNotification(e)},K.updateOrganizationName=e=>{var o;null===(o=R.zonosController)||void 0===o||o.updateOrganizationName(e)},K.disablePlaceOrderButtons=({autoEnable:e=!0,config:o,disable:t,placeOrderButtonSelector:n})=>{var r;if(!(null===(r=o.checkoutSettings)||void 0===r?void 0:r.disablePlaceOrderButtonActivation)&&n){const o=document.querySelectorAll(n),r=e=>{e.target.getAttribute("disabled")&&(e.preventDefault(),e.stopPropagation())};o.forEach((e=>{e.getAttribute("data-zonos-checkout-attached")||(t?(e.setAttribute("disabled","true"),e.addEventListener("click",r)):(e.removeAttribute("disabled"),e.removeEventListener("click",r)))})),e&&t&&setTimeout((()=>{o.forEach((e=>{e.removeAttribute("disabled"),e.removeEventListener("click",r)}))}),5e3)}},K.restoreNativeBrowserFunctions=()=>{var e;if("1"===new URL(window.location.href).searchParams.get("useMerchantPolyfill"))return;const o="zonos---native-browser";let t=document.querySelector(`iframe#${o}`);t||(t=document.createElement("iframe"),t.id=o,t.style.display="none",t.style.opacity="0",t.style.position="absolute",t.style.top="-9999px",t.style.left="-9999px",t.style.width="1px",t.style.height="1px",t.style.border="none",t.style.overflow="hidden",t.style.visibility="hidden",document.body.appendChild(t));const n=(null===(e=t.contentWindow)||void 0===e?void 0:e.window.Array.from)||Array.from;Array.from=n,document.body.removeChild(t)},K.injectController=({config:e})=>{var o,t;if(document.querySelector("zonos-controller"))return;if(null===(o=e.checkoutSettings)||void 0===o?void 0:o.placeOrderButtonSelector){const o=e.checkoutSettings.placeOrderButtonSelector;R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}if(null===(t=e.checkoutSettings)||void 0===t?void 0:t.alwaysTriggerInternationalCheckoutSelector){const o=e.checkoutSettings.alwaysTriggerInternationalCheckoutSelector;R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o});new MutationObserver((()=>{R.disablePlaceOrderButtons({config:e,disable:!0,placeOrderButtonSelector:o})})).observe(document.body,{childList:!0,subtree:!0})}const n=document.createElement("zonos-controller");n.config=e,n.zonosApiKey=R.zonosApiKey||"",n.addEventListener("stripeInitEvent",(async e=>{const{detail:o}=e;r("loading Stripe");const t=await(async(...e)=>{T=!0;const o=Date.now();return E.then((t=>((e,o,t)=>{if(null===e)return null;const n=e.apply(void 0,o);return((e,o)=>{e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",startTime:o})})(n,t),n})(t,e,o)))})(o.publishableKey);t?(window.Zonos.stripe=t,n.initCheckoutElement(t)):s("API seems to be invalid or missing. Failed to load Stripe")})),document.body.appendChild(n),R.zonosController=n,r("Zonos controller injected!")},K.injectScript=({cdnType:e,isModule:o,theRestUrl:t})=>{const n=`${R.getZonosUrl(e)}/${t}`;if(document.querySelector(`script[src="${n}"]`))return void r(`Zonos script "${n}" already exists in the document`,"warn");const i=document.head||document.body,a=document.createElement("script");o?a.type="module":a.noModule=!0,a.src=n,a.crossOrigin="anonymous",a.onerror=()=>{s(`Failed to load ${a.src}`);const n=l(e);n&&R.injectScript({cdnType:n,isModule:o,theRestUrl:t})},i.appendChild(a)},K.getZonosUrl=e=>{const o=()=>{switch(e){case"jsdelivr":return B;case"unpkg":return"https://unpkg.com/@zonos/elements@1.3.189";case"cdnjs":return"https://cdnjs.cloudflare.com/ajax/libs/zonos-elements/1.3.189";case"vercel":return x}};if(R.isNpm){return O()||o()}return o()},K.injectZonosCdn=()=>{R.injectScript({cdnType:a,isModule:!0,theRestUrl:"dist/zonos-elements/zonos-elements.esm.js"}),R.injectScript({cdnType:a,isModule:!1,theRestUrl:"dist/zonos-elements/zonos-elements.js"}),r("Zonos cdn script injected!")},K.injectStylesheet=({cdnType:e,theRestUrl:o})=>{const t=R.getZonosUrl(e),n=document.head||document.body,r=document.createElement("link");r.rel="preconnect",r.href=`${x}/`,n.appendChild(r);const i=document.createElement("link");i.rel="stylesheet",i.href=`${t}/${o}`,i.onerror=()=>{s(`Failed to load ${i.href}`);const t=l(e);t&&R.injectStylesheet({cdnType:t,theRestUrl:o})},n.appendChild(i)},K.injectZonosCss=()=>{document.querySelector('link[rel="stylesheet"][href*="/dist/zonos-elements/zonos-elements.css"]')?r("Zonos style links already injected","warn"):(R.injectStylesheet({cdnType:a,theRestUrl:"dist/zonos-elements/zonos-elements.css"}),r("Zonos style css injected!"))},K.injectFonts=()=>{if((()=>{if(document.fonts.check("1em Inter"))return void r("Inter font already loaded","warn");const e=document.querySelectorAll(`link[rel="stylesheet"][href^="${q}"]`);for(let o=0;o<e.length;o++){const t=e[o];if(t&&!W.test(t.href))return t}return null})())return void r("Inter font already injected","warn");const e=document.head||document.body,o=document.createElement("link");o.rel="preconnect",o.href=q,e.appendChild(o);const t=document.createElement("link");t.rel="stylesheet",t.href=`${q}/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap`,e.appendChild(t),r("Zonos font injected!")},K.setupGoogleFont=e=>{var o;null===(o=R.zonosController)||void 0===o||o.setupGoogleFont(e)},K.injectSupportGoogleFont=e=>{var o;r(`[FONT] injecting ${e}`);const t=null===(o=e.match(/family=(.*?):/))||void 0===o?void 0:o[1],n=document.head||document.body;if(!document.querySelector(`link[rel="preconnect"][href^="${q}"]`)){const e=document.createElement("link");e.rel="preconnect",e.href=q,n.appendChild(e)}if(document.querySelector(`link[rel="stylesheet"][href="${e}"]`))return void r(`[FONT] ${t} font already injected`,"warn");const s=document.createElement("link");s.rel="stylesheet",s.href=e,n.appendChild(s),r(`[FONT] ${t} font injected!`)},window.Zonos&&window.Zonos.doneInit||(window.Zonos=K)})();
@@ -78,6 +78,10 @@ export declare class ZonosCustomerInfo {
78
78
  * Handler for the email error state
79
79
  */
80
80
  isEmailError: boolean;
81
+ /**
82
+ * Whether or not the custom address form is used
83
+ */
84
+ recordedFormTypeUsed: boolean;
81
85
  watchShowErrorBanner(): void;
82
86
  private checkInvalidCharacters;
83
87
  /**
@@ -96,11 +100,6 @@ export declare class ZonosCustomerInfo {
96
100
  private handleValidate;
97
101
  private handleEmailValidation;
98
102
  private prepareAddressObject;
99
- private isInTaxIdCountry;
100
- /**
101
- * Render tax id input based on ship to country code
102
- */
103
- private renderTaxIdInput;
104
103
  private renderAddressComponent;
105
104
  render(): any;
106
105
  }
@@ -167,6 +167,9 @@ export declare const stringsArabic: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsBase: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsChinese: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsDanish: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsDutch: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsFrench: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsGerman: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsHebrew: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsIndonesian: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsItalian: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsJapanese: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsKorean: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsNorwegian: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsPolish: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsPortuguese: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsRussian: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsSpanish: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsSwedish: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsTurkish: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -167,6 +167,9 @@ export declare const stringsVietnamese: {
167
167
  'Duties, taxes, and fees': {
168
168
  value: string;
169
169
  };
170
+ 'EORI number': {
171
+ value: string;
172
+ };
170
173
  Email: {
171
174
  value: string;
172
175
  };
@@ -17,6 +17,10 @@ export declare class ZonosAddress {
17
17
  * Default address for stripe
18
18
  */
19
19
  defaultAddress: ContactOption[];
20
+ /**
21
+ * Error message for tax id input
22
+ */
23
+ taxIdErrorMessage: string;
20
24
  /**
21
25
  * Event to emit when address is not containing allowed character sets
22
26
  */
@@ -34,6 +38,10 @@ export declare class ZonosAddress {
34
38
  * Local checkout session id to check if the address is filled after checkout is loaded
35
39
  */
36
40
  checkoutSessionId: string | null;
41
+ /**
42
+ * Event to emit when tax id is changed
43
+ */
44
+ taxIdChanged: EventEmitter<string>;
37
45
  /**
38
46
  * Check if the tracking event is sent
39
47
  */
@@ -45,6 +53,11 @@ export declare class ZonosAddress {
45
53
  private updateAddressElement;
46
54
  watchInitStripe(): Promise<void>;
47
55
  defaultAddressChanged(newAddress: ContactOption[], oldAddress: ContactOption[]): void;
56
+ private isInTaxIdCountry;
57
+ /**
58
+ * Render tax id input based on ship to country code
59
+ */
60
+ private renderTaxIdInput;
48
61
  private renderCompanyNameInput;
49
62
  disconnectedCallback(): void;
50
63
  componentDidLoad(): void;
@@ -18,6 +18,10 @@ export declare class ZonosAddress {
18
18
  * Default address for stripe
19
19
  */
20
20
  defaultAddress: ContactOption[];
21
+ /**
22
+ * Error message for tax id input
23
+ */
24
+ taxIdErrorMessage: string;
21
25
  /**
22
26
  * Event to emit when address is not containing allowed character sets
23
27
  */
@@ -127,6 +131,11 @@ export declare class ZonosAddress {
127
131
  private getIsComplete;
128
132
  private throttledGetAddressSuggestions;
129
133
  private setCustomAddressFormToStripeAddressEventData;
134
+ private isInTaxIdCountry;
135
+ /**
136
+ * Render tax id input based on ship to country code
137
+ */
138
+ private renderTaxIdInput;
130
139
  private renderCompanyNameInput;
131
140
  private initCountryField;
132
141
  private initDefaultCustomAddressForm;
@@ -5,7 +5,8 @@ type TaxIdValidationResult = {
5
5
  error: null;
6
6
  valid: true;
7
7
  };
8
- export declare const taxIdValidationResult: ({ shippingCountry, taxId, }: {
8
+ export declare const taxIdValidationResult: ({ companyName, shippingCountry, taxId, }: {
9
+ companyName: string;
9
10
  shippingCountry: string;
10
11
  taxId: string;
11
12
  }) => TaxIdValidationResult;
@@ -59,6 +59,10 @@ export namespace Components {
59
59
  * Default address for stripe
60
60
  */
61
61
  "defaultAddress": ContactOption[];
62
+ /**
63
+ * Error message for tax id input
64
+ */
65
+ "taxIdErrorMessage": string;
62
66
  /**
63
67
  * The title text for the address element
64
68
  */
@@ -624,6 +628,10 @@ export namespace Components {
624
628
  * Default address for stripe
625
629
  */
626
630
  "defaultAddress": ContactOption[];
631
+ /**
632
+ * Error message for tax id input
633
+ */
634
+ "taxIdErrorMessage": string;
627
635
  /**
628
636
  * The title text for the address element
629
637
  */
@@ -1350,6 +1358,7 @@ export interface ZonosToggleCustomEvent<T> extends CustomEvent<T> {
1350
1358
  declare global {
1351
1359
  interface HTMLZonosAddressElementEventMap {
1352
1360
  "invalidCharacters": boolean;
1361
+ "taxIdChanged": string;
1353
1362
  }
1354
1363
  interface HTMLZonosAddressElement extends Components.ZonosAddress, HTMLStencilElement {
1355
1364
  addEventListener<K extends keyof HTMLZonosAddressElementEventMap>(type: K, listener: (this: HTMLZonosAddressElement, ev: ZonosAddressCustomEvent<HTMLZonosAddressElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2029,6 +2038,14 @@ declare namespace LocalJSX {
2029
2038
  * Event to emit when address is not containing allowed character sets
2030
2039
  */
2031
2040
  "onInvalidCharacters"?: (event: ZonosAddressCustomEvent<boolean>) => void;
2041
+ /**
2042
+ * Event to emit when tax id is changed
2043
+ */
2044
+ "onTaxIdChanged"?: (event: ZonosAddressCustomEvent<string>) => void;
2045
+ /**
2046
+ * Error message for tax id input
2047
+ */
2048
+ "taxIdErrorMessage"?: string;
2032
2049
  /**
2033
2050
  * The title text for the address element
2034
2051
  */
@@ -2601,6 +2618,10 @@ declare namespace LocalJSX {
2601
2618
  * Event to emit when address is not containing allowed character sets
2602
2619
  */
2603
2620
  "onInvalidCharacters"?: (event: ZonosCustomAddressCustomEvent<boolean>) => void;
2621
+ /**
2622
+ * Error message for tax id input
2623
+ */
2624
+ "taxIdErrorMessage"?: string;
2604
2625
  /**
2605
2626
  * The title text for the address element
2606
2627
  */
@@ -1,20 +1,142 @@
1
- export declare const countryRequireTaxId: ["AR", "BR", "KR", "MX"];
1
+ export declare const euCountryCodes: ["AT", "BE", "BG", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GR", "HR", "HU", "IE", "IT", "LT", "LU", "LV", "MT", "NL", "PL", "PT", "RO", "SE", "SI", "SK", "CH", "NO", "GB"];
2
+ export type EuCountryCode = (typeof euCountryCodes)[number];
3
+ export declare const countryRequireTaxId: ["AR", "BR", "KR", "MX", "AT", "BE", "BG", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FR", "GR", "HR", "HU", "IE", "IT", "LT", "LU", "LV", "MT", "NL", "PL", "PT", "RO", "SE", "SI", "SK", "CH", "NO", "GB"];
2
4
  export type CountryRequireTaxId = (typeof countryRequireTaxId)[number];
3
5
  export declare const shipToTaxIdLabels: {
4
6
  readonly AR: {
5
7
  readonly friendlyName: "Unique Labor Identification Code";
6
8
  readonly placeholder: "00-00000000-0";
7
9
  };
10
+ readonly AT: {
11
+ readonly friendlyName: "EORI number";
12
+ readonly placeholder: "DE123456789";
13
+ };
14
+ readonly BE: {
15
+ readonly friendlyName: "EORI number";
16
+ readonly placeholder: "DE123456789";
17
+ };
18
+ readonly BG: {
19
+ readonly friendlyName: "EORI number";
20
+ readonly placeholder: "DE123456789";
21
+ };
8
22
  readonly BR: {
9
23
  readonly friendlyName: "CPF/CNPJ number";
10
24
  readonly placeholder: "000.000.000-00";
11
25
  };
26
+ readonly CH: {
27
+ readonly friendlyName: "EORI number";
28
+ readonly placeholder: "DE123456789";
29
+ };
30
+ readonly CY: {
31
+ readonly friendlyName: "EORI number";
32
+ readonly placeholder: "DE123456789";
33
+ };
34
+ readonly CZ: {
35
+ readonly friendlyName: "EORI number";
36
+ readonly placeholder: "DE123456789";
37
+ };
38
+ readonly DE: {
39
+ readonly friendlyName: "EORI number";
40
+ readonly placeholder: "DE123456789";
41
+ };
42
+ readonly DK: {
43
+ readonly friendlyName: "EORI number";
44
+ readonly placeholder: "DE123456789";
45
+ };
46
+ readonly EE: {
47
+ readonly friendlyName: "EORI number";
48
+ readonly placeholder: "DE123456789";
49
+ };
50
+ readonly ES: {
51
+ readonly friendlyName: "EORI number";
52
+ readonly placeholder: "DE123456789";
53
+ };
54
+ readonly FI: {
55
+ readonly friendlyName: "EORI number";
56
+ readonly placeholder: "DE123456789";
57
+ };
58
+ readonly FR: {
59
+ readonly friendlyName: "EORI number";
60
+ readonly placeholder: "DE123456789";
61
+ };
62
+ readonly GB: {
63
+ readonly friendlyName: "EORI number";
64
+ readonly placeholder: "DE123456789";
65
+ };
66
+ readonly GR: {
67
+ readonly friendlyName: "EORI number";
68
+ readonly placeholder: "DE123456789";
69
+ };
70
+ readonly HR: {
71
+ readonly friendlyName: "EORI number";
72
+ readonly placeholder: "DE123456789";
73
+ };
74
+ readonly HU: {
75
+ readonly friendlyName: "EORI number";
76
+ readonly placeholder: "DE123456789";
77
+ };
78
+ readonly IE: {
79
+ readonly friendlyName: "EORI number";
80
+ readonly placeholder: "DE123456789";
81
+ };
82
+ readonly IT: {
83
+ readonly friendlyName: "EORI number";
84
+ readonly placeholder: "DE123456789";
85
+ };
12
86
  readonly KR: {
13
87
  readonly friendlyName: "Personal Customers Clearance Code";
14
88
  readonly placeholder: "000-00-00000";
15
89
  };
90
+ readonly LT: {
91
+ readonly friendlyName: "EORI number";
92
+ readonly placeholder: "DE123456789";
93
+ };
94
+ readonly LU: {
95
+ readonly friendlyName: "EORI number";
96
+ readonly placeholder: "DE123456789";
97
+ };
98
+ readonly LV: {
99
+ readonly friendlyName: "EORI number";
100
+ readonly placeholder: "DE123456789";
101
+ };
102
+ readonly MT: {
103
+ readonly friendlyName: "EORI number";
104
+ readonly placeholder: "DE123456789";
105
+ };
16
106
  readonly MX: {
17
107
  readonly friendlyName: "RFC number";
18
108
  readonly placeholder: "XAXX010101000";
19
109
  };
110
+ readonly NL: {
111
+ readonly friendlyName: "EORI number";
112
+ readonly placeholder: "DE123456789";
113
+ };
114
+ readonly NO: {
115
+ readonly friendlyName: "EORI number";
116
+ readonly placeholder: "DE123456789";
117
+ };
118
+ readonly PL: {
119
+ readonly friendlyName: "EORI number";
120
+ readonly placeholder: "DE123456789";
121
+ };
122
+ readonly PT: {
123
+ readonly friendlyName: "EORI number";
124
+ readonly placeholder: "DE123456789";
125
+ };
126
+ readonly RO: {
127
+ readonly friendlyName: "EORI number";
128
+ readonly placeholder: "DE123456789";
129
+ };
130
+ readonly SE: {
131
+ readonly friendlyName: "EORI number";
132
+ readonly placeholder: "DE123456789";
133
+ };
134
+ readonly SI: {
135
+ readonly friendlyName: "EORI number";
136
+ readonly placeholder: "DE123456789";
137
+ };
138
+ readonly SK: {
139
+ readonly friendlyName: "EORI number";
140
+ readonly placeholder: "DE123456789";
141
+ };
20
142
  };