/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./modules/stripe-express/assets/src/js/api.js":
/*!*****************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/api.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DokanStripeExpressApi)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\n/**\n * Processes generic connections to the server and Stripe.\n */\nvar DokanStripeExpressApi = /*#__PURE__*/function () {\n  /**\n   * Prepares the API.\n   *\n   * @param {Object}   options Options for the initialization.\n   * @param {Function} request A function to use for AJAX requests.\n   */\n  function DokanStripeExpressApi(options, request) {\n    (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, DokanStripeExpressApi);\n\n    this.stripe = null;\n    this.options = options;\n    this.request = request;\n  }\n  /**\n   * Construct WC AJAX endpoint URL.\n   *\n   * @param {string} endpoint Request endpoint URL.\n   * @param {string} prefix Endpoint URI prefix (default: 'dokan_stripe_express_').\n   * @return {string} URL with interpolated endpoint.\n   */\n\n\n  (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(DokanStripeExpressApi, [{\n    key: \"ajaxEndpoint\",\n    value: function ajaxEndpoint(endpoint) {\n      var _this$options, _this$options$ajaxurl, _this$options$ajaxurl2;\n\n      var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'dokan_stripe_express_';\n      return (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$ajaxurl = _this$options.ajaxurl) === null || _this$options$ajaxurl === void 0 ? void 0 : (_this$options$ajaxurl2 = _this$options$ajaxurl.toString()) === null || _this$options$ajaxurl2 === void 0 ? void 0 : _this$options$ajaxurl2.replace('%%endpoint%%', prefix + endpoint);\n    }\n    /**\n     * Extract error message from object.\n     *\n     * @param {object} error\n     * @returns {string} Error message\n     */\n\n  }, {\n    key: \"getErrorMessage\",\n    value: function getErrorMessage(error) {\n      if (this.options.messages[error]) {\n        return this.options.messages[error];\n      }\n\n      return this.options.messages.default;\n    }\n    /**\n     * Generates a new instance of Stripe.\n     *\n     * @return {Object} The Stripe Object.\n     */\n\n  }, {\n    key: \"getStripe\",\n    value: function getStripe() {\n      var _this$options2 = this.options,\n          key = _this$options2.key,\n          locale = _this$options2.locale;\n\n      if (!this.stripe) {\n        this.stripe = new Stripe(key, {\n          locale: locale\n        });\n      }\n\n      return this.stripe;\n    }\n    /**\n     * Load Stripe for payment request button.\n     *\n     * @return {Promise} Promise with the Stripe object or an error.\n     */\n\n  }, {\n    key: \"loadStripe\",\n    value: function loadStripe() {\n      var _this = this;\n\n      return new Promise(function (resolve) {\n        try {\n          resolve(_this.getStripe());\n        } catch (error) {\n          // In order to avoid showing console error publicly to users,\n          // we resolve instead of rejecting when there is an error.\n          resolve({\n            error: error\n          });\n        }\n      });\n    }\n    /**\n     * Creates a setup intent without confirming it.\n     *\n     * @return {Promise} The final promise for the request to the server.\n     */\n\n  }, {\n    key: \"initSetupIntent\",\n    value: function initSetupIntent() {\n      var _this$options3,\n          _this2 = this;\n\n      return this.request(this.ajaxEndpoint('init_setup_intent'), {\n        _ajax_nonce: (_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.nonce\n      }).then(function (response) {\n        if (!response.success) {\n          throw response.data.error;\n        }\n\n        return response.data;\n      }).catch(function (error) {\n        if (error.message) {\n          throw error;\n        } else {\n          // Covers the case of error on the Ajax request.\n          throw new Error(_this2.getErrorMessage(error.statusText));\n        }\n      });\n    }\n    /**\n     * Creates an intent based on a payment method.\n     *\n     * @param {number} orderId The id of the order if creating the intent on Order Pay page.\n     *\n     * @return {Promise} The final promise for the request to the server.\n     */\n\n  }, {\n    key: \"createIntent\",\n    value: function createIntent(orderId) {\n      var _this$options4,\n          _this3 = this;\n\n      return this.request(this.ajaxEndpoint('create_payment_intent'), {\n        order_id: orderId,\n        _ajax_nonce: (_this$options4 = this.options) === null || _this$options4 === void 0 ? void 0 : _this$options4.nonce\n      }).then(function (response) {\n        if (!response.success) {\n          throw response.data.error;\n        }\n\n        return response.data;\n      }).catch(function (error) {\n        if (error.message) {\n          throw error;\n        } else {\n          // Covers the case of error on the Ajax request.\n          throw new Error(_this3.getErrorMessage(error.statusText));\n        }\n      });\n    }\n    /**\n     * Updates a payment intent with data from order: customer, level3 data and and maybe sets the payment for future use.\n     *\n     * @param {string} intentId The id of the payment intent.\n     * @param {number} orderId The id of the order.\n     * @param {string} savePaymentMethod 'yes' if saving.\n     * @param {string} selectedPaymentType The name of the selected payment type or empty string.\n     *\n     * @return {Promise} The final promise for the request to the server.\n     */\n\n  }, {\n    key: \"updateIntent\",\n    value: function updateIntent(intentId, orderId, savePaymentMethod, selectedPaymentType) {\n      var _this$options5,\n          _this4 = this;\n\n      // Don't update setup intents.\n      if (intentId.includes('seti_')) {\n        return;\n      }\n\n      return this.request(this.ajaxEndpoint('update_payment_intent'), {\n        order_id: orderId,\n        payment_intent_id: intentId,\n        save_payment_method: savePaymentMethod,\n        payment_type: selectedPaymentType,\n        _ajax_nonce: (_this$options5 = this.options) === null || _this$options5 === void 0 ? void 0 : _this$options5.nonce\n      }).then(function (response) {\n        if (response.result === 'failure') {\n          throw new Error(response.messages);\n        }\n\n        return response;\n      }).catch(function (error) {\n        if (error.message) {\n          throw error;\n        } else {\n          // Covers the case of error on the Ajaxrequest.\n          throw new Error(_this4.getErrorMessage(error.statusText));\n        }\n      });\n    }\n    /**\n     * Extracts the details about a payment intent from the redirect URL,\n     * and displays the intent confirmation modal (if needed).\n     *\n     * @param {string} redirectUrl The redirect URL, returned from the server.\n     * @param {string} paymentMethodToSave The ID of a Payment Method if it should be saved (optional).\n     * @return {string|true} A redirect URL on success, or `true` if no confirmation is needed.\n     */\n\n  }, {\n    key: \"confirmIntent\",\n    value: function confirmIntent(redirectUrl, paymentMethodToSave) {\n      var _this5 = this;\n\n      var partials = redirectUrl.match(/#dokan-stripe-express-confirm-(pi|si):(.+):(.+):(.+)$/);\n\n      if (!partials) {\n        return true;\n      }\n\n      var isSetupIntent = partials[1] === 'si';\n      var orderId = partials[2];\n      var clientSecret = partials[3];\n      var nonce = partials[4];\n      var orderPayIndex = redirectUrl.indexOf('order-pay');\n      var isOrderPage = orderPayIndex > -1; // If we're on the Pay for Order page, get the order ID\n      // directly from the URL instead of relying on the hash.\n      // The checkout URL does not contain the string 'order-pay'.\n      // The Pay for Order page contains the string 'order-pay' and\n      // can have these formats:\n      // Plain permalinks:\n      // /?page_id=7&order-pay=189&pay_for_order=true&key=wc_order_key\n      // Non-plain permalinks:\n      // /checkout/order-pay/189/\n      // Match for consecutive digits after the string 'order-pay' to get the order ID.\n\n      var orderIdPartials = isOrderPage && redirectUrl.substring(orderPayIndex).match(/\\d+/);\n\n      if (orderIdPartials) {\n        orderId = orderIdPartials[0];\n      }\n\n      var confirmAction = isSetupIntent ? this.getStripe().confirmCardSetup(clientSecret) : this.getStripe(true).confirmCardPayment(clientSecret);\n      var request = confirmAction.then(function (result) {\n        var intentId = result.paymentIntent && result.paymentIntent.id || result.setupIntent && result.setupIntent.id || result.error && result.error.payment_intent && result.error.payment_intent.id || result.error.setup_intent && result.error.setup_intent.id;\n\n        var ajaxCall = _this5.request(_this5.ajaxEndpoint('update_order_status'), {\n          order_id: orderId,\n          // Update the current order status nonce with the new one to ensure that the update\n          // order status call works when a guest user creates an account during checkout.\n          intent_id: intentId,\n          payment_method_id: paymentMethodToSave || null,\n          _ajax_nonce: nonce\n        });\n\n        return [ajaxCall, result.error];\n      }).then(function (_ref) {\n        var _ref2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n            verificationCall = _ref2[0],\n            originalError = _ref2[1];\n\n        if (originalError) {\n          throw originalError;\n        }\n\n        return verificationCall.then(function (response) {\n          if (!response.success) {\n            throw response.data.error;\n          }\n\n          return response.data.return_url;\n        });\n      });\n      return {\n        request: request,\n        isOrderPage: isOrderPage\n      };\n    }\n    /**\n     * Process checkout and update payment intent via AJAX.\n     *\n     * @param {string} paymentIntentId ID of payment intent to be updated.\n     * @param {Object} fields Checkout fields.\n     * @return {Promise} Promise containing redirect URL for element.\n     */\n\n  }, {\n    key: \"processCheckout\",\n    value: function processCheckout(paymentIntentId, fields) {\n      var _this6 = this;\n\n      return this.request(this.ajaxEndpoint('checkout', ''), _objectSpread(_objectSpread({}, fields), {}, {\n        payment_intent_id: paymentIntentId\n      })).then(function (response) {\n        if (response.result === 'failure') {\n          throw new Error(response.messages);\n        }\n\n        return response;\n      }).catch(function (error) {\n        if (error.message) {\n          throw error;\n        } else {\n          // Covers the case of error on the Ajax request.\n          throw new Error(_this6.getErrorMessage(error.statusText));\n        }\n      });\n    }\n    /**\n     * Updates order status, if there is an error while confirming intent.\n     *\n     * @param {string} intentId The id of the Payment/Setup Intent.\n     * @param {number} orderId The id of the WC_Order..\n     */\n\n  }, {\n    key: \"updateFailedOrder\",\n    value: function updateFailedOrder(intentId, orderId) {\n      var _this$options6;\n\n      this.request(this.ajaxEndpoint('update_failed_order'), {\n        intent_id: intentId,\n        order_id: orderId,\n        _ajax_nonce: (_this$options6 = this.options) === null || _this$options6 === void 0 ? void 0 : _this$options6.nonce\n      }).catch(function (error) {// console.log(error);\n      });\n    }\n  }]);\n\n  return DokanStripeExpressApi;\n}();\n\n\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/api.js?");

/***/ }),

/***/ "./modules/stripe-express/assets/src/js/appearance.js":
/*!************************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/appearance.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getAppearance\": () => (/* binding */ getAppearance),\n/* harmony export */   \"getFieldStyles\": () => (/* binding */ getFieldStyles),\n/* harmony export */   \"getFontRulesFromPage\": () => (/* binding */ getFontRulesFromPage)\n/* harmony export */ });\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles */ \"./modules/stripe-express/assets/src/js/styles.js\");\n/* harmony import */ var _customizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./customizer */ \"./modules/stripe-express/assets/src/js/customizer.js\");\n\n\n\nvar dashedToCamelCase = function dashedToCamelCase(string) {\n  return string.replace(/-([a-z])/g, function (g) {\n    return g[1].toUpperCase();\n  });\n};\n\nvar getFieldStyles = function getFieldStyles(selector, paymentElement) {\n  if (!document.querySelector(selector)) {\n    return {};\n  }\n\n  var validProperties = _styles__WEBPACK_IMPORTED_MODULE_0__.restrictedProperties[paymentElement];\n  var elem = document.querySelector(selector);\n  var styles = window.getComputedStyle(elem);\n  var filteredStyles = {};\n\n  for (var i = 0; i < styles.length; i++) {\n    var camelCase = dashedToCamelCase(styles[i]);\n\n    if (validProperties.includes(camelCase)) {\n      filteredStyles[camelCase] = styles.getPropertyValue(styles[i]);\n    }\n  }\n\n  if (paymentElement === '.Input') {\n    var outline = (0,_customizer__WEBPACK_IMPORTED_MODULE_1__.generateOutlineStyle)(filteredStyles.outlineWidth, filteredStyles.outlineStyle, filteredStyles.outlineColor);\n\n    if (outline !== '') {\n      filteredStyles.outline = outline;\n    }\n\n    delete filteredStyles.outlineWidth;\n    delete filteredStyles.outlineColor;\n    delete filteredStyles.outlineStyle;\n  }\n\n  return filteredStyles;\n};\nvar getFontRulesFromPage = function getFontRulesFromPage() {\n  var fontRules = [],\n      sheets = document.styleSheets,\n      fontDomains = ['fonts.googleapis.com', 'fonts.gstatic.com', 'fast.fonts.com', 'use.typekit.net'];\n\n  for (var i = 0; i < sheets.length; i++) {\n    if (!sheets[i].href) {\n      continue;\n    }\n\n    var url = new URL(sheets[i].href);\n\n    if (fontDomains.indexOf(url.hostname) !== -1) {\n      fontRules.push({\n        cssSrc: sheets[i].href\n      });\n    }\n  }\n\n  return fontRules;\n};\nvar getAppearance = function getAppearance() {\n  var themeInputSelector = '#billing_first_name';\n  var themeLabelSelector = '.woocommerce-checkout .form-row label';\n  var themeSelectedPaymentSelector = '.woocommerce-checkout .place-order .button.alt';\n  var themeInvalidInputSelector = '#dokan-stripe-express-hidden-invalid-input';\n  var themeFocusInputSelector = '#dokan-stripe-express-hidden-input';\n  var inputRules = getFieldStyles(themeInputSelector, '.Input');\n  var inputFocusRules = getFieldStyles(themeFocusInputSelector, '.Input');\n  var inputInvalidRules = getFieldStyles(themeInvalidInputSelector, '.Input');\n  var labelRules = getFieldStyles(themeLabelSelector, '.Label');\n  var tabRules = getFieldStyles(themeInputSelector, '.Tab');\n  var selectedTabRules = getFieldStyles(themeSelectedPaymentSelector, '.Tab--selected');\n  var tabHoverRules = (0,_customizer__WEBPACK_IMPORTED_MODULE_1__.generateHoverRules)(tabRules);\n  var selectedTabHoverRules = (0,_customizer__WEBPACK_IMPORTED_MODULE_1__.generateHoverRules)(selectedTabRules);\n  var tabIconHoverRules = {\n    color: tabHoverRules.color\n  };\n  var selectedTabIconRules = {\n    color: selectedTabRules.color\n  };\n  var selectedTabIconHoverRules = {\n    color: selectedTabHoverRules.color\n  };\n  var appearance = {\n    rules: {\n      '.Input': inputRules,\n      '.Input:focus': inputFocusRules,\n      '.Input--invalid': inputInvalidRules,\n      '.Label': labelRules,\n      '.Tab': tabRules,\n      '.Tab:hover': tabHoverRules,\n      '.Tab--selected': selectedTabRules,\n      '.Tab--selected:hover': selectedTabHoverRules,\n      '.TabIcon:hover': tabIconHoverRules,\n      '.TabIcon--selected': selectedTabIconRules,\n      '.TabIcon--selected:hover': selectedTabIconHoverRules\n    }\n  };\n  return appearance;\n};\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/appearance.js?");

/***/ }),

/***/ "./modules/stripe-express/assets/src/js/checkout.js":
/*!**********************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/checkout.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./api */ \"./modules/stripe-express/assets/src/js/api.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./modules/stripe-express/assets/src/js/utils.js\");\n/* harmony import */ var _appearance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./appearance */ \"./modules/stripe-express/assets/src/js/appearance.js\");\n\n\n\n\n\n\n(function ($) {\n  'use strict';\n  /**\n   * Object to process all checkout operations.\n   */\n\n  var dokanStripeExpressCheckout = {\n    /*\n     * Clients API key.\n     */\n    key: null,\n\n    /*\n     * Configuration for payment methods.\n     */\n    paymentMethodsConfig: {},\n\n    /*\n     * Enabled billing fields to map with Stripe.\n     */\n    enabledBillingFields: {},\n\n    /*\n     * Localized strings.\n     */\n    i18n: {},\n\n    /*\n     * Relevant assets data.\n     */\n    assets: {},\n\n    /*\n     * Extra configuration for SEPA.\n     */\n    sepaElementsOptions: {},\n\n    /*\n     * Selector to use for block/unblock UI.\n     */\n    loadingSelector: '',\n\n    /*\n     * Stripe API object.\n     */\n    api: null,\n\n    /*\n     * IBAN element object.\n     */\n    iban: null,\n\n    /*\n     * Elements object\n     */\n    elements: null,\n\n    /*\n     * Payment element to hold temporary element data.\n     */\n    paymentElement: null,\n\n    /*\n     * Payment intent ID.\n     */\n    paymentIntentId: null,\n\n    /*\n     * Identify if payment process is completed.\n     */\n    isComplete: false,\n\n    /*\n     * The raw selected payment method.\n     * It is useful for further usage.\n     *\n     * For example, we will convert\n     * `apple_pay` and `google_pay`\n     * payment methods to `card` method.\n     * In that case it will help identify\n     * the actual method.\n     */\n    selectedPaymentMethodRaw: '',\n\n    /*\n     * Hidden billing fields.\n     */\n    hiddenBillingFields: {},\n\n    /**\n     * Initializes all events and methods.\n     *\n     * @return {null}\n     */\n    init: function init() {\n      dokanStripeExpressCheckout.setData(); // If no configuration is present, probably this is not the checkout page.\n\n      if (!dokanStripeExpressCheckout.key) {\n        return;\n      }\n\n      dokanStripeExpressCheckout.setApi();\n      dokanStripeExpressCheckout.events();\n    },\n\n    /**\n     * Sets API for further use.\n     *\n     * @return {null}\n     */\n    setApi: function setApi() {\n      dokanStripeExpressCheckout.api = new _api__WEBPACK_IMPORTED_MODULE_2__[\"default\"]((0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)(), // A promise-based interface to $.post.\n      function (url, args) {\n        return new Promise(function (resolve, reject) {\n          $.post(url, args).then(resolve).fail(reject);\n        });\n      });\n    },\n\n    /**\n     * Mounts Stripe element if feature is enabled.\n     *\n     * @param {boolean} isSetupIntent {Boolean} isSetupIntent Set to true if we are on My Account adding a payment method.\n     */\n    mountElement: function mountElement() {\n      var _getDokanStripeExpres, _getDokanStripeExpres2;\n\n      var isSetupIntent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var self = dokanStripeExpressCheckout;\n      self.blockUI($(self.loadingSelector)); // Do not recreate element unnecessarily.\n\n      if (self.paymentElement) {\n        self.paymentElement.unmount();\n        self.paymentElement.mount('#dokan-stripe-express-element');\n        return;\n      } // If paying from order, we need to create Payment Intent from order not cart.\n\n\n      var isOrderPay = (_getDokanStripeExpres = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres === void 0 ? void 0 : _getDokanStripeExpres.isOrderPay;\n      var isCheckout = (_getDokanStripeExpres2 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres2 === void 0 ? void 0 : _getDokanStripeExpres2.isCheckout;\n      var orderId;\n\n      if (isOrderPay) {\n        var _getDokanStripeExpres3;\n\n        orderId = (_getDokanStripeExpres3 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres3 === void 0 ? void 0 : _getDokanStripeExpres3.orderId;\n      }\n\n      var intentAction = isSetupIntent ? self.api.initSetupIntent() : self.api.createIntent(orderId);\n      intentAction.then(function (response) {\n        var _getDokanStripeExpres4, _getDokanStripeExpres5;\n\n        // Do not recreate element unnecessarily.\n        if (self.paymentElement || self.paymentIntentId) {\n          self.paymentElement.unmount();\n          self.paymentElement.mount('#dokan-stripe-express-element');\n          return;\n        }\n\n        var clientSecret = response.client_secret,\n            id = response.id;\n        self.paymentIntentId = id;\n        self.elements = self.api.getStripe().elements({\n          clientSecret: clientSecret,\n          fonts: (0,_appearance__WEBPACK_IMPORTED_MODULE_4__.getFontRulesFromPage)(),\n          locale: (_getDokanStripeExpres4 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres4 === void 0 ? void 0 : _getDokanStripeExpres4.locale\n        });\n        var elementOptions = {\n          business: {\n            name: (_getDokanStripeExpres5 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres5 === void 0 ? void 0 : _getDokanStripeExpres5.accountDescriptor\n          }\n        };\n\n        if (isCheckout && !isOrderPay) {\n          elementOptions.fields = {\n            billingDetails: self.hiddenBillingFields\n          };\n        }\n\n        self.paymentElement = self.elements.create('payment', elementOptions);\n        self.paymentElement.mount('#dokan-stripe-express-element');\n        self.paymentElement.on('ready', function () {\n          self.unblockUI($(self.loadingSelector));\n        });\n        self.paymentElement.on('change', function (event) {\n          // Store the actual payment method for further use\n          self.selectedPaymentMethodRaw = event.value.type;\n          /**\n           * There are no dedicated payment methods for Apple Pay and Google Pay in Stripe.\n           * These methods are considered as Card payment.\n           */\n\n          var selectedPaymentType = event.value.type === 'apple_pay' || event.value.type === 'google_pay' ? 'card' : event.value.type;\n          var isPaymentMethodReusable = self.paymentMethodsConfig[selectedPaymentType].isReusable;\n          self.showNewPaymentMethodCheckbox(isPaymentMethodReusable);\n          self.setSelectedPaymentType(selectedPaymentType);\n          self.isComplete = event.complete;\n        });\n        /*\n        * Trigger this event to ensure the tokenization-form.js init\n        * is executed.\n        *\n        * This script handles the radio input interaction when toggling\n        * between the user's saved card / entering new card details.\n        *\n        * Ref: https://github.com/woocommerce/woocommerce/blob/2429498/assets/js/frontend/tokenization-form.js#L109\n        */\n\n        $(document.body).trigger('wc-credit-card-form-init');\n      }).catch(function (error) {\n        self.unblockUI($(self.loadingSelector));\n        self.showError(error.message);\n        $('.payment_box.payment_method_woocommerce_payments').html(\"<div>\".concat(self.i18n.tryAgain, \"</div>\"));\n      });\n    },\n\n    /**\n     * Creates element for IBAN.\n     *\n     * @return {null}\n     */\n    createIbanElement: function createIbanElement() {\n      var _getDokanStripeExpres6;\n\n      dokanStripeExpressCheckout.iban = dokanStripeExpressCheckout.api.getStripe().elements({\n        fonts: (0,_appearance__WEBPACK_IMPORTED_MODULE_4__.getFontRulesFromPage)(),\n        locale: (_getDokanStripeExpres6 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres6 === void 0 ? void 0 : _getDokanStripeExpres6.locale\n      }).create('iban');\n    },\n\n    /**\n     * Submits checkout form via AJAX to create order and uses custom\n     * redirect URL in AJAX response to request payment confirmation.\n     *\n     * @param {Object} $form The jQuery object for the form.\n     * @return {boolean} A flag for the event handler.\n     */\n    checkout: function () {\n      var _checkout = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee($form) {\n        var self, isValidForm, formFields, response, proceedPayment, error, elementConfig, _yield$self$api$getSt, _yield$self$api$getSt2, paymentType;\n\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                self = dokanStripeExpressCheckout;\n                _context.next = 3;\n                return self.validateForm($form);\n\n              case 3:\n                isValidForm = _context.sent;\n\n                if (isValidForm) {\n                  _context.next = 6;\n                  break;\n                }\n\n                return _context.abrupt(\"return\");\n\n              case 6:\n                self.blockUI($form); // Create object where keys are form field names and values are form field values\n\n                formFields = $form.serializeArray().reduce(function (obj, field) {\n                  obj[field.name] = field.value;\n                  return obj;\n                }, {});\n                _context.prev = 8;\n                _context.next = 11;\n                return self.api.processCheckout(self.paymentIntentId, formFields);\n\n              case 11:\n                response = _context.sent;\n                proceedPayment = false;\n\n                if (!('apple_pay' === self.selectedPaymentMethodRaw)) {\n                  _context.next = 21;\n                  break;\n                }\n\n                _context.next = 16;\n                return dokan_sweetalert(self.i18n.confirmApplePayment, {\n                  action: 'confirm',\n                  confirmButtonColor: '#363636',\n                  cancelButtonColor: '#b54545',\n                  confirmButtonText: self.i18n.proceed,\n                  cancelButtonText: self.i18n.decline,\n                  imageUrl: self.assets.applePayLogo,\n                  background: '#1a1a1a'\n                });\n\n              case 16:\n                proceedPayment = _context.sent;\n\n                if (!proceedPayment.isDismissed) {\n                  _context.next = 19;\n                  break;\n                }\n\n                throw self.i18n.paymentDismissed;\n\n              case 19:\n                _context.next = 22;\n                break;\n\n              case 21:\n                proceedPayment = {\n                  isConfirmed: true\n                };\n\n              case 22:\n                if (!proceedPayment.isConfirmed) {\n                  _context.next = 42;\n                  break;\n                }\n\n                elementConfig = {\n                  elements: self.elements,\n                  confirmParams: {\n                    return_url: response.redirect_url,\n                    payment_method_data: {\n                      billing_details: self.getBillingDetails(formFields)\n                    }\n                  }\n                };\n\n                if (!response.payment_needed) {\n                  _context.next = 32;\n                  break;\n                }\n\n                ;\n                _context.next = 28;\n                return self.api.getStripe().confirmPayment(elementConfig);\n\n              case 28:\n                _yield$self$api$getSt = _context.sent;\n                error = _yield$self$api$getSt.error;\n                _context.next = 36;\n                break;\n\n              case 32:\n                _context.next = 34;\n                return self.api.getStripe().confirmSetup(elementConfig);\n\n              case 34:\n                _yield$self$api$getSt2 = _context.sent;\n                error = _yield$self$api$getSt2.error;\n\n              case 36:\n                if (!error) {\n                  _context.next = 42;\n                  break;\n                }\n\n                paymentType = formFields.dokan_stripe_express_payment_type;\n\n                if (!(paymentType !== 'boleto' && paymentType !== 'oxxo')) {\n                  _context.next = 41;\n                  break;\n                }\n\n                _context.next = 41;\n                return self.api.updateFailedOrder(self.paymentIntentId, response.order_id);\n\n              case 41:\n                throw error;\n\n              case 42:\n                _context.next = 48;\n                break;\n\n              case 44:\n                _context.prev = 44;\n                _context.t0 = _context[\"catch\"](8);\n                self.unblockUI($form);\n                self.showError(_context.t0);\n\n              case 48:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, null, [[8, 44]]);\n      }));\n\n      function checkout(_x) {\n        return _checkout.apply(this, arguments);\n      }\n\n      return checkout;\n    }(),\n\n    /**\n     * Submits the confirmation of the intent to Stripe on Pay for Order page.\n     * Stripe redirects to Order Thank you page on sucess.\n     *\n     * @param {Object} $form The jQuery object for the form.\n     * @return {boolean} A flag for the event handler.\n     */\n    processOrderPay: function () {\n      var _processOrderPay = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee2($form) {\n        var self, isValidForm, _getDokanStripeExpres7, _getDokanStripeExpres8, isSavingPaymentMethod, savePaymentMethod, returnUrl, orderId, paymentType, _yield$api$getStripe$, error;\n\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                self = dokanStripeExpressCheckout;\n                _context2.next = 3;\n                return self.validateForm($('#order_review'));\n\n              case 3:\n                isValidForm = _context2.sent;\n\n                if (isValidForm) {\n                  _context2.next = 6;\n                  break;\n                }\n\n                return _context2.abrupt(\"return\");\n\n              case 6:\n                self.blockUI($form);\n                _context2.prev = 7;\n                isSavingPaymentMethod = $('#wc-dokan_stripe_express-new-payment-method').is(':checked');\n                savePaymentMethod = isSavingPaymentMethod ? 'yes' : 'no';\n                returnUrl = ((_getDokanStripeExpres7 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres7 === void 0 ? void 0 : _getDokanStripeExpres7.orderReturnURL) + \"&save_payment_method=\".concat(savePaymentMethod);\n                orderId = (_getDokanStripeExpres8 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres8 === void 0 ? void 0 : _getDokanStripeExpres8.orderId;\n                paymentType = $('#dokan-stripe-express-payment-type').val(); // Update payment intent with level3 data, customer and maybe setup for future use.\n\n                _context2.next = 15;\n                return self.api.updateIntent(self.paymentIntentId, orderId, savePaymentMethod, paymentType);\n\n              case 15:\n                _context2.next = 17;\n                return api.getStripe().confirmPayment({\n                  elements: self.elements,\n                  confirmParams: {\n                    return_url: returnUrl\n                  }\n                });\n\n              case 17:\n                _yield$api$getStripe$ = _context2.sent;\n                error = _yield$api$getStripe$.error;\n\n                if (!error) {\n                  _context2.next = 24;\n                  break;\n                }\n\n                if (!(paymentType !== 'boleto' && paymentType !== 'oxxo')) {\n                  _context2.next = 23;\n                  break;\n                }\n\n                _context2.next = 23;\n                return self.api.updateFailedOrder(self.paymentIntentId, orderId);\n\n              case 23:\n                throw error;\n\n              case 24:\n                _context2.next = 30;\n                break;\n\n              case 26:\n                _context2.prev = 26;\n                _context2.t0 = _context2[\"catch\"](7);\n                self.unblockUI($form);\n                self.showError(_context2.t0.message);\n\n              case 30:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, null, [[7, 26]]);\n      }));\n\n      function processOrderPay(_x2) {\n        return _processOrderPay.apply(this, arguments);\n      }\n\n      return processOrderPay;\n    }(),\n\n    /**\n     * Submits the confirmation of the setup intent to Stripe on Add Payment Method page.\n     * Stripe redirects to Payment Methods page on sucess.\n     *\n     * @param {Object} $form The jQuery object for the form.\n     * @return {boolean} A flag for the event handler.\n     */\n    processAddPayment: function () {\n      var _processAddPayment = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee3($form) {\n        var self, isValidForm, _getDokanStripeExpres9, returnUrl, _yield$self$api$getSt3, error;\n\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee3$(_context3) {\n          while (1) {\n            switch (_context3.prev = _context3.next) {\n              case 0:\n                self = dokanStripeExpressCheckout;\n                _context3.next = 3;\n                return self.validateForm($form);\n\n              case 3:\n                isValidForm = _context3.sent;\n\n                if (isValidForm) {\n                  _context3.next = 6;\n                  break;\n                }\n\n                return _context3.abrupt(\"return\");\n\n              case 6:\n                self.blockUI($form);\n                _context3.prev = 7;\n                returnUrl = (_getDokanStripeExpres9 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres9 === void 0 ? void 0 : _getDokanStripeExpres9.addPaymentReturnURL;\n                _context3.next = 11;\n                return self.api.getStripe().confirmSetup({\n                  elements: self.elements,\n                  confirmParams: {\n                    return_url: returnUrl\n                  }\n                });\n\n              case 11:\n                _yield$self$api$getSt3 = _context3.sent;\n                error = _yield$self$api$getSt3.error;\n\n                if (!error) {\n                  _context3.next = 15;\n                  break;\n                }\n\n                throw error;\n\n              case 15:\n                _context3.next = 21;\n                break;\n\n              case 17:\n                _context3.prev = 17;\n                _context3.t0 = _context3[\"catch\"](7);\n                self.unblockUI($form);\n                self.showError(_context3.t0.message);\n\n              case 21:\n              case \"end\":\n                return _context3.stop();\n            }\n          }\n        }, _callee3, null, [[7, 17]]);\n      }));\n\n      function processAddPayment(_x3) {\n        return _processAddPayment.apply(this, arguments);\n      }\n\n      return processAddPayment;\n    }(),\n\n    /**\n     * Converts form fields object into Stripe `billing_details` object.\n     *\n     * @param {Object} fields Object mapping checkout billing fields to values.\n     * @return {Object} Stripe formatted `billing_details` object.\n     */\n    getBillingDetails: function getBillingDetails(fields) {\n      return {\n        name: \"\".concat(fields.billing_first_name, \" \").concat(fields.billing_last_name).trim() || '-',\n        email: fields.billing_email || '-',\n        phone: fields.billing_phone || '-',\n        address: {\n          country: fields.billing_country || '-',\n          line1: fields.billing_address_1 || '-',\n          line2: fields.billing_address_2 || '-',\n          city: fields.billing_city || '-',\n          state: fields.billing_state || '-',\n          postal_code: fields.billing_postcode || '-'\n        }\n      };\n    },\n\n    /**\n     * Checks if form is filled out. Displays errors if not.\n     *\n     * @param {Object} $form The jQuery object for the form.\n     * @return {boolean} false if incomplete.\n     */\n    validateForm: function () {\n      var _validateForm = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().mark(function _callee4($form) {\n        var _yield$dokanStripeExp, error;\n\n        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default().wrap(function _callee4$(_context4) {\n          while (1) {\n            switch (_context4.prev = _context4.next) {\n              case 0:\n                if (dokanStripeExpressCheckout.paymentElement) {\n                  _context4.next = 3;\n                  break;\n                }\n\n                dokanStripeExpressCheckout.showError(dokanStripeExpressCheckout.i18n.incompleteInfo);\n                return _context4.abrupt(\"return\", false);\n\n              case 3:\n                if (dokanStripeExpressCheckout.isComplete) {\n                  _context4.next = 11;\n                  break;\n                }\n\n                _context4.next = 6;\n                return dokanStripeExpressCheckout.api.getStripe().confirmPayment({\n                  elements: dokanStripeExpressCheckout.elements,\n                  confirmParams: {\n                    return_url: '#'\n                  }\n                });\n\n              case 6:\n                _yield$dokanStripeExp = _context4.sent;\n                error = _yield$dokanStripeExp.error;\n                dokanStripeExpressCheckout.unblockUI($form);\n                dokanStripeExpressCheckout.showError(error.message);\n                return _context4.abrupt(\"return\", false);\n\n              case 11:\n                return _context4.abrupt(\"return\", true);\n\n              case 12:\n              case \"end\":\n                return _context4.stop();\n            }\n          }\n        }, _callee4);\n      }));\n\n      function validateForm(_x4) {\n        return _validateForm.apply(this, arguments);\n      }\n\n      return validateForm;\n    }(),\n\n    /**\n     * Displays the authentication modal to the user if needed.\n     */\n    maybeShowAuthenticationModal: function maybeShowAuthenticationModal() {\n      var paymentMethodId = $('#dokan-stripe-express-payment-method').val();\n      var savePaymentMethod = $('#wc-dokan_stripe_express-new-payment-method').is(':checked');\n      var confirmation = dokanStripeExpressCheckout.api.confirmIntent(window.location.href, savePaymentMethod ? paymentMethodId : null); // Boolean `true` means that there is nothing to confirm.\n\n      if (confirmation === true) {\n        return;\n      }\n\n      var request = confirmation.request,\n          isOrderPage = confirmation.isOrderPage;\n\n      if (isOrderPage) {\n        blockUI($('#order_review'));\n        $('#payment').hide(500);\n      } // Cleanup the URL.\n      // https://stackoverflow.com/a/5298684\n      // eslint-disable-next-line no-undef\n\n\n      history.replaceState('', document.title, window.location.pathname + window.location.search);\n      request.then(function (redirectUrl) {\n        window.location = redirectUrl;\n      }).catch(function (error) {\n        dokanStripeExpressCheckout.unblockUI('form.checkout');\n        dokanStripeExpressCheckout.unblockUI('#order_review');\n        $('#payment').show(500);\n        var errorMessage = error.message; // If this is a generic error, we probably don't want to display the error message to the user,\n        // so display a generic message instead.\n\n        if (error instanceof Error) {\n          var _getDokanStripeExpres10;\n\n          errorMessage = (_getDokanStripeExpres10 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres10 === void 0 ? void 0 : _getDokanStripeExpres10.genericErrorMessage;\n        }\n\n        dokanStripeExpressCheckout.showError(errorMessage);\n      });\n    },\n\n    /**\n     * Checks if the customer is using a saved payment method.\n     *\n     * @return {boolean} Boolean indicating whether or not a saved payment method is being used.\n     */\n    isUsingSavedPaymentMethod: function isUsingSavedPaymentMethod() {\n      return $('#wc-dokan_stripe_express-payment-token-new').length && !$('#wc-dokan_stripe_express-payment-token-new').is(':checked');\n    },\n\n    /**\n     * Checks whether SEPA IBAN element is present in the DOM and needs to be mounted\n     *\n     * @return {boolean} Whether IBAN needs to be mounted\n     */\n    doesIbanNeedToBeMounted: function doesIbanNeedToBeMounted() {\n      return $('#dokan-stripe-express-iban-element').length && !$('#dokan-stripe-express-iban-element').children().length;\n    },\n\n    /**\n     * Block UI to indicate processing and avoid duplicate submission.\n     *\n     * @param {Object} $form The jQuery object for the form.\n     */\n    blockUI: function blockUI($form) {\n      $form.addClass('processing').block({\n        message: null,\n        overlayCSS: {\n          background: '#fff',\n          opacity: 0.6\n        }\n      });\n    },\n\n    /**\n     * Unblock UI to remove overlay and loading icon\n     *\n     * @param {Object} $form The jQuery object for the form.\n     */\n    unblockUI: function unblockUI($form) {\n      $form.removeClass('processing').unblock();\n    },\n\n    /**\n     * Show error notice at top of checkout form.\n     * Will try to use a translatable message using the message code if available\n     *\n     * @param {string} errorMessage\n     */\n    showError: function showError(errorMessage) {\n      if (typeof errorMessage !== 'string' && !(errorMessage instanceof String)) {\n        if (errorMessage.code && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()[errorMessage.code]) {\n          errorMessage = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()[errorMessage.code];\n        } else {\n          errorMessage = errorMessage.message;\n        }\n      }\n\n      var messageWrapper = '';\n\n      if (errorMessage.includes('woocommerce-error')) {\n        messageWrapper = errorMessage;\n      } else {\n        messageWrapper = '<ul class=\"woocommerce-error\" role=\"alert\"><li>' + errorMessage + '</li></ul>';\n      }\n\n      var $container = $('.woocommerce-notices-wrapper').first();\n\n      if (!$container.length) {\n        return;\n      } // Adapted from WooCommerce core @ ea9aa8c, assets/js/frontend/checkout.js#L514-L529\n\n\n      $('.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message').remove();\n      $container.prepend(messageWrapper);\n      $('form.checkout').find('.input-text, select, input:checkbox').trigger('validate').blur();\n      $.scroll_to_notices($container);\n      $(document.body).trigger('checkout_error');\n    },\n\n    /**\n     * Show or hide save payment information checkbox\n     */\n    showNewPaymentMethodCheckbox: function showNewPaymentMethodCheckbox() {\n      var show = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n      if (show) {\n        $('.woocommerce-SavedPaymentMethods-saveNew').show();\n      } else {\n        $('.woocommerce-SavedPaymentMethods-saveNew').hide();\n        $('input#wc-dokan_stripe_express-new-payment-method').prop('checked', false);\n        $('input#wc-dokan_stripe_express-new-payment-method').trigger('change');\n      }\n    },\n\n    /**\n     * Set the selected payment type field\n     */\n    setSelectedPaymentType: function setSelectedPaymentType(paymentType) {\n      $('#dokan-stripe-express-payment-type').val(paymentType);\n    },\n\n    /**\n     * Sets necessary data.\n     *\n     * @return {null}\n     */\n    setData: function setData() {\n      var _getDokanStripeExpres11, _getDokanStripeExpres12, _getDokanStripeExpres13, _getDokanStripeExpres14, _getDokanStripeExpres15, _getDokanStripeExpres16, _getDokanStripeExpres17;\n\n      var self = dokanStripeExpressCheckout;\n      self.key = (_getDokanStripeExpres11 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres11 === void 0 ? void 0 : _getDokanStripeExpres11.key;\n      self.paymentMethodsConfig = (_getDokanStripeExpres12 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres12 === void 0 ? void 0 : _getDokanStripeExpres12.paymentMethodsConfig;\n      self.enabledBillingFields = (_getDokanStripeExpres13 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres13 === void 0 ? void 0 : _getDokanStripeExpres13.billingFields;\n      self.i18n = (_getDokanStripeExpres14 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres14 === void 0 ? void 0 : _getDokanStripeExpres14.i18n;\n      self.assets = (_getDokanStripeExpres15 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres15 === void 0 ? void 0 : _getDokanStripeExpres15.assets;\n      self.sepaElementsOptions = (_getDokanStripeExpres16 = (_getDokanStripeExpres17 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres17 === void 0 ? void 0 : _getDokanStripeExpres17.sepaElementsOptions) !== null && _getDokanStripeExpres16 !== void 0 ? _getDokanStripeExpres16 : {};\n      self.loadingSelector = '#dokan-stripe-express-form';\n      self.hiddenBillingFields = {\n        name: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_first_name') || dokanStripeExpressCheckout.enabledBillingFields.includes('billing_last_name') ? 'never' : 'auto',\n        email: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_email') ? 'never' : 'auto',\n        phone: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_phone') ? 'never' : 'auto',\n        address: {\n          country: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_country') ? 'never' : 'auto',\n          line1: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_address_1') ? 'never' : 'auto',\n          line2: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_address_2') ? 'never' : 'auto',\n          city: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_city') ? 'never' : 'auto',\n          state: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_state') ? 'never' : 'auto',\n          postalCode: dokanStripeExpressCheckout.enabledBillingFields.includes('billing_postcode') ? 'never' : 'auto'\n        }\n      };\n    },\n\n    /**\n     * Initializes all generic events.\n     */\n    events: function events() {\n      var self = dokanStripeExpressCheckout;\n      self.createIbanElement();\n      /*\n       * Only attempt to mount the card element once that section of the page has loaded.\n       * We can use the updated_checkout event for this.\n       * This part of the page can also reload based on changes to checkout details,\n       * so we call unmount first to ensure the card element is re-mounted correctly.\n       */\n\n      $(document.body).on('updated_checkout', function () {\n        /**\n         * If the card element selector doesn't exist,\n         * then do nothing (for example, when a 100% discount coupon is applied).\n         * We also don't re-mount if already mounted in DOM.\n         */\n        if ($('#dokan-stripe-express-element').length && !$('#dokan-stripe-express-element').children().length) {\n          var _getDokanStripeExpres18, _getDokanStripeExpres19;\n\n          var isSetupIntent = !((_getDokanStripeExpres18 = (_getDokanStripeExpres19 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres19 === void 0 ? void 0 : _getDokanStripeExpres19.isPaymentNeeded) !== null && _getDokanStripeExpres18 !== void 0 ? _getDokanStripeExpres18 : true);\n          self.mountElement(isSetupIntent);\n        }\n\n        if (self.doesIbanNeedToBeMounted()) {\n          self.iban.mount('##dokan-stripe-express-iban-element');\n        }\n      });\n\n      if ($('form#add_payment_method').length || $('form#order_review').length) {\n        if ($('#dokan-stripe-express-element').length && !$('#dokan-stripe-express-element').children().length && !self.paymentElement) {\n          var _getDokanStripeExpres20, _getDokanStripeExpres21;\n\n          var isChangingPayment = (_getDokanStripeExpres20 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres20 === void 0 ? void 0 : _getDokanStripeExpres20.isChangingPayment; // We use a setup intent if we are on the screens to add a new payment method or to change a subscription payment.\n\n          var isSetupIntent = $('form#add_payment_method').length || isChangingPayment;\n\n          if (isChangingPayment && (_getDokanStripeExpres21 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) !== null && _getDokanStripeExpres21 !== void 0 && _getDokanStripeExpres21.newTokenFormId) {\n            var _getDokanStripeExpres22;\n\n            /*\n                * Changing the method for a subscription takes two steps:\n                *  1. Create the new payment method that will redirect back.\n                *  2. Select the new payment method and resubmit the form to update the subscription.\n                */\n            var token = (_getDokanStripeExpres22 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) === null || _getDokanStripeExpres22 === void 0 ? void 0 : _getDokanStripeExpres22.newTokenFormId;\n            $(token).prop('selected', true).trigger('click');\n            $('form#order_review').submit();\n          }\n\n          self.mountElement(isSetupIntent);\n        }\n\n        if (self.doesIbanNeedToBeMounted()) {\n          self.iban.mount('#dokan-stripe-express-iban-element');\n        }\n      } // Handle the checkout form when WooCommerce Gateway Stripe is chosen.\n\n\n      $('form.checkout').on('checkout_place_order_dokan_stripe_express', function () {\n        if (!self.isUsingSavedPaymentMethod()) {\n          if (self.paymentIntentId) {\n            self.checkout($(this));\n            return false;\n          }\n        }\n      }); // Handle the add payment method form for WooCommerce Payments.\n\n      $('form#add_payment_method').on('submit', function () {\n        if (!$('#wc-dokan_stripe_express-setup-intent').val()) {\n          if (self.paymentIntentId) {\n            self.processAddPayment($(this));\n            return false;\n          }\n        }\n      }); // Handle the Pay for Order form if WooCommerce Payments is chosen.\n\n      $('#order_review').on('submit', function () {\n        if (!self.isUsingSavedPaymentMethod()) {\n          var _getDokanStripeExpres23;\n\n          if ((_getDokanStripeExpres23 = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getDokanStripeExpressData)()) !== null && _getDokanStripeExpres23 !== void 0 && _getDokanStripeExpres23.isChangingPayment) {\n            self.processAddPayment($('#order_review'));\n            return false;\n          }\n\n          self.processOrderPay($('#order_review'));\n          return false;\n        }\n      }); // Add terms parameter to if save payment information checkbox is checked.\n      // This shows required legal mandates when customer elects to save payment method during checkout.\n\n      $(document).on('change', '#wc-dokan_stripe_express-new-payment-method', function () {\n        var value = $('#wc-dokan_stripe_express-new-payment-method').is(':checked') ? 'always' : 'never';\n\n        if (self.paymentElement) {\n          self.paymentElement.update({\n            terms: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getTerms)(value)\n          });\n        }\n      }); // On every page load, check to see whether we should display the authentication\n      // modal and display it if it should be displayed.\n\n      self.maybeShowAuthenticationModal(); // Handle hash change - used when authenticating payment with SCA on checkout page.\n\n      $(window).on('hashchange', function () {\n        if (window.location.hash.startsWith('#dokan-stripe-express-confirm-')) {\n          self.maybeShowAuthenticationModal();\n        }\n      });\n    }\n  };\n  dokanStripeExpressCheckout.init();\n})(jQuery);\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/checkout.js?");

/***/ }),

/***/ "./modules/stripe-express/assets/src/js/constants.js":
/*!***********************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/constants.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"errorCodes\": () => (/* binding */ errorCodes),\n/* harmony export */   \"errorTypes\": () => (/* binding */ errorTypes)\n/* harmony export */ });\nvar errorTypes = {\n  INVALID_EMAIL: 'email_invalid',\n  INVALID_REQUEST: 'invalid_request_error',\n  API_CONNECTION: 'api_connection_error',\n  API_ERROR: 'api_error',\n  AUTHENTICATION_ERROR: 'authentication_error',\n  RATE_LIMIT_ERROR: 'rate_limit_error',\n  CARD_ERROR: 'card_error',\n  VALIDATION_ERROR: 'validation_error'\n};\nvar errorCodes = {\n  INVALID_NUMBER: 'invalid_number',\n  INVALID_EXPIRY_MONTH: 'invalid_expiry_month',\n  INVALID_EXPIRY_YEAR: 'invalid_expiry_year',\n  INVALID_CVC: 'invalid_cvc',\n  INCORRECT_NUMBER: 'incorrect_number',\n  INCOMPLETE_NUMBER: 'incomplete_number',\n  INCOMPLETE_CVC: 'incomplete_cvc',\n  INCOMPLETE_EXPIRY: 'incomplete_expiry',\n  EXPIRED_CARD: 'expired_card',\n  INCORRECT_CVC: 'incorrect_cvc',\n  INCORRECT_ZIP: 'incorrect_zip',\n  INVALID_EXPIRY_YEAR_PAST: 'invalid_expiry_year_past',\n  CARD_DECLINED: 'card_declined',\n  MISSING: 'missing',\n  PROCESSING_ERROR: 'processing_error'\n};\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/constants.js?");

/***/ }),

/***/ "./modules/stripe-express/assets/src/js/customizer.js":
/*!************************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/customizer.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"generateHoverColors\": () => (/* binding */ generateHoverColors),\n/* harmony export */   \"generateHoverRules\": () => (/* binding */ generateHoverRules),\n/* harmony export */   \"generateOutlineStyle\": () => (/* binding */ generateOutlineStyle)\n/* harmony export */ });\n/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tinycolor2 */ \"./node_modules/tinycolor2/tinycolor.js\");\n/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tinycolor2__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Generates hover colors from a background color and a text color.\n *\n * @param {string}  backgroundColor Background color, Any format accepted by tinyColor library\n * @param {string}  color Text color, any format accepted by tinyColor library\n * @return {Object} Object with new background color and text color.\n */\n\nvar generateHoverColors = function generateHoverColors(backgroundColor, color) {\n  var hoverColors = {\n    backgroundColor: backgroundColor,\n    color: color\n  };\n  var tinyBackgroundColor = tinycolor2__WEBPACK_IMPORTED_MODULE_0___default()(backgroundColor);\n  var tinyTextColor = tinycolor2__WEBPACK_IMPORTED_MODULE_0___default()(color); // If colors are not valid return empty strings.\n\n  if (!tinyBackgroundColor.isValid() || !tinyTextColor.isValid()) {\n    return {\n      backgroundColor: '',\n      color: ''\n    };\n  } // Darken if brightness > 50 (Storefront Button 51 ), else lighten\n\n\n  var newBackgroundColor = tinyBackgroundColor.getBrightness() > 50 ? tinycolor2__WEBPACK_IMPORTED_MODULE_0___default()(tinyBackgroundColor).darken(7) : tinycolor2__WEBPACK_IMPORTED_MODULE_0___default()(tinyBackgroundColor).lighten(7); // Returns provided color if readable, otherwise black or white.\n\n  var mostReadableColor = tinycolor2__WEBPACK_IMPORTED_MODULE_0___default().mostReadable(newBackgroundColor, [tinyTextColor], {\n    includeFallbackColors: true\n  });\n  hoverColors.backgroundColor = newBackgroundColor.toRgbString();\n  hoverColors.color = mostReadableColor.toRgbString();\n  return hoverColors;\n};\n/**\n * Generates hover rules for using a set of appearance rules as a basis.\n *\n * @param {Object}  baseRules appearance rules to use as a base to generate hover colors\n * @return {Object} Object with generated hover rules.\n */\n\nvar generateHoverRules = function generateHoverRules(baseRules) {\n  // If there are no colors, return the same rules as we can not generate hover colors.\n  if (!baseRules.backgroundColor || !baseRules.color) {\n    return baseRules;\n  }\n\n  var hoverColors = generateHoverColors(baseRules.backgroundColor, baseRules.color);\n  var hoverRules = Object.assign({}, baseRules);\n  hoverRules.backgroundColor = hoverColors.backgroundColor;\n  hoverRules.color = hoverColors.color;\n  return hoverRules;\n};\n/**\n * Generates outline style for using outline width, style and color.\n * Element does not accept the individual properties, we need to concat them.\n *\n * @param {string}  outlineWidth Outline width from computed styles.\n * @param {string}  outlineStyle Outline width from computed styles.\n * @param {string}  outlineColor Outline width from computed styles.\n * @return {string} Object with generated hover rules.\n */\n\nvar generateOutlineStyle = function generateOutlineStyle(outlineWidth) {\n  var outlineStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'solid';\n  var outlineColor = arguments.length > 2 ? arguments[2] : undefined;\n  return outlineWidth && outlineColor ? [outlineWidth, outlineStyle, outlineColor].join(' ') : '';\n};\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/customizer.js?");

/***/ }),

/***/ "./modules/stripe-express/assets/src/js/styles.js":
/*!********************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/styles.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"restrictedProperties\": () => (/* binding */ restrictedProperties)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n\n// List of supported CSS properties accepted by payment elements. Source: https://stripe.com/docs/stripe-js/payment-element#appearance.\nvar paddingColorProps = ['color', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'];\nvar textFontTransitionProps = ['fontFamily', 'fontSize', 'lineHeight', 'letterSpacing', 'fontWeight', 'fontVariation', 'textDecoration', 'textShadow', 'textTransform', '-webkit-font-smoothing', '-moz-osx-font-smoothing', 'transition'];\nvar borderOutlineBackgroundProps = ['border', 'borderTop', 'borderRight', 'borderBottom', 'borderLeft', 'borderRadius', 'borderWidth', 'borderColor', 'borderStyle', 'borderTopWidth', 'borderTopColor', 'borderTopStyle', 'borderRightWidth', 'borderRightColor', 'borderRightStyle', 'borderBottomWidth', 'borderBottomColor', 'borderBottomStyle', 'borderLeftWidth', 'borderLeftColor', 'borderLeftStyle', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius', 'outline', 'outlineOffset', 'backgroundColor', 'boxShadow'];\nvar supportedProperties = {\n  '.Label': [].concat(paddingColorProps, textFontTransitionProps),\n  '.Input': [].concat(paddingColorProps, textFontTransitionProps, borderOutlineBackgroundProps),\n  '.Error': [].concat(paddingColorProps, textFontTransitionProps, borderOutlineBackgroundProps),\n  '.Tab': [].concat(paddingColorProps, textFontTransitionProps, borderOutlineBackgroundProps),\n  '.TabIcon': [].concat(paddingColorProps),\n  '.TabLabel': [].concat(paddingColorProps, textFontTransitionProps)\n}; // Restricted properties allowed to generate the automated theming of payment element.\n\nvar restrictedTabProperties = ['borderStyle', 'borderBottomStyle', 'borderTopStyle', 'borderRightStyle', 'borderLeftStyle', 'borderColor', 'borderBottomColor', 'borderTopColor', 'borderRightColor', 'borderLeftColor', 'borderWidth', 'borderBottomWidth', 'borderTopWidth', 'borderRightWidth', 'borderLeftWidth', 'backgroundColor', 'color', 'fontFamily'];\nvar restrictedTabSelectedProperties = ['borderStyle', 'borderStyle', 'borderBottomStyle', 'borderTopStyle', 'borderRightStyle', 'borderLeftStyle', 'borderWidth', 'borderBottomWidth', 'borderTopWidth', 'borderRightWidth', 'borderLeftWidth', 'backgroundColor', 'color'];\nvar restrictedTabIconSelectedProperties = ['color'];\nvar restrictedProperties = {\n  '.Label': supportedProperties['.Label'],\n  '.Input': [].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(supportedProperties['.Input']), ['outlineColor', 'outlineWidth', 'outlineStyle']),\n  '.Error': supportedProperties['.Error'],\n  '.Tab': [].concat(restrictedTabProperties),\n  '.Tab--selected': [].concat(restrictedTabSelectedProperties),\n  '.TabIcon': supportedProperties['.TabIcon'],\n  '.TabIcon--selected': [].concat(restrictedTabIconSelectedProperties),\n  '.TabLabel': supportedProperties['.TabLabel']\n};\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/styles.js?");

/***/ }),

/***/ "./modules/stripe-express/assets/src/js/utils.js":
/*!*******************************************************!*\
  !*** ./modules/stripe-express/assets/src/js/utils.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getDokanStripeExpressData\": () => (/* binding */ getDokanStripeExpressData),\n/* harmony export */   \"getErrorMessageForTypeAndCode\": () => (/* binding */ getErrorMessageForTypeAndCode),\n/* harmony export */   \"getTerms\": () => (/* binding */ getTerms)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"./modules/stripe-express/assets/src/js/constants.js\");\n\n/**\n * Stripe data comes form the server passed on a global object.\n *\n * @return  {StripeServerData} Stripe server data.\n */\n\nvar getDokanStripeExpressData = function getDokanStripeExpressData() {\n  // Classic checkout.\n  // eslint-disable-next-line camelcase\n  if (!dokanStripeExpress) {\n    throw new Error('Stripe initialization data is not available');\n  } // eslint-disable-next-line camelcase\n\n\n  return dokanStripeExpress;\n};\n\nvar isNonFriendlyError = function isNonFriendlyError(type) {\n  return [_constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.INVALID_REQUEST, _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.API_CONNECTION, _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.API_ERROR, _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.AUTHENTICATION_ERROR, _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.RATE_LIMIT_ERROR].includes(type);\n};\n\nvar getErrorMessageForCode = function getErrorMessageForCode(code) {\n  return dokanStripeExpress.messages[code] || null;\n};\n\nvar getErrorMessageForTypeAndCode = function getErrorMessageForTypeAndCode(type) {\n  var code = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  switch (type) {\n    case _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.INVALID_EMAIL:\n      return dokanStripeExpress.messages[_constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.INVALID_EMAIL];\n\n    case isNonFriendlyError(type):\n      return dokanStripeExpress.messages['invalid_request_error'];\n\n    case _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.CARD_ERROR:\n      return getErrorMessageForCode(code);\n\n    case _constants__WEBPACK_IMPORTED_MODULE_0__.errorTypes.VALIDATION_ERROR:\n      return '';\n    // These are shown inline.\n  }\n\n  return null;\n};\n/**\n * Generates terms parameter, with value set for reusable payment methods\n *\n * @param {string} value The terms value for each available payment method.\n * @return {Object} Terms parameter fit.\n */\n\n\nvar getTerms = function getTerms() {\n  var _getDokanStripeExpres;\n\n  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'always';\n  var config = (_getDokanStripeExpres = getDokanStripeExpressData()) === null || _getDokanStripeExpres === void 0 ? void 0 : _getDokanStripeExpres.paymentMethodsConfig;\n  var reusablePaymentMethods = Object.keys(config).filter(function (method) {\n    return config[method].isReusable;\n  });\n  return reusablePaymentMethods.reduce(function (obj, method) {\n    obj[method] = value;\n    return obj;\n  }, {});\n};\n\n\n//# sourceURL=webpack://dokan-pro/./modules/stripe-express/assets/src/js/utils.js?");

/***/ }),

/***/ "./node_modules/tinycolor2/tinycolor.js":
/*!**********************************************!*\
  !*** ./node_modules/tinycolor2/tinycolor.js ***!
  \**********************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n(function (Math) {\n  var trimLeft = /^\\s+/,\n      trimRight = /\\s+$/,\n      tinyCounter = 0,\n      mathRound = Math.round,\n      mathMin = Math.min,\n      mathMax = Math.max,\n      mathRandom = Math.random;\n\n  function tinycolor(color, opts) {\n    color = color ? color : '';\n    opts = opts || {}; // If input is already a tinycolor, return itself\n\n    if (color instanceof tinycolor) {\n      return color;\n    } // If we are called as a function, call using new instead\n\n\n    if (!(this instanceof tinycolor)) {\n      return new tinycolor(color, opts);\n    }\n\n    var rgb = inputToRGB(color);\n    this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType; // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n\n    if (this._r < 1) {\n      this._r = mathRound(this._r);\n    }\n\n    if (this._g < 1) {\n      this._g = mathRound(this._g);\n    }\n\n    if (this._b < 1) {\n      this._b = mathRound(this._b);\n    }\n\n    this._ok = rgb.ok;\n    this._tc_id = tinyCounter++;\n  }\n\n  tinycolor.prototype = {\n    isDark: function () {\n      return this.getBrightness() < 128;\n    },\n    isLight: function () {\n      return !this.isDark();\n    },\n    isValid: function () {\n      return this._ok;\n    },\n    getOriginalInput: function () {\n      return this._originalInput;\n    },\n    getFormat: function () {\n      return this._format;\n    },\n    getAlpha: function () {\n      return this._a;\n    },\n    getBrightness: function () {\n      //http://www.w3.org/TR/AERT#color-contrast\n      var rgb = this.toRgb();\n      return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function () {\n      //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n      var rgb = this.toRgb();\n      var RsRGB, GsRGB, BsRGB, R, G, B;\n      RsRGB = rgb.r / 255;\n      GsRGB = rgb.g / 255;\n      BsRGB = rgb.b / 255;\n\n      if (RsRGB <= 0.03928) {\n        R = RsRGB / 12.92;\n      } else {\n        R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n      }\n\n      if (GsRGB <= 0.03928) {\n        G = GsRGB / 12.92;\n      } else {\n        G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n      }\n\n      if (BsRGB <= 0.03928) {\n        B = BsRGB / 12.92;\n      } else {\n        B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n      }\n\n      return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n    },\n    setAlpha: function (value) {\n      this._a = boundAlpha(value);\n      this._roundA = mathRound(100 * this._a) / 100;\n      return this;\n    },\n    toHsv: function () {\n      var hsv = rgbToHsv(this._r, this._g, this._b);\n      return {\n        h: hsv.h * 360,\n        s: hsv.s,\n        v: hsv.v,\n        a: this._a\n      };\n    },\n    toHsvString: function () {\n      var hsv = rgbToHsv(this._r, this._g, this._b);\n      var h = mathRound(hsv.h * 360),\n          s = mathRound(hsv.s * 100),\n          v = mathRound(hsv.v * 100);\n      return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n    },\n    toHsl: function () {\n      var hsl = rgbToHsl(this._r, this._g, this._b);\n      return {\n        h: hsl.h * 360,\n        s: hsl.s,\n        l: hsl.l,\n        a: this._a\n      };\n    },\n    toHslString: function () {\n      var hsl = rgbToHsl(this._r, this._g, this._b);\n      var h = mathRound(hsl.h * 360),\n          s = mathRound(hsl.s * 100),\n          l = mathRound(hsl.l * 100);\n      return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n    },\n    toHex: function (allow3Char) {\n      return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function (allow3Char) {\n      return '#' + this.toHex(allow3Char);\n    },\n    toHex8: function (allow4Char) {\n      return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function (allow4Char) {\n      return '#' + this.toHex8(allow4Char);\n    },\n    toRgb: function () {\n      return {\n        r: mathRound(this._r),\n        g: mathRound(this._g),\n        b: mathRound(this._b),\n        a: this._a\n      };\n    },\n    toRgbString: function () {\n      return this._a == 1 ? \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" : \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function () {\n      return {\n        r: mathRound(bound01(this._r, 255) * 100) + \"%\",\n        g: mathRound(bound01(this._g, 255) * 100) + \"%\",\n        b: mathRound(bound01(this._b, 255) * 100) + \"%\",\n        a: this._a\n      };\n    },\n    toPercentageRgbString: function () {\n      return this._a == 1 ? \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function () {\n      if (this._a === 0) {\n        return \"transparent\";\n      }\n\n      if (this._a < 1) {\n        return false;\n      }\n\n      return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function (secondColor) {\n      var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n      var secondHex8String = hex8String;\n      var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n      if (secondColor) {\n        var s = tinycolor(secondColor);\n        secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n      }\n\n      return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n    },\n    toString: function (format) {\n      var formatSet = !!format;\n      format = format || this._format;\n      var formattedString = false;\n      var hasAlpha = this._a < 1 && this._a >= 0;\n      var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n      if (needsAlphaFormat) {\n        // Special case for \"transparent\", all other non-alpha formats\n        // will return rgba when there is transparency.\n        if (format === \"name\" && this._a === 0) {\n          return this.toName();\n        }\n\n        return this.toRgbString();\n      }\n\n      if (format === \"rgb\") {\n        formattedString = this.toRgbString();\n      }\n\n      if (format === \"prgb\") {\n        formattedString = this.toPercentageRgbString();\n      }\n\n      if (format === \"hex\" || format === \"hex6\") {\n        formattedString = this.toHexString();\n      }\n\n      if (format === \"hex3\") {\n        formattedString = this.toHexString(true);\n      }\n\n      if (format === \"hex4\") {\n        formattedString = this.toHex8String(true);\n      }\n\n      if (format === \"hex8\") {\n        formattedString = this.toHex8String();\n      }\n\n      if (format === \"name\") {\n        formattedString = this.toName();\n      }\n\n      if (format === \"hsl\") {\n        formattedString = this.toHslString();\n      }\n\n      if (format === \"hsv\") {\n        formattedString = this.toHsvString();\n      }\n\n      return formattedString || this.toHexString();\n    },\n    clone: function () {\n      return tinycolor(this.toString());\n    },\n    _applyModification: function (fn, args) {\n      var color = fn.apply(null, [this].concat([].slice.call(args)));\n      this._r = color._r;\n      this._g = color._g;\n      this._b = color._b;\n      this.setAlpha(color._a);\n      return this;\n    },\n    lighten: function () {\n      return this._applyModification(lighten, arguments);\n    },\n    brighten: function () {\n      return this._applyModification(brighten, arguments);\n    },\n    darken: function () {\n      return this._applyModification(darken, arguments);\n    },\n    desaturate: function () {\n      return this._applyModification(desaturate, arguments);\n    },\n    saturate: function () {\n      return this._applyModification(saturate, arguments);\n    },\n    greyscale: function () {\n      return this._applyModification(greyscale, arguments);\n    },\n    spin: function () {\n      return this._applyModification(spin, arguments);\n    },\n    _applyCombination: function (fn, args) {\n      return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function () {\n      return this._applyCombination(analogous, arguments);\n    },\n    complement: function () {\n      return this._applyCombination(complement, arguments);\n    },\n    monochromatic: function () {\n      return this._applyCombination(monochromatic, arguments);\n    },\n    splitcomplement: function () {\n      return this._applyCombination(splitcomplement, arguments);\n    },\n    triad: function () {\n      return this._applyCombination(triad, arguments);\n    },\n    tetrad: function () {\n      return this._applyCombination(tetrad, arguments);\n    }\n  }; // If input is an object, force 1 into \"1.0\" to handle ratios properly\n  // String input requires \"1.0\" as input, so 1 will be treated as 1\n\n  tinycolor.fromRatio = function (color, opts) {\n    if (typeof color == \"object\") {\n      var newColor = {};\n\n      for (var i in color) {\n        if (color.hasOwnProperty(i)) {\n          if (i === \"a\") {\n            newColor[i] = color[i];\n          } else {\n            newColor[i] = convertToPercentage(color[i]);\n          }\n        }\n      }\n\n      color = newColor;\n    }\n\n    return tinycolor(color, opts);\n  }; // Given a string or object, convert that input to RGB\n  // Possible string inputs:\n  //\n  //     \"red\"\n  //     \"#f00\" or \"f00\"\n  //     \"#ff0000\" or \"ff0000\"\n  //     \"#ff000000\" or \"ff000000\"\n  //     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n  //     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n  //     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n  //     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n  //     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n  //     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n  //     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n  //\n\n\n  function inputToRGB(color) {\n    var rgb = {\n      r: 0,\n      g: 0,\n      b: 0\n    };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n\n    if (typeof color == \"string\") {\n      color = stringInputToObject(color);\n    }\n\n    if (typeof color == \"object\") {\n      if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n        rgb = rgbToRgb(color.r, color.g, color.b);\n        ok = true;\n        format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n      } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n        s = convertToPercentage(color.s);\n        v = convertToPercentage(color.v);\n        rgb = hsvToRgb(color.h, s, v);\n        ok = true;\n        format = \"hsv\";\n      } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n        s = convertToPercentage(color.s);\n        l = convertToPercentage(color.l);\n        rgb = hslToRgb(color.h, s, l);\n        ok = true;\n        format = \"hsl\";\n      }\n\n      if (color.hasOwnProperty(\"a\")) {\n        a = color.a;\n      }\n    }\n\n    a = boundAlpha(a);\n    return {\n      ok: ok,\n      format: color.format || format,\n      r: mathMin(255, mathMax(rgb.r, 0)),\n      g: mathMin(255, mathMax(rgb.g, 0)),\n      b: mathMin(255, mathMax(rgb.b, 0)),\n      a: a\n    };\n  } // Conversion Functions\n  // --------------------\n  // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n  // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n  // `rgbToRgb`\n  // Handle bounds / percentage checking to conform to CSS color spec\n  // <http://www.w3.org/TR/css3-color/>\n  // *Assumes:* r, g, b in [0, 255] or [0, 1]\n  // *Returns:* { r, g, b } in [0, 255]\n\n\n  function rgbToRgb(r, g, b) {\n    return {\n      r: bound01(r, 255) * 255,\n      g: bound01(g, 255) * 255,\n      b: bound01(b, 255) * 255\n    };\n  } // `rgbToHsl`\n  // Converts an RGB color value to HSL.\n  // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n  // *Returns:* { h, s, l } in [0,1]\n\n\n  function rgbToHsl(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = mathMax(r, g, b),\n        min = mathMin(r, g, b);\n    var h,\n        s,\n        l = (max + min) / 2;\n\n    if (max == min) {\n      h = s = 0; // achromatic\n    } else {\n      var d = max - min;\n      s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n      switch (max) {\n        case r:\n          h = (g - b) / d + (g < b ? 6 : 0);\n          break;\n\n        case g:\n          h = (b - r) / d + 2;\n          break;\n\n        case b:\n          h = (r - g) / d + 4;\n          break;\n      }\n\n      h /= 6;\n    }\n\n    return {\n      h: h,\n      s: s,\n      l: l\n    };\n  } // `hslToRgb`\n  // Converts an HSL color value to RGB.\n  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n  // *Returns:* { r, g, b } in the set [0, 255]\n\n\n  function hslToRgb(h, s, l) {\n    var r, g, b;\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n\n    if (s === 0) {\n      r = g = b = l; // achromatic\n    } else {\n      var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n      var p = 2 * l - q;\n      r = hue2rgb(p, q, h + 1 / 3);\n      g = hue2rgb(p, q, h);\n      b = hue2rgb(p, q, h - 1 / 3);\n    }\n\n    return {\n      r: r * 255,\n      g: g * 255,\n      b: b * 255\n    };\n  } // `rgbToHsv`\n  // Converts an RGB color value to HSV\n  // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n  // *Returns:* { h, s, v } in [0,1]\n\n\n  function rgbToHsv(r, g, b) {\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n    var max = mathMax(r, g, b),\n        min = mathMin(r, g, b);\n    var h,\n        s,\n        v = max;\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n\n    if (max == min) {\n      h = 0; // achromatic\n    } else {\n      switch (max) {\n        case r:\n          h = (g - b) / d + (g < b ? 6 : 0);\n          break;\n\n        case g:\n          h = (b - r) / d + 2;\n          break;\n\n        case b:\n          h = (r - g) / d + 4;\n          break;\n      }\n\n      h /= 6;\n    }\n\n    return {\n      h: h,\n      s: s,\n      v: v\n    };\n  } // `hsvToRgb`\n  // Converts an HSV color value to RGB.\n  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n  // *Returns:* { r, g, b } in the set [0, 255]\n\n\n  function hsvToRgb(h, s, v) {\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n    var i = Math.floor(h),\n        f = h - i,\n        p = v * (1 - s),\n        q = v * (1 - f * s),\n        t = v * (1 - (1 - f) * s),\n        mod = i % 6,\n        r = [v, q, p, p, t, v][mod],\n        g = [t, v, v, q, p, p][mod],\n        b = [p, p, t, v, v, q][mod];\n    return {\n      r: r * 255,\n      g: g * 255,\n      b: b * 255\n    };\n  } // `rgbToHex`\n  // Converts an RGB color to hex\n  // Assumes r, g, and b are contained in the set [0, 255]\n  // Returns a 3 or 6 character hex\n\n\n  function rgbToHex(r, g, b, allow3Char) {\n    var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))]; // Return a 3 character hex if possible\n\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n      return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n  } // `rgbaToHex`\n  // Converts an RGBA color plus alpha transparency to hex\n  // Assumes r, g, b are contained in the set [0, 255] and\n  // a in [0, 1]. Returns a 4 or 8 character rgba hex\n\n\n  function rgbaToHex(r, g, b, a, allow4Char) {\n    var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16)), pad2(convertDecimalToHex(a))]; // Return a 4 character hex if possible\n\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n      return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n  } // `rgbaToArgbHex`\n  // Converts an RGBA color to an ARGB Hex8 string\n  // Rarely used, but required for \"toFilter()\"\n\n\n  function rgbaToArgbHex(r, g, b, a) {\n    var hex = [pad2(convertDecimalToHex(a)), pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))];\n    return hex.join(\"\");\n  } // `equals`\n  // Can be called with any tinycolor input\n\n\n  tinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) {\n      return false;\n    }\n\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n  };\n\n  tinycolor.random = function () {\n    return tinycolor.fromRatio({\n      r: mathRandom(),\n      g: mathRandom(),\n      b: mathRandom()\n    });\n  }; // Modification Functions\n  // ----------------------\n  // Thanks to less.js for some of the basics here\n  // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\n\n  function desaturate(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n  }\n\n  function saturate(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n  }\n\n  function greyscale(color) {\n    return tinycolor(color).desaturate(100);\n  }\n\n  function lighten(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n  }\n\n  function brighten(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100))));\n    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100))));\n    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100))));\n    return tinycolor(rgb);\n  }\n\n  function darken(color, amount) {\n    amount = amount === 0 ? 0 : amount || 10;\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n  } // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n  // Values outside of this range will be wrapped into this range.\n\n\n  function spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n  } // Combination Functions\n  // ---------------------\n  // Thanks to jQuery xColor for some of the ideas behind these\n  // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\n\n  function complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n  }\n\n  function triad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [tinycolor(color), tinycolor({\n      h: (h + 120) % 360,\n      s: hsl.s,\n      l: hsl.l\n    }), tinycolor({\n      h: (h + 240) % 360,\n      s: hsl.s,\n      l: hsl.l\n    })];\n  }\n\n  function tetrad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [tinycolor(color), tinycolor({\n      h: (h + 90) % 360,\n      s: hsl.s,\n      l: hsl.l\n    }), tinycolor({\n      h: (h + 180) % 360,\n      s: hsl.s,\n      l: hsl.l\n    }), tinycolor({\n      h: (h + 270) % 360,\n      s: hsl.s,\n      l: hsl.l\n    })];\n  }\n\n  function splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [tinycolor(color), tinycolor({\n      h: (h + 72) % 360,\n      s: hsl.s,\n      l: hsl.l\n    }), tinycolor({\n      h: (h + 216) % 360,\n      s: hsl.s,\n      l: hsl.l\n    })];\n  }\n\n  function analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n\n    for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n      hsl.h = (hsl.h + part) % 360;\n      ret.push(tinycolor(hsl));\n    }\n\n    return ret;\n  }\n\n  function monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h,\n        s = hsv.s,\n        v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n\n    while (results--) {\n      ret.push(tinycolor({\n        h: h,\n        s: s,\n        v: v\n      }));\n      v = (v + modification) % 1;\n    }\n\n    return ret;\n  } // Utility Functions\n  // ---------------------\n\n\n  tinycolor.mix = function (color1, color2, amount) {\n    amount = amount === 0 ? 0 : amount || 50;\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n    var p = amount / 100;\n    var rgba = {\n      r: (rgb2.r - rgb1.r) * p + rgb1.r,\n      g: (rgb2.g - rgb1.g) * p + rgb1.g,\n      b: (rgb2.b - rgb1.b) * p + rgb1.b,\n      a: (rgb2.a - rgb1.a) * p + rgb1.a\n    };\n    return tinycolor(rgba);\n  }; // Readability Functions\n  // ---------------------\n  // <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n  // `contrast`\n  // Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\n\n\n  tinycolor.readability = function (color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n  }; // `isReadable`\n  // Ensure that foreground and background color combinations meet WCAG2 guidelines.\n  // The third argument is an optional Object.\n  //      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n  //      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n  // If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n  // *Example*\n  //    tinycolor.isReadable(\"#000\", \"#111\") => false\n  //    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n\n\n  tinycolor.isReadable = function (color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n    out = false;\n    wcag2Parms = validateWCAG2Parms(wcag2);\n\n    switch (wcag2Parms.level + wcag2Parms.size) {\n      case \"AAsmall\":\n      case \"AAAlarge\":\n        out = readability >= 4.5;\n        break;\n\n      case \"AAlarge\":\n        out = readability >= 3;\n        break;\n\n      case \"AAAsmall\":\n        out = readability >= 7;\n        break;\n    }\n\n    return out;\n  }; // `mostReadable`\n  // Given a base color and a list of possible foreground or background\n  // colors for that base, returns the most readable color.\n  // Optionally returns Black or White if the most readable color is unreadable.\n  // *Example*\n  //    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n  //    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n  //    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n  //    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n\n\n  tinycolor.mostReadable = function (baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors;\n    level = args.level;\n    size = args.size;\n\n    for (var i = 0; i < colorList.length; i++) {\n      readability = tinycolor.readability(baseColor, colorList[i]);\n\n      if (readability > bestScore) {\n        bestScore = readability;\n        bestColor = tinycolor(colorList[i]);\n      }\n    }\n\n    if (tinycolor.isReadable(baseColor, bestColor, {\n      \"level\": level,\n      \"size\": size\n    }) || !includeFallbackColors) {\n      return bestColor;\n    } else {\n      args.includeFallbackColors = false;\n      return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n    }\n  }; // Big List of Colors\n  // ------------------\n  // <http://www.w3.org/TR/css3-color/#svg-color>\n\n\n  var names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n  }; // Make it easy to access colors via `hexNames[hex]`\n\n  var hexNames = tinycolor.hexNames = flip(names); // Utilities\n  // ---------\n  // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n\n  function flip(o) {\n    var flipped = {};\n\n    for (var i in o) {\n      if (o.hasOwnProperty(i)) {\n        flipped[o[i]] = i;\n      }\n    }\n\n    return flipped;\n  } // Return a valid alpha value [0,1] with all invalid values being set to 1\n\n\n  function boundAlpha(a) {\n    a = parseFloat(a);\n\n    if (isNaN(a) || a < 0 || a > 1) {\n      a = 1;\n    }\n\n    return a;\n  } // Take input from [0, n] and return it as [0, 1]\n\n\n  function bound01(n, max) {\n    if (isOnePointZero(n)) {\n      n = \"100%\";\n    }\n\n    var processPercent = isPercentage(n);\n    n = mathMin(max, mathMax(0, parseFloat(n))); // Automatically convert percentage into number\n\n    if (processPercent) {\n      n = parseInt(n * max, 10) / 100;\n    } // Handle floating point rounding errors\n\n\n    if (Math.abs(n - max) < 0.000001) {\n      return 1;\n    } // Convert into [0, 1] range if it isn't already\n\n\n    return n % max / parseFloat(max);\n  } // Force a number between 0 and 1\n\n\n  function clamp01(val) {\n    return mathMin(1, mathMax(0, val));\n  } // Parse a base-16 hex value into a base-10 integer\n\n\n  function parseIntFromHex(val) {\n    return parseInt(val, 16);\n  } // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n  // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n\n\n  function isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n  } // Check to see if string passed in is a percentage\n\n\n  function isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf('%') != -1;\n  } // Force a hex value to have 2 characters\n\n\n  function pad2(c) {\n    return c.length == 1 ? '0' + c : '' + c;\n  } // Replace a decimal with it's percentage value\n\n\n  function convertToPercentage(n) {\n    if (n <= 1) {\n      n = n * 100 + \"%\";\n    }\n\n    return n;\n  } // Converts a decimal to a hex value\n\n\n  function convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n  } // Converts a hex value to a decimal\n\n\n  function convertHexToDecimal(h) {\n    return parseIntFromHex(h) / 255;\n  }\n\n  var matchers = function () {\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\"; // <http://www.w3.org/TR/css3-values/#number-value>\n\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\"; // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\"; // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    return {\n      CSS_UNIT: new RegExp(CSS_UNIT),\n      rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n      rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n      hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n      hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n      hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n      hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n      hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n      hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n      hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n      hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n  }(); // `isValidCSSUnit`\n  // Take in a single string / number and check to see if it looks like a CSS unit\n  // (see `matchers` above for definition).\n\n\n  function isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n  } // `stringInputToObject`\n  // Permissive string parsing.  Take in a number of formats, and output an object\n  // based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n\n\n  function stringInputToObject(color) {\n    color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n    var named = false;\n\n    if (names[color]) {\n      color = names[color];\n      named = true;\n    } else if (color == 'transparent') {\n      return {\n        r: 0,\n        g: 0,\n        b: 0,\n        a: 0,\n        format: \"name\"\n      };\n    } // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n\n\n    var match;\n\n    if (match = matchers.rgb.exec(color)) {\n      return {\n        r: match[1],\n        g: match[2],\n        b: match[3]\n      };\n    }\n\n    if (match = matchers.rgba.exec(color)) {\n      return {\n        r: match[1],\n        g: match[2],\n        b: match[3],\n        a: match[4]\n      };\n    }\n\n    if (match = matchers.hsl.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        l: match[3]\n      };\n    }\n\n    if (match = matchers.hsla.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        l: match[3],\n        a: match[4]\n      };\n    }\n\n    if (match = matchers.hsv.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        v: match[3]\n      };\n    }\n\n    if (match = matchers.hsva.exec(color)) {\n      return {\n        h: match[1],\n        s: match[2],\n        v: match[3],\n        a: match[4]\n      };\n    }\n\n    if (match = matchers.hex8.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1]),\n        g: parseIntFromHex(match[2]),\n        b: parseIntFromHex(match[3]),\n        a: convertHexToDecimal(match[4]),\n        format: named ? \"name\" : \"hex8\"\n      };\n    }\n\n    if (match = matchers.hex6.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1]),\n        g: parseIntFromHex(match[2]),\n        b: parseIntFromHex(match[3]),\n        format: named ? \"name\" : \"hex\"\n      };\n    }\n\n    if (match = matchers.hex4.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1] + '' + match[1]),\n        g: parseIntFromHex(match[2] + '' + match[2]),\n        b: parseIntFromHex(match[3] + '' + match[3]),\n        a: convertHexToDecimal(match[4] + '' + match[4]),\n        format: named ? \"name\" : \"hex8\"\n      };\n    }\n\n    if (match = matchers.hex3.exec(color)) {\n      return {\n        r: parseIntFromHex(match[1] + '' + match[1]),\n        g: parseIntFromHex(match[2] + '' + match[2]),\n        b: parseIntFromHex(match[3] + '' + match[3]),\n        format: named ? \"name\" : \"hex\"\n      };\n    }\n\n    return false;\n  }\n\n  function validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\n      \"level\": \"AA\",\n      \"size\": \"small\"\n    };\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n\n    if (level !== \"AA\" && level !== \"AAA\") {\n      level = \"AA\";\n    }\n\n    if (size !== \"small\" && size !== \"large\") {\n      size = \"small\";\n    }\n\n    return {\n      \"level\": level,\n      \"size\": size\n    };\n  } // Node: Export function\n\n\n  if ( true && module.exports) {\n    module.exports = tinycolor;\n  } // AMD/requirejs: Define the module\n  else if (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n      return tinycolor;\n    }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n  } // Browser: Expose to window\n  else {}\n})(Math);\n\n//# sourceURL=webpack://dokan-pro/./node_modules/tinycolor2/tinycolor.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\n\nfunction _regeneratorRuntime() {\n  \"use strict\";\n  /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n  module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n    return exports;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  var exports = {},\n      Op = Object.prototype,\n      hasOwn = Op.hasOwnProperty,\n      $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n      iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n      asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n      toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    return Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), obj[key];\n  }\n\n  try {\n    define({}, \"\");\n  } catch (err) {\n    define = function define(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n        generator = Object.create(protoGenerator.prototype),\n        context = new Context(tryLocsList || []);\n    return generator._invoke = function (innerFn, self, context) {\n      var state = \"suspendedStart\";\n      return function (method, arg) {\n        if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n        if (\"completed\" === state) {\n          if (\"throw\" === method) throw arg;\n          return doneResult();\n        }\n\n        for (context.method = method, context.arg = arg;;) {\n          var delegate = context.delegate;\n\n          if (delegate) {\n            var delegateResult = maybeInvokeDelegate(delegate, context);\n\n            if (delegateResult) {\n              if (delegateResult === ContinueSentinel) continue;\n              return delegateResult;\n            }\n          }\n\n          if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n            if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n            context.dispatchException(context.arg);\n          } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n          state = \"executing\";\n          var record = tryCatch(innerFn, self, context);\n\n          if (\"normal\" === record.type) {\n            if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n            return {\n              value: record.arg,\n              done: context.done\n            };\n          }\n\n          \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n        }\n      };\n    }(innerFn, self, context), generator;\n  }\n\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n\n  exports.wrap = wrap;\n  var ContinueSentinel = {};\n\n  function Generator() {}\n\n  function GeneratorFunction() {}\n\n  function GeneratorFunctionPrototype() {}\n\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n  var getProto = Object.getPrototypeOf,\n      NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      define(prototype, method, function (arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n\n      if (\"throw\" !== record.type) {\n        var result = record.arg,\n            value = result.value;\n        return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function (err) {\n          invoke(\"throw\", err, resolve, reject);\n        }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped, resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n\n      reject(record.arg);\n    }\n\n    var previousPromise;\n\n    this._invoke = function (method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function (resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n    };\n  }\n\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n\n    if (undefined === method) {\n      if (context.delegate = null, \"throw\" === context.method) {\n        if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n        context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n    if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n    var info = record.arg;\n    return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n  }\n\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n    1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\", delete record.arg, entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n  }\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) return iteratorMethod.call(iterable);\n      if (\"function\" == typeof iterable.next) return iterable;\n\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n            next = function next() {\n          for (; ++i < iterable.length;) {\n            if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n          }\n\n          return next.value = undefined, next.done = !0, next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    return {\n      next: doneResult\n    };\n  }\n\n  function doneResult() {\n    return {\n      value: undefined,\n      done: !0\n    };\n  }\n\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n    var ctor = \"function\" == typeof genFun && genFun.constructor;\n    return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n  }, exports.mark = function (genFun) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n  }, exports.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    void 0 === PromiseImpl && (PromiseImpl = Promise);\n    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n      return result.done ? result.value : iter.next();\n    });\n  }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n    return this;\n  }), define(Gp, \"toString\", function () {\n    return \"[object Generator]\";\n  }), exports.keys = function (object) {\n    var keys = [];\n\n    for (var key in object) {\n      keys.push(key);\n    }\n\n    return keys.reverse(), function next() {\n      for (; keys.length;) {\n        var key = keys.pop();\n        if (key in object) return next.value = key, next.done = !1, next;\n      }\n\n      return next.done = !0, next;\n    };\n  }, exports.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n        \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n      }\n    },\n    stop: function stop() {\n      this.done = !0;\n      var rootRecord = this.tryEntries[0].completion;\n      if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) throw exception;\n      var context = this;\n\n      function handle(loc, caught) {\n        return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i],\n            record = entry.completion;\n        if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n              hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n          } else {\n            if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n      var record = finallyEntry ? finallyEntry.completion : {};\n      return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (\"throw\" === record.type) throw record.arg;\n      return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n\n          if (\"throw\" === record.type) {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n\n          return thrown;\n        }\n      }\n\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      return this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n    }\n  }, exports;\n}\n\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  \*******************************************************/
/***/ ((module) => {

eval("function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/typeof.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// TODO(Babel 8): Remove this file.\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ \"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\")();\n\nmodule.exports = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/regenerator/index.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayLikeToArray)\n/* harmony export */ });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayWithHoles)\n/* harmony export */ });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayWithoutHoles)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _asyncToGenerator)\n/* harmony export */ });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _classCallCheck)\n/* harmony export */ });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js":
/*!****************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _createClass)\n/* harmony export */ });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/createClass.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _defineProperty)\n/* harmony export */ });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/defineProperty.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _iterableToArray)\n/* harmony export */ });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _iterableToArrayLimit)\n/* harmony export */ });\nfunction _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n\n  var _s, _e;\n\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _nonIterableRest)\n/* harmony export */ });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _nonIterableSpread)\n/* harmony export */ });\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _slicedToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _toConsumableArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _unsupportedIterableToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}\n\n//# sourceURL=webpack://dokan-pro/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./modules/stripe-express/assets/src/js/checkout.js");
/******/ 	
/******/ })()
;