/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./src/admin/customizer/alpha-color-picker.js"
/*!****************************************************!*\
  !*** ./src/admin/customizer/alpha-color-picker.js ***!
  \****************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   installAlphaColorPicker: () => (/* binding */ installAlphaColorPicker)
/* harmony export */ });
/**
 * Alpha color picker: extends WP Color + jQuery plugin.
 */
function installAlphaColorPicker($) {
  /**
   * Override the stock color.js toString() method to add support for
   * outputting RGBa or Hex.
   */
  Color.prototype.toString = function (flag) {
    // If our no-alpha flag has been passed in, output RGBa value with 100% opacity.
    // This is used to set the background color on the opacity slider during color changes.
    if ('no-alpha' == flag) {
      return this.toCSS('rgba', '1').replace(/\s+/g, '');
    }

    // If we have a proper opacity value, output RGBa.
    if (1 > this._alpha) {
      return this.toCSS('rgba', this._alpha).replace(/\s+/g, '');
    }

    // Proceed with stock color.js hex output.
    var hex = parseInt(this._color, 10).toString(16);
    if (this.error) {
      return '';
    }
    if (hex.length < 6) {
      for (var i = 6 - hex.length - 1; i >= 0; i--) {
        hex = '0' + hex;
      }
    }
    return '#' + hex;
  };

  /**
   * Given an RGBa, RGB, or hex color value, return the alpha channel value.
   */
  function acp_get_alpha_value_from_color(value) {
    var alphaVal;

    // Remove all spaces from the passed in value to help our RGBa regex.
    value = value.replace(/ /g, '');
    if (value.match(/rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/)) {
      alphaVal = parseFloat(value.match(/rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/)[1]).toFixed(2) * 100;
      alphaVal = parseInt(alphaVal);
    } else {
      alphaVal = 100;
    }
    return alphaVal;
  }

  /**
   * Force update the alpha value of the color picker object and maybe the alpha slider.
   */
  function acp_update_alpha_value_on_color_input(alpha, $input, $alphaSlider, update_slider) {
    var iris, colorPicker, color;
    iris = $input.data('a8cIris');
    colorPicker = $input.data('wpWpColorPicker');

    // Set the alpha value on the Iris object.
    iris._color._alpha = alpha;

    // Store the new color value.
    color = iris._color.toString();

    // Set the value of the input.
    $input.val(color);
    $input.trigger('color_change');

    // Update the background color of the color picker.
    colorPicker.toggler.css({
      'background-color': color
    });

    // Maybe update the alpha slider itself.
    if (update_slider) {
      acp_update_alpha_value_on_alpha_slider(alpha, $alphaSlider);
    }

    // Update the color value of the color picker object.
    $input.wpColorPicker('color', color);
  }

  /**
   * Update the slider handle position and label.
   */
  function acp_update_alpha_value_on_alpha_slider(alpha, $alphaSlider) {
    $alphaSlider.slider('value', alpha);
    $alphaSlider.find('.ui-slider-handle').text(alpha.toString());
  }
  $.fn.alphaColorPicker = function () {
    return this.each(function () {
      // Scope the vars.
      var $input, startingColor, paletteInput, showOpacity, defaultColor, palette, colorPickerOptions, $container, $alphaSlider, alphaVal, sliderOptions;

      // Store the input.
      $input = $(this);

      // We must wrap the input now in order to get our a top level class
      // around the HTML added by wpColorPicker().
      $input.wrap('<div class="alpha-color-picker-wrap"></div>');

      // Get some data off the input.
      paletteInput = $input.attr('data-palette') || 'true';
      showOpacity = $input.attr('data-show-opacity') || 'true';
      defaultColor = $input.attr('data-default-color') || '';

      // Process the palette.
      if (paletteInput.indexOf('|') !== -1) {
        palette = paletteInput.split('|');
      } else if ('false' == paletteInput) {
        palette = false;
      } else {
        palette = true;
      }

      // Get a clean starting value for the option.
      startingColor = $input.val().replace(/\s+/g, '');
      //startingColor = $input.val().replace( '#', '' );
      //console.log( startingColor );

      // If we don't yet have a value, use the default color.
      if ('' == startingColor) {
        startingColor = defaultColor;
      }

      // Set up the options that we'll pass to wpColorPicker().
      colorPickerOptions = {
        change: function (event, ui) {
          var key, value, alpha, $transparency;
          key = $input.attr('data-customize-setting-link');
          value = $input.wpColorPicker('color');

          // Set the opacity value on the slider handle when the default color button is clicked.
          if (defaultColor == value) {
            alpha = acp_get_alpha_value_from_color(value);
            $alphaSlider.find('.ui-slider-handle').text(alpha);
          }

          // If we're in the Customizer, send an ajax request to wp.customize
          // to trigger the Save action.
          if (typeof wp.customize != 'undefined') {
            wp.customize(key, function (obj) {
              obj.set(value);
            });
          }
          $transparency = $container.find('.transparency');

          // Always show the background color of the opacity slider at 100% opacity.
          $transparency.css('background-color', ui.color.toString('no-alpha'));
          $input.trigger('color_change');
        },
        clear: function () {
          var key = $input.attr('data-customize-setting-link') || '';
          if (key && key !== '') {
            if (typeof wp.customize != 'undefined') {
              wp.customize(key, function (obj) {
                obj.set('');
              });
            }
          }
          $input.val('');
          $input.trigger('color_change');
        },
        palettes: palette // Use the passed in palette.
      };

      // Create the colorpicker.
      $input.wpColorPicker(colorPickerOptions);
      $container = $input.parents('.wp-picker-container:first');

      // Insert our opacity slider.
      $('<div class="alpha-color-picker-container">' + '<div class="min-click-zone click-zone"></div>' + '<div class="max-click-zone click-zone"></div>' + '<div class="alpha-slider"></div>' + '<div class="transparency"></div>' + '</div>').appendTo($container.find('.wp-picker-holder'));
      $alphaSlider = $container.find('.alpha-slider');

      // If starting value is in format RGBa, grab the alpha channel.
      alphaVal = acp_get_alpha_value_from_color(startingColor);

      // Set up jQuery UI slider() options.
      sliderOptions = {
        create: function (event, ui) {
          var value = $(this).slider('value');

          // Set up initial values.
          $(this).find('.ui-slider-handle').text(value);
          $(this).siblings('.transparency ').css('background-color', startingColor);
        },
        value: alphaVal,
        range: 'max',
        step: 1,
        min: 0,
        max: 100,
        animate: 300
      };

      // Initialize jQuery UI slider with our options.
      $alphaSlider.slider(sliderOptions);

      // Maybe show the opacity on the handle.
      if ('true' == showOpacity) {
        $alphaSlider.find('.ui-slider-handle').addClass('show-opacity');
      }

      // Bind event handlers for the click zones.
      $container.find('.min-click-zone').on('click', function () {
        acp_update_alpha_value_on_color_input(0, $input, $alphaSlider, true);
      });
      $container.find('.max-click-zone').on('click', function () {
        acp_update_alpha_value_on_color_input(100, $input, $alphaSlider, true);
      });

      // Bind event handler for clicking on a palette color.
      $container.find('.iris-palette').on('click', function () {
        var color, alpha;
        color = $(this).css('background-color');
        alpha = acp_get_alpha_value_from_color(color);
        acp_update_alpha_value_on_alpha_slider(alpha, $alphaSlider);

        // Sometimes Iris doesn't set a perfect background-color on the palette,
        // for example rgba(20, 80, 100, 0.3) becomes rgba(20, 80, 100, 0.298039).
        // To compensante for this we round the opacity value on RGBa colors here
        // and save it a second time to the color picker object.
        if (alpha != 100) {
          color = color.replace(/[^,]+(?=\))/, (alpha / 100).toFixed(2));
        }
        $input.wpColorPicker('color', color);
      });

      // Bind event handler for clicking on the 'Default' button.
      $container.find('.button.wp-picker-default').on('click', function () {
        var alpha = acp_get_alpha_value_from_color(defaultColor);
        acp_update_alpha_value_on_alpha_slider(alpha, $alphaSlider);
      });

      // Bind event handler for typing or pasting into the input.
      $input.on('input', function () {
        var value = $(this).val();
        var alpha = acp_get_alpha_value_from_color(value);
        acp_update_alpha_value_on_alpha_slider(alpha, $alphaSlider);
      });

      // Update all the things when the slider is interacted with.
      $alphaSlider.slider().on('slide', function (event, ui) {
        var alpha = parseFloat(ui.value) / 100.0;
        acp_update_alpha_value_on_color_input(alpha, $input, $alphaSlider, false);

        // Change value shown on slider handle.
        $(this).find('.ui-slider-handle').text(ui.value);
      });
    });
  };
}

/***/ },

/***/ "./src/admin/customizer/control-alpha-color.js"
/*!*****************************************************!*\
  !*** ./src/admin/customizer/control-alpha-color.js ***!
  \*****************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   registerAlphaColorControl: () => (/* binding */ registerAlphaColorControl)
/* harmony export */ });
/**
 * Customizer control: alpha-color.
 */
function registerAlphaColorControl(api, $) {
  api.controlConstructor['alpha-color'] = api.Control.extend({
    ready: function () {
      var control = this;
      $('.alpha-color-control', control.container).alphaColorPicker({
        clear: function () {}
      });
    }
  });
}

/***/ },

/***/ "./src/admin/customizer/control-bindings.js"
/*!**************************************************!*\
  !*** ./src/admin/customizer/control-bindings.js ***!
  \**************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   initControlBindings: () => (/* binding */ initControlBindings)
/* harmony export */ });
/**
 * Hero / gallery / theme action UI toggles.
 */
function initControlBindings($) {
  if (typeof onepress_customizer_settings !== "undefined") {
    if (onepress_customizer_settings.number_action > 0) {
      $('.control-section-themes h3.accordion-section-title').append('<a class="theme-action-count" href="' + onepress_customizer_settings.action_url + '">' + onepress_customizer_settings.number_action + '</a>');
    }
  }

  /**
   * For Hero layout content settings
   */
  $('select[data-customize-setting-link="onepress_hero_layout"]').on('change on_custom_load', function () {
    var v = $(this).val() || '';
    $("li[id^='customize-control-onepress_hcl']").hide();
    $("li[id^='customize-control-onepress_hcl" + v + "']").show();
  });
  $('select[data-customize-setting-link="onepress_hero_layout"]').trigger('on_custom_load');

  /**
   * For Gallery content settings
   */
  $('select[data-customize-setting-link="onepress_gallery_source"]').on('change on_custom_load', function () {
    var v = $(this).val() || '';
    $("li[id^='customize-control-onepress_gallery_source_']").hide();
    $("li[id^='customize-control-onepress_gallery_api_']").hide();
    $("li[id^='customize-control-onepress_gallery_settings_']").hide();
    $("li[id^='customize-control-onepress_gallery_source_" + v + "']").show();
    $("li[id^='customize-control-onepress_gallery_api_" + v + "']").show();
    $("li[id^='customize-control-onepress_gallery_settings_" + v + "']").show();
  });
  $('select[data-customize-setting-link="onepress_gallery_source"]').trigger('on_custom_load');

  /**
   * For Gallery display settings
   */
  $('select[data-customize-setting-link="onepress_gallery_display"]').on('change on_custom_load', function () {
    var v = $(this).val() || '';
    switch (v) {
      case 'slider':
        $("#customize-control-onepress_g_row_height, #customize-control-onepress_g_col, #customize-control-onepress_g_spacing").hide();
        break;
      case 'justified':
        $("#customize-control-onepress_g_col, #customize-control-onepress_g_spacing").hide();
        $("#customize-control-onepress_g_row_height").show();
        break;
      case 'carousel':
        $("#customize-control-onepress_g_row_height, #customize-control-onepress_g_col").hide();
        $("#customize-control-onepress_g_col, #customize-control-onepress_g_spacing").show();
        break;
      case 'masonry':
        $("#customize-control-onepress_g_row_height").hide();
        $("#customize-control-onepress_g_col, #customize-control-onepress_g_spacing").show();
        break;
      default:
        $("#customize-control-onepress_g_row_height").hide();
        $("#customize-control-onepress_g_col, #customize-control-onepress_g_spacing").show();
    }
  });
  $('select[data-customize-setting-link="onepress_gallery_display"]').trigger('on_custom_load');

  /**
   * News section: show column string only when Blog layout is Grid
   */
  $('select[data-customize-setting-link="onepress_news_layout"]').on('change on_custom_load', function () {
    var v = $(this).val() || '';
    if (v === 'grid') {
      $('#customize-control-onepress_news_grid_columns').show();
    } else {
      $('#customize-control-onepress_news_grid_columns').hide();
    }
  });
  $('select[data-customize-setting-link="onepress_news_layout"]').trigger('on_custom_load');

  /**
   * Blog Posts (global): grid column string only when layout is Grid
   */
  $('select[data-customize-setting-link="onepress_blog_posts_layout"]').on('change on_custom_load', function () {
    var v = $(this).val() || '';
    if (v === 'grid') {
      $('#customize-control-onepress_blog_posts_grid_columns').show();
    } else {
      $('#customize-control-onepress_blog_posts_grid_columns').hide();
    }
  });
  $('select[data-customize-setting-link="onepress_blog_posts_layout"]').trigger('on_custom_load');
}

/***/ },

/***/ "./src/admin/customizer/control-repeatable.js"
/*!****************************************************!*\
  !*** ./src/admin/customizer/control-repeatable.js ***!
  \****************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   registerRepeatableControl: () => (/* binding */ registerRepeatableControl)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ "react-dom/client");
/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _repeatable_RepeatableControlApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./repeatable/RepeatableControlApp */ "./src/admin/customizer/repeatable/RepeatableControlApp.jsx");
/* harmony import */ var _repeatable_repeatable_media_bridge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./repeatable/repeatable-media-bridge */ "./src/admin/customizer/repeatable/repeatable-media-bridge.js");
/**
 * Customizer control: repeatable fields (React UI + wp.customize.Setting bridge).
 */




function registerRepeatableControl(api, $) {
  (0,_repeatable_repeatable_media_bridge__WEBPACK_IMPORTED_MODULE_3__.installRepeatableMediaBridge)($);
  api.controlConstructor['repeatable'] = api.Control.extend({
    ready() {
      const control = this;
      const run = () => {
        const ul = control.container.find('.form-data .list-repeatable').get(0);
        if (!ul) {
          return;
        }
        const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(ul);
        root.render((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_repeatable_RepeatableControlApp__WEBPACK_IMPORTED_MODULE_2__.RepeatableControlApp, {
          api,
          $,
          control
        }));
        control._onepressRepeatableRoot = root;
      };
      if (typeof window.requestAnimationFrame === 'function') {
        window.requestAnimationFrame(() => {
          window.requestAnimationFrame(run);
        });
      } else {
        window.setTimeout(run, 50);
      }
    }
  });
}

/***/ },

/***/ "./src/admin/customizer/icon-picker.js"
/*!*********************************************!*\
  !*** ./src/admin/customizer/icon-picker.js ***!
  \*********************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   initIconPicker: () => (/* binding */ initIconPicker)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ "react-dom/client");
/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _icon_picker_IconPickerApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icon-picker/IconPickerApp */ "./src/admin/customizer/icon-picker/IconPickerApp.jsx");
/* harmony import */ var _icon_picker_injectFontLinks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icon-picker/injectFontLinks */ "./src/admin/customizer/icon-picker/injectFontLinks.js");
/**
 * Icon picker (React) + footer layout columns visibility.
 */




function initFooterLayoutColumns($) {
  const displayFooterLayout = function (l) {
    $('li[id^="customize-control-footer_custom_"]').hide();
    $('li[id^="customize-control-footer_custom_' + l + '_columns"]').show();
  };
  displayFooterLayout($('#customize-control-footer_layout select').val());
  $('#customize-control-footer_layout select').on('change', function () {
    displayFooterLayout($(this).val());
  });
}
function initIconPicker($) {
  window.editing_icon = false;
  if (typeof C_Icon_Picker === 'undefined') {
    initFooterLayoutColumns($);
    return;
  }
  const hasFonts = C_Icon_Picker.fonts && Object.keys(C_Icon_Picker.fonts).length > 0;
  const hasSvgTab = Boolean(C_Icon_Picker.svg_code);
  if (!hasFonts && !hasSvgTab) {
    initFooterLayoutColumns($);
    return;
  }
  (0,_icon_picker_injectFontLinks__WEBPACK_IMPORTED_MODULE_3__.injectIconFontLinks)($);
  const overlay = document.querySelector('.wp-full-overlay');
  const host = document.createElement('div');
  host.id = 'onepress-icon-picker-host';
  (overlay || document.body).appendChild(host);
  const root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot)(host);
  root.render((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_icon_picker_IconPickerApp__WEBPACK_IMPORTED_MODULE_2__.IconPickerApp, {
    $
  }));
  initFooterLayoutColumns($);
}

/***/ },

/***/ "./src/admin/customizer/icon-picker/IconPickerApp.jsx"
/*!************************************************************!*\
  !*** ./src/admin/customizer/icon-picker/IconPickerApp.jsx ***!
  \************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   IconPickerApp: () => (/* binding */ IconPickerApp)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _repeatable_repeatable_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../repeatable/repeatable-values */ "./src/admin/customizer/repeatable/repeatable-values.js");

/**
 * Customizer floating icon picker (Font Awesome / C_Icon_Picker + SVG code).
 */


const SVG_KEY = 'svg';
function normalizeFontGroups() {
  if (typeof C_Icon_Picker === 'undefined' || !C_Icon_Picker.fonts) {
    return [];
  }
  return Object.keys(C_Icon_Picker.fonts).map(key => {
    const raw = C_Icon_Picker.fonts[key] || {};
    const prefix = raw.prefix || '';
    const icons = String(raw.icons || '').split('|').filter(Boolean).map(part => prefix ? `${prefix} ${part}`.trim() : part);
    return {
      key,
      name: raw.name || key,
      icons
    };
  });
}
function dispatchIconCommit(wrapperEl, value) {
  if (!wrapperEl) {
    return;
  }
  window.dispatchEvent(new CustomEvent(_repeatable_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.ONEPRESS_ICON_COMMIT_EVENT, {
    bubbles: true,
    detail: {
      wrapperEl,
      value: String(value)
    }
  }));
}
function IconPickerApp({
  $
}) {
  const fontGroups = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useMemo)(normalizeFontGroups, []);
  const searchPlaceholder = typeof C_Icon_Picker !== 'undefined' && C_Icon_Picker.search ? C_Icon_Picker.search : 'Search';
  const showSvgOption = typeof C_Icon_Picker !== 'undefined' && Boolean(C_Icon_Picker.svg_code);
  const applySvgLabel = typeof C_Icon_Picker !== 'undefined' && C_Icon_Picker.apply_svg ? C_Icon_Picker.apply_svg : 'Apply';
  const svgPlaceholder = typeof C_Icon_Picker !== 'undefined' && C_Icon_Picker.svg_placeholder ? C_Icon_Picker.svg_placeholder : '';
  const defaultKey = fontGroups[0]?.key || (showSvgOption ? SVG_KEY : '');
  const [activeKey, setActiveKey] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultKey);
  const [search, setSearch] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)('');
  const [isPickerActive, setIsPickerActive] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
  const [svgCode, setSvgCode] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)('');
  const q = search.trim().toLowerCase();
  const closePicker = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
    setIsPickerActive(false);
    window.editing_icon = false;
    $('body').find('.icon-wrapper').removeClass('icon-editing');
  }, [$]);
  const applySelection = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(fullName => {
    const $wrap = window.editing_icon;
    if ($wrap && $wrap.length) {
      dispatchIconCommit($wrap.get(0), fullName);
    }
    closePicker();
  }, [closePicker]);
  const applySvgCode = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
    const $wrap = window.editing_icon;
    const raw = (0,_repeatable_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.normalizeSvgIconForStorage)(String(svgCode || '').trim());
    if ($wrap && $wrap.length) {
      dispatchIconCommit($wrap.get(0), raw);
    }
    closePicker();
  }, [svgCode, closePicker]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const onWrapperClick = e => {
      e.preventDefault();
      const $icon = $(e.currentTarget);
      window.editing_icon = $icon;
      const raw = (0,_repeatable_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.normalizeSvgIconForStorage)(String($icon.find('input').val() || '').trim());
      if (showSvgOption && (0,_repeatable_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.isSvgIconValue)(raw)) {
        setActiveKey(SVG_KEY);
        setSvgCode(raw);
      } else {
        setActiveKey(fontGroups[0]?.key || SVG_KEY);
        setSvgCode('');
      }
      setSearch('');
      setIsPickerActive(true);
      $('body').find('.icon-wrapper').removeClass('icon-editing');
      $icon.addClass('icon-editing');
    };
    $(document.body).on('click.onepressIconWrap', '.icon-wrapper', onWrapperClick);
    return () => $(document.body).off('click.onepressIconWrap', '.icon-wrapper');
  }, [$, fontGroups, showSvgOption]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const onPointerDownOutside = e => {
      const $t = $(e.target);
      if ($t.closest('.c-icon-picker').length || $t.closest('.icon-wrapper').length) {
        return;
      }
      if (!$('.c-icon-picker').hasClass('ic-active')) {
        return;
      }
      closePicker();
    };
    $(document).on('mousedown.onepressIconPickOut', onPointerDownOutside);
    return () => $(document).off('mousedown.onepressIconPickOut', onPointerDownOutside);
  }, [$, closePicker]);
  const onTypeChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(e => {
    const v = e.target.value;
    setActiveKey(v);
    if (v === SVG_KEY) {
      const $w = window.editing_icon;
      if ($w && $w.length) {
        const cur = String($w.find('input').val() || '').trim();
        setSvgCode((0,_repeatable_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.isSvgIconValue)(cur) ? cur : '');
      } else {
        setSvgCode('');
      }
    }
  }, []);
  if (!showSvgOption && fontGroups.length === 0) {
    return null;
  }
  const isSvgMode = showSvgOption && activeKey === SVG_KEY;
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: `c-icon-picker${isPickerActive ? ' ic-active' : ''}`
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "c-icon-type-wrap"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("select", {
    className: "c-icon-type",
    value: activeKey,
    onChange: onTypeChange
  }, fontGroups.map(g => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("option", {
    key: g.key,
    value: g.key
  }, g.name)), showSvgOption ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("option", {
    value: SVG_KEY
  }, C_Icon_Picker.svg_code) : null)), isSvgMode ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "c-icon-svg-editor"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("textarea", {
    className: "c-icon-svg-textarea widefat",
    rows: 10,
    value: svgCode,
    onChange: e => setSvgCode(e.target.value),
    placeholder: svgPlaceholder
  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", {
    className: "c-icon-svg-actions"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("button", {
    type: "button",
    className: "button button-primary",
    onClick: applySvgCode
  }, applySvgLabel))) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "c-icon-search"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    type: "text",
    value: search,
    onChange: e => setSearch(e.target.value),
    placeholder: searchPlaceholder
  })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "c-icon-list"
  }, fontGroups.map(g => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    key: g.key,
    className: "ic-icons-group",
    "data-group-name": g.key,
    style: g.key === activeKey ? undefined : {
      display: 'none'
    }
  }, g.icons.map((fullName, idx) => {
    const visible = !q || fullName.toLowerCase().includes(q);
    return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
      key: `${g.key}-${idx}-${fullName}`,
      title: fullName,
      "data-name": fullName,
      style: {
        display: visible ? undefined : 'none'
      },
      onClick: e => {
        e.preventDefault();
        applySelection(fullName);
      },
      role: "button",
      tabIndex: 0,
      onKeyDown: e => {
        if (e.key === 'Enter' || e.key === ' ') {
          e.preventDefault();
          applySelection(fullName);
        }
      }
    }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("i", {
      className: fullName
    }));
  }))))));
}

/***/ },

/***/ "./src/admin/customizer/icon-picker/injectFontLinks.js"
/*!*************************************************************!*\
  !*** ./src/admin/customizer/icon-picker/injectFontLinks.js ***!
  \*************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   injectIconFontLinks: () => (/* binding */ injectIconFontLinks)
/* harmony export */ });
/**
 * Inject stylesheet <link> tags for each icon font (same ids/behavior as legacy picker).
 */
function injectIconFontLinks($) {
  if (typeof C_Icon_Picker === 'undefined' || !C_Icon_Picker.fonts) {
    return;
  }
  $.each(C_Icon_Picker.fonts, function (key, font) {
    const f = $.extend({}, {
      url: '',
      name: '',
      prefix: '',
      icons: ''
    }, font);
    if (Array.isArray(f.url)) {
      f.url.forEach(el => {
        $('<link>').appendTo('head').attr({
          type: 'text/css',
          rel: 'stylesheet'
        }).attr('id', 'customizer-icon-' + el.key).attr('href', el.url);
      });
    } else if (f.url) {
      $('<link>').appendTo('head').attr({
        type: 'text/css',
        rel: 'stylesheet'
      }).attr('id', 'customizer-icon-' + key).attr('href', f.url);
    }
  });
}

/***/ },

/***/ "./src/admin/customizer/jquery-deparam.js"
/*!************************************************!*\
  !*** ./src/admin/customizer/jquery-deparam.js ***!
  \************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   installDeparam: () => (/* binding */ installDeparam)
/* harmony export */ });
/**
 * jQuery deparam — excerpt from jQuery BBQ (Ben Alman).
 * @see http://benalman.com/projects/jquery-bbq-plugin/
 */
function installDeparam($) {
  if ($.deparam) {
    return;
  }
  $.deparam = function (params, coerce) {
    var obj = {},
      coerce_types = {
        'true': !0,
        'false': !1,
        'null': null
      };

    // Iterate over all name=value pairs.
    $.each(params.replace(/\+/g, ' ').split('&'), function (j, v) {
      var param = v.split('='),
        key = decodeURIComponent(param[0]),
        val,
        cur = obj,
        i = 0,
        // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it
        // into its component parts.
        keys = key.split(']['),
        keys_last = keys.length - 1;

      // If the first keys part contains [ and the last ends with ], then []
      // are correctly balanced.
      if (/\[/.test(keys[0]) && /\]$/.test(keys[keys_last])) {
        // Remove the trailing ] from the last keys part.
        keys[keys_last] = keys[keys_last].replace(/\]$/, '');

        // Split first keys part into two parts on the [ and add them back onto
        // the beginning of the keys array.
        keys = keys.shift().split('[').concat(keys);
        keys_last = keys.length - 1;
      } else {
        // Basic 'foo' style key.
        keys_last = 0;
      }

      // Are we dealing with a name=value pair, or just a name?
      if (param.length === 2) {
        val = decodeURIComponent(param[1]);

        // Coerce values.
        if (coerce) {
          val = val && !isNaN(val) ? +val // number
          : val === 'undefined' ? undefined // undefined
          : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null
          : val; // string
        }
        if (keys_last) {
          // Complex key, build deep object structure based on a few rules:
          // * The 'cur' pointer starts at the object top-level.
          // * [] = array push (n is set to array length), [n] = array if n is
          //   numeric, otherwise object.
          // * If at the last keys part, set the value.
          // * For each keys part, if the current level is undefined create an
          //   object or array based on the type of the next keys part.
          // * Move the 'cur' pointer to the next level.
          // * Rinse & repeat.
          for (; i <= keys_last; i++) {
            key = keys[i] === '' ? cur.length : keys[i];
            cur = cur[key] = i < keys_last ? cur[key] || (keys[i + 1] && isNaN(keys[i + 1]) ? {} : []) : val;
          }
        } else {
          // Simple key, even simpler rules, since only scalars and shallow
          // arrays are allowed.

          if ($.isArray(obj[key])) {
            // val is already an array, so push on the next value.
            obj[key].push(val);
          } else if (obj[key] !== undefined) {
            // val isn't an array, but since a second value has been specified,
            // convert val into an array.
            obj[key] = [obj[key], val];
          } else {
            // val is a scalar.
            obj[key] = val;
          }
        }
      } else if (key) {
        // No value was defined, so set something meaningful.
        obj[key] = coerce ? undefined : '';
      }
    });
    return obj;
  };
}

/***/ },

/***/ "./src/admin/customizer/modal-editor.js"
/*!**********************************************!*\
  !*** ./src/admin/customizer/modal-editor.js ***!
  \**********************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   initModalEditors: () => (/* binding */ initModalEditors)
/* harmony export */ });
/**
 * Modal WP editor instances in Customizer sections.
 */
function initModalEditors(api, $) {
  function _the_editor(container) {
    var _editor = {
      editor_added: false,
      ready: function (container) {
        var control = this;
        control.container = container;
        control.container.addClass('onepress-editor-added');
        control.editing_area = $('textarea', control.container);
        if (control.editing_area.hasClass('wp-editor-added')) {
          return false;
        }
        control.editing_area.uniqueId();
        control.editing_area.addClass('wp-editor-added');
        control.editing_id = control.editing_area.attr('id') || false;
        if (!control.editing_id) {
          return false;
        }
        control.editor_id = 'wpe-for-' + control.editing_id;
        control.preview = $('<div id="preview-' + control.editing_id + '" class="wp-js-editor-preview"></div>');
        control.editing_editor = $('<div id="wrap-' + control.editing_id + '" class="modal-wp-js-editor"><textarea id="' + control.editor_id + '"></textarea></div>');
        var content = control.editing_area.val();
        // Load default value
        $('textarea', control.editing_editor).val(content);
        try {
          control.preview.html(window.switchEditors._wp_Autop(content));
        } catch (e) {}
        $('body').on('click', '#customize-controls, .customize-section-back', function (e) {
          if (!$(e.target).is(control.preview)) {
            /// e.preventDefault(); // Keep this AFTER the key filter above
            control.editing_editor.removeClass('wpe-active');
            $('.wp-js-editor-preview').removeClass('wpe-focus');
          }
        });
        control.container.find('.wp-js-editor').addClass('wp-js-editor-active');
        control.preview.insertBefore(control.editing_area);
        control._init();
        $(window).on('resize', function () {
          control._resize();
        });
      },
      _add_editor: function () {
        var control = this;
        if (!this.editor_added) {
          this.editor_added = true;
          $('body .wp-full-overlay').append(control.editing_editor);
          $('textarea', control.editing_editor).attr('data-editor-mod', control.editing_area.attr('data-editor-mod') || '').wp_js_editor({
            sync_id: control.editing_area,
            init_instance_callback: function (editor) {
              var w = $('#wp-' + control.editor_id + '-wrap');
              $('.wp-editor-tabs', w).append('<button class="wp-switch-editor fullscreen-wp-editor"  type="button"><span class="dashicons"></span></button>');
              $('.wp-editor-tabs', w).append('<button class="wp-switch-editor preview-wp-editor"  type="button"><span class="dashicons dashicons-visibility"></span></button>');
              $('.wp-editor-tabs', w).append('<button class="wp-switch-editor close-wp-editor"  type="button"><span class="dashicons dashicons-no-alt"></span></button>');
              w.on('click', '.close-wp-editor', function (e) {
                e.preventDefault();
                control.editing_editor.removeClass('wpe-active');
                $('.wp-js-editor-preview').removeClass('wpe-focus');
              });
              $('.preview-wp-editor', w).hover(function () {
                w.closest('.modal-wp-js-editor').css({
                  opacity: 0
                });
              }, function () {
                w.closest('.modal-wp-js-editor').css({
                  opacity: 1
                });
              });
              w.on('click', '.fullscreen-wp-editor', function (e) {
                e.preventDefault();
                w.closest('.modal-wp-js-editor').toggleClass('fullscreen');
                setTimeout(function () {
                  $(window).resize();
                }, 600);
              });
            }
          });
        }
      },
      _init: function () {
        var control = this;
        control.editing_area.on('change', function () {
          control.preview.html(window.switchEditors._wp_Autop($(this).val()));
        });
        control.preview.on('click', function (e) {
          control._add_editor();
          $('.modal-wp-js-editor').removeClass('wpe-active');
          control.editing_editor.toggleClass('wpe-active');
          tinyMCE.get(control.editor_id).focus();
          control.preview.addClass('wpe-focus');
          control._resize();
          return false;
        });
        control.container.on('click', '.wp-js-editor-preview', function (e) {
          e.preventDefault();
        });
      },
      _resize: function () {
        var control = this;
        var w = $('#wp-' + control.editor_id + '-wrap');
        var height = w.innerHeight();
        var tb_h = w.find('.mce-toolbar-grp').eq(0).height();
        tb_h += w.find('.wp-editor-tools').eq(0).height();
        tb_h += 50;
        //var width = $( window ).width();
        var editor = tinymce.get(control.editor_id);
        if (editor) {
          control.editing_editor.width('');
          editor.theme.resizeTo('100%', height - tb_h);
          w.find('textarea.wp-editor-area').height(height - tb_h);
        }
      }
    };
    _editor.ready(container);
  }
  function _remove_editor($context) {
    $('textarea', $context).each(function () {
      var id = $(this).attr('id') || '';
      var editor_id = 'wpe-for-' + id;
      try {
        var editor = tinymce.get(editor_id);
        if (editor) {
          editor.remove();
        }
        $('#wrap-' + editor_id).remove();
        $('#wrap-' + id).remove();
        if (typeof tinyMCEPreInit.mceInit[editor_id] !== "undefined") {
          delete tinyMCEPreInit.mceInit[editor_id];
        }
        if (typeof tinyMCEPreInit.qtInit[editor_id] !== "undefined") {
          delete tinyMCEPreInit.qtInit[editor_id];
        }
      } catch (e) {}
    });
  }
  var _is_init_editors = {};

  // jQuery( document ).ready( function( $ ){

  api.bind('ready', function (e, b) {
    $('#customize-theme-controls .accordion-section').each(function () {
      var section = $(this);
      var id = section.attr('id') || '';
      if (id) {
        if (typeof _is_init_editors[id] === "undefined") {
          _is_init_editors[id] = true;
          setTimeout(function () {
            if ($('.wp-js-editor', section).length > 0) {
              $('.wp-js-editor', section).each(function () {
                _the_editor($(this));
              });
            }
            if ($('.repeatable-customize-control:not(.no-changeable) .item-editor', section).length > 0) {
              $('.repeatable-customize-control:not(.no-changeable) .item-editor', section).each(function () {
                _the_editor($(this));
              });
            }
          }, 10);
        }
      }
    });

    // Check section when focus
    if (_wpCustomizeSettings.autofocus) {
      if (_wpCustomizeSettings.autofocus.section) {
        var id = "sub-accordion-section-" + _wpCustomizeSettings.autofocus.section;
        _is_init_editors[id] = true;
        var section = $('#' + id);
        setTimeout(function () {
          if ($('.wp-js-editor', section).length > 0) {
            $('.wp-js-editor', section).each(function () {
              _the_editor($(this));
            });
          }
          if ($('.repeatable-customize-control:not(.no-changeable) .item-editor', section).length > 0) {
            $('.repeatable-customize-control:not(.no-changeable) .item-editor', section).each(function () {
              _the_editor($(this));
            });
          }
        }, 1000);
      } else if (_wpCustomizeSettings.autofocus.panel) {}
    }
    $('body').on('repeater-control-init-item', function (e, container) {
      $('.item-editor', container).each(function () {
        _the_editor($(this));
      });
    });
    $('body').on('repeat-control-remove-item', function (e, container) {
      _remove_editor(container);
    });
  });
}

/***/ },

/***/ "./src/admin/customizer/plus-section.js"
/*!**********************************************!*\
  !*** ./src/admin/customizer/plus-section.js ***!
  \**********************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   registerPlusSection: () => (/* binding */ registerPlusSection)
/* harmony export */ });
/**
 * OnePress Plus upsell section (always contextually active).
 */
function registerPlusSection(api) {
  api.sectionConstructor['onepress-plus'] = api.Section.extend({
    attachEvents: function () {},
    isContextuallyActive: function () {
      return true;
    }
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/RepeatableControlApp.jsx"
/*!******************************************************************!*\
  !*** ./src/admin/customizer/repeatable/RepeatableControlApp.jsx ***!
  \******************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   RepeatableControlApp: () => (/* binding */ RepeatableControlApp)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var array_move__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! array-move */ "./node_modules/array-move/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _RepeatableItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RepeatableItem */ "./src/admin/customizer/repeatable/RepeatableItem.jsx");
/* harmony import */ var _repeatable_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./repeatable-values */ "./src/admin/customizer/repeatable/repeatable-values.js");

/**
 * React root for Customizer `repeatable` control: mounts as children of `ul.list-repeatable`.
 *
 * Data flow (every user edit must follow this path):
 * 1. Field UI changes → field `onChange(fieldId, value)` (RepeatableItem → RepeatableField → field component).
 * 2. `setRow` merges the value into that row in React state and builds the next `items` array.
 * 3. `commit(nextItems)` serializes rows to JSON (`serializeSetting`) and calls
 *    `pushRepeatablePayloadToCustomizer` → `setting.set(payload)` + hidden input + callbacks
 *    so wp.customize marks the setting dirty and preview/changeset update.
 *
 * Fields that update the DOM via jQuery only (e.g. modal TinyMCE → `.val().trigger("change")`)
 * must still invoke the same `onChange` path (see TextareaField editor + jQuery listeners).
 */





/**
 * Step 3: apply serialized repeater data to the Customizer setting (and linked hidden input).
 * Core Value#set no-ops when _.isEqual(from, to) — e.g. object vs same JSON string
 * — leaving _dirty false so refresh preview / changeset never see the edit.
 *
 * @param {jQuery} $ jQuery
 * @param {object} control wp.customize.Control instance
 * @param {string} payload JSON string for the setting
 */
function pushRepeatablePayloadToCustomizer($, control, payload) {
  const setting = control.setting;
  if (!setting || typeof setting.set !== 'function' || typeof setting.get !== 'function') {
    return;
  }
  const before = setting.get();
  setting.set(payload);
  const $hidden = control.container.find('input[data-customize-setting-link]');
  if ($hidden.length) {
    $hidden.val(payload);
    $hidden.trigger('input').trigger('change');
  }
  const after = setting.get();
  const _ = typeof window !== 'undefined' ? window._ : null;
  if (_ && typeof _.isEqual === 'function') {
    const skipped = _.isEqual(before, after) && !_.isEqual(before, payload);
    if (skipped) {
      setting._value = payload;
      setting._dirty = true;
      if (setting.callbacks && typeof setting.callbacks.fireWith === 'function') {
        setting.callbacks.fireWith(setting, [payload, before]);
      }
    }
  }
}
function RepeatableControlApp({
  control,
  $,
  api
}) {
  const fields = control.params.fields;
  const fieldIds = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useMemo)(() => Object.keys(fields || {}), [fields]);
  const [items, setItems] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(() => (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_4__.buildRowsFromParams)(control.params.value, fields));
  const maxItem = control.params.max_item ? parseInt(control.params.max_item, 10) : 0;
  const limitedMsg = control.params.limited_msg || '';
  const idKey = control.params.id_key || '';
  const dragFrom = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);

  // Sync hidden input + setting only if payload differs from WP (avoids false “dirty” on load).
  // Note: wp.customize.Value#set ignores a second-arg “silent”; every set marks the setting dirty.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)(() => {
    const payload = (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_4__.serializeSetting)(items, fields);
    if (typeof control.setting.set !== 'function' || typeof control.setting.get !== 'function') {
      return;
    }
    const current = control.setting.get();
    if (!(0,_repeatable_values__WEBPACK_IMPORTED_MODULE_4__.repeatableSettingValuesEqual)(current, payload)) {
      pushRepeatablePayloadToCustomizer($, control, payload);
    }
    // eslint-disable-next-line react-hooks/exhaustive-deps -- bootstrap only
  }, []);

  // Step 3: rows in memory → JSON payload → wp.customize.Setting.
  const commit = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)(next => {
    const payload = (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_4__.serializeSetting)(next, fields);
    pushRepeatablePayloadToCustomizer($, control, payload);
  }, [control, fields, $]);

  // Step 2: patch one row, then commit the full list.
  const setRow = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((index, updater) => {
    setItems(prev => {
      const prevRow = prev[index];
      const nextRow = typeof updater === 'function' ? updater(prevRow) : updater;
      const next = prev.slice();
      next[index] = nextRow;
      commit(next);
      return next;
    });
  }, [commit]);
  const onRemove = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)(index => {
    setItems(prev => {
      const next = prev.filter((_, i) => i !== index);
      commit(next);
      return next;
    });
  }, [commit]);
  const onDragStart = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((e, index) => {
    dragFrom.current = index;
    e.dataTransfer.effectAllowed = 'move';
    e.dataTransfer.setData('text/plain', String(index));
  }, []);
  const onDragOver = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)(e => {
    e.preventDefault();
    e.dataTransfer.dropEffect = 'move';
  }, []);
  const onDrop = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((e, toIndex) => {
    e.preventDefault();
    const fromStr = e.dataTransfer.getData('text/plain');
    let from = fromStr !== '' ? parseInt(fromStr, 10) : dragFrom.current;
    if (from === null || from === undefined || Number.isNaN(from)) {
      return;
    }
    setItems(prev => {
      if (from === toIndex) {
        return prev;
      }
      const next = (0,array_move__WEBPACK_IMPORTED_MODULE_1__.arrayMoveImmutable)(prev, from, toIndex);
      commit(next);
      return next;
    });
    dragFrom.current = null;
  }, [commit]);
  const addItem = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {
    if (control.id === 'onepress_map_items_address') {
      const mapLong = api('onepress_map_long').get();
      const mapLat = api('onepress_map_lat').get();
      if (mapLong === '' || mapLat === '') {
        const $lab = $('#customize-control-onepress_map_items_address', document).find('label');
        $lab.append('<span class="onepress-customizer-notice">' + (typeof window.ONEPRESS_CUSTOMIZER_DATA !== 'undefined' ? window.ONEPRESS_CUSTOMIZER_DATA.multiple_map_notice : '') + '</span>');
        return;
      }
      $('#customize-control-onepress_map_items_address', document).find('.onepress-customizer-notice').remove();
    }
    setItems(prev => {
      if (maxItem > 0 && prev.length >= maxItem) {
        return prev;
      }
      const row = (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_4__.newEmptyRow)(fields, idKey);
      const next = [...prev, row];
      commit(next);
      return next;
    });
  }, [api, commit, control.id, fields, idKey, maxItem]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    const $btn = control.container.find('.add-new-repeat-item');
    $btn.off('click.onepressR').on('click.onepressR', e => {
      e.preventDefault();
      addItem();
    });
    return () => $btn.off('click.onepressR');
  }, [addItem, control.container]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    const $actions = control.container.find('.repeatable-actions');
    const n = items.length;
    if (maxItem > 0 && n >= maxItem) {
      $actions.hide();
      if (limitedMsg && control.container.find('.limited-msg').length === 0) {
        $('<p class="limited-msg"/>').html(limitedMsg).insertAfter($actions);
      }
      control.container.find('.limited-msg').show();
    } else {
      $actions.show();
      control.container.find('.limited-msg').hide();
    }
  }, [items.length, maxItem, limitedMsg, control.container]);
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, items.map((row, index) => {
    const itemKey = idKey && row[idKey] ? String(row[idKey]) : `idx-${index}`;
    return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_RepeatableItem__WEBPACK_IMPORTED_MODULE_3__.RepeatableItem, {
      key: itemKey,
      $: $,
      control: control,
      fieldIds: fieldIds,
      fields: fields,
      index: index,
      itemKey: itemKey,
      row: row,
      setRow: setRow,
      onRemove: onRemove,
      onDragStart: onDragStart,
      onDragOver: onDragOver,
      onDrop: onDrop
    });
  }));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/RepeatableField.jsx"
/*!*************************************************************!*\
  !*** ./src/admin/customizer/repeatable/RepeatableField.jsx ***!
  \*************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   RepeatableField: () => (/* binding */ RepeatableField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _fields_fieldRegistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fields/fieldRegistry */ "./src/admin/customizer/repeatable/fields/fieldRegistry.js");
/* harmony import */ var _repeatable_logic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./repeatable-logic */ "./src/admin/customizer/repeatable/repeatable-logic.js");

/**
 * Single field inside a repeatable row (mirrors PHP `js_item` structure / classes).
 */



function RepeatableField({
  field,
  value,
  onChange,
  rowValues,
  $,
  skipEditor
}) {
  const wrapRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const fieldType = field?.type;
  const fieldId = field?.id;
  const required = field?.required;
  const visible = fieldType ? (0,_repeatable_logic__WEBPACK_IMPORTED_MODULE_3__.fieldVisible)(required, rowValues) : false;

  // Modal WP editor (modal-editor.js) only runs on row mount via repeater-control-init-item.
  // When an editor field appears later (required / visibility), init it against the row <li>.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    if (!visible || fieldType !== 'editor' || skipEditor) {
      return;
    }
    const el = wrapRef.current;
    if (!el) {
      return;
    }
    const $row = $(el).closest('.repeatable-customize-control');
    if (!$row.length) {
      return;
    }
    $('body').trigger('repeater-control-init-item', [$row]);
  }, [visible, fieldType, fieldId, skipEditor, $]);
  if (!fieldType) {
    return null;
  }

  // Do not mount hidden fields (avoids editor/media init; state stays in row).
  if (!visible) {
    return null;
  }
  const FieldType = (0,_fields_fieldRegistry__WEBPACK_IMPORTED_MODULE_2__.getRepeatableFieldComponent)(fieldType);
  if (!FieldType) {
    return null;
  }
  const wrapClass = `field--item item item-${fieldType} item-${fieldId}`;
  const t = fieldType;
  const showLabel = t !== 'checkbox';
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    ref: wrapRef,
    "data-field-id": fieldId,
    className: wrapClass,
    "data-cond": required ? JSON.stringify(required) : undefined
  }, showLabel && field.title ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("label", {
    className: "field-label",
    dangerouslySetInnerHTML: {
      __html: field.title
    }
  }) : null, showLabel && field.desc ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", {
    className: "field-desc description",
    dangerouslySetInnerHTML: {
      __html: field.desc
    }
  }) : null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(FieldType, {
    field: field,
    value: value,
    onChange: onChange,
    $: $,
    skipEditor: skipEditor
  }));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/RepeatableItem.jsx"
/*!************************************************************!*\
  !*** ./src/admin/customizer/repeatable/RepeatableItem.jsx ***!
  \************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   RepeatableItem: () => (/* binding */ RepeatableItem)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _RepeatableField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RepeatableField */ "./src/admin/customizer/repeatable/RepeatableField.jsx");
/* harmony import */ var _repeatable_logic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./repeatable-logic */ "./src/admin/customizer/repeatable/repeatable-logic.js");

/**
 * One repeater row: widget chrome, fields, remove/close, drag handle.
 */



function RepeatableItem({
  $,
  control,
  fieldIds,
  fields,
  index,
  itemKey,
  row,
  setRow,
  onRemove,
  onDragStart,
  onDragOver,
  onDrop
}) {
  const liRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const [expanded, setExpanded] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
  const liveTitleId = control.params.live_title_id;
  const titleFormat = control.params.title_format || '';
  const defaultEmptyTitle = control.params.default_empty_title || 'Item';
  const rowValues = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {
    const o = {
      ...row
    };
    return o;
  }, [row]);
  const liveTitle = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {
    if (!liveTitleId) {
      return defaultEmptyTitle;
    }
    const elId = liveTitleId;
    let v = '';
    const raw = row[elId];
    const fieldDef = fields[elId];
    if (fieldDef && fieldDef.type === 'select' && !fieldDef.multiple) {
      const opts = fieldDef.options || {};
      v = opts[raw] !== undefined ? opts[raw] : raw || '';
    } else {
      v = raw === undefined || raw === null ? '' : String(raw);
    }
    if (v === '') {
      v = defaultEmptyTitle;
    }
    let format = titleFormat;
    // Built-in sections (not added via "Add Section") show plain live title; user-added rows use full title_format.
    if (control.id === 'onepress_section_order_styling' && row.add_by !== 'click') {
      format = '[live_title]';
    }
    if (format !== '') {
      v = format.replace(/\[live_title\]/g, v);
    }
    return v;
  }, [row, liveTitleId, titleFormat, defaultEmptyTitle, fields, control.id]);

  // Step 1→2→3: field value → repeater row state → commit() → Customizer setting (RepeatableControlApp).
  const onFieldChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)((fieldId, val) => {
    setRow(index, prev => ({
      ...prev,
      [fieldId]: val
    }));
  }, [index, setRow]);
  const skipEditor = control.id === 'onepress_section_order_styling' && row.add_by !== 'click';
  const liClass = ['repeatable-customize-control'];
  if (row.__visibility === 'hidden') {
    liClass.push('visibility-hidden');
  }
  const sid = row.section_id !== undefined && row.section_id !== null ? String(row.section_id) : '';
  if (sid !== '') {
    liClass.push(`section-${sid}`);
  }
  if (sid === 'map' || sid === 'slider') {
    liClass.push('show-display-field-only');
  }
  if (skipEditor) {
    liClass.push('no-changeable');
  }
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    const $ctx = $(liRef.current);
    if (!$ctx.length) {
      return;
    }
    $('body').trigger('repeater-control-init-item', [$ctx]);
    return () => {
      $('body').trigger('repeat-control-remove-item', [$ctx]);
    };
  }, [$, itemKey]);
  const toggle = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(e => {
    e.preventDefault();
    setExpanded(x => !x);
  }, []);
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
    ref: liRef,
    className: liClass.join(' '),
    "data-repeat-key": itemKey
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: `widget ${expanded ? 'explained' : ''}`
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "widget-top"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "widget-title-action"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
    className: "widget-action",
    href: "#",
    onClick: toggle
  })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "widget-title",
    draggable: true,
    onDragStart: e => onDragStart(e, index),
    onDragOver: e => onDragOver(e, index),
    onDrop: e => onDrop(e, index)
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("h4", {
    className: "live-title"
  }, liveTitle))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: `widget-inside ${expanded ? 'show' : 'hide'}`,
    style: expanded ? undefined : {
      display: 'none'
    }
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "form"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "widget-content"
  }, fieldIds.map(fid => {
    const def = fields[fid];
    if (!def || !def.type) {
      return null;
    }
    // User-added rows (add_by = click): show title as a text input instead of hidden.
    const fieldDef = fid === 'title' && row.add_by === 'click' ? {
      ...def,
      type: 'text'
    } : def;
    const condVisible = (0,_repeatable_logic__WEBPACK_IMPORTED_MODULE_3__.fieldVisible)(fieldDef.required, rowValues);
    return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_RepeatableField__WEBPACK_IMPORTED_MODULE_2__.RepeatableField, {
      key: `${fid}-${condVisible ? '1' : '0'}`,
      field: fieldDef,
      value: row[fid],
      onChange: v => onFieldChange(fid, v),
      rowValues: rowValues,
      $: $,
      skipEditor: skipEditor && fieldDef.type === 'editor'
    });
  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "widget-control-actions"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "alignleft"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
    className: "remove-btn-wrapper"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
    href: "#",
    className: "repeat-control-remove",
    onClick: e => {
      e.preventDefault();
      onRemove(index);
    }
  }, "Remove"), ' | '), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
    href: "#",
    className: "repeat-control-close",
    onClick: toggle
  }, "Close")), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("br", {
    className: "clear"
  })))))));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/AlphaColorField.jsx"
/*!********************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/AlphaColorField.jsx ***!
  \********************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AlphaColorField: () => (/* binding */ AlphaColorField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _AlphaColorInput__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AlphaColorInput */ "./src/admin/customizer/repeatable/fields/AlphaColorInput.jsx");


function AlphaColorField({
  field,
  value,
  onChange,
  $
}) {
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_AlphaColorInput__WEBPACK_IMPORTED_MODULE_1__.AlphaColorInput, {
    fieldId: field.id,
    value: value || '',
    onChange: onChange,
    $: $
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/AlphaColorInput.jsx"
/*!********************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/AlphaColorInput.jsx ***!
  \********************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AlphaColorInput: () => (/* binding */ AlphaColorInput)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);


function AlphaColorInput({
  value,
  onChange,
  fieldId,
  $
}) {
  const ref = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const onChangeRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(onChange);
  onChangeRef.current = onChange;
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    const $el = $(ref.current);
    if (!$el.length) {
      return;
    }
    let c = value || '';
    c = String(c).replace(/^#/, '');
    $el.removeAttr('value');
    $el.prop('value', c);
    // $.fn.alphaColorPicker() ignores passed options; it always uses internal wpColorPicker callbacks
    // and triggers jQuery "color_change" (see alpha-color-picker.js).
    const onColorPlugin = () => {
      onChangeRef.current($el.val() || '');
    };
    $el.on('color_change.onepressRepeatable', onColorPlugin);
    // alpha-color-picker.js binds "input" for the opacity slider only; typing does not always fire color_change.
    $el.on('input.onepressRepeatable', onColorPlugin);
    $el.alphaColorPicker();
    let raf = 0;
    const pushRaf = () => {
      if (raf) {
        return;
      }
      raf = window.requestAnimationFrame(() => {
        raf = 0;
        onColorPlugin();
      });
    };
    const $picker = $el.closest('.wp-picker-container');
    if ($picker.length) {
      $picker.on('mousemove.onepressRepeatable touchmove.onepressRepeatable', '.iris-picker', pushRaf);
    }
    return () => {
      $picker.off('.onepressRepeatable');
      if (raf) {
        window.cancelAnimationFrame(raf);
      }
      $el.off('color_change.onepressRepeatable', onColorPlugin);
      $el.off('input.onepressRepeatable', onColorPlugin);
      try {
        $el.wpColorPicker('destroy');
      } catch (e) {
        // ignore
      }
      try {
        const $wrap = $el.parent('.alpha-color-picker-wrap');
        if ($wrap.length) {
          $el.unwrap();
        }
      } catch (e) {
        // ignore
      }
    };
  }, [$, fieldId]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    try {
      const $el = $(ref.current);
      if ($el.length && $el.data('wpWpColorPicker')) {
        $el.wpColorPicker('color', value || '');
      }
    } catch (e) {
      // ignore
    }
  }, [value, $]);
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    ref: ref,
    "data-live-id": fieldId,
    "data-show-opacity": "true",
    type: "text",
    className: "color-field c-coloralpha alpha-color-control"
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/CheckboxField.jsx"
/*!******************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/CheckboxField.jsx ***!
  \******************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CheckboxField: () => (/* binding */ CheckboxField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

function CheckboxField({
  field,
  value,
  onChange
}) {
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("label", {
    className: "checkbox-label"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    "data-live-id": field.id,
    type: "checkbox",
    checked: !!value,
    onChange: e => onChange(e.target.checked),
    value: "1",
    className: ""
  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
    dangerouslySetInnerHTML: {
      __html: field.title || ''
    }
  }));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/ColorField.jsx"
/*!***************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/ColorField.jsx ***!
  \***************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ColorField: () => (/* binding */ ColorField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ColorInput__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ColorInput */ "./src/admin/customizer/repeatable/fields/ColorInput.jsx");


function ColorField({
  field,
  value,
  onChange,
  $
}) {
  let display = value || '';
  if (display && String(display).indexOf('#') !== 0) {
    display = '#' + String(display).replace(/^#/, '');
  }
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_ColorInput__WEBPACK_IMPORTED_MODULE_1__.ColorInput, {
    fieldId: field.id,
    value: display,
    onChange: onChange,
    $: $
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/ColorInput.jsx"
/*!***************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/ColorInput.jsx ***!
  \***************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ColorInput: () => (/* binding */ ColorInput)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);


function ColorInput({
  value,
  onChange,
  fieldId,
  $
}) {
  const ref = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const onChangeRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(onChange);
  onChangeRef.current = onChange;
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {
    const $el = $(ref.current);
    if (!$el.length) {
      return;
    }
    const readColor = () => {
      try {
        return $el.wpColorPicker('color') || $el.val() || '';
      } catch (e) {
        return $el.val() || '';
      }
    };
    const push = () => {
      onChangeRef.current(readColor());
    };
    let raf = 0;
    const pushRaf = () => {
      if (raf) {
        return;
      }
      raf = window.requestAnimationFrame(() => {
        raf = 0;
        push();
      });
    };
    $el.wpColorPicker({
      change: push,
      clear() {
        onChangeRef.current('');
      }
    });
    // wpColorPicker does not forward Iris drag events; while dragging, sync via the picker surface.
    const $wrap = $el.closest('.wp-picker-container');
    $wrap.on('mousemove.onepressRepeatable touchmove.onepressRepeatable', '.iris-picker', pushRaf);
    return () => {
      $wrap.off('.onepressRepeatable');
      if (raf) {
        window.cancelAnimationFrame(raf);
      }
      try {
        $el.wpColorPicker('destroy');
      } catch (e) {
        // ignore
      }
    };
  }, [$, fieldId]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    try {
      $(ref.current).wpColorPicker('color', value || '');
    } catch (e) {
      // ignore
    }
  }, [value, $]);
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    ref: ref,
    "data-live-id": fieldId,
    type: "text",
    className: "color-field c-color alpha-color-control"
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/HiddenField.jsx"
/*!****************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/HiddenField.jsx ***!
  \****************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   HiddenField: () => (/* binding */ HiddenField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

function HiddenField({
  field,
  value,
  onChange
}) {
  const t = field.type;
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    "data-live-id": field.id,
    type: "hidden",
    value: value === undefined || value === null ? '' : value,
    onChange: e => onChange(e.target.value),
    className: t === 'add_by' ? 'add_by' : ''
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/IconField.jsx"
/*!**************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/IconField.jsx ***!
  \**************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   IconField: () => (/* binding */ IconField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _repeatable_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../repeatable-values */ "./src/admin/customizer/repeatable/repeatable-values.js");



function IconField({
  field,
  value,
  onChange
}) {
  const wrapRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const onChangeRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(onChange);
  onChangeRef.current = onChange;
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const handler = e => {
      if (!e.detail || e.detail.wrapperEl !== wrapRef.current) {
        return;
      }
      onChangeRef.current(e.detail.value);
    };
    window.addEventListener(_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.ONEPRESS_ICON_COMMIT_EVENT, handler);
    return () => window.removeEventListener(_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.ONEPRESS_ICON_COMMIT_EVENT, handler);
  }, []);
  const isSvg = (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.isSvgIconValue)(value);
  const ic = isSvg ? '' : (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.iconPreviewClass)(value);
  const svgPreview = isSvg ? (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.sanitizeSvgForCustomizerPreview)(value) : '';
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "item-icon"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "icon-wrapper",
    ref: wrapRef
  }, isSvg ? svgPreview ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
    className: "onepress-svg-preview",
    dangerouslySetInnerHTML: {
      __html: svgPreview
    }
  }) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
    className: "onepress-svg-preview onepress-svg-preview--invalid",
    "aria-hidden": "true"
  }) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("i", {
    className: `fa ${ic}`
  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    "data-live-id": field.id,
    type: "hidden",
    value: value === undefined || value === null ? '' : value,
    onChange: e => onChange(e.target.value),
    className: ""
  })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
    href: "#",
    className: "remove-icon",
    onClick: e => {
      e.preventDefault();
      onChange('');
    }
  }, "Remove"));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/MediaField.jsx"
/*!***************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/MediaField.jsx ***!
  \***************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   MediaField: () => (/* binding */ MediaField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _repeatable_values__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../repeatable-values */ "./src/admin/customizer/repeatable/repeatable-values.js");



function MediaField({
  field,
  value,
  onChange,
  $
}) {
  const rootRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const m = (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.normalizeMediaValue)(value);
  const isImage = !field.media || field.media === '' || field.media === 'image';
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const $root = $(rootRef.current);
    if (!$root.length) {
      return;
    }
    const sync = () => {
      onChange({
        url: String($root.find('input.image_url').first().val() || ''),
        id: String($root.find('input.image_id').first().val() || '')
      });
    };
    $root.on('change.onepressR', 'input.image_url, input.image_id', sync);
    return () => $root.off('.onepressR');
  }, [onChange, $]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    const $root = $(rootRef.current);
    if (!$root.length) {
      return;
    }
    const next = (0,_repeatable_values__WEBPACK_IMPORTED_MODULE_2__.normalizeMediaValue)(value);
    $root.find('input.image_url').first().val(next.url);
    $root.find('input.image_id').first().val(next.id);
  }, [value, $]);
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    ref: rootRef,
    className: "item-media"
  }, isImage ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    type: "hidden",
    className: "image_url widefat",
    defaultValue: m.url
  }) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    type: "text",
    className: "image_url widefat",
    value: m.url,
    onChange: e => onChange({
      ...m,
      url: e.target.value
    })
  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    type: "hidden",
    "data-live-id": field.id,
    className: "image_id widefat",
    defaultValue: m.id
  }), isImage ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: `current ${m.url ? 'show' : 'hide'}`
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "container"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "attachment-media-view attachment-media-view-image landscape"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "thumbnail thumbnail-image"
  }, m.url ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
    src: m.url,
    alt: ""
  }) : null)))) : null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    className: "actions"
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("button", {
    className: "button remove-button",
    type: "button",
    style: m.url ? undefined : {
      display: 'none'
    },
    onClick: e => {
      e.preventDefault();
      onChange({
        url: '',
        id: ''
      });
    }
  }, "Remove"), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("button", {
    className: "button upload-button",
    type: "button",
    "data-media": field.media || '',
    "data-add-txt": "Add",
    "data-change-txt": "Change",
    onClick: e => {
      e.preventDefault();
      if (!window._upload_fame) {
        window._upload_fame = wp.media({
          title: wp.media.view.l10n.addMedia,
          multiple: false
        });
      }
      const _item = $(e.target).closest('.item-media');
      window.media_current = _item;
      window.media_btn = $(e.target);
      window._upload_fame.open();
    }
  }, m.url ? 'Change' : 'Add'), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    style: {
      clear: 'both'
    }
  })));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/RadioField.jsx"
/*!***************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/RadioField.jsx ***!
  \***************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   RadioField: () => (/* binding */ RadioField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

function RadioField({
  field,
  value,
  onChange
}) {
  const opts = field.options || {};
  return Object.keys(opts).map(k => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("label", {
    key: k
  }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    "data-live-id": field.id,
    type: "radio",
    checked: value == k,
    value: k,
    onChange: () => onChange(k),
    className: "widefat"
  }), opts[k]));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/SelectField.jsx"
/*!****************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/SelectField.jsx ***!
  \****************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   SelectField: () => (/* binding */ SelectField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

function SelectField({
  field,
  value,
  onChange
}) {
  const opts = field.options || {};
  const keys = Object.keys(opts);
  if (field.multiple) {
    const arr = Array.isArray(value) ? value : [];
    return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("select", {
      "data-live-id": field.id,
      className: "select-multiple",
      multiple: true,
      value: arr,
      onChange: e => {
        const selected = Array.from(e.target.selectedOptions).map(o => o.value);
        onChange(selected);
      }
    }, keys.map(k => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("option", {
      key: k,
      value: k
    }, opts[k])));
  }
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("select", {
    "data-live-id": field.id,
    className: "select-one",
    value: value === undefined || value === null ? '' : value,
    onChange: e => onChange(e.target.value)
  }, keys.map(k => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("option", {
    key: k,
    value: k
  }, opts[k])));
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/TextField.jsx"
/*!**************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/TextField.jsx ***!
  \**************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   TextField: () => (/* binding */ TextField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

function TextField({
  field,
  value,
  onChange
}) {
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    "data-live-id": field.id,
    type: "text",
    value: value === undefined || value === null ? '' : value,
    onChange: e => onChange(e.target.value),
    className: ""
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/TextareaField.jsx"
/*!******************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/TextareaField.jsx ***!
  \******************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   TextareaField: () => (/* binding */ TextareaField)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);


function TextareaField({
  field,
  value,
  onChange,
  skipEditor,
  $
}) {
  const ref = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  const onChangeRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)(onChange);
  onChangeRef.current = onChange;

  // Modal TinyMCE (modal-editor.js + wp-editor.js) syncs with
  // settings.sync_id.val(html).trigger("change") (jQuery). That does not invoke
  // native addEventListener handlers, so a controlled React textarea never updates
  // state or the Customizer setting — bind the same callback via jQuery as well.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    if (field.type !== 'editor' || skipEditor) {
      return;
    }
    const el = ref.current;
    if (!el) {
      return;
    }
    const push = () => {
      onChangeRef.current(el.value);
    };
    el.addEventListener('change', push);
    el.addEventListener('input', push);
    let $el;
    if ($ && typeof $.fn?.on === 'function') {
      $el = $(el);
      $el.on('change.onepressRepeaterEditor input.onepressRepeaterEditor', push);
    }
    return () => {
      el.removeEventListener('change', push);
      el.removeEventListener('input', push);
      if ($el) {
        $el.off('.onepressRepeaterEditor');
      }
    };
  }, [field.type, skipEditor, $]);
  if (field.type === 'editor' && skipEditor) {
    return null;
  }
  return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("textarea", {
    ref: ref,
    "data-live-id": field.id,
    value: value === undefined || value === null ? '' : value,
    onChange: e => onChange(e.target.value)
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/fields/fieldRegistry.js"
/*!*****************************************************************!*\
  !*** ./src/admin/customizer/repeatable/fields/fieldRegistry.js ***!
  \*****************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   REPEATABLE_FIELD_COMPONENTS: () => (/* binding */ REPEATABLE_FIELD_COMPONENTS),
/* harmony export */   getRepeatableFieldComponent: () => (/* binding */ getRepeatableFieldComponent)
/* harmony export */ });
/* harmony import */ var _AlphaColorField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlphaColorField */ "./src/admin/customizer/repeatable/fields/AlphaColorField.jsx");
/* harmony import */ var _CheckboxField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CheckboxField */ "./src/admin/customizer/repeatable/fields/CheckboxField.jsx");
/* harmony import */ var _ColorField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ColorField */ "./src/admin/customizer/repeatable/fields/ColorField.jsx");
/* harmony import */ var _HiddenField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./HiddenField */ "./src/admin/customizer/repeatable/fields/HiddenField.jsx");
/* harmony import */ var _IconField__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./IconField */ "./src/admin/customizer/repeatable/fields/IconField.jsx");
/* harmony import */ var _MediaField__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MediaField */ "./src/admin/customizer/repeatable/fields/MediaField.jsx");
/* harmony import */ var _RadioField__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RadioField */ "./src/admin/customizer/repeatable/fields/RadioField.jsx");
/* harmony import */ var _SelectField__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SelectField */ "./src/admin/customizer/repeatable/fields/SelectField.jsx");
/* harmony import */ var _TextareaField__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./TextareaField */ "./src/admin/customizer/repeatable/fields/TextareaField.jsx");
/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./TextField */ "./src/admin/customizer/repeatable/fields/TextField.jsx");











/**
 * Maps `field.type` (from PHP repeatable config) to the React control component.
 */
const REPEATABLE_FIELD_COMPONENTS = {
  hidden: _HiddenField__WEBPACK_IMPORTED_MODULE_3__.HiddenField,
  add_by: _HiddenField__WEBPACK_IMPORTED_MODULE_3__.HiddenField,
  text: _TextField__WEBPACK_IMPORTED_MODULE_9__.TextField,
  checkbox: _CheckboxField__WEBPACK_IMPORTED_MODULE_1__.CheckboxField,
  select: _SelectField__WEBPACK_IMPORTED_MODULE_7__.SelectField,
  radio: _RadioField__WEBPACK_IMPORTED_MODULE_6__.RadioField,
  color: _ColorField__WEBPACK_IMPORTED_MODULE_2__.ColorField,
  coloralpha: _AlphaColorField__WEBPACK_IMPORTED_MODULE_0__.AlphaColorField,
  media: _MediaField__WEBPACK_IMPORTED_MODULE_5__.MediaField,
  textarea: _TextareaField__WEBPACK_IMPORTED_MODULE_8__.TextareaField,
  editor: _TextareaField__WEBPACK_IMPORTED_MODULE_8__.TextareaField,
  icon: _IconField__WEBPACK_IMPORTED_MODULE_4__.IconField
};
function getRepeatableFieldComponent(type) {
  if (!type) {
    return null;
  }
  return REPEATABLE_FIELD_COMPONENTS[type] || null;
}

/***/ },

/***/ "./src/admin/customizer/repeatable/repeatable-logic.js"
/*!*************************************************************!*\
  !*** ./src/admin/customizer/repeatable/repeatable-logic.js ***!
  \*************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   compare: () => (/* binding */ compare),
/* harmony export */   fieldVisible: () => (/* binding */ fieldVisible),
/* harmony export */   multipleCompare: () => (/* binding */ multipleCompare),
/* harmony export */   normalizeControllerValue: () => (/* binding */ normalizeControllerValue),
/* harmony export */   rowMatchesCondition: () => (/* binding */ rowMatchesCondition)
/* harmony export */ });
/* harmony import */ var lodash_clone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/clone */ "./node_modules/lodash/clone.js");
/* harmony import */ var lodash_clone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clone__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_each__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js");
/* harmony import */ var lodash_each__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_each__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isArray */ "./node_modules/lodash/isArray.js");
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isArray__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js");
/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/isObject */ "./node_modules/lodash/isObject.js");
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_4__);
/**
 * Condition / compare helpers for repeatable field visibility (mirrors PHP `required` on fields).
 *
 * Supported `required` shapes:
 * - Single: [ controllerFieldId, operator, expectedValue ]  e.g. [ 'icon_type', '=', 'icon' ]
 * - AND:    [ [ k, op, v ], [ k2, op2, v2 ] ]
 *
 * Operators: '=', '==', '===', '!=', '!==', '>', '<', 'in', 'empty', 'not_empty'
 */





function compare(value1, cond, value2) {
  let equal = false;
  let _v;
  const op = cond === undefined || cond === null ? '' : String(cond);
  switch (op) {
    case '===':
      equal = value1 === value2;
      break;
    case '==':
    case '=':
      equal = value1 == value2;
      break;
    case '!==':
      equal = value1 !== value2;
      break;
    case '!=':
      equal = value1 != value2;
      break;
    case 'in':
      return Array.isArray(value2) ? value2.indexOf(value1) !== -1 : false;
    case '>':
      equal = value1 > value2;
      break;
    case '<':
      equal = value1 < value2;
      break;
    case 'empty':
      _v = lodash_clone__WEBPACK_IMPORTED_MODULE_0___default()(value1);
      if (lodash_isObject__WEBPACK_IMPORTED_MODULE_4___default()(_v) || lodash_isArray__WEBPACK_IMPORTED_MODULE_2___default()(_v)) {
        lodash_each__WEBPACK_IMPORTED_MODULE_1___default()(_v, (v, i) => {
          if (lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3___default()(v)) {
            delete _v[i];
          }
        });
        equal = lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3___default()(_v);
      } else {
        equal = _v === null || _v === '';
      }
      break;
    case 'not_empty':
      _v = lodash_clone__WEBPACK_IMPORTED_MODULE_0___default()(value1);
      if (lodash_isObject__WEBPACK_IMPORTED_MODULE_4___default()(_v) || lodash_isArray__WEBPACK_IMPORTED_MODULE_2___default()(_v)) {
        lodash_each__WEBPACK_IMPORTED_MODULE_1___default()(_v, (v, i) => {
          if (lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3___default()(v)) {
            delete _v[i];
          }
        });
      }
      equal = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_3___default()(_v);
      break;
    default:
      equal = value1 == value2;
  }
  return equal;
}

// Coerce row cell value for comparisons (missing keys, checkbox booleans).
function normalizeControllerValue(raw) {
  if (raw === undefined || raw === null) {
    return '';
  }
  if (typeof raw === 'boolean') {
    return raw ? '1' : '';
  }
  return raw;
}

// True when one [ fieldId, op, expected ] holds for the current row.
function rowMatchesCondition(values, controllerKey, operator, expected) {
  const actual = normalizeControllerValue(values[controllerKey]);
  return compare(actual, operator, expected);
}

// Single triple [ k, op, v ] or AND of several triples.
function multipleCompare(list, values) {
  if (!list || !Array.isArray(list)) {
    return true;
  }
  if (list.length === 0) {
    return true;
  }

  // AND of several [ key, op, val ] groups
  if (Array.isArray(list[0])) {
    return list.every(req => Array.isArray(req) && req.length >= 3 && typeof req[0] === 'string' && rowMatchesCondition(values, req[0], req[1], req[2]));
  }

  // One condition: [ controllerKey, operator, expected ]
  if (typeof list[0] === 'string' && list.length >= 3) {
    return rowMatchesCondition(values, list[0], list[1], list[2]);
  }
  return true;
}
function fieldVisible(required, fieldValues) {
  if (!required) {
    return true;
  }
  let req;
  try {
    req = typeof required === 'string' ? JSON.parse(required) : required;
  } catch (e) {
    return true;
  }
  return multipleCompare(req, fieldValues || {});
}

/***/ },

/***/ "./src/admin/customizer/repeatable/repeatable-media-bridge.js"
/*!********************************************************************!*\
  !*** ./src/admin/customizer/repeatable/repeatable-media-bridge.js ***!
  \********************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   installRepeatableMediaBridge: () => (/* binding */ installRepeatableMediaBridge)
/* harmony export */ });
/**
 * Single wp.media bridge for repeatable item-media fields (shared across controls).
 */
function installRepeatableMediaBridge($) {
  if (window._onepressRepeatableMediaInstalled) {
    return;
  }
  window._onepressRepeatableMediaInstalled = true;
  if (!window._upload_fame) {
    window._upload_fame = wp.media({
      title: wp.media.view.l10n.addMedia,
      multiple: false
    });
  }
  window._upload_fame.on('select', function () {
    const media_attachment = window._upload_fame.state().get('selection').first().toJSON();
    const $ctx = window.media_current;
    if (!$ctx || !$ctx.length) {
      return;
    }
    $ctx.find('.image_id').val(media_attachment.id);
    const img_url = media_attachment.url;
    $ctx.find('.current').removeClass('hide').addClass('show');
    $ctx.find('.image_url').val(img_url);
    if (media_attachment.type === 'image') {
      $ctx.find('.thumbnail-image').empty().append($('<img>', {
        src: img_url,
        alt: ''
      }));
    }
    $ctx.find('.remove-button').show();
    $ctx.find('.image_id').trigger('change');
    try {
      if (window.media_btn && window.media_btn.length) {
        window.media_btn.text(window.media_btn.attr('data-change-txt'));
      }
    } catch (e) {
      // ignore
    }
  });
}

/***/ },

/***/ "./src/admin/customizer/repeatable/repeatable-values.js"
/*!**************************************************************!*\
  !*** ./src/admin/customizer/repeatable/repeatable-values.js ***!
  \**************************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ONEPRESS_ICON_COMMIT_EVENT: () => (/* binding */ ONEPRESS_ICON_COMMIT_EVENT),
/* harmony export */   buildRowsFromParams: () => (/* binding */ buildRowsFromParams),
/* harmony export */   defaultForField: () => (/* binding */ defaultForField),
/* harmony export */   iconPreviewClass: () => (/* binding */ iconPreviewClass),
/* harmony export */   isSvgIconValue: () => (/* binding */ isSvgIconValue),
/* harmony export */   mergeRowFromServer: () => (/* binding */ mergeRowFromServer),
/* harmony export */   newEmptyRow: () => (/* binding */ newEmptyRow),
/* harmony export */   normalizeMediaValue: () => (/* binding */ normalizeMediaValue),
/* harmony export */   normalizeSvgIconForStorage: () => (/* binding */ normalizeSvgIconForStorage),
/* harmony export */   parseRepeatableStructure: () => (/* binding */ parseRepeatableStructure),
/* harmony export */   repeatableSettingValuesEqual: () => (/* binding */ repeatableSettingValuesEqual),
/* harmony export */   rowToSaveItem: () => (/* binding */ rowToSaveItem),
/* harmony export */   sanitizeSvgForCustomizerPreview: () => (/* binding */ sanitizeSvgForCustomizerPreview),
/* harmony export */   serializeSetting: () => (/* binding */ serializeSetting),
/* harmony export */   stripUiMetaFromRepeatable: () => (/* binding */ stripUiMetaFromRepeatable)
/* harmony export */ });
/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isEqual */ "./node_modules/lodash/isEqual.js");
/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Row value helpers: defaults, merge from server, payload for Customizer setting.
 */


function defaultForField(field) {
  const t = (field.type || '').toLowerCase();
  switch (t) {
    case 'checkbox':
      return false;
    case 'select':
      {
        if (field.multiple) {
          return [];
        }
        const opts = field.options || {};
        const keys = Object.keys(opts);
        if (keys.length === 0) {
          return '';
        }
        const fromSchema = field.value !== undefined && field.value !== null && field.value !== '' ? String(field.value) : '';
        if (fromSchema !== '' && Object.prototype.hasOwnProperty.call(opts, fromSchema)) {
          return fromSchema;
        }
        if (field.default !== undefined && field.default !== null && field.default !== '' && Object.prototype.hasOwnProperty.call(opts, String(field.default))) {
          return String(field.default);
        }
        return keys[0];
      }
    case 'media':
      return {
        url: '',
        id: ''
      };
    case 'color':
    case 'coloralpha':
      return '';
    case 'add_by':
      // newEmptyRow() forces "click" after defaults when this field exists.
      return '';
    default:
      return '';
  }
}
function normalizeMediaValue(v) {
  if (!v || typeof v !== 'object') {
    return {
      url: '',
      id: ''
    };
  }
  return {
    url: typeof v.url === 'string' ? v.url : '',
    id: v.id !== undefined && v.id !== null ? String(v.id) : ''
  };
}
function mergeRowFromServer(saved, fieldDefs) {
  const row = {};
  Object.keys(fieldDefs).forEach(id => {
    const def = fieldDefs[id];
    if (saved && Object.prototype.hasOwnProperty.call(saved, id)) {
      const raw = saved[id];
      const t = (def.type || '').toLowerCase();
      if (t === 'media') {
        row[id] = normalizeMediaValue(raw);
      } else if (t === 'checkbox') {
        row[id] = !!raw;
      } else if (t === 'select' && def.multiple) {
        row[id] = Array.isArray(raw) ? raw.slice() : raw ? [raw] : [];
      } else if (t === 'icon' && typeof raw === 'string') {
        row[id] = normalizeSvgIconForStorage(raw);
      } else {
        row[id] = raw;
      }
    } else {
      row[id] = defaultForField(def);
    }
  });
  if (saved && saved.__visibility !== undefined) {
    row.__visibility = saved.__visibility;
  }
  return row;
}
function buildRowsFromParams(value, fieldDefs) {
  if (!value) {
    return [];
  }
  let arr = value;
  if (typeof value === 'string') {
    try {
      arr = JSON.parse(value);
    } catch (e) {
      return [];
    }
  }
  if (arr && typeof arr === 'object' && !Array.isArray(arr) && Array.isArray(arr._items)) {
    arr = arr._items;
  }
  if (!Array.isArray(arr)) {
    return [];
  }
  return arr.map(saved => mergeRowFromServer(saved, fieldDefs));
}
function rowToSaveItem(row, fieldDefs) {
  const out = {};
  Object.keys(fieldDefs).forEach(id => {
    let v = row[id];
    const t = (fieldDefs[id].type || '').toLowerCase();
    if (t === 'icon' && typeof v === 'string') {
      v = normalizeSvgIconForStorage(v);
    }
    out[id] = v;
  });
  if (row.__visibility !== undefined) {
    out.__visibility = row.__visibility;
  }
  return out;
}
function serializeSetting(items, fieldDefs) {
  return JSON.stringify({
    _items: items.map(row => rowToSaveItem(row, fieldDefs))
  });
}

/**
 * Parse customize setting value or JSON string to { _items: rows }.
 *
 * @param {string|object|Array} raw
 * @returns {{ _items: Array }}
 */
function parseRepeatableStructure(raw) {
  if (raw === null || raw === undefined || raw === '') {
    return {
      _items: []
    };
  }
  let data = raw;
  if (typeof data === 'string') {
    try {
      data = JSON.parse(data);
    } catch {
      return {
        _items: []
      };
    }
  }
  if (Array.isArray(data)) {
    return {
      _items: data
    };
  }
  if (typeof data === 'object' && data !== null && Array.isArray(data._items)) {
    return {
      _items: data._items
    };
  }
  return {
    _items: []
  };
}

/**
 * Drop Customizer-only row keys (injected in PHP to_json, not stored in theme_mod).
 *
 * @param {{ _items: Array }} struct
 * @returns {{ _items: Array }}
 */
function stripUiMetaFromRepeatable(struct) {
  const items = (struct._items || []).map(row => {
    if (!row || typeof row !== 'object') {
      return row;
    }
    const {
      __visibility,
      ...rest
    } = row;
    return rest;
  });
  return {
    _items: items
  };
}

/**
 * True when saved setting and React payload represent the same repeatable data.
 * Uses deep equality so key order / string vs object wrappers do not false-positive.
 * Ignores __visibility (section list UI) which exists in control.params.value but not in DB.
 *
 * @param {string|object|Array} a
 * @param {string|object|Array} b
 * @returns {boolean}
 */
function repeatableSettingValuesEqual(a, b) {
  return lodash_isEqual__WEBPACK_IMPORTED_MODULE_0___default()(stripUiMetaFromRepeatable(parseRepeatableStructure(a)), stripUiMetaFromRepeatable(parseRepeatableStructure(b)));
}
function newEmptyRow(fieldDefs, idKey) {
  const row = {};
  Object.keys(fieldDefs).forEach(id => {
    row[id] = defaultForField(fieldDefs[id]);
  });
  if (Object.prototype.hasOwnProperty.call(fieldDefs, 'add_by')) {
    row.add_by = 'click';
  }
  if (idKey) {
    row[idKey] = 'sid' + Date.now();
  }
  return row;
}

/** Dispatched by icon picker so React IconField can call onChange (Customizer setting). */
const ONEPRESS_ICON_COMMIT_EVENT = 'onepress-repeatable-icon-commit';

/**
 * Fix SVG strings that picked up extra backslashes before quotes (breaks JSON on save)
 * or "+" instead of space after "<svg" (form-encoding artifacts).
 */
function normalizeSvgIconForStorage(v) {
  if (typeof v !== 'string' || !v) {
    return v;
  }
  let s = v.trim().replace(/^\uFEFF/, '');
  s = s.replace(/^\s*<\?xml\b[^>]*>\s*/i, '');
  s = s.replace(/^\s*<!DOCTYPE\b[^>]*>\s*/i, '');
  s = s.replace(/<svg\+/gi, '<svg ');
  let prev;
  do {
    prev = s;
    s = s.replace(/(?:\\)+"/g, '"');
  } while (s !== prev);
  return s;
}

/**
 * True when the stored icon value is raw SVG markup (not a CSS class string).
 */
function isSvgIconValue(v) {
  if (!v || typeof v !== 'string') {
    return false;
  }
  const s = normalizeSvgIconForStorage(v).trim();
  if (!s) {
    return false;
  }
  return /^<\s*svg[\s>]/i.test(s);
}
function iconPreviewClass(iconValue) {
  if (isSvgIconValue(iconValue)) {
    return '';
  }
  let iconClass = iconValue || '';
  if (iconClass.indexOf('fa-') !== 0) {
    iconClass = 'fa-' + iconClass;
  } else {
    iconClass = iconClass.replace('fa ', '');
  }
  return iconClass.replace('fa-fa', '');
}

/**
 * Strip obvious script/event vectors from SVG before preview in Customizer (saved output is still sanitized in PHP).
 */
function sanitizeSvgForCustomizerPreview(raw) {
  if (typeof raw !== 'string' || !raw) {
    return '';
  }
  const s = normalizeSvgIconForStorage(raw);
  if (!isSvgIconValue(s)) {
    return '';
  }
  return s.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '').replace(/\s+on\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi, '').replace(/\s+href\s*=\s*(["'])\s*javascript:[^"']*\1/gi, ' href="#"');
}

/***/ },

/***/ "./src/admin/customizer/wp-editor.js"
/*!*******************************************!*\
  !*** ./src/admin/customizer/wp-editor.js ***!
  \*******************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   installWpEditor: () => (/* binding */ installWpEditor)
/* harmony export */ });
/**
 * TinyMCE / Quicktags bridge for Customizer textareas.
 */
function installWpEditor($) {
  window._wpEditor = {
    init: function (id, content, settings) {
      var _id = '__wp_mce_editor__';
      var _tpl = $('#_wp-mce-editor-tpl').html();
      if (typeof content === "undefined") {
        content = '';
      }
      if (typeof window.tinyMCEPreInit.mceInit[_id] !== "undefined") {
        var tmceInit = _.clone(window.tinyMCEPreInit.mceInit[_id]);
        var qtInit = _.clone(window.tinyMCEPreInit.qtInit[_id]);
        tmceInit = $.extend(tmceInit, settings.tinymce);
        qtInit = $.extend(qtInit, settings.qtag);
        var tpl = _tpl.replace(new RegExp(_id, "g"), id);
        var template = $(tpl);
        template.find('textarea').removeAttr('rows').removeAttr('cols');
        $("#" + id).replaceWith(template);
        // set content
        $('#' + id).val(content);
        var $wrap = tinymce.$('#wp-' + id + '-wrap');
        tmceInit.body_class = tmceInit.body_class.replace(new RegExp(_id, "g"), id);
        tmceInit.selector = tmceInit.selector.replace(new RegExp(_id, "g"), id);
        tmceInit.cache_suffix = '';
        $wrap.removeClass('html-active').addClass('tmce-active');
        tmceInit.init_instance_callback = function (editor) {
          if (typeof settings === 'object') {
            if (typeof settings.mod === 'string' && settings.mod === 'html') {
              //console.log( settings.mod  );
              try {
                switchEditors.go(id, settings.mod);
              } catch (e) {}
            }
            // editor.theme.resizeTo('100%', 500);
            if (typeof settings.init_instance_callback === "function") {
              settings.init_instance_callback(editor);
            }
            if (settings.sync_id !== '') {
              if (typeof settings.sync_id === 'string') {
                editor.on('keyup change', function (e) {
                  var html = editor.getContent({
                    format: 'raw'
                  });
                  html = window._wpEditor.removep(html);
                  $('#' + settings.sync_id).val(html).trigger('change');
                });
              } else {
                editor.on('keyup change', function (e) {
                  var html = editor.getContent({
                    format: 'raw'
                  });
                  html = window._wpEditor.removep(html);
                  settings.sync_id.val(html).trigger('change');
                });
              }
              $('textarea#' + id).on('keyup change', function () {
                var v = $(this).val();
                if (typeof settings.sync_id === 'string') {
                  $('#' + settings.sync_id).val(v).trigger('change');
                } else {
                  settings.sync_id.val(v).trigger('change');
                }
              });
            }
          }
        };
        tmceInit.plugins = tmceInit.plugins.replace('fullscreen,', '');
        tinyMCEPreInit.mceInit[id] = tmceInit;
        qtInit.id = id;
        tinyMCEPreInit.qtInit[id] = qtInit;
        if ($wrap.hasClass('tmce-active') || !tinyMCEPreInit.qtInit.hasOwnProperty(id)) {
          tinymce.init(tmceInit);
          if (!window.wpActiveEditor) {
            window.wpActiveEditor = id;
          }
        }
        if (typeof quicktags !== 'undefined') {
          /**
           * Reset quicktags
           * This is crazy condition
           * Maybe this is a bug ?
           * see wp-includes/js/quicktags.js line 252
           */
          if (QTags.instances['0']) {
            QTags.instances['0'] = false;
          }
          quicktags(qtInit);
          if (!window.wpActiveEditor) {
            window.wpActiveEditor = id;
          }
        }
      }
    },
    /**
     * Replace paragraphs with double line breaks
     * @see wp-admin/js/editor.js
     */
    removep: function (html) {
      return window.switchEditors._wp_Nop(html);
    },
    sync: function () {
      //
    },
    remove: function (id) {
      var content = '';
      var editor = false;
      if (editor = tinymce.get(id)) {
        content = editor.getContent({
          format: 'raw'
        });
        content = window._wpEditor.removep(content);
        editor.remove();
      } else {
        content = $('#' + id).val();
      }
      if ($('#wp-' + id + '-wrap').length > 0) {
        window._wpEditorBackUp = window._wpEditorBackUp || {};
        if (typeof window._wpEditorBackUp[id] !== "undefined") {
          $('#wp-' + id + '-wrap').replaceWith(window._wpEditorBackUp[id]);
        }
      }
      $('#' + id).val(content);
    }
  };
  $.fn.wp_js_editor = function (options) {
    // This is the easiest way to have default options.
    if (options !== 'remove') {
      options = $.extend({
        sync_id: "",
        // sync to another text area
        tinymce: {},
        // tinymce setting
        qtag: {},
        // quick tag settings
        mod: '',
        // quick tag settings
        init_instance_callback: function () {} // quick tag settings
      }, options);
    } else {
      options = 'remove';
    }
    return this.each(function () {
      var edit_area = $(this);
      edit_area.uniqueId();
      // Make sure edit area have a id attribute
      var id = edit_area.attr('id') || '';
      if (id === '') {
        return;
      }
      if ('remove' !== options) {
        if (!options.mod) {
          options.mod = edit_area.attr('data-editor-mod') || '';
        }
        window._wpEditorBackUp = window._wpEditorBackUp || {};
        window._wpEditorBackUp[id] = edit_area;
        window._wpEditor.init(id, edit_area.val(), options);
      } else {
        window._wpEditor.remove(id);
      }
    });
  };
}

/***/ },

/***/ "./node_modules/lodash/_DataView.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_DataView.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/* Built-in method references that are verified to be native. */
var DataView = getNative(root, 'DataView');

module.exports = DataView;


/***/ },

/***/ "./node_modules/lodash/_Hash.js"
/*!**************************************!*\
  !*** ./node_modules/lodash/_Hash.js ***!
  \**************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/lodash/_hashClear.js"),
    hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/lodash/_hashDelete.js"),
    hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/lodash/_hashGet.js"),
    hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/lodash/_hashHas.js"),
    hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/lodash/_hashSet.js");

/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

// Add methods to `Hash`.
Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;

module.exports = Hash;


/***/ },

/***/ "./node_modules/lodash/_ListCache.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_ListCache.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/lodash/_listCacheClear.js"),
    listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/lodash/_listCacheDelete.js"),
    listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/lodash/_listCacheGet.js"),
    listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/lodash/_listCacheHas.js"),
    listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/lodash/_listCacheSet.js");

/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

// Add methods to `ListCache`.
ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;

module.exports = ListCache;


/***/ },

/***/ "./node_modules/lodash/_Map.js"
/*!*************************************!*\
  !*** ./node_modules/lodash/_Map.js ***!
  \*************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/* Built-in method references that are verified to be native. */
var Map = getNative(root, 'Map');

module.exports = Map;


/***/ },

/***/ "./node_modules/lodash/_MapCache.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_MapCache.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/lodash/_mapCacheClear.js"),
    mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/lodash/_mapCacheDelete.js"),
    mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/lodash/_mapCacheGet.js"),
    mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/lodash/_mapCacheHas.js"),
    mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/lodash/_mapCacheSet.js");

/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

// Add methods to `MapCache`.
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;

module.exports = MapCache;


/***/ },

/***/ "./node_modules/lodash/_Promise.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_Promise.js ***!
  \*****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/* Built-in method references that are verified to be native. */
var Promise = getNative(root, 'Promise');

module.exports = Promise;


/***/ },

/***/ "./node_modules/lodash/_Set.js"
/*!*************************************!*\
  !*** ./node_modules/lodash/_Set.js ***!
  \*************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/* Built-in method references that are verified to be native. */
var Set = getNative(root, 'Set');

module.exports = Set;


/***/ },

/***/ "./node_modules/lodash/_SetCache.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_SetCache.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js"),
    setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/lodash/_setCacheAdd.js"),
    setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/lodash/_setCacheHas.js");

/**
 *
 * Creates an array cache object to store unique values.
 *
 * @private
 * @constructor
 * @param {Array} [values] The values to cache.
 */
function SetCache(values) {
  var index = -1,
      length = values == null ? 0 : values.length;

  this.__data__ = new MapCache;
  while (++index < length) {
    this.add(values[index]);
  }
}

// Add methods to `SetCache`.
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;

module.exports = SetCache;


/***/ },

/***/ "./node_modules/lodash/_Stack.js"
/*!***************************************!*\
  !*** ./node_modules/lodash/_Stack.js ***!
  \***************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
    stackClear = __webpack_require__(/*! ./_stackClear */ "./node_modules/lodash/_stackClear.js"),
    stackDelete = __webpack_require__(/*! ./_stackDelete */ "./node_modules/lodash/_stackDelete.js"),
    stackGet = __webpack_require__(/*! ./_stackGet */ "./node_modules/lodash/_stackGet.js"),
    stackHas = __webpack_require__(/*! ./_stackHas */ "./node_modules/lodash/_stackHas.js"),
    stackSet = __webpack_require__(/*! ./_stackSet */ "./node_modules/lodash/_stackSet.js");

/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}

// Add methods to `Stack`.
Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;

module.exports = Stack;


/***/ },

/***/ "./node_modules/lodash/_Symbol.js"
/*!****************************************!*\
  !*** ./node_modules/lodash/_Symbol.js ***!
  \****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/** Built-in value references. */
var Symbol = root.Symbol;

module.exports = Symbol;


/***/ },

/***/ "./node_modules/lodash/_Uint8Array.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_Uint8Array.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/** Built-in value references. */
var Uint8Array = root.Uint8Array;

module.exports = Uint8Array;


/***/ },

/***/ "./node_modules/lodash/_WeakMap.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_WeakMap.js ***!
  \*****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
    root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/* Built-in method references that are verified to be native. */
var WeakMap = getNative(root, 'WeakMap');

module.exports = WeakMap;


/***/ },

/***/ "./node_modules/lodash/_arrayEach.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_arrayEach.js ***!
  \*******************************************/
(module) {

/**
 * A specialized version of `_.forEach` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns `array`.
 */
function arrayEach(array, iteratee) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (iteratee(array[index], index, array) === false) {
      break;
    }
  }
  return array;
}

module.exports = arrayEach;


/***/ },

/***/ "./node_modules/lodash/_arrayFilter.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_arrayFilter.js ***!
  \*********************************************/
(module) {

/**
 * A specialized version of `_.filter` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {Array} Returns the new filtered array.
 */
function arrayFilter(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length,
      resIndex = 0,
      result = [];

  while (++index < length) {
    var value = array[index];
    if (predicate(value, index, array)) {
      result[resIndex++] = value;
    }
  }
  return result;
}

module.exports = arrayFilter;


/***/ },

/***/ "./node_modules/lodash/_arrayLikeKeys.js"
/*!***********************************************!*\
  !*** ./node_modules/lodash/_arrayLikeKeys.js ***!
  \***********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseTimes = __webpack_require__(/*! ./_baseTimes */ "./node_modules/lodash/_baseTimes.js"),
    isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
    isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
    isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
    isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */
function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) &&
        !(skipIndexes && (
           // Safari 9 has enumerable `arguments.length` in strict mode.
           key == 'length' ||
           // Node.js 0.10 has enumerable non-index properties on buffers.
           (isBuff && (key == 'offset' || key == 'parent')) ||
           // PhantomJS 2 has enumerable non-index properties on typed arrays.
           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
           // Skip index properties.
           isIndex(key, length)
        ))) {
      result.push(key);
    }
  }
  return result;
}

module.exports = arrayLikeKeys;


/***/ },

/***/ "./node_modules/lodash/_arrayPush.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_arrayPush.js ***!
  \*******************************************/
(module) {

/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */
function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }
  return array;
}

module.exports = arrayPush;


/***/ },

/***/ "./node_modules/lodash/_arraySome.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_arraySome.js ***!
  \*******************************************/
(module) {

/**
 * A specialized version of `_.some` for arrays without support for iteratee
 * shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 *  else `false`.
 */
function arraySome(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (predicate(array[index], index, array)) {
      return true;
    }
  }
  return false;
}

module.exports = arraySome;


/***/ },

/***/ "./node_modules/lodash/_assignValue.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_assignValue.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
    eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Assigns `value` to `key` of `object` if the existing value is not equivalent
 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * for equality comparisons.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */
function assignValue(object, key, value) {
  var objValue = object[key];
  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
      (value === undefined && !(key in object))) {
    baseAssignValue(object, key, value);
  }
}

module.exports = assignValue;


/***/ },

/***/ "./node_modules/lodash/_assocIndexOf.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_assocIndexOf.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");

/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function assocIndexOf(array, key) {
  var length = array.length;
  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }
  return -1;
}

module.exports = assocIndexOf;


/***/ },

/***/ "./node_modules/lodash/_baseAssign.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseAssign.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");

/**
 * The base implementation of `_.assign` without support for multiple sources
 * or `customizer` functions.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @returns {Object} Returns `object`.
 */
function baseAssign(object, source) {
  return object && copyObject(source, keys(source), object);
}

module.exports = baseAssign;


/***/ },

/***/ "./node_modules/lodash/_baseAssignIn.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseAssignIn.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
    keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");

/**
 * The base implementation of `_.assignIn` without support for multiple sources
 * or `customizer` functions.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @returns {Object} Returns `object`.
 */
function baseAssignIn(object, source) {
  return object && copyObject(source, keysIn(source), object);
}

module.exports = baseAssignIn;


/***/ },

/***/ "./node_modules/lodash/_baseAssignValue.js"
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseAssignValue.js ***!
  \*************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js");

/**
 * The base implementation of `assignValue` and `assignMergeValue` without
 * value checks.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */
function baseAssignValue(object, key, value) {
  if (key == '__proto__' && defineProperty) {
    defineProperty(object, key, {
      'configurable': true,
      'enumerable': true,
      'value': value,
      'writable': true
    });
  } else {
    object[key] = value;
  }
}

module.exports = baseAssignValue;


/***/ },

/***/ "./node_modules/lodash/_baseClone.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseClone.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
    arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
    assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
    baseAssign = __webpack_require__(/*! ./_baseAssign */ "./node_modules/lodash/_baseAssign.js"),
    baseAssignIn = __webpack_require__(/*! ./_baseAssignIn */ "./node_modules/lodash/_baseAssignIn.js"),
    cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ "./node_modules/lodash/_cloneBuffer.js"),
    copyArray = __webpack_require__(/*! ./_copyArray */ "./node_modules/lodash/_copyArray.js"),
    copySymbols = __webpack_require__(/*! ./_copySymbols */ "./node_modules/lodash/_copySymbols.js"),
    copySymbolsIn = __webpack_require__(/*! ./_copySymbolsIn */ "./node_modules/lodash/_copySymbolsIn.js"),
    getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js"),
    getAllKeysIn = __webpack_require__(/*! ./_getAllKeysIn */ "./node_modules/lodash/_getAllKeysIn.js"),
    getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
    initCloneArray = __webpack_require__(/*! ./_initCloneArray */ "./node_modules/lodash/_initCloneArray.js"),
    initCloneByTag = __webpack_require__(/*! ./_initCloneByTag */ "./node_modules/lodash/_initCloneByTag.js"),
    initCloneObject = __webpack_require__(/*! ./_initCloneObject */ "./node_modules/lodash/_initCloneObject.js"),
    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
    isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
    isMap = __webpack_require__(/*! ./isMap */ "./node_modules/lodash/isMap.js"),
    isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
    isSet = __webpack_require__(/*! ./isSet */ "./node_modules/lodash/isSet.js"),
    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js"),
    keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");

/** Used to compose bitmasks for cloning. */
var CLONE_DEEP_FLAG = 1,
    CLONE_FLAT_FLAG = 2,
    CLONE_SYMBOLS_FLAG = 4;

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    objectTag = '[object Object]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    symbolTag = '[object Symbol]',
    weakMapTag = '[object WeakMap]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';

/** Used to identify `toStringTag` values supported by `_.clone`. */
var cloneableTags = {};
cloneableTags[argsTag] = cloneableTags[arrayTag] =
cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
cloneableTags[boolTag] = cloneableTags[dateTag] =
cloneableTags[float32Tag] = cloneableTags[float64Tag] =
cloneableTags[int8Tag] = cloneableTags[int16Tag] =
cloneableTags[int32Tag] = cloneableTags[mapTag] =
cloneableTags[numberTag] = cloneableTags[objectTag] =
cloneableTags[regexpTag] = cloneableTags[setTag] =
cloneableTags[stringTag] = cloneableTags[symbolTag] =
cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
cloneableTags[errorTag] = cloneableTags[funcTag] =
cloneableTags[weakMapTag] = false;

/**
 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
 * traversed objects.
 *
 * @private
 * @param {*} value The value to clone.
 * @param {boolean} bitmask The bitmask flags.
 *  1 - Deep clone
 *  2 - Flatten inherited properties
 *  4 - Clone symbols
 * @param {Function} [customizer] The function to customize cloning.
 * @param {string} [key] The key of `value`.
 * @param {Object} [object] The parent object of `value`.
 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
 * @returns {*} Returns the cloned value.
 */
function baseClone(value, bitmask, customizer, key, object, stack) {
  var result,
      isDeep = bitmask & CLONE_DEEP_FLAG,
      isFlat = bitmask & CLONE_FLAT_FLAG,
      isFull = bitmask & CLONE_SYMBOLS_FLAG;

  if (customizer) {
    result = object ? customizer(value, key, object, stack) : customizer(value);
  }
  if (result !== undefined) {
    return result;
  }
  if (!isObject(value)) {
    return value;
  }
  var isArr = isArray(value);
  if (isArr) {
    result = initCloneArray(value);
    if (!isDeep) {
      return copyArray(value, result);
    }
  } else {
    var tag = getTag(value),
        isFunc = tag == funcTag || tag == genTag;

    if (isBuffer(value)) {
      return cloneBuffer(value, isDeep);
    }
    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
      result = (isFlat || isFunc) ? {} : initCloneObject(value);
      if (!isDeep) {
        return isFlat
          ? copySymbolsIn(value, baseAssignIn(result, value))
          : copySymbols(value, baseAssign(result, value));
      }
    } else {
      if (!cloneableTags[tag]) {
        return object ? value : {};
      }
      result = initCloneByTag(value, tag, isDeep);
    }
  }
  // Check for circular references and return its corresponding clone.
  stack || (stack = new Stack);
  var stacked = stack.get(value);
  if (stacked) {
    return stacked;
  }
  stack.set(value, result);

  if (isSet(value)) {
    value.forEach(function(subValue) {
      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
    });
  } else if (isMap(value)) {
    value.forEach(function(subValue, key) {
      result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
    });
  }

  var keysFunc = isFull
    ? (isFlat ? getAllKeysIn : getAllKeys)
    : (isFlat ? keysIn : keys);

  var props = isArr ? undefined : keysFunc(value);
  arrayEach(props || value, function(subValue, key) {
    if (props) {
      key = subValue;
      subValue = value[key];
    }
    // Recursively populate clone (susceptible to call stack limits).
    assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
  });
  return result;
}

module.exports = baseClone;


/***/ },

/***/ "./node_modules/lodash/_baseCreate.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseCreate.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");

/** Built-in value references. */
var objectCreate = Object.create;

/**
 * The base implementation of `_.create` without support for assigning
 * properties to the created object.
 *
 * @private
 * @param {Object} proto The object to inherit from.
 * @returns {Object} Returns the new object.
 */
var baseCreate = (function() {
  function object() {}
  return function(proto) {
    if (!isObject(proto)) {
      return {};
    }
    if (objectCreate) {
      return objectCreate(proto);
    }
    object.prototype = proto;
    var result = new object;
    object.prototype = undefined;
    return result;
  };
}());

module.exports = baseCreate;


/***/ },

/***/ "./node_modules/lodash/_baseEach.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_baseEach.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
    createBaseEach = __webpack_require__(/*! ./_createBaseEach */ "./node_modules/lodash/_createBaseEach.js");

/**
 * The base implementation of `_.forEach` without support for iteratee shorthands.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array|Object} Returns `collection`.
 */
var baseEach = createBaseEach(baseForOwn);

module.exports = baseEach;


/***/ },

/***/ "./node_modules/lodash/_baseFor.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_baseFor.js ***!
  \*****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ "./node_modules/lodash/_createBaseFor.js");

/**
 * The base implementation of `baseForOwn` which iterates over `object`
 * properties returned by `keysFunc` and invokes `iteratee` for each property.
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */
var baseFor = createBaseFor();

module.exports = baseFor;


/***/ },

/***/ "./node_modules/lodash/_baseForOwn.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseForOwn.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");

/**
 * The base implementation of `_.forOwn` without support for iteratee shorthands.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Object} Returns `object`.
 */
function baseForOwn(object, iteratee) {
  return object && baseFor(object, iteratee, keys);
}

module.exports = baseForOwn;


/***/ },

/***/ "./node_modules/lodash/_baseGetAllKeys.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_baseGetAllKeys.js ***!
  \************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");

/**
 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
 * symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @param {Function} symbolsFunc The function to get the symbols of `object`.
 * @returns {Array} Returns the array of property names and symbols.
 */
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
  var result = keysFunc(object);
  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
}

module.exports = baseGetAllKeys;


/***/ },

/***/ "./node_modules/lodash/_baseGetTag.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseGetTag.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
    getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
    objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");

/** `Object#toString` result references. */
var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

module.exports = baseGetTag;


/***/ },

/***/ "./node_modules/lodash/_baseIsArguments.js"
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseIsArguments.js ***!
  \*************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/** `Object#toString` result references. */
var argsTag = '[object Arguments]';

/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */
function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}

module.exports = baseIsArguments;


/***/ },

/***/ "./node_modules/lodash/_baseIsEqual.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseIsEqual.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./node_modules/lodash/_baseIsEqualDeep.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/**
 * The base implementation of `_.isEqual` which supports partial comparisons
 * and tracks traversed objects.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @param {boolean} bitmask The bitmask flags.
 *  1 - Unordered comparison
 *  2 - Partial comparison
 * @param {Function} [customizer] The function to customize comparisons.
 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 */
function baseIsEqual(value, other, bitmask, customizer, stack) {
  if (value === other) {
    return true;
  }
  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
    return value !== value && other !== other;
  }
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}

module.exports = baseIsEqual;


/***/ },

/***/ "./node_modules/lodash/_baseIsEqualDeep.js"
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseIsEqualDeep.js ***!
  \*************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
    equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
    equalByTag = __webpack_require__(/*! ./_equalByTag */ "./node_modules/lodash/_equalByTag.js"),
    equalObjects = __webpack_require__(/*! ./_equalObjects */ "./node_modules/lodash/_equalObjects.js"),
    getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
    isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
    isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1;

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    objectTag = '[object Object]';

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * A specialized version of `baseIsEqual` for arrays and objects which performs
 * deep comparisons and tracks traversed objects enabling objects with circular
 * references to be compared.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
  var objIsArr = isArray(object),
      othIsArr = isArray(other),
      objTag = objIsArr ? arrayTag : getTag(object),
      othTag = othIsArr ? arrayTag : getTag(other);

  objTag = objTag == argsTag ? objectTag : objTag;
  othTag = othTag == argsTag ? objectTag : othTag;

  var objIsObj = objTag == objectTag,
      othIsObj = othTag == objectTag,
      isSameTag = objTag == othTag;

  if (isSameTag && isBuffer(object)) {
    if (!isBuffer(other)) {
      return false;
    }
    objIsArr = true;
    objIsObj = false;
  }
  if (isSameTag && !objIsObj) {
    stack || (stack = new Stack);
    return (objIsArr || isTypedArray(object))
      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
  }
  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');

    if (objIsWrapped || othIsWrapped) {
      var objUnwrapped = objIsWrapped ? object.value() : object,
          othUnwrapped = othIsWrapped ? other.value() : other;

      stack || (stack = new Stack);
      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
    }
  }
  if (!isSameTag) {
    return false;
  }
  stack || (stack = new Stack);
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}

module.exports = baseIsEqualDeep;


/***/ },

/***/ "./node_modules/lodash/_baseIsMap.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseIsMap.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/** `Object#toString` result references. */
var mapTag = '[object Map]';

/**
 * The base implementation of `_.isMap` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
 */
function baseIsMap(value) {
  return isObjectLike(value) && getTag(value) == mapTag;
}

module.exports = baseIsMap;


/***/ },

/***/ "./node_modules/lodash/_baseIsNative.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseIsNative.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
    isMasked = __webpack_require__(/*! ./_isMasked */ "./node_modules/lodash/_isMasked.js"),
    isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
    toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");

/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;

/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;

/** Used for built-in method references. */
var funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);

/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */
function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}

module.exports = baseIsNative;


/***/ },

/***/ "./node_modules/lodash/_baseIsSet.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseIsSet.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/** `Object#toString` result references. */
var setTag = '[object Set]';

/**
 * The base implementation of `_.isSet` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
 */
function baseIsSet(value) {
  return isObjectLike(value) && getTag(value) == setTag;
}

module.exports = baseIsSet;


/***/ },

/***/ "./node_modules/lodash/_baseIsTypedArray.js"
/*!**************************************************!*\
  !*** ./node_modules/lodash/_baseIsTypedArray.js ***!
  \**************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
    isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    objectTag = '[object Object]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    weakMapTag = '[object WeakMap]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';

/** Used to identify `toStringTag` values of typed arrays. */
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
typedArrayTags[errorTag] = typedArrayTags[funcTag] =
typedArrayTags[mapTag] = typedArrayTags[numberTag] =
typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
typedArrayTags[setTag] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag] = false;

/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */
function baseIsTypedArray(value) {
  return isObjectLike(value) &&
    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}

module.exports = baseIsTypedArray;


/***/ },

/***/ "./node_modules/lodash/_baseKeys.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_baseKeys.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
    nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./node_modules/lodash/_nativeKeys.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }
  var result = [];
  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }
  return result;
}

module.exports = baseKeys;


/***/ },

/***/ "./node_modules/lodash/_baseKeysIn.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseKeysIn.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
    isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
    nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ "./node_modules/lodash/_nativeKeysIn.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function baseKeysIn(object) {
  if (!isObject(object)) {
    return nativeKeysIn(object);
  }
  var isProto = isPrototype(object),
      result = [];

  for (var key in object) {
    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
      result.push(key);
    }
  }
  return result;
}

module.exports = baseKeysIn;


/***/ },

/***/ "./node_modules/lodash/_baseTimes.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseTimes.js ***!
  \*******************************************/
(module) {

/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */
function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }
  return result;
}

module.exports = baseTimes;


/***/ },

/***/ "./node_modules/lodash/_baseUnary.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseUnary.js ***!
  \*******************************************/
(module) {

/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */
function baseUnary(func) {
  return function(value) {
    return func(value);
  };
}

module.exports = baseUnary;


/***/ },

/***/ "./node_modules/lodash/_cacheHas.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_cacheHas.js ***!
  \******************************************/
(module) {

/**
 * Checks if a `cache` value for `key` exists.
 *
 * @private
 * @param {Object} cache The cache to query.
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function cacheHas(cache, key) {
  return cache.has(key);
}

module.exports = cacheHas;


/***/ },

/***/ "./node_modules/lodash/_castFunction.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_castFunction.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");

/**
 * Casts `value` to `identity` if it's not a function.
 *
 * @private
 * @param {*} value The value to inspect.
 * @returns {Function} Returns cast function.
 */
function castFunction(value) {
  return typeof value == 'function' ? value : identity;
}

module.exports = castFunction;


/***/ },

/***/ "./node_modules/lodash/_cloneArrayBuffer.js"
/*!**************************************************!*\
  !*** ./node_modules/lodash/_cloneArrayBuffer.js ***!
  \**************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js");

/**
 * Creates a clone of `arrayBuffer`.
 *
 * @private
 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
 * @returns {ArrayBuffer} Returns the cloned array buffer.
 */
function cloneArrayBuffer(arrayBuffer) {
  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
  new Uint8Array(result).set(new Uint8Array(arrayBuffer));
  return result;
}

module.exports = cloneArrayBuffer;


/***/ },

/***/ "./node_modules/lodash/_cloneBuffer.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_cloneBuffer.js ***!
  \*********************************************/
(module, exports, __webpack_require__) {

/* module decorator */ module = __webpack_require__.nmd(module);
var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/** Detect free variable `exports`. */
var freeExports =  true && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Built-in value references. */
var Buffer = moduleExports ? root.Buffer : undefined,
    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;

/**
 * Creates a clone of  `buffer`.
 *
 * @private
 * @param {Buffer} buffer The buffer to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Buffer} Returns the cloned buffer.
 */
function cloneBuffer(buffer, isDeep) {
  if (isDeep) {
    return buffer.slice();
  }
  var length = buffer.length,
      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);

  buffer.copy(result);
  return result;
}

module.exports = cloneBuffer;


/***/ },

/***/ "./node_modules/lodash/_cloneDataView.js"
/*!***********************************************!*\
  !*** ./node_modules/lodash/_cloneDataView.js ***!
  \***********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");

/**
 * Creates a clone of `dataView`.
 *
 * @private
 * @param {Object} dataView The data view to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned data view.
 */
function cloneDataView(dataView, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
}

module.exports = cloneDataView;


/***/ },

/***/ "./node_modules/lodash/_cloneRegExp.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_cloneRegExp.js ***!
  \*********************************************/
(module) {

/** Used to match `RegExp` flags from their coerced string values. */
var reFlags = /\w*$/;

/**
 * Creates a clone of `regexp`.
 *
 * @private
 * @param {Object} regexp The regexp to clone.
 * @returns {Object} Returns the cloned regexp.
 */
function cloneRegExp(regexp) {
  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
  result.lastIndex = regexp.lastIndex;
  return result;
}

module.exports = cloneRegExp;


/***/ },

/***/ "./node_modules/lodash/_cloneSymbol.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_cloneSymbol.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");

/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;

/**
 * Creates a clone of the `symbol` object.
 *
 * @private
 * @param {Object} symbol The symbol object to clone.
 * @returns {Object} Returns the cloned symbol object.
 */
function cloneSymbol(symbol) {
  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
}

module.exports = cloneSymbol;


/***/ },

/***/ "./node_modules/lodash/_cloneTypedArray.js"
/*!*************************************************!*\
  !*** ./node_modules/lodash/_cloneTypedArray.js ***!
  \*************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");

/**
 * Creates a clone of `typedArray`.
 *
 * @private
 * @param {Object} typedArray The typed array to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned typed array.
 */
function cloneTypedArray(typedArray, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}

module.exports = cloneTypedArray;


/***/ },

/***/ "./node_modules/lodash/_copyArray.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_copyArray.js ***!
  \*******************************************/
(module) {

/**
 * Copies the values of `source` to `array`.
 *
 * @private
 * @param {Array} source The array to copy values from.
 * @param {Array} [array=[]] The array to copy values to.
 * @returns {Array} Returns `array`.
 */
function copyArray(source, array) {
  var index = -1,
      length = source.length;

  array || (array = Array(length));
  while (++index < length) {
    array[index] = source[index];
  }
  return array;
}

module.exports = copyArray;


/***/ },

/***/ "./node_modules/lodash/_copyObject.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_copyObject.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
    baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js");

/**
 * Copies properties of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy properties from.
 * @param {Array} props The property identifiers to copy.
 * @param {Object} [object={}] The object to copy properties to.
 * @param {Function} [customizer] The function to customize copied values.
 * @returns {Object} Returns `object`.
 */
function copyObject(source, props, object, customizer) {
  var isNew = !object;
  object || (object = {});

  var index = -1,
      length = props.length;

  while (++index < length) {
    var key = props[index];

    var newValue = customizer
      ? customizer(object[key], source[key], key, object, source)
      : undefined;

    if (newValue === undefined) {
      newValue = source[key];
    }
    if (isNew) {
      baseAssignValue(object, key, newValue);
    } else {
      assignValue(object, key, newValue);
    }
  }
  return object;
}

module.exports = copyObject;


/***/ },

/***/ "./node_modules/lodash/_copySymbols.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_copySymbols.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
    getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js");

/**
 * Copies own symbols of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy symbols from.
 * @param {Object} [object={}] The object to copy symbols to.
 * @returns {Object} Returns `object`.
 */
function copySymbols(source, object) {
  return copyObject(source, getSymbols(source), object);
}

module.exports = copySymbols;


/***/ },

/***/ "./node_modules/lodash/_copySymbolsIn.js"
/*!***********************************************!*\
  !*** ./node_modules/lodash/_copySymbolsIn.js ***!
  \***********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
    getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js");

/**
 * Copies own and inherited symbols of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy symbols from.
 * @param {Object} [object={}] The object to copy symbols to.
 * @returns {Object} Returns `object`.
 */
function copySymbolsIn(source, object) {
  return copyObject(source, getSymbolsIn(source), object);
}

module.exports = copySymbolsIn;


/***/ },

/***/ "./node_modules/lodash/_coreJsData.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_coreJsData.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");

/** Used to detect overreaching core-js shims. */
var coreJsData = root['__core-js_shared__'];

module.exports = coreJsData;


/***/ },

/***/ "./node_modules/lodash/_createBaseEach.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_createBaseEach.js ***!
  \************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");

/**
 * Creates a `baseEach` or `baseEachRight` function.
 *
 * @private
 * @param {Function} eachFunc The function to iterate over a collection.
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseEach(eachFunc, fromRight) {
  return function(collection, iteratee) {
    if (collection == null) {
      return collection;
    }
    if (!isArrayLike(collection)) {
      return eachFunc(collection, iteratee);
    }
    var length = collection.length,
        index = fromRight ? length : -1,
        iterable = Object(collection);

    while ((fromRight ? index-- : ++index < length)) {
      if (iteratee(iterable[index], index, iterable) === false) {
        break;
      }
    }
    return collection;
  };
}

module.exports = createBaseEach;


/***/ },

/***/ "./node_modules/lodash/_createBaseFor.js"
/*!***********************************************!*\
  !*** ./node_modules/lodash/_createBaseFor.js ***!
  \***********************************************/
(module) {

/**
 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseFor(fromRight) {
  return function(object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];
      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }
    return object;
  };
}

module.exports = createBaseFor;


/***/ },

/***/ "./node_modules/lodash/_defineProperty.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_defineProperty.js ***!
  \************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");

var defineProperty = (function() {
  try {
    var func = getNative(Object, 'defineProperty');
    func({}, '', {});
    return func;
  } catch (e) {}
}());

module.exports = defineProperty;


/***/ },

/***/ "./node_modules/lodash/_equalArrays.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_equalArrays.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),
    arraySome = __webpack_require__(/*! ./_arraySome */ "./node_modules/lodash/_arraySome.js"),
    cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js");

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/**
 * A specialized version of `baseIsEqualDeep` for arrays with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Array} array The array to compare.
 * @param {Array} other The other array to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `array` and `other` objects.
 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
 */
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      arrLength = array.length,
      othLength = other.length;

  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
    return false;
  }
  // Check that cyclic values are equal.
  var arrStacked = stack.get(array);
  var othStacked = stack.get(other);
  if (arrStacked && othStacked) {
    return arrStacked == other && othStacked == array;
  }
  var index = -1,
      result = true,
      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;

  stack.set(array, other);
  stack.set(other, array);

  // Ignore non-index properties.
  while (++index < arrLength) {
    var arrValue = array[index],
        othValue = other[index];

    if (customizer) {
      var compared = isPartial
        ? customizer(othValue, arrValue, index, other, array, stack)
        : customizer(arrValue, othValue, index, array, other, stack);
    }
    if (compared !== undefined) {
      if (compared) {
        continue;
      }
      result = false;
      break;
    }
    // Recursively compare arrays (susceptible to call stack limits).
    if (seen) {
      if (!arraySome(other, function(othValue, othIndex) {
            if (!cacheHas(seen, othIndex) &&
                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
              return seen.push(othIndex);
            }
          })) {
        result = false;
        break;
      }
    } else if (!(
          arrValue === othValue ||
            equalFunc(arrValue, othValue, bitmask, customizer, stack)
        )) {
      result = false;
      break;
    }
  }
  stack['delete'](array);
  stack['delete'](other);
  return result;
}

module.exports = equalArrays;


/***/ },

/***/ "./node_modules/lodash/_equalByTag.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_equalByTag.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
    Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js"),
    eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
    equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
    mapToArray = __webpack_require__(/*! ./_mapToArray */ "./node_modules/lodash/_mapToArray.js"),
    setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/** `Object#toString` result references. */
var boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    symbolTag = '[object Symbol]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]';

/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;

/**
 * A specialized version of `baseIsEqualDeep` for comparing objects of
 * the same `toStringTag`.
 *
 * **Note:** This function only supports comparing values with tags of
 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {string} tag The `toStringTag` of the objects to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
  switch (tag) {
    case dataViewTag:
      if ((object.byteLength != other.byteLength) ||
          (object.byteOffset != other.byteOffset)) {
        return false;
      }
      object = object.buffer;
      other = other.buffer;

    case arrayBufferTag:
      if ((object.byteLength != other.byteLength) ||
          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
        return false;
      }
      return true;

    case boolTag:
    case dateTag:
    case numberTag:
      // Coerce booleans to `1` or `0` and dates to milliseconds.
      // Invalid dates are coerced to `NaN`.
      return eq(+object, +other);

    case errorTag:
      return object.name == other.name && object.message == other.message;

    case regexpTag:
    case stringTag:
      // Coerce regexes to strings and treat strings, primitives and objects,
      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
      // for more details.
      return object == (other + '');

    case mapTag:
      var convert = mapToArray;

    case setTag:
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
      convert || (convert = setToArray);

      if (object.size != other.size && !isPartial) {
        return false;
      }
      // Assume cyclic values are equal.
      var stacked = stack.get(object);
      if (stacked) {
        return stacked == other;
      }
      bitmask |= COMPARE_UNORDERED_FLAG;

      // Recursively compare objects (susceptible to call stack limits).
      stack.set(object, other);
      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
      stack['delete'](object);
      return result;

    case symbolTag:
      if (symbolValueOf) {
        return symbolValueOf.call(object) == symbolValueOf.call(other);
      }
  }
  return false;
}

module.exports = equalByTag;


/***/ },

/***/ "./node_modules/lodash/_equalObjects.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_equalObjects.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js");

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1;

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * A specialized version of `baseIsEqualDeep` for objects with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      objProps = getAllKeys(object),
      objLength = objProps.length,
      othProps = getAllKeys(other),
      othLength = othProps.length;

  if (objLength != othLength && !isPartial) {
    return false;
  }
  var index = objLength;
  while (index--) {
    var key = objProps[index];
    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
      return false;
    }
  }
  // Check that cyclic values are equal.
  var objStacked = stack.get(object);
  var othStacked = stack.get(other);
  if (objStacked && othStacked) {
    return objStacked == other && othStacked == object;
  }
  var result = true;
  stack.set(object, other);
  stack.set(other, object);

  var skipCtor = isPartial;
  while (++index < objLength) {
    key = objProps[index];
    var objValue = object[key],
        othValue = other[key];

    if (customizer) {
      var compared = isPartial
        ? customizer(othValue, objValue, key, other, object, stack)
        : customizer(objValue, othValue, key, object, other, stack);
    }
    // Recursively compare objects (susceptible to call stack limits).
    if (!(compared === undefined
          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
          : compared
        )) {
      result = false;
      break;
    }
    skipCtor || (skipCtor = key == 'constructor');
  }
  if (result && !skipCtor) {
    var objCtor = object.constructor,
        othCtor = other.constructor;

    // Non `Object` object instances with different constructors are not equal.
    if (objCtor != othCtor &&
        ('constructor' in object && 'constructor' in other) &&
        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
          typeof othCtor == 'function' && othCtor instanceof othCtor)) {
      result = false;
    }
  }
  stack['delete'](object);
  stack['delete'](other);
  return result;
}

module.exports = equalObjects;


/***/ },

/***/ "./node_modules/lodash/_freeGlobal.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_freeGlobal.js ***!
  \********************************************/
(module) {

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof globalThis == 'object' && globalThis && globalThis.Object === Object && globalThis;

module.exports = freeGlobal;


/***/ },

/***/ "./node_modules/lodash/_getAllKeys.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_getAllKeys.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
    getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
    keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");

/**
 * Creates an array of own enumerable property names and symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names and symbols.
 */
function getAllKeys(object) {
  return baseGetAllKeys(object, keys, getSymbols);
}

module.exports = getAllKeys;


/***/ },

/***/ "./node_modules/lodash/_getAllKeysIn.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_getAllKeysIn.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
    getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js"),
    keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");

/**
 * Creates an array of own and inherited enumerable property names and
 * symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names and symbols.
 */
function getAllKeysIn(object) {
  return baseGetAllKeys(object, keysIn, getSymbolsIn);
}

module.exports = getAllKeysIn;


/***/ },

/***/ "./node_modules/lodash/_getMapData.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_getMapData.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./node_modules/lodash/_isKeyable.js");

/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */
function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key)
    ? data[typeof key == 'string' ? 'string' : 'hash']
    : data.map;
}

module.exports = getMapData;


/***/ },

/***/ "./node_modules/lodash/_getNative.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_getNative.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/lodash/_baseIsNative.js"),
    getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/lodash/_getValue.js");

/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */
function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}

module.exports = getNative;


/***/ },

/***/ "./node_modules/lodash/_getPrototype.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_getPrototype.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");

/** Built-in value references. */
var getPrototype = overArg(Object.getPrototypeOf, Object);

module.exports = getPrototype;


/***/ },

/***/ "./node_modules/lodash/_getRawTag.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_getRawTag.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

module.exports = getRawTag;


/***/ },

/***/ "./node_modules/lodash/_getSymbols.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_getSymbols.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),
    stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Built-in value references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols;

/**
 * Creates an array of the own enumerable symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
  if (object == null) {
    return [];
  }
  object = Object(object);
  return arrayFilter(nativeGetSymbols(object), function(symbol) {
    return propertyIsEnumerable.call(object, symbol);
  });
};

module.exports = getSymbols;


/***/ },

/***/ "./node_modules/lodash/_getSymbolsIn.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_getSymbolsIn.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
    getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
    getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
    stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols;

/**
 * Creates an array of the own and inherited enumerable symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */
var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
  var result = [];
  while (object) {
    arrayPush(result, getSymbols(object));
    object = getPrototype(object);
  }
  return result;
};

module.exports = getSymbolsIn;


/***/ },

/***/ "./node_modules/lodash/_getTag.js"
/*!****************************************!*\
  !*** ./node_modules/lodash/_getTag.js ***!
  \****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var DataView = __webpack_require__(/*! ./_DataView */ "./node_modules/lodash/_DataView.js"),
    Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
    Promise = __webpack_require__(/*! ./_Promise */ "./node_modules/lodash/_Promise.js"),
    Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"),
    WeakMap = __webpack_require__(/*! ./_WeakMap */ "./node_modules/lodash/_WeakMap.js"),
    baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
    toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");

/** `Object#toString` result references. */
var mapTag = '[object Map]',
    objectTag = '[object Object]',
    promiseTag = '[object Promise]',
    setTag = '[object Set]',
    weakMapTag = '[object WeakMap]';

var dataViewTag = '[object DataView]';

/** Used to detect maps, sets, and weakmaps. */
var dataViewCtorString = toSource(DataView),
    mapCtorString = toSource(Map),
    promiseCtorString = toSource(Promise),
    setCtorString = toSource(Set),
    weakMapCtorString = toSource(WeakMap);

/**
 * Gets the `toStringTag` of `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
var getTag = baseGetTag;

// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
    (Map && getTag(new Map) != mapTag) ||
    (Promise && getTag(Promise.resolve()) != promiseTag) ||
    (Set && getTag(new Set) != setTag) ||
    (WeakMap && getTag(new WeakMap) != weakMapTag)) {
  getTag = function(value) {
    var result = baseGetTag(value),
        Ctor = result == objectTag ? value.constructor : undefined,
        ctorString = Ctor ? toSource(Ctor) : '';

    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString: return dataViewTag;
        case mapCtorString: return mapTag;
        case promiseCtorString: return promiseTag;
        case setCtorString: return setTag;
        case weakMapCtorString: return weakMapTag;
      }
    }
    return result;
  };
}

module.exports = getTag;


/***/ },

/***/ "./node_modules/lodash/_getValue.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_getValue.js ***!
  \******************************************/
(module) {

/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function getValue(object, key) {
  return object == null ? undefined : object[key];
}

module.exports = getValue;


/***/ },

/***/ "./node_modules/lodash/_hashClear.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_hashClear.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");

/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */
function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}

module.exports = hashClear;


/***/ },

/***/ "./node_modules/lodash/_hashDelete.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_hashDelete.js ***!
  \********************************************/
(module) {

/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}

module.exports = hashDelete;


/***/ },

/***/ "./node_modules/lodash/_hashGet.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hashGet.js ***!
  \*****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function hashGet(key) {
  var data = this.__data__;
  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }
  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}

module.exports = hashGet;


/***/ },

/***/ "./node_modules/lodash/_hashHas.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hashHas.js ***!
  \*****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
}

module.exports = hashHas;


/***/ },

/***/ "./node_modules/lodash/_hashSet.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hashSet.js ***!
  \*****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */
function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
  return this;
}

module.exports = hashSet;


/***/ },

/***/ "./node_modules/lodash/_initCloneArray.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_initCloneArray.js ***!
  \************************************************/
(module) {

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Initializes an array clone.
 *
 * @private
 * @param {Array} array The array to clone.
 * @returns {Array} Returns the initialized clone.
 */
function initCloneArray(array) {
  var length = array.length,
      result = new array.constructor(length);

  // Add properties assigned by `RegExp#exec`.
  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
    result.index = array.index;
    result.input = array.input;
  }
  return result;
}

module.exports = initCloneArray;


/***/ },

/***/ "./node_modules/lodash/_initCloneByTag.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_initCloneByTag.js ***!
  \************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js"),
    cloneDataView = __webpack_require__(/*! ./_cloneDataView */ "./node_modules/lodash/_cloneDataView.js"),
    cloneRegExp = __webpack_require__(/*! ./_cloneRegExp */ "./node_modules/lodash/_cloneRegExp.js"),
    cloneSymbol = __webpack_require__(/*! ./_cloneSymbol */ "./node_modules/lodash/_cloneSymbol.js"),
    cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ "./node_modules/lodash/_cloneTypedArray.js");

/** `Object#toString` result references. */
var boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    symbolTag = '[object Symbol]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';

/**
 * Initializes an object clone based on its `toStringTag`.
 *
 * **Note:** This function only supports cloning values with tags of
 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
 *
 * @private
 * @param {Object} object The object to clone.
 * @param {string} tag The `toStringTag` of the object to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the initialized clone.
 */
function initCloneByTag(object, tag, isDeep) {
  var Ctor = object.constructor;
  switch (tag) {
    case arrayBufferTag:
      return cloneArrayBuffer(object);

    case boolTag:
    case dateTag:
      return new Ctor(+object);

    case dataViewTag:
      return cloneDataView(object, isDeep);

    case float32Tag: case float64Tag:
    case int8Tag: case int16Tag: case int32Tag:
    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
      return cloneTypedArray(object, isDeep);

    case mapTag:
      return new Ctor;

    case numberTag:
    case stringTag:
      return new Ctor(object);

    case regexpTag:
      return cloneRegExp(object);

    case setTag:
      return new Ctor;

    case symbolTag:
      return cloneSymbol(object);
  }
}

module.exports = initCloneByTag;


/***/ },

/***/ "./node_modules/lodash/_initCloneObject.js"
/*!*************************************************!*\
  !*** ./node_modules/lodash/_initCloneObject.js ***!
  \*************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),
    getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
    isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js");

/**
 * Initializes an object clone.
 *
 * @private
 * @param {Object} object The object to clone.
 * @returns {Object} Returns the initialized clone.
 */
function initCloneObject(object) {
  return (typeof object.constructor == 'function' && !isPrototype(object))
    ? baseCreate(getPrototype(object))
    : {};
}

module.exports = initCloneObject;


/***/ },

/***/ "./node_modules/lodash/_isIndex.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_isIndex.js ***!
  \*****************************************/
(module) {

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/** Used to detect unsigned integer values. */
var reIsUint = /^(?:0|[1-9]\d*)$/;

/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */
function isIndex(value, length) {
  var type = typeof value;
  length = length == null ? MAX_SAFE_INTEGER : length;

  return !!length &&
    (type == 'number' ||
      (type != 'symbol' && reIsUint.test(value))) &&
        (value > -1 && value % 1 == 0 && value < length);
}

module.exports = isIndex;


/***/ },

/***/ "./node_modules/lodash/_isKeyable.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/_isKeyable.js ***!
  \*******************************************/
(module) {

/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */
function isKeyable(value) {
  var type = typeof value;
  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
    ? (value !== '__proto__')
    : (value === null);
}

module.exports = isKeyable;


/***/ },

/***/ "./node_modules/lodash/_isMasked.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_isMasked.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./node_modules/lodash/_coreJsData.js");

/** Used to detect methods masquerading as native. */
var maskSrcKey = (function() {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? ('Symbol(src)_1.' + uid) : '';
}());

/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */
function isMasked(func) {
  return !!maskSrcKey && (maskSrcKey in func);
}

module.exports = isMasked;


/***/ },

/***/ "./node_modules/lodash/_isPrototype.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_isPrototype.js ***!
  \*********************************************/
(module) {

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */
function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;

  return value === proto;
}

module.exports = isPrototype;


/***/ },

/***/ "./node_modules/lodash/_listCacheClear.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_listCacheClear.js ***!
  \************************************************/
(module) {

/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */
function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}

module.exports = listCacheClear;


/***/ },

/***/ "./node_modules/lodash/_listCacheDelete.js"
/*!*************************************************!*\
  !*** ./node_modules/lodash/_listCacheDelete.js ***!
  \*************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");

/** Used for built-in method references. */
var arrayProto = Array.prototype;

/** Built-in value references. */
var splice = arrayProto.splice;

/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }
  var lastIndex = data.length - 1;
  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }
  --this.size;
  return true;
}

module.exports = listCacheDelete;


/***/ },

/***/ "./node_modules/lodash/_listCacheGet.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_listCacheGet.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");

/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  return index < 0 ? undefined : data[index][1];
}

module.exports = listCacheGet;


/***/ },

/***/ "./node_modules/lodash/_listCacheHas.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_listCacheHas.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");

/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}

module.exports = listCacheHas;


/***/ },

/***/ "./node_modules/lodash/_listCacheSet.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_listCacheSet.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");

/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */
function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }
  return this;
}

module.exports = listCacheSet;


/***/ },

/***/ "./node_modules/lodash/_mapCacheClear.js"
/*!***********************************************!*\
  !*** ./node_modules/lodash/_mapCacheClear.js ***!
  \***********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var Hash = __webpack_require__(/*! ./_Hash */ "./node_modules/lodash/_Hash.js"),
    ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
    Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js");

/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */
function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash,
    'map': new (Map || ListCache),
    'string': new Hash
  };
}

module.exports = mapCacheClear;


/***/ },

/***/ "./node_modules/lodash/_mapCacheDelete.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_mapCacheDelete.js ***!
  \************************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");

/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}

module.exports = mapCacheDelete;


/***/ },

/***/ "./node_modules/lodash/_mapCacheGet.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_mapCacheGet.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");

/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}

module.exports = mapCacheGet;


/***/ },

/***/ "./node_modules/lodash/_mapCacheHas.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_mapCacheHas.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");

/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}

module.exports = mapCacheHas;


/***/ },

/***/ "./node_modules/lodash/_mapCacheSet.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_mapCacheSet.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");

/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */
function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;

  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
}

module.exports = mapCacheSet;


/***/ },

/***/ "./node_modules/lodash/_mapToArray.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_mapToArray.js ***!
  \********************************************/
(module) {

/**
 * Converts `map` to its key-value pairs.
 *
 * @private
 * @param {Object} map The map to convert.
 * @returns {Array} Returns the key-value pairs.
 */
function mapToArray(map) {
  var index = -1,
      result = Array(map.size);

  map.forEach(function(value, key) {
    result[++index] = [key, value];
  });
  return result;
}

module.exports = mapToArray;


/***/ },

/***/ "./node_modules/lodash/_nativeCreate.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_nativeCreate.js ***!
  \**********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");

/* Built-in method references that are verified to be native. */
var nativeCreate = getNative(Object, 'create');

module.exports = nativeCreate;


/***/ },

/***/ "./node_modules/lodash/_nativeKeys.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_nativeKeys.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeKeys = overArg(Object.keys, Object);

module.exports = nativeKeys;


/***/ },

/***/ "./node_modules/lodash/_nativeKeysIn.js"
/*!**********************************************!*\
  !*** ./node_modules/lodash/_nativeKeysIn.js ***!
  \**********************************************/
(module) {

/**
 * This function is like
 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * except that it includes inherited enumerable properties.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function nativeKeysIn(object) {
  var result = [];
  if (object != null) {
    for (var key in Object(object)) {
      result.push(key);
    }
  }
  return result;
}

module.exports = nativeKeysIn;


/***/ },

/***/ "./node_modules/lodash/_nodeUtil.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_nodeUtil.js ***!
  \******************************************/
(module, exports, __webpack_require__) {

/* module decorator */ module = __webpack_require__.nmd(module);
var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");

/** Detect free variable `exports`. */
var freeExports =  true && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Detect free variable `process` from Node.js. */
var freeProcess = moduleExports && freeGlobal.process;

/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
  try {
    // Use `util.types` for Node.js 10+.
    var types = freeModule && freeModule.require && freeModule.require('util').types;

    if (types) {
      return types;
    }

    // Legacy `process.binding('util')` for Node.js < 10.
    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}());

module.exports = nodeUtil;


/***/ },

/***/ "./node_modules/lodash/_objectToString.js"
/*!************************************************!*\
  !*** ./node_modules/lodash/_objectToString.js ***!
  \************************************************/
(module) {

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

module.exports = objectToString;


/***/ },

/***/ "./node_modules/lodash/_overArg.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/_overArg.js ***!
  \*****************************************/
(module) {

/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}

module.exports = overArg;


/***/ },

/***/ "./node_modules/lodash/_root.js"
/*!**************************************!*\
  !*** ./node_modules/lodash/_root.js ***!
  \**************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

module.exports = root;


/***/ },

/***/ "./node_modules/lodash/_setCacheAdd.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_setCacheAdd.js ***!
  \*********************************************/
(module) {

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/**
 * Adds `value` to the array cache.
 *
 * @private
 * @name add
 * @memberOf SetCache
 * @alias push
 * @param {*} value The value to cache.
 * @returns {Object} Returns the cache instance.
 */
function setCacheAdd(value) {
  this.__data__.set(value, HASH_UNDEFINED);
  return this;
}

module.exports = setCacheAdd;


/***/ },

/***/ "./node_modules/lodash/_setCacheHas.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_setCacheHas.js ***!
  \*********************************************/
(module) {

/**
 * Checks if `value` is in the array cache.
 *
 * @private
 * @name has
 * @memberOf SetCache
 * @param {*} value The value to search for.
 * @returns {boolean} Returns `true` if `value` is found, else `false`.
 */
function setCacheHas(value) {
  return this.__data__.has(value);
}

module.exports = setCacheHas;


/***/ },

/***/ "./node_modules/lodash/_setToArray.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_setToArray.js ***!
  \********************************************/
(module) {

/**
 * Converts `set` to an array of its values.
 *
 * @private
 * @param {Object} set The set to convert.
 * @returns {Array} Returns the values.
 */
function setToArray(set) {
  var index = -1,
      result = Array(set.size);

  set.forEach(function(value) {
    result[++index] = value;
  });
  return result;
}

module.exports = setToArray;


/***/ },

/***/ "./node_modules/lodash/_stackClear.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/_stackClear.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js");

/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */
function stackClear() {
  this.__data__ = new ListCache;
  this.size = 0;
}

module.exports = stackClear;


/***/ },

/***/ "./node_modules/lodash/_stackDelete.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/_stackDelete.js ***!
  \*********************************************/
(module) {

/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);

  this.size = data.size;
  return result;
}

module.exports = stackDelete;


/***/ },

/***/ "./node_modules/lodash/_stackGet.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_stackGet.js ***!
  \******************************************/
(module) {

/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function stackGet(key) {
  return this.__data__.get(key);
}

module.exports = stackGet;


/***/ },

/***/ "./node_modules/lodash/_stackHas.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_stackHas.js ***!
  \******************************************/
(module) {

/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function stackHas(key) {
  return this.__data__.has(key);
}

module.exports = stackHas;


/***/ },

/***/ "./node_modules/lodash/_stackSet.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_stackSet.js ***!
  \******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
    Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
    MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;

/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */
function stackSet(key, value) {
  var data = this.__data__;
  if (data instanceof ListCache) {
    var pairs = data.__data__;
    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }
    data = this.__data__ = new MapCache(pairs);
  }
  data.set(key, value);
  this.size = data.size;
  return this;
}

module.exports = stackSet;


/***/ },

/***/ "./node_modules/lodash/_toSource.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/_toSource.js ***!
  \******************************************/
(module) {

/** Used for built-in method references. */
var funcProto = Function.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */
function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}
    try {
      return (func + '');
    } catch (e) {}
  }
  return '';
}

module.exports = toSource;


/***/ },

/***/ "./node_modules/lodash/clone.js"
/*!**************************************!*\
  !*** ./node_modules/lodash/clone.js ***!
  \**************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseClone = __webpack_require__(/*! ./_baseClone */ "./node_modules/lodash/_baseClone.js");

/** Used to compose bitmasks for cloning. */
var CLONE_SYMBOLS_FLAG = 4;

/**
 * Creates a shallow clone of `value`.
 *
 * **Note:** This method is loosely based on the
 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
 * and supports cloning arrays, array buffers, booleans, date objects, maps,
 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
 * arrays. The own enumerable properties of `arguments` objects are cloned
 * as plain objects. An empty object is returned for uncloneable values such
 * as error objects, functions, DOM nodes, and WeakMaps.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to clone.
 * @returns {*} Returns the cloned value.
 * @see _.cloneDeep
 * @example
 *
 * var objects = [{ 'a': 1 }, { 'b': 2 }];
 *
 * var shallow = _.clone(objects);
 * console.log(shallow[0] === objects[0]);
 * // => true
 */
function clone(value) {
  return baseClone(value, CLONE_SYMBOLS_FLAG);
}

module.exports = clone;


/***/ },

/***/ "./node_modules/lodash/each.js"
/*!*************************************!*\
  !*** ./node_modules/lodash/each.js ***!
  \*************************************/
(module, __unused_webpack_exports, __webpack_require__) {

module.exports = __webpack_require__(/*! ./forEach */ "./node_modules/lodash/forEach.js");


/***/ },

/***/ "./node_modules/lodash/eq.js"
/*!***********************************!*\
  !*** ./node_modules/lodash/eq.js ***!
  \***********************************/
(module) {

/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */
function eq(value, other) {
  return value === other || (value !== value && other !== other);
}

module.exports = eq;


/***/ },

/***/ "./node_modules/lodash/forEach.js"
/*!****************************************!*\
  !*** ./node_modules/lodash/forEach.js ***!
  \****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
    baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
    castFunction = __webpack_require__(/*! ./_castFunction */ "./node_modules/lodash/_castFunction.js"),
    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");

/**
 * Iterates over elements of `collection` and invokes `iteratee` for each element.
 * The iteratee is invoked with three arguments: (value, index|key, collection).
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * **Note:** As with other "Collections" methods, objects with a "length"
 * property are iterated like arrays. To avoid this behavior use `_.forIn`
 * or `_.forOwn` for object iteration.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @alias each
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
 * @returns {Array|Object} Returns `collection`.
 * @see _.forEachRight
 * @example
 *
 * _.forEach([1, 2], function(value) {
 *   console.log(value);
 * });
 * // => Logs `1` then `2`.
 *
 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
 *   console.log(key);
 * });
 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
 */
function forEach(collection, iteratee) {
  var func = isArray(collection) ? arrayEach : baseEach;
  return func(collection, castFunction(iteratee));
}

module.exports = forEach;


/***/ },

/***/ "./node_modules/lodash/identity.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/identity.js ***!
  \*****************************************/
(module) {

/**
 * This method returns the first argument it receives.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {*} value Any value.
 * @returns {*} Returns `value`.
 * @example
 *
 * var object = { 'a': 1 };
 *
 * console.log(_.identity(object) === object);
 * // => true
 */
function identity(value) {
  return value;
}

module.exports = identity;


/***/ },

/***/ "./node_modules/lodash/isArguments.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/isArguments.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ "./node_modules/lodash/_baseIsArguments.js"),
    isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Built-in value references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;

/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
    !propertyIsEnumerable.call(value, 'callee');
};

module.exports = isArguments;


/***/ },

/***/ "./node_modules/lodash/isArray.js"
/*!****************************************!*\
  !*** ./node_modules/lodash/isArray.js ***!
  \****************************************/
(module) {

/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */
var isArray = Array.isArray;

module.exports = isArray;


/***/ },

/***/ "./node_modules/lodash/isArrayLike.js"
/*!********************************************!*\
  !*** ./node_modules/lodash/isArrayLike.js ***!
  \********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
    isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js");

/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */
function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}

module.exports = isArrayLike;


/***/ },

/***/ "./node_modules/lodash/isBuffer.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/isBuffer.js ***!
  \*****************************************/
(module, exports, __webpack_require__) {

/* module decorator */ module = __webpack_require__.nmd(module);
var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"),
    stubFalse = __webpack_require__(/*! ./stubFalse */ "./node_modules/lodash/stubFalse.js");

/** Detect free variable `exports`. */
var freeExports =  true && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Built-in value references. */
var Buffer = moduleExports ? root.Buffer : undefined;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;

/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */
var isBuffer = nativeIsBuffer || stubFalse;

module.exports = isBuffer;


/***/ },

/***/ "./node_modules/lodash/isEmpty.js"
/*!****************************************!*\
  !*** ./node_modules/lodash/isEmpty.js ***!
  \****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
    getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
    isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
    isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
    isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
    isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
    isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
    isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");

/** `Object#toString` result references. */
var mapTag = '[object Map]',
    setTag = '[object Set]';

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Checks if `value` is an empty object, collection, map, or set.
 *
 * Objects are considered empty if they have no own enumerable string keyed
 * properties.
 *
 * Array-like values such as `arguments` objects, arrays, buffers, strings, or
 * jQuery-like collections are considered empty if they have a `length` of `0`.
 * Similarly, maps and sets are considered empty if they have a `size` of `0`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
 * @example
 *
 * _.isEmpty(null);
 * // => true
 *
 * _.isEmpty(true);
 * // => true
 *
 * _.isEmpty(1);
 * // => true
 *
 * _.isEmpty([1, 2, 3]);
 * // => false
 *
 * _.isEmpty({ 'a': 1 });
 * // => false
 */
function isEmpty(value) {
  if (value == null) {
    return true;
  }
  if (isArrayLike(value) &&
      (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
        isBuffer(value) || isTypedArray(value) || isArguments(value))) {
    return !value.length;
  }
  var tag = getTag(value);
  if (tag == mapTag || tag == setTag) {
    return !value.size;
  }
  if (isPrototype(value)) {
    return !baseKeys(value).length;
  }
  for (var key in value) {
    if (hasOwnProperty.call(value, key)) {
      return false;
    }
  }
  return true;
}

module.exports = isEmpty;


/***/ },

/***/ "./node_modules/lodash/isEqual.js"
/*!****************************************!*\
  !*** ./node_modules/lodash/isEqual.js ***!
  \****************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js");

/**
 * Performs a deep comparison between two values to determine if they are
 * equivalent.
 *
 * **Note:** This method supports comparing arrays, array buffers, booleans,
 * date objects, error objects, maps, numbers, `Object` objects, regexes,
 * sets, strings, symbols, and typed arrays. `Object` objects are compared
 * by their own, not inherited, enumerable properties. Functions and DOM
 * nodes are compared by strict equality, i.e. `===`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.isEqual(object, other);
 * // => true
 *
 * object === other;
 * // => false
 */
function isEqual(value, other) {
  return baseIsEqual(value, other);
}

module.exports = isEqual;


/***/ },

/***/ "./node_modules/lodash/isFunction.js"
/*!*******************************************!*\
  !*** ./node_modules/lodash/isFunction.js ***!
  \*******************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
    isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");

/** `Object#toString` result references. */
var asyncTag = '[object AsyncFunction]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    proxyTag = '[object Proxy]';

/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */
function isFunction(value) {
  if (!isObject(value)) {
    return false;
  }
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.
  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}

module.exports = isFunction;


/***/ },

/***/ "./node_modules/lodash/isLength.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/isLength.js ***!
  \*****************************************/
(module) {

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */
function isLength(value) {
  return typeof value == 'number' &&
    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

module.exports = isLength;


/***/ },

/***/ "./node_modules/lodash/isMap.js"
/*!**************************************!*\
  !*** ./node_modules/lodash/isMap.js ***!
  \**************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsMap = __webpack_require__(/*! ./_baseIsMap */ "./node_modules/lodash/_baseIsMap.js"),
    baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");

/* Node.js helper references. */
var nodeIsMap = nodeUtil && nodeUtil.isMap;

/**
 * Checks if `value` is classified as a `Map` object.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
 * @example
 *
 * _.isMap(new Map);
 * // => true
 *
 * _.isMap(new WeakMap);
 * // => false
 */
var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;

module.exports = isMap;


/***/ },

/***/ "./node_modules/lodash/isObject.js"
/*!*****************************************!*\
  !*** ./node_modules/lodash/isObject.js ***!
  \*****************************************/
(module) {

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

module.exports = isObject;


/***/ },

/***/ "./node_modules/lodash/isObjectLike.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/isObjectLike.js ***!
  \*********************************************/
(module) {

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

module.exports = isObjectLike;


/***/ },

/***/ "./node_modules/lodash/isSet.js"
/*!**************************************!*\
  !*** ./node_modules/lodash/isSet.js ***!
  \**************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsSet = __webpack_require__(/*! ./_baseIsSet */ "./node_modules/lodash/_baseIsSet.js"),
    baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");

/* Node.js helper references. */
var nodeIsSet = nodeUtil && nodeUtil.isSet;

/**
 * Checks if `value` is classified as a `Set` object.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
 * @example
 *
 * _.isSet(new Set);
 * // => true
 *
 * _.isSet(new WeakSet);
 * // => false
 */
var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;

module.exports = isSet;


/***/ },

/***/ "./node_modules/lodash/isTypedArray.js"
/*!*********************************************!*\
  !*** ./node_modules/lodash/isTypedArray.js ***!
  \*********************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./node_modules/lodash/_baseIsTypedArray.js"),
    baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");

/* Node.js helper references. */
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;

/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;

module.exports = isTypedArray;


/***/ },

/***/ "./node_modules/lodash/keys.js"
/*!*************************************!*\
  !*** ./node_modules/lodash/keys.js ***!
  \*************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
    baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
    isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");

/**
 * Creates an array of the own enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects. See the
 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * for more details.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keys(new Foo);
 * // => ['a', 'b'] (iteration order is not guaranteed)
 *
 * _.keys('hi');
 * // => ['0', '1']
 */
function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}

module.exports = keys;


/***/ },

/***/ "./node_modules/lodash/keysIn.js"
/*!***************************************!*\
  !*** ./node_modules/lodash/keysIn.js ***!
  \***************************************/
(module, __unused_webpack_exports, __webpack_require__) {

var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
    baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ "./node_modules/lodash/_baseKeysIn.js"),
    isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");

/**
 * Creates an array of the own and inherited enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keysIn(new Foo);
 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
 */
function keysIn(object) {
  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}

module.exports = keysIn;


/***/ },

/***/ "./node_modules/lodash/stubArray.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/stubArray.js ***!
  \******************************************/
(module) {

/**
 * This method returns a new empty array.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {Array} Returns the new empty array.
 * @example
 *
 * var arrays = _.times(2, _.stubArray);
 *
 * console.log(arrays);
 * // => [[], []]
 *
 * console.log(arrays[0] === arrays[1]);
 * // => false
 */
function stubArray() {
  return [];
}

module.exports = stubArray;


/***/ },

/***/ "./node_modules/lodash/stubFalse.js"
/*!******************************************!*\
  !*** ./node_modules/lodash/stubFalse.js ***!
  \******************************************/
(module) {

/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */
function stubFalse() {
  return false;
}

module.exports = stubFalse;


/***/ },

/***/ "./src/frontend/fontawesome-v6/css/all.min.css"
/*!*****************************************************!*\
  !*** ./src/frontend/fontawesome-v6/css/all.min.css ***!
  \*****************************************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ },

/***/ "./src/admin/customizer.scss"
/*!***********************************!*\
  !*** ./src/admin/customizer.scss ***!
  \***********************************/
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin


/***/ },

/***/ "react"
/*!************************!*\
  !*** external "React" ***!
  \************************/
(module) {

"use strict";
module.exports = window["React"];

/***/ },

/***/ "react-dom/client"
/*!***************************!*\
  !*** external "ReactDOM" ***!
  \***************************/
(module) {

"use strict";
module.exports = window["ReactDOM"];

/***/ },

/***/ "@wordpress/element"
/*!*********************************!*\
  !*** external ["wp","element"] ***!
  \*********************************/
(module) {

"use strict";
module.exports = window["wp"]["element"];

/***/ },

/***/ "./node_modules/array-move/index.js"
/*!******************************************!*\
  !*** ./node_modules/array-move/index.js ***!
  \******************************************/
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   arrayMoveImmutable: () => (/* binding */ arrayMoveImmutable),
/* harmony export */   arrayMoveMutable: () => (/* binding */ arrayMoveMutable)
/* harmony export */ });
function arrayMoveMutable(array, fromIndex, toIndex) {
	const startIndex = fromIndex < 0 ? array.length + fromIndex : fromIndex;

	if (startIndex >= 0 && startIndex < array.length) {
		const endIndex = toIndex < 0 ? array.length + toIndex : toIndex;

		const [item] = array.splice(fromIndex, 1);
		array.splice(endIndex, 0, item);
	}
}

function arrayMoveImmutable(array, fromIndex, toIndex) {
	array = [...array];
	arrayMoveMutable(array, fromIndex, toIndex);
	return array;
}


/***/ }

/******/ 	});
/************************************************************************/
/******/ 	// 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] = {
/******/ 			id: moduleId,
/******/ 			loaded: false,
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		if (!(moduleId in __webpack_modules__)) {
/******/ 			delete __webpack_module_cache__[moduleId];
/******/ 			var e = new Error("Cannot find module '" + moduleId + "'");
/******/ 			e.code = 'MODULE_NOT_FOUND';
/******/ 			throw e;
/******/ 		}
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;
/******/ 	
/******/ 		// 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 });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/node module decorator */
/******/ 	(() => {
/******/ 		__webpack_require__.nmd = (module) => {
/******/ 			module.paths = [];
/******/ 			if (!module.children) module.children = [];
/******/ 			return module;
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
/*!*********************************!*\
  !*** ./src/admin/customizer.js ***!
  \*********************************/
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _customizer_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./customizer.scss */ "./src/admin/customizer.scss");
/* harmony import */ var _frontend_fontawesome_v6_css_all_min_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frontend/fontawesome-v6/css/all.min.css */ "./src/frontend/fontawesome-v6/css/all.min.css");
/* harmony import */ var _customizer_alpha_color_picker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./customizer/alpha-color-picker */ "./src/admin/customizer/alpha-color-picker.js");
/* harmony import */ var _customizer_control_alpha_color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./customizer/control-alpha-color */ "./src/admin/customizer/control-alpha-color.js");
/* harmony import */ var _customizer_control_bindings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./customizer/control-bindings */ "./src/admin/customizer/control-bindings.js");
/* harmony import */ var _customizer_control_repeatable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./customizer/control-repeatable */ "./src/admin/customizer/control-repeatable.js");
/* harmony import */ var _customizer_icon_picker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./customizer/icon-picker */ "./src/admin/customizer/icon-picker.js");
/* harmony import */ var _customizer_jquery_deparam__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./customizer/jquery-deparam */ "./src/admin/customizer/jquery-deparam.js");
/* harmony import */ var _customizer_modal_editor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./customizer/modal-editor */ "./src/admin/customizer/modal-editor.js");
/* harmony import */ var _customizer_plus_section__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./customizer/plus-section */ "./src/admin/customizer/plus-section.js");
/* harmony import */ var _customizer_wp_editor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./customizer/wp-editor */ "./src/admin/customizer/wp-editor.js");











const api = wp.customize;
const $ = jQuery;
(0,_customizer_plus_section__WEBPACK_IMPORTED_MODULE_9__.registerPlusSection)(api);
(0,_customizer_jquery_deparam__WEBPACK_IMPORTED_MODULE_7__.installDeparam)($);
(0,_customizer_alpha_color_picker__WEBPACK_IMPORTED_MODULE_2__.installAlphaColorPicker)($);
(0,_customizer_control_alpha_color__WEBPACK_IMPORTED_MODULE_3__.registerAlphaColorControl)(api, $);
(0,_customizer_control_repeatable__WEBPACK_IMPORTED_MODULE_5__.registerRepeatableControl)(api, $);
(0,_customizer_wp_editor__WEBPACK_IMPORTED_MODULE_10__.installWpEditor)($);
(0,_customizer_modal_editor__WEBPACK_IMPORTED_MODULE_8__.initModalEditors)(api, $);
jQuery(window).ready(function () {
  (0,_customizer_control_bindings__WEBPACK_IMPORTED_MODULE_4__.initControlBindings)($);
});
jQuery(document).ready(function () {
  (0,_customizer_icon_picker__WEBPACK_IMPORTED_MODULE_6__.initIconPicker)($);
});
})();

/******/ })()
;
//# sourceMappingURL=customizer.js.map