@justifi/webcomponents 6.7.0 → 6.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/cjs/{check-pkg-version-nSgWWvdw.js → check-pkg-version-BG-Rfkh5.js} +1 -1
  2. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  3. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +9 -7
  4. package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +10 -8
  5. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  6. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  7. package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
  8. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
  9. package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
  10. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
  13. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  14. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
  15. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  18. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
  19. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  20. package/dist/cjs/justifi-refund-payment.cjs.entry.js +98 -6
  21. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  22. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
  23. package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/{package-B8gOzTFM.js → package-Df5lTFe6.js} +1 -1
  26. package/dist/cjs/webcomponents.cjs.js +1 -1
  27. package/dist/collection/actions/void/void-actions.js +31 -0
  28. package/dist/collection/api/services/google-pay.service.js +2 -1
  29. package/dist/collection/api/services/void.service.js +9 -0
  30. package/dist/collection/components/modular-checkout/modular-checkout.js +3 -2
  31. package/dist/collection/components/modular-checkout/sub-components/bank-account.js +6 -3
  32. package/dist/collection/components/modular-checkout/sub-components/card-form.js +6 -3
  33. package/dist/collection/components/modular-checkout/sub-components/google-pay.js +3 -3
  34. package/dist/collection/components/refund-payment/refund-payment.js +66 -10
  35. package/dist/docs.json +15 -10
  36. package/dist/esm/{check-pkg-version-CmkUoEAo.js → check-pkg-version-c_8fDHCB.js} +1 -1
  37. package/dist/esm/hidden-input_2.entry.js +1 -1
  38. package/dist/esm/internal-tokenize-payment-method_7.entry.js +9 -7
  39. package/dist/esm/justifi-apple-pay_8.entry.js +10 -8
  40. package/dist/esm/justifi-business-details.entry.js +2 -2
  41. package/dist/esm/justifi-business-form.entry.js +2 -2
  42. package/dist/esm/justifi-checkout.entry.js +2 -2
  43. package/dist/esm/justifi-checkouts-list.entry.js +2 -2
  44. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  45. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  46. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  47. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  48. package/dist/esm/justifi-payment-details.entry.js +2 -2
  49. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  50. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  51. package/dist/esm/justifi-payments-list.entry.js +2 -2
  52. package/dist/esm/justifi-payout-details.entry.js +2 -2
  53. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  54. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  55. package/dist/esm/justifi-refund-payment.entry.js +98 -6
  56. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  57. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  58. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/esm/{package-CsRppqXL.js → package-BzT9OxlN.js} +1 -1
  61. package/dist/esm/webcomponents.js +1 -1
  62. package/dist/module/bank-account-form.js +1 -1
  63. package/dist/module/bank-account.js +5 -2
  64. package/dist/module/card-form.js +1 -1
  65. package/dist/module/card-form2.js +5 -2
  66. package/dist/module/google-pay.js +5 -4
  67. package/dist/module/justifi-checkouts-list-filters.js +1 -1
  68. package/dist/module/justifi-payment-transactions-list.js +1 -1
  69. package/dist/module/justifi-payments-list-filters.js +1 -1
  70. package/dist/module/justifi-payout-transactions-list.js +1 -1
  71. package/dist/module/justifi-payouts-list-filters.js +1 -1
  72. package/dist/module/justifi-refund-payment.js +97 -4
  73. package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
  74. package/dist/module/modular-checkout.js +3 -2
  75. package/dist/module/package.js +1 -1
  76. package/dist/module/payments-list-core2.js +1 -1
  77. package/dist/module/payout-details-core2.js +1 -1
  78. package/dist/module/payouts-list-core2.js +1 -1
  79. package/dist/module/terminal-orders-list-core2.js +1 -1
  80. package/dist/module/utils2.js +1 -1
  81. package/dist/types/actions/void/void-actions.d.ts +10 -0
  82. package/dist/types/api/services/google-pay.service.d.ts +1 -1
  83. package/dist/types/api/services/void.service.d.ts +7 -0
  84. package/dist/types/components/modular-checkout/sub-components/bank-account.d.ts +1 -0
  85. package/dist/types/components/modular-checkout/sub-components/card-form.d.ts +1 -0
  86. package/dist/types/components/refund-payment/refund-payment.d.ts +6 -2
  87. package/dist/types/components.d.ts +3 -3
  88. package/dist/webcomponents/{p-c0bd4e9a.entry.js → p-035a4adc.entry.js} +1 -1
  89. package/dist/webcomponents/{p-c4585b68.entry.js → p-0935600b.entry.js} +1 -1
  90. package/dist/webcomponents/{p-fc8f55d7.entry.js → p-0ab9a3ae.entry.js} +1 -1
  91. package/dist/webcomponents/{p-DISrhs4v.js → p-11wdbrqX.js} +1 -1
  92. package/dist/webcomponents/{p-fe73b09b.entry.js → p-138ada4a.entry.js} +1 -1
  93. package/dist/webcomponents/p-148d3327.entry.js +1 -0
  94. package/dist/webcomponents/p-2cb9edad.entry.js +1 -0
  95. package/dist/webcomponents/{p-04ec17bb.entry.js → p-2d4a2d26.entry.js} +1 -1
  96. package/dist/webcomponents/p-3f14d0c4.entry.js +1 -0
  97. package/dist/webcomponents/{p-d2981754.entry.js → p-5c6727ae.entry.js} +1 -1
  98. package/dist/webcomponents/{p-eada0422.entry.js → p-622af881.entry.js} +1 -1
  99. package/dist/webcomponents/{p-50400c5e.entry.js → p-64ebff16.entry.js} +1 -1
  100. package/dist/webcomponents/p-71577fa1.entry.js +1 -0
  101. package/dist/webcomponents/p-7ec4838f.entry.js +1 -0
  102. package/dist/webcomponents/p-BzT9OxlN.js +1 -0
  103. package/dist/webcomponents/p-af7c219d.entry.js +1 -0
  104. package/dist/webcomponents/{p-74fea39c.entry.js → p-b752c5bc.entry.js} +1 -1
  105. package/dist/webcomponents/{p-f23428da.entry.js → p-bbff6196.entry.js} +1 -1
  106. package/dist/webcomponents/p-c0c36187.entry.js +1 -0
  107. package/dist/webcomponents/{p-ff5981fb.entry.js → p-d077569e.entry.js} +1 -1
  108. package/dist/webcomponents/{p-87988b4d.entry.js → p-d7b1b7b5.entry.js} +1 -1
  109. package/dist/webcomponents/{p-095cedc5.entry.js → p-dc6c9c79.entry.js} +1 -1
  110. package/dist/webcomponents/p-ecbc83bf.entry.js +1 -0
  111. package/dist/webcomponents/{p-b2a0cbad.entry.js → p-f56d7b4c.entry.js} +1 -1
  112. package/dist/webcomponents/webcomponents.esm.js +1 -1
  113. package/docs/.eslintrc.cjs +17 -0
  114. package/docs/changelog/index.mdx +17 -0
  115. package/docs/entities/businessdetails/index.mdx +143 -0
  116. package/docs/entities/businessform/index.mdx +241 -0
  117. package/docs/entities/index.mdx +19 -0
  118. package/docs/entities/payment-provisioning/index.mdx +128 -0
  119. package/docs/frameworks/angular/index.mdx +112 -0
  120. package/docs/frameworks/index.mdx +18 -0
  121. package/docs/frameworks/react/index.mdx +125 -0
  122. package/docs/frameworks/vue/index.mdx +102 -0
  123. package/docs/helpers/PartsTable.js +50 -0
  124. package/docs/helpers/PropsTable.js +56 -0
  125. package/docs/helpers/index.ts +3 -0
  126. package/docs/helpers/version.js +32 -0
  127. package/docs/introduction/index.mdx +125 -0
  128. package/docs/merchant-tools/checkouts-list/index.mdx +97 -0
  129. package/docs/merchant-tools/gross-payments-chart/index.mdx +83 -0
  130. package/docs/merchant-tools/index.mdx +25 -0
  131. package/docs/merchant-tools/order-terminals/index.mdx +84 -0
  132. package/docs/merchant-tools/payment-details/index.mdx +132 -0
  133. package/docs/merchant-tools/payment-transactions-list/index.mdx +85 -0
  134. package/docs/merchant-tools/payments-list/index.mdx +109 -0
  135. package/docs/merchant-tools/payout-details/index.mdx +84 -0
  136. package/docs/merchant-tools/payout-transactions-list/index.mdx +84 -0
  137. package/docs/merchant-tools/payouts-list/index.mdx +92 -0
  138. package/docs/merchant-tools/terminal-orders-list/index.mdx +85 -0
  139. package/docs/merchant-tools/terminals-list/index.mdx +93 -0
  140. package/docs/modular-checkout/complete-examples/index.mdx +20 -0
  141. package/docs/modular-checkout/index.mdx +20 -0
  142. package/docs/modular-checkout/introduction/index.mdx +102 -0
  143. package/docs/modular-checkout/sub-components/apple-pay.mdx +106 -0
  144. package/docs/modular-checkout/sub-components/bank-account-form.mdx +167 -0
  145. package/docs/modular-checkout/sub-components/card-form.mdx +178 -0
  146. package/docs/modular-checkout/sub-components/index.mdx +23 -0
  147. package/docs/modular-checkout/sub-components/payment-method-options.mdx +87 -0
  148. package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +158 -0
  149. package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +183 -0
  150. package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +221 -0
  151. package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +183 -0
  152. package/docs/modular-checkout/sub-components/summary.mdx +111 -0
  153. package/docs/payment-facilitation/dispute-management/index.mdx +99 -0
  154. package/docs/payment-facilitation/index.mdx +21 -0
  155. package/docs/payment-facilitation/refund-payment/index.mdx +241 -0
  156. package/docs/payment-facilitation/tokenize-payment-method/index.mdx +350 -0
  157. package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +150 -0
  158. package/package.json +21 -6
  159. package/dist/webcomponents/p-0e981c28.entry.js +0 -1
  160. package/dist/webcomponents/p-15ceeea7.entry.js +0 -1
  161. package/dist/webcomponents/p-9c1aa22d.entry.js +0 -1
  162. package/dist/webcomponents/p-CsRppqXL.js +0 -1
  163. package/dist/webcomponents/p-aa145996.entry.js +0 -1
  164. package/dist/webcomponents/p-b5b49e86.entry.js +0 -1
  165. package/dist/webcomponents/p-d9cdd873.entry.js +0 -1
  166. package/dist/webcomponents/p-ef04f334.entry.js +0 -1
  167. package/dist/webcomponents/p-f5dd3fa4.entry.js +0 -1
@@ -2,6 +2,7 @@ import { h } from "@stencil/core";
2
2
  import { StyledHost } from "../../../ui-components";
3
3
  import BankAccountFormSkeleton from "./bank-account-skeleton";
4
4
  import { checkPkgVersion } from "../../../utils/check-pkg-version";
5
+ import { generateTabId } from "../../../utils/utils";
5
6
  import JustifiAnalytics from "../../../api/Analytics";
6
7
  import { configState, waitForConfig } from "../../config-provider/config-state";
7
8
  export class BankAccountForm {
@@ -11,6 +12,7 @@ export class BankAccountForm {
11
12
  async componentWillLoad() {
12
13
  await waitForConfig();
13
14
  this.iframeOrigin = configState.iframeOrigin;
15
+ this.tabId = generateTabId();
14
16
  checkPkgVersion();
15
17
  this.analytics = new JustifiAnalytics(this);
16
18
  }
@@ -40,17 +42,18 @@ export class BankAccountForm {
40
42
  return this.accountNumberIframeElement.tokenize(clientId, paymentMethodMetadata, account);
41
43
  }
42
44
  render() {
43
- return (h(StyledHost, { key: '0daa12da1ca699a05ca499425c4a37e4d913b2dd' }, h(BankAccountFormSkeleton, { key: '9d4ee0af94759d71d52130781401d322fcb5e397', isReady: this.isReady }), h("hidden-input", { key: 'dc4ee0054cbc7acb214a1c410f8fd387677f92dc' }), h("div", { key: 'b489311f205e0ffdaa4680621b706322bd3fc4ca', class: "container-fluid p-0", style: {
45
+ return (h(StyledHost, { key: '1513483acd2de524f8634feb14f366a269601e06' }, h(BankAccountFormSkeleton, { key: '8b14e99af751f3dbf6e0a3d2d187b44e0934456d', isReady: this.isReady }), h("hidden-input", { key: 'edfc3e1b190f28eee4a3769ff33fb7b8220f73d3' }), h("div", { key: '9371fe5f4e189c882d16bec25068efcc6d56aff9', class: "container-fluid p-0", style: {
44
46
  opacity: this.isReady ? '1' : '0',
45
47
  height: this.isReady ? 'auto' : '0',
46
- } }, h("div", { key: '2d1b00b9705d1a94364f691d4ad705c339abbbce', class: "row mb-3" }, h("iframe-input", { key: '21a66eb7d87b77c1ff1a1171a4cb84a4759853dd', inputId: "accountNumber", ref: (el) => (this.accountNumberIframeElement = el), label: "Account Number", iframeOrigin: `${this.iframeOrigin}/v2/accountNumber` })), h("div", { key: '1ff36d49f7304e203cdefea46010100ed750ed68', class: "row" }, h("iframe-input", { key: '2211a638c875e504e7e25e0704788d7a437b5806', inputId: "routingNumber", ref: (el) => (this.routingNumberIframeElement = el), label: "Routing Number", iframeOrigin: `${this.iframeOrigin}/v2/routingNumber` })))));
48
+ } }, h("div", { key: '5cecb5ecc5a3cfdb1ff0fe659aa9e22c0c1c8a11', class: "row mb-3" }, h("iframe-input", { key: 'b970e3a6e563cf1a5cff651c219a954d32b1fec3', inputId: "accountNumber", ref: (el) => (this.accountNumberIframeElement = el), label: "Account Number", iframeOrigin: `${this.iframeOrigin}/v2/accountNumber?tabId=${this.tabId}` })), h("div", { key: 'eaf6b26dc3638f548fd7e5b45363319db3bdf5f2', class: "row" }, h("iframe-input", { key: 'c90064cec52a9100522f0ea62593b8e439ea7a9e', inputId: "routingNumber", ref: (el) => (this.routingNumberIframeElement = el), label: "Routing Number", iframeOrigin: `${this.iframeOrigin}/v2/routingNumber?tabId=${this.tabId}` })))));
47
49
  }
48
50
  static get is() { return "justifi-bank-account-form"; }
49
51
  static get encapsulation() { return "shadow"; }
50
52
  static get states() {
51
53
  return {
52
54
  "iframeOrigin": {},
53
- "isReady": {}
55
+ "isReady": {},
56
+ "tabId": {}
54
57
  };
55
58
  }
56
59
  static get methods() {
@@ -3,6 +3,7 @@ import CardFormSkeleton from "./card-form-skeleton";
3
3
  import { StyledHost } from "../../../ui-components";
4
4
  import JustifiAnalytics from "../../../api/Analytics";
5
5
  import { checkPkgVersion } from "../../../utils/check-pkg-version";
6
+ import { generateTabId } from "../../../utils/utils";
6
7
  import { configState, waitForConfig } from "../../config-provider/config-state";
7
8
  export class JustifiCardForm {
8
9
  constructor() {
@@ -11,6 +12,7 @@ export class JustifiCardForm {
11
12
  async componentWillLoad() {
12
13
  await waitForConfig();
13
14
  this.iframeOrigin = configState.iframeOrigin;
15
+ this.tabId = generateTabId();
14
16
  checkPkgVersion();
15
17
  this.analytics = new JustifiAnalytics(this);
16
18
  }
@@ -44,17 +46,18 @@ export class JustifiCardForm {
44
46
  return this.cardNumberIframeElement.tokenize(clientId, paymentMethodMetadata, account);
45
47
  }
46
48
  render() {
47
- return (h(StyledHost, { key: 'b0b07a928be767102b59ec93ab0df6296b8418af' }, h(CardFormSkeleton, { key: '03d37e42253a905ece1e6a9b1d654e84665470d6', isReady: this.isReady }), h("hidden-input", { key: '62f657a6c0a4d5b7a7bbf809abeb42eba0d22345' }), h("div", { key: '874cac5eac376c8c4e12d99f760cd3cd487a6521', class: "container-fluid p-0", style: {
49
+ return (h(StyledHost, { key: '83bf3ea8d44fd14cf98725b1e800e2481222423b' }, h(CardFormSkeleton, { key: 'e23ef5cf5d8b756dcdfda6341a240d86e400a10e', isReady: this.isReady }), h("hidden-input", { key: 'eddc0b1549ee00084df8bfbbd22658bc48cdf493' }), h("div", { key: '753a4c38f8624a9d528c582fd5e26929977e88c5', class: "container-fluid p-0", style: {
48
50
  opacity: this.isReady ? '1' : '0',
49
51
  height: this.isReady ? 'auto' : '0',
50
- } }, h("div", { key: 'dcada2d72eebe506fe4cab8ad6eb959c551e9e2d', class: "mb-3" }, h("iframe-input", { key: '7e784726f8dd0c8b35832646bc99e0d2131c08f9', inputId: "cardNumber", ref: (el) => (this.cardNumberIframeElement = el), label: "Card Number", iframeOrigin: `${this.iframeOrigin}/v2/cardNumber` })), h("div", { key: '2384099f3aa18b7d6bbc346f47ba9ff06e5b7e86', class: "row" }, h("div", { key: '5fb523cd3f398894e5c7ee3e8a58d34581492410', class: "col-4 align-content-end" }, h("iframe-input", { key: 'a3b4aa06a5c85162d24e25a5261a9a2cc64a6b82', inputId: "expirationMonth", ref: (el) => (this.expirationMonthIframeElement = el), label: "Expiration", iframeOrigin: `${this.iframeOrigin}/v2/expirationMonth` })), h("div", { key: '3ccd6a19fce1c393a8c58534113239c518d51a4f', class: "col-4 align-content-end" }, h("iframe-input", { key: '6d064b868c73b4431b476194602843b0f28729e0', inputId: "expirationYear", ref: (el) => (this.expirationYearIframeElement = el), label: "", iframeOrigin: `${this.iframeOrigin}/v2/expirationYear` })), h("div", { key: '26cd762bec43890e96ab5c6903943b0f4cfa9672', class: "col-4 align-content-end" }, h("iframe-input", { key: '826dfe08347461bc5a94296b181826b70a7d1f6f', inputId: "CVV", ref: (el) => (this.cvvIframeElement = el), label: "CVV", iframeOrigin: `${this.iframeOrigin}/v2/CVV` }))))));
52
+ } }, h("div", { key: 'db1c408da9865db12899f2e86d46a3181f592333', class: "mb-3" }, h("iframe-input", { key: 'b31b33f68f34fbde9abdab13cc4b0b09e2122bad', inputId: "cardNumber", ref: (el) => (this.cardNumberIframeElement = el), label: "Card Number", iframeOrigin: `${this.iframeOrigin}/v2/cardNumber?tabId=${this.tabId}` })), h("div", { key: '4e8e14e60bb566032530fd72e7f787226e0e7940', class: "row" }, h("div", { key: 'cb1c06bd2c2e04cffdc2a6572505a6dcf26e9b48', class: "col-4 align-content-end" }, h("iframe-input", { key: '915ff44d990585262a2e60d83ac569cd56e90762', inputId: "expirationMonth", ref: (el) => (this.expirationMonthIframeElement = el), label: "Expiration", iframeOrigin: `${this.iframeOrigin}/v2/expirationMonth?tabId=${this.tabId}` })), h("div", { key: 'ceca19853d0e78828c5a89a5e1f99acce6d05345', class: "col-4 align-content-end" }, h("iframe-input", { key: 'f0089860aab12b7bcfe31ac9fe6ed303182ff9fa', inputId: "expirationYear", ref: (el) => (this.expirationYearIframeElement = el), label: "", iframeOrigin: `${this.iframeOrigin}/v2/expirationYear?tabId=${this.tabId}` })), h("div", { key: 'e1bdd33a875bdf82068aceeea68f27c48414ed65', class: "col-4 align-content-end" }, h("iframe-input", { key: '7c483f78294418b7cee76e0c272ad375496bbc7d', inputId: "CVV", ref: (el) => (this.cvvIframeElement = el), label: "CVV", iframeOrigin: `${this.iframeOrigin}/v2/CVV?tabId=${this.tabId}` }))))));
51
53
  }
52
54
  static get is() { return "justifi-card-form"; }
53
55
  static get encapsulation() { return "shadow"; }
54
56
  static get states() {
55
57
  return {
56
58
  "isReady": {},
57
- "iframeOrigin": {}
59
+ "iframeOrigin": {},
60
+ "tabId": {}
58
61
  };
59
62
  }
60
63
  static get methods() {
@@ -186,16 +186,16 @@ export class GooglePay {
186
186
  }
187
187
  }
188
188
  createPaymentDataRequest() {
189
- return GooglePayService.createPaymentDataRequest(checkoutStore.paymentAmount, checkoutStore.paymentDescription, this.countryCode, checkoutStore.paymentCurrency, this.merchantName);
189
+ return GooglePayService.createPaymentDataRequest(checkoutStore.paymentAmount, checkoutStore.paymentDescription, this.countryCode, checkoutStore.paymentCurrency, this.merchantName, this.merchantId);
190
190
  }
191
191
  render() {
192
192
  const showError = !this.isLoading && !!this.error;
193
193
  const showDeviceUnavailable = !this.isLoading && !this.error && !this.isAvailable;
194
194
  const showPaymentsUnavailable = !this.isLoading && !this.error && this.isAvailable && !this.canMakePayments;
195
195
  const showButton = !this.isLoading && !this.error && this.isAvailable && this.canMakePayments;
196
- return (h(StyledHost, { key: '1f0b34c9821cc3442d470ffe63abce283f81fa89' }, checkoutStore.checkoutLoaded && (h("script", { key: '0d5e5f405b50629e6dc80a545a06a4dafc341e64', async: true, src: 'https://pay.google.com/gp/p/js/pay.js', onLoad: () => {
196
+ return (h(StyledHost, { key: 'ee9d21e776e2a5c48d3fa2fb505290020707897d' }, checkoutStore.checkoutLoaded && (h("script", { key: '72bd5be9e6b80a42e219082cb248927aa6e1154b', async: true, src: 'https://pay.google.com/gp/p/js/pay.js', onLoad: () => {
197
197
  this.initializeGooglePay();
198
- } })), h("div", { key: '83a35cff20c0b1c4de521a845a6fb964c81dfcae', class: 'google-pay-container' }, h(GooglePaySkeleton, { key: '245833ba9f530d3e9e35373cd8b22dff00451561', isLoading: this.isLoading }), showError && (h("div", { key: 'e47b0aeffae5b749fe1da9b8bd00e2aafe9d6616', class: 'google-pay-error', role: 'alert', "data-testid": 'gp-error' }, h("span", { key: 'd1dd1d928868b0917be696deecac2db51a8b2356', class: 'error-icon' }, "\u26A0\uFE0F"), h("span", { key: '132c4a4fe9f635752f2c831f9fac46bf44f9414c', class: 'error-message' }, this.error))), showDeviceUnavailable && (h("div", { key: 'c376807e7b7d4eecf739ce2b7665c18cd36b7d6c', class: 'google-pay-unavailable', "data-testid": 'gp-device-unavailable' }, h("span", { key: '515f96d8a7edae2654ca900d4c6bdc31c0569dba', class: 'unavailable-message' }, "Google Pay is not available on this device"))), showPaymentsUnavailable && (h("div", { key: '917571ced603e504034d155f1066b8a47ad7db5b', class: 'google-pay-unavailable', "data-testid": 'gp-payments-unavailable' }, h("span", { key: 'd5a25481c52b9c781e7602014d41502a37ef41fb', class: 'unavailable-message' }, "Google Pay is not available for payments"))), showButton && (h(GooglePayButton, { key: 'ac9f2d4cef0f9f5bab2042e327182edba310d6c8', "data-testid": 'gp-button', buttonType: this.buttonType, buttonStyle: this.buttonStyle, buttonSizeMode: this.buttonSizeMode, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleGooglePayClick }))), h("style", { key: 'ead06da7b7b599bd68829a95d2725339ec40f44d' }, `
198
+ } })), h("div", { key: 'f0c2c019b80589e69c159e78b18e37fc5b1f5b21', class: 'google-pay-container' }, h(GooglePaySkeleton, { key: 'd2b1f727aec121ce5e71afcd4306df92a4b5dd3b', isLoading: this.isLoading }), showError && (h("div", { key: '257df18492bff1609b864b69e2fffbacfc751ead', class: 'google-pay-error', role: 'alert', "data-testid": 'gp-error' }, h("span", { key: 'f0ece1f1ceeb2fd957ab577f848741a377c7375d', class: 'error-icon' }, "\u26A0\uFE0F"), h("span", { key: '9139e3824de300b51b2f577fbfa77ab200b0afa5', class: 'error-message' }, this.error))), showDeviceUnavailable && (h("div", { key: 'f1bf0002a82aec202b168130729c16caeb254119', class: 'google-pay-unavailable', "data-testid": 'gp-device-unavailable' }, h("span", { key: 'de42cef5e7fd8df4f84c6b2d9429672b97e9e805', class: 'unavailable-message' }, "Google Pay is not available on this device"))), showPaymentsUnavailable && (h("div", { key: 'a4738f6c36240efee000560acc775e431b517588', class: 'google-pay-unavailable', "data-testid": 'gp-payments-unavailable' }, h("span", { key: '6987a5208a702c15081660b09bfc10360eeef922', class: 'unavailable-message' }, "Google Pay is not available for payments"))), showButton && (h(GooglePayButton, { key: 'de09f6693db4dc60ba6529e683dc213bec8492a5', "data-testid": 'gp-button', buttonType: this.buttonType, buttonStyle: this.buttonStyle, buttonSizeMode: this.buttonSizeMode, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleGooglePayClick }))), h("style", { key: 'ed3249a9b1f55720f6f4f29b3923ae2c6eda3431' }, `
199
199
  .google-pay-container {
200
200
  width: 100%;
201
201
  }
@@ -11,6 +11,8 @@ import JustifiAnalytics from "../../api/Analytics";
11
11
  import { checkPkgVersion } from "../../utils/check-pkg-version";
12
12
  import { makePostRefund } from "../../actions/refund/refund-actions";
13
13
  import { RefundService } from "../../api/services/refund.service";
14
+ import { makePostVoid } from "../../actions/void/void-actions";
15
+ import { VoidService } from "../../api/services/void.service";
14
16
  import { RefundLoading } from "./refund-loading";
15
17
  export class RefundPayment {
16
18
  constructor() {
@@ -41,6 +43,16 @@ export class RefundPayment {
41
43
  const errorMessage = 'Refund amount must be greater than 0';
42
44
  this.handleError(ComponentErrorCodes.INVALID_REFUND_AMOUNT, errorMessage, ComponentErrorSeverity.ERROR);
43
45
  }
46
+ isPaymentCreatedWithin25Minutes() {
47
+ var _a;
48
+ if (!this.payment || !((_a = this.payment) === null || _a === void 0 ? void 0 : _a.created_at)) {
49
+ return false;
50
+ }
51
+ const paymentCreatedAt = new Date(this.payment.created_at);
52
+ const now = new Date();
53
+ const diffInMinutes = (now.getTime() - paymentCreatedAt.getTime()) / (1000 * 60);
54
+ return diffInMinutes <= 25;
55
+ }
44
56
  initializeFormController() {
45
57
  const amount = this.refundPayload.amount;
46
58
  const amountRefundable = amount ? amount.toString() : '0';
@@ -64,6 +76,7 @@ export class RefundPayment {
64
76
  });
65
77
  getPayment({
66
78
  onSuccess: ({ payment }) => {
79
+ this.payment = payment;
67
80
  this.refundPayload = new RefundPayload({ amount: payment.amount_refundable });
68
81
  },
69
82
  onError: ({ error, code, severity }) => {
@@ -87,14 +100,56 @@ export class RefundPayment {
87
100
  const valid = await this.formController.validate();
88
101
  if (!valid)
89
102
  return;
103
+ const values = this.formController.values.getValue();
104
+ this.refundLoading = true;
105
+ // Check if payment was created within 25 minutes and try to void first
106
+ if (this.isPaymentCreatedWithin25Minutes()) {
107
+ return this.tryVoidPayment();
108
+ }
109
+ // Otherwise, proceed with refund
110
+ return this.processRefund(values);
111
+ }
112
+ async tryVoidPayment() {
113
+ const postVoid = makePostVoid({
114
+ authToken: this.authToken,
115
+ accountId: this.accountId,
116
+ paymentId: this.paymentId,
117
+ service: new VoidService()
118
+ });
119
+ return new Promise((resolve) => {
120
+ let voidResponse;
121
+ let voidAttempted = false;
122
+ const values = this.formController.values.getValue();
123
+ postVoid({
124
+ onSuccess: (response) => {
125
+ voidResponse = response;
126
+ voidAttempted = true;
127
+ },
128
+ onError: ({ error, code, severity }) => {
129
+ // If void fails, fall back to refund
130
+ voidAttempted = true;
131
+ this.handleError(error, code, severity);
132
+ this.processRefund(values)
133
+ .then(resolve);
134
+ },
135
+ final: () => {
136
+ if (voidResponse && !voidResponse.error && voidAttempted) {
137
+ this.submitEvent.emit({ response: voidResponse });
138
+ this.submitDisabled = true;
139
+ this.refundLoading = false;
140
+ resolve(voidResponse.data);
141
+ }
142
+ },
143
+ });
144
+ });
145
+ }
146
+ async processRefund(values) {
90
147
  const postRefund = makePostRefund({
91
148
  authToken: this.authToken,
92
149
  accountId: this.accountId,
93
150
  paymentId: this.paymentId,
94
151
  service: new RefundService()
95
152
  });
96
- const values = this.formController.values.getValue();
97
- this.refundLoading = true;
98
153
  return new Promise((resolve) => {
99
154
  let refundResponse;
100
155
  postRefund({
@@ -212,7 +267,8 @@ export class RefundPayment {
212
267
  "errors": {},
213
268
  "paymentLoading": {},
214
269
  "refundLoading": {},
215
- "submitDisabled": {}
270
+ "submitDisabled": {},
271
+ "payment": {}
216
272
  };
217
273
  }
218
274
  static get events() {
@@ -264,7 +320,7 @@ export class RefundPayment {
264
320
  return {
265
321
  "refundPayment": {
266
322
  "complexType": {
267
- "signature": "(event?: CustomEvent) => Promise<IRefund>",
323
+ "signature": "(event?: CustomEvent) => Promise<IRefund | IPayment>",
268
324
  "parameters": [{
269
325
  "name": "event",
270
326
  "type": "CustomEvent<any>",
@@ -275,6 +331,11 @@ export class RefundPayment {
275
331
  "location": "global",
276
332
  "id": "global::Promise"
277
333
  },
334
+ "IPayment": {
335
+ "location": "import",
336
+ "path": "../../api",
337
+ "id": "src/api/index.ts::IPayment"
338
+ },
278
339
  "IRefund": {
279
340
  "location": "import",
280
341
  "path": "../../api",
@@ -283,14 +344,9 @@ export class RefundPayment {
283
344
  "CustomEvent": {
284
345
  "location": "global",
285
346
  "id": "global::CustomEvent"
286
- },
287
- "IApiResponse": {
288
- "location": "import",
289
- "path": "../../api",
290
- "id": "src/api/index.ts::IApiResponse"
291
347
  }
292
348
  },
293
- "return": "Promise<IRefund>"
349
+ "return": "Promise<IPayment | IRefund>"
294
350
  },
295
351
  "docs": {
296
352
  "text": "",
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-12-04T22:26:18",
2
+ "timestamp": "2025-12-08T22:53:03",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.3",
@@ -17398,11 +17398,11 @@
17398
17398
  {
17399
17399
  "name": "refundPayment",
17400
17400
  "returns": {
17401
- "type": "Promise<IRefund>",
17401
+ "type": "Promise<IPayment | IRefund>",
17402
17402
  "docs": ""
17403
17403
  },
17404
17404
  "complexType": {
17405
- "signature": "(event?: CustomEvent) => Promise<IRefund>",
17405
+ "signature": "(event?: CustomEvent) => Promise<IRefund | IPayment>",
17406
17406
  "parameters": [
17407
17407
  {
17408
17408
  "name": "event",
@@ -17415,6 +17415,11 @@
17415
17415
  "location": "global",
17416
17416
  "id": "global::Promise"
17417
17417
  },
17418
+ "IPayment": {
17419
+ "location": "import",
17420
+ "path": "../../api",
17421
+ "id": "src/api/index.ts::IPayment"
17422
+ },
17418
17423
  "IRefund": {
17419
17424
  "location": "import",
17420
17425
  "path": "../../api",
@@ -17423,16 +17428,11 @@
17423
17428
  "CustomEvent": {
17424
17429
  "location": "global",
17425
17430
  "id": "global::CustomEvent"
17426
- },
17427
- "IApiResponse": {
17428
- "location": "import",
17429
- "path": "../../api",
17430
- "id": "src/api/index.ts::IApiResponse"
17431
17431
  }
17432
17432
  },
17433
- "return": "Promise<IRefund>"
17433
+ "return": "Promise<IPayment | IRefund>"
17434
17434
  },
17435
- "signature": "refundPayment(event?: CustomEvent) => Promise<IRefund>",
17435
+ "signature": "refundPayment(event?: CustomEvent) => Promise<IRefund | IPayment>",
17436
17436
  "parameters": [
17437
17437
  {
17438
17438
  "name": "event",
@@ -22023,6 +22023,11 @@
22023
22023
  "docstring": "",
22024
22024
  "path": "src/api/index.ts"
22025
22025
  },
22026
+ "src/api/index.ts::IPayment": {
22027
+ "declaration": "any",
22028
+ "docstring": "",
22029
+ "path": "src/api/index.ts"
22030
+ },
22026
22031
  "src/api/index.ts::IRefund": {
22027
22032
  "declaration": "any",
22028
22033
  "docstring": "",
@@ -1,4 +1,4 @@
1
- import { p as packageJson } from './package-CsRppqXL.js';
1
+ import { p as packageJson } from './package-BzT9OxlN.js';
2
2
  import { A as Api } from './Api-Dln8a6No.js';
3
3
  import './ComponentError-Cjcsf8ku.js';
4
4
  import './GooglePay-NNHE-OLJ.js';
@@ -3,7 +3,7 @@ import { c as createStore } from './index-B-fWxE5e.js';
3
3
  import { i as inputInvalidAndFocused, b as inputInvalid, a as inputFocused, c as input, l as label } from './parts-sA8HBfkI.js';
4
4
  import { g as getDefaultExportFromCjs } from './_commonjsHelpers-BFTU3MAI.js';
5
5
  import { F as FormControlErrorText } from './form-control-error-text-BZYykCDp.js';
6
- import { p as packageJson } from './package-CsRppqXL.js';
6
+ import { p as packageJson } from './package-BzT9OxlN.js';
7
7
 
8
8
  const iframeInputStylesStore = createStore({
9
9
  focused: {
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-DwYM91AU.js';
2
2
  import { S as StyledHost } from './styled-host-DhOcKWqZ.js';
3
3
  import './event-types-CZfYo5-1.js';
4
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
4
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
5
5
  import { w as waitForConfig, c as configState } from './config-state-C2NXATwF.js';
6
6
  import './dinero-HXpYMWUU.js';
7
7
  import { a as ComponentErrorCodes, C as ComponentErrorSeverity } from './ComponentError-Cjcsf8ku.js';
@@ -11,11 +11,11 @@ import './Business-B5rtFhtR.js';
11
11
  import './Dispute-BH0Xfn-F.js';
12
12
  import { P as PAYMENT_METHODS } from './index-DkoufM1t.js';
13
13
  import { S as Skeleton } from './skeleton-Dtt56Fl3.js';
14
+ import { b as generateTabId } from './utils-CDaVtz_6.js';
14
15
  import { B as Button } from './button-Bpf3VX8Q.js';
15
16
  import { v as radioListItem } from './parts-sA8HBfkI.js';
16
- import './package-CsRppqXL.js';
17
+ import './package-BzT9OxlN.js';
17
18
  import './Api-Dln8a6No.js';
18
- import './utils-CDaVtz_6.js';
19
19
  import './index-B-fWxE5e.js';
20
20
 
21
21
  const JustifiRadioListItem = class {
@@ -303,6 +303,7 @@ const BankAccountForm = class {
303
303
  async componentWillLoad() {
304
304
  await waitForConfig();
305
305
  this.iframeOrigin = configState.iframeOrigin;
306
+ this.tabId = generateTabId();
306
307
  checkPkgVersion();
307
308
  this.analytics = new JustifiAnalytics(this);
308
309
  }
@@ -332,10 +333,10 @@ const BankAccountForm = class {
332
333
  return this.accountNumberIframeElement.tokenize(clientId, paymentMethodMetadata, account);
333
334
  }
334
335
  render() {
335
- return (h(StyledHost, { key: '0daa12da1ca699a05ca499425c4a37e4d913b2dd' }, h(BankAccountFormSkeleton, { key: '9d4ee0af94759d71d52130781401d322fcb5e397', isReady: this.isReady }), h("hidden-input", { key: 'dc4ee0054cbc7acb214a1c410f8fd387677f92dc' }), h("div", { key: 'b489311f205e0ffdaa4680621b706322bd3fc4ca', class: "container-fluid p-0", style: {
336
+ return (h(StyledHost, { key: '1513483acd2de524f8634feb14f366a269601e06' }, h(BankAccountFormSkeleton, { key: '8b14e99af751f3dbf6e0a3d2d187b44e0934456d', isReady: this.isReady }), h("hidden-input", { key: 'edfc3e1b190f28eee4a3769ff33fb7b8220f73d3' }), h("div", { key: '9371fe5f4e189c882d16bec25068efcc6d56aff9', class: "container-fluid p-0", style: {
336
337
  opacity: this.isReady ? '1' : '0',
337
338
  height: this.isReady ? 'auto' : '0',
338
- } }, h("div", { key: '2d1b00b9705d1a94364f691d4ad705c339abbbce', class: "row mb-3" }, h("iframe-input", { key: '21a66eb7d87b77c1ff1a1171a4cb84a4759853dd', inputId: "accountNumber", ref: (el) => (this.accountNumberIframeElement = el), label: "Account Number", iframeOrigin: `${this.iframeOrigin}/v2/accountNumber` })), h("div", { key: '1ff36d49f7304e203cdefea46010100ed750ed68', class: "row" }, h("iframe-input", { key: '2211a638c875e504e7e25e0704788d7a437b5806', inputId: "routingNumber", ref: (el) => (this.routingNumberIframeElement = el), label: "Routing Number", iframeOrigin: `${this.iframeOrigin}/v2/routingNumber` })))));
339
+ } }, h("div", { key: '5cecb5ecc5a3cfdb1ff0fe659aa9e22c0c1c8a11', class: "row mb-3" }, h("iframe-input", { key: 'b970e3a6e563cf1a5cff651c219a954d32b1fec3', inputId: "accountNumber", ref: (el) => (this.accountNumberIframeElement = el), label: "Account Number", iframeOrigin: `${this.iframeOrigin}/v2/accountNumber?tabId=${this.tabId}` })), h("div", { key: 'eaf6b26dc3638f548fd7e5b45363319db3bdf5f2', class: "row" }, h("iframe-input", { key: 'c90064cec52a9100522f0ea62593b8e439ea7a9e', inputId: "routingNumber", ref: (el) => (this.routingNumberIframeElement = el), label: "Routing Number", iframeOrigin: `${this.iframeOrigin}/v2/routingNumber?tabId=${this.tabId}` })))));
339
340
  }
340
341
  };
341
342
 
@@ -399,6 +400,7 @@ const JustifiCardForm = class {
399
400
  async componentWillLoad() {
400
401
  await waitForConfig();
401
402
  this.iframeOrigin = configState.iframeOrigin;
403
+ this.tabId = generateTabId();
402
404
  checkPkgVersion();
403
405
  this.analytics = new JustifiAnalytics(this);
404
406
  }
@@ -432,10 +434,10 @@ const JustifiCardForm = class {
432
434
  return this.cardNumberIframeElement.tokenize(clientId, paymentMethodMetadata, account);
433
435
  }
434
436
  render() {
435
- return (h(StyledHost, { key: 'b0b07a928be767102b59ec93ab0df6296b8418af' }, h(CardFormSkeleton, { key: '03d37e42253a905ece1e6a9b1d654e84665470d6', isReady: this.isReady }), h("hidden-input", { key: '62f657a6c0a4d5b7a7bbf809abeb42eba0d22345' }), h("div", { key: '874cac5eac376c8c4e12d99f760cd3cd487a6521', class: "container-fluid p-0", style: {
437
+ return (h(StyledHost, { key: '83bf3ea8d44fd14cf98725b1e800e2481222423b' }, h(CardFormSkeleton, { key: 'e23ef5cf5d8b756dcdfda6341a240d86e400a10e', isReady: this.isReady }), h("hidden-input", { key: 'eddc0b1549ee00084df8bfbbd22658bc48cdf493' }), h("div", { key: '753a4c38f8624a9d528c582fd5e26929977e88c5', class: "container-fluid p-0", style: {
436
438
  opacity: this.isReady ? '1' : '0',
437
439
  height: this.isReady ? 'auto' : '0',
438
- } }, h("div", { key: 'dcada2d72eebe506fe4cab8ad6eb959c551e9e2d', class: "mb-3" }, h("iframe-input", { key: '7e784726f8dd0c8b35832646bc99e0d2131c08f9', inputId: "cardNumber", ref: (el) => (this.cardNumberIframeElement = el), label: "Card Number", iframeOrigin: `${this.iframeOrigin}/v2/cardNumber` })), h("div", { key: '2384099f3aa18b7d6bbc346f47ba9ff06e5b7e86', class: "row" }, h("div", { key: '5fb523cd3f398894e5c7ee3e8a58d34581492410', class: "col-4 align-content-end" }, h("iframe-input", { key: 'a3b4aa06a5c85162d24e25a5261a9a2cc64a6b82', inputId: "expirationMonth", ref: (el) => (this.expirationMonthIframeElement = el), label: "Expiration", iframeOrigin: `${this.iframeOrigin}/v2/expirationMonth` })), h("div", { key: '3ccd6a19fce1c393a8c58534113239c518d51a4f', class: "col-4 align-content-end" }, h("iframe-input", { key: '6d064b868c73b4431b476194602843b0f28729e0', inputId: "expirationYear", ref: (el) => (this.expirationYearIframeElement = el), label: "", iframeOrigin: `${this.iframeOrigin}/v2/expirationYear` })), h("div", { key: '26cd762bec43890e96ab5c6903943b0f4cfa9672', class: "col-4 align-content-end" }, h("iframe-input", { key: '826dfe08347461bc5a94296b181826b70a7d1f6f', inputId: "CVV", ref: (el) => (this.cvvIframeElement = el), label: "CVV", iframeOrigin: `${this.iframeOrigin}/v2/CVV` }))))));
440
+ } }, h("div", { key: 'db1c408da9865db12899f2e86d46a3181f592333', class: "mb-3" }, h("iframe-input", { key: 'b31b33f68f34fbde9abdab13cc4b0b09e2122bad', inputId: "cardNumber", ref: (el) => (this.cardNumberIframeElement = el), label: "Card Number", iframeOrigin: `${this.iframeOrigin}/v2/cardNumber?tabId=${this.tabId}` })), h("div", { key: '4e8e14e60bb566032530fd72e7f787226e0e7940', class: "row" }, h("div", { key: 'cb1c06bd2c2e04cffdc2a6572505a6dcf26e9b48', class: "col-4 align-content-end" }, h("iframe-input", { key: '915ff44d990585262a2e60d83ac569cd56e90762', inputId: "expirationMonth", ref: (el) => (this.expirationMonthIframeElement = el), label: "Expiration", iframeOrigin: `${this.iframeOrigin}/v2/expirationMonth?tabId=${this.tabId}` })), h("div", { key: 'ceca19853d0e78828c5a89a5e1f99acce6d05345', class: "col-4 align-content-end" }, h("iframe-input", { key: 'f0089860aab12b7bcfe31ac9fe6ed303182ff9fa', inputId: "expirationYear", ref: (el) => (this.expirationYearIframeElement = el), label: "", iframeOrigin: `${this.iframeOrigin}/v2/expirationYear?tabId=${this.tabId}` })), h("div", { key: 'e1bdd33a875bdf82068aceeea68f27c48414ed65', class: "col-4 align-content-end" }, h("iframe-input", { key: '7c483f78294418b7cee76e0c272ad375496bbc7d', inputId: "CVV", ref: (el) => (this.cvvIframeElement = el), label: "CVV", iframeOrigin: `${this.iframeOrigin}/v2/CVV?tabId=${this.tabId}` }))))));
439
441
  }
440
442
  };
441
443
 
@@ -10,7 +10,7 @@ import { P as PAYMENT_METHODS, a as PaymentMethod, b as PAYMENT_MODE } from './i
10
10
  import { H as Header1 } from './header-1-WwkF5F9y.js';
11
11
  import { H as Header2, b as insuranceValuesOn, h as hasInsuranceValueChanged, i as insuranceValues } from './insurance-state-C11WKZU6.js';
12
12
  import { H as Header3 } from './header-3-C5jS39cE.js';
13
- import { J as JustifiAnalytics, c as checkPkgVersion } from './check-pkg-version-CmkUoEAo.js';
13
+ import { J as JustifiAnalytics, c as checkPkgVersion } from './check-pkg-version-c_8fDHCB.js';
14
14
  import './config-state-C2NXATwF.js';
15
15
  import './dinero-HXpYMWUU.js';
16
16
  import { C as ComponentErrorSeverity, a as ComponentErrorCodes, b as ComponentErrorMessages } from './ComponentError-Cjcsf8ku.js';
@@ -21,7 +21,7 @@ import { g as getErrorCode, a as getErrorMessage } from './utils-BeQLScSm.js';
21
21
  import { C as CheckoutService } from './checkout.service-Bxt1qPaY.js';
22
22
  import { C as CardBrandLabels } from './payment-method-option-utils-lUHAQVFl.js';
23
23
  import './index-B-fWxE5e.js';
24
- import './package-CsRppqXL.js';
24
+ import './package-BzT9OxlN.js';
25
25
 
26
26
  // Centralized error codes for Apple Pay service
27
27
  var ApplePayServiceErrorCode;
@@ -912,7 +912,7 @@ class GooglePayService {
912
912
  /**
913
913
  * Create a basic payment data request
914
914
  */
915
- static createPaymentDataRequest(amount, label, countryCode = 'US', currencyCode = 'USD', merchantName) {
915
+ static createPaymentDataRequest(amount, label, countryCode = 'US', currencyCode = 'USD', merchantName, merchantId) {
916
916
  const request = {
917
917
  apiVersion: 2,
918
918
  apiVersionMinor: 0,
@@ -926,6 +926,7 @@ class GooglePayService {
926
926
  },
927
927
  merchantInfo: {
928
928
  merchantName,
929
+ merchantId,
929
930
  },
930
931
  };
931
932
  // No debug logs
@@ -1384,16 +1385,16 @@ const GooglePay = class {
1384
1385
  }
1385
1386
  }
1386
1387
  createPaymentDataRequest() {
1387
- return GooglePayService.createPaymentDataRequest(checkoutStore.paymentAmount, checkoutStore.paymentDescription, this.countryCode, checkoutStore.paymentCurrency, this.merchantName);
1388
+ return GooglePayService.createPaymentDataRequest(checkoutStore.paymentAmount, checkoutStore.paymentDescription, this.countryCode, checkoutStore.paymentCurrency, this.merchantName, this.merchantId);
1388
1389
  }
1389
1390
  render() {
1390
1391
  const showError = !this.isLoading && !!this.error;
1391
1392
  const showDeviceUnavailable = !this.isLoading && !this.error && !this.isAvailable;
1392
1393
  const showPaymentsUnavailable = !this.isLoading && !this.error && this.isAvailable && !this.canMakePayments;
1393
1394
  const showButton = !this.isLoading && !this.error && this.isAvailable && this.canMakePayments;
1394
- return (h(StyledHost, { key: '1f0b34c9821cc3442d470ffe63abce283f81fa89' }, checkoutStore.checkoutLoaded && (h("script", { key: '0d5e5f405b50629e6dc80a545a06a4dafc341e64', async: true, src: 'https://pay.google.com/gp/p/js/pay.js', onLoad: () => {
1395
+ return (h(StyledHost, { key: 'ee9d21e776e2a5c48d3fa2fb505290020707897d' }, checkoutStore.checkoutLoaded && (h("script", { key: '72bd5be9e6b80a42e219082cb248927aa6e1154b', async: true, src: 'https://pay.google.com/gp/p/js/pay.js', onLoad: () => {
1395
1396
  this.initializeGooglePay();
1396
- } })), h("div", { key: '83a35cff20c0b1c4de521a845a6fb964c81dfcae', class: 'google-pay-container' }, h(GooglePaySkeleton, { key: '245833ba9f530d3e9e35373cd8b22dff00451561', isLoading: this.isLoading }), showError && (h("div", { key: 'e47b0aeffae5b749fe1da9b8bd00e2aafe9d6616', class: 'google-pay-error', role: 'alert', "data-testid": 'gp-error' }, h("span", { key: 'd1dd1d928868b0917be696deecac2db51a8b2356', class: 'error-icon' }, "\u26A0\uFE0F"), h("span", { key: '132c4a4fe9f635752f2c831f9fac46bf44f9414c', class: 'error-message' }, this.error))), showDeviceUnavailable && (h("div", { key: 'c376807e7b7d4eecf739ce2b7665c18cd36b7d6c', class: 'google-pay-unavailable', "data-testid": 'gp-device-unavailable' }, h("span", { key: '515f96d8a7edae2654ca900d4c6bdc31c0569dba', class: 'unavailable-message' }, "Google Pay is not available on this device"))), showPaymentsUnavailable && (h("div", { key: '917571ced603e504034d155f1066b8a47ad7db5b', class: 'google-pay-unavailable', "data-testid": 'gp-payments-unavailable' }, h("span", { key: 'd5a25481c52b9c781e7602014d41502a37ef41fb', class: 'unavailable-message' }, "Google Pay is not available for payments"))), showButton && (h(GooglePayButton, { key: 'ac9f2d4cef0f9f5bab2042e327182edba310d6c8', "data-testid": 'gp-button', buttonType: this.buttonType, buttonStyle: this.buttonStyle, buttonSizeMode: this.buttonSizeMode, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleGooglePayClick }))), h("style", { key: 'ead06da7b7b599bd68829a95d2725339ec40f44d' }, `
1397
+ } })), h("div", { key: 'f0c2c019b80589e69c159e78b18e37fc5b1f5b21', class: 'google-pay-container' }, h(GooglePaySkeleton, { key: 'd2b1f727aec121ce5e71afcd4306df92a4b5dd3b', isLoading: this.isLoading }), showError && (h("div", { key: '257df18492bff1609b864b69e2fffbacfc751ead', class: 'google-pay-error', role: 'alert', "data-testid": 'gp-error' }, h("span", { key: 'f0ece1f1ceeb2fd957ab577f848741a377c7375d', class: 'error-icon' }, "\u26A0\uFE0F"), h("span", { key: '9139e3824de300b51b2f577fbfa77ab200b0afa5', class: 'error-message' }, this.error))), showDeviceUnavailable && (h("div", { key: 'f1bf0002a82aec202b168130729c16caeb254119', class: 'google-pay-unavailable', "data-testid": 'gp-device-unavailable' }, h("span", { key: 'de42cef5e7fd8df4f84c6b2d9429672b97e9e805', class: 'unavailable-message' }, "Google Pay is not available on this device"))), showPaymentsUnavailable && (h("div", { key: 'a4738f6c36240efee000560acc775e431b517588', class: 'google-pay-unavailable', "data-testid": 'gp-payments-unavailable' }, h("span", { key: '6987a5208a702c15081660b09bfc10360eeef922', class: 'unavailable-message' }, "Google Pay is not available for payments"))), showButton && (h(GooglePayButton, { key: 'de09f6693db4dc60ba6529e683dc213bec8492a5', "data-testid": 'gp-button', buttonType: this.buttonType, buttonStyle: this.buttonStyle, buttonSizeMode: this.buttonSizeMode, disabled: this.disabled, isProcessing: this.isProcessing, isAvailable: this.isAvailable, clickHandler: this.handleGooglePayClick }))), h("style", { key: 'ed3249a9b1f55720f6f4f29b3923ae2c6eda3431' }, `
1397
1398
  .google-pay-container {
1398
1399
  width: 100%;
1399
1400
  }
@@ -1902,7 +1903,8 @@ const ModularCheckout = class {
1902
1903
  this.preCompleteHook(state, () => resolve(), () => reject());
1903
1904
  });
1904
1905
  }
1905
- catch (_f) {
1906
+ catch (error) {
1907
+ console.log('Checkout cancelled by preCompleteHook', error);
1906
1908
  return;
1907
1909
  }
1908
1910
  }
@@ -1924,7 +1926,7 @@ const ModularCheckout = class {
1924
1926
  });
1925
1927
  }
1926
1928
  render() {
1927
- return h(Host, { key: 'e771926ee79c47b09145bd44b47cbba3c21be3eb' });
1929
+ return h(Host, { key: '9ec3d399f4283773584cf02e7bdcece0bf50b1e0' });
1928
1930
  }
1929
1931
  get hostEl() { return getElement(this); }
1930
1932
  };
@@ -3,7 +3,7 @@ import { E as ErrorState } from './utils-CgFsPVsv.js';
3
3
  import { B as BusinessService } from './business.service-BrUSam2T.js';
4
4
  import { m as makeGetBusiness } from './get-business-Xt7B5dSo.js';
5
5
  import { C as ComponentErrorSeverity, a as ComponentErrorCodes } from './ComponentError-Cjcsf8ku.js';
6
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
6
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
7
7
  import './parts-sA8HBfkI.js';
8
8
  import './Api-Dln8a6No.js';
9
9
  import './config-state-C2NXATwF.js';
@@ -16,7 +16,7 @@ import './index-DkoufM1t.js';
16
16
  import './Pagination-CLHwhyvu.js';
17
17
  import './Business-B5rtFhtR.js';
18
18
  import './utils-BeQLScSm.js';
19
- import './package-CsRppqXL.js';
19
+ import './package-BzT9OxlN.js';
20
20
 
21
21
  const BusinessDetails = class {
22
22
  constructor(hostRef) {
@@ -9,7 +9,7 @@ import './GooglePay-NNHE-OLJ.js';
9
9
  import './Pagination-CLHwhyvu.js';
10
10
  import { C as CountryCode, B as Business, b as BusinessFormServerErrors } from './Business-B5rtFhtR.js';
11
11
  import './Dispute-BH0Xfn-F.js';
12
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
12
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
13
13
  import { B as Button } from './button-Bpf3VX8Q.js';
14
14
  import { S as StyledHost } from './styled-host-DhOcKWqZ.js';
15
15
  import { H as Header1 } from './header-1-WwkF5F9y.js';
@@ -25,7 +25,7 @@ import './business-form-options-D6s5H4RI.js';
25
25
  import './index-B-fWxE5e.js';
26
26
  import './utils-CDaVtz_6.js';
27
27
  import './index-DkoufM1t.js';
28
- import './package-CsRppqXL.js';
28
+ import './package-BzT9OxlN.js';
29
29
  import './Api-Dln8a6No.js';
30
30
  import './parts-sA8HBfkI.js';
31
31
  import './utils-BeQLScSm.js';
@@ -1,11 +1,11 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwYM91AU.js';
2
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
2
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
3
3
  import { c as checkoutStore } from './GooglePay-NNHE-OLJ.js';
4
4
  import { d as checkoutSummary } from './parts-sA8HBfkI.js';
5
5
  import { S as StyledHost } from './styled-host-DhOcKWqZ.js';
6
6
  import './event-types-CZfYo5-1.js';
7
7
  import { P as PAYMENT_METHODS } from './index-DkoufM1t.js';
8
- import './package-CsRppqXL.js';
8
+ import './package-BzT9OxlN.js';
9
9
  import './Api-Dln8a6No.js';
10
10
  import './config-state-C2NXATwF.js';
11
11
  import './index-B-fWxE5e.js';
@@ -7,7 +7,7 @@ import './Pagination-CLHwhyvu.js';
7
7
  import './Business-B5rtFhtR.js';
8
8
  import './Dispute-BH0Xfn-F.js';
9
9
  import { g as getErrorCode, a as getErrorMessage } from './utils-BeQLScSm.js';
10
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
10
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
11
11
  import { C as CheckoutService } from './checkout.service-Bxt1qPaY.js';
12
12
  import { m as makeGetSubAccounts, S as SubAccountService } from './get-subaccounts-CzGHjlUF.js';
13
13
  import { S as StyledHost } from './styled-host-DhOcKWqZ.js';
@@ -16,7 +16,7 @@ import { d as defaultColumnsKeys } from './checkouts-table-CB4GdlcZ.js';
16
16
  import './index-B-fWxE5e.js';
17
17
  import './utils-CDaVtz_6.js';
18
18
  import './index-DkoufM1t.js';
19
- import './package-CsRppqXL.js';
19
+ import './package-BzT9OxlN.js';
20
20
  import './Api-Dln8a6No.js';
21
21
  import './badge-DtrH25ss.js';
22
22
  import './parts-sA8HBfkI.js';
@@ -1,10 +1,10 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-DwYM91AU.js';
2
2
  import { C as ComponentErrorSeverity, a as ComponentErrorCodes } from './ComponentError-Cjcsf8ku.js';
3
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
3
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
4
4
  import { D as Dispute } from './Dispute-BH0Xfn-F.js';
5
5
  import { g as getErrorCode, a as getErrorMessage } from './utils-BeQLScSm.js';
6
6
  import { D as DisputeService } from './dispute.service-DYRYxxaT.js';
7
- import './package-CsRppqXL.js';
7
+ import './package-BzT9OxlN.js';
8
8
  import './Api-Dln8a6No.js';
9
9
  import './config-state-C2NXATwF.js';
10
10
  import './index-B-fWxE5e.js';
@@ -9,7 +9,7 @@ import { C as ComponentErrorSeverity, a as ComponentErrorCodes } from './Compone
9
9
  import { g as getErrorCode, a as getErrorMessage } from './utils-BeQLScSm.js';
10
10
  import { D as DisputeService } from './dispute.service-DYRYxxaT.js';
11
11
  import { D as DisputeManagementClickActions } from './event-types-Bg2SZArf.js';
12
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
12
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
13
13
  import './dinero-HXpYMWUU.js';
14
14
  import './Api-Dln8a6No.js';
15
15
  import './config-state-C2NXATwF.js';
@@ -19,7 +19,7 @@ import './Dispute-BH0Xfn-F.js';
19
19
  import './index-DkoufM1t.js';
20
20
  import './Pagination-CLHwhyvu.js';
21
21
  import './Business-B5rtFhtR.js';
22
- import './package-CsRppqXL.js';
22
+ import './package-BzT9OxlN.js';
23
23
 
24
24
  const makeUpdateDisputeResponse = ({ authToken, disputeId, service }) => async ({ payload, onSuccess, onError, final = () => { } }) => {
25
25
  var _a;
@@ -7,14 +7,14 @@ import './Business-B5rtFhtR.js';
7
7
  import './Dispute-BH0Xfn-F.js';
8
8
  import { g as getErrorCode, a as getErrorMessage } from './utils-BeQLScSm.js';
9
9
  import { E as ErrorState } from './utils-CgFsPVsv.js';
10
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
10
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
11
11
  import './config-state-C2NXATwF.js';
12
12
  import './index-B-fWxE5e.js';
13
13
  import './utils-CDaVtz_6.js';
14
14
  import './dinero-HXpYMWUU.js';
15
15
  import './index-DkoufM1t.js';
16
16
  import './parts-sA8HBfkI.js';
17
- import './package-CsRppqXL.js';
17
+ import './package-BzT9OxlN.js';
18
18
 
19
19
  const api = Api();
20
20
  class ReportsService {
@@ -2,7 +2,7 @@ import { h, r as registerInstance, c as createEvent } from './index-DwYM91AU.js'
2
2
  import { ao as heading5, am as heading4, ai as buttonPrimary, G as text } from './parts-sA8HBfkI.js';
3
3
  import { S as StyledHost } from './styled-host-DhOcKWqZ.js';
4
4
  import './event-types-CZfYo5-1.js';
5
- import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-CmkUoEAo.js';
5
+ import { c as checkPkgVersion, J as JustifiAnalytics } from './check-pkg-version-c_8fDHCB.js';
6
6
  import { C as ComponentErrorSeverity, a as ComponentErrorCodes } from './ComponentError-Cjcsf8ku.js';
7
7
  import { B as BusinessService } from './business.service-BrUSam2T.js';
8
8
  import { B as Business } from './Business-B5rtFhtR.js';
@@ -16,7 +16,7 @@ import './Dispute-BH0Xfn-F.js';
16
16
  import { g as getErrorCode, a as getErrorMessage } from './utils-BeQLScSm.js';
17
17
  import { T as TerminalService } from './terminal.service-YKfi6Mr9.js';
18
18
  import { k as formatPhoneNumber } from './utils-CDaVtz_6.js';
19
- import './package-CsRppqXL.js';
19
+ import './package-BzT9OxlN.js';
20
20
  import './Api-Dln8a6No.js';
21
21
  import './index-B-fWxE5e.js';
22
22
  import './index-DkoufM1t.js';