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
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
2
|
+
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); }
|
|
3
|
+
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; }
|
|
4
|
+
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); }
|
|
5
|
+
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; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
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); }
|
|
8
|
+
import camelCase from 'lodash/camelCase';
|
|
9
|
+
import snakeCase from 'lodash/snakeCase';
|
|
10
|
+
var TransformationType = /*#__PURE__*/function (TransformationType) {
|
|
11
|
+
TransformationType["CAMEL"] = "camel";
|
|
12
|
+
TransformationType["UNDERSCORE"] = "underscore";
|
|
13
|
+
return TransformationType;
|
|
14
|
+
}(TransformationType || {});
|
|
15
|
+
var functionDict = _defineProperty(_defineProperty({}, TransformationType.CAMEL, camelCase), TransformationType.UNDERSCORE, snakeCase);
|
|
16
|
+
function parseJsonKeyNames(jsonObject, standard) {
|
|
17
|
+
if (_typeof(jsonObject) === 'object' && jsonObject !== null) {
|
|
18
|
+
if (Array.isArray(jsonObject)) {
|
|
19
|
+
var _iterator = _createForOfIteratorHelper(jsonObject),
|
|
20
|
+
_step;
|
|
21
|
+
try {
|
|
22
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
23
|
+
var item = _step.value;
|
|
24
|
+
parseJsonKeyNames(item, standard);
|
|
25
|
+
}
|
|
26
|
+
} catch (err) {
|
|
27
|
+
_iterator.e(err);
|
|
28
|
+
} finally {
|
|
29
|
+
_iterator.f();
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
var oldKeys = Object.keys(jsonObject);
|
|
33
|
+
for (var _i = 0, _oldKeys = oldKeys; _i < _oldKeys.length; _i++) {
|
|
34
|
+
var old = _oldKeys[_i];
|
|
35
|
+
var newKey = functionDict[standard](old);
|
|
36
|
+
if (newKey !== old) {
|
|
37
|
+
jsonObject[newKey] = jsonObject[old];
|
|
38
|
+
delete jsonObject[old];
|
|
39
|
+
parseJsonKeyNames(jsonObject[newKey], standard);
|
|
40
|
+
} else {
|
|
41
|
+
parseJsonKeyNames(jsonObject[old], standard);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return jsonObject;
|
|
47
|
+
}
|
|
48
|
+
function parseJsonKeyCamel(jsonObject) {
|
|
49
|
+
return parseJsonKeyNames(jsonObject, TransformationType.CAMEL);
|
|
50
|
+
}
|
|
51
|
+
export function unpackRecursiveJsonIter(jsonObject, options, fileIndex) {
|
|
52
|
+
if (!options) options = {};
|
|
53
|
+
var result = options.existing || new FormData();
|
|
54
|
+
var prefix = options._prefix || '';
|
|
55
|
+
if (!fileIndex) fileIndex = {
|
|
56
|
+
value: 0
|
|
57
|
+
};
|
|
58
|
+
var appendData = function appendData(name, value) {
|
|
59
|
+
if (prefix) {
|
|
60
|
+
name = prefix + '-' + name;
|
|
61
|
+
}
|
|
62
|
+
if (value !== undefined && value !== null) {
|
|
63
|
+
result.set(name, value.toString()); // Convert to string since FormData accepts only strings or Blobs.
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
var processSingleEntityProperty = function processSingleEntityProperty(key, value) {
|
|
67
|
+
var innerPrefix = key + '-0';
|
|
68
|
+
if (prefix) {
|
|
69
|
+
innerPrefix = prefix + '-' + innerPrefix;
|
|
70
|
+
}
|
|
71
|
+
unpackRecursiveJsonIter(value, {
|
|
72
|
+
existing: result,
|
|
73
|
+
_prefix: innerPrefix
|
|
74
|
+
}, fileIndex);
|
|
75
|
+
appendData(key + '-count', '1');
|
|
76
|
+
};
|
|
77
|
+
var _loop = function _loop(_key) {
|
|
78
|
+
if ([undefined, '', null].includes(jsonObject[_key]) || _key === 'rights') {
|
|
79
|
+
return 1; // continue
|
|
80
|
+
}
|
|
81
|
+
if (Array.isArray(jsonObject[_key])) {
|
|
82
|
+
jsonObject[_key].forEach(function (item, index) {
|
|
83
|
+
if ((_typeof(item) === "object" || Array.isArray(item)) && item !== null) {
|
|
84
|
+
var arrayPrefix = prefix ? "".concat(prefix, "-").concat(_key, "-").concat(index) : "".concat(_key, "-").concat(index);
|
|
85
|
+
unpackRecursiveJsonIter(item, {
|
|
86
|
+
existing: result,
|
|
87
|
+
_prefix: arrayPrefix
|
|
88
|
+
}, fileIndex);
|
|
89
|
+
} else {
|
|
90
|
+
appendData("".concat(_key, "-").concat(index), item);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
appendData(_key + '-count', jsonObject[_key].length.toString());
|
|
94
|
+
} else if (_typeof(jsonObject[_key]) === "object" && jsonObject[_key] !== null) {
|
|
95
|
+
processSingleEntityProperty(_key, jsonObject[_key]);
|
|
96
|
+
} else {
|
|
97
|
+
appendData(_key, jsonObject[_key]);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
for (var _key in jsonObject) {
|
|
101
|
+
if (_loop(_key)) continue;
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
export function encodeMerchiApiData(dataDict) {
|
|
106
|
+
var dataJson = parseJsonKeyCamel(dataDict);
|
|
107
|
+
return unpackRecursiveJsonIter(dataJson);
|
|
108
|
+
}
|
|
109
|
+
var supportedNumbers = {
|
|
110
|
+
AU: 'Australia (+61)',
|
|
111
|
+
AE: 'United Arab Emirates (+971)',
|
|
112
|
+
BH: 'Bahrain (+973)',
|
|
113
|
+
CN: 'China (+86)',
|
|
114
|
+
DK: 'Denmark (+45)',
|
|
115
|
+
ES: 'Spain (+34)',
|
|
116
|
+
FR: 'France (+33)',
|
|
117
|
+
GB: 'United Kingdom (+44)',
|
|
118
|
+
HK: 'Hong Kong (+852)',
|
|
119
|
+
ID: 'Indonesia (+62)',
|
|
120
|
+
IN: 'India (+91)',
|
|
121
|
+
IT: 'Italy (+39)',
|
|
122
|
+
KR: 'South Korea (+82)',
|
|
123
|
+
NC: 'New Caledonia (+687)',
|
|
124
|
+
NZ: 'New Zealand (+64)',
|
|
125
|
+
OM: 'Oman (+968)',
|
|
126
|
+
PH: 'Philippines (+63)',
|
|
127
|
+
PT: 'Portugal (+351)',
|
|
128
|
+
QA: 'Qatar (+974)',
|
|
129
|
+
SE: 'Sweden (+46)',
|
|
130
|
+
SG: 'Singapore (+65)',
|
|
131
|
+
TH: 'Thailand (+66)',
|
|
132
|
+
US: 'United States (+1)',
|
|
133
|
+
ZA: 'South Africa (+27)'
|
|
134
|
+
};
|
|
135
|
+
export var phoneOptions = Object.keys(supportedNumbers).map(function (key) {
|
|
136
|
+
return {
|
|
137
|
+
value: key,
|
|
138
|
+
label: supportedNumbers[key]
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
export function appendStyleSheetText(css, callback) {
|
|
142
|
+
if (document && document !== undefined) {
|
|
143
|
+
var newStyleSheet = document.createElement('style');
|
|
144
|
+
newStyleSheet.textContent = css;
|
|
145
|
+
if (callback) {
|
|
146
|
+
newStyleSheet.onload = callback;
|
|
147
|
+
}
|
|
148
|
+
document.head.appendChild(newStyleSheet);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
var optionsEmbed = {
|
|
152
|
+
options: {
|
|
153
|
+
linkedFile: {},
|
|
154
|
+
variationCostDiscountGroup: {},
|
|
155
|
+
variationUnitCostDiscountGroup: {}
|
|
156
|
+
},
|
|
157
|
+
variationCostDiscountGroup: {},
|
|
158
|
+
variationUnitCostDiscountGroup: {}
|
|
159
|
+
};
|
|
160
|
+
var variationsEmbed = {
|
|
161
|
+
selectedOptions: {},
|
|
162
|
+
variationField: optionsEmbed,
|
|
163
|
+
variationFiles: {}
|
|
164
|
+
};
|
|
165
|
+
var variationsGroupsEmbed = {
|
|
166
|
+
variations: variationsEmbed
|
|
167
|
+
};
|
|
168
|
+
var productWithImagesEmbed = {
|
|
169
|
+
domain: {
|
|
170
|
+
company: {
|
|
171
|
+
defaultTaxType: {},
|
|
172
|
+
taxTypes: {}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
featureImage: {},
|
|
176
|
+
groupVariationFields: {
|
|
177
|
+
options: {
|
|
178
|
+
linkedFile: {}
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
images: {},
|
|
182
|
+
independentVariationFields: {
|
|
183
|
+
options: {
|
|
184
|
+
linkedFile: {}
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
taxType: {}
|
|
188
|
+
};
|
|
189
|
+
var cartShipmentQuote = {
|
|
190
|
+
shipmentMethod: {
|
|
191
|
+
originAddress: {},
|
|
192
|
+
taxType: {}
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
export var cartEmbed = {
|
|
196
|
+
cartItems: {
|
|
197
|
+
product: productWithImagesEmbed,
|
|
198
|
+
taxType: {},
|
|
199
|
+
variations: variationsEmbed,
|
|
200
|
+
variationsGroups: variationsGroupsEmbed
|
|
201
|
+
},
|
|
202
|
+
client: {
|
|
203
|
+
emailAddresses: {},
|
|
204
|
+
profilePicture: {}
|
|
205
|
+
},
|
|
206
|
+
clientCompany: {},
|
|
207
|
+
domain: {
|
|
208
|
+
company: {
|
|
209
|
+
defaultTaxType: {},
|
|
210
|
+
isStripeAccountEnabled: {},
|
|
211
|
+
taxTypes: {}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
invoice: {},
|
|
215
|
+
receiverAddress: {},
|
|
216
|
+
shipmentGroups: {
|
|
217
|
+
cartItems: {
|
|
218
|
+
product: {}
|
|
219
|
+
},
|
|
220
|
+
quotes: cartShipmentQuote,
|
|
221
|
+
selectedQuote: cartShipmentQuote
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYW1lbENhc2UiLCJzbmFrZUNhc2UiLCJUcmFuc2Zvcm1hdGlvblR5cGUiLCJmdW5jdGlvbkRpY3QiLCJfZGVmaW5lUHJvcGVydHkiLCJDQU1FTCIsIlVOREVSU0NPUkUiLCJwYXJzZUpzb25LZXlOYW1lcyIsImpzb25PYmplY3QiLCJzdGFuZGFyZCIsIl90eXBlb2YiLCJBcnJheSIsImlzQXJyYXkiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwiaXRlbSIsInZhbHVlIiwiZXJyIiwiZSIsImYiLCJvbGRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsIl9pIiwiX29sZEtleXMiLCJsZW5ndGgiLCJvbGQiLCJuZXdLZXkiLCJwYXJzZUpzb25LZXlDYW1lbCIsInVucGFja1JlY3Vyc2l2ZUpzb25JdGVyIiwib3B0aW9ucyIsImZpbGVJbmRleCIsInJlc3VsdCIsImV4aXN0aW5nIiwiRm9ybURhdGEiLCJwcmVmaXgiLCJfcHJlZml4IiwiYXBwZW5kRGF0YSIsIm5hbWUiLCJ1bmRlZmluZWQiLCJzZXQiLCJ0b1N0cmluZyIsInByb2Nlc3NTaW5nbGVFbnRpdHlQcm9wZXJ0eSIsImtleSIsImlubmVyUHJlZml4IiwiX2xvb3AiLCJfa2V5IiwiaW5jbHVkZXMiLCJmb3JFYWNoIiwiaW5kZXgiLCJhcnJheVByZWZpeCIsImNvbmNhdCIsImVuY29kZU1lcmNoaUFwaURhdGEiLCJkYXRhRGljdCIsImRhdGFKc29uIiwic3VwcG9ydGVkTnVtYmVycyIsIkFVIiwiQUUiLCJCSCIsIkNOIiwiREsiLCJFUyIsIkZSIiwiR0IiLCJISyIsIklEIiwiSU4iLCJJVCIsIktSIiwiTkMiLCJOWiIsIk9NIiwiUEgiLCJQVCIsIlFBIiwiU0UiLCJTRyIsIlRIIiwiVVMiLCJaQSIsInBob25lT3B0aW9ucyIsIm1hcCIsImxhYmVsIiwiYXBwZW5kU3R5bGVTaGVldFRleHQiLCJjc3MiLCJjYWxsYmFjayIsImRvY3VtZW50IiwibmV3U3R5bGVTaGVldCIsImNyZWF0ZUVsZW1lbnQiLCJ0ZXh0Q29udGVudCIsIm9ubG9hZCIsImhlYWQiLCJhcHBlbmRDaGlsZCIsIm9wdGlvbnNFbWJlZCIsImxpbmtlZEZpbGUiLCJ2YXJpYXRpb25Db3N0RGlzY291bnRHcm91cCIsInZhcmlhdGlvblVuaXRDb3N0RGlzY291bnRHcm91cCIsInZhcmlhdGlvbnNFbWJlZCIsInNlbGVjdGVkT3B0aW9ucyIsInZhcmlhdGlvbkZpZWxkIiwidmFyaWF0aW9uRmlsZXMiLCJ2YXJpYXRpb25zR3JvdXBzRW1iZWQiLCJ2YXJpYXRpb25zIiwicHJvZHVjdFdpdGhJbWFnZXNFbWJlZCIsImRvbWFpbiIsImNvbXBhbnkiLCJkZWZhdWx0VGF4VHlwZSIsInRheFR5cGVzIiwiZmVhdHVyZUltYWdlIiwiZ3JvdXBWYXJpYXRpb25GaWVsZHMiLCJpbWFnZXMiLCJpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyIsInRheFR5cGUiLCJjYXJ0U2hpcG1lbnRRdW90ZSIsInNoaXBtZW50TWV0aG9kIiwib3JpZ2luQWRkcmVzcyIsImNhcnRFbWJlZCIsImNhcnRJdGVtcyIsInByb2R1Y3QiLCJ2YXJpYXRpb25zR3JvdXBzIiwiY2xpZW50IiwiZW1haWxBZGRyZXNzZXMiLCJwcm9maWxlUGljdHVyZSIsImNsaWVudENvbXBhbnkiLCJpc1N0cmlwZUFjY291bnRFbmFibGVkIiwiaW52b2ljZSIsInJlY2VpdmVyQWRkcmVzcyIsInNoaXBtZW50R3JvdXBzIiwicXVvdGVzIiwic2VsZWN0ZWRRdW90ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2FtZWxDYXNlIGZyb20gJ2xvZGFzaC9jYW1lbENhc2UnO1xuaW1wb3J0IHNuYWtlQ2FzZSBmcm9tICdsb2Rhc2gvc25ha2VDYXNlJztcblxuaW50ZXJmYWNlIEpzb25PYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmVudW0gVHJhbnNmb3JtYXRpb25UeXBlIHtcbiAgQ0FNRUwgPSBcImNhbWVsXCIsXG4gIFVOREVSU0NPUkUgPSBcInVuZGVyc2NvcmVcIlxufVxuXG5jb25zdCBmdW5jdGlvbkRpY3Q6IHsgW2tleSBpbiBUcmFuc2Zvcm1hdGlvblR5cGVdOiAod29yZDogc3RyaW5nKSA9PiBzdHJpbmcgfSA9IHtcbiAgW1RyYW5zZm9ybWF0aW9uVHlwZS5DQU1FTF06IGNhbWVsQ2FzZSxcbiAgW1RyYW5zZm9ybWF0aW9uVHlwZS5VTkRFUlNDT1JFXTogc25ha2VDYXNlXG59O1xuXG5mdW5jdGlvbiBwYXJzZUpzb25LZXlOYW1lcyhqc29uT2JqZWN0OiBhbnksIHN0YW5kYXJkOiBrZXlvZiB0eXBlb2YgZnVuY3Rpb25EaWN0KTogYW55IHtcbiAgaWYgKHR5cGVvZiBqc29uT2JqZWN0ID09PSAnb2JqZWN0JyAmJiBqc29uT2JqZWN0ICE9PSBudWxsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbk9iamVjdCkpIHtcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YganNvbk9iamVjdCkge1xuICAgICAgICBwYXJzZUpzb25LZXlOYW1lcyhpdGVtLCBzdGFuZGFyZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9sZEtleXMgPSBPYmplY3Qua2V5cyhqc29uT2JqZWN0KTtcbiAgICAgIGZvciAobGV0IG9sZCBvZiBvbGRLZXlzKSB7XG4gICAgICAgIGNvbnN0IG5ld0tleSA9IGZ1bmN0aW9uRGljdFtzdGFuZGFyZF0ob2xkKTtcbiAgICAgICAgaWYgKG5ld0tleSAhPT0gb2xkKSB7XG4gICAgICAgICAganNvbk9iamVjdFtuZXdLZXldID0ganNvbk9iamVjdFtvbGRdO1xuICAgICAgICAgIGRlbGV0ZSBqc29uT2JqZWN0W29sZF07XG4gICAgICAgICAgcGFyc2VKc29uS2V5TmFtZXMoanNvbk9iamVjdFtuZXdLZXldLCBzdGFuZGFyZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyc2VKc29uS2V5TmFtZXMoanNvbk9iamVjdFtvbGRdLCBzdGFuZGFyZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGpzb25PYmplY3Q7XG59XG5cbmZ1bmN0aW9uIHBhcnNlSnNvbktleUNhbWVsKGpzb25PYmplY3Q6IGFueSkge1xuICByZXR1cm4gcGFyc2VKc29uS2V5TmFtZXMoanNvbk9iamVjdCwgVHJhbnNmb3JtYXRpb25UeXBlLkNBTUVMKTtcbn1cblxuaW50ZXJmYWNlIENvdW50ZXIge1xuICB2YWx1ZTogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU2VyaWFsaXNlT3B0aW9ucyB7XG4gIGV4aXN0aW5nPzogRm9ybURhdGE7XG4gIGV4Y2x1ZGVPbGQ/OiBib29sZWFuO1xuICBfcHJlZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5wYWNrUmVjdXJzaXZlSnNvbkl0ZXIoanNvbk9iamVjdDogSnNvbk9iamVjdCwgb3B0aW9ucz86IFNlcmlhbGlzZU9wdGlvbnMsIGZpbGVJbmRleD86IENvdW50ZXIpOiBGb3JtRGF0YSB7XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICBjb25zdCByZXN1bHQgPSBvcHRpb25zLmV4aXN0aW5nIHx8IG5ldyBGb3JtRGF0YSgpO1xuICBjb25zdCBwcmVmaXggPSBvcHRpb25zLl9wcmVmaXggfHwgJyc7XG5cbiAgaWYgKCFmaWxlSW5kZXgpIGZpbGVJbmRleCA9IHsgdmFsdWU6IDAgfTtcblxuICBjb25zdCBhcHBlbmREYXRhID0gKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIG5hbWUgPSBwcmVmaXggKyAnLScgKyBuYW1lO1xuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0LnNldChuYW1lLCB2YWx1ZS50b1N0cmluZygpKTsgIC8vIENvbnZlcnQgdG8gc3RyaW5nIHNpbmNlIEZvcm1EYXRhIGFjY2VwdHMgb25seSBzdHJpbmdzIG9yIEJsb2JzLlxuICAgIH1cbiAgfTtcblxuICBjb25zdCBwcm9jZXNzU2luZ2xlRW50aXR5UHJvcGVydHkgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcbiAgICBsZXQgaW5uZXJQcmVmaXggPSBrZXkgKyAnLTAnO1xuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIGlubmVyUHJlZml4ID0gcHJlZml4ICsgJy0nICsgaW5uZXJQcmVmaXg7XG4gICAgfVxuICAgIHVucGFja1JlY3Vyc2l2ZUpzb25JdGVyKHZhbHVlLCB7IGV4aXN0aW5nOiByZXN1bHQsIF9wcmVmaXg6IGlubmVyUHJlZml4IH0sIGZpbGVJbmRleCk7XG4gICAgYXBwZW5kRGF0YShrZXkgKyAnLWNvdW50JywgJzEnKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBqc29uT2JqZWN0KSB7XG4gICAgaWYgKFt1bmRlZmluZWQsICcnLCBudWxsXS5pbmNsdWRlcyhqc29uT2JqZWN0W2tleV0pIHx8IGtleSA9PT0gJ3JpZ2h0cycpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGpzb25PYmplY3Rba2V5XSkpIHtcbiAgICAgIGpzb25PYmplY3Rba2V5XS5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKCh0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGl0ZW0pKSAmJiBpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgYXJyYXlQcmVmaXggPSBwcmVmaXggPyBgJHtwcmVmaXh9LSR7a2V5fS0ke2luZGV4fWAgOiBgJHtrZXl9LSR7aW5kZXh9YDtcbiAgICAgICAgICB1bnBhY2tSZWN1cnNpdmVKc29uSXRlcihpdGVtLCB7IGV4aXN0aW5nOiByZXN1bHQsIF9wcmVmaXg6IGFycmF5UHJlZml4IH0sIGZpbGVJbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXBwZW5kRGF0YShgJHtrZXl9LSR7aW5kZXh9YCwgaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgYXBwZW5kRGF0YShrZXkgKyAnLWNvdW50JywganNvbk9iamVjdFtrZXldLmxlbmd0aC50b1N0cmluZygpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBqc29uT2JqZWN0W2tleV0gPT09IFwib2JqZWN0XCIgJiYganNvbk9iamVjdFtrZXldICE9PSBudWxsKSB7XG4gICAgICBwcm9jZXNzU2luZ2xlRW50aXR5UHJvcGVydHkoa2V5LCBqc29uT2JqZWN0W2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcHBlbmREYXRhKGtleSwganNvbk9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlTWVyY2hpQXBpRGF0YShkYXRhRGljdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICBjb25zdCBkYXRhSnNvbiA9IHBhcnNlSnNvbktleUNhbWVsKGRhdGFEaWN0KTtcbiAgcmV0dXJuIHVucGFja1JlY3Vyc2l2ZUpzb25JdGVyKGRhdGFKc29uKTtcbn1cblxuY29uc3Qgc3VwcG9ydGVkTnVtYmVyczogYW55ID0ge1xuICBBVTogJ0F1c3RyYWxpYSAoKzYxKScsXG4gIEFFOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMgKCs5NzEpJyxcbiAgQkg6ICdCYWhyYWluICgrOTczKScsXG4gIENOOiAnQ2hpbmEgKCs4NiknLFxuICBESzogJ0Rlbm1hcmsgKCs0NSknLFxuICBFUzogJ1NwYWluICgrMzQpJyxcbiAgRlI6ICdGcmFuY2UgKCszMyknLFxuICBHQjogJ1VuaXRlZCBLaW5nZG9tICgrNDQpJyxcbiAgSEs6ICdIb25nIEtvbmcgKCs4NTIpJyxcbiAgSUQ6ICdJbmRvbmVzaWEgKCs2MiknLFxuICBJTjogJ0luZGlhICgrOTEpJyxcbiAgSVQ6ICdJdGFseSAoKzM5KScsXG4gIEtSOiAnU291dGggS29yZWEgKCs4MiknLFxuICBOQzogJ05ldyBDYWxlZG9uaWEgKCs2ODcpJyxcbiAgTlo6ICdOZXcgWmVhbGFuZCAoKzY0KScsXG4gIE9NOiAnT21hbiAoKzk2OCknLFxuICBQSDogJ1BoaWxpcHBpbmVzICgrNjMpJyxcbiAgUFQ6ICdQb3J0dWdhbCAoKzM1MSknLFxuICBRQTogJ1FhdGFyICgrOTc0KScsXG4gIFNFOiAnU3dlZGVuICgrNDYpJyxcbiAgU0c6ICdTaW5nYXBvcmUgKCs2NSknLFxuICBUSDogJ1RoYWlsYW5kICgrNjYpJyxcbiAgVVM6ICdVbml0ZWQgU3RhdGVzICgrMSknLFxuICBaQTogJ1NvdXRoIEFmcmljYSAoKzI3KScsXG59O1xuXG5leHBvcnQgY29uc3QgcGhvbmVPcHRpb25zID0gT2JqZWN0LmtleXMoc3VwcG9ydGVkTnVtYmVycykubWFwKChrZXkpID0+ICh7XG4gIHZhbHVlOiBrZXksXG4gIGxhYmVsOiBzdXBwb3J0ZWROdW1iZXJzW2tleV0sXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTdHlsZVNoZWV0VGV4dChjc3M6IHN0cmluZywgY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3U3R5bGVTaGVldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgbmV3U3R5bGVTaGVldC50ZXh0Q29udGVudCA9IGNzcztcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIG5ld1N0eWxlU2hlZXQub25sb2FkID0gY2FsbGJhY2s7XG4gICAgfVxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobmV3U3R5bGVTaGVldCk7XG4gIH1cbn1cblxuY29uc3Qgb3B0aW9uc0VtYmVkOiBhbnkgPSB7XG4gIG9wdGlvbnM6IHtcbiAgICBsaW5rZWRGaWxlOiB7fSxcbiAgICB2YXJpYXRpb25Db3N0RGlzY291bnRHcm91cDoge30sXG4gICAgdmFyaWF0aW9uVW5pdENvc3REaXNjb3VudEdyb3VwOiB7fX0sXG4gIHZhcmlhdGlvbkNvc3REaXNjb3VudEdyb3VwOiB7fSxcbiAgdmFyaWF0aW9uVW5pdENvc3REaXNjb3VudEdyb3VwOiB7fSxcbn07XG5cbmNvbnN0IHZhcmlhdGlvbnNFbWJlZDogYW55ID0ge1xuICBzZWxlY3RlZE9wdGlvbnM6IHt9LFxuICB2YXJpYXRpb25GaWVsZDogb3B0aW9uc0VtYmVkLFxuICB2YXJpYXRpb25GaWxlczoge31cbn07XG5cbmNvbnN0IHZhcmlhdGlvbnNHcm91cHNFbWJlZDogYW55ID0ge3ZhcmlhdGlvbnM6IHZhcmlhdGlvbnNFbWJlZH07XG5cbmNvbnN0IHByb2R1Y3RXaXRoSW1hZ2VzRW1iZWQ6IGFueSA9IHtcbiAgZG9tYWluOiB7Y29tcGFueToge2RlZmF1bHRUYXhUeXBlOiB7fSwgdGF4VHlwZXM6IHt9fX0sXG4gIGZlYXR1cmVJbWFnZToge30sXG4gIGdyb3VwVmFyaWF0aW9uRmllbGRzOiB7b3B0aW9uczoge2xpbmtlZEZpbGU6IHt9fX0sXG4gIGltYWdlczoge30sXG4gIGluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzOiB7b3B0aW9uczoge2xpbmtlZEZpbGU6IHt9fX0sXG4gIHRheFR5cGU6IHt9LFxufTtcblxuY29uc3QgY2FydFNoaXBtZW50UXVvdGU6IGFueSA9IHtcbiAgc2hpcG1lbnRNZXRob2Q6IHtvcmlnaW5BZGRyZXNzOiB7fSwgdGF4VHlwZToge319LFxufTtcblxuZXhwb3J0IGNvbnN0IGNhcnRFbWJlZDogYW55ID0ge1xuICBjYXJ0SXRlbXM6IHtcbiAgICBwcm9kdWN0OiBwcm9kdWN0V2l0aEltYWdlc0VtYmVkLFxuICAgIHRheFR5cGU6IHt9LFxuICAgIHZhcmlhdGlvbnM6IHZhcmlhdGlvbnNFbWJlZCxcbiAgICB2YXJpYXRpb25zR3JvdXBzOiB2YXJpYXRpb25zR3JvdXBzRW1iZWQsXG4gIH0sXG4gIGNsaWVudDoge1xuICAgIGVtYWlsQWRkcmVzc2VzOiB7fSwgcHJvZmlsZVBpY3R1cmU6IHt9LFxuICB9LFxuICBjbGllbnRDb21wYW55OiB7fSxcbiAgZG9tYWluOiB7XG4gICAgY29tcGFueToge1xuICAgICAgZGVmYXVsdFRheFR5cGU6IHt9LFxuICAgICAgaXNTdHJpcGVBY2NvdW50RW5hYmxlZDoge30sXG4gICAgICB0YXhUeXBlczoge30sXG4gICAgfSxcbiAgfSxcbiAgaW52b2ljZToge30sXG4gIHJlY2VpdmVyQWRkcmVzczoge30sXG4gIHNoaXBtZW50R3JvdXBzOiB7XG4gICAgY2FydEl0ZW1zOiB7cHJvZHVjdDoge319LFxuICAgIHF1b3RlczogY2FydFNoaXBtZW50UXVvdGUsXG4gICAgc2VsZWN0ZWRRdW90ZTogY2FydFNoaXBtZW50UXVvdGUsXG4gIH0sXG59O1xuXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPQSxTQUFTLE1BQU0sa0JBQWtCO0FBQ3hDLE9BQU9DLFNBQVMsTUFBTSxrQkFBa0I7QUFBQyxJQU1wQ0Msa0JBQWtCLDBCQUFsQkEsa0JBQWtCO0VBQWxCQSxrQkFBa0I7RUFBbEJBLGtCQUFrQjtFQUFBLE9BQWxCQSxrQkFBa0I7QUFBQSxFQUFsQkEsa0JBQWtCO0FBS3ZCLElBQU1DLFlBQXVFLEdBQUFDLGVBQUEsQ0FBQUEsZUFBQSxLQUMxRUYsa0JBQWtCLENBQUNHLEtBQUssRUFBR0wsU0FBUyxHQUNwQ0Usa0JBQWtCLENBQUNJLFVBQVUsRUFBR0wsU0FBUyxDQUMzQztBQUVELFNBQVNNLGlCQUFpQkEsQ0FBQ0MsVUFBZSxFQUFFQyxRQUFtQyxFQUFPO0VBQ3BGLElBQUlDLE9BQUEsQ0FBT0YsVUFBVSxNQUFLLFFBQVEsSUFBSUEsVUFBVSxLQUFLLElBQUksRUFBRTtJQUN6RCxJQUFJRyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osVUFBVSxDQUFDLEVBQUU7TUFBQSxJQUFBSyxTQUFBLEdBQUFDLDBCQUFBLENBQ1pOLFVBQVU7UUFBQU8sS0FBQTtNQUFBO1FBQTNCLEtBQUFGLFNBQUEs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
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
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; }
|
|
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
|
+
var urlToFile = /*#__PURE__*/function () {
|
|
6
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(url, filename, type) {
|
|
7
|
+
var res, buf;
|
|
8
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
9
|
+
while (1) switch (_context.prev = _context.next) {
|
|
10
|
+
case 0:
|
|
11
|
+
_context.next = 2;
|
|
12
|
+
return fetch(url);
|
|
13
|
+
case 2:
|
|
14
|
+
res = _context.sent;
|
|
15
|
+
_context.next = 5;
|
|
16
|
+
return res.arrayBuffer();
|
|
17
|
+
case 5:
|
|
18
|
+
buf = _context.sent;
|
|
19
|
+
return _context.abrupt("return", new File([buf], filename, {
|
|
20
|
+
type: type
|
|
21
|
+
}));
|
|
22
|
+
case 7:
|
|
23
|
+
case "end":
|
|
24
|
+
return _context.stop();
|
|
25
|
+
}
|
|
26
|
+
}, _callee);
|
|
27
|
+
}));
|
|
28
|
+
return function urlToFile(_x, _x2, _x3) {
|
|
29
|
+
return _ref.apply(this, arguments);
|
|
30
|
+
};
|
|
31
|
+
}();
|
|
32
|
+
var urlToFilePdf = /*#__PURE__*/function () {
|
|
33
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(url, filename) {
|
|
34
|
+
var file;
|
|
35
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
36
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
37
|
+
case 0:
|
|
38
|
+
_context2.next = 2;
|
|
39
|
+
return urlToFile(url, filename, 'application/pdf');
|
|
40
|
+
case 2:
|
|
41
|
+
file = _context2.sent;
|
|
42
|
+
return _context2.abrupt("return", file);
|
|
43
|
+
case 4:
|
|
44
|
+
case "end":
|
|
45
|
+
return _context2.stop();
|
|
46
|
+
}
|
|
47
|
+
}, _callee2);
|
|
48
|
+
}));
|
|
49
|
+
return function urlToFilePdf(_x4, _x5) {
|
|
50
|
+
return _ref2.apply(this, arguments);
|
|
51
|
+
};
|
|
52
|
+
}();
|
|
53
|
+
export function generatePublicInvoicePdf(_x6, _x7, _x8) {
|
|
54
|
+
return _generatePublicInvoicePdf.apply(this, arguments);
|
|
55
|
+
}
|
|
56
|
+
function _generatePublicInvoicePdf() {
|
|
57
|
+
_generatePublicInvoicePdf = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(urlApi, invoice, receipt) {
|
|
58
|
+
var id, domain, queryString, fetchOptions, uri, response, r, pdf, url, doc, anchor;
|
|
59
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
60
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
id = invoice.id;
|
|
63
|
+
domain = invoice.domain.emailDomain;
|
|
64
|
+
queryString = new URLSearchParams({
|
|
65
|
+
invoice_token: invoice.invoiceToken
|
|
66
|
+
}).toString();
|
|
67
|
+
fetchOptions = {
|
|
68
|
+
method: 'GET',
|
|
69
|
+
mode: 'cors'
|
|
70
|
+
};
|
|
71
|
+
uri = receipt ? '/generate/receipt/pdf/' : '/generate/pdf/';
|
|
72
|
+
_context3.prev = 5;
|
|
73
|
+
_context3.next = 8;
|
|
74
|
+
return fetch("".concat(urlApi, "invoices/").concat(id).concat(uri, "?").concat(queryString), fetchOptions);
|
|
75
|
+
case 8:
|
|
76
|
+
response = _context3.sent;
|
|
77
|
+
if (response.ok) {
|
|
78
|
+
_context3.next = 11;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
throw new Error("Error fetching PDF.");
|
|
82
|
+
case 11:
|
|
83
|
+
_context3.next = 13;
|
|
84
|
+
return response.json();
|
|
85
|
+
case 13:
|
|
86
|
+
r = _context3.sent;
|
|
87
|
+
_context3.next = 16;
|
|
88
|
+
return urlToFilePdf("data:application/pdf;base64,".concat(r.pdf), "".concat(domain, "-invoice-").concat(id, ".pdf"));
|
|
89
|
+
case 16:
|
|
90
|
+
pdf = _context3.sent;
|
|
91
|
+
url = URL.createObjectURL(pdf);
|
|
92
|
+
doc = document;
|
|
93
|
+
anchor = doc.createElement('a');
|
|
94
|
+
anchor.href = url;
|
|
95
|
+
anchor.download = pdf.name;
|
|
96
|
+
|
|
97
|
+
// Append to the DOM
|
|
98
|
+
doc.body.appendChild(anchor);
|
|
99
|
+
|
|
100
|
+
// Trigger `click` event
|
|
101
|
+
anchor.click();
|
|
102
|
+
|
|
103
|
+
// Remove element from DOM
|
|
104
|
+
doc.body.removeChild(anchor);
|
|
105
|
+
return _context3.abrupt("return", {
|
|
106
|
+
success: true
|
|
107
|
+
});
|
|
108
|
+
case 28:
|
|
109
|
+
_context3.prev = 28;
|
|
110
|
+
_context3.t0 = _context3["catch"](5);
|
|
111
|
+
throw _context3.t0;
|
|
112
|
+
case 31:
|
|
113
|
+
case "end":
|
|
114
|
+
return _context3.stop();
|
|
115
|
+
}
|
|
116
|
+
}, _callee3, null, [[5, 28]]);
|
|
117
|
+
}));
|
|
118
|
+
return _generatePublicInvoicePdf.apply(this, arguments);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsInVybFRvRmlsZSIsIl9yZWYiLCJfY2FsbGVlIiwidXJsIiwiZmlsZW5hbWUiLCJyZXMiLCJidWYiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiZmV0Y2giLCJhcnJheUJ1ZmZlciIsIkZpbGUiLCJfeCIsIl94MiIsIl94MyIsInVybFRvRmlsZVBkZiIsIl9yZWYyIiwiX2NhbGxlZTIiLCJmaWxlIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiX3g0IiwiX3g1IiwiZ2VuZXJhdGVQdWJsaWNJbnZvaWNlUGRmIiwiX3g2IiwiX3g3IiwiX3g4IiwiX2dlbmVyYXRlUHVibGljSW52b2ljZVBkZiIsIl9jYWxsZWUzIiwidXJsQXBpIiwiaW52b2ljZSIsInJlY2VpcHQiLCJpZCIsImRvbWFpbiIsInF1ZXJ5U3RyaW5nIiwiZmV0Y2hPcHRpb25zIiwidXJpIiwicmVzcG9uc2UiLCJwZGYiLCJkb2MiLCJhbmNob3IiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJlbWFpbERvbWFpbiIsIlVSTFNlYXJjaFBhcmFtcyIsImludm9pY2VfdG9rZW4iLCJpbnZvaWNlVG9rZW4iLCJ0b1N0cmluZyIsIm1vZGUiLCJjb25jYXQiLCJvayIsImpzb24iLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJocmVmIiwiZG93bmxvYWQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJjbGljayIsInJlbW92ZUNoaWxkIiwic3VjY2VzcyIsInQwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9pbnZvaWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHVybFRvRmlsZSA9IGFzeW5jICh1cmw6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZywgdHlwZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCk7XG4gIGNvbnN0IGJ1ZiA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpO1xuICByZXR1cm4gbmV3IEZpbGUoW2J1Zl0sIGZpbGVuYW1lLCB7IHR5cGUgfSk7XG59O1xuXG5jb25zdCB1cmxUb0ZpbGVQZGYgPSBhc3luYyAodXJsOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZmlsZSA9IGF3YWl0IHVybFRvRmlsZSh1cmwsIGZpbGVuYW1lLCAnYXBwbGljYXRpb24vcGRmJyk7XG4gIHJldHVybiBmaWxlO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlUHVibGljSW52b2ljZVBkZih1cmxBcGk6IHN0cmluZywgaW52b2ljZTogYW55LCByZWNlaXB0PzogYm9vbGVhbikge1xuICBjb25zdCBpZCA9IGludm9pY2UuaWQ7XG4gIGNvbnN0IGRvbWFpbiA9IGludm9pY2UuZG9tYWluLmVtYWlsRG9tYWluO1xuXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgaW52b2ljZV90b2tlbjogaW52b2ljZS5pbnZvaWNlVG9rZW5cbiAgfSkudG9TdHJpbmcoKTtcblxuICBjb25zdCBmZXRjaE9wdGlvbnM6IGFueSA9IHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIG1vZGU6ICdjb3JzJ1xuICB9O1xuICBjb25zdCB1cmkgPSByZWNlaXB0ID8gJy9nZW5lcmF0ZS9yZWNlaXB0L3BkZi8nIDogJy9nZW5lcmF0ZS9wZGYvJztcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYCR7dXJsQXBpfWludm9pY2VzLyR7aWR9JHt1cml9PyR7cXVlcnlTdHJpbmd9YCxcbiAgICAgIGZldGNoT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciBmZXRjaGluZyBQREYuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHIgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgY29uc3QgcGRmID0gYXdhaXQgdXJsVG9GaWxlUGRmKFxuICAgICAgYGRhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwke3IucGRmfWAsXG4gICAgICBgJHtkb21haW59LWludm9pY2UtJHtpZH0ucGRmYFxuICAgICk7XG5cbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHBkZik7XG4gICAgY29uc3QgZG9jID0gKGRvY3VtZW50IGFzIGFueSk7XG4gICAgY29uc3QgYW5jaG9yID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhbmNob3IuaHJlZiA9IHVybDtcbiAgICBhbmNob3IuZG93bmxvYWQgPSBwZGYubmFtZTtcblxuICAgIC8vIEFwcGVuZCB0byB0aGUgRE9NXG4gICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoYW5jaG9yKTtcblxuICAgIC8vIFRyaWdnZXIgYGNsaWNrYCBldmVudFxuICAgIGFuY2hvci5jbGljaygpO1xuXG4gICAgLy8gUmVtb3ZlIGVsZW1lbnQgZnJvbSBET01cbiAgICBkb2MuYm9keS5yZW1vdmVDaGlsZChhbmNob3IpO1xuXG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICB0aHJvdyBlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFB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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import pngProductNotFound from '../assets/product-not-found.png';
|
|
2
|
+
export function productFeatureImageUrl(product) {
|
|
3
|
+
var featureImage = product.featureImage;
|
|
4
|
+
return featureImage && featureImage.viewUrl ? featureImage.viewUrl : pngProductNotFound.src;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwbmdQcm9kdWN0Tm90Rm91bmQiLCJwcm9kdWN0RmVhdHVyZUltYWdlVXJsIiwicHJvZHVjdCIsImZlYXR1cmVJbWFnZSIsInZpZXdVcmwiLCJzcmMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3Byb2R1Y3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBuZ1Byb2R1Y3ROb3RGb3VuZCBmcm9tICcuLi9hc3NldHMvcHJvZHVjdC1ub3QtZm91bmQucG5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb2R1Y3RGZWF0dXJlSW1hZ2VVcmwocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHsgZmVhdHVyZUltYWdlIH0gPSBwcm9kdWN0O1xuICByZXR1cm4gZmVhdHVyZUltYWdlICYmIGZlYXR1cmVJbWFnZSEudmlld1VybCA/XG4gICAgZmVhdHVyZUltYWdlIS52aWV3VXJsIDogcG5nUHJvZHVjdE5vdEZvdW5kLnNyYztcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0Esa0JBQWtCLE1BQU0saUNBQWlDO0FBRWhFLE9BQU8sU0FBU0Msc0JBQXNCQSxDQUFDQyxPQUFZLEVBQUU7RUFDbkQsSUFBUUMsWUFBWSxHQUFLRCxPQUFPLENBQXhCQyxZQUFZO0VBQ3BCLE9BQU9BLFlBQVksSUFBSUEsWUFBWSxDQUFFQyxPQUFPLEdBQzFDRCxZQUFZLENBQUVDLE9BQU8sR0FBR0osa0JBQWtCLENBQUNLLEdBQUc7QUFDbEQifQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
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; }
|
|
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
|
+
import { Merchi } from '../MerchiSDK/merchi';
|
|
6
|
+
import { encodeMerchiApiData } from './helpers';
|
|
7
|
+
var merchi = new Merchi();
|
|
8
|
+
export function makeUser(userJson, makeDirty) {
|
|
9
|
+
var user = new merchi.User();
|
|
10
|
+
return user.fromJson(userJson, {
|
|
11
|
+
makeDirty: makeDirty
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export function primaryEmail(user) {
|
|
15
|
+
var _user$emailAddresses = user.emailAddresses,
|
|
16
|
+
emailAddresses = _user$emailAddresses === void 0 ? [] : _user$emailAddresses;
|
|
17
|
+
return emailAddresses[0] ? emailAddresses[0].emailAddress : '';
|
|
18
|
+
}
|
|
19
|
+
export function primaryPhone(user) {
|
|
20
|
+
var _user$phoneNumbers = user.phoneNumbers,
|
|
21
|
+
phoneNumbers = _user$phoneNumbers === void 0 ? [] : _user$phoneNumbers;
|
|
22
|
+
return phoneNumbers[0] ? phoneNumbers[0].internationalFormatNumber : '';
|
|
23
|
+
}
|
|
24
|
+
export function tryReturningCustomerEmail(_x, _x2) {
|
|
25
|
+
return _tryReturningCustomerEmail.apply(this, arguments);
|
|
26
|
+
}
|
|
27
|
+
function _tryReturningCustomerEmail() {
|
|
28
|
+
_tryReturningCustomerEmail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(urlApi, emailAddress) {
|
|
29
|
+
var queryString, fetchOptions;
|
|
30
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
31
|
+
while (1) switch (_context.prev = _context.next) {
|
|
32
|
+
case 0:
|
|
33
|
+
queryString = new URLSearchParams({
|
|
34
|
+
email_address: emailAddress
|
|
35
|
+
}).toString();
|
|
36
|
+
fetchOptions = {
|
|
37
|
+
method: 'POST'
|
|
38
|
+
};
|
|
39
|
+
_context.next = 4;
|
|
40
|
+
return fetch("".concat(urlApi, "user-check-email/?").concat(queryString), fetchOptions);
|
|
41
|
+
case 4:
|
|
42
|
+
return _context.abrupt("return", _context.sent);
|
|
43
|
+
case 5:
|
|
44
|
+
case "end":
|
|
45
|
+
return _context.stop();
|
|
46
|
+
}
|
|
47
|
+
}, _callee);
|
|
48
|
+
}));
|
|
49
|
+
return _tryReturningCustomerEmail.apply(this, arguments);
|
|
50
|
+
}
|
|
51
|
+
export function createNewCustomer(_x3, _x4) {
|
|
52
|
+
return _createNewCustomer.apply(this, arguments);
|
|
53
|
+
}
|
|
54
|
+
function _createNewCustomer() {
|
|
55
|
+
_createNewCustomer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(urlApi, customerJson) {
|
|
56
|
+
var formData, fetchOptions;
|
|
57
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
58
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
59
|
+
case 0:
|
|
60
|
+
formData = encodeMerchiApiData(customerJson);
|
|
61
|
+
fetchOptions = {
|
|
62
|
+
method: 'POST',
|
|
63
|
+
body: formData
|
|
64
|
+
};
|
|
65
|
+
_context2.next = 4;
|
|
66
|
+
return fetch("".concat(urlApi, "public_user_create/"), fetchOptions);
|
|
67
|
+
case 4:
|
|
68
|
+
return _context2.abrupt("return", _context2.sent);
|
|
69
|
+
case 5:
|
|
70
|
+
case "end":
|
|
71
|
+
return _context2.stop();
|
|
72
|
+
}
|
|
73
|
+
}, _callee2);
|
|
74
|
+
}));
|
|
75
|
+
return _createNewCustomer.apply(this, arguments);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIk1lcmNoaSIsImVuY29kZU1lcmNoaUFwaURhdGEiLCJtZXJjaGkiLCJtYWtlVXNlciIsInVzZXJKc29uIiwibWFrZURpcnR5IiwidXNlciIsIlVzZXIiLCJmcm9tSnNvbiIsInByaW1hcnlFbWFpbCIsIl91c2VyJGVtYWlsQWRkcmVzc2VzIiwiZW1haWxBZGRyZXNzZXMiLCJlbWFpbEFkZHJlc3MiLCJwcmltYXJ5UGhvbmUiLCJfdXNlciRwaG9uZU51bWJlcnMiLCJwaG9uZU51bWJlcnMiLCJpbnRlcm5hdGlvbmFsRm9ybWF0TnVtYmVyIiwidHJ5UmV0dXJuaW5nQ3VzdG9tZXJFbWFpbCIsIl94IiwiX3gyIiwiX3RyeVJldHVybmluZ0N1c3RvbWVyRW1haWwiLCJfY2FsbGVlIiwidXJsQXBpIiwicXVlcnlTdHJpbmciLCJmZXRjaE9wdGlvbnMiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiVVJMU2VhcmNoUGFyYW1zIiwiZW1haWxfYWRkcmVzcyIsInRvU3RyaW5nIiwiZmV0Y2giLCJjb25jYXQiLCJjcmVhdGVOZXdDdXN0b21lciIsIl94MyIsIl94NCIsIl9jcmVhdGVOZXdDdXN0b21lciIsIl9jYWxsZWUyIiwiY3VzdG9tZXJKc29uIiwiZm9ybURhdGEiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy91c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lcmNoaSB9IGZyb20gJy4uL01lcmNoaVNESy9tZXJjaGknO1xuaW1wb3J0IHsgZW5jb2RlTWVyY2hpQXBpRGF0YSB9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IG1lcmNoaSA9IG5ldyBNZXJjaGkoKVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVVzZXIodXNlckpzb246IGFueSwgbWFrZURpcnR5PzogYm9vbGVhbikge1xuICBjb25zdCB1c2VyID0gbmV3IG1lcmNoaS5Vc2VyKCk7XG4gIHJldHVybiB1c2VyLmZyb21Kc29uKHVzZXJKc29uLCB7IG1ha2VEaXJ0eSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1hcnlFbWFpbCh1c2VyOiBhbnkpIHtcbiAgY29uc3QgeyBlbWFpbEFkZHJlc3NlcyA9IFtdIH0gPSB1c2VyO1xuICByZXR1cm4gZW1haWxBZGRyZXNzZXNbMF0gPyBlbWFpbEFkZHJlc3Nlc1swXS5lbWFpbEFkZHJlc3MgOiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW1hcnlQaG9uZSh1c2VyOiBhbnkpIHtcbiAgY29uc3QgeyBwaG9uZU51bWJlcnMgPSBbXSB9ID0gdXNlcjtcbiAgcmV0dXJuIHBob25lTnVtYmVyc1swXSA/IHBob25lTnVtYmVyc1swXS5pbnRlcm5hdGlvbmFsRm9ybWF0TnVtYmVyIDogJyc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cnlSZXR1cm5pbmdDdXN0b21lckVtYWlsKHVybEFwaTogc3RyaW5nLCBlbWFpbEFkZHJlc3M6IHN0cmluZykge1xuICBjb25zdCBxdWVyeVN0cmluZyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe2VtYWlsX2FkZHJlc3M6IGVtYWlsQWRkcmVzc30pLnRvU3RyaW5nKCk7XG4gIGNvbnN0IGZldGNoT3B0aW9uczogYW55ID0ge21ldGhvZDogJ1BPU1QnfTtcblxuICByZXR1cm4gYXdhaXQgZmV0Y2goXG4gICAgYCR7dXJsQXBpfXVzZXItY2hlY2stZW1haWwvPyR7cXVlcnlTdHJpbmd9YCxcbiAgICBmZXRjaE9wdGlvbnMsXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVOZXdDdXN0b21lcih1cmxBcGk6IHN0cmluZywgY3VzdG9tZXJKc29uOiBhbnkpIHtcbiAgY29uc3QgZm9ybURhdGEgPSBlbmNvZGVNZXJjaGlBcGlEYXRhKGN1c3RvbWVySnNvbik7XG4gIGNvbnN0IGZldGNoT3B0aW9uczogYW55ID0ge21ldGhvZDogJ1BPU1QnLCBib2R5OiBmb3JtRGF0YX1cbiAgcmV0dXJuIGF3YWl0IGZldGNoKFxuICAgIGAke3VybEFwaX1wdWJsaWNfdXNlcl9jcmVhdGUvYCxcbiAgICBmZXRjaE9wdGlvbnMsXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFTLEtBQUEsRUFBQVAsQ0FBQSxFQUFBaUIsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQXBCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBa0IsTUFBQSxtQkFBQWpCLENBQUEsSUFBQWlCLE1BQUEsWUFBQUEsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLGdCQUFBb0IsS0FBQXJCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsUUFBQUssQ0FBQSxHQUFBVixDQUFBLElBQUFBLENBQUEsQ0FBQUksU0FBQSxZQUFBbUIsU0FBQSxHQUFBdkIsQ0FBQSxHQUFBdUIsU0FBQSxFQUFBWCxDQUFBLEdBQUFULE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQWQsQ0FBQSxDQUFBTixTQUFBLEdBQUFVLENBQUEsT0FBQVcsT0FBQSxDQUFBcEIsQ0FBQSxnQkFBQUUsQ0FBQSxDQUFBSyxDQUFBLGVBQUFILEtBQUEsRUFBQWlCLGdCQUFBLENBQUF6QixDQUFBLEVBQUFDLENBQUEsRUFBQVksQ0FBQSxNQUFBRixDQUFBLGFBQUFlLFNBQUExQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxtQkFBQTBCLElBQUEsWUFBQUMsR0FBQSxFQUFBNUIsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBOUIsQ0FBQSxFQUFBRSxDQUFBLGNBQUFELENBQUEsYUFBQTJCLElBQUEsV0FBQUMsR0FBQSxFQUFBNUIsQ0FBQSxRQUFBRCxDQUFBLENBQUFzQixJQUFBLEdBQUFBLElBQUEsTUFBQVMsQ0FBQSxxQkFBQUMsQ0FBQSxxQkFBQUMsQ0FBQSxnQkFBQUMsQ0FBQSxnQkFBQUMsQ0FBQSxnQkFBQVosVUFBQSxjQUFBYSxrQkFBQSxjQUFBQywyQkFBQSxTQUFBQyxDQUFBLE9BQUFwQixNQUFBLENBQUFvQixDQUFBLEVBQUExQixDQUFBLHFDQUFBMkIsQ0FBQSxHQUFBcEMsTUFBQSxDQUFBcUMsY0FBQSxFQUFBQyxDQUFBLEdBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBQSxDQUFBLENBQUFHLE1BQUEsUUFBQUQsQ0FBQSxJQUFBQSxDQUFBLEtBQUF2QyxDQUFBLElBQUFHLENBQUEsQ0FBQXlCLElBQUEsQ0FBQVcsQ0FBQSxFQUFBN0IsQ0FBQSxNQUFBMEIsQ0FBQSxHQUFBRyxDQUFBLE9BQUFFLENBQUEsR0FBQU4sMEJBQUEsQ0FBQWpDLFNBQUEsR0FBQW1CLFNBQUEsQ0FBQW5CLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBYyxDQUFBLFlBQUFNLHNCQUFBM0MsQ0FBQSxnQ0FBQTRDLE9BQUEsV0FBQTdDLENBQUEsSUFBQWtCLE1BQUEsQ0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxZQUFBQyxDQUFBLGdCQUFBNkMsT0FBQSxDQUFBOUMsQ0FBQSxFQUFBQyxDQUFBLHNCQUFBOEMsY0FBQTlDLENBQUEsRUFBQUQsQ0FBQSxhQUFBZ0QsT0FBQTlDLENBQUEsRUFBQUssQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxHQUFBYSxRQUFBLENBQUExQixDQUFBLENBQUFDLENBQUEsR0FBQUQsQ0FBQSxFQUFBTSxDQUFBLG1CQUFBTyxDQUFBLENBQUFjLElBQUEsUUFBQVosQ0FBQSxHQUFBRixDQUFBLENBQUFlLEdBQUEsRUFBQUUsQ0FBQSxHQUFBZixDQUFBLENBQUFQLEtBQUEsU0FBQXNCLENBQUEsZ0JBQUFrQixPQUFBLENBQUFsQixDQUFBLEtBQUExQixDQUFBLENBQUF5QixJQUFBLENBQUFDLENBQUEsZUFBQS9CLENBQUEsQ0FBQWtELE9BQUEsQ0FBQW5CLENBQUEsQ0FBQW9CLE9BQUEsRUFBQUMsSUFBQSxXQUFBbkQsQ0FBQSxJQUFBK0MsTUFBQSxTQUFBL0MsQ0FBQSxFQUFBUyxDQUFBLEVBQUFFLENBQUEsZ0JBQUFYLENBQUEsSUFBQStDLE1BQUEsVUFBQS9DLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLFFBQUFaLENBQUEsQ0FBQWtELE9BQUEsQ0FBQW5CLENBQUEsRUFBQXFCLElBQUEsV0FBQW5ELENBQUEsSUFBQWUsQ0FBQSxDQUFBUCxLQUFBLEdBQUFSLENBQUEsRUFBQVMsQ0FBQSxDQUFBTSxDQUFBLGdCQUFBZixDQUFBLFdBQUErQyxNQUFBLFVBQUEvQyxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLENBQUFFLENBQUEsQ0FBQWUsR0FBQSxTQUFBM0IsQ0FBQSxFQUFBSyxDQUFBLG9CQUFBRSxLQUFBLFdBQUFBLE1BQUFSLENBQUEsRUFBQUksQ0FBQSxhQUFBZ0QsMkJBQUEsZUFBQXJELENBQUEsV0FBQUEsQ0FBQSxFQUFBRSxDQUFBLElBQUE4QyxNQUFBLENBQUEvQyxDQUFBLEVBQUFJLENBQUEsRUFBQUwsQ0FBQSxFQUFBRSxDQUFBLGdCQUFBQSxDQUFBLEdBQUFBLENBQUEsR0FBQUEsQ0FBQSxDQUFBa0QsSUFBQSxDQUFBQywwQkFBQSxFQUFBQSwwQkFBQSxJQUFBQSwwQkFBQSxxQkFBQTNCLGlCQUFBMUIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsUUFBQUUsQ0FBQSxHQUFBd0IsQ0FBQSxtQkFBQXJCLENBQUEsRUFBQUUsQ0FBQSxRQUFBTCxDQUFBLEtBQUEwQixDQUFBLFlBQUFxQixLQUFBLHNDQUFBL0MsQ0FBQSxLQUFBMkIsQ0FBQSxvQkFBQXhCLENBQUEsUUFBQUUsQ0FBQSxXQUFBSCxLQUFBLEVBQUFSLENBQUEsRUFBQXNELElBQUEsZUFBQWxELENBQUEsQ0FBQW1ELE1BQUEsR0FBQTlDLENBQUEsRUFBQUwsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBakIsQ0FBQSxVQUFBRSxDQUFBLEdBQUFULENBQUEsQ0FBQW9ELFFBQUEsTUFBQTNDLENBQUEsUUFBQUUsQ0FBQSxHQUFBMEMsbUJBQUEsQ0FBQTVDLENBQUEsRUFBQVQsQ0FBQSxPQUFBVyxDQUFBLFFBQUFBLENBQUEsS0FBQW1CLENBQUEsbUJBQUFuQixDQUFBLHFCQUFBWCxDQUFBLENBQUFtRCxNQUFBLEVBQUFuRCxDQUFBLENBQUFzRCxJQUFBLEdBQUF0RCxDQUFBLENBQUF1RCxLQUFBLEdBQUF2RCxDQUFBLENBQUF3QixHQUFBLHNCQUFBeEIsQ0FBQSxDQUFBbUQsTUFBQSxRQUFBakQsQ0FBQSxLQUFBd0IsQ0FBQSxRQUFBeEIsQ0FBQSxHQUFBMkIsQ0FBQSxFQUFBN0IsQ0FBQSxDQUFBd0IsR0FBQSxFQUFBeEIsQ0FBQSxDQUFBd0QsaUJBQUEsQ0FBQXhELENBQUEsQ0FBQXdCLEdBQUEsdUJBQUF4QixDQUFBLENBQUFtRCxNQUFBLElBQUFuRCxDQUFBLENBQUF5RCxNQUFBLFdBQUF6RCxDQUFBLENBQUF3QixHQUFBLEdBQUF0QixDQUFBLEdBQUEwQixDQUFBLE1BQUFLLENBQUEsR0FBQVgsUUFBQSxDQUFBM0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsb0JBQUFpQyxDQUFBLENBQUFWLElBQUEsUUFBQXJCLENBQUEsR0FBQUYsQ0FBQSxDQUFBa0QsSUFBQSxHQUFBckIsQ0FBQSxHQUFBRixDQUFBLEVBQUFNLENBQUEsQ0FBQVQsR0FBQSxLQUFBTSxDQUFBLHFCQUFBMUIsS0FBQSxFQUFBNkIsQ0FBQSxDQUFBVCxHQUFBLEVBQUEwQixJQUFBLEVBQUFsRCxDQUFBLENBQUFrRCxJQUFBLGtCQUFBakIsQ0FBQSxDQUFBVixJQUFBLEtBQUFyQixDQUFBLEdBQUEyQixDQUFBLEVBQUE3QixDQUFBLENBQUFtRCxNQUFBLFlBQUFuRCxDQUFBLENBQUF3QixHQUFBLEdBQUFTLENBQUEsQ0FBQVQsR0FBQSxtQkFBQTZCLG9CQUFBMUQsQ0FBQSxFQUFBRSxDQUFBLFFBQUFHLENBQUEsR0FBQUgsQ0FBQSxDQUFBc0QsTUFBQSxFQUFBakQsQ0FBQSxHQUFBUCxDQUFBLENBQUFhLFFBQUEsQ0FBQVIsQ0FBQSxPQUFBRSxDQUFBLEtBQUFOLENBQUEsU0FBQUMsQ0FBQSxDQUFBdUQsUUFBQSxxQkFBQXBELENBQUEsSUFBQUwsQ0FBQSxDQUFBYSxRQUFBLGVBQUFYLENBQUEsQ0FBQXNELE1BQUEsYUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsRUFBQXlELG1CQUFBLENBQUExRCxDQUFBLEVBQUFFLENBQUEsZUFBQUEsQ0FBQSxDQUFBc0QsTUFBQSxrQkFBQW5ELENBQUEsS0FBQUgsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxPQUFBa0MsU0FBQSx1Q0FBQTFELENBQUEsaUJBQUE4QixDQUFBLE1BQUF6QixDQUFBLEdBQUFpQixRQUFBLENBQUFwQixDQUFBLEVBQUFQLENBQUEsQ0FBQWEsUUFBQSxFQUFBWCxDQUFBLENBQUEyQixHQUFBLG1CQUFBbkIsQ0FBQSxDQUFBa0IsSUFBQSxTQUFBMUIsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBbkIsQ0FBQSxDQUFBbUIsR0FBQSxFQUFBM0IsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxNQUFBdkIsQ0FBQSxHQUFBRixDQUFBLENBQUFtQixHQUFBLFNBQUFqQixDQUFBLEdBQUFBLENBQUEsQ0FBQTJDLElBQUEsSUFBQXJELENBQUEsQ0FBQUYsQ0FBQSxDQUFBZ0UsVUFBQSxJQUFBcEQsQ0FBQSxDQUFBSCxLQUFBLEVBQUFQLENBQUEsQ0FBQStELElBQUEsR0FBQWpFLENBQUEsQ0FBQWtFLE9BQUEsZUFBQWhFLENBQUEsQ0FBQXNELE1BQUEsS0FBQXRELENBQUEsQ0FBQXNELE1BQUEsV0FBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsR0FBQUMsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxJQUFBdkIsQ0FBQSxJQUFBVixDQUFBLENBQUFzRCxNQUFBLFlBQUF0RCxDQUFBLENBQUEyQixHQUFBLE9BQUFrQyxTQUFBLHNDQUFBN0QsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxjQUFBZ0MsYUFBQWxFLENBQUEsUUFBQUQsQ0FBQSxLQUFBb0UsTUFBQSxFQUFBbkUsQ0FBQSxZQUFBQSxDQUFBLEtBQUFELENBQUEsQ0FBQXFFLFFBQUEsR0FBQXBFLENBQUEsV0FBQUEsQ0FBQSxLQUFBRCxDQUFBLENBQUFzRSxVQUFBLEdBQUFyRSxDQUFBLEtBQUFELENBQUEsQ0FBQXVFLFFBQUEsR0FBQXRFLENBQUEsV0FBQXVFLFVBQUEsQ0FBQUMsSUFBQSxDQUFBekUsQ0FBQSxjQUFBMEUsY0FBQXpFLENBQUEsUUFBQUQsQ0FBQSxHQUFBQyxDQUFBLENBQUEwRSxVQUFBLFFBQUEzRSxDQUFBLENBQUE0QixJQUFBLG9CQUFBNUIsQ0FBQSxDQUFBNkIsR0FBQSxFQUFBNUIsQ0FBQSxDQUFBMEUsVUFBQSxHQUFBM0UsQ0FBQSxhQUFBeUIsUUFBQXhCLENBQUEsU0FBQXVFLFVBQUEsTUFBQUosTUFBQSxhQUFBbkUsQ0FBQSxDQUFBNEMsT0FBQSxDQUFBc0IsWUFBQSxjQUFBUyxLQUFBLGlCQUFBbEMsT0FBQTFDLENBQUEsUUFBQUEsQ0FBQSxXQUFBQSxDQUFBLFFBQUFFLENBQUEsR0FBQUYsQ0FBQSxDQUFBWSxDQUFBLE9BQUFWLENBQUEsU0FBQUEsQ0FBQSxDQUFBNEIsSUFBQSxDQUFBOUIsQ0FBQSw0QkFBQUEsQ0FBQSxDQUFBaUUsSUFBQSxTQUFBakUsQ0FBQSxPQUFBNkUsS0FBQSxDQUFBN0UsQ0FBQSxDQUFBOEUsTUFBQSxTQUFBdkUsQ0FBQSxPQUFBRyxDQUFBLFlBQUF1RCxLQUFBLGFBQUExRCxDQUFBLEdBQUFQLENBQUEsQ0FBQThFLE1BQUEsT0FBQXpFLENBQUEsQ0FBQXlCLElBQUEsQ0FBQTlCLENBQUEsRUFBQU8sQ0FBQSxVQUFBMEQsSUFBQSxDQUFBeEQsS0FBQSxHQUFBVCxDQUFBLENBQUFPLENBQUEsR0FBQTBELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFNBQUFBLElBQUEsQ0FBQXhELEtBQUEsR0FBQVIsQ0FBQSxFQUFBZ0UsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsWUFBQXZELENBQUEsQ0FBQXVELElBQUEsR0FBQXZELENBQUEsZ0JBQUFxRCxTQUFBLENBQUFkLE9BQUEsQ0FBQWpELENBQUEsa0NBQUFvQyxpQkFBQSxDQUFBaEMsU0FBQSxHQUFBaUMsMEJBQUEsRUFBQTlCLENBQUEsQ0FBQW9DLENBQUEsbUJBQUFsQyxLQUFBLEVBQUE0QiwwQkFBQSxFQUFBakIsWUFBQSxTQUFBYixDQUFBLENBQUE4QiwwQkFBQSxtQkFBQTVCLEtBQUEsRUFBQTJCLGlCQUFBLEVBQUFoQixZQUFBLFNBQUFnQixpQkFBQSxDQUFBMkMsV0FBQSxHQUFBN0QsTUFBQSxDQUFBbUIsMEJBQUEsRUFBQXJCLENBQUEsd0JBQUFoQixDQUFBLENBQUFnRixtQkFBQSxhQUFBL0UsQ0FBQSxRQUFBRCxDQUFBLHdCQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQWdGLFdBQUEsV0FBQWpGLENBQUEsS0FBQUEsQ0FBQSxLQUFBb0MsaUJBQUEsNkJBQUFwQyxDQUFBLENBQUErRSxXQUFBLElBQUEvRSxDQUFBLENBQUFrRixJQUFBLE9BQUFsRixDQUFBLENBQUFtRixJQUFBLGFBQUFsRixDQUFBLFdBQUFFLE1BQUEsQ0FBQWlGLGNBQUEsR0FBQWpGLE1BQUEsQ0FBQWlGLGNBQUEsQ0FBQW5GLENBQUEsRUFBQW9DLDBCQUFBLEtBQUFwQyxDQUFBLENBQUFvRixTQUFBLEdBQUFoRCwwQkFBQSxFQUFBbkIsTUFBQSxDQUFBakIsQ0FBQSxFQUFBZSxDQUFBLHlCQUFBZixDQUFBLENBQUFHLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBbUIsQ0FBQSxHQUFBMUMsQ0FBQSxLQUFBRCxDQUFBLENBQUFzRixLQUFBLGFBQUFyRixDQUFBLGFBQUFrRCxPQUFBLEVBQUFsRCxDQUFBLE9BQUEyQyxxQkFBQSxDQUFBRyxhQUFBLENBQUEzQyxTQUFBLEdBQUFjLE1BQUEsQ0FBQTZCLGFBQUEsQ0FBQTNDLFNBQUEsRUFBQVUsQ0FBQSxpQ0FBQWQsQ0FBQSxDQUFBK0MsYUFBQSxHQUFBQSxhQUFBLEVBQUEvQyxDQUFBLENBQUF1RixLQUFBLGFBQUF0RixDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsZUFBQUEsQ0FBQSxLQUFBQSxDQUFBLEdBQUE4RSxPQUFBLE9BQUE1RSxDQUFBLE9BQUFtQyxhQUFBLENBQUF6QixJQUFBLENBQUFyQixDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLEdBQUFHLENBQUEsVUFBQVYsQ0FBQSxDQUFBZ0YsbUJBQUEsQ0FBQTlFLENBQUEsSUFBQVUsQ0FBQSxHQUFBQSxDQUFBLENBQUFxRCxJQUFBLEdBQUFiLElBQUEsV0FBQW5ELENBQUEsV0FBQUEsQ0FBQSxDQUFBc0QsSUFBQSxHQUFBdEQsQ0FBQSxDQUFBUSxLQUFBLEdBQUFHLENBQUEsQ0FBQXFELElBQUEsV0FBQXJCLHFCQUFBLENBQUFELENBQUEsR0FBQXpCLE1BQUEsQ0FBQXlCLENBQUEsRUFBQTNCLENBQUEsZ0JBQUFFLE1BQUEsQ0FBQXlCLENBQUEsRUFBQS9CLENBQUEsaUNBQUFNLE1BQUEsQ0FBQXlCLENBQUEsNkRBQUEzQyxDQUFBLENBQUF5RixJQUFBLGFBQUF4RixDQUFBLFFBQUFELENBQUEsR0FBQUcsTUFBQSxDQUFBRixDQUFBLEdBQUFDLENBQUEsZ0JBQUFHLENBQUEsSUFBQUwsQ0FBQSxFQUFBRSxDQUFBLENBQUF1RSxJQUFBLENBQUFwRSxDQUFBLFVBQUFILENBQUEsQ0FBQXdGLE9BQUEsYUFBQXpCLEtBQUEsV0FBQS9ELENBQUEsQ0FBQTRFLE1BQUEsU0FBQTdFLENBQUEsR0FBQUMsQ0FBQSxDQUFBeUYsR0FBQSxRQUFBMUYsQ0FBQSxJQUFBRCxDQUFBLFNBQUFpRSxJQUFBLENBQUF4RCxLQUFBLEdBQUFSLENBQUEsRUFBQWdFLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFdBQUFBLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFFBQUFqRSxDQUFBLENBQUEwQyxNQUFBLEdBQUFBLE1BQUEsRUFBQWpCLE9BQUEsQ0FBQXJCLFNBQUEsS0FBQTZFLFdBQUEsRUFBQXhELE9BQUEsRUFBQW1ELEtBQUEsV0FBQUEsTUFBQTVFLENBQUEsYUFBQTRGLElBQUEsV0FBQTNCLElBQUEsV0FBQU4sSUFBQSxRQUFBQyxLQUFBLEdBQUEzRCxDQUFBLE9BQUFzRCxJQUFBLFlBQUFFLFFBQUEsY0FBQUQsTUFBQSxnQkFBQTNCLEdBQUEsR0FBQTVCLENBQUEsT0FBQXVFLFVBQUEsQ0FBQTNCLE9BQUEsQ0FBQTZCLGFBQUEsSUFBQTFFLENBQUEsV0FBQUUsQ0FBQSxrQkFBQUEsQ0FBQSxDQUFBMkYsTUFBQSxPQUFBeEYsQ0FBQSxDQUFBeUIsSUFBQSxPQUFBNUIsQ0FBQSxNQUFBMkUsS0FBQSxFQUFBM0UsQ0FBQSxDQUFBNEYsS0FBQSxjQUFBNUYsQ0FBQSxJQUFBRCxDQUFBLE1BQUE4RixJQUFBLFdBQUFBLEtBQUEsU0FBQXhDLElBQUEsV0FBQXRELENBQUEsUUFBQXVFLFVBQUEsSUFBQUcsVUFBQSxrQkFBQTFFLENBQUEsQ0FBQTJCLElBQUEsUUFBQTNCLENBQUEsQ0FBQTRCLEdBQUEsY0FBQW1FLElBQUEsS0FBQW5DLGlCQUFBLFdBQUFBLGtCQUFBN0QsQ0FBQSxhQUFBdUQsSUFBQSxRQUFBdkQsQ0FBQSxNQUFBRSxDQUFBLGtCQUFBK0YsT0FBQTVGLENBQUEsRUFBQUUsQ0FBQSxXQUFBSyxDQUFBLENBQUFnQixJQUFBLFlBQUFoQixDQUFBLENBQUFpQixHQUFBLEdBQUE3QixDQUFBLEVBQUFFLENBQUEsQ0FBQStELElBQUEsR0FBQTVELENBQUEsRUFBQUUsQ0FBQSxLQUFBTCxDQUFBLENBQUFzRCxNQUFBLFdBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEtBQUFNLENBQUEsYUFBQUEsQ0FBQSxRQUFBaUUsVUFBQSxDQUFBTSxNQUFBLE1BQUF2RSxDQUFBLFNBQUFBLENBQUEsUUFBQUcsQ0FBQSxRQUFBOEQsVUFBQSxDQUFBakUsQ0FBQSxHQUFBSyxDQUFBLEdBQUFGLENBQUEsQ0FBQWlFLFVBQUEsaUJBQUFqRSxDQUFBLENBQUEwRCxNQUFBLFNBQUE2QixNQUFBLGFBQUF2RixDQUFBLENBQUEwRCxNQUFBLFNBQUF3QixJQUFBLFFBQUE5RSxDQUFBLEdBQUFULENBQUEsQ0FBQXlCLElBQUEsQ0FBQXBCLENBQUEsZUFBQU0sQ0FBQSxHQUFBWCxDQUFBLENBQUF5QixJQUFBLENBQUFwQixDQUFBLHFCQUFBSSxDQUFBLElBQUFFLENBQUEsYUFBQTRFLElBQUEsR0FBQWxGLENBQUEsQ0FBQTJELFFBQUEsU0FBQTRCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTJELFFBQUEsZ0JBQUF1QixJQUFBLEdBQUFsRixDQUFBLENBQUE0RCxVQUFBLFNBQUEyQixNQUFBLENBQUF2RixDQUFBLENBQUE0RCxVQUFBLGNBQUF4RCxDQUFBLGFBQUE4RSxJQUFBLEdBQUFsRixDQUFBLENBQUEyRCxRQUFBLFNBQUE0QixNQUFBLENBQUF2RixDQUFBLENBQUEyRCxRQUFBLHFCQUFBckQsQ0FBQSxZQUFBc0MsS0FBQSxxREFBQXNDLElBQUEsR0FBQWxGLENBQUEsQ0FBQTRELFVBQUEsU0FBQTJCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTRELFVBQUEsWUFBQVIsTUFBQSxXQUFBQSxPQUFBN0QsQ0FBQSxFQUFBRCxDQUFBLGFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBNUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFLLENBQUEsUUFBQWlFLFVBQUEsQ0FBQXRFLENBQUEsT0FBQUssQ0FBQSxDQUFBNkQsTUFBQSxTQUFBd0IsSUFBQSxJQUFBdkYsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBdkIsQ0FBQSx3QkFBQXFGLElBQUEsR0FBQXJGLENBQUEsQ0FBQStELFVBQUEsUUFBQTVELENBQUEsR0FBQUgsQ0FBQSxhQUFBRyxDQUFBLGlCQUFBVCxDQUFBLG1CQUFBQSxDQUFBLEtBQUFTLENBQUEsQ0FBQTBELE1BQUEsSUFBQXBFLENBQUEsSUFBQUEsQ0FBQSxJQUFBVSxDQUFBLENBQUE0RCxVQUFBLEtBQUE1RCxDQUFBLGNBQUFFLENBQUEsR0FBQUYsQ0FBQSxHQUFBQSxDQUFBLENBQUFpRSxVQUFBLGNBQUEvRCxDQUFBLENBQUFnQixJQUFBLEdBQUEzQixDQUFBLEVBQUFXLENBQUEsQ0FBQWlCLEdBQUEsR0FBQTdCLENBQUEsRUFBQVUsQ0FBQSxTQUFBOEMsTUFBQSxnQkFBQVMsSUFBQSxHQUFBdkQsQ0FBQSxDQUFBNEQsVUFBQSxFQUFBbkMsQ0FBQSxTQUFBK0QsUUFBQSxDQUFBdEYsQ0FBQSxNQUFBc0YsUUFBQSxXQUFBQSxTQUFBakcsQ0FBQSxFQUFBRCxDQUFBLG9CQUFBQyxDQUFBLENBQUEyQixJQUFBLFFBQUEzQixDQUFBLENBQUE0QixHQUFBLHFCQUFBNUIsQ0FBQSxDQUFBMkIsSUFBQSxtQkFBQTNCLENBQUEsQ0FBQTJCLElBQUEsUUFBQXFDLElBQUEsR0FBQWhFLENBQUEsQ0FBQTRCLEdBQUEsZ0JBQUE1QixDQUFBLENBQUEyQixJQUFBLFNBQUFvRSxJQUFBLFFBQUFuRSxHQUFBLEdBQUE1QixDQUFBLENBQUE0QixHQUFBLE9BQUEyQixNQUFBLGtCQUFBUyxJQUFBLHlCQUFBaEUsQ0FBQSxDQUFBMkIsSUFBQSxJQUFBNUIsQ0FBQSxVQUFBaUUsSUFBQSxHQUFBakUsQ0FBQSxHQUFBbUMsQ0FBQSxLQUFBZ0UsTUFBQSxXQUFBQSxPQUFBbEcsQ0FBQSxhQUFBRCxDQUFBLFFBQUF3RSxVQUFBLENBQUFNLE1BQUEsTUFBQTlFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUF4RSxDQUFBLE9BQUFFLENBQUEsQ0FBQW9FLFVBQUEsS0FBQXJFLENBQUEsY0FBQWlHLFFBQUEsQ0FBQWhHLENBQUEsQ0FBQXlFLFVBQUEsRUFBQXpFLENBQUEsQ0FBQXFFLFFBQUEsR0FBQUcsYUFBQSxDQUFBeEUsQ0FBQSxHQUFBaUMsQ0FBQSx5QkFBQWlFLE9BQUFuRyxDQUFBLGFBQUFELENBQUEsUUFBQXdFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBOUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQXhFLENBQUEsT0FBQUUsQ0FBQSxDQUFBa0UsTUFBQSxLQUFBbkUsQ0FBQSxRQUFBSSxDQUFBLEdBQUFILENBQUEsQ0FBQXlFLFVBQUEsa0JBQUF0RSxDQUFBLENBQUF1QixJQUFBLFFBQUFyQixDQUFBLEdBQUFGLENBQUEsQ0FBQXdCLEdBQUEsRUFBQTZDLGFBQUEsQ0FBQXhFLENBQUEsWUFBQUssQ0FBQSxnQkFBQStDLEtBQUEsOEJBQUErQyxhQUFBLFdBQUFBLGNBQUFyRyxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxnQkFBQW9ELFFBQUEsS0FBQTVDLFFBQUEsRUFBQTZCLE1BQUEsQ0FBQTFDLENBQUEsR0FBQWdFLFVBQUEsRUFBQTlELENBQUEsRUFBQWdFLE9BQUEsRUFBQTdELENBQUEsb0JBQUFtRCxNQUFBLFVBQUEzQixHQUFBLEdBQUE1QixDQUFBLEdBQUFrQyxDQUFBLE9BQUFuQyxDQUFBO0FBQUEsU0FBQXNHLG1CQUFBQyxHQUFBLEVBQUFyRCxPQUFBLEVBQUFzRCxNQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxFQUFBQyxHQUFBLEVBQUE5RSxHQUFBLGNBQUErRSxJQUFBLEdBQUFMLEdBQUEsQ0FBQUksR0FBQSxFQUFBOUUsR0FBQSxPQUFBcEIsS0FBQSxHQUFBbUcsSUFBQSxDQUFBbkcsS0FBQSxXQUFBb0csS0FBQSxJQUFBTCxNQUFBLENBQUFLLEtBQUEsaUJBQUFELElBQUEsQ0FBQXJELElBQUEsSUFBQUwsT0FBQSxDQUFBekMsS0FBQSxZQUFBK0UsT0FBQSxDQUFBdEMsT0FBQSxDQUFBekMsS0FBQSxFQUFBMkMsSUFBQSxDQUFBcUQsS0FBQSxFQUFBQyxNQUFBO0FBQUEsU0FBQUksa0JBQUFDLEVBQUEsNkJBQUFDLElBQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLGFBQUExQixPQUFBLFdBQUF0QyxPQUFBLEVBQUFzRCxNQUFBLFFBQUFELEdBQUEsR0FBQVEsRUFBQSxDQUFBSSxLQUFBLENBQUFILElBQUEsRUFBQUMsSUFBQSxZQUFBUixNQUFBaEcsS0FBQSxJQUFBNkYsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckQsT0FBQSxFQUFBc0QsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsVUFBQWpHLEtBQUEsY0FBQWlHLE9BQUFVLEdBQUEsSUFBQWQsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckQsT0FBQSxFQUFBc0QsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsV0FBQVUsR0FBQSxLQUFBWCxLQUFBLENBQUFZLFNBQUE7QUFEQSxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLG1CQUFtQixRQUFRLFdBQVc7QUFFL0MsSUFBTUMsTUFBTSxHQUFHLElBQUlGLE1BQU0sQ0FBQyxDQUFDO0FBRTNCLE9BQU8sU0FBU0csUUFBUUEsQ0FBQ0MsUUFBYSxFQUFFQyxTQUFtQixFQUFFO0VBQzNELElBQU1DLElBQUksR0FBRyxJQUFJSixNQUFNLENBQUNLLElBQUksQ0FBQyxDQUFDO0VBQzlCLE9BQU9ELElBQUksQ0FBQ0UsUUFBUSxDQUFDSixRQUFRLEVBQUU7SUFBRUMsU0FBUyxFQUFUQTtFQUFVLENBQUMsQ0FBQztBQUMvQztBQUVBLE9BQU8sU0FBU0ksWUFBWUEsQ0FBQ0gsSUFBUyxFQUFFO0VBQ3RDLElBQUFJLG9CQUFBLEdBQWdDSixJQUFJLENBQTVCSyxjQUFjO0lBQWRBLGNBQWMsR0FBQUQsb0JBQUEsY0FBRyxFQUFFLEdBQUFBLG9CQUFBO0VBQzNCLE9BQU9DLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBR0EsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxZQUFZLEdBQUcsRUFBRTtBQUNoRTtBQUVBLE9BQU8sU0FBU0MsWUFBWUEsQ0FBQ1AsSUFBUyxFQUFFO0VBQ3RDLElBQUFRLGtCQUFBLEdBQThCUixJQUFJLENBQTFCUyxZQUFZO0lBQVpBLFlBQVksR0FBQUQsa0JBQUEsY0FBRyxFQUFFLEdBQUFBLGtCQUFBO0VBQ3pCLE9BQU9DLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBR0EsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDQyx5QkFBeUIsR0FBRyxFQUFFO0FBQ3pFO0FBRUEsZ0JBQXNCQyx5QkFBeUJBLENBQUFDLEVBQUEsRUFBQUMsR0FBQTtFQUFBLE9BQUFDLDBCQUFBLENBQUF2QixLQUFBLE9BQUFELFNBQUE7QUFBQTtBQVE5QyxTQUFBd0IsMkJBQUE7RUFBQUEsMEJBQUEsR0FBQTVCLGlCQUFBLGVBQUEvRyxtQkFBQSxHQUFBb0YsSUFBQSxDQVJNLFNBQUF3RCxRQUF5Q0MsTUFBYyxFQUFFVixZQUFvQjtJQUFBLElBQUFXLFdBQUEsRUFBQUMsWUFBQTtJQUFBLE9BQUEvSSxtQkFBQSxHQUFBdUIsSUFBQSxVQUFBeUgsU0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFwRCxJQUFBLEdBQUFvRCxRQUFBLENBQUEvRSxJQUFBO1FBQUE7VUFDNUU0RSxXQUFXLEdBQUcsSUFBSUksZUFBZSxDQUFDO1lBQUNDLGFBQWEsRUFBRWhCO1VBQVksQ0FBQyxDQUFDLENBQUNpQixRQUFRLENBQUMsQ0FBQztVQUMzRUwsWUFBaUIsR0FBRztZQUFDdEYsTUFBTSxFQUFFO1VBQU0sQ0FBQztVQUFBd0YsUUFBQSxDQUFBL0UsSUFBQTtVQUFBLE9BRTdCbUYsS0FBSyxJQUFBQyxNQUFBLENBQ2JULE1BQU0sd0JBQUFTLE1BQUEsQ0FBcUJSLFdBQVcsR0FDekNDLFlBQ0YsQ0FBQztRQUFBO1VBQUEsT0FBQUUsUUFBQSxDQUFBbEYsTUFBQSxXQUFBa0YsUUFBQSxDQUFBckYsSUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBcUYsUUFBQSxDQUFBakQsSUFBQTtNQUFBO0lBQUEsR0FBQTRDLE9BQUE7RUFBQSxDQUNGO0VBQUEsT0FBQUQsMEJBQUEsQ0FBQXZCLEtBQUEsT0FBQUQsU0FBQTtBQUFBO0FBRUQsZ0JBQXNCb0MsaUJBQWlCQSxDQUFBQyxHQUFBLEVBQUFDLEdBQUE7RUFBQSxPQUFBQyxrQkFBQSxDQUFBdEMsS0FBQSxPQUFBRCxTQUFBO0FBQUE7QUFPdEMsU0FBQXVDLG1CQUFBO0VBQUFBLGtCQUFBLEdBQUEzQyxpQkFBQSxlQUFBL0csbUJBQUEsR0FBQW9GLElBQUEsQ0FQTSxTQUFBdUUsU0FBaUNkLE1BQWMsRUFBRWUsWUFBaUI7SUFBQSxJQUFBQyxRQUFBLEVBQUFkLFlBQUE7SUFBQSxPQUFBL0ksbUJBQUEsR0FBQXVCLElBQUEsVUFBQXVJLFVBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBbEUsSUFBQSxHQUFBa0UsU0FBQSxDQUFBN0YsSUFBQTtRQUFBO1VBQ2pFMkYsUUFBUSxHQUFHckMsbUJBQW1CLENBQUNvQyxZQUFZLENBQUM7VUFDNUNiLFlBQWlCLEdBQUc7WUFBQ3RGLE1BQU0sRUFBRSxNQUFNO1lBQUV1RyxJQUFJLEVBQUVIO1VBQVEsQ0FBQztVQUFBRSxTQUFBLENBQUE3RixJQUFBO1VBQUEsT0FDN0NtRixLQUFLLElBQUFDLE1BQUEsQ0FDYlQsTUFBTSwwQkFDVEUsWUFDRixDQUFDO1FBQUE7VUFBQSxPQUFBZ0IsU0FBQSxDQUFBaEcsTUFBQSxXQUFBZ0csU0FBQSxDQUFBbkcsSUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBbUcsU0FBQSxDQUFBL0QsSUFBQTtNQUFBO0lBQUEsR0FBQTJELFFBQUE7RUFBQSxDQUNGO0VBQUEsT0FBQUQsa0JBQUEsQ0FBQXRDLEtBQUEsT0FBQUQsU0FBQTtBQUFBIn0=
|