merchi_cart 0.0.0
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/LICENSE +21 -0
- package/README.md +99 -0
- package/lib/Cart.js +62 -0
- package/lib/CartAlert.js +43 -0
- package/lib/CartHeader.js +28 -0
- package/lib/CartProvider.js +304 -0
- package/lib/CartTotals.js +99 -0
- package/lib/MerchiSDK/constants/auto_assign_production_on_actions.js +8 -0
- package/lib/MerchiSDK/constants/call_to_actions.js +16 -0
- package/lib/MerchiSDK/constants/call_to_actions.test.js +5 -0
- package/lib/MerchiSDK/constants/discount_types.js +5 -0
- package/lib/MerchiSDK/constants/discount_types.test.js +5 -0
- package/lib/MerchiSDK/constants/domain_types.js +14 -0
- package/lib/MerchiSDK/constants/domain_types.test.js +5 -0
- package/lib/MerchiSDK/constants/errors.js +33 -0
- package/lib/MerchiSDK/constants/event_types.js +7 -0
- package/lib/MerchiSDK/constants/event_types.test.js +5 -0
- package/lib/MerchiSDK/constants/field_types.js +15 -0
- package/lib/MerchiSDK/constants/field_types.test.js +5 -0
- package/lib/MerchiSDK/constants/input_types.js +15 -0
- package/lib/MerchiSDK/constants/input_types.test.js +5 -0
- package/lib/MerchiSDK/constants/inventory_status.test.js +5 -0
- package/lib/MerchiSDK/constants/inventory_statuses.js +8 -0
- package/lib/MerchiSDK/constants/invoice_types.js +7 -0
- package/lib/MerchiSDK/constants/invoice_types.test.js +5 -0
- package/lib/MerchiSDK/constants/item_types.js +7 -0
- package/lib/MerchiSDK/constants/item_types.test.js +5 -0
- package/lib/MerchiSDK/constants/job/drafting_status.js +9 -0
- package/lib/MerchiSDK/constants/job/drafting_status.test.js +5 -0
- package/lib/MerchiSDK/constants/job/payment_status.js +9 -0
- package/lib/MerchiSDK/constants/job/payment_status.test.js +5 -0
- package/lib/MerchiSDK/constants/job/production_status.js +14 -0
- package/lib/MerchiSDK/constants/job/production_status.test.js +5 -0
- package/lib/MerchiSDK/constants/job/shipment_status.js +13 -0
- package/lib/MerchiSDK/constants/job/shipment_status.test.js +5 -0
- package/lib/MerchiSDK/constants/job/supply_chain_request_status.js +8 -0
- package/lib/MerchiSDK/constants/job/supply_chain_request_status.test.js +5 -0
- package/lib/MerchiSDK/constants/job_priorities.js +8 -0
- package/lib/MerchiSDK/constants/job_priorities.test.js +5 -0
- package/lib/MerchiSDK/constants/job_status.js +51 -0
- package/lib/MerchiSDK/constants/job_status.test.js +5 -0
- package/lib/MerchiSDK/constants/job_types.js +17 -0
- package/lib/MerchiSDK/constants/job_types.test.js +5 -0
- package/lib/MerchiSDK/constants/notification_sections.js +15 -0
- package/lib/MerchiSDK/constants/notification_sections.test.js +5 -0
- package/lib/MerchiSDK/constants/notification_types.js +99 -0
- package/lib/MerchiSDK/constants/notification_types.test.js +5 -0
- package/lib/MerchiSDK/constants/notification_urgencies.js +8 -0
- package/lib/MerchiSDK/constants/notification_urgencies.test.js +5 -0
- package/lib/MerchiSDK/constants/payment_types.js +12 -0
- package/lib/MerchiSDK/constants/payment_types.test.js +5 -0
- package/lib/MerchiSDK/constants/platform.js +6 -0
- package/lib/MerchiSDK/constants/platform.test.js +9 -0
- package/lib/MerchiSDK/constants/product_types.js +27 -0
- package/lib/MerchiSDK/constants/product_types.test.js +5 -0
- package/lib/MerchiSDK/constants/rights.js +7 -0
- package/lib/MerchiSDK/constants/rights.test.js +5 -0
- package/lib/MerchiSDK/constants/robots_meta_directives.js +2 -0
- package/lib/MerchiSDK/constants/robots_meta_directives.test.js +5 -0
- package/lib/MerchiSDK/constants/roles.js +26 -0
- package/lib/MerchiSDK/constants/roles.test.js +5 -0
- package/lib/MerchiSDK/constants/shipment_companies.js +20 -0
- package/lib/MerchiSDK/constants/shipment_companies.test.js +5 -0
- package/lib/MerchiSDK/constants/shipment_services.js +5 -0
- package/lib/MerchiSDK/constants/shipment_services.test.js +5 -0
- package/lib/MerchiSDK/constants/system_roles.js +5 -0
- package/lib/MerchiSDK/constants/system_roles.test.js +5 -0
- package/lib/MerchiSDK/constants/theme_foundations.js +8 -0
- package/lib/MerchiSDK/constants/theme_foundations.test.js +5 -0
- package/lib/MerchiSDK/constants/theme_status.js +7 -0
- package/lib/MerchiSDK/constants/theme_status.test.js +5 -0
- package/lib/MerchiSDK/constants/user_types.js +19 -0
- package/lib/MerchiSDK/constants/user_types.test.js +5 -0
- package/lib/MerchiSDK/constants/white_label_accessibilities.js +7 -0
- package/lib/MerchiSDK/constants/white_label_accessibilities.test.js +5 -0
- package/lib/MerchiSDK/cookie.js +17 -0
- package/lib/MerchiSDK/cookie.test.js +13 -0
- package/lib/MerchiSDK/entities/address.js +166 -0
- package/lib/MerchiSDK/entities/address.test.js +7 -0
- package/lib/MerchiSDK/entities/assignment.js +185 -0
- package/lib/MerchiSDK/entities/assignment.test.js +39 -0
- package/lib/MerchiSDK/entities/automatic_payment_relationship.js +77 -0
- package/lib/MerchiSDK/entities/automatic_payment_relationship.test.js +7 -0
- package/lib/MerchiSDK/entities/backup.js +44 -0
- package/lib/MerchiSDK/entities/backup.test.js +7 -0
- package/lib/MerchiSDK/entities/bank.js +116 -0
- package/lib/MerchiSDK/entities/bank.test.js +7 -0
- package/lib/MerchiSDK/entities/cart.js +203 -0
- package/lib/MerchiSDK/entities/cart.test.js +53 -0
- package/lib/MerchiSDK/entities/cart_item.js +153 -0
- package/lib/MerchiSDK/entities/cart_item.test.js +35 -0
- package/lib/MerchiSDK/entities/cart_shipment_group.js +62 -0
- package/lib/MerchiSDK/entities/cart_shipment_quote.js +85 -0
- package/lib/MerchiSDK/entities/category.js +92 -0
- package/lib/MerchiSDK/entities/category.test.js +53 -0
- package/lib/MerchiSDK/entities/company.js +648 -0
- package/lib/MerchiSDK/entities/company.test.js +7 -0
- package/lib/MerchiSDK/entities/company_invitation.js +82 -0
- package/lib/MerchiSDK/entities/company_invitation.test.js +7 -0
- package/lib/MerchiSDK/entities/component.js +209 -0
- package/lib/MerchiSDK/entities/component.test.js +13 -0
- package/lib/MerchiSDK/entities/component_tag.js +50 -0
- package/lib/MerchiSDK/entities/component_tag.test.js +7 -0
- package/lib/MerchiSDK/entities/component_version.js +80 -0
- package/lib/MerchiSDK/entities/component_version.test.js +7 -0
- package/lib/MerchiSDK/entities/country_tax.js +110 -0
- package/lib/MerchiSDK/entities/country_tax.test.js +12 -0
- package/lib/MerchiSDK/entities/discount.js +77 -0
- package/lib/MerchiSDK/entities/discount.test.js +21 -0
- package/lib/MerchiSDK/entities/discount_group.js +74 -0
- package/lib/MerchiSDK/entities/discount_group.test.js +7 -0
- package/lib/MerchiSDK/entities/domain.js +535 -0
- package/lib/MerchiSDK/entities/domain.test.js +76 -0
- package/lib/MerchiSDK/entities/domain_invitation.js +90 -0
- package/lib/MerchiSDK/entities/domain_invitation.test.js +7 -0
- package/lib/MerchiSDK/entities/domain_tag.js +100 -0
- package/lib/MerchiSDK/entities/domain_tag.test.js +7 -0
- package/lib/MerchiSDK/entities/draft.js +180 -0
- package/lib/MerchiSDK/entities/draft.test.js +40 -0
- package/lib/MerchiSDK/entities/draft_comment.js +132 -0
- package/lib/MerchiSDK/entities/draft_comment.test.js +7 -0
- package/lib/MerchiSDK/entities/draft_template.js +105 -0
- package/lib/MerchiSDK/entities/draft_template.test.js +7 -0
- package/lib/MerchiSDK/entities/email_address.js +68 -0
- package/lib/MerchiSDK/entities/email_address.test.js +7 -0
- package/lib/MerchiSDK/entities/email_counter.js +56 -0
- package/lib/MerchiSDK/entities/email_counter.test.js +7 -0
- package/lib/MerchiSDK/entities/enrolled_domain.js +85 -0
- package/lib/MerchiSDK/entities/enrolled_domain.test.js +7 -0
- package/lib/MerchiSDK/entities/exchange_rate.js +62 -0
- package/lib/MerchiSDK/entities/exchange_rate.test.js +7 -0
- package/lib/MerchiSDK/entities/file.js +384 -0
- package/lib/MerchiSDK/entities/file.test.js +39 -0
- package/lib/MerchiSDK/entities/internal_tag.js +120 -0
- package/lib/MerchiSDK/entities/internal_tag.test.js +7 -0
- package/lib/MerchiSDK/entities/inventory.js +120 -0
- package/lib/MerchiSDK/entities/inventory.test.js +27 -0
- package/lib/MerchiSDK/entities/inventory_unit_variation.js +64 -0
- package/lib/MerchiSDK/entities/inventory_unit_variation.test.js +7 -0
- package/lib/MerchiSDK/entities/invoice.js +420 -0
- package/lib/MerchiSDK/entities/invoice.test.js +40 -0
- package/lib/MerchiSDK/entities/item.js +102 -0
- package/lib/MerchiSDK/entities/item.test.js +18 -0
- package/lib/MerchiSDK/entities/job.js +744 -0
- package/lib/MerchiSDK/entities/job.test.js +104 -0
- package/lib/MerchiSDK/entities/job_comment.js +120 -0
- package/lib/MerchiSDK/entities/job_comment.test.js +7 -0
- package/lib/MerchiSDK/entities/matching_inventory.js +77 -0
- package/lib/MerchiSDK/entities/menu.js +78 -0
- package/lib/MerchiSDK/entities/menu.test.js +7 -0
- package/lib/MerchiSDK/entities/menu_item.js +76 -0
- package/lib/MerchiSDK/entities/menu_item.test.js +7 -0
- package/lib/MerchiSDK/entities/notification.js +234 -0
- package/lib/MerchiSDK/entities/notification.test.js +7 -0
- package/lib/MerchiSDK/entities/page.js +84 -0
- package/lib/MerchiSDK/entities/page.test.js +7 -0
- package/lib/MerchiSDK/entities/payment.js +141 -0
- package/lib/MerchiSDK/entities/payment.test.js +19 -0
- package/lib/MerchiSDK/entities/payment_device.js +87 -0
- package/lib/MerchiSDK/entities/payment_device.test.js +7 -0
- package/lib/MerchiSDK/entities/phone_number.js +98 -0
- package/lib/MerchiSDK/entities/phone_number.test.js +7 -0
- package/lib/MerchiSDK/entities/product.js +806 -0
- package/lib/MerchiSDK/entities/product.test.js +812 -0
- package/lib/MerchiSDK/entities/production_comment.js +120 -0
- package/lib/MerchiSDK/entities/production_comment.test.js +7 -0
- package/lib/MerchiSDK/entities/quote.js +208 -0
- package/lib/MerchiSDK/entities/quote.test.js +108 -0
- package/lib/MerchiSDK/entities/quote_item.js +121 -0
- package/lib/MerchiSDK/entities/quote_item.test.js +57 -0
- package/lib/MerchiSDK/entities/seo_domain_page.js +82 -0
- package/lib/MerchiSDK/entities/seo_domain_page.test.js +7 -0
- package/lib/MerchiSDK/entities/session.js +77 -0
- package/lib/MerchiSDK/entities/session.test.js +7 -0
- package/lib/MerchiSDK/entities/shipment.js +401 -0
- package/lib/MerchiSDK/entities/shipment.test.js +29 -0
- package/lib/MerchiSDK/entities/shipment_item.js +49 -0
- package/lib/MerchiSDK/entities/shipment_item.test.js +7 -0
- package/lib/MerchiSDK/entities/shipment_item_fulfillment.js +48 -0
- package/lib/MerchiSDK/entities/shipment_item_fulfillment.test.js +7 -0
- package/lib/MerchiSDK/entities/shipment_method.js +146 -0
- package/lib/MerchiSDK/entities/shipment_method.test.js +7 -0
- package/lib/MerchiSDK/entities/shipment_method_variation.js +104 -0
- package/lib/MerchiSDK/entities/shipment_method_variation.test.js +7 -0
- package/lib/MerchiSDK/entities/short_url.js +95 -0
- package/lib/MerchiSDK/entities/short_url.test.js +7 -0
- package/lib/MerchiSDK/entities/subscription_plan.js +172 -0
- package/lib/MerchiSDK/entities/subscription_plan.test.js +7 -0
- package/lib/MerchiSDK/entities/supply_domain.js +73 -0
- package/lib/MerchiSDK/entities/supply_domain.test.js +7 -0
- package/lib/MerchiSDK/entities/system_role.js +50 -0
- package/lib/MerchiSDK/entities/system_role.test.js +7 -0
- package/lib/MerchiSDK/entities/theme.js +614 -0
- package/lib/MerchiSDK/entities/theme.test.js +40 -0
- package/lib/MerchiSDK/entities/theme_css_setting.js +67 -0
- package/lib/MerchiSDK/entities/theme_css_setting.test.js +7 -0
- package/lib/MerchiSDK/entities/user.js +749 -0
- package/lib/MerchiSDK/entities/user.test.js +158 -0
- package/lib/MerchiSDK/entities/user_company.js +78 -0
- package/lib/MerchiSDK/entities/user_company.test.js +7 -0
- package/lib/MerchiSDK/entities/variation.js +147 -0
- package/lib/MerchiSDK/entities/variation.test.js +7 -0
- package/lib/MerchiSDK/entities/variation_field.js +313 -0
- package/lib/MerchiSDK/entities/variation_field.test.js +70 -0
- package/lib/MerchiSDK/entities/variation_fields_option.js +190 -0
- package/lib/MerchiSDK/entities/variation_fields_option.test.js +48 -0
- package/lib/MerchiSDK/entities/variation_option.js +129 -0
- package/lib/MerchiSDK/entities/variation_option.test.js +7 -0
- package/lib/MerchiSDK/entities/variations_group.js +111 -0
- package/lib/MerchiSDK/entities/variations_group.test.js +7 -0
- package/lib/MerchiSDK/entity.js +896 -0
- package/lib/MerchiSDK/merchi.js +332 -0
- package/lib/MerchiSDK/merchi.test.js +36 -0
- package/lib/MerchiSDK/request.js +137 -0
- package/lib/MerchiSDK/request.test.js +47 -0
- package/lib/MerchiSDK/test_util.js +20 -0
- package/lib/MerchiSDK/toasts.js +28 -0
- package/lib/MerchiSDK/toasts.test.js +47 -0
- package/lib/MerchiSDK/util/float.js +25 -0
- package/lib/MerchiSDK/util/query_string.js +12 -0
- package/lib/MerchiSDK/util/query_string.test.js +7 -0
- package/lib/MerchiSDK/util/validation.js +4 -0
- package/lib/MerchiSDK/util/validation.test.js +13 -0
- package/lib/MerchiSDK/uuid.js +9 -0
- package/lib/MerchiSDK/uuid.test.js +14 -0
- package/lib/assets/merchi-swipe-outline.png +0 -0
- package/lib/assets/product-not-found.png +0 -0
- package/lib/buttons/Button.js +24 -0
- package/lib/buttons/ButtonBack.js +38 -0
- package/lib/buttons/ButtonClearCart.js +19 -0
- package/lib/buttons/ButtonInvoiceDownload.js +96 -0
- package/lib/buttons/ButtonNext.js +45 -0
- package/lib/buttons/ButtonNextDynamic.js +23 -0
- package/lib/buttons/ButtonPay.js +28 -0
- package/lib/buttons/ButtonShipmentTabNext.js +33 -0
- package/lib/buttons/index.js +8 -0
- package/lib/components/Alert.js +27 -0
- package/lib/components/CartBody.js +15 -0
- package/lib/components/CartClient.js +52 -0
- package/lib/components/CartFooter.js +13 -0
- package/lib/components/CartItemRow.js +133 -0
- package/lib/components/CartPaymentSettingsInvalid.js +15 -0
- package/lib/components/CartShipment.js +57 -0
- package/lib/components/CartTabContent.js +13 -0
- package/lib/components/CartTabPanel.js +26 -0
- package/lib/components/CartTableContainer.js +13 -0
- package/lib/components/Collapse.js +33 -0
- package/lib/components/LoadingTemplate.js +25 -0
- package/lib/components/NoCartItems.js +18 -0
- package/lib/components/ShipmentGroupCard.js +132 -0
- package/lib/components/Table.js +12 -0
- package/lib/components/Title.js +28 -0
- package/lib/components/containers.js +32 -0
- package/lib/components/index.js +15 -0
- package/lib/forms/FormNewCustomer.js +157 -0
- package/lib/forms/FormReturningCustomer.js +93 -0
- package/lib/forms/FormShipmentAddressAndNotes.js +118 -0
- package/lib/forms/FormSquarePayment.js +17 -0
- package/lib/forms/FormStripePayment.js +17 -0
- package/lib/forms/InputAcceptUserTermsAndConditions.js +38 -0
- package/lib/forms/InputError.js +17 -0
- package/lib/forms/InputSelect.js +52 -0
- package/lib/forms/InputText.js +59 -0
- package/lib/forms/InputsAddress.js +226 -0
- package/lib/index.js +5 -0
- package/lib/panels/PanelCartItems.js +59 -0
- package/lib/panels/PanelCartShipment.js +74 -0
- package/lib/panels/PanelClearCart.js +49 -0
- package/lib/panels/PanelClientCheckout.js +80 -0
- package/lib/panels/PanelEditCartItem.js +63 -0
- package/lib/panels/PanelPaymentSuccess.js +70 -0
- package/lib/panels/index.js +8 -0
- package/lib/slices/sliceCart.js +178 -0
- package/lib/slices/sliceCartAlert.js +35 -0
- package/lib/slices/sliceCartItem.js +30 -0
- package/lib/slices/sliceCartPayment.js +47 -0
- package/lib/slices/sliceCartShipment.js +72 -0
- package/lib/slices/sliceFormReturningCustomer.js +24 -0
- package/lib/slices/sliceNewCustomerForm.js +23 -0
- package/lib/square/SquareCard.js +52 -0
- package/lib/square/actions.js +53 -0
- package/lib/square/slices/reducersSquare.js +8 -0
- package/lib/square/slices/sliceSquareAlerts.js +34 -0
- package/lib/square/slices/sliceSquareForm.js +30 -0
- package/lib/store.js +704 -0
- package/lib/stripe/StripeCardFields.js +131 -0
- package/lib/stripe/StripeCardForm.js +149 -0
- package/lib/stripe/StripePaymentButtons.js +99 -0
- package/lib/stripe/actions.js +203 -0
- package/lib/stripe/slices/sliceStripeAlerts.js +34 -0
- package/lib/stripe/slices/sliceStripeCardForm.js +8 -0
- package/lib/stripe/slices/sliceStripeForm.js +57 -0
- package/lib/stripe/utils.js +20 -0
- package/lib/styles/globals.scss +179 -0
- package/lib/tabs/CartNav.js +33 -0
- package/lib/tabs/NavTab.js +38 -0
- package/lib/utilities/address.js +343 -0
- package/lib/utilities/cart.js +91 -0
- package/lib/utilities/company.js +7 -0
- package/lib/utilities/cookie.js +135 -0
- package/lib/utilities/currency.js +220 -0
- package/lib/utilities/helpers.js +224 -0
- package/lib/utilities/invoice.js +120 -0
- package/lib/utilities/product.js +6 -0
- package/lib/utilities/user.js +77 -0
- package/lib/utilities/variations.js +48 -0
- package/package.json +90 -0
package/lib/store.js
ADDED
|
@@ -0,0 +1,704 @@
|
|
|
1
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
2
|
+
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); }
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
6
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
9
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
15
|
+
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); }
|
|
16
|
+
import { batch } from 'react-redux';
|
|
17
|
+
import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';
|
|
18
|
+
import { sliceCart, tabIdCheckout, tabIdItem, tabIdItems, tabIdPaymentSuccess } from './slices/sliceCart';
|
|
19
|
+
import { sliceCartAlert } from './slices/sliceCartAlert';
|
|
20
|
+
import sliceCartItem from './slices/sliceCartItem';
|
|
21
|
+
import { sliceCartPayment } from './slices/sliceCartPayment';
|
|
22
|
+
import { sliceCartShipment } from './slices/sliceCartShipment';
|
|
23
|
+
import sliceNewCustomerForm from './slices/sliceNewCustomerForm';
|
|
24
|
+
import sliceFormReturningCustomer from './slices/sliceFormReturningCustomer';
|
|
25
|
+
import reducersSquare from './square/slices/reducersSquare';
|
|
26
|
+
import sliceStripeCardForm from './stripe/slices/sliceStripeCardForm';
|
|
27
|
+
import { Merchi } from './MerchiSDK/merchi';
|
|
28
|
+
import { cartEmbed } from './utilities/helpers';
|
|
29
|
+
import { makeAddress } from './utilities/address';
|
|
30
|
+
import { getCartCookie as getMerchiCartCookie, setCartCookie } from './utilities/cookie';
|
|
31
|
+
import { getCartShipmentGroupsAndQuotes, makeCart, makeCartItem, makeCartShipmentQuote, stripeIsValidAndActive } from './utilities/cart';
|
|
32
|
+
import { makeUser, createNewCustomer, tryReturningCustomerEmail } from './utilities/user';
|
|
33
|
+
import { appendStyleSheetText } from './utilities/helpers';
|
|
34
|
+
var merchi = new Merchi();
|
|
35
|
+
var middleware = getDefaultMiddleware({
|
|
36
|
+
serializableCheck: false
|
|
37
|
+
});
|
|
38
|
+
var merchiCartReducer = _objectSpread(_objectSpread({
|
|
39
|
+
stateCartAlert: sliceCartAlert.reducer,
|
|
40
|
+
stateCartItem: sliceCartItem.reducer,
|
|
41
|
+
stateCartPayment: sliceCartPayment.reducer,
|
|
42
|
+
stateCartShipment: sliceCartShipment.reducer,
|
|
43
|
+
stateCart: sliceCart.reducer,
|
|
44
|
+
stateNewCustomerForm: sliceNewCustomerForm.reducer,
|
|
45
|
+
stateFormReturningCustomer: sliceFormReturningCustomer.reducer
|
|
46
|
+
}, reducersSquare), sliceStripeCardForm);
|
|
47
|
+
export var store = configureStore({
|
|
48
|
+
middleware: _toConsumableArray(middleware),
|
|
49
|
+
reducer: merchiCartReducer
|
|
50
|
+
});
|
|
51
|
+
function getStore() {
|
|
52
|
+
return store.getState();
|
|
53
|
+
}
|
|
54
|
+
var _sliceCart$actions = sliceCart.actions,
|
|
55
|
+
deleteCartItem = _sliceCart$actions.deleteCartItem,
|
|
56
|
+
deleteCartItemError = _sliceCart$actions.deleteCartItemError,
|
|
57
|
+
deleteCartItemSuccess = _sliceCart$actions.deleteCartItemSuccess,
|
|
58
|
+
fetchCart = _sliceCart$actions.fetchCart,
|
|
59
|
+
fetchCartError = _sliceCart$actions.fetchCartError,
|
|
60
|
+
fetchCartSuccess = _sliceCart$actions.fetchCartSuccess,
|
|
61
|
+
fetchTheme = _sliceCart$actions.fetchTheme,
|
|
62
|
+
fetchThemeError = _sliceCart$actions.fetchThemeError,
|
|
63
|
+
fetchThemeSuccess = _sliceCart$actions.fetchThemeSuccess,
|
|
64
|
+
setCart = _sliceCart$actions.setCart,
|
|
65
|
+
setCartClient = _sliceCart$actions.setCartClient,
|
|
66
|
+
setDomainId = _sliceCart$actions.setDomainId,
|
|
67
|
+
setCartShipmentGroups = _sliceCart$actions.setCartShipmentGroups;
|
|
68
|
+
function getCartToken() {
|
|
69
|
+
return _getCartToken.apply(this, arguments);
|
|
70
|
+
}
|
|
71
|
+
function _getCartToken() {
|
|
72
|
+
_getCartToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
73
|
+
var domainId, cartIdAndToken;
|
|
74
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
75
|
+
while (1) switch (_context.prev = _context.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
domainId = getStore().stateCart.domainId;
|
|
78
|
+
if (!domainId) {
|
|
79
|
+
_context.next = 7;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
_context.next = 4;
|
|
83
|
+
return getMerchiCartCookie(Number(domainId));
|
|
84
|
+
case 4:
|
|
85
|
+
_context.t0 = _context.sent;
|
|
86
|
+
_context.next = 8;
|
|
87
|
+
break;
|
|
88
|
+
case 7:
|
|
89
|
+
_context.t0 = undefined;
|
|
90
|
+
case 8:
|
|
91
|
+
cartIdAndToken = _context.t0;
|
|
92
|
+
return _context.abrupt("return", cartIdAndToken && cartIdAndToken[1] ? cartIdAndToken[1] : undefined);
|
|
93
|
+
case 10:
|
|
94
|
+
case "end":
|
|
95
|
+
return _context.stop();
|
|
96
|
+
}
|
|
97
|
+
}, _callee);
|
|
98
|
+
}));
|
|
99
|
+
return _getCartToken.apply(this, arguments);
|
|
100
|
+
}
|
|
101
|
+
function dispatch(method) {
|
|
102
|
+
store.dispatch(method);
|
|
103
|
+
}
|
|
104
|
+
export function axtionSetCartClient(client) {
|
|
105
|
+
dispatch(setCartClient(client));
|
|
106
|
+
}
|
|
107
|
+
export function setCartItem(cartItem, index) {
|
|
108
|
+
batch(function () {
|
|
109
|
+
if (cartItem && cartItem.id) {
|
|
110
|
+
setActiveTab(tabIdItem);
|
|
111
|
+
} else {
|
|
112
|
+
setActiveTab(tabIdItems);
|
|
113
|
+
}
|
|
114
|
+
dispatch(sliceCartItem.actions.setCartItem({
|
|
115
|
+
cartItem: cartItem,
|
|
116
|
+
index: index
|
|
117
|
+
}));
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
export function setActiveTab(tabId) {
|
|
121
|
+
dispatch(sliceCart.actions.setActiveTab(tabId));
|
|
122
|
+
}
|
|
123
|
+
export function setActiveTabAndEditDisabled(settings) {
|
|
124
|
+
dispatch(sliceCart.actions.setActiveTabAndEditDisabled(settings));
|
|
125
|
+
}
|
|
126
|
+
export function closeAlert() {
|
|
127
|
+
dispatch(sliceCartAlert.actions.closeAlert());
|
|
128
|
+
}
|
|
129
|
+
export function closeClearCart() {
|
|
130
|
+
dispatch(sliceCart.actions.setActiveTab(tabIdItems));
|
|
131
|
+
}
|
|
132
|
+
export function alertError(message) {
|
|
133
|
+
dispatch(sliceCartAlert.actions.showAlertDanger({
|
|
134
|
+
message: message,
|
|
135
|
+
title: 'Error!'
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
function alertSuccess(message) {
|
|
139
|
+
dispatch(sliceCartAlert.actions.showAlertSuccess({
|
|
140
|
+
message: message,
|
|
141
|
+
title: 'Success!'
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
export function actionFetchTheme(id) {
|
|
145
|
+
dispatch(fetchTheme());
|
|
146
|
+
merchi.Domain.get(id, {
|
|
147
|
+
embed: {
|
|
148
|
+
activeTheme: {
|
|
149
|
+
mainCss: {}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}).then(function (domain) {
|
|
153
|
+
return domain.activeTheme;
|
|
154
|
+
}).then(function (theme) {
|
|
155
|
+
appendStyleSheetText(theme.mainCss, function () {
|
|
156
|
+
return dispatch(fetchThemeSuccess());
|
|
157
|
+
});
|
|
158
|
+
})["catch"](function (e) {
|
|
159
|
+
alertError(e.errorMessage);
|
|
160
|
+
dispatch(fetchThemeError());
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
function cartAndCookie() {
|
|
164
|
+
return _cartAndCookie.apply(this, arguments);
|
|
165
|
+
}
|
|
166
|
+
function _cartAndCookie() {
|
|
167
|
+
_cartAndCookie = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
168
|
+
var domainId, cart;
|
|
169
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
170
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
171
|
+
case 0:
|
|
172
|
+
domainId = getStore().stateCart.domainId;
|
|
173
|
+
cart = makeCart({
|
|
174
|
+
domain: {
|
|
175
|
+
id: domainId
|
|
176
|
+
}
|
|
177
|
+
}, true);
|
|
178
|
+
return _context2.abrupt("return", cart.create({
|
|
179
|
+
embed: cartEmbed
|
|
180
|
+
}).then(function (c) {
|
|
181
|
+
if (domainId) {
|
|
182
|
+
setCartCookie(Number(domainId), c.toJson(), undefined);
|
|
183
|
+
}
|
|
184
|
+
return c.toJson();
|
|
185
|
+
}).then(function (cJson) {
|
|
186
|
+
dispatch(fetchCartSuccess(cJson));
|
|
187
|
+
})["catch"](function (e) {
|
|
188
|
+
batch(function () {
|
|
189
|
+
alertError(e.errorMessage);
|
|
190
|
+
dispatch(fetchCartError());
|
|
191
|
+
});
|
|
192
|
+
}));
|
|
193
|
+
case 3:
|
|
194
|
+
case "end":
|
|
195
|
+
return _context2.stop();
|
|
196
|
+
}
|
|
197
|
+
}, _callee2);
|
|
198
|
+
}));
|
|
199
|
+
return _cartAndCookie.apply(this, arguments);
|
|
200
|
+
}
|
|
201
|
+
export function createAndSetNewCartCookie() {
|
|
202
|
+
return _createAndSetNewCartCookie.apply(this, arguments);
|
|
203
|
+
}
|
|
204
|
+
function _createAndSetNewCartCookie() {
|
|
205
|
+
_createAndSetNewCartCookie = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
206
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
207
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
208
|
+
case 0:
|
|
209
|
+
dispatch(fetchCart());
|
|
210
|
+
_context3.next = 3;
|
|
211
|
+
return cartAndCookie();
|
|
212
|
+
case 3:
|
|
213
|
+
case "end":
|
|
214
|
+
return _context3.stop();
|
|
215
|
+
}
|
|
216
|
+
}, _callee3);
|
|
217
|
+
}));
|
|
218
|
+
return _createAndSetNewCartCookie.apply(this, arguments);
|
|
219
|
+
}
|
|
220
|
+
export function doClearCart() {
|
|
221
|
+
return _doClearCart.apply(this, arguments);
|
|
222
|
+
}
|
|
223
|
+
function _doClearCart() {
|
|
224
|
+
_doClearCart = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
225
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
226
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
227
|
+
case 0:
|
|
228
|
+
dispatch(setCart({}));
|
|
229
|
+
closeClearCart();
|
|
230
|
+
_context4.next = 4;
|
|
231
|
+
return createAndSetNewCartCookie();
|
|
232
|
+
case 4:
|
|
233
|
+
case "end":
|
|
234
|
+
return _context4.stop();
|
|
235
|
+
}
|
|
236
|
+
}, _callee4);
|
|
237
|
+
}));
|
|
238
|
+
return _doClearCart.apply(this, arguments);
|
|
239
|
+
}
|
|
240
|
+
export function patchCartItem(_x) {
|
|
241
|
+
return _patchCartItem.apply(this, arguments);
|
|
242
|
+
}
|
|
243
|
+
function _patchCartItem() {
|
|
244
|
+
_patchCartItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(cartItem) {
|
|
245
|
+
var data, _sliceCartItem$action, doPatch, doPatchError, doPatchSuccess, cartToken, cart, _data$stateCartItem, stateCartItem, index, cartEnt, cartItemEnt;
|
|
246
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
247
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
248
|
+
case 0:
|
|
249
|
+
data = getStore();
|
|
250
|
+
_sliceCartItem$action = sliceCartItem.actions, doPatch = _sliceCartItem$action.patchCartItem, doPatchError = _sliceCartItem$action.patchCartItemError, doPatchSuccess = _sliceCartItem$action.patchCartItemSuccess;
|
|
251
|
+
_context5.next = 4;
|
|
252
|
+
return getCartToken();
|
|
253
|
+
case 4:
|
|
254
|
+
cartToken = _context5.sent;
|
|
255
|
+
cart = data.stateCart.cart, _data$stateCartItem = data.stateCartItem, stateCartItem = _data$stateCartItem.cartItem, index = _data$stateCartItem.index;
|
|
256
|
+
cartEnt = makeCart(cart, false, cartToken);
|
|
257
|
+
cartItemEnt = makeCartItem(cartItem, true);
|
|
258
|
+
cartItemEnt.id = stateCartItem.id;
|
|
259
|
+
cartEnt.cartItems[index] = cartItemEnt;
|
|
260
|
+
dispatch(doPatch());
|
|
261
|
+
cartEnt.save({
|
|
262
|
+
embed: cartEmbed
|
|
263
|
+
}).then(function (c) {
|
|
264
|
+
batch(function () {
|
|
265
|
+
alertSuccess('Item updated.');
|
|
266
|
+
dispatch(setCart(c.toJson()));
|
|
267
|
+
dispatch(doPatchSuccess());
|
|
268
|
+
setActiveTab(tabIdItems);
|
|
269
|
+
});
|
|
270
|
+
}).then(function () {
|
|
271
|
+
setCartItem({}, 0);
|
|
272
|
+
})["catch"](function (e) {
|
|
273
|
+
batch(function () {
|
|
274
|
+
alertError(e.errorMessage);
|
|
275
|
+
dispatch(doPatchError());
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
case 12:
|
|
279
|
+
case "end":
|
|
280
|
+
return _context5.stop();
|
|
281
|
+
}
|
|
282
|
+
}, _callee5);
|
|
283
|
+
}));
|
|
284
|
+
return _patchCartItem.apply(this, arguments);
|
|
285
|
+
}
|
|
286
|
+
export function actionDeleteCartItem(_x2) {
|
|
287
|
+
return _actionDeleteCartItem.apply(this, arguments);
|
|
288
|
+
}
|
|
289
|
+
function _actionDeleteCartItem() {
|
|
290
|
+
_actionDeleteCartItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(index) {
|
|
291
|
+
var data, cartToken, cart, cartEnt, cartItems;
|
|
292
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
293
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
294
|
+
case 0:
|
|
295
|
+
data = getStore();
|
|
296
|
+
_context6.next = 3;
|
|
297
|
+
return getCartToken();
|
|
298
|
+
case 3:
|
|
299
|
+
cartToken = _context6.sent;
|
|
300
|
+
cart = data.stateCart.cart;
|
|
301
|
+
cartEnt = makeCart(cart, false, cartToken);
|
|
302
|
+
cartItems = cartEnt.cartItems;
|
|
303
|
+
cartItems.splice(index, 1);
|
|
304
|
+
cartEnt.cartItems = cartItems;
|
|
305
|
+
dispatch(deleteCartItem(index));
|
|
306
|
+
cartEnt.save({
|
|
307
|
+
embed: cartEmbed
|
|
308
|
+
}).then(function (c) {
|
|
309
|
+
dispatch(deleteCartItemSuccess(c.toJson()));
|
|
310
|
+
})["catch"](function (e) {
|
|
311
|
+
batch(function () {
|
|
312
|
+
alertError(e.errorMessage);
|
|
313
|
+
dispatch(deleteCartItemError());
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
case 11:
|
|
317
|
+
case "end":
|
|
318
|
+
return _context6.stop();
|
|
319
|
+
}
|
|
320
|
+
}, _callee6);
|
|
321
|
+
}));
|
|
322
|
+
return _actionDeleteCartItem.apply(this, arguments);
|
|
323
|
+
}
|
|
324
|
+
export function updateCartShipmentAddress() {
|
|
325
|
+
return _updateCartShipmentAddress.apply(this, arguments);
|
|
326
|
+
}
|
|
327
|
+
function _updateCartShipmentAddress() {
|
|
328
|
+
_updateCartShipmentAddress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
329
|
+
var _sliceCartShipment$ac, updateShipmentAddressError, updateShipmentAddressSuccess, cartToken, _getStore, cart, address, receiverAddress, cartEnt;
|
|
330
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
331
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
332
|
+
case 0:
|
|
333
|
+
_sliceCartShipment$ac = sliceCartShipment.actions, updateShipmentAddressError = _sliceCartShipment$ac.updateShipmentAddressError, updateShipmentAddressSuccess = _sliceCartShipment$ac.updateShipmentAddressSuccess;
|
|
334
|
+
_context7.next = 3;
|
|
335
|
+
return getCartToken();
|
|
336
|
+
case 3:
|
|
337
|
+
cartToken = _context7.sent;
|
|
338
|
+
_getStore = getStore(), cart = _getStore.stateCart.cart, address = _getStore.stateCartShipment.receiverAddress;
|
|
339
|
+
receiverAddress = makeAddress(address, true);
|
|
340
|
+
cartEnt = makeCart(cart, false, cartToken);
|
|
341
|
+
cartEnt.receiverAddress = receiverAddress;
|
|
342
|
+
cartEnt.save({
|
|
343
|
+
embed: cartEmbed
|
|
344
|
+
}).then(function (c) {
|
|
345
|
+
dispatch(setCart(c.toJson()));
|
|
346
|
+
getCartShipmentGroupsAndQuotes(c.toJson()).then(function (cartWithShipmentGroups) {
|
|
347
|
+
var cartJson = cartWithShipmentGroups;
|
|
348
|
+
batch(function () {
|
|
349
|
+
dispatch(setCartShipmentGroups(cartJson.shipmentGroups));
|
|
350
|
+
dispatch(updateShipmentAddressSuccess(cartJson.shipmentGroups));
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
})["catch"](function (e) {
|
|
354
|
+
batch(function () {
|
|
355
|
+
alertError(e.errorMessage);
|
|
356
|
+
dispatch(updateShipmentAddressError());
|
|
357
|
+
});
|
|
358
|
+
});
|
|
359
|
+
case 9:
|
|
360
|
+
case "end":
|
|
361
|
+
return _context7.stop();
|
|
362
|
+
}
|
|
363
|
+
}, _callee7);
|
|
364
|
+
}));
|
|
365
|
+
return _updateCartShipmentAddress.apply(this, arguments);
|
|
366
|
+
}
|
|
367
|
+
export function saveCartShipmentAddressAndGoToNextTab(_x3) {
|
|
368
|
+
return _saveCartShipmentAddressAndGoToNextTab.apply(this, arguments);
|
|
369
|
+
}
|
|
370
|
+
function _saveCartShipmentAddressAndGoToNextTab() {
|
|
371
|
+
_saveCartShipmentAddressAndGoToNextTab = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(values) {
|
|
372
|
+
var address, receiverNotes, _sliceCartShipment$ac2, saveShipmentAddress, saveShipmentAddressError, saveShipmentAddressSuccess, cartToken, _getStore2, cart, receiverAddress, cartEnt;
|
|
373
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
374
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
375
|
+
case 0:
|
|
376
|
+
address = values.receiverAddress, receiverNotes = values.receiverNotes;
|
|
377
|
+
_sliceCartShipment$ac2 = sliceCartShipment.actions, saveShipmentAddress = _sliceCartShipment$ac2.saveShipmentAddress, saveShipmentAddressError = _sliceCartShipment$ac2.saveShipmentAddressError, saveShipmentAddressSuccess = _sliceCartShipment$ac2.saveShipmentAddressSuccess;
|
|
378
|
+
_context8.next = 4;
|
|
379
|
+
return getCartToken();
|
|
380
|
+
case 4:
|
|
381
|
+
cartToken = _context8.sent;
|
|
382
|
+
_getStore2 = getStore(), cart = _getStore2.stateCart.cart;
|
|
383
|
+
dispatch(saveShipmentAddress());
|
|
384
|
+
receiverAddress = makeAddress(address, true);
|
|
385
|
+
cartEnt = makeCart(cart, false, cartToken);
|
|
386
|
+
cartEnt.receiverAddress = receiverAddress;
|
|
387
|
+
cartEnt.receiverNotes = receiverNotes;
|
|
388
|
+
cartEnt.save({
|
|
389
|
+
embed: cartEmbed
|
|
390
|
+
}).then(function (c) {
|
|
391
|
+
batch(function () {
|
|
392
|
+
dispatch(setCart(c.toJson()));
|
|
393
|
+
dispatch(saveShipmentAddressSuccess());
|
|
394
|
+
setActiveTabAndEditDisabled({
|
|
395
|
+
tabId: tabIdCheckout,
|
|
396
|
+
tabIndexToSet: 2,
|
|
397
|
+
disabled: false
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
})["catch"](function (e) {
|
|
401
|
+
batch(function () {
|
|
402
|
+
alertError(e.errorMessage);
|
|
403
|
+
dispatch(saveShipmentAddressError());
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
case 12:
|
|
407
|
+
case "end":
|
|
408
|
+
return _context8.stop();
|
|
409
|
+
}
|
|
410
|
+
}, _callee8);
|
|
411
|
+
}));
|
|
412
|
+
return _saveCartShipmentAddressAndGoToNextTab.apply(this, arguments);
|
|
413
|
+
}
|
|
414
|
+
function attachClientToCart(_x4) {
|
|
415
|
+
return _attachClientToCart.apply(this, arguments);
|
|
416
|
+
}
|
|
417
|
+
function _attachClientToCart() {
|
|
418
|
+
_attachClientToCart = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(clientJson) {
|
|
419
|
+
var createNewSuccess, cartToken, _getStore3, cart, clientEnt, cartEnt;
|
|
420
|
+
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
421
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
422
|
+
case 0:
|
|
423
|
+
createNewSuccess = sliceNewCustomerForm.actions.createNewCustomerSuccess;
|
|
424
|
+
_context9.next = 3;
|
|
425
|
+
return getCartToken();
|
|
426
|
+
case 3:
|
|
427
|
+
cartToken = _context9.sent;
|
|
428
|
+
_getStore3 = getStore(), cart = _getStore3.stateCart.cart;
|
|
429
|
+
clientEnt = makeUser({
|
|
430
|
+
id: clientJson.id
|
|
431
|
+
});
|
|
432
|
+
cartEnt = makeCart(cart, false, cartToken);
|
|
433
|
+
cartEnt.client = clientEnt;
|
|
434
|
+
return _context9.abrupt("return", cartEnt.save({
|
|
435
|
+
embed: cartEmbed
|
|
436
|
+
}).then(function (c) {
|
|
437
|
+
dispatch(setCart(c.toJson()));
|
|
438
|
+
dispatch(createNewSuccess());
|
|
439
|
+
}));
|
|
440
|
+
case 9:
|
|
441
|
+
case "end":
|
|
442
|
+
return _context9.stop();
|
|
443
|
+
}
|
|
444
|
+
}, _callee9);
|
|
445
|
+
}));
|
|
446
|
+
return _attachClientToCart.apply(this, arguments);
|
|
447
|
+
}
|
|
448
|
+
export function setSelectedShipmentQuote(_x5, _x6) {
|
|
449
|
+
return _setSelectedShipmentQuote.apply(this, arguments);
|
|
450
|
+
}
|
|
451
|
+
function _setSelectedShipmentQuote() {
|
|
452
|
+
_setSelectedShipmentQuote = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(groupIndex, quote) {
|
|
453
|
+
var cartToken, _getStore4, cart, _sliceCartShipment$ac3, setSelected, setSelectedShipmentQuoteError, setSelectedShipmentQuoteSuccess, cartEnt, cartShipmentQuote;
|
|
454
|
+
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
455
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
456
|
+
case 0:
|
|
457
|
+
_context10.next = 2;
|
|
458
|
+
return getCartToken();
|
|
459
|
+
case 2:
|
|
460
|
+
cartToken = _context10.sent;
|
|
461
|
+
_getStore4 = getStore(), cart = _getStore4.stateCart.cart;
|
|
462
|
+
_sliceCartShipment$ac3 = sliceCartShipment.actions, setSelected = _sliceCartShipment$ac3.setSelectedShipmentQuote, setSelectedShipmentQuoteError = _sliceCartShipment$ac3.setSelectedShipmentQuoteError, setSelectedShipmentQuoteSuccess = _sliceCartShipment$ac3.setSelectedShipmentQuoteSuccess;
|
|
463
|
+
cartEnt = makeCart(cart, false, cartToken);
|
|
464
|
+
cartShipmentQuote = makeCartShipmentQuote(quote);
|
|
465
|
+
cartEnt.shipmentGroups[groupIndex].selectedQuote = cartShipmentQuote;
|
|
466
|
+
dispatch(setSelected({
|
|
467
|
+
groupIndex: groupIndex,
|
|
468
|
+
quote: quote
|
|
469
|
+
}));
|
|
470
|
+
cartEnt.save({
|
|
471
|
+
embed: cartEmbed
|
|
472
|
+
}).then(function (c) {
|
|
473
|
+
dispatch(setCart(c.toJson()));
|
|
474
|
+
dispatch(setSelectedShipmentQuoteSuccess());
|
|
475
|
+
})["catch"](function (e) {
|
|
476
|
+
batch(function () {
|
|
477
|
+
alertError(e.errorMessage);
|
|
478
|
+
dispatch(setSelectedShipmentQuoteError());
|
|
479
|
+
});
|
|
480
|
+
});
|
|
481
|
+
case 10:
|
|
482
|
+
case "end":
|
|
483
|
+
return _context10.stop();
|
|
484
|
+
}
|
|
485
|
+
}, _callee10);
|
|
486
|
+
}));
|
|
487
|
+
return _setSelectedShipmentQuote.apply(this, arguments);
|
|
488
|
+
}
|
|
489
|
+
var _sliceFormReturningCu = sliceFormReturningCustomer.actions,
|
|
490
|
+
setReturningCustomerError = _sliceFormReturningCu.setReturningCustomerError,
|
|
491
|
+
tryReturning = _sliceFormReturningCu.tryReturningCustomer,
|
|
492
|
+
tryReturningCustomerError = _sliceFormReturningCu.tryReturningCustomerError,
|
|
493
|
+
tryReturningCustomerSuccess = _sliceFormReturningCu.tryReturningCustomerSuccess;
|
|
494
|
+
export function tryReturningCustomer(urlApi, data) {
|
|
495
|
+
var emailAddress = data.emailAddress;
|
|
496
|
+
dispatch(tryReturning());
|
|
497
|
+
tryReturningCustomerEmail(urlApi, emailAddress).then(function (r) {
|
|
498
|
+
return attachClientToCart({
|
|
499
|
+
emailAddresses: [{
|
|
500
|
+
emailAddress: emailAddress
|
|
501
|
+
}],
|
|
502
|
+
id: r.user_id
|
|
503
|
+
});
|
|
504
|
+
}).then(function () {
|
|
505
|
+
return dispatch(tryReturningCustomerSuccess());
|
|
506
|
+
})["catch"](function (e) {
|
|
507
|
+
return batch(function () {
|
|
508
|
+
alertError(e.errorMessage);
|
|
509
|
+
dispatch(tryReturningCustomerError());
|
|
510
|
+
dispatch(setReturningCustomerError(true));
|
|
511
|
+
});
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
var _sliceNewCustomerForm = sliceNewCustomerForm.actions,
|
|
515
|
+
createNew = _sliceNewCustomerForm.createNewCustomer,
|
|
516
|
+
createNewError = _sliceNewCustomerForm.createNewCustomerError,
|
|
517
|
+
createNewSuccess = _sliceNewCustomerForm.createNewCustomerSuccess;
|
|
518
|
+
export function actionCreateNewCustomer(urlApi, customerJson) {
|
|
519
|
+
var cart = getStore().stateCart.cart;
|
|
520
|
+
var domainId = cart && cart.domain && cart.domain.id;
|
|
521
|
+
dispatch(createNew());
|
|
522
|
+
var user = makeUser(_objectSpread(_objectSpread({}, customerJson), {}, {
|
|
523
|
+
registeredUnderDomains: [{
|
|
524
|
+
id: domainId
|
|
525
|
+
}]
|
|
526
|
+
}), true);
|
|
527
|
+
var error = function error(e) {
|
|
528
|
+
return batch(function () {
|
|
529
|
+
alertError(e.errorMessage);
|
|
530
|
+
dispatch(createNewError(e.errorMessage));
|
|
531
|
+
});
|
|
532
|
+
};
|
|
533
|
+
createNewCustomer(urlApi, _objectSpread(_objectSpread({}, customerJson), {}, {
|
|
534
|
+
registeredUnderDomains: [{
|
|
535
|
+
id: domainId
|
|
536
|
+
}]
|
|
537
|
+
})).then(function (r) {
|
|
538
|
+
var userJson = r.user;
|
|
539
|
+
attachClientToCart(userJson);
|
|
540
|
+
}).then(function () {
|
|
541
|
+
return dispatch(createNewSuccess());
|
|
542
|
+
})["catch"](error);
|
|
543
|
+
}
|
|
544
|
+
var creditCardPaySuccess = sliceCartPayment.actions.creditCardPaySuccess;
|
|
545
|
+
export function callbackCreditCardPaymentSuccess(invoiceJson) {
|
|
546
|
+
batch(function () {
|
|
547
|
+
dispatch(creditCardPaySuccess(invoiceJson));
|
|
548
|
+
setActiveTab(tabIdPaymentSuccess);
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
function convertToJson(_x7) {
|
|
552
|
+
return _convertToJson.apply(this, arguments);
|
|
553
|
+
}
|
|
554
|
+
function _convertToJson() {
|
|
555
|
+
_convertToJson = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(ent) {
|
|
556
|
+
var json;
|
|
557
|
+
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
558
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
559
|
+
case 0:
|
|
560
|
+
_context11.next = 2;
|
|
561
|
+
return ent.toJson();
|
|
562
|
+
case 2:
|
|
563
|
+
json = _context11.sent;
|
|
564
|
+
return _context11.abrupt("return", json);
|
|
565
|
+
case 4:
|
|
566
|
+
case "end":
|
|
567
|
+
return _context11.stop();
|
|
568
|
+
}
|
|
569
|
+
}, _callee11);
|
|
570
|
+
}));
|
|
571
|
+
return _convertToJson.apply(this, arguments);
|
|
572
|
+
}
|
|
573
|
+
function updateCartValues(cartJson) {
|
|
574
|
+
var initCartShipmentSlice = sliceCartShipment.actions.initCartShipmentSlice;
|
|
575
|
+
dispatch(sliceCart.actions.fetchCartSuccess(cartJson));
|
|
576
|
+
dispatch(initCartShipmentSlice(cartJson));
|
|
577
|
+
}
|
|
578
|
+
function getCart(cartIdAndToken) {
|
|
579
|
+
var cartSettingsInvalid = sliceCart.actions.cartSettingsInvalid;
|
|
580
|
+
var id = Number(cartIdAndToken[0]);
|
|
581
|
+
if (cartIdAndToken[1]) {
|
|
582
|
+
merchi.cartToken = cartIdAndToken[1];
|
|
583
|
+
}
|
|
584
|
+
dispatch(fetchCart());
|
|
585
|
+
merchi.Cart.get(id, {
|
|
586
|
+
embed: cartEmbed
|
|
587
|
+
}).then(convertToJson).then(function (cart) {
|
|
588
|
+
if (stripeIsValidAndActive(cart)) {
|
|
589
|
+
updateCartValues(cart);
|
|
590
|
+
} else {
|
|
591
|
+
console.error("MErhci cart error: Stripe payment " + "options have not been correctly set up. " + "Check the company profile payment options tab " + "to set and edit stripe payment options.");
|
|
592
|
+
dispatch(cartSettingsInvalid());
|
|
593
|
+
}
|
|
594
|
+
})["catch"](function (e) {
|
|
595
|
+
createAndSetNewCartCookie();
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
export function getMerchiCart(_x8) {
|
|
599
|
+
return _getMerchiCart.apply(this, arguments);
|
|
600
|
+
}
|
|
601
|
+
function _getMerchiCart() {
|
|
602
|
+
_getMerchiCart = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(domainId) {
|
|
603
|
+
var cartIdAndToken;
|
|
604
|
+
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
605
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
606
|
+
case 0:
|
|
607
|
+
_context12.next = 2;
|
|
608
|
+
return getMerchiCartCookie(domainId);
|
|
609
|
+
case 2:
|
|
610
|
+
cartIdAndToken = _context12.sent;
|
|
611
|
+
dispatch(setDomainId({
|
|
612
|
+
cartIdAndToken: cartIdAndToken,
|
|
613
|
+
domainId: domainId
|
|
614
|
+
}));
|
|
615
|
+
if (cartIdAndToken) {
|
|
616
|
+
getCart(cartIdAndToken);
|
|
617
|
+
} else {
|
|
618
|
+
createAndSetNewCartCookie();
|
|
619
|
+
}
|
|
620
|
+
case 5:
|
|
621
|
+
case "end":
|
|
622
|
+
return _context12.stop();
|
|
623
|
+
}
|
|
624
|
+
}, _callee12);
|
|
625
|
+
}));
|
|
626
|
+
return _getMerchiCart.apply(this, arguments);
|
|
627
|
+
}
|
|
628
|
+
export function isMerchiCartFetching() {
|
|
629
|
+
return _isMerchiCartFetching.apply(this, arguments);
|
|
630
|
+
}
|
|
631
|
+
function _isMerchiCartFetching() {
|
|
632
|
+
_isMerchiCartFetching = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {
|
|
633
|
+
return _regeneratorRuntime().wrap(function _callee13$(_context13) {
|
|
634
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
635
|
+
case 0:
|
|
636
|
+
return _context13.abrupt("return", getStore().stateCart.fetchingCart);
|
|
637
|
+
case 1:
|
|
638
|
+
case "end":
|
|
639
|
+
return _context13.stop();
|
|
640
|
+
}
|
|
641
|
+
}, _callee13);
|
|
642
|
+
}));
|
|
643
|
+
return _isMerchiCartFetching.apply(this, arguments);
|
|
644
|
+
}
|
|
645
|
+
export function getMerchiCartValues() {
|
|
646
|
+
return _getMerchiCartValues.apply(this, arguments);
|
|
647
|
+
}
|
|
648
|
+
function _getMerchiCartValues() {
|
|
649
|
+
_getMerchiCartValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
|
|
650
|
+
var cart, _ref, cartItems, currency, subtotalCost, taxAmount, totalCost, cartItemsCount;
|
|
651
|
+
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
652
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
653
|
+
case 0:
|
|
654
|
+
cart = getStore().stateCart.cart;
|
|
655
|
+
_ref = cart, cartItems = _ref.cartItems, currency = _ref.currency, subtotalCost = _ref.subtotalCost, taxAmount = _ref.taxAmount, totalCost = _ref.totalCost;
|
|
656
|
+
cartItemsCount = cartItems ? cartItems.length : 0;
|
|
657
|
+
return _context14.abrupt("return", {
|
|
658
|
+
cart: cart,
|
|
659
|
+
cartItemsCount: cartItemsCount,
|
|
660
|
+
currency: currency || '',
|
|
661
|
+
subtotalCost: subtotalCost || 0,
|
|
662
|
+
taxAmount: taxAmount || 0,
|
|
663
|
+
totalCost: totalCost || 0
|
|
664
|
+
});
|
|
665
|
+
case 4:
|
|
666
|
+
case "end":
|
|
667
|
+
return _context14.stop();
|
|
668
|
+
}
|
|
669
|
+
}, _callee14);
|
|
670
|
+
}));
|
|
671
|
+
return _getMerchiCartValues.apply(this, arguments);
|
|
672
|
+
}
|
|
673
|
+
export function doCartComplete() {
|
|
674
|
+
return _doCartComplete.apply(this, arguments);
|
|
675
|
+
}
|
|
676
|
+
function _doCartComplete() {
|
|
677
|
+
_doCartComplete = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {
|
|
678
|
+
return _regeneratorRuntime().wrap(function _callee15$(_context15) {
|
|
679
|
+
while (1) switch (_context15.prev = _context15.next) {
|
|
680
|
+
case 0:
|
|
681
|
+
dispatch(sliceCartPayment.actions.doCardComplete());
|
|
682
|
+
_context15.next = 3;
|
|
683
|
+
return cartAndCookie().then(function () {
|
|
684
|
+
return location.reload();
|
|
685
|
+
});
|
|
686
|
+
case 3:
|
|
687
|
+
case "end":
|
|
688
|
+
return _context15.stop();
|
|
689
|
+
}
|
|
690
|
+
}, _callee15);
|
|
691
|
+
}));
|
|
692
|
+
return _doCartComplete.apply(this, arguments);
|
|
693
|
+
}
|
|
694
|
+
export function initMerchiCart(domainId) {
|
|
695
|
+
getMerchiCart(domainId);
|
|
696
|
+
if (window && window !== undefined) {
|
|
697
|
+
window.getCart = function () {
|
|
698
|
+
return getMerchiCart(domainId);
|
|
699
|
+
};
|
|
700
|
+
window.isMerchiCartFetching = isMerchiCartFetching;
|
|
701
|
+
window.getMerchiCartValues = getMerchiCartValues;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsIml0ZXIiLCJpc0FycmF5IiwibGVuIiwiYXJyMiIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJvYmoiLCJfdG9Qcm9wZXJ0eUtleSIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsInRvUHJpbWl0aXZlIiwiTnVtYmVyIiwiYmF0Y2giLCJjb25maWd1cmVTdG9yZSIsImdldERlZmF1bHRNaWRkbGV3YXJlIiwic2xpY2VDYXJ0IiwidGFiSWRDaGVja291dCIsInRhYklkSXRlbSIsInRhYklkSXRlbXMiLCJ0YWJJZFBheW1lbnRTdWNjZXNzIiwic2xpY2VDYXJ0QWxlcnQiLCJzbGljZUNhcnRJdGVtIiwic2xpY2VDYXJ0UGF5bWVudCIsInNsaWNlQ2FydFNoaXBtZW50Iiwic2xpY2VOZXdDdXN0b21lckZvcm0iLCJzbGljZUZvcm1SZXR1cm5pbmdDdXN0b21lciIsInJlZHVjZXJzU3F1YXJlIiwic2xpY2VTdHJpcGVDYXJkRm9ybSIsIk1lcmNoaSIsImNhcnRFbWJlZCIsIm1ha2VBZGRyZXNzIiwiZ2V0Q2FydENvb2tpZSIsImdldE1lcmNoaUNhcnRDb29raWUiLCJzZXRDYXJ0Q29va2llIiwiZ2V0Q2FydFNoaXBtZW50R3JvdXBzQW5kUXVvdGVzIiwibWFrZUNhcnQiLCJtYWtlQ2FydEl0ZW0iLCJtYWtlQ2FydFNoaXBtZW50UXVvdGUiLCJzdHJpcGVJc1ZhbGlkQW5kQWN0aXZlIiwibWFrZVVzZXIiLCJjcmVhdGVOZXdDdXN0b21lciIsInRyeVJldHVybmluZ0N1c3RvbWVyRW1haWwiLCJhcHBlbmRTdHlsZVNoZWV0VGV4dCIsIm1lcmNoaSIsIm1pZGRsZXdhcmUiLCJzZXJpYWxpemFibGVDaGVjayIsIm1lcmNoaUNhcnRSZWR1Y2VyIiwic3RhdGVDYXJ0QWxlcnQiLCJyZWR1Y2VyIiwic3RhdGVDYXJ0SXRlbSIsInN0YXRlQ2FydFBheW1lbnQiLCJzdGF0ZUNhcnRTaGlwbWVudCIsInN0YXRlQ2FydCIsInN0YXRlTmV3Q3VzdG9tZXJGb3JtIiwic3RhdGVGb3JtUmV0dXJuaW5nQ3VzdG9tZXIiLCJzdG9yZSIsImdldFN0b3JlIiwiZ2V0U3RhdGUiLCJfc2xpY2VDYXJ0JGFjdGlvbnMiLCJhY3Rpb25zIiwiZGVsZXRlQ2FydEl0ZW0iLCJkZWxldGVDYXJ0SXRlbUVycm9yIiwiZGVsZXRlQ2FydEl0ZW1TdWNjZXNzIiwiZmV0Y2hDYXJ0IiwiZmV0Y2hDYXJ0RXJyb3IiLCJmZXRjaENhcnRTdWNjZXNzIiwiZmV0Y2hUaGVtZSIsImZldGNoVGhlbWVFcnJvciIsImZldGNoVGhlbWVTdWNjZXNzIiwic2V0Q2FydCIsInNldENhcnRDbGllbnQiLCJzZXREb21haW5JZCIsInNldENhcnRTaGlwbWVudEdyb3VwcyIsImdldENhcnRUb2tlbiIsIl9nZXRDYXJ0VG9rZW4iLCJfY2FsbGVlIiwiZG9tYWluSWQiLCJjYXJ0SWRBbmRUb2tlbiIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ0MCIsImRpc3BhdGNoIiwiYXh0aW9uU2V0Q2FydENsaWVudCIsImNsaWVudCIsInNldENhcnRJdGVtIiwiY2FydEl0ZW0iLCJpbmRleCIsImlkIiwic2V0QWN0aXZlVGFiIiwidGFiSWQiLCJzZXRBY3RpdmVUYWJBbmRFZGl0RGlzYWJsZWQiLCJzZXR0aW5ncyIsImNsb3NlQWxlcnQiLCJjbG9zZUNsZWFyQ2FydCIsImFsZXJ0RXJyb3IiLCJtZXNzYWdlIiwic2hvd0FsZXJ0RGFuZ2VyIiwidGl0bGUiLCJhbGVydFN1Y2Nlc3MiLCJzaG93QWxlcnRTdWNjZXNzIiwiYWN0aW9uRmV0Y2hUaGVtZSIsIkRvbWFpbiIsImdldCIsImVtYmVkIiwiYWN0aXZlVGhlbWUiLCJtYWluQ3NzIiwiZG9tYWluIiwidGhlbWUiLCJlcnJvck1lc3NhZ2UiLCJjYXJ0QW5kQ29va2llIiwiX2NhcnRBbmRDb29raWUiLCJfY2FsbGVlMiIsImNhcnQiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ0b0pzb24iLCJjSnNvbiIsImNyZWF0ZUFuZFNldE5ld0NhcnRDb29raWUiLCJfY3JlYXRlQW5kU2V0TmV3Q2FydENvb2tpZSIsIl9jYWxsZWUzIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiZG9DbGVhckNhcnQiLCJfZG9DbGVhckNhcnQiLCJfY2FsbGVlNCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsInBhdGNoQ2FydEl0ZW0iLCJfeCIsIl9wYXRjaENhcnRJdGVtIiwiX2NhbGxlZTUiLCJkYXRhIiwiX3NsaWNlQ2FydEl0ZW0kYWN0aW9uIiwiZG9QYXRjaCIsImRvUGF0Y2hFcnJvciIsImRvUGF0Y2hTdWNjZXNzIiwiY2FydFRva2VuIiwiX2RhdGEkc3RhdGVDYXJ0SXRlbSIsImNhcnRFbnQiLCJjYXJ0SXRlbUVudCIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsInBhdGNoQ2FydEl0ZW1FcnJvciIsInBhdGNoQ2FydEl0ZW1TdWNjZXNzIiwiY2FydEl0ZW1zIiwic2F2ZSIsImFjdGlvbkRlbGV0ZUNhcnRJdGVtIiwiX3gyIiwiX2FjdGlvbkRlbGV0ZUNhcnRJdGVtIiwiX2NhbGxlZTYiLCJfY2FsbGVlNiQiLCJfY29udGV4dDYiLCJzcGxpY2UiLCJ1cGRhdGVDYXJ0U2hpcG1lbnRBZGRyZXNzIiwiX3VwZGF0ZUNhcnRTaGlwbWVudEFkZHJlc3MiLCJfY2FsbGVlNyIsIl9zbGljZUNhcnRTaGlwbWVudCRhYyIsInVwZGF0ZVNoaXBtZW50QWRkcmVzc0Vycm9yIiwidXBkYXRlU2hpcG1lbnRBZGRyZXNzU3VjY2VzcyIsIl9nZXRTdG9yZSIsImFkZHJlc3MiLCJyZWNlaXZlckFkZHJlc3MiLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJjYXJ0V2l0aFNoaXBtZW50R3JvdXBzIiwiY2FydEpzb24iLCJzaGlwbWVudEdyb3VwcyIsInNhdmVDYXJ0U2hpcG1lbnRBZGRyZXNzQW5kR29Ub05leHRUYWIiLCJfeDMiLCJfc2F2ZUNhcnRTaGlwbWVudEFkZHJlc3NBbmRHb1RvTmV4dFRhYiIsIl9jYWxsZWU4IiwicmVjZWl2ZXJOb3RlcyIsIl9zbGljZUNhcnRTaGlwbWVudCRhYzIiLCJzYXZlU2hpcG1lbnRBZGRyZXNzIiwic2F2ZVNoaXBtZW50QWRkcmVzc0Vycm9yIiwic2F2ZVNoaXBtZW50QWRkcmVzc1N1Y2Nlc3MiLCJfZ2V0U3RvcmUyIiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4IiwidGFiSW5kZXhUb1NldCIsImRpc2FibGVkIiwiYXR0YWNoQ2xpZW50VG9DYXJ0IiwiX3g0IiwiX2F0dGFjaENsaWVudFRvQ2FydCIsIl9jYWxsZWU5IiwiY2xpZW50SnNvbiIsImNyZWF0ZU5ld1N1Y2Nlc3MiLCJfZ2V0U3RvcmUzIiwiY2xpZW50RW50IiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwiY3JlYXRlTmV3Q3VzdG9tZXJTdWNjZXNzIiwic2V0U2VsZWN0ZWRTaGlwbWVudFF1b3RlIiwiX3g1IiwiX3g2IiwiX3NldFNlbGVjdGVkU2hpcG1lbnRRdW90ZSIsIl9jYWxsZWUxMCIsImdyb3VwSW5kZXgiLCJxdW90ZSIsIl9nZXRTdG9yZTQiLCJfc2xpY2VDYXJ0U2hpcG1lbnQkYWMzIiwic2V0U2VsZWN0ZWQiLCJzZXRTZWxlY3RlZFNoaXBtZW50UXVvdGVFcnJvciIsInNldFNlbGVjdGVkU2hpcG1lbnRRdW90ZVN1Y2Nlc3MiLCJjYXJ0U2hpcG1lbnRRdW90ZSIsIl9jYWxsZWUxMCQiLCJfY29udGV4dDEwIiwic2VsZWN0ZWRRdW90ZSIsIl9zbGljZUZvcm1SZXR1cm5pbmdDdSIsInNldFJldHVybmluZ0N1c3RvbWVyRXJyb3IiLCJ0cnlSZXR1cm5pbmciLCJ0cnlSZXR1cm5pbmdDdXN0b21lciIsInRyeVJldHVybmluZ0N1c3RvbWVyRXJyb3IiLCJ0cnlSZXR1cm5pbmdDdXN0b21lclN1Y2Nlc3MiLCJ1cmxBcGkiLCJlbWFpbEFkZHJlc3MiLCJlbWFpbEFkZHJlc3NlcyIsInVzZXJfaWQiLCJfc2xpY2VOZXdDdXN0b21lckZvcm0iLCJjcmVhdGVOZXciLCJjcmVhdGVOZXdFcnJvciIsImNyZWF0ZU5ld0N1c3RvbWVyRXJyb3IiLCJhY3Rpb25DcmVhdGVOZXdDdXN0b21lciIsImN1c3RvbWVySnNvbiIsInVzZXIiLCJyZWdpc3RlcmVkVW5kZXJEb21haW5zIiwidXNlckpzb24iLCJjcmVkaXRDYXJkUGF5U3VjY2VzcyIsImNhbGxiYWNrQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzIiwiaW52b2ljZUpzb24iLCJjb252ZXJ0VG9Kc29uIiwiX3g3IiwiX2NvbnZlcnRUb0pzb24iLCJfY2FsbGVlMTEiLCJlbnQiLCJqc29uIiwiX2NhbGxlZTExJCIsIl9jb250ZXh0MTEiLCJ1cGRhdGVDYXJ0VmFsdWVzIiwiaW5pdENhcnRTaGlwbWVudFNsaWNlIiwiZ2V0Q2FydCIsImNhcnRTZXR0aW5nc0ludmFsaWQiLCJDYXJ0IiwiY29uc29sZSIsImdldE1lcmNoaUNhcnQiLCJfeDgiLCJfZ2V0TWVyY2hpQ2FydCIsIl9jYWxsZWUxMiIsIl9jYWxsZWUxMiQiLCJfY29udGV4dDEyIiwiaXNNZXJjaGlDYXJ0RmV0Y2hpbmciLCJfaXNNZXJjaGlDYXJ0RmV0Y2hpbmciLCJfY2FsbGVlMTMiLCJfY2FsbGVlMTMkIiwiX2NvbnRleHQxMyIsImZldGNoaW5nQ2FydCIsImdldE1lcmNoaUNhcnRWYWx1ZXMiLCJfZ2V0TWVyY2hpQ2FydFZhbHVlcyIsIl9jYWxsZWUxNCIsIl9yZWYiLCJjdXJyZW5jeSIsInN1YnRvdGFsQ29zdCIsInRheEFtb3VudCIsInRvdGFsQ29zdCIsImNhcnRJdGVtc0NvdW50IiwiX2NhbGxlZTE0JCIsIl9jb250ZXh0MTQiLCJkb0NhcnRDb21wbGV0ZSIsIl9kb0NhcnRDb21wbGV0ZSIsIl9jYWxsZWUxNSIsIl9jYWxsZWUxNSQiLCJfY29udGV4dDE1IiwiZG9DYXJkQ29tcGxldGUiLCJsb2NhdGlvbiIsInJlbG9hZCIsImluaXRNZXJjaGlDYXJ0Iiwid2luZG93Il0sInNvdXJjZXMiOlsiLi4vc3JjL3N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgY29uZmlndXJlU3RvcmUsIGdldERlZmF1bHRNaWRkbGV3YXJlIH0gZnJvbSAnQHJlZHV4anMvdG9vbGtpdCc7XG5pbXBvcnQge1xuICBzbGljZUNhcnQsXG4gIHRhYklkQ2hlY2tvdXQsXG4gIHRhYklkSXRlbSxcbiAgdGFiSWRJdGVtcyxcbiAgdGFiSWRQYXltZW50U3VjY2Vzcyxcbn0gZnJvbSAnLi9zbGljZXMvc2xpY2VDYXJ0JztcbmltcG9ydCB7IHNsaWNlQ2FydEFsZXJ0IH0gZnJvbSAnLi9zbGljZXMvc2xpY2VDYXJ0QWxlcnQnO1xuaW1wb3J0IHNsaWNlQ2FydEl0ZW0gZnJvbSAnLi9zbGljZXMvc2xpY2VDYXJ0SXRlbSc7XG5pbXBvcnQgeyBzbGljZUNhcnRQYXltZW50IH0gZnJvbSAnLi9zbGljZXMvc2xpY2VDYXJ0UGF5bWVudCc7XG5pbXBvcnQgeyBzbGljZUNhcnRTaGlwbWVudCB9IGZyb20gJy4vc2xpY2VzL3NsaWNlQ2FydFNoaXBtZW50JztcbmltcG9ydCBzbGljZU5ld0N1c3RvbWVyRm9ybSBmcm9tICcuL3NsaWNlcy9zbGljZU5ld0N1c3RvbWVyRm9ybSc7XG5pbXBvcnQgc2xpY2VGb3JtUmV0dXJuaW5nQ3VzdG9tZXIgZnJvbSAnLi9zbGljZXMvc2xpY2VGb3JtUmV0dXJuaW5nQ3VzdG9tZXInO1xuaW1wb3J0IHJlZHVjZXJzU3F1YXJlIGZyb20gJy4vc3F1YXJlL3NsaWNlcy9yZWR1Y2Vyc1NxdWFyZSc7XG5pbXBvcnQgc2xpY2VTdHJpcGVDYXJkRm9ybSBmcm9tICcuL3N0cmlwZS9zbGljZXMvc2xpY2VTdHJpcGVDYXJkRm9ybSc7XG5pbXBvcnQgeyBNZXJjaGkgfSBmcm9tICcuL01lcmNoaVNESy9tZXJjaGknO1xuaW1wb3J0IHsgY2FydEVtYmVkIH0gZnJvbSAnLi91dGlsaXRpZXMvaGVscGVycyc7XG5pbXBvcnQgeyBtYWtlQWRkcmVzcyB9IGZyb20gJy4vdXRpbGl0aWVzL2FkZHJlc3MnO1xuaW1wb3J0IHtcbiAgZ2V0Q2FydENvb2tpZSBhcyBnZXRNZXJjaGlDYXJ0Q29va2llLFxuICBzZXRDYXJ0Q29va2llLFxufSBmcm9tICcuL3V0aWxpdGllcy9jb29raWUnO1xuaW1wb3J0IHtcbiAgZ2V0Q2FydFNoaXBtZW50R3JvdXBzQW5kUXVvdGVzLFxuICBtYWtlQ2FydCxcbiAgbWFrZUNhcnRJdGVtLFxuICBtYWtlQ2FydFNoaXBtZW50UXVvdGUsXG4gIHN0cmlwZUlzVmFsaWRBbmRBY3RpdmUsXG59IGZyb20gJy4vdXRpbGl0aWVzL2NhcnQnO1xuaW1wb3J0IHtcbiAgbWFrZVVzZXIsXG4gIGNyZWF0ZU5ld0N1c3RvbWVyLFxuICB0cnlSZXR1cm5pbmdDdXN0b21lckVtYWlsLFxufSBmcm9tICcuL3V0aWxpdGllcy91c2VyJztcbmltcG9ydCB7IGFwcGVuZFN0eWxlU2hlZXRUZXh0IH0gZnJvbSAnLi91dGlsaXRpZXMvaGVscGVycyc7XG5cbmNvbnN0IG1lcmNoaSA9IG5ldyBNZXJjaGkoKTtcblxuY29uc3QgbWlkZGxld2FyZSA9IGdldERlZmF1bHRNaWRkbGV3YXJlKHsgc2VyaWFsaXphYmxlQ2hlY2s6IGZhbHNlIH0pO1xuXG5jb25zdCBtZXJjaGlDYXJ0UmVkdWNlciA9IHtcbiAgc3RhdGVDYXJ0QWxlcnQ6IHNsaWNlQ2FydEFsZXJ0LnJlZHVjZXIsXG4gIHN0YXRlQ2FydEl0ZW06IHNsaWNlQ2FydEl0ZW0ucmVkdWNlcixcbiAgc3RhdGVDYXJ0UGF5bWVudDogc2xpY2VDYXJ0UGF5bWVudC5yZWR1Y2VyLFxuICBzdGF0ZUNhcnRTaGlwbWVudDogc2xpY2VDYXJ0U2hpcG1lbnQucmVkdWNlcixcbiAgc3RhdGVDYXJ0OiBzbGljZUNhcnQucmVkdWNlcixcbiAgc3RhdGVOZXdDdXN0b21lckZvcm06IHNsaWNlTmV3Q3VzdG9tZXJGb3JtLnJlZHVjZXIsXG4gIHN0YXRlRm9ybVJldHVybmluZ0N1c3RvbWVyOiBzbGljZUZvcm1SZXR1cm5pbmdDdXN0b21lci5yZWR1Y2VyLFxuXG4gIC8vIFNxdWFyZSBzbGljZXNcbiAgLi4ucmVkdWNlcnNTcXVhcmUsXG5cbiAgLy8gU3RyaXBlIHNsaWNlc1xuICAuLi5zbGljZVN0cmlwZUNhcmRGb3JtLFxufTtcblxuZXhwb3J0IGNvbnN0IHN0b3JlID0gY29uZmlndXJlU3RvcmUoe1xuICBtaWRkbGV3YXJlOiBbLi4ubWlkZGxld2FyZV0sXG4gIHJlZHVjZXI6IG1lcmNoaUNhcnRSZWR1Y2VyLFxufSk7XG5cbmZ1bmN0aW9uIGdldFN0b3JlKCkge1xuICByZXR1cm4gc3RvcmUuZ2V0U3RhdGUoKTtcbn1cblxuY29uc3Qge1xuICBkZWxldGVDYXJ0SXRlbSxcbiAgZGVsZXRlQ2FydEl0ZW1FcnJvcixcbiAgZGVsZXRlQ2FydEl0ZW1TdWNjZXNzLFxuICBmZXRjaENhcnQsXG4gIGZldGNoQ2FydEVycm9yLFxuICBmZXRjaENhcnRTdWNjZXNzLFxuICBmZXRjaFRoZW1lLFxuICBmZXRjaFRoZW1lRXJyb3IsXG4gIGZldGNoVGhlbWVTdWNjZXNzLFxuICBzZXRDYXJ0LFxuICBzZXRDYXJ0Q2xpZW50LFxuICBzZXREb21haW5JZCxcbiAgc2V0Q2FydFNoaXBtZW50R3JvdXBzLFxufSA9IHNsaWNlQ2FydC5hY3Rpb25zO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXJ0VG9rZW4oKSB7XG4gIGNvbnN0IHsgZG9tYWluSWQgfSA9IGdldFN0b3JlKCkuc3RhdGVDYXJ0O1xuICBjb25zdCBjYXJ0SWRBbmRUb2tlbiA9IGRvbWFpbklkID8gYXdhaXQgZ2V0TWVyY2hpQ2FydENvb2tpZShOdW1iZXIoZG9tYWluSWQpKSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGNhcnRJZEFuZFRva2VuICYmIGNhcnRJZEFuZFRva2VuWzFdID8gY2FydElkQW5kVG9rZW5bMV0gOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoKG1ldGhvZDogYW55KSB7XG4gIHN0b3JlLmRpc3BhdGNoKG1ldGhvZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheHRpb25TZXRDYXJ0Q2xpZW50KGNsaWVudDogYW55KSB7XG4gIGRpc3BhdGNoKHNldENhcnRDbGllbnQoY2xpZW50KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDYXJ0SXRlbShjYXJ0SXRlbTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gIGJhdGNoKCgpID0+IHtcbiAgICBpZiAoY2FydEl0ZW0gJiYgY2FydEl0ZW0uaWQpIHtcbiAgICAgIHNldEFjdGl2ZVRhYih0YWJJZEl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBY3RpdmVUYWIodGFiSWRJdGVtcyk7XG4gICAgfVxuICAgIGRpc3BhdGNoKHNsaWNlQ2FydEl0ZW0uYWN0aW9ucy5zZXRDYXJ0SXRlbSh7IGNhcnRJdGVtLCBpbmRleCB9KSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QWN0aXZlVGFiKHRhYklkOiBudW1iZXIpIHtcbiAgZGlzcGF0Y2goc2xpY2VDYXJ0LmFjdGlvbnMuc2V0QWN0aXZlVGFiKHRhYklkKSk7XG59XG5cbmludGVyZmFjZSBzZXRBY3RpdmVUYWJBbmRFZGl0RGlzYWJsZWRQcm9wcyB7XG4gIHRhYklkOiBudW1iZXI7XG4gIHRhYkluZGV4VG9TZXQ6IG51bWJlcjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBY3RpdmVUYWJBbmRFZGl0RGlzYWJsZWQoc2V0dGluZ3M6IHNldEFjdGl2ZVRhYkFuZEVkaXREaXNhYmxlZFByb3BzKSB7XG4gIGRpc3BhdGNoKHNsaWNlQ2FydC5hY3Rpb25zLnNldEFjdGl2ZVRhYkFuZEVkaXREaXNhYmxlZChzZXR0aW5ncykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VBbGVydCgpIHtcbiAgZGlzcGF0Y2goc2xpY2VDYXJ0QWxlcnQuYWN0aW9ucy5jbG9zZUFsZXJ0KCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VDbGVhckNhcnQoKSB7XG4gIGRpc3BhdGNoKHNsaWNlQ2FydC5hY3Rpb25zLnNldEFjdGl2ZVRhYih0YWJJZEl0ZW1zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGVydEVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICBkaXNwYXRjaChzbGljZUNhcnRBbGVydC5hY3Rpb25zLnNob3dBbGVydERhbmdlcihcbiAgICB7IG1lc3NhZ2UsIHRpdGxlOiAnRXJyb3IhJyB9KSk7XG59XG5cbmZ1bmN0aW9uIGFsZXJ0U3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgZGlzcGF0Y2goc2xpY2VDYXJ0QWxlcnQuYWN0aW9ucy5zaG93QWxlcnRTdWNjZXNzKFxuICAgIHsgbWVzc2FnZSwgdGl0bGU6ICdTdWNjZXNzIScgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uRmV0Y2hUaGVtZShpZDogbnVtYmVyKSB7XG4gIGRpc3BhdGNoKGZldGNoVGhlbWUoKSlcbiAgbWVyY2hpLkRvbWFpbi5nZXQoaWQsIHtlbWJlZDoge2FjdGl2ZVRoZW1lOiB7bWFpbkNzczoge319fX0pXG4gICAgLnRoZW4oKGRvbWFpbjogYW55KSA9PiB7XG4gICAgICByZXR1cm4gZG9tYWluLmFjdGl2ZVRoZW1lO1xuICAgIH0pXG4gICAgLnRoZW4oKHRoZW1lOiBhbnkpID0+IHtcbiAgICAgIGFwcGVuZFN0eWxlU2hlZXRUZXh0KHRoZW1lLm1haW5Dc3MsICgpID0+IGRpc3BhdGNoKGZldGNoVGhlbWVTdWNjZXNzKCkpKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZTogYW55KSA9PiB7XG4gICAgICBhbGVydEVycm9yKGUuZXJyb3JNZXNzYWdlKTtcbiAgICAgIGRpc3BhdGNoKGZldGNoVGhlbWVFcnJvcigpKTtcbiAgICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FydEFuZENvb2tpZSgpIHtcbiAgY29uc3QgeyBkb21haW5JZCB9ID0gZ2V0U3RvcmUoKS5zdGF0ZUNhcnQ7XG4gIGNvbnN0IGNhcnQgPSBtYWtlQ2FydCh7ZG9tYWluOiB7aWQ6IGRvbWFpbklkfX0sIHRydWUpO1xuICByZXR1cm4gY2FydC5jcmVhdGUoe2VtYmVkOiBjYXJ0RW1iZWR9KVxuICAgIC50aGVuKChjOiBhbnkpID0+IHtcbiAgICAgIGlmIChkb21haW5JZCkge1xuICAgICAgICBzZXRDYXJ0Q29va2llKE51bWJlcihkb21haW5JZCksIGMudG9Kc29uKCksIHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYy50b0pzb24oKTtcbiAgICB9KVxuICAgIC50aGVuKChjSnNvbjogYW55KSA9PiB7XG4gICAgICBkaXNwYXRjaChmZXRjaENhcnRTdWNjZXNzKGNKc29uKSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGU6IGFueSkgPT4ge1xuICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICBhbGVydEVycm9yKGUuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgZGlzcGF0Y2goZmV0Y2hDYXJ0RXJyb3IoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuZFNldE5ld0NhcnRDb29raWUoKSB7XG4gIGRpc3BhdGNoKGZldGNoQ2FydCgpKTtcbiAgYXdhaXQgY2FydEFuZENvb2tpZSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9DbGVhckNhcnQoKSB7XG4gIGRpc3BhdGNoKHNldENhcnQoe30pKTtcbiAgY2xvc2VDbGVhckNhcnQoKTtcbiAgYXdhaXQgY3JlYXRlQW5kU2V0TmV3Q2FydENvb2tpZSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGF0Y2hDYXJ0SXRlbShjYXJ0SXRlbTogYW55KSB7XG4gIGNvbnN0IGRhdGEgPSBnZXRTdG9yZSgpO1xuICBjb25zdCB7XG4gICAgcGF0Y2hDYXJ0SXRlbTogZG9QYXRjaCxcbiAgICBwYXRjaENhcnRJdGVtRXJyb3I6IGRvUGF0Y2hFcnJvcixcbiAgICBwYXRjaENhcnRJdGVtU3VjY2VzczogZG9QYXRjaFN1Y2Nlc3MsXG4gIH0gPSBzbGljZUNhcnRJdGVtLmFjdGlvbnM7XG4gIGNvbnN0IGNhcnRUb2tlbiA9IGF3YWl0IGdldENhcnRUb2tlbigpO1xuICBjb25zdCB7XG4gICAgc3RhdGVDYXJ0OiB7IGNhcnQgfSxcbiAgICBzdGF0ZUNhcnRJdGVtOiB7IGNhcnRJdGVtOiBzdGF0ZUNhcnRJdGVtLCBpbmRleCB9XG4gIH0gPSBkYXRhO1xuICBjb25zdCBjYXJ0RW50ID0gbWFrZUNhcnQoY2FydCwgZmFsc2UsIGNhcnRUb2tlbik7XG4gIGNvbnN0IGNhcnRJdGVtRW50ID0gbWFrZUNhcnRJdGVtKGNhcnRJdGVtLCB0cnVlKTtcbiAgY2FydEl0ZW1FbnQuaWQgPSAoc3RhdGVDYXJ0SXRlbSBhcyBhbnkpLmlkO1xuICAoY2FydEVudCBhcyBhbnkpLmNhcnRJdGVtc1tpbmRleF0gPSBjYXJ0SXRlbUVudDtcbiAgZGlzcGF0Y2goZG9QYXRjaCgpKTtcbiAgY2FydEVudC5zYXZlKHtlbWJlZDogY2FydEVtYmVkfSkuXG4gICAgdGhlbihcbiAgICAgIChjOiBhbnkpID0+IHtcbiAgICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICAgIGFsZXJ0U3VjY2VzcygnSXRlbSB1cGRhdGVkLicpO1xuICAgICAgICAgIGRpc3BhdGNoKHNldENhcnQoYy50b0pzb24oKSkpO1xuICAgICAgICAgIGRpc3BhdGNoKGRvUGF0Y2hTdWNjZXNzKCkpO1xuICAgICAgICAgIHNldEFjdGl2ZVRhYih0YWJJZEl0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKS5cbiAgICB0aGVuKCgpID0+IHtcbiAgICAgIHNldENhcnRJdGVtKHt9LCAwKTtcbiAgICB9KS5cbiAgICBjYXRjaChcbiAgICAgIChlOiBhbnkpID0+IHtcbiAgICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICAgIGFsZXJ0RXJyb3IoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgICAgIGRpc3BhdGNoKGRvUGF0Y2hFcnJvcigpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFjdGlvbkRlbGV0ZUNhcnRJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgY29uc3QgZGF0YSA9IGdldFN0b3JlKCk7XG4gIGNvbnN0IGNhcnRUb2tlbiA9IGF3YWl0IGdldENhcnRUb2tlbigpO1xuICBjb25zdCB7IHN0YXRlQ2FydDogeyBjYXJ0IH0gfSA9IGRhdGE7XG4gIGNvbnN0IGNhcnRFbnQgPSBtYWtlQ2FydChjYXJ0LCBmYWxzZSwgY2FydFRva2VuKTtcbiAgY29uc3QgY2FydEl0ZW1zID0gKGNhcnRFbnQgYXMgYW55KS5jYXJ0SXRlbXM7XG4gIGNhcnRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAoY2FydEVudCBhcyBhbnkpLmNhcnRJdGVtcyA9IGNhcnRJdGVtcztcbiAgZGlzcGF0Y2goZGVsZXRlQ2FydEl0ZW0oaW5kZXgpKTtcbiAgY2FydEVudC5zYXZlKHtlbWJlZDogY2FydEVtYmVkfSkuXG4gICAgdGhlbihcbiAgICAgIChjOiBhbnkpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goZGVsZXRlQ2FydEl0ZW1TdWNjZXNzKGMudG9Kc29uKCkpKTtcbiAgICAgIH1cbiAgICApLlxuICAgIGNhdGNoKFxuICAgICAgKGU6IGFueSkgPT4ge1xuICAgICAgICBiYXRjaCgoKSA9PiB7XG4gICAgICAgICAgYWxlcnRFcnJvcihlLmVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlQ2FydEl0ZW1FcnJvcigpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUNhcnRTaGlwbWVudEFkZHJlc3MoKSB7XG4gIGNvbnN0IHtcbiAgICB1cGRhdGVTaGlwbWVudEFkZHJlc3NFcnJvcixcbiAgICB1cGRhdGVTaGlwbWVudEFkZHJlc3NTdWNjZXNzLFxuICB9ID0gc2xpY2VDYXJ0U2hpcG1lbnQuYWN0aW9ucztcbiAgY29uc3QgY2FydFRva2VuID0gYXdhaXQgZ2V0Q2FydFRva2VuKCk7XG4gIGNvbnN0IHtcbiAgICBzdGF0ZUNhcnQ6IHsgY2FydCB9LFxuICAgIHN0YXRlQ2FydFNoaXBtZW50OiB7IHJlY2VpdmVyQWRkcmVzczogYWRkcmVzcyB9LFxuICB9ID0gZ2V0U3RvcmUoKTtcbiAgY29uc3QgcmVjZWl2ZXJBZGRyZXNzID0gbWFrZUFkZHJlc3MoYWRkcmVzcywgdHJ1ZSk7XG4gIGNvbnN0IGNhcnRFbnQgPSBtYWtlQ2FydChjYXJ0LCBmYWxzZSwgY2FydFRva2VuKTtcbiAgY2FydEVudC5yZWNlaXZlckFkZHJlc3MgPSByZWNlaXZlckFkZHJlc3M7XG4gIGNhcnRFbnQuc2F2ZSh7ZW1iZWQ6IGNhcnRFbWJlZH0pLlxuICAgIHRoZW4oKGM6IGFueSkgPT4ge1xuICAgICAgZGlzcGF0Y2goc2V0Q2FydChjLnRvSnNvbigpKSk7XG4gICAgICBnZXRDYXJ0U2hpcG1lbnRHcm91cHNBbmRRdW90ZXMoYy50b0pzb24oKSkuXG4gICAgICAgIHRoZW4oKGNhcnRXaXRoU2hpcG1lbnRHcm91cHM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhcnRKc29uID0gY2FydFdpdGhTaGlwbWVudEdyb3VwcztcbiAgICAgICAgICBiYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICBkaXNwYXRjaChzZXRDYXJ0U2hpcG1lbnRHcm91cHMoY2FydEpzb24uc2hpcG1lbnRHcm91cHMpKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHVwZGF0ZVNoaXBtZW50QWRkcmVzc1N1Y2Nlc3MoY2FydEpzb24uc2hpcG1lbnRHcm91cHMpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSkuXG4gICAgY2F0Y2goKGU6IGFueSkgPT4ge1xuICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICBhbGVydEVycm9yKGUuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgZGlzcGF0Y2godXBkYXRlU2hpcG1lbnRBZGRyZXNzRXJyb3IoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVDYXJ0U2hpcG1lbnRBZGRyZXNzQW5kR29Ub05leHRUYWIodmFsdWVzOiBhbnkpIHtcbiAgY29uc3QgeyByZWNlaXZlckFkZHJlc3M6IGFkZHJlc3MsIHJlY2VpdmVyTm90ZXMgfSA9IHZhbHVlcztcbiAgY29uc3Qge1xuICAgIHNhdmVTaGlwbWVudEFkZHJlc3MsXG4gICAgc2F2ZVNoaXBtZW50QWRkcmVzc0Vycm9yLFxuICAgIHNhdmVTaGlwbWVudEFkZHJlc3NTdWNjZXNzLFxuICB9ID0gc2xpY2VDYXJ0U2hpcG1lbnQuYWN0aW9ucztcbiAgY29uc3QgY2FydFRva2VuID0gYXdhaXQgZ2V0Q2FydFRva2VuKCk7XG4gIGNvbnN0IHsgc3RhdGVDYXJ0OiB7IGNhcnQgfSB9ID0gZ2V0U3RvcmUoKTtcbiAgZGlzcGF0Y2goc2F2ZVNoaXBtZW50QWRkcmVzcygpKTtcbiAgY29uc3QgcmVjZWl2ZXJBZGRyZXNzID0gbWFrZUFkZHJlc3MoYWRkcmVzcywgdHJ1ZSk7XG4gIGNvbnN0IGNhcnRFbnQgPSBtYWtlQ2FydChjYXJ0LCBmYWxzZSwgY2FydFRva2VuKTtcbiAgY2FydEVudC5yZWNlaXZlckFkZHJlc3MgPSByZWNlaXZlckFkZHJlc3M7XG4gIGNhcnRFbnQucmVjZWl2ZXJOb3RlcyA9IHJlY2VpdmVyTm90ZXM7XG4gIGNhcnRFbnQuc2F2ZSh7ZW1iZWQ6IGNhcnRFbWJlZH0pLlxuICAgIHRoZW4oKGM6IGFueSkgPT4ge1xuICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaChzZXRDYXJ0KGMudG9Kc29uKCkpKTtcbiAgICAgICAgZGlzcGF0Y2goc2F2ZVNoaXBtZW50QWRkcmVzc1N1Y2Nlc3MoKSk7XG4gICAgICAgIHNldEFjdGl2ZVRhYkFuZEVkaXREaXNhYmxlZChcbiAgICAgICAgICB7dGFiSWQ6IHRhYklkQ2hlY2tvdXQsIHRhYkluZGV4VG9TZXQ6IDIsIGRpc2FibGVkOiBmYWxzZX0pO1xuICAgICAgfSk7XG4gICAgfSkuXG4gICAgY2F0Y2goKGU6IGFueSkgPT4ge1xuICAgICAgYmF0Y2goKCkgPT4ge1xuICAgICAgICBhbGVydEVycm9yKGUuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgZGlzcGF0Y2goc2F2ZVNoaXBtZW50QWRkcmVzc0Vycm9yKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGF0dGFjaENsaWVudFRvQ2FydChjbGllbnRKc29uOiBhbnkpIHtcbiAgY29uc3Qge1xuICAgIGNyZWF0ZU5ld0N1c3RvbWVyU3VjY2VzczogY3JlYXRlTmV3U3VjY2VzcyxcbiAgfSA9IHNsaWNlTmV3Q3VzdG9tZXJGb3JtLmFjdGlvbnM7XG4gIGNvbnN0IGNhcnRUb2tlbiA9IGF3YWl0IGdldENhcnRUb2tlbigpO1xuICBjb25zdCB7IHN0YXRlQ2FydDogeyBjYXJ0IH0gfSA9IGdldFN0b3JlKCk7XG4gIGNvbnN0IGNsaWVudEVudCA9IG1ha2VVc2VyKHtpZDogY2xpZW50SnNvbi5pZH0pO1xuICBjb25zdCBjYXJ0RW50ID0gbWFrZUNhcnQoY2FydCwgZmFsc2UsIGNhcnRUb2tlbik7XG4gIGNhcnRFbnQuY2xpZW50ID0gY2xpZW50RW50O1xuICByZXR1cm4gY2FydEVudC5zYXZlKHtlbWJlZDogY2FydEVtYmVkfSkuXG4gICAgdGhlbigoYzogYW55KSA9PiB7XG4gICAgICBkaXNwYXRjaChzZXRDYXJ0KGMudG9Kc29uKCkpKTtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZU5ld1N1Y2Nlc3MoKSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRTZWxlY3RlZFNoaXBtZW50UXVvdGUoZ3JvdXBJbmRleDogbnVtYmVyLCBxdW90ZTogYW55KSB7XG4gIGNvbnN0IGNhcnRUb2tlbiA9IGF3YWl0IGdldENhcnRUb2tlbigpO1xuICBjb25zdCB7IHN0YXRlQ2FydDogeyBjYXJ0IH0gfSA9IGdldFN0b3JlKCk7XG4gIGNvbnN0IHtcbiAgICBzZXRTZWxlY3RlZFNoaXBtZW50UXVvdGU6IHNldFNlbGVjdGVkLFxuICAgIHNldFNlbGVjdGVkU2hpcG1lbnRRdW90ZUVycm9yLFxuICAgIHNldFNlbGVjdGVkU2hpcG1lbnRRdW90ZVN1Y2Nlc3MsXG4gIH0gPSBzbGljZUNhcnRTaGlwbWVudC5hY3Rpb25zO1xuICBjb25zdCBjYXJ0RW50ID0gbWFrZUNhcnQoY2FydCwgZmFsc2UsIGNhcnRUb2tlbik7XG4gIGNvbnN0IGNhcnRTaGlwbWVudFF1b3RlID0gbWFrZUNhcnRTaGlwbWVudFF1b3RlKHF1b3RlKTtcbiAgKGNhcnRFbnQgYXMgYW55KS5zaGlwbWVudEdyb3Vwc1tncm91cEluZGV4XS5zZWxlY3RlZFF1b3RlID0gY2FydFNoaXBtZW50UXVvdGU7XG4gIGRpc3BhdGNoKHNldFNlbGVjdGVkKHsgZ3JvdXBJbmRleCwgcXVvdGUgfSkpO1xuICBjYXJ0RW50LnNhdmUoe2VtYmVkOiBjYXJ0RW1iZWR9KS5cbiAgICB0aGVuKChjOiBhbnkpID0+IHtcbiAgICAgIGRpc3BhdGNoKHNldENhcnQoYy50b0pzb24oKSkpO1xuICAgICAgZGlzcGF0Y2goc2V0U2VsZWN0ZWRTaGlwbWVudFF1b3RlU3VjY2VzcygpKTtcbiAgICB9KS5cbiAgICBjYXRjaCgoZTogYW55KSA9PiB7XG4gICAgICBiYXRjaCgoKSA9PiB7XG4gICAgICAgIGFsZXJ0RXJyb3IoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgICBkaXNwYXRjaChzZXRTZWxlY3RlZFNoaXBtZW50UXVvdGVFcnJvcigpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xufVxuXG5jb25zdCB7XG4gIHNldFJldHVybmluZ0N1c3RvbWVyRXJyb3IsXG4gIHRyeVJldHVybmluZ0N1c3RvbWVyOiB0cnlSZXR1cm5pbmcsXG4gIHRyeVJldHVybmluZ0N1c3RvbWVyRXJyb3IsXG4gIHRyeVJldHVybmluZ0N1c3RvbWVyU3VjY2Vzcyxcbn0gPSBzbGljZUZvcm1SZXR1cm5pbmdDdXN0b21lci5hY3Rpb25zO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJ5UmV0dXJuaW5nQ3VzdG9tZXIodXJsQXBpOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICBjb25zdCB7IGVtYWlsQWRkcmVzcyB9ID0gZGF0YTtcbiAgZGlzcGF0Y2godHJ5UmV0dXJuaW5nKCkpO1xuICB0cnlSZXR1cm5pbmdDdXN0b21lckVtYWlsKHVybEFwaSwgZW1haWxBZGRyZXNzKVxuICAudGhlbigocjogYW55KSA9PiBhdHRhY2hDbGllbnRUb0NhcnQoe1xuICAgICAgZW1haWxBZGRyZXNzZXM6IFt7ZW1haWxBZGRyZXNzfV0sXG4gICAgICBpZDogci51c2VyX2lkLFxuICAgIH0pKVxuICAudGhlbigoKSA9PiBkaXNwYXRjaCh0cnlSZXR1cm5pbmdDdXN0b21lclN1Y2Nlc3MoKSkpXG4gIC5jYXRjaCgoZTogYW55KSA9PlxuICAgIGJhdGNoKCgpID0+IHtcbiAgICAgIGFsZXJ0RXJyb3IoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgZGlzcGF0Y2godHJ5UmV0dXJuaW5nQ3VzdG9tZXJFcnJvcigpKTtcbiAgICAgIGRpc3BhdGNoKHNldFJldHVybmluZ0N1c3RvbWVyRXJyb3IodHJ1ZSkpO1xuICAgIH0pKTtcbn1cblxuY29uc3Qge1xuICBjcmVhdGVOZXdDdXN0b21lcjogY3JlYXRlTmV3LFxuICBjcmVhdGVOZXdDdXN0b21lckVycm9yOiBjcmVhdGVOZXdFcnJvcixcbiAgY3JlYXRlTmV3Q3VzdG9tZXJTdWNjZXNzOiBjcmVhdGVOZXdTdWNjZXNzLFxufSA9IHNsaWNlTmV3Q3VzdG9tZXJGb3JtLmFjdGlvbnM7XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25DcmVhdGVOZXdDdXN0b21lcih1cmxBcGk6IHN0cmluZywgY3VzdG9tZXJKc29uOiBhbnkpIHtcbiAgY29uc3QgeyBjYXJ0IH0gPSBnZXRTdG9yZSgpLnN0YXRlQ2FydDtcbiAgY29uc3QgZG9tYWluSWQgPSBjYXJ0ICYmIChjYXJ0IGFzIGFueSkuZG9tYWluICYmIChjYXJ0IGFzIGFueSkuZG9tYWluLmlkO1xuICBkaXNwYXRjaChjcmVhdGVOZXcoKSk7XG4gIGNvbnN0IHVzZXIgPSBtYWtlVXNlcihcbiAgICB7Li4uY3VzdG9tZXJKc29uLFxuICAgICAgcmVnaXN0ZXJlZFVuZGVyRG9tYWluczogW3tpZDogZG9tYWluSWR9XX0sXG4gICAgdHJ1ZVxuICApO1xuICBjb25zdCBlcnJvciA9IChlOiBhbnkpID0+IGJhdGNoKFxuICAgICgpID0+IHtcbiAgICAgIGFsZXJ0RXJyb3IoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgZGlzcGF0Y2goY3JlYXRlTmV3RXJyb3IoZS5lcnJvck1lc3NhZ2UpKTtcbiAgICB9KTtcbiAgY3JlYXRlTmV3Q3VzdG9tZXIodXJsQXBpLCB7Li4uY3VzdG9tZXJKc29uLCByZWdpc3RlcmVkVW5kZXJEb21haW5zOiBbe2lkOiBkb21haW5JZH1dfSlcbiAgICAudGhlbigocjogYW55KSA9PiB7XG4gICAgICBjb25zdCB7IHVzZXI6IHVzZXJKc29uIH0gPSByO1xuICAgICAgYXR0YWNoQ2xpZW50VG9DYXJ0KHVzZXJKc29uKTtcbiAgICB9KVxuICAgIC50aGVuKCgpID0+IGRpc3BhdGNoKGNyZWF0ZU5ld1N1Y2Nlc3MoKSkpXG4gICAgLmNhdGNoKGVycm9yKTtcbn1cblxuY29uc3QgeyBjcmVkaXRDYXJkUGF5U3VjY2VzcyB9ID0gc2xpY2VDYXJ0UGF5bWVudC5hY3Rpb25zOyBcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxiYWNrQ3JlZGl0Q2FyZFBheW1lbnRTdWNjZXNzKGludm9pY2VKc29uOiBhbnkpIHtcbiAgYmF0Y2goKCkgPT4ge1xuICAgIGRpc3BhdGNoKGNyZWRpdENhcmRQYXlTdWNjZXNzKGludm9pY2VKc29uKSk7XG4gICAgc2V0QWN0aXZlVGFiKHRhYklkUGF5bWVudFN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFRvSnNvbihlbnQ6IGFueSkge1xuICBjb25zdCBqc29uID0gYXdhaXQgZW50LnRvSnNvbigpO1xuICByZXR1cm4ganNvbjtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ2FydFZhbHVlcyhjYXJ0SnNvbjogYW55KSB7XG4gIGNvbnN0IHsgaW5pdENhcnRTaGlwbWVudFNsaWNlIH0gPSBzbGljZUNhcnRTaGlwbWVudC5hY3Rpb25zO1xuICBkaXNwYXRjaChzbGljZUNhcnQuYWN0aW9ucy5mZXRjaENhcnRTdWNjZXNzKGNhcnRKc29uKSk7XG4gIGRpc3BhdGNoKGluaXRDYXJ0U2hpcG1lbnRTbGljZShjYXJ0SnNvbikpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXJ0KGNhcnRJZEFuZFRva2VuOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IHtcbiAgICBjYXJ0U2V0dGluZ3NJbnZhbGlkLFxuICB9ID0gc2xpY2VDYXJ0LmFjdGlvbnM7XG4gIGNvbnN0IGlkID0gTnVtYmVyKGNhcnRJZEFuZFRva2VuWzBdKTtcbiAgaWYgKGNhcnRJZEFuZFRva2VuWzFdKSB7XG4gICAgbWVyY2hpLmNhcnRUb2tlbiA9IGNhcnRJZEFuZFRva2VuWzFdO1xuICB9XG4gIGRpc3BhdGNoKGZldGNoQ2FydCgpKTtcbiAgbWVyY2hpLkNhcnQuZ2V0KGlkLCB7ZW1iZWQ6IGNhcnRFbWJlZH0pXG4gICAgLnRoZW4oY29udmVydFRvSnNvbilcbiAgICAudGhlbigoY2FydDogYW55KSA9PiB7XG4gICAgICBpZiAoc3RyaXBlSXNWYWxpZEFuZEFjdGl2ZShjYXJ0KSkge1xuICAgICAgICB1cGRhdGVDYXJ0VmFsdWVzKGNhcnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgIGBNRXJoY2kgY2FydCBlcnJvcjogU3RyaXBlIHBheW1lbnQgYCArXG4gICAgICAgICAgYG9wdGlvbnMgaGF2ZSBub3QgYmVlbiBjb3JyZWN0bHkgc2V0IHVwLiBgICtcbiAgICAgICAgICBgQ2hlY2sgdGhlIGNvbXBhbnkgcHJvZmlsZSBwYXltZW50IG9wdGlvbnMgdGFiIGAgK1xuICAgICAgICAgIGB0byBzZXQgYW5kIGVkaXQgc3RyaXBlIHBheW1lbnQgb3B0aW9ucy5gKTtcbiAgICAgICAgZGlzcGF0Y2goY2FydFNldHRpbmdzSW52YWxpZCgpKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5jYXRjaCgoZTogYW55KSA9PiB7XG4gICAgICBjcmVhdGVBbmRTZXROZXdDYXJ0Q29va2llKCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRNZXJjaGlDYXJ0KGRvbWFpbklkOiBudW1iZXIpIHtcbiAgY29uc3QgY2FydElkQW5kVG9rZW4gPSBhd2FpdCBnZXRNZXJjaGlDYXJ0Q29va2llKGRvbWFpbklkKTtcbiAgZGlzcGF0Y2goc2V0RG9tYWluSWQoeyBjYXJ0SWRBbmRUb2tlbiwgZG9tYWluSWQgfSkpO1xuICBpZiAoY2FydElkQW5kVG9rZW4pIHtcbiAgICBnZXRDYXJ0KGNhcnRJZEFuZFRva2VuKTtcbiAgfSBlbHNlIHtcbiAgICBjcmVhdGVBbmRTZXROZXdDYXJ0Q29va2llKCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzTWVyY2hpQ2FydEZldGNoaW5nKCkge1xuICByZXR1cm4gZ2V0U3RvcmUoKS5zdGF0ZUNhcnQuZmV0Y2hpbmdDYXJ0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVyY2hpQ2FydFZhbHVlcygpIHtcbiAgY29uc3QgeyBjYXJ0IH0gPSBnZXRTdG9yZSgpLnN0YXRlQ2FydDtcbiAgY29uc3QgeyBjYXJ0SXRlbXMsIGN1cnJlbmN5LCBzdWJ0b3RhbENvc3QsIHRheEFtb3VudCwgdG90YWxDb3N0IH0gPSAoY2FydCBhcyBhbnkpO1xuICBjb25zdCBjYXJ0SXRlbXNDb3VudCA9IGNhcnRJdGVtcyA/IGNhcnRJdGVtcy5sZW5ndGggOiAwO1xuICByZXR1cm4ge1xuICAgIGNhcnQsXG4gICAgY2FydEl0ZW1zQ291bnQsXG4gICAgY3VycmVuY3k6IGN1cnJlbmN5IHx8ICcnLFxuICAgIHN1YnRvdGFsQ29zdDogc3VidG90YWxDb3N0IHx8IDAsXG4gICAgdGF4QW1vdW50OiB0YXhBbW91bnQgfHwgMCxcbiAgICB0b3RhbENvc3Q6IHRvdGFsQ29zdCB8fCAwLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9DYXJ0Q29tcGxldGUoKSB7XG4gIGRpc3BhdGNoKHNsaWNlQ2FydFBheW1lbnQuYWN0aW9ucy5kb0NhcmRDb21wbGV0ZSgpKTtcbiAgYXdhaXQgY2FydEFuZENvb2tpZSgpLnRoZW4oKCkgPT4gbG9jYXRpb24ucmVsb2FkKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdE1lcmNoaUNhcnQoZG9tYWluSWQ6IG51bWJlcikge1xuICBnZXRNZXJjaGlDYXJ0KGRvbWFpbklkKTtcbiAgaWYgKCh3aW5kb3cgYXMgYW55KSAmJiAod2luZG93IGFzIGFueSkgIT09IHVuZGVmaW5lZCkge1xuICAgICh3aW5kb3cgYXMgYW55KS5nZXRDYXJ0ID0gKCkgPT4gZ2V0TWVyY2hpQ2FydChkb21haW5JZCk7XG4gICAgKHdpbmRvdyBhcyBhbnkpLmlzTWVyY2hpQ2FydEZldGNoaW5nID0gaXNNZXJjaGlDYXJ0RmV0Y2hpbmc7XG4gICAgKHdpbmRvdyBhcyBhbnkpLmdldE1lcmNoaUNhcnRWYWx1ZXMgPSBnZXRNZXJjaGlDYXJ0VmFsdWVzO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiIrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUFELENBQUEsSUFBQVMsS0FBQSxFQUFBUCxDQUFBLEVBQUFpQixVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBcEIsQ0FBQSxDQUFBRCxDQUFBLFdBQUFrQixNQUFBLG1CQUFBakIsQ0FBQSxJQUFBaUIsTUFBQSxZQUFBQSxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsZ0JBQUFvQixLQUFBckIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxRQUFBSyxDQUFBLEdBQUFWLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxTQUFBLFlBQUFtQixTQUFBLEdBQUF2QixDQUFBLEdBQUF1QixTQUFBLEVBQUFYLENBQUEsR0FB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
|