@merchi/checkout 1.3.5
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/README.md +196 -0
- package/lib/actions/confirm.d.ts +2 -0
- package/lib/actions/confirm.js +85 -0
- package/lib/actions/customer.d.ts +2 -0
- package/lib/actions/customer.js +53 -0
- package/lib/actions/domain.d.ts +2 -0
- package/lib/actions/domain.js +65 -0
- package/lib/actions/files.d.ts +1 -0
- package/lib/actions/files.js +35 -0
- package/lib/actions/helpers.d.ts +19 -0
- package/lib/actions/helpers.js +125 -0
- package/lib/actions/invoice.d.ts +3 -0
- package/lib/actions/invoice.js +113 -0
- package/lib/area.d.ts +77 -0
- package/lib/area.js +298 -0
- package/lib/assets/merchi-monster-loader.gif +0 -0
- package/lib/checkoutSession.d.ts +32 -0
- package/lib/checkoutSession.js +151 -0
- package/lib/components/Alerts.d.ts +3 -0
- package/lib/components/Alerts.js +88 -0
- package/lib/components/CancelOrderConfirmModal.d.ts +10 -0
- package/lib/components/CancelOrderConfirmModal.js +50 -0
- package/lib/components/CheckoutSummaryFields.d.ts +11 -0
- package/lib/components/CheckoutSummaryFields.js +38 -0
- package/lib/components/Collapse.d.ts +3 -0
- package/lib/components/Collapse.js +34 -0
- package/lib/components/CustomerCheckoutMethodTabs.d.ts +6 -0
- package/lib/components/CustomerCheckoutMethodTabs.js +90 -0
- package/lib/components/DiscountInputGroup.d.ts +2 -0
- package/lib/components/DiscountInputGroup.js +256 -0
- package/lib/components/DraftImageUploaded.d.ts +8 -0
- package/lib/components/DraftImageUploaded.js +53 -0
- package/lib/components/FooterButtons.d.ts +11 -0
- package/lib/components/FooterButtons.js +28 -0
- package/lib/components/InvoiceInfo.d.ts +6 -0
- package/lib/components/InvoiceInfo.js +37 -0
- package/lib/components/JobInfoContent.d.ts +2 -0
- package/lib/components/JobInfoContent.js +728 -0
- package/lib/components/MerchiCheckout.d.ts +46 -0
- package/lib/components/MerchiCheckout.js +49 -0
- package/lib/components/MerchiCheckoutProvider.d.ts +167 -0
- package/lib/components/MerchiCheckoutProvider.js +569 -0
- package/lib/components/MerchiCheckoutTabs.d.ts +2 -0
- package/lib/components/MerchiCheckoutTabs.js +50 -0
- package/lib/components/TabPane.d.ts +7 -0
- package/lib/components/TabPane.js +21 -0
- package/lib/components/TabPaneAddress.d.ts +3 -0
- package/lib/components/TabPaneAddress.js +28 -0
- package/lib/components/TabPaneConfirm.d.ts +11 -0
- package/lib/components/TabPaneConfirm.js +288 -0
- package/lib/components/TabPaneContainer.d.ts +6 -0
- package/lib/components/TabPaneContainer.js +13 -0
- package/lib/components/TabPaneCustomer.d.ts +5 -0
- package/lib/components/TabPaneCustomer.js +93 -0
- package/lib/components/TabPaneNewDomain.d.ts +3 -0
- package/lib/components/TabPaneNewDomain.js +39 -0
- package/lib/components/TabPanePayment.d.ts +3 -0
- package/lib/components/TabPanePayment.js +99 -0
- package/lib/components/TabPaneSubmitted.d.ts +3 -0
- package/lib/components/TabPaneSubmitted.js +90 -0
- package/lib/components/TitleStep.d.ts +6 -0
- package/lib/components/TitleStep.js +24 -0
- package/lib/components/buttons/ButtonInvoiceDownload.d.ts +3 -0
- package/lib/components/buttons/ButtonInvoiceDownload.js +91 -0
- package/lib/components/buttons/ButtonNext.d.ts +10 -0
- package/lib/components/buttons/ButtonNext.js +48 -0
- package/lib/components/buttons/ButtonPrevious.d.ts +7 -0
- package/lib/components/buttons/ButtonPrevious.js +36 -0
- package/lib/components/buttons/index.d.ts +3 -0
- package/lib/components/buttons/index.js +4 -0
- package/lib/components/currency.d.ts +5 -0
- package/lib/components/currency.js +223 -0
- package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.d.ts +7 -0
- package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.js +22 -0
- package/lib/components/forms/FormAddresses.d.ts +6 -0
- package/lib/components/forms/FormAddresses.js +251 -0
- package/lib/components/forms/FormCustomerNew.d.ts +4 -0
- package/lib/components/forms/FormCustomerNew.js +197 -0
- package/lib/components/forms/FormCustomerReturning.d.ts +3 -0
- package/lib/components/forms/FormCustomerReturning.js +147 -0
- package/lib/components/forms/FormDomainNew.d.ts +2 -0
- package/lib/components/forms/FormDomainNew.js +152 -0
- package/lib/components/forms/FormWhatsappCustomer.d.ts +4 -0
- package/lib/components/forms/FormWhatsappCustomer.js +217 -0
- package/lib/components/forms/InputAcceptUserTermsAndConditions.d.ts +7 -0
- package/lib/components/forms/InputAcceptUserTermsAndConditions.js +38 -0
- package/lib/components/forms/InputCheckStoreName.d.ts +7 -0
- package/lib/components/forms/InputCheckStoreName.js +168 -0
- package/lib/components/forms/InputError.d.ts +8 -0
- package/lib/components/forms/InputError.js +19 -0
- package/lib/components/forms/InputFileUpload.d.ts +12 -0
- package/lib/components/forms/InputFileUpload.js +191 -0
- package/lib/components/forms/InputSelect.d.ts +14 -0
- package/lib/components/forms/InputSelect.js +52 -0
- package/lib/components/forms/InputText.d.ts +12 -0
- package/lib/components/forms/InputText.js +59 -0
- package/lib/components/forms/InputsAddress.d.ts +12 -0
- package/lib/components/forms/InputsAddress.js +533 -0
- package/lib/components/forms/index.d.ts +5 -0
- package/lib/components/forms/index.js +6 -0
- package/lib/components/lists/ListShipmentQuoteOptions.d.ts +9 -0
- package/lib/components/lists/ListShipmentQuoteOptions.js +145 -0
- package/lib/components/lists/index.d.ts +2 -0
- package/lib/components/lists/index.js +3 -0
- package/lib/fonts/nunito-bold-webfont.woff +0 -0
- package/lib/fonts/nunito-bold-webfont.woff2 +0 -0
- package/lib/fonts/nunito-regular-webfont.woff +0 -0
- package/lib/fonts/nunito-regular-webfont.woff2 +0 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -0
- package/lib/merchi_source.d.ts +2 -0
- package/lib/merchi_source.js +31 -0
- package/lib/styles/globals.css +2546 -0
- package/lib/styles/globals.css.map +1 -0
- package/lib/styles/globals.scss +2763 -0
- package/lib/tabs_utils.d.ts +31 -0
- package/lib/tabs_utils.js +104 -0
- package/lib/types.d.ts +43 -0
- package/lib/types.js +40 -0
- package/lib/utils.d.ts +68 -0
- package/lib/utils.js +560 -0
- package/package.json +96 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
5
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
6
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
7
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
8
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
9
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
11
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
12
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
13
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
+
import React from 'react';
|
|
20
|
+
import { debounce } from 'lodash';
|
|
21
|
+
import { useEffect, useState } from 'react';
|
|
22
|
+
import { useForm } from 'react-hook-form';
|
|
23
|
+
import { useMerchiCheckboutContext } from '../MerchiCheckoutProvider';
|
|
24
|
+
import InputsAddress from './InputsAddress';
|
|
25
|
+
import CheckboxBillingAddressSameAsShippingAddress from './CheckboxBillingAddressSameAsShippingAddress';
|
|
26
|
+
import InputError from './InputError';
|
|
27
|
+
import { ListShipmentQuoteOptions } from '../lists';
|
|
28
|
+
import { getSavedShippingAddress, loadCheckoutSession } from '../../checkoutSession';
|
|
29
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
30
|
+
var ShippingAddressInputs = function ShippingAddressInputs(props) {
|
|
31
|
+
return /*#__PURE__*/_jsx(InputsAddress, _objectSpread(_objectSpread({}, props), {}, {
|
|
32
|
+
name: "shippingAddress"
|
|
33
|
+
}));
|
|
34
|
+
};
|
|
35
|
+
var BillingAddressInputs = function BillingAddressInputs(props) {
|
|
36
|
+
return /*#__PURE__*/_jsx(InputsAddress, _objectSpread(_objectSpread({}, props), {}, {
|
|
37
|
+
name: "billingAddress"
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
40
|
+
function addressesMatch(left, right) {
|
|
41
|
+
if (!(left !== null && left !== void 0 && left.lineOne) || !(right !== null && right !== void 0 && right.lineOne)) return true;
|
|
42
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
43
|
+
}
|
|
44
|
+
function FormAddresses(_ref) {
|
|
45
|
+
var _job$shipping2;
|
|
46
|
+
var formId = _ref.formId;
|
|
47
|
+
var _useMerchiCheckboutCo = useMerchiCheckboutContext(),
|
|
48
|
+
job = _useMerchiCheckboutCo.job,
|
|
49
|
+
merchi = _useMerchiCheckboutCo.merchi,
|
|
50
|
+
nextTab = _useMerchiCheckboutCo.nextTab,
|
|
51
|
+
product = _useMerchiCheckboutCo.product,
|
|
52
|
+
setJob = _useMerchiCheckboutCo.setJob;
|
|
53
|
+
var recommendedShipping = getSavedShippingAddress(loadCheckoutSession(product));
|
|
54
|
+
var _useState = useState(function () {
|
|
55
|
+
return addressesMatch(job.shipping, job.billing);
|
|
56
|
+
}),
|
|
57
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
58
|
+
billingAddressSameAsShippingAddress = _useState2[0],
|
|
59
|
+
setBillingAddressSameAsShippingAddress = _useState2[1];
|
|
60
|
+
var _useState3 = useState(false),
|
|
61
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
62
|
+
loading = _useState4[0],
|
|
63
|
+
setLoading = _useState4[1];
|
|
64
|
+
var _useState5 = useState(null),
|
|
65
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
66
|
+
error = _useState6[0],
|
|
67
|
+
setError = _useState6[1];
|
|
68
|
+
var _useState7 = useState([]),
|
|
69
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
70
|
+
shipmentOptions = _useState8[0],
|
|
71
|
+
setShipmentOptions = _useState8[1];
|
|
72
|
+
var hookForm = useForm({
|
|
73
|
+
defaultValues: {
|
|
74
|
+
shippingAddress: job.shipping || {},
|
|
75
|
+
billingAddress: job.billing || {}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
var getValues = hookForm.getValues,
|
|
79
|
+
handleSubmit = hookForm.handleSubmit,
|
|
80
|
+
reset = hookForm.reset;
|
|
81
|
+
var debouncedFetchShippingOptions = debounce(/*#__PURE__*/function () {
|
|
82
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(address) {
|
|
83
|
+
var _r$shipments, _shipments$, _job$product, _product, _job$quantity, quantity, addressEnt, query, r, shipments, firstShipment, _t;
|
|
84
|
+
return _regenerator().w(function (_context) {
|
|
85
|
+
while (1) switch (_context.p = _context.n) {
|
|
86
|
+
case 0:
|
|
87
|
+
onSelectShipment(null);
|
|
88
|
+
setError(null);
|
|
89
|
+
setLoading(true);
|
|
90
|
+
_context.p = 1;
|
|
91
|
+
_job$product = job.product, _product = _job$product === void 0 ? {} : _job$product, _job$quantity = job.quantity, quantity = _job$quantity === void 0 ? 0 : _job$quantity;
|
|
92
|
+
addressEnt = new merchi.Address().fromJson(address, {
|
|
93
|
+
makeDirty: true
|
|
94
|
+
}).toFormData({
|
|
95
|
+
_prefix: 'address-0'
|
|
96
|
+
});
|
|
97
|
+
query = [['quantity', quantity.toString()]];
|
|
98
|
+
_context.n = 2;
|
|
99
|
+
return merchi.authenticatedFetch("/products/".concat(_product.id, "/shipment_options/"), {
|
|
100
|
+
body: addressEnt,
|
|
101
|
+
method: 'POST',
|
|
102
|
+
query: query
|
|
103
|
+
});
|
|
104
|
+
case 2:
|
|
105
|
+
r = _context.v;
|
|
106
|
+
shipments = (_r$shipments = r.shipments) !== null && _r$shipments !== void 0 ? _r$shipments : [];
|
|
107
|
+
setShipmentOptions(shipments);
|
|
108
|
+
firstShipment = (_shipments$ = shipments[0]) === null || _shipments$ === void 0 ? void 0 : _shipments$.shipment;
|
|
109
|
+
if (firstShipment) {
|
|
110
|
+
setJob(function (prev) {
|
|
111
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
112
|
+
shipment: firstShipment
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
_context.n = 4;
|
|
117
|
+
break;
|
|
118
|
+
case 3:
|
|
119
|
+
_context.p = 3;
|
|
120
|
+
_t = _context.v;
|
|
121
|
+
setError(_t);
|
|
122
|
+
case 4:
|
|
123
|
+
_context.p = 4;
|
|
124
|
+
setLoading(false);
|
|
125
|
+
return _context.f(4);
|
|
126
|
+
case 5:
|
|
127
|
+
return _context.a(2);
|
|
128
|
+
}
|
|
129
|
+
}, _callee, null, [[1, 3, 4, 5]]);
|
|
130
|
+
}));
|
|
131
|
+
return function (_x) {
|
|
132
|
+
return _ref2.apply(this, arguments);
|
|
133
|
+
};
|
|
134
|
+
}(), 1000);
|
|
135
|
+
useEffect(function () {
|
|
136
|
+
var _job$shipping;
|
|
137
|
+
if (!((_job$shipping = job.shipping) !== null && _job$shipping !== void 0 && _job$shipping.lineOne)) return;
|
|
138
|
+
reset({
|
|
139
|
+
shippingAddress: job.shipping,
|
|
140
|
+
billingAddress: job.billing || job.shipping
|
|
141
|
+
});
|
|
142
|
+
setBillingAddressSameAsShippingAddress(addressesMatch(job.shipping, job.billing));
|
|
143
|
+
debouncedFetchShippingOptions(job.shipping);
|
|
144
|
+
}, [(_job$shipping2 = job.shipping) === null || _job$shipping2 === void 0 ? void 0 : _job$shipping2.lineOne]);
|
|
145
|
+
function persistAddressToJob(name, address) {
|
|
146
|
+
setJob(function (prev) {
|
|
147
|
+
if (name === 'shippingAddress') {
|
|
148
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
149
|
+
shipping: address,
|
|
150
|
+
billing: billingAddressSameAsShippingAddress ? address : prev.billing
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
154
|
+
billing: address
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function _updateAddress2(_x2, _x3, _x4) {
|
|
159
|
+
return _updateAddress.apply(this, arguments);
|
|
160
|
+
}
|
|
161
|
+
function _updateAddress() {
|
|
162
|
+
_updateAddress = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(name, fetch, address) {
|
|
163
|
+
var values;
|
|
164
|
+
return _regenerator().w(function (_context2) {
|
|
165
|
+
while (1) switch (_context2.n) {
|
|
166
|
+
case 0:
|
|
167
|
+
if (!(!address || _typeof(address) !== 'object')) {
|
|
168
|
+
_context2.n = 1;
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
return _context2.a(2);
|
|
172
|
+
case 1:
|
|
173
|
+
values = getValues();
|
|
174
|
+
values[name] = address;
|
|
175
|
+
reset(values);
|
|
176
|
+
persistAddressToJob(name, address);
|
|
177
|
+
if (fetch) {
|
|
178
|
+
debouncedFetchShippingOptions(address);
|
|
179
|
+
}
|
|
180
|
+
case 2:
|
|
181
|
+
return _context2.a(2);
|
|
182
|
+
}
|
|
183
|
+
}, _callee2);
|
|
184
|
+
}));
|
|
185
|
+
return _updateAddress.apply(this, arguments);
|
|
186
|
+
}
|
|
187
|
+
function onSelectShipment(shipment) {
|
|
188
|
+
setJob(function (prev) {
|
|
189
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
190
|
+
shipment: shipment
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
function onSubmit(_x5) {
|
|
195
|
+
return _onSubmit.apply(this, arguments);
|
|
196
|
+
}
|
|
197
|
+
function _onSubmit() {
|
|
198
|
+
_onSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(values) {
|
|
199
|
+
var address, newJob;
|
|
200
|
+
return _regenerator().w(function (_context3) {
|
|
201
|
+
while (1) switch (_context3.n) {
|
|
202
|
+
case 0:
|
|
203
|
+
address = values.shippingAddress;
|
|
204
|
+
newJob = _objectSpread({}, job);
|
|
205
|
+
newJob.shipping = address;
|
|
206
|
+
newJob.billing = billingAddressSameAsShippingAddress ? address : values.billingAddress;
|
|
207
|
+
setJob(newJob);
|
|
208
|
+
nextTab();
|
|
209
|
+
case 1:
|
|
210
|
+
return _context3.a(2);
|
|
211
|
+
}
|
|
212
|
+
}, _callee3);
|
|
213
|
+
}));
|
|
214
|
+
return _onSubmit.apply(this, arguments);
|
|
215
|
+
}
|
|
216
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
217
|
+
children: /*#__PURE__*/_jsxs("form", {
|
|
218
|
+
id: formId,
|
|
219
|
+
onSubmit: handleSubmit(onSubmit),
|
|
220
|
+
children: [/*#__PURE__*/_jsx(ShippingAddressInputs, {
|
|
221
|
+
defaultAddress: job.shipping,
|
|
222
|
+
hookForm: hookForm,
|
|
223
|
+
name: "shippingAddress",
|
|
224
|
+
recommendedAddress: recommendedShipping,
|
|
225
|
+
updateAddress: function updateAddress(addr) {
|
|
226
|
+
return _updateAddress2('shippingAddress', true, addr);
|
|
227
|
+
}
|
|
228
|
+
}), /*#__PURE__*/_jsx(CheckboxBillingAddressSameAsShippingAddress, {
|
|
229
|
+
billingAddressSameAsShippingAddress: billingAddressSameAsShippingAddress,
|
|
230
|
+
setBillingAddressSameAsShippingAddress: setBillingAddressSameAsShippingAddress
|
|
231
|
+
}), !billingAddressSameAsShippingAddress && /*#__PURE__*/_jsx(BillingAddressInputs, {
|
|
232
|
+
defaultAddress: job.billing,
|
|
233
|
+
hookForm: hookForm,
|
|
234
|
+
labelGeoSuggest: "Billing Address",
|
|
235
|
+
name: "billingAddress",
|
|
236
|
+
updateAddress: function updateAddress(addr) {
|
|
237
|
+
return _updateAddress2('billingAddress', false, addr);
|
|
238
|
+
}
|
|
239
|
+
}), /*#__PURE__*/_jsx(InputError, {
|
|
240
|
+
error: error || {}
|
|
241
|
+
}), /*#__PURE__*/_jsx(ListShipmentQuoteOptions, {
|
|
242
|
+
doSelectShipmentOption: onSelectShipment,
|
|
243
|
+
loading: loading,
|
|
244
|
+
selectedOption: job.shipment,
|
|
245
|
+
shipmentOptions: shipmentOptions
|
|
246
|
+
})]
|
|
247
|
+
})
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
export default FormAddresses;
|
|
251
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3IiLCJlIiwidCIsInIiLCJuIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibmV4dCIsInB1c2giLCJpc0FycmF5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIlJlYWN0IiwiZGVib3VuY2UiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInVzZUZvcm0iLCJ1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0IiwiSW5wdXRzQWRkcmVzcyIsIkNoZWNrYm94QmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3MiLCJJbnB1dEVycm9yIiwiTGlzdFNoaXBtZW50UXVvdGVPcHRpb25zIiwiZ2V0U2F2ZWRTaGlwcGluZ0FkZHJlc3MiLCJsb2FkQ2hlY2tvdXRTZXNzaW9uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiU2hpcHBpbmdBZGRyZXNzSW5wdXRzIiwicHJvcHMiLCJCaWxsaW5nQWRkcmVzc0lucHV0cyIsImFkZHJlc3Nlc01hdGNoIiwibGVmdCIsInJpZ2h0IiwibGluZU9uZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJGb3JtQWRkcmVzc2VzIiwiX3JlZiIsIl9qb2Ikc2hpcHBpbmcyIiwiZm9ybUlkIiwiX3VzZU1lcmNoaUNoZWNrYm91dENvIiwiam9iIiwibWVyY2hpIiwibmV4dFRhYiIsInByb2R1Y3QiLCJzZXRKb2IiLCJyZWNvbW1lbmRlZFNoaXBwaW5nIiwiX3VzZVN0YXRlIiwic2hpcHBpbmciLCJiaWxsaW5nIiwiX3VzZVN0YXRlMiIsImJpbGxpbmdBZGRyZXNzU2FtZUFzU2hpcHBpbmdBZGRyZXNzIiwic2V0QmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3MiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzaGlwbWVudE9wdGlvbnMiLCJzZXRTaGlwbWVudE9wdGlvbnMiLCJob29rRm9ybSIsImRlZmF1bHRWYWx1ZXMiLCJzaGlwcGluZ0FkZHJlc3MiLCJiaWxsaW5nQWRkcmVzcyIsImdldFZhbHVlcyIsImhhbmRsZVN1Ym1pdCIsInJlc2V0IiwiZGVib3VuY2VkRmV0Y2hTaGlwcGluZ09wdGlvbnMiLCJfcmVmMiIsIl9jYWxsZWUiLCJhZGRyZXNzIiwiX3Ikc2hpcG1lbnRzIiwiX3NoaXBtZW50cyQiLCJfam9iJHByb2R1Y3QiLCJfcHJvZHVjdCIsIl9qb2IkcXVhbnRpdHkiLCJxdWFudGl0eSIsImFkZHJlc3NFbnQiLCJxdWVyeSIsInNoaXBtZW50cyIsImZpcnN0U2hpcG1lbnQiLCJfdCIsIl9jb250ZXh0Iiwib25TZWxlY3RTaGlwbWVudCIsIkFkZHJlc3MiLCJmcm9tSnNvbiIsIm1ha2VEaXJ0eSIsInRvRm9ybURhdGEiLCJfcHJlZml4IiwiYXV0aGVudGljYXRlZEZldGNoIiwiY29uY2F0IiwiaWQiLCJib2R5IiwibWV0aG9kIiwic2hpcG1lbnQiLCJwcmV2IiwiX3giLCJfam9iJHNoaXBwaW5nIiwicGVyc2lzdEFkZHJlc3NUb0pvYiIsInVwZGF0ZUFkZHJlc3MiLCJfeDIiLCJfeDMiLCJfeDQiLCJfdXBkYXRlQWRkcmVzcyIsIl9jYWxsZWUyIiwiZmV0Y2giLCJ2YWx1ZXMiLCJfY29udGV4dDIiLCJvblN1Ym1pdCIsIl94NSIsIl9vblN1Ym1pdCIsIl9jYWxsZWUzIiwibmV3Sm9iIiwiX2NvbnRleHQzIiwiY2hpbGRyZW4iLCJkZWZhdWx0QWRkcmVzcyIsInJlY29tbWVuZGVkQWRkcmVzcyIsImFkZHIiLCJsYWJlbEdlb1N1Z2dlc3QiLCJkb1NlbGVjdFNoaXBtZW50T3B0aW9uIiwic2VsZWN0ZWRPcHRpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9mb3Jtcy9Gb3JtQWRkcmVzc2VzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICdyZWFjdC1ob29rLWZvcm0nO1xuaW1wb3J0IHsgdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCB9IGZyb20gJy4uL01lcmNoaUNoZWNrb3V0UHJvdmlkZXInO1xuaW1wb3J0IElucHV0c0FkZHJlc3MgZnJvbSAnLi9JbnB1dHNBZGRyZXNzJztcbmltcG9ydCBDaGVja2JveEJpbGxpbmdBZGRyZXNzU2FtZUFzU2hpcHBpbmdBZGRyZXNzIGZyb20gJy4vQ2hlY2tib3hCaWxsaW5nQWRkcmVzc1NhbWVBc1NoaXBwaW5nQWRkcmVzcyc7XG5pbXBvcnQgSW5wdXRFcnJvciBmcm9tICcuL0lucHV0RXJyb3InO1xuaW1wb3J0IHsgTGlzdFNoaXBtZW50UXVvdGVPcHRpb25zIH0gZnJvbSAnLi4vbGlzdHMnO1xuaW1wb3J0IHtcbiAgZ2V0U2F2ZWRTaGlwcGluZ0FkZHJlc3MsXG4gIGxvYWRDaGVja291dFNlc3Npb24sXG59IGZyb20gJy4uLy4uL2NoZWNrb3V0U2Vzc2lvbic7XG5cbmludGVyZmFjZSBQcm9wc0FkZHJlc3Mge1xuICBkZWZhdWx0QWRkcmVzcz86IGFueTtcbiAgbGFiZWxHZW9TdWdnZXN0Pzogc3RyaW5nO1xuICBob29rRm9ybTogYW55O1xuICBuYW1lPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgcmVjb21tZW5kZWRBZGRyZXNzPzogYW55O1xuICB1cGRhdGVBZGRyZXNzOiAoYWRkcmVzczogYW55KSA9PiB2b2lkO1xufVxuXG5jb25zdCBTaGlwcGluZ0FkZHJlc3NJbnB1dHMgPSAocHJvcHM6IFByb3BzQWRkcmVzcykgPT4gKFxuICA8SW5wdXRzQWRkcmVzcyB7Li4ucHJvcHN9IG5hbWU9J3NoaXBwaW5nQWRkcmVzcycgLz5cbik7XG5jb25zdCBCaWxsaW5nQWRkcmVzc0lucHV0cyA9IChwcm9wczogUHJvcHNBZGRyZXNzKSA9PiAoXG4gIDxJbnB1dHNBZGRyZXNzIHsuLi5wcm9wc30gbmFtZT0nYmlsbGluZ0FkZHJlc3MnIC8+XG4pO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBmb3JtSWQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gYWRkcmVzc2VzTWF0Y2gobGVmdDogYW55LCByaWdodDogYW55KSB7XG4gIGlmICghbGVmdD8ubGluZU9uZSB8fCAhcmlnaHQ/LmxpbmVPbmUpIHJldHVybiB0cnVlO1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobGVmdCkgPT09IEpTT04uc3RyaW5naWZ5KHJpZ2h0KTtcbn1cblxuZnVuY3Rpb24gRm9ybUFkZHJlc3Nlcyh7IGZvcm1JZCB9OiBQcm9wcykge1xuICBjb25zdCB7IGpvYiwgbWVyY2hpLCBuZXh0VGFiLCBwcm9kdWN0LCBzZXRKb2IgfSA9IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQoKTtcbiAgY29uc3QgcmVjb21tZW5kZWRTaGlwcGluZyA9IGdldFNhdmVkU2hpcHBpbmdBZGRyZXNzKFxuICAgIGxvYWRDaGVja291dFNlc3Npb24ocHJvZHVjdClcbiAgKTtcbiAgY29uc3QgW1xuICAgIGJpbGxpbmdBZGRyZXNzU2FtZUFzU2hpcHBpbmdBZGRyZXNzLFxuICAgIHNldEJpbGxpbmdBZGRyZXNzU2FtZUFzU2hpcHBpbmdBZGRyZXNzLFxuICBdID0gdXNlU3RhdGUoKCkgPT4gYWRkcmVzc2VzTWF0Y2goam9iLnNoaXBwaW5nLCBqb2IuYmlsbGluZykpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtzaGlwbWVudE9wdGlvbnMsIHNldFNoaXBtZW50T3B0aW9uc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IGhvb2tGb3JtID0gdXNlRm9ybSh7XG4gICAgZGVmYXVsdFZhbHVlczoge1xuICAgICAgc2hpcHBpbmdBZGRyZXNzOiBqb2Iuc2hpcHBpbmcgfHwge30sXG4gICAgICBiaWxsaW5nQWRkcmVzczogam9iLmJpbGxpbmcgfHwge30sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHtcbiAgICBnZXRWYWx1ZXMsXG4gICAgaGFuZGxlU3VibWl0LFxuICAgIHJlc2V0LFxuICB9ID0gaG9va0Zvcm07XG4gIGNvbnN0IGRlYm91bmNlZEZldGNoU2hpcHBpbmdPcHRpb25zID0gZGVib3VuY2UoYXN5bmMgKGFkZHJlc3M6IGFueSkgPT4ge1xuICAgIG9uU2VsZWN0U2hpcG1lbnQobnVsbCk7XG4gICAgc2V0RXJyb3IobnVsbCk7XG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBwcm9kdWN0ID0ge30sIHF1YW50aXR5ID0gMCB9ID0gam9iO1xuICAgICAgY29uc3QgYWRkcmVzc0VudCA9IG5ldyBtZXJjaGkuQWRkcmVzcygpXG4gICAgICAgIC5mcm9tSnNvbihhZGRyZXNzLCB7bWFrZURpcnR5OiB0cnVlfSlcbiAgICAgICAgLnRvRm9ybURhdGEoe19wcmVmaXg6ICdhZGRyZXNzLTAnfSk7XG4gICAgICBjb25zdCBxdWVyeTogYW55W10gPSBbWydxdWFudGl0eScsIHF1YW50aXR5LnRvU3RyaW5nKCldXTtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCBtZXJjaGkuYXV0aGVudGljYXRlZEZldGNoKFxuICAgICAgICBgL3Byb2R1Y3RzLyR7KHByb2R1Y3QgYXMgYW55KS5pZH0vc2hpcG1lbnRfb3B0aW9ucy9gLFxuICAgICAgICB7Ym9keTogYWRkcmVzc0VudCwgbWV0aG9kOiAnUE9TVCcsIHF1ZXJ5fVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNoaXBtZW50cyA9IHIuc2hpcG1lbnRzID8/IFtdO1xuICAgICAgc2V0U2hpcG1lbnRPcHRpb25zKHNoaXBtZW50cyk7XG4gICAgICBjb25zdCBmaXJzdFNoaXBtZW50ID0gc2hpcG1lbnRzWzBdPy5zaGlwbWVudDtcbiAgICAgIGlmIChmaXJzdFNoaXBtZW50KSB7XG4gICAgICAgIHNldEpvYigocHJldjogYW55KSA9PiAoeyAuLi5wcmV2LCBzaGlwbWVudDogZmlyc3RTaGlwbWVudCB9KSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBzZXRFcnJvcihlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9LCAxMDAwKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICgham9iLnNoaXBwaW5nPy5saW5lT25lKSByZXR1cm47XG5cbiAgICByZXNldCh7XG4gICAgICBzaGlwcGluZ0FkZHJlc3M6IGpvYi5zaGlwcGluZyxcbiAgICAgIGJpbGxpbmdBZGRyZXNzOiBqb2IuYmlsbGluZyB8fCBqb2Iuc2hpcHBpbmcsXG4gICAgfSk7XG4gICAgc2V0QmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3MoXG4gICAgICBhZGRyZXNzZXNNYXRjaChqb2Iuc2hpcHBpbmcsIGpvYi5iaWxsaW5nKVxuICAgICk7XG4gICAgZGVib3VuY2VkRmV0Y2hTaGlwcGluZ09wdGlvbnMoam9iLnNoaXBwaW5nKTtcbiAgfSwgW2pvYi5zaGlwcGluZz8ubGluZU9uZV0pO1xuXG4gIGZ1bmN0aW9uIHBlcnNpc3RBZGRyZXNzVG9Kb2IobmFtZTogc3RyaW5nLCBhZGRyZXNzOiBhbnkpIHtcbiAgICBzZXRKb2IoKHByZXY6IGFueSkgPT4ge1xuICAgICAgaWYgKG5hbWUgPT09ICdzaGlwcGluZ0FkZHJlc3MnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBzaGlwcGluZzogYWRkcmVzcyxcbiAgICAgICAgICBiaWxsaW5nOiBiaWxsaW5nQWRkcmVzc1NhbWVBc1NoaXBwaW5nQWRkcmVzc1xuICAgICAgICAgICAgPyBhZGRyZXNzXG4gICAgICAgICAgICA6IHByZXYuYmlsbGluZyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IC4uLnByZXYsIGJpbGxpbmc6IGFkZHJlc3MgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFkZHJlc3MobmFtZTogc3RyaW5nLCBmZXRjaDogYm9vbGVhbiwgYWRkcmVzczogYW55KSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCBhY2NpZGVudGFsIG5vbi1vYmplY3QgdmFsdWVzIChlLmcuIGEgZmllbGQgbmFtZSBzdHJpbmcpLFxuICAgIC8vIHdoaWNoIHdvdWxkIHdpcGUgbmVzdGVkIGFkZHJlc3MgaW5wdXRzIG9uIHJlc2V0LlxuICAgIGlmICghYWRkcmVzcyB8fCB0eXBlb2YgYWRkcmVzcyAhPT0gJ29iamVjdCcpIHJldHVybjtcblxuICAgIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcygpO1xuICAgIHZhbHVlc1tuYW1lXSA9IGFkZHJlc3M7XG4gICAgcmVzZXQodmFsdWVzKTtcbiAgICBwZXJzaXN0QWRkcmVzc1RvSm9iKG5hbWUsIGFkZHJlc3MpO1xuICAgIGlmIChmZXRjaCkge1xuICAgICAgZGVib3VuY2VkRmV0Y2hTaGlwcGluZ09wdGlvbnMoYWRkcmVzcyk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIG9uU2VsZWN0U2hpcG1lbnQoc2hpcG1lbnQ6IGFueSkge1xuICAgIHNldEpvYigocHJldjogYW55KSA9PiAoeyAuLi5wcmV2LCBzaGlwbWVudCB9KSk7XG4gIH1cbiAgYXN5bmMgZnVuY3Rpb24gb25TdWJtaXQodmFsdWVzOiBhbnkpIHtcbiAgICBjb25zdCBhZGRyZXNzID0gdmFsdWVzLnNoaXBwaW5nQWRkcmVzcztcbiAgICBjb25zdCBuZXdKb2IgPSB7IC4uLmpvYiB9O1xuICAgIG5ld0pvYi5zaGlwcGluZyA9IGFkZHJlc3M7XG4gICAgbmV3Sm9iLmJpbGxpbmcgPSBiaWxsaW5nQWRkcmVzc1NhbWVBc1NoaXBwaW5nQWRkcmVzc1xuICAgICAgPyBhZGRyZXNzXG4gICAgICA6IHZhbHVlcy5iaWxsaW5nQWRkcmVzcztcbiAgICBzZXRKb2IobmV3Sm9iKTtcbiAgICBuZXh0VGFiKCk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGZvcm0gaWQ9e2Zvcm1JZH0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdChvblN1Ym1pdCl9PlxuICAgICAgICA8U2hpcHBpbmdBZGRyZXNzSW5wdXRzXG4gICAgICAgICAgZGVmYXVsdEFkZHJlc3M9e2pvYi5zaGlwcGluZ31cbiAgICAgICAgICBob29rRm9ybT17aG9va0Zvcm19XG4gICAgICAgICAgbmFtZT0nc2hpcHBpbmdBZGRyZXNzJ1xuICAgICAgICAgIHJlY29tbWVuZGVkQWRkcmVzcz17cmVjb21tZW5kZWRTaGlwcGluZ31cbiAgICAgICAgICB1cGRhdGVBZGRyZXNzPXsoYWRkcjogYW55KSA9PlxuICAgICAgICAgICAgdXBkYXRlQWRkcmVzcygnc2hpcHBpbmdBZGRyZXNzJywgdHJ1ZSwgYWRkcilcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICAgIDxDaGVja2JveEJpbGxpbmdBZGRyZXNzU2FtZUFzU2hpcHBpbmdBZGRyZXNzXG4gICAgICAgICAgYmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3M9e1xuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3NcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0QmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3M9e1xuICAgICAgICAgICAgc2V0QmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3NcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICAgIHshYmlsbGluZ0FkZHJlc3NTYW1lQXNTaGlwcGluZ0FkZHJlc3MgJiYgKFxuICAgICAgICAgIDxCaWxsaW5nQWRkcmVzc0lucHV0c1xuICAgICAgICAgICAgZGVmYXVsdEFkZHJlc3M9e2pvYi5iaWxsaW5nfVxuICAgICAgICAgICAgaG9va0Zvcm09e2hvb2tGb3JtfVxuICAgICAgICAgICAgbGFiZWxHZW9TdWdnZXN0PSdCaWxsaW5nIEFkZHJlc3MnXG4gICAgICAgICAgICBuYW1lPSdiaWxsaW5nQWRkcmVzcydcbiAgICAgICAgICAgIHVwZGF0ZUFkZHJlc3M9eyhhZGRyOiBhbnkpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZUFkZHJlc3MoJ2JpbGxpbmdBZGRyZXNzJywgZmFsc2UsIGFkZHIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPElucHV0RXJyb3IgZXJyb3I9e2Vycm9yIHx8IHt9fSAvPlxuICAgICAgICA8TGlzdFNoaXBtZW50UXVvdGVPcHRpb25zXG4gICAgICAgICAgZG9TZWxlY3RTaGlwbWVudE9wdGlvbj17b25TZWxlY3RTaGlwbWVudH1cbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uPXtqb2Iuc2hpcG1lbnR9XG4gICAgICAgICAgc2hpcG1lbnRPcHRpb25zPXtzaGlwbWVudE9wdGlvbnN9XG4gICAgICAgIC8+XG4gICAgICA8L2Zvcm0+XG4gICAgPC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1BZGRyZXNzZXM7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxhQUFBLElBQ2IsdUtBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLHdCQUFBUCxNQUFBLEdBQUFBLE1BQUEsT0FB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
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
5
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
6
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
10
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
11
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
12
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
13
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
17
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
18
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
19
|
+
import { useState } from 'react';
|
|
20
|
+
import { useForm } from 'react-hook-form';
|
|
21
|
+
import InputAcceptUserTermsAndConditions from './InputAcceptUserTermsAndConditions';
|
|
22
|
+
import { createNewCustomer } from '../../actions/customer';
|
|
23
|
+
import InputSelect from './InputSelect';
|
|
24
|
+
import InputText from './InputText';
|
|
25
|
+
import { useMerchiCheckboutContext } from '../MerchiCheckoutProvider';
|
|
26
|
+
import { phoneOptions } from '../../utils';
|
|
27
|
+
import InputError from './InputError';
|
|
28
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
|
+
export var emailValidation = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]/i;
|
|
30
|
+
export function FormCustomerNew() {
|
|
31
|
+
var _useMerchiCheckboutCo = useMerchiCheckboutContext(),
|
|
32
|
+
classNameMerchiCheckoutButtonPrimary = _useMerchiCheckboutCo.classNameMerchiCheckoutButtonPrimary,
|
|
33
|
+
classNameMerchiCheckoutFormGroup = _useMerchiCheckboutCo.classNameMerchiCheckoutFormGroup,
|
|
34
|
+
includeDomainSignup = _useMerchiCheckboutCo.includeDomainSignup,
|
|
35
|
+
nextTab = _useMerchiCheckboutCo.nextTab,
|
|
36
|
+
setCustomer = _useMerchiCheckboutCo.setCustomer,
|
|
37
|
+
showUserTermsAndConditions = _useMerchiCheckboutCo.showUserTermsAndConditions,
|
|
38
|
+
urlApi = _useMerchiCheckboutCo.urlApi;
|
|
39
|
+
var _useState = useState(null),
|
|
40
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
+
error = _useState2[0],
|
|
42
|
+
setError = _useState2[1];
|
|
43
|
+
var _useState3 = useState(false),
|
|
44
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
45
|
+
loading = _useState4[0],
|
|
46
|
+
setLoading = _useState4[1];
|
|
47
|
+
var _useState5 = useState(true),
|
|
48
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
49
|
+
acceptConditions = _useState6[0],
|
|
50
|
+
setAcceptConditions = _useState6[1];
|
|
51
|
+
var _useForm = useForm({
|
|
52
|
+
defaultValues: {
|
|
53
|
+
emailAddresses: [{
|
|
54
|
+
emailAddress: ''
|
|
55
|
+
}],
|
|
56
|
+
name: '',
|
|
57
|
+
phoneNumbers: [{
|
|
58
|
+
code: 'AU',
|
|
59
|
+
number: ''
|
|
60
|
+
}],
|
|
61
|
+
registeredAsGuest: false
|
|
62
|
+
}
|
|
63
|
+
}),
|
|
64
|
+
control = _useForm.control,
|
|
65
|
+
handleSubmit = _useForm.handleSubmit,
|
|
66
|
+
watch = _useForm.watch;
|
|
67
|
+
function onSubmit(_x) {
|
|
68
|
+
return _onSubmit.apply(this, arguments);
|
|
69
|
+
} // Basic validation for phone. Checking that phone is a number. Can make more complex if we want.
|
|
70
|
+
function _onSubmit() {
|
|
71
|
+
_onSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(values) {
|
|
72
|
+
var r, userJson, _error, _t;
|
|
73
|
+
return _regenerator().w(function (_context) {
|
|
74
|
+
while (1) switch (_context.p = _context.n) {
|
|
75
|
+
case 0:
|
|
76
|
+
setLoading(true);
|
|
77
|
+
_context.p = 1;
|
|
78
|
+
_context.n = 2;
|
|
79
|
+
return createNewCustomer(urlApi, _objectSpread({}, values));
|
|
80
|
+
case 2:
|
|
81
|
+
r = _context.v;
|
|
82
|
+
if (!r.ok) {
|
|
83
|
+
_context.n = 4;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
_context.n = 3;
|
|
87
|
+
return r.json();
|
|
88
|
+
case 3:
|
|
89
|
+
userJson = _context.v;
|
|
90
|
+
setCustomer(userJson.user);
|
|
91
|
+
if (!includeDomainSignup) {
|
|
92
|
+
nextTab();
|
|
93
|
+
}
|
|
94
|
+
setLoading(false);
|
|
95
|
+
_context.n = 6;
|
|
96
|
+
break;
|
|
97
|
+
case 4:
|
|
98
|
+
_context.n = 5;
|
|
99
|
+
return r.json();
|
|
100
|
+
case 5:
|
|
101
|
+
_error = _context.v;
|
|
102
|
+
setError(_error);
|
|
103
|
+
setLoading(false);
|
|
104
|
+
case 6:
|
|
105
|
+
_context.n = 8;
|
|
106
|
+
break;
|
|
107
|
+
case 7:
|
|
108
|
+
_context.p = 7;
|
|
109
|
+
_t = _context.v;
|
|
110
|
+
setError(_t);
|
|
111
|
+
setLoading(false);
|
|
112
|
+
case 8:
|
|
113
|
+
return _context.a(2);
|
|
114
|
+
}
|
|
115
|
+
}, _callee, null, [[1, 7]]);
|
|
116
|
+
}));
|
|
117
|
+
return _onSubmit.apply(this, arguments);
|
|
118
|
+
}
|
|
119
|
+
function validatePhone() {
|
|
120
|
+
var phone = watch('phoneNumbers.0.number');
|
|
121
|
+
if (isNaN(phone)) return 'Phone number must be a number';else return true;
|
|
122
|
+
}
|
|
123
|
+
return /*#__PURE__*/_jsxs("form", {
|
|
124
|
+
onSubmit: handleSubmit(onSubmit),
|
|
125
|
+
children: [/*#__PURE__*/_jsx(InputText, {
|
|
126
|
+
control: control,
|
|
127
|
+
label: "Full Name",
|
|
128
|
+
name: "name",
|
|
129
|
+
placeholder: "John Smith",
|
|
130
|
+
rules: {
|
|
131
|
+
required: 'Full name is required.'
|
|
132
|
+
}
|
|
133
|
+
}), /*#__PURE__*/_jsx(InputText, {
|
|
134
|
+
control: control,
|
|
135
|
+
label: "Email",
|
|
136
|
+
name: "emailAddresses[0].emailAddress",
|
|
137
|
+
placeholder: "john@example.com",
|
|
138
|
+
rules: {
|
|
139
|
+
required: 'Email is required.',
|
|
140
|
+
validate: emailValidation
|
|
141
|
+
}
|
|
142
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
143
|
+
style: {
|
|
144
|
+
display: 'flex',
|
|
145
|
+
gap: '1rem'
|
|
146
|
+
},
|
|
147
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
148
|
+
style: {
|
|
149
|
+
flexGrow: 1
|
|
150
|
+
},
|
|
151
|
+
children: /*#__PURE__*/_jsx(InputSelect, {
|
|
152
|
+
control: control,
|
|
153
|
+
label: "Country Code",
|
|
154
|
+
name: "phoneNumbers[0].code",
|
|
155
|
+
options: phoneOptions
|
|
156
|
+
})
|
|
157
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
158
|
+
style: {
|
|
159
|
+
flexGrow: 1
|
|
160
|
+
},
|
|
161
|
+
children: /*#__PURE__*/_jsx(InputText, {
|
|
162
|
+
control: control,
|
|
163
|
+
label: "Phone Number",
|
|
164
|
+
name: "phoneNumbers[0].number",
|
|
165
|
+
placeholder: "0400 000 000",
|
|
166
|
+
rules: {
|
|
167
|
+
required: 'Phone number is required',
|
|
168
|
+
validate: validatePhone
|
|
169
|
+
},
|
|
170
|
+
type: "phone"
|
|
171
|
+
})
|
|
172
|
+
})]
|
|
173
|
+
}), showUserTermsAndConditions && /*#__PURE__*/_jsxs("div", {
|
|
174
|
+
className: classNameMerchiCheckoutFormGroup,
|
|
175
|
+
children: [/*#__PURE__*/_jsx(InputAcceptUserTermsAndConditions, {
|
|
176
|
+
isChecked: acceptConditions,
|
|
177
|
+
setIsChecked: setAcceptConditions
|
|
178
|
+
}), !acceptConditions && /*#__PURE__*/_jsx(InputError, {
|
|
179
|
+
error: {
|
|
180
|
+
message: 'You must agree to the user profile terms and conditions to proceed.'
|
|
181
|
+
}
|
|
182
|
+
})]
|
|
183
|
+
}), /*#__PURE__*/_jsx(InputError, {
|
|
184
|
+
error: error || {}
|
|
185
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
186
|
+
className: classNameMerchiCheckoutFormGroup,
|
|
187
|
+
children: /*#__PURE__*/_jsx("button", {
|
|
188
|
+
className: classNameMerchiCheckoutButtonPrimary,
|
|
189
|
+
disabled: loading,
|
|
190
|
+
type: "submit",
|
|
191
|
+
children: loading ? 'Loading...' : 'Submit'
|
|
192
|
+
})
|
|
193
|
+
})]
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
export default FormCustomerNew;
|
|
197
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3IiLCJlIiwidCIsInIiLCJuIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJuZXh0IiwiaXNBcnJheSIsInVzZVN0YXRlIiwidXNlRm9ybSIsIklucHV0QWNjZXB0VXNlclRlcm1zQW5kQ29uZGl0aW9ucyIsImNyZWF0ZU5ld0N1c3RvbWVyIiwiSW5wdXRTZWxlY3QiLCJJbnB1dFRleHQiLCJ1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0IiwicGhvbmVPcHRpb25zIiwiSW5wdXRFcnJvciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJlbWFpbFZhbGlkYXRpb24iLCJGb3JtQ3VzdG9tZXJOZXciLCJfdXNlTWVyY2hpQ2hlY2tib3V0Q28iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCIsImluY2x1ZGVEb21haW5TaWdudXAiLCJuZXh0VGFiIiwic2V0Q3VzdG9tZXIiLCJzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyIsInVybEFwaSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYWNjZXB0Q29uZGl0aW9ucyIsInNldEFjY2VwdENvbmRpdGlvbnMiLCJfdXNlRm9ybSIsImRlZmF1bHRWYWx1ZXMiLCJlbWFpbEFkZHJlc3NlcyIsImVtYWlsQWRkcmVzcyIsInBob25lTnVtYmVycyIsImNvZGUiLCJudW1iZXIiLCJyZWdpc3RlcmVkQXNHdWVzdCIsImNvbnRyb2wiLCJoYW5kbGVTdWJtaXQiLCJ3YXRjaCIsIm9uU3VibWl0IiwiX3giLCJfb25TdWJtaXQiLCJfY2FsbGVlIiwidmFsdWVzIiwidXNlckpzb24iLCJfZXJyb3IiLCJfdCIsIl9jb250ZXh0Iiwib2siLCJqc29uIiwidXNlciIsInZhbGlkYXRlUGhvbmUiLCJwaG9uZSIsImlzTmFOIiwiY2hpbGRyZW4iLCJsYWJlbCIsInBsYWNlaG9sZGVyIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbGlkYXRlIiwic3R5bGUiLCJkaXNwbGF5IiwiZ2FwIiwiZmxleEdyb3ciLCJvcHRpb25zIiwidHlwZSIsImNsYXNzTmFtZSIsImlzQ2hlY2tlZCIsInNldElzQ2hlY2tlZCIsIm1lc3NhZ2UiLCJkaXNhYmxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Zvcm1zL0Zvcm1DdXN0b21lck5ldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCBJbnB1dEFjY2VwdFVzZXJUZXJtc0FuZENvbmRpdGlvbnMgZnJvbSAnLi9JbnB1dEFjY2VwdFVzZXJUZXJtc0FuZENvbmRpdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlTmV3Q3VzdG9tZXIgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2N1c3RvbWVyJztcbmltcG9ydCBJbnB1dFNlbGVjdCBmcm9tICcuL0lucHV0U2VsZWN0JztcbmltcG9ydCBJbnB1dFRleHQgZnJvbSAnLi9JbnB1dFRleHQnO1xuaW1wb3J0IHsgdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCB9IGZyb20gJy4uL01lcmNoaUNoZWNrb3V0UHJvdmlkZXInO1xuaW1wb3J0IHsgcGhvbmVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IElucHV0RXJyb3IgZnJvbSAnLi9JbnB1dEVycm9yJztcblxuZXhwb3J0IGNvbnN0IGVtYWlsVmFsaWRhdGlvbiA9IC9eW0EtWjAtOS5fJSstXStAW0EtWjAtOS4tXStcXC5bQS1aXS9pO1xuXG5leHBvcnQgZnVuY3Rpb24gRm9ybUN1c3RvbWVyTmV3KCkge1xuICBjb25zdCB7XG4gICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5LFxuICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwLFxuICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgbmV4dFRhYixcbiAgICBzZXRDdXN0b21lcixcbiAgICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyxcbiAgICB1cmxBcGksXG4gIH0gPSB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0KCk7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2FjY2VwdENvbmRpdGlvbnMsIHNldEFjY2VwdENvbmRpdGlvbnNdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgY29uc3QgeyBjb250cm9sLCBoYW5kbGVTdWJtaXQsIHdhdGNoIH0gPSB1c2VGb3JtKHtcbiAgICBkZWZhdWx0VmFsdWVzOiB7XG4gICAgICBlbWFpbEFkZHJlc3NlczogW3sgZW1haWxBZGRyZXNzOiAnJyB9XSxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgcGhvbmVOdW1iZXJzOiBbeyBjb2RlOiAnQVUnLCBudW1iZXI6ICcnIH1dLFxuICAgICAgcmVnaXN0ZXJlZEFzR3Vlc3Q6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIG9uU3VibWl0KHZhbHVlczogYW55KSB7XG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgciA9IGF3YWl0IGNyZWF0ZU5ld0N1c3RvbWVyKCh1cmxBcGkgYXMgc3RyaW5nKSwgeyAuLi52YWx1ZXMgfSk7XG4gICAgICBpZiAoci5vaykge1xuICAgICAgICBjb25zdCB1c2VySnNvbiA9IGF3YWl0IHIuanNvbigpO1xuICAgICAgICBzZXRDdXN0b21lcih1c2VySnNvbi51c2VyKTtcbiAgICAgICAgaWYgKCFpbmNsdWRlRG9tYWluU2lnbnVwKSB7XG4gICAgICAgICAgbmV4dFRhYigpO1xuICAgICAgICB9XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBhd2FpdCByLmpzb24oKTtcbiAgICAgICAgc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHNldEVycm9yKGUpO1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFzaWMgdmFsaWRhdGlvbiBmb3IgcGhvbmUuIENoZWNraW5nIHRoYXQgcGhvbmUgaXMgYSBudW1iZXIuIENhbiBtYWtlIG1vcmUgY29tcGxleCBpZiB3ZSB3YW50LlxuICBmdW5jdGlvbiB2YWxpZGF0ZVBob25lKCkge1xuICAgIGNvbnN0IHBob25lID0gd2F0Y2goJ3Bob25lTnVtYmVycy4wLm51bWJlcicpO1xuICAgIGlmIChpc05hTihwaG9uZSBhcyBhbnkpKSByZXR1cm4gJ1Bob25lIG51bWJlciBtdXN0IGJlIGEgbnVtYmVyJztcbiAgICBlbHNlIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdChvblN1Ym1pdCl9PlxuICAgICAgPElucHV0VGV4dFxuICAgICAgICBjb250cm9sPXtjb250cm9sfVxuICAgICAgICBsYWJlbD0nRnVsbCBOYW1lJ1xuICAgICAgICBuYW1lPSduYW1lJ1xuICAgICAgICBwbGFjZWhvbGRlcj0nSm9obiBTbWl0aCdcbiAgICAgICAgcnVsZXM9e3sgcmVxdWlyZWQ6ICdGdWxsIG5hbWUgaXMgcmVxdWlyZWQuJyB9fVxuICAgICAgLz5cbiAgICAgIDxJbnB1dFRleHRcbiAgICAgICAgY29udHJvbD17Y29udHJvbH1cbiAgICAgICAgbGFiZWw9J0VtYWlsJ1xuICAgICAgICBuYW1lPSdlbWFpbEFkZHJlc3Nlc1swXS5lbWFpbEFkZHJlc3MnXG4gICAgICAgIHBsYWNlaG9sZGVyPSdqb2huQGV4YW1wbGUuY29tJ1xuICAgICAgICBydWxlcz17e1xuICAgICAgICAgIHJlcXVpcmVkOiAnRW1haWwgaXMgcmVxdWlyZWQuJyxcbiAgICAgICAgICB2YWxpZGF0ZTogZW1haWxWYWxpZGF0aW9uLFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6ICcxcmVtJyB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17eyBmbGV4R3JvdzogMSB9fT5cbiAgICAgICAgICA8SW5wdXRTZWxlY3RcbiAgICAgICAgICAgIGNvbnRyb2w9e2NvbnRyb2x9XG4gICAgICAgICAgICBsYWJlbD0nQ291bnRyeSBDb2RlJ1xuICAgICAgICAgICAgbmFtZT0ncGhvbmVOdW1iZXJzWzBdLmNvZGUnXG4gICAgICAgICAgICBvcHRpb25zPXtwaG9uZU9wdGlvbnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZmxleEdyb3c6IDEgfX0+XG4gICAgICAgICAgPElucHV0VGV4dFxuICAgICAgICAgICAgY29udHJvbD17Y29udHJvbH1cbiAgICAgICAgICAgIGxhYmVsPSdQaG9uZSBOdW1iZXInXG4gICAgICAgICAgICBuYW1lPSdwaG9uZU51bWJlcnNbMF0ubnVtYmVyJ1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI9JzA0MDAgMDAwIDAwMCdcbiAgICAgICAgICAgIHJ1bGVzPXt7XG4gICAgICAgICAgICAgIHJlcXVpcmVkOiAnUGhvbmUgbnVtYmVyIGlzIHJlcXVpcmVkJyxcbiAgICAgICAgICAgICAgdmFsaWRhdGU6IHZhbGlkYXRlUGhvbmUsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdHlwZT0ncGhvbmUnXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cH0+XG4gICAgICAgICAgPElucHV0QWNjZXB0VXNlclRlcm1zQW5kQ29uZGl0aW9uc1xuICAgICAgICAgICAgaXNDaGVja2VkPXthY2NlcHRDb25kaXRpb25zfVxuICAgICAgICAgICAgc2V0SXNDaGVja2VkPXtzZXRBY2NlcHRDb25kaXRpb25zfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgeyFhY2NlcHRDb25kaXRpb25zICYmIChcbiAgICAgICAgICAgIDxJbnB1dEVycm9yXG4gICAgICAgICAgICAgIGVycm9yPXt7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICdZb3UgbXVzdCBhZ3JlZSB0byB0aGUgdXNlciBwcm9maWxlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIHByb2NlZWQuJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgPElucHV0RXJyb3IgZXJyb3I9e2Vycm9yIHx8IHt9fSAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwfT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5fVxuICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nfVxuICAgICAgICAgIHR5cGU9J3N1Ym1pdCdcbiAgICAgICAgPlxuICAgICAgICAgIHtsb2FkaW5nID8gJ0xvYWRpbmcuLi4nIDogJ1N1Ym1pdCd9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBGb3JtQ3VzdG9tZXJOZXc7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxhQUFBLElBQ2IsdUtBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLHdCQUFBUCxNQUFBLEdBQUFBLE1BQUEsT0FBQVEsQ0FBQSxHQUFBRCxDQUFBLENBQUFOLFFBQUEsa0JBQUFGLENBQUEsR0FBQVEsQ0FBQSxDQUFBRSxXQUFBLDhCQUFBQyxFQUFBSCxDQUFBLEVBQUFDLENBQUEsRUFBQVQsQ0FBQSxFQUFBVyxDQUFBLFFBQUFDLENBQUEsR0FBQUgsQ0FBQSxJQUFBQSxDQUFBLENBQUFMLFNBQUEsWUFBQVMsU0FBQSxHQUFBSixDQUFBLEdBQUFJLFNBQUEsRUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUosQ0FBQSxDQUFBUixTQUFBLFVBQUFhLG1CQUFBLENBQUFILENBQUEsdUJBQUFOLENBQUEsRUFBQUMsQ0FBQSxFQUFBVCxDQUFBLFFBQUFXLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxDQUFBLEVBQUFJLENBQUEsTUFBQUMsQ0FBQSxHQUFBbkIsQ0FBQSxRQUFBb0IsQ0FBQSxPQUFBQyxDQUFBLEtBQUFGLENBQUEsS0FBQVYsQ0FBQSxLQUFBYSxDQUFBLEVBQUFoQixDQUFBLEVBQUFpQixDQUFBLEVBQUFDLENBQUEsRUFBQU4sQ0FBQSxFQUFBTSxDQUFBLENBQUFDLElBQUEsQ0FBQW5CLENBQUEsTUFBQWtCLENBQUEsV0FBQUEsRUFBQWpCLENBQUEsRUFBQUMsQ0FBQSxXQUFBRyxDQUFBLEdBQUFKLENBQUEsRUFBQUssQ0FBQSxNQUFBRSxDQUFBLEdBQUFSLENBQUEsRUFBQWUsQ0FBQSxDQUFBWixDQUFBLEdBQUFELENBQUEsRUFBQWUsQ0FBQSxnQkFBQUMsRUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFKLENBQUEsRUFBQU0sQ0FBQSxHQUFBTCxDQUFBLEVBQUFGLENBQUEsT0FBQWEsQ0FBQSxJQUFBRixDQUFBLEtBQUFsQixDQUFBLElBQUFPLENBQUEsR0FBQVksQ0FBQSxDQUFBTyxNQUFBLEVBQUFuQixDQUFBLFVBQUFQLENBQUEsRUFBQVcsQ0FBQSxHQUFBUSxDQUFBLENBQUFaLENBQUEsR0FBQWlCLENBQUEsR0FBQUgsQ0FBQSxDQUFBRixDQUFBLEVBQUFRLENBQUEsR0FBQWhCLENBQUEsS0FBQUgsQ0FBQSxRQUFBUixDQUFBLEdBQUEyQixDQUFBLEtBQUFsQixDQUFBLE1BQUFLLENBQUEsR0FBQUgsQ0FBQSxFQUFBQyxDQUFBLEdBQUFELENBQUEsWUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE1BQUFBLENBQUEsTUFBQUwsQ0FBQSxJQUFBSyxDQUFBLE9BQUFhLENBQUEsTUFBQXhCLENBQUEsR0FBQVEsQ0FBQSxRQUFBZ0IsQ0FBQSxHQUFBYixDQUFBLFFBQUFDLENBQUEsTUFBQVMsQ0FBQSxDQUFBQyxDQUFBLEdBQUFiLENBQUEsRUFBQVksQ0FBQSxDQUFBWixDQUFBLEdBQUFFLENBQUEsT0FBQWEsQ0FBQSxHQUFBRyxDQUFBLEtBQUEzQixDQUFBLEdBQUFRLENBQUEsUUFBQUcsQ0FBQSxNQUFBRixDQUFBLElBQUFBLENBQUEsR0FBQWtCLENBQUEsTUFBQWhCLENBQUEsTUFBQUgsQ0FBQSxFQUFBRyxDQUFBLE1BQUFGLENBQUEsRUFBQVksQ0FBQSxDQUFBWixDQUFBLEdBQUFrQixDQUFBLEVBQUFmLENBQUEsY0FBQVosQ0FBQSxJQUFBUSxDQUFBLGFBQUFlLENBQUEsUUFBQUgsQ0FBQSxPQUFBWCxDQUFBLHFCQUFBVCxDQUFBLEVBQUFtQixDQUFBLEVBQUFRLENBQUEsUUFBQVQsQ0FBQSxZQUFBVSxTQUFBLHVDQUFBUixDQUFBLFVBQUFELENBQUEsSUFBQUssQ0FBQSxDQUFBTCxDQUFBLEVBQUFRLENBQUEsR0FBQWYsQ0FBQSxHQUFBTyxDQUFBLEVBQUFMLENBQUEsR0FBQWEsQ0FBQSxHQUFBcEIsQ0FBQSxHQUFBSyxDQUFBLE9BQUFOLENBQUEsR0FBQVEsQ0FBQSxNQUFBTSxDQUFBLEtBQUFULENBQUEsS0FBQUMsQ0FBQSxHQUFBQSxDQUFBLFFBQUFBLENBQUEsU0FBQVMsQ0FBQSxDQUFBWixDQUFBLFFBQUFlLENBQUEsQ0FBQVosQ0FBQSxFQUFBRSxDQUFBLEtBQUFPLENBQUEsQ0FBQVosQ0FBQSxHQUFBSyxDQUFBLEdBQUFPLENBQUEsQ0FBQUMsQ0FBQSxHQUFBUixDQUFBLGFBQUFJLENBQUEsTUFBQVAsQ0FBQSxRQUFBQyxDQUFBLEtBQUFaLENBQUEsWUFBQU8sQ0FBQSxHQUFBSSxDQUFBLENBQUFYLENBQUEsV0FBQU8sQ0FBQSxHQUFBQSxDQUFBLENBQUFzQixJQUFBLENBQUFsQixDQUFBLEVBQUFHLENBQUEsVUFBQWMsU0FBQSwyQ0FBQXJCLENBQUEsQ0FBQXVCLElBQUEsU0FBQXZCLENBQUEsRUFBQU8sQ0FBQSxHQUFBUCxDQUFBLENBQUF3QixLQUFBLEVBQUFuQixDQUFBLFNBQUFBLENBQUEsb0JBQUFBLENBQUEsS0FBQUwsQ0FBQSxHQUFBSSxDQUFBLGVBQUFKLENBQUEsQ0FBQXNCLElBQUEsQ0FBQWxCLENBQUEsR0FBQUMsQ0FBQSxTQUFBRSxDQUFBLEdBQUFjLFNBQUEsdUNBQUE1QixDQUFBLGdCQUFBWSxDQUFBLE9BQUFELENBQUEsR0FBQUwsQ0FBQSxjQUFBQyxDQUFBLElBQUFhLENBQUEsR0FBQUMsQ0FBQSxDQUFBWixDQUFBLFFBQUFLLENBQUEsR0FBQU4sQ0FBQSxDQUFBcUIsSUFBQSxDQUFBcEIsQ0FBQSxFQUFBWSxDQUFBLE9BQUFFLENBQUEsa0JBQUFoQixDQUFBLElBQUFJLENBQUEsR0FBQUwsQ0FBQSxFQUFBTSxDQUFBLE1BQUFFLENBQUEsR0FBQVAsQ0FBQSxjQUFBVyxDQUFBLG1CQUFBYSxLQUFBLEVBQUF4QixDQUFBLEVBQUF1QixJQUFBLEVBQUFWLENBQUEsU0FBQVosQ0FBQSxFQUFBUixDQUFBLEVBQUFXLENBQUEsUUFBQUcsQ0FBQSxRQUFBUyxDQUFBLGdCQUFBVixVQUFBLGNBQUFtQixrQkFBQSxjQUFBQywyQkFBQSxLQUFBMUIsQ0FBQSxHQUFBUSxNQUFBLENBQUFtQixjQUFBLE1BQUF0QixDQUFBLE1BQUFILENBQUEsSUFBQUYsQ0FBQSxDQUFBQSxDQUFBLElBQUFFLENBQUEsU0FBQVEsbUJBQUEsQ0FBQVYsQ0FBQSxPQUFBRSxDQUFBLGlDQUFBRixDQUFBLEdBQUFPLENBQUEsR0FBQW1CLDBCQUFBLENBQUE3QixTQUFBLEdBQUFTLFNBQUEsQ0FBQVQsU0FBQSxHQUFBVyxNQUFBLENBQUFDLE1BQUEsQ0FBQUosQ0FBQSxZQUFBTSxFQUFBWixDQUFBLFdBQUFTLE1BQUEsQ0FBQW9CLGNBQUEsR0FBQXBCLE1BQUEsQ0FBQW9CLGNBQUEsQ0FBQTdCLENBQUEsRUFBQTJCLDBCQUFBLEtBQUEzQixDQUFBLENBQUE4QixTQUFBLEdBQUFILDBCQUFBLEVBQUFoQixtQkFBQSxDQUFBWCxDQUFBLEVBQUFOLENBQUEseUJBQUFNLENBQUEsQ0FBQUYsU0FBQSxHQUFBVyxNQUFBLENBQUFDLE1BQUEsQ0FBQUYsQ0FBQSxHQUFBUixDQUFBLFdBQUEwQixpQkFBQSxDQUFBNUIsU0FBQSxHQUFBNkIsMEJBQUEsRUFBQWhCLG1CQUFBLENBQUFILENBQUEsaUJBQUFtQiwwQkFBQSxHQUFBaEIsbUJBQUEsQ0FBQWdCLDBCQUFBLGlCQUFBRCxpQkFBQSxHQUFBQSxpQkFBQSxDQUFBSyxXQUFBLHdCQUFBcEIsbUJBQUEsQ0FBQWdCLDBCQUFBLEVBQUFqQyxDQUFBLHdCQUFBaUIsbUJBQUEsQ0FBQUgsQ0FBQSxHQUFBRyxtQkFBQSxDQUFBSCxDQUFBLEVBQUFkLENBQUEsZ0JBQUFpQixtQkFBQSxDQUFBSCxDQUFBLEVBQUFMLENBQUEsaUNBQUFRLG1CQUFBLENBQUFILENBQUEsOERBQUFULFlBQUEsWUFBQUEsYUFBQSxhQUFBaUMsQ0FBQSxFQUFBM0IsQ0FBQSxFQUFBNEIsQ0FBQSxFQUFBckIsQ0FBQTtBQUFBLFNBQUFELG9CQUFBWCxDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxFQUFBRixDQUFBLFFBQUFJLENBQUEsR0FBQUksTUFBQSxDQUFBeUIsY0FBQSxRQUFBN0IsQ0FBQSx1QkFBQUwsQ0FBQSxJQUFBSyxDQUFBLFFBQUFNLG1CQUFBLFlBQUF3QixtQkFBQW5DLENBQUEsRUFBQUUsQ0FBQSxFQUFBQyxDQUFBLEVBQUFGLENBQUEsYUFBQVAsRUFBQVEsQ0FBQSxFQUFBQyxDQUFBLElBQUFRLG1CQUFBLENBQUFYLENBQUEsRUFBQUUsQ0FBQSxZQUFBRixDQUFBLGdCQUFBb0MsT0FBQSxDQUFBbEMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFILENBQUEsU0FBQUUsQ0FBQSxHQUFBRyxDQUFBLEdBQUFBLENBQUEsQ0FBQUwsQ0FBQSxFQUFBRSxDQUFBLElBQUF1QixLQUFBLEVBQUF0QixDQUFBLEVBQUFrQyxVQUFBLEdBQUFwQyxDQUFBLEVBQUFxQyxZQUFBLEdBQUFyQyxDQUFBLEVBQUFzQyxRQUFBLEdBQUF0QyxDQUFBLE1BQUFELENBQUEsQ0FBQUUsQ0FBQSxJQUFBQyxDQUFBLElBQUFULENBQUEsYUFBQUEsQ0FBQSxjQUFBQSxDQUFBLG1CQUFBaUIsbUJBQUEsQ0FBQVgsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUF1QyxRQUFBeEMsQ0FBQSxFQUFBRSxDQUFBLFFBQUFELENBQUEsR0FBQVEsTUFBQSxDQUFBZ0MsSUFBQSxDQUFBekMsQ0FBQSxPQUFBUyxNQUFBLENBQUFpQyxxQkFBQSxRQUFBaEQsQ0FBQSxHQUFBZSxNQUFBLENBQUFpQyxxQkFBQSxDQUFBMUMsQ0FBQSxHQUFBRSxDQUFBLEtBQUFSLENBQUEsR0FBQUEsQ0FBQSxDQUFBaUQsTUFBQSxXQUFBekMsQ0FBQSxXQUFBTyxNQUFBLENBQUFtQyx3QkFBQSxDQUFBNUMsQ0FBQSxFQUFBRSxDQUFBLEVBQUFtQyxVQUFBLE9BQUFwQyxDQUFBLENBQUE0QyxJQUFBLENBQUFDLEtBQUEsQ0FBQTdDLENBQUEsRUFBQVAsQ0FBQSxZQUFBTyxDQUFBO0FBQUEsU0FBQThDLGNBQUEvQyxDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBOEMsU0FBQSxDQUFBNUIsTUFBQSxFQUFBbEIsQ0FBQSxVQUFBRCxDQUFBLFdBQUErQyxTQUFBLENBQUE5QyxDQUFBLElBQUE4QyxTQUFBLENBQUE5QyxDQUFBLFFBQUFBLENBQUEsT0FBQXNDLE9BQUEsQ0FBQS9CLE1BQUEsQ0FBQVIsQ0FBQSxPQUFBZ0QsT0FBQSxXQUFBL0MsQ0FBQSxJQUFBZ0QsZUFBQSxDQUFBbEQsQ0FBQSxFQUFBRSxDQUFBLEVBQUFELENBQUEsQ0FBQUMsQ0FBQSxTQUFBTyxNQUFBLENBQUEwQyx5QkFBQSxHQUFBMUMsTUFBQSxDQUFBMkMsZ0JBQUEsQ0FBQXBELENBQUEsRUFBQVMsTUFBQSxDQUFBMEMseUJBQUEsQ0FBQWxELENBQUEsS0FBQXVDLE9BQUEsQ0FBQS9CLE1BQUEsQ0FBQVIsQ0FBQSxHQUFBZ0QsT0FBQSxXQUFBL0MsQ0FBQSxJQUFBTyxNQUFBLENBQUF5QixjQUFBLENBQUFsQyxDQUFBLEVBQUFFLENBQUEsRUFBQU8sTUFBQSxDQUFBbUMsd0JBQUEsQ0FBQTNDLENBQUEsRUFBQUMsQ0FBQSxpQkFBQUYsQ0FBQTtBQUFBLFNBQUFrRCxnQkFBQWxELENBQUEsRUFBQUUsQ0FBQSxFQUFBRCxDQUFBLFlBQUFDLENBQUEsR0FBQW1ELGNBQUEsQ0FBQW5ELENBQUEsTUFBQUYsQ0FBQSxHQUFBUyxNQUFBLENBQUF5QixjQUFBLENBQUFsQyxDQUFBLEVBQUFFLENBQUEsSUFBQXVCLEtBQUEsRUFBQXhCLENBQUEsRUFBQW9DLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFVBQUF2QyxDQUFBLENBQUFFLENBQUEsSUFBQUQsQ0FBQSxFQUFBRCxDQUFBO0FBQUEsU0FBQXFELGVBQUFwRCxDQUFBLFFBQUFJLENBQUEsR0FBQWlELFlBQUEsQ0FBQXJELENBQUEsZ0NBQUFSLE9BQUEsQ0FBQVksQ0FBQSxJQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBaUQsYUFBQXJELENBQUEsRUFBQUMsQ0FBQSxvQkFBQVQsT0FBQSxDQUFBUSxDQUFBLE1BQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBRCxDQUFBLEdBQUFDLENBQUEsQ0FBQU4sTUFBQSxDQUFBNEQsV0FBQSxrQkFBQXZELENBQUEsUUFBQUssQ0FBQSxHQUFBTCxDQUFBLENBQUF1QixJQUFBLENBQUF0QixDQUFBLEVBQUFDLENBQUEsZ0NBQUFULE9BQUEsQ0FBQVksQ0FBQSxVQUFBQSxDQUFBLFlBQUFpQixTQUFBLHlFQUFBcEIsQ0FBQSxHQUFBc0QsTUFBQSxHQUFBQyxNQUFBLEVBQUF4RCxDQUFBO0FBQUEsU0FBQXlELG1CQUFBdkQsQ0FBQSxFQUFBRixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxFQUFBUixDQUFBLEVBQUF1QixDQUFBLEVBQUFYLENBQUEsY0FBQUQsQ0FBQSxHQUFBRixDQUFBLENBQUFjLENBQUEsRUFBQVgsQ0FBQSxHQUFBRSxDQUFBLEdBQUFILENBQUEsQ0FBQW9CLEtBQUEsV0FBQXRCLENBQUEsZ0JBQUFILENBQUEsQ0FBQUcsQ0FBQSxLQUFBRSxDQUFBLENBQUFtQixJQUFBLEdBQUF2QixDQUFBLENBQUFPLENBQUEsSUFBQW1ELE9BQUEsQ0FBQUMsT0FBQSxDQUFBcEQsQ0FBQSxFQUFBcUQsSUFBQSxDQUFBM0QsQ0FBQSxFQUFBUixDQUFBO0FBQUEsU0FBQW9FLGtCQUFBM0QsQ0FBQSw2QkFBQUYsQ0FBQSxTQUFBRCxDQUFBLEdBQUFnRCxTQUFBLGFBQUFXLE9BQUEsV0FBQXpELENBQUEsRUFBQVIsQ0FBQSxRQUFBdUIsQ0FBQSxHQUFBZCxDQUFBLENBQUEyQyxLQUFBLENBQUE3QyxDQUFBLEVBQUFELENBQUEsWUFBQStELE1BQUE1RCxDQUFBLElBQUF1RCxrQkFBQSxDQUFBekMsQ0FBQSxFQUFBZixDQUFBLEVBQUFSLENBQUEsRUFBQXFFLEtBQUEsRUFBQUMsTUFBQSxVQUFBN0QsQ0FBQSxjQUFBNkQsT0FBQTdELENBQUEsSUFBQXVELGtCQUFBLENBQUF6QyxDQUFBLEVBQUFmLENBQUEsRUFBQVIsQ0FBQSxFQUFBcUUsS0FBQSxFQUFBQyxNQUFBLFdBQUE3RCxDQUFBLEtBQUE0RCxLQUFBO0FBQUEsU0FBQUUsZUFBQS9ELENBQUEsRUFBQUYsQ0FBQSxXQUFBa0UsZUFBQSxDQUFBaEUsQ0FBQSxLQUFBaUUscUJBQUEsQ0FBQWpFLENBQUEsRUFBQUYsQ0FBQSxLQUFBb0UsMkJBQUEsQ0FBQWxFLENBQUEsRUFBQUYsQ0FBQSxLQUFBcUUsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBL0MsU0FBQTtBQUFBLFNBQUE4Qyw0QkFBQWxFLENBQUEsRUFBQWUsQ0FBQSxRQUFBZixDQUFBLDJCQUFBQSxDQUFBLFNBQUFvRSxpQkFBQSxDQUFBcEUsQ0FBQSxFQUFBZSxDQUFBLE9BQUFoQixDQUFBLE1BQUFzRSxRQUFBLENBQUFoRCxJQUFBLENBQUFyQixDQUFBLEVBQUFzRSxLQUFBLDZCQUFBdkUsQ0FBQSxJQUFBQyxDQUFBLENBQUFMLFdBQUEsS0FBQUksQ0FBQSxHQUFBQyxDQUFBLENBQUFMLFdBQUEsQ0FBQTRFLElBQUEsYUFBQXhFLENBQUEsY0FBQUEsQ0FBQSxHQUFBeUUsS0FBQSxDQUFBQyxJQUFBLENBQUF6RSxDQUFBLG9CQUFBRCxDQUFBLCtDQUFBMkUsSUFBQSxDQUFBM0UsQ0FBQSxJQUFBcUUsaUJBQUEsQ0FBQXBFLENBQUEsRUFBQWUsQ0FBQTtBQUFBLFNBQUFxRCxrQkFBQXBFLENBQUEsRUFBQWUsQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQWYsQ0FBQSxDQUFBa0IsTUFBQSxNQUFBSCxDQUFBLEdBQUFmLENBQUEsQ0FBQWtCLE1BQUEsWUFBQXBCLENBQUEsTUFBQUcsQ0FBQSxHQUFBdUUsS0FBQSxDQUFBekQsQ0FBQSxHQUFBakIsQ0FBQSxHQUFBaUIsQ0FBQSxFQUFBakIsQ0FBQSxJQUFBRyxDQUFBLENBQUFILENBQUEsSUFBQUUsQ0FBQSxDQUFBRixDQUFBLFVBQUFHLENBQUE7QUFBQSxTQUFBZ0Usc0JBQUFqRSxDQUFBLEVBQUFtQixDQUFBLFFBQUFwQixDQUFBLFdBQUFDLENBQUEsZ0NBQUFQLE1BQUEsSUFBQU8sQ0FBQSxDQUFBUCxNQUFBLENBQUFDLFFBQUEsS0FBQU0sQ0FBQSw0QkFBQUQsQ0FBQSxRQUFBRCxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLEVBQUFTLENBQUEsT0FBQUwsQ0FBQSxPQUFBbEIsQ0FBQSxpQkFBQVcsQ0FBQSxJQUFBSixDQUFBLEdBQUFBLENBQUEsQ0FBQXNCLElBQUEsQ0FBQXJCLENBQUEsR0FBQTJFLElBQUEsUUFBQXhELENBQUEsUUFBQVosTUFBQSxDQUFBUixDQUFBLE1BQUFBLENBQUEsVUFBQVcsQ0FBQSx1QkFBQUEsQ0FBQSxJQUFBWixDQUFBLEdBQUFLLENBQUEsQ0FBQWtCLElBQUEsQ0FBQXRCLENBQUEsR0FBQXVCLElBQUEsTUFBQVAsQ0FBQSxDQUFBNEIsSUFBQSxDQUFBN0MsQ0FBQSxDQUFBeUIsS0FBQSxHQUFBUixDQUFBLENBQUFHLE1BQUEsS0FBQUMsQ0FBQSxHQUFBVCxDQUFBLGlCQUFBVixDQUFBLElBQUFSLENBQUEsT0FBQVMsQ0FBQSxHQUFBRCxDQUFBLHlCQUFBVSxDQUFBLFlBQUFYLENBQUEsZUFBQU8sQ0FBQSxHQUFBUCxDQUFBLGNBQUFRLE1BQUEsQ0FBQUQsQ0FBQSxNQUFBQSxDQUFBLDJCQUFBZCxDQUFBLFFBQUFTLENBQUEsYUFBQWMsQ0FBQTtBQUFBLFNBQUFpRCxnQkFBQWhFLENBQUEsUUFBQXdFLEtBQUEsQ0FBQUksT0FBQSxDQUFBNUUsQ0FBQSxVQUFBQSxDQUFBO0FBQUEsU0FBUzZFLFFBQVEsUUFBUSxPQUFPO0FBQ2hDLFNBQVNDLE9BQU8sUUFBUSxpQkFBaUI7QUFDekMsT0FBT0MsaUNBQWlDLE1BQU0scUNBQXFDO0FBQ25GLFNBQVNDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUMxRCxPQUFPQyxXQUFXLE1BQU0sZUFBZTtBQUN2QyxPQUFPQyxTQUFTLE1BQU0sYUFBYTtBQUNuQyxTQUFTQyx5QkFBeUIsUUFBUSwyQkFBMkI7QUFDckUsU0FBU0MsWUFBWSxRQUFRLGFBQWE7QUFDMUMsT0FBT0MsVUFBVSxNQUFNLGNBQWM7QUFBQyxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRXRDLE9BQU8sSUFBTUMsZUFBZSxHQUFHLHFDQUFxQztBQUVwRSxPQUFPLFNBQVNDLGVBQWVBLENBQUEsRUFBRztFQUNoQyxJQUFBQyxxQkFBQSxHQVFJVCx5QkFBeUIsQ0FBQyxDQUFDO0lBUDdCVSxvQ0FBb0MsR0FBQUQscUJBQUEsQ0FBcENDLG9DQUFvQztJQUNwQ0MsZ0NBQWdDLEdBQUFGLHFCQUFBLENBQWhDRSxnQ0FBZ0M7SUFDaENDLG1CQUFtQixHQUFBSCxxQkFBQSxDQUFuQkcsbUJBQW1CO0lBQ25CQyxPQUFPLEdBQUFKLHFCQUFBLENBQVBJLE9BQU87SUFDUEMsV0FBVyxHQUFBTCxxQkFBQSxDQUFYSyxXQUFXO0lBQ1hDLDBCQUEwQixHQUFBTixxQkFBQSxDQUExQk0sMEJBQTBCO0lBQzFCQyxNQUFNLEdBQUFQLHFCQUFBLENBQU5PLE1BQU07RUFFUixJQUFBQyxTQUFBLEdBQTBCdkIsUUFBUSxDQUFDLElBQUksQ0FBQztJQUFBd0IsVUFBQSxHQUFBdEMsY0FBQSxDQUFBcUMsU0FBQTtJQUFqQ0UsS0FBSyxHQUFBRCxVQUFBO0lBQUVFLFFBQVEsR0FBQUYsVUFBQTtFQUN0QixJQUFBRyxVQUFBLEdBQThCM0IsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBNEIsVUFBQSxHQUFBMUMsY0FBQSxDQUFBeUMsVUFBQTtJQUF0Q0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTtFQUMxQixJQUFBRyxVQUFBLEdBQWdEL0IsUUFBUSxDQUFDLElBQUksQ0FBQztJQUFBZ0MsVUFBQSxHQUFBOUMsY0FBQSxDQUFBNkMsVUFBQTtJQUF2REUsZ0JBQWdCLEdBQUFELFVBQUE7SUFBRUUsbUJBQW1CLEdBQUFGLFVBQUE7RUFFNUMsSUFBQUcsUUFBQSxHQUF5Q2xDLE9BQU8sQ0FBQztNQUMvQ21DLGFBQWEsRUFBRTtRQUNiQyxjQUFjLEVBQUUsQ0FBQztVQUFFQyxZQUFZLEVBQUU7UUFBRyxDQUFDLENBQUM7UUFDdEM1QyxJQUFJLEVBQUUsRUFBRTtRQUNSNkMsWUFBWSxFQUFFLENBQUM7VUFBRUMsSUFBSSxFQUFFLElBQUk7VUFBRUMsTUFBTSxFQUFFO1FBQUcsQ0FBQyxDQUFDO1FBQzFDQyxpQkFBaUIsRUFBRTtNQUNyQjtJQUNGLENBQUMsQ0FBQztJQVBNQyxPQUFPLEdBQUFSLFFBQUEsQ0FBUFEsT0FBTztJQUFFQyxZQUFZLEdBQUFULFFBQUEsQ0FBWlMsWUFBWTtJQUFFQyxLQUFLLEdBQUFWLFFBQUEsQ0FBTFUsS0FBSztFQU9qQyxTQUVZQyxRQUFRQSxDQUFBQyxFQUFBO0lBQUEsT0FBQUMsU0FBQSxDQUFBakYsS0FBQSxPQUFBRSxTQUFBO0VBQUEsRUFzQnZCO0VBQUEsU0FBQStFLFVBQUE7SUFBQUEsU0FBQSxHQUFBakUsaUJBQUEsY0FBQS9ELFlBQUEsR0FBQWtDLENBQUEsQ0F0QkEsU0FBQStGLFFBQXdCQyxNQUFXO01BQUEsSUFBQS9ILENBQUEsRUFBQWdJLFFBQUEsRUFBQUMsTUFBQSxFQUFBQyxFQUFBO01BQUEsT0FBQXJJLFlBQUEsR0FBQWlDLENBQUEsV0FBQXFHLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBeEgsQ0FBQSxHQUFBd0gsUUFBQSxDQUFBbEksQ0FBQTtVQUFBO1lBQ2pDMEcsVUFBVSxDQUFDLElBQUksQ0FBQztZQUFDd0IsUUFBQSxDQUFBeEgsQ0FBQTtZQUFBd0gsUUFBQSxDQUFBbEksQ0FBQTtZQUFBLE9BRUMrRSxpQkFBaUIsQ0FBRW1CLE1BQU0sRUFBQXRELGFBQUEsS0FBa0JrRixNQUFNLENBQUUsQ0FBQztVQUFBO1lBQTlEL0gsQ0FBQyxHQUFBbUksUUFBQSxDQUFBckgsQ0FBQTtZQUFBLEtBQ0hkLENBQUMsQ0FBQ29JLEVBQUU7Y0FBQUQsUUFBQSxDQUFBbEksQ0FBQTtjQUFBO1lBQUE7WUFBQWtJLFFBQUEsQ0FBQWxJLENBQUE7WUFBQSxPQUNpQkQsQ0FBQyxDQUFDcUksSUFBSSxDQUFDLENBQUM7VUFBQTtZQUF6QkwsUUFBUSxHQUFBRyxRQUFBLENBQUFySCxDQUFBO1lBQ2RtRixXQUFXLENBQUMrQixRQUFRLENBQUNNLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUN2QyxtQkFBbUIsRUFBRTtjQUN4QkMsT0FBTyxDQUFDLENBQUM7WUFDWDtZQUNBVyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQUN3QixRQUFBLENBQUFsSSxDQUFBO1lBQUE7VUFBQTtZQUFBa0ksUUFBQSxDQUFBbEksQ0FBQTtZQUFBLE9BRUVELENBQUMsQ0FBQ3FJLElBQUksQ0FBQyxDQUFDO1VBQUE7WUFBdEIvQixNQUFLLEdBQUE2QixRQUFBLENBQUFySCxDQUFBO1lBQ1h5RixRQUFRLENBQUNELE1BQUssQ0FBQztZQUNmSyxVQUFVLENBQUMsS0FBSyxDQUFDO1VBQUM7WUFBQXdCLFFBQUEsQ0FBQWxJLENBQUE7WUFBQTtVQUFBO1lBQUFrSSxRQUFBLENBQUF4SCxDQUFBO1lBQUF1SCxFQUFBLEdBQUFDLFFBQUEsQ0FBQXJILENBQUE7WUFHcEJ5RixRQUFRLENBQUEyQixFQUFFLENBQUM7WUFDWHZCLFVBQVUsQ0FBQyxLQUFLLENBQUM7VUFBQztZQUFBLE9BQUF3QixRQUFBLENBQUFwSCxDQUFBO1FBQUE7TUFBQSxHQUFBK0csT0FBQTtJQUFBLENBRXJCO0lBQUEsT0FBQUQsU0FBQSxDQUFBakYsS0FBQSxPQUFBRSxTQUFBO0VBQUE7RUFHRCxTQUFTeUYsYUFBYUEsQ0FBQSxFQUFHO0lBQ3ZCLElBQU1DLEtBQUssR0FBR2QsS0FBSyxDQUFDLHVCQUF1QixDQUFDO0lBQzVDLElBQUllLEtBQUssQ0FBQ0QsS0FBWSxDQUFDLEVBQUUsT0FBTywrQkFBK0IsQ0FBQyxLQUMzRCxPQUFPLElBQUk7RUFDbEI7RUFDQSxvQkFDRS9DLEtBQUE7SUFBTWtDLFFBQVEsRUFBRUYsWUFBWSxDQUFDRSxRQUFRLENBQUU7SUFBQWUsUUFBQSxnQkFDckNuRCxJQUFBLENBQUNMLFNBQVM7TUFDUnNDLE9BQU8sRUFBRUEsT0FBUTtNQUNqQm1CLEtBQUssRUFBQyxXQUFXO01BQ2pCcEUsSUFBSSxFQUFDLE1BQU07TUFDWHFFLFdBQVcsRUFBQyxZQUFZO01BQ3hCQyxLQUFLLEVBQUU7UUFBRUMsUUFBUSxFQUFFO01BQXlCO0lBQUUsQ0FDL0MsQ0FBQyxlQUNGdkQsSUFBQSxDQUFDTCxTQUFTO01BQ1JzQyxPQUFPLEVBQUVBLE9BQVE7TUFDakJtQixLQUFLLEVBQUMsT0FBTztNQUNicEUsSUFBSSxFQUFDLGdDQUFnQztNQUNyQ3FFLFdBQVcsRUFBQyxrQkFBa0I7TUFDOUJDLEtBQUssRUFBRTtRQUNMQyxRQUFRLEVBQUUsb0JBQW9CO1FBQzlCQyxRQUFRLEVBQUVyRDtNQUNaO0lBQUUsQ0FDSCxDQUFDLGVBQ0ZELEtBQUE7TUFBS3VELEtBQUssRUFBRTtRQUFFQyxPQUFPLEVBQUUsTUFBTTtRQUFFQyxHQUFHLEVBQUU7TUFBTyxDQUFFO01BQUFSLFFBQUEsZ0JBQzNDbkQsSUFBQTtRQUFLeUQsS0FBSyxFQUFFO1VBQUVHLFFBQVEsRUFBRTtRQUFFLENBQUU7UUFBQVQsUUFBQSxlQUMxQm5ELElBQUEsQ0FBQ04sV0FBVztVQUNWdUMsT0FBTyxFQUFFQSxPQUFRO1VBQ2pCbUIsS0FBSyxFQUFDLGNBQWM7VUFDcEJwRSxJQUFJLEVBQUMsc0JBQXNCO1VBQzNCNkUsT0FBTyxFQUFFaEU7UUFBYSxDQUN2QjtNQUFDLENBQ0MsQ0FBQyxlQUNORyxJQUFBO1FBQUt5RCxLQUFLLEVBQUU7VUFBRUcsUUFBUSxFQUFFO1FBQUUsQ0FBRTtRQUFBVCxRQUFBLGVBQzFCbkQsSUFBQSxDQUFDTCxTQUFTO1VBQ1JzQyxPQUFPLEVBQUVBLE9BQVE7VUFDakJtQixLQUFLLEVBQUMsY0FBYztVQUNwQnBFLElBQUksRUFBQyx3QkFBd0I7VUFDN0JxRSxXQUFXLEVBQUMsY0FBYztVQUMxQkMsS0FBSyxFQUFFO1lBQ0xDLFFBQVEsRUFBRSwwQkFBMEI7WUFDcENDLFFBQVEsRUFBRVI7VUFDWixDQUFFO1VBQ0ZjLElBQUksRUFBQztRQUFPLENBQ2I7TUFBQyxDQUNDLENBQUM7SUFBQSxDQUNILENBQUMsRUFDTG5ELDBCQUEwQixpQkFDekJULEtBQUE7TUFBSzZELFNBQVMsRUFBRXhELGdDQUFpQztNQUFBNEMsUUFBQSxnQkFDL0NuRCxJQUFBLENBQUNSLGlDQUFpQztRQUNoQ3dFLFNBQVMsRUFBRXpDLGdCQUFpQjtRQUM1QjBDLFlBQVksRUFBRXpDO01BQW9CLENBQ25DLENBQUMsRUFDRCxDQUFDRCxnQkFBZ0IsaUJBQ2hCdkIsSUFBQSxDQUFDRixVQUFVO1FBQ1RpQixLQUFLLEVBQUU7VUFDTG1ELE9BQU8sRUFDTDtRQUNKO01BQUUsQ0FDSCxDQUNGO0lBQUEsQ0FDRSxDQUNOLGVBQ0RsRSxJQUFBLENBQUNGLFVBQVU7TUFBQ2lCLEtBQUssRUFBRUEsS0FBSyxJQUFJLENBQUM7SUFBRSxDQUFFLENBQUMsZUFDbENmLElBQUE7TUFBSytELFNBQVMsRUFBRXhELGdDQUFpQztNQUFBNEMsUUFBQSxlQUMvQ25ELElBQUE7UUFDRStELFNBQVMsRUFBRXpELG9DQUFxQztRQUNoRDZELFFBQVEsRUFBRWhELE9BQVE7UUFDbEIyQyxJQUFJLEVBQUMsUUFBUTtRQUFBWCxRQUFBLEVBRVpoQyxPQUFPLEdBQUcsWUFBWSxHQUFHO01BQVEsQ0FDNUI7SUFBQyxDQUNOLENBQUM7RUFBQSxDQUNGLENBQUM7QUFFWDtBQUVBLGVBQWVmLGVBQWUiLCJpZ25vcmVMaXN0IjpbXX0=
|