@paydock/client-sdk 1.142.0 → 1.143.0-beta

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 (36) hide show
  1. package/README.md +85 -0
  2. package/bundles/index.cjs +324 -193
  3. package/bundles/index.cjs.d.ts +535 -482
  4. package/bundles/index.mjs +159 -27
  5. package/bundles/index.mjs.d.ts +535 -482
  6. package/bundles/types/components/apple-pay-version.d.ts +29 -0
  7. package/bundles/types/components/apple-pay-version.d.ts.map +1 -0
  8. package/bundles/types/index.d.ts +2 -2
  9. package/bundles/types/index.d.ts.map +1 -1
  10. package/bundles/types/open-wallets/base/open-wallet-buttons.d.ts.map +1 -1
  11. package/bundles/types/open-wallets/index.d.ts +1 -1
  12. package/bundles/types/open-wallets/index.d.ts.map +1 -1
  13. package/bundles/types/open-wallets/services/apple-pay/apple-pay.open-wallet.service.d.ts.map +1 -1
  14. package/bundles/types/payment-source-widget/index.d.ts +1 -1
  15. package/bundles/types/payment-source-widget/index.d.ts.map +1 -1
  16. package/bundles/types/vault-display-widget/vault-display-widget.d.ts.map +1 -1
  17. package/bundles/types/wallet-buttons/wallet-services/apple.wallet-service.d.ts.map +1 -1
  18. package/bundles/types/wallet-buttons-express/base.wallet-button-express.d.ts +16 -0
  19. package/bundles/types/wallet-buttons-express/base.wallet-button-express.d.ts.map +1 -1
  20. package/bundles/types/wallet-buttons-express/index.d.ts +36 -0
  21. package/bundles/types/wallet-buttons-express/index.d.ts.map +1 -1
  22. package/bundles/types/wallet-buttons-express/services/apple-pay/apple-pay.wallet-button-express.d.ts.map +1 -1
  23. package/bundles/types/wallet-buttons-express/services/paypal/paypal.wallet-button-express.d.ts +1 -1
  24. package/bundles/types/wallet-buttons-express/services/paypal/paypal.wallet-button-express.d.ts.map +1 -1
  25. package/bundles/types/widget/html-multi-widget.d.ts +4 -1
  26. package/bundles/types/widget/html-multi-widget.d.ts.map +1 -1
  27. package/bundles/types/widget/index.d.ts +2 -1
  28. package/bundles/types/widget/index.d.ts.map +1 -1
  29. package/bundles/types/widget/widget-event-map.d.ts +37 -0
  30. package/bundles/types/widget/widget-event-map.d.ts.map +1 -0
  31. package/bundles/widget.umd.js +324 -193
  32. package/bundles/widget.umd.js.d.ts +535 -482
  33. package/bundles/widget.umd.js.min.d.ts +535 -482
  34. package/bundles/widget.umd.min.js +1 -1
  35. package/docs/wallet-buttons-express.md +85 -0
  36. package/package.json +6 -3
package/bundles/index.cjs CHANGED
@@ -1194,7 +1194,7 @@ SDK.headerKeys = Object.freeze({
1194
1194
  version: 'x-sdk-version',
1195
1195
  type: 'x-sdk-type'
1196
1196
  });
1197
- SDK._version = 'v1.142.0';
1197
+ SDK._version = 'v1.143.0-beta';
1198
1198
 
1199
1199
  function isFunction(value) {
1200
1200
  return typeof value === 'function';
@@ -5035,7 +5035,7 @@ var IFrame = /*#__PURE__*/function () {
5035
5035
  }]);
5036
5036
  }();
5037
5037
 
5038
- var EVENT$5 = {
5038
+ var EVENT$4 = {
5039
5039
  AFTER_LOAD: 'afterLoad',
5040
5040
  SUBMIT: 'submit',
5041
5041
  FINISH: 'finish',
@@ -5092,9 +5092,9 @@ var IFrameEvent = /*#__PURE__*/function () {
5092
5092
  }, {
5093
5093
  key: "on",
5094
5094
  value: function on(eventName, widgetId, cb) {
5095
- for (var event in EVENT$5) {
5096
- if (!EVENT$5.hasOwnProperty(event)) continue;
5097
- if (eventName === EVENT$5[event]) {
5095
+ for (var event in EVENT$4) {
5096
+ if (!EVENT$4.hasOwnProperty(event)) continue;
5097
+ if (eventName === EVENT$4[event]) {
5098
5098
  this.listeners.push({
5099
5099
  event: eventName,
5100
5100
  listener: cb,
@@ -5219,7 +5219,7 @@ var GPaymentsService = /*#__PURE__*/function () {
5219
5219
  key: "setupIFrameEvents",
5220
5220
  value: function setupIFrameEvents(widgetId) {
5221
5221
  var _this = this;
5222
- this.iFrameEvent.on(EVENT$5.CHARGE_AUTH, widgetId, function (data) {
5222
+ this.iFrameEvent.on(EVENT$4.CHARGE_AUTH, widgetId, function (data) {
5223
5223
  if (data.status === IFRAME_STATUS.SKIPPED || data.status === IFRAME_STATUS.FINISHED) {
5224
5224
  if (data.info) _this.eventEmitter.emit(GPAYMENTS_EVENT.INFO, {
5225
5225
  info: data.info
@@ -5229,7 +5229,7 @@ var GPaymentsService = /*#__PURE__*/function () {
5229
5229
  status: data.status
5230
5230
  }, data.charge_3ds_id));
5231
5231
  });
5232
- this.iFrameEvent.on(EVENT$5.CHARGE_AUTH_SUCCESS, widgetId, function (data) {
5232
+ this.iFrameEvent.on(EVENT$4.CHARGE_AUTH_SUCCESS, widgetId, function (data) {
5233
5233
  _this.processResult(data.charge_3ds_id);
5234
5234
  });
5235
5235
  }
@@ -6781,7 +6781,7 @@ var ZipmoneyContextualRunner = /*#__PURE__*/function (_ContextualRunner) {
6781
6781
  key: "setCompleteCheckoutListener",
6782
6782
  value: function setCompleteCheckoutListener() {
6783
6783
  var _this5 = this;
6784
- this.event.on(EVENT$5.FINISH, this.widgetId, function (event) {
6784
+ this.event.on(EVENT$4.FINISH, this.widgetId, function (event) {
6785
6785
  _this5.event.clear();
6786
6786
  clearInterval(_this5.checkInterval);
6787
6787
  if (_this5.checkoutTab && !_this5.checkoutTab.closed) {
@@ -6868,15 +6868,15 @@ var StorageDispatcher = /*#__PURE__*/function () {
6868
6868
  value: function setupIframeEventListeners() {
6869
6869
  var _this = this;
6870
6870
  if (!this.widgetId) return;
6871
- this.iframeEvent.on(EVENT$5.AFTER_LOAD, this.widgetId, function (_event) {
6871
+ this.iframeEvent.on(EVENT$4.AFTER_LOAD, this.widgetId, function (_event) {
6872
6872
  var _a;
6873
6873
  (_a = _this.onLoadCallback) === null || _a === void 0 ? void 0 : _a.call(_this);
6874
6874
  });
6875
- this.iframeEvent.on(EVENT$5.DISPATCH_SUCCESS, this.widgetId, function (_event) {
6875
+ this.iframeEvent.on(EVENT$4.DISPATCH_SUCCESS, this.widgetId, function (_event) {
6876
6876
  var _a, _b;
6877
6877
  (_b = (_a = _this.pushCallbacks) === null || _a === void 0 ? void 0 : _a.onSuccess) === null || _b === void 0 ? void 0 : _b.call(_a);
6878
6878
  });
6879
- this.iframeEvent.on(EVENT$5.DISPATCH_ERROR, this.widgetId, function (_event) {
6879
+ this.iframeEvent.on(EVENT$4.DISPATCH_ERROR, this.widgetId, function (_event) {
6880
6880
  var _a, _b;
6881
6881
  (_b = (_a = _this.pushCallbacks) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a);
6882
6882
  });
@@ -8090,7 +8090,7 @@ var AfterPayWalletService = /*#__PURE__*/function (_WalletService) {
8090
8090
  }]);
8091
8091
  }(WalletService);
8092
8092
 
8093
- /*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */
8093
+ /*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE */
8094
8094
 
8095
8095
  var purify_cjs;
8096
8096
  var hasRequiredPurify_cjs;
@@ -8298,7 +8298,7 @@ function requirePurify_cjs () {
8298
8298
 
8299
8299
  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
8300
8300
  const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
8301
- const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
8301
+ const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
8302
8302
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
8303
8303
 
8304
8304
  // eslint-disable-next-line unicorn/better-regex
@@ -8395,7 +8395,7 @@ function requirePurify_cjs () {
8395
8395
  function createDOMPurify() {
8396
8396
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
8397
8397
  const DOMPurify = root => createDOMPurify(root);
8398
- DOMPurify.version = '3.3.3';
8398
+ DOMPurify.version = '3.4.0';
8399
8399
  DOMPurify.removed = [];
8400
8400
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
8401
8401
  // Not running in a browser, provide a factory function
@@ -8671,7 +8671,7 @@ function requirePurify_cjs () {
8671
8671
  NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
8672
8672
  MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
8673
8673
  HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
8674
- CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
8674
+ CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || create(null);
8675
8675
  if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
8676
8676
  CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
8677
8677
  }
@@ -8711,13 +8711,10 @@ function requirePurify_cjs () {
8711
8711
  addToSet(ALLOWED_ATTR, xml);
8712
8712
  }
8713
8713
  }
8714
- /* Prevent function-based ADD_ATTR / ADD_TAGS from leaking across calls */
8715
- if (!objectHasOwnProperty(cfg, 'ADD_TAGS')) {
8716
- EXTRA_ELEMENT_HANDLING.tagCheck = null;
8717
- }
8718
- if (!objectHasOwnProperty(cfg, 'ADD_ATTR')) {
8719
- EXTRA_ELEMENT_HANDLING.attributeCheck = null;
8720
- }
8714
+ /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent
8715
+ * leaking across calls when switching from function to array config */
8716
+ EXTRA_ELEMENT_HANDLING.tagCheck = null;
8717
+ EXTRA_ELEMENT_HANDLING.attributeCheck = null;
8721
8718
  /* Merge configuration parameters */
8722
8719
  if (cfg.ADD_TAGS) {
8723
8720
  if (typeof cfg.ADD_TAGS === 'function') {
@@ -9040,6 +9037,11 @@ function requirePurify_cjs () {
9040
9037
  _forceRemove(currentNode);
9041
9038
  return true;
9042
9039
  }
9040
+ /* Remove risky CSS construction leading to mXSS */
9041
+ if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {
9042
+ _forceRemove(currentNode);
9043
+ return true;
9044
+ }
9043
9045
  /* Remove any occurrence of processing instructions */
9044
9046
  if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
9045
9047
  _forceRemove(currentNode);
@@ -9051,7 +9053,7 @@ function requirePurify_cjs () {
9051
9053
  return true;
9052
9054
  }
9053
9055
  /* Remove element if anything forbids its presence */
9054
- if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
9056
+ if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
9055
9057
  /* Check if we have a custom element to handle */
9056
9058
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
9057
9059
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -9290,7 +9292,7 @@ function requirePurify_cjs () {
9290
9292
  *
9291
9293
  * @param fragment to iterate over recursively
9292
9294
  */
9293
- const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
9295
+ const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {
9294
9296
  let shadowNode = null;
9295
9297
  const shadowIterator = _createNodeIterator(fragment);
9296
9298
  /* Execute a hook if present */
@@ -9304,7 +9306,7 @@ function requirePurify_cjs () {
9304
9306
  _sanitizeAttributes(shadowNode);
9305
9307
  /* Deep shadow DOM detected */
9306
9308
  if (shadowNode.content instanceof DocumentFragment) {
9307
- _sanitizeShadowDOM(shadowNode.content);
9309
+ _sanitizeShadowDOM2(shadowNode.content);
9308
9310
  }
9309
9311
  }
9310
9312
  /* Execute a hook if present */
@@ -9399,7 +9401,7 @@ function requirePurify_cjs () {
9399
9401
  _sanitizeAttributes(currentNode);
9400
9402
  /* Shadow DOM detected, sanitize it */
9401
9403
  if (currentNode.content instanceof DocumentFragment) {
9402
- _sanitizeShadowDOM(currentNode.content);
9404
+ _sanitizeShadowDOM2(currentNode.content);
9403
9405
  }
9404
9406
  }
9405
9407
  /* If we sanitized `dirty` in-place, return it. */
@@ -9408,6 +9410,14 @@ function requirePurify_cjs () {
9408
9410
  }
9409
9411
  /* Return sanitized string or DOM */
9410
9412
  if (RETURN_DOM) {
9413
+ if (SAFE_FOR_TEMPLATES) {
9414
+ body.normalize();
9415
+ let html = body.innerHTML;
9416
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
9417
+ html = stringReplace(html, expr, ' ');
9418
+ });
9419
+ body.innerHTML = html;
9420
+ }
9411
9421
  if (RETURN_DOM_FRAGMENT) {
9412
9422
  returnNode = createDocumentFragment.call(body.ownerDocument);
9413
9423
  while (body.firstChild) {
@@ -10240,6 +10250,44 @@ var FlypayWalletService = /*#__PURE__*/function (_WalletService) {
10240
10250
  }]);
10241
10251
  }(WalletService);
10242
10252
 
10253
+ /**
10254
+ * Maximum Apple Pay JS API version the SDK targets.
10255
+ * Bump this when adopting features from a newer version.
10256
+ */
10257
+ var APPLE_PAY_MAX_VERSION = 14;
10258
+ /**
10259
+ * Minimum Apple Pay JS API version the SDK can operate with.
10260
+ *
10261
+ * Version 3 (iOS 11 / macOS 10.13) is required because the SDK uses:
10262
+ * - `ApplePayError` constructor
10263
+ * - Object-form `completeShippingContactSelection(update)`
10264
+ * - Object-form `completeShippingMethodSelection(update)`
10265
+ * - `supportedCountries` in payment requests
10266
+ *
10267
+ * All of these were introduced in version 3.
10268
+ */
10269
+ var APPLE_PAY_MIN_VERSION = 3;
10270
+ /**
10271
+ * Detects the highest Apple Pay JS API version the current device supports,
10272
+ * starting from {@link APPLE_PAY_MAX_VERSION} down to {@link APPLE_PAY_MIN_VERSION}.
10273
+ *
10274
+ * Returns `0` if Apple Pay is not available or the device does not support
10275
+ * the minimum required version.
10276
+ *
10277
+ * @see https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/supportsversion
10278
+ */
10279
+ function getSupportedApplePayVersion() {
10280
+ if (!window.ApplePaySession) {
10281
+ return 0;
10282
+ }
10283
+ for (var v = APPLE_PAY_MAX_VERSION; v >= APPLE_PAY_MIN_VERSION; v--) {
10284
+ if (ApplePaySession.supportsVersion(v)) {
10285
+ return v;
10286
+ }
10287
+ }
10288
+ return 0;
10289
+ }
10290
+
10243
10291
  var DEFAULT_APPLE_PAY_CAPABILITIES$2 = ['paymentCredentialsAvailable'];
10244
10292
  var AppleWalletService = /*#__PURE__*/function (_WalletService) {
10245
10293
  function AppleWalletService(publicKey, meta, gatewayName, eventEmitter) {
@@ -10569,7 +10617,14 @@ var AppleWalletService = /*#__PURE__*/function (_WalletService) {
10569
10617
  key: "onApplePayButtonClicked",
10570
10618
  value: function onApplePayButtonClicked() {
10571
10619
  var _this5 = this;
10572
- this.paymentSession = new ApplePaySession(14, this.createRequest());
10620
+ var applePayApiVersion = getSupportedApplePayVersion();
10621
+ if (applePayApiVersion === 0) {
10622
+ this.eventEmitter.emit(WALLET_EVENT.UNAVAILABLE, {
10623
+ wallet: WALLET_TYPE.APPLE
10624
+ });
10625
+ return;
10626
+ }
10627
+ this.paymentSession = new ApplePaySession(applePayApiVersion, this.createRequest());
10573
10628
  this.paymentSession.onvalidatemerchant = this.onValidateMerchant;
10574
10629
  this.paymentSession.onpaymentauthorized = this.onPaymentAuthorized;
10575
10630
  this.paymentSession.oncancel = this.onCancelPayment;
@@ -11718,7 +11773,7 @@ var StripeWalletService = /*#__PURE__*/function (_WalletService) {
11718
11773
  * @param {string} ON_CLICK=onClick
11719
11774
  * @param {string} LOADED=onWalletLoaded
11720
11775
  */
11721
- var EVENT$4 = {
11776
+ var EVENT$3 = {
11722
11777
  UNAVAILABLE: EventEnum.UNAVAILABLE,
11723
11778
  UPDATE: EventEnum.UPDATE,
11724
11779
  PAYMENT_SUCCESSFUL: EventEnum.PAYMENT_SUCCESSFUL,
@@ -11844,7 +11899,7 @@ var WalletButtons = /*#__PURE__*/function () {
11844
11899
  this.setupServiceCallbacks();
11845
11900
  this.service.load(this.container);
11846
11901
  } catch (err) {
11847
- this.eventEmitter.emit(EVENT$4.UNAVAILABLE, null);
11902
+ this.eventEmitter.emit(EVENT$3.UNAVAILABLE, null);
11848
11903
  throw err;
11849
11904
  }
11850
11905
  }
@@ -11981,7 +12036,7 @@ var WalletButtons = /*#__PURE__*/function () {
11981
12036
  key: "on",
11982
12037
  value: function on(eventName, cb) {
11983
12038
  var _this = this;
11984
- if (eventName === EVENT$4.UPDATE) {
12039
+ if (eventName === EVENT$3.UPDATE) {
11985
12040
  this.hasUpdateHandler = true;
11986
12041
  }
11987
12042
  if (typeof cb === 'function') {
@@ -12016,10 +12071,10 @@ var WalletButtons = /*#__PURE__*/function () {
12016
12071
  value: function onUnavailable(handler) {
12017
12072
  var _this2 = this;
12018
12073
  if (typeof handler === 'function') {
12019
- return this.eventEmitter.subscribe(EVENT$4.UNAVAILABLE, handler);
12074
+ return this.eventEmitter.subscribe(EVENT$3.UNAVAILABLE, handler);
12020
12075
  }
12021
12076
  return new Promise(function (resolve) {
12022
- return _this2.eventEmitter.subscribe(EVENT$4.UNAVAILABLE, function () {
12077
+ return _this2.eventEmitter.subscribe(EVENT$3.UNAVAILABLE, function () {
12023
12078
  return resolve();
12024
12079
  });
12025
12080
  });
@@ -12045,10 +12100,10 @@ var WalletButtons = /*#__PURE__*/function () {
12045
12100
  var _this3 = this;
12046
12101
  this.hasUpdateHandler = true;
12047
12102
  if (typeof handler === 'function') {
12048
- return this.eventEmitter.subscribe(EVENT$4.UPDATE, handler);
12103
+ return this.eventEmitter.subscribe(EVENT$3.UPDATE, handler);
12049
12104
  }
12050
12105
  return new Promise(function (resolve) {
12051
- return _this3.eventEmitter.subscribe(EVENT$4.UPDATE, function (data) {
12106
+ return _this3.eventEmitter.subscribe(EVENT$3.UPDATE, function (data) {
12052
12107
  return resolve(data);
12053
12108
  });
12054
12109
  });
@@ -12072,10 +12127,10 @@ var WalletButtons = /*#__PURE__*/function () {
12072
12127
  value: function onPaymentSuccessful(handler) {
12073
12128
  var _this4 = this;
12074
12129
  if (typeof handler === 'function') {
12075
- return this.eventEmitter.subscribe(EVENT$4.PAYMENT_SUCCESSFUL, handler);
12130
+ return this.eventEmitter.subscribe(EVENT$3.PAYMENT_SUCCESSFUL, handler);
12076
12131
  }
12077
12132
  return new Promise(function (resolve) {
12078
- return _this4.eventEmitter.subscribe(EVENT$4.PAYMENT_SUCCESSFUL, function (data) {
12133
+ return _this4.eventEmitter.subscribe(EVENT$3.PAYMENT_SUCCESSFUL, function (data) {
12079
12134
  return resolve(data);
12080
12135
  });
12081
12136
  });
@@ -12099,10 +12154,10 @@ var WalletButtons = /*#__PURE__*/function () {
12099
12154
  value: function onPaymentInReview(handler) {
12100
12155
  var _this5 = this;
12101
12156
  if (typeof handler === 'function') {
12102
- return this.eventEmitter.subscribe(EVENT$4.PAYMENT_IN_REVIEW, handler);
12157
+ return this.eventEmitter.subscribe(EVENT$3.PAYMENT_IN_REVIEW, handler);
12103
12158
  }
12104
12159
  return new Promise(function (resolve) {
12105
- return _this5.eventEmitter.subscribe(EVENT$4.PAYMENT_IN_REVIEW, function (data) {
12160
+ return _this5.eventEmitter.subscribe(EVENT$3.PAYMENT_IN_REVIEW, function (data) {
12106
12161
  return resolve(data);
12107
12162
  });
12108
12163
  });
@@ -12126,10 +12181,10 @@ var WalletButtons = /*#__PURE__*/function () {
12126
12181
  value: function onPaymentError(handler) {
12127
12182
  var _this6 = this;
12128
12183
  if (typeof handler === 'function') {
12129
- return this.eventEmitter.subscribe(EVENT$4.PAYMENT_ERROR, handler);
12184
+ return this.eventEmitter.subscribe(EVENT$3.PAYMENT_ERROR, handler);
12130
12185
  }
12131
12186
  return new Promise(function (resolve) {
12132
- return _this6.eventEmitter.subscribe(EVENT$4.PAYMENT_ERROR, function (err) {
12187
+ return _this6.eventEmitter.subscribe(EVENT$3.PAYMENT_ERROR, function (err) {
12133
12188
  return resolve(err);
12134
12189
  });
12135
12190
  });
@@ -12155,10 +12210,10 @@ var WalletButtons = /*#__PURE__*/function () {
12155
12210
  value: function onAuthTokensChanged(handler) {
12156
12211
  var _this7 = this;
12157
12212
  if (typeof handler === 'function') {
12158
- return this.eventEmitter.subscribe(EVENT$4.AUTH_TOKENS_CHANGED, handler);
12213
+ return this.eventEmitter.subscribe(EVENT$3.AUTH_TOKENS_CHANGED, handler);
12159
12214
  }
12160
12215
  return new Promise(function (resolve) {
12161
- return _this7.eventEmitter.subscribe(EVENT$4.AUTH_TOKENS_CHANGED, function (err) {
12216
+ return _this7.eventEmitter.subscribe(EVENT$3.AUTH_TOKENS_CHANGED, function (err) {
12162
12217
  return resolve(err);
12163
12218
  });
12164
12219
  });
@@ -12181,7 +12236,7 @@ var WalletButtons = /*#__PURE__*/function () {
12181
12236
  key: "onClick",
12182
12237
  value: function onClick(handler) {
12183
12238
  if (typeof handler === 'function') {
12184
- return this.eventEmitter.subscribe(EVENT$4.ON_CLICK, handler);
12239
+ return this.eventEmitter.subscribe(EVENT$3.ON_CLICK, handler);
12185
12240
  }
12186
12241
  }
12187
12242
  /**
@@ -12200,10 +12255,10 @@ var WalletButtons = /*#__PURE__*/function () {
12200
12255
  value: function onCheckoutOpen(handler) {
12201
12256
  var _this8 = this;
12202
12257
  if (typeof handler === 'function') {
12203
- return this.eventEmitter.subscribe(EVENT$4.ON_CHECKOUT_OPEN, handler);
12258
+ return this.eventEmitter.subscribe(EVENT$3.ON_CHECKOUT_OPEN, handler);
12204
12259
  }
12205
12260
  return new Promise(function (resolve) {
12206
- return _this8.eventEmitter.subscribe(EVENT$4.ON_CHECKOUT_OPEN, function (err) {
12261
+ return _this8.eventEmitter.subscribe(EVENT$3.ON_CHECKOUT_OPEN, function (err) {
12207
12262
  return resolve(err);
12208
12263
  });
12209
12264
  });
@@ -12224,10 +12279,10 @@ var WalletButtons = /*#__PURE__*/function () {
12224
12279
  value: function onCheckoutClose(handler) {
12225
12280
  var _this9 = this;
12226
12281
  if (typeof handler === 'function') {
12227
- return this.eventEmitter.subscribe(EVENT$4.ON_CHECKOUT_CLOSE, handler);
12282
+ return this.eventEmitter.subscribe(EVENT$3.ON_CHECKOUT_CLOSE, handler);
12228
12283
  }
12229
12284
  return new Promise(function (resolve) {
12230
- return _this9.eventEmitter.subscribe(EVENT$4.ON_CHECKOUT_CLOSE, function (err) {
12285
+ return _this9.eventEmitter.subscribe(EVENT$3.ON_CHECKOUT_CLOSE, function (err) {
12231
12286
  return resolve(err);
12232
12287
  });
12233
12288
  });
@@ -12253,8 +12308,8 @@ var WalletButtons = /*#__PURE__*/function () {
12253
12308
  value: function setupOnWalletLoadedCallback() {
12254
12309
  var _this0 = this;
12255
12310
  this.service.on(WALLET_EVENT.LOADED, function (eventData) {
12256
- _this0.eventEmitter.emit(EVENT$4.ON_WALLET_LOADED, {
12257
- event: EVENT$4.ON_WALLET_LOADED,
12311
+ _this0.eventEmitter.emit(EVENT$3.ON_WALLET_LOADED, {
12312
+ event: EVENT$3.ON_WALLET_LOADED,
12258
12313
  data: eventData
12259
12314
  });
12260
12315
  });
@@ -12264,8 +12319,8 @@ var WalletButtons = /*#__PURE__*/function () {
12264
12319
  value: function setupUnavailableCallback() {
12265
12320
  var _this1 = this;
12266
12321
  this.service.on(WALLET_EVENT.UNAVAILABLE, function (eventData) {
12267
- return _this1.eventEmitter.emit(EVENT$4.UNAVAILABLE, {
12268
- event: EVENT$4.UNAVAILABLE,
12322
+ return _this1.eventEmitter.emit(EVENT$3.UNAVAILABLE, {
12323
+ event: EVENT$3.UNAVAILABLE,
12269
12324
  data: eventData
12270
12325
  });
12271
12326
  });
@@ -12275,8 +12330,8 @@ var WalletButtons = /*#__PURE__*/function () {
12275
12330
  value: function setupUpdateCallback() {
12276
12331
  var _this10 = this;
12277
12332
  this.service.on(WALLET_EVENT.UPDATE, function (eventData) {
12278
- return _this10.hasUpdateHandler ? _this10.eventEmitter.emit(EVENT$4.UPDATE, {
12279
- event: EVENT$4.UPDATE,
12333
+ return _this10.hasUpdateHandler ? _this10.eventEmitter.emit(EVENT$3.UPDATE, {
12334
+ event: EVENT$3.UPDATE,
12280
12335
  data: eventData
12281
12336
  }) : _this10.update({
12282
12337
  success: true
@@ -12288,8 +12343,8 @@ var WalletButtons = /*#__PURE__*/function () {
12288
12343
  value: function setupOnClickCallback() {
12289
12344
  var _this11 = this;
12290
12345
  this.service.on(WALLET_EVENT.BUTTON_CLICK, function (data) {
12291
- return _this11.eventEmitter.emit(EVENT$4.ON_CLICK, {
12292
- event: EVENT$4.ON_CLICK,
12346
+ return _this11.eventEmitter.emit(EVENT$3.ON_CLICK, {
12347
+ event: EVENT$3.ON_CLICK,
12293
12348
  data: data
12294
12349
  });
12295
12350
  });
@@ -12299,8 +12354,8 @@ var WalletButtons = /*#__PURE__*/function () {
12299
12354
  value: function setupOnCheckoutOpenCallback() {
12300
12355
  var _this12 = this;
12301
12356
  this.service.on(WALLET_EVENT.CHECKOUT_OPEN, function (data) {
12302
- return _this12.eventEmitter.emit(EVENT$4.ON_CHECKOUT_OPEN, {
12303
- event: EVENT$4.ON_CHECKOUT_OPEN,
12357
+ return _this12.eventEmitter.emit(EVENT$3.ON_CHECKOUT_OPEN, {
12358
+ event: EVENT$3.ON_CHECKOUT_OPEN,
12304
12359
  data: data
12305
12360
  });
12306
12361
  });
@@ -12310,8 +12365,8 @@ var WalletButtons = /*#__PURE__*/function () {
12310
12365
  value: function setupOnCheckoutCloseCallback() {
12311
12366
  var _this13 = this;
12312
12367
  this.service.on(WALLET_EVENT.CHECKOUT_CLOSE, function (data) {
12313
- return _this13.eventEmitter.emit(EVENT$4.ON_CHECKOUT_CLOSE, {
12314
- event: EVENT$4.ON_CHECKOUT_CLOSE,
12368
+ return _this13.eventEmitter.emit(EVENT$3.ON_CHECKOUT_CLOSE, {
12369
+ event: EVENT$3.ON_CHECKOUT_CLOSE,
12315
12370
  data: data
12316
12371
  });
12317
12372
  });
@@ -12343,7 +12398,7 @@ var WalletButtons = /*#__PURE__*/function () {
12343
12398
  if (typeof onSuccess === 'function') {
12344
12399
  onSuccess();
12345
12400
  }
12346
- var event = captureResult.status === 'inreview' ? EVENT$4.PAYMENT_IN_REVIEW : EVENT$4.PAYMENT_SUCCESSFUL;
12401
+ var event = captureResult.status === 'inreview' ? EVENT$3.PAYMENT_IN_REVIEW : EVENT$3.PAYMENT_SUCCESSFUL;
12347
12402
  _this15.eventEmitter.emit(event, {
12348
12403
  event: event,
12349
12404
  data: _extends(_extends({}, captureResult), data.customer && {
@@ -12356,8 +12411,8 @@ var WalletButtons = /*#__PURE__*/function () {
12356
12411
  if (typeof onError === 'function') {
12357
12412
  onError(err);
12358
12413
  }
12359
- _this15.eventEmitter.emit(EVENT$4.PAYMENT_ERROR, {
12360
- event: EVENT$4.PAYMENT_ERROR,
12414
+ _this15.eventEmitter.emit(EVENT$3.PAYMENT_ERROR, {
12415
+ event: EVENT$3.PAYMENT_ERROR,
12361
12416
  data: err
12362
12417
  });
12363
12418
  });
@@ -12368,8 +12423,8 @@ var WalletButtons = /*#__PURE__*/function () {
12368
12423
  value: function setupPaymentSuccessCallback() {
12369
12424
  var _this16 = this;
12370
12425
  this.service.on(WALLET_EVENT.PAYMENT_SUCCESS, function (eventData) {
12371
- return _this16.eventEmitter.emit(EVENT$4.PAYMENT_SUCCESSFUL, {
12372
- event: EVENT$4.PAYMENT_SUCCESSFUL,
12426
+ return _this16.eventEmitter.emit(EVENT$3.PAYMENT_SUCCESSFUL, {
12427
+ event: EVENT$3.PAYMENT_SUCCESSFUL,
12373
12428
  data: eventData
12374
12429
  });
12375
12430
  });
@@ -12379,8 +12434,8 @@ var WalletButtons = /*#__PURE__*/function () {
12379
12434
  value: function setupPaymentInReviewCallback() {
12380
12435
  var _this17 = this;
12381
12436
  this.service.on(WALLET_EVENT.PAYMENT_IN_REVIEW, function (eventData) {
12382
- return _this17.eventEmitter.emit(EVENT$4.PAYMENT_IN_REVIEW, {
12383
- event: EVENT$4.PAYMENT_IN_REVIEW,
12437
+ return _this17.eventEmitter.emit(EVENT$3.PAYMENT_IN_REVIEW, {
12438
+ event: EVENT$3.PAYMENT_IN_REVIEW,
12384
12439
  data: eventData
12385
12440
  });
12386
12441
  });
@@ -12390,8 +12445,8 @@ var WalletButtons = /*#__PURE__*/function () {
12390
12445
  value: function setupPaymentErrorCallback() {
12391
12446
  var _this18 = this;
12392
12447
  this.service.on(WALLET_EVENT.PAYMENT_ERROR, function (eventData) {
12393
- return _this18.eventEmitter.emit(EVENT$4.PAYMENT_ERROR, {
12394
- event: EVENT$4.PAYMENT_ERROR,
12448
+ return _this18.eventEmitter.emit(EVENT$3.PAYMENT_ERROR, {
12449
+ event: EVENT$3.PAYMENT_ERROR,
12395
12450
  data: eventData
12396
12451
  });
12397
12452
  });
@@ -12401,8 +12456,8 @@ var WalletButtons = /*#__PURE__*/function () {
12401
12456
  value: function setupAuthTokensChangedCallback() {
12402
12457
  var _this19 = this;
12403
12458
  this.service.on(WALLET_EVENT.AUTH_TOKENS_CHANGED, function (eventData) {
12404
- return _this19.eventEmitter.emit(EVENT$4.AUTH_TOKENS_CHANGED, {
12405
- event: EVENT$4.AUTH_TOKENS_CHANGED,
12459
+ return _this19.eventEmitter.emit(EVENT$3.AUTH_TOKENS_CHANGED, {
12460
+ event: EVENT$3.AUTH_TOKENS_CHANGED,
12406
12461
  data: eventData
12407
12462
  });
12408
12463
  });
@@ -13917,7 +13972,7 @@ var MultiWidget = /*#__PURE__*/function () {
13917
13972
  }, {
13918
13973
  key: "handleErrorEvent",
13919
13974
  value: function handleErrorEvent(event, error, purpose) {
13920
- if (Object.values(EVENT$5).includes(event)) {
13975
+ if (Object.values(EVENT$4).includes(event)) {
13921
13976
  this.event.emit({
13922
13977
  error: error,
13923
13978
  event: event,
@@ -14103,7 +14158,7 @@ var HtmlMultiWidget = /*#__PURE__*/function (_MultiWidget) {
14103
14158
  }, function (error) {
14104
14159
  if (error instanceof EventError) {
14105
14160
  error.setContextId(_this2.link.getParams().widget_id);
14106
- _this2.handleErrorEvent(EVENT$5.ERROR, error.toJSON().error, error.purpose);
14161
+ _this2.handleErrorEvent(EVENT$4.ERROR, error.toJSON().error, error.purpose);
14107
14162
  }
14108
14163
  console.error('Error when creating a token, widget will not be loaded');
14109
14164
  });
@@ -14115,7 +14170,7 @@ var HtmlMultiWidget = /*#__PURE__*/function (_MultiWidget) {
14115
14170
  key: "afterLoad",
14116
14171
  value: function afterLoad() {
14117
14172
  var _this3 = this;
14118
- this.on(EVENT$5.VALIDATION, function (data) {
14173
+ this.on(EVENT$4.VALIDATION, function (data) {
14119
14174
  _this3.validationData = data;
14120
14175
  });
14121
14176
  }
@@ -14374,7 +14429,7 @@ var HtmlMultiWidget = /*#__PURE__*/function (_MultiWidget) {
14374
14429
  }, {
14375
14430
  key: "onFinishInsert",
14376
14431
  value: function onFinishInsert(selector, dataType) {
14377
- this.on(EVENT$5.FINISH, function (event) {
14432
+ this.on(EVENT$4.FINISH, function (event) {
14378
14433
  Event$1.insertToInput(selector, dataType, event);
14379
14434
  });
14380
14435
  }
@@ -14412,7 +14467,7 @@ var HtmlMultiWidget = /*#__PURE__*/function (_MultiWidget) {
14412
14467
  var formInterceptor = new FormInterceptor(selector);
14413
14468
  formInterceptor.beforeSubmit(function () {
14414
14469
  _this5.triggerElement.push(TRIGGER$1.SUBMIT_FORM, {});
14415
- _this5.event.on(EVENT$5.FINISH, _this5.link.getParams().widget_id, function () {
14470
+ _this5.event.on(EVENT$4.FINISH, _this5.link.getParams().widget_id, function () {
14416
14471
  formInterceptor.continueSubmit();
14417
14472
  });
14418
14473
  });
@@ -14425,13 +14480,13 @@ var HtmlMultiWidget = /*#__PURE__*/function (_MultiWidget) {
14425
14480
  value: function useCheckoutAutoSubmit() {
14426
14481
  var _this6 = this;
14427
14482
  this.setHiddenElements([ELEMENT.SUBMIT_BUTTON]);
14428
- this.on(EVENT$5.CHECKOUT_SUCCESS, function () {
14483
+ this.on(EVENT$4.CHECKOUT_SUCCESS, function () {
14429
14484
  _this6.trigger(TRIGGER$1.SUBMIT_FORM);
14430
14485
  });
14431
- this.on(EVENT$5.VALIDATION_ERROR, function () {
14486
+ this.on(EVENT$4.VALIDATION_ERROR, function () {
14432
14487
  _this6.trigger(TRIGGER$1.REFRESH_CHECKOUT);
14433
14488
  });
14434
- this.on(EVENT$5.SYSTEM_ERROR, function () {
14489
+ this.on(EVENT$4.SYSTEM_ERROR, function () {
14435
14490
  _this6.trigger(TRIGGER$1.REFRESH_CHECKOUT);
14436
14491
  });
14437
14492
  }
@@ -14448,7 +14503,7 @@ var HtmlMultiWidget = /*#__PURE__*/function (_MultiWidget) {
14448
14503
  key: "useAutoResize",
14449
14504
  value: function useAutoResize() {
14450
14505
  var _this7 = this;
14451
- this.on(EVENT$5.RESIZE, function (data) {
14506
+ this.on(EVENT$4.RESIZE, function (data) {
14452
14507
  if (_this7.iFrame.getElement()) {
14453
14508
  _this7.iFrame.getElement().scrolling = 'no';
14454
14509
  if (data.height) {
@@ -16185,7 +16240,7 @@ var Message = /*#__PURE__*/function () {
16185
16240
  key: "useAutoResize",
16186
16241
  value: function useAutoResize() {
16187
16242
  var _this = this;
16188
- this.event.on(EVENT$5.RESIZE, this.link.getParams().widget_id, function (data) {
16243
+ this.event.on(EVENT$4.RESIZE, this.link.getParams().widget_id, function (data) {
16189
16244
  if (_this.iFrame.getElement()) {
16190
16245
  _this.iFrame.getElement().scrolling = 'no';
16191
16246
  if (data.height) {
@@ -17026,7 +17081,7 @@ var InstructionAfterpayWalletFormShow = /*#__PURE__*/function (_InstructionHandl
17026
17081
  var _this = this;
17027
17082
  this.widget = new WalletButtons(this.selector, context.payload.charge_token, context.payload.meta);
17028
17083
  this.widget.setEnv(this.getEnv(context.instruction_token));
17029
- this.widget.on(EVENT$4.ON_WALLET_LOADED, function () {
17084
+ this.widget.on(EVENT$3.ON_WALLET_LOADED, function () {
17030
17085
  addGoBackToPaymentsButton(_this.selector, _this.checkoutWidget, _this.api);
17031
17086
  });
17032
17087
  this.widget.load();
@@ -17047,7 +17102,7 @@ var InstructionApplePayFormShow = /*#__PURE__*/function (_InstructionHandler) {
17047
17102
  var _this = this;
17048
17103
  this.widget = new WalletButtons(this.selector, context === null || context === void 0 ? void 0 : context.payload.charge_token, context === null || context === void 0 ? void 0 : context.payload.meta);
17049
17104
  this.widget.setEnv(this.getEnv(context.instruction_token));
17050
- this.widget.on(EVENT$4.ON_WALLET_LOADED, function () {
17105
+ this.widget.on(EVENT$3.ON_WALLET_LOADED, function () {
17051
17106
  addGoBackToPaymentsButton(_this.selector, _this.checkoutWidget, _this.api);
17052
17107
  hideLoadingSpinner();
17053
17108
  });
@@ -17380,7 +17435,7 @@ var InstructionCardFormShow = /*#__PURE__*/function (_InstructionHandler) {
17380
17435
  this.widget.load();
17381
17436
  this.widget.useAutoResize();
17382
17437
  this.widget.setHiddenElements(['submit_button']);
17383
- this.widget.on(EVENT$5.AFTER_LOAD, function () {
17438
+ this.widget.on(EVENT$4.AFTER_LOAD, function () {
17384
17439
  _this.timeoutId = setTimeout(function () {
17385
17440
  _this.addSubmitButton();
17386
17441
  addGoBackToPaymentsButton(_this.selector, _this.checkoutWidget, _this.api);
@@ -17390,7 +17445,7 @@ var InstructionCardFormShow = /*#__PURE__*/function (_InstructionHandler) {
17390
17445
  this.widget.on('submit', function () {
17391
17446
  return showLoadingSpinner();
17392
17447
  });
17393
- this.widget.on(EVENT$5.FINISH, function (event) {
17448
+ this.widget.on(EVENT$4.FINISH, function (event) {
17394
17449
  var _a;
17395
17450
  var get = new Api(context.instruction_token);
17396
17451
  (_a = _this.checkoutWidget) === null || _a === void 0 ? void 0 : _a.fetchInstruction();
@@ -17426,7 +17481,7 @@ var InstructionCardFormShow = /*#__PURE__*/function (_InstructionHandler) {
17426
17481
  return console.error('callback.card_form.ott_created: error', error);
17427
17482
  });
17428
17483
  });
17429
- this.widget.on(EVENT$5.VALIDATION_ERROR, function (event) {
17484
+ this.widget.on(EVENT$4.VALIDATION_ERROR, function (event) {
17430
17485
  var _a;
17431
17486
  (_a = _this.checkoutWidget) === null || _a === void 0 ? void 0 : _a.fetchInstruction();
17432
17487
  _this.api.checkout().callback({
@@ -17711,7 +17766,7 @@ var InstructionGooglePayFormShow = /*#__PURE__*/function (_InstructionHandler) {
17711
17766
  var _this = this;
17712
17767
  this.widget = new WalletButtons(this.selector, context === null || context === void 0 ? void 0 : context.payload.charge_token, context === null || context === void 0 ? void 0 : context.payload.meta);
17713
17768
  this.widget.setEnv(this.getEnv(context.instruction_token));
17714
- this.widget.on(EVENT$4.ON_WALLET_LOADED, function () {
17769
+ this.widget.on(EVENT$3.ON_WALLET_LOADED, function () {
17715
17770
  addGoBackToPaymentsButton(_this.selector, _this.checkoutWidget, _this.api);
17716
17771
  hideLoadingSpinner();
17717
17772
  });
@@ -18026,7 +18081,7 @@ var InstructionPaypalFormShow = /*#__PURE__*/function (_InstructionHandler) {
18026
18081
  standalone: true
18027
18082
  }));
18028
18083
  this.widget.setEnv(this.getEnv(context.instruction_token));
18029
- this.widget.on(EVENT$4.ON_WALLET_LOADED, function () {
18084
+ this.widget.on(EVENT$3.ON_WALLET_LOADED, function () {
18030
18085
  addGoBackToPaymentsButton(_this.selector, _this.checkoutWidget, _this.api);
18031
18086
  hideLoadingSpinner();
18032
18087
  });
@@ -18592,7 +18647,7 @@ function getCheckoutVersionHandler(version) {
18592
18647
  }
18593
18648
  }
18594
18649
 
18595
- var EVENT$3 = {
18650
+ var EVENT$2 = {
18596
18651
  PAYMENT_SUCCESSFUL: 'paymentSuccessful',
18597
18652
  PAYMENT_FAILURE: 'paymentFailure',
18598
18653
  PAYMENT_EXPIRED: 'paymentExpired'
@@ -18798,7 +18853,7 @@ var Checkout = /*#__PURE__*/function () {
18798
18853
  }, {
18799
18854
  key: "onPaymentSuccessful",
18800
18855
  value: function onPaymentSuccessful(handler) {
18801
- return this.eventEmitter.subscribe(EVENT$3.PAYMENT_SUCCESSFUL, handler);
18856
+ return this.eventEmitter.subscribe(EVENT$2.PAYMENT_SUCCESSFUL, handler);
18802
18857
  }
18803
18858
  /**
18804
18859
  * If the payment was not successful, the function passed as parameter will be called.
@@ -18812,7 +18867,7 @@ var Checkout = /*#__PURE__*/function () {
18812
18867
  }, {
18813
18868
  key: "onPaymentFailure",
18814
18869
  value: function onPaymentFailure(handler) {
18815
- return this.eventEmitter.subscribe(EVENT$3.PAYMENT_FAILURE, handler);
18870
+ return this.eventEmitter.subscribe(EVENT$2.PAYMENT_FAILURE, handler);
18816
18871
  }
18817
18872
  /**
18818
18873
  * If the payment was expired, the function passed as parameter will be called.
@@ -18826,7 +18881,7 @@ var Checkout = /*#__PURE__*/function () {
18826
18881
  }, {
18827
18882
  key: "onPaymentExpired",
18828
18883
  value: function onPaymentExpired(handler) {
18829
- return this.eventEmitter.subscribe(EVENT$3.PAYMENT_EXPIRED, handler);
18884
+ return this.eventEmitter.subscribe(EVENT$2.PAYMENT_EXPIRED, handler);
18830
18885
  }
18831
18886
  }, {
18832
18887
  key: "createWidgetStructure",
@@ -18902,7 +18957,7 @@ exports.ERROR_OPERATION = void 0;
18902
18957
  /**
18903
18958
  * Events emitted during the OpenWallet payment lifecycle.
18904
18959
  */
18905
- var EVENT$2;
18960
+ var EVENT$1;
18906
18961
  (function (EVENT) {
18907
18962
  /** Emitted when the wallet button is clicked by the user. */
18908
18963
  EVENT["ON_CLICK"] = "onClick";
@@ -18920,7 +18975,7 @@ var EVENT$2;
18920
18975
  EVENT["ON_SHIPPING_ADDRESS_CHANGE"] = "onShippingAddressChange";
18921
18976
  /** Emitted when the customer selects a shipping option. */
18922
18977
  EVENT["ON_SHIPPING_OPTIONS_CHANGE"] = "onShippingOptionsChange";
18923
- })(EVENT$2 || (EVENT$2 = {}));
18978
+ })(EVENT$1 || (EVENT$1 = {}));
18924
18979
 
18925
18980
  /**
18926
18981
  * @classdesc Abstract base class for Open Wallet buttons. **Do not instantiate directly.**
@@ -18942,6 +18997,13 @@ var OpenWalletButtons = /*#__PURE__*/function () {
18942
18997
  _classCallCheck(this, OpenWalletButtons);
18943
18998
  this.env = DEFAULT_ENV;
18944
18999
  this.onShippingOptionsChangeHandlerRegistered = false;
19000
+ // Runtime guard: TypeScript's `abstract` keyword exists only at compile time.
19001
+ // Without this check, instantiating the base class directly silently fails
19002
+ // later when `this.validateWalletMeta()` resolves to `undefined`, producing
19003
+ // a confusing "is not a function" error far from the actual mistake.
19004
+ if ((this instanceof OpenWalletButtons ? this.constructor : void 0) === OpenWalletButtons) {
19005
+ throw new Error('OpenWalletButtons is an abstract base class and cannot be instantiated directly. ' + 'Use ApplePayOpenWalletButton or GooglePayOpenWalletButton instead.');
19006
+ }
18945
19007
  this.eventEmitter = new EventEmitter();
18946
19008
  this.container = new Container(selector);
18947
19009
  this.api = new ApiInternal(publicKeyOrAccessToken, this.getApiAuthType(publicKeyOrAccessToken));
@@ -19044,7 +19106,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19044
19106
  console.error('Wallet operation error:', error);
19045
19107
  }
19046
19108
  var errorData = {
19047
- event: EVENT$2.ERROR,
19109
+ event: EVENT$1.ERROR,
19048
19110
  data: {
19049
19111
  error: error,
19050
19112
  context: {
@@ -19052,7 +19114,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19052
19114
  }
19053
19115
  }
19054
19116
  };
19055
- this.eventEmitter.emit(EVENT$2.ERROR, errorData);
19117
+ this.eventEmitter.emit(EVENT$1.ERROR, errorData);
19056
19118
  }
19057
19119
  /**
19058
19120
  * Loads and initializes the wallet button based on the service configuration.
@@ -19174,7 +19236,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19174
19236
  key: "onClick",
19175
19237
  value: function onClick(handler) {
19176
19238
  if (typeof handler === 'function') {
19177
- this.eventEmitter.subscribe(EVENT$2.ON_CLICK, handler);
19239
+ this.eventEmitter.subscribe(EVENT$1.ON_CLICK, handler);
19178
19240
  return;
19179
19241
  }
19180
19242
  this.handleOnError(new Error('onClick event handler is required.'), exports.ERROR_OPERATION.HANDLER_REGISTRATION);
@@ -19213,7 +19275,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19213
19275
  value: function onSuccess(handler) {
19214
19276
  var _this2 = this;
19215
19277
  if (typeof handler === 'function') {
19216
- this.eventEmitter.subscribe(EVENT$2.SUCCESS, function (data) {
19278
+ this.eventEmitter.subscribe(EVENT$1.SUCCESS, function (data) {
19217
19279
  return __awaiter(_this2, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee2() {
19218
19280
  var _t3;
19219
19281
  return _regenerator().w(function (_context2) {
@@ -19265,7 +19327,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19265
19327
  value: function onUnavailable(handler) {
19266
19328
  var _this3 = this;
19267
19329
  if (typeof handler === 'function') {
19268
- this.eventEmitter.subscribe(EVENT$2.UNAVAILABLE, function (data) {
19330
+ this.eventEmitter.subscribe(EVENT$1.UNAVAILABLE, function (data) {
19269
19331
  return __awaiter(_this3, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee3() {
19270
19332
  var _t4;
19271
19333
  return _regenerator().w(function (_context3) {
@@ -19318,7 +19380,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19318
19380
  value: function onError(handler) {
19319
19381
  var _this4 = this;
19320
19382
  if (typeof handler === 'function') {
19321
- this.eventEmitter.subscribe(EVENT$2.ERROR, function (data) {
19383
+ this.eventEmitter.subscribe(EVENT$1.ERROR, function (data) {
19322
19384
  return __awaiter(_this4, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee4() {
19323
19385
  var _t5;
19324
19386
  return _regenerator().w(function (_context4) {
@@ -19370,7 +19432,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19370
19432
  value: function onCancel(handler) {
19371
19433
  var _this5 = this;
19372
19434
  if (typeof handler === 'function') {
19373
- this.eventEmitter.subscribe(EVENT$2.CHECKOUT_CLOSE, function (data) {
19435
+ this.eventEmitter.subscribe(EVENT$1.CHECKOUT_CLOSE, function (data) {
19374
19436
  return __awaiter(_this5, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee5() {
19375
19437
  var _t6;
19376
19438
  return _regenerator().w(function (_context5) {
@@ -19415,7 +19477,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19415
19477
  value: function onLoaded(handler) {
19416
19478
  var _this6 = this;
19417
19479
  if (typeof handler === 'function') {
19418
- this.eventEmitter.subscribe(EVENT$2.LOADED, function (data) {
19480
+ this.eventEmitter.subscribe(EVENT$1.LOADED, function (data) {
19419
19481
  return __awaiter(_this6, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee6() {
19420
19482
  var _t7;
19421
19483
  return _regenerator().w(function (_context6) {
@@ -19487,7 +19549,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19487
19549
  key: "onShippingAddressChange",
19488
19550
  value: function onShippingAddressChange(handler) {
19489
19551
  if (typeof handler === 'function') {
19490
- return this.eventEmitter.subscribe(EVENT$2.ON_SHIPPING_ADDRESS_CHANGE, handler);
19552
+ return this.eventEmitter.subscribe(EVENT$1.ON_SHIPPING_ADDRESS_CHANGE, handler);
19491
19553
  }
19492
19554
  this.handleOnError(new Error('onShippingAddressChange event handler is required.'), exports.ERROR_OPERATION.HANDLER_REGISTRATION);
19493
19555
  }
@@ -19532,7 +19594,7 @@ var OpenWalletButtons = /*#__PURE__*/function () {
19532
19594
  value: function onShippingOptionsChange(handler) {
19533
19595
  if (typeof handler === 'function') {
19534
19596
  this.onShippingOptionsChangeHandlerRegistered = true;
19535
- return this.eventEmitter.subscribe(EVENT$2.ON_SHIPPING_OPTIONS_CHANGE, handler);
19597
+ return this.eventEmitter.subscribe(EVENT$1.ON_SHIPPING_OPTIONS_CHANGE, handler);
19536
19598
  }
19537
19599
  this.handleOnError(new Error('onShippingOptionsChange event handler is required.'), exports.ERROR_OPERATION.HANDLER_REGISTRATION);
19538
19600
  }
@@ -19646,8 +19708,8 @@ var OpenWalletService = /*#__PURE__*/function () {
19646
19708
  return this.api.paymentSource().createOTT(requestData).then(function (response) {
19647
19709
  var cleanShipping = stripEmpty(shipping);
19648
19710
  var cleanBilling = stripEmpty(billing);
19649
- _this.eventEmitter.emit(EVENT$2.SUCCESS, {
19650
- event: EVENT$2.SUCCESS,
19711
+ _this.eventEmitter.emit(EVENT$1.SUCCESS, {
19712
+ event: EVENT$1.SUCCESS,
19651
19713
  data: _extends(_extends({
19652
19714
  token: response,
19653
19715
  amount: amount
@@ -19660,8 +19722,8 @@ var OpenWalletService = /*#__PURE__*/function () {
19660
19722
  return response;
19661
19723
  })["catch"](function (err) {
19662
19724
  var _a, _b, _c, _d;
19663
- _this.eventEmitter.emit(EVENT$2.ERROR, {
19664
- event: EVENT$2.ERROR,
19725
+ _this.eventEmitter.emit(EVENT$1.ERROR, {
19726
+ event: EVENT$1.ERROR,
19665
19727
  data: {
19666
19728
  message: ((_a = err === null || err === void 0 ? void 0 : err.error) === null || _a === void 0 ? void 0 : _a.message) || (err === null || err === void 0 ? void 0 : err.message) || ((_b = err === null || err === void 0 ? void 0 : err.error_summary) === null || _b === void 0 ? void 0 : _b.message),
19667
19729
  code: ((_c = err === null || err === void 0 ? void 0 : err.error) === null || _c === void 0 ? void 0 : _c.code) || (err === null || err === void 0 ? void 0 : err.code) || ((_d = err === null || err === void 0 ? void 0 : err.error_summary) === null || _d === void 0 ? void 0 : _d.code)
@@ -19708,7 +19770,7 @@ var OpenWalletService = /*#__PURE__*/function () {
19708
19770
  value: function handleOnUnavailable() {
19709
19771
  var reason = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Wallet not available';
19710
19772
  var unavailableData = {
19711
- event: EVENT$2.UNAVAILABLE,
19773
+ event: EVENT$1.UNAVAILABLE,
19712
19774
  data: {
19713
19775
  reason: reason,
19714
19776
  details: {
@@ -19716,7 +19778,7 @@ var OpenWalletService = /*#__PURE__*/function () {
19716
19778
  }
19717
19779
  }
19718
19780
  };
19719
- this.eventEmitter.emit(EVENT$2.UNAVAILABLE, unavailableData);
19781
+ this.eventEmitter.emit(EVENT$1.UNAVAILABLE, unavailableData);
19720
19782
  }
19721
19783
  /**
19722
19784
  * Emits the {@link EVENT.ERROR} event and logs the error to the console.
@@ -19732,7 +19794,7 @@ var OpenWalletService = /*#__PURE__*/function () {
19732
19794
  console.error('Wallet operation error:', error);
19733
19795
  }
19734
19796
  var errorData = {
19735
- event: EVENT$2.ERROR,
19797
+ event: EVENT$1.ERROR,
19736
19798
  data: {
19737
19799
  error: error,
19738
19800
  context: {
@@ -19740,7 +19802,7 @@ var OpenWalletService = /*#__PURE__*/function () {
19740
19802
  }
19741
19803
  }
19742
19804
  };
19743
- this.eventEmitter.emit(EVENT$2.ERROR, errorData);
19805
+ this.eventEmitter.emit(EVENT$1.ERROR, errorData);
19744
19806
  }
19745
19807
  /**
19746
19808
  * Removes the wallet button element from the DOM.
@@ -19790,8 +19852,8 @@ var ApplePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
19790
19852
  _this.serviceConfig = serviceConfig;
19791
19853
  _this.latestShippingData = {};
19792
19854
  _this.onCancelPayment = function () {
19793
- return _this.eventEmitter.emit(EVENT$2.CHECKOUT_CLOSE, {
19794
- event: EVENT$2.CHECKOUT_CLOSE
19855
+ return _this.eventEmitter.emit(EVENT$1.CHECKOUT_CLOSE, {
19856
+ event: EVENT$1.CHECKOUT_CLOSE
19795
19857
  });
19796
19858
  };
19797
19859
  _this.onValidateMerchant = function () {
@@ -19871,7 +19933,7 @@ var ApplePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
19871
19933
  while (1) switch (_context.n) {
19872
19934
  case 0:
19873
19935
  return _context.a(2, this.handleMerchantOnShippingChangedEvent({
19874
- event: EVENT$2.ON_SHIPPING_ADDRESS_CHANGE,
19936
+ event: EVENT$1.ON_SHIPPING_ADDRESS_CHANGE,
19875
19937
  data: this.parseShippingContactUpdateEvent(data)
19876
19938
  }).then(function (response) {
19877
19939
  var _a, _b;
@@ -19920,7 +19982,7 @@ var ApplePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
19920
19982
  while (1) switch (_context2.n) {
19921
19983
  case 0:
19922
19984
  return _context2.a(2, this.handleMerchantOnShippingChangedEvent({
19923
- event: EVENT$2.ON_SHIPPING_OPTIONS_CHANGE,
19985
+ event: EVENT$1.ON_SHIPPING_OPTIONS_CHANGE,
19924
19986
  data: this.parseShippingMethodUpdateEvent(data)
19925
19987
  }).then(function (response) {
19926
19988
  var _a;
@@ -20135,15 +20197,20 @@ var ApplePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
20135
20197
  return;
20136
20198
  }
20137
20199
  applePayButton.addEventListener('click', this.onApplePayButtonClicked.bind(this));
20138
- this.eventEmitter.emit(EVENT$2.LOADED, {
20139
- event: EVENT$2.LOADED
20200
+ this.eventEmitter.emit(EVENT$1.LOADED, {
20201
+ event: EVENT$1.LOADED
20140
20202
  });
20141
20203
  }
20142
20204
  }, {
20143
20205
  key: "onApplePayButtonClicked",
20144
20206
  value: function onApplePayButtonClicked() {
20145
20207
  var _this7 = this;
20146
- this.paymentSession = new ApplePaySession(14, this.mapMetaToApplePayPaymentRequest());
20208
+ var applePayApiVersion = getSupportedApplePayVersion();
20209
+ if (applePayApiVersion === 0) {
20210
+ this.handleOnUnavailable('Apple Pay version not supported');
20211
+ return;
20212
+ }
20213
+ this.paymentSession = new ApplePaySession(applePayApiVersion, this.mapMetaToApplePayPaymentRequest());
20147
20214
  this.paymentSession.onvalidatemerchant = this.onValidateMerchant;
20148
20215
  this.paymentSession.onpaymentauthorized = this.onPaymentAuthorized;
20149
20216
  this.paymentSession.oncancel = this.onCancelPayment;
@@ -20189,8 +20256,8 @@ var ApplePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
20189
20256
  while (1) switch (_context4.n) {
20190
20257
  case 0:
20191
20258
  _context4.n = 1;
20192
- return this.eventEmitter.emitWithResult(EVENT$2.ON_CLICK, {
20193
- event: EVENT$2.ON_CLICK
20259
+ return this.eventEmitter.emitWithResult(EVENT$1.ON_CLICK, {
20260
+ event: EVENT$1.ON_CLICK
20194
20261
  });
20195
20262
  case 1:
20196
20263
  results = _context4.v;
@@ -20514,8 +20581,8 @@ var GOOGLE_PAY_CARD_NETWORKS = ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCAR
20514
20581
  * Used to translate shipping-related Google Pay events to the unified event system.
20515
20582
  */
20516
20583
  ({
20517
- SHIPPING_ADDRESS: EVENT$2.ON_SHIPPING_ADDRESS_CHANGE,
20518
- SHIPPING_OPTION: EVENT$2.ON_SHIPPING_OPTIONS_CHANGE
20584
+ SHIPPING_ADDRESS: EVENT$1.ON_SHIPPING_ADDRESS_CHANGE,
20585
+ SHIPPING_OPTION: EVENT$1.ON_SHIPPING_OPTIONS_CHANGE
20519
20586
  });
20520
20587
 
20521
20588
  /**
@@ -20880,8 +20947,8 @@ var GooglePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
20880
20947
  buttonColor: ((_c = this.getMetaStyles()) === null || _c === void 0 ? void 0 : _c.button_color) || 'default'
20881
20948
  });
20882
20949
  button.appendChild(googlePayButton);
20883
- this.eventEmitter.emit(EVENT$2.LOADED, {
20884
- event: EVENT$2.LOADED
20950
+ this.eventEmitter.emit(EVENT$1.LOADED, {
20951
+ event: EVENT$1.LOADED
20885
20952
  });
20886
20953
  }
20887
20954
  }, {
@@ -20910,8 +20977,8 @@ var GooglePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
20910
20977
  while (1) switch (_context3.n) {
20911
20978
  case 0:
20912
20979
  _context3.n = 1;
20913
- return this.eventEmitter.emitWithResult(EVENT$2.ON_CLICK, {
20914
- event: EVENT$2.ON_CLICK
20980
+ return this.eventEmitter.emitWithResult(EVENT$1.ON_CLICK, {
20981
+ event: EVENT$1.ON_CLICK
20915
20982
  });
20916
20983
  case 1:
20917
20984
  results = _context3.v;
@@ -20937,8 +21004,8 @@ var GooglePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
20937
21004
  while (1) switch (_context4.n) {
20938
21005
  case 0:
20939
21006
  return _context4.a(2, this.paymentsClient.loadPaymentData(this.createPaymentDataRequest())["catch"](function (err) {
20940
- _this6.eventEmitter.emit(EVENT$2.CHECKOUT_CLOSE, {
20941
- event: EVENT$2.CHECKOUT_CLOSE
21007
+ _this6.eventEmitter.emit(EVENT$1.CHECKOUT_CLOSE, {
21008
+ event: EVENT$1.CHECKOUT_CLOSE
20942
21009
  });
20943
21010
  _this6.processingButtonClick = false;
20944
21011
  throw err;
@@ -21002,13 +21069,13 @@ var GooglePayOpenWalletService = /*#__PURE__*/function (_OpenWalletService) {
21002
21069
  if (intermediatePaymentData.callbackTrigger === 'INITIALIZE' || intermediatePaymentData.callbackTrigger === 'SHIPPING_ADDRESS') {
21003
21070
  callbackIntent = 'SHIPPING_ADDRESS';
21004
21071
  eventData = {
21005
- event: EVENT$2.ON_SHIPPING_ADDRESS_CHANGE,
21072
+ event: EVENT$1.ON_SHIPPING_ADDRESS_CHANGE,
21006
21073
  data: parsedUpdateData.shipping
21007
21074
  };
21008
21075
  } else if (intermediatePaymentData.callbackTrigger === 'SHIPPING_OPTION') {
21009
21076
  callbackIntent = 'SHIPPING_OPTION';
21010
21077
  eventData = {
21011
- event: EVENT$2.ON_SHIPPING_OPTIONS_CHANGE,
21078
+ event: EVENT$1.ON_SHIPPING_OPTIONS_CHANGE,
21012
21079
  data: {
21013
21080
  shipping_option_id: (_a = parsedUpdateData.selected_shipping_option) === null || _a === void 0 ? void 0 : _a.id,
21014
21081
  label: (_b = parsedUpdateData.selected_shipping_option) === null || _b === void 0 ? void 0 : _b.label,
@@ -21708,7 +21775,7 @@ var HtmlPaymentSourceWidget = /*#__PURE__*/function (_PaymentSourceWidget) {
21708
21775
  }, {
21709
21776
  key: "onSelectInsert",
21710
21777
  value: function onSelectInsert(selector, dataType) {
21711
- this.on(EVENT$5.SELECT, function (event) {
21778
+ this.on(EVENT$4.SELECT, function (event) {
21712
21779
  Event$1.insertToInput(selector, dataType, event);
21713
21780
  });
21714
21781
  }
@@ -22278,7 +22345,7 @@ var PayPalSavePaymentSourceWidget = /*#__PURE__*/function () {
22278
22345
  * @param {string} CHECKOUT_COMPLETED=checkoutCompleted Event sent on successful checkout by customer. Check [data](#EventDataCheckoutCompletedData) for more information.
22279
22346
  * @param {string} CHECKOUT_ERROR=checkoutError Event sent on error checkout by customer. Check [data](#EventData) for more information.
22280
22347
  */
22281
- var EVENT$1;
22348
+ var EVENT;
22282
22349
  (function (EVENT) {
22283
22350
  EVENT["IFRAME_LOADED"] = "iframeLoaded";
22284
22351
  EVENT["CHECKOUT_READY"] = "checkoutReady";
@@ -22286,7 +22353,7 @@ var EVENT$1;
22286
22353
  EVENT["CHECKOUT_ERROR"] = "checkoutError";
22287
22354
  EVENT["CHECKOUT_POPUP_OPEN"] = "checkoutPopupOpen";
22288
22355
  EVENT["CHECKOUT_POPUP_CLOSE"] = "checkoutPopupClose";
22289
- })(EVENT$1 || (EVENT$1 = {}));
22356
+ })(EVENT || (EVENT = {}));
22290
22357
  /**
22291
22358
  * List of available event data types
22292
22359
  * @enum EVENT_DATA_TYPE
@@ -22456,25 +22523,25 @@ var ClickToPaySRC = /*#__PURE__*/function () {
22456
22523
  var _this = this;
22457
22524
  var widgetId = this.link.getParams().widget_id;
22458
22525
  if (!widgetId) return;
22459
- this.iFrameEvent.on(EVENT$1.CHECKOUT_READY, widgetId, function (_ref) {
22526
+ this.iFrameEvent.on(EVENT.CHECKOUT_READY, widgetId, function (_ref) {
22460
22527
  var data = _ref.data;
22461
- _this.eventEmitter.emit(EVENT$1.CHECKOUT_READY, data);
22528
+ _this.eventEmitter.emit(EVENT.CHECKOUT_READY, data);
22462
22529
  });
22463
- this.iFrameEvent.on(EVENT$1.CHECKOUT_COMPLETED, widgetId, function (_ref2) {
22530
+ this.iFrameEvent.on(EVENT.CHECKOUT_COMPLETED, widgetId, function (_ref2) {
22464
22531
  var data = _ref2.data;
22465
- _this.eventEmitter.emit(EVENT$1.CHECKOUT_COMPLETED, data);
22532
+ _this.eventEmitter.emit(EVENT.CHECKOUT_COMPLETED, data);
22466
22533
  });
22467
- this.iFrameEvent.on(EVENT$1.CHECKOUT_POPUP_OPEN, widgetId, function (_ref3) {
22534
+ this.iFrameEvent.on(EVENT.CHECKOUT_POPUP_OPEN, widgetId, function (_ref3) {
22468
22535
  var data = _ref3.data;
22469
- _this.eventEmitter.emit(EVENT$1.CHECKOUT_POPUP_OPEN, data);
22536
+ _this.eventEmitter.emit(EVENT.CHECKOUT_POPUP_OPEN, data);
22470
22537
  });
22471
- this.iFrameEvent.on(EVENT$1.CHECKOUT_POPUP_CLOSE, widgetId, function (_ref4) {
22538
+ this.iFrameEvent.on(EVENT.CHECKOUT_POPUP_CLOSE, widgetId, function (_ref4) {
22472
22539
  var data = _ref4.data;
22473
- _this.eventEmitter.emit(EVENT$1.CHECKOUT_POPUP_CLOSE, data);
22540
+ _this.eventEmitter.emit(EVENT.CHECKOUT_POPUP_CLOSE, data);
22474
22541
  });
22475
- this.iFrameEvent.on(EVENT$1.CHECKOUT_ERROR, widgetId, function (_ref5) {
22542
+ this.iFrameEvent.on(EVENT.CHECKOUT_ERROR, widgetId, function (_ref5) {
22476
22543
  var data = _ref5.data;
22477
- _this.eventEmitter.emit(EVENT$1.CHECKOUT_ERROR, data);
22544
+ _this.eventEmitter.emit(EVENT.CHECKOUT_ERROR, data);
22478
22545
  });
22479
22546
  if (this.autoResize) this.useAutoResize(true);
22480
22547
  }
@@ -22497,7 +22564,7 @@ var ClickToPaySRC = /*#__PURE__*/function () {
22497
22564
  if (iframeElement) {
22498
22565
  iframeElement.onload = function () {
22499
22566
  _this2.isIframeLoaded = true;
22500
- _this2.eventEmitter.emit(EVENT$1.IFRAME_LOADED, {});
22567
+ _this2.eventEmitter.emit(EVENT.IFRAME_LOADED, {});
22501
22568
  if (_this2.injectedCustomerData) {
22502
22569
  _this2.injectCustomerData(_this2.injectedCustomerData);
22503
22570
  _this2.injectedCustomerData = null;
@@ -22984,7 +23051,7 @@ var VaultDisplayWidget = /*#__PURE__*/function () {
22984
23051
  }]);
22985
23052
  }();
22986
23053
 
22987
- var EVENT;
23054
+ exports.WALLET_BUTTONS_EXPRESS_EVENT = void 0;
22988
23055
  (function (EVENT) {
22989
23056
  EVENT["UNAVAILABLE"] = "unavailable";
22990
23057
  EVENT["ERROR"] = "error";
@@ -22995,12 +23062,13 @@ var EVENT;
22995
23062
  EVENT["ON_CHECKOUT_CLOSE"] = "onCheckoutClose";
22996
23063
  EVENT["ON_SHIPPING_ADDRESS_CHANGE"] = "onShippingAddressChange";
22997
23064
  EVENT["ON_SHIPPING_OPTIONS_CHANGE"] = "onShippingOptionsChange";
22998
- })(EVENT || (EVENT = {}));
23065
+ })(exports.WALLET_BUTTONS_EXPRESS_EVENT || (exports.WALLET_BUTTONS_EXPRESS_EVENT = {}));
22999
23066
 
23000
23067
  var BaseWalletButton = /*#__PURE__*/function () {
23001
23068
  function BaseWalletButton(selector, publicKeyOrAccessToken, gatewayId, meta, requiredMetaFields) {
23002
23069
  _classCallCheck(this, BaseWalletButton);
23003
23070
  this.env = DEFAULT_ENV;
23071
+ this.isDisabled = false;
23004
23072
  this.onShippingOptionsChangeHandlerRegistered = false;
23005
23073
  this.eventEmitter = new EventEmitter();
23006
23074
  this.container = new Container(selector);
@@ -23033,6 +23101,30 @@ var BaseWalletButton = /*#__PURE__*/function () {
23033
23101
  this.env = env;
23034
23102
  this.api.setEnv(env, alias);
23035
23103
  }
23104
+ /**
23105
+ * Enables the wallet button, restoring interactivity and visual appearance.
23106
+ *
23107
+ * @example
23108
+ * button.enable();
23109
+ */
23110
+ }, {
23111
+ key: "enable",
23112
+ value: function enable() {
23113
+ this.isDisabled = false;
23114
+ this.applyDisabledStyles();
23115
+ }
23116
+ /**
23117
+ * Disables the wallet button, preventing clicks and applying a visual disabled state.
23118
+ *
23119
+ * @example
23120
+ * button.disable();
23121
+ */
23122
+ }, {
23123
+ key: "disable",
23124
+ value: function disable() {
23125
+ this.isDisabled = true;
23126
+ this.applyDisabledStyles();
23127
+ }
23036
23128
  /**
23037
23129
  * Callback for onClick method.
23038
23130
  *
@@ -23060,7 +23152,7 @@ var BaseWalletButton = /*#__PURE__*/function () {
23060
23152
  key: "onClick",
23061
23153
  value: function onClick(handler) {
23062
23154
  if (typeof handler === 'function') {
23063
- return this.eventEmitter.subscribe(EVENT.ON_CLICK, handler);
23155
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CLICK, handler);
23064
23156
  }
23065
23157
  this.handleOnError(new Error('onClick event handler is required to return the wallet token string.'));
23066
23158
  }
@@ -23089,10 +23181,10 @@ var BaseWalletButton = /*#__PURE__*/function () {
23089
23181
  value: function onPaymentSuccessful(handler) {
23090
23182
  var _this = this;
23091
23183
  if (typeof handler === 'function') {
23092
- return this.eventEmitter.subscribe(EVENT.PAYMENT_SUCCESSFUL, handler);
23184
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_SUCCESSFUL, handler);
23093
23185
  }
23094
23186
  return new Promise(function (resolve) {
23095
- return _this.eventEmitter.subscribe(EVENT.PAYMENT_SUCCESSFUL, function (data) {
23187
+ return _this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_SUCCESSFUL, function (data) {
23096
23188
  return resolve(data);
23097
23189
  });
23098
23190
  });
@@ -23122,10 +23214,10 @@ var BaseWalletButton = /*#__PURE__*/function () {
23122
23214
  value: function onPaymentInReview(handler) {
23123
23215
  var _this2 = this;
23124
23216
  if (typeof handler === 'function') {
23125
- return this.eventEmitter.subscribe(EVENT.PAYMENT_IN_REVIEW, handler);
23217
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_IN_REVIEW, handler);
23126
23218
  }
23127
23219
  return new Promise(function (resolve) {
23128
- return _this2.eventEmitter.subscribe(EVENT.PAYMENT_IN_REVIEW, function (data) {
23220
+ return _this2.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_IN_REVIEW, function (data) {
23129
23221
  return resolve(data);
23130
23222
  });
23131
23223
  });
@@ -23155,10 +23247,10 @@ var BaseWalletButton = /*#__PURE__*/function () {
23155
23247
  value: function onPaymentError(handler) {
23156
23248
  var _this3 = this;
23157
23249
  if (typeof handler === 'function') {
23158
- return this.eventEmitter.subscribe(EVENT.PAYMENT_ERROR, handler);
23250
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR, handler);
23159
23251
  }
23160
23252
  return new Promise(function (resolve) {
23161
- return _this3.eventEmitter.subscribe(EVENT.PAYMENT_ERROR, function (err) {
23253
+ return _this3.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR, function (err) {
23162
23254
  return resolve(err);
23163
23255
  });
23164
23256
  });
@@ -23184,10 +23276,10 @@ var BaseWalletButton = /*#__PURE__*/function () {
23184
23276
  value: function onCheckoutClose(handler) {
23185
23277
  var _this4 = this;
23186
23278
  if (typeof handler === 'function') {
23187
- return this.eventEmitter.subscribe(EVENT.ON_CHECKOUT_CLOSE, handler);
23279
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CHECKOUT_CLOSE, handler);
23188
23280
  }
23189
23281
  return new Promise(function (resolve) {
23190
- return _this4.eventEmitter.subscribe(EVENT.ON_CHECKOUT_CLOSE, function (err) {
23282
+ return _this4.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CHECKOUT_CLOSE, function (err) {
23191
23283
  return resolve(err);
23192
23284
  });
23193
23285
  });
@@ -23218,7 +23310,7 @@ var BaseWalletButton = /*#__PURE__*/function () {
23218
23310
  key: "onShippingAddressChange",
23219
23311
  value: function onShippingAddressChange(handler) {
23220
23312
  if (typeof handler === 'function') {
23221
- return this.eventEmitter.subscribe(EVENT.ON_SHIPPING_ADDRESS_CHANGE, handler);
23313
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_SHIPPING_ADDRESS_CHANGE, handler);
23222
23314
  }
23223
23315
  this.handleOnError(new Error('onShippingAddressChange event handler is required to return the wallet token string or reject.'));
23224
23316
  }
@@ -23249,7 +23341,7 @@ var BaseWalletButton = /*#__PURE__*/function () {
23249
23341
  value: function onShippingOptionsChange(handler) {
23250
23342
  if (typeof handler === 'function') {
23251
23343
  this.onShippingOptionsChangeHandlerRegistered = true;
23252
- return this.eventEmitter.subscribe(EVENT.ON_SHIPPING_OPTIONS_CHANGE, handler);
23344
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_SHIPPING_OPTIONS_CHANGE, handler);
23253
23345
  }
23254
23346
  this.handleOnError(new Error('onShippingOptionsChange event handler is required to return the wallet token string or reject.'));
23255
23347
  }
@@ -23274,10 +23366,10 @@ var BaseWalletButton = /*#__PURE__*/function () {
23274
23366
  value: function onUnavailable(handler) {
23275
23367
  var _this5 = this;
23276
23368
  if (typeof handler === 'function') {
23277
- return this.eventEmitter.subscribe(EVENT.UNAVAILABLE, handler);
23369
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.UNAVAILABLE, handler);
23278
23370
  }
23279
23371
  return new Promise(function (resolve) {
23280
- return _this5.eventEmitter.subscribe(EVENT.UNAVAILABLE, function (err) {
23372
+ return _this5.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.UNAVAILABLE, function (err) {
23281
23373
  return resolve(err);
23282
23374
  });
23283
23375
  });
@@ -23304,10 +23396,10 @@ var BaseWalletButton = /*#__PURE__*/function () {
23304
23396
  value: function onError(handler) {
23305
23397
  var _this6 = this;
23306
23398
  if (typeof handler === 'function') {
23307
- return this.eventEmitter.subscribe(EVENT.ERROR, handler);
23399
+ return this.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ERROR, handler);
23308
23400
  }
23309
23401
  return new Promise(function (resolve) {
23310
- return _this6.eventEmitter.subscribe(EVENT.ERROR, function (err) {
23402
+ return _this6.eventEmitter.subscribe(exports.WALLET_BUTTONS_EXPRESS_EVENT.ERROR, function (err) {
23311
23403
  return resolve(err);
23312
23404
  });
23313
23405
  });
@@ -23344,8 +23436,8 @@ var BaseWalletButton = /*#__PURE__*/function () {
23344
23436
  var _this8 = this;
23345
23437
  return this.api.charge().walletCallback(data)["catch"](function (err) {
23346
23438
  var _a;
23347
- _this8.eventEmitter.emit(EVENT.PAYMENT_ERROR, {
23348
- event: EVENT.PAYMENT_ERROR,
23439
+ _this8.eventEmitter.emit(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR, {
23440
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR,
23349
23441
  chargeId: (_a = _this8.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id,
23350
23442
  data: _this8.eventDataFromApiError(err)
23351
23443
  });
@@ -23359,7 +23451,7 @@ var BaseWalletButton = /*#__PURE__*/function () {
23359
23451
  var _this9 = this;
23360
23452
  return this.api.charge().walletCapture(data).then(function (captureResult) {
23361
23453
  var _a;
23362
- var event = captureResult.status === 'inreview' ? EVENT.PAYMENT_IN_REVIEW : EVENT.PAYMENT_SUCCESSFUL;
23454
+ var event = captureResult.status === 'inreview' ? exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_IN_REVIEW : exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_SUCCESSFUL;
23363
23455
  _this9.eventEmitter.emit(event, {
23364
23456
  event: event,
23365
23457
  chargeId: (_a = _this9.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id,
@@ -23368,8 +23460,8 @@ var BaseWalletButton = /*#__PURE__*/function () {
23368
23460
  return captureResult;
23369
23461
  })["catch"](function (err) {
23370
23462
  var _a;
23371
- _this9.eventEmitter.emit(EVENT.PAYMENT_ERROR, {
23372
- event: EVENT.PAYMENT_ERROR,
23463
+ _this9.eventEmitter.emit(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR, {
23464
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR,
23373
23465
  chargeId: (_a = _this9.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id,
23374
23466
  data: _this9.eventDataFromApiError(err)
23375
23467
  });
@@ -23380,8 +23472,8 @@ var BaseWalletButton = /*#__PURE__*/function () {
23380
23472
  key: "handleMerchantOnExpressButtonClickEvent",
23381
23473
  value: function handleMerchantOnExpressButtonClickEvent() {
23382
23474
  var _this0 = this;
23383
- return this.eventEmitter.emitWithResult(EVENT.ON_CLICK, {
23384
- event: EVENT.ON_CLICK
23475
+ return this.eventEmitter.emitWithResult(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CLICK, {
23476
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CLICK
23385
23477
  }).then(function (result) {
23386
23478
  var _a;
23387
23479
  if (!result || result.length === 0) {
@@ -23458,8 +23550,8 @@ var BaseWalletButton = /*#__PURE__*/function () {
23458
23550
  value: function handleCheckoutClose() {
23459
23551
  var _a;
23460
23552
  var chargeId = (_a = this.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id;
23461
- this.eventEmitter.emit(EVENT.ON_CHECKOUT_CLOSE, _extends({
23462
- event: EVENT.ON_CHECKOUT_CLOSE
23553
+ this.eventEmitter.emit(exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CHECKOUT_CLOSE, _extends({
23554
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_CHECKOUT_CLOSE
23463
23555
  }, chargeId && {
23464
23556
  chargeId: chargeId
23465
23557
  }));
@@ -23467,8 +23559,8 @@ var BaseWalletButton = /*#__PURE__*/function () {
23467
23559
  }, {
23468
23560
  key: "handleOnUnavailable",
23469
23561
  value: function handleOnUnavailable() {
23470
- this.eventEmitter.emit(EVENT.UNAVAILABLE, {
23471
- event: EVENT.UNAVAILABLE
23562
+ this.eventEmitter.emit(exports.WALLET_BUTTONS_EXPRESS_EVENT.UNAVAILABLE, {
23563
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.UNAVAILABLE
23472
23564
  });
23473
23565
  }
23474
23566
  }, {
@@ -23479,8 +23571,8 @@ var BaseWalletButton = /*#__PURE__*/function () {
23479
23571
  console.error(error);
23480
23572
  }
23481
23573
  var chargeId = (_a = this.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id;
23482
- this.eventEmitter.emit(EVENT.ERROR, _extends(_extends({
23483
- event: EVENT.ERROR
23574
+ this.eventEmitter.emit(exports.WALLET_BUTTONS_EXPRESS_EVENT.ERROR, _extends(_extends({
23575
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ERROR
23484
23576
  }, chargeId && {
23485
23577
  chargeId: chargeId
23486
23578
  }), {
@@ -23497,6 +23589,23 @@ var BaseWalletButton = /*#__PURE__*/function () {
23497
23589
  code: ((_c = err === null || err === void 0 ? void 0 : err.error) === null || _c === void 0 ? void 0 : _c.code) || (err === null || err === void 0 ? void 0 : err.code) || ((_d = err === null || err === void 0 ? void 0 : err.error_summary) === null || _d === void 0 ? void 0 : _d.code)
23498
23590
  };
23499
23591
  }
23592
+ }, {
23593
+ key: "applyDisabledStyles",
23594
+ value: function applyDisabledStyles() {
23595
+ var element = this.container.getElement();
23596
+ if (!element) {
23597
+ return;
23598
+ }
23599
+ if (this.isDisabled) {
23600
+ element.style.pointerEvents = 'none';
23601
+ element.style.opacity = '0.5';
23602
+ element.setAttribute('aria-disabled', 'true');
23603
+ } else {
23604
+ element.style.pointerEvents = '';
23605
+ element.style.opacity = '';
23606
+ element.removeAttribute('aria-disabled');
23607
+ }
23608
+ }
23500
23609
  }, {
23501
23610
  key: "validateRequiredMetaFields",
23502
23611
  value: function validateRequiredMetaFields(requiredMetaFields) {
@@ -23539,11 +23648,11 @@ var generateApplePayButtonStyles = function generateApplePayButtonStyles() {
23539
23648
  return "\n apple-pay-button {\n display: inline-block;\n --apple-pay-button-width: 100%;\n --apple-pay-button-height: 40px;\n --apple-pay-button-border-radius: 5px;\n --apple-pay-button-padding: 5px 0px;\n }\n ";
23540
23649
  };
23541
23650
 
23542
- var ContactShippingEditingMode;
23651
+ exports.ContactShippingEditingMode = void 0;
23543
23652
  (function (ContactShippingEditingMode) {
23544
23653
  ContactShippingEditingMode["AVAILABLE"] = "available";
23545
23654
  ContactShippingEditingMode["STORE_PICKUP"] = "store_pickup";
23546
- })(ContactShippingEditingMode || (ContactShippingEditingMode = {}));
23655
+ })(exports.ContactShippingEditingMode || (exports.ContactShippingEditingMode = {}));
23547
23656
 
23548
23657
  var DEFAULT_APPLE_PAY_CAPABILITIES = ['paymentCredentialsAvailable'];
23549
23658
  /**
@@ -23568,7 +23677,14 @@ var ApplePayWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
23568
23677
  _classCallCheck(this, ApplePayWalletButtonExpress);
23569
23678
  _this = _callSuper(this, ApplePayWalletButtonExpress, [selector, publicKeyOrAccessToken, gatewayId, meta, ['amount_label', 'country']]);
23570
23679
  _this.onApplePayButtonClicked = function () {
23571
- var applePayApiVersion = 14;
23680
+ if (_this.isDisabled) {
23681
+ return;
23682
+ }
23683
+ var applePayApiVersion = getSupportedApplePayVersion();
23684
+ if (applePayApiVersion === 0) {
23685
+ _this.handleOnUnavailable();
23686
+ return;
23687
+ }
23572
23688
  _this.paymentSession = new ApplePaySession(applePayApiVersion, _this.createRequest());
23573
23689
  _this.paymentSession.onvalidatemerchant = _this.onValidateMerchant;
23574
23690
  _this.paymentSession.onpaymentauthorized = _this.onPaymentAuthorized;
@@ -23662,8 +23778,8 @@ var ApplePayWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
23662
23778
  } catch (error) {
23663
23779
  // this ensures thatwe always call completePayment and emit error callback even if there's an uncaught exception
23664
23780
  _this.paymentSession.completePayment(ApplePaySession.STATUS_FAILURE);
23665
- _this.eventEmitter.emit(EVENT.PAYMENT_ERROR, {
23666
- event: EVENT.PAYMENT_ERROR,
23781
+ _this.eventEmitter.emit(exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR, {
23782
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.PAYMENT_ERROR,
23667
23783
  chargeId: (_k = _this.chargeWalletTokenMeta) === null || _k === void 0 ? void 0 : _k.charge.id,
23668
23784
  data: {
23669
23785
  message: error instanceof Error ? error.message : 'Payment processing failed',
@@ -23683,7 +23799,7 @@ var ApplePayWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
23683
23799
  while (1) switch (_context.n) {
23684
23800
  case 0:
23685
23801
  return _context.a(2, this.handleMerchantOnShippingChangedEvent({
23686
- event: EVENT.ON_SHIPPING_ADDRESS_CHANGE,
23802
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_SHIPPING_ADDRESS_CHANGE,
23687
23803
  chargeId: (_a = this.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id,
23688
23804
  data: this.parseShippingContactUpdateEvent(data)
23689
23805
  }).then(function (response) {
@@ -23718,7 +23834,7 @@ var ApplePayWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
23718
23834
  while (1) switch (_context2.n) {
23719
23835
  case 0:
23720
23836
  return _context2.a(2, this.handleMerchantOnShippingChangedEvent({
23721
- event: EVENT.ON_SHIPPING_OPTIONS_CHANGE,
23837
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_SHIPPING_OPTIONS_CHANGE,
23722
23838
  chargeId: (_b = this.chargeWalletTokenMeta) === null || _b === void 0 ? void 0 : _b.charge.id,
23723
23839
  data: this.parseShippingMethodUpdateEvent(data)
23724
23840
  }).then(function (_response) {
@@ -23846,6 +23962,7 @@ var ApplePayWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
23846
23962
  return;
23847
23963
  }
23848
23964
  applePayButton.addEventListener('click', this.onApplePayButtonClicked.bind(this));
23965
+ this.applyDisabledStyles();
23849
23966
  }
23850
23967
  }, {
23851
23968
  key: "createRequest",
@@ -23854,7 +23971,7 @@ var ApplePayWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
23854
23971
  // https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest
23855
23972
  var shippingContactEditingMode;
23856
23973
  if (this.meta.shipping_editing_mode) {
23857
- shippingContactEditingMode = this.meta.shipping_editing_mode === ContactShippingEditingMode.AVAILABLE ? 'available' : 'storePickup';
23974
+ shippingContactEditingMode = this.meta.shipping_editing_mode === exports.ContactShippingEditingMode.AVAILABLE ? 'available' : 'storePickup';
23858
23975
  }
23859
23976
  return _extends(_extends({
23860
23977
  countryCode: this.meta.country,
@@ -24038,13 +24155,20 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24038
24155
  key: "load",
24039
24156
  value: function load() {
24040
24157
  var _this2 = this;
24041
- if (!window.Promise) return this.handleOnUnavailable();
24158
+ if (!window.Promise) {
24159
+ return this.handleOnUnavailable();
24160
+ }
24042
24161
  this.getGatewayWalletConfig().then(function (config) {
24043
- if (!config || config.type !== 'Paypal' || !config.credentials || !config.credentials.client_auth) throw new Error('Invalid configuration');
24162
+ if (!config || config.type !== 'Paypal' || !config.credentials || !config.credentials.client_auth) {
24163
+ throw new Error('Invalid configuration');
24164
+ }
24044
24165
  _this2.config = config;
24045
24166
  _this2.renderPaypalButton();
24167
+ _this2.applyDisabledStyles();
24046
24168
  })["catch"](function (err) {
24047
- if (err) _this2.handleOnError(err);
24169
+ if (err) {
24170
+ _this2.handleOnError(err);
24171
+ }
24048
24172
  _this2.handleOnUnavailable();
24049
24173
  });
24050
24174
  }
@@ -24061,6 +24185,7 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24061
24185
  value: function setMeta(meta) {
24062
24186
  this.meta = meta;
24063
24187
  this.renderPaypalButton();
24188
+ this.applyDisabledStyles();
24064
24189
  }
24065
24190
  }, {
24066
24191
  key: "renderPaypalButton",
@@ -24077,7 +24202,7 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24077
24202
  var _this3 = this;
24078
24203
  var _a, _b;
24079
24204
  var buttonId = ((_a = this.container.getElement()) === null || _a === void 0 ? void 0 : _a.id) || '';
24080
- var paypalScript = document.createElement("script");
24205
+ var paypalScript = document.createElement('script');
24081
24206
  paypalScript.src = "https://www.paypal.com/sdk/js?client-id=".concat((_b = this.config.credentials) === null || _b === void 0 ? void 0 : _b.client_auth, "&currency=").concat(this.meta.currency).concat(this.meta.pay_later === true ? '&enable-funding=paylater&disable-funding=card' : '&disable-funding=credit,card').concat(!this.meta.capture ? '&intent=authorize' : '');
24082
24207
  paypalScript.async = true;
24083
24208
  paypalScript.onload = function () {
@@ -24096,7 +24221,7 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24096
24221
  var _this4 = this;
24097
24222
  var _a, _b, _c;
24098
24223
  var buttonId = ((_a = this.container.getElement()) === null || _a === void 0 ? void 0 : _a.id) || '';
24099
- var paypalScript = document.createElement("script");
24224
+ var paypalScript = document.createElement('script');
24100
24225
  // buyer-country is only used in Sandbox. It shouldn't be used in production. Based on buyer's geolocation this parameter determine which funding sources are eligible for a given buyer. Refer the link https://developer.paypal.com/sdk/js/configuration/#link-buyercountry
24101
24226
  paypalScript.src = "https://www.paypal.com/sdk/js?client-id=".concat((_b = this.config.credentials) === null || _b === void 0 ? void 0 : _b.client_auth, "&currency=").concat(this.meta.currency, "&components=buttons,funding-eligibility,messages&enable-funding=paylater").concat(!this.meta.capture ? '&intent=authorize' : '').concat(((_c = this.config) === null || _c === void 0 ? void 0 : _c.mode) === 'live' ? '' : '&buyer-country=AU');
24102
24227
  paypalScript.async = true;
@@ -24137,6 +24262,9 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24137
24262
  style: this.meta.style
24138
24263
  }), {
24139
24264
  onClick: function onClick(_data, actions) {
24265
+ if (_this5.isDisabled) {
24266
+ return actions.reject();
24267
+ }
24140
24268
  return _this5.handleMerchantOnExpressButtonClickEvent().then(function () {
24141
24269
  return actions.resolve();
24142
24270
  })["catch"](function () {
@@ -24147,7 +24275,9 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24147
24275
  createOrder: function createOrder() {
24148
24276
  return new Promise(function (resolve, reject) {
24149
24277
  var _a, _b;
24150
- if (!_this5.api.auth) return reject(new Error('Wallet Token not injected. Please handle onClick correctly.'));
24278
+ if (!_this5.api.auth) {
24279
+ return reject(new Error('Wallet Token not injected. Please handle onClick correctly.'));
24280
+ }
24151
24281
  var shipping = (_b = (_a = _this5.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge) === null || _b === void 0 ? void 0 : _b.shipping;
24152
24282
  if (shipping) {
24153
24283
  var hasCompleteShippingAddress = ['address_line1', 'address_city', 'address_country', 'address_state', 'address_postcode'].every(function (key) {
@@ -24166,7 +24296,9 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24166
24296
  });
24167
24297
  },
24168
24298
  onApprove: function onApprove(data) {
24169
- if (_this5.pendingApprovalPromise) return _this5.pendingApprovalPromise;
24299
+ if (_this5.pendingApprovalPromise) {
24300
+ return _this5.pendingApprovalPromise;
24301
+ }
24170
24302
  _this5.pendingApprovalPromise = _this5.executeWalletCapture({
24171
24303
  payment_method_id: data.orderID,
24172
24304
  customer: {
@@ -24210,7 +24342,7 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24210
24342
  return _context.a(2);
24211
24343
  case 1:
24212
24344
  return _context.a(2, this.handleMerchantOnShippingChangedEvent({
24213
- event: EVENT.ON_SHIPPING_ADDRESS_CHANGE,
24345
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_SHIPPING_ADDRESS_CHANGE,
24214
24346
  chargeId: (_a = this.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id,
24215
24347
  data: {
24216
24348
  address_city: data.shippingAddress.city,
@@ -24245,7 +24377,7 @@ var PaypalWalletButtonExpress = /*#__PURE__*/function (_BaseWalletButton) {
24245
24377
  while (1) switch (_context2.n) {
24246
24378
  case 0:
24247
24379
  return _context2.a(2, this.handleMerchantOnShippingChangedEvent({
24248
- event: EVENT.ON_SHIPPING_OPTIONS_CHANGE,
24380
+ event: exports.WALLET_BUTTONS_EXPRESS_EVENT.ON_SHIPPING_OPTIONS_CHANGE,
24249
24381
  chargeId: (_a = this.chargeWalletTokenMeta) === null || _a === void 0 ? void 0 : _a.charge.id,
24250
24382
  data: {
24251
24383
  shipping_option_id: data.selectedShippingOption.id,
@@ -44355,7 +44487,7 @@ exports.Checkout = Checkout;
44355
44487
  exports.ClickToPay = ClickToPay;
44356
44488
  exports.Configuration = Configuration;
44357
44489
  exports.ELEMENT = ELEMENT;
44358
- exports.EVENT = EVENT$5;
44490
+ exports.EVENT = EVENT$4;
44359
44491
  exports.ExternalCheckoutBuilder = Builder$1;
44360
44492
  exports.ExternalCheckoutChecker = Checker;
44361
44493
  exports.FORM_FIELD = FORM_FIELD$1;
@@ -44367,7 +44499,6 @@ exports.HtmlPaymentSourceWidget = HtmlPaymentSourceWidget;
44367
44499
  exports.HtmlWidget = HtmlWidget;
44368
44500
  exports.InstructionDebugger = InstructionDebugger;
44369
44501
  exports.MultiWidget = MultiWidget;
44370
- exports.OpenWalletButtons = OpenWalletButtons;
44371
44502
  exports.PAYMENT_TYPE = PAYMENT_TYPE;
44372
44503
  exports.PayPalDataCollector = PayPalDataCollector;
44373
44504
  exports.PayPalSavePaymentSourceWidget = PayPalSavePaymentSourceWidget;