@pelcro/react-pelcro-js 2.6.0-beta.1 → 2.6.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -3658,12 +3658,14 @@ var cancel$1 = "Cancel your subscription online at anytime.";
3658
3658
  var giftSent$1 = "Subscription gift has been sent to";
3659
3659
  var successfully$1 = "successfully";
3660
3660
  var entitlement$1 = "Some of the content on this page is available with one or more of our plans. <1>Subscribe</1> now to get full page access.";
3661
+ var recaptcha$1 = "This site is protected by reCAPTCHA and the Google <1>Privacy Policy</1> and <3>Terms of Service</3> apply.";
3661
3662
  var messages_en = {
3662
3663
  youAreSafe: youAreSafe$1,
3663
3664
  cancel: cancel$1,
3664
3665
  giftSent: giftSent$1,
3665
3666
  successfully: successfully$1,
3666
- entitlement: entitlement$1
3667
+ entitlement: entitlement$1,
3668
+ recaptcha: recaptcha$1
3667
3669
  };
3668
3670
 
3669
3671
  var youAreSafe = "Vous êtes en sécurité - PCI conforme 128 SSL par";
@@ -3671,12 +3673,14 @@ var cancel = "Annuler votre abonnement en ligne à tout moment.";
3671
3673
  var giftSent = "Le cadeau d’abonnement a été envoyé à";
3672
3674
  var successfully = "avec succès.";
3673
3675
  var entitlement = "Une partie du contenu de cette page est disponible sous un ou plusieurs de nos plans. <1>Abonnez-vous</1> à l'un de nos plans disponibles pour accéder à plus de contenu";
3676
+ var recaptcha = "Ce site est protégé par reCAPTCHA - les <1>règles de confidentialité</1> Google ainsi que les <3>conditions d'utilisation</3> s'appliquent.";
3674
3677
  var messages_fr = {
3675
3678
  youAreSafe: youAreSafe,
3676
3679
  cancel: cancel,
3677
3680
  giftSent: giftSent,
3678
3681
  successfully: successfully,
3679
- entitlement: entitlement
3682
+ entitlement: entitlement,
3683
+ recaptcha: recaptcha
3680
3684
  };
3681
3685
 
3682
3686
  var labels$f = {
@@ -4359,7 +4363,8 @@ var labels$3 = {
4359
4363
  title: "Status",
4360
4364
  active: "Active",
4361
4365
  inTrial: "In trial",
4362
- endingSoon: "Ending soon"
4366
+ endingSoon: "Ending soon",
4367
+ scheduled: "Scheduled"
4363
4368
  },
4364
4369
  shipments: "Shipments remaining",
4365
4370
  logout: "Logout",
@@ -4385,6 +4390,7 @@ var labels$3 = {
4385
4390
  paymentSource: "Payment cards",
4386
4391
  actions: "Actions",
4387
4392
  expiresOn: "Ends",
4393
+ startsOn: "Starts",
4388
4394
  renewsOn: "Renews",
4389
4395
  canceledOn: "Canceled on",
4390
4396
  recipient: "Recipient",
@@ -4436,7 +4442,8 @@ var labels$2 = {
4436
4442
  title: "Statut",
4437
4443
  active: "Active",
4438
4444
  inTrial: "Dans l'essai",
4439
- endingSoon: "Fin bientôt"
4445
+ endingSoon: "Fin bientôt",
4446
+ scheduled: "Programmé"
4440
4447
  },
4441
4448
  shipments: "Expéditions restantes",
4442
4449
  logout: "Déconnexion",
@@ -4462,6 +4469,7 @@ var labels$2 = {
4462
4469
  paymentSource: "Sources de paiement",
4463
4470
  actions: "Actes",
4464
4471
  expiresOn: "Expire le",
4472
+ startsOn: "Débute le",
4465
4473
  renewsOn: "Renouvelle le",
4466
4474
  canceledOn: "Annulé le",
4467
4475
  recipient: "Destinataire",
@@ -4494,7 +4502,7 @@ var messages$2 = {
4494
4502
  isSureToCancel: "Êtes-vous certain de vouloir annuler votre abonnement?",
4495
4503
  loading: "Annulation de l'abonnement",
4496
4504
  success: "L'abonnement a été annulé avec succès",
4497
- error: "Une erreure s'est produite lors de l'annulation de l'abonnement"
4505
+ error: "Une erreur s'est produite lors de l'annulation de l'abonnement"
4498
4506
  }
4499
4507
  };
4500
4508
  var dashboard_fr = {
@@ -6327,13 +6335,34 @@ const getAddressById = id => {
6327
6335
  };
6328
6336
  /**
6329
6337
  * Transforms locale names stored in our backend like
6330
- * "en_US" into the standerd accepted in core i18n methods: "en-US"
6338
+ * "en_US" into the standard accepted in core i18n methods: "en-US"
6331
6339
  * @param {string} localeName
6332
6340
  * @return {string | undefined}
6333
6341
  * @example getCanonicalLocaleFormat("en_US") => "en-US"
6334
6342
  */
6335
6343
 
6336
6344
  const getCanonicalLocaleFormat = localeName => localeName === null || localeName === void 0 ? void 0 : localeName.replace("_", "-");
6345
+ /**
6346
+ * @param {string} localeName
6347
+ * @return {string | undefined}
6348
+ * @example getLanguageWithoutRegion("en-US") => "en"
6349
+ */
6350
+
6351
+ const getLanguageWithoutRegion = localeName => {
6352
+ var _getCanonicalLocaleFo;
6353
+
6354
+ return (_getCanonicalLocaleFo = getCanonicalLocaleFormat(localeName)) === null || _getCanonicalLocaleFo === void 0 ? void 0 : _getCanonicalLocaleFo.split("-")[0];
6355
+ };
6356
+ /**
6357
+ * Gets the current page language or fallbacks to site default
6358
+ * @return {string | undefined}
6359
+ */
6360
+
6361
+ const getPageOrDefaultLanguage = () => {
6362
+ var _window$Pelcro$helper, _window$Pelcro, _window$Pelcro$site, _window$Pelcro$site$r, _window$Pelcro$site$r2;
6363
+
6364
+ return (_window$Pelcro$helper = window.Pelcro.helpers.getHtmlLanguageAttribute()) !== null && _window$Pelcro$helper !== void 0 ? _window$Pelcro$helper : getLanguageWithoutRegion((_window$Pelcro = window.Pelcro) === null || _window$Pelcro === void 0 ? void 0 : (_window$Pelcro$site = _window$Pelcro.site) === null || _window$Pelcro$site === void 0 ? void 0 : (_window$Pelcro$site$r = _window$Pelcro$site.read) === null || _window$Pelcro$site$r === void 0 ? void 0 : (_window$Pelcro$site$r2 = _window$Pelcro$site$r.call(_window$Pelcro$site)) === null || _window$Pelcro$site$r2 === void 0 ? void 0 : _window$Pelcro$site$r2.default_locale);
6365
+ };
6337
6366
  /**
6338
6367
  * Returns a formatted price string depending on locale
6339
6368
  * @param {number} amount
@@ -6343,7 +6372,7 @@ const getCanonicalLocaleFormat = localeName => localeName === null || localeName
6343
6372
  * @example getFormattedPriceByLocal(10, 'USD', 'en-US') => "$10.00"
6344
6373
  */
6345
6374
 
6346
- const getFormattedPriceByLocal = (amount, currency = "USD", locale = "en-US") => {
6375
+ const getFormattedPriceByLocal = (amount, currency = "USD", locale = "en") => {
6347
6376
  const formatter = new Intl.NumberFormat(getCanonicalLocaleFormat(locale), {
6348
6377
  style: "currency",
6349
6378
  currency
@@ -6368,8 +6397,7 @@ const calcAndFormatItemsTotal = (items, currency) => {
6368
6397
  totalWithoutDividingBy100 += parseFloat(item.price ? (item.price * item.quantity).toFixed(2) : item.amount.toFixed(2));
6369
6398
  }
6370
6399
 
6371
- const locale = window.Pelcro.site.read().default_locale;
6372
- return getFormattedPriceByLocal(totalWithoutDividingBy100, currency, locale);
6400
+ return getFormattedPriceByLocal(totalWithoutDividingBy100, currency, getPageOrDefaultLanguage());
6373
6401
  };
6374
6402
  /**
6375
6403
  * returns true if the URL contains a supported view trigger URL
@@ -6383,12 +6411,15 @@ const isValidViewFromURL = viewID => {
6383
6411
  }
6384
6412
 
6385
6413
  return false;
6414
+ /**
6415
+ *
6416
+ */
6386
6417
 
6387
6418
  function hasValidNewsletterUpdateUrl() {
6388
- var _window$Pelcro, _window$Pelcro$uiSett;
6419
+ var _window$Pelcro2, _window$Pelcro2$uiSet;
6389
6420
 
6390
6421
  if (viewID !== "newsletter-update") return false;
6391
- const newsletters = (_window$Pelcro = window.Pelcro) === null || _window$Pelcro === void 0 ? void 0 : (_window$Pelcro$uiSett = _window$Pelcro.uiSettings) === null || _window$Pelcro$uiSett === void 0 ? void 0 : _window$Pelcro$uiSett.newsletters;
6422
+ const newsletters = (_window$Pelcro2 = window.Pelcro) === null || _window$Pelcro2 === void 0 ? void 0 : (_window$Pelcro2$uiSet = _window$Pelcro2.uiSettings) === null || _window$Pelcro2$uiSet === void 0 ? void 0 : _window$Pelcro2$uiSet.newsletters;
6392
6423
  const siteHasNewslettersDefined = Array.isArray(newsletters) && newsletters.length > 0;
6393
6424
 
6394
6425
  if (!siteHasNewslettersDefined) {
@@ -6561,10 +6592,20 @@ const getPaymentCardIcon$1 = name => {
6561
6592
  d: "M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z"
6562
6593
  }));
6563
6594
  };
6595
+ /**
6596
+ * Gets the current date with time set to 0
6597
+ * @param {Date} dateObject
6598
+ * @return {Date}
6599
+ */
6600
+
6601
+ function getDateWithoutTime(dateObject) {
6602
+ const date = new Date(dateObject.getTime());
6603
+ date.setHours(0, 0, 0, 0);
6604
+ return date;
6605
+ }
6564
6606
 
6565
- var _window$Pelcro, _window$Pelcro$site, _window$Pelcro$site$r, _window$Pelcro$site$r2;
6566
6607
  const resources = {
6567
- "en-US": {
6608
+ en: {
6568
6609
  common: common_en,
6569
6610
  paymentMethod: paymentMethod_en,
6570
6611
  newsletter: newsletter_en,
@@ -6586,7 +6627,7 @@ const resources = {
6586
6627
  select: select_en,
6587
6628
  notification: notification_en
6588
6629
  },
6589
- "fr-CA": {
6630
+ fr: {
6590
6631
  common: common_fr,
6591
6632
  paymentMethod: paymentMethod_fr,
6592
6633
  newsletter: newsletter_fr,
@@ -6608,13 +6649,14 @@ const resources = {
6608
6649
  select: select_fr,
6609
6650
  notification: notification_fr
6610
6651
  }
6611
- };
6612
- let locale = (_window$Pelcro = window.Pelcro) === null || _window$Pelcro === void 0 ? void 0 : (_window$Pelcro$site = _window$Pelcro.site) === null || _window$Pelcro$site === void 0 ? void 0 : (_window$Pelcro$site$r = _window$Pelcro$site.read) === null || _window$Pelcro$site$r === void 0 ? void 0 : (_window$Pelcro$site$r2 = _window$Pelcro$site$r.call(_window$Pelcro$site)) === null || _window$Pelcro$site$r2 === void 0 ? void 0 : _window$Pelcro$site$r2.default_locale;
6613
- if (!locale) locale = "en-US";
6652
+ }; // set UI language to the page language or default to the language in site settings
6653
+
6654
+ const locale = getPageOrDefaultLanguage();
6614
6655
  i18next.use(initReactI18next) // passes i18n down to react-i18next,
6615
6656
  .init({
6616
6657
  resources,
6617
- lng: getCanonicalLocaleFormat(locale),
6658
+ lng: locale,
6659
+ fallbackLng: "en",
6618
6660
  // debug: true,
6619
6661
  interpolation: {
6620
6662
  escapeValue: false // react already safes from xss
@@ -6625,6 +6667,16 @@ i18next.use(initReactI18next) // passes i18n down to react-i18next,
6625
6667
 
6626
6668
  }
6627
6669
  });
6670
+ const pageLanguageObserver = new MutationObserver(mutationsList => {
6671
+ mutationsList.forEach(mutationRecord => {
6672
+ if (mutationRecord.attributeName === "lang") {
6673
+ i18next.changeLanguage(window.Pelcro.helpers.getHtmlLanguageAttribute());
6674
+ }
6675
+ });
6676
+ });
6677
+ pageLanguageObserver.observe(document.documentElement, {
6678
+ attributes: true
6679
+ });
6628
6680
 
6629
6681
  function _classPrivateFieldGet(receiver, privateMap) {
6630
6682
  var descriptor = privateMap.get(receiver);
@@ -6877,8 +6929,8 @@ const saveToMetadataButton = new SaveToMetadataButtonClass();
6877
6929
 
6878
6930
  let e={data:""},t=t=>"undefined"!=typeof window?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||e,l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/g,a=/\/\*[^]*?\*\/|\s\s+|\n/g,n=(e,t)=>{let r,l="",a="",o="";for(let c in e){let s=e[c];"object"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):c,a+="@"==c[0]?"f"==c[1]?n(s,c):c+"{"+n(s,"k"==c[1]?"":t)+"}":n(s,r)):"@"==c[0]&&"i"==c[1]?l=c+" "+s+";":(c=c.replace(/[A-Z]/g,"-$&").toLowerCase(),o+=n.p?n.p(c,s):c+":"+s+";");}return o[0]?(r=t?t+"{"+o+"}":o,l+r+a):l+a},o={},c=e=>{let t="";for(let r in e)t+=r+("object"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,i)=>{let p="object"==typeof e?c(e):e,u=o[p]||(o[p]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return "go"+r})(p));if(!o[u]){let t="object"==typeof e?e:(e=>{let t,r=[{}];for(;t=l.exec(e.replace(a,""));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);o[u]=n(i?{["@keyframes "+u]:t}:t,r?"":"."+u);}return ((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e);})(o[u],t,s),u},i=(e,t,r)=>e.reduce((e,l,a)=>{let o=t[a];if(o&&o.call){let e=o(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;o=t?"."+t:e&&"object"==typeof e?e.props?"":n(e,""):e;}return e+l+(null==o?"":o)},"");function p(e){let r=this||{},l=e.call?e(r.p):e;return s(l.unshift?l.raw?i(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):l,t(r.target),r.g,r.o,r.k)}let u,f,d;p.bind({g:1});let b=p.bind({k:1});function h(e,t,r,l){n.p=t,u=e,f=r,d=l;}function y(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\d+/.test(s),c.className=p.apply(r,l)+(s?" "+s:""),t&&(c.ref=o);let i=c.as||e;return d&&i[0]&&d(c),u(i,c)}return t?t(a):a}}
6879
6931
 
6880
- function _extends$u() {
6881
- _extends$u = Object.assign || function (target) {
6932
+ function _extends$v() {
6933
+ _extends$v = Object.assign || function (target) {
6882
6934
  for (var i = 1; i < arguments.length; i++) {
6883
6935
  var source = arguments[i];
6884
6936
 
@@ -6892,7 +6944,7 @@ function _extends$u() {
6892
6944
  return target;
6893
6945
  };
6894
6946
 
6895
- return _extends$u.apply(this, arguments);
6947
+ return _extends$v.apply(this, arguments);
6896
6948
  }
6897
6949
 
6898
6950
  function _taggedTemplateLiteralLoose(strings, raw) {
@@ -6982,7 +7034,7 @@ var clearFromRemoveQueue = function clearFromRemoveQueue(toastId) {
6982
7034
  var reducer = function reducer(state, action) {
6983
7035
  switch (action.type) {
6984
7036
  case ActionType.ADD_TOAST:
6985
- return _extends$u({}, state, {
7037
+ return _extends$v({}, state, {
6986
7038
  toasts: [action.toast].concat(state.toasts).slice(0, TOAST_LIMIT)
6987
7039
  });
6988
7040
 
@@ -6992,9 +7044,9 @@ var reducer = function reducer(state, action) {
6992
7044
  clearFromRemoveQueue(action.toast.id);
6993
7045
  }
6994
7046
 
6995
- return _extends$u({}, state, {
7047
+ return _extends$v({}, state, {
6996
7048
  toasts: state.toasts.map(function (t) {
6997
- return t.id === action.toast.id ? _extends$u({}, t, action.toast) : t;
7049
+ return t.id === action.toast.id ? _extends$v({}, t, action.toast) : t;
6998
7050
  })
6999
7051
  });
7000
7052
 
@@ -7021,9 +7073,9 @@ var reducer = function reducer(state, action) {
7021
7073
  });
7022
7074
  }
7023
7075
 
7024
- return _extends$u({}, state, {
7076
+ return _extends$v({}, state, {
7025
7077
  toasts: state.toasts.map(function (t) {
7026
- return t.id === toastId || toastId === undefined ? _extends$u({}, t, {
7078
+ return t.id === toastId || toastId === undefined ? _extends$v({}, t, {
7027
7079
  visible: false
7028
7080
  }) : t;
7029
7081
  })
@@ -7031,28 +7083,28 @@ var reducer = function reducer(state, action) {
7031
7083
 
7032
7084
  case ActionType.REMOVE_TOAST:
7033
7085
  if (action.toastId === undefined) {
7034
- return _extends$u({}, state, {
7086
+ return _extends$v({}, state, {
7035
7087
  toasts: []
7036
7088
  });
7037
7089
  }
7038
7090
 
7039
- return _extends$u({}, state, {
7091
+ return _extends$v({}, state, {
7040
7092
  toasts: state.toasts.filter(function (t) {
7041
7093
  return t.id !== action.toastId;
7042
7094
  })
7043
7095
  });
7044
7096
 
7045
7097
  case ActionType.START_PAUSE:
7046
- return _extends$u({}, state, {
7098
+ return _extends$v({}, state, {
7047
7099
  pausedAt: action.time
7048
7100
  });
7049
7101
 
7050
7102
  case ActionType.END_PAUSE:
7051
7103
  var diff = action.time - (state.pausedAt || 0);
7052
- return _extends$u({}, state, {
7104
+ return _extends$v({}, state, {
7053
7105
  pausedAt: undefined,
7054
7106
  toasts: state.toasts.map(function (t) {
7055
- return _extends$u({}, t, {
7107
+ return _extends$v({}, t, {
7056
7108
  pauseDuration: t.pauseDuration + diff
7057
7109
  });
7058
7110
  })
@@ -7099,12 +7151,12 @@ var useStore = function useStore(toastOptions) {
7099
7151
  var mergedToasts = state.toasts.map(function (t) {
7100
7152
  var _toastOptions$t$type, _toastOptions, _toastOptions$t$type2;
7101
7153
 
7102
- return _extends$u({}, toastOptions, toastOptions[t.type], t, {
7154
+ return _extends$v({}, toastOptions, toastOptions[t.type], t, {
7103
7155
  duration: t.duration || ((_toastOptions$t$type = toastOptions[t.type]) == null ? void 0 : _toastOptions$t$type.duration) || ((_toastOptions = toastOptions) == null ? void 0 : _toastOptions.duration) || defaultTimeouts[t.type],
7104
- style: _extends$u({}, toastOptions.style, (_toastOptions$t$type2 = toastOptions[t.type]) == null ? void 0 : _toastOptions$t$type2.style, t.style)
7156
+ style: _extends$v({}, toastOptions.style, (_toastOptions$t$type2 = toastOptions[t.type]) == null ? void 0 : _toastOptions$t$type2.style, t.style)
7105
7157
  });
7106
7158
  });
7107
- return _extends$u({}, state, {
7159
+ return _extends$v({}, state, {
7108
7160
  toasts: mergedToasts
7109
7161
  });
7110
7162
  };
@@ -7114,7 +7166,7 @@ var createToast = function createToast(message, type, opts) {
7114
7166
  type = 'blank';
7115
7167
  }
7116
7168
 
7117
- return _extends$u({
7169
+ return _extends$v({
7118
7170
  createdAt: Date.now(),
7119
7171
  visible: true,
7120
7172
  type: type,
@@ -7164,14 +7216,14 @@ toast.remove = function (toastId) {
7164
7216
  };
7165
7217
 
7166
7218
  toast.promise = function (promise, msgs, opts) {
7167
- var id = toast.loading(msgs.loading, _extends$u({}, opts, opts == null ? void 0 : opts.loading));
7219
+ var id = toast.loading(msgs.loading, _extends$v({}, opts, opts == null ? void 0 : opts.loading));
7168
7220
  promise.then(function (p) {
7169
- toast.success(resolveValue(msgs.success, p), _extends$u({
7221
+ toast.success(resolveValue(msgs.success, p), _extends$v({
7170
7222
  id: id
7171
7223
  }, opts, opts == null ? void 0 : opts.success));
7172
7224
  return p;
7173
7225
  })["catch"](function (e) {
7174
- toast.error(resolveValue(msgs.error, e), _extends$u({
7226
+ toast.error(resolveValue(msgs.error, e), _extends$v({
7175
7227
  id: id
7176
7228
  }, opts, opts == null ? void 0 : opts.error));
7177
7229
  });
@@ -7510,7 +7562,7 @@ var ToastBar = /*#__PURE__*/React.memo(function (_ref2) {
7510
7562
  var message = React.createElement(Message, Object.assign({}, toast.ariaProps), resolveValue(toast.message, toast));
7511
7563
  return React.createElement(ToastBarBase, {
7512
7564
  className: toast.className,
7513
- style: _extends$u({}, animationStyle, style, toast.style)
7565
+ style: _extends$v({}, animationStyle, style, toast.style)
7514
7566
  }, typeof children === 'function' ? children({
7515
7567
  icon: icon,
7516
7568
  message: message
@@ -7540,7 +7592,7 @@ var getPositionStyle = function getPositionStyle(position, offset) {
7540
7592
  } : position.includes('right') ? {
7541
7593
  justifyContent: 'flex-end'
7542
7594
  } : {};
7543
- return _extends$u({
7595
+ return _extends$v({
7544
7596
  left: 0,
7545
7597
  right: 0,
7546
7598
  display: 'flex',
@@ -7567,7 +7619,7 @@ var Toaster = function Toaster(_ref) {
7567
7619
  handlers = _useToaster.handlers;
7568
7620
 
7569
7621
  return React.createElement("div", {
7570
- style: _extends$u({
7622
+ style: _extends$v({
7571
7623
  position: 'fixed',
7572
7624
  zIndex: 9999,
7573
7625
  top: DEFAULT_OFFSET,
@@ -7602,82 +7654,82 @@ var Toaster = function Toaster(_ref) {
7602
7654
  }));
7603
7655
  };
7604
7656
 
7605
- var _path$r;
7657
+ var _path$s;
7606
7658
 
7607
- function _extends$t() { _extends$t = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); }
7659
+ function _extends$u() { _extends$u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); }
7608
7660
 
7609
7661
  function SvgCheckSolid(props) {
7610
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$t({
7662
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$u({
7611
7663
  xmlns: "http://www.w3.org/2000/svg",
7612
7664
  className: "h-5 w-5",
7613
7665
  viewBox: "0 0 20 20",
7614
7666
  fill: "currentColor"
7615
- }, props), _path$r || (_path$r = /*#__PURE__*/React__namespace.createElement("path", {
7667
+ }, props), _path$s || (_path$s = /*#__PURE__*/React__namespace.createElement("path", {
7616
7668
  fillRule: "evenodd",
7617
7669
  d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
7618
7670
  clipRule: "evenodd"
7619
7671
  })));
7620
7672
  }
7621
7673
 
7622
- var _path$q;
7674
+ var _path$r;
7623
7675
 
7624
- function _extends$s() { _extends$s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); }
7676
+ function _extends$t() { _extends$t = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); }
7625
7677
 
7626
7678
  function SvgXIcon(props) {
7627
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$s({
7679
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$t({
7628
7680
  xmlns: "http://www.w3.org/2000/svg",
7629
7681
  viewBox: "0 0 20 20",
7630
7682
  fill: "currentColor"
7631
- }, props), _path$q || (_path$q = /*#__PURE__*/React__namespace.createElement("path", {
7683
+ }, props), _path$r || (_path$r = /*#__PURE__*/React__namespace.createElement("path", {
7632
7684
  fill: "evenodd",
7633
7685
  d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
7634
7686
  clipRule: "evenodd"
7635
7687
  })));
7636
7688
  }
7637
7689
 
7638
- var _path$p;
7690
+ var _path$q;
7639
7691
 
7640
- function _extends$r() { _extends$r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); }
7692
+ function _extends$s() { _extends$s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); }
7641
7693
 
7642
7694
  function SvgXIconSolid(props) {
7643
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
7695
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$s({
7644
7696
  className: "plc-w-4 plc-h-4",
7645
7697
  fill: "currentColor",
7646
7698
  xmlns: "http://www.w3.org/2000/svg",
7647
7699
  viewBox: "0 0 100 100"
7648
- }, props), _path$p || (_path$p = /*#__PURE__*/React__namespace.createElement("path", {
7700
+ }, props), _path$q || (_path$q = /*#__PURE__*/React__namespace.createElement("path", {
7649
7701
  d: "M94.842 48.408c0 24.852-20.148 44.999-45.002 44.999-24.851 0-44.997-20.146-44.997-44.999 0-24.854 20.146-45 44.997-45 24.853 0 45.002 20.146 45.002 45zM71.073 64.841L54.73 48.497l16.344-16.344-4.979-4.979-16.343 16.345-16.343-16.344-4.799 4.799 16.344 16.344L28.61 64.661l4.979 4.978 16.344-16.344 16.343 16.344 4.797-4.798z"
7650
7702
  })));
7651
7703
  }
7652
7704
 
7653
- var _path$o;
7705
+ var _path$p;
7654
7706
 
7655
- function _extends$q() { _extends$q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); }
7707
+ function _extends$r() { _extends$r = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); }
7656
7708
 
7657
7709
  function SvgExclamation(props) {
7658
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$q({
7710
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
7659
7711
  className: "plc-w-4 plc-h-4 plc-mr-1",
7660
7712
  xmlns: "http://www.w3.org/2000/svg",
7661
7713
  viewBox: "0 0 20 20",
7662
7714
  fill: "currentColor"
7663
- }, props), _path$o || (_path$o = /*#__PURE__*/React__namespace.createElement("path", {
7715
+ }, props), _path$p || (_path$p = /*#__PURE__*/React__namespace.createElement("path", {
7664
7716
  fillRule: "evenodd",
7665
7717
  d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z",
7666
7718
  clipRule: "evenodd"
7667
7719
  })));
7668
7720
  }
7669
7721
 
7670
- var _path$n, _path2$3;
7722
+ var _path$o, _path2$3;
7671
7723
 
7672
- function _extends$p() { _extends$p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); }
7724
+ function _extends$q() { _extends$q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); }
7673
7725
 
7674
7726
  function SvgSpinner(props) {
7675
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$p({
7727
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$q({
7676
7728
  className: "plc-animate-spin",
7677
7729
  viewBox: "0 0 24 24",
7678
7730
  fill: "currentColor",
7679
7731
  xmlns: "http://www.w3.org/2000/svg"
7680
- }, props), _path$n || (_path$n = /*#__PURE__*/React__namespace.createElement("path", {
7732
+ }, props), _path$o || (_path$o = /*#__PURE__*/React__namespace.createElement("path", {
7681
7733
  opacity: 0.2,
7682
7734
  fill: "evenodd",
7683
7735
  clipRule: "evenodd",
@@ -8238,6 +8290,175 @@ function shouldBlurContent(entitlements) {
8238
8290
  return entitlements.every(entitlement => !window.Pelcro.user.isEntitledTo(entitlement));
8239
8291
  }
8240
8292
 
8293
+ var pure$1 = createCommonjsModule(function (module, exports) {
8294
+
8295
+ Object.defineProperty(exports, '__esModule', { value: true });
8296
+
8297
+ function _typeof(obj) {
8298
+ "@babel/helpers - typeof";
8299
+
8300
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
8301
+ _typeof = function (obj) {
8302
+ return typeof obj;
8303
+ };
8304
+ } else {
8305
+ _typeof = function (obj) {
8306
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
8307
+ };
8308
+ }
8309
+
8310
+ return _typeof(obj);
8311
+ }
8312
+
8313
+ var V3_URL = 'https://js.stripe.com/v3';
8314
+ var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
8315
+ var EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';
8316
+ var findScript = function findScript() {
8317
+ var scripts = document.querySelectorAll("script[src^=\"".concat(V3_URL, "\"]"));
8318
+
8319
+ for (var i = 0; i < scripts.length; i++) {
8320
+ var script = scripts[i];
8321
+
8322
+ if (!V3_URL_REGEX.test(script.src)) {
8323
+ continue;
8324
+ }
8325
+
8326
+ return script;
8327
+ }
8328
+
8329
+ return null;
8330
+ };
8331
+
8332
+ var injectScript = function injectScript(params) {
8333
+ var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';
8334
+ var script = document.createElement('script');
8335
+ script.src = "".concat(V3_URL).concat(queryString);
8336
+ var headOrBody = document.head || document.body;
8337
+
8338
+ if (!headOrBody) {
8339
+ throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');
8340
+ }
8341
+
8342
+ headOrBody.appendChild(script);
8343
+ return script;
8344
+ };
8345
+
8346
+ var registerWrapper = function registerWrapper(stripe, startTime) {
8347
+ if (!stripe || !stripe._registerWrapper) {
8348
+ return;
8349
+ }
8350
+
8351
+ stripe._registerWrapper({
8352
+ name: 'stripe-js',
8353
+ version: "1.21.1",
8354
+ startTime: startTime
8355
+ });
8356
+ };
8357
+
8358
+ var stripePromise = null;
8359
+ var loadScript = function loadScript(params) {
8360
+ // Ensure that we only attempt to load Stripe.js at most once
8361
+ if (stripePromise !== null) {
8362
+ return stripePromise;
8363
+ }
8364
+
8365
+ stripePromise = new Promise(function (resolve, reject) {
8366
+ if (typeof window === 'undefined') {
8367
+ // Resolve to null when imported server side. This makes the module
8368
+ // safe to import in an isomorphic code base.
8369
+ resolve(null);
8370
+ return;
8371
+ }
8372
+
8373
+ if (window.Stripe && params) {
8374
+ console.warn(EXISTING_SCRIPT_MESSAGE);
8375
+ }
8376
+
8377
+ if (window.Stripe) {
8378
+ resolve(window.Stripe);
8379
+ return;
8380
+ }
8381
+
8382
+ try {
8383
+ var script = findScript();
8384
+
8385
+ if (script && params) {
8386
+ console.warn(EXISTING_SCRIPT_MESSAGE);
8387
+ } else if (!script) {
8388
+ script = injectScript(params);
8389
+ }
8390
+
8391
+ script.addEventListener('load', function () {
8392
+ if (window.Stripe) {
8393
+ resolve(window.Stripe);
8394
+ } else {
8395
+ reject(new Error('Stripe.js not available'));
8396
+ }
8397
+ });
8398
+ script.addEventListener('error', function () {
8399
+ reject(new Error('Failed to load Stripe.js'));
8400
+ });
8401
+ } catch (error) {
8402
+ reject(error);
8403
+ return;
8404
+ }
8405
+ });
8406
+ return stripePromise;
8407
+ };
8408
+ var initStripe = function initStripe(maybeStripe, args, startTime) {
8409
+ if (maybeStripe === null) {
8410
+ return null;
8411
+ }
8412
+
8413
+ var stripe = maybeStripe.apply(undefined, args);
8414
+ registerWrapper(stripe, startTime);
8415
+ return stripe;
8416
+ };
8417
+ var validateLoadParams = function validateLoadParams(params) {
8418
+ var errorMessage = "invalid load parameters; expected object of shape\n\n {advancedFraudSignals: boolean}\n\nbut received\n\n ".concat(JSON.stringify(params), "\n");
8419
+
8420
+ if (params === null || _typeof(params) !== 'object') {
8421
+ throw new Error(errorMessage);
8422
+ }
8423
+
8424
+ if (Object.keys(params).length === 1 && typeof params.advancedFraudSignals === 'boolean') {
8425
+ return params;
8426
+ }
8427
+
8428
+ throw new Error(errorMessage);
8429
+ };
8430
+
8431
+ var loadParams;
8432
+ var loadStripeCalled = false;
8433
+ var loadStripe = function loadStripe() {
8434
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8435
+ args[_key] = arguments[_key];
8436
+ }
8437
+
8438
+ loadStripeCalled = true;
8439
+ var startTime = Date.now();
8440
+ return loadScript(loadParams).then(function (maybeStripe) {
8441
+ return initStripe(maybeStripe, args, startTime);
8442
+ });
8443
+ };
8444
+
8445
+ loadStripe.setLoadParameters = function (params) {
8446
+ if (loadStripeCalled) {
8447
+ throw new Error('You cannot change load parameters after calling loadStripe');
8448
+ }
8449
+
8450
+ loadParams = validateLoadParams(params);
8451
+ };
8452
+
8453
+ exports.loadStripe = loadStripe;
8454
+ });
8455
+
8456
+ unwrapExports(pure$1);
8457
+ pure$1.loadStripe;
8458
+
8459
+ var pure = pure$1;
8460
+ var pure_1 = pure.loadStripe;
8461
+
8241
8462
  /**
8242
8463
  * @typedef {Object} OptionsType
8243
8464
  * @property {boolean} loadPaymentSDKs
@@ -8263,6 +8484,7 @@ const optionsController = options => {
8263
8484
  enableURLTriggers: initViewFromURL,
8264
8485
  enableTheme: applyPelcroTheme,
8265
8486
  enablePaywalls: initPaywalls,
8487
+ loadSecuritySDK: initSecuritySdk,
8266
8488
  enableGoogleAnalytics: initGATracking
8267
8489
  }; // Only execute enabled options
8268
8490
 
@@ -8307,8 +8529,15 @@ const initPaywalls = () => {
8307
8529
  }
8308
8530
  };
8309
8531
  const loadPaymentSDKs = () => {
8310
- // Load stripe's SDK
8311
- window.Pelcro.helpers.loadSDK("https://js.stripe.com/v3/", "pelcro-sdk-stripe-id"); // Load PayPal SDK's
8532
+ // Lazy load stripe's SDK
8533
+ const {
8534
+ whenUserReady
8535
+ } = usePelcro.getStore();
8536
+ whenUserReady(() => {
8537
+ if (!window.Stripe) {
8538
+ pure_1(window.Pelcro.environment.stripe);
8539
+ }
8540
+ }); // Load PayPal SDK's
8312
8541
 
8313
8542
  const supportsPaypal = Boolean(window.Pelcro.site.read().braintree_tokenization);
8314
8543
 
@@ -8317,6 +8546,18 @@ const loadPaymentSDKs = () => {
8317
8546
  window.Pelcro.helpers.loadSDK("https://js.braintreegateway.com/web/3.69.0/js/paypal-checkout.min.js", "braintree-paypal-sdk");
8318
8547
  }
8319
8548
  };
8549
+ const initSecuritySdk = () => {
8550
+ const {
8551
+ whenSiteReady
8552
+ } = usePelcro.getStore();
8553
+ whenSiteReady(() => {
8554
+ var _window$Pelcro$site$r2;
8555
+
8556
+ const securityKey = (_window$Pelcro$site$r2 = window.Pelcro.site.read()) === null || _window$Pelcro$site$r2 === void 0 ? void 0 : _window$Pelcro$site$r2.security_key;
8557
+ if (!securityKey) return;
8558
+ window.Pelcro.helpers.loadSDK(`https://www.google.com/recaptcha/enterprise.js?render=${securityKey}`, "pelcro-security-enteprise");
8559
+ });
8560
+ };
8320
8561
  const initGATracking = () => {
8321
8562
  var _ReactGA$initialize, _ReactGA$plugin, _ReactGA$plugin$requi;
8322
8563
 
@@ -8403,9 +8644,9 @@ const applyPelcroTheme = () => {
8403
8644
  };
8404
8645
 
8405
8646
  whenSiteReady(() => {
8406
- var _window$Pelcro$site$r2, _window$Pelcro$site$r3;
8647
+ var _window$Pelcro$site$r3, _window$Pelcro$site$r4;
8407
8648
 
8408
- const primaryColorHex = (_window$Pelcro$site$r2 = window.Pelcro.site.read()) === null || _window$Pelcro$site$r2 === void 0 ? void 0 : (_window$Pelcro$site$r3 = _window$Pelcro$site$r2.design_settings) === null || _window$Pelcro$site$r3 === void 0 ? void 0 : _window$Pelcro$site$r3.primary_color;
8649
+ const primaryColorHex = (_window$Pelcro$site$r3 = window.Pelcro.site.read()) === null || _window$Pelcro$site$r3 === void 0 ? void 0 : (_window$Pelcro$site$r4 = _window$Pelcro$site$r3.design_settings) === null || _window$Pelcro$site$r4 === void 0 ? void 0 : _window$Pelcro$site$r4.primary_color;
8409
8650
 
8410
8651
  if (!primaryColorHex) {
8411
8652
  return;
@@ -8604,6 +8845,7 @@ const defaultOptions = {
8604
8845
  enableURLTriggers: true,
8605
8846
  enableTheme: true,
8606
8847
  enablePaywalls: true,
8848
+ loadSecuritySDK: true,
8607
8849
  enableGoogleAnalytics: false
8608
8850
  };
8609
8851
  const PelcroModalController = ({
@@ -9425,16 +9667,16 @@ const LoginPassword = props => /*#__PURE__*/React__default['default'].createElem
9425
9667
  store: store$f
9426
9668
  }, props));
9427
9669
 
9428
- var _path$m;
9670
+ var _path$n;
9429
9671
 
9430
- function _extends$o() { _extends$o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); }
9672
+ function _extends$p() { _extends$p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); }
9431
9673
 
9432
9674
  function SvgCheck(props) {
9433
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$o({
9675
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$p({
9434
9676
  xmlns: "http://www.w3.org/2000/svg",
9435
9677
  fill: "currentColor",
9436
9678
  viewBox: "0 0 20 20"
9437
- }, props), _path$m || (_path$m = /*#__PURE__*/React__namespace.createElement("path", {
9679
+ }, props), _path$n || (_path$n = /*#__PURE__*/React__namespace.createElement("path", {
9438
9680
  fillRule: "evenodd",
9439
9681
  d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
9440
9682
  clipRule: "evenodd"
@@ -9544,35 +9786,53 @@ const RegisterContainer = ({
9544
9786
  jobTitle,
9545
9787
  selectFields
9546
9788
  } = filteredData;
9547
- window.Pelcro.user.register({
9548
- email,
9549
- password,
9550
- first_name: firstName,
9551
- last_name: lastName,
9552
- metadata: {
9553
- organization,
9554
- jobTitle,
9555
- ...selectFields
9556
- }
9557
- }, (err, res) => {
9558
- dispatch({
9559
- type: DISABLE_REGISTRATION_BUTTON,
9560
- payload: false
9789
+
9790
+ if (!hasSecurityTokenEnabled$1()) {
9791
+ sendRegisterRequest();
9792
+ return;
9793
+ }
9794
+
9795
+ window.grecaptcha.enterprise.ready(async () => {
9796
+ var _window$Pelcro$site$r;
9797
+
9798
+ const token = await window.grecaptcha.enterprise.execute((_window$Pelcro$site$r = window.Pelcro.site.read()) === null || _window$Pelcro$site$r === void 0 ? void 0 : _window$Pelcro$site$r.security_key, {
9799
+ action: "register"
9561
9800
  });
9801
+ sendRegisterRequest(token);
9802
+ });
9562
9803
 
9563
- if (err) {
9804
+ function sendRegisterRequest(securityToken) {
9805
+ window.Pelcro.user.register({
9806
+ email,
9807
+ password,
9808
+ first_name: firstName,
9809
+ last_name: lastName,
9810
+ security_token: securityToken,
9811
+ metadata: {
9812
+ organization,
9813
+ jobTitle,
9814
+ ...selectFields
9815
+ }
9816
+ }, (err, res) => {
9564
9817
  dispatch({
9565
- type: SHOW_ALERT,
9566
- payload: {
9567
- type: "error",
9568
- content: getErrorMessages(err)
9569
- }
9818
+ type: DISABLE_REGISTRATION_BUTTON,
9819
+ payload: false
9570
9820
  });
9571
- onFailure(err);
9572
- } else {
9573
- onSuccess(res);
9574
- }
9575
- });
9821
+
9822
+ if (err) {
9823
+ dispatch({
9824
+ type: SHOW_ALERT,
9825
+ payload: {
9826
+ type: "error",
9827
+ content: getErrorMessages(err)
9828
+ }
9829
+ });
9830
+ onFailure(err);
9831
+ } else {
9832
+ onSuccess(res);
9833
+ }
9834
+ });
9835
+ }
9576
9836
  };
9577
9837
 
9578
9838
  const handleSocialLogin = ({
@@ -9723,16 +9983,25 @@ const RegisterContainer = ({
9723
9983
  store: store$e
9724
9984
  })));
9725
9985
  };
9986
+ /**
9987
+ * Checks if the current site has security token enabled
9988
+ * @return {boolean}
9989
+ */
9726
9990
 
9727
- var _path$l;
9991
+ function hasSecurityTokenEnabled$1() {
9992
+ const hasSecuritySdkLoaded = Boolean(window.grecaptcha);
9993
+ return hasSecuritySdkLoaded;
9994
+ }
9728
9995
 
9729
- function _extends$n() { _extends$n = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); }
9996
+ var _path$m;
9997
+
9998
+ function _extends$o() { _extends$o = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); }
9730
9999
 
9731
10000
  function SvgFacebookLogo(props) {
9732
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$n({
10001
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$o({
9733
10002
  xmlns: "http://www.w3.org/2000/svg",
9734
10003
  viewBox: "88.428 12.828 107.543 207.085"
9735
- }, props), _path$l || (_path$l = /*#__PURE__*/React__namespace.createElement("path", {
10004
+ }, props), _path$m || (_path$m = /*#__PURE__*/React__namespace.createElement("path", {
9736
10005
  d: "M158.232 219.912v-94.461h31.707l4.747-36.813h-36.454V65.134c0-10.658 2.96-17.922 18.245-17.922l19.494-.009V14.278c-3.373-.447-14.944-1.449-28.406-1.449-28.106 0-47.348 17.155-47.348 48.661v27.149H88.428v36.813h31.788v94.461l38.016-.001z",
9737
10006
  fill: "#3c5a9a"
9738
10007
  })));
@@ -9744,7 +10013,7 @@ const FacebookLoginButton = ({
9744
10013
  labelClassName = "",
9745
10014
  iconClassName = ""
9746
10015
  }) => {
9747
- var _window$Pelcro$site$r, _window$Pelcro$site$r2;
10016
+ var _window$Pelcro$site$r;
9748
10017
 
9749
10018
  const facebookLoginEnabled = (_window$Pelcro$site$r = window.Pelcro.site.read()) === null || _window$Pelcro$site$r === void 0 ? void 0 : _window$Pelcro$site$r.facebook_app_id;
9750
10019
  const {
@@ -9783,7 +10052,7 @@ const FacebookLoginButton = ({
9783
10052
 
9784
10053
  return facebookLoginEnabled ? /*#__PURE__*/React__default['default'].createElement(FacebookLogin, {
9785
10054
  appId: window.Pelcro.site.read().facebook_app_id,
9786
- language: (_window$Pelcro$site$r2 = window.Pelcro.site.read().default_locale) !== null && _window$Pelcro$site$r2 !== void 0 ? _window$Pelcro$site$r2 : "en_US",
10055
+ language: getPageOrDefaultLanguage(),
9787
10056
  fields: "first_name,last_name,email,picture",
9788
10057
  callback: onSuccess,
9789
10058
  onFailure: onFailure,
@@ -9805,15 +10074,15 @@ var googleLogin = createCommonjsModule(function (module, exports) {
9805
10074
  unwrapExports(googleLogin);
9806
10075
  var googleLogin_1 = googleLogin.GoogleLogin;
9807
10076
 
9808
- var _path$k, _path2$2, _path3$1, _path4;
10077
+ var _path$l, _path2$2, _path3$1, _path4;
9809
10078
 
9810
- function _extends$m() { _extends$m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); }
10079
+ function _extends$n() { _extends$n = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); }
9811
10080
 
9812
10081
  function SvgGoogleLogo(props) {
9813
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
10082
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$n({
9814
10083
  viewBox: "0 0 24 24",
9815
10084
  xmlns: "http://www.w3.org/2000/svg"
9816
- }, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
10085
+ }, props), _path$l || (_path$l = /*#__PURE__*/React__namespace.createElement("path", {
9817
10086
  fill: "#4285F4",
9818
10087
  d: "M23.745 12.27c0-.79-.07-1.54-.19-2.27h-11.3v4.51h6.47c-.29 1.48-1.14 2.73-2.4 3.58v3h3.86c2.26-2.09 3.56-5.17 3.56-8.82z"
9819
10088
  })), _path2$2 || (_path2$2 = /*#__PURE__*/React__namespace.createElement("path", {
@@ -9947,15 +10216,15 @@ function LoginView(props) {
9947
10216
  }, /*#__PURE__*/React__default['default'].createElement(GoogleLoginButton, null), /*#__PURE__*/React__default['default'].createElement(FacebookLoginButton, null))))));
9948
10217
  }
9949
10218
 
9950
- var _path$j, _path2$1, _path3;
10219
+ var _path$k, _path2$1, _path3;
9951
10220
 
9952
- function _extends$l() { _extends$l = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); }
10221
+ function _extends$m() { _extends$m = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); }
9953
10222
 
9954
10223
  function SvgPelcroAuthorship(props) {
9955
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
10224
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
9956
10225
  xmlns: "http://www.w3.org/2000/svg",
9957
10226
  viewBox: "0 -80.652 497.072 179.991"
9958
- }, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
10227
+ }, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
9959
10228
  fill: "none",
9960
10229
  stroke: "#4a4a4a",
9961
10230
  d: "M487.89 42.299c0 13.158-10.671 23.829-23.829 23.829H37.074c-13.162 0-23.832-10.671-23.832-23.829v-63.552c0-13.158 10.67-23.831 23.832-23.831H464.06c13.158 0 23.829 10.672 23.829 23.831l.001 63.552z"
@@ -10112,8 +10381,11 @@ const RegisterPassword = props => /*#__PURE__*/React__default['default'].createE
10112
10381
  const RegisterButton = ({
10113
10382
  name,
10114
10383
  onClick,
10384
+ className,
10115
10385
  ...otherProps
10116
10386
  }) => {
10387
+ var _window$Pelcro$site$r;
10388
+
10117
10389
  const {
10118
10390
  state: {
10119
10391
  emailError,
@@ -10139,7 +10411,10 @@ const RegisterButton = ({
10139
10411
  onClick === null || onClick === void 0 ? void 0 : onClick();
10140
10412
  },
10141
10413
  disabled: isDisabled,
10142
- isLoading: buttonDisabled
10414
+ isLoading: buttonDisabled,
10415
+ className: `${className} g-recaptcha`,
10416
+ "data-action": "register",
10417
+ "data-sitekey": (_window$Pelcro$site$r = window.Pelcro.site.read()) === null || _window$Pelcro$site$r === void 0 ? void 0 : _window$Pelcro$site$r.security_key
10143
10418
  }, otherProps), name !== null && name !== void 0 ? name : t("messages.createAccount"));
10144
10419
  };
10145
10420
 
@@ -10343,7 +10618,17 @@ function RegisterView(props) {
10343
10618
  className: "plc-w-full plc-mt-2",
10344
10619
  id: "pelcro-submit",
10345
10620
  name: t("messages.createAccount")
10346
- }), socialLoginEnabled && /*#__PURE__*/React__default['default'].createElement("div", {
10621
+ }), hasSecurityTokenEnabled() && /*#__PURE__*/React__default['default'].createElement("p", {
10622
+ className: "plc-text-sm plc-text-gray-500 plc-mt-1"
10623
+ }, /*#__PURE__*/React__default['default'].createElement(Trans, {
10624
+ i18nKey: "messages:recaptcha"
10625
+ }, "This site is protected by reCAPTCHA and the Google", /*#__PURE__*/React__default['default'].createElement(Link, {
10626
+ href: "https://policies.google.com/privacy",
10627
+ className: "plc-text-sm plc-text-gray-500"
10628
+ }, "Privacy Policy"), "and", /*#__PURE__*/React__default['default'].createElement(Link, {
10629
+ href: "https://policies.google.com/terms",
10630
+ className: "plc-text-sm plc-text-gray-500"
10631
+ }, "Terms of Service"), "apply.")), socialLoginEnabled && /*#__PURE__*/React__default['default'].createElement("div", {
10347
10632
  className: "plc-mt-5"
10348
10633
  }, /*#__PURE__*/React__default['default'].createElement("div", {
10349
10634
  className: "plc-flex plc-items-center plc-justify-between "
@@ -10357,6 +10642,16 @@ function RegisterView(props) {
10357
10642
  className: "plc-flex plc-justify-center plc-px-5 plc-mt-1 plc-space-x-3"
10358
10643
  }, /*#__PURE__*/React__default['default'].createElement(GoogleLoginButton, null), /*#__PURE__*/React__default['default'].createElement(FacebookLoginButton, null))))));
10359
10644
  }
10645
+ /**
10646
+ * Checks if the current site has security token enabled
10647
+ * @return {boolean}
10648
+ */
10649
+
10650
+ function hasSecurityTokenEnabled() {
10651
+ var _window$Pelcro$site, _window$Pelcro$site$r3;
10652
+
10653
+ return Boolean((_window$Pelcro$site = window.Pelcro.site) === null || _window$Pelcro$site === void 0 ? void 0 : (_window$Pelcro$site$r3 = _window$Pelcro$site.read()) === null || _window$Pelcro$site$r3 === void 0 ? void 0 : _window$Pelcro$site$r3.security_key);
10654
+ }
10360
10655
 
10361
10656
  function TextInput({
10362
10657
  store,
@@ -13313,11 +13608,20 @@ const PaymentMethodContainerWithoutStripe = ({
13313
13608
  const UnwrappedForm = es_12(PaymentMethodContainerWithoutStripe);
13314
13609
 
13315
13610
  const PaymentMethodContainer = props => {
13316
- if (window.Stripe) {
13611
+ const [isStripeLoaded, setIsStripeLoaded] = React.useState(Boolean(window.Stripe));
13612
+ React.useEffect(() => {
13613
+ if (!window.Stripe) {
13614
+ document.querySelector('script[src="https://js.stripe.com/v3"]').addEventListener("load", () => {
13615
+ setIsStripeLoaded(true);
13616
+ });
13617
+ }
13618
+ }, []);
13619
+
13620
+ if (isStripeLoaded) {
13317
13621
  return /*#__PURE__*/React__default['default'].createElement(es_13, {
13318
13622
  apiKey: window.Pelcro.environment.stripe,
13319
13623
  stripeAccount: window.Pelcro.site.read().account_id,
13320
- locale: getCanonicalLocaleFormat(window.Pelcro.site.read().default_locale)
13624
+ locale: getPageOrDefaultLanguage()
13321
13625
  }, /*#__PURE__*/React__default['default'].createElement(es_11, null, /*#__PURE__*/React__default['default'].createElement(UnwrappedForm, Object.assign({
13322
13626
  store: store$d
13323
13627
  }, props))));
@@ -13429,9 +13733,6 @@ const DiscountedPrice = props => {
13429
13733
  percentOff
13430
13734
  }
13431
13735
  } = React.useContext(store$d);
13432
- const {
13433
- default_locale
13434
- } = Pelcro.site.read();
13435
13736
  const {
13436
13737
  order,
13437
13738
  plan
@@ -13439,7 +13740,7 @@ const DiscountedPrice = props => {
13439
13740
  const ecommOrderCurrency = (_order$currency = order === null || order === void 0 ? void 0 : order.currency) !== null && _order$currency !== void 0 ? _order$currency : order === null || order === void 0 ? void 0 : (_order$ = order[0]) === null || _order$ === void 0 ? void 0 : _order$.currency;
13440
13741
  const planQuantity = (_plan$quantity = plan === null || plan === void 0 ? void 0 : plan.quantity) !== null && _plan$quantity !== void 0 ? _plan$quantity : 1;
13441
13742
  const discountedPriceWithoutTax = updatedPrice - taxAmount;
13442
- const priceFormatted = getFormattedPriceByLocal(order ? updatedPrice : discountedPriceWithoutTax * planQuantity, ecommOrderCurrency !== null && ecommOrderCurrency !== void 0 ? ecommOrderCurrency : plan === null || plan === void 0 ? void 0 : plan.currency, default_locale);
13743
+ const priceFormatted = getFormattedPriceByLocal(order ? updatedPrice : discountedPriceWithoutTax * planQuantity, ecommOrderCurrency !== null && ecommOrderCurrency !== void 0 ? ecommOrderCurrency : plan === null || plan === void 0 ? void 0 : plan.currency, getPageOrDefaultLanguage());
13443
13744
 
13444
13745
  if (percentOff) {
13445
13746
  return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
@@ -13472,12 +13773,9 @@ const SubmitPaymentMethod = ({
13472
13773
  updatedPrice
13473
13774
  }
13474
13775
  } = React.useContext(store$d);
13475
- const {
13476
- default_locale
13477
- } = Pelcro.site.read();
13478
13776
  const planQuantity = (_plan$quantity = plan === null || plan === void 0 ? void 0 : plan.quantity) !== null && _plan$quantity !== void 0 ? _plan$quantity : 1;
13479
13777
  const price = updatedPrice !== null && updatedPrice !== void 0 ? updatedPrice : plan === null || plan === void 0 ? void 0 : plan.amount;
13480
- const priceFormatted = getFormattedPriceByLocal(price * planQuantity, plan === null || plan === void 0 ? void 0 : plan.currency, default_locale);
13778
+ const priceFormatted = getFormattedPriceByLocal(price * planQuantity, plan === null || plan === void 0 ? void 0 : plan.currency, getPageOrDefaultLanguage());
13481
13779
  return /*#__PURE__*/React__default['default'].createElement(Button, Object.assign({
13482
13780
  role: "submit",
13483
13781
  className: "plc-w-full plc-py-3",
@@ -13495,17 +13793,17 @@ const SubmitPaymentMethod = ({
13495
13793
  }, t("labels.pay"), " ", priceFormatted && priceFormatted) : t("labels.submit"));
13496
13794
  };
13497
13795
 
13498
- var _path$i;
13796
+ var _path$j;
13499
13797
 
13500
- function _extends$k() { _extends$k = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); }
13798
+ function _extends$l() { _extends$l = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); }
13501
13799
 
13502
13800
  function SvgArrowLeft(props) {
13503
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
13801
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
13504
13802
  xmlns: "http://www.w3.org/2000/svg",
13505
13803
  fill: "none",
13506
13804
  viewBox: "0 0 24 24",
13507
13805
  stroke: "currentColor"
13508
- }, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
13806
+ }, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
13509
13807
  strokeLinecap: "round",
13510
13808
  strokeLinejoin: "round",
13511
13809
  strokeWidth: 2,
@@ -13587,17 +13885,17 @@ const CouponCodeField = props => {
13587
13885
  }, props));
13588
13886
  };
13589
13887
 
13590
- var _path$h;
13888
+ var _path$i;
13591
13889
 
13592
- function _extends$j() { _extends$j = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); }
13890
+ function _extends$k() { _extends$k = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); }
13593
13891
 
13594
13892
  function SvgTicket(props) {
13595
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
13893
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
13596
13894
  xmlns: "http://www.w3.org/2000/svg",
13597
13895
  fill: "none",
13598
13896
  viewBox: "0 0 24 24",
13599
13897
  stroke: "currentColor"
13600
- }, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
13898
+ }, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
13601
13899
  strokeLinecap: "round",
13602
13900
  strokeLinejoin: "round",
13603
13901
  strokeWidth: 2,
@@ -13722,7 +14020,7 @@ class PaypalClient {
13722
14020
  this.paypalButton = window.paypal.Buttons({
13723
14021
  fundingSource: window.paypal.FUNDING.PAYPAL,
13724
14022
  // button locale
13725
- locale: (_this$config$locale = this.config.locale) !== null && _this$config$locale !== void 0 ? _this$config$locale : this.siteInfo.default_locale,
14023
+ locale: (_this$config$locale = this.config.locale) !== null && _this$config$locale !== void 0 ? _this$config$locale : getPageOrDefaultLanguage(),
13726
14024
  // button style
13727
14025
  style: (_this$config$style = this.config.style) !== null && _this$config$style !== void 0 ? _this$config$style : defaultButtonStyle,
13728
14026
  // create payment handler
@@ -13819,7 +14117,7 @@ class PaypalClient {
13819
14117
  } : undefined,
13820
14118
  shippingAddressEditable: this.config.shippingAddressEditable,
13821
14119
  displayName: (_this$config$displayN = this.config.displayName) !== null && _this$config$displayN !== void 0 ? _this$config$displayN : this.siteInfo.name,
13822
- locale: (_this$config$locale2 = this.config.locale) !== null && _this$config$locale2 !== void 0 ? _this$config$locale2 : this.siteInfo.default_locale
14120
+ locale: (_this$config$locale2 = this.config.locale) !== null && _this$config$locale2 !== void 0 ? _this$config$locale2 : getPageOrDefaultLanguage()
13823
14121
  };
13824
14122
  }
13825
14123
  });
@@ -13828,7 +14126,7 @@ class PaypalClient {
13828
14126
  writable: true,
13829
14127
  value: () => {
13830
14128
  const totalAmount = (this.product.quantity || 1) * this.amount;
13831
- const priceFormatted = getFormattedPriceByLocal(totalAmount, this.product.currency, this.siteInfo.default_locale);
14129
+ const priceFormatted = getFormattedPriceByLocal(totalAmount, this.product.currency, getPageOrDefaultLanguage());
13832
14130
  const autoRenewed = this.product.auto_renew;
13833
14131
  const {
13834
14132
  interval,
@@ -13956,16 +14254,16 @@ const BankRedirection = () => {
13956
14254
  }));
13957
14255
  };
13958
14256
 
13959
- var _path$g;
14257
+ var _path$h;
13960
14258
 
13961
- function _extends$i() { _extends$i = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); }
14259
+ function _extends$j() { _extends$j = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); }
13962
14260
 
13963
14261
  function SvgLock(props) {
13964
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
14262
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
13965
14263
  xmlns: "http://www.w3.org/2000/svg",
13966
14264
  viewBox: "0 0 20 20",
13967
14265
  fill: "currentColor"
13968
- }, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
14266
+ }, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
13969
14267
  fillRule: "evenodd",
13970
14268
  d: "M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z",
13971
14269
  clipRule: "evenodd"
@@ -14025,14 +14323,11 @@ const TaxAmount = () => {
14025
14323
  taxAmount
14026
14324
  }
14027
14325
  } = React.useContext(store$d);
14028
- const {
14029
- default_locale
14030
- } = Pelcro.site.read();
14031
14326
  const {
14032
14327
  plan
14033
14328
  } = usePelcro();
14034
14329
  const planQuantity = (_plan$quantity = plan === null || plan === void 0 ? void 0 : plan.quantity) !== null && _plan$quantity !== void 0 ? _plan$quantity : 1;
14035
- const priceFormatted = getFormattedPriceByLocal(taxAmount * planQuantity, plan === null || plan === void 0 ? void 0 : plan.currency, default_locale);
14330
+ const priceFormatted = getFormattedPriceByLocal(taxAmount * planQuantity, plan === null || plan === void 0 ? void 0 : plan.currency, getPageOrDefaultLanguage());
14036
14331
 
14037
14332
  if (taxAmount) {
14038
14333
  return /*#__PURE__*/React__default['default'].createElement("div", {
@@ -14190,12 +14485,12 @@ function SubscriptionRenewModal({
14190
14485
  }
14191
14486
  SubscriptionRenewModal.viewId = "subscription-renew";
14192
14487
 
14193
- var _path$f;
14488
+ var _path$g;
14194
14489
 
14195
- function _extends$h() { _extends$h = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
14490
+ function _extends$i() { _extends$i = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); }
14196
14491
 
14197
14492
  function SvgGift(props) {
14198
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$h({
14493
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
14199
14494
  className: "plc-w-6 plc-h-6 plc-mr-2",
14200
14495
  fill: "none",
14201
14496
  stroke: "currentColor",
@@ -14204,7 +14499,7 @@ function SvgGift(props) {
14204
14499
  strokeWidth: 2,
14205
14500
  viewBox: "0 0 24 24",
14206
14501
  xmlns: "http://www.w3.org/2000/svg"
14207
- }, props), _path$f || (_path$f = /*#__PURE__*/React__namespace.createElement("path", {
14502
+ }, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
14208
14503
  d: "M20 12v10H4V12M2 7h20v5H2zM12 22V7M12 7H7.5a2.5 2.5 0 010-5C11 2 12 7 12 7zM12 7h4.5a2.5 2.5 0 000-5C13 2 12 7 12 7z"
14209
14504
  })));
14210
14505
  }
@@ -14905,10 +15200,7 @@ const SubscriptionCreateView = ({
14905
15200
  interval,
14906
15201
  count: interval_count
14907
15202
  });
14908
- const {
14909
- default_locale
14910
- } = Pelcro.site.read();
14911
- const priceFormatted = getFormattedPriceByLocal((plan === null || plan === void 0 ? void 0 : plan.amount) * ((_plan$quantity = plan === null || plan === void 0 ? void 0 : plan.quantity) !== null && _plan$quantity !== void 0 ? _plan$quantity : 1), plan === null || plan === void 0 ? void 0 : plan.currency, default_locale);
15203
+ const priceFormatted = getFormattedPriceByLocal((plan === null || plan === void 0 ? void 0 : plan.amount) * ((_plan$quantity = plan === null || plan === void 0 ? void 0 : plan.quantity) !== null && _plan$quantity !== void 0 ? _plan$quantity : 1), plan === null || plan === void 0 ? void 0 : plan.currency, getPageOrDefaultLanguage());
14912
15204
  return /*#__PURE__*/React__default['default'].createElement("p", {
14913
15205
  className: "plc-text-gray-600"
14914
15206
  }, /*#__PURE__*/React__default['default'].createElement("span", {
@@ -15208,17 +15500,17 @@ const UserUpdatePhone = props => /*#__PURE__*/React__default['default'].createEl
15208
15500
 
15209
15501
  var userSolidIcon = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22plc-h-5%20plc-w-5%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22white%22%3E%20%20%3Cpath%20transform%3D%22translate%280%2C2%29%22%20fill-rule%3D%22evenodd%22%20d%3D%22M10%209a3%203%200%20100-6%203%203%200%20000%206zm-7%209a7%207%200%201114%200H3z%22%20clip-rule%3D%22evenodd%22%20%2F%3E%3C%2Fsvg%3E";
15210
15502
 
15211
- var _path$e;
15503
+ var _path$f;
15212
15504
 
15213
- function _extends$g() { _extends$g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); }
15505
+ function _extends$h() { _extends$h = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
15214
15506
 
15215
15507
  function SvgEdit(props) {
15216
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$g({
15508
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$h({
15217
15509
  className: "plc-w-6 plc-h-6",
15218
15510
  xmlns: "http://www.w3.org/2000/svg",
15219
15511
  viewBox: "0 0 20 20",
15220
15512
  fill: "currentColor"
15221
- }, props), _path$e || (_path$e = /*#__PURE__*/React__namespace.createElement("path", {
15513
+ }, props), _path$f || (_path$f = /*#__PURE__*/React__namespace.createElement("path", {
15222
15514
  d: "M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zm-2.207 2.207L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
15223
15515
  })));
15224
15516
  }
@@ -18085,7 +18377,6 @@ const OrderConfirmModal = props => {
18085
18377
  const userOrders = window.Pelcro.user.read().orders;
18086
18378
  const latestOrder = userOrders === null || userOrders === void 0 ? void 0 : userOrders[userOrders.length - 1];
18087
18379
  const latestOrderDiscount = latestOrder === null || latestOrder === void 0 ? void 0 : (_latestOrder$coupon = latestOrder.coupon) === null || _latestOrder$coupon === void 0 ? void 0 : _latestOrder$coupon.percent_off;
18088
- const locale = window.Pelcro.site.read().default_locale;
18089
18380
  const {
18090
18381
  t
18091
18382
  } = useTranslation("shop");
@@ -18144,7 +18435,7 @@ const OrderConfirmModal = props => {
18144
18435
  className: "plc-mr-1 pelcro-summary-total-text"
18145
18436
  }, t("labels.total")), /*#__PURE__*/React__default['default'].createElement("p", {
18146
18437
  className: "pelcro-summary-total"
18147
- }, latestOrderDiscount && `(-${latestOrderDiscount}%) `, getFormattedPriceByLocal(latestOrder === null || latestOrder === void 0 ? void 0 : latestOrder.amount, latestOrder === null || latestOrder === void 0 ? void 0 : latestOrder.currency, locale)))), /*#__PURE__*/React__default['default'].createElement("div", {
18438
+ }, latestOrderDiscount && `(-${latestOrderDiscount}%) `, getFormattedPriceByLocal(latestOrder === null || latestOrder === void 0 ? void 0 : latestOrder.amount, latestOrder === null || latestOrder === void 0 ? void 0 : latestOrder.currency, getPageOrDefaultLanguage())))), /*#__PURE__*/React__default['default'].createElement("div", {
18148
18439
  className: "plc-flex plc-justify-center plc-mt-6"
18149
18440
  }, /*#__PURE__*/React__default['default'].createElement(Button, {
18150
18441
  id: "pelcro-submit",
@@ -18206,9 +18497,9 @@ const GiftCreateContainer = ({
18206
18497
  }
18207
18498
 
18208
18499
  if (giftRecipient.startDate) {
18209
- const nowDate = new Date();
18210
- const yearFromNowDate = new Date(new Date().setFullYear(nowDate.getFullYear() + 1));
18211
- const submittedDate = new Date(giftRecipient.startDate);
18500
+ const nowDate = getDateWithoutTime(new Date());
18501
+ const yearFromNowDate = getDateWithoutTime(new Date(new Date().setFullYear(nowDate.getFullYear() + 1)));
18502
+ const submittedDate = getDateWithoutTime(new Date(giftRecipient.startDate));
18212
18503
 
18213
18504
  if (submittedDate < nowDate || submittedDate > yearFromNowDate) {
18214
18505
  dispatch({
@@ -18329,18 +18620,18 @@ const GiftCreateLastName = props => /*#__PURE__*/React__default['default'].creat
18329
18620
  store: store$4
18330
18621
  }, props));
18331
18622
 
18332
- var _path$d;
18623
+ var _path$e;
18333
18624
 
18334
- function _extends$f() { _extends$f = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); }
18625
+ function _extends$g() { _extends$g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); }
18335
18626
 
18336
18627
  function SvgInfoCircle(props) {
18337
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$f({
18628
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$g({
18338
18629
  xmlns: "http://www.w3.org/2000/svg",
18339
18630
  className: "plc-w-5 plc-h-5",
18340
18631
  fill: "none",
18341
18632
  viewBox: "0 0 24 24",
18342
18633
  stroke: "currentColor"
18343
- }, props), _path$d || (_path$d = /*#__PURE__*/React__namespace.createElement("path", {
18634
+ }, props), _path$e || (_path$e = /*#__PURE__*/React__namespace.createElement("path", {
18344
18635
  strokeLinecap: "round",
18345
18636
  strokeLinejoin: "round",
18346
18637
  strokeWidth: 2,
@@ -19327,8 +19618,8 @@ const PaymentMethodSelectModal = ({
19327
19618
  };
19328
19619
  PaymentMethodSelectModal.viewId = "payment-method-select";
19329
19620
 
19330
- function _extends$e() {
19331
- _extends$e = Object.assign || function (target) {
19621
+ function _extends$f() {
19622
+ _extends$f = Object.assign || function (target) {
19332
19623
  for (var i = 1; i < arguments.length; i++) {
19333
19624
  var source = arguments[i];
19334
19625
 
@@ -19342,7 +19633,7 @@ function _extends$e() {
19342
19633
  return target;
19343
19634
  };
19344
19635
 
19345
- return _extends$e.apply(this, arguments);
19636
+ return _extends$f.apply(this, arguments);
19346
19637
  }
19347
19638
 
19348
19639
  function _objectWithoutPropertiesLoose(source, excluded) {
@@ -19526,7 +19817,7 @@ function render(props, propsBag, defaultTag, features, visible) {
19526
19817
  return match(strategy, (_match = {}, _match[RenderStrategy.Unmount] = function () {
19527
19818
  return null;
19528
19819
  }, _match[RenderStrategy.Hidden] = function () {
19529
- return _render(_extends$e({}, _rest, {
19820
+ return _render(_extends$f({}, _rest, {
19530
19821
  hidden: true,
19531
19822
  style: {
19532
19823
  display: 'none'
@@ -20054,7 +20345,7 @@ function TransitionChild(props) {
20054
20345
  var passthroughProps = rest;
20055
20346
  return React__default['default'].createElement(NestingContext.Provider, {
20056
20347
  value: nesting
20057
- }, render(_extends$e({}, passthroughProps, propsWeControl), propsBag, DEFAULT_TRANSITION_CHILD_TAG, TransitionChildRenderFeatures, state === TreeStates.Visible));
20348
+ }, render(_extends$f({}, passthroughProps, propsWeControl), propsBag, DEFAULT_TRANSITION_CHILD_TAG, TransitionChildRenderFeatures, state === TreeStates.Visible));
20058
20349
  }
20059
20350
 
20060
20351
  function Transition(props) {
@@ -20098,7 +20389,7 @@ function Transition(props) {
20098
20389
  value: nestingBag
20099
20390
  }, React__default['default'].createElement(TransitionContext.Provider, {
20100
20391
  value: transitionBag
20101
- }, render(_extends$e({}, sharedProps, {
20392
+ }, render(_extends$f({}, sharedProps, {
20102
20393
  as: React.Fragment,
20103
20394
  children: React__default['default'].createElement(TransitionChild, Object.assign({}, sharedProps, passthroughProps))
20104
20395
  }), propsBag, React.Fragment, TransitionChildRenderFeatures, state === TreeStates.Visible)));
@@ -20225,12 +20516,12 @@ var ActionTypes;
20225
20516
  })(ActionTypes || (ActionTypes = {}));
20226
20517
 
20227
20518
  (_reducers = {}, _reducers[ActionTypes.CloseMenu] = function (state) {
20228
- return _extends$e({}, state, {
20519
+ return _extends$f({}, state, {
20229
20520
  activeItemIndex: null,
20230
20521
  menuState: MenuStates.Closed
20231
20522
  });
20232
20523
  }, _reducers[ActionTypes.OpenMenu] = function (state) {
20233
- return _extends$e({}, state, {
20524
+ return _extends$f({}, state, {
20234
20525
  menuState: MenuStates.Open
20235
20526
  });
20236
20527
  }, _reducers[ActionTypes.GoToItem] = function (state, action) {
@@ -20249,7 +20540,7 @@ var ActionTypes;
20249
20540
  }
20250
20541
  });
20251
20542
  if (state.searchQuery === '' && state.activeItemIndex === activeItemIndex) return state;
20252
- return _extends$e({}, state, {
20543
+ return _extends$f({}, state, {
20253
20544
  searchQuery: '',
20254
20545
  activeItemIndex: activeItemIndex
20255
20546
  });
@@ -20260,19 +20551,19 @@ var ActionTypes;
20260
20551
 
20261
20552
  return ((_item$dataRef$current = item.dataRef.current.textValue) == null ? void 0 : _item$dataRef$current.startsWith(searchQuery)) && !item.dataRef.current.disabled;
20262
20553
  });
20263
- if (match === -1 || match === state.activeItemIndex) return _extends$e({}, state, {
20554
+ if (match === -1 || match === state.activeItemIndex) return _extends$f({}, state, {
20264
20555
  searchQuery: searchQuery
20265
20556
  });
20266
- return _extends$e({}, state, {
20557
+ return _extends$f({}, state, {
20267
20558
  searchQuery: searchQuery,
20268
20559
  activeItemIndex: match
20269
20560
  });
20270
20561
  }, _reducers[ActionTypes.ClearSearch] = function (state) {
20271
- return _extends$e({}, state, {
20562
+ return _extends$f({}, state, {
20272
20563
  searchQuery: ''
20273
20564
  });
20274
20565
  }, _reducers[ActionTypes.RegisterItem] = function (state, action) {
20275
- return _extends$e({}, state, {
20566
+ return _extends$f({}, state, {
20276
20567
  items: [].concat(state.items, [{
20277
20568
  id: action.id,
20278
20569
  dataRef: action.dataRef
@@ -20285,7 +20576,7 @@ var ActionTypes;
20285
20576
  return a.id === action.id;
20286
20577
  });
20287
20578
  if (idx !== -1) nextItems.splice(idx, 1);
20288
- return _extends$e({}, state, {
20579
+ return _extends$f({}, state, {
20289
20580
  items: nextItems,
20290
20581
  activeItemIndex: function () {
20291
20582
  if (idx === state.activeItemIndex) return null;
@@ -20324,19 +20615,19 @@ var ActionTypes$1;
20324
20615
  (_reducers$1 = {}, _reducers$1[ActionTypes$1.CloseListbox] = function (state) {
20325
20616
  if (state.disabled) return state;
20326
20617
  if (state.listboxState === ListboxStates.Closed) return state;
20327
- return _extends$e({}, state, {
20618
+ return _extends$f({}, state, {
20328
20619
  activeOptionIndex: null,
20329
20620
  listboxState: ListboxStates.Closed
20330
20621
  });
20331
20622
  }, _reducers$1[ActionTypes$1.OpenListbox] = function (state) {
20332
20623
  if (state.disabled) return state;
20333
20624
  if (state.listboxState === ListboxStates.Open) return state;
20334
- return _extends$e({}, state, {
20625
+ return _extends$f({}, state, {
20335
20626
  listboxState: ListboxStates.Open
20336
20627
  });
20337
20628
  }, _reducers$1[ActionTypes$1.SetDisabled] = function (state, action) {
20338
20629
  if (state.disabled === action.disabled) return state;
20339
- return _extends$e({}, state, {
20630
+ return _extends$f({}, state, {
20340
20631
  disabled: action.disabled
20341
20632
  });
20342
20633
  }, _reducers$1[ActionTypes$1.GoToOption] = function (state, action) {
@@ -20357,7 +20648,7 @@ var ActionTypes$1;
20357
20648
  }
20358
20649
  });
20359
20650
  if (state.searchQuery === '' && state.activeOptionIndex === activeOptionIndex) return state;
20360
- return _extends$e({}, state, {
20651
+ return _extends$f({}, state, {
20361
20652
  searchQuery: '',
20362
20653
  activeOptionIndex: activeOptionIndex
20363
20654
  });
@@ -20370,10 +20661,10 @@ var ActionTypes$1;
20370
20661
 
20371
20662
  return !option.dataRef.current.disabled && ((_option$dataRef$curre = option.dataRef.current.textValue) == null ? void 0 : _option$dataRef$curre.startsWith(searchQuery));
20372
20663
  });
20373
- if (match === -1 || match === state.activeOptionIndex) return _extends$e({}, state, {
20664
+ if (match === -1 || match === state.activeOptionIndex) return _extends$f({}, state, {
20374
20665
  searchQuery: searchQuery
20375
20666
  });
20376
- return _extends$e({}, state, {
20667
+ return _extends$f({}, state, {
20377
20668
  searchQuery: searchQuery,
20378
20669
  activeOptionIndex: match
20379
20670
  });
@@ -20381,11 +20672,11 @@ var ActionTypes$1;
20381
20672
  if (state.disabled) return state;
20382
20673
  if (state.listboxState === ListboxStates.Closed) return state;
20383
20674
  if (state.searchQuery === '') return state;
20384
- return _extends$e({}, state, {
20675
+ return _extends$f({}, state, {
20385
20676
  searchQuery: ''
20386
20677
  });
20387
20678
  }, _reducers$1[ActionTypes$1.RegisterOption] = function (state, action) {
20388
- return _extends$e({}, state, {
20679
+ return _extends$f({}, state, {
20389
20680
  options: [].concat(state.options, [{
20390
20681
  id: action.id,
20391
20682
  dataRef: action.dataRef
@@ -20398,7 +20689,7 @@ var ActionTypes$1;
20398
20689
  return a.id === action.id;
20399
20690
  });
20400
20691
  if (idx !== -1) nextOptions.splice(idx, 1);
20401
- return _extends$e({}, state, {
20692
+ return _extends$f({}, state, {
20402
20693
  options: nextOptions,
20403
20694
  activeOptionIndex: function () {
20404
20695
  if (idx === state.activeOptionIndex) return null;
@@ -20459,18 +20750,18 @@ const getPaymentCardIcon = name => {
20459
20750
  }));
20460
20751
  };
20461
20752
 
20462
- var _path$c;
20753
+ var _path$d;
20463
20754
 
20464
- function _extends$d() { _extends$d = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); }
20755
+ function _extends$e() { _extends$e = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); }
20465
20756
 
20466
20757
  function SvgChevronRight(props) {
20467
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$d({
20758
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$e({
20468
20759
  className: "plc-w-6 plc-h-6",
20469
20760
  xmlns: "http://www.w3.org/2000/svg",
20470
20761
  fill: "none",
20471
20762
  viewBox: "0 0 24 24",
20472
20763
  stroke: "currentColor"
20473
- }, props), _path$c || (_path$c = /*#__PURE__*/React__namespace.createElement("path", {
20764
+ }, props), _path$d || (_path$d = /*#__PURE__*/React__namespace.createElement("path", {
20474
20765
  strokeLinecap: "round",
20475
20766
  strokeLinejoin: "round",
20476
20767
  strokeWidth: 2,
@@ -20513,7 +20804,6 @@ const OrderItems = ({
20513
20804
  const {
20514
20805
  t
20515
20806
  } = useTranslation("dashboard");
20516
- const site = window.Pelcro.site.read();
20517
20807
  return !(orders !== null && orders !== void 0 && orders.length) ? /*#__PURE__*/React__default['default'].createElement("tbody", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
20518
20808
  colSpan: "3",
20519
20809
  className: "plc-text-center plc-text-gray-500"
@@ -20529,7 +20819,7 @@ const OrderItems = ({
20529
20819
  className: "plc-py-4 plc-pl-2"
20530
20820
  }, /*#__PURE__*/React__default['default'].createElement("span", {
20531
20821
  className: "plc-text-xl plc-font-semibold "
20532
- }, getFormattedPriceByLocal(order.amount, order.currency, site.default_locale)), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
20822
+ }, getFormattedPriceByLocal(order.amount, order.currency, getPageOrDefaultLanguage())), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
20533
20823
  className: "plc-text-xs plc-text-gray-400 plc-uppercase"
20534
20824
  }, t("labels.orders.itemsAmount", {
20535
20825
  count: getItemsAmount(order.id)
@@ -20558,7 +20848,7 @@ const OrderItems = ({
20558
20848
  className: ""
20559
20849
  }, item.product_sku_name))), /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
20560
20850
  className: "plc-font-semibold"
20561
- }, getFormattedPriceByLocal(item.amount, order.currency, site.default_locale))));
20851
+ }, getFormattedPriceByLocal(item.amount, order.currency, getPageOrDefaultLanguage()))));
20562
20852
  }), /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
20563
20853
  colSpan: "3"
20564
20854
  }, /*#__PURE__*/React__default['default'].createElement("hr", {
@@ -20687,6 +20977,266 @@ const SavedItems = ({
20687
20977
  });
20688
20978
  };
20689
20979
 
20980
+ var _path$c;
20981
+
20982
+ function _extends$d() { _extends$d = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); }
20983
+
20984
+ function SvgRefresh(props) {
20985
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$d({
20986
+ className: "plc-w-4 plc-h-4 plc-mr-1",
20987
+ xmlns: "http://www.w3.org/2000/svg",
20988
+ fill: "none",
20989
+ viewBox: "0 0 24 24",
20990
+ stroke: "currentColor"
20991
+ }, props), _path$c || (_path$c = /*#__PURE__*/React__namespace.createElement("path", {
20992
+ strokeLinecap: "round",
20993
+ strokeLinejoin: "round",
20994
+ strokeWidth: 2,
20995
+ d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
20996
+ })));
20997
+ }
20998
+
20999
+ var _path$b;
21000
+
21001
+ function _extends$c() { _extends$c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); }
21002
+
21003
+ function SvgCalendar(props) {
21004
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$c({
21005
+ xmlns: "http://www.w3.org/2000/svg",
21006
+ className: "plc-h-4 plc-w-4 plc-mr-1",
21007
+ viewBox: "0 0 20 20",
21008
+ fill: "currentColor"
21009
+ }, props), _path$b || (_path$b = /*#__PURE__*/React__namespace.createElement("path", {
21010
+ fillRule: "evenodd",
21011
+ d: "M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z",
21012
+ clipRule: "evenodd"
21013
+ })));
21014
+ }
21015
+
21016
+ var _path$a;
21017
+
21018
+ function _extends$b() { _extends$b = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); }
21019
+
21020
+ function SvgPlus(props) {
21021
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$b({
21022
+ className: "plc-w-5 plc-h-5",
21023
+ xmlns: "http://www.w3.org/2000/svg",
21024
+ fill: "none",
21025
+ viewBox: "0 0 24 24",
21026
+ stroke: "currentColor"
21027
+ }, props), _path$a || (_path$a = /*#__PURE__*/React__namespace.createElement("path", {
21028
+ strokeLinecap: "round",
21029
+ strokeLinejoin: "round",
21030
+ strokeWidth: 2,
21031
+ d: "M12 6v6m0 0v6m0-6h6m-6 0H6"
21032
+ })));
21033
+ }
21034
+
21035
+ var _path$9;
21036
+
21037
+ function _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); }
21038
+
21039
+ function SvgCheckMark(props) {
21040
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$a({
21041
+ className: "plc-w-4 plc-h-4 plc-mr-1",
21042
+ xmlns: "http://www.w3.org/2000/svg",
21043
+ viewBox: "0 0 20 20",
21044
+ fill: "currentColor"
21045
+ }, props), _path$9 || (_path$9 = /*#__PURE__*/React__namespace.createElement("path", {
21046
+ fillRule: "evenodd",
21047
+ d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
21048
+ clipRule: "evenodd"
21049
+ })));
21050
+ }
21051
+
21052
+ const SubscriptionsMenu = props => {
21053
+ const {
21054
+ t
21055
+ } = useTranslation("dashboard");
21056
+ return /*#__PURE__*/React__default['default'].createElement("table", {
21057
+ className: "plc-w-full plc-table-fixed"
21058
+ }, /*#__PURE__*/React__default['default'].createElement("thead", {
21059
+ className: "plc-text-xs plc-font-semibold plc-tracking-wider plc-text-gray-400 plc-uppercase "
21060
+ }, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("th", {
21061
+ className: "plc-w-3/12 "
21062
+ }, t("labels.plan")), /*#__PURE__*/React__default['default'].createElement("th", {
21063
+ className: "plc-w-4/12 "
21064
+ }, t("labels.status.title")), /*#__PURE__*/React__default['default'].createElement("th", {
21065
+ className: "plc-w-3/12 "
21066
+ }, t("labels.actions")), /*#__PURE__*/React__default['default'].createElement("th", {
21067
+ className: "plc-w-2/12 "
21068
+ }))), /*#__PURE__*/React__default['default'].createElement("tbody", null, /*#__PURE__*/React__default['default'].createElement("tr", {
21069
+ className: "plc-h-4"
21070
+ })), /*#__PURE__*/React__default['default'].createElement(Accordion, null, /*#__PURE__*/React__default['default'].createElement(SubscriptionsItems, props)), /*#__PURE__*/React__default['default'].createElement("tbody", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
21071
+ colSpan: "4",
21072
+ className: "plc-p-1"
21073
+ }, /*#__PURE__*/React__default['default'].createElement(Button, {
21074
+ variant: "ghost",
21075
+ icon: /*#__PURE__*/React__default['default'].createElement(SvgPlus, {
21076
+ className: "plc-w-4 plc-h-4 plc-mr-1"
21077
+ }),
21078
+ className: "plc-w-full plc-h-8 plc-font-semibold plc-tracking-wider plc-text-gray-900 plc-uppercase plc-rounded-none hover:plc-bg-gray-100",
21079
+ onClick: props.displayProductSelect
21080
+ }, t("labels.addSubscription")))), /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
21081
+ colSpan: "4",
21082
+ className: "plc-p-1"
21083
+ }, /*#__PURE__*/React__default['default'].createElement(Button, {
21084
+ variant: "ghost",
21085
+ icon: /*#__PURE__*/React__default['default'].createElement(SvgGift, {
21086
+ className: "plc-w-4 plc-h-4 plc-mr-1"
21087
+ }),
21088
+ className: "plc-w-full plc-h-8 plc-font-semibold plc-tracking-wider plc-text-gray-900 plc-uppercase plc-rounded-none hover:plc-bg-gray-100",
21089
+ onClick: props.displayRedeem
21090
+ }, t("labels.redeemGift"))))));
21091
+ };
21092
+ const SubscriptionsItems = ({
21093
+ onClose,
21094
+ cancelSubscription,
21095
+ reactivateSubscription,
21096
+ setProductAndPlan,
21097
+ setSubscriptionIdToRenew,
21098
+ setView,
21099
+ getSubscriptionStatus,
21100
+ disableSubmit,
21101
+ activeMenu,
21102
+ toggleActiveMenu
21103
+ }) => {
21104
+ const {
21105
+ t
21106
+ } = useTranslation("dashboard");
21107
+ const subs = window.Pelcro.subscription.list();
21108
+ if (!subs || subs.length === 0) return null;
21109
+ return window.Pelcro.subscription.list().sort((a, b) => a.expires_at - b.expires_at).sort((a, b) => a.renews_at - b.renews_at).map(sub => {
21110
+ const isActive = activeMenu === sub.id; // Cancel button click handlers
21111
+
21112
+ const onCancelClick = () => {
21113
+ onClose === null || onClose === void 0 ? void 0 : onClose();
21114
+ notify.confirm((onSuccess, onFailure) => {
21115
+ cancelSubscription(sub.id, onSuccess, onFailure);
21116
+ }, {
21117
+ confirmMessage: t("messages.subCancellation.isSureToCancel"),
21118
+ loadingMessage: t("messages.subCancellation.loading"),
21119
+ successMessage: t("messages.subCancellation.success"),
21120
+ errorMessage: t("messages.subCancellation.error")
21121
+ }, {
21122
+ closeButtonLabel: t("labels.subCancellation.goBack")
21123
+ });
21124
+ }; // Reactivate button click handlers
21125
+
21126
+
21127
+ const onReactivateClick = () => {
21128
+ reactivateSubscription(sub.id);
21129
+ }; // Renew click
21130
+
21131
+
21132
+ const onRenewClick = () => {
21133
+ const product_id = sub.plan.product.id;
21134
+ const plan_id = sub.plan.id;
21135
+ const product = window.Pelcro.product.getById(product_id);
21136
+ const plan = window.Pelcro.plan.getById(plan_id);
21137
+ setProductAndPlan(product, plan);
21138
+ setSubscriptionIdToRenew(sub.id);
21139
+ setView("plan-select");
21140
+ };
21141
+
21142
+ const getPhases = () => {
21143
+ if (!sub.schedule) return [];
21144
+ const currentPhaseStartDate = sub.schedule.current_phase.start_date;
21145
+ const currentPhase = sub.schedule.phases.find(phase => {
21146
+ return phase.start_date === currentPhaseStartDate;
21147
+ });
21148
+ const futurePhases = sub.schedule.phases.filter(phase => {
21149
+ return phase.start_date > currentPhaseStartDate;
21150
+ });
21151
+ return [currentPhase, ...futurePhases];
21152
+ };
21153
+
21154
+ const hasPhases = getPhases().length > 0;
21155
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, {
21156
+ key: sub.id
21157
+ }, /*#__PURE__*/React__default['default'].createElement("tbody", null, /*#__PURE__*/React__default['default'].createElement("tr", {
21158
+ onClick: () => {
21159
+ if (hasPhases) toggleActiveMenu(sub.id);
21160
+ },
21161
+ key: sub.id,
21162
+ className: `plc-w-full plc-align-middle plc-cursor-pointer accordion-header ${isActive ? "plc-bg-gray-100" : "hover:plc-bg-gray-50"}`
21163
+ }, /*#__PURE__*/React__default['default'].createElement("td", {
21164
+ className: "plc-truncate"
21165
+ }, sub.plan.nickname && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("span", {
21166
+ className: "plc-font-semibold plc-text-gray-500"
21167
+ }, sub.plan.nickname), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
21168
+ className: "plc-text-xs plc-text-gray-400"
21169
+ }, getFormattedPriceByLocal(sub.plan.amount, sub.plan.currency, getPageOrDefaultLanguage())))), /*#__PURE__*/React__default['default'].createElement("td", {
21170
+ className: "plc-py-2"
21171
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
21172
+ className: `plc-inline-flex plc-p-1 plc-text-xs plc-font-semibold ${getSubscriptionStatus(sub).bgColor} plc-uppercase ${getSubscriptionStatus(sub).textColor} plc-rounded-lg`
21173
+ }, getSubscriptionStatus(sub).icon, getSubscriptionStatus(sub).title), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("div", {
21174
+ className: "plc-text-xs plc-text-gray-500"
21175
+ }, sub.status && /*#__PURE__*/React__default['default'].createElement("span", {
21176
+ className: "plc-inline-block plc-mt-1 plc-underline"
21177
+ }, getSubscriptionStatus(sub).content), /*#__PURE__*/React__default['default'].createElement("br", null), sub.shipments_remaining ? /*#__PURE__*/React__default['default'].createElement("span", {
21178
+ className: "plc-inline-block plc-mt-1"
21179
+ }, sub.shipments_remaining, " ", t("labels.shipments")) : null)), /*#__PURE__*/React__default['default'].createElement("td", null, sub.cancel_at_period_end === 0 && /*#__PURE__*/React__default['default'].createElement(Button, {
21180
+ variant: "ghost",
21181
+ className: "plc-text-red-500 focus:plc-ring-red-500 pelcro-dashboard-sub-cancel-button",
21182
+ icon: /*#__PURE__*/React__default['default'].createElement(SvgXIconSolid, null),
21183
+ onClick: onCancelClick,
21184
+ disabled: disableSubmit,
21185
+ "data-key": sub.id
21186
+ }, t("labels.unsubscribe")), sub.cancel_at_period_end === 1 && sub.plan.auto_renew && !sub.is_gift_recipient && /*#__PURE__*/React__default['default'].createElement(Button, {
21187
+ variant: "ghost",
21188
+ className: "plc-text-green-400 focus:plc-ring-green-300 pelcro-dashboard-sub-reactivate-button",
21189
+ icon: /*#__PURE__*/React__default['default'].createElement(SvgRefresh, null),
21190
+ onClick: onReactivateClick,
21191
+ disabled: disableSubmit,
21192
+ "data-key": sub.id
21193
+ }, t("labels.reactivate")), sub.cancel_at_period_end === 1 && /*#__PURE__*/React__default['default'].createElement(Button, {
21194
+ variant: "ghost",
21195
+ className: "plc-text-blue-400 pelcro-dashboard-sub-renew-button",
21196
+ icon: /*#__PURE__*/React__default['default'].createElement(SvgRefresh, null),
21197
+ onClick: onRenewClick,
21198
+ disabled: disableSubmit,
21199
+ "data-key": sub.id
21200
+ }, t("labels.renew"))), /*#__PURE__*/React__default['default'].createElement("td", null, hasPhases && /*#__PURE__*/React__default['default'].createElement("div", {
21201
+ className: `plc-flex plc-items-center plc-justify-center plc-transition-transform plc-ease-out plc-transform plc-rounded-full plc-w-7 plc-h-7 ${isActive ? "plc-flex plc-place-items-center plc-w-7 plc-h-7 plc-p-1 plc-bg-primary-400 plc-rounded-full" : "accordion-chevron"}`
21202
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
21203
+ className: `plc-transition plc-ease-out ${isActive && "plc-text-white plc-transform plc-rotate-90"}`
21204
+ }, /*#__PURE__*/React__default['default'].createElement(SvgChevronRight, null)))))), /*#__PURE__*/React__default['default'].createElement("tbody", null, isActive && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, getPhases().map((phase, i) => {
21205
+ var _phase$plans;
21206
+
21207
+ const plan = (_phase$plans = phase.plans) === null || _phase$plans === void 0 ? void 0 : _phase$plans[0].plan;
21208
+ const isCurrentPhase = i === 0;
21209
+ const startDate = new Date(Number(`${phase.start_date}000`));
21210
+ const endDate = new Date(Number(`${phase.end_date}000`));
21211
+ const formattedStartDate = new Intl.DateTimeFormat("en-CA").format(startDate);
21212
+ const formattedEndDate = new Intl.DateTimeFormat("en-CA").format(endDate);
21213
+ const startDateString = `${t("labels.startsOn")} ${formattedStartDate}`;
21214
+ const endDateString = `${t("labels.expiresOn")} ${formattedEndDate}`;
21215
+ return /*#__PURE__*/React__default['default'].createElement("tr", {
21216
+ key: `${phase.start_date}-${phase.end_date}`,
21217
+ className: "pelcro-sub-phase-row plc-w-full plc-align-middle"
21218
+ }, /*#__PURE__*/React__default['default'].createElement("td", {
21219
+ className: "plc-truncate"
21220
+ }, plan.nickname && /*#__PURE__*/React__default['default'].createElement("span", {
21221
+ className: "plc-font-semibold plc-text-gray-500"
21222
+ }, plan.nickname)), /*#__PURE__*/React__default['default'].createElement("td", {
21223
+ className: "plc-py-2"
21224
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
21225
+ className: `plc-inline-flex plc-p-1 plc-text-xs plc-font-semibold plc-uppercase plc-rounded-lg ${isCurrentPhase ? "plc-text-green-700 plc-bg-green-100" : "plc-text-blue-700 plc-bg-blue-100"}
21226
+ `
21227
+ }, isCurrentPhase ? /*#__PURE__*/React__default['default'].createElement(SvgCheckMark, null) : /*#__PURE__*/React__default['default'].createElement(SvgCalendar, null), isCurrentPhase ? t("labels.status.active") : t("labels.status.scheduled")), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("div", {
21228
+ className: "plc-text-xs plc-text-gray-500"
21229
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
21230
+ className: "plc-inline-block plc-mt-1 plc-underline"
21231
+ }, isCurrentPhase ? endDateString : startDateString))));
21232
+ }), /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
21233
+ colSpan: "4"
21234
+ }, /*#__PURE__*/React__default['default'].createElement("hr", {
21235
+ className: "plc-mt-4"
21236
+ }))))));
21237
+ });
21238
+ };
21239
+
20690
21240
  /**
20691
21241
  * @typedef {Object} AccordionPropsType
20692
21242
  * @property {string} initialActiveMenu the initial active menu
@@ -20713,7 +21263,7 @@ const Accordion = ({
20713
21263
  };
20714
21264
 
20715
21265
  return React__default['default'].Children.map(children, (child, i) => {
20716
- if (child.type === Accordion.item || child.type === OrderItems || child.type === SavedItems) {
21266
+ if (child.type === Accordion.item || child.type === OrderItems || child.type === SavedItems || child.type === SubscriptionsItems) {
20717
21267
  return /*#__PURE__*/React__default['default'].cloneElement(child, {
20718
21268
  activeMenu,
20719
21269
  toggleActiveMenu,
@@ -20769,18 +21319,18 @@ Accordion.item = function AccordionItem({
20769
21319
  }, content)) : null;
20770
21320
  };
20771
21321
 
20772
- var _path$b;
21322
+ var _path$8;
20773
21323
 
20774
- function _extends$c() { _extends$c = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); }
21324
+ function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }
20775
21325
 
20776
21326
  function SvgExit(props) {
20777
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$c({
21327
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$9({
20778
21328
  className: "plc-w-6 plc-h-6",
20779
21329
  xmlns: "http://www.w3.org/2000/svg",
20780
21330
  fill: "none",
20781
21331
  viewBox: "0 0 24 24",
20782
21332
  stroke: "currentColor"
20783
- }, props), _path$b || (_path$b = /*#__PURE__*/React__namespace.createElement("path", {
21333
+ }, props), _path$8 || (_path$8 = /*#__PURE__*/React__namespace.createElement("path", {
20784
21334
  strokeLinecap: "round",
20785
21335
  strokeLinejoin: "round",
20786
21336
  strokeWidth: 2,
@@ -20788,34 +21338,17 @@ function SvgExit(props) {
20788
21338
  })));
20789
21339
  }
20790
21340
 
20791
- var _path$a;
20792
-
20793
- function _extends$b() { _extends$b = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); }
20794
-
20795
- function SvgCheckMark(props) {
20796
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$b({
20797
- className: "plc-w-4 plc-h-4 plc-mr-1",
20798
- xmlns: "http://www.w3.org/2000/svg",
20799
- viewBox: "0 0 20 20",
20800
- fill: "currentColor"
20801
- }, props), _path$a || (_path$a = /*#__PURE__*/React__namespace.createElement("path", {
20802
- fillRule: "evenodd",
20803
- d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
20804
- clipRule: "evenodd"
20805
- })));
20806
- }
20807
-
20808
- var _path$9;
21341
+ var _path$7;
20809
21342
 
20810
- function _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); }
21343
+ function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
20811
21344
 
20812
21345
  function SvgUser(props) {
20813
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$a({
21346
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$8({
20814
21347
  xmlns: "http://www.w3.org/2000/svg",
20815
21348
  fill: "none",
20816
21349
  viewBox: "0 0 24 24",
20817
21350
  stroke: "currentColor"
20818
- }, props), _path$9 || (_path$9 = /*#__PURE__*/React__namespace.createElement("path", {
21351
+ }, props), _path$7 || (_path$7 = /*#__PURE__*/React__namespace.createElement("path", {
20819
21352
  strokeLinecap: "round",
20820
21353
  strokeLinejoin: "round",
20821
21354
  strokeWidth: 2,
@@ -20823,18 +21356,18 @@ function SvgUser(props) {
20823
21356
  })));
20824
21357
  }
20825
21358
 
20826
- var _path$8;
21359
+ var _path$6;
20827
21360
 
20828
- function _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }
21361
+ function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }
20829
21362
 
20830
21363
  function SvgNewsletter(props) {
20831
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$9({
21364
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$7({
20832
21365
  xmlns: "http://www.w3.org/2000/svg",
20833
21366
  className: "plc-h-5 plc-w-5",
20834
21367
  fill: "none",
20835
21368
  viewBox: "0 0 24 24",
20836
21369
  stroke: "currentColor"
20837
- }, props), _path$8 || (_path$8 = /*#__PURE__*/React__namespace.createElement("path", {
21370
+ }, props), _path$6 || (_path$6 = /*#__PURE__*/React__namespace.createElement("path", {
20838
21371
  strokeLinecap: "round",
20839
21372
  strokeLinejoin: "round",
20840
21373
  strokeWidth: 2,
@@ -20842,37 +21375,18 @@ function SvgNewsletter(props) {
20842
21375
  })));
20843
21376
  }
20844
21377
 
20845
- var _path$7;
20846
-
20847
- function _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
20848
-
20849
- function SvgRefresh(props) {
20850
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$8({
20851
- className: "plc-w-4 plc-h-4 plc-mr-1",
20852
- xmlns: "http://www.w3.org/2000/svg",
20853
- fill: "none",
20854
- viewBox: "0 0 24 24",
20855
- stroke: "currentColor"
20856
- }, props), _path$7 || (_path$7 = /*#__PURE__*/React__namespace.createElement("path", {
20857
- strokeLinecap: "round",
20858
- strokeLinejoin: "round",
20859
- strokeWidth: 2,
20860
- d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
20861
- })));
20862
- }
20863
-
20864
- var _path$6;
21378
+ var _path$5;
20865
21379
 
20866
- function _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }
21380
+ function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }
20867
21381
 
20868
21382
  function SvgPaymentCard(props) {
20869
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$7({
21383
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$6({
20870
21384
  className: "plc-w-6 plc-h-6 plc-mr-2",
20871
21385
  xmlns: "http://www.w3.org/2000/svg",
20872
21386
  fill: "none",
20873
21387
  viewBox: "0 0 24 24",
20874
21388
  stroke: "currentColor"
20875
- }, props), _path$6 || (_path$6 = /*#__PURE__*/React__namespace.createElement("path", {
21389
+ }, props), _path$5 || (_path$5 = /*#__PURE__*/React__namespace.createElement("path", {
20876
21390
  strokeLinecap: "round",
20877
21391
  strokeLinejoin: "round",
20878
21392
  strokeWidth: 2,
@@ -20880,18 +21394,18 @@ function SvgPaymentCard(props) {
20880
21394
  })));
20881
21395
  }
20882
21396
 
20883
- var _path$5, _path2;
21397
+ var _path$4, _path2;
20884
21398
 
20885
- function _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }
21399
+ function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }
20886
21400
 
20887
21401
  function SvgLocationPin(props) {
20888
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$6({
21402
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$5({
20889
21403
  className: "plc-w-6 plc-h-6 plc-mr-2",
20890
21404
  xmlns: "http://www.w3.org/2000/svg",
20891
21405
  fill: "none",
20892
21406
  viewBox: "0 0 24 24",
20893
21407
  stroke: "currentColor"
20894
- }, props), _path$5 || (_path$5 = /*#__PURE__*/React__namespace.createElement("path", {
21408
+ }, props), _path$4 || (_path$4 = /*#__PURE__*/React__namespace.createElement("path", {
20895
21409
  strokeLinecap: "round",
20896
21410
  strokeLinejoin: "round",
20897
21411
  strokeWidth: 2,
@@ -20906,10 +21420,10 @@ function SvgLocationPin(props) {
20906
21420
 
20907
21421
  var _switch;
20908
21422
 
20909
- function _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }
21423
+ function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }
20910
21424
 
20911
21425
  function SvgSubscription(props) {
20912
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$5({
21426
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$4({
20913
21427
  xmlns: "http://www.w3.org/2000/svg",
20914
21428
  viewBox: "0 0 100 125",
20915
21429
  fill: "currentColor"
@@ -20924,30 +21438,11 @@ function SvgSubscription(props) {
20924
21438
  }))))));
20925
21439
  }
20926
21440
 
20927
- var _path$4;
20928
-
20929
- function _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }
20930
-
20931
- function SvgShopping(props) {
20932
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$4({
20933
- className: "plc-w-6 plc-h-6 plc-mr-2",
20934
- xmlns: "http://www.w3.org/2000/svg",
20935
- fill: "none",
20936
- viewBox: "0 0 24 24",
20937
- stroke: "currentColor"
20938
- }, props), _path$4 || (_path$4 = /*#__PURE__*/React__namespace.createElement("path", {
20939
- strokeLinecap: "round",
20940
- strokeLinejoin: "round",
20941
- strokeWidth: 2,
20942
- d: "M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"
20943
- })));
20944
- }
20945
-
20946
21441
  var _path$3;
20947
21442
 
20948
21443
  function _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
20949
21444
 
20950
- function SvgBookmark(props) {
21445
+ function SvgShopping(props) {
20951
21446
  return /*#__PURE__*/React__namespace.createElement("svg", _extends$3({
20952
21447
  className: "plc-w-6 plc-h-6 plc-mr-2",
20953
21448
  xmlns: "http://www.w3.org/2000/svg",
@@ -20958,7 +21453,7 @@ function SvgBookmark(props) {
20958
21453
  strokeLinecap: "round",
20959
21454
  strokeLinejoin: "round",
20960
21455
  strokeWidth: 2,
20961
- d: "M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"
21456
+ d: "M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z"
20962
21457
  })));
20963
21458
  }
20964
21459
 
@@ -20966,9 +21461,9 @@ var _path$2;
20966
21461
 
20967
21462
  function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
20968
21463
 
20969
- function SvgPlus(props) {
21464
+ function SvgBookmark(props) {
20970
21465
  return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
20971
- className: "plc-w-5 plc-h-5",
21466
+ className: "plc-w-6 plc-h-6 plc-mr-2",
20972
21467
  xmlns: "http://www.w3.org/2000/svg",
20973
21468
  fill: "none",
20974
21469
  viewBox: "0 0 24 24",
@@ -20977,7 +21472,7 @@ function SvgPlus(props) {
20977
21472
  strokeLinecap: "round",
20978
21473
  strokeLinejoin: "round",
20979
21474
  strokeWidth: 2,
20980
- d: "M12 6v6m0 0v6m0-6h6m-6 0H6"
21475
+ d: "M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"
20981
21476
  })));
20982
21477
  }
20983
21478
 
@@ -21241,116 +21736,6 @@ class Dashboard extends React.Component {
21241
21736
  };
21242
21737
  });
21243
21738
 
21244
- _defineProperty$3(this, "renderSubscriptions", () => {
21245
- var _this$state$subscript;
21246
-
21247
- const subscriptions = (_this$state$subscript = this.state.subscriptions) === null || _this$state$subscript === void 0 ? void 0 : _this$state$subscript.sort((a, b) => a.expires_at - b.expires_at).sort((a, b) => a.renews_at - b.renews_at).map(sub => {
21248
- // Cancel button click handlers
21249
- const onCancelClick = () => {
21250
- this.props.onClose();
21251
- notify.confirm((onSuccess, onFailure) => {
21252
- this.cancelSubscription(sub.id, onSuccess, onFailure);
21253
- }, {
21254
- confirmMessage: this.locale("messages.subCancellation.isSureToCancel"),
21255
- loadingMessage: this.locale("messages.subCancellation.loading"),
21256
- successMessage: this.locale("messages.subCancellation.success"),
21257
- errorMessage: this.locale("messages.subCancellation.error")
21258
- }, {
21259
- closeButtonLabel: this.locale("labels.subCancellation.goBack")
21260
- });
21261
- }; // Reactivate button click handlers
21262
-
21263
-
21264
- const onReactivateClick = () => {
21265
- this.reactivateSubscription(sub.id);
21266
- }; // Renew click
21267
-
21268
-
21269
- const onRenewClick = () => {
21270
- const product_id = sub.plan.product.id;
21271
- const plan_id = sub.plan.id;
21272
- const product = window.Pelcro.product.getById(product_id);
21273
- const plan = window.Pelcro.plan.getById(plan_id);
21274
- this.props.setProductAndPlan(product, plan);
21275
- this.props.setSubscriptionIdToRenew(sub.id);
21276
- this.props.setView("plan-select");
21277
- };
21278
-
21279
- return /*#__PURE__*/React__default['default'].createElement("tr", {
21280
- key: "dashboard-subscription-" + sub.id,
21281
- className: "plc-w-full plc-align-top"
21282
- }, /*#__PURE__*/React__default['default'].createElement("td", {
21283
- className: "plc-truncate"
21284
- }, sub.plan.nickname && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("span", {
21285
- className: "plc-font-semibold plc-text-gray-500"
21286
- }, sub.plan.nickname), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
21287
- className: "plc-text-xs plc-text-gray-400"
21288
- }, getFormattedPriceByLocal(sub.plan.amount, sub.plan.currency, this.site.default_locale)))), /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
21289
- className: `plc-inline-flex plc-p-1 plc-text-xs plc-font-semibold ${this.getSubscriptionStatus(sub).bgColor} plc-uppercase ${this.getSubscriptionStatus(sub).textColor} plc-rounded-lg`
21290
- }, this.getSubscriptionStatus(sub).icon, this.getSubscriptionStatus(sub).title), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("div", {
21291
- className: "plc-mb-4 plc-text-xs plc-text-gray-500"
21292
- }, sub.status && /*#__PURE__*/React__default['default'].createElement("span", {
21293
- className: "plc-inline-block plc-mt-1 plc-underline"
21294
- }, this.getSubscriptionStatus(sub).content), /*#__PURE__*/React__default['default'].createElement("br", null), sub.shipments_remaining ? /*#__PURE__*/React__default['default'].createElement("span", {
21295
- className: "plc-inline-block plc-mt-1"
21296
- }, sub.shipments_remaining, " ", this.locale("labels.shipments")) : null)), /*#__PURE__*/React__default['default'].createElement("td", null, sub.cancel_at_period_end === 0 && /*#__PURE__*/React__default['default'].createElement(Button, {
21297
- variant: "ghost",
21298
- className: "plc-text-red-500 focus:plc-ring-red-500 pelcro-dashoard-sub-cancel-button",
21299
- icon: /*#__PURE__*/React__default['default'].createElement(SvgXIconSolid, null),
21300
- onClick: onCancelClick,
21301
- disabled: this.state.disableSubmit,
21302
- "data-key": sub.id
21303
- }, this.locale("labels.unsubscribe")), sub.cancel_at_period_end === 1 && sub.plan.auto_renew && !sub.is_gift_recipient && /*#__PURE__*/React__default['default'].createElement(Button, {
21304
- variant: "ghost",
21305
- className: "plc-text-green-400 focus:plc-ring-green-300 pelcro-dashoard-sub-reactivate-button",
21306
- icon: /*#__PURE__*/React__default['default'].createElement(SvgRefresh, null),
21307
- onClick: onReactivateClick,
21308
- disabled: this.state.disableSubmit,
21309
- "data-key": sub.id
21310
- }, this.locale("labels.reactivate")), sub.cancel_at_period_end === 1 && /*#__PURE__*/React__default['default'].createElement(Button, {
21311
- variant: "ghost",
21312
- className: "plc-text-blue-400 pelcro-dashoard-sub-renew-button",
21313
- icon: /*#__PURE__*/React__default['default'].createElement(SvgRefresh, null),
21314
- onClick: onRenewClick,
21315
- disabled: this.state.disableSubmit,
21316
- "data-key": sub.id
21317
- }, this.locale("labels.renew"))));
21318
- });
21319
- return /*#__PURE__*/React__default['default'].createElement("table", {
21320
- className: "plc-w-full plc-table-fixed"
21321
- }, /*#__PURE__*/React__default['default'].createElement("thead", {
21322
- className: "plc-text-xs plc-font-semibold plc-tracking-wider plc-text-gray-400 plc-uppercase "
21323
- }, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("th", {
21324
- className: "plc-w-5/12 "
21325
- }, this.locale("labels.plan")), /*#__PURE__*/React__default['default'].createElement("th", {
21326
- className: "plc-w-4/12 "
21327
- }, this.locale("labels.status.title")), /*#__PURE__*/React__default['default'].createElement("th", {
21328
- className: "plc-w-3/12 "
21329
- }, this.locale("labels.actions")))), /*#__PURE__*/React__default['default'].createElement("tbody", null, /*#__PURE__*/React__default['default'].createElement("tr", {
21330
- className: "plc-h-4"
21331
- }), subscriptions, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
21332
- colSpan: "4",
21333
- className: "plc-p-1"
21334
- }, /*#__PURE__*/React__default['default'].createElement(Button, {
21335
- variant: "ghost",
21336
- icon: /*#__PURE__*/React__default['default'].createElement(SvgPlus, {
21337
- className: "plc-w-4 plc-h-4 plc-mr-1"
21338
- }),
21339
- className: "plc-w-full plc-h-8 plc-font-semibold plc-tracking-wider plc-text-gray-900 plc-uppercase plc-rounded-none hover:plc-bg-gray-100",
21340
- onClick: this.displayProductSelect
21341
- }, this.locale("labels.addSubscription")))), /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("td", {
21342
- colSpan: "4",
21343
- className: "plc-p-1"
21344
- }, /*#__PURE__*/React__default['default'].createElement(Button, {
21345
- variant: "ghost",
21346
- icon: /*#__PURE__*/React__default['default'].createElement(SvgGift, {
21347
- className: "plc-w-4 plc-h-4 plc-mr-1"
21348
- }),
21349
- className: "plc-w-full plc-h-8 plc-font-semibold plc-tracking-wider plc-text-gray-900 plc-uppercase plc-rounded-none hover:plc-bg-gray-100",
21350
- onClick: this.displayRedeem
21351
- }, this.locale("labels.redeemGift"))))));
21352
- });
21353
-
21354
21739
  _defineProperty$3(this, "renderGiftRecipients", () => {
21355
21740
  var _giftRecipients$sort, _giftRecipients$sort$;
21356
21741
 
@@ -21388,7 +21773,7 @@ class Dashboard extends React.Component {
21388
21773
  className: "plc-font-semibold plc-text-gray-500"
21389
21774
  }, recipient.plan.nickname), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("span", {
21390
21775
  className: "plc-text-xs plc-text-gray-400"
21391
- }, getFormattedPriceByLocal(recipient.plan.amount, recipient.plan.currency, this.site.default_locale)))), recipient.status && /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
21776
+ }, getFormattedPriceByLocal(recipient.plan.amount, recipient.plan.currency, getPageOrDefaultLanguage())))), recipient.status && /*#__PURE__*/React__default['default'].createElement("td", null, /*#__PURE__*/React__default['default'].createElement("span", {
21392
21777
  className: `plc-inline-flex plc-p-1 plc-text-xs plc-font-semibold ${this.getSubscriptionStatus(recipient).bgColor} plc-uppercase ${this.getSubscriptionStatus(recipient).textColor} plc-rounded-lg`
21393
21778
  }, this.getSubscriptionStatus(recipient).icon, this.getSubscriptionStatus(recipient).title), /*#__PURE__*/React__default['default'].createElement("br", null), /*#__PURE__*/React__default['default'].createElement("div", {
21394
21779
  className: "plc-mb-4 plc-text-xs plc-text-gray-500"
@@ -21625,7 +22010,18 @@ class Dashboard extends React.Component {
21625
22010
  className: "plc-w-10 plc-h-10 plc-pt-2 plc-pr-1 plc--ml-2"
21626
22011
  }),
21627
22012
  title: this.locale("labels.subscriptions"),
21628
- content: this.renderSubscriptions()
22013
+ content: /*#__PURE__*/React__default['default'].createElement(SubscriptionsMenu, {
22014
+ onClose: this.props.onClose,
22015
+ cancelSubscription: this.cancelSubscription,
22016
+ reactivateSubscription: this.reactivateSubscription,
22017
+ setProductAndPlan: this.props.setProductAndPlan,
22018
+ setSubscriptionIdToRenew: this.props.setSubscriptionIdToRenew,
22019
+ setView: this.props.setView,
22020
+ getSubscriptionStatus: this.getSubscriptionStatus,
22021
+ disableSubmit: this.state.disableSubmit,
22022
+ displayProductSelect: this.displayProductSelect,
22023
+ displayRedeem: this.displayRedeem
22024
+ })
21629
22025
  }), /*#__PURE__*/React__default['default'].createElement(Accordion.item, {
21630
22026
  name: SUB_MENUS.GIFTS,
21631
22027
  icon: /*#__PURE__*/React__default['default'].createElement(SvgGift, null),