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

/***/ 20:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;


__webpack_unused_export__ = ({
  value: true
});
__webpack_unused_export__ = ({
  enumerable: true,
  get: function () {
    return _Calendar.default;
  }
});
__webpack_unused_export__ = ({
  enumerable: true,
  get: function () {
    return _DateRange.default;
  }
});
Object.defineProperty(exports, "Ur", ({
  enumerable: true,
  get: function () {
    return _DateRangePicker.default;
  }
}));
__webpack_unused_export__ = ({
  enumerable: true,
  get: function () {
    return _DefinedRange.default;
  }
});
__webpack_unused_export__ = ({
  enumerable: true,
  get: function () {
    return _defaultRanges.createStaticRanges;
  }
});
__webpack_unused_export__ = ({
  enumerable: true,
  get: function () {
    return _defaultRanges.defaultInputRanges;
  }
});
__webpack_unused_export__ = ({
  enumerable: true,
  get: function () {
    return _defaultRanges.defaultStaticRanges;
  }
});
var _DateRange = _interopRequireDefault(__webpack_require__(9651));
var _Calendar = _interopRequireDefault(__webpack_require__(4936));
var _DateRangePicker = _interopRequireDefault(__webpack_require__(1821));
var _DefinedRange = _interopRequireDefault(__webpack_require__(252));
var _defaultRanges = __webpack_require__(8859);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/***/ }),

/***/ 37:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.sub = sub;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(3224);
var _index3 = __webpack_require__(5112);

/**
 * The {@link sub} function options.
 */

/**
 * @name sub
 * @category Common Helpers
 * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.
 *
 * @description
 * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted
 * @param options - An object with options
 *
 * | Key     | Description                        |
 * |---------|------------------------------------|
 * | years   | Amount of years to be subtracted   |
 * | months  | Amount of months to be subtracted  |
 * | weeks   | Amount of weeks to be subtracted   |
 * | days    | Amount of days to be subtracted    |
 * | hours   | Amount of hours to be subtracted   |
 * | minutes | Amount of minutes to be subtracted |
 * | seconds | Amount of seconds to be subtracted |
 *
 * All values default to 0
 *
 * @returns The new date with the seconds subtracted
 *
 * @example
 * // Subtract the following duration from 15 June 2017 15:29:20
 * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {
 *   years: 2,
 *   months: 9,
 *   weeks: 1,
 *   days: 7,
 *   hours: 5,
 *   minutes: 9,
 *   seconds: 30
 * })
 * //=> Mon Sep 1 2014 10:19:50
 */
function sub(date, duration, options) {
  const {
    years = 0,
    months = 0,
    weeks = 0,
    days = 0,
    hours = 0,
    minutes = 0,
    seconds = 0,
  } = duration;

  const withoutMonths = (0, _index3.subMonths)(
    date,
    months + years * 12,
    options,
  );
  const withoutDays = (0, _index2.subDays)(
    withoutMonths,
    days + weeks * 7,
    options,
  );

  const minutesToSub = minutes + hours * 60;
  const secondsToSub = seconds + minutesToSub * 60;
  const msToSub = secondsToSub * 1000;

  return (0, _index.constructFrom)(options?.in || date, +withoutDays - msToSub);
}


/***/ }),

/***/ 64:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextDay = nextDay;
var _index = __webpack_require__(7591);
var _index2 = __webpack_require__(1591);

/**
 * The {@link nextDay} function options.
 */

/**
 * @name nextDay
 * @category Weekday Helpers
 * @summary When is the next day of the week? 0-6 the day of the week, 0 represents Sunday.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to check
 * @param day - Day of the week
 * @param options - An object with options
 *
 * @returns The date is the next day of the week
 *
 * @example
 * // When is the next Monday after Mar, 20, 2020?
 * const result = nextDay(new Date(2020, 2, 20), 1)
 * //=> Mon Mar 23 2020 00:00:00
 *
 * @example
 * // When is the next Tuesday after Mar, 21, 2020?
 * const result = nextDay(new Date(2020, 2, 21), 2)
 * //=> Tue Mar 24 2020 00:00:00
 */
function nextDay(date, day, options) {
  let delta = day - (0, _index2.getDay)(date, options);
  if (delta <= 0) delta += 7;

  return (0, _index.addDays)(date, delta, options);
}


/***/ }),

/***/ 99:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarISOWeekYears = differenceInCalendarISOWeekYears;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(9957);

/**
 * The {@link differenceInCalendarISOWeekYears} function options.
 */

/**
 * @name differenceInCalendarISOWeekYears
 * @category ISO Week-Numbering Year Helpers
 * @summary Get the number of calendar ISO week-numbering years between the given dates.
 *
 * @description
 * Get the number of calendar ISO week-numbering years between the given dates.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of calendar ISO week-numbering years
 *
 * @example
 * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?
 * const result = differenceInCalendarISOWeekYears(
 *   new Date(2012, 0, 1),
 *   new Date(2010, 0, 1)
 * )
 * //=> 2
 */
function differenceInCalendarISOWeekYears(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return (
    (0, _index2.getISOWeekYear)(laterDate_, options) -
    (0, _index2.getISOWeekYear)(earlierDate_, options)
  );
}


/***/ }),

/***/ 106:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfDecade = lastDayOfDecade;
var _index = __webpack_require__(4446);

/**
 * The {@link lastDayOfDecade} function options.
 */

/**
 * @name lastDayOfDecade
 * @category Decade Helpers
 * @summary Return the last day of a decade for the given date.
 *
 * @description
 * Return the last day of a decade for the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type; inferred from arguments or specified by context.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The last day of a decade
 *
 * @example
 * // The last day of a decade for 21 December 2012 21:12:00:
 * const result = lastDayOfDecade(new Date(2012, 11, 21, 21, 12, 00))
 * //=> Wed Dec 31 2019 00:00:00
 */
function lastDayOfDecade(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const year = _date.getFullYear();
  const decade = 9 + Math.floor(year / 10) * 10;
  _date.setFullYear(decade + 1, 0, 0);
  _date.setHours(0, 0, 0, 0);
  return (0, _index.toDate)(_date, options?.in);
}


/***/ }),

/***/ 115:
/***/ ((module) => {

/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */

var hasElementType = typeof Element !== 'undefined';
var hasMap = typeof Map === 'function';
var hasSet = typeof Set === 'function';
var hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;

// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js

function equal(a, b) {
  // START: fast-deep-equal es6/index.js 3.1.3
  if (a === b) return true;

  if (a && b && typeof a == 'object' && typeof b == 'object') {
    if (a.constructor !== b.constructor) return false;

    var length, i, keys;
    if (Array.isArray(a)) {
      length = a.length;
      if (length != b.length) return false;
      for (i = length; i-- !== 0;)
        if (!equal(a[i], b[i])) return false;
      return true;
    }

    // START: Modifications:
    // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code
    //    to co-exist with es5.
    // 2. Replace `for of` with es5 compliant iteration using `for`.
    //    Basically, take:
    //
    //    ```js
    //    for (i of a.entries())
    //      if (!b.has(i[0])) return false;
    //    ```
    //
    //    ... and convert to:
    //
    //    ```js
    //    it = a.entries();
    //    while (!(i = it.next()).done)
    //      if (!b.has(i.value[0])) return false;
    //    ```
    //
    //    **Note**: `i` access switches to `i.value`.
    var it;
    if (hasMap && (a instanceof Map) && (b instanceof Map)) {
      if (a.size !== b.size) return false;
      it = a.entries();
      while (!(i = it.next()).done)
        if (!b.has(i.value[0])) return false;
      it = a.entries();
      while (!(i = it.next()).done)
        if (!equal(i.value[1], b.get(i.value[0]))) return false;
      return true;
    }

    if (hasSet && (a instanceof Set) && (b instanceof Set)) {
      if (a.size !== b.size) return false;
      it = a.entries();
      while (!(i = it.next()).done)
        if (!b.has(i.value[0])) return false;
      return true;
    }
    // END: Modifications

    if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
      length = a.length;
      if (length != b.length) return false;
      for (i = length; i-- !== 0;)
        if (a[i] !== b[i]) return false;
      return true;
    }

    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
    // START: Modifications:
    // Apply guards for `Object.create(null)` handling. See:
    // - https://github.com/FormidableLabs/react-fast-compare/issues/64
    // - https://github.com/epoberezkin/fast-deep-equal/issues/49
    if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();
    if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();
    // END: Modifications

    keys = Object.keys(a);
    length = keys.length;
    if (length !== Object.keys(b).length) return false;

    for (i = length; i-- !== 0;)
      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
    // END: fast-deep-equal

    // START: react-fast-compare
    // custom handling for DOM elements
    if (hasElementType && a instanceof Element) return false;

    // custom handling for React/Preact
    for (i = length; i-- !== 0;) {
      if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {
        // React-specific: avoid traversing React elements' _owner
        // Preact-specific: avoid traversing Preact elements' __v and __o
        //    __v = $_original / $_vnode
        //    __o = $_owner
        // These properties contain circular references and are not needed when
        // comparing the actual elements (and not their owners)
        // .$$typeof and ._store on just reasonable markers of elements

        continue;
      }

      // all other properties should be traversed as usual
      if (!equal(a[keys[i]], b[keys[i]])) return false;
    }
    // END: react-fast-compare

    // START: fast-deep-equal
    return true;
  }

  return a !== a && b !== b;
}
// end fast-deep-equal

module.exports = function isEqual(a, b) {
  try {
    return equal(a, b);
  } catch (error) {
    if (((error.message || '').match(/stack|recursion/i))) {
      // warn on circular references, don't crash
      // browsers give this different errors name and messages:
      // chrome/safari: "RangeError", "Maximum call stack size exceeded"
      // firefox: "InternalError", too much recursion"
      // edge: "Error", "Out of stack space"
      console.warn('react-fast-compare cannot handle circular refs');
      return false;
    }
    // some other error. we should definitely know about these
    throw error;
  }
};


/***/ }),

/***/ 192:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInSeconds = differenceInSeconds;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(2495);

/**
 * The {@link differenceInSeconds} function options.
 */

/**
 * @name differenceInSeconds
 * @category Second Helpers
 * @summary Get the number of seconds between the given dates.
 *
 * @description
 * Get the number of seconds between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options.
 *
 * @returns The number of seconds
 *
 * @example
 * // How many seconds are between
 * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?
 * const result = differenceInSeconds(
 *   new Date(2014, 6, 2, 12, 30, 20, 0),
 *   new Date(2014, 6, 2, 12, 30, 7, 999)
 * )
 * //=> 12
 */
function differenceInSeconds(laterDate, earlierDate, options) {
  const diff =
    (0, _index2.differenceInMilliseconds)(laterDate, earlierDate) / 1000;
  return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);
}


/***/ }),

/***/ 220:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subWeeks = subWeeks;
var _index = __webpack_require__(4073);

/**
 * The {@link subWeeks} function options.
 */

/**
 * @name subWeeks
 * @category Week Helpers
 * @summary Subtract the specified number of weeks from the given date.
 *
 * @description
 * Subtract the specified number of weeks from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of weeks to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the weeks subtracted
 *
 * @example
 * // Subtract 4 weeks from 1 September 2014:
 * const result = subWeeks(new Date(2014, 8, 1), 4)
 * //=> Mon Aug 04 2014 00:00:00
 */
function subWeeks(date, amount, options) {
  return (0, _index.addWeeks)(date, -amount, options);
}


/***/ }),

/***/ 244:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.quartersToMonths = quartersToMonths;
var _index = __webpack_require__(8052);

/**
 * @name quartersToMonths
 * @category Conversion Helpers
 * @summary Convert number of quarters to months.
 *
 * @description
 * Convert a number of quarters to a full number of months.
 *
 * @param quarters - The number of quarters to be converted
 *
 * @returns The number of quarters converted in months
 *
 * @example
 * // Convert 2 quarters to months
 * const result = quartersToMonths(2)
 * //=> 6
 */
function quartersToMonths(quarters) {
  return Math.trunc(quarters * _index.monthsInQuarter);
}


/***/ }),

/***/ 252:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _styles = _interopRequireDefault(__webpack_require__(1776));
var _defaultRanges = __webpack_require__(8859);
var _DayCell = __webpack_require__(2448);
var _InputRangeField = _interopRequireDefault(__webpack_require__(5409));
var _classnames = _interopRequireDefault(__webpack_require__(6942));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
class DefinedRange extends _react.Component {
  constructor(props) {
    super(props);
    _defineProperty(this, "handleRangeChange", range => {
      const {
        onChange,
        ranges,
        focusedRange
      } = this.props;
      const selectedRange = ranges[focusedRange[0]];
      if (!onChange || !selectedRange) return;
      onChange({
        [selectedRange.key || `range${focusedRange[0] + 1}`]: {
          ...selectedRange,
          ...range
        }
      });
    });
    this.state = {
      rangeOffset: 0,
      focusedInput: -1
    };
  }
  getRangeOptionValue(option) {
    const {
      ranges = [],
      focusedRange = []
    } = this.props;
    if (typeof option.getCurrentValue !== 'function') {
      return '';
    }
    const selectedRange = ranges[focusedRange[0]] || {};
    return option.getCurrentValue(selectedRange) || '';
  }
  getSelectedRange(ranges, staticRange) {
    const focusedRangeIndex = ranges.findIndex(range => {
      if (!range.startDate || !range.endDate || range.disabled) return false;
      return staticRange.isSelected(range);
    });
    const selectedRange = ranges[focusedRangeIndex];
    return {
      selectedRange,
      focusedRangeIndex
    };
  }
  render() {
    const {
      headerContent,
      footerContent,
      onPreviewChange,
      inputRanges,
      staticRanges,
      ranges,
      renderStaticRangeLabel,
      rangeColors,
      className
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(_styles.default.definedRangesWrapper, className)
    }, headerContent, /*#__PURE__*/_react.default.createElement("div", {
      className: _styles.default.staticRanges
    }, staticRanges.map((staticRange, i) => {
      const {
        selectedRange,
        focusedRangeIndex
      } = this.getSelectedRange(ranges, staticRange);
      let labelContent;
      if (staticRange.hasCustomRendering) {
        labelContent = renderStaticRangeLabel(staticRange);
      } else {
        labelContent = staticRange.label;
      }
      return /*#__PURE__*/_react.default.createElement("button", {
        type: "button",
        className: (0, _classnames.default)(_styles.default.staticRange, {
          [_styles.default.staticRangeSelected]: Boolean(selectedRange)
        }),
        style: {
          color: selectedRange ? selectedRange.color || rangeColors[focusedRangeIndex] : null
        },
        key: i,
        onClick: () => this.handleRangeChange(staticRange.range(this.props)),
        onFocus: () => onPreviewChange && onPreviewChange(staticRange.range(this.props)),
        onMouseOver: () => onPreviewChange && onPreviewChange(staticRange.range(this.props)),
        onMouseLeave: () => {
          onPreviewChange && onPreviewChange();
        }
      }, /*#__PURE__*/_react.default.createElement("span", {
        tabIndex: -1,
        className: _styles.default.staticRangeLabel
      }, labelContent));
    })), /*#__PURE__*/_react.default.createElement("div", {
      className: _styles.default.inputRanges
    }, inputRanges.map((rangeOption, i) => /*#__PURE__*/_react.default.createElement(_InputRangeField.default, {
      key: i,
      styles: _styles.default,
      label: rangeOption.label,
      onFocus: () => this.setState({
        focusedInput: i,
        rangeOffset: 0
      }),
      onBlur: () => this.setState({
        rangeOffset: 0
      }),
      onChange: value => this.handleRangeChange(rangeOption.range(value, this.props)),
      value: this.getRangeOptionValue(rangeOption)
    }))), footerContent);
  }
}
DefinedRange.propTypes = {
  inputRanges: _propTypes.default.array,
  staticRanges: _propTypes.default.array,
  ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),
  focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),
  onPreviewChange: _propTypes.default.func,
  onChange: _propTypes.default.func,
  footerContent: _propTypes.default.any,
  headerContent: _propTypes.default.any,
  rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),
  className: _propTypes.default.string,
  renderStaticRangeLabel: _propTypes.default.func
};
DefinedRange.defaultProps = {
  inputRanges: _defaultRanges.defaultInputRanges,
  staticRanges: _defaultRanges.defaultStaticRanges,
  ranges: [],
  rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],
  focusedRange: [0, 0]
};
var _default = exports["default"] = DefinedRange;

/***/ }),

/***/ 311:
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var invariant = function(condition, format, a, b, c, d, e, f) {
  if (false) // removed by dead control flow
{}

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error(
        'Minified exception occurred; use the non-minified dev environment ' +
        'for the full error message and additional helpful warnings.'
      );
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(
        format.replace(/%s/g, function() { return args[argIndex++]; })
      );
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
};

module.exports = invariant;


/***/ }),

/***/ 324:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.intlFormatDistance = intlFormatDistance;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(8052);

var _index3 = __webpack_require__(5506);
var _index4 = __webpack_require__(562);
var _index5 = __webpack_require__(6024);
var _index6 = __webpack_require__(4746);
var _index7 = __webpack_require__(4875);
var _index8 = __webpack_require__(990);
var _index9 = __webpack_require__(691);
var _index10 = __webpack_require__(192);

/**
 * The {@link intlFormatDistance} function options.
 */

/**
 * The unit used to format the distance in {@link intlFormatDistance}.
 */

/**
 * @name intlFormatDistance
 * @category Common Helpers
 * @summary Formats distance between two dates in a human-readable format
 * @description
 * The function calculates the difference between two dates and formats it as a human-readable string.
 *
 * The function will pick the most appropriate unit depending on the distance between dates. For example, if the distance is a few hours, it might return `x hours`. If the distance is a few months, it might return `x months`.
 *
 * You can also specify a unit to force using it regardless of the distance to get a result like `123456 hours`.
 *
 * See the table below for the unit picking logic:
 *
 * | Distance between dates | Result (past)  | Result (future) |
 * | ---------------------- | -------------- | --------------- |
 * | 0 seconds              | now            | now             |
 * | 1-59 seconds           | X seconds ago  | in X seconds    |
 * | 1-59 minutes           | X minutes ago  | in X minutes    |
 * | 1-23 hours             | X hours ago    | in X hours      |
 * | 1 day                  | yesterday      | tomorrow        |
 * | 2-6 days               | X days ago     | in X days       |
 * | 7 days                 | last week      | next week       |
 * | 8 days-1 month         | X weeks ago    | in X weeks      |
 * | 1 month                | last month     | next month      |
 * | 2-3 months             | X months ago   | in X months     |
 * | 1 quarter              | last quarter   | next quarter    |
 * | 2-3 quarters           | X quarters ago | in X quarters   |
 * | 1 year                 | last year      | next year       |
 * | 2+ years               | X years ago    | in X years      |
 *
 * @param laterDate - The date
 * @param earlierDate - The date to compare with.
 * @param options - An object with options.
 * See MDN for details [Locale identification and negotiation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)
 * The narrow one could be similar to the short one for some locales.
 *
 * @returns The distance in words according to language-sensitive relative time formatting.
 *
 * @throws `date` must not be Invalid Date
 * @throws `baseDate` must not be Invalid Date
 * @throws `options.unit` must not be invalid Unit
 * @throws `options.locale` must not be invalid locale
 * @throws `options.localeMatcher` must not be invalid localeMatcher
 * @throws `options.numeric` must not be invalid numeric
 * @throws `options.style` must not be invalid style
 *
 * @example
 * // What is the distance between the dates when the fist date is after the second?
 * intlFormatDistance(
 *   new Date(1986, 3, 4, 11, 30, 0),
 *   new Date(1986, 3, 4, 10, 30, 0)
 * )
 * //=> 'in 1 hour'
 *
 * // What is the distance between the dates when the fist date is before the second?
 * intlFormatDistance(
 *   new Date(1986, 3, 4, 10, 30, 0),
 *   new Date(1986, 3, 4, 11, 30, 0)
 * )
 * //=> '1 hour ago'
 *
 * @example
 * // Use the unit option to force the function to output the result in quarters. Without setting it, the example would return "next year"
 * intlFormatDistance(
 *   new Date(1987, 6, 4, 10, 30, 0),
 *   new Date(1986, 3, 4, 10, 30, 0),
 *   { unit: 'quarter' }
 * )
 * //=> 'in 5 quarters'
 *
 * @example
 * // Use the locale option to get the result in Spanish. Without setting it, the example would return "in 1 hour".
 * intlFormatDistance(
 *   new Date(1986, 3, 4, 11, 30, 0),
 *   new Date(1986, 3, 4, 10, 30, 0),
 *   { locale: 'es' }
 * )
 * //=> 'dentro de 1 hora'
 *
 * @example
 * // Use the numeric option to force the function to use numeric values. Without setting it, the example would return "tomorrow".
 * intlFormatDistance(
 *   new Date(1986, 3, 5, 11, 30, 0),
 *   new Date(1986, 3, 4, 11, 30, 0),
 *   { numeric: 'always' }
 * )
 * //=> 'in 1 day'
 *
 * @example
 * // Use the style option to force the function to use short values. Without setting it, the example would return "in 2 years".
 * intlFormatDistance(
 *   new Date(1988, 3, 4, 11, 30, 0),
 *   new Date(1986, 3, 4, 11, 30, 0),
 *   { style: 'short' }
 * )
 * //=> 'in 2 yr'
 */
function intlFormatDistance(laterDate, earlierDate, options) {
  let value = 0;
  let unit;

  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  if (!options?.unit) {
    // Get the unit based on diffInSeconds calculations if no unit is specified
    const diffInSeconds = (0, _index10.differenceInSeconds)(
      laterDate_,
      earlierDate_,
    ); // The smallest unit

    if (Math.abs(diffInSeconds) < _index2.secondsInMinute) {
      value = (0, _index10.differenceInSeconds)(laterDate_, earlierDate_);
      unit = "second";
    } else if (Math.abs(diffInSeconds) < _index2.secondsInHour) {
      value = (0, _index9.differenceInMinutes)(laterDate_, earlierDate_);
      unit = "minute";
    } else if (
      Math.abs(diffInSeconds) < _index2.secondsInDay &&
      Math.abs(
        (0, _index3.differenceInCalendarDays)(laterDate_, earlierDate_),
      ) < 1
    ) {
      value = (0, _index8.differenceInHours)(laterDate_, earlierDate_);
      unit = "hour";
    } else if (
      Math.abs(diffInSeconds) < _index2.secondsInWeek &&
      (value = (0, _index3.differenceInCalendarDays)(
        laterDate_,
        earlierDate_,
      )) &&
      Math.abs(value) < 7
    ) {
      unit = "day";
    } else if (Math.abs(diffInSeconds) < _index2.secondsInMonth) {
      value = (0, _index6.differenceInCalendarWeeks)(laterDate_, earlierDate_);
      unit = "week";
    } else if (Math.abs(diffInSeconds) < _index2.secondsInQuarter) {
      value = (0, _index4.differenceInCalendarMonths)(laterDate_, earlierDate_);
      unit = "month";
    } else if (Math.abs(diffInSeconds) < _index2.secondsInYear) {
      if (
        (0, _index5.differenceInCalendarQuarters)(laterDate_, earlierDate_) < 4
      ) {
        // To filter out cases that are less than a year but match 4 quarters
        value = (0, _index5.differenceInCalendarQuarters)(
          laterDate_,
          earlierDate_,
        );
        unit = "quarter";
      } else {
        value = (0, _index7.differenceInCalendarYears)(
          laterDate_,
          earlierDate_,
        );
        unit = "year";
      }
    } else {
      value = (0, _index7.differenceInCalendarYears)(laterDate_, earlierDate_);
      unit = "year";
    }
  } else {
    // Get the value if unit is specified
    unit = options?.unit;
    if (unit === "second") {
      value = (0, _index10.differenceInSeconds)(laterDate_, earlierDate_);
    } else if (unit === "minute") {
      value = (0, _index9.differenceInMinutes)(laterDate_, earlierDate_);
    } else if (unit === "hour") {
      value = (0, _index8.differenceInHours)(laterDate_, earlierDate_);
    } else if (unit === "day") {
      value = (0, _index3.differenceInCalendarDays)(laterDate_, earlierDate_);
    } else if (unit === "week") {
      value = (0, _index6.differenceInCalendarWeeks)(laterDate_, earlierDate_);
    } else if (unit === "month") {
      value = (0, _index4.differenceInCalendarMonths)(laterDate_, earlierDate_);
    } else if (unit === "quarter") {
      value = (0, _index5.differenceInCalendarQuarters)(
        laterDate_,
        earlierDate_,
      );
    } else if (unit === "year") {
      value = (0, _index7.differenceInCalendarYears)(laterDate_, earlierDate_);
    }
  }

  const rtf = new Intl.RelativeTimeFormat(options?.locale, {
    numeric: "auto",
    ...options,
  });

  return rtf.format(value, unit);
}


/***/ }),

/***/ 327:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var patterns_exports = {};
__export(patterns_exports, {
  AUDIO_EXTENSIONS: () => AUDIO_EXTENSIONS,
  DASH_EXTENSIONS: () => DASH_EXTENSIONS,
  FLV_EXTENSIONS: () => FLV_EXTENSIONS,
  HLS_EXTENSIONS: () => HLS_EXTENSIONS,
  MATCH_URL_DAILYMOTION: () => MATCH_URL_DAILYMOTION,
  MATCH_URL_FACEBOOK: () => MATCH_URL_FACEBOOK,
  MATCH_URL_FACEBOOK_WATCH: () => MATCH_URL_FACEBOOK_WATCH,
  MATCH_URL_KALTURA: () => MATCH_URL_KALTURA,
  MATCH_URL_MIXCLOUD: () => MATCH_URL_MIXCLOUD,
  MATCH_URL_MUX: () => MATCH_URL_MUX,
  MATCH_URL_SOUNDCLOUD: () => MATCH_URL_SOUNDCLOUD,
  MATCH_URL_STREAMABLE: () => MATCH_URL_STREAMABLE,
  MATCH_URL_TWITCH_CHANNEL: () => MATCH_URL_TWITCH_CHANNEL,
  MATCH_URL_TWITCH_VIDEO: () => MATCH_URL_TWITCH_VIDEO,
  MATCH_URL_VIDYARD: () => MATCH_URL_VIDYARD,
  MATCH_URL_VIMEO: () => MATCH_URL_VIMEO,
  MATCH_URL_WISTIA: () => MATCH_URL_WISTIA,
  MATCH_URL_YOUTUBE: () => MATCH_URL_YOUTUBE,
  VIDEO_EXTENSIONS: () => VIDEO_EXTENSIONS,
  canPlay: () => canPlay
});
module.exports = __toCommonJS(patterns_exports);
var import_utils = __webpack_require__(5635);
const MATCH_URL_YOUTUBE = /(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//;
const MATCH_URL_SOUNDCLOUD = /(?:soundcloud\.com|snd\.sc)\/[^.]+$/;
const MATCH_URL_VIMEO = /vimeo\.com\/(?!progressive_redirect).+/;
const MATCH_URL_MUX = /stream\.mux\.com\/(?!\w+\.m3u8)(\w+)/;
const MATCH_URL_FACEBOOK = /^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/;
const MATCH_URL_FACEBOOK_WATCH = /^https?:\/\/fb\.watch\/.+$/;
const MATCH_URL_STREAMABLE = /streamable\.com\/([a-z0-9]+)$/;
const MATCH_URL_WISTIA = /(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/;
const MATCH_URL_TWITCH_VIDEO = /(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/;
const MATCH_URL_TWITCH_CHANNEL = /(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/;
const MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/;
const MATCH_URL_MIXCLOUD = /mixcloud\.com\/([^/]+\/[^/]+)/;
const MATCH_URL_VIDYARD = /vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/;
const MATCH_URL_KALTURA = /^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;
const AUDIO_EXTENSIONS = /\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i;
const VIDEO_EXTENSIONS = /\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i;
const HLS_EXTENSIONS = /\.(m3u8)($|\?)/i;
const DASH_EXTENSIONS = /\.(mpd)($|\?)/i;
const FLV_EXTENSIONS = /\.(flv)($|\?)/i;
const canPlayFile = (url) => {
  if (url instanceof Array) {
    for (const item of url) {
      if (typeof item === "string" && canPlayFile(item)) {
        return true;
      }
      if (canPlayFile(item.src)) {
        return true;
      }
    }
    return false;
  }
  if ((0, import_utils.isMediaStream)(url) || (0, import_utils.isBlobUrl)(url)) {
    return true;
  }
  return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);
};
const canPlay = {
  youtube: (url) => {
    if (url instanceof Array) {
      return url.every((item) => MATCH_URL_YOUTUBE.test(item));
    }
    return MATCH_URL_YOUTUBE.test(url);
  },
  soundcloud: (url) => MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url),
  vimeo: (url) => MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url),
  mux: (url) => MATCH_URL_MUX.test(url),
  facebook: (url) => MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url),
  streamable: (url) => MATCH_URL_STREAMABLE.test(url),
  wistia: (url) => MATCH_URL_WISTIA.test(url),
  twitch: (url) => MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url),
  dailymotion: (url) => MATCH_URL_DAILYMOTION.test(url),
  mixcloud: (url) => MATCH_URL_MIXCLOUD.test(url),
  vidyard: (url) => MATCH_URL_VIDYARD.test(url),
  kaltura: (url) => MATCH_URL_KALTURA.test(url),
  file: canPlayFile
};


/***/ }),

/***/ 364:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subSeconds = subSeconds;
var _index = __webpack_require__(6689);

/**
 * The {@link subSeconds} function options.
 */

/**
 * Subtract the specified number of seconds from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of seconds to be subtracted.
 * @param options - The options
 *
 * @returns The new date with the seconds subtracted
 *
 * @example
 * // Subtract 30 seconds from 10 July 2014 12:45:00:
 * const result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)
 * //=> Thu Jul 10 2014 12:44:30
 */
function subSeconds(date, amount, options) {
  return (0, _index.addSeconds)(date, -amount, options);
}


/***/ }),

/***/ 411:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _index = __webpack_require__(7626);
Object.keys(_index).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index[key];
    },
  });
});
var _index2 = __webpack_require__(9941);
Object.keys(_index2).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index2[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index2[key];
    },
  });
});
var _index3 = __webpack_require__(7591);
Object.keys(_index3).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index3[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index3[key];
    },
  });
});
var _index4 = __webpack_require__(9463);
Object.keys(_index4).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index4[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index4[key];
    },
  });
});
var _index5 = __webpack_require__(2945);
Object.keys(_index5).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index5[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index5[key];
    },
  });
});
var _index6 = __webpack_require__(4280);
Object.keys(_index6).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index6[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index6[key];
    },
  });
});
var _index7 = __webpack_require__(3937);
Object.keys(_index7).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index7[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index7[key];
    },
  });
});
var _index8 = __webpack_require__(6379);
Object.keys(_index8).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index8[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index8[key];
    },
  });
});
var _index9 = __webpack_require__(1149);
Object.keys(_index9).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index9[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index9[key];
    },
  });
});
var _index10 = __webpack_require__(6689);
Object.keys(_index10).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index10[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index10[key];
    },
  });
});
var _index11 = __webpack_require__(4073);
Object.keys(_index11).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index11[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index11[key];
    },
  });
});
var _index12 = __webpack_require__(1440);
Object.keys(_index12).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index12[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index12[key];
    },
  });
});
var _index13 = __webpack_require__(4674);
Object.keys(_index13).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index13[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index13[key];
    },
  });
});
var _index14 = __webpack_require__(8214);
Object.keys(_index14).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index14[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index14[key];
    },
  });
});
var _index15 = __webpack_require__(8741);
Object.keys(_index15).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index15[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index15[key];
    },
  });
});
var _index16 = __webpack_require__(7617);
Object.keys(_index16).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index16[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index16[key];
    },
  });
});
var _index17 = __webpack_require__(6789);
Object.keys(_index17).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index17[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index17[key];
    },
  });
});
var _index18 = __webpack_require__(7777);
Object.keys(_index18).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index18[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index18[key];
    },
  });
});
var _index19 = __webpack_require__(2956);
Object.keys(_index19).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index19[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index19[key];
    },
  });
});
var _index20 = __webpack_require__(2700);
Object.keys(_index20).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index20[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index20[key];
    },
  });
});
var _index21 = __webpack_require__(2934);
Object.keys(_index21).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index21[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index21[key];
    },
  });
});
var _index22 = __webpack_require__(2110);
Object.keys(_index22).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index22[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index22[key];
    },
  });
});
var _index23 = __webpack_require__(5506);
Object.keys(_index23).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index23[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index23[key];
    },
  });
});
var _index24 = __webpack_require__(99);
Object.keys(_index24).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index24[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index24[key];
    },
  });
});
var _index25 = __webpack_require__(8813);
Object.keys(_index25).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index25[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index25[key];
    },
  });
});
var _index26 = __webpack_require__(562);
Object.keys(_index26).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index26[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index26[key];
    },
  });
});
var _index27 = __webpack_require__(6024);
Object.keys(_index27).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index27[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index27[key];
    },
  });
});
var _index28 = __webpack_require__(4746);
Object.keys(_index28).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index28[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index28[key];
    },
  });
});
var _index29 = __webpack_require__(4875);
Object.keys(_index29).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index29[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index29[key];
    },
  });
});
var _index30 = __webpack_require__(3724);
Object.keys(_index30).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index30[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index30[key];
    },
  });
});
var _index31 = __webpack_require__(990);
Object.keys(_index31).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index31[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index31[key];
    },
  });
});
var _index32 = __webpack_require__(4294);
Object.keys(_index32).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index32[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index32[key];
    },
  });
});
var _index33 = __webpack_require__(2495);
Object.keys(_index33).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index33[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index33[key];
    },
  });
});
var _index34 = __webpack_require__(691);
Object.keys(_index34).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index34[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index34[key];
    },
  });
});
var _index35 = __webpack_require__(5460);
Object.keys(_index35).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index35[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index35[key];
    },
  });
});
var _index36 = __webpack_require__(5442);
Object.keys(_index36).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index36[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index36[key];
    },
  });
});
var _index37 = __webpack_require__(192);
Object.keys(_index37).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index37[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index37[key];
    },
  });
});
var _index38 = __webpack_require__(4184);
Object.keys(_index38).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index38[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index38[key];
    },
  });
});
var _index39 = __webpack_require__(6605);
Object.keys(_index39).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index39[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index39[key];
    },
  });
});
var _index40 = __webpack_require__(3700);
Object.keys(_index40).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index40[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index40[key];
    },
  });
});
var _index41 = __webpack_require__(8996);
Object.keys(_index41).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index41[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index41[key];
    },
  });
});
var _index42 = __webpack_require__(666);
Object.keys(_index42).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index42[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index42[key];
    },
  });
});
var _index43 = __webpack_require__(5824);
Object.keys(_index43).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index43[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index43[key];
    },
  });
});
var _index44 = __webpack_require__(7838);
Object.keys(_index44).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index44[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index44[key];
    },
  });
});
var _index45 = __webpack_require__(3298);
Object.keys(_index45).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index45[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index45[key];
    },
  });
});
var _index46 = __webpack_require__(9305);
Object.keys(_index46).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index46[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index46[key];
    },
  });
});
var _index47 = __webpack_require__(5456);
Object.keys(_index47).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index47[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index47[key];
    },
  });
});
var _index48 = __webpack_require__(1441);
Object.keys(_index48).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index48[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index48[key];
    },
  });
});
var _index49 = __webpack_require__(6245);
Object.keys(_index49).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index49[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index49[key];
    },
  });
});
var _index50 = __webpack_require__(1883);
Object.keys(_index50).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index50[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index50[key];
    },
  });
});
var _index51 = __webpack_require__(6903);
Object.keys(_index51).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index51[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index51[key];
    },
  });
});
var _index52 = __webpack_require__(5881);
Object.keys(_index52).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index52[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index52[key];
    },
  });
});
var _index53 = __webpack_require__(4650);
Object.keys(_index53).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index53[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index53[key];
    },
  });
});
var _index54 = __webpack_require__(4729);
Object.keys(_index54).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index54[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index54[key];
    },
  });
});
var _index55 = __webpack_require__(3999);
Object.keys(_index55).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index55[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index55[key];
    },
  });
});
var _index56 = __webpack_require__(1291);
Object.keys(_index56).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index56[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index56[key];
    },
  });
});
var _index57 = __webpack_require__(5265);
Object.keys(_index57).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index57[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index57[key];
    },
  });
});
var _index58 = __webpack_require__(9883);
Object.keys(_index58).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index58[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index58[key];
    },
  });
});
var _index59 = __webpack_require__(2366);
Object.keys(_index59).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index59[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index59[key];
    },
  });
});
var _index60 = __webpack_require__(1574);
Object.keys(_index60).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index60[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index60[key];
    },
  });
});
var _index61 = __webpack_require__(1587);
Object.keys(_index61).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index61[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index61[key];
    },
  });
});
var _index62 = __webpack_require__(7624);
Object.keys(_index62).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index62[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index62[key];
    },
  });
});
var _index63 = __webpack_require__(6601);
Object.keys(_index63).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index63[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index63[key];
    },
  });
});
var _index64 = __webpack_require__(9460);
Object.keys(_index64).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index64[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index64[key];
    },
  });
});
var _index65 = __webpack_require__(671);
Object.keys(_index65).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index65[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index65[key];
    },
  });
});
var _index66 = __webpack_require__(5206);
Object.keys(_index66).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index66[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index66[key];
    },
  });
});
var _index67 = __webpack_require__(4950);
Object.keys(_index67).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index67[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index67[key];
    },
  });
});
var _index68 = __webpack_require__(977);
Object.keys(_index68).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index68[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index68[key];
    },
  });
});
var _index69 = __webpack_require__(3772);
Object.keys(_index69).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index69[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index69[key];
    },
  });
});
var _index70 = __webpack_require__(6179);
Object.keys(_index70).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index70[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index70[key];
    },
  });
});
var _index71 = __webpack_require__(9792);
Object.keys(_index71).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index71[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index71[key];
    },
  });
});
var _index72 = __webpack_require__(2067);
Object.keys(_index72).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index72[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index72[key];
    },
  });
});
var _index73 = __webpack_require__(5449);
Object.keys(_index73).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index73[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index73[key];
    },
  });
});
var _index74 = __webpack_require__(2764);
Object.keys(_index74).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index74[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index74[key];
    },
  });
});
var _index75 = __webpack_require__(2292);
Object.keys(_index75).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index75[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index75[key];
    },
  });
});
var _index76 = __webpack_require__(6808);
Object.keys(_index76).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index76[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index76[key];
    },
  });
});
var _index77 = __webpack_require__(819);
Object.keys(_index77).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index77[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index77[key];
    },
  });
});
var _index78 = __webpack_require__(1591);
Object.keys(_index78).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index78[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index78[key];
    },
  });
});
var _index79 = __webpack_require__(659);
Object.keys(_index79).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index79[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index79[key];
    },
  });
});
var _index80 = __webpack_require__(2575);
Object.keys(_index80).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index80[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index80[key];
    },
  });
});
var _index81 = __webpack_require__(2396);
Object.keys(_index81).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index81[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index81[key];
    },
  });
});
var _index82 = __webpack_require__(2963);
Object.keys(_index82).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index82[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index82[key];
    },
  });
});
var _index83 = __webpack_require__(6032);
Object.keys(_index83).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index83[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index83[key];
    },
  });
});
var _index84 = __webpack_require__(9732);
Object.keys(_index84).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index84[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index84[key];
    },
  });
});
var _index85 = __webpack_require__(8284);
Object.keys(_index85).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index85[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index85[key];
    },
  });
});
var _index86 = __webpack_require__(8926);
Object.keys(_index86).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index86[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index86[key];
    },
  });
});
var _index87 = __webpack_require__(9957);
Object.keys(_index87).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index87[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index87[key];
    },
  });
});
var _index88 = __webpack_require__(8595);
Object.keys(_index88).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index88[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index88[key];
    },
  });
});
var _index89 = __webpack_require__(7633);
Object.keys(_index89).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index89[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index89[key];
    },
  });
});
var _index90 = __webpack_require__(6234);
Object.keys(_index90).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index90[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index90[key];
    },
  });
});
var _index91 = __webpack_require__(7519);
Object.keys(_index91).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index91[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index91[key];
    },
  });
});
var _index92 = __webpack_require__(6482);
Object.keys(_index92).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index92[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index92[key];
    },
  });
});
var _index93 = __webpack_require__(8397);
Object.keys(_index93).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index93[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index93[key];
    },
  });
});
var _index94 = __webpack_require__(1462);
Object.keys(_index94).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index94[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index94[key];
    },
  });
});
var _index95 = __webpack_require__(7044);
Object.keys(_index95).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index95[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index95[key];
    },
  });
});
var _index96 = __webpack_require__(9318);
Object.keys(_index96).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index96[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index96[key];
    },
  });
});
var _index97 = __webpack_require__(9639);
Object.keys(_index97).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index97[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index97[key];
    },
  });
});
var _index98 = __webpack_require__(970);
Object.keys(_index98).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index98[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index98[key];
    },
  });
});
var _index99 = __webpack_require__(6708);
Object.keys(_index99).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index99[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index99[key];
    },
  });
});
var _index100 = __webpack_require__(6159);
Object.keys(_index100).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index100[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index100[key];
    },
  });
});
var _index101 = __webpack_require__(8684);
Object.keys(_index101).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index101[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index101[key];
    },
  });
});
var _index102 = __webpack_require__(8563);
Object.keys(_index102).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index102[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index102[key];
    },
  });
});
var _index103 = __webpack_require__(5676);
Object.keys(_index103).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index103[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index103[key];
    },
  });
});
var _index104 = __webpack_require__(4180);
Object.keys(_index104).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index104[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index104[key];
    },
  });
});
var _index105 = __webpack_require__(4702);
Object.keys(_index105).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index105[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index105[key];
    },
  });
});
var _index106 = __webpack_require__(5609);
Object.keys(_index106).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index106[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index106[key];
    },
  });
});
var _index107 = __webpack_require__(881);
Object.keys(_index107).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index107[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index107[key];
    },
  });
});
var _index108 = __webpack_require__(324);
Object.keys(_index108).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index108[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index108[key];
    },
  });
});
var _index109 = __webpack_require__(5677);
Object.keys(_index109).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index109[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index109[key];
    },
  });
});
var _index110 = __webpack_require__(8520);
Object.keys(_index110).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index110[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index110[key];
    },
  });
});
var _index111 = __webpack_require__(4337);
Object.keys(_index111).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index111[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index111[key];
    },
  });
});
var _index112 = __webpack_require__(4879);
Object.keys(_index112).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index112[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index112[key];
    },
  });
});
var _index113 = __webpack_require__(4437);
Object.keys(_index113).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index113[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index113[key];
    },
  });
});
var _index114 = __webpack_require__(3804);
Object.keys(_index114).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index114[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index114[key];
    },
  });
});
var _index115 = __webpack_require__(8164);
Object.keys(_index115).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index115[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index115[key];
    },
  });
});
var _index116 = __webpack_require__(2488);
Object.keys(_index116).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index116[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index116[key];
    },
  });
});
var _index117 = __webpack_require__(920);
Object.keys(_index117).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index117[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index117[key];
    },
  });
});
var _index118 = __webpack_require__(3364);
Object.keys(_index118).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index118[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index118[key];
    },
  });
});
var _index119 = __webpack_require__(7256);
Object.keys(_index119).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index119[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index119[key];
    },
  });
});
var _index120 = __webpack_require__(4081);
Object.keys(_index120).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index120[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index120[key];
    },
  });
});
var _index121 = __webpack_require__(7865);
Object.keys(_index121).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index121[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index121[key];
    },
  });
});
var _index122 = __webpack_require__(9691);
Object.keys(_index122).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index122[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index122[key];
    },
  });
});
var _index123 = __webpack_require__(3833);
Object.keys(_index123).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index123[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index123[key];
    },
  });
});
var _index124 = __webpack_require__(5626);
Object.keys(_index124).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index124[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index124[key];
    },
  });
});
var _index125 = __webpack_require__(8857);
Object.keys(_index125).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index125[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index125[key];
    },
  });
});
var _index126 = __webpack_require__(8847);
Object.keys(_index126).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index126[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index126[key];
    },
  });
});
var _index127 = __webpack_require__(9019);
Object.keys(_index127).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index127[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index127[key];
    },
  });
});
var _index128 = __webpack_require__(9825);
Object.keys(_index128).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index128[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index128[key];
    },
  });
});
var _index129 = __webpack_require__(9435);
Object.keys(_index129).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index129[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index129[key];
    },
  });
});
var _index130 = __webpack_require__(5897);
Object.keys(_index130).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index130[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index130[key];
    },
  });
});
var _index131 = __webpack_require__(1992);
Object.keys(_index131).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index131[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index131[key];
    },
  });
});
var _index132 = __webpack_require__(2056);
Object.keys(_index132).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index132[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index132[key];
    },
  });
});
var _index133 = __webpack_require__(3561);
Object.keys(_index133).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index133[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index133[key];
    },
  });
});
var _index134 = __webpack_require__(6387);
Object.keys(_index134).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index134[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index134[key];
    },
  });
});
var _index135 = __webpack_require__(1464);
Object.keys(_index135).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index135[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index135[key];
    },
  });
});
var _index136 = __webpack_require__(7909);
Object.keys(_index136).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index136[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index136[key];
    },
  });
});
var _index137 = __webpack_require__(9105);
Object.keys(_index137).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index137[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index137[key];
    },
  });
});
var _index138 = __webpack_require__(2463);
Object.keys(_index138).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index138[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index138[key];
    },
  });
});
var _index139 = __webpack_require__(6573);
Object.keys(_index139).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index139[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index139[key];
    },
  });
});
var _index140 = __webpack_require__(701);
Object.keys(_index140).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index140[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index140[key];
    },
  });
});
var _index141 = __webpack_require__(9526);
Object.keys(_index141).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index141[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index141[key];
    },
  });
});
var _index142 = __webpack_require__(3587);
Object.keys(_index142).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index142[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index142[key];
    },
  });
});
var _index143 = __webpack_require__(5800);
Object.keys(_index143).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index143[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index143[key];
    },
  });
});
var _index144 = __webpack_require__(8032);
Object.keys(_index144).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index144[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index144[key];
    },
  });
});
var _index145 = __webpack_require__(3806);
Object.keys(_index145).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index145[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index145[key];
    },
  });
});
var _index146 = __webpack_require__(7489);
Object.keys(_index146).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index146[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index146[key];
    },
  });
});
var _index147 = __webpack_require__(7851);
Object.keys(_index147).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index147[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index147[key];
    },
  });
});
var _index148 = __webpack_require__(3348);
Object.keys(_index148).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index148[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index148[key];
    },
  });
});
var _index149 = __webpack_require__(3972);
Object.keys(_index149).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index149[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index149[key];
    },
  });
});
var _index150 = __webpack_require__(4439);
Object.keys(_index150).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index150[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index150[key];
    },
  });
});
var _index151 = __webpack_require__(106);
Object.keys(_index151).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index151[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index151[key];
    },
  });
});
var _index152 = __webpack_require__(6249);
Object.keys(_index152).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index152[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index152[key];
    },
  });
});
var _index153 = __webpack_require__(917);
Object.keys(_index153).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index153[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index153[key];
    },
  });
});
var _index154 = __webpack_require__(9404);
Object.keys(_index154).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index154[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index154[key];
    },
  });
});
var _index155 = __webpack_require__(630);
Object.keys(_index155).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index155[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index155[key];
    },
  });
});
var _index156 = __webpack_require__(2994);
Object.keys(_index156).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index156[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index156[key];
    },
  });
});
var _index157 = __webpack_require__(2829);
Object.keys(_index157).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index157[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index157[key];
    },
  });
});
var _index158 = __webpack_require__(6686);
Object.keys(_index158).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index158[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index158[key];
    },
  });
});
var _index159 = __webpack_require__(8873);
Object.keys(_index159).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index159[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index159[key];
    },
  });
});
var _index160 = __webpack_require__(3375);
Object.keys(_index160).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index160[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index160[key];
    },
  });
});
var _index161 = __webpack_require__(449);
Object.keys(_index161).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index161[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index161[key];
    },
  });
});
var _index162 = __webpack_require__(1647);
Object.keys(_index162).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index162[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index162[key];
    },
  });
});
var _index163 = __webpack_require__(8016);
Object.keys(_index163).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index163[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index163[key];
    },
  });
});
var _index164 = __webpack_require__(4855);
Object.keys(_index164).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index164[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index164[key];
    },
  });
});
var _index165 = __webpack_require__(4432);
Object.keys(_index165).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index165[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index165[key];
    },
  });
});
var _index166 = __webpack_require__(5325);
Object.keys(_index166).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index166[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index166[key];
    },
  });
});
var _index167 = __webpack_require__(3074);
Object.keys(_index167).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index167[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index167[key];
    },
  });
});
var _index168 = __webpack_require__(6228);
Object.keys(_index168).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index168[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index168[key];
    },
  });
});
var _index169 = __webpack_require__(623);
Object.keys(_index169).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index169[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index169[key];
    },
  });
});
var _index170 = __webpack_require__(64);
Object.keys(_index170).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index170[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index170[key];
    },
  });
});
var _index171 = __webpack_require__(4251);
Object.keys(_index171).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index171[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index171[key];
    },
  });
});
var _index172 = __webpack_require__(7374);
Object.keys(_index172).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index172[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index172[key];
    },
  });
});
var _index173 = __webpack_require__(3859);
Object.keys(_index173).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index173[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index173[key];
    },
  });
});
var _index174 = __webpack_require__(9322);
Object.keys(_index174).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index174[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index174[key];
    },
  });
});
var _index175 = __webpack_require__(7724);
Object.keys(_index175).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index175[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index175[key];
    },
  });
});
var _index176 = __webpack_require__(5083);
Object.keys(_index176).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index176[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index176[key];
    },
  });
});
var _index177 = __webpack_require__(5610);
Object.keys(_index177).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index177[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index177[key];
    },
  });
});
var _index178 = __webpack_require__(4266);
Object.keys(_index178).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index178[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index178[key];
    },
  });
});
var _index179 = __webpack_require__(9757);
Object.keys(_index179).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index179[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index179[key];
    },
  });
});
var _index180 = __webpack_require__(7144);
Object.keys(_index180).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index180[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index180[key];
    },
  });
});
var _index181 = __webpack_require__(8092);
Object.keys(_index181).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index181[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index181[key];
    },
  });
});
var _index182 = __webpack_require__(5255);
Object.keys(_index182).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index182[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index182[key];
    },
  });
});
var _index183 = __webpack_require__(2650);
Object.keys(_index183).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index183[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index183[key];
    },
  });
});
var _index184 = __webpack_require__(3767);
Object.keys(_index184).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index184[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index184[key];
    },
  });
});
var _index185 = __webpack_require__(5457);
Object.keys(_index185).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index185[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index185[key];
    },
  });
});
var _index186 = __webpack_require__(9059);
Object.keys(_index186).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index186[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index186[key];
    },
  });
});
var _index187 = __webpack_require__(1743);
Object.keys(_index187).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index187[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index187[key];
    },
  });
});
var _index188 = __webpack_require__(9182);
Object.keys(_index188).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index188[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index188[key];
    },
  });
});
var _index189 = __webpack_require__(244);
Object.keys(_index189).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index189[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index189[key];
    },
  });
});
var _index190 = __webpack_require__(9629);
Object.keys(_index190).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index190[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index190[key];
    },
  });
});
var _index191 = __webpack_require__(9859);
Object.keys(_index191).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index191[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index191[key];
    },
  });
});
var _index192 = __webpack_require__(7957);
Object.keys(_index192).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index192[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index192[key];
    },
  });
});
var _index193 = __webpack_require__(2944);
Object.keys(_index193).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index193[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index193[key];
    },
  });
});
var _index194 = __webpack_require__(4317);
Object.keys(_index194).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index194[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index194[key];
    },
  });
});
var _index195 = __webpack_require__(4638);
Object.keys(_index195).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index195[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index195[key];
    },
  });
});
var _index196 = __webpack_require__(3635);
Object.keys(_index196).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index196[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index196[key];
    },
  });
});
var _index197 = __webpack_require__(1311);
Object.keys(_index197).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index197[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index197[key];
    },
  });
});
var _index198 = __webpack_require__(4395);
Object.keys(_index198).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index198[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index198[key];
    },
  });
});
var _index199 = __webpack_require__(3359);
Object.keys(_index199).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index199[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index199[key];
    },
  });
});
var _index200 = __webpack_require__(2756);
Object.keys(_index200).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index200[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index200[key];
    },
  });
});
var _index201 = __webpack_require__(9520);
Object.keys(_index201).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index201[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index201[key];
    },
  });
});
var _index202 = __webpack_require__(2240);
Object.keys(_index202).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index202[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index202[key];
    },
  });
});
var _index203 = __webpack_require__(3354);
Object.keys(_index203).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index203[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index203[key];
    },
  });
});
var _index204 = __webpack_require__(4617);
Object.keys(_index204).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index204[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index204[key];
    },
  });
});
var _index205 = __webpack_require__(1133);
Object.keys(_index205).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index205[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index205[key];
    },
  });
});
var _index206 = __webpack_require__(1982);
Object.keys(_index206).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index206[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index206[key];
    },
  });
});
var _index207 = __webpack_require__(7035);
Object.keys(_index207).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index207[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index207[key];
    },
  });
});
var _index208 = __webpack_require__(1201);
Object.keys(_index208).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index208[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index208[key];
    },
  });
});
var _index209 = __webpack_require__(5154);
Object.keys(_index209).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index209[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index209[key];
    },
  });
});
var _index210 = __webpack_require__(1315);
Object.keys(_index210).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index210[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index210[key];
    },
  });
});
var _index211 = __webpack_require__(7816);
Object.keys(_index211).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index211[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index211[key];
    },
  });
});
var _index212 = __webpack_require__(2648);
Object.keys(_index212).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index212[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index212[key];
    },
  });
});
var _index213 = __webpack_require__(8290);
Object.keys(_index213).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index213[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index213[key];
    },
  });
});
var _index214 = __webpack_require__(6660);
Object.keys(_index214).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index214[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index214[key];
    },
  });
});
var _index215 = __webpack_require__(5262);
Object.keys(_index215).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index215[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index215[key];
    },
  });
});
var _index216 = __webpack_require__(6107);
Object.keys(_index216).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index216[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index216[key];
    },
  });
});
var _index217 = __webpack_require__(1152);
Object.keys(_index217).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index217[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index217[key];
    },
  });
});
var _index218 = __webpack_require__(1804);
Object.keys(_index218).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index218[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index218[key];
    },
  });
});
var _index219 = __webpack_require__(7710);
Object.keys(_index219).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index219[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index219[key];
    },
  });
});
var _index220 = __webpack_require__(6944);
Object.keys(_index220).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index220[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index220[key];
    },
  });
});
var _index221 = __webpack_require__(6936);
Object.keys(_index221).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index221[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index221[key];
    },
  });
});
var _index222 = __webpack_require__(3975);
Object.keys(_index222).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index222[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index222[key];
    },
  });
});
var _index223 = __webpack_require__(3313);
Object.keys(_index223).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index223[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index223[key];
    },
  });
});
var _index224 = __webpack_require__(5472);
Object.keys(_index224).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index224[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index224[key];
    },
  });
});
var _index225 = __webpack_require__(3040);
Object.keys(_index225).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index225[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index225[key];
    },
  });
});
var _index226 = __webpack_require__(775);
Object.keys(_index226).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index226[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index226[key];
    },
  });
});
var _index227 = __webpack_require__(3552);
Object.keys(_index227).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index227[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index227[key];
    },
  });
});
var _index228 = __webpack_require__(37);
Object.keys(_index228).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index228[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index228[key];
    },
  });
});
var _index229 = __webpack_require__(3570);
Object.keys(_index229).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index229[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index229[key];
    },
  });
});
var _index230 = __webpack_require__(3224);
Object.keys(_index230).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index230[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index230[key];
    },
  });
});
var _index231 = __webpack_require__(1130);
Object.keys(_index231).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index231[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index231[key];
    },
  });
});
var _index232 = __webpack_require__(6322);
Object.keys(_index232).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index232[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index232[key];
    },
  });
});
var _index233 = __webpack_require__(1675);
Object.keys(_index233).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index233[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index233[key];
    },
  });
});
var _index234 = __webpack_require__(3028);
Object.keys(_index234).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index234[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index234[key];
    },
  });
});
var _index235 = __webpack_require__(5112);
Object.keys(_index235).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index235[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index235[key];
    },
  });
});
var _index236 = __webpack_require__(8542);
Object.keys(_index236).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index236[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index236[key];
    },
  });
});
var _index237 = __webpack_require__(364);
Object.keys(_index237).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index237[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index237[key];
    },
  });
});
var _index238 = __webpack_require__(220);
Object.keys(_index238).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index238[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index238[key];
    },
  });
});
var _index239 = __webpack_require__(8417);
Object.keys(_index239).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index239[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index239[key];
    },
  });
});
var _index240 = __webpack_require__(4446);
Object.keys(_index240).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index240[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index240[key];
    },
  });
});
var _index241 = __webpack_require__(4082);
Object.keys(_index241).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index241[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index241[key];
    },
  });
});
var _index242 = __webpack_require__(8442);
Object.keys(_index242).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index242[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index242[key];
    },
  });
});
var _index243 = __webpack_require__(5827);
Object.keys(_index243).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index243[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index243[key];
    },
  });
});
var _index244 = __webpack_require__(5807);
Object.keys(_index244).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index244[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index244[key];
    },
  });
});
var _index245 = __webpack_require__(9049);
Object.keys(_index245).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _index245[key]) return;
  Object.defineProperty(exports, key, {
    enumerable: true,
    get: function () {
      return _index245[key];
    },
  });
});


/***/ }),

/***/ 449:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.millisecondsToHours = millisecondsToHours;
var _index = __webpack_require__(8052);

/**
 * @name millisecondsToHours
 * @category Conversion Helpers
 * @summary Convert milliseconds to hours.
 *
 * @description
 * Convert a number of milliseconds to a full number of hours.
 *
 * @param milliseconds - The number of milliseconds to be converted
 *
 * @returns The number of milliseconds converted in hours
 *
 * @example
 * // Convert 7200000 milliseconds to hours:
 * const result = millisecondsToHours(7200000)
 * //=> 2
 *
 * @example
 * // It uses floor rounding:
 * const result = millisecondsToHours(7199999)
 * //=> 1
 */
function millisecondsToHours(milliseconds) {
  const hours = milliseconds / _index.millisecondsInHour;
  return Math.trunc(hours);
}


/***/ }),

/***/ 540:
/***/ ((module) => {

"use strict";


/* istanbul ignore next  */
function insertStyleElement(options) {
  var element = document.createElement("style");
  options.setAttributes(element, options.attributes);
  options.insert(element, options.options);
  return element;
}
module.exports = insertStyleElement;

/***/ }),

/***/ 562:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarMonths = differenceInCalendarMonths;
var _index = __webpack_require__(8256);

/**
 * The {@link differenceInCalendarMonths} function options.
 */

/**
 * @name differenceInCalendarMonths
 * @category Month Helpers
 * @summary Get the number of calendar months between the given dates.
 *
 * @description
 * Get the number of calendar months between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of calendar months
 *
 * @example
 * // How many calendar months are between 31 January 2014 and 1 September 2014?
 * const result = differenceInCalendarMonths(
 *   new Date(2014, 8, 1),
 *   new Date(2014, 0, 31)
 * )
 * //=> 8
 */
function differenceInCalendarMonths(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();
  const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth();

  return yearsDiff * 12 + monthsDiff;
}


/***/ }),

/***/ 623:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.monthsToYears = monthsToYears;
var _index = __webpack_require__(8052);

/**
 * @name monthsToYears
 * @category Conversion Helpers
 * @summary Convert number of months to years.
 *
 * @description
 * Convert a number of months to a full number of years.
 *
 * @param months - The number of months to be converted
 *
 * @returns The number of months converted in years
 *
 * @example
 * // Convert 36 months to years:
 * const result = monthsToYears(36)
 * //=> 3
 *
 * // It uses floor rounding:
 * const result = monthsToYears(40)
 * //=> 3
 */
function monthsToYears(months) {
  const years = months / _index.monthsInYear;
  return Math.trunc(years);
}


/***/ }),

/***/ 630:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfQuarter = lastDayOfQuarter;
var _index = __webpack_require__(4446);

/**
 * The {@link lastDayOfQuarter} function options.
 */

/**
 * @name lastDayOfQuarter
 * @category Quarter Helpers
 * @summary Return the last day of a year quarter for the given date.
 *
 * @description
 * Return the last day of a year quarter for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The last day of a quarter
 *
 * @example
 * // The last day of a quarter for 2 September 2014 11:55:00:
 * const result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 30 2014 00:00:00
 */
function lastDayOfQuarter(date, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  const currentMonth = date_.getMonth();
  const month = currentMonth - (currentMonth % 3) + 3;
  date_.setMonth(month, 0);
  date_.setHours(0, 0, 0, 0);
  return date_;
}


/***/ }),

/***/ 659:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDayOfYear = getDayOfYear;
var _index = __webpack_require__(5506);
var _index2 = __webpack_require__(775);
var _index3 = __webpack_require__(4446);

/**
 * The {@link getDayOfYear} function options.
 */

/**
 * @name getDayOfYear
 * @category Day Helpers
 * @summary Get the day of the year of the given date.
 *
 * @description
 * Get the day of the year of the given date.
 *
 * @param date - The given date
 * @param options - The options
 *
 * @returns The day of year
 *
 * @example
 * // Which day of the year is 2 July 2014?
 * const result = getDayOfYear(new Date(2014, 6, 2))
 * //=> 183
 */
function getDayOfYear(date, options) {
  const _date = (0, _index3.toDate)(date, options?.in);
  const diff = (0, _index.differenceInCalendarDays)(
    _date,
    (0, _index2.startOfYear)(_date),
  );
  const dayOfYear = diff + 1;
  return dayOfYear;
}


/***/ }),

/***/ 666:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachMinuteOfInterval = eachMinuteOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(3937);
var _index3 = __webpack_require__(2956);

/**
 * The {@link eachMinuteOfInterval} function options.
 */

/**
 * The {@link eachMinuteOfInterval} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the date argument,
 * then the start interval date, and finally the end interval date. If
 * a context function is passed, it uses the context function return type.
 */

/**
 * @name eachMinuteOfInterval
 * @category Interval Helpers
 * @summary Return the array of minutes within the specified time interval.
 *
 * @description
 * Returns the array of minutes within the specified time interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The interval.
 * @param options - An object with options.
 *
 * @returns The array with starts of minutes from the minute of the interval start to the minute of the interval end
 *
 * @example
 * // Each minute between 14 October 2020, 13:00 and 14 October 2020, 13:03
 * const result = eachMinuteOfInterval({
 *   start: new Date(2014, 9, 14, 13),
 *   end: new Date(2014, 9, 14, 13, 3)
 * })
 * //=> [
 * //   Wed Oct 14 2014 13:00:00,
 * //   Wed Oct 14 2014 13:01:00,
 * //   Wed Oct 14 2014 13:02:00,
 * //   Wed Oct 14 2014 13:03:00
 * // ]
 */
function eachMinuteOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);
  // Set to the start of the minute
  start.setSeconds(0, 0);

  let reversed = +start > +end;
  const endTime = reversed ? +start : +end;
  let date = reversed ? end : start;

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+date <= endTime) {
    dates.push((0, _index3.constructFrom)(start, date));
    date = (0, _index2.addMinutes)(date, step);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 671:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatDistance = formatDistance;
var _index = __webpack_require__(9577);
var _index2 = __webpack_require__(6755);
var _index3 = __webpack_require__(6339);
var _index4 = __webpack_require__(8256);
var _index5 = __webpack_require__(6789);
var _index6 = __webpack_require__(8052);
var _index7 = __webpack_require__(5460);
var _index8 = __webpack_require__(192);

/**
 * The {@link formatDistance} function options.
 */

/**
 * @name formatDistance
 * @category Common Helpers
 * @summary Return the distance between the given dates in words.
 *
 * @description
 * Return the distance between the given dates in words.
 *
 * | Distance between dates                                            | Result              |
 * |-------------------------------------------------------------------|---------------------|
 * | 0 ... 30 secs                                                     | less than a minute  |
 * | 30 secs ... 1 min 30 secs                                         | 1 minute            |
 * | 1 min 30 secs ... 44 mins 30 secs                                 | [2..44] minutes     |
 * | 44 mins ... 30 secs ... 89 mins 30 secs                           | about 1 hour        |
 * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs                        | about [2..24] hours |
 * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs                 | 1 day               |
 * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs         | [2..30] days        |
 * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month       |
 * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months      |
 * | 59 days 23 hrs 59 mins 30 secs ... 1 yr                           | [2..12] months      |
 * | 1 yr ... 1 yr 3 months                                            | about 1 year        |
 * | 1 yr 3 months ... 1 yr 9 month s                                  | over 1 year         |
 * | 1 yr 9 months ... 2 yrs                                           | almost 2 years      |
 * | N yrs ... N yrs 3 months                                          | about N years       |
 * | N yrs 3 months ... N yrs 9 months                                 | over N years        |
 * | N yrs 9 months ... N+1 yrs                                        | almost N+1 years    |
 *
 * With `options.includeSeconds == true`:
 * | Distance between dates | Result               |
 * |------------------------|----------------------|
 * | 0 secs ... 5 secs      | less than 5 seconds  |
 * | 5 secs ... 10 secs     | less than 10 seconds |
 * | 10 secs ... 20 secs    | less than 20 seconds |
 * | 20 secs ... 40 secs    | half a minute        |
 * | 40 secs ... 60 secs    | less than a minute   |
 * | 60 secs ... 90 secs    | 1 minute             |
 *
 * @param laterDate - The date
 * @param earlierDate - The date to compare with
 * @param options - An object with options
 *
 * @returns The distance in words
 *
 * @throws `date` must not be Invalid Date
 * @throws `baseDate` must not be Invalid Date
 * @throws `options.locale` must contain `formatDistance` property
 *
 * @example
 * // What is the distance between 2 July 2014 and 1 January 2015?
 * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))
 * //=> '6 months'
 *
 * @example
 * // What is the distance between 1 January 2015 00:00:15
 * // and 1 January 2015 00:00:00, including seconds?
 * const result = formatDistance(
 *   new Date(2015, 0, 1, 0, 0, 15),
 *   new Date(2015, 0, 1, 0, 0, 0),
 *   { includeSeconds: true }
 * )
 * //=> 'less than 20 seconds'
 *
 * @example
 * // What is the distance from 1 January 2016
 * // to 1 January 2015, with a suffix?
 * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {
 *   addSuffix: true
 * })
 * //=> 'about 1 year ago'
 *
 * @example
 * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?
 * import { eoLocale } from 'date-fns/locale/eo'
 * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {
 *   locale: eoLocale
 * })
 * //=> 'pli ol 1 jaro'
 */
function formatDistance(laterDate, earlierDate, options) {
  const defaultOptions = (0, _index2.getDefaultOptions)();
  const locale =
    options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;
  const minutesInAlmostTwoDays = 2520;

  const comparison = (0, _index5.compareAsc)(laterDate, earlierDate);

  if (isNaN(comparison)) throw new RangeError("Invalid time value");

  const localizeOptions = Object.assign({}, options, {
    addSuffix: options?.addSuffix,
    comparison: comparison,
  });

  const [laterDate_, earlierDate_] = (0, _index4.normalizeDates)(
    options?.in,
    ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]),
  );

  const seconds = (0, _index8.differenceInSeconds)(earlierDate_, laterDate_);
  const offsetInSeconds =
    ((0, _index3.getTimezoneOffsetInMilliseconds)(earlierDate_) -
      (0, _index3.getTimezoneOffsetInMilliseconds)(laterDate_)) /
    1000;
  const minutes = Math.round((seconds - offsetInSeconds) / 60);
  let months;

  // 0 up to 2 mins
  if (minutes < 2) {
    if (options?.includeSeconds) {
      if (seconds < 5) {
        return locale.formatDistance("lessThanXSeconds", 5, localizeOptions);
      } else if (seconds < 10) {
        return locale.formatDistance("lessThanXSeconds", 10, localizeOptions);
      } else if (seconds < 20) {
        return locale.formatDistance("lessThanXSeconds", 20, localizeOptions);
      } else if (seconds < 40) {
        return locale.formatDistance("halfAMinute", 0, localizeOptions);
      } else if (seconds < 60) {
        return locale.formatDistance("lessThanXMinutes", 1, localizeOptions);
      } else {
        return locale.formatDistance("xMinutes", 1, localizeOptions);
      }
    } else {
      if (minutes === 0) {
        return locale.formatDistance("lessThanXMinutes", 1, localizeOptions);
      } else {
        return locale.formatDistance("xMinutes", minutes, localizeOptions);
      }
    }

    // 2 mins up to 0.75 hrs
  } else if (minutes < 45) {
    return locale.formatDistance("xMinutes", minutes, localizeOptions);

    // 0.75 hrs up to 1.5 hrs
  } else if (minutes < 90) {
    return locale.formatDistance("aboutXHours", 1, localizeOptions);

    // 1.5 hrs up to 24 hrs
  } else if (minutes < _index6.minutesInDay) {
    const hours = Math.round(minutes / 60);
    return locale.formatDistance("aboutXHours", hours, localizeOptions);

    // 1 day up to 1.75 days
  } else if (minutes < minutesInAlmostTwoDays) {
    return locale.formatDistance("xDays", 1, localizeOptions);

    // 1.75 days up to 30 days
  } else if (minutes < _index6.minutesInMonth) {
    const days = Math.round(minutes / _index6.minutesInDay);
    return locale.formatDistance("xDays", days, localizeOptions);

    // 1 month up to 2 months
  } else if (minutes < _index6.minutesInMonth * 2) {
    months = Math.round(minutes / _index6.minutesInMonth);
    return locale.formatDistance("aboutXMonths", months, localizeOptions);
  }

  months = (0, _index7.differenceInMonths)(earlierDate_, laterDate_);

  // 2 months up to 12 months
  if (months < 12) {
    const nearestMonth = Math.round(minutes / _index6.minutesInMonth);
    return locale.formatDistance("xMonths", nearestMonth, localizeOptions);

    // 1 year up to max Date
  } else {
    const monthsSinceStartOfYear = months % 12;
    const years = Math.trunc(months / 12);

    // N years up to 1 years 3 months
    if (monthsSinceStartOfYear < 3) {
      return locale.formatDistance("aboutXYears", years, localizeOptions);

      // N years 3 months up to N years 9 months
    } else if (monthsSinceStartOfYear < 9) {
      return locale.formatDistance("overXYears", years, localizeOptions);

      // N years 9 months up to N year 12 months
    } else {
      return locale.formatDistance("almostXYears", years + 1, localizeOptions);
    }
  }
}


/***/ }),

/***/ 691:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInMinutes = differenceInMinutes;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(8052);
var _index3 = __webpack_require__(2495);

/**
 * The {@link differenceInMinutes} function options.
 */

/**
 * @name differenceInMinutes
 * @category Minute Helpers
 * @summary Get the number of minutes between the given dates.
 *
 * @description
 * Get the signed number of full (rounded towards 0) minutes between the given dates.
 *
 * @param dateLeft - The later date
 * @param dateRight - The earlier date
 * @param options - An object with options.
 *
 * @returns The number of minutes
 *
 * @example
 * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?
 * const result = differenceInMinutes(
 *   new Date(2014, 6, 2, 12, 20, 0),
 *   new Date(2014, 6, 2, 12, 7, 59)
 * )
 * //=> 12
 *
 * @example
 * // How many minutes are between 10:01:59 and 10:00:00
 * const result = differenceInMinutes(
 *   new Date(2000, 0, 1, 10, 0, 0),
 *   new Date(2000, 0, 1, 10, 1, 59)
 * )
 * //=> -1
 */
function differenceInMinutes(dateLeft, dateRight, options) {
  const diff =
    (0, _index3.differenceInMilliseconds)(dateLeft, dateRight) /
    _index2.millisecondsInMinute;
  return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);
}


/***/ }),

/***/ 701:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisWeek = isThisWeek;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(5897);

/**
 * The {@link isThisWeek} function options.
 */

/**
 * @name isThisWeek
 * @category Week Helpers
 * @summary Is the given date in the same week as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same week as the current date?
 *
 * @param date - The date to check
 * @param options - The object with options
 *
 * @returns The date is in this week
 *
 * @example
 * // If today is 25 September 2014, is 21 September 2014 in this week?
 * const result = isThisWeek(new Date(2014, 8, 21))
 * //=> true
 *
 * @example
 * // If today is 25 September 2014 and week starts with Monday
 * // is 21 September 2014 in this week?
 * const result = isThisWeek(new Date(2014, 8, 21), { weekStartsOn: 1 })
 * //=> false
 */
function isThisWeek(date, options) {
  return (0, _index3.isSameWeek)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index2.constructNow)(options?.in || date),
    options,
  );
}


/***/ }),

/***/ 775:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfYear = startOfYear;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfYear} function options.
 */

/**
 * @name startOfYear
 * @category Year Helpers
 * @summary Return the start of a year for the given date.
 *
 * @description
 * Return the start of a year for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The start of a year
 *
 * @example
 * // The start of a year for 2 September 2014 11:55:00:
 * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))
 * //=> Wed Jan 01 2014 00:00:00
 */
function startOfYear(date, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  date_.setFullYear(date_.getFullYear(), 0, 1);
  date_.setHours(0, 0, 0, 0);
  return date_;
}


/***/ }),

/***/ 819:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDate = getDate;
var _index = __webpack_require__(4446);

/**
 * The {@link getDate} function options.
 */

/**
 * @name getDate
 * @category Day Helpers
 * @summary Get the day of the month of the given date.
 *
 * @description
 * Get the day of the month of the given date.
 *
 * @param date - The given date
 * @param options - An object with options.
 *
 * @returns The day of month
 *
 * @example
 * // Which day of the month is 29 February 2012?
 * const result = getDate(new Date(2012, 1, 29))
 * //=> 29
 */
function getDate(date, options) {
  return (0, _index.toDate)(date, options?.in).getDate();
}


/***/ }),

/***/ 881:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.intlFormat = intlFormat;
var _index = __webpack_require__(4446);

/**
 * The locale string (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).
 * @deprecated
 *
 * [TODO] Remove in v4
 */

/**
 * The format options (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options)
 */

/**
 * The locale options.
 */

/**
 * @name intlFormat
 * @category Common Helpers
 * @summary Format the date with Intl.DateTimeFormat (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat).
 *
 * @description
 * Return the formatted date string in the given format.
 * The method uses [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) inside.
 * formatOptions are the same as [`Intl.DateTimeFormat` options](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options)
 *
 * > ⚠️ Please note that before Node version 13.0.0, only the locale data for en-US is available by default.
 *
 * @param date - The date to format
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 4 October 2019 in middle-endian format:
 * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456))
 * //=> 10/4/2019
 */

/**
 * @param date - The date to format
 * @param localeOptions - An object with locale
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 4 October 2019 in Korean.
 * // Convert the date with locale's options.
 * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456), {
 *   locale: 'ko-KR',
 * })
 * //=> 2019. 10. 4.
 */

/**
 * @param date - The date to format
 * @param formatOptions - The format options
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 4 October 2019.
 * // Convert the date with format's options.
 * const result = intlFormat.default(new Date(2019, 9, 4, 12, 30, 13, 456), {
 *   year: 'numeric',
 *   month: 'numeric',
 *   day: 'numeric',
 *   hour: 'numeric',
 * })
 * //=> 10/4/2019, 12 PM
 */

/**
 * @param date - The date to format
 * @param formatOptions - The format options
 * @param localeOptions - An object with locale
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 4 October 2019 in German.
 * // Convert the date with format's options and locale's options.
 * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456), {
 *   weekday: 'long',
 *   year: 'numeric',
 *   month: 'long',
 *   day: 'numeric',
 * }, {
 *   locale: 'de-DE',
 * })
 * //=> Freitag, 4. Oktober 2019
 */

function intlFormat(date, formatOrLocale, localeOptions) {
  let formatOptions;

  if (isFormatOptions(formatOrLocale)) {
    formatOptions = formatOrLocale;
  } else {
    localeOptions = formatOrLocale;
  }

  return new Intl.DateTimeFormat(localeOptions?.locale, formatOptions).format(
    (0, _index.toDate)(date),
  );
}

function isFormatOptions(opts) {
  return opts !== undefined && !("locale" in opts);
}


/***/ }),

/***/ 917:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfISOWeekYear = lastDayOfISOWeekYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(9957);
var _index3 = __webpack_require__(6107);

/**
 * The {@link lastDayOfISOWeekYear} function options.
 */

/**
 * @name lastDayOfISOWeekYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Return the last day of an ISO week-numbering year for the given date.
 *
 * @description
 * Return the last day of an ISO week-numbering year,
 * which always starts 3 days before the year's first Thursday.
 * The result will be in the local timezone.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of an ISO week-numbering year
 *
 * @example
 * // The last day of an ISO week-numbering year for 2 July 2005:
 * const result = lastDayOfISOWeekYear(new Date(2005, 6, 2))
 * //=> Sun Jan 01 2006 00:00:00
 */
function lastDayOfISOWeekYear(date, options) {
  const year = (0, _index2.getISOWeekYear)(date, options);
  const fourthOfJanuary = (0, _index.constructFrom)(options?.in || date, 0);
  fourthOfJanuary.setFullYear(year + 1, 0, 4);
  fourthOfJanuary.setHours(0, 0, 0, 0);

  const date_ = (0, _index3.startOfISOWeek)(fourthOfJanuary, options);
  date_.setDate(date_.getDate() - 1);
  return date_;
}


/***/ }),

/***/ 920:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isLastDayOfMonth = isLastDayOfMonth;
var _index = __webpack_require__(1883);
var _index2 = __webpack_require__(1291);
var _index3 = __webpack_require__(4446);

/**
 * @name isLastDayOfMonth
 * @category Month Helpers
 * @summary Is the given date the last day of a month?
 *
 * @description
 * Is the given date the last day of a month?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is the last day of a month
 *
 * @example
 * // Is 28 February 2014 the last day of a month?
 * const result = isLastDayOfMonth(new Date(2014, 1, 28))
 * //=> true
 */
function isLastDayOfMonth(date, options) {
  const _date = (0, _index3.toDate)(date, options?.in);
  return (
    +(0, _index.endOfDay)(_date, options) ===
    +(0, _index2.endOfMonth)(_date, options)
  );
}


/***/ }),

/***/ 970:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getWeekOfMonth = getWeekOfMonth;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(819);
var _index3 = __webpack_require__(1591);
var _index4 = __webpack_require__(7710);
var _index5 = __webpack_require__(4446);

/**
 * The {@link getWeekOfMonth} function options.
 */

/**
 * @name getWeekOfMonth
 * @category Week Helpers
 * @summary Get the week of the month of the given date.
 *
 * @description
 * Get the week of the month of the given date.
 *
 * @param date - The given date
 * @param options - An object with options.
 *
 * @returns The week of month
 *
 * @example
 * // Which week of the month is 9 November 2017?
 * const result = getWeekOfMonth(new Date(2017, 10, 9))
 * //=> 2
 */
function getWeekOfMonth(date, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const currentDayOfMonth = (0, _index2.getDate)(
    (0, _index5.toDate)(date, options?.in),
  );
  if (isNaN(currentDayOfMonth)) return NaN;

  const startWeekDay = (0, _index3.getDay)(
    (0, _index4.startOfMonth)(date, options),
  );

  let lastDayOfFirstWeek = weekStartsOn - startWeekDay;
  if (lastDayOfFirstWeek <= 0) lastDayOfFirstWeek += 7;

  const remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek;
  return Math.ceil(remainingDaysAfterFirstWeek / 7) + 1;
}


/***/ }),

/***/ 977:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatDistanceToNowStrict = formatDistanceToNowStrict;
var _index = __webpack_require__(2700);

var _index2 = __webpack_require__(5206);

/**
 * The {@link formatDistanceToNowStrict} function options.
 */

/**
 * @name formatDistanceToNowStrict
 * @category Common Helpers
 * @summary Return the distance between the given date and now in words.
 * @pure false
 *
 * @description
 * Return the distance between the given dates in words, using strict units.
 * This is like `formatDistance`, but does not use helpers like 'almost', 'over',
 * 'less than' and the like.
 *
 * | Distance between dates | Result              |
 * |------------------------|---------------------|
 * | 0 ... 59 secs          | [0..59] seconds     |
 * | 1 ... 59 mins          | [1..59] minutes     |
 * | 1 ... 23 hrs           | [1..23] hours       |
 * | 1 ... 29 days          | [1..29] days        |
 * | 1 ... 11 months        | [1..11] months      |
 * | 1 ... N years          | [1..N]  years       |
 *
 * @param date - The given date
 * @param options - An object with options.
 *
 * @returns The distance in words
 *
 * @throws `date` must not be Invalid Date
 * @throws `options.locale` must contain `formatDistance` property
 *
 * @example
 * // If today is 1 January 2015, what is the distance to 2 July 2014?
 * const result = formatDistanceToNowStrict(
 *   new Date(2014, 6, 2)
 * )
 * //=> '6 months'
 *
 * @example
 * // If now is 1 January 2015 00:00:00,
 * // what is the distance to 1 January 2015 00:00:15, including seconds?
 * const result = formatDistanceToNowStrict(
 *   new Date(2015, 0, 1, 0, 0, 15)
 * )
 * //=> '15 seconds'
 *
 * @example
 * // If today is 1 January 2015,
 * // what is the distance to 1 January 2016, with a suffix?
 * const result = formatDistanceToNowStrict(
 *   new Date(2016, 0, 1),
 *   {addSuffix: true}
 * )
 * //=> 'in 1 year'
 *
 * @example
 * // If today is 28 January 2015,
 * // what is the distance to 1 January 2015, in months, rounded up??
 * const result = formatDistanceToNowStrict(new Date(2015, 0, 1), {
 *   unit: 'month',
 *   roundingMethod: 'ceil'
 * })
 * //=> '1 month'
 *
 * @example
 * // If today is 1 January 2015,
 * // what is the distance to 1 January 2016 in Esperanto?
 * const eoLocale = require('date-fns/locale/eo')
 * const result = formatDistanceToNowStrict(
 *   new Date(2016, 0, 1),
 *   {locale: eoLocale}
 * )
 * //=> '1 jaro'
 */
function formatDistanceToNowStrict(date, options) {
  return (0, _index2.formatDistanceStrict)(
    date,
    (0, _index.constructNow)(date),
    options,
  );
}


/***/ }),

/***/ 990:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInHours = differenceInHours;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(8256);
var _index3 = __webpack_require__(8052);

/**
 * The {@link differenceInHours} function options.
 */

/**
 * @name differenceInHours
 * @category Hour Helpers
 * @summary Get the number of hours between the given dates.
 *
 * @description
 * Get the number of hours between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options.
 *
 * @returns The number of hours
 *
 * @example
 * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?
 * const result = differenceInHours(
 *   new Date(2014, 6, 2, 19, 0),
 *   new Date(2014, 6, 2, 6, 50)
 * )
 * //=> 12
 */
function differenceInHours(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index2.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  const diff = (+laterDate_ - +earlierDate_) / _index3.millisecondsInHour;
  return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);
}


/***/ }),

/***/ 1113:
/***/ ((module) => {

"use strict";


/* istanbul ignore next  */
function styleTagTransform(css, styleElement) {
  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = css;
  } else {
    while (styleElement.firstChild) {
      styleElement.removeChild(styleElement.firstChild);
    }
    styleElement.appendChild(document.createTextNode(css));
  }
}
module.exports = styleTagTransform;

/***/ }),

/***/ 1130:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subHours = subHours;
var _index = __webpack_require__(9463);

/**
 * The {@link subHours} function options.
 */

/**
 * @name subHours
 * @category Hour Helpers
 * @summary Subtract the specified number of hours from the given date.
 *
 * @description
 * Subtract the specified number of hours from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of hours to be subtracted.
 * @param options - The options
 *
 * @returns The new date with the hours subtracted
 *
 * @example
 * // Subtract 2 hours from 11 July 2014 01:00:00:
 * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)
 * //=> Thu Jul 10 2014 23:00:00
 */
function subHours(date, amount, options) {
  return (0, _index.addHours)(date, -amount, options);
}


/***/ }),

/***/ 1133:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setMilliseconds = setMilliseconds;
var _index = __webpack_require__(4446);

/**
 * The {@link setMilliseconds} function options.
 */

/**
 * @name setMilliseconds
 * @category Millisecond Helpers
 * @summary Set the milliseconds to the given date.
 *
 * @description
 * Set the milliseconds to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param milliseconds - The milliseconds of the new date
 * @param options - The options
 *
 * @returns The new date with the milliseconds set
 *
 * @example
 * // Set 300 milliseconds to 1 September 2014 11:30:40.500:
 * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)
 * //=> Mon Sep 01 2014 11:30:40.300
 */
function setMilliseconds(date, milliseconds, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setMilliseconds(milliseconds);
  return _date;
}


/***/ }),

/***/ 1149:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addQuarters = addQuarters;
var _index = __webpack_require__(6379);

/**
 * The {@link addQuarters} function options.
 */

/**
 * @name addQuarters
 * @category Quarter Helpers
 * @summary Add the specified number of year quarters to the given date.
 *
 * @description
 * Add the specified number of year quarters to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of quarters to be added.
 * @param options - An object with options
 *
 * @returns The new date with the quarters added
 *
 * @example
 * // Add 1 quarter to 1 September 2014:
 * const result = addQuarters(new Date(2014, 8, 1), 1)
 * //=; Mon Dec 01 2014 00:00:00
 */
function addQuarters(date, amount, options) {
  return (0, _index.addMonths)(date, amount * 3, options);
}


/***/ }),

/***/ 1152:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfISOWeekYear = startOfISOWeekYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(9957);
var _index3 = __webpack_require__(6107);

/**
 * The {@link startOfISOWeekYear} function options.
 */

/**
 * @name startOfISOWeekYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Return the start of an ISO week-numbering year for the given date.
 *
 * @description
 * Return the start of an ISO week-numbering year,
 * which always starts 3 days before the year's first Thursday.
 * The result will be in the local timezone.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of an ISO week-numbering year
 *
 * @example
 * // The start of an ISO week-numbering year for 2 July 2005:
 * const result = startOfISOWeekYear(new Date(2005, 6, 2))
 * //=> Mon Jan 03 2005 00:00:00
 */
function startOfISOWeekYear(date, options) {
  const year = (0, _index2.getISOWeekYear)(date, options);
  const fourthOfJanuary = (0, _index.constructFrom)(options?.in || date, 0);
  fourthOfJanuary.setFullYear(year, 0, 4);
  fourthOfJanuary.setHours(0, 0, 0, 0);
  return (0, _index3.startOfISOWeek)(fourthOfJanuary);
}


/***/ }),

/***/ 1201:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setQuarter = setQuarter;
var _index = __webpack_require__(7035);
var _index2 = __webpack_require__(4446);

/**
 * The {@link setQuarter} function options.
 */

/**
 * @name setQuarter
 * @category Quarter Helpers
 * @summary Set the year quarter to the given date.
 *
 * @description
 * Set the year quarter to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param quarter - The quarter of the new date
 * @param options - The options
 *
 * @returns The new date with the quarter set
 *
 * @example
 * // Set the 2nd quarter to 2 July 2014:
 * const result = setQuarter(new Date(2014, 6, 2), 2)
 * //=> Wed Apr 02 2014 00:00:00
 */
function setQuarter(date, quarter, options) {
  const date_ = (0, _index2.toDate)(date, options?.in);
  const oldQuarter = Math.trunc(date_.getMonth() / 3) + 1;
  const diff = quarter - oldQuarter;
  return (0, _index.setMonth)(date_, date_.getMonth() + diff * 3);
}


/***/ }),

/***/ 1249:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.match = void 0;

var _index = __webpack_require__(9038);
var _index2 = __webpack_require__(7520);

const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
const parseOrdinalNumberPattern = /\d+/i;

const matchEraPatterns = {
  narrow: /^(b|a)/i,
  abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
  wide: /^(before christ|before common era|anno domini|common era)/i,
};
const parseEraPatterns = {
  any: [/^b/i, /^(a|c)/i],
};

const matchQuarterPatterns = {
  narrow: /^[1234]/i,
  abbreviated: /^q[1234]/i,
  wide: /^[1234](th|st|nd|rd)? quarter/i,
};
const parseQuarterPatterns = {
  any: [/1/i, /2/i, /3/i, /4/i],
};

const matchMonthPatterns = {
  narrow: /^[jfmasond]/i,
  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,
};
const parseMonthPatterns = {
  narrow: [
    /^j/i,
    /^f/i,
    /^m/i,
    /^a/i,
    /^m/i,
    /^j/i,
    /^j/i,
    /^a/i,
    /^s/i,
    /^o/i,
    /^n/i,
    /^d/i,
  ],

  any: [
    /^ja/i,
    /^f/i,
    /^mar/i,
    /^ap/i,
    /^may/i,
    /^jun/i,
    /^jul/i,
    /^au/i,
    /^s/i,
    /^o/i,
    /^n/i,
    /^d/i,
  ],
};

const matchDayPatterns = {
  narrow: /^[smtwf]/i,
  short: /^(su|mo|tu|we|th|fr|sa)/i,
  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,
};
const parseDayPatterns = {
  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],
};

const matchDayPeriodPatterns = {
  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
  any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,
};
const parseDayPeriodPatterns = {
  any: {
    am: /^a/i,
    pm: /^p/i,
    midnight: /^mi/i,
    noon: /^no/i,
    morning: /morning/i,
    afternoon: /afternoon/i,
    evening: /evening/i,
    night: /night/i,
  },
};

const match = (exports.match = {
  ordinalNumber: (0, _index2.buildMatchPatternFn)({
    matchPattern: matchOrdinalNumberPattern,
    parsePattern: parseOrdinalNumberPattern,
    valueCallback: (value) => parseInt(value, 10),
  }),

  era: (0, _index.buildMatchFn)({
    matchPatterns: matchEraPatterns,
    defaultMatchWidth: "wide",
    parsePatterns: parseEraPatterns,
    defaultParseWidth: "any",
  }),

  quarter: (0, _index.buildMatchFn)({
    matchPatterns: matchQuarterPatterns,
    defaultMatchWidth: "wide",
    parsePatterns: parseQuarterPatterns,
    defaultParseWidth: "any",
    valueCallback: (index) => index + 1,
  }),

  month: (0, _index.buildMatchFn)({
    matchPatterns: matchMonthPatterns,
    defaultMatchWidth: "wide",
    parsePatterns: parseMonthPatterns,
    defaultParseWidth: "any",
  }),

  day: (0, _index.buildMatchFn)({
    matchPatterns: matchDayPatterns,
    defaultMatchWidth: "wide",
    parsePatterns: parseDayPatterns,
    defaultParseWidth: "any",
  }),

  dayPeriod: (0, _index.buildMatchFn)({
    matchPatterns: matchDayPeriodPatterns,
    defaultMatchWidth: "any",
    parsePatterns: parseDayPeriodPatterns,
    defaultParseWidth: "any",
  }),
});


/***/ }),

/***/ 1291:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfMonth = endOfMonth;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfMonth} function options.
 */

/**
 * @name endOfMonth
 * @category Month Helpers
 * @summary Return the end of a month for the given date.
 *
 * @description
 * Return the end of a month for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a month
 *
 * @example
 * // The end of a month for 2 September 2014 11:55:00:
 * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 30 2014 23:59:59.999
 */
function endOfMonth(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const month = _date.getMonth();
  _date.setFullYear(_date.getFullYear(), month + 1, 0);
  _date.setHours(23, 59, 59, 999);
  return _date;
}


/***/ }),

/***/ 1311:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setDate = setDate;
var _index = __webpack_require__(4446);

/**
 * The {@link setDate} function options.
 */

/**
 * @name setDate
 * @category Day Helpers
 * @summary Set the day of the month to the given date.
 *
 * @description
 * Set the day of the month to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param dayOfMonth - The day of the month of the new date
 * @param options - The options
 *
 * @returns The new date with the day of the month set
 *
 * @example
 * // Set the 30th day of the month to 1 September 2014:
 * const result = setDate(new Date(2014, 8, 1), 30)
 * //=> Tue Sep 30 2014 00:00:00
 */
function setDate(date, dayOfMonth, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setDate(dayOfMonth);
  return _date;
}


/***/ }),

/***/ 1315:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setWeek = setWeek;
var _index = __webpack_require__(9639);
var _index2 = __webpack_require__(4446);

/**
 * The {@link setWeek} function options.
 */

/**
 * @name setWeek
 * @category Week Helpers
 * @summary Set the local week to the given date.
 *
 * @description
 * Set the local week to the given date, saving the weekday number.
 * The exact calculation depends on the values of
 * `options.weekStartsOn` (which is the index of the first day of the week)
 * and `options.firstWeekContainsDate` (which is the day of January, which is always in
 * the first week of the week-numbering year)
 *
 * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param week - The week of the new date
 * @param options - An object with options
 *
 * @returns The new date with the local week set
 *
 * @example
 * // Set the 1st week to 2 January 2005 with default options:
 * const result = setWeek(new Date(2005, 0, 2), 1)
 * //=> Sun Dec 26 2004 00:00:00
 *
 * @example
 * // Set the 1st week to 2 January 2005,
 * // if Monday is the first day of the week,
 * // and the first week of the year always contains 4 January:
 * const result = setWeek(new Date(2005, 0, 2), 1, {
 *   weekStartsOn: 1,
 *   firstWeekContainsDate: 4
 * })
 * //=> Sun Jan 4 2004 00:00:00
 */
function setWeek(date, week, options) {
  const date_ = (0, _index2.toDate)(date, options?.in);
  const diff = (0, _index.getWeek)(date_, options) - week;
  date_.setDate(date_.getDate() - diff * 7);
  return (0, _index2.toDate)(date_, options?.in);
}


/***/ }),

/***/ 1331:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.getRoundingMethod = getRoundingMethod;

function getRoundingMethod(method) {
  return (number) => {
    const round = method ? Math[method] : Math.trunc;
    const result = round(number);
    // Prevent negative zero
    return result === 0 ? 0 : result;
  };
}


/***/ }),

/***/ 1343:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.enUS = void 0;
var _index = __webpack_require__(2914);
var _index2 = __webpack_require__(7181);
var _index3 = __webpack_require__(8483);
var _index4 = __webpack_require__(2371);
var _index5 = __webpack_require__(1249);

/**
 * @category Locales
 * @summary English locale (United States).
 * @language English
 * @iso-639-2 eng
 * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)
 * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)
 */
const enUS = (exports.enUS = {
  code: "en-US",
  formatDistance: _index.formatDistance,
  formatLong: _index2.formatLong,
  formatRelative: _index3.formatRelative,
  localize: _index4.localize,
  match: _index5.match,
  options: {
    weekStartsOn: 0 /* Sunday */,
    firstWeekContainsDate: 1,
  },
});


/***/ }),

/***/ 1354:
/***/ ((module) => {

"use strict";


module.exports = function (item) {
  var content = item[1];
  var cssMapping = item[3];
  if (!cssMapping) {
    return content;
  }
  if (typeof btoa === "function") {
    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
    var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
    var sourceMapping = "/*# ".concat(data, " */");
    return [content].concat([sourceMapping]).join("\n");
  }
  return [content].join("\n");
};

/***/ }),

/***/ 1440:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addYears = addYears;
var _index = __webpack_require__(6379);

/**
 * The {@link addYears} function options.
 */

/**
 * @name addYears
 * @category Year Helpers
 * @summary Add the specified number of years to the given date.
 *
 * @description
 * Add the specified number of years to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type.
 *
 * @param date - The date to be changed
 * @param amount - The amount of years to be added.
 * @param options - The options
 *
 * @returns The new date with the years added
 *
 * @example
 * // Add 5 years to 1 September 2014:
 * const result = addYears(new Date(2014, 8, 1), 5)
 * //=> Sun Sep 01 2019 00:00:00
 */
function addYears(date, amount, options) {
  return (0, _index.addMonths)(date, amount * 12, options);
}


/***/ }),

/***/ 1441:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachWeekendOfYear = eachWeekendOfYear;
var _index = __webpack_require__(9305);
var _index2 = __webpack_require__(7624);
var _index3 = __webpack_require__(775);

/**
 * The {@link eachWeekendOfYear} function options.
 */

/**
 * @name eachWeekendOfYear
 * @category Year Helpers
 * @summary List all the Saturdays and Sundays in the year.
 *
 * @description
 * Get all the Saturdays and Sundays in the year.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The given year
 * @param options - An object with options
 *
 * @returns An array containing all the Saturdays and Sundays
 *
 * @example
 * // Lists all Saturdays and Sundays in the year
 * const result = eachWeekendOfYear(new Date(2020, 1, 1))
 * //=> [
 * //   Sat Jan 03 2020 00:00:00,
 * //   Sun Jan 04 2020 00:00:00,
 * //   ...
 * //   Sun Dec 27 2020 00:00:00
 * // ]
 * ]
 */
function eachWeekendOfYear(date, options) {
  const start = (0, _index3.startOfYear)(date, options);
  const end = (0, _index2.endOfYear)(date, options);
  return (0, _index.eachWeekendOfInterval)({ start, end }, options);
}


/***/ }),

/***/ 1462:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getSeconds = getSeconds;
var _index = __webpack_require__(4446);

/**
 * @name getSeconds
 * @category Second Helpers
 * @summary Get the seconds of the given date.
 *
 * @description
 * Get the seconds of the given date.
 *
 * @param date - The given date
 *
 * @returns The seconds
 *
 * @example
 * // Get the seconds of 29 February 2012 11:45:05.123:
 * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))
 * //=> 5
 */
function getSeconds(date) {
  return (0, _index.toDate)(date).getSeconds();
}


/***/ }),

/***/ 1464:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisISOWeek = isThisISOWeek;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(5626);

/**
 * The {@link isThisISOWeek} function options.
 */

/**
 * @name isThisISOWeek
 * @category ISO Week Helpers
 * @summary Is the given date in the same ISO week as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same ISO week as the current date?
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is in this ISO week
 *
 * @example
 * // If today is 25 September 2014, is 22 September 2014 in this ISO week?
 * const result = isThisISOWeek(new Date(2014, 8, 22))
 * //=> true
 */
function isThisISOWeek(date, options) {
  return (0, _index3.isSameISOWeek)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index2.constructNow)(options?.in || date),
  );
}


/***/ }),

/***/ 1497:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.YearParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns
// | Year     |     y | yy |   yyy |  yyyy | yyyyy |
// |----------|-------|----|-------|-------|-------|
// | AD 1     |     1 | 01 |   001 |  0001 | 00001 |
// | AD 12    |    12 | 12 |   012 |  0012 | 00012 |
// | AD 123   |   123 | 23 |   123 |  0123 | 00123 |
// | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |
// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
class YearParser extends _Parser.Parser {
  priority = 130;
  incompatibleTokens = ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"];

  parse(dateString, token, match) {
    const valueCallback = (year) => ({
      year,
      isTwoDigitYear: token === "yy",
    });

    switch (token) {
      case "y":
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(4, dateString),
          valueCallback,
        );
      case "yo":
        return (0, _utils.mapValue)(
          match.ordinalNumber(dateString, {
            unit: "year",
          }),
          valueCallback,
        );
      default:
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(token.length, dateString),
          valueCallback,
        );
    }
  }

  validate(_date, value) {
    return value.isTwoDigitYear || value.year > 0;
  }

  set(date, flags, value) {
    const currentYear = date.getFullYear();

    if (value.isTwoDigitYear) {
      const normalizedTwoDigitYear = (0, _utils.normalizeTwoDigitYear)(
        value.year,
        currentYear,
      );
      date.setFullYear(normalizedTwoDigitYear, 0, 1);
      date.setHours(0, 0, 0, 0);
      return date;
    }

    const year =
      !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year;
    date.setFullYear(year, 0, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }
}
exports.YearParser = YearParser;


/***/ }),

/***/ 1574:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfTomorrow = endOfTomorrow;
var _index = __webpack_require__(2700);

/**
 * The {@link endOfTomorrow} function options.
 */

/**
 * @name endOfTomorrow
 * @category Day Helpers
 * @summary Return the end of tomorrow.
 * @pure false
 *
 * @description
 * Return the end of tomorrow.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param options - The options
 * @returns The end of tomorrow
 *
 * @example
 * // If today is 6 October 2014:
 * const result = endOfTomorrow()
 * //=> Tue Oct 7 2014 23:59:59.999
 */
function endOfTomorrow(options) {
  const now = (0, _index.constructNow)(options?.in);
  const year = now.getFullYear();
  const month = now.getMonth();
  const day = now.getDate();

  const date = (0, _index.constructNow)(options?.in);
  date.setFullYear(year, month, day + 1);
  date.setHours(23, 59, 59, 999);
  return options?.in ? options.in(date) : date;
}


/***/ }),

/***/ 1587:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfWeek = endOfWeek;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(4446);

/**
 * The {@link endOfWeek} function options.
 */

/**
 * @name endOfWeek
 * @category Week Helpers
 * @summary Return the end of a week for the given date.
 *
 * @description
 * Return the end of a week for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a week
 *
 * @example
 * // The end of a week for 2 September 2014 11:55:00:
 * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Sat Sep 06 2014 23:59:59.999
 *
 * @example
 * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:
 * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })
 * //=> Sun Sep 07 2014 23:59:59.999
 */
function endOfWeek(date, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const _date = (0, _index2.toDate)(date, options?.in);
  const day = _date.getDay();
  const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);

  _date.setDate(_date.getDate() + diff);
  _date.setHours(23, 59, 59, 999);
  return _date;
}


/***/ }),

/***/ 1591:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDay = getDay;
var _index = __webpack_require__(4446);

/**
 * The {@link getDay} function options.
 */

/**
 * @name getDay
 * @category Weekday Helpers
 * @summary Get the day of the week of the given date.
 *
 * @description
 * Get the day of the week of the given date.
 *
 * @param date - The given date
 * @param options - The options
 *
 * @returns The day of week, 0 represents Sunday
 *
 * @example
 * // Which day of the week is 29 February 2012?
 * const result = getDay(new Date(2012, 1, 29))
 * //=> 3
 */
function getDay(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay();
}


/***/ }),

/***/ 1594:
/***/ ((module) => {

"use strict";
module.exports = React;

/***/ }),

/***/ 1647:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.millisecondsToMinutes = millisecondsToMinutes;
var _index = __webpack_require__(8052);

/**
 * @name millisecondsToMinutes
 * @category Conversion Helpers
 * @summary Convert milliseconds to minutes.
 *
 * @description
 * Convert a number of milliseconds to a full number of minutes.
 *
 * @param milliseconds - The number of milliseconds to be converted
 *
 * @returns The number of milliseconds converted in minutes
 *
 * @example
 * // Convert 60000 milliseconds to minutes:
 * const result = millisecondsToMinutes(60000)
 * //=> 1
 *
 * @example
 * // It uses floor rounding:
 * const result = millisecondsToMinutes(119999)
 * //=> 1
 */
function millisecondsToMinutes(milliseconds) {
  const minutes = milliseconds / _index.millisecondsInMinute;
  return Math.trunc(minutes);
}


/***/ }),

/***/ 1675:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subMilliseconds = subMilliseconds;
var _index = __webpack_require__(4280);

/**
 * The {@link subMilliseconds} function options.
 */

/**
 * Subtract the specified number of milliseconds from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of milliseconds to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the milliseconds subtracted
 */
function subMilliseconds(date, amount, options) {
  return (0, _index.addMilliseconds)(date, -amount, options);
}


/***/ }),

/***/ 1743:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousTuesday = previousTuesday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousTuesday} function options.
 */

/**
 * @name previousTuesday
 * @category Weekday Helpers
 * @summary When is the previous Tuesday?
 *
 * @description
 * When is the previous Tuesday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The previous Tuesday
 *
 * @example
 * // When is the previous Tuesday before Jun, 18, 2021?
 * const result = previousTuesday(new Date(2021, 5, 18))
 * //=> Tue June 15 2021 00:00:00
 */
function previousTuesday(date, options) {
  return (0, _index.previousDay)(date, 2, options);
}


/***/ }),

/***/ 1776:
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _default = exports["default"] = {
  dateRangeWrapper: 'rdrDateRangeWrapper',
  calendarWrapper: 'rdrCalendarWrapper',
  dateDisplay: 'rdrDateDisplay',
  dateDisplayItem: 'rdrDateDisplayItem',
  dateDisplayItemActive: 'rdrDateDisplayItemActive',
  monthAndYearWrapper: 'rdrMonthAndYearWrapper',
  monthAndYearPickers: 'rdrMonthAndYearPickers',
  nextPrevButton: 'rdrNextPrevButton',
  month: 'rdrMonth',
  weekDays: 'rdrWeekDays',
  weekDay: 'rdrWeekDay',
  days: 'rdrDays',
  day: 'rdrDay',
  dayNumber: 'rdrDayNumber',
  dayPassive: 'rdrDayPassive',
  dayToday: 'rdrDayToday',
  dayStartOfWeek: 'rdrDayStartOfWeek',
  dayEndOfWeek: 'rdrDayEndOfWeek',
  daySelected: 'rdrDaySelected',
  dayDisabled: 'rdrDayDisabled',
  dayStartOfMonth: 'rdrDayStartOfMonth',
  dayEndOfMonth: 'rdrDayEndOfMonth',
  dayWeekend: 'rdrDayWeekend',
  dayStartPreview: 'rdrDayStartPreview',
  dayInPreview: 'rdrDayInPreview',
  dayEndPreview: 'rdrDayEndPreview',
  dayHovered: 'rdrDayHovered',
  dayActive: 'rdrDayActive',
  inRange: 'rdrInRange',
  endEdge: 'rdrEndEdge',
  startEdge: 'rdrStartEdge',
  prevButton: 'rdrPprevButton',
  nextButton: 'rdrNextButton',
  selected: 'rdrSelected',
  months: 'rdrMonths',
  monthPicker: 'rdrMonthPicker',
  yearPicker: 'rdrYearPicker',
  dateDisplayWrapper: 'rdrDateDisplayWrapper',
  definedRangesWrapper: 'rdrDefinedRangesWrapper',
  staticRanges: 'rdrStaticRanges',
  staticRange: 'rdrStaticRange',
  inputRanges: 'rdrInputRanges',
  inputRange: 'rdrInputRange',
  inputRangeInput: 'rdrInputRangeInput',
  dateRangePickerWrapper: 'rdrDateRangePickerWrapper',
  staticRangeLabel: 'rdrStaticRangeLabel',
  staticRangeSelected: 'rdrStaticRangeSelected',
  monthName: 'rdrMonthName',
  infiniteMonths: 'rdrInfiniteMonths',
  monthsVertical: 'rdrMonthsVertical',
  monthsHorizontal: 'rdrMonthsHorizontal'
};

/***/ }),

/***/ 1804:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfMinute = startOfMinute;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfMinute} function options.
 */

/**
 * @name startOfMinute
 * @category Minute Helpers
 * @summary Return the start of a minute for the given date.
 *
 * @description
 * Return the start of a minute for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of a minute
 *
 * @example
 * // The start of a minute for 1 December 2014 22:15:45.400:
 * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))
 * //=> Mon Dec 01 2014 22:15:00
 */
function startOfMinute(date, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  date_.setSeconds(0, 0);
  return date_;
}


/***/ }),

/***/ 1811:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
var safeIsNaN = Number.isNaN ||
    function ponyfill(value) {
        return typeof value === 'number' && value !== value;
    };
function isEqual(first, second) {
    if (first === second) {
        return true;
    }
    if (safeIsNaN(first) && safeIsNaN(second)) {
        return true;
    }
    return false;
}
function areInputsEqual(newInputs, lastInputs) {
    if (newInputs.length !== lastInputs.length) {
        return false;
    }
    for (var i = 0; i < newInputs.length; i++) {
        if (!isEqual(newInputs[i], lastInputs[i])) {
            return false;
        }
    }
    return true;
}

function memoizeOne(resultFn, isEqual) {
    if (isEqual === void 0) { isEqual = areInputsEqual; }
    var lastThis;
    var lastArgs = [];
    var lastResult;
    var calledOnce = false;
    function memoized() {
        var newArgs = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            newArgs[_i] = arguments[_i];
        }
        if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {
            return lastResult;
        }
        lastResult = resultFn.apply(this, newArgs);
        calledOnce = true;
        lastThis = this;
        lastArgs = newArgs;
        return lastResult;
    }
    return memoized;
}

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (memoizeOne);


/***/ }),

/***/ 1821:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _DateRange = _interopRequireDefault(__webpack_require__(9651));
var _DefinedRange = _interopRequireDefault(__webpack_require__(252));
var _utils = __webpack_require__(2301);
var _classnames = _interopRequireDefault(__webpack_require__(6942));
var _styles = _interopRequireDefault(__webpack_require__(1776));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
class DateRangePicker extends _react.Component {
  constructor(props) {
    super(props);
    this.state = {
      focusedRange: [(0, _utils.findNextRangeIndex)(props.ranges), 0]
    };
    this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);
  }
  render() {
    const {
      focusedRange
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(this.styles.dateRangePickerWrapper, this.props.className)
    }, /*#__PURE__*/_react.default.createElement(_DefinedRange.default, _extends({
      focusedRange: focusedRange,
      onPreviewChange: value => this.dateRange.updatePreview(value ? this.dateRange.calcNewSelection(value, typeof value === 'string') : null)
    }, this.props, {
      range: this.props.ranges[focusedRange[0]],
      className: undefined
    })), /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({
      onRangeFocusChange: focusedRange => this.setState({
        focusedRange
      }),
      focusedRange: focusedRange
    }, this.props, {
      ref: t => this.dateRange = t,
      className: undefined
    })));
  }
}
DateRangePicker.defaultProps = {};
DateRangePicker.propTypes = {
  ..._DateRange.default.propTypes,
  ..._DefinedRange.default.propTypes,
  className: _propTypes.default.string
};
var _default = exports["default"] = DateRangePicker;

/***/ }),

/***/ 1869:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.Hour1to12Parser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class Hour1to12Parser extends _Parser.Parser {
  priority = 70;

  parse(dateString, token, match) {
    switch (token) {
      case "h":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.hour12h,
          dateString,
        );
      case "ho":
        return match.ordinalNumber(dateString, { unit: "hour" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 12;
  }

  set(date, _flags, value) {
    const isPM = date.getHours() >= 12;
    if (isPM && value < 12) {
      date.setHours(value + 12, 0, 0, 0);
    } else if (!isPM && value === 12) {
      date.setHours(0, 0, 0, 0);
    } else {
      date.setHours(value, 0, 0, 0);
    }
    return date;
  }

  incompatibleTokens = ["H", "K", "k", "t", "T"];
}
exports.Hour1to12Parser = Hour1to12Parser;


/***/ }),

/***/ 1883:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfDay = endOfDay;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfDay} function options.
 */

/**
 * @name endOfDay
 * @category Day Helpers
 * @summary Return the end of a day for the given date.
 *
 * @description
 * Return the end of a day for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a day
 *
 * @example
 * // The end of a day for 2 September 2014 11:55:00:
 * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 02 2014 23:59:59.999
 */
function endOfDay(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setHours(23, 59, 59, 999);
  return _date;
}


/***/ }),

/***/ 1982:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setMinutes = setMinutes;
var _index = __webpack_require__(4446);

/**
 * The {@link setMinutes} function options.
 */

/**
 * @name setMinutes
 * @category Minute Helpers
 * @summary Set the minutes to the given date.
 *
 * @description
 * Set the minutes to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, returned from the context function, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param minutes - The minutes of the new date
 * @param options - An object with options
 *
 * @returns The new date with the minutes set
 *
 * @example
 * // Set 45 minutes to 1 September 2014 11:30:40:
 * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)
 * //=> Mon Sep 01 2014 11:45:40
 */
function setMinutes(date, minutes, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  date_.setMinutes(minutes);
  return date_;
}


/***/ }),

/***/ 1992:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameYear = isSameYear;
var _index = __webpack_require__(8256);

/**
 * The {@link isSameYear} function options.
 */

/**
 * @name isSameYear
 * @category Year Helpers
 * @summary Are the given dates in the same year?
 *
 * @description
 * Are the given dates in the same year?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same year
 *
 * @example
 * // Are 2 September 2014 and 25 September 2014 in the same year?
 * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))
 * //=> true
 */
function isSameYear(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return laterDate_.getFullYear() === earlierDate_.getFullYear();
}


/***/ }),

/***/ 2056:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSaturday = isSaturday;
var _index = __webpack_require__(4446);

/**
 * The {@link isSaturday} function options.
 */

/**
 * @name isSaturday
 * @category Weekday Helpers
 * @summary Is the given date Saturday?
 *
 * @description
 * Is the given date Saturday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is Saturday
 *
 * @example
 * // Is 27 September 2014 Saturday?
 * const result = isSaturday(new Date(2014, 8, 27))
 * //=> true
 */
function isSaturday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 6;
}


/***/ }),

/***/ 2067:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.formatISODuration = formatISODuration;

/**
 * @name formatISODuration
 * @category Common Helpers
 * @summary Format a duration object according as ISO 8601 duration string
 *
 * @description
 * Format a duration object according to the ISO 8601 duration standard (https://www.digi.com/resources/documentation/digidocs//90001488-13/reference/r_iso_8601_duration_format.htm)
 *
 * @param duration - The duration to format
 *
 * @returns The ISO 8601 duration string
 *
 * @example
 * // Format the given duration as ISO 8601 string
 * const result = formatISODuration({
 *   years: 39,
 *   months: 2,
 *   days: 20,
 *   hours: 7,
 *   minutes: 5,
 *   seconds: 0
 * })
 * //=> 'P39Y2M20DT0H0M0S'
 */
function formatISODuration(duration) {
  const {
    years = 0,
    months = 0,
    days = 0,
    hours = 0,
    minutes = 0,
    seconds = 0,
  } = duration;

  return `P${years}Y${months}M${days}DT${hours}H${minutes}M${seconds}S`;
}


/***/ }),

/***/ 2110:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInBusinessDays = differenceInBusinessDays;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(7591);
var _index3 = __webpack_require__(5506);
var _index4 = __webpack_require__(9691);
var _index5 = __webpack_require__(7489);
var _index6 = __webpack_require__(3348);

/**
 * The {@link differenceInBusinessDays} function options.
 */

/**
 * @name differenceInBusinessDays
 * @category Day Helpers
 * @summary Get the number of business days between the given dates.
 *
 * @description
 * Get the number of business day periods between the given dates.
 * Business days being days that aren't in the weekend.
 * Like `differenceInCalendarDays`, the function removes the times from
 * the dates before calculating the difference.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of business days
 *
 * @example
 * // How many business days are between
 * // 10 January 2014 and 20 July 2014?
 * const result = differenceInBusinessDays(
 *   new Date(2014, 6, 20),
 *   new Date(2014, 0, 10)
 * )
 * //=> 136
 *
 * // How many business days are between
 * // 30 November 2021 and 1 November 2021?
 * const result = differenceInBusinessDays(
 *   new Date(2021, 10, 30),
 *   new Date(2021, 10, 1)
 * )
 * //=> 21
 *
 * // How many business days are between
 * // 1 November 2021 and 1 December 2021?
 * const result = differenceInBusinessDays(
 *   new Date(2021, 10, 1),
 *   new Date(2021, 11, 1)
 * )
 * //=> -22
 *
 * // How many business days are between
 * // 1 November 2021 and 1 November 2021 ?
 * const result = differenceInBusinessDays(
 *   new Date(2021, 10, 1),
 *   new Date(2021, 10, 1)
 * )
 * //=> 0
 */
function differenceInBusinessDays(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  if (!(0, _index5.isValid)(laterDate_) || !(0, _index5.isValid)(earlierDate_))
    return NaN;

  const diff = (0, _index3.differenceInCalendarDays)(laterDate_, earlierDate_);
  const sign = diff < 0 ? -1 : 1;
  const weeks = Math.trunc(diff / 7);

  let result = weeks * 5;
  let movingDate = (0, _index2.addDays)(earlierDate_, weeks * 7);

  // the loop below will run at most 6 times to account for the remaining days that don't makeup a full week
  while (!(0, _index4.isSameDay)(laterDate_, movingDate)) {
    // sign is used to account for both negative and positive differences
    result += (0, _index6.isWeekend)(movingDate, options) ? 0 : sign;
    movingDate = (0, _index2.addDays)(movingDate, sign);
  }

  // Prevent negative zero
  return result === 0 ? 0 : result;
}


/***/ }),

/***/ 2121:
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(1594), __webpack_require__(4848)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else // removed by dead control flow
{ var mod; }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _jsxRuntime) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports["default"] = void 0;
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
  function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
  function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
  function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
  function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
  function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
  function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
  function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
  function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
  var CLIENT_SIZE_KEYS = {
    x: 'clientWidth',
    y: 'clientHeight'
  };
  var CLIENT_START_KEYS = {
    x: 'clientTop',
    y: 'clientLeft'
  };
  var INNER_SIZE_KEYS = {
    x: 'innerWidth',
    y: 'innerHeight'
  };
  var OFFSET_SIZE_KEYS = {
    x: 'offsetWidth',
    y: 'offsetHeight'
  };
  var OFFSET_START_KEYS = {
    x: 'offsetLeft',
    y: 'offsetTop'
  };
  var OVERFLOW_KEYS = {
    x: 'overflowX',
    y: 'overflowY'
  };
  var SCROLL_SIZE_KEYS = {
    x: 'scrollWidth',
    y: 'scrollHeight'
  };
  var SCROLL_START_KEYS = {
    x: 'scrollLeft',
    y: 'scrollTop'
  };
  var SIZE_KEYS = {
    x: 'width',
    y: 'height'
  };
  var NOOP = function NOOP() {};

  // If a browser doesn't support the `options` argument to
  // add/removeEventListener, we need to check, otherwise we will
  // accidentally set `capture` with a truthy value.
  var PASSIVE = function () {
    if (typeof window === 'undefined') return false;
    var hasSupport = false;
    try {
      document.createElement('div').addEventListener('test', NOOP, {
        get passive() {
          hasSupport = true;
          return false;
        }
      });
    } catch (e) {
      // noop
    }
    return hasSupport;
  }() ? {
    passive: true
  } : false;
  var UNSTABLE_MESSAGE = 'ReactList failed to reach a stable state.';
  var MAX_SYNC_UPDATES = 40;
  var isEqualSubset = function isEqualSubset(a, b) {
    for (var key in b) if (a[key] !== b[key]) return false;
    return true;
  };
  var defaultScrollParentGetter = function defaultScrollParentGetter(component) {
    var axis = component.props.axis;
    var el = component.getEl();
    var overflowKey = OVERFLOW_KEYS[axis];
    while (el = el.parentElement) {
      switch (window.getComputedStyle(el)[overflowKey]) {
        case 'auto':
        case 'scroll':
        case 'overlay':
          return el;
      }
    }
    return window;
  };
  var defaultScrollParentViewportSizeGetter = function defaultScrollParentViewportSizeGetter(component) {
    var axis = component.props.axis;
    var scrollParent = component.scrollParent;
    return scrollParent === window ? window[INNER_SIZE_KEYS[axis]] : scrollParent[CLIENT_SIZE_KEYS[axis]];
  };
  var constrain = function constrain(props, state) {
    var length = props.length,
      minSize = props.minSize,
      type = props.type;
    var from = state.from,
      size = state.size,
      itemsPerRow = state.itemsPerRow;
    size = Math.max(size, minSize);
    var mod = size % itemsPerRow;
    if (mod) size += itemsPerRow - mod;
    if (size > length) size = length;
    from = type === 'simple' || !from ? 0 : Math.max(Math.min(from, length - size), 0);
    if (mod = from % itemsPerRow) {
      from -= mod;
      size += mod;
    }
    if (from === state.from && size === state.size) return state;
    return _objectSpread(_objectSpread({}, state), {}, {
      from: from,
      size: size
    });
  };
  var ReactList = _exports["default"] = /*#__PURE__*/function (_Component) {
    function ReactList(props) {
      var _this;
      _classCallCheck(this, ReactList);
      _this = _callSuper(this, ReactList, [props]);
      _this.state = constrain(props, {
        itemsPerRow: 1,
        from: props.initialIndex,
        size: 0
      });
      _this.cache = {};
      _this.cachedScrollPosition = null;
      _this.prevPrevState = {};
      _this.unstable = false;
      _this.updateCounter = 0;
      return _this;
    }
    _inherits(ReactList, _Component);
    return _createClass(ReactList, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        this.updateFrameAndClearCache = this.updateFrameAndClearCache.bind(this);
        window.addEventListener('resize', this.updateFrameAndClearCache);
        this.updateFrame(this.scrollTo.bind(this, this.props.initialIndex));
      }
    }, {
      key: "componentDidUpdate",
      value: function componentDidUpdate(prevProps) {
        var _this2 = this;
        // Viewport scroll is no longer useful if axis changes
        if (this.props.axis !== prevProps.axis) this.clearSizeCache();

        // If the list has reached an unstable state, prevent an infinite loop.
        if (this.unstable) return;
        if (++this.updateCounter > MAX_SYNC_UPDATES) {
          this.unstable = true;
          return console.error(UNSTABLE_MESSAGE);
        }
        if (!this.updateCounterTimeoutId) {
          this.updateCounterTimeoutId = setTimeout(function () {
            _this2.updateCounter = 0;
            delete _this2.updateCounterTimeoutId;
          }, 0);
        }
        this.updateFrame();
      }
    }, {
      key: "maybeSetState",
      value: function maybeSetState(b, cb) {
        if (isEqualSubset(this.state, b)) return cb();
        this.setState(b, cb);
      }
    }, {
      key: "componentWillUnmount",
      value: function componentWillUnmount() {
        window.removeEventListener('resize', this.updateFrameAndClearCache);
        this.scrollParent.removeEventListener('scroll', this.updateFrameAndClearCache, PASSIVE);
        this.scrollParent.removeEventListener('mousewheel', NOOP, PASSIVE);
      }
    }, {
      key: "getOffset",
      value: function getOffset(el) {
        var axis = this.props.axis;
        var offset = el[CLIENT_START_KEYS[axis]] || 0;
        var offsetKey = OFFSET_START_KEYS[axis];
        do offset += el[offsetKey] || 0; while (el = el.offsetParent);
        return offset;
      }
    }, {
      key: "getEl",
      value: function getEl() {
        return this.el || this.items;
      }
    }, {
      key: "getScrollPosition",
      value: function getScrollPosition() {
        // Cache scroll position as this causes a forced synchronous layout.
        if (typeof this.cachedScrollPosition === 'number') {
          return this.cachedScrollPosition;
        }
        var scrollParent = this.scrollParent;
        var axis = this.props.axis;
        var scrollKey = SCROLL_START_KEYS[axis];
        var actual = scrollParent === window ?
        // Firefox always returns document.body[scrollKey] as 0 and Chrome/Safari
        // always return document.documentElement[scrollKey] as 0, so take
        // whichever has a value.
        document.body[scrollKey] || document.documentElement[scrollKey] : scrollParent[scrollKey];
        var max = this.getScrollSize() - this.props.scrollParentViewportSizeGetter(this);
        var scroll = Math.max(0, Math.min(actual, max));
        var el = this.getEl();
        this.cachedScrollPosition = this.getOffset(scrollParent) + scroll - this.getOffset(el);
        return this.cachedScrollPosition;
      }
    }, {
      key: "setScroll",
      value: function setScroll(offset) {
        var scrollParent = this.scrollParent;
        var axis = this.props.axis;
        offset += this.getOffset(this.getEl());
        if (scrollParent === window) return window.scrollTo(0, offset);
        offset -= this.getOffset(this.scrollParent);
        scrollParent[SCROLL_START_KEYS[axis]] = offset;
      }
    }, {
      key: "getScrollSize",
      value: function getScrollSize() {
        var scrollParent = this.scrollParent;
        var _document = document,
          body = _document.body,
          documentElement = _document.documentElement;
        var key = SCROLL_SIZE_KEYS[this.props.axis];
        return scrollParent === window ? Math.max(body[key], documentElement[key]) : scrollParent[key];
      }
    }, {
      key: "hasDeterminateSize",
      value: function hasDeterminateSize() {
        var _this$props = this.props,
          itemSizeGetter = _this$props.itemSizeGetter,
          type = _this$props.type;
        return type === 'uniform' || itemSizeGetter;
      }
    }, {
      key: "getStartAndEnd",
      value: function getStartAndEnd() {
        var threshold = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.threshold;
        var scroll = this.getScrollPosition();
        var start = Math.max(0, scroll - threshold);
        var end = scroll + this.props.scrollParentViewportSizeGetter(this) + threshold;
        if (this.hasDeterminateSize()) {
          end = Math.min(end, this.getSpaceBefore(this.props.length));
        }
        return {
          start: start,
          end: end
        };
      }
    }, {
      key: "getItemSizeAndItemsPerRow",
      value: function getItemSizeAndItemsPerRow() {
        var _this$props2 = this.props,
          axis = _this$props2.axis,
          useStaticSize = _this$props2.useStaticSize;
        var _this$state = this.state,
          itemSize = _this$state.itemSize,
          itemsPerRow = _this$state.itemsPerRow;
        if (useStaticSize && itemSize && itemsPerRow) {
          return {
            itemSize: itemSize,
            itemsPerRow: itemsPerRow
          };
        }
        var itemEls = this.items.children;
        if (!itemEls.length) return {};
        var firstEl = itemEls[0];

        // Firefox has a problem where it will return a *slightly* (less than
        // thousandths of a pixel) different size for the same element between
        // renders. This can cause an infinite render loop, so only change the
        // itemSize when it is significantly different.
        var firstElSize = firstEl[OFFSET_SIZE_KEYS[axis]];
        var delta = Math.abs(firstElSize - itemSize);
        if (isNaN(delta) || delta >= 1) itemSize = firstElSize;
        if (!itemSize) return {};
        var startKey = OFFSET_START_KEYS[axis];
        var firstStart = firstEl[startKey];
        itemsPerRow = 1;
        for (var item = itemEls[itemsPerRow]; item && item[startKey] === firstStart; item = itemEls[itemsPerRow]) {
          ++itemsPerRow;
        }
        return {
          itemSize: itemSize,
          itemsPerRow: itemsPerRow
        };
      }
    }, {
      key: "clearSizeCache",
      value: function clearSizeCache() {
        this.cachedScrollPosition = null;
      }

      // Called by 'scroll' and 'resize' events, clears scroll position cache.
    }, {
      key: "updateFrameAndClearCache",
      value: function updateFrameAndClearCache(cb) {
        this.clearSizeCache();
        return this.updateFrame(cb);
      }
    }, {
      key: "updateFrame",
      value: function updateFrame(cb) {
        this.updateScrollParent();
        if (typeof cb !== 'function') cb = NOOP;
        switch (this.props.type) {
          case 'simple':
            return this.updateSimpleFrame(cb);
          case 'variable':
            return this.updateVariableFrame(cb);
          case 'uniform':
            return this.updateUniformFrame(cb);
        }
      }
    }, {
      key: "updateScrollParent",
      value: function updateScrollParent() {
        var prev = this.scrollParent;
        this.scrollParent = this.props.scrollParentGetter(this);
        if (prev === this.scrollParent) return;
        if (prev) {
          prev.removeEventListener('scroll', this.updateFrameAndClearCache);
          prev.removeEventListener('mousewheel', NOOP);
        }
        // If we have a new parent, cached parent dimensions are no longer useful.
        this.clearSizeCache();
        this.scrollParent.addEventListener('scroll', this.updateFrameAndClearCache, PASSIVE);
        // You have to attach mousewheel listener to the scrollable element.
        // Just an empty listener. After that onscroll events will be fired synchronously.
        this.scrollParent.addEventListener('mousewheel', NOOP, PASSIVE);
      }
    }, {
      key: "updateSimpleFrame",
      value: function updateSimpleFrame(cb) {
        var _this$getStartAndEnd = this.getStartAndEnd(),
          end = _this$getStartAndEnd.end;
        var itemEls = this.items.children;
        var elEnd = 0;
        if (itemEls.length) {
          var axis = this.props.axis;
          var firstItemEl = itemEls[0];
          var lastItemEl = itemEls[itemEls.length - 1];
          elEnd = this.getOffset(lastItemEl) + lastItemEl[OFFSET_SIZE_KEYS[axis]] - this.getOffset(firstItemEl);
        }
        if (elEnd > end) return cb();
        var _this$props3 = this.props,
          pageSize = _this$props3.pageSize,
          length = _this$props3.length;
        var size = Math.min(this.state.size + pageSize, length);
        this.maybeSetState({
          size: size
        }, cb);
      }
    }, {
      key: "updateVariableFrame",
      value: function updateVariableFrame(cb) {
        if (!this.props.itemSizeGetter) this.cacheSizes();
        var _this$getStartAndEnd2 = this.getStartAndEnd(),
          start = _this$getStartAndEnd2.start,
          end = _this$getStartAndEnd2.end;
        var _this$props4 = this.props,
          length = _this$props4.length,
          pageSize = _this$props4.pageSize;
        var space = 0;
        var from = 0;
        var size = 0;
        var maxFrom = length - 1;
        while (from < maxFrom) {
          var itemSize = this.getSizeOfItem(from);
          if (itemSize == null || space + itemSize > start) break;
          space += itemSize;
          ++from;
        }
        var maxSize = length - from;
        while (size < maxSize && space < end) {
          var _itemSize = this.getSizeOfItem(from + size);
          if (_itemSize == null) {
            size = Math.min(size + pageSize, maxSize);
            break;
          }
          space += _itemSize;
          ++size;
        }
        this.maybeSetState(constrain(this.props, {
          from: from,
          itemsPerRow: 1,
          size: size
        }), cb);
      }
    }, {
      key: "updateUniformFrame",
      value: function updateUniformFrame(cb) {
        var _this$getItemSizeAndI = this.getItemSizeAndItemsPerRow(),
          itemSize = _this$getItemSizeAndI.itemSize,
          itemsPerRow = _this$getItemSizeAndI.itemsPerRow;
        if (!itemSize || !itemsPerRow) return cb();
        var _this$getStartAndEnd3 = this.getStartAndEnd(),
          start = _this$getStartAndEnd3.start,
          end = _this$getStartAndEnd3.end;
        var _constrain = constrain(this.props, {
            from: Math.floor(start / itemSize) * itemsPerRow,
            size: (Math.ceil((end - start) / itemSize) + 1) * itemsPerRow,
            itemsPerRow: itemsPerRow
          }),
          from = _constrain.from,
          size = _constrain.size;
        return this.maybeSetState({
          itemsPerRow: itemsPerRow,
          from: from,
          itemSize: itemSize,
          size: size
        }, cb);
      }
    }, {
      key: "getSpaceBefore",
      value: function getSpaceBefore(index) {
        var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
        if (cache[index] != null) return cache[index];

        // Try the static itemSize.
        var _this$state2 = this.state,
          itemSize = _this$state2.itemSize,
          itemsPerRow = _this$state2.itemsPerRow;
        if (itemSize) {
          return cache[index] = Math.floor(index / itemsPerRow) * itemSize;
        }

        // Find the closest space to index there is a cached value for.
        var from = index;
        while (from > 0 && cache[--from] == null);

        // Finally, accumulate sizes of items from - index.
        var space = cache[from] || 0;
        for (var i = from; i < index; ++i) {
          cache[i] = space;
          var _itemSize2 = this.getSizeOfItem(i);
          if (_itemSize2 == null) break;
          space += _itemSize2;
        }
        return cache[index] = space;
      }
    }, {
      key: "cacheSizes",
      value: function cacheSizes() {
        var cache = this.cache;
        var from = this.state.from;
        var itemEls = this.items.children;
        var sizeKey = OFFSET_SIZE_KEYS[this.props.axis];
        for (var i = 0, l = itemEls.length; i < l; ++i) {
          cache[from + i] = itemEls[i][sizeKey];
        }
      }
    }, {
      key: "getSizeOfItem",
      value: function getSizeOfItem(index) {
        var cache = this.cache,
          items = this.items;
        var _this$props5 = this.props,
          axis = _this$props5.axis,
          itemSizeGetter = _this$props5.itemSizeGetter,
          itemSizeEstimator = _this$props5.itemSizeEstimator,
          type = _this$props5.type;
        var _this$state3 = this.state,
          from = _this$state3.from,
          itemSize = _this$state3.itemSize,
          size = _this$state3.size;

        // Try the static itemSize.
        if (itemSize) return itemSize;

        // Try the itemSizeGetter.
        if (itemSizeGetter) return itemSizeGetter(index);

        // Try the cache.
        if (index in cache) return cache[index];

        // Try the DOM.
        if (type === 'simple' && index >= from && index < from + size && items) {
          var itemEl = items.children[index - from];
          if (itemEl) return itemEl[OFFSET_SIZE_KEYS[axis]];
        }

        // Try the itemSizeEstimator.
        if (itemSizeEstimator) return itemSizeEstimator(index, cache);
      }
    }, {
      key: "scrollTo",
      value: function scrollTo(index) {
        if (index != null) this.setScroll(this.getSpaceBefore(index));
      }
    }, {
      key: "scrollAround",
      value: function scrollAround(index) {
        var current = this.getScrollPosition();
        var bottom = this.getSpaceBefore(index);
        var top = bottom - this.props.scrollParentViewportSizeGetter(this) + this.getSizeOfItem(index);
        var min = Math.min(top, bottom);
        var max = Math.max(top, bottom);
        if (current <= min) return this.setScroll(min);
        if (current > max) return this.setScroll(max);
      }
    }, {
      key: "getVisibleRange",
      value: function getVisibleRange() {
        var _this$state4 = this.state,
          from = _this$state4.from,
          size = _this$state4.size;
        var _this$getStartAndEnd4 = this.getStartAndEnd(0),
          start = _this$getStartAndEnd4.start,
          end = _this$getStartAndEnd4.end;
        var cache = {};
        var first, last;
        for (var i = from; i < from + size; ++i) {
          var itemStart = this.getSpaceBefore(i, cache);
          var itemEnd = itemStart + this.getSizeOfItem(i);
          if (first == null && itemEnd > start) first = i;
          if (first != null && itemStart < end) last = i;
        }
        return [first, last];
      }
    }, {
      key: "renderItems",
      value: function renderItems() {
        var _this3 = this;
        var _this$props6 = this.props,
          itemRenderer = _this$props6.itemRenderer,
          itemsRenderer = _this$props6.itemsRenderer;
        var _this$state5 = this.state,
          from = _this$state5.from,
          size = _this$state5.size;
        var items = [];
        for (var i = 0; i < size; ++i) items.push(itemRenderer(from + i, i));
        return itemsRenderer(items, function (c) {
          return _this3.items = c;
        });
      }
    }, {
      key: "render",
      value: function render() {
        var _this4 = this;
        var _this$props7 = this.props,
          axis = _this$props7.axis,
          length = _this$props7.length,
          type = _this$props7.type,
          useTranslate3d = _this$props7.useTranslate3d;
        var _this$state6 = this.state,
          from = _this$state6.from,
          itemsPerRow = _this$state6.itemsPerRow;
        var items = this.renderItems();
        if (type === 'simple') return items;
        var style = {
          position: 'relative'
        };
        var cache = {};
        var bottom = Math.ceil(length / itemsPerRow) * itemsPerRow;
        var size = this.getSpaceBefore(bottom, cache);
        if (size) {
          style[SIZE_KEYS[axis]] = size;
          if (axis === 'x') style.overflowX = 'hidden';
        }
        var offset = this.getSpaceBefore(from, cache);
        var x = axis === 'x' ? offset : 0;
        var y = axis === 'y' ? offset : 0;
        var transform = useTranslate3d ? "translate3d(".concat(x, "px, ").concat(y, "px, 0)") : "translate(".concat(x, "px, ").concat(y, "px)");
        var listStyle = {
          msTransform: transform,
          WebkitTransform: transform,
          transform: transform
        };
        return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
          style: style,
          ref: function ref(c) {
            return _this4.el = c;
          },
          children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
            style: listStyle,
            children: items
          })
        });
      }
    }], [{
      key: "getDerivedStateFromProps",
      value: function getDerivedStateFromProps(props, state) {
        var newState = constrain(props, state);
        return newState === state ? null : newState;
      }
    }]);
  }(_react.Component);
  _defineProperty(ReactList, "displayName", 'ReactList');
  _defineProperty(ReactList, "defaultProps", {
    axis: 'y',
    itemRenderer: function itemRenderer(index, key) {
      return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
        children: index
      }, key);
    },
    itemsRenderer: function itemsRenderer(items, ref) {
      return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
        ref: ref,
        children: items
      });
    },
    length: 0,
    minSize: 1,
    pageSize: 10,
    scrollParentGetter: defaultScrollParentGetter,
    scrollParentViewportSizeGetter: defaultScrollParentViewportSizeGetter,
    threshold: 100,
    type: 'simple',
    useStaticSize: false,
    useTranslate3d: false
  });
});


/***/ }),

/***/ 2167:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.Hour0To11Parser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class Hour0To11Parser extends _Parser.Parser {
  priority = 70;

  parse(dateString, token, match) {
    switch (token) {
      case "K":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.hour11h,
          dateString,
        );
      case "Ko":
        return match.ordinalNumber(dateString, { unit: "hour" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 11;
  }

  set(date, _flags, value) {
    const isPM = date.getHours() >= 12;
    if (isPM && value < 12) {
      date.setHours(value + 12, 0, 0, 0);
    } else {
      date.setHours(value, 0, 0, 0);
    }
    return date;
  }

  incompatibleTokens = ["h", "H", "k", "t", "T"];
}
exports.Hour0To11Parser = Hour0To11Parser;


/***/ }),

/***/ 2240:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setISODay = setISODay;
var _index = __webpack_require__(7591);
var _index2 = __webpack_require__(8284);
var _index3 = __webpack_require__(4446);

/**
 * The {@link setISODay} function options.
 */

/**
 * @name setISODay
 * @category Weekday Helpers
 * @summary Set the day of the ISO week to the given date.
 *
 * @description
 * Set the day of the ISO week to the given date.
 * ISO week starts with Monday.
 * 7 is the index of Sunday, 1 is the index of Monday, etc.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param day - The day of the ISO week of the new date
 * @param options - An object with options
 *
 * @returns The new date with the day of the ISO week set
 *
 * @example
 * // Set Sunday to 1 September 2014:
 * const result = setISODay(new Date(2014, 8, 1), 7)
 * //=> Sun Sep 07 2014 00:00:00
 */
function setISODay(date, day, options) {
  const date_ = (0, _index3.toDate)(date, options?.in);
  const currentDay = (0, _index2.getISODay)(date_, options);
  const diff = day - currentDay;
  return (0, _index.addDays)(date_, diff, options);
}


/***/ }),

/***/ 2292:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatRelative = formatRelative;
var _index = __webpack_require__(9577);
var _index2 = __webpack_require__(6755);
var _index3 = __webpack_require__(8256);
var _index4 = __webpack_require__(5506);
var _index5 = __webpack_require__(9460);

/**
 * The {@link formatRelative} function options.
 */

/**
 * @name formatRelative
 * @category Common Helpers
 * @summary Represent the date in words relative to the given base date.
 *
 * @description
 * Represent the date in words relative to the given base date.
 *
 * | Distance to the base date | Result                    |
 * |---------------------------|---------------------------|
 * | Previous 6 days           | last Sunday at 04:30 AM   |
 * | Last day                  | yesterday at 04:30 AM     |
 * | Same day                  | today at 04:30 AM         |
 * | Next day                  | tomorrow at 04:30 AM      |
 * | Next 6 days               | Sunday at 04:30 AM        |
 * | Other                     | 12/31/2017                |
 *
 * @param date - The date to format
 * @param baseDate - The date to compare with
 * @param options - An object with options
 *
 * @returns The date in words
 *
 * @throws `date` must not be Invalid Date
 * @throws `baseDate` must not be Invalid Date
 * @throws `options.locale` must contain `localize` property
 * @throws `options.locale` must contain `formatLong` property
 * @throws `options.locale` must contain `formatRelative` property
 *
 * @example
 * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday
 * const result = formatRelative(subDays(new Date(), 6), new Date())
 * //=> "last Thursday at 12:45 AM"
 */
function formatRelative(date, baseDate, options) {
  const [date_, baseDate_] = (0, _index3.normalizeDates)(
    options?.in,
    date,
    baseDate,
  );

  const defaultOptions = (0, _index2.getDefaultOptions)();
  const locale =
    options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;
  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const diff = (0, _index4.differenceInCalendarDays)(date_, baseDate_);

  if (isNaN(diff)) {
    throw new RangeError("Invalid time value");
  }

  let token;
  if (diff < -6) {
    token = "other";
  } else if (diff < -1) {
    token = "lastWeek";
  } else if (diff < 0) {
    token = "yesterday";
  } else if (diff < 1) {
    token = "today";
  } else if (diff < 2) {
    token = "tomorrow";
  } else if (diff < 7) {
    token = "nextWeek";
  } else {
    token = "other";
  }

  const formatStr = locale.formatRelative(token, date_, baseDate_, {
    locale,
    weekStartsOn,
  });
  return (0, _index5.format)(date_, formatStr, { locale, weekStartsOn });
}


/***/ }),

/***/ 2301:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.calcFocusDate = calcFocusDate;
exports.findNextRangeIndex = findNextRangeIndex;
exports.generateStyles = generateStyles;
exports.getMonthDisplayRange = getMonthDisplayRange;
var _classnames = _interopRequireDefault(__webpack_require__(6942));
var _dateFns = __webpack_require__(411);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function calcFocusDate(currentFocusedDate, props) {
  const {
    shownDate,
    date,
    months,
    ranges,
    focusedRange,
    displayMode
  } = props;
  // find primary date according the props
  let targetInterval;
  if (displayMode === 'dateRange') {
    const range = ranges[focusedRange[0]] || {};
    targetInterval = {
      start: range.startDate,
      end: range.endDate
    };
  } else {
    targetInterval = {
      start: date,
      end: date
    };
  }
  targetInterval.start = (0, _dateFns.startOfMonth)(targetInterval.start || new Date());
  targetInterval.end = (0, _dateFns.endOfMonth)(targetInterval.end || targetInterval.start);
  const targetDate = targetInterval.start || targetInterval.end || shownDate || new Date();

  // initial focus
  if (!currentFocusedDate) return shownDate || targetDate;

  // // just return targetDate for native scrolled calendars
  // if (props.scroll.enabled) return targetDate;
  if ((0, _dateFns.differenceInCalendarMonths)(targetInterval.start, targetInterval.end) > months) {
    // don't change focused if new selection in view area
    return currentFocusedDate;
  }
  return targetDate;
}
function findNextRangeIndex(ranges) {
  let currentRangeIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
  const nextIndex = ranges.findIndex((range, i) => i > currentRangeIndex && range.autoFocus !== false && !range.disabled);
  if (nextIndex !== -1) return nextIndex;
  return ranges.findIndex(range => range.autoFocus !== false && !range.disabled);
}
function getMonthDisplayRange(date, dateOptions, fixedHeight) {
  const startDateOfMonth = (0, _dateFns.startOfMonth)(date, dateOptions);
  const endDateOfMonth = (0, _dateFns.endOfMonth)(date, dateOptions);
  const startDateOfCalendar = (0, _dateFns.startOfWeek)(startDateOfMonth, dateOptions);
  let endDateOfCalendar = (0, _dateFns.endOfWeek)(endDateOfMonth, dateOptions);
  if (fixedHeight && (0, _dateFns.differenceInCalendarDays)(endDateOfCalendar, startDateOfCalendar) <= 34) {
    endDateOfCalendar = (0, _dateFns.addDays)(endDateOfCalendar, 7);
  }
  return {
    start: startDateOfCalendar,
    end: endDateOfCalendar,
    startDateOfMonth,
    endDateOfMonth
  };
}
function generateStyles(sources) {
  if (!sources.length) return {};
  const generatedStyles = sources.filter(source => Boolean(source)).reduce((styles, styleSource) => {
    Object.keys(styleSource).forEach(key => {
      styles[key] = (0, _classnames.default)(styles[key], styleSource[key]);
    });
    return styles;
  }, {});
  return generatedStyles;
}

/***/ }),

/***/ 2364:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.isProtectedDayOfYearToken = isProtectedDayOfYearToken;
exports.isProtectedWeekYearToken = isProtectedWeekYearToken;
exports.warnOrThrowProtectedError = warnOrThrowProtectedError;
const dayOfYearTokenRE = /^D+$/;
const weekYearTokenRE = /^Y+$/;

const throwTokens = ["D", "DD", "YY", "YYYY"];

function isProtectedDayOfYearToken(token) {
  return dayOfYearTokenRE.test(token);
}

function isProtectedWeekYearToken(token) {
  return weekYearTokenRE.test(token);
}

function warnOrThrowProtectedError(token, format, input) {
  const _message = message(token, format, input);
  console.warn(_message);
  if (throwTokens.includes(token)) throw new RangeError(_message);
}

function message(token, format, input) {
  const subject = token[0] === "Y" ? "years" : "days of the month";
  return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
}


/***/ }),

/***/ 2366:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfToday = endOfToday;
var _index = __webpack_require__(1883);

/**
 * The {@link endOfToday} function options.
 */

/**
 * @name endOfToday
 * @category Day Helpers
 * @summary Return the end of today.
 * @pure false
 *
 * @description
 * Return the end of today.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param options - The options
 *
 * @returns The end of today
 *
 * @example
 * // If today is 6 October 2014:
 * const result = endOfToday()
 * //=> Mon Oct 6 2014 23:59:59.999
 */
function endOfToday(options) {
  return (0, _index.endOfDay)(Date.now(), options);
}


/***/ }),

/***/ 2371:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.localize = void 0;
var _index = __webpack_require__(5586);

const eraValues = {
  narrow: ["B", "A"],
  abbreviated: ["BC", "AD"],
  wide: ["Before Christ", "Anno Domini"],
};

const quarterValues = {
  narrow: ["1", "2", "3", "4"],
  abbreviated: ["Q1", "Q2", "Q3", "Q4"],
  wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"],
};

// Note: in English, the names of days of the week and months are capitalized.
// If you are making a new locale based on this one, check if the same is true for the language you're working on.
// Generally, formatted dates should look like they are in the middle of a sentence,
// e.g. in Spanish language the weekdays and months should be in the lowercase.
const monthValues = {
  narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
  abbreviated: [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec",
  ],

  wide: [
    "January",
    "February",
    "March",
    "April",
    "May",
    "June",
    "July",
    "August",
    "September",
    "October",
    "November",
    "December",
  ],
};

const dayValues = {
  narrow: ["S", "M", "T", "W", "T", "F", "S"],
  short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
  abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  wide: [
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday",
  ],
};

const dayPeriodValues = {
  narrow: {
    am: "a",
    pm: "p",
    midnight: "mi",
    noon: "n",
    morning: "morning",
    afternoon: "afternoon",
    evening: "evening",
    night: "night",
  },
  abbreviated: {
    am: "AM",
    pm: "PM",
    midnight: "midnight",
    noon: "noon",
    morning: "morning",
    afternoon: "afternoon",
    evening: "evening",
    night: "night",
  },
  wide: {
    am: "a.m.",
    pm: "p.m.",
    midnight: "midnight",
    noon: "noon",
    morning: "morning",
    afternoon: "afternoon",
    evening: "evening",
    night: "night",
  },
};

const formattingDayPeriodValues = {
  narrow: {
    am: "a",
    pm: "p",
    midnight: "mi",
    noon: "n",
    morning: "in the morning",
    afternoon: "in the afternoon",
    evening: "in the evening",
    night: "at night",
  },
  abbreviated: {
    am: "AM",
    pm: "PM",
    midnight: "midnight",
    noon: "noon",
    morning: "in the morning",
    afternoon: "in the afternoon",
    evening: "in the evening",
    night: "at night",
  },
  wide: {
    am: "a.m.",
    pm: "p.m.",
    midnight: "midnight",
    noon: "noon",
    morning: "in the morning",
    afternoon: "in the afternoon",
    evening: "in the evening",
    night: "at night",
  },
};

const ordinalNumber = (dirtyNumber, _options) => {
  const number = Number(dirtyNumber);

  // If ordinal numbers depend on context, for example,
  // if they are different for different grammatical genders,
  // use `options.unit`.
  //
  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
  // 'day', 'hour', 'minute', 'second'.

  const rem100 = number % 100;
  if (rem100 > 20 || rem100 < 10) {
    switch (rem100 % 10) {
      case 1:
        return number + "st";
      case 2:
        return number + "nd";
      case 3:
        return number + "rd";
    }
  }
  return number + "th";
};

const localize = (exports.localize = {
  ordinalNumber,

  era: (0, _index.buildLocalizeFn)({
    values: eraValues,
    defaultWidth: "wide",
  }),

  quarter: (0, _index.buildLocalizeFn)({
    values: quarterValues,
    defaultWidth: "wide",
    argumentCallback: (quarter) => quarter - 1,
  }),

  month: (0, _index.buildLocalizeFn)({
    values: monthValues,
    defaultWidth: "wide",
  }),

  day: (0, _index.buildLocalizeFn)({
    values: dayValues,
    defaultWidth: "wide",
  }),

  dayPeriod: (0, _index.buildLocalizeFn)({
    values: dayPeriodValues,
    defaultWidth: "wide",
    formattingValues: formattingDayPeriodValues,
    defaultFormattingWidth: "wide",
  }),
});


/***/ }),

/***/ 2394:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _classnames = _interopRequireDefault(__webpack_require__(6942));
var _dateFns = __webpack_require__(411);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
class DateInput extends _react.PureComponent {
  constructor(props, context) {
    super(props, context);
    _defineProperty(this, "onKeyDown", e => {
      const {
        value
      } = this.state;
      if (e.key === 'Enter') {
        this.update(value);
      }
    });
    _defineProperty(this, "onChange", e => {
      this.setState({
        value: e.target.value,
        changed: true,
        invalid: false
      });
    });
    _defineProperty(this, "onBlur", () => {
      const {
        value
      } = this.state;
      this.update(value);
    });
    this.state = {
      invalid: false,
      changed: false,
      value: this.formatDate(props)
    };
  }
  componentDidUpdate(prevProps) {
    const {
      value
    } = prevProps;
    if (!(0, _dateFns.isEqual)(value, this.props.value)) {
      this.setState({
        value: this.formatDate(this.props)
      });
    }
  }
  formatDate(_ref) {
    let {
      value,
      dateDisplayFormat,
      dateOptions
    } = _ref;
    if (value && (0, _dateFns.isValid)(value)) {
      return (0, _dateFns.format)(value, dateDisplayFormat, dateOptions);
    }
    return '';
  }
  update(value) {
    const {
      invalid,
      changed
    } = this.state;
    if (invalid || !changed || !value) {
      return;
    }
    const {
      onChange,
      dateDisplayFormat,
      dateOptions
    } = this.props;
    const parsed = (0, _dateFns.parse)(value, dateDisplayFormat, new Date(), dateOptions);
    if ((0, _dateFns.isValid)(parsed)) {
      this.setState({
        changed: false
      }, () => onChange(parsed));
    } else {
      this.setState({
        invalid: true
      });
    }
  }
  render() {
    const {
      className,
      readOnly,
      placeholder,
      ariaLabel,
      disabled,
      onFocus
    } = this.props;
    const {
      value,
      invalid
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("span", {
      className: (0, _classnames.default)('rdrDateInput', className)
    }, /*#__PURE__*/_react.default.createElement("input", {
      readOnly: readOnly,
      disabled: disabled,
      value: value,
      placeholder: placeholder,
      "aria-label": ariaLabel,
      onKeyDown: this.onKeyDown,
      onChange: this.onChange,
      onBlur: this.onBlur,
      onFocus: onFocus
    }), invalid && /*#__PURE__*/_react.default.createElement("span", {
      className: "rdrWarning"
    }, "\u26A0"));
  }
}
DateInput.propTypes = {
  value: _propTypes.default.object,
  placeholder: _propTypes.default.string,
  disabled: _propTypes.default.bool,
  readOnly: _propTypes.default.bool,
  dateOptions: _propTypes.default.object,
  dateDisplayFormat: _propTypes.default.string,
  ariaLabel: _propTypes.default.string,
  className: _propTypes.default.string,
  onFocus: _propTypes.default.func.isRequired,
  onChange: _propTypes.default.func.isRequired
};
DateInput.defaultProps = {
  readOnly: true,
  disabled: false,
  dateDisplayFormat: 'MMM D, YYYY'
};
var _default = exports["default"] = DateInput;

/***/ }),

/***/ 2396:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDaysInYear = getDaysInYear;
var _index = __webpack_require__(3364);
var _index2 = __webpack_require__(4446);

/**
 * The {@link getDaysInYear} function options.
 */

/**
 * @name getDaysInYear
 * @category Year Helpers
 * @summary Get the number of days in a year of the given date.
 *
 * @description
 * Get the number of days in a year of the given date.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The number of days in a year
 *
 * @example
 * // How many days are in 2012?
 * const result = getDaysInYear(new Date(2012, 0, 1))
 * //=> 366
 */
function getDaysInYear(date, options) {
  const _date = (0, _index2.toDate)(date, options?.in);
  if (Number.isNaN(+_date)) return NaN;
  return (0, _index.isLeapYear)(_date) ? 366 : 365;
}


/***/ }),

/***/ 2448:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.rangeShape = exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _classnames = _interopRequireDefault(__webpack_require__(6942));
var _dateFns = __webpack_require__(411);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint-disable no-fallthrough */
class DayCell extends _react.Component {
  constructor(props, context) {
    super(props, context);
    _defineProperty(this, "handleKeyEvent", event => {
      const {
        day,
        onMouseDown,
        onMouseUp
      } = this.props;
      if ([13 /* space */, 32 /* enter */].includes(event.keyCode)) {
        if (event.type === 'keydown') onMouseDown(day);else onMouseUp(day);
      }
    });
    _defineProperty(this, "handleMouseEvent", event => {
      const {
        day,
        disabled,
        onPreviewChange,
        onMouseEnter,
        onMouseDown,
        onMouseUp
      } = this.props;
      const stateChanges = {};
      if (disabled) {
        onPreviewChange();
        return;
      }
      switch (event.type) {
        case 'mouseenter':
          onMouseEnter(day);
          onPreviewChange(day);
          stateChanges.hover = true;
          break;
        case 'blur':
        case 'mouseleave':
          stateChanges.hover = false;
          break;
        case 'mousedown':
          stateChanges.active = true;
          onMouseDown(day);
          break;
        case 'mouseup':
          event.stopPropagation();
          stateChanges.active = false;
          onMouseUp(day);
          break;
        case 'focus':
          onPreviewChange(day);
          break;
      }
      if (Object.keys(stateChanges).length) {
        this.setState(stateChanges);
      }
    });
    _defineProperty(this, "getClassNames", () => {
      const {
        isPassive,
        isToday,
        isWeekend,
        isStartOfWeek,
        isEndOfWeek,
        isStartOfMonth,
        isEndOfMonth,
        disabled,
        styles
      } = this.props;
      return (0, _classnames.default)(styles.day, {
        [styles.dayPassive]: isPassive,
        [styles.dayDisabled]: disabled,
        [styles.dayToday]: isToday,
        [styles.dayWeekend]: isWeekend,
        [styles.dayStartOfWeek]: isStartOfWeek,
        [styles.dayEndOfWeek]: isEndOfWeek,
        [styles.dayStartOfMonth]: isStartOfMonth,
        [styles.dayEndOfMonth]: isEndOfMonth,
        [styles.dayHovered]: this.state.hover,
        [styles.dayActive]: this.state.active
      });
    });
    _defineProperty(this, "renderPreviewPlaceholder", () => {
      const {
        preview,
        day,
        styles
      } = this.props;
      if (!preview) return null;
      const startDate = preview.startDate ? (0, _dateFns.endOfDay)(preview.startDate) : null;
      const endDate = preview.endDate ? (0, _dateFns.startOfDay)(preview.endDate) : null;
      const isInRange = (!startDate || (0, _dateFns.isAfter)(day, startDate)) && (!endDate || (0, _dateFns.isBefore)(day, endDate));
      const isStartEdge = !isInRange && (0, _dateFns.isSameDay)(day, startDate);
      const isEndEdge = !isInRange && (0, _dateFns.isSameDay)(day, endDate);
      return /*#__PURE__*/_react.default.createElement("span", {
        className: (0, _classnames.default)({
          [styles.dayStartPreview]: isStartEdge,
          [styles.dayInPreview]: isInRange,
          [styles.dayEndPreview]: isEndEdge
        }),
        style: {
          color: preview.color
        }
      });
    });
    _defineProperty(this, "renderSelectionPlaceholders", () => {
      const {
        styles,
        ranges,
        day
      } = this.props;
      if (this.props.displayMode === 'date') {
        let isSelected = (0, _dateFns.isSameDay)(this.props.day, this.props.date);
        return isSelected ? /*#__PURE__*/_react.default.createElement("span", {
          className: styles.selected,
          style: {
            color: this.props.color
          }
        }) : null;
      }
      const inRanges = ranges.reduce((result, range) => {
        let startDate = range.startDate;
        let endDate = range.endDate;
        if (startDate && endDate && (0, _dateFns.isBefore)(endDate, startDate)) {
          [startDate, endDate] = [endDate, startDate];
        }
        startDate = startDate ? (0, _dateFns.endOfDay)(startDate) : null;
        endDate = endDate ? (0, _dateFns.startOfDay)(endDate) : null;
        const isInRange = (!startDate || (0, _dateFns.isAfter)(day, startDate)) && (!endDate || (0, _dateFns.isBefore)(day, endDate));
        const isStartEdge = !isInRange && (0, _dateFns.isSameDay)(day, startDate);
        const isEndEdge = !isInRange && (0, _dateFns.isSameDay)(day, endDate);
        if (isInRange || isStartEdge || isEndEdge) {
          return [...result, {
            isStartEdge,
            isEndEdge: isEndEdge,
            isInRange,
            ...range
          }];
        }
        return result;
      }, []);
      return inRanges.map((range, i) => /*#__PURE__*/_react.default.createElement("span", {
        key: i,
        className: (0, _classnames.default)({
          [styles.startEdge]: range.isStartEdge,
          [styles.endEdge]: range.isEndEdge,
          [styles.inRange]: range.isInRange
        }),
        style: {
          color: range.color || this.props.color
        }
      }));
    });
    this.state = {
      hover: false,
      active: false
    };
  }
  render() {
    const {
      dayContentRenderer
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("button", _extends({
      type: "button",
      onMouseEnter: this.handleMouseEvent,
      onMouseLeave: this.handleMouseEvent,
      onFocus: this.handleMouseEvent,
      onMouseDown: this.handleMouseEvent,
      onMouseUp: this.handleMouseEvent,
      onBlur: this.handleMouseEvent,
      onPauseCapture: this.handleMouseEvent,
      onKeyDown: this.handleKeyEvent,
      onKeyUp: this.handleKeyEvent,
      className: this.getClassNames(this.props.styles)
    }, this.props.disabled || this.props.isPassive ? {
      tabIndex: -1
    } : {}, {
      style: {
        color: this.props.color
      }
    }), this.renderSelectionPlaceholders(), this.renderPreviewPlaceholder(), /*#__PURE__*/_react.default.createElement("span", {
      className: this.props.styles.dayNumber
    }, dayContentRenderer?.(this.props.day) || /*#__PURE__*/_react.default.createElement("span", null, (0, _dateFns.format)(this.props.day, this.props.dayDisplayFormat))));
  }
}
DayCell.defaultProps = {};
const rangeShape = exports.rangeShape = _propTypes.default.shape({
  startDate: _propTypes.default.object,
  endDate: _propTypes.default.object,
  color: _propTypes.default.string,
  key: _propTypes.default.string,
  autoFocus: _propTypes.default.bool,
  disabled: _propTypes.default.bool,
  showDateDisplay: _propTypes.default.bool
});
DayCell.propTypes = {
  day: _propTypes.default.object.isRequired,
  dayDisplayFormat: _propTypes.default.string,
  date: _propTypes.default.object,
  ranges: _propTypes.default.arrayOf(rangeShape),
  preview: _propTypes.default.shape({
    startDate: _propTypes.default.object,
    endDate: _propTypes.default.object,
    color: _propTypes.default.string
  }),
  onPreviewChange: _propTypes.default.func,
  previewColor: _propTypes.default.string,
  disabled: _propTypes.default.bool,
  isPassive: _propTypes.default.bool,
  isToday: _propTypes.default.bool,
  isWeekend: _propTypes.default.bool,
  isStartOfWeek: _propTypes.default.bool,
  isEndOfWeek: _propTypes.default.bool,
  isStartOfMonth: _propTypes.default.bool,
  isEndOfMonth: _propTypes.default.bool,
  color: _propTypes.default.string,
  displayMode: _propTypes.default.oneOf(['dateRange', 'date']),
  styles: _propTypes.default.object,
  onMouseDown: _propTypes.default.func,
  onMouseUp: _propTypes.default.func,
  onMouseEnter: _propTypes.default.func,
  dayContentRenderer: _propTypes.default.func
};
var _default = exports["default"] = DayCell;

/***/ }),

/***/ 2463:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisQuarter = isThisQuarter;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(9825);

/**
 * The {@link isThisQuarter} function options.
 */

/**
 * @name isThisQuarter
 * @category Quarter Helpers
 * @summary Is the given date in the same quarter as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same quarter as the current date?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is in this quarter
 *
 * @example
 * // If today is 25 September 2014, is 2 July 2014 in this quarter?
 * const result = isThisQuarter(new Date(2014, 6, 2))
 * //=> true
 */
function isThisQuarter(date, options) {
  return (0, _index3.isSameQuarter)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index2.constructNow)(options?.in || date),
  );
}


/***/ }),

/***/ 2480:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  A: () => (/* binding */ Player)
});

// UNUSED EXPORTS: MultiMediaPlayerInit

;// ./src/js/includes/icons.json
const icons_namespaceObject = /*#__PURE__*/JSON.parse('{"ZH":"<svg width=\\"20\\" height=\\"24\\" viewBox=\\"0 0 20 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M6.53967e-08 3.1196C0.000255287 2.56052 0.149239 2.01176 0.431378 1.5307C0.713516 1.04965 1.11845 0.653943 1.60385 0.384958C2.08926 0.115973 2.63731 -0.0164167 3.19072 0.00162602C3.74413 0.0196688 4.28258 0.187482 4.74979 0.487525L18.5685 9.36584C19.0072 9.64773 19.3684 10.0368 19.6186 10.4971C19.8688 10.9573 20 11.4739 20 11.999C20 12.524 19.8688 13.0406 19.6186 13.5008C19.3684 13.9611 19.0072 14.3502 18.5685 14.6321L4.74979 23.5125C4.28243 23.8126 3.74379 23.9804 3.1902 23.9984C2.63662 24.0163 2.08842 23.8838 1.60295 23.6145C1.11748 23.3453 0.71258 22.9493 0.430591 22.468C0.148601 21.9866 -0.000113851 21.4376 6.53967e-08 20.8783V3.1196Z\\" fill=\\"currentColor\\"/></svg>","v7":"<svg width=\\"19\\" height=\\"24\\" viewBox=\\"0 0 19 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M7.125 0H0V24H7.125V0ZM11.875 24H19V0H11.875V24Z\\" fill=\\"currentColor\\"/></svg>","r":"<svg width=\\"26\\" height=\\"26\\" viewBox=\\"0 0 38 38\\" xmlns=\\"http://www.w3.org/2000/svg\\" stroke=\\"#fff\\"><g fill=\\"none\\" fill-rule=\\"evenodd\\"><g transform=\\"translate(1 1)\\" stroke-width=\\"2\\"><circle stroke=\\"currentColor\\" stroke-opacity=\\".4\\" cx=\\"18\\" cy=\\"18\\" r=\\"18\\"/><path stroke=\\"currentColor\\" d=\\"M36 18c0-9.94-8.06-18-18-18\\"><animateTransform attributeName=\\"transform\\" type=\\"rotate\\" from=\\"0 18 18\\" to=\\"360 18 18\\" dur=\\"1s\\" repeatCount=\\"indefinite\\"/></path></g></g></svg>","YL":"<svg width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M24 2.33773C24 0.460556 21.896 -0.648684 20.3467 0.41256L6.34933 10.0038C6.03782 10.2173 5.78279 10.5032 5.60615 10.837C5.42951 11.1708 5.33655 11.5425 5.33524 11.9201C5.33392 12.2977 5.42431 12.67 5.59862 13.0051C5.77294 13.3401 6.02597 13.6278 6.336 13.8434L20.3347 23.5786C21.88 24.6545 24 23.5453 24 21.6628V2.33773ZM0 1.00051C0 0.735317 0.105356 0.480984 0.292892 0.293463C0.480429 0.105942 0.734783 0.00059461 1 0.00059461C1.26521 0.00059461 1.51957 0.105942 1.70711 0.293463C1.89464 0.480984 2 0.735317 2 1.00051V22.9987C2 23.2639 1.89464 23.5182 1.70711 23.7057C1.51957 23.8932 1.26521 23.9986 1 23.9986C0.734783 23.9986 0.480429 23.8932 0.292892 23.7057C0.105356 23.5182 0 23.2639 0 22.9987V1.00051Z\\" fill=\\"currentColor\\"/></svg>","K2":"<svg width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M0 2.33773C0 0.460556 2.104 -0.648684 3.65333 0.41256L17.6507 10.0038C17.9622 10.2173 18.2172 10.5032 18.3939 10.837C18.5705 11.1708 18.6635 11.5425 18.6648 11.9201C18.6661 12.2977 18.5757 12.67 18.4014 13.0051C18.2271 13.3401 17.974 13.6278 17.664 13.8434L3.66533 23.5786C2.12 24.6545 0 23.5453 0 21.6628V2.33773ZM24 1.00051C24 0.735317 23.8946 0.480984 23.7071 0.293463C23.5196 0.105942 23.2652 0.00059461 23 0.00059461C22.7348 0.00059461 22.4804 0.105942 22.2929 0.293463C22.1054 0.480984 22 0.735317 22 1.00051V22.9987C22 23.2639 22.1054 23.5182 22.2929 23.7057C22.4804 23.8932 22.7348 23.9986 23 23.9986C23.2652 23.9986 23.5196 23.8932 23.7071 23.7057C23.8946 23.5182 24 23.2639 24 22.9987V1.00051Z\\" fill=\\"currentColor\\"/></svg>","Kr":"<svg width=\\"26\\" height=\\"22\\" viewBox=\\"0 0 26 22\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M13.2169 2.05721e-05C12.9396 2.05721e-05 12.654 0.0460895 12.4014 0.174524L0.987116 9.37994C0.437955 9.90484 0 10.3167 0 10.9937C0 11.6708 0.372056 12.0547 0.988488 12.6076L12.4 21.813C12.9533 22.0964 13.6315 22.0503 14.1587 21.725C14.6887 21.4011 15.0168 20.8176 15.0168 20.1992V15.0506L23.3833 21.813C23.9365 22.0964 24.6147 22.0503 25.1419 21.725C25.6719 21.4011 26 20.8176 26 20.1992V1.78833C26 1.16989 25.6719 0.587749 25.1419 0.262474C24.8565 0.0891772 24.5299 -0.00157067 24.1974 2.05721e-05C23.9228 2.05721e-05 23.6372 0.0460895 23.3833 0.174524L15.0182 6.93689V1.78833C15.0182 1.16989 14.69 0.587749 14.1601 0.262474C13.8746 0.0891772 13.5494 -0.00157067 13.2169 2.05721e-05Z\\" fill=\\"currentColor\\"/></svg>","sY":"<svg width=\\"26\\" height=\\"22\\" viewBox=\\"0 0 26 22\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M12.7831 2.05721e-05C13.0604 2.05721e-05 13.346 0.0460895 13.5986 0.174524L25.0129 9.37994C25.562 9.90484 26 10.3167 26 10.9937C26 11.6708 25.6279 12.0547 25.0115 12.6076L13.6 21.813C13.0467 22.0964 12.3685 22.0503 11.8413 21.725C11.3113 21.4011 10.9832 20.8176 10.9832 20.1992V15.0506L2.61675 21.813C2.06347 22.0964 1.38526 22.0503 0.858063 21.725C0.328123 21.4011 0 20.8176 0 20.1992V1.78833C0 1.16989 0.328123 0.587749 0.858063 0.262474C1.14354 0.0891772 1.47014 -0.00157067 1.80262 2.05721e-05C2.0772 2.05721e-05 2.36276 0.0460895 2.61675 0.174524L10.9818 6.93689V1.78833C10.9818 1.16989 11.31 0.587749 11.8399 0.262474C12.1254 0.0891772 12.4506 -0.00157067 12.7831 2.05721e-05Z\\" fill=\\"currentColor\\"/></svg>","lY":"<svg width=\\"26\\" height=\\"26\\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 512 512\\" ><g transform=\\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\\" fill=\\"currentColor\\" stroke=\\"none\\"><path d=\\"M3482 5100 c-67 -41 -72 -61 -72 -293 0 -234 6 -260 65 -297 30 -19 49 -20 301 -20 l269 0 -947 -947 c-1009 -1011 -973 -972 -949 -1046 13 -40 303 -331 345 -347 76 -28 26 -73 1049 949 l947 946 0 -269 c0 -379 -11 -366 317 -366 232 0 252 5 293 72 19 32 20 52 20 783 0 731 -1 751 -20 783 -11 18 -34 41 -52 52 -32 19 -52 20 -783 20 -731 0 -751 -1 -783 -20z\\"/><path d=\\"M632 4725 c-144 -32 -272 -98 -377 -197 -112 -104 -183 -221 -227 -375 l-23 -78 0 -1705 c0 -1625 1 -1708 18 -1770 82 -290 287 -495 577 -577 62 -17 145 -18 1770 -18 l1705 0 78 23 c92 26 200 78 267 127 110 81 215 219 266 347 54 139 54 136 54 1090 0 858 -1 884 -20 915 -40 66 -50 68 -295 68 -214 0 -221 -1 -253 -23 -17 -13 -38 -33 -45 -45 -9 -17 -13 -224 -17 -897 l-5 -875 -24 -34 c-13 -18 -42 -42 -65 -52 -39 -18 -102 -19 -1647 -19 l-1606 0 -43 23 c-30 16 -51 37 -67 67 l-23 43 0 1606 c0 1545 1 1608 19 1647 10 23 34 52 52 65 l34 24 915 5 c861 5 918 6 943 23 16 10 37 32 47 50 18 29 20 51 20 240 0 233 -7 263 -64 298 -30 18 -68 19 -966 18 -752 0 -947 -3 -998 -14z\\"/></g></svg>","u3":"<svg width=\\"26\\" height=\\"26\\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 512.000000 512.000000\\"><g transform=\\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\\" fill=\\"currentColor\\" stroke=\\"none\\"><path d=\\"M3132 4758 l3 -292 100 -37 c491 -178 880 -526 1110 -994 422 -855 174 -1890 -589 -2462 -171 -128 -323 -210 -521 -282 l-100 -37 -3 -292 c-1 -160 1 -292 5 -292 21 0 229 62 313 93 732 270 1320 887 1549 1625 83 268 114 478 114 772 0 294 -31 504 -114 772 -229 738 -817 1355 -1549 1625 -84 31 -292 93 -313 93 -4 0 -6 -132 -5 -292z\\"/><path d=\\"M1845 4120 l-710 -710 -567 0 -568 0 0 -850 0 -850 567 0 568 0 712 -712 713 -713 0 2273 c0 1249 -1 2272 -3 2272 -1 0 -322 -319 -712 -710z\\"/><path d=\\"M3130 2560 c0 -627 4 -1140 8 -1140 4 0 41 20 82 45 332 205 547 530 605 915 76 499 -166 1007 -606 1274 -42 25 -79 46 -83 46 -3 0 -6 -513 -6 -1140z\\"/></g></svg>","OQ":"<svg width=\\"26\\" height=\\"26\\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 512 512\\" ><g transform=\\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\\" fill=\\"currentColor\\" stroke=\\"none\\"><path d=\\"M182 4938 l-182 -183 672 -672 673 -673 -673 0 -672 0 0 -850 0 -850 567 0 568 0 712 -712 713 -713 0 955 0 955 604 -604 c597 -597 604 -605 583 -621 -128 -98 -357 -224 -512 -281 l-100 -37 -3 -291 c-2 -241 0 -291 11 -291 25 0 228 61 321 97 212 80 486 233 646 360 l65 52 290 -290 290 -289 183 183 182 182 -2378 2378 -2377 2377 -183 -182z\\"/><path d=\\"M3132 4758 l3 -292 100 -37 c491 -178 880 -526 1110 -994 170 -344 237 -735 190 -1102 -19 -145 -44 -252 -97 -407 l-40 -119 213 -213 c185 -185 216 -212 226 -198 21 29 102 221 143 340 96 278 135 511 134 809 0 291 -29 497 -105 755 -224 752 -817 1383 -1559 1657 -84 31 -292 93 -313 93 -4 0 -6 -132 -5 -292z\\"/><path d=\\"M2260 4535 l-295 -295 298 -298 297 -297 0 593 c0 325 -1 592 -3 592 -1 0 -135 -133 -297 -295z\\"/><path d=\\"M3130 3387 l0 -312 348 -348 349 -349 6 54 c18 144 -1 330 -48 493 -87 297 -294 564 -566 729 -42 25 -79 46 -83 46 -3 0 -6 -141 -6 -313z\\"/></g></svg>","lb":"<svg width=\\"26\\" height=\\"26\\" xmlns=\\"http://www.w3.org/2000/svg\\" viewBox=\\"0 0 512 512\\" ><g transform=\\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\\" fill=\\"currentColor\\" stroke=\\"none\\"><path d=\\"M410 4061 c0 -358 2 -651 4 -651 4 0 997 669 1009 680 5 4 -211 140 -480 301 -268 161 -498 299 -510 307 l-23 14 0 -651z\\"/><path d=\\"M1690 4095 l0 -305 1510 0 1510 0 0 305 0 305 -1510 0 -1510 0 0 -305z\\"/><path d=\\"M410 2520 l0 -651 373 252 c204 138 434 292 509 343 76 50 137 93 137 96 0 5 -990 600 -1010 608 -5 2 -9 -284 -9 -648z\\"/><path d=\\"M1690 2560 l0 -310 1510 0 1510 0 0 310 0 310 -1510 0 -1510 0 0 -310z\\"/><path d=\\"M410 1075 l0 -667 23 14 c12 8 242 146 510 307 269 161 485 297 480 301 -4 4 -222 158 -483 340 -261 183 -487 341 -502 352 l-28 19 0 -666z\\"/><path d=\\"M1690 1025 l0 -305 1510 0 1510 0 0 305 0 305 -1510 0 -1510 0 0 -305z\\"/></g></svg>","RG":"<svg width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M12 18L4.5 10.5L6.6 8.325L10.5 12.225V0H13.5V12.225L17.4 8.325L19.5 10.5L12 18ZM3 24C2.175 24 1.469 23.7065 0.882 23.1195C0.295 22.5325 0.001 21.826 0 21V16.5H3V21H21V16.5H24V21C24 21.825 23.7065 22.5315 23.1195 23.1195C22.5325 23.7075 21.826 24.001 21 24H3Z\\" fill=\\"currentColor\\"/></svg>","k4":"<svg width=\\"25\\" height=\\"24\\" viewBox=\\"0 0 25 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M20.509 0.0670078C20.1151 -0.141642 19.6593 0.1599 19.6213 0.654372C19.5932 1.01451 19.565 1.46468 19.5453 1.98916H18.9545C17.6479 1.98894 16.3671 2.35838 15.2556 3.05606C14.1441 3.75375 13.2459 4.7521 12.6616 5.93922L11.2548 8.79745L9.84793 5.93922C9.26375 4.75232 8.36574 3.75411 7.25454 3.05644C6.14333 2.35877 4.86283 1.98921 3.55651 1.98916H1.40685C1.03373 1.98916 0.675891 2.13973 0.412056 2.40774C0.148221 2.67575 0 3.03925 0 3.41827C0 3.7973 0.148221 4.1608 0.412056 4.42881C0.675891 4.69682 1.03373 4.84738 1.40685 4.84738H3.55651C4.33996 4.84768 5.10786 5.06948 5.77425 5.48796C6.44064 5.90644 6.97922 6.50507 7.32968 7.21685L9.68193 11.9929L7.33249 16.769C6.98171 17.4815 6.44248 18.0805 5.77527 18.499C5.10806 18.9176 4.33927 19.139 3.5551 19.1385H1.40685C1.03373 19.1385 0.675891 19.2891 0.412056 19.5571C0.148221 19.8251 0 20.1886 0 20.5676C0 20.9466 0.148221 21.3101 0.412056 21.5781C0.675891 21.8462 1.03373 21.9967 1.40685 21.9967H3.55651C4.86283 21.9967 6.14333 21.6271 7.25454 20.9294C8.36574 20.2318 9.26375 19.2336 9.84793 18.0467L11.2548 15.1884L12.6616 18.0467C13.2458 19.2336 14.1438 20.2318 15.255 20.9294C16.3662 21.6271 17.6467 21.9967 18.9531 21.9967H19.5453C19.5678 22.5626 19.5988 23.0428 19.6297 23.4144C19.6663 23.8774 20.0828 24.1332 20.4696 23.9289C20.9874 23.6545 21.7442 23.2257 22.6503 22.6284C23.3645 22.1575 24.0574 21.6539 24.7268 21.1192C25.0757 20.8391 25.0911 20.2989 24.7591 20.0303C24.0815 19.4843 23.3782 18.9721 22.6517 18.4954C21.9574 18.0355 21.2424 17.6087 20.509 17.2163C20.1151 17.0077 19.6593 17.3092 19.6213 17.8037C19.5932 18.1638 19.565 18.614 19.5453 19.1385H18.9545C18.1705 19.1387 17.402 18.9172 16.7351 18.4987C16.0682 18.0802 15.5292 17.4812 15.1785 16.769L12.8276 11.9929L15.1771 7.21685C15.5279 6.50442 16.0671 5.90535 16.7343 5.48683C17.4015 5.06831 18.1703 4.84688 18.9545 4.84738H19.5467C19.5693 5.41331 19.6002 5.89349 19.6312 6.26506C19.6677 6.72809 20.0842 6.98391 20.471 6.77954C20.9888 6.50515 21.7456 6.07642 22.6517 5.47905C23.3659 5.00818 24.0588 4.50462 24.7282 3.96991C25.0771 3.6898 25.0925 3.1496 24.7605 2.88093C24.0829 2.33497 23.3796 1.82275 22.6531 1.34606C21.9588 0.886196 21.2438 0.459383 20.5104 0.0670078H20.509Z\\" fill=\\"currentColor\\"/></svg>","W0":"<svg width=\\"23\\" height=\\"24\\" viewBox=\\"0 0 23 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M20.3704 12C20.3704 11.724 20.3586 11.46 20.335 11.184L22.5348 9.492C23.0079 9.132 23.138 8.46 22.8423 7.932L20.6306 4.056C20.4888 3.80182 20.2595 3.60977 19.9866 3.51674C19.7137 3.42372 19.4165 3.43627 19.1522 3.552L16.6094 4.644C16.1718 4.332 15.7105 4.056 15.2256 3.828L14.8826 1.056C14.8116 0.456 14.3031 0 13.7117 0H9.30013C8.69694 0 8.18837 0.456 8.1174 1.056L7.77441 3.828C7.28949 4.056 6.82823 4.332 6.39062 4.644L3.84776 3.552C3.30371 3.312 2.66503 3.528 2.36935 4.056L0.157655 7.944C-0.138027 8.472 -0.00792671 9.132 0.465164 9.504L2.66503 11.196C2.61572 11.7348 2.61572 12.2772 2.66503 12.816L0.465164 14.508C-0.00792671 14.868 -0.138027 15.54 0.157655 16.068L2.36935 19.944C2.66503 20.472 3.30371 20.688 3.84776 20.448L6.39062 19.356C6.82823 19.668 7.28949 19.944 7.77441 20.172L8.1174 22.944C8.18837 23.544 8.69694 24 9.2883 24H13.6999C14.2912 24 14.7998 23.544 14.8708 22.944L15.2138 20.172C15.6987 19.944 16.1599 19.668 16.5975 19.356L19.1404 20.448C19.6845 20.688 20.3231 20.472 20.6188 19.944L22.8305 16.068C23.1262 15.54 22.9961 14.88 22.523 14.508L20.3231 12.816C20.3586 12.54 20.3704 12.276 20.3704 12ZM11.5473 16.2C9.26465 16.2 7.40777 14.316 7.40777 12C7.40777 9.684 9.26465 7.8 11.5473 7.8C13.83 7.8 15.6869 9.684 15.6869 12C15.6869 14.316 13.83 16.2 11.5473 16.2Z\\" fill=\\"currentColor\\"/></svg>","E6":"<svg width=\\"26\\" height=\\"18\\" viewBox=\\"0 0 26 18\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M15.7333 15.3L16.6667 18L26 9L16.6667 0L15.7333 2.7L22.2667 9L15.7333 15.3ZM10.2667 2.7L9.33333 0L0 9L9.33333 18L10.2667 15.3L3.73333 9L10.2667 2.7Z\\" fill=\\"currentColor\\"/></svg>","$P":"<svg xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"12\\" height=\\"12\\" viewBox=\\"0 0 12 12\\" fill=\\"none\\"><path d=\\"M10.5 10.5L8.32848 8.32848M8.32848 8.32848C8.69992 7.95704 8.99457 7.51607 9.19559 7.03075C9.39662 6.54544 9.50008 6.02528 9.50008 5.49998C9.50008 4.97468 9.39662 4.45452 9.19559 3.96921C8.99457 3.48389 8.69992 3.04292 8.32848 2.67148C7.95704 2.30004 7.51607 2.00539 7.03075 1.80437C6.54544 1.60334 6.02528 1.49988 5.49998 1.49988C4.97468 1.49988 4.45452 1.60334 3.96921 1.80437C3.48389 2.00539 3.04292 2.30004 2.67148 2.67148C1.92132 3.42165 1.49988 4.43909 1.49988 5.49998C1.49988 6.56087 1.92132 7.57832 2.67148 8.32848C3.42165 9.07865 4.43909 9.50008 5.49998 9.50008C6.56087 9.50008 7.57832 9.07865 8.32848 8.32848Z\\" stroke=\\"white\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"/></svg>","Y5":"<svg width=\\"8\\" height=\\"8\\" viewBox=\\"0 0 8 8\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><g clip-path=\\"url(#clip0_385_3628)\\"><path d=\\"M3.125 7.125H0.875V4.875M7.125 4.875V7.125H4.875M4.875 0.875H7.125V3.125M0.875 3.125V0.875H3.125\\" stroke=\\"white\\" stroke-width=\\"0.8\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"/></g><defs><clipPath id=\\"clip0_385_3628\\"><rect width=\\"8\\" height=\\"8\\" fill=\\"white\\"/></clipPath></defs></svg>","_W":"<svg width=\\"23\\" height=\\"24\\" viewBox=\\"0 0 23 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M21.0832 12.4492C21.0832 17.0695 17.8888 20.9198 13.4166 21.8182C12.1388 22.0749 10.861 22.0749 9.711 21.8182C9.19989 21.8182 8.94434 21.4332 9.07211 21.0482C9.19989 20.6631 9.45545 20.4064 9.96656 20.5348C12.5221 21.0482 14.8221 20.4064 16.8666 18.738C18.5277 17.3262 19.4221 15.4011 19.6777 13.2193C20.061 8.98399 17.1221 5.26206 12.9054 4.49201C11.8832 4.36367 10.9888 4.36367 9.96656 4.49201C9.45545 4.49201 9.07211 4.23532 9.07211 3.8503C8.94434 3.33693 9.19989 3.08024 9.711 2.9519C12.011 2.56688 14.1832 2.82356 16.2277 4.10698C18.7832 5.64709 20.3166 7.82891 20.8277 10.7808C21.0832 11.2941 21.0832 11.9359 21.0832 12.4492Z\\" fill=\\"currentColor\\"/><path d=\\"M7.53872 12.4492C7.53872 11.8075 7.53872 11.0375 7.53872 10.3957C7.53872 8.85564 8.68872 7.70056 10.2221 7.70056C10.6054 7.70056 11.1165 7.8289 11.4998 8.08559C12.6498 8.85564 13.9276 9.49735 15.0776 10.2674C16.7387 11.2941 16.7387 13.6043 15.0776 14.631C13.9276 15.4011 12.6498 16.1711 11.4998 16.8129C9.83872 17.8396 7.6665 16.6845 7.53872 14.631C7.41095 13.861 7.53872 13.2193 7.53872 12.4492ZM14.8221 12.4492C14.8221 12.0642 14.6943 11.6792 14.3109 11.4225C13.1609 10.6524 12.0109 10.0107 10.7332 9.24067C9.9665 8.7273 8.94428 9.36901 8.94428 10.2674C8.94428 11.6792 8.94428 13.2193 8.94428 14.631C8.94428 15.5294 9.9665 16.0428 10.7332 15.6578C11.8832 15.0161 13.1609 14.246 14.3109 13.476C14.5665 13.2193 14.8221 12.8343 14.8221 12.4492Z\\" fill=\\"currentColor\\"/><path d=\\"M7.28333 19.8931C7.28333 20.4065 6.64445 20.7915 6.26111 20.4065C5.11111 19.6364 4.21667 18.738 3.57778 17.7113C3.32222 17.3262 3.45 16.9412 3.83333 16.6845C4.21667 16.4278 4.6 16.5562 4.85556 16.8129C5.36667 17.4546 5.75 18.0963 6.38889 18.6097C6.64445 18.738 6.9 18.9947 7.15556 19.123C7.15556 19.3797 7.28333 19.5081 7.28333 19.8931Z\\" fill=\\"currentColor\\"/><path d=\\"M4.08873 8.21394C3.83317 8.21394 3.57762 8.08559 3.44984 7.82891C3.32206 7.57223 3.32206 7.31554 3.44984 7.05886C3.96095 6.2888 4.59984 5.51875 5.49428 4.87704C5.74984 4.7487 5.87762 4.62035 6.13317 4.36367C6.5165 4.10699 6.89984 4.23533 7.15539 4.49201C7.41095 4.87704 7.28317 5.26207 7.02762 5.51875C6.13317 6.2888 5.3665 6.93051 4.72762 7.82891C4.59984 8.08559 4.34428 8.21394 4.08873 8.21394Z\\" fill=\\"currentColor\\"/><path d=\\"M1.9165 12.4492C2.04428 11.8075 2.04428 11.1658 2.17206 10.6525C2.17206 10.2674 2.55539 10.0107 3.0665 10.0107C3.44984 10.1391 3.70539 10.3958 3.57761 10.9091C3.32206 11.9359 3.32206 13.091 3.57761 14.1177C3.70539 14.5027 3.44984 14.8877 3.0665 15.0161C2.68317 15.1444 2.29984 14.8877 2.17206 14.3744C2.04428 13.6043 1.9165 13.091 1.9165 12.4492Z\\" fill=\\"currentColor\\"/></svg>","BJ":"<svg width=\\"30\\" height=\\"30\\" viewBox=\\"0 0 30 30\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M2.50195 11.25C2.50195 8.8925 2.50195 7.715 3.23445 6.9825C3.96695 6.25 5.14445 6.25 7.50195 6.25H22.502C24.8595 6.25 26.037 6.25 26.7695 6.9825C27.502 7.715 27.502 8.8925 27.502 11.25C27.502 11.8387 27.502 12.1338 27.3195 12.3175C27.1357 12.5 26.8395 12.5 26.252 12.5H3.75195C3.1632 12.5 2.8682 12.5 2.68445 12.3175C2.50195 12.1338 2.50195 11.8375 2.50195 11.25Z\\" fill=\\"white\\"/><path fill-rule=\\"evenodd\\" clip-rule=\\"evenodd\\" d=\\"M2.50195 22.5C2.50195 24.8575 2.50195 26.035 3.23445 26.7675C3.96695 27.5 5.14445 27.5 7.50195 27.5H22.502C24.8595 27.5 26.037 27.5 26.7695 26.7675C27.502 26.035 27.502 24.8575 27.502 22.5V16.25C27.502 15.6613 27.502 15.3662 27.3195 15.1825C27.1357 15 26.8395 15 26.252 15H3.75195C3.1632 15 2.8682 15 2.68445 15.1825C2.50195 15.3662 2.50195 15.6625 2.50195 16.25V22.5ZM8.75195 18.75C8.75195 18.1613 8.75195 17.8662 8.93445 17.6825C9.1182 17.5 9.41445 17.5 10.002 17.5H12.502C13.0907 17.5 13.3857 17.5 13.5695 17.6825C13.752 17.8662 13.752 18.1613 13.752 18.75C13.752 19.3387 13.752 19.6338 13.5695 19.8175C13.3857 20 13.0895 20 12.502 20H10.002C9.4132 20 9.1182 20 8.93445 19.8175C8.75195 19.6338 8.75195 19.3375 8.75195 18.75ZM8.93445 22.6825C8.75195 22.8662 8.75195 23.1625 8.75195 23.75C8.75195 24.3375 8.75195 24.6338 8.93445 24.8175C9.1182 25 9.41445 25 10.002 25H12.502C13.0907 25 13.3857 25 13.5695 24.8175C13.752 24.6338 13.752 24.3375 13.752 23.75C13.752 23.1625 13.752 22.8662 13.5695 22.6825C13.3857 22.5 13.0895 22.5 12.502 22.5H10.002C9.4132 22.5 9.1182 22.5 8.93445 22.6825ZM16.252 18.75C16.252 18.1613 16.252 17.8662 16.4345 17.6825C16.6182 17.5 16.9145 17.5 17.502 17.5H20.002C20.5907 17.5 20.8857 17.5 21.0695 17.6825C21.252 17.8662 21.252 18.1613 21.252 18.75C21.252 19.3387 21.252 19.6338 21.0695 19.8175C20.8857 20 20.5895 20 20.002 20H17.502C16.9132 20 16.6182 20 16.4345 19.8175C16.252 19.6338 16.252 19.3375 16.252 18.75ZM16.4345 22.6825C16.252 22.8662 16.252 23.1625 16.252 23.75C16.252 24.3375 16.252 24.6338 16.4345 24.8175C16.6182 25 16.9132 25 17.502 25H20.002C20.5907 25 20.8857 25 21.0695 24.8175C21.252 24.6338 21.252 24.3375 21.252 23.75C21.252 23.1625 21.252 22.8662 21.0695 22.6825C20.8857 22.5 20.5895 22.5 20.002 22.5H17.502C16.9132 22.5 16.6182 22.5 16.4345 22.6825Z\\" fill=\\"white\\"/><path d=\\"M8.75391 3.75V7.5M21.2539 3.75V7.5\\" stroke=\\"white\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\"/></svg>","pm":"<svg width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M12.002 2.00012C17.525 2.00012 22.002 6.47712 22.002 12.0001C22.002 17.5231 17.525 22.0001 12.002 22.0001C6.47895 22.0001 2.00195 17.5231 2.00195 12.0001C2.00195 6.47712 6.47895 2.00012 12.002 2.00012ZM12.002 6.00012C11.7367 6.00012 11.4824 6.10548 11.2948 6.29302C11.1073 6.48055 11.002 6.73491 11.002 7.00012V12.0001C11.002 12.2653 11.1074 12.5196 11.295 12.7071L14.295 15.7071C14.4836 15.8893 14.7362 15.9901 14.9984 15.9878C15.2606 15.9855 15.5114 15.8804 15.6968 15.6949C15.8822 15.5095 15.9874 15.2587 15.9896 14.9965C15.9919 14.7343 15.8911 14.4817 15.709 14.2931L13.002 11.5861V7.00012C13.002 6.73491 12.8966 6.48055 12.7091 6.29302C12.5215 6.10548 12.2672 6.00012 12.002 6.00012Z\\" fill=\\"white\\"/></svg>","mL":"<svg width=\\"5\\" height=\\"6\\" viewBox=\\"0 0 5 6\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M0 1.85462C0.0124275 1.82701 0.0220933 1.79939 0.0359017 1.77177C0.140845 1.56327 0.394918 1.50803 0.574427 1.65716C0.593759 1.67235 0.610329 1.6903 0.628279 1.70687C1.23723 2.31582 1.84617 2.92477 2.45374 3.53372C2.46617 3.54614 2.47584 3.56133 2.48964 3.5779C2.50898 3.55995 2.5214 3.54891 2.53383 3.53648C3.14692 2.92339 3.76001 2.3103 4.3731 1.69583C4.47943 1.5895 4.60232 1.5467 4.75007 1.59226C4.97238 1.65992 5.06352 1.94438 4.92129 2.12803C4.90472 2.15012 4.88539 2.17083 4.86606 2.19017C4.16598 2.89163 3.46313 3.59447 2.76167 4.29594C2.63049 4.42712 2.46893 4.45473 2.3198 4.36774C2.28666 4.34841 2.25628 4.32217 2.22867 4.29456C1.52582 3.59309 0.825739 2.89163 0.122894 2.19017C0.0648992 2.13217 0.0317592 2.06313 0 1.99133C0 1.94576 0 1.90019 0 1.85462Z\\" fill=\\"white\\"/></svg>","bi":"<svg width=\\"5\\" height=\\"6\\" viewBox=\\"0 0 5 6\\" fill=\\"none\\" xmlns=\\"http://www.w3.org/2000/svg\\"><path d=\\"M0 4.14538C0.0124275 4.17299 0.0220933 4.20061 0.0359017 4.22823C0.140845 4.43673 0.394918 4.49197 0.574427 4.34284C0.593759 4.32765 0.610329 4.3097 0.628279 4.29313C1.23723 3.68418 1.84617 3.07523 2.45374 2.46628C2.46617 2.45386 2.47584 2.43867 2.48964 2.4221C2.50898 2.44005 2.5214 2.45109 2.53383 2.46352C3.14692 3.07661 3.76001 3.6897 4.3731 4.30417C4.47943 4.4105 4.60232 4.4533 4.75007 4.40774C4.97238 4.34008 5.06352 4.05562 4.92129 3.87197C4.90472 3.84988 4.88539 3.82917 4.86606 3.80983C4.16598 3.10837 3.46313 2.40553 2.76167 1.70406C2.63049 1.57288 2.46893 1.54527 2.3198 1.63226C2.28666 1.65159 2.25628 1.67783 2.22867 1.70544C1.52582 2.40691 0.825739 3.10837 0.122894 3.80983C0.0648992 3.86783 0.0317592 3.93687 0 4.00867C0 4.05424 0 4.09981 0 4.14538Z\\" fill=\\"white\\"/></svg>"}');
// EXTERNAL MODULE: ./node_modules/react-player/lib/index.js
var lib = __webpack_require__(3554);
var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
// EXTERNAL MODULE: ./node_modules/react-tooltip/dist/react-tooltip.min.mjs
var react_tooltip_min = __webpack_require__(7008);
// EXTERNAL MODULE: external "React"
var external_React_ = __webpack_require__(1594);
var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
;// ./node_modules/use-media-session/dist/index.es.js


var isMediaSessionAvailable = typeof window !== 'undefined' && 'mediaSession' in window.navigator;
var useMediaMeta = function (_a) {
    var title = _a.title, album = _a.album, artist = _a.artist, artwork = _a.artwork;
    (0,external_React_.useEffect)(function () {
        if (!isMediaSessionAvailable)
            return;
        window.navigator.mediaSession.metadata = new MediaMetadata({
            title: title,
            album: album,
            artist: artist,
            artwork: artwork,
        });
        return function () {
            window.navigator.mediaSession.metadata = undefined;
        };
    }, [album, artist, artwork, title]);
};
var bindActionHandler = function (action, callback) {
    if (!isMediaSessionAvailable || !callback)
        return;
    window.navigator.mediaSession.setActionHandler(action, callback);
    return function () {
        window.navigator.mediaSession.setActionHandler(action, null);
    };
};
var useMediaSession = function (_a) {
    var _b = _a.playbackState, playbackState = _b === void 0 ? 'none' : _b, onPause = _a.onPause, onPlay = _a.onPlay, onNextTrack = _a.onNextTrack, onPreviousTrack = _a.onPreviousTrack, onSeekBackward = _a.onSeekBackward, onSeekForward = _a.onSeekForward, onSeekTo = _a.onSeekTo, onSkipAd = _a.onSkipAd, onStop = _a.onStop;
    (0,external_React_.useEffect)(function () {
        if (!isMediaSessionAvailable)
            return;
        window.navigator.mediaSession.playbackState = playbackState;
        return function () {
            window.navigator.mediaSession.playbackState = 'none';
        };
    }, [playbackState]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('play', onPlay); }, [onPlay]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('pause', onPause); }, [onPause]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('nexttrack', onNextTrack); }, [onNextTrack]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('previoustrack', onPreviousTrack); }, [
        onPreviousTrack,
    ]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('seekbackward', onSeekBackward); }, [
        onSeekBackward,
    ]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('seekforward', onSeekForward); }, [
        onSeekForward,
    ]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('seekto', onSeekTo); }, [onSeekTo]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('skipad', onSkipAd); }, [onSkipAd]);
    (0,external_React_.useEffect)(function () { return bindActionHandler('stop', onStop); }, [onStop]);
};


//# sourceMappingURL=index.es.js.map

// EXTERNAL MODULE: ./src/js/includes/functions.js
var functions = __webpack_require__(9116);
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(6942);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
;// ./src/js/components/Player/PlayPause.js



var PlayPause = function PlayPause(_ref) {
  var _ref$id = _ref.id,
    id = _ref$id === void 0 ? null : _ref$id,
    type = _ref.type,
    items = _ref.items,
    handleNextPrev = _ref.handleNextPrev,
    playing = _ref.playing,
    buffering = _ref.buffering,
    handlePlayPause = _ref.handlePlayPause,
    previousNextButton = _ref.previousNextButton,
    handleRewindForward = _ref.handleRewindForward,
    rewindForwardButton = _ref.rewindForwardButton;
  var playIcon = buffering ? icons_namespaceObject.r : playing ? icons_namespaceObject.v7 : icons_namespaceObject.ZH;
  return /*#__PURE__*/React.createElement(React.Fragment, null, items.length > 1 && previousNextButton && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": wp.i18n.__('Previous', 'soft-multimedia-player'),
    title: wp.i18n.__('Previous', 'soft-multimedia-player'),
    className: classnames_default()("smp-prev"),
    onClick: function onClick() {
      return handleNextPrev('prev');
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.YL
    }
  }), !!rewindForwardButton && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": wp.i18n.__('Rewind', 'soft-multimedia-player'),
    title: wp.i18n.__('Rewind', 'soft-multimedia-player'),
    className: classnames_default()("smp-rewind"),
    onClick: function onClick() {
      return handleRewindForward('rewind');
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.Kr
    }
  }), /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": playing ? 'Pause' : 'Play',
    title: playing ? 'Pause' : 'Play',
    className: classnames_default()("smp-play-pause", {
      active: playing
    }, {
      buffering: buffering
    }),
    onClick: function onClick() {
      if (type === 'video-player') {
        // poster click
        if (!playing) {
          (0,functions/* posterClick */.qQ)(id);
        }
        setTimeout(function () {
          handlePlayPause();
        }, 10);
      } else {
        handlePlayPause();
      }
    },
    dangerouslySetInnerHTML: {
      __html: playIcon
    }
  }), rewindForwardButton && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": wp.i18n.__('Forward', 'soft-multimedia-player'),
    title: wp.i18n.__('Forward', 'soft-multimedia-player'),
    className: classnames_default()("smp-forward"),
    onClick: function onClick() {
      return handleRewindForward('forward');
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.sY
    }
  }), items.length > 1 && previousNextButton && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": wp.i18n.__('Next', 'soft-multimedia-player'),
    title: wp.i18n.__('Next', 'soft-multimedia-player'),
    className: classnames_default()("smp-next"),
    onClick: function onClick() {
      return handleNextPrev('next');
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.K2
    }
  }));
};
/* harmony default export */ const Player_PlayPause = (PlayPause);
;// ./src/js/components/Player/VolumeControl.js
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }

var _React = React,
  useState = _React.useState,
  useRef = _React.useRef,
  useEffect = _React.useEffect;
var VolumeControl = function VolumeControl(_ref) {
  var playerType = _ref.playerType,
    volume = _ref.volume,
    setVolume = _ref.setVolume;
  var _useState = useState(false),
    _useState2 = _slicedToArray(_useState, 2),
    isDragging = _useState2[0],
    setIsDragging = _useState2[1];
  var containerRef = useRef(null);
  useEffect(function () {
    var handleKeyDown = function handleKeyDown(e) {
      if (!containerRef.current || isDragging) return;
      var element = containerRef.current;
      if (!element.offsetWidth > 0 || !element.offsetHeight > 0) return;
      var step = 0.05;
      var newVolume = volume;
      switch (e.key) {
        case 'ArrowUp':
          newVolume = Math.min(volume + step, 1);
          break;
        case 'ArrowDown':
          newVolume = Math.max(volume - step, 0);
          break;
        default:
          return;
      }
      setVolume(newVolume);
      localStorage.setItem('smp_volume', newVolume);
    };
    document.addEventListener('keydown', handleKeyDown);
    return function () {
      document.removeEventListener('keydown', handleKeyDown);
    };
  }, [volume, setVolume, isDragging]);
  var getClientY = function getClientY(e) {
    return e.touches ? e.touches[0].clientY : e.clientY;
  };
  var getClientX = function getClientX(e) {
    return e.touches ? e.touches[0].clientX : e.clientX;
  };
  var adjustVolume = function adjustVolume(e) {
    if (isDragging || e.type === 'click' || e.type === 'touchend') {
      var newVolume;
      if ('sticky' === playerType) {
        var clientX = getClientX(e);
        var containerWidth = containerRef.current.clientWidth;
        var xPosition = clientX - containerRef.current.getBoundingClientRect().left;
        newVolume = Math.min(Math.max(xPosition / containerWidth, 0), 1);
      } else {
        var clientY = getClientY(e);
        var containerHeight = containerRef.current.clientHeight;
        var yPosition = clientY - containerRef.current.getBoundingClientRect().top;
        newVolume = Math.min(Math.max(1 - yPosition / containerHeight, 0), 1);
      }
      setVolume(newVolume);
      localStorage.setItem('smp_volume', newVolume);
    }
  };
  var handleMouseDown = function handleMouseDown() {
    setIsDragging(true);
    window.addEventListener('mouseup', _handleMouseUp);
  };
  var _handleMouseUp = function handleMouseUp() {
    setIsDragging(false);
    window.removeEventListener('mouseup', _handleMouseUp);
  };
  return /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-volume"
  }, /*#__PURE__*/React.createElement("span", {
    className: "volume-icon",
    dangerouslySetInnerHTML: {
      __html: volume > 0.05 ? icons_namespaceObject.u3 : icons_namespaceObject.OQ
    }
  }), /*#__PURE__*/React.createElement("div", {
    className: "volume-slider",
    role: "slider",
    "aria-valuemin": "0",
    "aria-valuemax": "100",
    "aria-valuenow": parseInt(volume * 100),
    "aria-valuetext": "".concat(parseInt(volume * 100), "%"),
    ref: containerRef,
    onMouseMove: adjustVolume,
    onMouseUp: _handleMouseUp,
    onMouseDown: handleMouseDown,
    onTouchMove: adjustVolume,
    onTouchEnd: adjustVolume,
    onClick: adjustVolume,
    tabIndex: 0 // Allow focusing on the volume slider
  }, /*#__PURE__*/React.createElement("div", {
    className: "volume-slider-bar",
    style: {
      '--smp-volume-slider': "".concat(parseInt(volume * 100), "%")
    }
  }, /*#__PURE__*/React.createElement("div", {
    className: "volume-slider-handle",
    onMouseDown: handleMouseDown,
    onTouchStart: handleMouseDown
  }))));
};
/* harmony default export */ const Player_VolumeControl = (VolumeControl);
;// ./node_modules/screenfull/index.js
/* eslint-disable promise/prefer-await-to-then */

const methodMap = [
	[
		'requestFullscreen',
		'exitFullscreen',
		'fullscreenElement',
		'fullscreenEnabled',
		'fullscreenchange',
		'fullscreenerror',
	],
	// New WebKit
	[
		'webkitRequestFullscreen',
		'webkitExitFullscreen',
		'webkitFullscreenElement',
		'webkitFullscreenEnabled',
		'webkitfullscreenchange',
		'webkitfullscreenerror',

	],
	// Old WebKit
	[
		'webkitRequestFullScreen',
		'webkitCancelFullScreen',
		'webkitCurrentFullScreenElement',
		'webkitCancelFullScreen',
		'webkitfullscreenchange',
		'webkitfullscreenerror',

	],
	[
		'mozRequestFullScreen',
		'mozCancelFullScreen',
		'mozFullScreenElement',
		'mozFullScreenEnabled',
		'mozfullscreenchange',
		'mozfullscreenerror',
	],
	[
		'msRequestFullscreen',
		'msExitFullscreen',
		'msFullscreenElement',
		'msFullscreenEnabled',
		'MSFullscreenChange',
		'MSFullscreenError',
	],
];

const nativeAPI = (() => {
	if (typeof document === 'undefined') {
		return false;
	}

	const unprefixedMethods = methodMap[0];
	const returnValue = {};

	for (const methodList of methodMap) {
		const exitFullscreenMethod = methodList?.[1];
		if (exitFullscreenMethod in document) {
			for (const [index, method] of methodList.entries()) {
				returnValue[unprefixedMethods[index]] = method;
			}

			return returnValue;
		}
	}

	return false;
})();

const eventNameMap = {
	change: nativeAPI.fullscreenchange,
	error: nativeAPI.fullscreenerror,
};

// eslint-disable-next-line import/no-mutable-exports
let screenfull = {
	// eslint-disable-next-line default-param-last
	request(element = document.documentElement, options) {
		return new Promise((resolve, reject) => {
			const onFullScreenEntered = () => {
				screenfull.off('change', onFullScreenEntered);
				resolve();
			};

			screenfull.on('change', onFullScreenEntered);

			const returnPromise = element[nativeAPI.requestFullscreen](options);

			if (returnPromise instanceof Promise) {
				returnPromise.then(onFullScreenEntered).catch(reject);
			}
		});
	},
	exit() {
		return new Promise((resolve, reject) => {
			if (!screenfull.isFullscreen) {
				resolve();
				return;
			}

			const onFullScreenExit = () => {
				screenfull.off('change', onFullScreenExit);
				resolve();
			};

			screenfull.on('change', onFullScreenExit);

			const returnPromise = document[nativeAPI.exitFullscreen]();

			if (returnPromise instanceof Promise) {
				returnPromise.then(onFullScreenExit).catch(reject);
			}
		});
	},
	toggle(element, options) {
		return screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);
	},
	onchange(callback) {
		screenfull.on('change', callback);
	},
	onerror(callback) {
		screenfull.on('error', callback);
	},
	on(event, callback) {
		const eventName = eventNameMap[event];
		if (eventName) {
			document.addEventListener(eventName, callback, false);
		}
	},
	off(event, callback) {
		const eventName = eventNameMap[event];
		if (eventName) {
			document.removeEventListener(eventName, callback, false);
		}
	},
	raw: nativeAPI,
};

Object.defineProperties(screenfull, {
	isFullscreen: {
		get: () => Boolean(document[nativeAPI.fullscreenElement]),
	},
	element: {
		enumerable: true,
		get: () => document[nativeAPI.fullscreenElement] ?? undefined,
	},
	isEnabled: {
		enumerable: true,
		// Coerce to boolean in case of old WebKit.
		get: () => Boolean(document[nativeAPI.fullscreenEnabled]),
	},
});

if (!nativeAPI) {
	screenfull = {isEnabled: false};
}

/* harmony default export */ const node_modules_screenfull = (screenfull);

;// ./src/js/components/Player/FullScreen.js


var FullScreen = function FullScreen() {
  return /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-fullscreen",
    "aria-label": wp.i18n.__('Full Screen', 'soft-multimedia-player'),
    title: wp.i18n.__('Full Screen', 'soft-multimedia-player'),
    onClick: function onClick() {
      return node_modules_screenfull.request(document.querySelector('.smp-media'));
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.Y5
    }
  });
};
/* harmony default export */ const Player_FullScreen = (FullScreen);
;// ./src/js/components/Player/PopupIcon.js


var PopupIcon = function PopupIcon(_ref) {
  var id = _ref.id,
    _onClick = _ref.onClick;
  return /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-open-popup",
    "aria-label": "Open Popup",
    title: "Open Popup",
    onClick: function onClick() {
      (0,functions/* openPopup */.PB)(id);
      _onClick();
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.lY
    }
  });
};
/* harmony default export */ const Player_PopupIcon = (PopupIcon);
;// ./src/js/components/Player/Download.js


var Download = function Download(_ref) {
  var handleDownload = _ref.handleDownload,
    downloadButton = _ref.downloadButton;
  return /*#__PURE__*/React.createElement(React.Fragment, null, !!downloadButton && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": "Download",
    title: "Download",
    className: classnames_default()("smp-prev"),
    onClick: function onClick() {
      return handleDownload();
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.RG
    }
  }));
};
/* harmony default export */ const Player_Download = (Download);
;// ./src/js/components/Player/Shuffle.js

var Shuffle = function Shuffle(_ref) {
  var shuffleActive = _ref.shuffleActive,
    handleShuffle = _ref.handleShuffle,
    shuffleButton = _ref.shuffleButton;
  return /*#__PURE__*/React.createElement(React.Fragment, null, !!shuffleButton && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": "Shuffle",
    title: "Shuffle",
    className: "multimedia-shuffle-button ".concat(shuffleActive === true ? 'active' : ''),
    onClick: function onClick() {
      return handleShuffle();
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.k4
    }
  }));
};
/* harmony default export */ const Player_Shuffle = (Shuffle);
;// ./src/js/components/Player/Playlist/PodcastPlaylist.js
function PodcastPlaylist_slicedToArray(r, e) { return PodcastPlaylist_arrayWithHoles(r) || PodcastPlaylist_iterableToArrayLimit(r, e) || PodcastPlaylist_unsupportedIterableToArray(r, e) || PodcastPlaylist_nonIterableRest(); }
function PodcastPlaylist_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PodcastPlaylist_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PodcastPlaylist_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PodcastPlaylist_arrayLikeToArray(r, a) : void 0; } }
function PodcastPlaylist_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PodcastPlaylist_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function PodcastPlaylist_arrayWithHoles(r) { if (Array.isArray(r)) return r; }



function PodcastPlaylist(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _useState = (0,external_React_.useState)(false),
    _useState2 = PodcastPlaylist_slicedToArray(_useState, 2),
    showFullDesc = _useState2[0],
    setShowFullDesc = _useState2[1];
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-thumbnail"
  }, value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  })), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-wrap"
  }, /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title"
  }, value.title), value.desc && /*#__PURE__*/React.createElement("p", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? value.desc : "".concat(value.desc.slice(0, 70), "...")
    }
  }), value.desc && /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "more-text",
    onClick: function onClick(e) {
      e.preventDefault();
      setShowFullDesc(!showFullDesc);
    }
  }, showFullDesc ? wp.i18n.__("See Less", "soft-multimedia-player") : wp.i18n.__("See More", "soft-multimedia-player")))), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-meta"
  }, playlistDuration && !rssfeed && /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration)), value.publishDate && /*#__PURE__*/React.createElement("span", {
    className: "publish-date"
  }, (0,functions/* formatUsDate */.Qu)(value.publishDate))), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-btn"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: "".concat(icon, " ").concat(isActive && playing ? '<span>Pause</span>' : '<span>Play</span>')
    }
  })));
}
;// ./src/js/components/Player/Playlist/PodcastPlaylistStyle1.js
function PodcastPlaylistStyle1_slicedToArray(r, e) { return PodcastPlaylistStyle1_arrayWithHoles(r) || PodcastPlaylistStyle1_iterableToArrayLimit(r, e) || PodcastPlaylistStyle1_unsupportedIterableToArray(r, e) || PodcastPlaylistStyle1_nonIterableRest(); }
function PodcastPlaylistStyle1_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PodcastPlaylistStyle1_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PodcastPlaylistStyle1_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PodcastPlaylistStyle1_arrayLikeToArray(r, a) : void 0; } }
function PodcastPlaylistStyle1_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PodcastPlaylistStyle1_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function PodcastPlaylistStyle1_arrayWithHoles(r) { if (Array.isArray(r)) return r; }



function PodcastPlaylistStyle1(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _useState = (0,external_React_.useState)(false),
    _useState2 = PodcastPlaylistStyle1_slicedToArray(_useState, 2),
    showFullDesc = _useState2[0],
    setShowFullDesc = _useState2[1];
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-thumbnail"
  }, value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  })), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-meta"
  }, value.publishDate && /*#__PURE__*/React.createElement("div", {
    className: "wrap"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.BJ
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "publish-date"
  }, (0,functions/* formatUsDate */.Qu)(value.publishDate))), playlistDuration && !rssfeed && /*#__PURE__*/React.createElement("div", {
    className: "wrap"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.pm
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration))), !!value.episodeLink && /*#__PURE__*/React.createElement("div", {
    className: "wrap"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.lY
    }
  }), /*#__PURE__*/React.createElement("a", {
    href: value.episodeLink,
    title: wp.i18n.__('Episode Link', 'soft-multimedia-player'),
    className: "external-link",
    popoverTarget: "_blank"
  }, wp.i18n.__('Episode Link', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title",
    onClick: function onClick() {
      return handleItemClick(index);
    }
  }, value.title), value.desc && /*#__PURE__*/React.createElement("p", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? value.desc : "".concat(value.desc.slice(0, 70), "...")
    }
  }), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "more-text",
    onClick: function onClick(e) {
      setShowFullDesc(!showFullDesc);
    }
  }, showFullDesc ? wp.i18n.__("See Less", "soft-multimedia-player") : wp.i18n.__("See More", "soft-multimedia-player"))), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-btn"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: "".concat(icon, " ").concat(isActive && playing ? '<span>Pause</span>' : '<span>Play</span>')
    }
  })));
}
;// ./src/js/components/Player/Playlist/GeneralPlaylist.js

function GeneralPlaylist(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: icon
    }
  }), value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  }), /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title",
    onClick: function onClick() {
      return handleItemClick(index);
    }
  }, value.title), value.duration && /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration)));
}
;// ./src/js/components/Player/Playlist/PodcastPlaylistStyle2.js
function PodcastPlaylistStyle2_slicedToArray(r, e) { return PodcastPlaylistStyle2_arrayWithHoles(r) || PodcastPlaylistStyle2_iterableToArrayLimit(r, e) || PodcastPlaylistStyle2_unsupportedIterableToArray(r, e) || PodcastPlaylistStyle2_nonIterableRest(); }
function PodcastPlaylistStyle2_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PodcastPlaylistStyle2_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PodcastPlaylistStyle2_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PodcastPlaylistStyle2_arrayLikeToArray(r, a) : void 0; } }
function PodcastPlaylistStyle2_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PodcastPlaylistStyle2_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function PodcastPlaylistStyle2_arrayWithHoles(r) { if (Array.isArray(r)) return r; }



function PodcastPlaylistStyle2(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _useState = (0,external_React_.useState)(false),
    _useState2 = PodcastPlaylistStyle2_slicedToArray(_useState, 2),
    showFullDesc = _useState2[0],
    setShowFullDesc = _useState2[1];
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-thumbnail"
  }, value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  })), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-wrap"
  }, /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title",
    onClick: function onClick() {
      return handleItemClick(index);
    }
  }, value.title), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-meta"
  }, value.publishDate && /*#__PURE__*/React.createElement("div", {
    className: "wrap"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.BJ
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "publish-date"
  }, (0,functions/* formatUsDate */.Qu)(value.publishDate))), playlistDuration && !rssfeed && /*#__PURE__*/React.createElement("div", {
    className: "wrap"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.pm
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration))), !!value.episodeLink && /*#__PURE__*/React.createElement("div", {
    className: "wrap"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.lY
    }
  }), /*#__PURE__*/React.createElement("a", {
    href: value.episodeLink,
    target: "_blank",
    title: wp.i18n.__('Episode Link', 'soft-multimedia-player'),
    className: "external-link"
  }, wp.i18n.__('Episode Link', 'soft-multimedia-player')))), value.desc && /*#__PURE__*/React.createElement("p", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? value.desc : "".concat(value.desc.slice(0, 70), "...")
    }
  }), !!value.desc && /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "more-text",
    onClick: function onClick(e) {
      setShowFullDesc(!showFullDesc);
    }
  }, /*#__PURE__*/React.createElement("span", null, showFullDesc ? wp.i18n.__("See Less", "soft-multimedia-player") : wp.i18n.__("See More", "soft-multimedia-player")), /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? icons_namespaceObject.bi : icons_namespaceObject.mL
    }
  }))), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-btn"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: "".concat(icon, " ").concat(isActive && playing ? '<span>Pause</span>' : '<span>Play</span>')
    }
  })));
}
;// ./src/js/components/Player/Playlist/PodcastPlaylistStyle3.js
function PodcastPlaylistStyle3_slicedToArray(r, e) { return PodcastPlaylistStyle3_arrayWithHoles(r) || PodcastPlaylistStyle3_iterableToArrayLimit(r, e) || PodcastPlaylistStyle3_unsupportedIterableToArray(r, e) || PodcastPlaylistStyle3_nonIterableRest(); }
function PodcastPlaylistStyle3_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PodcastPlaylistStyle3_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PodcastPlaylistStyle3_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PodcastPlaylistStyle3_arrayLikeToArray(r, a) : void 0; } }
function PodcastPlaylistStyle3_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PodcastPlaylistStyle3_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function PodcastPlaylistStyle3_arrayWithHoles(r) { if (Array.isArray(r)) return r; }



function PodcastPlaylistStyle3(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _useState = (0,external_React_.useState)(false),
    _useState2 = PodcastPlaylistStyle3_slicedToArray(_useState, 2),
    showFullDesc = _useState2[0],
    setShowFullDesc = _useState2[1];
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-thumbnail"
  }, value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  })), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-wrap"
  }, /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title",
    onClick: function onClick() {
      return handleItemClick(index);
    }
  }, value.title), value.desc && /*#__PURE__*/React.createElement("p", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? value.desc : "".concat(value.desc.slice(0, 70), "...")
    }
  }), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "more-text",
    onClick: function onClick(e) {
      setShowFullDesc(!showFullDesc);
    }
  }, showFullDesc ? wp.i18n.__("See Less", "soft-multimedia-player") : wp.i18n.__("See More", "soft-multimedia-player")), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-meta"
  }, playlistDuration && !rssfeed && /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration)), value.publishDate && /*#__PURE__*/React.createElement("span", {
    className: "publish-date"
  }, (0,functions/* formatUsDate */.Qu)(value.publishDate)))), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-btn"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: "".concat(icon, " ").concat(isActive && playing ? '<span>Pause</span>' : '<span>Play</span>')
    }
  })));
}
;// ./src/js/components/Player/Playlist/PodcastPlaylistStyle4.js
function PodcastPlaylistStyle4_slicedToArray(r, e) { return PodcastPlaylistStyle4_arrayWithHoles(r) || PodcastPlaylistStyle4_iterableToArrayLimit(r, e) || PodcastPlaylistStyle4_unsupportedIterableToArray(r, e) || PodcastPlaylistStyle4_nonIterableRest(); }
function PodcastPlaylistStyle4_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PodcastPlaylistStyle4_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PodcastPlaylistStyle4_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PodcastPlaylistStyle4_arrayLikeToArray(r, a) : void 0; } }
function PodcastPlaylistStyle4_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PodcastPlaylistStyle4_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function PodcastPlaylistStyle4_arrayWithHoles(r) { if (Array.isArray(r)) return r; }



function PodcastPlaylistStyle4(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _useState = (0,external_React_.useState)(false),
    _useState2 = PodcastPlaylistStyle4_slicedToArray(_useState, 2),
    showFullDesc = _useState2[0],
    setShowFullDesc = _useState2[1];
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-thumbnail"
  }, value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  })), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-wrap"
  }, /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title",
    onClick: function onClick() {
      return handleItemClick(index);
    }
  }, value.title), value.desc && /*#__PURE__*/React.createElement("p", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? value.desc : "".concat(value.desc.slice(0, 70), "...")
    }
  }), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "more-text",
    onClick: function onClick(e) {
      setShowFullDesc(!showFullDesc);
    }
  }, showFullDesc ? wp.i18n.__("See Less", "soft-multimedia-player") : wp.i18n.__("See More", "soft-multimedia-player")), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-meta"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: icon
    }
  }), playlistDuration && !rssfeed && /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration)), value.publishDate && /*#__PURE__*/React.createElement("span", {
    className: "publish-date"
  }, (0,functions/* formatUsDate */.Qu)(value.publishDate)))));
}
;// ./src/js/components/Player/Playlist/PodcastPlaylistStyle5.js
function PodcastPlaylistStyle5_slicedToArray(r, e) { return PodcastPlaylistStyle5_arrayWithHoles(r) || PodcastPlaylistStyle5_iterableToArrayLimit(r, e) || PodcastPlaylistStyle5_unsupportedIterableToArray(r, e) || PodcastPlaylistStyle5_nonIterableRest(); }
function PodcastPlaylistStyle5_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PodcastPlaylistStyle5_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PodcastPlaylistStyle5_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PodcastPlaylistStyle5_arrayLikeToArray(r, a) : void 0; } }
function PodcastPlaylistStyle5_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PodcastPlaylistStyle5_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function PodcastPlaylistStyle5_arrayWithHoles(r) { if (Array.isArray(r)) return r; }



function PodcastPlaylistStyle5(_ref) {
  var value = _ref.value,
    isActive = _ref.isActive,
    playing = _ref.playing,
    handleItemClick = _ref.handleItemClick,
    index = _ref.index,
    icon = _ref.icon,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _useState = (0,external_React_.useState)(false),
    _useState2 = PodcastPlaylistStyle5_slicedToArray(_useState, 2),
    showFullDesc = _useState2[0],
    setShowFullDesc = _useState2[1];
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-thumbnail"
  }, value.thumbnail && /*#__PURE__*/React.createElement("img", {
    src: value.thumbnail,
    alt: value.title
  })), /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "playlist-item-meta"
  }, playlistDuration && !rssfeed && /*#__PURE__*/React.createElement("span", {
    className: "duration"
  }, (0,functions/* formatTime */.fU)(value.duration)), value.publishDate && /*#__PURE__*/React.createElement("span", {
    className: "publish-date"
  }, (0,functions/* formatUsDate */.Qu)(value.publishDate))), /*#__PURE__*/React.createElement("span", {
    className: "playlist-item-title",
    onClick: function onClick() {
      return handleItemClick(index);
    }
  }, value.title), value.desc && /*#__PURE__*/React.createElement("p", {
    dangerouslySetInnerHTML: {
      __html: showFullDesc ? value.desc : "".concat(value.desc.slice(0, 70), "...")
    }
  }), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "more-text",
    onClick: function onClick(e) {
      setShowFullDesc(!showFullDesc);
    }
  }, showFullDesc ? wp.i18n.__("See Less", "soft-multimedia-player") : wp.i18n.__("See More", "soft-multimedia-player")), /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": isActive && playing ? "Pause" : "Play",
    title: isActive && playing ? "Pause" : "Play",
    onClick: function onClick() {
      return handleItemClick(index);
    },
    dangerouslySetInnerHTML: {
      __html: "".concat(icon, " ").concat(isActive && playing ? '<span>Pause</span>' : '<span>Play</span>')
    }
  })));
}
;// ./src/js/components/Player/Playlist.js
function Playlist_slicedToArray(r, e) { return Playlist_arrayWithHoles(r) || Playlist_iterableToArrayLimit(r, e) || Playlist_unsupportedIterableToArray(r, e) || Playlist_nonIterableRest(); }
function Playlist_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Playlist_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Playlist_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Playlist_arrayLikeToArray(r, a) : void 0; } }
function Playlist_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Playlist_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Playlist_arrayWithHoles(r) { if (Array.isArray(r)) return r; }










var TextControl = wp.components.TextControl;
function Playlist(_ref) {
  var id = _ref.id,
    type = _ref.type,
    skin = _ref.skin,
    items = _ref.items,
    item = _ref.item,
    setItem = _ref.setItem,
    playing = _ref.playing,
    setPlaying = _ref.setPlaying,
    playlistStyle = _ref.playlistStyle,
    searchPlaylist = _ref.searchPlaylist,
    playlistDuration = _ref.playlistDuration,
    rssfeed = _ref.rssfeed;
  var _React$useState = external_React_default().useState(""),
    _React$useState2 = Playlist_slicedToArray(_React$useState, 2),
    search = _React$useState2[0],
    setSearch = _React$useState2[1];
  var handleItemClick = function handleItemClick(index) {
    var isSameItem = item === index;
    setItem(index);
    if (playing && isSameItem) {
      setPlaying(false);
    } else {
      // Poster click
      (0,functions/* posterClick */.qQ)();
      setPlaying(true);
    }
  };
  var filteredItems = items.filter(function (_ref2) {
    var title = _ref2.title;
    return search ? title.toLowerCase().includes(search.toLowerCase()) : true;
  });
  return /*#__PURE__*/external_React_default().createElement("div", {
    className: "smp-".concat(id, " smp-playlist smp-playlist-").concat(skin, " ").concat(type, " playlist-").concat(playlistStyle)
  }, /*#__PURE__*/external_React_default().createElement("div", {
    className: "smp-playlist__header"
  }, searchPlaylist && /*#__PURE__*/external_React_default().createElement("div", {
    className: "smp-playlist__header-search"
  }, /*#__PURE__*/external_React_default().createElement(TextControl, {
    className: "smp-playlist__header-title",
    value: search,
    onChange: setSearch,
    placeholder: wp.i18n.__("Search", "multimedia-player")
  }), /*#__PURE__*/external_React_default().createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.$P
    }
  })), /*#__PURE__*/external_React_default().createElement("div", {
    className: "smp-playlist__header-duration"
  }, wp.i18n.__("Tracks: ", "multimedia-player"), ": ", items.length)), /*#__PURE__*/external_React_default().createElement("div", {
    className: "smp-playlist__body"
  }, filteredItems === null || filteredItems === void 0 ? void 0 : filteredItems.map(function (value, index) {
    var isActive = item === index;
    var icon = isActive && playing ? icons_namespaceObject.v7 : icons_namespaceObject.ZH;
    return /*#__PURE__*/external_React_default().createElement("div", {
      className: "playlist-item ".concat(isActive ? 'active' : '', " ").concat(playing && isActive ? 'playing' : ''),
      key: index
    }, type === 'podcast-player' && playlistStyle === 'default' && /*#__PURE__*/external_React_default().createElement(PodcastPlaylist, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      playlistDuration: playlistDuration,
      handleItemClick: handleItemClick,
      rssfeed: rssfeed
    }), type === 'podcast-player' && playlistStyle === 'style-1' && /*#__PURE__*/external_React_default().createElement(PodcastPlaylistStyle1, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      playlistDuration: playlistDuration,
      handleItemClick: handleItemClick,
      rssfeed: rssfeed
    }), type === 'podcast-player' && playlistStyle === 'style-2' && /*#__PURE__*/external_React_default().createElement(PodcastPlaylistStyle2, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      playlistDuration: playlistDuration,
      handleItemClick: handleItemClick,
      rssfeed: rssfeed
    }), type === 'podcast-player' && playlistStyle === 'style-3' && /*#__PURE__*/external_React_default().createElement(PodcastPlaylistStyle3, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      playlistDuration: playlistDuration,
      handleItemClick: handleItemClick,
      rssfeed: rssfeed
    }), type === 'podcast-player' && playlistStyle === 'style-4' && /*#__PURE__*/external_React_default().createElement(PodcastPlaylistStyle4, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      playlistDuration: playlistDuration,
      handleItemClick: handleItemClick,
      rssfeed: rssfeed
    }), type === 'podcast-player' && playlistStyle === 'style-5' && /*#__PURE__*/external_React_default().createElement(PodcastPlaylistStyle5, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      playlistDuration: playlistDuration,
      handleItemClick: handleItemClick,
      rssfeed: rssfeed
    }), type !== 'podcast-player' && /*#__PURE__*/external_React_default().createElement(GeneralPlaylist, {
      value: value,
      isActive: isActive,
      playing: playing,
      index: index,
      icon: icon,
      handleItemClick: handleItemClick
    }));
  })));
}
;// ./src/js/components/Player/Progressbar.js
function Progressbar_slicedToArray(r, e) { return Progressbar_arrayWithHoles(r) || Progressbar_iterableToArrayLimit(r, e) || Progressbar_unsupportedIterableToArray(r, e) || Progressbar_nonIterableRest(); }
function Progressbar_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Progressbar_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Progressbar_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Progressbar_arrayLikeToArray(r, a) : void 0; } }
function Progressbar_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Progressbar_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Progressbar_arrayWithHoles(r) { if (Array.isArray(r)) return r; }

var Progressbar_React = React,
  Progressbar_useState = Progressbar_React.useState;
var Progressbar = function Progressbar(_ref) {
  var type = _ref.type,
    skin = _ref.skin,
    player = _ref.player,
    setSeeking = _ref.setSeeking,
    currentTime = _ref.currentTime,
    setCurrentTime = _ref.setCurrentTime;
  var _useState = Progressbar_useState(false),
    _useState2 = Progressbar_slicedToArray(_useState, 2),
    pressed = _useState2[0],
    setPressed = _useState2[1];
  var duration = player === null || player === void 0 ? void 0 : player.getDuration();
  var handleSeekChange = function handleSeekChange(e) {
    if (setSeeking) {
      setSeeking(true);
      setPressed(true);
    }
    var seekTo = parseFloat(e.target.value);
    player.seekTo(seekTo, 'fraction');

    // Update current time immediately for smoother UI
    setCurrentTime(seekTo);
  };
  var handleSeekMouseDown = function handleSeekMouseDown() {
    setSeeking(true);
    setPressed(true);
  };
  var handleSeekMouseUp = function handleSeekMouseUp(e) {
    setSeeking(false);
    setPressed(false);
    if (player) {
      var seekTo = parseFloat(e.target.value);
      player.seekTo(seekTo, 'fraction');
    }
  };
  return /*#__PURE__*/React.createElement(React.Fragment, null, 'audio-player' === type && skin === 'skin8' ? /*#__PURE__*/React.createElement("div", {
    className: "smp-progressbar-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-time-duration"
  }, /*#__PURE__*/React.createElement("span", {
    className: "track-time-duration"
  }, (0,functions/* formatTime */.fU)(currentTime * duration)), "/", /*#__PURE__*/React.createElement("span", {
    className: "track-total-duration"
  }, (0,functions/* formatTime */.fU)(duration))), /*#__PURE__*/React.createElement("div", {
    className: "smp-progressbar ".concat(type),
    style: {
      '--smp-progress': "".concat(currentTime * 100, "%")
    }
  }, /*#__PURE__*/React.createElement("div", {
    className: "progress-slider"
  }, /*#__PURE__*/React.createElement("div", {
    className: "progress-track"
  }), /*#__PURE__*/React.createElement("div", {
    className: "progress-fill"
  }), /*#__PURE__*/React.createElement("div", {
    className: "progress-handle ".concat(pressed ? 'active' : '')
  }), /*#__PURE__*/React.createElement("input", {
    type: "range",
    min: 0,
    max: 0.999999,
    step: "any",
    value: currentTime,
    onChange: handleSeekChange,
    onMouseDown: handleSeekMouseDown,
    onMouseUp: handleSeekMouseUp,
    onTouchStart: handleSeekMouseDown,
    onTouchEnd: handleSeekMouseUp,
    className: "progress-bar"
  })))) : /*#__PURE__*/React.createElement(React.Fragment, null, 'podcast-player' === type && skin === 'skin3' && /*#__PURE__*/React.createElement("div", {
    className: "smp-time-duration"
  }, /*#__PURE__*/React.createElement("span", {
    className: "track-time-duration"
  }, (0,functions/* formatTime */.fU)(currentTime * duration)), "/", /*#__PURE__*/React.createElement("span", {
    className: "track-total-duration"
  }, (0,functions/* formatTime */.fU)(duration))), /*#__PURE__*/React.createElement("div", {
    className: "smp-progressbar ".concat(type),
    style: {
      '--smp-progress': "".concat(currentTime * 100, "%")
    }
  }, 'audio-player' === type && /*#__PURE__*/React.createElement("span", {
    className: "track-time-duration"
  }, (0,functions/* formatTime */.fU)(currentTime * duration)), /*#__PURE__*/React.createElement("div", {
    className: "progress-slider"
  }, /*#__PURE__*/React.createElement("div", {
    className: "progress-track"
  }), /*#__PURE__*/React.createElement("div", {
    className: "progress-fill"
  }), /*#__PURE__*/React.createElement("div", {
    className: "progress-handle ".concat(pressed ? 'active' : '')
  }), /*#__PURE__*/React.createElement("input", {
    type: "range",
    min: 0,
    max: 0.999999,
    step: "any",
    value: currentTime,
    onChange: handleSeekChange,
    onMouseDown: handleSeekMouseDown,
    onMouseUp: handleSeekMouseUp,
    onTouchStart: handleSeekMouseDown,
    onTouchEnd: handleSeekMouseUp,
    className: "progress-bar"
  })), 'audio-player' === type && /*#__PURE__*/React.createElement("span", {
    className: "track-total-duration"
  }, (0,functions/* formatTime */.fU)(duration)))), 'podcast-player' === type && 'skin3' !== skin && /*#__PURE__*/React.createElement("div", {
    className: "track-duration"
  }, /*#__PURE__*/React.createElement("span", {
    className: "track-time-duration"
  }, (0,functions/* formatTime */.fU)(currentTime * duration)), /*#__PURE__*/React.createElement("span", {
    className: "track-total-duration"
  }, (0,functions/* formatTime */.fU)(duration))), 'video-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "smp-time-duration"
  }, /*#__PURE__*/React.createElement("span", {
    className: "track-time-duration"
  }, (0,functions/* formatTime */.fU)(currentTime * duration)), "/", /*#__PURE__*/React.createElement("span", {
    className: "track-total-duration"
  }, (0,functions/* formatTime */.fU)(duration))));
};
/* harmony default export */ const Player_Progressbar = (Progressbar);
;// ./src/js/components/Player/Settings.js


var Settings = function Settings(_ref) {
  var settingButton = _ref.settingButton,
    playbackRate = _ref.playbackRate,
    handleSettings = _ref.handleSettings;
  var playbackSpeeds = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
  return settingButton && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
    type: "button",
    "data-tooltip-id": "playback-speed-tooltip",
    "data-tooltip-place": "top",
    className: "smp-settings"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.W0
    }
  })), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "playback-speed-tooltip",
    className: "playback-speed-tooltip",
    clickable: true,
    events: ['click']
  }, /*#__PURE__*/React.createElement("div", {
    onClick: function onClick(e) {
      return e.stopPropagation();
    },
    className: "playback-speed"
  }, playbackSpeeds.map(function (speed, index) {
    return /*#__PURE__*/React.createElement("button", {
      type: "button",
      key: index,
      className: "playback-speed-item ".concat(playbackRate === speed ? 'active' : ''),
      onClick: function onClick() {
        return handleSettings(speed);
      }
    }, speed, wp.i18n.__('x', 'soft-multimedia-player'));
  }))));
};
/* harmony default export */ const Player_Settings = (Settings);
// EXTERNAL MODULE: ./src/js/includes/ProModal.js
var ProModal = __webpack_require__(3117);
;// ./src/js/components/Player/Embed.js



var Embed = function Embed(_ref) {
  var embedding = _ref.embedding,
    id = _ref.id;
  return !!embedding && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-embed",
    onClick: function onClick() {
      if (!smp.isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to embed the player on any website or page.', 'soft-multimedia-player'));
        return;
      }
      (0,functions/* showEmbedModal */.so)(id);
    }
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.E6
    }
  })));
};
/* harmony default export */ const Player_Embed = (Embed);
;// ./src/js/components/Player/PlayerToggle.js

var PlayerToggle = function PlayerToggle(_ref) {
  var hide = _ref.hide,
    setHide = _ref.setHide,
    thumbnail = _ref.thumbnail;
  var title = hide ? wp.i18n.__('Show Player', 'soft-multimedia-player') : wp.i18n.__('Hide Player', 'soft-multimedia-player');
  var _smp$settings$minimiz = smp.settings.minimizePlayerImage,
    minimizePlayerImage = _smp$settings$minimiz === void 0 ? smp.pluginUrl + '/assets/images/minimize.png' : _smp$settings$minimiz;
  if (!minimizePlayerImage) {
    minimizePlayerImage = thumbnail;
  }
  return /*#__PURE__*/React.createElement("button", {
    "data-tip": title,
    "data-for": "player-toggle",
    type: "button",
    "aria-label": title,
    title: title,
    className: "smp-toggle ".concat(hide ? 'active' : ''),
    onClick: function onClick() {
      return setHide(!hide);
    }
  }, !hide && /*#__PURE__*/React.createElement("svg", {
    xmlns: "http://www.w3.org/2000/svg",
    width: "24",
    height: "24",
    viewBox: "0 0 24 24",
    fill: "none"
  }, /*#__PURE__*/React.createElement("g", {
    clipPath: "url(#clip0_18_81)"
  }, /*#__PURE__*/React.createElement("path", {
    d: "M24 22.1768C24 22.381 24 22.5852 24 22.7894C23.8687 23.0301 23.7812 23.3072 23.5916 23.4968C23.3801 23.7083 23.0884 23.8469 22.8259 24.0146C22.5634 24.0146 22.2935 24.0146 22.031 24.0146C21.4257 23.7666 21.0319 23.2634 20.5943 22.8186C17.8013 20.0255 15.0082 17.2325 12.2151 14.4394C12.1495 14.3737 12.1057 14.2862 12.0474 14.206C11.938 14.3081 11.8724 14.3665 11.814 14.4248C8.87511 17.3637 5.93619 20.2954 3.00456 23.2416C2.68368 23.5624 2.3701 23.876 1.92525 24.0146C1.6773 24.0146 1.42206 24.0146 1.17411 24.0146C0.853236 23.8614 0.517776 23.7229 0.320875 23.4093C0.196901 23.2197 0.109389 23.0009 0.00729262 22.7967C0.00729262 22.5779 0.00729262 22.3592 0.00729262 22.1404C0.211486 21.5424 0.692799 21.1559 1.11577 20.7329C3.94531 17.9034 6.78213 15.0665 9.61167 12.237C9.6773 12.1714 9.75752 12.1276 9.85962 12.0547C9.72835 11.9453 9.65542 11.8797 9.5825 11.8067C6.78213 8.99909 3.98906 6.20602 1.19599 3.41294C0.743847 2.9608 0.226071 2.55971 0 1.92525C0 1.69189 0 1.45852 0 1.22516C0.0291705 1.16682 0.0729262 1.11577 0.094804 1.05014C0.291705 0.539654 0.656336 0.211486 1.17411 0.0656335C1.23974 0.0510483 1.29809 0.0218778 1.35643 0C1.4804 0 1.60438 0 1.72835 0C2.35552 0.116682 2.74932 0.576117 3.17229 0.991796C6.05287 3.87967 8.94075 6.76026 11.8213 9.64813C11.8724 9.69918 11.9088 9.7794 11.9745 9.8815C12.0766 9.75752 12.1276 9.69189 12.186 9.63355C15.1978 6.6217 18.2097 3.60985 21.2142 0.597995C21.4622 0.350046 21.732 0.153145 22.0748 0.0583409C22.1039 0.0510483 22.1331 0.0218778 22.1623 0C22.3008 0 22.4467 0 22.5852 0C22.6071 0.0145852 22.629 0.0437557 22.6509 0.0437557C23.2634 0.131267 23.6645 0.481313 23.8906 1.04284C23.9198 1.11577 23.9562 1.1887 23.9854 1.26162C23.9854 1.4804 23.9854 1.69918 23.9854 1.91796C23.7521 2.567 23.2197 2.97539 22.7603 3.44211C19.9672 6.23519 17.1741 9.02826 14.381 11.8213C14.3154 11.887 14.2279 11.9234 14.1404 11.9891C14.2571 12.0985 14.3154 12.1495 14.3665 12.2005C17.2762 15.1103 20.186 18.0201 23.0957 20.9298C23.4822 21.2944 23.8614 21.6518 24 22.1768Z",
    fill: "#010101"
  })), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
    id: "clip0_18_81"
  }, /*#__PURE__*/React.createElement("rect", {
    width: "24",
    height: "24",
    fill: "white"
  })))), hide && /*#__PURE__*/React.createElement("img", {
    src: minimizePlayerImage
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "player-toggle",
    place: "left",
    effect: "solid",
    className: "smp-tooltip"
  }));
};
/* harmony default export */ const Player_PlayerToggle = (PlayerToggle);
;// ./src/js/components/Player/Skins/Audio/AudioSkin0.js

var AudioSkin0 = function AudioSkin0(_ref) {
  var data = _ref.data,
    playerType = _ref.playerType,
    hide = _ref.hide,
    setHide = _ref.setHide;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details-wrap"
  }, thumbnail && /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta)))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, volumeControl, popupIcon, download, settings, embed, 'sticky' === playerType && /*#__PURE__*/React.createElement(Player_PlayerToggle, {
    hide: hide,
    thumbnail: thumbnail,
    setHide: setHide
  }))));
};
/* harmony default export */ const Audio_AudioSkin0 = (AudioSkin0);
;// ./src/js/components/Player/Skins/Audio/AudioSkin1.js
var AudioSkin1 = function AudioSkin1(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, volumeControl, popupIcon, download, settings, embed)));
};
/* harmony default export */ const Audio_AudioSkin1 = (AudioSkin1);
;// ./src/js/components/Player/Skins/Audio/AudioSkin2.js
function AudioSkin2(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, playPause, volumeControl, playlistIcon, popupIcon, download, shuffle, settings, embed));
}
;// ./src/js/components/Player/Skins/Audio/AudioSkin3.js
var AudioSkin3 = function AudioSkin3(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, playPause, volumeControl, shuffle, playlistIcon, popupIcon, download, settings, embed)));
};
/* harmony default export */ const Audio_AudioSkin3 = (AudioSkin3);
;// ./src/js/components/Player/Skins/Audio/AudioSkin4.js
var AudioSkin4 = function AudioSkin4(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, playPause, volumeControl, shuffle, playlistIcon, popupIcon, download, settings, embed)));
};
/* harmony default export */ const Audio_AudioSkin4 = (AudioSkin4);
;// ./src/js/components/Player/Skins/Audio/AudioSkin5.js
var AudioSkin5 = function AudioSkin5(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, /*#__PURE__*/React.createElement("div", {
    className: "thumbnail-controls"
  }, /*#__PURE__*/React.createElement("div", {
    className: "controls"
  }, popupIcon, volumeControl, playlistIcon, shuffle), /*#__PURE__*/React.createElement("div", {
    className: "thumbnail"
  }, /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), progressbar)), /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, settings, playPause, download, embed)));
};
/* harmony default export */ const Audio_AudioSkin5 = (AudioSkin5);
;// ./src/js/components/Player/Skins/Audio/AudioSkin6.js
var AudioSkin6 = function AudioSkin6(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, playPause, volumeControl, shuffle, playlistIcon, settings, popupIcon, download, embed)), /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }));
};
/* harmony default export */ const Audio_AudioSkin6 = (AudioSkin6);
;// ./src/js/components/Player/Skins/Audio/AudioSkin7.js
var AudioSkin7 = function AudioSkin7(_ref) {
  var data = _ref.data;
  var playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, playPause, volumeControl, playlistIcon, shuffle, settings, popupIcon, download, embed)));
};
/* harmony default export */ const Audio_AudioSkin7 = (AudioSkin7);
;// ./src/js/components/Player/Skins/Audio/AudioSkin8.js
var AudioSkin8 = function AudioSkin8(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, /*#__PURE__*/React.createElement("div", {
    className: "controls-play-pause"
  }, playPause), progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, volumeControl, playlistIcon, shuffle, download, settings, popupIcon, embed)));
};
/* harmony default export */ const Audio_AudioSkin8 = (AudioSkin8);
;// ./src/js/components/Player/Skins/Audio/AudioSkin9.js
var AudioSkin9 = function AudioSkin9(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, volumeControl, popupIcon, download, settings, embed)), /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }));
};
/* harmony default export */ const Audio_AudioSkin9 = (AudioSkin9);
;// ./src/js/components/Player/VideoSettings.js
function VideoSettings_slicedToArray(r, e) { return VideoSettings_arrayWithHoles(r) || VideoSettings_iterableToArrayLimit(r, e) || VideoSettings_unsupportedIterableToArray(r, e) || VideoSettings_nonIterableRest(); }
function VideoSettings_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function VideoSettings_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return VideoSettings_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? VideoSettings_arrayLikeToArray(r, a) : void 0; } }
function VideoSettings_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function VideoSettings_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function VideoSettings_arrayWithHoles(r) { if (Array.isArray(r)) return r; }


var FormToggle = wp.components.FormToggle;
var _wp$element = wp.element,
  VideoSettings_useState = _wp$element.useState,
  VideoSettings_useEffect = _wp$element.useEffect;
var VideoSettings = function VideoSettings(_ref) {
  var _ref$sourceType = _ref.sourceType,
    sourceType = _ref$sourceType === void 0 ? 'local' : _ref$sourceType,
    playbackRate = _ref.playbackRate,
    handlePlaybackRate = _ref.handlePlaybackRate,
    shuffleButton = _ref.shuffleButton,
    handleShuffle = _ref.handleShuffle,
    downloadButton = _ref.downloadButton,
    handleDownload = _ref.handleDownload,
    embedding = _ref.embedding,
    id = _ref.id,
    subtitle = _ref.subtitle,
    showSubtitle = _ref.showSubtitle,
    handleSubtitleVisibility = _ref.handleSubtitleVisibility,
    shuffleActive = _ref.shuffleActive;
  var _smp = smp,
    isPro = _smp.isPro;
  var _useState = VideoSettings_useState(false),
    _useState2 = VideoSettings_slicedToArray(_useState, 2),
    showSettings = _useState2[0],
    setShowSettings = _useState2[1];
  var _useState3 = VideoSettings_useState('main'),
    _useState4 = VideoSettings_slicedToArray(_useState3, 2),
    activeMenu = _useState4[0],
    setActiveMenu = _useState4[1];
  var _useState5 = VideoSettings_useState(false),
    _useState6 = VideoSettings_slicedToArray(_useState5, 2),
    isExiting = _useState6[0],
    setIsExiting = _useState6[1];
  var speeds = [{
    value: 0.25,
    label: '0.25x'
  }, {
    value: 0.5,
    label: '0.5x'
  }, {
    value: 0.75,
    label: '0.75x'
  }, {
    value: 1,
    label: 'Normal'
  }, {
    value: 1.25,
    label: '1.25x'
  }, {
    value: 1.5,
    label: '1.5x'
  }, {
    value: 1.75,
    label: '1.75x'
  }, {
    value: 2,
    label: '2x'
  }];
  var handleToggleSettings = function handleToggleSettings() {
    setShowSettings(!showSettings);
    !!showSettings && setActiveMenu('main');
  };
  var handleMenuChange = function handleMenuChange(menu) {
    setActiveMenu(menu);
  };
  var handleBackToMain = function handleBackToMain() {
    setActiveMenu('main');
  };
  var handleClose = function handleClose() {
    setTimeout(function () {
      setShowSettings(!showSettings);
      setActiveMenu('main');
    }, 150);
  };

  // Close settings menu on outside click
  VideoSettings_useEffect(function () {
    var handleClickOutside = function handleClickOutside(e) {
      if (!e.target.closest('.settings-button') && !e.target.closest('.settings-menu') && !e.target.closest('.settings-item') && !e.target.closest('.back-button')) {
        handleClose();
      }
    };
    if (showSettings) {
      document.addEventListener('mousedown', handleClickOutside);
    }
    return function () {
      document.removeEventListener('mousedown', handleClickOutside);
    };
  }, [showSettings]);
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
    type: "button",
    onClick: handleToggleSettings,
    className: "smp-video-settings-btn"
  }, /*#__PURE__*/React.createElement("span", {
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.W0
    }
  })), !!showSettings && /*#__PURE__*/React.createElement("div", {
    className: "smp-video-settings-menu ".concat(isExiting ? 'deactive' : 'active')
  }, activeMenu === 'main' && /*#__PURE__*/React.createElement("div", {
    className: "menu-content ".concat(activeMenu === 'main' ? 'menu-active' : '')
  }, /*#__PURE__*/React.createElement("ul", {
    className: "settings-list"
  }, !!playbackRate && /*#__PURE__*/React.createElement("li", {
    className: "settings-item",
    onClick: function onClick() {
      return handleMenuChange('playback-speed');
    }
  }, /*#__PURE__*/React.createElement("span", {
    className: "settings-icon",
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject._W
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "settings-label"
  }, wp.i18n.__('Playback Speed', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("span", {
    className: "arrow"
  }, "\u203A")), !!subtitle && /*#__PURE__*/React.createElement("li", {
    className: "settings-item",
    onClick: function onClick() {
      handleMenuChange('main');
      handleSubtitleVisibility();
    }
  }, /*#__PURE__*/React.createElement("span", {
    className: "settings-icon",
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.subtitle
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "settings-label"
  }, wp.i18n.__('Subtitle', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(FormToggle, {
    checked: showSubtitle
  })), !!shuffleButton && /*#__PURE__*/React.createElement("li", {
    className: "settings-item shuffle-item ".concat(shuffleActive ? 'active' : ''),
    onClick: function onClick() {
      handleMenuChange('main');
      handleShuffle();
    }
  }, /*#__PURE__*/React.createElement("span", {
    className: "settings-icon",
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.k4
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "settings-label"
  }, wp.i18n.__('Shuffle', 'soft-multimedia-player'))), !!downloadButton && 'local' === sourceType && /*#__PURE__*/React.createElement("li", {
    className: "settings-item",
    onClick: function onClick() {
      handleMenuChange('main');
      handleDownload();
    }
  }, /*#__PURE__*/React.createElement("span", {
    className: "settings-icon",
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.RG
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "settings-label"
  }, wp.i18n.__('Download', 'soft-multimedia-player'))), !!embedding && /*#__PURE__*/React.createElement("li", {
    className: "settings-item",
    onClick: function onClick() {
      handleMenuChange('main');
      if (!isPro) {
        showProModal(wp.i18n.__('Upgrade to PRO to embed the player on any website or page.', 'soft-multimedia-player'));
        return;
      }
      Swal.fire({
        title: wp.i18n.__('Embed Code', 'soft-multimedia-player'),
        html: "<p class=\"embed-code-title\">".concat(wp.i18n.__('Insert the following code into any webpage to showcase the player.', 'soft-multimedia-player'), "</p><textarea class=\"embed-code\" rows=\"5\" readonly>", "<iframe src=\"".concat(smp.homeUrl, "/?multimedia_player=").concat(id, "&embed\" width=\"100%\" height=\"350\" frameborder=\"0\"></iframe>"), "</textarea>"),
        showCloseButton: true,
        showCancelButton: false,
        confirmButtonText: wp.i18n.__('Copy', 'soft-multimedia-player'),
        confirmButtonColor: '#40CE87',
        customClass: {
          container: 'smp-swal embed-code-swal'
        },
        didOpen: function didOpen() {
          document.querySelector('.embed-code').select();
        }
      }).then(function (result) {
        if (result.value) {
          document.querySelector('.embed-code').select();
          document.execCommand("copy");
          Swal.fire({
            title: wp.i18n.__('Copied!', 'soft-multimedia-player'),
            text: wp.i18n.__('Embed code copied to clipboard', 'soft-multimedia-player'),
            icon: 'success',
            toast: true,
            showConfirmButton: false,
            timer: 3000,
            timerProgressBar: true
          });
        }
      });
    }
  }, /*#__PURE__*/React.createElement("span", {
    className: "settings-icon",
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.E6
    }
  }), /*#__PURE__*/React.createElement("span", {
    className: "settings-label"
  }, wp.i18n.__('Embed', 'soft-multimedia-player'))))), activeMenu === 'playback-speed' && /*#__PURE__*/React.createElement("div", {
    className: "menu-content menu-active"
  }, /*#__PURE__*/React.createElement("div", {
    className: "menu-header"
  }, /*#__PURE__*/React.createElement("button", {
    className: "back-button",
    onClick: handleBackToMain
  }, /*#__PURE__*/React.createElement("svg", {
    stroke: "currentColor",
    fill: "none",
    "stroke-width": "2",
    viewBox: "0 0 24 24",
    "stroke-linecap": "round",
    "stroke-linejoin": "round",
    height: "18",
    width: "18",
    xmlns: "http://www.w3.org/2000/svg"
  }, /*#__PURE__*/React.createElement("polyline", {
    points: "15 18 9 12 15 6"
  }))), /*#__PURE__*/React.createElement("h3", {
    className: "menu-title"
  }, wp.i18n.__('Playback Speed', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("ul", {
    className: "settings-list"
  }, speeds.map(function (item) {
    return /*#__PURE__*/React.createElement("li", {
      key: item.value,
      className: "settings-item",
      onClick: function onClick() {
        handlePlaybackRate(item.value);
        handleMenuChange('main');
      }
    }, /*#__PURE__*/React.createElement("span", {
      className: "settings-label ".concat(playbackRate === item.value ? 'active' : '')
    }, item.label));
  })))));
};
/* harmony default export */ const Player_VideoSettings = (VideoSettings);
;// ./src/js/components/Player/Skins/Video/VideoSkin0.js

function VideoSkin0(_ref) {
  var data = _ref.data,
    playerType = _ref.playerType,
    hide = _ref.hide,
    setHide = _ref.setHide;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause, progressbar, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed, 'sticky' === playerType && /*#__PURE__*/React.createElement(Player_PlayerToggle, {
    hide: hide,
    thumbnail: thumbnail,
    setHide: setHide
  })));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin1.js
function VideoSkin1(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause, progressbar, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin2.js
function VideoSkin2(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, playPause, volumeControl, playlistIcon, fullscreen, popupIcon, shuffle, videoSettings, download, embed));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin3.js
function VideoSkin3(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "smp-title"
  }, title)), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause, progressbar, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin4.js
function VideoSkin4(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause, progressbar, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin5.js
function VideoSkin5(_ref) {
  var data = _ref.data;
  var playPause = data.playPause;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin6.js
function VideoSkin6(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed, progressbar));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin7.js
function VideoSkin7(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, playPause, progressbar, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed));
}
;// ./src/js/components/Player/Skins/Video/VideoSkin8.js
function VideoSkin8(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    fullscreen = data.fullscreen,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    embed = data.embed,
    videoSettings = data.videoSettings;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrapper"
  }, playPause, volumeControl, videoSettings, fullscreen, playlistIcon, popupIcon, shuffle, download, embed)));
}
;// ./src/js/components/Player/Skins/Podcast/PodcastSkin0.js

var PodcastSkin0 = function PodcastSkin0(_ref) {
  var data = _ref.data,
    playerType = _ref.playerType,
    hide = _ref.hide,
    setHide = _ref.setHide;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    season = data.season,
    episode = data.episode,
    episodeType = data.episodeType,
    explicit = data.explicit,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, thumbnail && /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), /*#__PURE__*/React.createElement("div", {
    className: "items-wrap"
  }, (season === null || season === void 0 ? void 0 : season.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Season: ".concat(season), "multimedia-player")), (episode === null || episode === void 0 ? void 0 : episode.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode: ".concat(episode), "multimedia-player")), (episodeType === null || episodeType === void 0 ? void 0 : episodeType.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode Type: ".concat(episodeType), "multimedia-player")), (explicit === null || explicit === void 0 ? void 0 : explicit.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Explicit: ".concat(explicit), "multimedia-player"))), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, volumeControl, popupIcon, download, settings, embed, 'sticky' === playerType && /*#__PURE__*/React.createElement(Player_PlayerToggle, {
    hide: hide,
    thumbnail: thumbnail,
    setHide: setHide
  }))));
};
/* harmony default export */ const Podcast_PodcastSkin0 = (PodcastSkin0);
;// ./src/js/components/Player/Skins/Podcast/PodcastSkin1.js
var PodcastSkin1 = function PodcastSkin1(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    season = data.season,
    episode = data.episode,
    episodeType = data.episodeType,
    explicit = data.explicit,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, thumbnail && /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), /*#__PURE__*/React.createElement("div", {
    className: "items-wrap"
  }, (season === null || season === void 0 ? void 0 : season.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Season: ".concat(season), "smp")), (episode === null || episode === void 0 ? void 0 : episode.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode: ".concat(episode), "smp")), (episodeType === null || episodeType === void 0 ? void 0 : episodeType.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode Type: ".concat(episodeType), "smp")), (explicit === null || explicit === void 0 ? void 0 : explicit.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Explicit: ".concat(explicit), "smp"))), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, popupIcon, volumeControl, download, settings, embed)));
};
/* harmony default export */ const Podcast_PodcastSkin1 = (PodcastSkin1);
;// ./src/js/components/Player/Skins/Podcast/PodcastSkin2.js
var PodcastSkin2 = function PodcastSkin2(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    season = data.season,
    episode = data.episode,
    episodeType = data.episodeType,
    explicit = data.explicit,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), thumbnail && /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "items-wrap"
  }, (season === null || season === void 0 ? void 0 : season.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Season: ".concat(season), "multimedia-player")), (episode === null || episode === void 0 ? void 0 : episode.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode: ".concat(episode), "multimedia-player")), (episodeType === null || episodeType === void 0 ? void 0 : episodeType.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode Type: ".concat(episodeType), "multimedia-player")), (explicit === null || explicit === void 0 ? void 0 : explicit.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Explicit: ".concat(explicit), "multimedia-player"))), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, volumeControl, popupIcon, download, settings, embed)));
};
/* harmony default export */ const Podcast_PodcastSkin2 = (PodcastSkin2);
;// ./src/js/components/Player/Skins/Podcast/PodcastSkin3.js
var PodcastSkin3 = function PodcastSkin3(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, /*#__PURE__*/React.createElement("div", {
    className: "controls-play-pause"
  }, playPause), /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap-time-progress"
  }, progressbar), /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, volumeControl, playlistIcon, shuffle, download, settings, popupIcon, embed)));
};
/* harmony default export */ const Podcast_PodcastSkin3 = (PodcastSkin3);
;// ./src/js/components/Player/Skins/Podcast/PodcastSkin4.js
var PodcastSkin4 = function PodcastSkin4(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    season = data.season,
    episode = data.episode,
    episodeType = data.episodeType,
    explicit = data.explicit,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), /*#__PURE__*/React.createElement("div", {
    className: "items-wrap"
  }, (season === null || season === void 0 ? void 0 : season.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Season: ".concat(season), "multimedia-player")), (episode === null || episode === void 0 ? void 0 : episode.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode: ".concat(episode), "multimedia-player")), (episodeType === null || episodeType === void 0 ? void 0 : episodeType.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode Type: ".concat(episodeType), "multimedia-player")), (explicit === null || explicit === void 0 ? void 0 : explicit.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Explicit: ".concat(explicit), "multimedia-player"))), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta)), thumbnail && /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  })), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playPause, volumeControl, playlistIcon, popupIcon, download, settings, embed)));
};
/* harmony default export */ const Podcast_PodcastSkin4 = (PodcastSkin4);
;// ./src/js/components/Player/Skins/Podcast/PodcastSkin5.js
var PodcastSkin5 = function PodcastSkin5(_ref) {
  var data = _ref.data;
  var title = data.title,
    meta = data.meta,
    thumbnail = data.thumbnail,
    season = data.season,
    episode = data.episode,
    episodeType = data.episodeType,
    explicit = data.explicit,
    playPause = data.playPause,
    download = data.download,
    shuffle = data.shuffle,
    popupIcon = data.popupIcon,
    playlistIcon = data.playlistIcon,
    volumeControl = data.volumeControl,
    progressbar = data.progressbar,
    settings = data.settings,
    embed = data.embed;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-details"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-meta-wrap"
  }, thumbnail && /*#__PURE__*/React.createElement("img", {
    src: thumbnail,
    className: "smp-thumbnail",
    alt: title
  }), /*#__PURE__*/React.createElement("div", {
    className: "items-wrap"
  }, (season === null || season === void 0 ? void 0 : season.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Season: ".concat(season), "multimedia-player")), (episode === null || episode === void 0 ? void 0 : episode.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode: ".concat(episode), "multimedia-player")), (episodeType === null || episodeType === void 0 ? void 0 : episodeType.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Episode Type: ".concat(episodeType), "multimedia-player")), (explicit === null || explicit === void 0 ? void 0 : explicit.length) > 0 && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, wp.i18n.__("Explicit: ".concat(explicit), "multimedia-player"))), title && /*#__PURE__*/React.createElement("span", {
    className: "smp-title"
  }, title), meta && /*#__PURE__*/React.createElement("span", {
    className: "smp-meta"
  }, meta))), /*#__PURE__*/React.createElement("div", {
    className: "smp-controls"
  }, progressbar, /*#__PURE__*/React.createElement("div", {
    className: "controls-wrap"
  }, shuffle, playlistIcon, playPause, volumeControl, popupIcon, download, settings, embed)));
};
/* harmony default export */ const Podcast_PodcastSkin5 = (PodcastSkin5);
;// ./src/js/components/Player.js
/* module decorator */ module = __webpack_require__.hmd(module);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function Player_slicedToArray(r, e) { return Player_arrayWithHoles(r) || Player_iterableToArrayLimit(r, e) || Player_unsupportedIterableToArray(r, e) || Player_nonIterableRest(); }
function Player_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Player_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Player_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Player_arrayLikeToArray(r, a) : void 0; } }
function Player_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Player_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Player_arrayWithHoles(r) { if (Array.isArray(r)) return r; }






// Player components











// Skin components



























var Player_React = React,
  Player_useState = Player_React.useState,
  Player_useEffect = Player_React.useEffect,
  Player_useRef = Player_React.useRef;
function Player(_ref) {
  var data = _ref.data,
    isPreview = _ref.isPreview,
    previewDevice = _ref.previewDevice;
  var _smp = smp,
    isPro = _smp.isPro,
    settings = _smp.settings,
    isAdmin = _smp.isAdmin;
  var alwaysSticky = settings.alwaysSticky,
    _settings$stickyPosit = settings.stickyPosition,
    stickyPosition = _settings$stickyPosit === void 0 ? 'bottom' : _settings$stickyPosit,
    _settings$stickyStyle = settings.stickyStyle,
    stickyStyle = _settings$stickyStyle === void 0 ? 'fullwidth' : _settings$stickyStyle,
    _settings$floatingPos = settings.floatingPosition,
    floatingPosition = _settings$floatingPos === void 0 ? 'bottom-right' : _settings$floatingPos,
    draggableFloating = settings.draggableFloating,
    openPlaylist = settings.openPlaylist,
    alwaysPopup = settings.alwaysPopup,
    playlistHeight = settings.playlistHeight,
    playlistHeightCustom = settings.playlistHeightCustom;

  // data
  var id = data.id,
    _data$skin = data.skin,
    skin = _data$skin === void 0 ? 'skin0' : _data$skin,
    type = data.type,
    playerType = data.playerType,
    _data$items = data.items,
    items = _data$items === void 0 ? [] : _data$items,
    _data$podcastItems = data.podcastItems,
    podcastItems = _data$podcastItems === void 0 ? [] : _data$podcastItems,
    _data$volumeButton = data.volumeButton,
    volumeButton = _data$volumeButton === void 0 ? true : _data$volumeButton,
    _data$progressBar = data.progressBar,
    progressBar = _data$progressBar === void 0 ? true : _data$progressBar,
    _data$previousNextBut = data.previousNextButton,
    previousNextButton = _data$previousNextBut === void 0 ? true : _data$previousNextBut,
    rewindForwardButton = data.rewindForwardButton,
    fullScreenButton = data.fullScreenButton,
    _data$playlist = data.playlist,
    playlist = _data$playlist === void 0 ? type === 'podcast-player' : _data$playlist,
    _data$playlistStyle = data.playlistStyle,
    playlistStyle = _data$playlistStyle === void 0 ? 'default' : _data$playlistStyle,
    searchPlaylist = data.searchPlaylist,
    playlistDuration = data.playlistDuration,
    popup = data.popup,
    shuffleButton = data.shuffleButton,
    downloadButton = data.downloadButton,
    settingButton = data.settingButton,
    skipSilence = data.skipSilence,
    autoPlay = data.autoPlay,
    subtitle = data.subtitle,
    keyboardShortcuts = data.keyboardShortcuts,
    embedding = data.embedding,
    schema = data.schema,
    _data$bg_type = data.bg_type,
    bg_type = _data$bg_type === void 0 ? 'color' : _data$bg_type,
    _data$color_type = data.color_type,
    color_type = _data$color_type === void 0 ? 'solid' : _data$color_type,
    _data$playlist_bg_col = data.playlist_bg_color,
    playlist_bg_color = _data$playlist_bg_col === void 0 ? '#222222E6' : _data$playlist_bg_col,
    _data$bg_color = data.bg_color,
    bg_color = _data$bg_color === void 0 ? type === 'video-player' ? '#000' : type === 'podcast-player' ? '#141313' : '#FFD3E4' : _data$bg_color,
    _data$width = data.width,
    width = _data$width === void 0 ? '350px' : _data$width,
    _data$width_mobile = data.width_mobile,
    width_mobile = _data$width_mobile === void 0 ? '320px' : _data$width_mobile,
    _data$border_radius = data.border_radius,
    border_radius = _data$border_radius === void 0 ? 10 : _data$border_radius,
    bg_image = data.bg_image,
    _data$text_color = data.text_color,
    text_color = _data$text_color === void 0 ? '#5C637E' : _data$text_color,
    progressbar_bg_color = data.progressbar_bg_color,
    progressbar_fill_color = data.progressbar_fill_color,
    progressbar_handle_color = data.progressbar_handle_color,
    progressbar_handle_border_size = data.progressbar_handle_border_size,
    progressbar_handle_border_style = data.progressbar_handle_border_style,
    progressbar_handle_border_color = data.progressbar_handle_border_color,
    button = data.button,
    play_pause_icon_color = data.play_pause_icon_color,
    play_pause_bg_color = data.play_pause_bg_color,
    button_color = data.button_color,
    button_bg_color = data.button_bg_color,
    button_border_size = data.button_border_size,
    button_border_style = data.button_border_style,
    button_border_color = data.button_border_color,
    button_border_radius = data.button_border_radius,
    _data$box_shadow = data.box_shadow,
    box_shadow = _data$box_shadow === void 0 ? false : _data$box_shadow,
    _data$box_shadow_h = data.box_shadow_h,
    box_shadow_h = _data$box_shadow_h === void 0 ? 0 : _data$box_shadow_h,
    _data$box_shadow_v = data.box_shadow_v,
    box_shadow_v = _data$box_shadow_v === void 0 ? 0 : _data$box_shadow_v,
    _data$box_shadow_blur = data.box_shadow_blur,
    box_shadow_blur = _data$box_shadow_blur === void 0 ? 0 : _data$box_shadow_blur,
    _data$box_shadow_spre = data.box_shadow_spread,
    box_shadow_spread = _data$box_shadow_spre === void 0 ? 0 : _data$box_shadow_spre,
    _data$box_shadow_colo = data.box_shadow_color,
    box_shadow_color = _data$box_shadow_colo === void 0 ? '#000000' : _data$box_shadow_colo,
    _data$box_shadow_type = data.box_shadow_type,
    box_shadow_type = _data$box_shadow_type === void 0 ? '' : _data$box_shadow_type,
    _data$typography = data.typography,
    typography = _data$typography === void 0 ? false : _data$typography,
    _data$font_family = data.font_family,
    font_family = _data$font_family === void 0 ? '' : _data$font_family,
    _data$font_weight = data.font_weight,
    font_weight = _data$font_weight === void 0 ? '700' : _data$font_weight,
    _data$text_align = data.text_align,
    text_align = _data$text_align === void 0 ? 'center' : _data$text_align,
    _data$font_size = data.font_size,
    font_size = _data$font_size === void 0 ? 16 : _data$font_size,
    _data$line_height = data.line_height,
    line_height = _data$line_height === void 0 ? 18 : _data$line_height,
    _data$letter_spacing = data.letter_spacing,
    letter_spacing = _data$letter_spacing === void 0 ? 1 : _data$letter_spacing,
    rssfeed = data.rssfeed,
    rssfeedUrl = data.rssfeedUrl;
  items = rssfeed ? podcastItems : items;
  var player_title_align = text_align === 'left' ? 'row' : text_align === 'right' ? 'row-reverse' : 'column';

  //check if url preview parameter is set
  var urlParams = new URLSearchParams(window.location.search);
  var isEmbed = urlParams.get('embed') !== null;
  var device = isPreview ? previewDevice : 'desktop';
  var playerRef = Player_useRef(null);
  var hasSeekRef = Player_useRef(false);
  var playingObj = sessionStorage.getItem('smp_playing');
  var playingIndex = playingObj ? JSON.parse(playingObj).index : 0;
  var _useState = Player_useState(playingIndex),
    _useState2 = Player_slicedToArray(_useState, 2),
    item = _useState2[0],
    setItem = _useState2[1];
  var currentItem = items[item >= items.length ? 0 : item] || {};
  var title = currentItem.title,
    sourceType = currentItem.sourceType,
    source = currentItem.source,
    thumbnail = currentItem.thumbnail,
    season = currentItem.season,
    episode = currentItem.episode,
    episodeType = currentItem.episodeType,
    explicit = currentItem.explicit,
    artist = currentItem.artist,
    album = currentItem.album,
    genre = currentItem.genre,
    subtitleFile = currentItem.subtitleFile,
    subtitleLang = currentItem.subtitleLang;
  var meta = playerType !== 'sticky' && [artist && "Artist: ".concat((0,functions/* textUpperCase */.sK)(artist)), album && "Album: ".concat((0,functions/* textUpperCase */.sK)(album)), genre && "Genres: ".concat(genre === null || genre === void 0 ? void 0 : genre.map(function (g) {
    return (0,functions/* textUpperCase */.sK)(g.label);
  }).join(', '))].filter(Boolean).join(' | ');
  var savedState = sessionStorage.getItem('smp_playing');
  var shouldAutoplay = !savedState && autoPlay || savedState && JSON.parse(savedState).id === id;
  var _useState3 = Player_useState(shouldAutoplay),
    _useState4 = Player_slicedToArray(_useState3, 2),
    playing = _useState4[0],
    setPlaying = _useState4[1];
  var _useState5 = Player_useState(false),
    _useState6 = Player_slicedToArray(_useState5, 2),
    buffering = _useState6[0],
    setBuffering = _useState6[1];
  var _useState7 = Player_useState(false),
    _useState8 = Player_slicedToArray(_useState7, 2),
    seeking = _useState8[0],
    setSeeking = _useState8[1];
  var _useState9 = Player_useState(getVolume()),
    _useState0 = Player_slicedToArray(_useState9, 2),
    volume = _useState0[0],
    setVolume = _useState0[1];
  var _useState1 = Player_useState(1),
    _useState10 = Player_slicedToArray(_useState1, 2),
    playbackRate = _useState10[0],
    setPlaybackRate = _useState10[1];
  var _useState11 = Player_useState(localStorage.getItem('smp_show_subtitle') || false),
    _useState12 = Player_slicedToArray(_useState11, 2),
    showSubtitle = _useState12[0],
    setShowSubtitle = _useState12[1];
  var _useState13 = Player_useState(localStorage.getItem('smp_shuffle_active') === 'true' || false),
    _useState14 = Player_slicedToArray(_useState13, 2),
    shuffleActive = _useState14[0],
    setShuffleActive = _useState14[1];
  var _useState15 = Player_useState(localStorage.getItem("smp_time_".concat(id, "_item_").concat(playingIndex)) || 0),
    _useState16 = Player_slicedToArray(_useState15, 2),
    currentTime = _useState16[0],
    setCurrentTime = _useState16[1];
  var _useState17 = Player_useState(false),
    _useState18 = Player_slicedToArray(_useState17, 2),
    error = _useState18[0],
    setError = _useState18[1];
  var _useState19 = Player_useState(!!sessionStorage.getItem('smp_hide')),
    _useState20 = Player_slicedToArray(_useState19, 2),
    hide = _useState20[0],
    setHide = _useState20[1];
  var _useState21 = Player_useState(type === 'podcast-player' ? true : openPlaylist),
    _useState22 = Player_slicedToArray(_useState21, 2),
    showPlaylist = _useState22[0],
    setShowPlaylist = _useState22[1];
  var playingId = playingObj ? JSON.parse(playingObj).id : null;
  var _useState23 = Player_useState({}),
    _useState24 = Player_slicedToArray(_useState23, 2),
    playerConfig = _useState24[0],
    setPlayerConfig = _useState24[1];

  // Get player volume
  function getVolume() {
    var _smp2;
    var volume = ((_smp2 = smp) === null || _smp2 === void 0 || (_smp2 = _smp2.settings) === null || _smp2 === void 0 ? void 0 : _smp2.volume) / 100;
    if (!!localStorage.getItem('smp_volume')) {
      volume = parseFloat(localStorage.getItem('smp_volume'));
    }
    if (!volume) volume = .8;
    return volume;
  }

  /**
   * On Init
   */
  Player_useEffect(function () {
    // Add media session stop event
    if ('mediaSession' in navigator) {
      try {
        navigator.mediaSession.setActionHandler('stop', function () {
          return handlePlayPause(true);
        });
      } catch (e) {
        console.log(e);
      }
    }
    if (isAdmin || !shouldAutoplay) {
      return;
    }
    var _playOnPointerUp = function playOnPointerUp() {
      document.removeEventListener('pointerup', _playOnPointerUp);
      setPlaying(true);

      // thumbnail click
      if (type === 'video-player') (0,functions/* posterClick */.qQ)(id);
    };
    var _playOnOnline = function playOnOnline() {
      window.removeEventListener('online', _playOnOnline);
      setPlaying(true);

      // thumbnail click
      if (type === 'video-player') (0,functions/* posterClick */.qQ)(id);
    };
    document.addEventListener('pointerup', _playOnPointerUp);
    window.addEventListener('online', _playOnOnline);
    return function () {
      document.removeEventListener('pointerup', _playOnPointerUp);
      window.removeEventListener('online', _playOnOnline);
    };
  }, []);

  // Inject subtitle
  Player_useEffect(function () {
    var tryInjectTrack = function tryInjectTrack() {
      if (playerRef.current && type === 'video-player' && subtitleFile) {
        var videoElement = playerRef.current.getInternalPlayer();
        if (videoElement && videoElement.tagName === 'VIDEO') {
          // Always disable all textTracks first
          if (videoElement.textTracks && videoElement.textTracks.length > 0) {
            for (var i = 0; i < videoElement.textTracks.length; i++) {
              videoElement.textTracks[i].mode = 'disabled';
            }
          }

          // Remove existing <track> DOM elements to prevent duplicates
          var existingTracks = videoElement.querySelectorAll('track');
          existingTracks.forEach(function (track) {
            return track.remove();
          });
          if (!!showSubtitle) {
            var track = document.createElement('track');
            track.kind = 'subtitles';
            track.src = subtitleFile;
            track.srcLang = subtitleLang || 'en';
            track.label = 'English';
            track["default"] = true;
            videoElement.appendChild(track);

            // Activate the new subtitle after DOM parses it
            setTimeout(function () {
              if (videoElement.textTracks && videoElement.textTracks.length > 0) {
                var textTrack = videoElement.textTracks[0];
                textTrack.mode = 'showing';
              }
            }, 200);
          }
        }
      }
    };
    tryInjectTrack();
    var timeout = setTimeout(tryInjectTrack, 500);
    return function () {
      return clearTimeout(timeout);
    };
  }, [showSubtitle, subtitleFile, subtitleLang, type]);

  /**
   * Update subtitle config
   */
  Player_useEffect(function () {
    if ('video-player' === type && !!subtitle) {
      // Validate subtitle file
      if (!subtitleFile) {
        console.warn('No subtitle file provided');
        setPlayerConfig({});
        return;
      }
      var newConfig = {
        file: {
          attributes: {
            crossOrigin: 'anonymous'
          },
          tracks: !!showSubtitle ? [{
            kind: 'subtitles',
            src: subtitleFile,
            srcLang: subtitleLang,
            "default": true,
            label: 'English'
          }] : []
        }
      };
      setPlayerConfig(newConfig);
    } else {
      setPlayerConfig({});
    }
  }, [type, subtitle, showSubtitle, subtitleFile, subtitleLang]);

  /**
   * Handle next / prev when source is empty
   */
  Player_useEffect(function () {
    if (isAdmin || !!autoPlay) return;
    if (source === '') {
      var timeout = setTimeout(function () {
        return handleNextPrev('next');
      }, 500);
      return function () {
        return clearTimeout(timeout);
      };
    }
  }, [source]);
  var isMounted = (0,functions/* useMounted */.qK)();

  /**
   *  Handle playback state
   */

  // Track play start and end times
  var playStartTime = null;
  Player_useEffect(function () {
    if (!isMounted || isAdmin) return;
    if (playing) {
      playStartTime = Date.now();
      (0,functions/* sendStatistics */.uW)({
        id: id,
        player_type: type,
        track: item,
        action: 'play_start'
      });

      // Store the playing state in sessionStorage
      sessionStorage.setItem('smp_playing', JSON.stringify({
        id: id,
        index: item
      }));

      // 🔥 Dispatch global event to notify other players
      window.dispatchEvent(new CustomEvent('smp_player_play', {
        detail: {
          id: id,
          index: item
        }
      }));
    } else {
      if (playStartTime) {
        var duration = Math.round((Date.now() - playStartTime) / 1000);
        (0,functions/* sendStatistics */.uW)({
          id: id,
          player_type: type,
          track: item,
          action: 'play_end',
          duration: duration
        });
        playStartTime = null;
      }

      // Clear the playing state from sessionStorage
      sessionStorage.removeItem('smp_playing');

      // 🔥 Dispatch global event to notify other players
      window.dispatchEvent(new CustomEvent('smp_player_pause', {
        detail: {
          id: id,
          index: item
        }
      }));
    }
  }, [playing]);

  // Prevent multiple playbacks
  Player_useEffect(function () {
    var handleGlobalPlay = function handleGlobalPlay(e) {
      var _e$detail;
      var playingId = (_e$detail = e.detail) === null || _e$detail === void 0 ? void 0 : _e$detail.id;

      // Pause if another player is playing
      if (playingId !== id) {
        setPlaying(false);
      }
    };
    window.addEventListener('smp_player_play', handleGlobalPlay);
    return function () {
      window.removeEventListener('smp_player_play', handleGlobalPlay);
    };
  }, []);

  /**
   * Keyboard shortcuts
   */
  Player_useEffect(function () {
    if (!keyboardShortcuts) return;
    var handleKeyboardShortcuts = function handleKeyboardShortcuts(e) {
      var tag = e.target.tagName.toLowerCase();
      if (tag === 'input' || tag === 'textarea') return;
      switch (e.key.toLowerCase()) {
        case 'f':
          handleFullScreen();
          break;
        case 'k':
        case ' ':
          e.preventDefault();
          setPlaying(function (prev) {
            return !prev;
          });
          break;
        case 'l':
          handleNextPrev('next');
          break;
        case 'j':
          handleNextPrev('prev');
          break;
        case 'arrowup':
          e.preventDefault();
          handleVolumeWithKey('arrowUp');
          break;
        case 'arrowdown':
          e.preventDefault();
          handleVolumeWithKey('arrowDown');
          break;
        case 'arrowright':
          handleRewindForward('forward');
          break;
        case 'arrowleft':
          handleRewindForward('rewind');
          break;
      }
    };
    document.addEventListener('keydown', handleKeyboardShortcuts);
    return function () {
      return document.removeEventListener('keydown', handleKeyboardShortcuts);
    };
  }, [keyboardShortcuts]);
  var handleVolumeWithKey = function handleVolumeWithKey(type) {
    var volume = localStorage.getItem('smp_volume');
    if (!!volume) {
      volume = parseFloat(volume);
    } else {
      var _smp3;
      volume = ((_smp3 = smp) === null || _smp3 === void 0 || (_smp3 = _smp3.settings) === null || _smp3 === void 0 ? void 0 : _smp3.volume) / 100;
    }
    if (type === 'arrowUp' && volume < 1) {
      volume += .1;
    } else if (type === 'arrowDown' && volume > 0) {
      volume -= .1;
    }
    if (volume > 1) {
      volume = 1;
    } else if (volume < 0) {
      volume = 0;
    }
    localStorage.setItem('smp_volume', volume);
    setVolume(volume);
  };

  /**
   * Handle Play / Pause
   */
  var handlePlayPause = function handlePlayPause(action) {
    if (alwaysPopup && module !== 'video-player') {
      (0,functions/* openPopup */.PB)(id);
    }

    // Determine whether to pause or play based on action
    var shouldPause = action === true || action === undefined && playing;
    setPlaying(!shouldPause);
  };

  // Handle Rewind / Forward
  var handleRewindForward = function handleRewindForward(type) {
    var seekTime = 10; // Time to seek in seconds
    var currentTime = playerRef.current.getCurrentTime();
    if (type === 'rewind') {
      playerRef.current.seekTo(Math.max(0, currentTime - seekTime));
    } else if (type === 'forward') {
      playerRef.current.seekTo(currentTime + seekTime);
    }
  };

  /**
   * Handle Download
   */
  var handleDownload = function handleDownload() {
    var currentUrl = playerRef.current.props.url;
    var fileNameFromUrl = currentUrl.split('/').pop().split('?')[0];
    var fileExtension = fileNameFromUrl.split('.').pop();
    var filename = "".concat(title || 'media', ".").concat(fileExtension);
    var link = document.createElement('a');

    // external link
    if (!currentUrl.includes(smp.homeUrl)) {
      link.target = '_blank';
    }
    link.href = currentUrl;
    link.download = filename;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
  };

  /**
   * Handle Shuffle
   */
  var handleShuffle = function handleShuffle() {
    setShuffleActive(function (prev) {
      return !prev;
    });
    localStorage.setItem('smp_shuffle_active', !shuffleActive);
  };
  var handleNextPrev = function handleNextPrev(type) {
    if ('prev' === type) {
      var index = item - 1;
      if (item === 0) {
        index = items.length - 1;
      }
      setItem(index);
    } else if ('next' === type) {
      var _index = item + 1;
      if (item >= items.length - 1) {
        _index = 0;
      }
      setItem(_index);
    }
    if ('video-player' === type) (0,functions/* posterClick */.qQ)(id);
    localStorage.setItem('smp_played', 0);
    handlePlayPause(false);
  };

  // handle settings (playback rate)
  var handleSettings = function handleSettings(value) {
    setPlaybackRate(value);
  };

  // handle playback rate
  var handlePlaybackRate = function handlePlaybackRate(val) {
    setPlaybackRate(val);
  };

  // handle subtitle visibility
  var handleSubtitleVisibility = function handleSubtitleVisibility() {
    setShowSubtitle(!showSubtitle);
    localStorage.setItem('smp_show_subtitle', !showSubtitle);
    if (playerRef.current) {
      var _currentTime = playerRef.current.getCurrentTime();
      playerRef.current.seekTo(_currentTime);
    }
  };

  // Progressbar
  var progressbar = progressBar && playerType !== 'sticky' && /*#__PURE__*/React.createElement(Player_Progressbar, {
    type: type,
    skin: skin,
    setSeeking: setSeeking,
    currentTime: currentTime,
    setCurrentTime: setCurrentTime,
    player: playerRef.current
  });

  // PlayPause button
  var playPause = /*#__PURE__*/React.createElement(Player_PlayPause, {
    id: id,
    type: type,
    items: items,
    handleNextPrev: handleNextPrev,
    playing: playing,
    setPlaying: setPlaying,
    buffering: buffering,
    handlePlayPause: handlePlayPause,
    previousNextButton: previousNextButton,
    handleRewindForward: handleRewindForward,
    rewindForwardButton: rewindForwardButton
  });

  // Download button
  var download = type !== 'video-player' && /*#__PURE__*/React.createElement(Player_Download, {
    handleDownload: handleDownload,
    downloadButton: downloadButton
  });

  // Shuffle button
  var shuffle = type !== 'video-player' && /*#__PURE__*/React.createElement(Player_Shuffle, {
    shuffleButton: shuffleButton,
    shuffleActive: shuffleActive,
    handleShuffle: handleShuffle
  });

  // Settings button
  var options = type !== 'video-player' && /*#__PURE__*/React.createElement(Player_Settings, {
    settingButton: settingButton,
    playbackRate: playbackRate,
    handleSettings: handleSettings
  });

  // video Settings button
  var videoSettings = /*#__PURE__*/React.createElement(Player_VideoSettings, {
    sourceType: sourceType,
    playbackRate: playbackRate,
    handlePlaybackRate: handlePlaybackRate,
    shuffleButton: shuffleButton,
    handleShuffle: handleShuffle,
    downloadButton: downloadButton,
    handleDownload: handleDownload,
    embedding: embedding,
    id: id,
    subtitle: subtitle,
    showSubtitle: showSubtitle,
    handleSubtitleVisibility: handleSubtitleVisibility,
    shuffleActive: shuffleActive
  });

  // Embed button
  var embed = type !== 'video-player' && /*#__PURE__*/React.createElement(Player_Embed, {
    embedding: embedding,
    id: id
  });

  // Popup button
  var handlePopupClick = function handlePopupClick() {
    setHide(true);
  };

  // Popup icon
  var popupIcon = !!popup && type !== 'video-player' && (playerType !== 'popup' || isPreview || isEmbed) && /*#__PURE__*/React.createElement(Player_PopupIcon, {
    id: id,
    onClick: handlePopupClick
  });

  // Fullscreen button
  var fullscreen = !!fullScreenButton && /*#__PURE__*/React.createElement(Player_FullScreen, {
    id: id,
    onClick: handlePopupClick
  });

  // VolumeControl button
  var volumeControl = !!volumeButton && /*#__PURE__*/React.createElement(Player_VolumeControl, {
    playerType: playerType,
    volume: volume,
    setVolume: setVolume
  });

  // Playlist icon
  var playlistIcon = items.length > 1 && !!playlist && /*#__PURE__*/React.createElement("button", {
    type: "button",
    "aria-label": "Playlist",
    title: "Playlist",
    className: "playlist-icon ".concat(showPlaylist ? 'active' : ''),
    onClick: function onClick() {
      return setShowPlaylist(!showPlaylist);
    },
    dangerouslySetInnerHTML: {
      __html: icons_namespaceObject.lb
    }
  });

  // Player class
  var playerClass = 'shortcode' === playerType ? 'shortcode' : 'popup' === playerType ? 'shortcode popup' : 'full-width';

  // Handle Draggable
  var playerWrapRef = Player_useRef(null);
  Player_useEffect(function () {
    if (!isPro || 'sticky' !== playerType || 'floating' !== stickyStyle || !draggableFloating) return;
    var position = localStorage.getItem("smp_sticky_position");
    if (position) {
      position = JSON.parse(position);
      if (position.top <= window.innerHeight && position.left <= window.innerWidth) {
        jQuery(playerWrapRef.current).css(position);
      }
    }
    jQuery(playerWrapRef.current).draggable({
      containment: 'window',
      scroll: false,
      helper: 'original',
      drag: function drag(event, ui) {
        var position = ui.position;
        localStorage.setItem("smp_sticky_position", JSON.stringify(position));
      }
    });
  }, []);

  // Player size class
  var sizeClass = (0,functions/* useHandlePlayerResize */.HG)(playerWrapRef);
  var skinData = {
    id: id,
    title: title,
    meta: meta,
    thumbnail: thumbnail,
    season: season,
    episode: episode,
    episodeType: episodeType,
    explicit: explicit,
    playPause: playPause,
    download: download,
    shuffle: shuffle,
    fullscreen: fullscreen,
    popupIcon: popupIcon,
    playlistIcon: playlistIcon,
    volumeControl: volumeControl,
    progressbar: progressbar,
    settings: options,
    videoSettings: videoSettings,
    embed: embed
  };
  useMediaSession({
    onSeekBackward: function onSeekBackward() {
      return handleRewindForward('rewind');
    },
    onSeekForward: function onSeekForward() {
      return handleRewindForward('forward');
    },
    onNextTrack: function onNextTrack() {
      return handleNextPrev('next');
    },
    onPreviousTrack: function onPreviousTrack() {
      return handleNextPrev('prev');
    },
    onPlay: function onPlay() {
      return handlePlayPause(false);
    },
    onPause: function onPause() {
      return handlePlayPause(true);
    },
    onStop: function onStop() {
      return handlePlayPause(true);
    }
  });
  useMediaMeta({
    title: title,
    artist: artist,
    artwork: [{
      src: thumbnail || '',
      sizes: "160x110",
      type: "image/jpg"
    }]
  });
  return /*#__PURE__*/React.createElement(React.Fragment, null, 'podcast-player' === type && items.length === 0 && isAdmin && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "smp-rss-empty"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/rss-empty.png"),
    alt: "rss-empty"
  }), /*#__PURE__*/React.createElement("h4", null, wp.i18n.__('Stream Unavailable', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Please enter a valid URL with accessible, playable content.', 'soft-multimedia-player')))), items.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, ".smp.smp-".concat(id, ".").concat(playerType, ".").concat(skin, ","), ".smp-".concat(id, ".smp-playlist.smp-playlist-").concat(skin, "{"), "--smp-width: ".concat(width ? width : isPro && ['skin3', 'skin4', 'skin6'].includes(skin) ? '370px' : '300px', ";"), !!border_radius && "--smp-border-radius: ".concat(border_radius, "px;"), (bg_color || bg_image) && "--smp-bg-color: ".concat('image' === bg_type ? "url(".concat(bg_image, ")") : bg_color, ";"), !!playlist && "--smp-playlist-bg-color: ".concat(playlist_bg_color, ";"), openPlaylist && playlistHeight === 'custom' && "--smp-playlist-height: ".concat(playlistHeightCustom, "px;"), !!text_color && "--smp-text-color: ".concat(text_color, ";"), !!progressbar_bg_color && "--smp-progressbar-bg-color: ".concat(progressbar_bg_color, ";"), !!progressbar_fill_color && "--smp-progressbar-fill-color: ".concat(progressbar_fill_color, ";"), !!progressbar_handle_color && "--smp-progressbar-handle-color: ".concat(progressbar_handle_color, ";"), !!progressbar_handle_border_size && "--smp-progressbar-handle-border-size: ".concat(progressbar_handle_border_size, "px;"), !!progressbar_handle_border_style && "--smp-progressbar-handle-border-style: ".concat(progressbar_handle_border_style, ";"), !!progressbar_handle_border_color && "--smp-progressbar-handle-border-color: ".concat(progressbar_handle_border_color, ";"), !!button && !!play_pause_icon_color && "--smp-play-pause-button-color: ".concat(play_pause_icon_color, ";"), !!button && !!play_pause_bg_color && "--smp-play-pause-button-bg-color: ".concat(play_pause_bg_color, ";"), !!button && !!button_color && "--smp-button-color: ".concat(button_color, ";"), !!button && !!button_bg_color && "--smp-button-bg-color: ".concat(button_bg_color, ";"), !!button && !!button_border_size && "--smp-button-border-size: ".concat(button_border_size, "px;"), !!button && !!button_border_style && "--smp-button-border-style: ".concat(button_border_style, ";"), !!button && !!button_border_color && "--smp-button-border-color: ".concat(button_border_color, ";"), !!button && !!button_border_radius && "--smp-button-border-radius: ".concat(button_border_radius, "px;"), "--smp-box-shadow: ".concat(!!box_shadow ? "".concat(box_shadow_h, "px ").concat(box_shadow_v, "px ").concat(box_shadow_blur, "px ").concat(box_shadow_spread, "px ").concat(box_shadow_color, " ").concat(box_shadow_type) : 'none', ";"), !!typography && !!font_family && "--smp-font-family: ".concat(font_family, ";"), !!typography && !!font_weight && "--smp-font-weight: ".concat(font_weight, ";"), !!typography && !!player_title_align && "--smp-alignment: ".concat(player_title_align, ";;"), !!typography && !!text_align && "--smp-text-alignment: ".concat(text_align, ";;"), !!typography && !!font_size && "--smp-font-size: ".concat(font_size, "px;"), !!typography && !!line_height && "--smp-line-height: ".concat(line_height, "px;"), !!typography && !!letter_spacing && "--smp-letter-spacing: ".concat(letter_spacing, "px;")), /*#__PURE__*/React.createElement("div", {
    className: "\n                            smp \n                            smp-".concat(id, "\n                            ").concat(sizeClass, "\n                            ").concat(skin, "\n                            ").concat(type, "\n                            ").concat(playerType, " \n                            ").concat('sticky' === playerType && stickyStyle, "\n                            ").concat('sticky' === playerType && 'floating' !== stickyStyle ? "position-" + stickyPosition : '', "\n                            ").concat('sticky' === playerType && 'floating' === stickyStyle ? floatingPosition : '', " \n                            ").concat(showPlaylist ? 'playlist-active' : '', " \n                            ").concat(hide && 'sticky' === playerType ? 'smp-hidden' : '', " \n                        "),
    "data-id": id,
    ref: playerWrapRef
  }, 'sticky' === playerType && 'floating' === stickyStyle && !!draggableFloating && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("svg", {
    "data-tooltip-content": wp.i18n.__('Drag to move player', 'multimedia-player'),
    "data-tooltip-id": "smp-move",
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 20 20",
    className: "smp-move",
    width: 24,
    height: 24
  }, /*#__PURE__*/React.createElement("rect", {
    x: "0",
    fill: "none",
    width: "20",
    height: "20"
  }), /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
    d: "M19 10l-4 4v-3h-4v4h3l-4 4-4-4h3v-4H5v3l-4-4 4-4v3h4V5H6l4-4 4 4h-3v4h4V6z"
  }))), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "smp-move",
    className: "smp-tooltip floating-tooltip"
  })), 'audio-player' === type && skin === 'skin0' && /*#__PURE__*/React.createElement(Audio_AudioSkin0, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin1' && /*#__PURE__*/React.createElement(Audio_AudioSkin1, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin2' && /*#__PURE__*/React.createElement(AudioSkin2, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin3' && /*#__PURE__*/React.createElement(Audio_AudioSkin3, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin4' && /*#__PURE__*/React.createElement(Audio_AudioSkin4, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin5' && /*#__PURE__*/React.createElement(Audio_AudioSkin5, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin6' && /*#__PURE__*/React.createElement(Audio_AudioSkin6, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin7' && /*#__PURE__*/React.createElement(Audio_AudioSkin7, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin8' && /*#__PURE__*/React.createElement(Audio_AudioSkin8, {
    data: skinData
  }), 'audio-player' === type && skin === 'skin9' && /*#__PURE__*/React.createElement(Audio_AudioSkin9, {
    data: skinData
  }), 'podcast-player' === type && skin === 'skin0' && /*#__PURE__*/React.createElement(Podcast_PodcastSkin0, {
    data: skinData
  }), 'podcast-player' === type && skin === 'skin1' && /*#__PURE__*/React.createElement(Podcast_PodcastSkin1, {
    data: skinData
  }), 'podcast-player' === type && skin === 'skin2' && /*#__PURE__*/React.createElement(Podcast_PodcastSkin2, {
    data: skinData
  }), 'podcast-player' === type && skin === 'skin3' && /*#__PURE__*/React.createElement(Podcast_PodcastSkin3, {
    data: skinData
  }), 'podcast-player' === type && skin === 'skin4' && /*#__PURE__*/React.createElement(Podcast_PodcastSkin4, {
    data: skinData
  }), 'podcast-player' === type && skin === 'skin5' && /*#__PURE__*/React.createElement(Podcast_PodcastSkin5, {
    data: skinData
  }), /*#__PURE__*/React.createElement((lib_default()), {
    ref: playerRef,
    key: source,
    className: "smp-media",
    width: "100%",
    height: "".concat('video-player' === type ? 'auto' : '0'),
    light: type === 'video-player' ? thumbnail : '',
    playbackRate: playbackRate,
    volume: volume,
    playing: playing,
    url: source,
    controls: false,
    config: playerConfig,
    onClick: function onClick() {
      if ('video-player' === type) {
        setPlaying(function (prev) {
          return !prev;
        });
      }
    },
    onClickPreview: function onClickPreview() {
      setPlaying(true);
    },
    onReady: function onReady() {
      // Seek to stored position
      if (!hasSeekRef.current) {
        var savedTime = parseFloat(localStorage.getItem("smp_time_".concat(id, "_item_").concat(playingIndex)) || '0');
        if (playerRef.current && savedTime) {
          playerRef.current.seekTo(savedTime, 'fraction');
          hasSeekRef.current = true;
        }
      }
    },
    onPlay: function onPlay() {
      setPlaying(true);
      setBuffering(false);
      setError(false);
    },
    onPause: function onPause() {
      setPlaying(false);
    },
    onError: function onError(error) {
      console.error('Error playing media:', error);
      setPlaying(false);
      setTimeout(function () {
        setPlaying(false);
      });
      setBuffering(false);
      if (playingId != id) {
        setError(true);
      }
      handleNextPrev('next');
    },
    onProgress: function onProgress(state) {
      setCurrentTime(state.played);
      localStorage.setItem("smp_time_".concat(id, "_item_").concat(playingIndex), state.played);
    },
    onBuffer: function onBuffer() {
      setBuffering(true);
    },
    onBufferEnd: function onBufferEnd() {
      setBuffering(false);
    },
    onEnded: function onEnded() {
      setPlaying(false);
      setBuffering(false);
      if (!!shuffleActive) {
        var randomIndex;

        // check random index until it's not the current index
        do {
          randomIndex = Math.floor(Math.random() * items.length);
        } while (randomIndex === item);
        setItem(randomIndex);
        handlePlayPause(false);
      } else if (items.length > 1 && !shuffleActive) {
        handleNextPrev('next');
      }
    }
  }), 'video-player' === type && (skin === 'skin0' || 'sticky' === playerType) && /*#__PURE__*/React.createElement(VideoSkin0, {
    data: skinData,
    playerType: playerType,
    hide: hide,
    setHide: setHide
  }), 'video-player' === type && skin === 'skin1' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin1, {
    data: skinData
  }), 'video-player' === type && skin === 'skin2' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin2, {
    data: skinData
  }), 'video-player' === type && skin === 'skin3' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin3, {
    data: skinData
  }), 'video-player' === type && skin === 'skin4' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin4, {
    data: skinData
  }), 'video-player' === type && skin === 'skin5' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin5, {
    data: skinData
  }), 'video-player' === type && skin === 'skin6' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin6, {
    data: skinData
  }), 'video-player' === type && skin === 'skin7' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin7, {
    data: skinData
  }), 'video-player' === type && skin === 'skin8' && 'sticky' !== playerType && /*#__PURE__*/React.createElement(VideoSkin8, {
    data: skinData
  })), !!playlist && !!showPlaylist && items.length > 1 && /*#__PURE__*/React.createElement(Playlist, {
    id: id,
    type: type,
    skin: skin,
    items: items,
    item: item,
    setItem: setItem,
    playing: playing,
    setPlaying: setPlaying,
    setShowPlaylist: setShowPlaylist,
    playlistStyle: playlistStyle,
    searchPlaylist: searchPlaylist,
    playlistDuration: playlistDuration,
    rssfeed: rssfeed
  }), 'sticky' === playerType && hide && /*#__PURE__*/React.createElement(Player_PlayerToggle, {
    hide: hide,
    thumbnail: thumbnail,
    setHide: setHide
  })));
}
function MultiMediaPlayerInit() {
  document.querySelectorAll('.multimedia_player').forEach(function (element) {
    var playerType = element.dataset.playerType;
    var encodedData = element.dataset.data;
    if (!encodedData) return;
    var parsedData;
    try {
      parsedData = JSON.parse(base64Decode(encodedData));
    } catch (error) {
      console.error('Failed to decode or parse player data:', error);
      return;
    }
    try {
      var root = ReactDOM.createRoot(element);
      root.render(/*#__PURE__*/React.createElement(Player, {
        data: _objectSpread({
          playerType: playerType
        }, parsedData)
      }));
    } catch (error) {
      console.error('Failed to render <Player> component:', error);
    }
  });
}

/***/ }),

/***/ 2488:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isFuture = isFuture;
var _index = __webpack_require__(4446);

/**
 * @name isFuture
 * @category Common Helpers
 * @summary Is the given date in the future?
 * @pure false
 *
 * @description
 * Is the given date in the future?
 *
 * @param date - The date to check
 *
 * @returns The date is in the future
 *
 * @example
 * // If today is 6 October 2014, is 31 December 2014 in the future?
 * const result = isFuture(new Date(2014, 11, 31))
 * //=> true
 */
function isFuture(date) {
  return +(0, _index.toDate)(date) > Date.now();
}


/***/ }),

/***/ 2495:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInMilliseconds = differenceInMilliseconds;
var _index = __webpack_require__(4446);

/**
 * @name differenceInMilliseconds
 * @category Millisecond Helpers
 * @summary Get the number of milliseconds between the given dates.
 *
 * @description
 * Get the number of milliseconds between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 *
 * @returns The number of milliseconds
 *
 * @example
 * // How many milliseconds are between
 * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?
 * const result = differenceInMilliseconds(
 *   new Date(2014, 6, 2, 12, 30, 21, 700),
 *   new Date(2014, 6, 2, 12, 30, 20, 600)
 * )
 * //=> 1100
 */
function differenceInMilliseconds(laterDate, earlierDate) {
  return +(0, _index.toDate)(laterDate) - +(0, _index.toDate)(earlierDate);
}


/***/ }),

/***/ 2554:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.addLeadingZeros = addLeadingZeros;
function addLeadingZeros(number, targetLength) {
  const sign = number < 0 ? "-" : "";
  const output = Math.abs(number).toString().padStart(targetLength, "0");
  return sign + output;
}


/***/ }),

/***/ 2575:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDaysInMonth = getDaysInMonth;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link getDaysInMonth} function options.
 */

/**
 * @name getDaysInMonth
 * @category Month Helpers
 * @summary Get the number of days in a month of the given date.
 *
 * @description
 * Get the number of days in a month of the given date, considering the context if provided.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The number of days in a month
 *
 * @example
 * // How many days are in February 2000?
 * const result = getDaysInMonth(new Date(2000, 1))
 * //=> 29
 */
function getDaysInMonth(date, options) {
  const _date = (0, _index2.toDate)(date, options?.in);
  const year = _date.getFullYear();
  const monthIndex = _date.getMonth();
  const lastDayOfMonth = (0, _index.constructFrom)(_date, 0);
  lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);
  lastDayOfMonth.setHours(0, 0, 0, 0);
  return lastDayOfMonth.getDate();
}


/***/ }),

/***/ 2577:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.LocalWeekParser = void 0;
var _index = __webpack_require__(1315);
var _index2 = __webpack_require__(5472);
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// Local week of year
class LocalWeekParser extends _Parser.Parser {
  priority = 100;

  parse(dateString, token, match) {
    switch (token) {
      case "w":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.week,
          dateString,
        );
      case "wo":
        return match.ordinalNumber(dateString, { unit: "week" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 53;
  }

  set(date, _flags, value, options) {
    return (0, _index2.startOfWeek)(
      (0, _index.setWeek)(date, value, options),
      options,
    );
  }

  incompatibleTokens = [
    "y",
    "R",
    "u",
    "q",
    "Q",
    "M",
    "L",
    "I",
    "d",
    "D",
    "i",
    "t",
    "T",
  ];
}
exports.LocalWeekParser = LocalWeekParser;


/***/ }),

/***/ 2648:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setYear = setYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link setYear} function options.
 */

/**
 * @name setYear
 * @category Year Helpers
 * @summary Set the year to the given date.
 *
 * @description
 * Set the year to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param year - The year of the new date
 * @param options - An object with options.
 *
 * @returns The new date with the year set
 *
 * @example
 * // Set year 2013 to 1 September 2014:
 * const result = setYear(new Date(2014, 8, 1), 2013)
 * //=> Sun Sep 01 2013 00:00:00
 */
function setYear(date, year, options) {
  const date_ = (0, _index2.toDate)(date, options?.in);

  // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date
  if (isNaN(+date_)) return (0, _index.constructFrom)(options?.in || date, NaN);

  date_.setFullYear(year);
  return date_;
}


/***/ }),

/***/ 2650:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousMonday = previousMonday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousMonday} function options.
 */

/**
 * @name previousMonday
 * @category Weekday Helpers
 * @summary When is the previous Monday?
 *
 * @description
 * When is the previous Monday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The previous Monday
 *
 * @example
 * // When is the previous Monday before Jun, 18, 2021?
 * const result = previousMonday(new Date(2021, 5, 18))
 * //=> Mon June 14 2021 00:00:00
 */
function previousMonday(date, options) {
  return (0, _index.previousDay)(date, 1, options);
}


/***/ }),

/***/ 2694:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = __webpack_require__(6925);

function emptyFunction() {}
function emptyFunctionWithReset() {}
emptyFunctionWithReset.resetWarningCache = emptyFunction;

module.exports = function() {
  function shim(props, propName, componentName, location, propFullName, secret) {
    if (secret === ReactPropTypesSecret) {
      // It is still safe when called from React.
      return;
    }
    var err = new Error(
      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
      'Use PropTypes.checkPropTypes() to call them. ' +
      'Read more at http://fb.me/use-check-prop-types'
    );
    err.name = 'Invariant Violation';
    throw err;
  };
  shim.isRequired = shim;
  function getShim() {
    return shim;
  };
  // Important!
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
  var ReactPropTypes = {
    array: shim,
    bigint: shim,
    bool: shim,
    func: shim,
    number: shim,
    object: shim,
    string: shim,
    symbol: shim,

    any: shim,
    arrayOf: getShim,
    element: shim,
    elementType: shim,
    instanceOf: getShim,
    node: shim,
    objectOf: getShim,
    oneOf: getShim,
    oneOfType: getShim,
    shape: getShim,
    exact: getShim,

    checkPropTypes: emptyFunctionWithReset,
    resetWarningCache: emptyFunction
  };

  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ 2700:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.constructNow = constructNow;
var _index = __webpack_require__(2956);

/**
 * @name constructNow
 * @category Generic Helpers
 * @summary Constructs a new current date using the passed value constructor.
 * @pure false
 *
 * @description
 * The function constructs a new current date using the constructor from
 * the reference date. It helps to build generic functions that accept date
 * extensions and use the current date.
 *
 * It defaults to `Date` if the passed reference date is a number or a string.
 *
 * @param date - The reference date to take constructor from
 *
 * @returns Current date initialized using the given date constructor
 *
 * @example
 * import { constructNow, isSameDay } from 'date-fns'
 *
 * function isToday<DateType extends Date>(
 *   date: DateArg<DateType>,
 * ): boolean {
 *   // If we were to use `new Date()` directly, the function would  behave
 *   // differently in different timezones and return false for the same date.
 *   return isSameDay(date, constructNow(date));
 * }
 */
function constructNow(date) {
  return (0, _index.constructFrom)(date, Date.now());
}


/***/ }),

/***/ 2756:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setDefaultOptions = setDefaultOptions;
var _index = __webpack_require__(6755);

/**
 * @name setDefaultOptions
 * @category Common Helpers
 * @summary Set default options including locale.
 * @pure false
 *
 * @description
 * Sets the defaults for
 * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`
 * arguments for all functions.
 *
 * @param options - An object with options
 *
 * @example
 * // Set global locale:
 * import { es } from 'date-fns/locale'
 * setDefaultOptions({ locale: es })
 * const result = format(new Date(2014, 8, 2), 'PPPP')
 * //=> 'martes, 2 de septiembre de 2014'
 *
 * @example
 * // Start of the week for 2 September 2014:
 * const result = startOfWeek(new Date(2014, 8, 2))
 * //=> Sun Aug 31 2014 00:00:00
 *
 * @example
 * // Start of the week for 2 September 2014,
 * // when we set that week starts on Monday by default:
 * setDefaultOptions({ weekStartsOn: 1 })
 * const result = startOfWeek(new Date(2014, 8, 2))
 * //=> Mon Sep 01 2014 00:00:00
 *
 * @example
 * // Manually set options take priority over default options:
 * setDefaultOptions({ weekStartsOn: 1 })
 * const result = startOfWeek(new Date(2014, 8, 2), { weekStartsOn: 0 })
 * //=> Sun Aug 31 2014 00:00:00
 *
 * @example
 * // Remove the option by setting it to `undefined`:
 * setDefaultOptions({ weekStartsOn: 1 })
 * setDefaultOptions({ weekStartsOn: undefined })
 * const result = startOfWeek(new Date(2014, 8, 2))
 * //=> Sun Aug 31 2014 00:00:00
 */
function setDefaultOptions(options) {
  const result = {};
  const defaultOptions = (0, _index.getDefaultOptions)();

  for (const property in defaultOptions) {
    if (Object.prototype.hasOwnProperty.call(defaultOptions, property)) {
      // [TODO] I challenge you to fix the type
      result[property] = defaultOptions[property];
    }
  }

  for (const property in options) {
    if (Object.prototype.hasOwnProperty.call(options, property)) {
      if (options[property] === undefined) {
        // [TODO] I challenge you to fix the type
        delete result[property];
      } else {
        // [TODO] I challenge you to fix the type
        result[property] = options[property];
      }
    }
  }

  (0, _index.setDefaultOptions)(result);
}


/***/ }),

/***/ 2764:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatRFC7231 = formatRFC7231;
var _index = __webpack_require__(2554);
var _index2 = __webpack_require__(7489);
var _index3 = __webpack_require__(4446);

const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];

const months = [
  "Jan",
  "Feb",
  "Mar",
  "Apr",
  "May",
  "Jun",
  "Jul",
  "Aug",
  "Sep",
  "Oct",
  "Nov",
  "Dec",
];

/**
 * @name formatRFC7231
 * @category Common Helpers
 * @summary Format the date according to the RFC 7231 standard (https://tools.ietf.org/html/rfc7231#section-7.1.1.1).
 *
 * @description
 * Return the formatted date string in RFC 7231 format.
 * The result will always be in UTC timezone.
 *
 * @param date - The original date
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 18 September 2019 in RFC 7231 format:
 * const result = formatRFC7231(new Date(2019, 8, 18, 19, 0, 52))
 * //=> 'Wed, 18 Sep 2019 19:00:52 GMT'
 */
function formatRFC7231(date) {
  const _date = (0, _index3.toDate)(date);

  if (!(0, _index2.isValid)(_date)) {
    throw new RangeError("Invalid time value");
  }

  const dayName = days[_date.getUTCDay()];
  const dayOfMonth = (0, _index.addLeadingZeros)(_date.getUTCDate(), 2);
  const monthName = months[_date.getUTCMonth()];
  const year = _date.getUTCFullYear();

  const hour = (0, _index.addLeadingZeros)(_date.getUTCHours(), 2);
  const minute = (0, _index.addLeadingZeros)(_date.getUTCMinutes(), 2);
  const second = (0, _index.addLeadingZeros)(_date.getUTCSeconds(), 2);

  // Result variables.
  return `${dayName}, ${dayOfMonth} ${monthName} ${year} ${hour}:${minute}:${second} GMT`;
}


/***/ }),

/***/ 2829:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfYear = lastDayOfYear;
var _index = __webpack_require__(4446);

/**
 * The {@link lastDayOfYear} function options.
 */

/**
 * @name lastDayOfYear
 * @category Year Helpers
 * @summary Return the last day of a year for the given date.
 *
 * @description
 * Return the last day of a year for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The last day of a year
 *
 * @example
 * // The last day of a year for 2 September 2014 11:55:00:
 * const result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))
 * //=> Wed Dec 31 2014 00:00:00
 */
function lastDayOfYear(date, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  const year = date_.getFullYear();
  date_.setFullYear(year + 1, 0, 0);
  date_.setHours(0, 0, 0, 0);
  return date_;
}


/***/ }),

/***/ 2914:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.formatDistance = void 0;

const formatDistanceLocale = {
  lessThanXSeconds: {
    one: "less than a second",
    other: "less than {{count}} seconds",
  },

  xSeconds: {
    one: "1 second",
    other: "{{count}} seconds",
  },

  halfAMinute: "half a minute",

  lessThanXMinutes: {
    one: "less than a minute",
    other: "less than {{count}} minutes",
  },

  xMinutes: {
    one: "1 minute",
    other: "{{count}} minutes",
  },

  aboutXHours: {
    one: "about 1 hour",
    other: "about {{count}} hours",
  },

  xHours: {
    one: "1 hour",
    other: "{{count}} hours",
  },

  xDays: {
    one: "1 day",
    other: "{{count}} days",
  },

  aboutXWeeks: {
    one: "about 1 week",
    other: "about {{count}} weeks",
  },

  xWeeks: {
    one: "1 week",
    other: "{{count}} weeks",
  },

  aboutXMonths: {
    one: "about 1 month",
    other: "about {{count}} months",
  },

  xMonths: {
    one: "1 month",
    other: "{{count}} months",
  },

  aboutXYears: {
    one: "about 1 year",
    other: "about {{count}} years",
  },

  xYears: {
    one: "1 year",
    other: "{{count}} years",
  },

  overXYears: {
    one: "over 1 year",
    other: "over {{count}} years",
  },

  almostXYears: {
    one: "almost 1 year",
    other: "almost {{count}} years",
  },
};

const formatDistance = (token, count, options) => {
  let result;

  const tokenValue = formatDistanceLocale[token];
  if (typeof tokenValue === "string") {
    result = tokenValue;
  } else if (count === 1) {
    result = tokenValue.one;
  } else {
    result = tokenValue.other.replace("{{count}}", count.toString());
  }

  if (options?.addSuffix) {
    if (options.comparison && options.comparison > 0) {
      return "in " + result;
    } else {
      return result + " ago";
    }
  }

  return result;
};
exports.formatDistance = formatDistance;


/***/ }),

/***/ 2934:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.daysToWeeks = daysToWeeks;
var _index = __webpack_require__(8052);

/**
 * @name daysToWeeks
 * @category Conversion Helpers
 * @summary Convert days to weeks.
 *
 * @description
 * Convert a number of days to a full number of weeks.
 *
 * @param days - The number of days to be converted
 *
 * @returns The number of days converted in weeks
 *
 * @example
 * // Convert 14 days to weeks:
 * const result = daysToWeeks(14)
 * //=> 2
 *
 * @example
 * // It uses trunc rounding:
 * const result = daysToWeeks(13)
 * //=> 1
 */
function daysToWeeks(days) {
  const result = Math.trunc(days / _index.daysInWeek);
  // Prevent negative zero
  return result === 0 ? 0 : result;
}


/***/ }),

/***/ 2944:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.secondsToHours = secondsToHours;
var _index = __webpack_require__(8052);

/**
 * @name secondsToHours
 * @category Conversion Helpers
 * @summary Convert seconds to hours.
 *
 * @description
 * Convert a number of seconds to a full number of hours.
 *
 * @param seconds - The number of seconds to be converted
 *
 * @returns The number of seconds converted in hours
 *
 * @example
 * // Convert 7200 seconds into hours
 * const result = secondsToHours(7200)
 * //=> 2
 *
 * @example
 * // It uses floor rounding:
 * const result = secondsToHours(7199)
 * //=> 1
 */
function secondsToHours(seconds) {
  const hours = seconds / _index.secondsInHour;
  return Math.trunc(hours);
}


/***/ }),

/***/ 2945:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addISOWeekYears = addISOWeekYears;
var _index = __webpack_require__(9957);
var _index2 = __webpack_require__(4617);

/**
 * The {@link addISOWeekYears} function options.
 */

/**
 * @name addISOWeekYears
 * @category ISO Week-Numbering Year Helpers
 * @summary Add the specified number of ISO week-numbering years to the given date.
 *
 * @description
 * Add the specified number of ISO week-numbering years to the given date.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param date - The date to be changed
 * @param amount - The amount of ISO week-numbering years to be added.
 * @param options - An object with options
 *
 * @returns The new date with the ISO week-numbering years added
 *
 * @example
 * // Add 5 ISO week-numbering years to 2 July 2010:
 * const result = addISOWeekYears(new Date(2010, 6, 2), 5)
 * //=> Fri Jun 26 2015 00:00:00
 */
function addISOWeekYears(date, amount, options) {
  return (0, _index2.setISOWeekYear)(
    date,
    (0, _index.getISOWeekYear)(date, options) + amount,
    options,
  );
}


/***/ }),

/***/ 2956:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.constructFrom = constructFrom;
var _index = __webpack_require__(8052);

/**
 * @name constructFrom
 * @category Generic Helpers
 * @summary Constructs a date using the reference date and the value
 *
 * @description
 * The function constructs a new date using the constructor from the reference
 * date and the given value. It helps to build generic functions that accept
 * date extensions.
 *
 * It defaults to `Date` if the passed reference date is a number or a string.
 *
 * Starting from v3.7.0, it allows to construct a date using `[Symbol.for("constructDateFrom")]`
 * enabling to transfer extra properties from the reference date to the new date.
 * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)
 * that accept a time zone as a constructor argument.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param date - The reference date to take constructor from
 * @param value - The value to create the date
 *
 * @returns Date initialized using the given date and value
 *
 * @example
 * import { constructFrom } from "date-fns";
 *
 * // A function that clones a date preserving the original type
 * function cloneDate<DateType extends Date>(date: DateType): DateType {
 *   return constructFrom(
 *     date, // Use constructor from the given date
 *     date.getTime() // Use the date value to create a new date
 *   );
 * }
 */
function constructFrom(date, value) {
  if (typeof date === "function") return date(value);

  if (date && typeof date === "object" && _index.constructFromSymbol in date)
    return date[_index.constructFromSymbol](value);

  if (date instanceof Date) return new date.constructor(value);

  return new Date(value);
}


/***/ }),

/***/ 2963:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDecade = getDecade;
var _index = __webpack_require__(4446);

/**
 * The {@link getDecade} function options.
 */

/**
 * @name getDecade
 * @category Decade Helpers
 * @summary Get the decade of the given date.
 *
 * @description
 * Get the decade of the given date.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The year of decade
 *
 * @example
 * // Which decade belongs 27 November 1942?
 * const result = getDecade(new Date(1942, 10, 27))
 * //=> 1940
 */
function getDecade(date, options) {
  // TODO: Switch to more technical definition in of decades that start with 1
  // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking
  // change, so it can only be done in 4.0.
  const _date = (0, _index.toDate)(date, options?.in);
  const year = _date.getFullYear();
  const decade = Math.floor(year / 10) * 10;
  return decade;
}


/***/ }),

/***/ 2994:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfWeek = lastDayOfWeek;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(4446);

/**
 * The {@link lastDayOfWeek} function options.
 */

/**
 * @name lastDayOfWeek
 * @category Week Helpers
 * @summary Return the last day of a week for the given date.
 *
 * @description
 * Return the last day of a week for the given date.
 * The result will be in the local timezone unless a context is specified.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The last day of a week
 */
function lastDayOfWeek(date, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const _date = (0, _index2.toDate)(date, options?.in);
  const day = _date.getDay();
  const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);

  _date.setHours(0, 0, 0, 0);
  _date.setDate(_date.getDate() + diff);

  return _date;
}


/***/ }),

/***/ 3028:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subMinutes = subMinutes;
var _index = __webpack_require__(3937);

/**
 * The {@link subMinutes} function options.
 */

/**
 * @name subMinutes
 * @category Minute Helpers
 * @summary Subtract the specified number of minutes from the given date.
 *
 * @description
 * Subtract the specified number of minutes from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of minutes to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the minutes subtracted
 *
 * @example
 * // Subtract 30 minutes from 10 July 2014 12:00:00:
 * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)
 * //=> Thu Jul 10 2014 11:30:00
 */
function subMinutes(date, amount, options) {
  return (0, _index.addMinutes)(date, -amount, options);
}


/***/ }),

/***/ 3040:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfWeekYear = startOfWeekYear;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(6708);
var _index4 = __webpack_require__(5472);

/**
 * The {@link startOfWeekYear} function options.
 */

/**
 * @name startOfWeekYear
 * @category Week-Numbering Year Helpers
 * @summary Return the start of a local week-numbering year for the given date.
 *
 * @description
 * Return the start of a local week-numbering year.
 * The exact calculation depends on the values of
 * `options.weekStartsOn` (which is the index of the first day of the week)
 * and `options.firstWeekContainsDate` (which is the day of January, which is always in
 * the first week of the week-numbering year)
 *
 * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of a week-numbering year
 *
 * @example
 * // The start of an a week-numbering year for 2 July 2005 with default settings:
 * const result = startOfWeekYear(new Date(2005, 6, 2))
 * //=> Sun Dec 26 2004 00:00:00
 *
 * @example
 * // The start of a week-numbering year for 2 July 2005
 * // if Monday is the first day of week
 * // and 4 January is always in the first week of the year:
 * const result = startOfWeekYear(new Date(2005, 6, 2), {
 *   weekStartsOn: 1,
 *   firstWeekContainsDate: 4
 * })
 * //=> Mon Jan 03 2005 00:00:00
 */
function startOfWeekYear(date, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const firstWeekContainsDate =
    options?.firstWeekContainsDate ??
    options?.locale?.options?.firstWeekContainsDate ??
    defaultOptions.firstWeekContainsDate ??
    defaultOptions.locale?.options?.firstWeekContainsDate ??
    1;

  const year = (0, _index3.getWeekYear)(date, options);
  const firstWeek = (0, _index2.constructFrom)(options?.in || date, 0);
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
  firstWeek.setHours(0, 0, 0, 0);
  const _date = (0, _index4.startOfWeek)(firstWeek, options);
  return _date;
}


/***/ }),

/***/ 3072:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/** @license React v16.13.1
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;


/***/ }),

/***/ 3074:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.minutesToSeconds = minutesToSeconds;
var _index = __webpack_require__(8052);

/**
 * @name minutesToSeconds
 * @category Conversion Helpers
 * @summary Convert minutes to seconds.
 *
 * @description
 * Convert a number of minutes to a full number of seconds.
 *
 * @param minutes - The number of minutes to be converted
 *
 * @returns The number of minutes converted in seconds
 *
 * @example
 * // Convert 2 minutes to seconds
 * const result = minutesToSeconds(2)
 * //=> 120
 */
function minutesToSeconds(minutes) {
  return Math.trunc(minutes * _index.secondsInMinute);
}


/***/ }),

/***/ 3117:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (/* binding */ showProModal)
/* harmony export */ });
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var _React = React,
  useEffect = _React.useEffect,
  useState = _React.useState;
function ProModal(_ref) {
  var text = _ref.text,
    _ref$isDismissable = _ref.isDismissable,
    isDismissable = _ref$isDismissable === void 0 ? true : _ref$isDismissable;
  var _useState = useState(true),
    _useState2 = _slicedToArray(_useState, 2),
    isOpen = _useState2[0],
    setIsOpen = _useState2[1];
  useEffect(function () {
    if (!isOpen) {
      ReactDOM.unmountComponentAtNode(document.getElementById('smp-pro-modal'));
    }
  }, [isOpen]);
  useEffect(function () {
    var $ = jQuery;

    // On click outside modal close modal using jQuery
    if (isDismissable) {
      $(document).on('click', '.smp-pro-modal-wrap', function (e) {
        if ($(e.target).hasClass('smp-pro-modal-wrap')) {
          setIsOpen(false);
        }
      });
    }

    // Timer
    function updateTimer() {
      var now = new Date().getTime();
      var distance = targetTime - now;

      // If the count down is over, reset it
      if (distance < 0) {
        setNewTargetTime();
        distance = targetTime - now;
      }

      // Time calculations for days, hours, minutes and seconds
      var days = Math.floor(distance / (1000 * 60 * 60 * 24));
      var hours = Math.floor(distance % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
      var minutes = Math.floor(distance % (1000 * 60 * 60) / (1000 * 60));
      var seconds = Math.floor(distance % (1000 * 60) / 1000);

      // Display the result in the respective elements
      $('.timer .days span:first').text(days);
      $('.timer .hours span:first').text(hours);
      $('.timer .minutes span:first').text(minutes);
      $('.timer .seconds span:first').text(seconds);
    }

    // Function to set a new target time
    function setNewTargetTime() {
      var newTargetTime = new Date().getTime() + 6.3 * 24 * 60 * 60 * 1000; // 6 days from now
      localStorage.setItem('smp_offer_time', newTargetTime);
      targetTime = newTargetTime;
    }

    // Get or set the target time
    var targetTime = localStorage.getItem('smp_offer_time');
    if (!targetTime || isNaN(targetTime)) {
      setNewTargetTime();
    } else {
      targetTime = parseInt(targetTime);
    }

    // Update the timer every second
    setInterval(updateTimer, 1000);
  }, []);
  return isOpen ? /*#__PURE__*/React.createElement("div", {
    className: "smp-pro-modal-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-pro-modal"
  }, /*#__PURE__*/React.createElement("span", {
    className: "smp-pro-modal-close",
    onClick: function onClick() {
      return setIsOpen(false);
    }
  }, "\xD7"), /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/offer.svg"),
    alt: wp.i18n.__('Upgrade to Pro', 'multimedia-player')
  }), /*#__PURE__*/React.createElement("h3", null, wp.i18n.__('Unlock PRO Features', 'multimedia-player')), /*#__PURE__*/React.createElement("p", null, text), /*#__PURE__*/React.createElement("div", {
    className: "discount"
  }, /*#__PURE__*/React.createElement("span", {
    className: "discount-special"
  }, wp.i18n.__('Special', 'multimedia-player')), /*#__PURE__*/React.createElement("span", {
    className: "discount-text"
  }, wp.i18n.__('30% OFF', 'multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "timer"
  }, /*#__PURE__*/React.createElement("div", {
    className: "days"
  }, /*#__PURE__*/React.createElement("span", null, "0"), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('DAYS', 'multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "hours"
  }, /*#__PURE__*/React.createElement("span", null, "0"), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('HOURS', 'multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "minutes"
  }, /*#__PURE__*/React.createElement("span", null, "0"), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('MINUTES', 'multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "seconds"
  }, /*#__PURE__*/React.createElement("span", null, "0"), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('SECONDS', 'multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "smp-pro-modal-actions"
  }, /*#__PURE__*/React.createElement("a", {
    href: smp.upgradeUrl,
    className: "smp-btn"
  }, wp.i18n.__('Claim Discount', 'soft-multimedia-player'))))) : null;
}
function showProModal() {
  var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : wp.i18n.__('Upgrade to PRO to use this feature.', 'soft-multimedia-player');
  var element = document.getElementById('smp-pro-modal');
  if (!element) {
    element = document.createElement('div');
    element.id = 'smp-pro-modal';
    document.body.appendChild(element);
  }
  ReactDOM.render(/*#__PURE__*/React.createElement(ProModal, {
    text: text
  }), element);
}

/***/ }),

/***/ 3224:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subDays = subDays;
var _index = __webpack_require__(7591);

/**
 * The {@link subDays} function options.
 */

/**
 * @name subDays
 * @category Day Helpers
 * @summary Subtract the specified number of days from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of days to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the days subtracted
 *
 * @example
 * // Subtract 10 days from 1 September 2014:
 * const result = subDays(new Date(2014, 8, 1), 10)
 * //=> Fri Aug 22 2014 00:00:00
 */
function subDays(date, amount, options) {
  return (0, _index.addDays)(date, -amount, options);
}


/***/ }),

/***/ 3298:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachWeekOfInterval = eachWeekOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(4073);
var _index3 = __webpack_require__(2956);
var _index4 = __webpack_require__(5472);

/**
 * The {@link eachWeekOfInterval} function options.
 */

/**
 * The {@link eachWeekOfInterval} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the interval start date,
 * then the end interval date. If a context function is passed, it uses the context function return type.
 */

/**
 * @name eachWeekOfInterval
 * @category Interval Helpers
 * @summary Return the array of weeks within the specified time interval.
 *
 * @description
 * Return the array of weeks within the specified time interval.
 *
 * @param interval - The interval.
 * @param options - An object with options.
 *
 * @returns The array with starts of weeks from the week of the interval start to the week of the interval end
 *
 * @example
 * // Each week within interval 6 October 2014 - 23 November 2014:
 * const result = eachWeekOfInterval({
 *   start: new Date(2014, 9, 6),
 *   end: new Date(2014, 10, 23)
 * })
 * //=> [
 * //   Sun Oct 05 2014 00:00:00,
 * //   Sun Oct 12 2014 00:00:00,
 * //   Sun Oct 19 2014 00:00:00,
 * //   Sun Oct 26 2014 00:00:00,
 * //   Sun Nov 02 2014 00:00:00,
 * //   Sun Nov 09 2014 00:00:00,
 * //   Sun Nov 16 2014 00:00:00,
 * //   Sun Nov 23 2014 00:00:00
 * // ]
 */
function eachWeekOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);

  let reversed = +start > +end;
  const startDateWeek = reversed
    ? (0, _index4.startOfWeek)(end, options)
    : (0, _index4.startOfWeek)(start, options);
  const endDateWeek = reversed
    ? (0, _index4.startOfWeek)(start, options)
    : (0, _index4.startOfWeek)(end, options);

  startDateWeek.setHours(15);
  endDateWeek.setHours(15);

  const endTime = +endDateWeek.getTime();
  let currentDate = startDateWeek;

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+currentDate <= endTime) {
    currentDate.setHours(0);
    dates.push((0, _index3.constructFrom)(start, currentDate));
    currentDate = (0, _index2.addWeeks)(currentDate, step);
    currentDate.setHours(15);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 3306:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ISOTimezoneWithZParser = void 0;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(6339);
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// Timezone (ISO-8601. +00:00 is `'Z'`)
class ISOTimezoneWithZParser extends _Parser.Parser {
  priority = 10;

  parse(dateString, token) {
    switch (token) {
      case "X":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.basicOptionalMinutes,
          dateString,
        );
      case "XX":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.basic,
          dateString,
        );
      case "XXXX":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.basicOptionalSeconds,
          dateString,
        );
      case "XXXXX":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.extendedOptionalSeconds,
          dateString,
        );
      case "XXX":
      default:
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.extended,
          dateString,
        );
    }
  }

  set(date, flags, value) {
    if (flags.timestampIsSet) return date;
    return (0, _index.constructFrom)(
      date,
      date.getTime() -
        (0, _index2.getTimezoneOffsetInMilliseconds)(date) -
        value,
    );
  }

  incompatibleTokens = ["t", "T", "x"];
}
exports.ISOTimezoneWithZParser = ISOTimezoneWithZParser;


/***/ }),

/***/ 3313:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfTomorrow = startOfTomorrow;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);

/**
 * The {@link startOfTomorrow} function options.
 */

/**
 * @name startOfTomorrow
 * @category Day Helpers
 * @summary Return the start of tomorrow.
 * @pure false
 *
 * @typeParam ContextDate - The `Date` type of the context function.
 *
 * @param options - An object with options
 *
 * @returns The start of tomorrow
 *
 * @description
 * Return the start of tomorrow.
 *
 * @example
 * // If today is 6 October 2014:
 * const result = startOfTomorrow()
 * //=> Tue Oct 7 2014 00:00:00
 */
function startOfTomorrow(options) {
  const now = (0, _index2.constructNow)(options?.in);
  const year = now.getFullYear();
  const month = now.getMonth();
  const day = now.getDate();

  const date = (0, _index.constructFrom)(options?.in, 0);
  date.setFullYear(year, month, day + 1);
  date.setHours(0, 0, 0, 0);
  return date;
}


/***/ }),

/***/ 3348:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isWeekend = isWeekend;
var _index = __webpack_require__(4446);

/**
 * The {@link isWeekend} function options.
 */

/**
 * @name isWeekend
 * @category Weekday Helpers
 * @summary Does the given date fall on a weekend?
 *
 * @description
 * Does the given date fall on a weekend? A weekend is either Saturday (`6`) or Sunday (`0`).
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date falls on a weekend
 *
 * @example
 * // Does 5 October 2014 fall on a weekend?
 * const result = isWeekend(new Date(2014, 9, 5))
 * //=> true
 */
function isWeekend(date, options) {
  const day = (0, _index.toDate)(date, options?.in).getDay();
  return day === 0 || day === 6;
}


/***/ }),

/***/ 3354:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setISOWeek = setISOWeek;
var _index = __webpack_require__(8926);
var _index2 = __webpack_require__(4446);

/**
 * The {@link setISOWeek} function options.
 */

/**
 * @name setISOWeek
 * @category ISO Week Helpers
 * @summary Set the ISO week to the given date.
 *
 * @description
 * Set the ISO week to the given date, saving the weekday number.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The `Date` type of the context function.
 *
 * @param date - The date to be changed
 * @param week - The ISO week of the new date
 * @param options - An object with options
 *
 * @returns The new date with the ISO week set
 *
 * @example
 * // Set the 53rd ISO week to 7 August 2004:
 * const result = setISOWeek(new Date(2004, 7, 7), 53)
 * //=> Sat Jan 01 2005 00:00:00
 */
function setISOWeek(date, week, options) {
  const _date = (0, _index2.toDate)(date, options?.in);
  const diff = (0, _index.getISOWeek)(_date, options) - week;
  _date.setDate(_date.getDate() - diff * 7);
  return _date;
}


/***/ }),

/***/ 3359:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setDayOfYear = setDayOfYear;
var _index = __webpack_require__(4446);

/**
 * The {@link setDayOfYear} function options.
 */

/**
 * @name setDayOfYear
 * @category Day Helpers
 * @summary Set the day of the year to the given date.
 *
 * @description
 * Set the day of the year to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param dayOfYear - The day of the year of the new date
 * @param options - An object with options
 *
 * @returns The new date with the day of the year set
 *
 * @example
 * // Set the 2nd day of the year to 2 July 2014:
 * const result = setDayOfYear(new Date(2014, 6, 2), 2)
 * //=> Thu Jan 02 2014 00:00:00
 */
function setDayOfYear(date, dayOfYear, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  date_.setMonth(0);
  date_.setDate(dayOfYear);
  return date_;
}


/***/ }),

/***/ 3364:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isLeapYear = isLeapYear;
var _index = __webpack_require__(4446);

/**
 * @name isLeapYear
 * @category Year Helpers
 * @summary Is the given date in the leap year?
 *
 * @description
 * Is the given date in the leap year?
 *
 * @param date - The date to check
 * @param options - The options object
 *
 * @returns The date is in the leap year
 *
 * @example
 * // Is 1 September 2012 in the leap year?
 * const result = isLeapYear(new Date(2012, 8, 1))
 * //=> true
 */
function isLeapYear(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const year = _date.getFullYear();
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
}


/***/ }),

/***/ 3375:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.milliseconds = milliseconds;
var _index = __webpack_require__(8052);

/**
 * @name milliseconds
 * @category Millisecond Helpers
 * @summary
 * Returns the number of milliseconds in the specified, years, months, weeks, days, hours, minutes and seconds.
 *
 * @description
 * Returns the number of milliseconds in the specified, years, months, weeks, days, hours, minutes and seconds.
 *
 * One years equals 365.2425 days according to the formula:
 *
 * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.
 * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days
 *
 * One month is a year divided by 12.
 *
 * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be added.
 *
 * @returns The milliseconds
 *
 * @example
 * // 1 year in milliseconds
 * milliseconds({ years: 1 })
 * //=> 31556952000
 *
 * // 3 months in milliseconds
 * milliseconds({ months: 3 })
 * //=> 7889238000
 */
function milliseconds({ years, months, weeks, days, hours, minutes, seconds }) {
  let totalDays = 0;

  if (years) totalDays += years * _index.daysInYear;
  if (months) totalDays += months * (_index.daysInYear / 12);
  if (weeks) totalDays += weeks * 7;
  if (days) totalDays += days;

  let totalSeconds = totalDays * 24 * 60 * 60;

  if (hours) totalSeconds += hours * 60 * 60;
  if (minutes) totalSeconds += minutes * 60;
  if (seconds) totalSeconds += seconds;

  return Math.trunc(totalSeconds * 1000);
}


/***/ }),

/***/ 3390:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   shallowEqualArrays: () => (/* binding */ shallowEqualArrays),
/* harmony export */   shallowEqualObjects: () => (/* binding */ shallowEqualObjects)
/* harmony export */ });
function shallowEqualObjects(objA, objB) {
  if (objA === objB) {
    return true;
  }

  if (!objA || !objB) {
    return false;
  }

  var aKeys = Object.keys(objA);
  var bKeys = Object.keys(objB);
  var len = aKeys.length;

  if (bKeys.length !== len) {
    return false;
  }

  for (var i = 0; i < len; i++) {
    var key = aKeys[i];

    if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {
      return false;
    }
  }

  return true;
}

function shallowEqualArrays(arrA, arrB) {
  if (arrA === arrB) {
    return true;
  }

  if (!arrA || !arrB) {
    return false;
  }

  var len = arrA.length;

  if (arrB.length !== len) {
    return false;
  }

  for (var i = 0; i < len; i++) {
    if (arrA[i] !== arrB[i]) {
      return false;
    }
  }

  return true;
}




/***/ }),

/***/ 3404:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(3072);
} else // removed by dead control flow
{}


/***/ }),

/***/ 3495:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.FractionOfSecondParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class FractionOfSecondParser extends _Parser.Parser {
  priority = 30;

  parse(dateString, token) {
    const valueCallback = (value) =>
      Math.trunc(value * Math.pow(10, -token.length + 3));
    return (0, _utils.mapValue)(
      (0, _utils.parseNDigits)(token.length, dateString),
      valueCallback,
    );
  }

  set(date, _flags, value) {
    date.setMilliseconds(value);
    return date;
  }

  incompatibleTokens = ["t", "T"];
}
exports.FractionOfSecondParser = FractionOfSecondParser;


/***/ }),

/***/ 3525:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatters = void 0;
var _index = __webpack_require__(659);
var _index2 = __webpack_require__(8926);
var _index3 = __webpack_require__(9957);
var _index4 = __webpack_require__(9639);
var _index5 = __webpack_require__(6708);

var _index6 = __webpack_require__(2554);
var _index7 = __webpack_require__(8441);

const dayPeriodEnum = {
  am: "am",
  pm: "pm",
  midnight: "midnight",
  noon: "noon",
  morning: "morning",
  afternoon: "afternoon",
  evening: "evening",
  night: "night",
};

/*
 * |     | Unit                           |     | Unit                           |
 * |-----|--------------------------------|-----|--------------------------------|
 * |  a  | AM, PM                         |  A* | Milliseconds in day            |
 * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |
 * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |
 * |  d  | Day of month                   |  D  | Day of year                    |
 * |  e  | Local day of week              |  E  | Day of week                    |
 * |  f  |                                |  F* | Day of week in month           |
 * |  g* | Modified Julian day            |  G  | Era                            |
 * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
 * |  i! | ISO day of week                |  I! | ISO week of year               |
 * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |
 * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |
 * |  l* | (deprecated)                   |  L  | Stand-alone month              |
 * |  m  | Minute                         |  M  | Month                          |
 * |  n  |                                |  N  |                                |
 * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |
 * |  p! | Long localized time            |  P! | Long localized date            |
 * |  q  | Stand-alone quarter            |  Q  | Quarter                        |
 * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |
 * |  s  | Second                         |  S  | Fraction of second             |
 * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |
 * |  u  | Extended year                  |  U* | Cyclic year                    |
 * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |
 * |  w  | Local week of year             |  W* | Week of month                  |
 * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |
 * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |
 * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |
 *
 * Letters marked by * are not implemented but reserved by Unicode standard.
 *
 * Letters marked by ! are non-standard, but implemented by date-fns:
 * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)
 * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
 *   i.e. 7 for Sunday, 1 for Monday, etc.
 * - `I` is ISO week of year, as opposed to `w` which is local week of year.
 * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
 *   `R` is supposed to be used in conjunction with `I` and `i`
 *   for universal ISO week-numbering date, whereas
 *   `Y` is supposed to be used in conjunction with `w` and `e`
 *   for week-numbering date specific to the locale.
 * - `P` is long localized date format
 * - `p` is long localized time format
 */

const formatters = (exports.formatters = {
  // Era
  G: function (date, token, localize) {
    const era = date.getFullYear() > 0 ? 1 : 0;
    switch (token) {
      // AD, BC
      case "G":
      case "GG":
      case "GGG":
        return localize.era(era, { width: "abbreviated" });
      // A, B
      case "GGGGG":
        return localize.era(era, { width: "narrow" });
      // Anno Domini, Before Christ
      case "GGGG":
      default:
        return localize.era(era, { width: "wide" });
    }
  },

  // Year
  y: function (date, token, localize) {
    // Ordinal number
    if (token === "yo") {
      const signedYear = date.getFullYear();
      // Returns 1 for 1 BC (which is year 0 in JavaScript)
      const year = signedYear > 0 ? signedYear : 1 - signedYear;
      return localize.ordinalNumber(year, { unit: "year" });
    }

    return _index7.lightFormatters.y(date, token);
  },

  // Local week-numbering year
  Y: function (date, token, localize, options) {
    const signedWeekYear = (0, _index5.getWeekYear)(date, options);
    // Returns 1 for 1 BC (which is year 0 in JavaScript)
    const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;

    // Two digit year
    if (token === "YY") {
      const twoDigitYear = weekYear % 100;
      return (0, _index6.addLeadingZeros)(twoDigitYear, 2);
    }

    // Ordinal number
    if (token === "Yo") {
      return localize.ordinalNumber(weekYear, { unit: "year" });
    }

    // Padding
    return (0, _index6.addLeadingZeros)(weekYear, token.length);
  },

  // ISO week-numbering year
  R: function (date, token) {
    const isoWeekYear = (0, _index3.getISOWeekYear)(date);

    // Padding
    return (0, _index6.addLeadingZeros)(isoWeekYear, token.length);
  },

  // Extended year. This is a single number designating the year of this calendar system.
  // The main difference between `y` and `u` localizers are B.C. years:
  // | Year | `y` | `u` |
  // |------|-----|-----|
  // | AC 1 |   1 |   1 |
  // | BC 1 |   1 |   0 |
  // | BC 2 |   2 |  -1 |
  // Also `yy` always returns the last two digits of a year,
  // while `uu` pads single digit years to 2 characters and returns other years unchanged.
  u: function (date, token) {
    const year = date.getFullYear();
    return (0, _index6.addLeadingZeros)(year, token.length);
  },

  // Quarter
  Q: function (date, token, localize) {
    const quarter = Math.ceil((date.getMonth() + 1) / 3);
    switch (token) {
      // 1, 2, 3, 4
      case "Q":
        return String(quarter);
      // 01, 02, 03, 04
      case "QQ":
        return (0, _index6.addLeadingZeros)(quarter, 2);
      // 1st, 2nd, 3rd, 4th
      case "Qo":
        return localize.ordinalNumber(quarter, { unit: "quarter" });
      // Q1, Q2, Q3, Q4
      case "QQQ":
        return localize.quarter(quarter, {
          width: "abbreviated",
          context: "formatting",
        });
      // 1, 2, 3, 4 (narrow quarter; could be not numerical)
      case "QQQQQ":
        return localize.quarter(quarter, {
          width: "narrow",
          context: "formatting",
        });
      // 1st quarter, 2nd quarter, ...
      case "QQQQ":
      default:
        return localize.quarter(quarter, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // Stand-alone quarter
  q: function (date, token, localize) {
    const quarter = Math.ceil((date.getMonth() + 1) / 3);
    switch (token) {
      // 1, 2, 3, 4
      case "q":
        return String(quarter);
      // 01, 02, 03, 04
      case "qq":
        return (0, _index6.addLeadingZeros)(quarter, 2);
      // 1st, 2nd, 3rd, 4th
      case "qo":
        return localize.ordinalNumber(quarter, { unit: "quarter" });
      // Q1, Q2, Q3, Q4
      case "qqq":
        return localize.quarter(quarter, {
          width: "abbreviated",
          context: "standalone",
        });
      // 1, 2, 3, 4 (narrow quarter; could be not numerical)
      case "qqqqq":
        return localize.quarter(quarter, {
          width: "narrow",
          context: "standalone",
        });
      // 1st quarter, 2nd quarter, ...
      case "qqqq":
      default:
        return localize.quarter(quarter, {
          width: "wide",
          context: "standalone",
        });
    }
  },

  // Month
  M: function (date, token, localize) {
    const month = date.getMonth();
    switch (token) {
      case "M":
      case "MM":
        return _index7.lightFormatters.M(date, token);
      // 1st, 2nd, ..., 12th
      case "Mo":
        return localize.ordinalNumber(month + 1, { unit: "month" });
      // Jan, Feb, ..., Dec
      case "MMM":
        return localize.month(month, {
          width: "abbreviated",
          context: "formatting",
        });
      // J, F, ..., D
      case "MMMMM":
        return localize.month(month, {
          width: "narrow",
          context: "formatting",
        });
      // January, February, ..., December
      case "MMMM":
      default:
        return localize.month(month, { width: "wide", context: "formatting" });
    }
  },

  // Stand-alone month
  L: function (date, token, localize) {
    const month = date.getMonth();
    switch (token) {
      // 1, 2, ..., 12
      case "L":
        return String(month + 1);
      // 01, 02, ..., 12
      case "LL":
        return (0, _index6.addLeadingZeros)(month + 1, 2);
      // 1st, 2nd, ..., 12th
      case "Lo":
        return localize.ordinalNumber(month + 1, { unit: "month" });
      // Jan, Feb, ..., Dec
      case "LLL":
        return localize.month(month, {
          width: "abbreviated",
          context: "standalone",
        });
      // J, F, ..., D
      case "LLLLL":
        return localize.month(month, {
          width: "narrow",
          context: "standalone",
        });
      // January, February, ..., December
      case "LLLL":
      default:
        return localize.month(month, { width: "wide", context: "standalone" });
    }
  },

  // Local week of year
  w: function (date, token, localize, options) {
    const week = (0, _index4.getWeek)(date, options);

    if (token === "wo") {
      return localize.ordinalNumber(week, { unit: "week" });
    }

    return (0, _index6.addLeadingZeros)(week, token.length);
  },

  // ISO week of year
  I: function (date, token, localize) {
    const isoWeek = (0, _index2.getISOWeek)(date);

    if (token === "Io") {
      return localize.ordinalNumber(isoWeek, { unit: "week" });
    }

    return (0, _index6.addLeadingZeros)(isoWeek, token.length);
  },

  // Day of the month
  d: function (date, token, localize) {
    if (token === "do") {
      return localize.ordinalNumber(date.getDate(), { unit: "date" });
    }

    return _index7.lightFormatters.d(date, token);
  },

  // Day of year
  D: function (date, token, localize) {
    const dayOfYear = (0, _index.getDayOfYear)(date);

    if (token === "Do") {
      return localize.ordinalNumber(dayOfYear, { unit: "dayOfYear" });
    }

    return (0, _index6.addLeadingZeros)(dayOfYear, token.length);
  },

  // Day of week
  E: function (date, token, localize) {
    const dayOfWeek = date.getDay();
    switch (token) {
      // Tue
      case "E":
      case "EE":
      case "EEE":
        return localize.day(dayOfWeek, {
          width: "abbreviated",
          context: "formatting",
        });
      // T
      case "EEEEE":
        return localize.day(dayOfWeek, {
          width: "narrow",
          context: "formatting",
        });
      // Tu
      case "EEEEEE":
        return localize.day(dayOfWeek, {
          width: "short",
          context: "formatting",
        });
      // Tuesday
      case "EEEE":
      default:
        return localize.day(dayOfWeek, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // Local day of week
  e: function (date, token, localize, options) {
    const dayOfWeek = date.getDay();
    const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
    switch (token) {
      // Numerical value (Nth day of week with current locale or weekStartsOn)
      case "e":
        return String(localDayOfWeek);
      // Padded numerical value
      case "ee":
        return (0, _index6.addLeadingZeros)(localDayOfWeek, 2);
      // 1st, 2nd, ..., 7th
      case "eo":
        return localize.ordinalNumber(localDayOfWeek, { unit: "day" });
      case "eee":
        return localize.day(dayOfWeek, {
          width: "abbreviated",
          context: "formatting",
        });
      // T
      case "eeeee":
        return localize.day(dayOfWeek, {
          width: "narrow",
          context: "formatting",
        });
      // Tu
      case "eeeeee":
        return localize.day(dayOfWeek, {
          width: "short",
          context: "formatting",
        });
      // Tuesday
      case "eeee":
      default:
        return localize.day(dayOfWeek, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // Stand-alone local day of week
  c: function (date, token, localize, options) {
    const dayOfWeek = date.getDay();
    const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
    switch (token) {
      // Numerical value (same as in `e`)
      case "c":
        return String(localDayOfWeek);
      // Padded numerical value
      case "cc":
        return (0, _index6.addLeadingZeros)(localDayOfWeek, token.length);
      // 1st, 2nd, ..., 7th
      case "co":
        return localize.ordinalNumber(localDayOfWeek, { unit: "day" });
      case "ccc":
        return localize.day(dayOfWeek, {
          width: "abbreviated",
          context: "standalone",
        });
      // T
      case "ccccc":
        return localize.day(dayOfWeek, {
          width: "narrow",
          context: "standalone",
        });
      // Tu
      case "cccccc":
        return localize.day(dayOfWeek, {
          width: "short",
          context: "standalone",
        });
      // Tuesday
      case "cccc":
      default:
        return localize.day(dayOfWeek, {
          width: "wide",
          context: "standalone",
        });
    }
  },

  // ISO day of week
  i: function (date, token, localize) {
    const dayOfWeek = date.getDay();
    const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
    switch (token) {
      // 2
      case "i":
        return String(isoDayOfWeek);
      // 02
      case "ii":
        return (0, _index6.addLeadingZeros)(isoDayOfWeek, token.length);
      // 2nd
      case "io":
        return localize.ordinalNumber(isoDayOfWeek, { unit: "day" });
      // Tue
      case "iii":
        return localize.day(dayOfWeek, {
          width: "abbreviated",
          context: "formatting",
        });
      // T
      case "iiiii":
        return localize.day(dayOfWeek, {
          width: "narrow",
          context: "formatting",
        });
      // Tu
      case "iiiiii":
        return localize.day(dayOfWeek, {
          width: "short",
          context: "formatting",
        });
      // Tuesday
      case "iiii":
      default:
        return localize.day(dayOfWeek, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // AM or PM
  a: function (date, token, localize) {
    const hours = date.getHours();
    const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";

    switch (token) {
      case "a":
      case "aa":
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "abbreviated",
          context: "formatting",
        });
      case "aaa":
        return localize
          .dayPeriod(dayPeriodEnumValue, {
            width: "abbreviated",
            context: "formatting",
          })
          .toLowerCase();
      case "aaaaa":
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "narrow",
          context: "formatting",
        });
      case "aaaa":
      default:
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // AM, PM, midnight, noon
  b: function (date, token, localize) {
    const hours = date.getHours();
    let dayPeriodEnumValue;
    if (hours === 12) {
      dayPeriodEnumValue = dayPeriodEnum.noon;
    } else if (hours === 0) {
      dayPeriodEnumValue = dayPeriodEnum.midnight;
    } else {
      dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
    }

    switch (token) {
      case "b":
      case "bb":
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "abbreviated",
          context: "formatting",
        });
      case "bbb":
        return localize
          .dayPeriod(dayPeriodEnumValue, {
            width: "abbreviated",
            context: "formatting",
          })
          .toLowerCase();
      case "bbbbb":
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "narrow",
          context: "formatting",
        });
      case "bbbb":
      default:
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // in the morning, in the afternoon, in the evening, at night
  B: function (date, token, localize) {
    const hours = date.getHours();
    let dayPeriodEnumValue;
    if (hours >= 17) {
      dayPeriodEnumValue = dayPeriodEnum.evening;
    } else if (hours >= 12) {
      dayPeriodEnumValue = dayPeriodEnum.afternoon;
    } else if (hours >= 4) {
      dayPeriodEnumValue = dayPeriodEnum.morning;
    } else {
      dayPeriodEnumValue = dayPeriodEnum.night;
    }

    switch (token) {
      case "B":
      case "BB":
      case "BBB":
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "abbreviated",
          context: "formatting",
        });
      case "BBBBB":
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "narrow",
          context: "formatting",
        });
      case "BBBB":
      default:
        return localize.dayPeriod(dayPeriodEnumValue, {
          width: "wide",
          context: "formatting",
        });
    }
  },

  // Hour [1-12]
  h: function (date, token, localize) {
    if (token === "ho") {
      let hours = date.getHours() % 12;
      if (hours === 0) hours = 12;
      return localize.ordinalNumber(hours, { unit: "hour" });
    }

    return _index7.lightFormatters.h(date, token);
  },

  // Hour [0-23]
  H: function (date, token, localize) {
    if (token === "Ho") {
      return localize.ordinalNumber(date.getHours(), { unit: "hour" });
    }

    return _index7.lightFormatters.H(date, token);
  },

  // Hour [0-11]
  K: function (date, token, localize) {
    const hours = date.getHours() % 12;

    if (token === "Ko") {
      return localize.ordinalNumber(hours, { unit: "hour" });
    }

    return (0, _index6.addLeadingZeros)(hours, token.length);
  },

  // Hour [1-24]
  k: function (date, token, localize) {
    let hours = date.getHours();
    if (hours === 0) hours = 24;

    if (token === "ko") {
      return localize.ordinalNumber(hours, { unit: "hour" });
    }

    return (0, _index6.addLeadingZeros)(hours, token.length);
  },

  // Minute
  m: function (date, token, localize) {
    if (token === "mo") {
      return localize.ordinalNumber(date.getMinutes(), { unit: "minute" });
    }

    return _index7.lightFormatters.m(date, token);
  },

  // Second
  s: function (date, token, localize) {
    if (token === "so") {
      return localize.ordinalNumber(date.getSeconds(), { unit: "second" });
    }

    return _index7.lightFormatters.s(date, token);
  },

  // Fraction of second
  S: function (date, token) {
    return _index7.lightFormatters.S(date, token);
  },

  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
  X: function (date, token, _localize) {
    const timezoneOffset = date.getTimezoneOffset();

    if (timezoneOffset === 0) {
      return "Z";
    }

    switch (token) {
      // Hours and optional minutes
      case "X":
        return formatTimezoneWithOptionalMinutes(timezoneOffset);

      // Hours, minutes and optional seconds without `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `XX`
      case "XXXX":
      case "XX": // Hours and minutes without `:` delimiter
        return formatTimezone(timezoneOffset);

      // Hours, minutes and optional seconds with `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `XXX`
      case "XXXXX":
      case "XXX": // Hours and minutes with `:` delimiter
      default:
        return formatTimezone(timezoneOffset, ":");
    }
  },

  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
  x: function (date, token, _localize) {
    const timezoneOffset = date.getTimezoneOffset();

    switch (token) {
      // Hours and optional minutes
      case "x":
        return formatTimezoneWithOptionalMinutes(timezoneOffset);

      // Hours, minutes and optional seconds without `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `xx`
      case "xxxx":
      case "xx": // Hours and minutes without `:` delimiter
        return formatTimezone(timezoneOffset);

      // Hours, minutes and optional seconds with `:` delimiter
      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
      // so this token always has the same output as `xxx`
      case "xxxxx":
      case "xxx": // Hours and minutes with `:` delimiter
      default:
        return formatTimezone(timezoneOffset, ":");
    }
  },

  // Timezone (GMT)
  O: function (date, token, _localize) {
    const timezoneOffset = date.getTimezoneOffset();

    switch (token) {
      // Short
      case "O":
      case "OO":
      case "OOO":
        return "GMT" + formatTimezoneShort(timezoneOffset, ":");
      // Long
      case "OOOO":
      default:
        return "GMT" + formatTimezone(timezoneOffset, ":");
    }
  },

  // Timezone (specific non-location)
  z: function (date, token, _localize) {
    const timezoneOffset = date.getTimezoneOffset();

    switch (token) {
      // Short
      case "z":
      case "zz":
      case "zzz":
        return "GMT" + formatTimezoneShort(timezoneOffset, ":");
      // Long
      case "zzzz":
      default:
        return "GMT" + formatTimezone(timezoneOffset, ":");
    }
  },

  // Seconds timestamp
  t: function (date, token, _localize) {
    const timestamp = Math.trunc(+date / 1000);
    return (0, _index6.addLeadingZeros)(timestamp, token.length);
  },

  // Milliseconds timestamp
  T: function (date, token, _localize) {
    return (0, _index6.addLeadingZeros)(+date, token.length);
  },
});

function formatTimezoneShort(offset, delimiter = "") {
  const sign = offset > 0 ? "-" : "+";
  const absOffset = Math.abs(offset);
  const hours = Math.trunc(absOffset / 60);
  const minutes = absOffset % 60;
  if (minutes === 0) {
    return sign + String(hours);
  }
  return (
    sign + String(hours) + delimiter + (0, _index6.addLeadingZeros)(minutes, 2)
  );
}

function formatTimezoneWithOptionalMinutes(offset, delimiter) {
  if (offset % 60 === 0) {
    const sign = offset > 0 ? "-" : "+";
    return sign + (0, _index6.addLeadingZeros)(Math.abs(offset) / 60, 2);
  }
  return formatTimezone(offset, delimiter);
}

function formatTimezone(offset, delimiter = "") {
  const sign = offset > 0 ? "-" : "+";
  const absOffset = Math.abs(offset);
  const hours = (0, _index6.addLeadingZeros)(Math.trunc(absOffset / 60), 2);
  const minutes = (0, _index6.addLeadingZeros)(absOffset % 60, 2);
  return sign + hours + delimiter + minutes;
}


/***/ }),

/***/ 3552:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfYesterday = startOfYesterday;
var _index = __webpack_require__(2700);

/**
 * The {@link startOfYesterday} function options.
 */

/**
 * @name startOfYesterday
 * @category Day Helpers
 * @summary Return the start of yesterday.
 * @pure false
 *
 * @typeParam ContextDate - The `Date` type of the context function.
 *
 * @param options - An object with options
 *
 * @description
 * Return the start of yesterday.
 *
 * @returns The start of yesterday
 *
 * @example
 * // If today is 6 October 2014:
 * const result = startOfYesterday()
 * //=> Sun Oct 5 2014 00:00:00
 */
function startOfYesterday(options) {
  const now = (0, _index.constructNow)(options?.in);
  const year = now.getFullYear();
  const month = now.getMonth();
  const day = now.getDate();

  const date = (0, _index.constructNow)(options?.in);
  date.setFullYear(year, month, day - 1);
  date.setHours(0, 0, 0, 0);
  return date;
}


/***/ }),

/***/ 3554:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var src_exports = {};
__export(src_exports, {
  default: () => src_default
});
module.exports = __toCommonJS(src_exports);
var import_players = __toESM(__webpack_require__(7015));
var import_ReactPlayer = __webpack_require__(5580);
const fallback = import_players.default[import_players.default.length - 1];
var src_default = (0, import_ReactPlayer.createReactPlayer)(import_players.default, fallback);


/***/ }),

/***/ 3561:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSunday = isSunday;
var _index = __webpack_require__(4446);

/**
 * The {@link isSunday} function options.
 */

/**
 * @name isSunday
 * @category Weekday Helpers
 * @summary Is the given date Sunday?
 *
 * @description
 * Is the given date Sunday?
 *
 * @param date - The date to check
 * @param options - The options object
 *
 * @returns The date is Sunday
 *
 * @example
 * // Is 21 September 2014 Sunday?
 * const result = isSunday(new Date(2014, 8, 21))
 * //=> true
 */
function isSunday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 0;
}


/***/ }),

/***/ 3570:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subBusinessDays = subBusinessDays;
var _index = __webpack_require__(9941);

/**
 * The {@link subBusinessDays} function options.
 */

/**
 * @name subBusinessDays
 * @category Day Helpers
 * @summary Subtract the specified number of business days (mon - fri) from the given date.
 *
 * @description
 * Subtract the specified number of business days (mon - fri) from the given date, ignoring weekends.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of business days to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the business days subtracted
 *
 * @example
 * // Subtract 10 business days from 1 September 2014:
 * const result = subBusinessDays(new Date(2014, 8, 1), 10)
 * //=> Mon Aug 18 2014 00:00:00 (skipped weekend days)
 */
function subBusinessDays(date, amount, options) {
  return (0, _index.addBusinessDays)(date, -amount, options);
}


/***/ }),

/***/ 3587:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThursday = isThursday;
var _index = __webpack_require__(4446);

/**
 * The {@link isThursday} function options.
 */

/**
 * @name isThursday
 * @category Weekday Helpers
 * @summary Is the given date Thursday?
 *
 * @description
 * Is the given date Thursday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is Thursday
 *
 * @example
 * // Is 25 September 2014 Thursday?
 * const result = isThursday(new Date(2014, 8, 25))
 * //=> true
 */
function isThursday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 4;
}


/***/ }),

/***/ 3635:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.set = set;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(7035);
var _index3 = __webpack_require__(4446);

/**
 * The {@link set} function options.
 */

/**
 * @name set
 * @category Common Helpers
 * @summary Set date values to a given date.
 *
 * @description
 * Set date values to a given date.
 *
 * Sets time values to date from object `values`.
 * A value is not set if it is undefined or null or doesn't exist in `values`.
 *
 * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts
 * to use native `Date#setX` methods. If you use this function, you may not want to include the
 * other `setX` functions that date-fns provides if you are concerned about the bundle size.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param values - The date values to be set
 * @param options - The options
 *
 * @returns The new date with options set
 *
 * @example
 * // Transform 1 September 2014 into 20 October 2015 in a single line:
 * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })
 * //=> Tue Oct 20 2015 00:00:00
 *
 * @example
 * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:
 * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })
 * //=> Mon Sep 01 2014 12:23:45
 */
function set(date, values, options) {
  let _date = (0, _index3.toDate)(date, options?.in);

  // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date
  if (isNaN(+_date)) return (0, _index.constructFrom)(options?.in || date, NaN);

  if (values.year != null) _date.setFullYear(values.year);
  if (values.month != null) _date = (0, _index2.setMonth)(_date, values.month);
  if (values.date != null) _date.setDate(values.date);
  if (values.hours != null) _date.setHours(values.hours);
  if (values.minutes != null) _date.setMinutes(values.minutes);
  if (values.seconds != null) _date.setSeconds(values.seconds);
  if (values.milliseconds != null) _date.setMilliseconds(values.milliseconds);

  return _date;
}


/***/ }),

/***/ 3653:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.AMPMMidnightParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class AMPMMidnightParser extends _Parser.Parser {
  priority = 80;

  parse(dateString, token, match) {
    switch (token) {
      case "b":
      case "bb":
      case "bbb":
        return (
          match.dayPeriod(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );

      case "bbbbb":
        return match.dayPeriod(dateString, {
          width: "narrow",
          context: "formatting",
        });
      case "bbbb":
      default:
        return (
          match.dayPeriod(dateString, {
            width: "wide",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );
    }
  }

  set(date, _flags, value) {
    date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["a", "B", "H", "k", "t", "T"];
}
exports.AMPMMidnightParser = AMPMMidnightParser;


/***/ }),

/***/ 3700:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachDayOfInterval = eachDayOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(2956);

/**
 * The {@link eachDayOfInterval} function options.
 */

/**
 * The {@link eachDayOfInterval} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the date argument,
 * then the start interval date, and finally the end interval date. If
 * a context function is passed, it uses the context function return type.
 */

/**
 * @name eachDayOfInterval
 * @category Interval Helpers
 * @summary Return the array of dates within the specified time interval.
 *
 * @description
 * Return the array of dates within the specified time interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The interval.
 * @param options - An object with options.
 *
 * @returns The array with starts of days from the day of the interval start to the day of the interval end
 *
 * @example
 * // Each day between 6 October 2014 and 10 October 2014:
 * const result = eachDayOfInterval({
 *   start: new Date(2014, 9, 6),
 *   end: new Date(2014, 9, 10)
 * })
 * //=> [
 * //   Mon Oct 06 2014 00:00:00,
 * //   Tue Oct 07 2014 00:00:00,
 * //   Wed Oct 08 2014 00:00:00,
 * //   Thu Oct 09 2014 00:00:00,
 * //   Fri Oct 10 2014 00:00:00
 * // ]
 */
function eachDayOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);

  let reversed = +start > +end;
  const endTime = reversed ? +start : +end;
  const date = reversed ? end : start;
  date.setHours(0, 0, 0, 0);

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+date <= endTime) {
    dates.push((0, _index2.constructFrom)(start, date));
    date.setDate(date.getDate() + step);
    date.setHours(0, 0, 0, 0);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 3724:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInDays = differenceInDays;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(5506);

/**
 * The {@link differenceInDays} function options.
 */

/**
 * @name differenceInDays
 * @category Day Helpers
 * @summary Get the number of full days between the given dates.
 *
 * @description
 * Get the number of full day periods between two dates. Fractional days are
 * truncated towards zero.
 *
 * One "full day" is the distance between a local time in one day to the same
 * local time on the next or previous day. A full day can sometimes be less than
 * or more than 24 hours if a daylight savings change happens between two dates.
 *
 * To ignore DST and only measure exact 24-hour periods, use this instead:
 * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of full days according to the local timezone
 *
 * @example
 * // How many full days are between
 * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?
 * const result = differenceInDays(
 *   new Date(2012, 6, 2, 0, 0),
 *   new Date(2011, 6, 2, 23, 0)
 * )
 * //=> 365
 *
 * @example
 * // How many full days are between
 * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?
 * const result = differenceInDays(
 *   new Date(2011, 6, 3, 0, 1),
 *   new Date(2011, 6, 2, 23, 59)
 * )
 * //=> 0
 *
 * @example
 * // How many full days are between
 * // 1 March 2020 0:00 and 1 June 2020 0:00 ?
 * // Note: because local time is used, the
 * // result will always be 92 days, even in
 * // time zones where DST starts and the
 * // period has only 92*24-1 hours.
 * const result = differenceInDays(
 *   new Date(2020, 5, 1),
 *   new Date(2020, 2, 1)
 * )
 * //=> 92
 */
function differenceInDays(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const sign = compareLocalAsc(laterDate_, earlierDate_);
  const difference = Math.abs(
    (0, _index2.differenceInCalendarDays)(laterDate_, earlierDate_),
  );

  laterDate_.setDate(laterDate_.getDate() - sign * difference);

  // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full
  // If so, result must be decreased by 1 in absolute value
  const isLastDayNotFull = Number(
    compareLocalAsc(laterDate_, earlierDate_) === -sign,
  );

  const result = sign * (difference - isLastDayNotFull);
  // Prevent negative zero
  return result === 0 ? 0 : result;
}

// Like `compareAsc` but uses local time not UTC, which is needed
// for accurate equality comparisons of UTC timestamps that end up
// having the same representation in local time, e.g. one hour before
// DST ends vs. the instant that DST ends.
function compareLocalAsc(laterDate, earlierDate) {
  const diff =
    laterDate.getFullYear() - earlierDate.getFullYear() ||
    laterDate.getMonth() - earlierDate.getMonth() ||
    laterDate.getDate() - earlierDate.getDate() ||
    laterDate.getHours() - earlierDate.getHours() ||
    laterDate.getMinutes() - earlierDate.getMinutes() ||
    laterDate.getSeconds() - earlierDate.getSeconds() ||
    laterDate.getMilliseconds() - earlierDate.getMilliseconds();

  if (diff < 0) return -1;
  if (diff > 0) return 1;

  // Return 0 if diff is 0; return NaN if diff is NaN
  return diff;
}


/***/ }),

/***/ 3767:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousSaturday = previousSaturday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousSaturday} function options.
 */

/**
 * @name previousSaturday
 * @category Weekday Helpers
 * @summary When is the previous Saturday?
 *
 * @description
 * When is the previous Saturday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - The options
 *
 * @returns The previous Saturday
 *
 * @example
 * // When is the previous Saturday before Jun, 20, 2021?
 * const result = previousSaturday(new Date(2021, 5, 20))
 * //=> Sat June 19 2021 00:00:00
 */
function previousSaturday(date, options) {
  return (0, _index.previousDay)(date, 6, options);
}


/***/ }),

/***/ 3771:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.dayPeriodEnumToHours = dayPeriodEnumToHours;
exports.isLeapYearIndex = isLeapYearIndex;
exports.mapValue = mapValue;
exports.normalizeTwoDigitYear = normalizeTwoDigitYear;
exports.parseAnyDigitsSigned = parseAnyDigitsSigned;
exports.parseNDigits = parseNDigits;
exports.parseNDigitsSigned = parseNDigitsSigned;
exports.parseNumericPattern = parseNumericPattern;
exports.parseTimezonePattern = parseTimezonePattern;
var _index = __webpack_require__(8052);

var _constants = __webpack_require__(7699);

function mapValue(parseFnResult, mapFn) {
  if (!parseFnResult) {
    return parseFnResult;
  }

  return {
    value: mapFn(parseFnResult.value),
    rest: parseFnResult.rest,
  };
}

function parseNumericPattern(pattern, dateString) {
  const matchResult = dateString.match(pattern);

  if (!matchResult) {
    return null;
  }

  return {
    value: parseInt(matchResult[0], 10),
    rest: dateString.slice(matchResult[0].length),
  };
}

function parseTimezonePattern(pattern, dateString) {
  const matchResult = dateString.match(pattern);

  if (!matchResult) {
    return null;
  }

  // Input is 'Z'
  if (matchResult[0] === "Z") {
    return {
      value: 0,
      rest: dateString.slice(1),
    };
  }

  const sign = matchResult[1] === "+" ? 1 : -1;
  const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;
  const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;
  const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;

  return {
    value:
      sign *
      (hours * _index.millisecondsInHour +
        minutes * _index.millisecondsInMinute +
        seconds * _index.millisecondsInSecond),
    rest: dateString.slice(matchResult[0].length),
  };
}

function parseAnyDigitsSigned(dateString) {
  return parseNumericPattern(
    _constants.numericPatterns.anyDigitsSigned,
    dateString,
  );
}

function parseNDigits(n, dateString) {
  switch (n) {
    case 1:
      return parseNumericPattern(
        _constants.numericPatterns.singleDigit,
        dateString,
      );
    case 2:
      return parseNumericPattern(
        _constants.numericPatterns.twoDigits,
        dateString,
      );
    case 3:
      return parseNumericPattern(
        _constants.numericPatterns.threeDigits,
        dateString,
      );
    case 4:
      return parseNumericPattern(
        _constants.numericPatterns.fourDigits,
        dateString,
      );
    default:
      return parseNumericPattern(new RegExp("^\\d{1," + n + "}"), dateString);
  }
}

function parseNDigitsSigned(n, dateString) {
  switch (n) {
    case 1:
      return parseNumericPattern(
        _constants.numericPatterns.singleDigitSigned,
        dateString,
      );
    case 2:
      return parseNumericPattern(
        _constants.numericPatterns.twoDigitsSigned,
        dateString,
      );
    case 3:
      return parseNumericPattern(
        _constants.numericPatterns.threeDigitsSigned,
        dateString,
      );
    case 4:
      return parseNumericPattern(
        _constants.numericPatterns.fourDigitsSigned,
        dateString,
      );
    default:
      return parseNumericPattern(new RegExp("^-?\\d{1," + n + "}"), dateString);
  }
}

function dayPeriodEnumToHours(dayPeriod) {
  switch (dayPeriod) {
    case "morning":
      return 4;
    case "evening":
      return 17;
    case "pm":
    case "noon":
    case "afternoon":
      return 12;
    case "am":
    case "midnight":
    case "night":
    default:
      return 0;
  }
}

function normalizeTwoDigitYear(twoDigitYear, currentYear) {
  const isCommonEra = currentYear > 0;
  // Absolute number of the current year:
  // 1 -> 1 AC
  // 0 -> 1 BC
  // -1 -> 2 BC
  const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;

  let result;
  if (absCurrentYear <= 50) {
    result = twoDigitYear || 100;
  } else {
    const rangeEnd = absCurrentYear + 50;
    const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;
    const isPreviousCentury = twoDigitYear >= rangeEnd % 100;
    result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);
  }

  return isCommonEra ? result : 1 - result;
}

function isLeapYearIndex(year) {
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
}


/***/ }),

/***/ 3772:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatDuration = formatDuration;

var _index = __webpack_require__(9577);
var _index2 = __webpack_require__(6755);

/**
 * The {@link formatDuration} function options.
 */

const defaultFormat = [
  "years",
  "months",
  "weeks",
  "days",
  "hours",
  "minutes",
  "seconds",
];

/**
 * @name formatDuration
 * @category Common Helpers
 * @summary Formats a duration in human-readable format
 *
 * @description
 * Return human-readable duration string i.e. "9 months 2 days"
 *
 * @param duration - The duration to format
 * @param options - An object with options.
 *
 * @returns The formatted date string
 *
 * @example
 * // Format full duration
 * formatDuration({
 *   years: 2,
 *   months: 9,
 *   weeks: 1,
 *   days: 7,
 *   hours: 5,
 *   minutes: 9,
 *   seconds: 30
 * })
 * //=> '2 years 9 months 1 week 7 days 5 hours 9 minutes 30 seconds'
 *
 * @example
 * // Format partial duration
 * formatDuration({ months: 9, days: 2 })
 * //=> '9 months 2 days'
 *
 * @example
 * // Customize the format
 * formatDuration(
 *   {
 *     years: 2,
 *     months: 9,
 *     weeks: 1,
 *     days: 7,
 *     hours: 5,
 *     minutes: 9,
 *     seconds: 30
 *   },
 *   { format: ['months', 'weeks'] }
 * ) === '9 months 1 week'
 *
 * @example
 * // Customize the zeros presence
 * formatDuration({ years: 0, months: 9 })
 * //=> '9 months'
 * formatDuration({ years: 0, months: 9 }, { zero: true })
 * //=> '0 years 9 months'
 *
 * @example
 * // Customize the delimiter
 * formatDuration({ years: 2, months: 9, weeks: 3 }, { delimiter: ', ' })
 * //=> '2 years, 9 months, 3 weeks'
 */
function formatDuration(duration, options) {
  const defaultOptions = (0, _index2.getDefaultOptions)();
  const locale =
    options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;
  const format = options?.format ?? defaultFormat;
  const zero = options?.zero ?? false;
  const delimiter = options?.delimiter ?? " ";

  if (!locale.formatDistance) {
    return "";
  }

  const result = format
    .reduce((acc, unit) => {
      const token = `x${unit.replace(/(^.)/, (m) => m.toUpperCase())}`;
      const value = duration[unit];
      if (value !== undefined && (zero || duration[unit])) {
        return acc.concat(locale.formatDistance(token, value));
      }
      return acc;
    }, [])
    .join(delimiter);

  return result;
}


/***/ }),

/***/ 3804:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isFirstDayOfMonth = isFirstDayOfMonth;
var _index = __webpack_require__(4446);

/**
 * The {@link isFirstDayOfMonth} function options.
 */

/**
 * @name isFirstDayOfMonth
 * @category Month Helpers
 * @summary Is the given date the first day of a month?
 *
 * @description
 * Is the given date the first day of a month?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is the first day of a month
 *
 * @example
 * // Is 1 September 2014 the first day of a month?
 * const result = isFirstDayOfMonth(new Date(2014, 8, 1))
 * //=> true
 */
function isFirstDayOfMonth(date, options) {
  return (0, _index.toDate)(date, options?.in).getDate() === 1;
}


/***/ }),

/***/ 3806:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isTuesday = isTuesday;
var _index = __webpack_require__(4446);

/**
 * The {@link isTuesday} function options.
 */

/**
 * @name isTuesday
 * @category Weekday Helpers
 * @summary Is the given date Tuesday?
 *
 * @description
 * Is the given date Tuesday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is Tuesday
 *
 * @example
 * // Is 23 September 2014 Tuesday?
 * const result = isTuesday(new Date(2014, 8, 23))
 * //=> true
 */
function isTuesday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 2;
}


/***/ }),

/***/ 3833:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameHour = isSameHour;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(5262);

/**
 * The {@link isSameHour} function options.
 */

/**
 * @name isSameHour
 * @category Hour Helpers
 * @summary Are the given dates in the same hour (and same day)?
 *
 * @description
 * Are the given dates in the same hour (and same day)?
 *
 * @param dateLeft - The first date to check
 * @param dateRight - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same hour (and same day)
 *
 * @example
 * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?
 * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 6, 30))
 * //=> true
 *
 * @example
 * // Are 4 September 2014 06:00:00 and 5 September 06:00:00 in the same hour?
 * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 5, 6, 0))
 * //=> false
 */
function isSameHour(dateLeft, dateRight, options) {
  const [dateLeft_, dateRight_] = (0, _index.normalizeDates)(
    options?.in,
    dateLeft,
    dateRight,
  );
  return (
    +(0, _index2.startOfHour)(dateLeft_) ===
    +(0, _index2.startOfHour)(dateRight_)
  );
}


/***/ }),

/***/ 3859:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextSaturday = nextSaturday;
var _index = __webpack_require__(64);

/**
 * The {@link nextSaturday} function options.
 */

/**
 * @name nextSaturday
 * @category Weekday Helpers
 * @summary When is the next Saturday?
 *
 * @description
 * When is the next Saturday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Saturday
 *
 * @example
 * // When is the next Saturday after Mar, 22, 2020?
 * const result = nextSaturday(new Date(2020, 2, 22))
 * //=> Sat Mar 28 2020 00:00:00
 */
function nextSaturday(date, options) {
  return (0, _index.nextDay)(date, 6, options);
}


/***/ }),

/***/ 3937:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addMinutes = addMinutes;
var _index = __webpack_require__(8052);
var _index2 = __webpack_require__(4446);

/**
 * The {@link addMinutes} function options.
 */

/**
 * @name addMinutes
 * @category Minute Helpers
 * @summary Add the specified number of minutes to the given date.
 *
 * @description
 * Add the specified number of minutes to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of minutes to be added.
 * @param options - An object with options
 *
 * @returns The new date with the minutes added
 *
 * @example
 * // Add 30 minutes to 10 July 2014 12:00:00:
 * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)
 * //=> Thu Jul 10 2014 12:30:00
 */
function addMinutes(date, amount, options) {
  const _date = (0, _index2.toDate)(date, options?.in);
  _date.setTime(_date.getTime() + amount * _index.millisecondsInMinute);
  return _date;
}


/***/ }),

/***/ 3972:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isWithinInterval = isWithinInterval;
var _index = __webpack_require__(4446);

/**
 * The {@link isWithinInterval} function options.
 */

/**
 * @name isWithinInterval
 * @category Interval Helpers
 * @summary Is the given date within the interval?
 *
 * @description
 * Is the given date within the interval? (Including start and end.)
 *
 * @param date - The date to check
 * @param interval - The interval to check
 * @param options - An object with options
 *
 * @returns The date is within the interval
 *
 * @example
 * // For the date within the interval:
 * isWithinInterval(new Date(2014, 0, 3), {
 *   start: new Date(2014, 0, 1),
 *   end: new Date(2014, 0, 7)
 * })
 * // => true
 *
 * @example
 * // For the date outside of the interval:
 * isWithinInterval(new Date(2014, 0, 10), {
 *   start: new Date(2014, 0, 1),
 *   end: new Date(2014, 0, 7)
 * })
 * // => false
 *
 * @example
 * // For date equal to the interval start:
 * isWithinInterval(date, { start, end: date })
 * // => true
 *
 * @example
 * // For date equal to the interval end:
 * isWithinInterval(date, { start: date, end })
 * // => true
 */
function isWithinInterval(date, interval, options) {
  const time = +(0, _index.toDate)(date, options?.in);
  const [startTime, endTime] = [
    +(0, _index.toDate)(interval.start, options?.in),
    +(0, _index.toDate)(interval.end, options?.in),
  ].sort((a, b) => a - b);

  return time >= startTime && time <= endTime;
}


/***/ }),

/***/ 3975:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfToday = startOfToday;
var _index = __webpack_require__(8290);

/**
 * The {@link startOfToday} function options.
 */

/**
 * @name startOfToday
 * @category Day Helpers
 * @summary Return the start of today.
 * @pure false
 *
 * @description
 * Return the start of today.
 *
 * @typeParam ContextDate - The `Date` type of the context function.
 *
 * @param options - An object with options
 *
 * @returns The start of today
 *
 * @example
 * // If today is 6 October 2014:
 * const result = startOfToday()
 * //=> Mon Oct 6 2014 00:00:00
 */
function startOfToday(options) {
  return (0, _index.startOfDay)(Date.now(), options);
}


/***/ }),

/***/ 3999:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfMinute = endOfMinute;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfMinute} function options.
 */

/**
 * @name endOfMinute
 * @category Minute Helpers
 * @summary Return the end of a minute for the given date.
 *
 * @description
 * Return the end of a minute for the given date.
 * The result will be in the local timezone or the provided context.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a minute
 *
 * @example
 * // The end of a minute for 1 December 2014 22:15:45.400:
 * const result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))
 * //=> Mon Dec 01 2014 22:15:59.999
 */
function endOfMinute(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setSeconds(59, 999);
  return _date;
}


/***/ }),

/***/ 4042:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.MinuteParser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class MinuteParser extends _Parser.Parser {
  priority = 60;

  parse(dateString, token, match) {
    switch (token) {
      case "m":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.minute,
          dateString,
        );
      case "mo":
        return match.ordinalNumber(dateString, { unit: "minute" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 59;
  }

  set(date, _flags, value) {
    date.setMinutes(value, 0, 0);
    return date;
  }

  incompatibleTokens = ["t", "T"];
}
exports.MinuteParser = MinuteParser;


/***/ }),

/***/ 4073:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addWeeks = addWeeks;
var _index = __webpack_require__(7591);

/**
 * The {@link addWeeks} function options.
 */

/**
 * @name addWeeks
 * @category Week Helpers
 * @summary Add the specified number of weeks to the given date.
 *
 * @description
 * Add the specified number of weeks to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of weeks to be added.
 * @param options - An object with options
 *
 * @returns The new date with the weeks added
 *
 * @example
 * // Add 4 weeks to 1 September 2014:
 * const result = addWeeks(new Date(2014, 8, 1), 4)
 * //=> Mon Sep 29 2014 00:00:00
 */
function addWeeks(date, amount, options) {
  return (0, _index.addDays)(date, amount * 7, options);
}


/***/ }),

/***/ 4081:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isMonday = isMonday;
var _index = __webpack_require__(4446);

/**
 * The {@link isMonday} function options.
 */

/**
 * @name isMonday
 * @category Weekday Helpers
 * @summary Is the given date Monday?
 *
 * @description
 * Is the given date Monday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is Monday
 *
 * @example
 * // Is 22 September 2014 Monday?
 * const result = isMonday(new Date(2014, 8, 22))
 * //=> true
 */
function isMonday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 1;
}


/***/ }),

/***/ 4082:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.transpose = transpose;
var _index = __webpack_require__(2956);

/**
 * @name transpose
 * @category Generic Helpers
 * @summary Transpose the date to the given constructor.
 *
 * @description
 * The function transposes the date to the given constructor. It helps you
 * to transpose the date in the system time zone to say `UTCDate` or any other
 * date extension.
 *
 * @typeParam InputDate - The input `Date` type derived from the passed argument.
 * @typeParam ResultDate - The result `Date` type derived from the passed constructor.
 *
 * @param date - The date to use values from
 * @param constructor - The date constructor to use
 *
 * @returns Date transposed to the given constructor
 *
 * @example
 * // Create July 10, 2022 00:00 in locale time zone
 * const date = new Date(2022, 6, 10)
 * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'
 *
 * @example
 * // Transpose the date to July 10, 2022 00:00 in UTC
 * transpose(date, UTCDate)
 * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'
 */
function transpose(date, constructor) {
  const date_ = isConstructor(constructor)
    ? new constructor(0)
    : (0, _index.constructFrom)(constructor, 0);
  date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
  date_.setHours(
    date.getHours(),
    date.getMinutes(),
    date.getSeconds(),
    date.getMilliseconds(),
  );
  return date_;
}

function isConstructor(constructor) {
  return (
    typeof constructor === "function" &&
    constructor.prototype?.constructor === constructor
  );
}


/***/ }),

/***/ 4146:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var reactIs = __webpack_require__(3404);

/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */
var REACT_STATICS = {
  childContextTypes: true,
  contextType: true,
  contextTypes: true,
  defaultProps: true,
  displayName: true,
  getDefaultProps: true,
  getDerivedStateFromError: true,
  getDerivedStateFromProps: true,
  mixins: true,
  propTypes: true,
  type: true
};
var KNOWN_STATICS = {
  name: true,
  length: true,
  prototype: true,
  caller: true,
  callee: true,
  arguments: true,
  arity: true
};
var FORWARD_REF_STATICS = {
  '$$typeof': true,
  render: true,
  defaultProps: true,
  displayName: true,
  propTypes: true
};
var MEMO_STATICS = {
  '$$typeof': true,
  compare: true,
  defaultProps: true,
  displayName: true,
  propTypes: true,
  type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;

function getStatics(component) {
  // React v16.11 and below
  if (reactIs.isMemo(component)) {
    return MEMO_STATICS;
  } // React v16.12 and above


  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}

var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
  if (typeof sourceComponent !== 'string') {
    // don't hoist over string (html) components
    if (objectPrototype) {
      var inheritedComponent = getPrototypeOf(sourceComponent);

      if (inheritedComponent && inheritedComponent !== objectPrototype) {
        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
      }
    }

    var keys = getOwnPropertyNames(sourceComponent);

    if (getOwnPropertySymbols) {
      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
    }

    var targetStatics = getStatics(targetComponent);
    var sourceStatics = getStatics(sourceComponent);

    for (var i = 0; i < keys.length; ++i) {
      var key = keys[i];

      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);

        try {
          // Avoid failures from read-only properties
          defineProperty(targetComponent, key, descriptor);
        } catch (e) {}
      }
    }
  }

  return targetComponent;
}

module.exports = hoistNonReactStatics;


/***/ }),

/***/ 4180:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.hoursToSeconds = hoursToSeconds;
var _index = __webpack_require__(8052);

/**
 * @name hoursToSeconds
 * @category Conversion Helpers
 * @summary Convert hours to seconds.
 *
 * @description
 * Convert a number of hours to a full number of seconds.
 *
 * @param hours - The number of hours to be converted
 *
 * @returns The number of hours converted in seconds
 *
 * @example
 * // Convert 2 hours to seconds:
 * const result = hoursToSeconds(2)
 * //=> 7200
 */
function hoursToSeconds(hours) {
  return Math.trunc(hours * _index.secondsInHour);
}


/***/ }),

/***/ 4184:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInWeeks = differenceInWeeks;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(3724);

/**
 * The {@link differenceInWeeks} function options.
 */

/**
 * @name differenceInWeeks
 * @category Week Helpers
 * @summary Get the number of full weeks between the given dates.
 *
 * @description
 * Get the number of full weeks between two dates. Fractional weeks are
 * truncated towards zero by default.
 *
 * One "full week" is the distance between a local time in one day to the same
 * local time 7 days earlier or later. A full week can sometimes be less than
 * or more than 7*24 hours if a daylight savings change happens between two dates.
 *
 * To ignore DST and only measure exact 7*24-hour periods, use this instead:
 * `Math.trunc(differenceInHours(dateLeft, dateRight)/(7*24))|0`.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of full weeks
 *
 * @example
 * // How many full weeks are between 5 July 2014 and 20 July 2014?
 * const result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))
 * //=> 2
 *
 * @example
 * // How many full weeks are between
 * // 1 March 2020 0:00 and 6 June 2020 0:00 ?
 * // Note: because local time is used, the
 * // result will always be 8 weeks (54 days),
 * // even if DST starts and the period has
 * // only 54*24-1 hours.
 * const result = differenceInWeeks(
 *   new Date(2020, 5, 1),
 *   new Date(2020, 2, 6)
 * )
 * //=> 8
 */
function differenceInWeeks(laterDate, earlierDate, options) {
  const diff =
    (0, _index2.differenceInDays)(laterDate, earlierDate, options) / 7;
  return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);
}


/***/ }),

/***/ 4251:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextFriday = nextFriday;
var _index = __webpack_require__(64);

/**
 * The {@link nextFriday} function options.
 */

/**
 * @name nextFriday
 * @category Weekday Helpers
 * @summary When is the next Friday?
 *
 * @description
 * When is the next Friday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Friday
 *
 * @example
 * // When is the next Friday after Mar, 22, 2020?
 * const result = nextFriday(new Date(2020, 2, 22))
 * //=> Fri Mar 27 2020 00:00:00
 */
function nextFriday(date, options) {
  return (0, _index.nextDay)(date, 5, options);
}


/***/ }),

/***/ 4266:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

Object.defineProperty(exports, "longFormatters", ({
  enumerable: true,
  get: function () {
    return _index2.longFormatters;
  },
}));
exports.parse = parse;
Object.defineProperty(exports, "parsers", ({
  enumerable: true,
  get: function () {
    return _index7.parsers;
  },
}));
var _index = __webpack_require__(9577);
var _index2 = __webpack_require__(7083);
var _index3 = __webpack_require__(2364);

var _index4 = __webpack_require__(2956);
var _index5 = __webpack_require__(6032);
var _index6 = __webpack_require__(4446);

var _Setter = __webpack_require__(7861);
var _index7 = __webpack_require__(7568);

// Rexports of internal for libraries to use.
// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874

/**
 * The {@link parse} function options.
 */

// This RegExp consists of three parts separated by `|`:
// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token
//   (one of the certain letters followed by `o`)
// - (\w)\1* matches any sequences of the same letter
// - '' matches two quote characters in a row
// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
//   except a single quote symbol, which ends the sequence.
//   Two quote characters do not end the sequence.
//   If there is no matching single quote
//   then the sequence will continue until the end of the string.
// - . matches any single character unmatched by previous parts of the RegExps
const formattingTokensRegExp =
  /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;

// This RegExp catches symbols escaped by quotes, and also
// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`
const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;

const escapedStringRegExp = /^'([^]*?)'?$/;
const doubleQuoteRegExp = /''/g;

const notWhitespaceRegExp = /\S/;
const unescapedLatinCharacterRegExp = /[a-zA-Z]/;

/**
 * @name parse
 * @category Common Helpers
 * @summary Parse the date.
 *
 * @description
 * Return the date parsed from string using the given format string.
 *
 * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.
 * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * The characters in the format string wrapped between two single quotes characters (') are escaped.
 * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
 *
 * Format of the format string is based on Unicode Technical Standard #35:
 * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 * with a few additions (see note 5 below the table).
 *
 * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited
 * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:
 *
 * ```javascript
 * parse('23 AM', 'HH a', new Date())
 * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time
 * ```
 *
 * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true
 *
 * Accepted format string patterns:
 * | Unit                            |Prior| Pattern | Result examples                   | Notes |
 * |---------------------------------|-----|---------|-----------------------------------|-------|
 * | Era                             | 140 | G..GGG  | AD, BC                            |       |
 * |                                 |     | GGGG    | Anno Domini, Before Christ        | 2     |
 * |                                 |     | GGGGG   | A, B                              |       |
 * | Calendar year                   | 130 | y       | 44, 1, 1900, 2017, 9999           | 4     |
 * |                                 |     | yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |
 * |                                 |     | yy      | 44, 01, 00, 17                    | 4     |
 * |                                 |     | yyy     | 044, 001, 123, 999                | 4     |
 * |                                 |     | yyyy    | 0044, 0001, 1900, 2017            | 4     |
 * |                                 |     | yyyyy   | ...                               | 2,4   |
 * | Local week-numbering year       | 130 | Y       | 44, 1, 1900, 2017, 9000           | 4     |
 * |                                 |     | Yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |
 * |                                 |     | YY      | 44, 01, 00, 17                    | 4,6   |
 * |                                 |     | YYY     | 044, 001, 123, 999                | 4     |
 * |                                 |     | YYYY    | 0044, 0001, 1900, 2017            | 4,6   |
 * |                                 |     | YYYYY   | ...                               | 2,4   |
 * | ISO week-numbering year         | 130 | R       | -43, 1, 1900, 2017, 9999, -9999   | 4,5   |
 * |                                 |     | RR      | -43, 01, 00, 17                   | 4,5   |
 * |                                 |     | RRR     | -043, 001, 123, 999, -999         | 4,5   |
 * |                                 |     | RRRR    | -0043, 0001, 2017, 9999, -9999    | 4,5   |
 * |                                 |     | RRRRR   | ...                               | 2,4,5 |
 * | Extended year                   | 130 | u       | -43, 1, 1900, 2017, 9999, -999    | 4     |
 * |                                 |     | uu      | -43, 01, 99, -99                  | 4     |
 * |                                 |     | uuu     | -043, 001, 123, 999, -999         | 4     |
 * |                                 |     | uuuu    | -0043, 0001, 2017, 9999, -9999    | 4     |
 * |                                 |     | uuuuu   | ...                               | 2,4   |
 * | Quarter (formatting)            | 120 | Q       | 1, 2, 3, 4                        |       |
 * |                                 |     | Qo      | 1st, 2nd, 3rd, 4th                | 5     |
 * |                                 |     | QQ      | 01, 02, 03, 04                    |       |
 * |                                 |     | QQQ     | Q1, Q2, Q3, Q4                    |       |
 * |                                 |     | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 |     | QQQQQ   | 1, 2, 3, 4                        | 4     |
 * | Quarter (stand-alone)           | 120 | q       | 1, 2, 3, 4                        |       |
 * |                                 |     | qo      | 1st, 2nd, 3rd, 4th                | 5     |
 * |                                 |     | qq      | 01, 02, 03, 04                    |       |
 * |                                 |     | qqq     | Q1, Q2, Q3, Q4                    |       |
 * |                                 |     | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 |     | qqqqq   | 1, 2, 3, 4                        | 3     |
 * | Month (formatting)              | 110 | M       | 1, 2, ..., 12                     |       |
 * |                                 |     | Mo      | 1st, 2nd, ..., 12th               | 5     |
 * |                                 |     | MM      | 01, 02, ..., 12                   |       |
 * |                                 |     | MMM     | Jan, Feb, ..., Dec                |       |
 * |                                 |     | MMMM    | January, February, ..., December  | 2     |
 * |                                 |     | MMMMM   | J, F, ..., D                      |       |
 * | Month (stand-alone)             | 110 | L       | 1, 2, ..., 12                     |       |
 * |                                 |     | Lo      | 1st, 2nd, ..., 12th               | 5     |
 * |                                 |     | LL      | 01, 02, ..., 12                   |       |
 * |                                 |     | LLL     | Jan, Feb, ..., Dec                |       |
 * |                                 |     | LLLL    | January, February, ..., December  | 2     |
 * |                                 |     | LLLLL   | J, F, ..., D                      |       |
 * | Local week of year              | 100 | w       | 1, 2, ..., 53                     |       |
 * |                                 |     | wo      | 1st, 2nd, ..., 53th               | 5     |
 * |                                 |     | ww      | 01, 02, ..., 53                   |       |
 * | ISO week of year                | 100 | I       | 1, 2, ..., 53                     | 5     |
 * |                                 |     | Io      | 1st, 2nd, ..., 53th               | 5     |
 * |                                 |     | II      | 01, 02, ..., 53                   | 5     |
 * | Day of month                    |  90 | d       | 1, 2, ..., 31                     |       |
 * |                                 |     | do      | 1st, 2nd, ..., 31st               | 5     |
 * |                                 |     | dd      | 01, 02, ..., 31                   |       |
 * | Day of year                     |  90 | D       | 1, 2, ..., 365, 366               | 7     |
 * |                                 |     | Do      | 1st, 2nd, ..., 365th, 366th       | 5     |
 * |                                 |     | DD      | 01, 02, ..., 365, 366             | 7     |
 * |                                 |     | DDD     | 001, 002, ..., 365, 366           |       |
 * |                                 |     | DDDD    | ...                               | 2     |
 * | Day of week (formatting)        |  90 | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |
 * |                                 |     | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 |     | EEEEE   | M, T, W, T, F, S, S               |       |
 * |                                 |     | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | ISO day of week (formatting)    |  90 | i       | 1, 2, 3, ..., 7                   | 5     |
 * |                                 |     | io      | 1st, 2nd, ..., 7th                | 5     |
 * |                                 |     | ii      | 01, 02, ..., 07                   | 5     |
 * |                                 |     | iii     | Mon, Tue, Wed, ..., Sun           | 5     |
 * |                                 |     | iiii    | Monday, Tuesday, ..., Sunday      | 2,5   |
 * |                                 |     | iiiii   | M, T, W, T, F, S, S               | 5     |
 * |                                 |     | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 5     |
 * | Local day of week (formatting)  |  90 | e       | 2, 3, 4, ..., 1                   |       |
 * |                                 |     | eo      | 2nd, 3rd, ..., 1st                | 5     |
 * |                                 |     | ee      | 02, 03, ..., 01                   |       |
 * |                                 |     | eee     | Mon, Tue, Wed, ..., Sun           |       |
 * |                                 |     | eeee    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 |     | eeeee   | M, T, W, T, F, S, S               |       |
 * |                                 |     | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | Local day of week (stand-alone) |  90 | c       | 2, 3, 4, ..., 1                   |       |
 * |                                 |     | co      | 2nd, 3rd, ..., 1st                | 5     |
 * |                                 |     | cc      | 02, 03, ..., 01                   |       |
 * |                                 |     | ccc     | Mon, Tue, Wed, ..., Sun           |       |
 * |                                 |     | cccc    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 |     | ccccc   | M, T, W, T, F, S, S               |       |
 * |                                 |     | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | AM, PM                          |  80 | a..aaa  | AM, PM                            |       |
 * |                                 |     | aaaa    | a.m., p.m.                        | 2     |
 * |                                 |     | aaaaa   | a, p                              |       |
 * | AM, PM, noon, midnight          |  80 | b..bbb  | AM, PM, noon, midnight            |       |
 * |                                 |     | bbbb    | a.m., p.m., noon, midnight        | 2     |
 * |                                 |     | bbbbb   | a, p, n, mi                       |       |
 * | Flexible day period             |  80 | B..BBB  | at night, in the morning, ...     |       |
 * |                                 |     | BBBB    | at night, in the morning, ...     | 2     |
 * |                                 |     | BBBBB   | at night, in the morning, ...     |       |
 * | Hour [1-12]                     |  70 | h       | 1, 2, ..., 11, 12                 |       |
 * |                                 |     | ho      | 1st, 2nd, ..., 11th, 12th         | 5     |
 * |                                 |     | hh      | 01, 02, ..., 11, 12               |       |
 * | Hour [0-23]                     |  70 | H       | 0, 1, 2, ..., 23                  |       |
 * |                                 |     | Ho      | 0th, 1st, 2nd, ..., 23rd          | 5     |
 * |                                 |     | HH      | 00, 01, 02, ..., 23               |       |
 * | Hour [0-11]                     |  70 | K       | 1, 2, ..., 11, 0                  |       |
 * |                                 |     | Ko      | 1st, 2nd, ..., 11th, 0th          | 5     |
 * |                                 |     | KK      | 01, 02, ..., 11, 00               |       |
 * | Hour [1-24]                     |  70 | k       | 24, 1, 2, ..., 23                 |       |
 * |                                 |     | ko      | 24th, 1st, 2nd, ..., 23rd         | 5     |
 * |                                 |     | kk      | 24, 01, 02, ..., 23               |       |
 * | Minute                          |  60 | m       | 0, 1, ..., 59                     |       |
 * |                                 |     | mo      | 0th, 1st, ..., 59th               | 5     |
 * |                                 |     | mm      | 00, 01, ..., 59                   |       |
 * | Second                          |  50 | s       | 0, 1, ..., 59                     |       |
 * |                                 |     | so      | 0th, 1st, ..., 59th               | 5     |
 * |                                 |     | ss      | 00, 01, ..., 59                   |       |
 * | Seconds timestamp               |  40 | t       | 512969520                         |       |
 * |                                 |     | tt      | ...                               | 2     |
 * | Fraction of second              |  30 | S       | 0, 1, ..., 9                      |       |
 * |                                 |     | SS      | 00, 01, ..., 99                   |       |
 * |                                 |     | SSS     | 000, 001, ..., 999                |       |
 * |                                 |     | SSSS    | ...                               | 2     |
 * | Milliseconds timestamp          |  20 | T       | 512969520900                      |       |
 * |                                 |     | TT      | ...                               | 2     |
 * | Timezone (ISO-8601 w/ Z)        |  10 | X       | -08, +0530, Z                     |       |
 * |                                 |     | XX      | -0800, +0530, Z                   |       |
 * |                                 |     | XXX     | -08:00, +05:30, Z                 |       |
 * |                                 |     | XXXX    | -0800, +0530, Z, +123456          | 2     |
 * |                                 |     | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |
 * | Timezone (ISO-8601 w/o Z)       |  10 | x       | -08, +0530, +00                   |       |
 * |                                 |     | xx      | -0800, +0530, +0000               |       |
 * |                                 |     | xxx     | -08:00, +05:30, +00:00            | 2     |
 * |                                 |     | xxxx    | -0800, +0530, +0000, +123456      |       |
 * |                                 |     | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |
 * | Long localized date             |  NA | P       | 05/29/1453                        | 5,8   |
 * |                                 |     | PP      | May 29, 1453                      |       |
 * |                                 |     | PPP     | May 29th, 1453                    |       |
 * |                                 |     | PPPP    | Sunday, May 29th, 1453            | 2,5,8 |
 * | Long localized time             |  NA | p       | 12:00 AM                          | 5,8   |
 * |                                 |     | pp      | 12:00:00 AM                       |       |
 * | Combination of date and time    |  NA | Pp      | 05/29/1453, 12:00 AM              |       |
 * |                                 |     | PPpp    | May 29, 1453, 12:00:00 AM         |       |
 * |                                 |     | PPPpp   | May 29th, 1453 at ...             |       |
 * |                                 |     | PPPPpp  | Sunday, May 29th, 1453 at ...     | 2,5,8 |
 * Notes:
 * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale
 *    are the same as "stand-alone" units, but are different in some languages.
 *    "Formatting" units are declined according to the rules of the language
 *    in the context of a date. "Stand-alone" units are always nominative singular.
 *    In `format` function, they will produce different result:
 *
 *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`
 *
 *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`
 *
 *    `parse` will try to match both formatting and stand-alone units interchangeably.
 *
 * 2. Any sequence of the identical letters is a pattern, unless it is escaped by
 *    the single quote characters (see below).
 *    If the sequence is longer than listed in table:
 *    - for numerical units (`yyyyyyyy`) `parse` will try to match a number
 *      as wide as the sequence
 *    - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.
 *      These variations are marked with "2" in the last column of the table.
 *
 * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.
 *    These tokens represent the shortest form of the quarter.
 *
 * 4. The main difference between `y` and `u` patterns are B.C. years:
 *
 *    | Year | `y` | `u` |
 *    |------|-----|-----|
 *    | AC 1 |   1 |   1 |
 *    | BC 1 |   1 |   0 |
 *    | BC 2 |   2 |  -1 |
 *
 *    Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:
 *
 *    `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`
 *
 *    `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`
 *
 *    while `uu` will just assign the year as is:
 *
 *    `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`
 *
 *    `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`
 *
 *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),
 *    except local week-numbering years are dependent on `options.weekStartsOn`
 *    and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)
 *    and [setWeekYear](https://date-fns.org/docs/setWeekYear)).
 *
 * 5. These patterns are not in the Unicode Technical Standard #35:
 *    - `i`: ISO day of week
 *    - `I`: ISO week of year
 *    - `R`: ISO week-numbering year
 *    - `o`: ordinal number modifier
 *    - `P`: long localized date
 *    - `p`: long localized time
 *
 * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.
 *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.
 *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based
 *    on the given locale.
 *
 *    using `en-US` locale: `P` => `MM/dd/yyyy`
 *    using `en-US` locale: `p` => `hh:mm a`
 *    using `pt-BR` locale: `P` => `dd/MM/yyyy`
 *    using `pt-BR` locale: `p` => `HH:mm`
 *
 * Values will be assigned to the date in the descending order of its unit's priority.
 * Units of an equal priority overwrite each other in the order of appearance.
 *
 * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),
 * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.
 *
 * `referenceDate` must be passed for correct work of the function.
 * If you're not sure which `referenceDate` to supply, create a new instance of Date:
 * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`
 * In this case parsing will be done in the context of the current date.
 * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,
 * then `Invalid Date` will be returned.
 *
 * The result may vary by locale.
 *
 * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.
 *
 * If parsing failed, `Invalid Date` will be returned.
 * Invalid Date is a Date, whose time value is NaN.
 * Time value of Date: http://es5.github.io/#x15.9.1.1
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param dateStr - The string to parse
 * @param formatStr - The string of tokens
 * @param referenceDate - defines values missing from the parsed dateString
 * @param options - An object with options.
 *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * @returns The parsed date
 *
 * @throws `options.locale` must contain `match` property
 * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws format string contains an unescaped latin alphabet character
 *
 * @example
 * // Parse 11 February 2014 from middle-endian format:
 * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())
 * //=> Tue Feb 11 2014 00:00:00
 *
 * @example
 * // Parse 28th of February in Esperanto locale in the context of 2010 year:
 * import eo from 'date-fns/locale/eo'
 * var result = parse('28-a de februaro', "do 'de' MMMM", new Date(2010, 0, 1), {
 *   locale: eo
 * })
 * //=> Sun Feb 28 2010 00:00:00
 */
function parse(dateStr, formatStr, referenceDate, options) {
  const invalidDate = () =>
    (0, _index4.constructFrom)(options?.in || referenceDate, NaN);
  const defaultOptions = (0, _index5.getDefaultOptions)();
  const locale =
    options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;

  const firstWeekContainsDate =
    options?.firstWeekContainsDate ??
    options?.locale?.options?.firstWeekContainsDate ??
    defaultOptions.firstWeekContainsDate ??
    defaultOptions.locale?.options?.firstWeekContainsDate ??
    1;

  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  if (!formatStr)
    return dateStr
      ? invalidDate()
      : (0, _index6.toDate)(referenceDate, options?.in);

  const subFnOptions = {
    firstWeekContainsDate,
    weekStartsOn,
    locale,
  };

  // If timezone isn't specified, it will try to use the context or
  // the reference date and fallback to the system time zone.
  const setters = [new _Setter.DateTimezoneSetter(options?.in, referenceDate)];

  const tokens = formatStr
    .match(longFormattingTokensRegExp)
    .map((substring) => {
      const firstCharacter = substring[0];
      if (firstCharacter in _index2.longFormatters) {
        const longFormatter = _index2.longFormatters[firstCharacter];
        return longFormatter(substring, locale.formatLong);
      }
      return substring;
    })
    .join("")
    .match(formattingTokensRegExp);

  const usedTokens = [];

  for (let token of tokens) {
    if (
      !options?.useAdditionalWeekYearTokens &&
      (0, _index3.isProtectedWeekYearToken)(token)
    ) {
      (0, _index3.warnOrThrowProtectedError)(token, formatStr, dateStr);
    }
    if (
      !options?.useAdditionalDayOfYearTokens &&
      (0, _index3.isProtectedDayOfYearToken)(token)
    ) {
      (0, _index3.warnOrThrowProtectedError)(token, formatStr, dateStr);
    }

    const firstCharacter = token[0];
    const parser = _index7.parsers[firstCharacter];
    if (parser) {
      const { incompatibleTokens } = parser;
      if (Array.isArray(incompatibleTokens)) {
        const incompatibleToken = usedTokens.find(
          (usedToken) =>
            incompatibleTokens.includes(usedToken.token) ||
            usedToken.token === firstCharacter,
        );
        if (incompatibleToken) {
          throw new RangeError(
            `The format string mustn't contain \`${incompatibleToken.fullToken}\` and \`${token}\` at the same time`,
          );
        }
      } else if (parser.incompatibleTokens === "*" && usedTokens.length > 0) {
        throw new RangeError(
          `The format string mustn't contain \`${token}\` and any other token at the same time`,
        );
      }

      usedTokens.push({ token: firstCharacter, fullToken: token });

      const parseResult = parser.run(
        dateStr,
        token,
        locale.match,
        subFnOptions,
      );

      if (!parseResult) {
        return invalidDate();
      }

      setters.push(parseResult.setter);

      dateStr = parseResult.rest;
    } else {
      if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
        throw new RangeError(
          "Format string contains an unescaped latin alphabet character `" +
            firstCharacter +
            "`",
        );
      }

      // Replace two single quote characters with one single quote character
      if (token === "''") {
        token = "'";
      } else if (firstCharacter === "'") {
        token = cleanEscapedString(token);
      }

      // Cut token from string, or, if string doesn't match the token, return Invalid Date
      if (dateStr.indexOf(token) === 0) {
        dateStr = dateStr.slice(token.length);
      } else {
        return invalidDate();
      }
    }
  }

  // Check if the remaining input contains something other than whitespace
  if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {
    return invalidDate();
  }

  const uniquePrioritySetters = setters
    .map((setter) => setter.priority)
    .sort((a, b) => b - a)
    .filter((priority, index, array) => array.indexOf(priority) === index)
    .map((priority) =>
      setters
        .filter((setter) => setter.priority === priority)
        .sort((a, b) => b.subPriority - a.subPriority),
    )
    .map((setterArray) => setterArray[0]);

  let date = (0, _index6.toDate)(referenceDate, options?.in);

  if (isNaN(+date)) return invalidDate();

  const flags = {};
  for (const setter of uniquePrioritySetters) {
    if (!setter.validate(date, subFnOptions)) {
      return invalidDate();
    }

    const result = setter.set(date, flags, subFnOptions);
    // Result is tuple (date, flags)
    if (Array.isArray(result)) {
      date = result[0];
      Object.assign(flags, result[1]);
      // Result is date
    } else {
      date = result;
    }
  }

  return date;
}

function cleanEscapedString(input) {
  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'");
}


/***/ }),

/***/ 4280:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addMilliseconds = addMilliseconds;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link addMilliseconds} function options.
 */

/**
 * @name addMilliseconds
 * @category Millisecond Helpers
 * @summary Add the specified number of milliseconds to the given date.
 *
 * @description
 * Add the specified number of milliseconds to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of milliseconds to be added.
 * @param options - The options object
 *
 * @returns The new date with the milliseconds added
 *
 * @example
 * // Add 750 milliseconds to 10 July 2014 12:45:30.000:
 * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
 * //=> Thu Jul 10 2014 12:45:30.750
 */
function addMilliseconds(date, amount, options) {
  return (0, _index.constructFrom)(
    options?.in || date,
    +(0, _index2.toDate)(date) + amount,
  );
}


/***/ }),

/***/ 4294:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInISOWeekYears = differenceInISOWeekYears;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(6789);
var _index3 = __webpack_require__(99);
var _index4 = __webpack_require__(6322);

/**
 * The {@link differenceInISOWeekYears} function options.
 */

/**
 * @name differenceInISOWeekYears
 * @category ISO Week-Numbering Year Helpers
 * @summary Get the number of full ISO week-numbering years between the given dates.
 *
 * @description
 * Get the number of full ISO week-numbering years between the given dates.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - The options
 *
 * @returns The number of full ISO week-numbering years
 *
 * @example
 * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?
 * const result = differenceInISOWeekYears(
 *   new Date(2012, 0, 1),
 *   new Date(2010, 0, 1)
 * )
 * // => 1
 */
function differenceInISOWeekYears(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const sign = (0, _index2.compareAsc)(laterDate_, earlierDate_);
  const diff = Math.abs(
    (0, _index3.differenceInCalendarISOWeekYears)(
      laterDate_,
      earlierDate_,
      options,
    ),
  );

  const adjustedDate = (0, _index4.subISOWeekYears)(
    laterDate_,
    sign * diff,
    options,
  );

  const isLastISOWeekYearNotFull = Number(
    (0, _index2.compareAsc)(adjustedDate, earlierDate_) === -sign,
  );
  const result = sign * (diff - isLastISOWeekYearNotFull);

  // Prevent negative zero
  return result === 0 ? 0 : result;
}


/***/ }),

/***/ 4317:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.secondsToMilliseconds = secondsToMilliseconds;
var _index = __webpack_require__(8052);

/**
 * @name secondsToMilliseconds
 * @category Conversion Helpers
 * @summary Convert seconds to milliseconds.
 *
 * @description
 * Convert a number of seconds to a full number of milliseconds.
 *
 * @param seconds - The number of seconds to be converted
 *
 * @returns The number of seconds converted in milliseconds
 *
 * @example
 * // Convert 2 seconds into milliseconds
 * const result = secondsToMilliseconds(2)
 * //=> 2000
 */
function secondsToMilliseconds(seconds) {
  return seconds * _index.millisecondsInSecond;
}


/***/ }),

/***/ 4337:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.isDate = isDate; /**
 * @name isDate
 * @category Common Helpers
 * @summary Is the given value a date?
 *
 * @description
 * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
 *
 * @param value - The value to check
 *
 * @returns True if the given value is a date
 *
 * @example
 * // For a valid date:
 * const result = isDate(new Date())
 * //=> true
 *
 * @example
 * // For an invalid date:
 * const result = isDate(new Date(NaN))
 * //=> true
 *
 * @example
 * // For some value:
 * const result = isDate('2014-02-31')
 * //=> false
 *
 * @example
 * // For an object:
 * const result = isDate({})
 * //=> false
 */
function isDate(value) {
  return (
    value instanceof Date ||
    (typeof value === "object" &&
      Object.prototype.toString.call(value) === "[object Date]")
  );
}


/***/ }),

/***/ 4395:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setDay = setDay;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(7591);
var _index3 = __webpack_require__(4446);

/**
 * The {@link setDay} function options.
 */

/**
 * @name setDay
 * @category Weekday Helpers
 * @summary Set the day of the week to the given date.
 *
 * @description
 * Set the day of the week to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param day - The day of the week of the new date
 * @param options - An object with options.
 *
 * @returns The new date with the day of the week set
 *
 * @example
 * // Set week day to Sunday, with the default weekStartsOn of Sunday:
 * const result = setDay(new Date(2014, 8, 1), 0)
 * //=> Sun Aug 31 2014 00:00:00
 *
 * @example
 * // Set week day to Sunday, with a weekStartsOn of Monday:
 * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })
 * //=> Sun Sep 07 2014 00:00:00
 */
function setDay(date, day, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const date_ = (0, _index3.toDate)(date, options?.in);
  const currentDay = date_.getDay();

  const remainder = day % 7;
  const dayIndex = (remainder + 7) % 7;

  const delta = 7 - weekStartsOn;
  const diff =
    day < 0 || day > 6
      ? day - ((currentDay + delta) % 7)
      : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);
  return (0, _index2.addDays)(date_, diff, options);
}


/***/ }),

/***/ 4400:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.QuarterParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class QuarterParser extends _Parser.Parser {
  priority = 120;

  parse(dateString, token, match) {
    switch (token) {
      // 1, 2, 3, 4
      case "Q":
      case "QQ": // 01, 02, 03, 04
        return (0, _utils.parseNDigits)(token.length, dateString);
      // 1st, 2nd, 3rd, 4th
      case "Qo":
        return match.ordinalNumber(dateString, { unit: "quarter" });
      // Q1, Q2, Q3, Q4
      case "QQQ":
        return (
          match.quarter(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.quarter(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );

      // 1, 2, 3, 4 (narrow quarter; could be not numerical)
      case "QQQQQ":
        return match.quarter(dateString, {
          width: "narrow",
          context: "formatting",
        });
      // 1st quarter, 2nd quarter, ...
      case "QQQQ":
      default:
        return (
          match.quarter(dateString, {
            width: "wide",
            context: "formatting",
          }) ||
          match.quarter(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.quarter(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 4;
  }

  set(date, _flags, value) {
    date.setMonth((value - 1) * 3, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "Y",
    "R",
    "q",
    "M",
    "L",
    "w",
    "I",
    "d",
    "D",
    "i",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.QuarterParser = QuarterParser;


/***/ }),

/***/ 4432:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.minutesToHours = minutesToHours;
var _index = __webpack_require__(8052);

/**
 * @name minutesToHours
 * @category Conversion Helpers
 * @summary Convert minutes to hours.
 *
 * @description
 * Convert a number of minutes to a full number of hours.
 *
 * @param minutes - The number of minutes to be converted
 *
 * @returns The number of minutes converted in hours
 *
 * @example
 * // Convert 140 minutes to hours:
 * const result = minutesToHours(120)
 * //=> 2
 *
 * @example
 * // It uses floor rounding:
 * const result = minutesToHours(179)
 * //=> 2
 */
function minutesToHours(minutes) {
  const hours = minutes / _index.minutesInHour;
  return Math.trunc(hours);
}


/***/ }),

/***/ 4437:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.isExists = isExists; /**
 * @name isExists
 * @category Common Helpers
 * @summary Is the given date exists?
 *
 * @description
 * Checks if the given arguments convert to an existing date.
 *
 * @param year - The year of the date to check
 * @param month - The month of the date to check
 * @param day - The day of the date to check
 *
 * @returns `true` if the date exists
 *
 * @example
 * // For the valid date:
 * const result = isExists(2018, 0, 31)
 * //=> true
 *
 * @example
 * // For the invalid date:
 * const result = isExists(2018, 1, 31)
 * //=> false
 */
function isExists(year, month, day) {
  const date = new Date(year, month, day);
  return (
    date.getFullYear() === year &&
    date.getMonth() === month &&
    date.getDate() === day
  );
}


/***/ }),

/***/ 4439:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isYesterday = isYesterday;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(9691);
var _index4 = __webpack_require__(3224);

/**
 * The {@link isYesterday} function options.
 */

/**
 * @name isYesterday
 * @category Day Helpers
 * @summary Is the given date yesterday?
 * @pure false
 *
 * @description
 * Is the given date yesterday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is yesterday
 *
 * @example
 * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?
 * const result = isYesterday(new Date(2014, 9, 5, 14, 0))
 * //=> true
 */
function isYesterday(date, options) {
  return (0, _index3.isSameDay)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index4.subDays)((0, _index2.constructNow)(options?.in || date), 1),
  );
}


/***/ }),

/***/ 4446:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.toDate = toDate;
var _index = __webpack_require__(2956);

/**
 * @name toDate
 * @category Common Helpers
 * @summary Convert the given argument to an instance of Date.
 *
 * @description
 * Convert the given argument to an instance of Date.
 *
 * If the argument is an instance of Date, the function returns its clone.
 *
 * If the argument is a number, it is treated as a timestamp.
 *
 * If the argument is none of the above, the function returns Invalid Date.
 *
 * Starting from v3.7.0, it clones a date using `[Symbol.for("constructDateFrom")]`
 * enabling to transfer extra properties from the reference date to the new date.
 * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)
 * that accept a time zone as a constructor argument.
 *
 * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param argument - The value to convert
 *
 * @returns The parsed date in the local time zone
 *
 * @example
 * // Clone the date:
 * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert the timestamp to date:
 * const result = toDate(1392098430000)
 * //=> Tue Feb 11 2014 11:30:30
 */
function toDate(argument, context) {
  // [TODO] Get rid of `toDate` or `constructFrom`?
  return (0, _index.constructFrom)(context || argument, argument);
}


/***/ }),

/***/ 4617:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setISOWeekYear = setISOWeekYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(5506);
var _index3 = __webpack_require__(1152);
var _index4 = __webpack_require__(4446);

/**
 * The {@link setISOWeekYear} function options.
 */

/**
 * @name setISOWeekYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Set the ISO week-numbering year to the given date.
 *
 * @description
 * Set the ISO week-numbering year to the given date,
 * saving the week number and the weekday number.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param weekYear - The ISO week-numbering year of the new date
 * @param options - An object with options
 *
 * @returns The new date with the ISO week-numbering year set
 *
 * @example
 * // Set ISO week-numbering year 2007 to 29 December 2008:
 * const result = setISOWeekYear(new Date(2008, 11, 29), 2007)
 * //=> Mon Jan 01 2007 00:00:00
 */
function setISOWeekYear(date, weekYear, options) {
  let _date = (0, _index4.toDate)(date, options?.in);
  const diff = (0, _index2.differenceInCalendarDays)(
    _date,
    (0, _index3.startOfISOWeekYear)(_date, options),
  );
  const fourthOfJanuary = (0, _index.constructFrom)(options?.in || date, 0);
  fourthOfJanuary.setFullYear(weekYear, 0, 4);
  fourthOfJanuary.setHours(0, 0, 0, 0);
  _date = (0, _index3.startOfISOWeekYear)(fourthOfJanuary);
  _date.setDate(_date.getDate() + diff);
  return _date;
}


/***/ }),

/***/ 4638:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.secondsToMinutes = secondsToMinutes;
var _index = __webpack_require__(8052);

/**
 * @name secondsToMinutes
 * @category Conversion Helpers
 * @summary Convert seconds to minutes.
 *
 * @description
 * Convert a number of seconds to a full number of minutes.
 *
 * @param seconds - The number of seconds to be converted
 *
 * @returns The number of seconds converted in minutes
 *
 * @example
 * // Convert 120 seconds into minutes
 * const result = secondsToMinutes(120)
 * //=> 2
 *
 * @example
 * // It uses floor rounding:
 * const result = secondsToMinutes(119)
 * //=> 1
 */
function secondsToMinutes(seconds) {
  const minutes = seconds / _index.secondsInMinute;
  return Math.trunc(minutes);
}


/***/ }),

/***/ 4650:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfISOWeek = endOfISOWeek;
var _index = __webpack_require__(1587);

/**
 * The {@link endOfISOWeek} function options.
 */

/**
 * @name endOfISOWeek
 * @category ISO Week Helpers
 * @summary Return the end of an ISO week for the given date.
 *
 * @description
 * Return the end of an ISO week for the given date.
 * The result will be in the local timezone.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of an ISO week
 *
 * @example
 * // The end of an ISO week for 2 September 2014 11:55:00:
 * const result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Sun Sep 07 2014 23:59:59.999
 */
function endOfISOWeek(date, options) {
  return (0, _index.endOfWeek)(date, { ...options, weekStartsOn: 1 });
}


/***/ }),

/***/ 4674:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.areIntervalsOverlapping = areIntervalsOverlapping;
var _index = __webpack_require__(4446);

/**
 * The {@link areIntervalsOverlapping} function options.
 */

/**
 * @name areIntervalsOverlapping
 * @category Interval Helpers
 * @summary Is the given time interval overlapping with another time interval?
 *
 * @description
 * Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping unless `inclusive` is set to `true`.
 *
 * @param intervalLeft - The first interval to compare.
 * @param intervalRight - The second interval to compare.
 * @param options - The object with options
 *
 * @returns Whether the time intervals are overlapping
 *
 * @example
 * // For overlapping time intervals:
 * areIntervalsOverlapping(
 *   { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
 *   { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }
 * )
 * //=> true
 *
 * @example
 * // For non-overlapping time intervals:
 * areIntervalsOverlapping(
 *   { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
 *   { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }
 * )
 * //=> false
 *
 * @example
 * // For adjacent time intervals:
 * areIntervalsOverlapping(
 *   { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
 *   { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }
 * )
 * //=> false
 *
 * @example
 * // Using the inclusive option:
 * areIntervalsOverlapping(
 *   { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
 *   { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },
 *   { inclusive: true }
 * )
 * //=> true
 */
function areIntervalsOverlapping(intervalLeft, intervalRight, options) {
  const [leftStartTime, leftEndTime] = [
    +(0, _index.toDate)(intervalLeft.start, options?.in),
    +(0, _index.toDate)(intervalLeft.end, options?.in),
  ].sort((a, b) => a - b);
  const [rightStartTime, rightEndTime] = [
    +(0, _index.toDate)(intervalRight.start, options?.in),
    +(0, _index.toDate)(intervalRight.end, options?.in),
  ].sort((a, b) => a - b);

  if (options?.inclusive)
    return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime;

  return leftStartTime < rightEndTime && rightStartTime < leftEndTime;
}


/***/ }),

/***/ 4702:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.interval = interval;
var _index = __webpack_require__(8256);

/**
 * The {@link interval} function options.
 */

/**
 * The {@link interval} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the start argument,
 * then the end interval date. If a context function is passed, it uses the context
 * function return type.
 */

/**
 * @name interval
 * @category Interval Helpers
 * @summary Creates an interval object and validates its values.
 *
 * @description
 * Creates a normalized interval object and validates its values. If the interval is invalid, an exception is thrown.
 *
 * @typeParam StartDate - Start date type.
 * @typeParam EndDate - End date type.
 * @typeParam Options - Options type.
 *
 * @param start - The start of the interval.
 * @param end - The end of the interval.
 * @param options - The options object.
 *
 * @throws `Start date is invalid` when `start` is invalid.
 * @throws `End date is invalid` when `end` is invalid.
 * @throws `End date must be after start date` when end is before `start` and `options.assertPositive` is true.
 *
 * @returns The normalized and validated interval object.
 */
function interval(start, end, options) {
  const [_start, _end] = (0, _index.normalizeDates)(options?.in, start, end);

  if (isNaN(+_start)) throw new TypeError("Start date is invalid");
  if (isNaN(+_end)) throw new TypeError("End date is invalid");

  if (options?.assertPositive && +_start > +_end)
    throw new TypeError("End date must be after start date");

  return { start: _start, end: _end };
}


/***/ }),

/***/ 4729:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfISOWeekYear = endOfISOWeekYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(9957);
var _index3 = __webpack_require__(6107);

/**
 * The {@link endOfISOWeekYear} function options.
 */

/**
 * @name endOfISOWeekYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Return the end of an ISO week-numbering year for the given date.
 *
 * @description
 * Return the end of an ISO week-numbering year,
 * which always starts 3 days before the year's first Thursday.
 * The result will be in the local timezone.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ContextDate - The `Date` type of the context function.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The end of an ISO week-numbering year
 *
 * @example
 * // The end of an ISO week-numbering year for 2 July 2005:
 * const result = endOfISOWeekYear(new Date(2005, 6, 2))
 * //=> Sun Jan 01 2006 23:59:59.999
 */
function endOfISOWeekYear(date, options) {
  const year = (0, _index2.getISOWeekYear)(date, options);
  const fourthOfJanuaryOfNextYear = (0, _index.constructFrom)(
    options?.in || date,
    0,
  );
  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
  const _date = (0, _index3.startOfISOWeek)(fourthOfJanuaryOfNextYear, options);
  _date.setMilliseconds(_date.getMilliseconds() - 1);
  return _date;
}


/***/ }),

/***/ 4744:
/***/ ((module) => {

"use strict";


var isMergeableObject = function isMergeableObject(value) {
	return isNonNullObject(value)
		&& !isSpecial(value)
};

function isNonNullObject(value) {
	return !!value && typeof value === 'object'
}

function isSpecial(value) {
	var stringValue = Object.prototype.toString.call(value);

	return stringValue === '[object RegExp]'
		|| stringValue === '[object Date]'
		|| isReactElement(value)
}

// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;

function isReactElement(value) {
	return value.$$typeof === REACT_ELEMENT_TYPE
}

function emptyTarget(val) {
	return Array.isArray(val) ? [] : {}
}

function cloneUnlessOtherwiseSpecified(value, options) {
	return (options.clone !== false && options.isMergeableObject(value))
		? deepmerge(emptyTarget(value), value, options)
		: value
}

function defaultArrayMerge(target, source, options) {
	return target.concat(source).map(function(element) {
		return cloneUnlessOtherwiseSpecified(element, options)
	})
}

function getMergeFunction(key, options) {
	if (!options.customMerge) {
		return deepmerge
	}
	var customMerge = options.customMerge(key);
	return typeof customMerge === 'function' ? customMerge : deepmerge
}

function getEnumerableOwnPropertySymbols(target) {
	return Object.getOwnPropertySymbols
		? Object.getOwnPropertySymbols(target).filter(function(symbol) {
			return Object.propertyIsEnumerable.call(target, symbol)
		})
		: []
}

function getKeys(target) {
	return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
}

function propertyIsOnObject(object, property) {
	try {
		return property in object
	} catch(_) {
		return false
	}
}

// Protects from prototype poisoning and unexpected merging up the prototype chain.
function propertyIsUnsafe(target, key) {
	return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
		&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
			&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
}

function mergeObject(target, source, options) {
	var destination = {};
	if (options.isMergeableObject(target)) {
		getKeys(target).forEach(function(key) {
			destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
		});
	}
	getKeys(source).forEach(function(key) {
		if (propertyIsUnsafe(target, key)) {
			return
		}

		if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
			destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
		} else {
			destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
		}
	});
	return destination
}

function deepmerge(target, source, options) {
	options = options || {};
	options.arrayMerge = options.arrayMerge || defaultArrayMerge;
	options.isMergeableObject = options.isMergeableObject || isMergeableObject;
	// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
	// implementations can use it. The caller may not replace it.
	options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;

	var sourceIsArray = Array.isArray(source);
	var targetIsArray = Array.isArray(target);
	var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;

	if (!sourceAndTargetTypesMatch) {
		return cloneUnlessOtherwiseSpecified(source, options)
	} else if (sourceIsArray) {
		return options.arrayMerge(target, source, options)
	} else {
		return mergeObject(target, source, options)
	}
}

deepmerge.all = function deepmergeAll(array, options) {
	if (!Array.isArray(array)) {
		throw new Error('first argument should be an array')
	}

	return array.reduce(function(prev, next) {
		return deepmerge(prev, next, options)
	}, {})
};

var deepmerge_1 = deepmerge;

module.exports = deepmerge_1;


/***/ }),

/***/ 4746:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarWeeks = differenceInCalendarWeeks;
var _index = __webpack_require__(6339);
var _index2 = __webpack_require__(8256);
var _index3 = __webpack_require__(8052);
var _index4 = __webpack_require__(5472);

/**
 * The {@link differenceInCalendarWeeks} function options.
 */

/**
 * @name differenceInCalendarWeeks
 * @category Week Helpers
 * @summary Get the number of calendar weeks between the given dates.
 *
 * @description
 * Get the number of calendar weeks between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options.
 *
 * @returns The number of calendar weeks
 *
 * @example
 * // How many calendar weeks are between 5 July 2014 and 20 July 2014?
 * const result = differenceInCalendarWeeks(
 *   new Date(2014, 6, 20),
 *   new Date(2014, 6, 5)
 * )
 * //=> 3
 *
 * @example
 * // If the week starts on Monday,
 * // how many calendar weeks are between 5 July 2014 and 20 July 2014?
 * const result = differenceInCalendarWeeks(
 *   new Date(2014, 6, 20),
 *   new Date(2014, 6, 5),
 *   { weekStartsOn: 1 }
 * )
 * //=> 2
 */
function differenceInCalendarWeeks(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index2.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const laterStartOfWeek = (0, _index4.startOfWeek)(laterDate_, options);
  const earlierStartOfWeek = (0, _index4.startOfWeek)(earlierDate_, options);

  const laterTimestamp =
    +laterStartOfWeek -
    (0, _index.getTimezoneOffsetInMilliseconds)(laterStartOfWeek);
  const earlierTimestamp =
    +earlierStartOfWeek -
    (0, _index.getTimezoneOffsetInMilliseconds)(earlierStartOfWeek);

  return Math.round(
    (laterTimestamp - earlierTimestamp) / _index3.millisecondsInWeek,
  );
}


/***/ }),

/***/ 4848:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (true) {
  module.exports = __webpack_require__(9698);
} else // removed by dead control flow
{}


/***/ }),

/***/ 4855:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.min = min;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link min} function options.
 */

/**
 * @name min
 * @category Common Helpers
 * @summary Returns the earliest of the given dates.
 *
 * @description
 * Returns the earliest of the given dates.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param dates - The dates to compare
 *
 * @returns The earliest of the dates
 *
 * @example
 * // Which of these dates is the earliest?
 * const result = min([
 *   new Date(1989, 6, 10),
 *   new Date(1987, 1, 11),
 *   new Date(1995, 6, 2),
 *   new Date(1990, 0, 1)
 * ])
 * //=> Wed Feb 11 1987 00:00:00
 */
function min(dates, options) {
  let result;
  let context = options?.in;

  dates.forEach((date) => {
    // Use the first date object as the context function
    if (!context && typeof date === "object")
      context = _index.constructFrom.bind(null, date);

    const date_ = (0, _index2.toDate)(date, context);
    if (!result || result > date_ || isNaN(+date_)) result = date_;
  });

  return (0, _index.constructFrom)(context, result || NaN);
}


/***/ }),

/***/ 4875:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarYears = differenceInCalendarYears;
var _index = __webpack_require__(8256);

/**
 * The {@link differenceInCalendarYears} function options.
 */

/**
 * @name differenceInCalendarYears
 * @category Year Helpers
 * @summary Get the number of calendar years between the given dates.
 *
 * @description
 * Get the number of calendar years between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options

 * @returns The number of calendar years
 *
 * @example
 * // How many calendar years are between 31 December 2013 and 11 February 2015?
 * const result = differenceInCalendarYears(
 *   new Date(2015, 1, 11),
 *   new Date(2013, 11, 31)
 * );
 * //=> 2
 */
function differenceInCalendarYears(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return laterDate_.getFullYear() - earlierDate_.getFullYear();
}


/***/ }),

/***/ 4879:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isEqual = isEqual;
var _index = __webpack_require__(4446);

/**
 * @name isEqual
 * @category Common Helpers
 * @summary Are the given dates equal?
 *
 * @description
 * Are the given dates equal?
 *
 * @param dateLeft - The first date to compare
 * @param dateRight - The second date to compare
 *
 * @returns The dates are equal
 *
 * @example
 * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?
 * const result = isEqual(
 *   new Date(2014, 6, 2, 6, 30, 45, 0),
 *   new Date(2014, 6, 2, 6, 30, 45, 500)
 * )
 * //=> false
 */
function isEqual(leftDate, rightDate) {
  return +(0, _index.toDate)(leftDate) === +(0, _index.toDate)(rightDate);
}


/***/ }),

/***/ 4936:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _DayCell = __webpack_require__(2448);
var _Month = _interopRequireDefault(__webpack_require__(6648));
var _DateInput = _interopRequireDefault(__webpack_require__(2394));
var _utils = __webpack_require__(2301);
var _classnames = _interopRequireDefault(__webpack_require__(6942));
var _reactList = _interopRequireDefault(__webpack_require__(2121));
var _shallowEqual = __webpack_require__(3390);
var _dateFns = __webpack_require__(411);
var _enUS = __webpack_require__(1343);
var _styles = _interopRequireDefault(__webpack_require__(1776));
var _accessibility = __webpack_require__(6279);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
class Calendar extends _react.PureComponent {
  constructor(_props, context) {
    var _this;
    super(_props, context);
    _this = this;
    _defineProperty(this, "focusToDate", function (date) {
      let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.props;
      let preventUnnecessary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
      if (!props.scroll.enabled) {
        if (preventUnnecessary && props.preventSnapRefocus) {
          const focusedDateDiff = (0, _dateFns.differenceInCalendarMonths)(date, _this.state.focusedDate);
          const isAllowedForward = props.calendarFocus === 'forwards' && focusedDateDiff >= 0;
          const isAllowedBackward = props.calendarFocus === 'backwards' && focusedDateDiff <= 0;
          if ((isAllowedForward || isAllowedBackward) && Math.abs(focusedDateDiff) < props.months) {
            return;
          }
        }
        _this.setState({
          focusedDate: date
        });
        return;
      }
      const targetMonthIndex = (0, _dateFns.differenceInCalendarMonths)(date, props.minDate, _this.dateOptions);
      const visibleMonths = _this.list.getVisibleRange();
      if (preventUnnecessary && visibleMonths.includes(targetMonthIndex)) return;
      _this.isFirstRender = true;
      _this.list.scrollTo(targetMonthIndex);
      _this.setState({
        focusedDate: date
      });
    });
    _defineProperty(this, "updateShownDate", function () {
      let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;
      const newProps = props.scroll.enabled ? {
        ...props,
        months: _this.list.getVisibleRange().length
      } : props;
      const newFocus = (0, _utils.calcFocusDate)(_this.state.focusedDate, newProps);
      _this.focusToDate(newFocus, newProps);
    });
    _defineProperty(this, "updatePreview", val => {
      if (!val) {
        this.setState({
          preview: null
        });
        return;
      }
      const preview = {
        startDate: val,
        endDate: val,
        color: this.props.color
      };
      this.setState({
        preview
      });
    });
    _defineProperty(this, "changeShownDate", function (value) {
      let mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set';
      const {
        focusedDate
      } = _this.state;
      const {
        onShownDateChange,
        minDate,
        maxDate
      } = _this.props;
      const modeMapper = {
        monthOffset: () => (0, _dateFns.addMonths)(focusedDate, value),
        setMonth: () => (0, _dateFns.setMonth)(focusedDate, value),
        setYear: () => (0, _dateFns.setYear)(focusedDate, value),
        set: () => value
      };
      const newDate = (0, _dateFns.min)([(0, _dateFns.max)([modeMapper[mode](), minDate]), maxDate]);
      _this.focusToDate(newDate, _this.props, false);
      onShownDateChange && onShownDateChange(newDate);
    });
    _defineProperty(this, "handleRangeFocusChange", (rangesIndex, rangeItemIndex) => {
      this.props.onRangeFocusChange && this.props.onRangeFocusChange([rangesIndex, rangeItemIndex]);
    });
    _defineProperty(this, "handleScroll", () => {
      const {
        onShownDateChange,
        minDate
      } = this.props;
      const {
        focusedDate
      } = this.state;
      const {
        isFirstRender
      } = this;
      const visibleMonths = this.list.getVisibleRange();
      // prevent scroll jump with wrong visible value
      if (visibleMonths[0] === undefined) return;
      const visibleMonth = (0, _dateFns.addMonths)(minDate, visibleMonths[0] || 0);
      const isFocusedToDifferent = !(0, _dateFns.isSameMonth)(visibleMonth, focusedDate);
      if (isFocusedToDifferent && !isFirstRender) {
        this.setState({
          focusedDate: visibleMonth
        });
        onShownDateChange && onShownDateChange(visibleMonth);
      }
      this.isFirstRender = false;
    });
    _defineProperty(this, "renderMonthAndYear", (focusedDate, changeShownDate, props) => {
      const {
        showMonthArrow,
        minDate,
        maxDate,
        showMonthAndYearPickers,
        ariaLabels
      } = props;
      const upperYearLimit = (maxDate || Calendar.defaultProps.maxDate).getFullYear();
      const lowerYearLimit = (minDate || Calendar.defaultProps.minDate).getFullYear();
      const styles = this.styles;
      return /*#__PURE__*/_react.default.createElement("div", {
        onMouseUp: e => e.stopPropagation(),
        className: styles.monthAndYearWrapper
      }, showMonthArrow ? /*#__PURE__*/_react.default.createElement("button", {
        type: "button",
        className: (0, _classnames.default)(styles.nextPrevButton, styles.prevButton),
        onClick: () => changeShownDate(-1, 'monthOffset'),
        "aria-label": ariaLabels.prevButton
      }, /*#__PURE__*/_react.default.createElement("i", null)) : null, showMonthAndYearPickers ? /*#__PURE__*/_react.default.createElement("span", {
        className: styles.monthAndYearPickers
      }, /*#__PURE__*/_react.default.createElement("span", {
        className: styles.monthPicker
      }, /*#__PURE__*/_react.default.createElement("select", {
        value: focusedDate.getMonth(),
        onChange: e => changeShownDate(e.target.value, 'setMonth'),
        "aria-label": ariaLabels.monthPicker
      }, this.state.monthNames.map((monthName, i) => /*#__PURE__*/_react.default.createElement("option", {
        key: i,
        value: i
      }, monthName)))), /*#__PURE__*/_react.default.createElement("span", {
        className: styles.monthAndYearDivider
      }), /*#__PURE__*/_react.default.createElement("span", {
        className: styles.yearPicker
      }, /*#__PURE__*/_react.default.createElement("select", {
        value: focusedDate.getFullYear(),
        onChange: e => changeShownDate(e.target.value, 'setYear'),
        "aria-label": ariaLabels.yearPicker
      }, new Array(upperYearLimit - lowerYearLimit + 1).fill(upperYearLimit).map((val, i) => {
        const year = val - i;
        return /*#__PURE__*/_react.default.createElement("option", {
          key: year,
          value: year
        }, year);
      })))) : /*#__PURE__*/_react.default.createElement("span", {
        className: styles.monthAndYearPickers
      }, this.state.monthNames[focusedDate.getMonth()], " ", focusedDate.getFullYear()), showMonthArrow ? /*#__PURE__*/_react.default.createElement("button", {
        type: "button",
        className: (0, _classnames.default)(styles.nextPrevButton, styles.nextButton),
        onClick: () => changeShownDate(+1, 'monthOffset'),
        "aria-label": ariaLabels.nextButton
      }, /*#__PURE__*/_react.default.createElement("i", null)) : null);
    });
    _defineProperty(this, "renderDateDisplay", () => {
      const {
        focusedRange,
        color,
        ranges,
        rangeColors,
        dateDisplayFormat,
        editableDateInputs,
        startDatePlaceholder,
        endDatePlaceholder,
        ariaLabels
      } = this.props;
      const defaultColor = rangeColors[focusedRange[0]] || color;
      const styles = this.styles;
      return /*#__PURE__*/_react.default.createElement("div", {
        className: styles.dateDisplayWrapper
      }, ranges.map((range, i) => {
        if (range.showDateDisplay === false || range.disabled && !range.showDateDisplay) return null;
        return /*#__PURE__*/_react.default.createElement("div", {
          className: styles.dateDisplay,
          key: i,
          style: {
            color: range.color || defaultColor
          }
        }, /*#__PURE__*/_react.default.createElement(_DateInput.default, {
          className: (0, _classnames.default)(styles.dateDisplayItem, {
            [styles.dateDisplayItemActive]: focusedRange[0] === i && focusedRange[1] === 0
          }),
          readOnly: !editableDateInputs,
          disabled: range.disabled,
          value: range.startDate,
          placeholder: startDatePlaceholder,
          dateOptions: this.dateOptions,
          dateDisplayFormat: dateDisplayFormat,
          ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].startDate,
          onChange: this.onDragSelectionEnd,
          onFocus: () => this.handleRangeFocusChange(i, 0)
        }), /*#__PURE__*/_react.default.createElement(_DateInput.default, {
          className: (0, _classnames.default)(styles.dateDisplayItem, {
            [styles.dateDisplayItemActive]: focusedRange[0] === i && focusedRange[1] === 1
          }),
          readOnly: !editableDateInputs,
          disabled: range.disabled,
          value: range.endDate,
          placeholder: endDatePlaceholder,
          dateOptions: this.dateOptions,
          dateDisplayFormat: dateDisplayFormat,
          ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].endDate,
          onChange: this.onDragSelectionEnd,
          onFocus: () => this.handleRangeFocusChange(i, 1)
        }));
      }));
    });
    _defineProperty(this, "onDragSelectionStart", date => {
      const {
        onChange,
        dragSelectionEnabled
      } = this.props;
      if (dragSelectionEnabled) {
        this.setState({
          drag: {
            status: true,
            range: {
              startDate: date,
              endDate: date
            },
            disablePreview: true
          }
        });
      } else {
        onChange && onChange(date);
      }
    });
    _defineProperty(this, "onDragSelectionEnd", date => {
      const {
        updateRange,
        displayMode,
        onChange,
        dragSelectionEnabled
      } = this.props;
      if (!dragSelectionEnabled) return;
      if (displayMode === 'date' || !this.state.drag.status) {
        onChange && onChange(date);
        return;
      }
      const newRange = {
        startDate: this.state.drag.range.startDate,
        endDate: date
      };
      if (displayMode !== 'dateRange' || (0, _dateFns.isSameDay)(newRange.startDate, date)) {
        this.setState({
          drag: {
            status: false,
            range: {}
          }
        }, () => onChange && onChange(date));
      } else {
        this.setState({
          drag: {
            status: false,
            range: {}
          }
        }, () => {
          updateRange && updateRange(newRange);
        });
      }
    });
    _defineProperty(this, "onDragSelectionMove", date => {
      const {
        drag
      } = this.state;
      if (!drag.status || !this.props.dragSelectionEnabled) return;
      this.setState({
        drag: {
          status: drag.status,
          range: {
            startDate: drag.range.startDate,
            endDate: date
          },
          disablePreview: true
        }
      });
    });
    _defineProperty(this, "estimateMonthSize", (index, cache) => {
      const {
        direction,
        minDate
      } = this.props;
      const {
        scrollArea
      } = this.state;
      if (cache) {
        this.listSizeCache = cache;
        if (cache[index]) return cache[index];
      }
      if (direction === 'horizontal') return scrollArea.monthWidth;
      const monthStep = (0, _dateFns.addMonths)(minDate, index);
      const {
        start,
        end
      } = (0, _utils.getMonthDisplayRange)(monthStep, this.dateOptions);
      const isLongMonth = (0, _dateFns.differenceInDays)(end, start, this.dateOptions) + 1 > 7 * 5;
      return isLongMonth ? scrollArea.longMonthHeight : scrollArea.monthHeight;
    });
    this.dateOptions = {
      locale: _props.locale
    };
    if (_props.weekStartsOn !== undefined) this.dateOptions.weekStartsOn = _props.weekStartsOn;
    this.styles = (0, _utils.generateStyles)([_styles.default, _props.classNames]);
    this.listSizeCache = {};
    this.isFirstRender = true;
    this.state = {
      monthNames: this.getMonthNames(),
      focusedDate: (0, _utils.calcFocusDate)(null, _props),
      drag: {
        status: false,
        range: {
          startDate: null,
          endDate: null
        },
        disablePreview: false
      },
      scrollArea: this.calcScrollArea(_props)
    };
  }
  getMonthNames() {
    return [...Array(12).keys()].map(i => this.props.locale.localize.month(i));
  }
  calcScrollArea(props) {
    const {
      direction,
      months,
      scroll
    } = props;
    if (!scroll.enabled) return {
      enabled: false
    };
    const longMonthHeight = scroll.longMonthHeight || scroll.monthHeight;
    if (direction === 'vertical') {
      return {
        enabled: true,
        monthHeight: scroll.monthHeight || 220,
        longMonthHeight: longMonthHeight || 260,
        calendarWidth: 'auto',
        calendarHeight: (scroll.calendarHeight || longMonthHeight || 240) * months
      };
    }
    return {
      enabled: true,
      monthWidth: scroll.monthWidth || 332,
      calendarWidth: (scroll.calendarWidth || scroll.monthWidth || 332) * months,
      monthHeight: longMonthHeight || 300,
      calendarHeight: longMonthHeight || 300
    };
  }
  componentDidMount() {
    if (this.props.scroll.enabled) {
      // prevent react-list's initial render focus problem
      setTimeout(() => this.focusToDate(this.state.focusedDate));
    }
  }
  componentDidUpdate(prevProps) {
    const propMapper = {
      dateRange: 'ranges',
      date: 'date'
    };
    const targetProp = propMapper[this.props.displayMode];
    if (this.props[targetProp] !== prevProps[targetProp]) {
      this.updateShownDate(this.props);
    }
    if (prevProps.locale !== this.props.locale || prevProps.weekStartsOn !== this.props.weekStartsOn) {
      this.dateOptions = {
        locale: this.props.locale
      };
      if (this.props.weekStartsOn !== undefined) this.dateOptions.weekStartsOn = this.props.weekStartsOn;
      this.setState({
        monthNames: this.getMonthNames()
      });
    }
    if (!(0, _shallowEqual.shallowEqualObjects)(prevProps.scroll, this.props.scroll)) {
      this.setState({
        scrollArea: this.calcScrollArea(this.props)
      });
    }
  }
  renderWeekdays() {
    const now = new Date();
    return /*#__PURE__*/_react.default.createElement("div", {
      className: this.styles.weekDays
    }, (0, _dateFns.eachDayOfInterval)({
      start: (0, _dateFns.startOfWeek)(now, this.dateOptions),
      end: (0, _dateFns.endOfWeek)(now, this.dateOptions)
    }).map((day, i) => /*#__PURE__*/_react.default.createElement("span", {
      className: this.styles.weekDay,
      key: i
    }, (0, _dateFns.format)(day, this.props.weekdayDisplayFormat, this.dateOptions))));
  }
  render() {
    const {
      showDateDisplay,
      onPreviewChange,
      scroll,
      direction,
      disabledDates,
      disabledDay,
      maxDate,
      minDate,
      rangeColors,
      color,
      navigatorRenderer,
      className,
      preview
    } = this.props;
    const {
      scrollArea,
      focusedDate
    } = this.state;
    const isVertical = direction === 'vertical';
    const monthAndYearRenderer = navigatorRenderer || this.renderMonthAndYear;
    const ranges = this.props.ranges.map((range, i) => ({
      ...range,
      color: range.color || rangeColors[i] || color
    }));
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(this.styles.calendarWrapper, className),
      onMouseUp: () => this.setState({
        drag: {
          status: false,
          range: {}
        }
      }),
      onMouseLeave: () => {
        this.setState({
          drag: {
            status: false,
            range: {}
          }
        });
      }
    }, showDateDisplay && this.renderDateDisplay(), monthAndYearRenderer(focusedDate, this.changeShownDate, this.props), scroll.enabled ? /*#__PURE__*/_react.default.createElement("div", null, isVertical && this.renderWeekdays(this.dateOptions), /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(this.styles.infiniteMonths, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal),
      onMouseLeave: () => onPreviewChange && onPreviewChange(),
      style: {
        width: scrollArea.calendarWidth + 11,
        height: scrollArea.calendarHeight + 11
      },
      onScroll: this.handleScroll
    }, /*#__PURE__*/_react.default.createElement(_reactList.default, {
      length: (0, _dateFns.differenceInCalendarMonths)((0, _dateFns.endOfMonth)(maxDate), (0, _dateFns.addDays)((0, _dateFns.startOfMonth)(minDate), -1), this.dateOptions),
      treshold: 500,
      type: "variable",
      ref: target => this.list = target,
      itemSizeEstimator: this.estimateMonthSize,
      axis: isVertical ? 'y' : 'x',
      itemRenderer: (index, key) => {
        const monthStep = (0, _dateFns.addMonths)(minDate, index);
        return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, this.props, {
          onPreviewChange: onPreviewChange || this.updatePreview,
          preview: preview || this.state.preview,
          ranges: ranges,
          key: key,
          drag: this.state.drag,
          dateOptions: this.dateOptions,
          disabledDates: disabledDates,
          disabledDay: disabledDay,
          month: monthStep,
          onDragSelectionStart: this.onDragSelectionStart,
          onDragSelectionEnd: this.onDragSelectionEnd,
          onDragSelectionMove: this.onDragSelectionMove,
          onMouseLeave: () => onPreviewChange && onPreviewChange(),
          styles: this.styles,
          style: isVertical ? {
            height: this.estimateMonthSize(index)
          } : {
            height: scrollArea.monthHeight,
            width: this.estimateMonthSize(index)
          },
          showMonthName: true,
          showWeekDays: !isVertical
        }));
      }
    }))) : /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(this.styles.months, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal)
    }, new Array(this.props.months).fill(null).map((_, i) => {
      let monthStep = (0, _dateFns.addMonths)(this.state.focusedDate, i);
      if (this.props.calendarFocus === 'backwards') {
        monthStep = (0, _dateFns.subMonths)(this.state.focusedDate, this.props.months - 1 - i);
      }
      return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, this.props, {
        onPreviewChange: onPreviewChange || this.updatePreview,
        preview: preview || this.state.preview,
        ranges: ranges,
        key: i,
        drag: this.state.drag,
        dateOptions: this.dateOptions,
        disabledDates: disabledDates,
        disabledDay: disabledDay,
        month: monthStep,
        onDragSelectionStart: this.onDragSelectionStart,
        onDragSelectionEnd: this.onDragSelectionEnd,
        onDragSelectionMove: this.onDragSelectionMove,
        onMouseLeave: () => onPreviewChange && onPreviewChange(),
        styles: this.styles,
        showWeekDays: !isVertical || i === 0,
        showMonthName: !isVertical || i > 0
      }));
    })));
  }
}
Calendar.defaultProps = {
  showMonthArrow: true,
  showMonthAndYearPickers: true,
  disabledDates: [],
  disabledDay: () => {},
  classNames: {},
  locale: _enUS.enUS,
  ranges: [],
  focusedRange: [0, 0],
  dateDisplayFormat: 'MMM d, yyyy',
  monthDisplayFormat: 'MMM yyyy',
  weekdayDisplayFormat: 'E',
  dayDisplayFormat: 'd',
  showDateDisplay: true,
  showPreview: true,
  displayMode: 'date',
  months: 1,
  color: '#3d91ff',
  scroll: {
    enabled: false
  },
  direction: 'vertical',
  maxDate: (0, _dateFns.addYears)(new Date(), 20),
  minDate: (0, _dateFns.addYears)(new Date(), -100),
  rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],
  startDatePlaceholder: 'Early',
  endDatePlaceholder: 'Continuous',
  editableDateInputs: false,
  dragSelectionEnabled: true,
  fixedHeight: false,
  calendarFocus: 'forwards',
  preventSnapRefocus: false,
  ariaLabels: {}
};
Calendar.propTypes = {
  showMonthArrow: _propTypes.default.bool,
  showMonthAndYearPickers: _propTypes.default.bool,
  disabledDates: _propTypes.default.array,
  disabledDay: _propTypes.default.func,
  minDate: _propTypes.default.object,
  maxDate: _propTypes.default.object,
  date: _propTypes.default.object,
  onChange: _propTypes.default.func,
  onPreviewChange: _propTypes.default.func,
  onRangeFocusChange: _propTypes.default.func,
  classNames: _propTypes.default.object,
  locale: _propTypes.default.object,
  shownDate: _propTypes.default.object,
  onShownDateChange: _propTypes.default.func,
  ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),
  preview: _propTypes.default.shape({
    startDate: _propTypes.default.object,
    endDate: _propTypes.default.object,
    color: _propTypes.default.string
  }),
  dateDisplayFormat: _propTypes.default.string,
  monthDisplayFormat: _propTypes.default.string,
  weekdayDisplayFormat: _propTypes.default.string,
  weekStartsOn: _propTypes.default.number,
  dayDisplayFormat: _propTypes.default.string,
  focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),
  initialFocusedRange: _propTypes.default.arrayOf(_propTypes.default.number),
  months: _propTypes.default.number,
  className: _propTypes.default.string,
  showDateDisplay: _propTypes.default.bool,
  showPreview: _propTypes.default.bool,
  displayMode: _propTypes.default.oneOf(['dateRange', 'date']),
  color: _propTypes.default.string,
  updateRange: _propTypes.default.func,
  scroll: _propTypes.default.shape({
    enabled: _propTypes.default.bool,
    monthHeight: _propTypes.default.number,
    longMonthHeight: _propTypes.default.number,
    monthWidth: _propTypes.default.number,
    calendarWidth: _propTypes.default.number,
    calendarHeight: _propTypes.default.number
  }),
  direction: _propTypes.default.oneOf(['vertical', 'horizontal']),
  startDatePlaceholder: _propTypes.default.string,
  endDatePlaceholder: _propTypes.default.string,
  navigatorRenderer: _propTypes.default.func,
  rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),
  editableDateInputs: _propTypes.default.bool,
  dragSelectionEnabled: _propTypes.default.bool,
  fixedHeight: _propTypes.default.bool,
  calendarFocus: _propTypes.default.string,
  preventSnapRefocus: _propTypes.default.bool,
  ariaLabels: _accessibility.ariaLabelsShape
};
var _default = exports["default"] = Calendar;

/***/ }),

/***/ 4950:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatDistanceToNow = formatDistanceToNow;
var _index = __webpack_require__(2700);

var _index2 = __webpack_require__(671);

/**
 * The {@link formatDistanceToNow} function options.
 */

/**
 * @name formatDistanceToNow
 * @category Common Helpers
 * @summary Return the distance between the given date and now in words.
 * @pure false
 *
 * @description
 * Return the distance between the given date and now in words.
 *
 * | Distance to now                                                   | Result              |
 * |-------------------------------------------------------------------|---------------------|
 * | 0 ... 30 secs                                                     | less than a minute  |
 * | 30 secs ... 1 min 30 secs                                         | 1 minute            |
 * | 1 min 30 secs ... 44 mins 30 secs                                 | [2..44] minutes     |
 * | 44 mins ... 30 secs ... 89 mins 30 secs                           | about 1 hour        |
 * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs                        | about [2..24] hours |
 * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs                 | 1 day               |
 * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs         | [2..30] days        |
 * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month       |
 * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months      |
 * | 59 days 23 hrs 59 mins 30 secs ... 1 yr                           | [2..12] months      |
 * | 1 yr ... 1 yr 3 months                                            | about 1 year        |
 * | 1 yr 3 months ... 1 yr 9 month s                                  | over 1 year         |
 * | 1 yr 9 months ... 2 yrs                                           | almost 2 years      |
 * | N yrs ... N yrs 3 months                                          | about N years       |
 * | N yrs 3 months ... N yrs 9 months                                 | over N years        |
 * | N yrs 9 months ... N+1 yrs                                        | almost N+1 years    |
 *
 * With `options.includeSeconds == true`:
 * | Distance to now     | Result               |
 * |---------------------|----------------------|
 * | 0 secs ... 5 secs   | less than 5 seconds  |
 * | 5 secs ... 10 secs  | less than 10 seconds |
 * | 10 secs ... 20 secs | less than 20 seconds |
 * | 20 secs ... 40 secs | half a minute        |
 * | 40 secs ... 60 secs | less than a minute   |
 * | 60 secs ... 90 secs | 1 minute             |
 *
 * @param date - The given date
 * @param options - The object with options
 *
 * @returns The distance in words
 *
 * @throws `date` must not be Invalid Date
 * @throws `options.locale` must contain `formatDistance` property
 *
 * @example
 * // If today is 1 January 2015, what is the distance to 2 July 2014?
 * const result = formatDistanceToNow(
 *   new Date(2014, 6, 2)
 * )
 * //=> '6 months'
 *
 * @example
 * // If now is 1 January 2015 00:00:00,
 * // what is the distance to 1 January 2015 00:00:15, including seconds?
 * const result = formatDistanceToNow(
 *   new Date(2015, 0, 1, 0, 0, 15),
 *   {includeSeconds: true}
 * )
 * //=> 'less than 20 seconds'
 *
 * @example
 * // If today is 1 January 2015,
 * // what is the distance to 1 January 2016, with a suffix?
 * const result = formatDistanceToNow(
 *   new Date(2016, 0, 1),
 *   {addSuffix: true}
 * )
 * //=> 'in about 1 year'
 *
 * @example
 * // If today is 1 January 2015,
 * // what is the distance to 1 August 2016 in Esperanto?
 * const eoLocale = require('date-fns/locale/eo')
 * const result = formatDistanceToNow(
 *   new Date(2016, 7, 1),
 *   {locale: eoLocale}
 * )
 * //=> 'pli ol 1 jaro'
 */
function formatDistanceToNow(date, options) {
  return (0, _index2.formatDistance)(
    date,
    (0, _index.constructNow)(date),
    options,
  );
}


/***/ }),

/***/ 5056:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


/* istanbul ignore next  */
function setAttributesWithoutAttributes(styleElement) {
  var nonce =  true ? __webpack_require__.nc : 0;
  if (nonce) {
    styleElement.setAttribute("nonce", nonce);
  }
}
module.exports = setAttributesWithoutAttributes;

/***/ }),

/***/ 5072:
/***/ ((module) => {

"use strict";


var stylesInDOM = [];
function getIndexByIdentifier(identifier) {
  var result = -1;
  for (var i = 0; i < stylesInDOM.length; i++) {
    if (stylesInDOM[i].identifier === identifier) {
      result = i;
      break;
    }
  }
  return result;
}
function modulesToDom(list, options) {
  var idCountMap = {};
  var identifiers = [];
  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var count = idCountMap[id] || 0;
    var identifier = "".concat(id, " ").concat(count);
    idCountMap[id] = count + 1;
    var indexByIdentifier = getIndexByIdentifier(identifier);
    var obj = {
      css: item[1],
      media: item[2],
      sourceMap: item[3],
      supports: item[4],
      layer: item[5]
    };
    if (indexByIdentifier !== -1) {
      stylesInDOM[indexByIdentifier].references++;
      stylesInDOM[indexByIdentifier].updater(obj);
    } else {
      var updater = addElementStyle(obj, options);
      options.byIndex = i;
      stylesInDOM.splice(i, 0, {
        identifier: identifier,
        updater: updater,
        references: 1
      });
    }
    identifiers.push(identifier);
  }
  return identifiers;
}
function addElementStyle(obj, options) {
  var api = options.domAPI(options);
  api.update(obj);
  var updater = function updater(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
        return;
      }
      api.update(obj = newObj);
    } else {
      api.remove();
    }
  };
  return updater;
}
module.exports = function (list, options) {
  options = options || {};
  list = list || [];
  var lastIdentifiers = modulesToDom(list, options);
  return function update(newList) {
    newList = newList || [];
    for (var i = 0; i < lastIdentifiers.length; i++) {
      var identifier = lastIdentifiers[i];
      var index = getIndexByIdentifier(identifier);
      stylesInDOM[index].references--;
    }
    var newLastIdentifiers = modulesToDom(newList, options);
    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
      var _identifier = lastIdentifiers[_i];
      var _index = getIndexByIdentifier(_identifier);
      if (stylesInDOM[_index].references === 0) {
        stylesInDOM[_index].updater();
        stylesInDOM.splice(_index, 1);
      }
    }
    lastIdentifiers = newLastIdentifiers;
  };
};

/***/ }),

/***/ 5078:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.SecondParser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class SecondParser extends _Parser.Parser {
  priority = 50;

  parse(dateString, token, match) {
    switch (token) {
      case "s":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.second,
          dateString,
        );
      case "so":
        return match.ordinalNumber(dateString, { unit: "second" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 59;
  }

  set(date, _flags, value) {
    date.setSeconds(value, 0);
    return date;
  }

  incompatibleTokens = ["t", "T"];
}
exports.SecondParser = SecondParser;


/***/ }),

/***/ 5079:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ISOWeekParser = void 0;
var _index = __webpack_require__(3354);
var _index2 = __webpack_require__(6107);
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// ISO week of year
class ISOWeekParser extends _Parser.Parser {
  priority = 100;

  parse(dateString, token, match) {
    switch (token) {
      case "I":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.week,
          dateString,
        );
      case "Io":
        return match.ordinalNumber(dateString, { unit: "week" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 53;
  }

  set(date, _flags, value) {
    return (0, _index2.startOfISOWeek)((0, _index.setISOWeek)(date, value));
  }

  incompatibleTokens = [
    "y",
    "Y",
    "u",
    "q",
    "Q",
    "M",
    "L",
    "w",
    "d",
    "D",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.ISOWeekParser = ISOWeekParser;


/***/ }),

/***/ 5083:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextTuesday = nextTuesday;
var _index = __webpack_require__(64);

/**
 * The {@link nextTuesday} function options.
 */

/**
 * @name nextTuesday
 * @category Weekday Helpers
 * @summary When is the next Tuesday?
 *
 * @description
 * When is the next Tuesday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Tuesday
 *
 * @example
 * // When is the next Tuesday after Mar, 22, 2020?
 * const result = nextTuesday(new Date(2020, 2, 22))
 * //=> Tue Mar 24 2020 00:00:00
 */
function nextTuesday(date, options) {
  return (0, _index.nextDay)(date, 2, options);
}


/***/ }),

/***/ 5112:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subMonths = subMonths;
var _index = __webpack_require__(6379);

/**
 * The subMonths function options.
 */

/**
 * @name subMonths
 * @category Month Helpers
 * @summary Subtract the specified number of months from the given date.
 *
 * @description
 * Subtract the specified number of months from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of months to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the months subtracted
 *
 * @example
 * // Subtract 5 months from 1 February 2015:
 * const result = subMonths(new Date(2015, 1, 1), 5)
 * //=> Mon Sep 01 2014 00:00:00
 */
function subMonths(date, amount, options) {
  return (0, _index.addMonths)(date, -amount, options);
}


/***/ }),

/***/ 5154:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setSeconds = setSeconds;
var _index = __webpack_require__(4446);

/**
 * The {@link setSeconds} function options.
 */

/**
 * @name setSeconds
 * @category Second Helpers
 * @summary Set the seconds to the given date, with context support.
 *
 * @description
 * Set the seconds to the given date, with an optional context for time zone specification.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param seconds - The seconds of the new date
 * @param options - An object with options
 *
 * @returns The new date with the seconds set
 *
 * @example
 * // Set 45 seconds to 1 September 2014 11:30:40:
 * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)
 * //=> Mon Sep 01 2014 11:30:45
 */
function setSeconds(date, seconds, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setSeconds(seconds);
  return _date;
}


/***/ }),

/***/ 5206:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatDistanceStrict = formatDistanceStrict;
var _index = __webpack_require__(9577);
var _index2 = __webpack_require__(6755);
var _index3 = __webpack_require__(1331);
var _index4 = __webpack_require__(6339);
var _index5 = __webpack_require__(8256);
var _index6 = __webpack_require__(6789);
var _index7 = __webpack_require__(8052);

/**
 * The {@link formatDistanceStrict} function options.
 */

/**
 * The unit used to format the distance in {@link formatDistanceStrict}.
 */

/**
 * @name formatDistanceStrict
 * @category Common Helpers
 * @summary Return the distance between the given dates in words.
 *
 * @description
 * Return the distance between the given dates in words, using strict units.
 * This is like `formatDistance`, but does not use helpers like 'almost', 'over',
 * 'less than' and the like.
 *
 * | Distance between dates | Result              |
 * |------------------------|---------------------|
 * | 0 ... 59 secs          | [0..59] seconds     |
 * | 1 ... 59 mins          | [1..59] minutes     |
 * | 1 ... 23 hrs           | [1..23] hours       |
 * | 1 ... 29 days          | [1..29] days        |
 * | 1 ... 11 months        | [1..11] months      |
 * | 1 ... N years          | [1..N]  years       |
 *
 * @param laterDate - The date
 * @param earlierDate - The date to compare with
 * @param options - An object with options
 *
 * @returns The distance in words
 *
 * @throws `date` must not be Invalid Date
 * @throws `baseDate` must not be Invalid Date
 * @throws `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'
 * @throws `options.locale` must contain `formatDistance` property
 *
 * @example
 * // What is the distance between 2 July 2014 and 1 January 2015?
 * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))
 * //=> '6 months'
 *
 * @example
 * // What is the distance between 1 January 2015 00:00:15
 * // and 1 January 2015 00:00:00?
 * const result = formatDistanceStrict(
 *   new Date(2015, 0, 1, 0, 0, 15),
 *   new Date(2015, 0, 1, 0, 0, 0)
 * )
 * //=> '15 seconds'
 *
 * @example
 * // What is the distance from 1 January 2016
 * // to 1 January 2015, with a suffix?
 * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {
 *   addSuffix: true
 * })
 * //=> '1 year ago'
 *
 * @example
 * // What is the distance from 1 January 2016
 * // to 1 January 2015, in minutes?
 * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {
 *   unit: 'minute'
 * })
 * //=> '525600 minutes'
 *
 * @example
 * // What is the distance from 1 January 2015
 * // to 28 January 2015, in months, rounded up?
 * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {
 *   unit: 'month',
 *   roundingMethod: 'ceil'
 * })
 * //=> '1 month'
 *
 * @example
 * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?
 * import { eoLocale } from 'date-fns/locale/eo'
 * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {
 *   locale: eoLocale
 * })
 * //=> '1 jaro'
 */

function formatDistanceStrict(laterDate, earlierDate, options) {
  const defaultOptions = (0, _index2.getDefaultOptions)();
  const locale =
    options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;

  const comparison = (0, _index6.compareAsc)(laterDate, earlierDate);

  if (isNaN(comparison)) {
    throw new RangeError("Invalid time value");
  }

  const localizeOptions = Object.assign({}, options, {
    addSuffix: options?.addSuffix,
    comparison: comparison,
  });

  const [laterDate_, earlierDate_] = (0, _index5.normalizeDates)(
    options?.in,
    ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]),
  );

  const roundingMethod = (0, _index3.getRoundingMethod)(
    options?.roundingMethod ?? "round",
  );

  const milliseconds = earlierDate_.getTime() - laterDate_.getTime();
  const minutes = milliseconds / _index7.millisecondsInMinute;

  const timezoneOffset =
    (0, _index4.getTimezoneOffsetInMilliseconds)(earlierDate_) -
    (0, _index4.getTimezoneOffsetInMilliseconds)(laterDate_);

  // Use DST-normalized difference in minutes for years, months and days;
  // use regular difference in minutes for hours, minutes and seconds.
  const dstNormalizedMinutes =
    (milliseconds - timezoneOffset) / _index7.millisecondsInMinute;

  const defaultUnit = options?.unit;
  let unit;
  if (!defaultUnit) {
    if (minutes < 1) {
      unit = "second";
    } else if (minutes < 60) {
      unit = "minute";
    } else if (minutes < _index7.minutesInDay) {
      unit = "hour";
    } else if (dstNormalizedMinutes < _index7.minutesInMonth) {
      unit = "day";
    } else if (dstNormalizedMinutes < _index7.minutesInYear) {
      unit = "month";
    } else {
      unit = "year";
    }
  } else {
    unit = defaultUnit;
  }

  // 0 up to 60 seconds
  if (unit === "second") {
    const seconds = roundingMethod(milliseconds / 1000);
    return locale.formatDistance("xSeconds", seconds, localizeOptions);

    // 1 up to 60 mins
  } else if (unit === "minute") {
    const roundedMinutes = roundingMethod(minutes);
    return locale.formatDistance("xMinutes", roundedMinutes, localizeOptions);

    // 1 up to 24 hours
  } else if (unit === "hour") {
    const hours = roundingMethod(minutes / 60);
    return locale.formatDistance("xHours", hours, localizeOptions);

    // 1 up to 30 days
  } else if (unit === "day") {
    const days = roundingMethod(dstNormalizedMinutes / _index7.minutesInDay);
    return locale.formatDistance("xDays", days, localizeOptions);

    // 1 up to 12 months
  } else if (unit === "month") {
    const months = roundingMethod(
      dstNormalizedMinutes / _index7.minutesInMonth,
    );
    return months === 12 && defaultUnit !== "month"
      ? locale.formatDistance("xYears", 1, localizeOptions)
      : locale.formatDistance("xMonths", months, localizeOptions);

    // 1 year up to max Date
  } else {
    const years = roundingMethod(dstNormalizedMinutes / _index7.minutesInYear);
    return locale.formatDistance("xYears", years, localizeOptions);
  }
}


/***/ }),

/***/ 5255:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousFriday = previousFriday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousFriday} function options.
 */

/**
 * @name previousFriday
 * @category Weekday Helpers
 * @summary When is the previous Friday?
 *
 * @description
 * When is the previous Friday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [UTCDate](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - The options
 *
 * @returns The previous Friday
 *
 * @example
 * // When is the previous Friday before Jun, 19, 2021?
 * const result = previousFriday(new Date(2021, 5, 19))
 * //=> Fri June 18 2021 00:00:00
 */
function previousFriday(date, options) {
  return (0, _index.previousDay)(date, 5, options);
}


/***/ }),

/***/ 5261:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.TimestampSecondsParser = void 0;
var _index = __webpack_require__(2956);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class TimestampSecondsParser extends _Parser.Parser {
  priority = 40;

  parse(dateString) {
    return (0, _utils.parseAnyDigitsSigned)(dateString);
  }

  set(date, _flags, value) {
    return [
      (0, _index.constructFrom)(date, value * 1000),
      { timestampIsSet: true },
    ];
  }

  incompatibleTokens = "*";
}
exports.TimestampSecondsParser = TimestampSecondsParser;


/***/ }),

/***/ 5262:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfHour = startOfHour;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfHour} function options.
 */

/**
 * @name startOfHour
 * @category Hour Helpers
 * @summary Return the start of an hour for the given date.
 *
 * @description
 * Return the start of an hour for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of an hour
 *
 * @example
 * // The start of an hour for 2 September 2014 11:55:00:
 * const result = startOfHour(new Date(2014, 8, 2, 11, 55))
 * //=> Tue Sep 02 2014 11:00:00
 */
function startOfHour(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setMinutes(0, 0, 0);
  return _date;
}


/***/ }),

/***/ 5265:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfQuarter = endOfQuarter;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfQuarter} function options.
 */

/**
 * @name endOfQuarter
 * @category Quarter Helpers
 * @summary Return the end of a year quarter for the given date.
 *
 * @description
 * Return the end of a year quarter for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a quarter
 *
 * @example
 * // The end of a quarter for 2 September 2014 11:55:00:
 * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 30 2014 23:59:59.999
 */
function endOfQuarter(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const currentMonth = _date.getMonth();
  const month = currentMonth - (currentMonth % 3) + 3;
  _date.setMonth(month, 0);
  _date.setHours(23, 59, 59, 999);
  return _date;
}


/***/ }),

/***/ 5303:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.LocalDayParser = void 0;
var _index = __webpack_require__(4395);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// Local day of week
class LocalDayParser extends _Parser.Parser {
  priority = 90;
  parse(dateString, token, match, options) {
    const valueCallback = (value) => {
      // We want here floor instead of trunc, so we get -7 for value 0 instead of 0
      const wholeWeekDays = Math.floor((value - 1) / 7) * 7;
      return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;
    };

    switch (token) {
      // 3
      case "e":
      case "ee": // 03
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(token.length, dateString),
          valueCallback,
        );
      // 3rd
      case "eo":
        return (0, _utils.mapValue)(
          match.ordinalNumber(dateString, {
            unit: "day",
          }),
          valueCallback,
        );
      // Tue
      case "eee":
        return (
          match.day(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.day(dateString, { width: "short", context: "formatting" }) ||
          match.day(dateString, { width: "narrow", context: "formatting" })
        );

      // T
      case "eeeee":
        return match.day(dateString, {
          width: "narrow",
          context: "formatting",
        });
      // Tu
      case "eeeeee":
        return (
          match.day(dateString, { width: "short", context: "formatting" }) ||
          match.day(dateString, { width: "narrow", context: "formatting" })
        );

      // Tuesday
      case "eeee":
      default:
        return (
          match.day(dateString, { width: "wide", context: "formatting" }) ||
          match.day(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.day(dateString, { width: "short", context: "formatting" }) ||
          match.day(dateString, { width: "narrow", context: "formatting" })
        );
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 6;
  }

  set(date, _flags, value, options) {
    date = (0, _index.setDay)(date, value, options);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "y",
    "R",
    "u",
    "q",
    "Q",
    "M",
    "L",
    "I",
    "d",
    "D",
    "E",
    "i",
    "c",
    "t",
    "T",
  ];
}
exports.LocalDayParser = LocalDayParser;


/***/ }),

/***/ 5304:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ISOWeekYearParser = void 0;
var _index = __webpack_require__(6107);
var _index2 = __webpack_require__(2956);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// ISO week-numbering year
class ISOWeekYearParser extends _Parser.Parser {
  priority = 130;

  parse(dateString, token) {
    if (token === "R") {
      return (0, _utils.parseNDigitsSigned)(4, dateString);
    }

    return (0, _utils.parseNDigitsSigned)(token.length, dateString);
  }

  set(date, _flags, value) {
    const firstWeekOfYear = (0, _index2.constructFrom)(date, 0);
    firstWeekOfYear.setFullYear(value, 0, 4);
    firstWeekOfYear.setHours(0, 0, 0, 0);
    return (0, _index.startOfISOWeek)(firstWeekOfYear);
  }

  incompatibleTokens = [
    "G",
    "y",
    "Y",
    "u",
    "Q",
    "q",
    "M",
    "L",
    "w",
    "d",
    "D",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.ISOWeekYearParser = ISOWeekYearParser;


/***/ }),

/***/ 5325:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.minutesToMilliseconds = minutesToMilliseconds;
var _index = __webpack_require__(8052);

/**
 * @name minutesToMilliseconds
 * @category Conversion Helpers
 * @summary Convert minutes to milliseconds.
 *
 * @description
 * Convert a number of minutes to a full number of milliseconds.
 *
 * @param minutes - The number of minutes to be converted
 *
 * @returns The number of minutes converted in milliseconds
 *
 * @example
 * // Convert 2 minutes to milliseconds
 * const result = minutesToMilliseconds(2)
 * //=> 120000
 */
function minutesToMilliseconds(minutes) {
  return Math.trunc(minutes * _index.millisecondsInMinute);
}


/***/ }),

/***/ 5409:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
const MIN = 0;
const MAX = 99999;
class InputRangeField extends _react.Component {
  constructor(props, context) {
    super(props, context);
    _defineProperty(this, "onChange", e => {
      const {
        onChange
      } = this.props;
      let value = parseInt(e.target.value, 10);
      value = isNaN(value) ? 0 : Math.max(Math.min(MAX, value), MIN);
      onChange(value);
    });
  }
  shouldComponentUpdate(nextProps) {
    const {
      value,
      label,
      placeholder
    } = this.props;
    return value !== nextProps.value || label !== nextProps.label || placeholder !== nextProps.placeholder;
  }
  render() {
    const {
      label,
      placeholder,
      value,
      styles,
      onBlur,
      onFocus
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: styles.inputRange
    }, /*#__PURE__*/_react.default.createElement("input", {
      className: styles.inputRangeInput,
      placeholder: placeholder,
      value: value,
      min: MIN,
      max: MAX,
      onChange: this.onChange,
      onFocus: onFocus,
      onBlur: onBlur
    }), /*#__PURE__*/_react.default.createElement("span", {
      className: styles.inputRangeLabel
    }, label));
  }
}
InputRangeField.propTypes = {
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
  label: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.node]).isRequired,
  placeholder: _propTypes.default.string,
  styles: _propTypes.default.shape({
    inputRange: _propTypes.default.string,
    inputRangeInput: _propTypes.default.string,
    inputRangeLabel: _propTypes.default.string
  }).isRequired,
  onBlur: _propTypes.default.func.isRequired,
  onFocus: _propTypes.default.func.isRequired,
  onChange: _propTypes.default.func.isRequired
};
InputRangeField.defaultProps = {
  value: '',
  placeholder: '-'
};
var _default = exports["default"] = InputRangeField;

/***/ }),

/***/ 5442:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInQuarters = differenceInQuarters;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(5460);

/**
 * The {@link differenceInQuarters} function options.
 */

/**
 * @name differenceInQuarters
 * @category Quarter Helpers
 * @summary Get the number of quarters between the given dates.
 *
 * @description
 * Get the number of quarters between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options.
 *
 * @returns The number of full quarters
 *
 * @example
 * // How many full quarters are between 31 December 2013 and 2 July 2014?
 * const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))
 * //=> 2
 */
function differenceInQuarters(laterDate, earlierDate, options) {
  const diff =
    (0, _index2.differenceInMonths)(laterDate, earlierDate, options) / 3;
  return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);
}


/***/ }),

/***/ 5449:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatRFC3339 = formatRFC3339;
var _index = __webpack_require__(2554);
var _index2 = __webpack_require__(7489);
var _index3 = __webpack_require__(4446);

/**
 * The {@link formatRFC3339} function options.
 */

/**
 * @name formatRFC3339
 * @category Common Helpers
 * @summary Format the date according to the RFC 3339 standard (https://tools.ietf.org/html/rfc3339#section-5.6).
 *
 * @description
 * Return the formatted date string in RFC 3339 format. Options may be passed to control the parts and notations of the date.
 *
 * @param date - The original date
 * @param options - An object with options.
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 18 September 2019 in RFC 3339 format:
 * formatRFC3339(new Date(2019, 8, 18, 19, 0, 52))
 * //=> '2019-09-18T19:00:52Z'
 *
 * @example
 * // Represent 18 September 2019 in RFC 3339 format, 3 digits of second fraction
 * formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), {
 *   fractionDigits: 3
 * })
 * //=> '2019-09-18T19:00:52.234Z'
 */
function formatRFC3339(date, options) {
  const date_ = (0, _index3.toDate)(date, options?.in);

  if (!(0, _index2.isValid)(date_)) {
    throw new RangeError("Invalid time value");
  }

  const fractionDigits = options?.fractionDigits ?? 0;

  const day = (0, _index.addLeadingZeros)(date_.getDate(), 2);
  const month = (0, _index.addLeadingZeros)(date_.getMonth() + 1, 2);
  const year = date_.getFullYear();

  const hour = (0, _index.addLeadingZeros)(date_.getHours(), 2);
  const minute = (0, _index.addLeadingZeros)(date_.getMinutes(), 2);
  const second = (0, _index.addLeadingZeros)(date_.getSeconds(), 2);

  let fractionalSecond = "";
  if (fractionDigits > 0) {
    const milliseconds = date_.getMilliseconds();
    const fractionalSeconds = Math.trunc(
      milliseconds * Math.pow(10, fractionDigits - 3),
    );
    fractionalSecond =
      "." + (0, _index.addLeadingZeros)(fractionalSeconds, fractionDigits);
  }

  let offset = "";
  const tzOffset = date_.getTimezoneOffset();

  if (tzOffset !== 0) {
    const absoluteOffset = Math.abs(tzOffset);
    const hourOffset = (0, _index.addLeadingZeros)(
      Math.trunc(absoluteOffset / 60),
      2,
    );
    const minuteOffset = (0, _index.addLeadingZeros)(absoluteOffset % 60, 2);
    // If less than 0, the sign is +, because it is ahead of time.
    const sign = tzOffset < 0 ? "+" : "-";

    offset = `${sign}${hourOffset}:${minuteOffset}`;
  } else {
    offset = "Z";
  }

  return `${year}-${month}-${day}T${hour}:${minute}:${second}${fractionalSecond}${offset}`;
}


/***/ }),

/***/ 5456:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachWeekendOfMonth = eachWeekendOfMonth;
var _index = __webpack_require__(9305);
var _index2 = __webpack_require__(1291);
var _index3 = __webpack_require__(7710);

/**
 * The {@link eachWeekendOfMonth} function options.
 */

/**
 * @name eachWeekendOfMonth
 * @category Month Helpers
 * @summary List all the Saturdays and Sundays in the given month.
 *
 * @description
 * Get all the Saturdays and Sundays in the given month.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The given month
 * @param options - An object with options
 *
 * @returns An array containing all the Saturdays and Sundays
 *
 * @example
 * // Lists all Saturdays and Sundays in the given month
 * const result = eachWeekendOfMonth(new Date(2022, 1, 1))
 * //=> [
 * //   Sat Feb 05 2022 00:00:00,
 * //   Sun Feb 06 2022 00:00:00,
 * //   Sat Feb 12 2022 00:00:00,
 * //   Sun Feb 13 2022 00:00:00,
 * //   Sat Feb 19 2022 00:00:00,
 * //   Sun Feb 20 2022 00:00:00,
 * //   Sat Feb 26 2022 00:00:00,
 * //   Sun Feb 27 2022 00:00:00
 * // ]
 */
function eachWeekendOfMonth(date, options) {
  const start = (0, _index3.startOfMonth)(date, options);
  const end = (0, _index2.endOfMonth)(date, options);
  return (0, _index.eachWeekendOfInterval)({ start, end }, options);
}


/***/ }),

/***/ 5457:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousSunday = previousSunday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousSunday} function options.
 */

/**
 * @name previousSunday
 * @category Weekday Helpers
 * @summary When is the previous Sunday?
 *
 * @description
 * When is the previous Sunday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - The options
 *
 * @returns The previous Sunday
 *
 * @example
 * // When is the previous Sunday before Jun, 21, 2021?
 * const result = previousSunday(new Date(2021, 5, 21))
 * //=> Sun June 20 2021 00:00:00
 */
function previousSunday(date, options) {
  return (0, _index.previousDay)(date, 0, options);
}


/***/ }),

/***/ 5460:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInMonths = differenceInMonths;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(6789);
var _index3 = __webpack_require__(562);
var _index4 = __webpack_require__(920);

/**
 * The {@link differenceInMonths} function options.
 */

/**
 * @name differenceInMonths
 * @category Month Helpers
 * @summary Get the number of full months between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of full months
 *
 * @example
 * // How many full months are between 31 January 2014 and 1 September 2014?
 * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))
 * //=> 7
 */
function differenceInMonths(laterDate, earlierDate, options) {
  const [laterDate_, workingLaterDate, earlierDate_] = (0,
  _index.normalizeDates)(options?.in, laterDate, laterDate, earlierDate);

  const sign = (0, _index2.compareAsc)(workingLaterDate, earlierDate_);
  const difference = Math.abs(
    (0, _index3.differenceInCalendarMonths)(workingLaterDate, earlierDate_),
  );

  if (difference < 1) return 0;

  if (workingLaterDate.getMonth() === 1 && workingLaterDate.getDate() > 27)
    workingLaterDate.setDate(30);

  workingLaterDate.setMonth(workingLaterDate.getMonth() - sign * difference);

  let isLastMonthNotFull =
    (0, _index2.compareAsc)(workingLaterDate, earlierDate_) === -sign;

  if (
    (0, _index4.isLastDayOfMonth)(laterDate_) &&
    difference === 1 &&
    (0, _index2.compareAsc)(laterDate_, earlierDate_) === 1
  ) {
    isLastMonthNotFull = false;
  }

  const result = sign * (difference - +isLastMonthNotFull);
  return result === 0 ? 0 : result;
}


/***/ }),

/***/ 5472:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfWeek = startOfWeek;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(4446);

/**
 * The {@link startOfWeek} function options.
 */

/**
 * @name startOfWeek
 * @category Week Helpers
 * @summary Return the start of a week for the given date.
 *
 * @description
 * Return the start of a week for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of a week
 *
 * @example
 * // The start of a week for 2 September 2014 11:55:00:
 * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Sun Aug 31 2014 00:00:00
 *
 * @example
 * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:
 * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })
 * //=> Mon Sep 01 2014 00:00:00
 */
function startOfWeek(date, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const _date = (0, _index2.toDate)(date, options?.in);
  const day = _date.getDay();
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;

  _date.setDate(_date.getDate() - diff);
  _date.setHours(0, 0, 0, 0);
  return _date;
}


/***/ }),

/***/ 5506:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarDays = differenceInCalendarDays;
var _index = __webpack_require__(6339);
var _index2 = __webpack_require__(8256);
var _index3 = __webpack_require__(8052);
var _index4 = __webpack_require__(8290);

/**
 * The {@link differenceInCalendarDays} function options.
 */

/**
 * @name differenceInCalendarDays
 * @category Day Helpers
 * @summary Get the number of calendar days between the given dates.
 *
 * @description
 * Get the number of calendar days between the given dates. This means that the times are removed
 * from the dates and then the difference in days is calculated.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - The options object
 *
 * @returns The number of calendar days
 *
 * @example
 * // How many calendar days are between
 * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?
 * const result = differenceInCalendarDays(
 *   new Date(2012, 6, 2, 0, 0),
 *   new Date(2011, 6, 2, 23, 0)
 * )
 * //=> 366
 * // How many calendar days are between
 * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?
 * const result = differenceInCalendarDays(
 *   new Date(2011, 6, 3, 0, 1),
 *   new Date(2011, 6, 2, 23, 59)
 * )
 * //=> 1
 */
function differenceInCalendarDays(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index2.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const laterStartOfDay = (0, _index4.startOfDay)(laterDate_);
  const earlierStartOfDay = (0, _index4.startOfDay)(earlierDate_);

  const laterTimestamp =
    +laterStartOfDay -
    (0, _index.getTimezoneOffsetInMilliseconds)(laterStartOfDay);
  const earlierTimestamp =
    +earlierStartOfDay -
    (0, _index.getTimezoneOffsetInMilliseconds)(earlierStartOfDay);

  // Round the number of days to the nearest integer because the number of
  // milliseconds in a day is not constant (e.g. it's different in the week of
  // the daylight saving time clock shift).
  return Math.round(
    (laterTimestamp - earlierTimestamp) / _index3.millisecondsInDay,
  );
}


/***/ }),

/***/ 5513:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.Parser = void 0;
var _Setter = __webpack_require__(7861);

class Parser {
  run(dateString, token, match, options) {
    const result = this.parse(dateString, token, match, options);
    if (!result) {
      return null;
    }

    return {
      setter: new _Setter.ValueSetter(
        result.value,
        this.validate,
        this.set,
        this.priority,
        this.subPriority,
      ),
      rest: result.rest,
    };
  }

  validate(_utcDate, _value, _options) {
    return true;
  }
}
exports.Parser = Parser;


/***/ }),

/***/ 5556:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (false) // removed by dead control flow
{ var throwOnDirectAccess, ReactIs; } else {
  // By explicitly using `prop-types` you are opting into new production behavior.
  // http://fb.me/prop-types-in-prod
  module.exports = __webpack_require__(2694)();
}


/***/ }),

/***/ 5580:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __publicField = (obj, key, value) => {
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
  return value;
};
var ReactPlayer_exports = {};
__export(ReactPlayer_exports, {
  createReactPlayer: () => createReactPlayer
});
module.exports = __toCommonJS(ReactPlayer_exports);
var import_react = __toESM(__webpack_require__(1594));
var import_deepmerge = __toESM(__webpack_require__(4744));
var import_memoize_one = __toESM(__webpack_require__(1811));
var import_react_fast_compare = __toESM(__webpack_require__(115));
var import_props = __webpack_require__(7604);
var import_utils = __webpack_require__(5635);
var import_Player = __toESM(__webpack_require__(8021));
const Preview = (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerPreview */ 353).then(__webpack_require__.t.bind(__webpack_require__, 6734, 23)));
const IS_BROWSER = typeof window !== "undefined" && window.document && typeof document !== "undefined";
const IS_GLOBAL = typeof __webpack_require__.g !== "undefined" && __webpack_require__.g.window && __webpack_require__.g.window.document;
const SUPPORTED_PROPS = Object.keys(import_props.propTypes);
const UniversalSuspense = IS_BROWSER || IS_GLOBAL ? import_react.Suspense : () => null;
const customPlayers = [];
const createReactPlayer = (players, fallback) => {
  var _a;
  return _a = class extends import_react.Component {
    constructor() {
      super(...arguments);
      __publicField(this, "state", {
        showPreview: !!this.props.light
      });
      // Use references, as refs is used by React
      __publicField(this, "references", {
        wrapper: (wrapper) => {
          this.wrapper = wrapper;
        },
        player: (player) => {
          this.player = player;
        }
      });
      __publicField(this, "handleClickPreview", (e) => {
        this.setState({ showPreview: false });
        this.props.onClickPreview(e);
      });
      __publicField(this, "showPreview", () => {
        this.setState({ showPreview: true });
      });
      __publicField(this, "getDuration", () => {
        if (!this.player)
          return null;
        return this.player.getDuration();
      });
      __publicField(this, "getCurrentTime", () => {
        if (!this.player)
          return null;
        return this.player.getCurrentTime();
      });
      __publicField(this, "getSecondsLoaded", () => {
        if (!this.player)
          return null;
        return this.player.getSecondsLoaded();
      });
      __publicField(this, "getInternalPlayer", (key = "player") => {
        if (!this.player)
          return null;
        return this.player.getInternalPlayer(key);
      });
      __publicField(this, "seekTo", (fraction, type, keepPlaying) => {
        if (!this.player)
          return null;
        this.player.seekTo(fraction, type, keepPlaying);
      });
      __publicField(this, "handleReady", () => {
        this.props.onReady(this);
      });
      __publicField(this, "getActivePlayer", (0, import_memoize_one.default)((url) => {
        for (const player of [...customPlayers, ...players]) {
          if (player.canPlay(url)) {
            return player;
          }
        }
        if (fallback) {
          return fallback;
        }
        return null;
      }));
      __publicField(this, "getConfig", (0, import_memoize_one.default)((url, key) => {
        const { config } = this.props;
        return import_deepmerge.default.all([
          import_props.defaultProps.config,
          import_props.defaultProps.config[key] || {},
          config,
          config[key] || {}
        ]);
      }));
      __publicField(this, "getAttributes", (0, import_memoize_one.default)((url) => {
        return (0, import_utils.omit)(this.props, SUPPORTED_PROPS);
      }));
      __publicField(this, "renderActivePlayer", (url) => {
        if (!url)
          return null;
        const player = this.getActivePlayer(url);
        if (!player)
          return null;
        const config = this.getConfig(url, player.key);
        return /* @__PURE__ */ import_react.default.createElement(
          import_Player.default,
          {
            ...this.props,
            key: player.key,
            ref: this.references.player,
            config,
            activePlayer: player.lazyPlayer || player,
            onReady: this.handleReady
          }
        );
      });
    }
    shouldComponentUpdate(nextProps, nextState) {
      return !(0, import_react_fast_compare.default)(this.props, nextProps) || !(0, import_react_fast_compare.default)(this.state, nextState);
    }
    componentDidUpdate(prevProps) {
      const { light } = this.props;
      if (!prevProps.light && light) {
        this.setState({ showPreview: true });
      }
      if (prevProps.light && !light) {
        this.setState({ showPreview: false });
      }
    }
    renderPreview(url) {
      if (!url)
        return null;
      const { light, playIcon, previewTabIndex, oEmbedUrl, previewAriaLabel } = this.props;
      return /* @__PURE__ */ import_react.default.createElement(
        Preview,
        {
          url,
          light,
          playIcon,
          previewTabIndex,
          previewAriaLabel,
          oEmbedUrl,
          onClick: this.handleClickPreview
        }
      );
    }
    render() {
      const { url, style, width, height, fallback: fallback2, wrapper: Wrapper } = this.props;
      const { showPreview } = this.state;
      const attributes = this.getAttributes(url);
      const wrapperRef = typeof Wrapper === "string" ? this.references.wrapper : void 0;
      return /* @__PURE__ */ import_react.default.createElement(Wrapper, { ref: wrapperRef, style: { ...style, width, height }, ...attributes }, /* @__PURE__ */ import_react.default.createElement(UniversalSuspense, { fallback: fallback2 }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));
    }
  }, __publicField(_a, "displayName", "ReactPlayer"), __publicField(_a, "propTypes", import_props.propTypes), __publicField(_a, "defaultProps", import_props.defaultProps), __publicField(_a, "addCustomPlayer", (player) => {
    customPlayers.push(player);
  }), __publicField(_a, "removeCustomPlayers", () => {
    customPlayers.length = 0;
  }), __publicField(_a, "canPlay", (url) => {
    for (const Player2 of [...customPlayers, ...players]) {
      if (Player2.canPlay(url)) {
        return true;
      }
    }
    return false;
  }), __publicField(_a, "canEnablePIP", (url) => {
    for (const Player2 of [...customPlayers, ...players]) {
      if (Player2.canEnablePIP && Player2.canEnablePIP(url)) {
        return true;
      }
    }
    return false;
  }), _a;
};


/***/ }),

/***/ 5586:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.buildLocalizeFn = buildLocalizeFn;

/**
 * The localize function argument callback which allows to convert raw value to
 * the actual type.
 *
 * @param value - The value to convert
 *
 * @returns The converted value
 */

/**
 * The map of localized values for each width.
 */

/**
 * The index type of the locale unit value. It types conversion of units of
 * values that don't start at 0 (i.e. quarters).
 */

/**
 * Converts the unit value to the tuple of values.
 */

/**
 * The tuple of localized era values. The first element represents BC,
 * the second element represents AD.
 */

/**
 * The tuple of localized quarter values. The first element represents Q1.
 */

/**
 * The tuple of localized day values. The first element represents Sunday.
 */

/**
 * The tuple of localized month values. The first element represents January.
 */

function buildLocalizeFn(args) {
  return (value, options) => {
    const context = options?.context ? String(options.context) : "standalone";

    let valuesArray;
    if (context === "formatting" && args.formattingValues) {
      const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
      const width = options?.width ? String(options.width) : defaultWidth;

      valuesArray =
        args.formattingValues[width] || args.formattingValues[defaultWidth];
    } else {
      const defaultWidth = args.defaultWidth;
      const width = options?.width ? String(options.width) : args.defaultWidth;

      valuesArray = args.values[width] || args.values[defaultWidth];
    }
    const index = args.argumentCallback ? args.argumentCallback(value) : value;

    // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
    return valuesArray[index];
  };
}


/***/ }),

/***/ 5606:
/***/ ((module) => {

// shim for using process in browser
var process = module.exports = {};

// cached from whatever global is present so that test runners that stub it
// don't break things.  But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals.  It's inside a
// function because try/catches deoptimize in certain engines.

var cachedSetTimeout;
var cachedClearTimeout;

function defaultSetTimout() {
    throw new Error('setTimeout has not been defined');
}
function defaultClearTimeout () {
    throw new Error('clearTimeout has not been defined');
}
(function () {
    try {
        if (typeof setTimeout === 'function') {
            cachedSetTimeout = setTimeout;
        } else {
            cachedSetTimeout = defaultSetTimout;
        }
    } catch (e) {
        cachedSetTimeout = defaultSetTimout;
    }
    try {
        if (typeof clearTimeout === 'function') {
            cachedClearTimeout = clearTimeout;
        } else {
            cachedClearTimeout = defaultClearTimeout;
        }
    } catch (e) {
        cachedClearTimeout = defaultClearTimeout;
    }
} ())
function runTimeout(fun) {
    if (cachedSetTimeout === setTimeout) {
        //normal enviroments in sane situations
        return setTimeout(fun, 0);
    }
    // if setTimeout wasn't available but was latter defined
    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
        cachedSetTimeout = setTimeout;
        return setTimeout(fun, 0);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedSetTimeout(fun, 0);
    } catch(e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
            return cachedSetTimeout.call(null, fun, 0);
        } catch(e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
            return cachedSetTimeout.call(this, fun, 0);
        }
    }


}
function runClearTimeout(marker) {
    if (cachedClearTimeout === clearTimeout) {
        //normal enviroments in sane situations
        return clearTimeout(marker);
    }
    // if clearTimeout wasn't available but was latter defined
    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
        cachedClearTimeout = clearTimeout;
        return clearTimeout(marker);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedClearTimeout(marker);
    } catch (e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
            return cachedClearTimeout.call(null, marker);
        } catch (e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
            return cachedClearTimeout.call(this, marker);
        }
    }



}
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;

function cleanUpNextTick() {
    if (!draining || !currentQueue) {
        return;
    }
    draining = false;
    if (currentQueue.length) {
        queue = currentQueue.concat(queue);
    } else {
        queueIndex = -1;
    }
    if (queue.length) {
        drainQueue();
    }
}

function drainQueue() {
    if (draining) {
        return;
    }
    var timeout = runTimeout(cleanUpNextTick);
    draining = true;

    var len = queue.length;
    while(len) {
        currentQueue = queue;
        queue = [];
        while (++queueIndex < len) {
            if (currentQueue) {
                currentQueue[queueIndex].run();
            }
        }
        queueIndex = -1;
        len = queue.length;
    }
    currentQueue = null;
    draining = false;
    runClearTimeout(timeout);
}

process.nextTick = function (fun) {
    var args = new Array(arguments.length - 1);
    if (arguments.length > 1) {
        for (var i = 1; i < arguments.length; i++) {
            args[i - 1] = arguments[i];
        }
    }
    queue.push(new Item(fun, args));
    if (queue.length === 1 && !draining) {
        runTimeout(drainQueue);
    }
};

// v8 likes predictible objects
function Item(fun, array) {
    this.fun = fun;
    this.array = array;
}
Item.prototype.run = function () {
    this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};

function noop() {}

process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.prependListener = noop;
process.prependOnceListener = noop;

process.listeners = function (name) { return [] }

process.binding = function (name) {
    throw new Error('process.binding is not supported');
};

process.cwd = function () { return '/' };
process.chdir = function (dir) {
    throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };


/***/ }),

/***/ 5609:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.intervalToDuration = intervalToDuration;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(7626);
var _index3 = __webpack_require__(3724);
var _index4 = __webpack_require__(990);
var _index5 = __webpack_require__(691);
var _index6 = __webpack_require__(5460);
var _index7 = __webpack_require__(192);
var _index8 = __webpack_require__(6605);

/**
 * The {@link intervalToDuration} function options.
 */

/**
 * @name intervalToDuration
 * @category Common Helpers
 * @summary Convert interval to duration
 *
 * @description
 * Convert an interval object to a duration object.
 *
 * @param interval - The interval to convert to duration
 * @param options - The context options
 *
 * @returns The duration object
 *
 * @example
 * // Get the duration between January 15, 1929 and April 4, 1968.
 * intervalToDuration({
 *   start: new Date(1929, 0, 15, 12, 0, 0),
 *   end: new Date(1968, 3, 4, 19, 5, 0)
 * });
 * //=> { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }
 */
function intervalToDuration(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);
  const duration = {};

  const years = (0, _index8.differenceInYears)(end, start);
  if (years) duration.years = years;

  const remainingMonths = (0, _index2.add)(start, { years: duration.years });
  const months = (0, _index6.differenceInMonths)(end, remainingMonths);
  if (months) duration.months = months;

  const remainingDays = (0, _index2.add)(remainingMonths, {
    months: duration.months,
  });
  const days = (0, _index3.differenceInDays)(end, remainingDays);
  if (days) duration.days = days;

  const remainingHours = (0, _index2.add)(remainingDays, {
    days: duration.days,
  });
  const hours = (0, _index4.differenceInHours)(end, remainingHours);
  if (hours) duration.hours = hours;

  const remainingMinutes = (0, _index2.add)(remainingHours, {
    hours: duration.hours,
  });
  const minutes = (0, _index5.differenceInMinutes)(end, remainingMinutes);
  if (minutes) duration.minutes = minutes;

  const remainingSeconds = (0, _index2.add)(remainingMinutes, {
    minutes: duration.minutes,
  });
  const seconds = (0, _index7.differenceInSeconds)(end, remainingSeconds);
  if (seconds) duration.seconds = seconds;

  return duration;
}


/***/ }),

/***/ 5610:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextWednesday = nextWednesday;
var _index = __webpack_require__(64);

/**
 * The {@link nextWednesday} function options.
 */

/**
 * @name nextWednesday
 * @category Weekday Helpers
 * @summary When is the next Wednesday?
 *
 * @description
 * When is the next Wednesday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Wednesday
 *
 * @example
 * // When is the next Wednesday after Mar, 22, 2020?
 * const result = nextWednesday(new Date(2020, 2, 22))
 * //=> Wed Mar 25 2020 00:00:00
 */
function nextWednesday(date, options) {
  return (0, _index.nextDay)(date, 3, options);
}


/***/ }),

/***/ 5620:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1354);
/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6314);
/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `.rdrCalendarWrapper{color:#000;font-size:12px}.rdrDateDisplayWrapper{background-color:#eff2f7}.rdrDateDisplay{margin:.833em}.rdrDateDisplayItem{border-radius:4px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(35,57,66,.21);border:1px solid rgba(0,0,0,0)}.rdrDateDisplayItem input{cursor:pointer;height:2.5em;line-height:2.5em;border:0px;background:rgba(0,0,0,0);width:100%;color:#849095}.rdrDateDisplayItemActive{border-color:currentColor}.rdrDateDisplayItemActive input{color:#7d888d}.rdrMonthAndYearWrapper{align-items:center;height:60px;padding-top:10px}.rdrMonthAndYearPickers{font-weight:600}.rdrMonthAndYearPickers select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;background:rgba(0,0,0,0);padding:10px 30px 10px 10px;border-radius:4px;outline:0;color:#3e484f;background:url("data:image/svg+xml;utf8,<svg width='9px' height='6px' viewBox='0 0 9 6' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g id='Artboard' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' transform='translate(-636.000000, -171.000000)' fill-opacity='0.368716033'><g id='input' transform='translate(172.000000, 37.000000)' fill='%230E242F' fill-rule='nonzero'><g id='Group-9' transform='translate(323.000000, 127.000000)'><path d='M142.280245,7.23952813 C141.987305,6.92353472 141.512432,6.92361662 141.219585,7.23971106 C140.926739,7.5558055 140.926815,8.06821394 141.219755,8.38420735 L145.498801,13 L149.780245,8.38162071 C150.073185,8.0656273 150.073261,7.55321886 149.780415,7.23712442 C149.487568,6.92102998 149.012695,6.92094808 148.719755,7.23694149 L145.498801,10.7113732 L142.280245,7.23952813 Z' id='arrow'></path></g></g></g></svg>") no-repeat;background-position:right 8px center;cursor:pointer;text-align:center}.rdrMonthAndYearPickers select:hover{background-color:rgba(0,0,0,.07)}.rdrMonthPicker,.rdrYearPicker{margin:0 5px}.rdrNextPrevButton{display:block;width:24px;height:24px;margin:0 .833em;padding:0;border:0;border-radius:5px;background:#eff2f7}.rdrNextPrevButton:hover{background:#e1e7f0}.rdrNextPrevButton i{display:block;width:0;height:0;padding:0;text-align:center;border-style:solid;margin:auto;transform:translate(-3px, 0px)}.rdrPprevButton i{border-width:4px 6px 4px 4px;border-color:rgba(0,0,0,0) #34495e rgba(0,0,0,0) rgba(0,0,0,0);transform:translate(-3px, 0px)}.rdrNextButton i{margin:0 0 0 7px;border-width:4px 4px 4px 6px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #34495e;transform:translate(3px, 0px)}.rdrWeekDays{padding:0 .833em}.rdrMonth{padding:0 .833em 1.666em .833em}.rdrMonth .rdrWeekDays{padding:0}.rdrMonths.rdrMonthsVertical .rdrMonth:first-child .rdrMonthName{display:none}.rdrWeekDay{font-weight:400;line-height:2.667em;color:#849095}.rdrDay{background:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none;border:0;padding:0;line-height:3em;height:3em;text-align:center;color:#1d2429}.rdrDay:focus{outline:0}.rdrDayNumber{outline:0;font-weight:300;position:absolute;left:0;right:0;top:0;bottom:0;top:5px;bottom:5px;display:flex;align-items:center;justify-content:center}.rdrDayToday .rdrDayNumber span{font-weight:500}.rdrDayToday .rdrDayNumber span:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%, 0);width:18px;height:2px;border-radius:2px;background:#3d91ff}.rdrDayToday:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span:after{background:#fff}.rdrDay:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span{color:rgba(255,255,255,.85)}.rdrSelected,.rdrInRange,.rdrStartEdge,.rdrEndEdge{background:currentColor;position:absolute;top:5px;left:0;right:0;bottom:5px}.rdrSelected{left:2px;right:2px}.rdrStartEdge{border-top-left-radius:1.042em;border-bottom-left-radius:1.042em;left:2px}.rdrEndEdge{border-top-right-radius:1.042em;border-bottom-right-radius:1.042em;right:2px}.rdrSelected{border-radius:1.042em}.rdrDayStartOfMonth .rdrInRange,.rdrDayStartOfMonth .rdrEndEdge,.rdrDayStartOfWeek .rdrInRange,.rdrDayStartOfWeek .rdrEndEdge{border-top-left-radius:1.042em;border-bottom-left-radius:1.042em;left:2px}.rdrDayEndOfMonth .rdrInRange,.rdrDayEndOfMonth .rdrStartEdge,.rdrDayEndOfWeek .rdrInRange,.rdrDayEndOfWeek .rdrStartEdge{border-top-right-radius:1.042em;border-bottom-right-radius:1.042em;right:2px}.rdrDayStartOfMonth .rdrDayInPreview,.rdrDayStartOfMonth .rdrDayEndPreview,.rdrDayStartOfWeek .rdrDayInPreview,.rdrDayStartOfWeek .rdrDayEndPreview{border-top-left-radius:1.333em;border-bottom-left-radius:1.333em;border-left-width:1px;left:0px}.rdrDayEndOfMonth .rdrDayInPreview,.rdrDayEndOfMonth .rdrDayStartPreview,.rdrDayEndOfWeek .rdrDayInPreview,.rdrDayEndOfWeek .rdrDayStartPreview{border-top-right-radius:1.333em;border-bottom-right-radius:1.333em;border-right-width:1px;right:0px}.rdrDayStartPreview,.rdrDayInPreview,.rdrDayEndPreview{background:rgba(255,255,255,.09);position:absolute;top:3px;left:0px;right:0px;bottom:3px;pointer-events:none;border:0px solid currentColor;z-index:1}.rdrDayStartPreview{border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-top-left-radius:1.333em;border-bottom-left-radius:1.333em;left:0px}.rdrDayInPreview{border-top-width:1px;border-bottom-width:1px}.rdrDayEndPreview{border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-top-right-radius:1.333em;border-bottom-right-radius:1.333em;right:2px;right:0px}.rdrDefinedRangesWrapper{font-size:12px;width:226px;border-right:solid 1px #eff2f7;background:#fff}.rdrDefinedRangesWrapper .rdrStaticRangeSelected{color:currentColor;font-weight:600}.rdrStaticRange{border:0;cursor:pointer;display:block;outline:0;border-bottom:1px solid #eff2f7;padding:0;background:#fff}.rdrStaticRange:hover .rdrStaticRangeLabel,.rdrStaticRange:focus .rdrStaticRangeLabel{background:#eff2f7}.rdrStaticRangeLabel{display:block;outline:0;line-height:18px;padding:10px 20px;text-align:left}.rdrInputRanges{padding:10px 0}.rdrInputRange{align-items:center;padding:5px 20px}.rdrInputRangeInput{width:30px;height:30px;line-height:30px;border-radius:4px;text-align:center;border:solid 1px #dee7eb;margin-right:10px;color:#6c767a}.rdrInputRangeInput:focus,.rdrInputRangeInput:hover{border-color:#b4bfc4;outline:0;color:#333}.rdrCalendarWrapper:not(.rdrDateRangeWrapper) .rdrDayHovered .rdrDayNumber:after{content:"";border:1px solid currentColor;border-radius:1.333em;position:absolute;top:-2px;bottom:-2px;left:0px;right:0px;background:rgba(0,0,0,0)}.rdrDayPassive{pointer-events:none}.rdrDayPassive .rdrDayNumber span{color:#d5dce0}.rdrDayPassive .rdrInRange,.rdrDayPassive .rdrStartEdge,.rdrDayPassive .rdrEndEdge,.rdrDayPassive .rdrSelected,.rdrDayPassive .rdrDayStartPreview,.rdrDayPassive .rdrDayInPreview,.rdrDayPassive .rdrDayEndPreview{display:none}.rdrDayDisabled{background-color:#f8f8f8}.rdrDayDisabled .rdrDayNumber span{color:#aeb9bf}.rdrDayDisabled .rdrInRange,.rdrDayDisabled .rdrStartEdge,.rdrDayDisabled .rdrEndEdge,.rdrDayDisabled .rdrSelected,.rdrDayDisabled .rdrDayStartPreview,.rdrDayDisabled .rdrDayInPreview,.rdrDayDisabled .rdrDayEndPreview{filter:grayscale(100%) opacity(60%)}.rdrMonthName{text-align:left;font-weight:600;color:#849095;padding:.833em}`, "",{"version":3,"sources":["webpack://./node_modules/react-date-range/dist/theme/default.css"],"names":[],"mappings":"AAAA,oBAAoB,UAAU,CAAC,cAAc,CAAC,uBAAuB,wBAAwB,CAAC,gBAAgB,aAAa,CAAC,oBAAoB,iBAAiB,CAAC,qBAAqB,CAAC,yCAAyC,CAAC,8BAA8B,CAAC,0BAA0B,cAAc,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,yBAAyB,CAAC,gCAAgC,aAAa,CAAC,wBAAwB,kBAAkB,CAAC,WAAW,CAAC,gBAAgB,CAAC,wBAAwB,eAAe,CAAC,+BAA+B,oBAAoB,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,85BAA85B,CAAC,oCAAoC,CAAC,cAAc,CAAC,iBAAiB,CAAC,qCAAqC,gCAAgC,CAAC,+BAA+B,YAAY,CAAC,mBAAmB,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,yBAAyB,kBAAkB,CAAC,qBAAqB,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,WAAW,CAAC,8BAA8B,CAAC,kBAAkB,4BAA4B,CAAC,8DAA8D,CAAC,8BAA8B,CAAC,iBAAiB,gBAAgB,CAAC,4BAA4B,CAAC,8DAA8D,CAAC,6BAA6B,CAAC,aAAa,gBAAgB,CAAC,UAAU,+BAA+B,CAAC,uBAAuB,SAAS,CAAC,iEAAiE,YAAY,CAAC,YAAY,eAAe,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,wBAAwB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,cAAc,SAAS,CAAC,cAAc,SAAS,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,gCAAgC,eAAe,CAAC,sCAAsC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,4BAA4B,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,2RAA2R,eAAe,CAAC,+OAA+O,2BAA2B,CAAC,mDAAmD,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,QAAQ,CAAC,SAAS,CAAC,cAAc,8BAA8B,CAAC,iCAAiC,CAAC,QAAQ,CAAC,YAAY,+BAA+B,CAAC,kCAAkC,CAAC,SAAS,CAAC,aAAa,qBAAqB,CAAC,8HAA8H,8BAA8B,CAAC,iCAAiC,CAAC,QAAQ,CAAC,0HAA0H,+BAA+B,CAAC,kCAAkC,CAAC,SAAS,CAAC,oJAAoJ,8BAA8B,CAAC,iCAAiC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,gJAAgJ,+BAA+B,CAAC,kCAAkC,CAAC,sBAAsB,CAAC,SAAS,CAAC,uDAAuD,gCAAgC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,SAAS,CAAC,oBAAoB,oBAAoB,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,8BAA8B,CAAC,iCAAiC,CAAC,QAAQ,CAAC,iBAAiB,oBAAoB,CAAC,uBAAuB,CAAC,kBAAkB,oBAAoB,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,+BAA+B,CAAC,kCAAkC,CAAC,SAAS,CAAC,SAAS,CAAC,yBAAyB,cAAc,CAAC,WAAW,CAAC,8BAA8B,CAAC,eAAe,CAAC,iDAAiD,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,+BAA+B,CAAC,SAAS,CAAC,eAAe,CAAC,sFAAsF,kBAAkB,CAAC,qBAAqB,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,cAAc,CAAC,eAAe,kBAAkB,CAAC,gBAAgB,CAAC,oBAAoB,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,aAAa,CAAC,oDAAoD,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,iFAAiF,UAAU,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,wBAAwB,CAAC,eAAe,mBAAmB,CAAC,kCAAkC,aAAa,CAAC,mNAAmN,YAAY,CAAC,gBAAgB,wBAAwB,CAAC,mCAAmC,aAAa,CAAC,0NAA0N,mCAAmC,CAAC,cAAc,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,cAAc","sourcesContent":[".rdrCalendarWrapper{color:#000;font-size:12px}.rdrDateDisplayWrapper{background-color:#eff2f7}.rdrDateDisplay{margin:.833em}.rdrDateDisplayItem{border-radius:4px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(35,57,66,.21);border:1px solid rgba(0,0,0,0)}.rdrDateDisplayItem input{cursor:pointer;height:2.5em;line-height:2.5em;border:0px;background:rgba(0,0,0,0);width:100%;color:#849095}.rdrDateDisplayItemActive{border-color:currentColor}.rdrDateDisplayItemActive input{color:#7d888d}.rdrMonthAndYearWrapper{align-items:center;height:60px;padding-top:10px}.rdrMonthAndYearPickers{font-weight:600}.rdrMonthAndYearPickers select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;background:rgba(0,0,0,0);padding:10px 30px 10px 10px;border-radius:4px;outline:0;color:#3e484f;background:url(\"data:image/svg+xml;utf8,<svg width='9px' height='6px' viewBox='0 0 9 6' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g id='Artboard' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' transform='translate(-636.000000, -171.000000)' fill-opacity='0.368716033'><g id='input' transform='translate(172.000000, 37.000000)' fill='%230E242F' fill-rule='nonzero'><g id='Group-9' transform='translate(323.000000, 127.000000)'><path d='M142.280245,7.23952813 C141.987305,6.92353472 141.512432,6.92361662 141.219585,7.23971106 C140.926739,7.5558055 140.926815,8.06821394 141.219755,8.38420735 L145.498801,13 L149.780245,8.38162071 C150.073185,8.0656273 150.073261,7.55321886 149.780415,7.23712442 C149.487568,6.92102998 149.012695,6.92094808 148.719755,7.23694149 L145.498801,10.7113732 L142.280245,7.23952813 Z' id='arrow'></path></g></g></g></svg>\") no-repeat;background-position:right 8px center;cursor:pointer;text-align:center}.rdrMonthAndYearPickers select:hover{background-color:rgba(0,0,0,.07)}.rdrMonthPicker,.rdrYearPicker{margin:0 5px}.rdrNextPrevButton{display:block;width:24px;height:24px;margin:0 .833em;padding:0;border:0;border-radius:5px;background:#eff2f7}.rdrNextPrevButton:hover{background:#e1e7f0}.rdrNextPrevButton i{display:block;width:0;height:0;padding:0;text-align:center;border-style:solid;margin:auto;transform:translate(-3px, 0px)}.rdrPprevButton i{border-width:4px 6px 4px 4px;border-color:rgba(0,0,0,0) #34495e rgba(0,0,0,0) rgba(0,0,0,0);transform:translate(-3px, 0px)}.rdrNextButton i{margin:0 0 0 7px;border-width:4px 4px 4px 6px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #34495e;transform:translate(3px, 0px)}.rdrWeekDays{padding:0 .833em}.rdrMonth{padding:0 .833em 1.666em .833em}.rdrMonth .rdrWeekDays{padding:0}.rdrMonths.rdrMonthsVertical .rdrMonth:first-child .rdrMonthName{display:none}.rdrWeekDay{font-weight:400;line-height:2.667em;color:#849095}.rdrDay{background:rgba(0,0,0,0);-webkit-user-select:none;-moz-user-select:none;user-select:none;border:0;padding:0;line-height:3em;height:3em;text-align:center;color:#1d2429}.rdrDay:focus{outline:0}.rdrDayNumber{outline:0;font-weight:300;position:absolute;left:0;right:0;top:0;bottom:0;top:5px;bottom:5px;display:flex;align-items:center;justify-content:center}.rdrDayToday .rdrDayNumber span{font-weight:500}.rdrDayToday .rdrDayNumber span:after{content:\"\";position:absolute;bottom:4px;left:50%;transform:translate(-50%, 0);width:18px;height:2px;border-radius:2px;background:#3d91ff}.rdrDayToday:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span:after{background:#fff}.rdrDay:not(.rdrDayPassive) .rdrInRange~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrStartEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrEndEdge~.rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrSelected~.rdrDayNumber span{color:rgba(255,255,255,.85)}.rdrSelected,.rdrInRange,.rdrStartEdge,.rdrEndEdge{background:currentColor;position:absolute;top:5px;left:0;right:0;bottom:5px}.rdrSelected{left:2px;right:2px}.rdrStartEdge{border-top-left-radius:1.042em;border-bottom-left-radius:1.042em;left:2px}.rdrEndEdge{border-top-right-radius:1.042em;border-bottom-right-radius:1.042em;right:2px}.rdrSelected{border-radius:1.042em}.rdrDayStartOfMonth .rdrInRange,.rdrDayStartOfMonth .rdrEndEdge,.rdrDayStartOfWeek .rdrInRange,.rdrDayStartOfWeek .rdrEndEdge{border-top-left-radius:1.042em;border-bottom-left-radius:1.042em;left:2px}.rdrDayEndOfMonth .rdrInRange,.rdrDayEndOfMonth .rdrStartEdge,.rdrDayEndOfWeek .rdrInRange,.rdrDayEndOfWeek .rdrStartEdge{border-top-right-radius:1.042em;border-bottom-right-radius:1.042em;right:2px}.rdrDayStartOfMonth .rdrDayInPreview,.rdrDayStartOfMonth .rdrDayEndPreview,.rdrDayStartOfWeek .rdrDayInPreview,.rdrDayStartOfWeek .rdrDayEndPreview{border-top-left-radius:1.333em;border-bottom-left-radius:1.333em;border-left-width:1px;left:0px}.rdrDayEndOfMonth .rdrDayInPreview,.rdrDayEndOfMonth .rdrDayStartPreview,.rdrDayEndOfWeek .rdrDayInPreview,.rdrDayEndOfWeek .rdrDayStartPreview{border-top-right-radius:1.333em;border-bottom-right-radius:1.333em;border-right-width:1px;right:0px}.rdrDayStartPreview,.rdrDayInPreview,.rdrDayEndPreview{background:rgba(255,255,255,.09);position:absolute;top:3px;left:0px;right:0px;bottom:3px;pointer-events:none;border:0px solid currentColor;z-index:1}.rdrDayStartPreview{border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-top-left-radius:1.333em;border-bottom-left-radius:1.333em;left:0px}.rdrDayInPreview{border-top-width:1px;border-bottom-width:1px}.rdrDayEndPreview{border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-top-right-radius:1.333em;border-bottom-right-radius:1.333em;right:2px;right:0px}.rdrDefinedRangesWrapper{font-size:12px;width:226px;border-right:solid 1px #eff2f7;background:#fff}.rdrDefinedRangesWrapper .rdrStaticRangeSelected{color:currentColor;font-weight:600}.rdrStaticRange{border:0;cursor:pointer;display:block;outline:0;border-bottom:1px solid #eff2f7;padding:0;background:#fff}.rdrStaticRange:hover .rdrStaticRangeLabel,.rdrStaticRange:focus .rdrStaticRangeLabel{background:#eff2f7}.rdrStaticRangeLabel{display:block;outline:0;line-height:18px;padding:10px 20px;text-align:left}.rdrInputRanges{padding:10px 0}.rdrInputRange{align-items:center;padding:5px 20px}.rdrInputRangeInput{width:30px;height:30px;line-height:30px;border-radius:4px;text-align:center;border:solid 1px #dee7eb;margin-right:10px;color:#6c767a}.rdrInputRangeInput:focus,.rdrInputRangeInput:hover{border-color:#b4bfc4;outline:0;color:#333}.rdrCalendarWrapper:not(.rdrDateRangeWrapper) .rdrDayHovered .rdrDayNumber:after{content:\"\";border:1px solid currentColor;border-radius:1.333em;position:absolute;top:-2px;bottom:-2px;left:0px;right:0px;background:rgba(0,0,0,0)}.rdrDayPassive{pointer-events:none}.rdrDayPassive .rdrDayNumber span{color:#d5dce0}.rdrDayPassive .rdrInRange,.rdrDayPassive .rdrStartEdge,.rdrDayPassive .rdrEndEdge,.rdrDayPassive .rdrSelected,.rdrDayPassive .rdrDayStartPreview,.rdrDayPassive .rdrDayInPreview,.rdrDayPassive .rdrDayEndPreview{display:none}.rdrDayDisabled{background-color:#f8f8f8}.rdrDayDisabled .rdrDayNumber span{color:#aeb9bf}.rdrDayDisabled .rdrInRange,.rdrDayDisabled .rdrStartEdge,.rdrDayDisabled .rdrEndEdge,.rdrDayDisabled .rdrSelected,.rdrDayDisabled .rdrDayStartPreview,.rdrDayDisabled .rdrDayInPreview,.rdrDayDisabled .rdrDayEndPreview{filter:grayscale(100%) opacity(60%)}.rdrMonthName{text-align:left;font-weight:600;color:#849095;padding:.833em}"],"sourceRoot":""}]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 5624:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.buildFormatLongFn = buildFormatLongFn;

function buildFormatLongFn(args) {
  return (options = {}) => {
    // TODO: Remove String()
    const width = options.width ? String(options.width) : args.defaultWidth;
    const format = args.formats[width] || args.formats[args.defaultWidth];
    return format;
  };
}


/***/ }),

/***/ 5626:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameISOWeek = isSameISOWeek;
var _index = __webpack_require__(5897);

/**
 * The {@link isSameISOWeek} function options.
 */

/**
 * @name isSameISOWeek
 * @category ISO Week Helpers
 * @summary Are the given dates in the same ISO week (and year)?
 *
 * @description
 * Are the given dates in the same ISO week (and year)?
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same ISO week (and year)
 *
 * @example
 * // Are 1 September 2014 and 7 September 2014 in the same ISO week?
 * const result = isSameISOWeek(new Date(2014, 8, 1), new Date(2014, 8, 7))
 * //=> true
 *
 * @example
 * // Are 1 September 2014 and 1 September 2015 in the same ISO week?
 * const result = isSameISOWeek(new Date(2014, 8, 1), new Date(2015, 8, 1))
 * //=> false
 */
function isSameISOWeek(laterDate, earlierDate, options) {
  return (0, _index.isSameWeek)(laterDate, earlierDate, {
    ...options,
    weekStartsOn: 1,
  });
}


/***/ }),

/***/ 5635:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var utils_exports = {};
__export(utils_exports, {
  callPlayer: () => callPlayer,
  getConfig: () => getConfig,
  getSDK: () => getSDK,
  isBlobUrl: () => isBlobUrl,
  isMediaStream: () => isMediaStream,
  lazy: () => lazy,
  omit: () => omit,
  parseEndTime: () => parseEndTime,
  parseStartTime: () => parseStartTime,
  queryString: () => queryString,
  randomString: () => randomString,
  supportsWebKitPresentationMode: () => supportsWebKitPresentationMode
});
module.exports = __toCommonJS(utils_exports);
var import_react = __toESM(__webpack_require__(1594));
var import_load_script = __toESM(__webpack_require__(6147));
var import_deepmerge = __toESM(__webpack_require__(4744));
const lazy = (componentImportFn) => import_react.default.lazy(async () => {
  const obj = await componentImportFn();
  return typeof obj.default === "function" ? obj : obj.default;
});
const MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;
const MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;
const MATCH_START_STAMP = /(\d+)(h|m|s)/g;
const MATCH_NUMERIC = /^\d+$/;
function parseTimeParam(url, pattern) {
  if (url instanceof Array) {
    return void 0;
  }
  const match = url.match(pattern);
  if (match) {
    const stamp = match[1];
    if (stamp.match(MATCH_START_STAMP)) {
      return parseTimeString(stamp);
    }
    if (MATCH_NUMERIC.test(stamp)) {
      return parseInt(stamp);
    }
  }
  return void 0;
}
function parseTimeString(stamp) {
  let seconds = 0;
  let array = MATCH_START_STAMP.exec(stamp);
  while (array !== null) {
    const [, count, period] = array;
    if (period === "h")
      seconds += parseInt(count, 10) * 60 * 60;
    if (period === "m")
      seconds += parseInt(count, 10) * 60;
    if (period === "s")
      seconds += parseInt(count, 10);
    array = MATCH_START_STAMP.exec(stamp);
  }
  return seconds;
}
function parseStartTime(url) {
  return parseTimeParam(url, MATCH_START_QUERY);
}
function parseEndTime(url) {
  return parseTimeParam(url, MATCH_END_QUERY);
}
function randomString() {
  return Math.random().toString(36).substr(2, 5);
}
function queryString(object) {
  return Object.keys(object).map((key) => `${key}=${object[key]}`).join("&");
}
function getGlobal(key) {
  if (window[key]) {
    return window[key];
  }
  if (window.exports && window.exports[key]) {
    return window.exports[key];
  }
  if (window.module && window.module.exports && window.module.exports[key]) {
    return window.module.exports[key];
  }
  return null;
}
const requests = {};
const getSDK = enableStubOn(function getSDK2(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = import_load_script.default) {
  const existingGlobal = getGlobal(sdkGlobal);
  if (existingGlobal && isLoaded(existingGlobal)) {
    return Promise.resolve(existingGlobal);
  }
  return new Promise((resolve, reject) => {
    if (requests[url]) {
      requests[url].push({ resolve, reject });
      return;
    }
    requests[url] = [{ resolve, reject }];
    const onLoaded = (sdk) => {
      requests[url].forEach((request) => request.resolve(sdk));
    };
    if (sdkReady) {
      const previousOnReady = window[sdkReady];
      window[sdkReady] = function() {
        if (previousOnReady)
          previousOnReady();
        onLoaded(getGlobal(sdkGlobal));
      };
    }
    fetchScript(url, (err) => {
      if (err) {
        requests[url].forEach((request) => request.reject(err));
        requests[url] = null;
      } else if (!sdkReady) {
        onLoaded(getGlobal(sdkGlobal));
      }
    });
  });
});
function getConfig(props, defaultProps) {
  return (0, import_deepmerge.default)(defaultProps.config, props.config);
}
function omit(object, ...arrays) {
  const omitKeys = [].concat(...arrays);
  const output = {};
  const keys = Object.keys(object);
  for (const key of keys) {
    if (omitKeys.indexOf(key) === -1) {
      output[key] = object[key];
    }
  }
  return output;
}
function callPlayer(method, ...args) {
  if (!this.player || !this.player[method]) {
    let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c \u2013 `;
    if (!this.player) {
      message += "The player was not available";
    } else if (!this.player[method]) {
      message += "The method was not available";
    }
    console.warn(message, "font-weight: bold", "");
    return null;
  }
  return this.player[method](...args);
}
function isMediaStream(url) {
  return typeof window !== "undefined" && typeof window.MediaStream !== "undefined" && url instanceof window.MediaStream;
}
function isBlobUrl(url) {
  return /^blob:/.test(url);
}
function supportsWebKitPresentationMode(video = document.createElement("video")) {
  const notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;
  return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === "function" && notMobile;
}
function enableStubOn(fn) {
  if (false) // removed by dead control flow
{}
  return fn;
}


/***/ }),

/***/ 5676:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.hoursToMinutes = hoursToMinutes;
var _index = __webpack_require__(8052);

/**
 * @name hoursToMinutes
 * @category Conversion Helpers
 * @summary Convert hours to minutes.
 *
 * @description
 * Convert a number of hours to a full number of minutes.
 *
 * @param hours - number of hours to be converted
 *
 * @returns The number of hours converted in minutes
 *
 * @example
 * // Convert 2 hours to minutes:
 * const result = hoursToMinutes(2)
 * //=> 120
 */
function hoursToMinutes(hours) {
  return Math.trunc(hours * _index.minutesInHour);
}


/***/ }),

/***/ 5677:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isAfter = isAfter;
var _index = __webpack_require__(4446);

/**
 * @name isAfter
 * @category Common Helpers
 * @summary Is the first date after the second one?
 *
 * @description
 * Is the first date after the second one?
 *
 * @param date - The date that should be after the other one to return true
 * @param dateToCompare - The date to compare with
 *
 * @returns The first date is after the second date
 *
 * @example
 * // Is 10 July 1989 after 11 February 1987?
 * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))
 * //=> true
 */
function isAfter(date, dateToCompare) {
  return +(0, _index.toDate)(date) > +(0, _index.toDate)(dateToCompare);
}


/***/ }),

/***/ 5800:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isToday = isToday;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(9691);

/**
 * The {@link isToday} function options.
 */

/**
 * @name isToday
 * @category Day Helpers
 * @summary Is the given date today?
 * @pure false
 *
 * @description
 * Is the given date today?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is today
 *
 * @example
 * // If today is 6 October 2014, is 6 October 14:00:00 today?
 * const result = isToday(new Date(2014, 9, 6, 14, 0))
 * //=> true
 */
function isToday(date, options) {
  return (0, _index3.isSameDay)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index2.constructNow)(options?.in || date),
  );
}


/***/ }),

/***/ 5807:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.yearsToMonths = yearsToMonths;
var _index = __webpack_require__(8052);

/**
 * @name yearsToMonths
 * @category Conversion Helpers
 * @summary Convert years to months.
 *
 * @description
 * Convert a number of years to a full number of months.
 *
 * @param years - The number of years to be converted
 *
 * @returns The number of years converted in months
 *
 * @example
 * // Convert 2 years into months
 * const result = yearsToMonths(2)
 * //=> 24
 */
function yearsToMonths(years) {
  return Math.trunc(years * _index.monthsInYear);
}


/***/ }),

/***/ 5824:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachMonthOfInterval = eachMonthOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(2956);

/**
 * The {@link eachMonthOfInterval} function options.
 */

/**
 * The {@link eachMonthOfInterval} function result type. It resolves the proper data type.
 */

/**
 * @name eachMonthOfInterval
 * @category Interval Helpers
 * @summary Return the array of months within the specified time interval.
 *
 * @description
 * Return the array of months within the specified time interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The interval.
 * @param options - An object with options.
 *
 * @returns The array with starts of months from the month of the interval start to the month of the interval end
 *
 * @example
 * // Each month between 6 February 2014 and 10 August 2014:
 * const result = eachMonthOfInterval({
 *   start: new Date(2014, 1, 6),
 *   end: new Date(2014, 7, 10)
 * })
 * //=> [
 * //   Sat Feb 01 2014 00:00:00,
 * //   Sat Mar 01 2014 00:00:00,
 * //   Tue Apr 01 2014 00:00:00,
 * //   Thu May 01 2014 00:00:00,
 * //   Sun Jun 01 2014 00:00:00,
 * //   Tue Jul 01 2014 00:00:00,
 * //   Fri Aug 01 2014 00:00:00
 * // ]
 */
function eachMonthOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);

  let reversed = +start > +end;
  const endTime = reversed ? +start : +end;
  const date = reversed ? end : start;
  date.setHours(0, 0, 0, 0);
  date.setDate(1);

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+date <= endTime) {
    dates.push((0, _index2.constructFrom)(start, date));
    date.setMonth(date.getMonth() + step);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 5827:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.yearsToDays = yearsToDays;
var _index = __webpack_require__(8052);

/**
 * @name yearsToDays
 * @category Conversion Helpers
 * @summary Convert years to days.
 *
 * @description
 * Convert a number of years to a full number of days.
 *
 * @param years - The number of years to be converted
 *
 * @returns The number of years converted in days
 *
 * @example
 * // Convert 2 years into days
 * const result = yearsToDays(2)
 * //=> 730
 */
function yearsToDays(years) {
  return Math.trunc(years * _index.daysInYear);
}


/***/ }),

/***/ 5881:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfHour = endOfHour;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfHour} function options.
 */

/**
 * @name endOfHour
 * @category Hour Helpers
 * @summary Return the end of an hour for the given date.
 *
 * @description
 * Return the end of an hour for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of an hour
 *
 * @example
 * // The end of an hour for 2 September 2014 11:55:00:
 * const result = endOfHour(new Date(2014, 8, 2, 11, 55))
 * //=> Tue Sep 02 2014 11:59:59.999
 */
function endOfHour(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setMinutes(59, 59, 999);
  return _date;
}


/***/ }),

/***/ 5897:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameWeek = isSameWeek;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(5472);

/**
 * The {@link isSameWeek} function options.
 */

/**
 * @name isSameWeek
 * @category Week Helpers
 * @summary Are the given dates in the same week (and month and year)?
 *
 * @description
 * Are the given dates in the same week (and month and year)?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same week (and month and year)
 *
 * @example
 * // Are 31 August 2014 and 4 September 2014 in the same week?
 * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))
 * //=> true
 *
 * @example
 * // If week starts with Monday,
 * // are 31 August 2014 and 4 September 2014 in the same week?
 * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {
 *   weekStartsOn: 1
 * })
 * //=> false
 *
 * @example
 * // Are 1 January 2014 and 1 January 2015 in the same week?
 * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))
 * //=> false
 */
function isSameWeek(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return (
    +(0, _index2.startOfWeek)(laterDate_, options) ===
    +(0, _index2.startOfWeek)(earlierDate_, options)
  );
}


/***/ }),

/***/ 5909:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.normalizeInterval = normalizeInterval;
var _index = __webpack_require__(8256);

function normalizeInterval(context, interval) {
  const [start, end] = (0, _index.normalizeDates)(
    context,
    interval.start,
    interval.end,
  );
  return { start, end };
}


/***/ }),

/***/ 5942:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.TimestampMillisecondsParser = void 0;
var _index = __webpack_require__(2956);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class TimestampMillisecondsParser extends _Parser.Parser {
  priority = 20;

  parse(dateString) {
    return (0, _utils.parseAnyDigitsSigned)(dateString);
  }

  set(date, _flags, value) {
    return [(0, _index.constructFrom)(date, value), { timestampIsSet: true }];
  }

  incompatibleTokens = "*";
}
exports.TimestampMillisecondsParser = TimestampMillisecondsParser;


/***/ }),

/***/ 5982:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ISOTimezoneParser = void 0;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(6339);
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// Timezone (ISO-8601)
class ISOTimezoneParser extends _Parser.Parser {
  priority = 10;

  parse(dateString, token) {
    switch (token) {
      case "x":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.basicOptionalMinutes,
          dateString,
        );
      case "xx":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.basic,
          dateString,
        );
      case "xxxx":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.basicOptionalSeconds,
          dateString,
        );
      case "xxxxx":
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.extendedOptionalSeconds,
          dateString,
        );
      case "xxx":
      default:
        return (0, _utils.parseTimezonePattern)(
          _constants.timezonePatterns.extended,
          dateString,
        );
    }
  }

  set(date, flags, value) {
    if (flags.timestampIsSet) return date;
    return (0, _index.constructFrom)(
      date,
      date.getTime() -
        (0, _index2.getTimezoneOffsetInMilliseconds)(date) -
        value,
    );
  }

  incompatibleTokens = ["t", "T", "X"];
}
exports.ISOTimezoneParser = ISOTimezoneParser;


/***/ }),

/***/ 6024:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarQuarters = differenceInCalendarQuarters;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(8397);

/**
 * The {@link differenceInCalendarQuarters} function options.
 */

/**
 * @name differenceInCalendarQuarters
 * @category Quarter Helpers
 * @summary Get the number of calendar quarters between the given dates.
 *
 * @description
 * Get the number of calendar quarters between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of calendar quarters
 *
 * @example
 * // How many calendar quarters are between 31 December 2013 and 2 July 2014?
 * const result = differenceInCalendarQuarters(
 *   new Date(2014, 6, 2),
 *   new Date(2013, 11, 31)
 * )
 * //=> 3
 */
function differenceInCalendarQuarters(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();
  const quartersDiff =
    (0, _index2.getQuarter)(laterDate_) - (0, _index2.getQuarter)(earlierDate_);

  return yearsDiff * 4 + quartersDiff;
}


/***/ }),

/***/ 6032:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getDefaultOptions = getDefaultOptions;

var _index = __webpack_require__(6755);

/**
 * @name getDefaultOptions
 * @category Common Helpers
 * @summary Get default options.
 * @pure false
 *
 * @description
 * Returns an object that contains defaults for
 * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`
 * arguments for all functions.
 *
 * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).
 *
 * @returns The default options
 *
 * @example
 * const result = getDefaultOptions()
 * //=> {}
 *
 * @example
 * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })
 * const result = getDefaultOptions()
 * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }
 */
function getDefaultOptions() {
  return Object.assign({}, (0, _index.getDefaultOptions)());
}


/***/ }),

/***/ 6107:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfISOWeek = startOfISOWeek;
var _index = __webpack_require__(5472);

/**
 * The {@link startOfISOWeek} function options.
 */

/**
 * @name startOfISOWeek
 * @category ISO Week Helpers
 * @summary Return the start of an ISO week for the given date.
 *
 * @description
 * Return the start of an ISO week for the given date.
 * The result will be in the local timezone.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of an ISO week
 *
 * @example
 * // The start of an ISO week for 2 September 2014 11:55:00:
 * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Mon Sep 01 2014 00:00:00
 */
function startOfISOWeek(date, options) {
  return (0, _index.startOfWeek)(date, { ...options, weekStartsOn: 1 });
}


/***/ }),

/***/ 6147:
/***/ ((module) => {


module.exports = function load (src, opts, cb) {
  var head = document.head || document.getElementsByTagName('head')[0]
  var script = document.createElement('script')

  if (typeof opts === 'function') {
    cb = opts
    opts = {}
  }

  opts = opts || {}
  cb = cb || function() {}

  script.type = opts.type || 'text/javascript'
  script.charset = opts.charset || 'utf8';
  script.async = 'async' in opts ? !!opts.async : true
  script.src = src

  if (opts.attrs) {
    setAttributes(script, opts.attrs)
  }

  if (opts.text) {
    script.text = '' + opts.text
  }

  var onend = 'onload' in script ? stdOnEnd : ieOnEnd
  onend(script, cb)

  // some good legacy browsers (firefox) fail the 'in' detection above
  // so as a fallback we always set onload
  // old IE will ignore this and new IE will set onload
  if (!script.onload) {
    stdOnEnd(script, cb);
  }

  head.appendChild(script)
}

function setAttributes(script, attrs) {
  for (var attr in attrs) {
    script.setAttribute(attr, attrs[attr]);
  }
}

function stdOnEnd (script, cb) {
  script.onload = function () {
    this.onerror = this.onload = null
    cb(null, script)
  }
  script.onerror = function () {
    // this.onload = null here is necessary
    // because even IE9 works not like others
    this.onerror = this.onload = null
    cb(new Error('Failed to load ' + this.src), script)
  }
}

function ieOnEnd (script, cb) {
  script.onreadystatechange = function () {
    if (this.readyState != 'complete' && this.readyState != 'loaded') return
    this.onreadystatechange = null
    cb(null, script) // there is no way to catch loading errors in IE8
  }
}


/***/ }),

/***/ 6159:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getWeeksInMonth = getWeeksInMonth;
var _index = __webpack_require__(4746);
var _index2 = __webpack_require__(9404);
var _index3 = __webpack_require__(7710);
var _index4 = __webpack_require__(4446);

/**
 * The {@link getWeeksInMonth} function options.
 */

/**
 * @name getWeeksInMonth
 * @category Week Helpers
 * @summary Get the number of calendar weeks a month spans.
 *
 * @description
 * Get the number of calendar weeks the month in the given date spans.
 *
 * @param date - The given date
 * @param options - An object with options.
 *
 * @returns The number of calendar weeks
 *
 * @example
 * // How many calendar weeks does February 2015 span?
 * const result = getWeeksInMonth(new Date(2015, 1, 8))
 * //=> 4
 *
 * @example
 * // If the week starts on Monday,
 * // how many calendar weeks does July 2017 span?
 * const result = getWeeksInMonth(new Date(2017, 6, 5), { weekStartsOn: 1 })
 * //=> 6
 */
function getWeeksInMonth(date, options) {
  const contextDate = (0, _index4.toDate)(date, options?.in);
  return (
    (0, _index.differenceInCalendarWeeks)(
      (0, _index2.lastDayOfMonth)(contextDate, options),
      (0, _index3.startOfMonth)(contextDate, options),
      options,
    ) + 1
  );
}


/***/ }),

/***/ 6179:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatISO = formatISO;
var _index = __webpack_require__(2554);
var _index2 = __webpack_require__(4446);

/**
 * The {@link formatISO} function options.
 */

/**
 * @name formatISO
 * @category Common Helpers
 * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).
 *
 * @description
 * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.
 *
 * @param date - The original date
 * @param options - An object with options.
 *
 * @returns The formatted date string (in local time zone)
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):
 * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))
 * //=> '2019-09-18T19:00:52Z'
 *
 * @example
 * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):
 * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })
 * //=> '20190918T190052'
 *
 * @example
 * // Represent 18 September 2019 in ISO 8601 format, date only:
 * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })
 * //=> '2019-09-18'
 *
 * @example
 * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):
 * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })
 * //=> '19:00:52Z'
 */
function formatISO(date, options) {
  const date_ = (0, _index2.toDate)(date, options?.in);

  if (isNaN(+date_)) {
    throw new RangeError("Invalid time value");
  }

  const format = options?.format ?? "extended";
  const representation = options?.representation ?? "complete";

  let result = "";
  let tzOffset = "";

  const dateDelimiter = format === "extended" ? "-" : "";
  const timeDelimiter = format === "extended" ? ":" : "";

  // Representation is either 'date' or 'complete'
  if (representation !== "time") {
    const day = (0, _index.addLeadingZeros)(date_.getDate(), 2);
    const month = (0, _index.addLeadingZeros)(date_.getMonth() + 1, 2);
    const year = (0, _index.addLeadingZeros)(date_.getFullYear(), 4);

    // yyyyMMdd or yyyy-MM-dd.
    result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;
  }

  // Representation is either 'time' or 'complete'
  if (representation !== "date") {
    // Add the timezone.
    const offset = date_.getTimezoneOffset();

    if (offset !== 0) {
      const absoluteOffset = Math.abs(offset);
      const hourOffset = (0, _index.addLeadingZeros)(
        Math.trunc(absoluteOffset / 60),
        2,
      );
      const minuteOffset = (0, _index.addLeadingZeros)(absoluteOffset % 60, 2);
      // If less than 0, the sign is +, because it is ahead of time.
      const sign = offset < 0 ? "+" : "-";

      tzOffset = `${sign}${hourOffset}:${minuteOffset}`;
    } else {
      tzOffset = "Z";
    }

    const hour = (0, _index.addLeadingZeros)(date_.getHours(), 2);
    const minute = (0, _index.addLeadingZeros)(date_.getMinutes(), 2);
    const second = (0, _index.addLeadingZeros)(date_.getSeconds(), 2);

    // If there's also date, separate it with time with 'T'
    const separator = result === "" ? "" : "T";

    // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.
    const time = [hour, minute, second].join(timeDelimiter);

    // HHmmss or HH:mm:ss.
    result = `${result}${separator}${time}${tzOffset}`;
  }

  return result;
}


/***/ }),

/***/ 6228:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.monthsToQuarters = monthsToQuarters;
var _index = __webpack_require__(8052);

/**
 * @name monthsToQuarters
 * @category Conversion Helpers
 * @summary Convert number of months to quarters.
 *
 * @description
 * Convert a number of months to a full number of quarters.
 *
 * @param months - The number of months to be converted.
 *
 * @returns The number of months converted in quarters
 *
 * @example
 * // Convert 6 months to quarters:
 * const result = monthsToQuarters(6)
 * //=> 2
 *
 * @example
 * // It uses floor rounding:
 * const result = monthsToQuarters(7)
 * //=> 2
 */
function monthsToQuarters(months) {
  const quarters = months / _index.monthsInQuarter;
  return Math.trunc(quarters);
}


/***/ }),

/***/ 6234:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getMinutes = getMinutes;
var _index = __webpack_require__(4446);

/**
 * The {@link getMinutes} function options.
 */

/**
 * @name getMinutes
 * @category Minute Helpers
 * @summary Get the minutes of the given date.
 *
 * @description
 * Get the minutes of the given date.
 *
 * @param date - The given date
 * @param options - The options
 *
 * @returns The minutes
 *
 * @example
 * // Get the minutes of 29 February 2012 11:45:05:
 * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))
 * //=> 45
 */
function getMinutes(date, options) {
  return (0, _index.toDate)(date, options?.in).getMinutes();
}


/***/ }),

/***/ 6245:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachYearOfInterval = eachYearOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(2956);

/**
 * The {@link eachYearOfInterval} function options.
 */

/**
 * The {@link eachYearOfInterval} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the date argument,
 * then the start interval date, and finally the end interval date. If
 * a context function is passed, it uses the context function return type.
 */

/**
 * @name eachYearOfInterval
 * @category Interval Helpers
 * @summary Return the array of yearly timestamps within the specified time interval.
 *
 * @description
 * Return the array of yearly timestamps within the specified time interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The interval.
 * @param options - An object with options.
 *
 * @returns The array with starts of yearly timestamps from the month of the interval start to the month of the interval end
 *
 * @example
 * // Each year between 6 February 2014 and 10 August 2017:
 * const result = eachYearOfInterval({
 *   start: new Date(2014, 1, 6),
 *   end: new Date(2017, 7, 10)
 * })
 * //=> [
 * //   Wed Jan 01 2014 00:00:00,
 * //   Thu Jan 01 2015 00:00:00,
 * //   Fri Jan 01 2016 00:00:00,
 * //   Sun Jan 01 2017 00:00:00
 * // ]
 */
function eachYearOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);

  let reversed = +start > +end;
  const endTime = reversed ? +start : +end;
  const date = reversed ? end : start;
  date.setHours(0, 0, 0, 0);
  date.setMonth(0, 1);

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+date <= endTime) {
    dates.push((0, _index2.constructFrom)(start, date));
    date.setFullYear(date.getFullYear() + step);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 6249:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfISOWeek = lastDayOfISOWeek;
var _index = __webpack_require__(2994);

/**
 * The {@link lastDayOfISOWeek} function options.
 */

/**
 * @name lastDayOfISOWeek
 * @category ISO Week Helpers
 * @summary Return the last day of an ISO week for the given date.
 *
 * @description
 * Return the last day of an ISO week for the given date.
 * The result will be in the local timezone.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The Date type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [UTCDate](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The last day of an ISO week
 *
 * @example
 * // The last day of an ISO week for 2 September 2014 11:55:00:
 * const result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Sun Sep 07 2014 00:00:00
 */
function lastDayOfISOWeek(date, options) {
  return (0, _index.lastDayOfWeek)(date, { ...options, weekStartsOn: 1 });
}


/***/ }),

/***/ 6265:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.DayPeriodParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// in the morning, in the afternoon, in the evening, at night
class DayPeriodParser extends _Parser.Parser {
  priority = 80;

  parse(dateString, token, match) {
    switch (token) {
      case "B":
      case "BB":
      case "BBB":
        return (
          match.dayPeriod(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );

      case "BBBBB":
        return match.dayPeriod(dateString, {
          width: "narrow",
          context: "formatting",
        });
      case "BBBB":
      default:
        return (
          match.dayPeriod(dateString, {
            width: "wide",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );
    }
  }

  set(date, _flags, value) {
    date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["a", "b", "t", "T"];
}
exports.DayPeriodParser = DayPeriodParser;


/***/ }),

/***/ 6279:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.ariaLabelsShape = void 0;
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const ariaLabelsShape = exports.ariaLabelsShape = _propTypes.default.shape({
  dateInput: _propTypes.default.objectOf(_propTypes.default.shape({
    startDate: _propTypes.default.string,
    endDate: _propTypes.default.string
  })),
  monthPicker: _propTypes.default.string,
  yearPicker: _propTypes.default.string,
  prevButton: _propTypes.default.string,
  nextButton: _propTypes.default.string
});

/***/ }),

/***/ 6309:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.StandAloneMonthParser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class StandAloneMonthParser extends _Parser.Parser {
  priority = 110;

  parse(dateString, token, match) {
    const valueCallback = (value) => value - 1;

    switch (token) {
      // 1, 2, ..., 12
      case "L":
        return (0, _utils.mapValue)(
          (0, _utils.parseNumericPattern)(
            _constants.numericPatterns.month,
            dateString,
          ),
          valueCallback,
        );
      // 01, 02, ..., 12
      case "LL":
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(2, dateString),
          valueCallback,
        );
      // 1st, 2nd, ..., 12th
      case "Lo":
        return (0, _utils.mapValue)(
          match.ordinalNumber(dateString, {
            unit: "month",
          }),
          valueCallback,
        );
      // Jan, Feb, ..., Dec
      case "LLL":
        return (
          match.month(dateString, {
            width: "abbreviated",
            context: "standalone",
          }) ||
          match.month(dateString, { width: "narrow", context: "standalone" })
        );

      // J, F, ..., D
      case "LLLLL":
        return match.month(dateString, {
          width: "narrow",
          context: "standalone",
        });
      // January, February, ..., December
      case "LLLL":
      default:
        return (
          match.month(dateString, { width: "wide", context: "standalone" }) ||
          match.month(dateString, {
            width: "abbreviated",
            context: "standalone",
          }) ||
          match.month(dateString, { width: "narrow", context: "standalone" })
        );
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 11;
  }

  set(date, _flags, value) {
    date.setMonth(value, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "Y",
    "R",
    "q",
    "Q",
    "M",
    "w",
    "I",
    "D",
    "i",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.StandAloneMonthParser = StandAloneMonthParser;


/***/ }),

/***/ 6314:
/***/ ((module) => {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
module.exports = function (cssWithMappingToString) {
  var list = [];

  // return the list of modules as css string
  list.toString = function toString() {
    return this.map(function (item) {
      var content = "";
      var needLayer = typeof item[5] !== "undefined";
      if (item[4]) {
        content += "@supports (".concat(item[4], ") {");
      }
      if (item[2]) {
        content += "@media ".concat(item[2], " {");
      }
      if (needLayer) {
        content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
      }
      content += cssWithMappingToString(item);
      if (needLayer) {
        content += "}";
      }
      if (item[2]) {
        content += "}";
      }
      if (item[4]) {
        content += "}";
      }
      return content;
    }).join("");
  };

  // import a list of modules into the list
  list.i = function i(modules, media, dedupe, supports, layer) {
    if (typeof modules === "string") {
      modules = [[null, modules, undefined]];
    }
    var alreadyImportedModules = {};
    if (dedupe) {
      for (var k = 0; k < this.length; k++) {
        var id = this[k][0];
        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }
    for (var _k = 0; _k < modules.length; _k++) {
      var item = [].concat(modules[_k]);
      if (dedupe && alreadyImportedModules[item[0]]) {
        continue;
      }
      if (typeof layer !== "undefined") {
        if (typeof item[5] === "undefined") {
          item[5] = layer;
        } else {
          item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
          item[5] = layer;
        }
      }
      if (media) {
        if (!item[2]) {
          item[2] = media;
        } else {
          item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
          item[2] = media;
        }
      }
      if (supports) {
        if (!item[4]) {
          item[4] = "".concat(supports);
        } else {
          item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
          item[4] = supports;
        }
      }
      list.push(item);
    }
  };
  return list;
};

/***/ }),

/***/ 6322:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subISOWeekYears = subISOWeekYears;
var _index = __webpack_require__(2945);

/**
 * The {@link subISOWeekYears} function options.
 */

/**
 * @name subISOWeekYears
 * @category ISO Week-Numbering Year Helpers
 * @summary Subtract the specified number of ISO week-numbering years from the given date.
 *
 * @description
 * Subtract the specified number of ISO week-numbering years from the given date.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of ISO week-numbering years to be subtracted.
 * @param options - The options
 *
 * @returns The new date with the ISO week-numbering years subtracted
 *
 * @example
 * // Subtract 5 ISO week-numbering years from 1 September 2014:
 * const result = subISOWeekYears(new Date(2014, 8, 1), 5)
 * //=> Mon Aug 31 2009 00:00:00
 */
function subISOWeekYears(date, amount, options) {
  return (0, _index.addISOWeekYears)(date, -amount, options);
}


/***/ }),

/***/ 6339:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getTimezoneOffsetInMilliseconds = getTimezoneOffsetInMilliseconds;
var _index = __webpack_require__(4446);

/**
 * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
 * They usually appear for dates that denote time before the timezones were introduced
 * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
 * and GMT+01:00:00 after that date)
 *
 * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
 * which would lead to incorrect calculations.
 *
 * This function returns the timezone offset in milliseconds that takes seconds in account.
 */
function getTimezoneOffsetInMilliseconds(date) {
  const _date = (0, _index.toDate)(date);
  const utcDate = new Date(
    Date.UTC(
      _date.getFullYear(),
      _date.getMonth(),
      _date.getDate(),
      _date.getHours(),
      _date.getMinutes(),
      _date.getSeconds(),
      _date.getMilliseconds(),
    ),
  );
  utcDate.setUTCFullYear(_date.getFullYear());
  return +date - +utcDate;
}


/***/ }),

/***/ 6379:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addMonths = addMonths;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link addMonths} function options.
 */

/**
 * @name addMonths
 * @category Month Helpers
 * @summary Add the specified number of months to the given date.
 *
 * @description
 * Add the specified number of months to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of months to be added.
 * @param options - The options object
 *
 * @returns The new date with the months added
 *
 * @example
 * // Add 5 months to 1 September 2014:
 * const result = addMonths(new Date(2014, 8, 1), 5)
 * //=> Sun Feb 01 2015 00:00:00
 *
 * // Add one month to 30 January 2023:
 * const result = addMonths(new Date(2023, 0, 30), 1)
 * //=> Tue Feb 28 2023 00:00:00
 */
function addMonths(date, amount, options) {
  const _date = (0, _index2.toDate)(date, options?.in);
  if (isNaN(amount)) return (0, _index.constructFrom)(options?.in || date, NaN);
  if (!amount) {
    // If 0 months, no-op to avoid changing times in the hour before end of DST
    return _date;
  }
  const dayOfMonth = _date.getDate();

  // The JS Date object supports date math by accepting out-of-bounds values for
  // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and
  // new Date(2020, 13, 1) returns 1 Feb 2021.  This is *almost* the behavior we
  // want except that dates will wrap around the end of a month, meaning that
  // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So
  // we'll default to the end of the desired month by adding 1 to the desired
  // month and using a date of 0 to back up one day to the end of the desired
  // month.
  const endOfDesiredMonth = (0, _index.constructFrom)(
    options?.in || date,
    _date.getTime(),
  );
  endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);
  const daysInMonth = endOfDesiredMonth.getDate();
  if (dayOfMonth >= daysInMonth) {
    // If we're already at the end of the month, then this is the correct date
    // and we're done.
    return endOfDesiredMonth;
  } else {
    // Otherwise, we now know that setting the original day-of-month value won't
    // cause an overflow, so set the desired day-of-month. Note that we can't
    // just set the date of `endOfDesiredMonth` because that object may have had
    // its time changed in the unusual case where where a DST transition was on
    // the last day of the month and its local time was in the hour skipped or
    // repeated next to a DST transition.  So we use `date` instead which is
    // guaranteed to still have the original time.
    _date.setFullYear(
      endOfDesiredMonth.getFullYear(),
      endOfDesiredMonth.getMonth(),
      dayOfMonth,
    );
    return _date;
  }
}


/***/ }),

/***/ 6387:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisHour = isThisHour;
var _index = __webpack_require__(2700);
var _index2 = __webpack_require__(3833);
var _index3 = __webpack_require__(4446);

/**
 * The {@link isThisHour} function options.
 */

/**
 * @name isThisHour
 * @category Hour Helpers
 * @summary Is the given date in the same hour as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same hour as the current date?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is in this hour
 *
 * @example
 * // If now is 25 September 2014 18:30:15.500,
 * // is 25 September 2014 18:00:00 in this hour?
 * const result = isThisHour(new Date(2014, 8, 25, 18))
 * //=> true
 */
function isThisHour(date, options) {
  return (0, _index2.isSameHour)(
    (0, _index3.toDate)(date, options?.in),
    (0, _index.constructNow)(options?.in || date),
  );
}


/***/ }),

/***/ 6482:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getOverlappingDaysInIntervals = getOverlappingDaysInIntervals;
var _index = __webpack_require__(6339);
var _index2 = __webpack_require__(8052);
var _index3 = __webpack_require__(4446);

/**
 * @name getOverlappingDaysInIntervals
 * @category Interval Helpers
 * @summary Get the number of days that overlap in two time intervals
 *
 * @description
 * Get the number of days that overlap in two time intervals. It uses the time
 * between dates to calculate the number of days, rounding it up to include
 * partial days.
 *
 * Two equal 0-length intervals will result in 0. Two equal 1ms intervals will
 * result in 1.
 *
 * @param intervalLeft - The first interval to compare.
 * @param intervalRight - The second interval to compare.
 * @param options - An object with options
 *
 * @returns The number of days that overlap in two time intervals
 *
 * @example
 * // For overlapping time intervals adds 1 for each started overlapping day:
 * getOverlappingDaysInIntervals(
 *   { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
 *   { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }
 * )
 * //=> 3
 *
 * @example
 * // For non-overlapping time intervals returns 0:
 * getOverlappingDaysInIntervals(
 *   { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
 *   { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }
 * )
 * //=> 0
 */

function getOverlappingDaysInIntervals(intervalLeft, intervalRight) {
  const [leftStart, leftEnd] = [
    +(0, _index3.toDate)(intervalLeft.start),
    +(0, _index3.toDate)(intervalLeft.end),
  ].sort((a, b) => a - b);
  const [rightStart, rightEnd] = [
    +(0, _index3.toDate)(intervalRight.start),
    +(0, _index3.toDate)(intervalRight.end),
  ].sort((a, b) => a - b);

  // Prevent NaN result if intervals don't overlap at all.
  const isOverlapping = leftStart < rightEnd && rightStart < leftEnd;
  if (!isOverlapping) return 0;

  // Remove the timezone offset to negate the DST effect on calculations.
  const overlapLeft = rightStart < leftStart ? leftStart : rightStart;
  const left =
    overlapLeft - (0, _index.getTimezoneOffsetInMilliseconds)(overlapLeft);
  const overlapRight = rightEnd > leftEnd ? leftEnd : rightEnd;
  const right =
    overlapRight - (0, _index.getTimezoneOffsetInMilliseconds)(overlapRight);

  // Ceil the number to include partial days too.
  return Math.ceil((right - left) / _index2.millisecondsInDay);
}


/***/ }),

/***/ 6573:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisSecond = isThisSecond;
var _index = __webpack_require__(2700);
var _index2 = __webpack_require__(9435);

/**
 * @name isThisSecond
 * @category Second Helpers
 * @summary Is the given date in the same second as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same second as the current date?
 *
 * @param date - The date to check
 *
 * @returns The date is in this second
 *
 * @example
 * // If now is 25 September 2014 18:30:15.500,
 * // is 25 September 2014 18:30:15.000 in this second?
 * const result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))
 * //=> true
 */
function isThisSecond(date) {
  return (0, _index2.isSameSecond)(date, (0, _index.constructNow)(date));
}


/***/ }),

/***/ 6601:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfYesterday = endOfYesterday;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);

/**
 * The {@link endOfYesterday} function options.
 */

/**
 * @name endOfYesterday
 * @category Day Helpers
 * @summary Return the end of yesterday.
 * @pure false
 *
 * @description
 * Return the end of yesterday.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @returns The end of yesterday
 *
 * @example
 * // If today is 6 October 2014:
 * const result = endOfYesterday()
 * //=> Sun Oct 5 2014 23:59:59.999
 */
function endOfYesterday(options) {
  const now = (0, _index2.constructNow)(options?.in);
  const date = (0, _index.constructFrom)(options?.in, 0);
  date.setFullYear(now.getFullYear(), now.getMonth(), now.getDate() - 1);
  date.setHours(23, 59, 59, 999);
  return date;
}


/***/ }),

/***/ 6605:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInYears = differenceInYears;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(6789);
var _index3 = __webpack_require__(4875);

/**
 * The {@link differenceInYears} function options.
 */

/**
 * @name differenceInYears
 * @category Year Helpers
 * @summary Get the number of full years between the given dates.
 *
 * @description
 * Get the number of full years between the given dates.
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of full years
 *
 * @example
 * // How many full years are between 31 December 2013 and 11 February 2015?
 * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))
 * //=> 1
 */
function differenceInYears(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  // -1 if the left date is earlier than the right date
  // 2023-12-31 - 2024-01-01 = -1
  const sign = (0, _index2.compareAsc)(laterDate_, earlierDate_);

  // First calculate the difference in calendar years
  // 2024-01-01 - 2023-12-31 = 1 year
  const diff = Math.abs(
    (0, _index3.differenceInCalendarYears)(laterDate_, earlierDate_),
  );

  // Now we need to calculate if the difference is full. To do that we set
  // both dates to the same year and check if the both date's month and day
  // form a full year.
  laterDate_.setFullYear(1584);
  earlierDate_.setFullYear(1584);

  // For it to be true, when the later date is indeed later than the earlier date
  // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if
  // the normalized later date is also later than the normalized earlier date.
  // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference
  // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2.
  const partial = (0, _index2.compareAsc)(laterDate_, earlierDate_) === -sign;

  const result = sign * (diff - +partial);

  // Prevent negative zero
  return result === 0 ? 0 : result;
}


/***/ }),

/***/ 6633:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.AMPMParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class AMPMParser extends _Parser.Parser {
  priority = 80;

  parse(dateString, token, match) {
    switch (token) {
      case "a":
      case "aa":
      case "aaa":
        return (
          match.dayPeriod(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );

      case "aaaaa":
        return match.dayPeriod(dateString, {
          width: "narrow",
          context: "formatting",
        });
      case "aaaa":
      default:
        return (
          match.dayPeriod(dateString, {
            width: "wide",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.dayPeriod(dateString, {
            width: "narrow",
            context: "formatting",
          })
        );
    }
  }

  set(date, _flags, value) {
    date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["b", "B", "H", "k", "t", "T"];
}
exports.AMPMParser = AMPMParser;


/***/ }),

/***/ 6638:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.StandAloneLocalDayParser = void 0;
var _index = __webpack_require__(4395);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// Stand-alone local day of week
class StandAloneLocalDayParser extends _Parser.Parser {
  priority = 90;

  parse(dateString, token, match, options) {
    const valueCallback = (value) => {
      // We want here floor instead of trunc, so we get -7 for value 0 instead of 0
      const wholeWeekDays = Math.floor((value - 1) / 7) * 7;
      return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;
    };

    switch (token) {
      // 3
      case "c":
      case "cc": // 03
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(token.length, dateString),
          valueCallback,
        );
      // 3rd
      case "co":
        return (0, _utils.mapValue)(
          match.ordinalNumber(dateString, {
            unit: "day",
          }),
          valueCallback,
        );
      // Tue
      case "ccc":
        return (
          match.day(dateString, {
            width: "abbreviated",
            context: "standalone",
          }) ||
          match.day(dateString, { width: "short", context: "standalone" }) ||
          match.day(dateString, { width: "narrow", context: "standalone" })
        );

      // T
      case "ccccc":
        return match.day(dateString, {
          width: "narrow",
          context: "standalone",
        });
      // Tu
      case "cccccc":
        return (
          match.day(dateString, { width: "short", context: "standalone" }) ||
          match.day(dateString, { width: "narrow", context: "standalone" })
        );

      // Tuesday
      case "cccc":
      default:
        return (
          match.day(dateString, { width: "wide", context: "standalone" }) ||
          match.day(dateString, {
            width: "abbreviated",
            context: "standalone",
          }) ||
          match.day(dateString, { width: "short", context: "standalone" }) ||
          match.day(dateString, { width: "narrow", context: "standalone" })
        );
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 6;
  }

  set(date, _flags, value, options) {
    date = (0, _index.setDay)(date, value, options);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "y",
    "R",
    "u",
    "q",
    "Q",
    "M",
    "L",
    "I",
    "d",
    "D",
    "E",
    "i",
    "e",
    "t",
    "T",
  ];
}
exports.StandAloneLocalDayParser = StandAloneLocalDayParser;


/***/ }),

/***/ 6648:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _DayCell = _interopRequireWildcard(__webpack_require__(2448));
var _dateFns = __webpack_require__(411);
var _utils = __webpack_require__(2301);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable no-fallthrough */
function renderWeekdays(styles, dateOptions, weekdayDisplayFormat) {
  const now = new Date();
  return /*#__PURE__*/_react.default.createElement("div", {
    className: styles.weekDays
  }, (0, _dateFns.eachDayOfInterval)({
    start: (0, _dateFns.startOfWeek)(now, dateOptions),
    end: (0, _dateFns.endOfWeek)(now, dateOptions)
  }).map((day, i) => /*#__PURE__*/_react.default.createElement("span", {
    className: styles.weekDay,
    key: i
  }, (0, _dateFns.format)(day, weekdayDisplayFormat, dateOptions))));
}
class Month extends _react.PureComponent {
  render() {
    const now = new Date();
    const {
      displayMode,
      focusedRange,
      drag,
      styles,
      disabledDates,
      disabledDay
    } = this.props;
    const minDate = this.props.minDate && (0, _dateFns.startOfDay)(this.props.minDate);
    const maxDate = this.props.maxDate && (0, _dateFns.endOfDay)(this.props.maxDate);
    const monthDisplay = (0, _utils.getMonthDisplayRange)(this.props.month, this.props.dateOptions, this.props.fixedHeight);
    let ranges = this.props.ranges;
    if (displayMode === 'dateRange' && drag.status) {
      let {
        startDate,
        endDate
      } = drag.range;
      ranges = ranges.map((range, i) => {
        if (i !== focusedRange[0]) return range;
        return {
          ...range,
          startDate,
          endDate
        };
      });
    }
    const showPreview = this.props.showPreview && !drag.disablePreview;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: styles.month,
      style: this.props.style
    }, this.props.showMonthName ? /*#__PURE__*/_react.default.createElement("div", {
      className: styles.monthName
    }, (0, _dateFns.format)(this.props.month, this.props.monthDisplayFormat, this.props.dateOptions)) : null, this.props.showWeekDays && renderWeekdays(styles, this.props.dateOptions, this.props.weekdayDisplayFormat), /*#__PURE__*/_react.default.createElement("div", {
      className: styles.days,
      onMouseLeave: this.props.onMouseLeave
    }, (0, _dateFns.eachDayOfInterval)({
      start: monthDisplay.start,
      end: monthDisplay.end
    }).map((day, index) => {
      const isStartOfMonth = (0, _dateFns.isSameDay)(day, monthDisplay.startDateOfMonth);
      const isEndOfMonth = (0, _dateFns.isSameDay)(day, monthDisplay.endDateOfMonth);
      const isOutsideMinMax = minDate && (0, _dateFns.isBefore)(day, minDate) || maxDate && (0, _dateFns.isAfter)(day, maxDate);
      const isDisabledSpecifically = disabledDates.some(disabledDate => (0, _dateFns.isSameDay)(disabledDate, day));
      const isDisabledDay = disabledDay(day);
      return /*#__PURE__*/_react.default.createElement(_DayCell.default, _extends({}, this.props, {
        ranges: ranges,
        day: day,
        preview: showPreview ? this.props.preview : null,
        isWeekend: (0, _dateFns.isWeekend)(day, this.props.dateOptions),
        isToday: (0, _dateFns.isSameDay)(day, now),
        isStartOfWeek: (0, _dateFns.isSameDay)(day, (0, _dateFns.startOfWeek)(day, this.props.dateOptions)),
        isEndOfWeek: (0, _dateFns.isSameDay)(day, (0, _dateFns.endOfWeek)(day, this.props.dateOptions)),
        isStartOfMonth: isStartOfMonth,
        isEndOfMonth: isEndOfMonth,
        key: index,
        disabled: isOutsideMinMax || isDisabledSpecifically || isDisabledDay,
        isPassive: !(0, _dateFns.isWithinInterval)(day, {
          start: monthDisplay.startDateOfMonth,
          end: monthDisplay.endDateOfMonth
        }),
        styles: styles,
        onMouseDown: this.props.onDragSelectionStart,
        onMouseUp: this.props.onDragSelectionEnd,
        onMouseEnter: this.props.onDragSelectionMove,
        dragRange: drag.range,
        drag: drag.status
      }));
    })));
  }
}
Month.defaultProps = {};
Month.propTypes = {
  style: _propTypes.default.object,
  styles: _propTypes.default.object,
  month: _propTypes.default.object,
  drag: _propTypes.default.object,
  dateOptions: _propTypes.default.object,
  disabledDates: _propTypes.default.array,
  disabledDay: _propTypes.default.func,
  preview: _propTypes.default.shape({
    startDate: _propTypes.default.object,
    endDate: _propTypes.default.object
  }),
  showPreview: _propTypes.default.bool,
  displayMode: _propTypes.default.oneOf(['dateRange', 'date']),
  minDate: _propTypes.default.object,
  maxDate: _propTypes.default.object,
  ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),
  focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),
  onDragSelectionStart: _propTypes.default.func,
  onDragSelectionEnd: _propTypes.default.func,
  onDragSelectionMove: _propTypes.default.func,
  onMouseLeave: _propTypes.default.func,
  monthDisplayFormat: _propTypes.default.string,
  weekdayDisplayFormat: _propTypes.default.string,
  dayDisplayFormat: _propTypes.default.string,
  showWeekDays: _propTypes.default.bool,
  showMonthName: _propTypes.default.bool,
  fixedHeight: _propTypes.default.bool
};
var _default = exports["default"] = Month;

/***/ }),

/***/ 6660:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfDecade = startOfDecade;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfDecade} options.
 */

/**
 * @name startOfDecade
 * @category Decade Helpers
 * @summary Return the start of a decade for the given date.
 *
 * @description
 * Return the start of a decade for the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of a decade
 *
 * @example
 * // The start of a decade for 21 October 2015 00:00:00:
 * const result = startOfDecade(new Date(2015, 9, 21, 00, 00, 00))
 * //=> Jan 01 2010 00:00:00
 */
function startOfDecade(date, options) {
  // TODO: Switch to more technical definition in of decades that start with 1
  // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking
  // change, so it can only be done in 4.0.
  const _date = (0, _index.toDate)(date, options?.in);
  const year = _date.getFullYear();
  const decade = Math.floor(year / 10) * 10;
  _date.setFullYear(decade, 0, 1);
  _date.setHours(0, 0, 0, 0);
  return _date;
}


/***/ }),

/***/ 6686:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lightFormat = lightFormat;
Object.defineProperty(exports, "lightFormatters", ({
  enumerable: true,
  get: function () {
    return _index.lightFormatters;
  },
}));
var _index = __webpack_require__(8441);
var _index2 = __webpack_require__(7489);
var _index3 = __webpack_require__(4446);

// Rexports of internal for libraries to use.
// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874

// This RegExp consists of three parts separated by `|`:
// - (\w)\1* matches any sequences of the same letter
// - '' matches two quote characters in a row
// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
//   except a single quote symbol, which ends the sequence.
//   Two quote characters do not end the sequence.
//   If there is no matching single quote
//   then the sequence will continue until the end of the string.
// - . matches any single character unmatched by previous parts of the RegExps
const formattingTokensRegExp = /(\w)\1*|''|'(''|[^'])+('|$)|./g;

const escapedStringRegExp = /^'([^]*?)'?$/;
const doubleQuoteRegExp = /''/g;
const unescapedLatinCharacterRegExp = /[a-zA-Z]/;

/**
 * @private
 */

/**
 * @name lightFormat
 * @category Common Helpers
 * @summary Format the date.
 *
 * @description
 * Return the formatted date string in the given format. Unlike `format`,
 * `lightFormat` doesn't use locales and outputs date using the most popular tokens.
 *
 * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.
 * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * The characters wrapped between two single quotes characters (') are escaped.
 * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
 *
 * Format of the string is based on Unicode Technical Standard #35:
 * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 *
 * Accepted patterns:
 * | Unit                            | Pattern | Result examples                   |
 * |---------------------------------|---------|-----------------------------------|
 * | AM, PM                          | a..aaa  | AM, PM                            |
 * |                                 | aaaa    | a.m., p.m.                        |
 * |                                 | aaaaa   | a, p                              |
 * | Calendar year                   | y       | 44, 1, 1900, 2017                 |
 * |                                 | yy      | 44, 01, 00, 17                    |
 * |                                 | yyy     | 044, 001, 000, 017                |
 * |                                 | yyyy    | 0044, 0001, 1900, 2017            |
 * | Month (formatting)              | M       | 1, 2, ..., 12                     |
 * |                                 | MM      | 01, 02, ..., 12                   |
 * | Day of month                    | d       | 1, 2, ..., 31                     |
 * |                                 | dd      | 01, 02, ..., 31                   |
 * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |
 * |                                 | hh      | 01, 02, ..., 11, 12               |
 * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |
 * |                                 | HH      | 00, 01, 02, ..., 23               |
 * | Minute                          | m       | 0, 1, ..., 59                     |
 * |                                 | mm      | 00, 01, ..., 59                   |
 * | Second                          | s       | 0, 1, ..., 59                     |
 * |                                 | ss      | 00, 01, ..., 59                   |
 * | Fraction of second              | S       | 0, 1, ..., 9                      |
 * |                                 | SS      | 00, 01, ..., 99                   |
 * |                                 | SSS     | 000, 001, ..., 999                |
 * |                                 | SSSS    | ...                               |
 *
 * @param date - The original date
 * @param format - The string of tokens
 *
 * @returns The formatted date string
 *
 * @throws `Invalid time value` if the date is invalid
 * @throws format string contains an unescaped latin alphabet character
 *
 * @example
 * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')
 * //=> '2014-02-11'
 */
function lightFormat(date, formatStr) {
  const date_ = (0, _index3.toDate)(date);

  if (!(0, _index2.isValid)(date_)) {
    throw new RangeError("Invalid time value");
  }

  const tokens = formatStr.match(formattingTokensRegExp);

  // The only case when formattingTokensRegExp doesn't match the string is when it's empty
  if (!tokens) return "";

  const result = tokens
    .map((substring) => {
      // Replace two single quote characters with one single quote character
      if (substring === "''") {
        return "'";
      }

      const firstCharacter = substring[0];
      if (firstCharacter === "'") {
        return cleanEscapedString(substring);
      }

      const formatter = _index.lightFormatters[firstCharacter];
      if (formatter) {
        return formatter(date_, substring);
      }

      if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
        throw new RangeError(
          "Format string contains an unescaped latin alphabet character `" +
            firstCharacter +
            "`",
        );
      }

      return substring;
    })
    .join("");

  return result;
}

function cleanEscapedString(input) {
  const matches = input.match(escapedStringRegExp);
  if (!matches) return input;
  return matches[1].replace(doubleQuoteRegExp, "'");
}


/***/ }),

/***/ 6689:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addSeconds = addSeconds;
var _index = __webpack_require__(4280);

/**
 * The {@link addSeconds} function options.
 */

/**
 * @name addSeconds
 * @category Second Helpers
 * @summary Add the specified number of seconds to the given date.
 *
 * @description
 * Add the specified number of seconds to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of seconds to be added.
 * @param options - An object with options
 *
 * @returns The new date with the seconds added
 *
 * @example
 * // Add 30 seconds to 10 July 2014 12:45:00:
 * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)
 * //=> Thu Jul 10 2014 12:45:30
 */
function addSeconds(date, amount, options) {
  return (0, _index.addMilliseconds)(date, amount * 1000, options);
}


/***/ }),

/***/ 6708:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getWeekYear = getWeekYear;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(5472);
var _index4 = __webpack_require__(4446);

/**
 * The {@link getWeekYear} function options.
 */

/**
 * @name getWeekYear
 * @category Week-Numbering Year Helpers
 * @summary Get the local week-numbering year of the given date.
 *
 * @description
 * Get the local week-numbering year of the given date.
 * The exact calculation depends on the values of
 * `options.weekStartsOn` (which is the index of the first day of the week)
 * and `options.firstWeekContainsDate` (which is the day of January, which is always in
 * the first week of the week-numbering year)
 *
 * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
 *
 * @param date - The given date
 * @param options - An object with options.
 *
 * @returns The local week-numbering year
 *
 * @example
 * // Which week numbering year is 26 December 2004 with the default settings?
 * const result = getWeekYear(new Date(2004, 11, 26))
 * //=> 2005
 *
 * @example
 * // Which week numbering year is 26 December 2004 if week starts on Saturday?
 * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })
 * //=> 2004
 *
 * @example
 * // Which week numbering year is 26 December 2004 if the first week contains 4 January?
 * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })
 * //=> 2004
 */
function getWeekYear(date, options) {
  const _date = (0, _index4.toDate)(date, options?.in);
  const year = _date.getFullYear();

  const defaultOptions = (0, _index.getDefaultOptions)();
  const firstWeekContainsDate =
    options?.firstWeekContainsDate ??
    options?.locale?.options?.firstWeekContainsDate ??
    defaultOptions.firstWeekContainsDate ??
    defaultOptions.locale?.options?.firstWeekContainsDate ??
    1;

  const firstWeekOfNextYear = (0, _index2.constructFrom)(
    options?.in || date,
    0,
  );
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
  const startOfNextYear = (0, _index3.startOfWeek)(
    firstWeekOfNextYear,
    options,
  );

  const firstWeekOfThisYear = (0, _index2.constructFrom)(
    options?.in || date,
    0,
  );
  firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);
  firstWeekOfThisYear.setHours(0, 0, 0, 0);
  const startOfThisYear = (0, _index3.startOfWeek)(
    firstWeekOfThisYear,
    options,
  );

  if (+_date >= +startOfNextYear) {
    return year + 1;
  } else if (+_date >= +startOfThisYear) {
    return year;
  } else {
    return year - 1;
  }
}


/***/ }),

/***/ 6755:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.getDefaultOptions = getDefaultOptions;
exports.setDefaultOptions = setDefaultOptions;

let defaultOptions = {};

function getDefaultOptions() {
  return defaultOptions;
}

function setDefaultOptions(newOptions) {
  defaultOptions = newOptions;
}


/***/ }),

/***/ 6789:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.compareAsc = compareAsc;
var _index = __webpack_require__(4446);

/**
 * @name compareAsc
 * @category Common Helpers
 * @summary Compare the two dates and return -1, 0 or 1.
 *
 * @description
 * Compare the two dates and return 1 if the first date is after the second,
 * -1 if the first date is before the second or 0 if dates are equal.
 *
 * @param dateLeft - The first date to compare
 * @param dateRight - The second date to compare
 *
 * @returns The result of the comparison
 *
 * @example
 * // Compare 11 February 1987 and 10 July 1989:
 * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))
 * //=> -1
 *
 * @example
 * // Sort the array of dates:
 * const result = [
 *   new Date(1995, 6, 2),
 *   new Date(1987, 1, 11),
 *   new Date(1989, 6, 10)
 * ].sort(compareAsc)
 * //=> [
 * //   Wed Feb 11 1987 00:00:00,
 * //   Mon Jul 10 1989 00:00:00,
 * //   Sun Jul 02 1995 00:00:00
 * // ]
 */
function compareAsc(dateLeft, dateRight) {
  const diff = +(0, _index.toDate)(dateLeft) - +(0, _index.toDate)(dateRight);

  if (diff < 0) return -1;
  else if (diff > 0) return 1;

  // Return 0 if diff is 0; return NaN if diff is NaN
  return diff;
}


/***/ }),

/***/ 6808:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.fromUnixTime = fromUnixTime;
var _index = __webpack_require__(4446);

/**
 * The {@link fromUnixTime} function options.
 */

/**
 * @name fromUnixTime
 * @category Timestamp Helpers
 * @summary Create a date from a Unix timestamp.
 *
 * @description
 * Create a date from a Unix timestamp (in seconds). Decimal values will be discarded.
 *
 * @param unixTime - The given Unix timestamp (in seconds)
 * @param options - An object with options. Allows to pass a context.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @returns The date
 *
 * @example
 * // Create the date 29 February 2012 11:45:05:
 * const result = fromUnixTime(1330515905)
 * //=> Wed Feb 29 2012 11:45:05
 */
function fromUnixTime(unixTime, options) {
  return (0, _index.toDate)(unixTime * 1000, options?.in);
}


/***/ }),

/***/ 6842:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.Hour1To24Parser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class Hour1To24Parser extends _Parser.Parser {
  priority = 70;

  parse(dateString, token, match) {
    switch (token) {
      case "k":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.hour24h,
          dateString,
        );
      case "ko":
        return match.ordinalNumber(dateString, { unit: "hour" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 24;
  }

  set(date, _flags, value) {
    const hours = value <= 24 ? value % 24 : value;
    date.setHours(hours, 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["a", "b", "h", "H", "K", "t", "T"];
}
exports.Hour1To24Parser = Hour1To24Parser;


/***/ }),

/***/ 6862:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.EraParser = void 0;

var _Parser = __webpack_require__(5513);

class EraParser extends _Parser.Parser {
  priority = 140;

  parse(dateString, token, match) {
    switch (token) {
      // AD, BC
      case "G":
      case "GG":
      case "GGG":
        return (
          match.era(dateString, { width: "abbreviated" }) ||
          match.era(dateString, { width: "narrow" })
        );

      // A, B
      case "GGGGG":
        return match.era(dateString, { width: "narrow" });
      // Anno Domini, Before Christ
      case "GGGG":
      default:
        return (
          match.era(dateString, { width: "wide" }) ||
          match.era(dateString, { width: "abbreviated" }) ||
          match.era(dateString, { width: "narrow" })
        );
    }
  }

  set(date, flags, value) {
    flags.era = value;
    date.setFullYear(value, 0, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["R", "u", "t", "T"];
}
exports.EraParser = EraParser;


/***/ }),

/***/ 6903:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfDecade = endOfDecade;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfDecade} function options.
 */

/**
 * @name endOfDecade
 * @category Decade Helpers
 * @summary Return the end of a decade for the given date.
 *
 * @description
 * Return the end of a decade for the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a decade
 *
 * @example
 * // The end of a decade for 12 May 1984 00:00:00:
 * const result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))
 * //=> Dec 31 1989 23:59:59.999
 */
function endOfDecade(date, options) {
  // TODO: Switch to more technical definition in of decades that start with 1
  // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking
  // change, so it can only be done in 4.0.
  const _date = (0, _index.toDate)(date, options?.in);
  const year = _date.getFullYear();
  const decade = 9 + Math.floor(year / 10) * 10;
  _date.setFullYear(decade, 11, 31);
  _date.setHours(23, 59, 59, 999);
  return _date;
}


/***/ }),

/***/ 6925:
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ 6936:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfSecond = startOfSecond;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfSecond} function options.
 */

/**
 * @name startOfSecond
 * @category Second Helpers
 * @summary Return the start of a second for the given date.
 *
 * @description
 * Return the start of a second for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The start of a second
 *
 * @example
 * // The start of a second for 1 December 2014 22:15:45.400:
 * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))
 * //=> Mon Dec 01 2014 22:15:45.000
 */
function startOfSecond(date, options) {
  const date_ = (0, _index.toDate)(date, options?.in);
  date_.setMilliseconds(0);
  return date_;
}


/***/ }),

/***/ 6942:
/***/ ((module, exports) => {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
	Copyright (c) 2018 Jed Watson.
	Licensed under the MIT License (MIT), see
	http://jedwatson.github.io/classnames
*/
/* global define */

(function () {
	'use strict';

	var hasOwn = {}.hasOwnProperty;

	function classNames () {
		var classes = '';

		for (var i = 0; i < arguments.length; i++) {
			var arg = arguments[i];
			if (arg) {
				classes = appendClass(classes, parseValue(arg));
			}
		}

		return classes;
	}

	function parseValue (arg) {
		if (typeof arg === 'string' || typeof arg === 'number') {
			return arg;
		}

		if (typeof arg !== 'object') {
			return '';
		}

		if (Array.isArray(arg)) {
			return classNames.apply(null, arg);
		}

		if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
			return arg.toString();
		}

		var classes = '';

		for (var key in arg) {
			if (hasOwn.call(arg, key) && arg[key]) {
				classes = appendClass(classes, key);
			}
		}

		return classes;
	}

	function appendClass (value, newClass) {
		if (!newClass) {
			return value;
		}
	
		if (value) {
			return value + ' ' + newClass;
		}
	
		return value + newClass;
	}

	if ( true && module.exports) {
		classNames.default = classNames;
		module.exports = classNames;
	} else if (true) {
		// register as 'classnames', consistent with npm package name
		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
			return classNames;
		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	} else // removed by dead control flow
{}
}());


/***/ }),

/***/ 6944:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfQuarter = startOfQuarter;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfQuarter} function options.
 */

/**
 * @name startOfQuarter
 * @category Quarter Helpers
 * @summary Return the start of a year quarter for the given date.
 *
 * @description
 * Return the start of a year quarter for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The start of a quarter
 *
 * @example
 * // The start of a quarter for 2 September 2014 11:55:00:
 * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Jul 01 2014 00:00:00
 */
function startOfQuarter(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const currentMonth = _date.getMonth();
  const month = currentMonth - (currentMonth % 3);
  _date.setMonth(month, 1);
  _date.setHours(0, 0, 0, 0);
  return _date;
}


/***/ }),

/***/ 7008:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   m_: () => (/* binding */ M)
/* harmony export */ });
/* unused harmony exports TooltipProvider, TooltipWrapper, removeStyle */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1594);
/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7663);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6942);
/* provided dependency */ var process = __webpack_require__(5606);
/*
* React Tooltip
* {@link https://github.com/ReactTooltip/react-tooltip}
* @copyright ReactTooltip Team
* @license MIT
*/
const h="react-tooltip-core-styles",w="react-tooltip-base-styles",b={core:!1,base:!1};function S({css:e,id:t=w,type:o="base",ref:l}){var r,n;if(!e||"undefined"==typeof document||b[o])return;if("core"===o&&"undefined"!=typeof process&&(null===(r=null===process||void 0===process?void 0:process.env)||void 0===r?void 0:r.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("base"!==o&&"undefined"!=typeof process&&(null===(n=null===process||void 0===process?void 0:process.env)||void 0===n?void 0:n.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===o&&(t=h),l||(l={});const{insertAt:i}=l;if(document.getElementById(t))return;const c=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.id=t,s.type="text/css","top"===i&&c.firstChild?c.insertBefore(s,c.firstChild):c.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),b[o]=!0}function g({type:e="base",id:t=w}={}){if(!b[e])return;"core"===e&&(t=h);const o=document.getElementById(t);"style"===(null==o?void 0:o.tagName)?null==o||o.remove():console.warn(`[react-tooltip] Failed to remove 'style' element with id '${t}'. Call \`injectStyle()\` first`),b[e]=!1}const E=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:l="top",offset:r=10,strategy:n="absolute",middlewares:i=[(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .offset */ .cY)(Number(r)),(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .flip */ .UU)({fallbackAxisSideDirection:"start"}),(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .shift */ .BN)({padding:5})],border:c,arrowSize:s=8})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:l};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:l};const a=i;return o?(a.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .arrow */ .UE)({element:o,padding:5})),(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .computePosition */ .rD)(e,t,{placement:l,strategy:n,middleware:a}).then((({x:e,y:t,placement:o,middlewareData:l})=>{var r,n;const i={left:`${e}px`,top:`${t}px`,border:c},{x:a,y:u}=null!==(r=l.arrow)&&void 0!==r?r:{x:0,y:0},d=null!==(n={top:"bottom",right:"left",bottom:"top",left:"right"}[o.split("-")[0]])&&void 0!==n?n:"bottom",p=c&&{borderBottom:c,borderRight:c};let v=0;if(c){const e=`${c}`.match(/(\d+)px/);v=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=a?`${a}px`:"",top:null!=u?`${u}px`:"",right:"",bottom:"",...p,[d]:`-${s/2+v}px`},place:o}}))):(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .computePosition */ .rD)(e,t,{placement:"bottom",strategy:n,middleware:a}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})))},A=(e,t)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(e,t),_=(e,t,o)=>{let l=null;const r=function(...r){const n=()=>{l=null,o||e.apply(this,r)};o&&!l&&(e.apply(this,r),l=setTimeout(n,t)),o||(l&&clearTimeout(l),l=setTimeout(n,t))};return r.cancel=()=>{l&&(clearTimeout(l),l=null)},r},O=e=>null!==e&&!Array.isArray(e)&&"object"==typeof e,k=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every(((e,o)=>k(e,t[o])));if(Array.isArray(e)!==Array.isArray(t))return!1;if(!O(e)||!O(t))return e===t;const o=Object.keys(e),l=Object.keys(t);return o.length===l.length&&o.every((o=>k(e[o],t[o])))},T=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const o=t.getPropertyValue(e);return"auto"===o||"scroll"===o}))},L=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(T(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},C="undefined"!=typeof window?react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect:react__WEBPACK_IMPORTED_MODULE_0__.useEffect,R=e=>{e.current&&(clearTimeout(e.current),e.current=null)},x="DEFAULT_TOOLTIP_ID",N={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},$=(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({getTooltipData:()=>N}),I=({children:t})=>{const[o,l]=r({[x]:new Set}),[c,s]=r({[x]:{current:null}}),a=(e,...t)=>{l((o=>{var l;const r=null!==(l=o[e])&&void 0!==l?l:new Set;return t.forEach((e=>r.add(e))),{...o,[e]:new Set(r)}}))},u=(e,...t)=>{l((o=>{const l=o[e];return l?(t.forEach((e=>l.delete(e))),{...o}):o}))},d=n(((e=x)=>{var t,l;return{anchorRefs:null!==(t=o[e])&&void 0!==t?t:new Set,activeAnchor:null!==(l=c[e])&&void 0!==l?l:{current:null},attach:(...t)=>a(e,...t),detach:(...t)=>u(e,...t),setActiveAnchor:t=>((e,t)=>{s((o=>{var l;return(null===(l=o[e])||void 0===l?void 0:l.current)===t.current?o:{...o,[e]:t}}))})(e,t)}}),[o,c,a,u]),p=i((()=>({getTooltipData:d})),[d]);return e.createElement($.Provider,{value:p},t)};function z(e=x){return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)($).getTooltipData(e)}const j=({tooltipId:t,children:l,className:r,place:n,content:i,html:c,variant:a,offset:u,wrapper:d,events:p,positionStrategy:v,delayShow:m,delayHide:f})=>{const{attach:h,detach:w}=z(t),b=s(null);return o((()=>(h(b),()=>{w(b)})),[]),e.createElement("span",{ref:b,className:y("react-tooltip-wrapper",r),"data-tooltip-place":n,"data-tooltip-content":i,"data-tooltip-html":c,"data-tooltip-variant":a,"data-tooltip-offset":u,"data-tooltip-wrapper":d,"data-tooltip-events":p,"data-tooltip-position-strategy":v,"data-tooltip-delay-show":m,"data-tooltip-delay-hide":f},l)};var B={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},D={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const q=({forwardRef:t,id:l,className:i,classNameArrow:c,variant:u="dark",anchorId:d,anchorSelect:p,place:v="top",offset:m=10,events:h=["hover"],openOnClick:w=!1,positionStrategy:b="absolute",middlewares:S,wrapper:g,delayShow:A=0,delayHide:O=0,float:T=!1,hidden:x=!1,noArrow:N=!1,clickable:$=!1,closeOnEsc:I=!1,closeOnScroll:j=!1,closeOnResize:q=!1,openEvents:H,closeEvents:M,globalCloseEvents:W,imperativeModeOnly:P,style:V,position:F,afterShow:K,afterHide:U,disableTooltip:X,content:Y,contentWrapperRef:G,isOpen:Z,defaultIsOpen:J=!1,setIsOpen:Q,activeAnchor:ee,setActiveAnchor:te,border:oe,opacity:le,arrowColor:re,arrowSize:ne=8,role:ie="tooltip"})=>{var ce;const se=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),ae=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),ue=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),de=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),pe=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),[ve,me]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({tooltipStyles:{},tooltipArrowStyles:{},place:v}),[fe,ye]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(!1),[he,we]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(!1),[be,Se]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),ge=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(!1),Ee=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null),{anchorRefs:Ae,setActiveAnchor:_e}=z(l),Oe=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(!1),[ke,Te]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),Le=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(!1),Ce=w||h.includes("click"),Re=Ce||(null==H?void 0:H.click)||(null==H?void 0:H.dblclick)||(null==H?void 0:H.mousedown),xe=H?{...H}:{mouseover:!0,focus:!0,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1};!H&&Ce&&Object.assign(xe,{mouseenter:!1,focus:!1,mouseover:!1,click:!0});const Ne=M?{...M}:{mouseout:!0,blur:!0,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1};!M&&Ce&&Object.assign(Ne,{mouseleave:!1,blur:!1,mouseout:!1});const $e=W?{...W}:{escape:I||!1,scroll:j||!1,resize:q||!1,clickOutsideAnchor:Re||!1};P&&(Object.assign(xe,{mouseover:!1,focus:!1,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(Ne,{mouseout:!1,blur:!1,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign($e,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),C((()=>(Le.current=!0,()=>{Le.current=!1})),[]);const Ie=e=>{Le.current&&(e&&we(!0),setTimeout((()=>{Le.current&&(null==Q||Q(e),void 0===Z&&ye(e))}),10))};(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{if(void 0===Z)return()=>null;Z&&we(!0);const e=setTimeout((()=>{ye(Z)}),10);return()=>{clearTimeout(e)}}),[Z]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{if(fe!==ge.current)if(R(pe),ge.current=fe,fe)null==K||K();else{const e=(e=>{const t=e.match(/^([\d.]+)(ms|s)$/);if(!t)return 0;const[,o,l]=t;return Number(o)*("ms"===l?1:1e3)})(getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay"));pe.current=setTimeout((()=>{we(!1),Se(null),null==U||U()}),e+25)}}),[fe]);const ze=e=>{me((t=>k(t,e)?t:e))},je=(e=A)=>{R(ue),he?Ie(!0):ue.current=setTimeout((()=>{Ie(!0)}),e)},Be=(e=O)=>{R(de),de.current=setTimeout((()=>{Oe.current||Ie(!1)}),e)},De=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return te(null),void _e({current:null});A?je():Ie(!0),te(o),_e({current:o}),R(de)},qe=()=>{$?Be(O||100):O?Be():Ie(!1),R(ue)},He=({x:e,y:t})=>{var o;const l={getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})};E({place:null!==(o=null==be?void 0:be.place)&&void 0!==o?o:v,offset:m,elementReference:l,tooltipReference:se.current,tooltipArrowReference:ae.current,strategy:b,middlewares:S,border:oe,arrowSize:ne}).then((e=>{ze(e)}))},Me=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};He(o),Ee.current=o},We=e=>{var t;if(!fe)return;const o=e.target;if(!o.isConnected)return;if(null===(t=se.current)||void 0===t?void 0:t.contains(o))return;[document.querySelector(`[id='${d}']`),...ke].some((e=>null==e?void 0:e.contains(o)))||(Ie(!1),R(ue))},Pe=_(De,50,!0),Ve=_(qe,50,!0),Fe=e=>{Ve.cancel(),Pe(e)},Ke=()=>{Pe.cancel(),Ve()},Ue=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((()=>{var e,t;const o=null!==(e=null==be?void 0:be.position)&&void 0!==e?e:F;o?He(o):T?Ee.current&&He(Ee.current):(null==ee?void 0:ee.isConnected)&&E({place:null!==(t=null==be?void 0:be.place)&&void 0!==t?t:v,offset:m,elementReference:ee,tooltipReference:se.current,tooltipArrowReference:ae.current,strategy:b,middlewares:S,border:oe,arrowSize:ne}).then((e=>{Le.current&&ze(e)}))}),[fe,ee,Y,V,v,null==be?void 0:be.place,m,b,F,null==be?void 0:be.position,T,ne]);(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{var e,t;const o=new Set(Ae);ke.forEach((e=>{(null==X?void 0:X(e))||o.add({current:e})}));const l=document.querySelector(`[id='${d}']`);l&&!(null==X?void 0:X(l))&&o.add({current:l});const r=()=>{Ie(!1)},n=L(ee),i=L(se.current);$e.scroll&&(window.addEventListener("scroll",r),null==n||n.addEventListener("scroll",r),null==i||i.addEventListener("scroll",r));let c=null;$e.resize?window.addEventListener("resize",r):ee&&se.current&&(c=(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_2__/* .autoUpdate */ .ll)(ee,se.current,Ue,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const s=e=>{"Escape"===e.key&&Ie(!1)};$e.escape&&window.addEventListener("keydown",s),$e.clickOutsideAnchor&&window.addEventListener("click",We);const a=[],u=e=>Boolean((null==e?void 0:e.target)&&(null==ee?void 0:ee.contains(e.target))),p=e=>{fe&&u(e)||De(e)},v=e=>{fe&&u(e)&&qe()},m=["mouseover","mouseout","mouseenter","mouseleave","focus","blur"],y=["click","dblclick","mousedown","mouseup"];Object.entries(xe).forEach((([e,t])=>{t&&(m.includes(e)?a.push({event:e,listener:Fe}):y.includes(e)&&a.push({event:e,listener:p}))})),Object.entries(Ne).forEach((([e,t])=>{t&&(m.includes(e)?a.push({event:e,listener:Ke}):y.includes(e)&&a.push({event:e,listener:v}))})),T&&a.push({event:"pointermove",listener:Me});const h=()=>{Oe.current=!0},w=()=>{Oe.current=!1,qe()},b=$&&(Ne.mouseout||Ne.mouseleave);return b&&(null===(e=se.current)||void 0===e||e.addEventListener("mouseover",h),null===(t=se.current)||void 0===t||t.addEventListener("mouseout",w)),a.forEach((({event:e,listener:t})=>{o.forEach((o=>{var l;null===(l=o.current)||void 0===l||l.addEventListener(e,t)}))})),()=>{var e,t;$e.scroll&&(window.removeEventListener("scroll",r),null==n||n.removeEventListener("scroll",r),null==i||i.removeEventListener("scroll",r)),$e.resize?window.removeEventListener("resize",r):null==c||c(),$e.clickOutsideAnchor&&window.removeEventListener("click",We),$e.escape&&window.removeEventListener("keydown",s),b&&(null===(e=se.current)||void 0===e||e.removeEventListener("mouseover",h),null===(t=se.current)||void 0===t||t.removeEventListener("mouseout",w)),a.forEach((({event:e,listener:t})=>{o.forEach((o=>{var l;null===(l=o.current)||void 0===l||l.removeEventListener(e,t)}))}))}}),[ee,Ue,he,Ae,ke,H,M,W,Ce,A,O]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{var e,t;let o=null!==(t=null!==(e=null==be?void 0:be.anchorSelect)&&void 0!==e?e:p)&&void 0!==t?t:"";!o&&l&&(o=`[data-tooltip-id='${l.replace(/'/g,"\\'")}']`);const r=new MutationObserver((e=>{const t=[],r=[];e.forEach((e=>{if("attributes"===e.type&&"data-tooltip-id"===e.attributeName){e.target.getAttribute("data-tooltip-id")===l?t.push(e.target):e.oldValue===l&&r.push(e.target)}if("childList"===e.type){if(ee){const t=[...e.removedNodes].filter((e=>1===e.nodeType));if(o)try{r.push(...t.filter((e=>e.matches(o)))),r.push(...t.flatMap((e=>[...e.querySelectorAll(o)])))}catch(e){}t.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,ee))&&(we(!1),Ie(!1),te(null),R(ue),R(de),!0)}))}if(o)try{const l=[...e.addedNodes].filter((e=>1===e.nodeType));t.push(...l.filter((e=>e.matches(o)))),t.push(...l.flatMap((e=>[...e.querySelectorAll(o)])))}catch(e){}}})),(t.length||r.length)&&Te((e=>[...e.filter((e=>!r.includes(e))),...t]))}));return r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"],attributeOldValue:!0}),()=>{r.disconnect()}}),[l,p,null==be?void 0:be.anchorSelect,ee]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{Ue()}),[Ue]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{if(!(null==G?void 0:G.current))return()=>null;const e=new ResizeObserver((()=>{setTimeout((()=>Ue()))}));return e.observe(G.current),()=>{e.disconnect()}}),[Y,null==G?void 0:G.current]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{var e;const t=document.querySelector(`[id='${d}']`),o=[...ke,t];ee&&o.includes(ee)||te(null!==(e=ke[0])&&void 0!==e?e:t)}),[d,ke,ee]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>(J&&Ie(!0),()=>{R(ue),R(de)})),[]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{var e;let t=null!==(e=null==be?void 0:be.anchorSelect)&&void 0!==e?e:p;if(!t&&l&&(t=`[data-tooltip-id='${l.replace(/'/g,"\\'")}']`),t)try{const e=Array.from(document.querySelectorAll(t));Te(e)}catch(e){Te([])}}),[l,p,null==be?void 0:be.anchorSelect]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{ue.current&&(R(ue),je(A))}),[A]);const Xe=null!==(ce=null==be?void 0:be.content)&&void 0!==ce?ce:Y,Ye=fe&&Object.keys(ve.tooltipStyles).length>0;return (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(t,(()=>({open:e=>{if(null==e?void 0:e.anchorSelect)try{document.querySelector(e.anchorSelect)}catch(t){return void console.warn(`[react-tooltip] "${e.anchorSelect}" is not a valid CSS selector`)}Se(null!=e?e:null),(null==e?void 0:e.delay)?je(e.delay):Ie(!0)},close:e=>{(null==e?void 0:e.delay)?Be(e.delay):Ie(!1)},activeAnchor:ee,place:ve.place,isOpen:Boolean(he&&!x&&Xe&&Ye)}))),he&&!x&&Xe?react__WEBPACK_IMPORTED_MODULE_0__.createElement(g,{id:l,role:ie,className:classnames__WEBPACK_IMPORTED_MODULE_1__("react-tooltip",B.tooltip,D.tooltip,D[u],i,`react-tooltip__place-${ve.place}`,B[Ye?"show":"closing"],Ye?"react-tooltip__show":"react-tooltip__closing","fixed"===b&&B.fixed,$&&B.clickable),onTransitionEnd:e=>{R(pe),fe||"opacity"!==e.propertyName||(we(!1),Se(null),null==U||U())},style:{...V,...ve.tooltipStyles,opacity:void 0!==le&&Ye?le:void 0},ref:se},Xe,react__WEBPACK_IMPORTED_MODULE_0__.createElement(g,{className:classnames__WEBPACK_IMPORTED_MODULE_1__("react-tooltip-arrow",B.arrow,D.arrow,c,N&&B.noArrow),style:{...ve.tooltipArrowStyles,background:re?`linear-gradient(to right bottom, transparent 50%, ${re} 50%)`:void 0,"--rt-arrow-size":`${ne}px`},ref:ae})):null},H=({content:t})=>react__WEBPACK_IMPORTED_MODULE_0__.createElement("span",{dangerouslySetInnerHTML:{__html:t}}),M=react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((({id:t,anchorId:l,anchorSelect:n,content:i,html:c,render:a,className:u,classNameArrow:d,variant:p="dark",place:v="top",offset:m=10,wrapper:f="div",children:h=null,events:w=["hover"],openOnClick:b=!1,positionStrategy:S="absolute",middlewares:g,delayShow:E=0,delayHide:_=0,float:O=!1,hidden:k=!1,noArrow:T=!1,clickable:L=!1,closeOnEsc:C=!1,closeOnScroll:R=!1,closeOnResize:x=!1,openEvents:N,closeEvents:$,globalCloseEvents:I,imperativeModeOnly:j=!1,style:B,position:D,isOpen:M,defaultIsOpen:W=!1,disableStyleInjection:P=!1,border:V,opacity:F,arrowColor:K,arrowSize:U,setIsOpen:X,afterShow:Y,afterHide:G,disableTooltip:Z,role:J="tooltip"},Q)=>{const[ee,te]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(i),[oe,le]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(c),[re,ne]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(v),[ie,ce]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(p),[se,ae]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(m),[ue,de]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(E),[pe,ve]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_),[me,fe]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(O),[ye,he]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(k),[we,be]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(f),[Se,ge]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(w),[Ee,Ae]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(S),[_e,Oe]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),[ke,Te]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),Le=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(P),{anchorRefs:Ce,activeAnchor:Re}=z(t),xe=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var l;if(o.startsWith("data-tooltip-")){t[o.replace(/^data-tooltip-/,"")]=null!==(l=null==e?void 0:e.getAttribute(o))&&void 0!==l?l:null}return t}),{}),Ne=e=>{const t={place:e=>{var t;ne(null!==(t=e)&&void 0!==t?t:v)},content:e=>{te(null!=e?e:i)},html:e=>{le(null!=e?e:c)},variant:e=>{var t;ce(null!==(t=e)&&void 0!==t?t:p)},offset:e=>{ae(null===e?m:Number(e))},wrapper:e=>{var t;be(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(" ");ge(null!=t?t:w)},"position-strategy":e=>{var t;Ae(null!==(t=e)&&void 0!==t?t:S)},"delay-show":e=>{de(null===e?E:Number(e))},"delay-hide":e=>{ve(null===e?_:Number(e))},float:e=>{fe(null===e?O:"true"===e)},hidden:e=>{he(null===e?k:"true"===e)},"class-name":e=>{Oe(e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var l;null===(l=t[e])||void 0===l||l.call(t,o)}))};(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{te(i)}),[i]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{le(c)}),[c]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{ne(v)}),[v]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{ce(p)}),[p]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{ae(m)}),[m]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{de(E)}),[E]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{ve(_)}),[_]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{fe(O)}),[O]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{he(k)}),[k]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{Ae(S)}),[S]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{Le.current!==P&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")}),[P]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:"core"===P,disableBase:P}}))}),[]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{var e;const o=new Set(Ce);let r=n;if(!r&&t&&(r=`[data-tooltip-id='${t.replace(/'/g,"\\'")}']`),r)try{document.querySelectorAll(r).forEach((e=>{o.add({current:e})}))}catch(e){console.warn(`[react-tooltip] "${r}" is not a valid CSS selector`)}const i=document.querySelector(`[id='${l}']`);if(i&&o.add({current:i}),!o.size)return()=>null;const c=null!==(e=null!=ke?ke:i)&&void 0!==e?e:Re.current,s=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const o=xe(c);Ne(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(c){const e=xe(c);Ne(e),s.observe(c,a)}return()=>{s.disconnect()}}),[Ce,Re,ke,l,n]),(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((()=>{(null==B?void 0:B.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),V&&!A("border",`${V}`)&&console.warn(`[react-tooltip] "${V}" is not a valid \`border\`.`),(null==B?void 0:B.opacity)&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),F&&!A("opacity",`${F}`)&&console.warn(`[react-tooltip] "${F}" is not a valid \`opacity\`.`)}),[]);let $e=h;const Ie=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);if(a){const t=a({content:(null==ke?void 0:ke.getAttribute("data-tooltip-content"))||ee||null,activeAnchor:ke});$e=t?react__WEBPACK_IMPORTED_MODULE_0__.createElement("div",{ref:Ie,className:"react-tooltip-content-wrapper"},t):null}else ee&&($e=ee);oe&&($e=react__WEBPACK_IMPORTED_MODULE_0__.createElement(H,{content:oe}));const ze={forwardRef:Q,id:t,anchorId:l,anchorSelect:n,className:classnames__WEBPACK_IMPORTED_MODULE_1__(u,_e),classNameArrow:d,content:$e,contentWrapperRef:Ie,place:re,variant:ie,offset:se,wrapper:we,events:Se,openOnClick:b,positionStrategy:Ee,middlewares:g,delayShow:ue,delayHide:pe,float:me,hidden:ye,noArrow:T,clickable:L,closeOnEsc:C,closeOnScroll:R,closeOnResize:x,openEvents:N,closeEvents:$,globalCloseEvents:I,imperativeModeOnly:j,style:B,position:D,isOpen:M,defaultIsOpen:W,border:V,opacity:F,arrowColor:K,arrowSize:U,setIsOpen:X,afterShow:Y,afterHide:G,disableTooltip:Z,activeAnchor:ke,setActiveAnchor:e=>Te(e),role:J};return react__WEBPACK_IMPORTED_MODULE_0__.createElement(q,{...ze})}));"undefined"!=typeof window&&window.addEventListener("react-tooltip-inject-styles",(e=>{e.detail.disableCore||S({css:`:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s;--rt-arrow-size:8px}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit;z-index:-1}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}`,type:"core"}),e.detail.disableBase||S({css:`
.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:var(--rt-arrow-size);height:var(--rt-arrow-size)}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:"base"})}));


/***/ }),

/***/ 7015:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var players_exports = {};
__export(players_exports, {
  default: () => players_default
});
module.exports = __toCommonJS(players_exports);
var import_utils = __webpack_require__(5635);
var import_patterns = __webpack_require__(327);
var players_default = [
  {
    key: "youtube",
    name: "YouTube",
    canPlay: import_patterns.canPlay.youtube,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerYouTube */ 446).then(__webpack_require__.t.bind(__webpack_require__, 2910, 23)))
  },
  {
    key: "soundcloud",
    name: "SoundCloud",
    canPlay: import_patterns.canPlay.soundcloud,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerSoundCloud */ 979).then(__webpack_require__.t.bind(__webpack_require__, 3127, 23)))
  },
  {
    key: "vimeo",
    name: "Vimeo",
    canPlay: import_patterns.canPlay.vimeo,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerVimeo */ 173).then(__webpack_require__.t.bind(__webpack_require__, 1423, 23)))
  },
  {
    key: "mux",
    name: "Mux",
    canPlay: import_patterns.canPlay.mux,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerMux */ 723).then(__webpack_require__.t.bind(__webpack_require__, 7553, 23)))
  },
  {
    key: "facebook",
    name: "Facebook",
    canPlay: import_patterns.canPlay.facebook,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerFacebook */ 887).then(__webpack_require__.t.bind(__webpack_require__, 6581, 23)))
  },
  {
    key: "streamable",
    name: "Streamable",
    canPlay: import_patterns.canPlay.streamable,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerStreamable */ 627).then(__webpack_require__.t.bind(__webpack_require__, 9643, 23)))
  },
  {
    key: "wistia",
    name: "Wistia",
    canPlay: import_patterns.canPlay.wistia,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerWistia */ 340).then(__webpack_require__.t.bind(__webpack_require__, 3330, 23)))
  },
  {
    key: "twitch",
    name: "Twitch",
    canPlay: import_patterns.canPlay.twitch,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerTwitch */ 42).then(__webpack_require__.t.bind(__webpack_require__, 1400, 23)))
  },
  {
    key: "dailymotion",
    name: "DailyMotion",
    canPlay: import_patterns.canPlay.dailymotion,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerDailyMotion */ 328).then(__webpack_require__.t.bind(__webpack_require__, 9348, 23)))
  },
  {
    key: "mixcloud",
    name: "Mixcloud",
    canPlay: import_patterns.canPlay.mixcloud,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerMixcloud */ 570).then(__webpack_require__.t.bind(__webpack_require__, 3276, 23)))
  },
  {
    key: "vidyard",
    name: "Vidyard",
    canPlay: import_patterns.canPlay.vidyard,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerVidyard */ 392).then(__webpack_require__.t.bind(__webpack_require__, 1171, 23)))
  },
  {
    key: "kaltura",
    name: "Kaltura",
    canPlay: import_patterns.canPlay.kaltura,
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerKaltura */ 463).then(__webpack_require__.t.bind(__webpack_require__, 7945, 23)))
  },
  {
    key: "file",
    name: "FilePlayer",
    canPlay: import_patterns.canPlay.file,
    canEnablePIP: (url) => {
      return import_patterns.canPlay.file(url) && (document.pictureInPictureEnabled || (0, import_utils.supportsWebKitPresentationMode)()) && !import_patterns.AUDIO_EXTENSIONS.test(url);
    },
    lazyPlayer: (0, import_utils.lazy)(() => __webpack_require__.e(/* import() | reactPlayerFilePlayer */ 458).then(__webpack_require__.t.bind(__webpack_require__, 688, 23)))
  }
];


/***/ }),

/***/ 7035:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setMonth = setMonth;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2575);
var _index3 = __webpack_require__(4446);

/**
 * The {@link setMonth} function options.
 */

/**
 * @name setMonth
 * @category Month Helpers
 * @summary Set the month to the given date.
 *
 * @description
 * Set the month to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param month - The month index to set (0-11)
 * @param options - The options
 *
 * @returns The new date with the month set
 *
 * @example
 * // Set February to 1 September 2014:
 * const result = setMonth(new Date(2014, 8, 1), 1)
 * //=> Sat Feb 01 2014 00:00:00
 */
function setMonth(date, month, options) {
  const _date = (0, _index3.toDate)(date, options?.in);
  const year = _date.getFullYear();
  const day = _date.getDate();

  const midMonth = (0, _index.constructFrom)(options?.in || date, 0);
  midMonth.setFullYear(year, month, 15);
  midMonth.setHours(0, 0, 0, 0);
  const daysInMonth = (0, _index2.getDaysInMonth)(midMonth);

  // Set the earlier date, allows to wrap Jan 31 to Feb 28
  _date.setMonth(month, Math.min(day, daysInMonth));
  return _date;
}


/***/ }),

/***/ 7044:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getTime = getTime;
var _index = __webpack_require__(4446);

/**
 * @name getTime
 * @category Timestamp Helpers
 * @summary Get the milliseconds timestamp of the given date.
 *
 * @description
 * Get the milliseconds timestamp of the given date.
 *
 * @param date - The given date
 *
 * @returns The timestamp
 *
 * @example
 * // Get the timestamp of 29 February 2012 11:45:05.123:
 * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))
 * //=> 1330515905123
 */
function getTime(date) {
  return +(0, _index.toDate)(date);
}


/***/ }),

/***/ 7083:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.longFormatters = void 0;

const dateLongFormatter = (pattern, formatLong) => {
  switch (pattern) {
    case "P":
      return formatLong.date({ width: "short" });
    case "PP":
      return formatLong.date({ width: "medium" });
    case "PPP":
      return formatLong.date({ width: "long" });
    case "PPPP":
    default:
      return formatLong.date({ width: "full" });
  }
};

const timeLongFormatter = (pattern, formatLong) => {
  switch (pattern) {
    case "p":
      return formatLong.time({ width: "short" });
    case "pp":
      return formatLong.time({ width: "medium" });
    case "ppp":
      return formatLong.time({ width: "long" });
    case "pppp":
    default:
      return formatLong.time({ width: "full" });
  }
};

const dateTimeLongFormatter = (pattern, formatLong) => {
  const matchResult = pattern.match(/(P+)(p+)?/) || [];
  const datePattern = matchResult[1];
  const timePattern = matchResult[2];

  if (!timePattern) {
    return dateLongFormatter(pattern, formatLong);
  }

  let dateTimeFormat;

  switch (datePattern) {
    case "P":
      dateTimeFormat = formatLong.dateTime({ width: "short" });
      break;
    case "PP":
      dateTimeFormat = formatLong.dateTime({ width: "medium" });
      break;
    case "PPP":
      dateTimeFormat = formatLong.dateTime({ width: "long" });
      break;
    case "PPPP":
    default:
      dateTimeFormat = formatLong.dateTime({ width: "full" });
      break;
  }

  return dateTimeFormat
    .replace("{{date}}", dateLongFormatter(datePattern, formatLong))
    .replace("{{time}}", timeLongFormatter(timePattern, formatLong));
};

const longFormatters = (exports.longFormatters = {
  p: timeLongFormatter,
  P: dateTimeLongFormatter,
});


/***/ }),

/***/ 7144:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.parseJSON = parseJSON;
var _index = __webpack_require__(4446);

/**
 * The {@link parseJSON} function options.
 */

/**
 * Converts a complete ISO date string in UTC time, the typical format for transmitting
 * a date in JSON, to a JavaScript `Date` instance.
 *
 * This is a minimal implementation for converting dates retrieved from a JSON API to
 * a `Date` instance which can be used with other functions in the `date-fns` library.
 * The following formats are supported:
 *
 * - `2000-03-15T05:20:10.123Z`: The output of `.toISOString()` and `JSON.stringify(new Date())`
 * - `2000-03-15T05:20:10Z`: Without milliseconds
 * - `2000-03-15T05:20:10+00:00`: With a zero offset, the default JSON encoded format in some other languages
 * - `2000-03-15T05:20:10+05:45`: With a positive or negative offset, the default JSON encoded format in some other languages
 * - `2000-03-15T05:20:10+0000`: With a zero offset without a colon
 * - `2000-03-15T05:20:10`: Without a trailing 'Z' symbol
 * - `2000-03-15T05:20:10.1234567`: Up to 7 digits in milliseconds field. Only first 3 are taken into account since JS does not allow fractional milliseconds
 * - `2000-03-15 05:20:10`: With a space instead of a 'T' separator for APIs returning a SQL date without reformatting
 *
 * For convenience and ease of use these other input types are also supported
 * via [toDate](https://date-fns.org/docs/toDate):
 *
 * - A `Date` instance will be cloned
 * - A `number` will be treated as a timestamp
 *
 * Any other input type or invalid date strings will return an `Invalid Date`.
 *
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param dateStr - A fully formed ISO8601 date string to convert
 * @param options - An object with options
 *
 * @returns The parsed date in the local time zone
 */
function parseJSON(dateStr, options) {
  const parts = dateStr.match(
    /(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(?:\.(\d{0,7}))?(?:Z|(.)(\d{2}):?(\d{2})?)?/,
  );

  if (!parts) return (0, _index.toDate)(NaN, options?.in);

  return (0, _index.toDate)(
    Date.UTC(
      +parts[1],
      +parts[2] - 1,
      +parts[3],
      +parts[4] - (+parts[9] || 0) * (parts[8] == "-" ? -1 : 1),
      +parts[5] - (+parts[10] || 0) * (parts[8] == "-" ? -1 : 1),
      +parts[6],
      +((parts[7] || "0") + "00").substring(0, 3),
    ),
    options?.in,
  );
}


/***/ }),

/***/ 7181:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatLong = void 0;
var _index = __webpack_require__(5624);

const dateFormats = {
  full: "EEEE, MMMM do, y",
  long: "MMMM do, y",
  medium: "MMM d, y",
  short: "MM/dd/yyyy",
};

const timeFormats = {
  full: "h:mm:ss a zzzz",
  long: "h:mm:ss a z",
  medium: "h:mm:ss a",
  short: "h:mm a",
};

const dateTimeFormats = {
  full: "{{date}} 'at' {{time}}",
  long: "{{date}} 'at' {{time}}",
  medium: "{{date}}, {{time}}",
  short: "{{date}}, {{time}}",
};

const formatLong = (exports.formatLong = {
  date: (0, _index.buildFormatLongFn)({
    formats: dateFormats,
    defaultWidth: "full",
  }),

  time: (0, _index.buildFormatLongFn)({
    formats: timeFormats,
    defaultWidth: "full",
  }),

  dateTime: (0, _index.buildFormatLongFn)({
    formats: dateTimeFormats,
    defaultWidth: "full",
  }),
});


/***/ }),

/***/ 7256:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isMatch = isMatch;
var _index = __webpack_require__(7489);
var _index2 = __webpack_require__(4266);

/**
 * The {@link isMatch} function options.
 */

/**
 * @name isMatch
 * @category Common Helpers
 * @summary validates the date string against given formats
 *
 * @description
 * Return the true if given date is string correct against the given format else
 * will return false.
 *
 * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.
 * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * The characters in the format string wrapped between two single quotes characters (') are escaped.
 * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
 *
 * Format of the format string is based on Unicode Technical Standard #35:
 * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 * with a few additions (see note 5 below the table).
 *
 * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited
 * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:
 *
 * ```javascript
 * isMatch('23 AM', 'HH a')
 * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time
 * ```
 *
 * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true
 *
 * Accepted format string patterns:
 * | Unit                            |Prior| Pattern | Result examples                   | Notes |
 * |---------------------------------|-----|---------|-----------------------------------|-------|
 * | Era                             | 140 | G..GGG  | AD, BC                            |       |
 * |                                 |     | GGGG    | Anno Domini, Before Christ        | 2     |
 * |                                 |     | GGGGG   | A, B                              |       |
 * | Calendar year                   | 130 | y       | 44, 1, 1900, 2017, 9999           | 4     |
 * |                                 |     | yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |
 * |                                 |     | yy      | 44, 01, 00, 17                    | 4     |
 * |                                 |     | yyy     | 044, 001, 123, 999                | 4     |
 * |                                 |     | yyyy    | 0044, 0001, 1900, 2017            | 4     |
 * |                                 |     | yyyyy   | ...                               | 2,4   |
 * | Local week-numbering year       | 130 | Y       | 44, 1, 1900, 2017, 9000           | 4     |
 * |                                 |     | Yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |
 * |                                 |     | YY      | 44, 01, 00, 17                    | 4,6   |
 * |                                 |     | YYY     | 044, 001, 123, 999                | 4     |
 * |                                 |     | YYYY    | 0044, 0001, 1900, 2017            | 4,6   |
 * |                                 |     | YYYYY   | ...                               | 2,4   |
 * | ISO week-numbering year         | 130 | R       | -43, 1, 1900, 2017, 9999, -9999   | 4,5   |
 * |                                 |     | RR      | -43, 01, 00, 17                   | 4,5   |
 * |                                 |     | RRR     | -043, 001, 123, 999, -999         | 4,5   |
 * |                                 |     | RRRR    | -0043, 0001, 2017, 9999, -9999    | 4,5   |
 * |                                 |     | RRRRR   | ...                               | 2,4,5 |
 * | Extended year                   | 130 | u       | -43, 1, 1900, 2017, 9999, -999    | 4     |
 * |                                 |     | uu      | -43, 01, 99, -99                  | 4     |
 * |                                 |     | uuu     | -043, 001, 123, 999, -999         | 4     |
 * |                                 |     | uuuu    | -0043, 0001, 2017, 9999, -9999    | 4     |
 * |                                 |     | uuuuu   | ...                               | 2,4   |
 * | Quarter (formatting)            | 120 | Q       | 1, 2, 3, 4                        |       |
 * |                                 |     | Qo      | 1st, 2nd, 3rd, 4th                | 5     |
 * |                                 |     | QQ      | 01, 02, 03, 04                    |       |
 * |                                 |     | QQQ     | Q1, Q2, Q3, Q4                    |       |
 * |                                 |     | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 |     | QQQQQ   | 1, 2, 3, 4                        | 4     |
 * | Quarter (stand-alone)           | 120 | q       | 1, 2, 3, 4                        |       |
 * |                                 |     | qo      | 1st, 2nd, 3rd, 4th                | 5     |
 * |                                 |     | qq      | 01, 02, 03, 04                    |       |
 * |                                 |     | qqq     | Q1, Q2, Q3, Q4                    |       |
 * |                                 |     | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 |     | qqqqq   | 1, 2, 3, 4                        | 3     |
 * | Month (formatting)              | 110 | M       | 1, 2, ..., 12                     |       |
 * |                                 |     | Mo      | 1st, 2nd, ..., 12th               | 5     |
 * |                                 |     | MM      | 01, 02, ..., 12                   |       |
 * |                                 |     | MMM     | Jan, Feb, ..., Dec                |       |
 * |                                 |     | MMMM    | January, February, ..., December  | 2     |
 * |                                 |     | MMMMM   | J, F, ..., D                      |       |
 * | Month (stand-alone)             | 110 | L       | 1, 2, ..., 12                     |       |
 * |                                 |     | Lo      | 1st, 2nd, ..., 12th               | 5     |
 * |                                 |     | LL      | 01, 02, ..., 12                   |       |
 * |                                 |     | LLL     | Jan, Feb, ..., Dec                |       |
 * |                                 |     | LLLL    | January, February, ..., December  | 2     |
 * |                                 |     | LLLLL   | J, F, ..., D                      |       |
 * | Local week of year              | 100 | w       | 1, 2, ..., 53                     |       |
 * |                                 |     | wo      | 1st, 2nd, ..., 53th               | 5     |
 * |                                 |     | ww      | 01, 02, ..., 53                   |       |
 * | ISO week of year                | 100 | I       | 1, 2, ..., 53                     | 5     |
 * |                                 |     | Io      | 1st, 2nd, ..., 53th               | 5     |
 * |                                 |     | II      | 01, 02, ..., 53                   | 5     |
 * | Day of month                    |  90 | d       | 1, 2, ..., 31                     |       |
 * |                                 |     | do      | 1st, 2nd, ..., 31st               | 5     |
 * |                                 |     | dd      | 01, 02, ..., 31                   |       |
 * | Day of year                     |  90 | D       | 1, 2, ..., 365, 366               | 7     |
 * |                                 |     | Do      | 1st, 2nd, ..., 365th, 366th       | 5     |
 * |                                 |     | DD      | 01, 02, ..., 365, 366             | 7     |
 * |                                 |     | DDD     | 001, 002, ..., 365, 366           |       |
 * |                                 |     | DDDD    | ...                               | 2     |
 * | Day of week (formatting)        |  90 | E..EEE  | Mon, Tue, Wed, ..., Su            |       |
 * |                                 |     | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 |     | EEEEE   | M, T, W, T, F, S, S               |       |
 * |                                 |     | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | ISO day of week (formatting)    |  90 | i       | 1, 2, 3, ..., 7                   | 5     |
 * |                                 |     | io      | 1st, 2nd, ..., 7th                | 5     |
 * |                                 |     | ii      | 01, 02, ..., 07                   | 5     |
 * |                                 |     | iii     | Mon, Tue, Wed, ..., Su            | 5     |
 * |                                 |     | iiii    | Monday, Tuesday, ..., Sunday      | 2,5   |
 * |                                 |     | iiiii   | M, T, W, T, F, S, S               | 5     |
 * |                                 |     | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 5     |
 * | Local day of week (formatting)  |  90 | e       | 2, 3, 4, ..., 1                   |       |
 * |                                 |     | eo      | 2nd, 3rd, ..., 1st                | 5     |
 * |                                 |     | ee      | 02, 03, ..., 01                   |       |
 * |                                 |     | eee     | Mon, Tue, Wed, ..., Su            |       |
 * |                                 |     | eeee    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 |     | eeeee   | M, T, W, T, F, S, S               |       |
 * |                                 |     | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | Local day of week (stand-alone) |  90 | c       | 2, 3, 4, ..., 1                   |       |
 * |                                 |     | co      | 2nd, 3rd, ..., 1st                | 5     |
 * |                                 |     | cc      | 02, 03, ..., 01                   |       |
 * |                                 |     | ccc     | Mon, Tue, Wed, ..., Su            |       |
 * |                                 |     | cccc    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 |     | ccccc   | M, T, W, T, F, S, S               |       |
 * |                                 |     | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | AM, PM                          |  80 | a..aaa  | AM, PM                            |       |
 * |                                 |     | aaaa    | a.m., p.m.                        | 2     |
 * |                                 |     | aaaaa   | a, p                              |       |
 * | AM, PM, noon, midnight          |  80 | b..bbb  | AM, PM, noon, midnight            |       |
 * |                                 |     | bbbb    | a.m., p.m., noon, midnight        | 2     |
 * |                                 |     | bbbbb   | a, p, n, mi                       |       |
 * | Flexible day period             |  80 | B..BBB  | at night, in the morning, ...     |       |
 * |                                 |     | BBBB    | at night, in the morning, ...     | 2     |
 * |                                 |     | BBBBB   | at night, in the morning, ...     |       |
 * | Hour [1-12]                     |  70 | h       | 1, 2, ..., 11, 12                 |       |
 * |                                 |     | ho      | 1st, 2nd, ..., 11th, 12th         | 5     |
 * |                                 |     | hh      | 01, 02, ..., 11, 12               |       |
 * | Hour [0-23]                     |  70 | H       | 0, 1, 2, ..., 23                  |       |
 * |                                 |     | Ho      | 0th, 1st, 2nd, ..., 23rd          | 5     |
 * |                                 |     | HH      | 00, 01, 02, ..., 23               |       |
 * | Hour [0-11]                     |  70 | K       | 1, 2, ..., 11, 0                  |       |
 * |                                 |     | Ko      | 1st, 2nd, ..., 11th, 0th          | 5     |
 * |                                 |     | KK      | 01, 02, ..., 11, 00               |       |
 * | Hour [1-24]                     |  70 | k       | 24, 1, 2, ..., 23                 |       |
 * |                                 |     | ko      | 24th, 1st, 2nd, ..., 23rd         | 5     |
 * |                                 |     | kk      | 24, 01, 02, ..., 23               |       |
 * | Minute                          |  60 | m       | 0, 1, ..., 59                     |       |
 * |                                 |     | mo      | 0th, 1st, ..., 59th               | 5     |
 * |                                 |     | mm      | 00, 01, ..., 59                   |       |
 * | Second                          |  50 | s       | 0, 1, ..., 59                     |       |
 * |                                 |     | so      | 0th, 1st, ..., 59th               | 5     |
 * |                                 |     | ss      | 00, 01, ..., 59                   |       |
 * | Seconds timestamp               |  40 | t       | 512969520                         |       |
 * |                                 |     | tt      | ...                               | 2     |
 * | Fraction of second              |  30 | S       | 0, 1, ..., 9                      |       |
 * |                                 |     | SS      | 00, 01, ..., 99                   |       |
 * |                                 |     | SSS     | 000, 001, ..., 999                |       |
 * |                                 |     | SSSS    | ...                               | 2     |
 * | Milliseconds timestamp          |  20 | T       | 512969520900                      |       |
 * |                                 |     | TT      | ...                               | 2     |
 * | Timezone (ISO-8601 w/ Z)        |  10 | X       | -08, +0530, Z                     |       |
 * |                                 |     | XX      | -0800, +0530, Z                   |       |
 * |                                 |     | XXX     | -08:00, +05:30, Z                 |       |
 * |                                 |     | XXXX    | -0800, +0530, Z, +123456          | 2     |
 * |                                 |     | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |
 * | Timezone (ISO-8601 w/o Z)       |  10 | x       | -08, +0530, +00                   |       |
 * |                                 |     | xx      | -0800, +0530, +0000               |       |
 * |                                 |     | xxx     | -08:00, +05:30, +00:00            | 2     |
 * |                                 |     | xxxx    | -0800, +0530, +0000, +123456      |       |
 * |                                 |     | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |
 * | Long localized date             |  NA | P       | 05/29/1453                        | 5,8   |
 * |                                 |     | PP      | May 29, 1453                      |       |
 * |                                 |     | PPP     | May 29th, 1453                    |       |
 * |                                 |     | PPPP    | Sunday, May 29th, 1453            | 2,5,8 |
 * | Long localized time             |  NA | p       | 12:00 AM                          | 5,8   |
 * |                                 |     | pp      | 12:00:00 AM                       |       |
 * | Combination of date and time    |  NA | Pp      | 05/29/1453, 12:00 AM              |       |
 * |                                 |     | PPpp    | May 29, 1453, 12:00:00 AM         |       |
 * |                                 |     | PPPpp   | May 29th, 1453 at ...             |       |
 * |                                 |     | PPPPpp  | Sunday, May 29th, 1453 at ...     | 2,5,8 |
 * Notes:
 * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale
 *    are the same as "stand-alone" units, but are different in some languages.
 *    "Formatting" units are declined according to the rules of the language
 *    in the context of a date. "Stand-alone" units are always nominative singular.
 *    In `format` function, they will produce different result:
 *
 *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`
 *
 *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`
 *
 *    `isMatch` will try to match both formatting and stand-alone units interchangeably.
 *
 * 2. Any sequence of the identical letters is a pattern, unless it is escaped by
 *    the single quote characters (see below).
 *    If the sequence is longer than listed in table:
 *    - for numerical units (`yyyyyyyy`) `isMatch` will try to match a number
 *      as wide as the sequence
 *    - for text units (`MMMMMMMM`) `isMatch` will try to match the widest variation of the unit.
 *      These variations are marked with "2" in the last column of the table.
 *
 * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.
 *    These tokens represent the shortest form of the quarter.
 *
 * 4. The main difference between `y` and `u` patterns are B.C. years:
 *
 *    | Year | `y` | `u` |
 *    |------|-----|-----|
 *    | AC 1 |   1 |   1 |
 *    | BC 1 |   1 |   0 |
 *    | BC 2 |   2 |  -1 |
 *
 *    Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:
 *
 *    `isMatch('50', 'yy') //=> true`
 *
 *    `isMatch('75', 'yy') //=> true`
 *
 *    while `uu` will use the year as is:
 *
 *    `isMatch('50', 'uu') //=> true`
 *
 *    `isMatch('75', 'uu') //=> true`
 *
 *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),
 *    except local week-numbering years are dependent on `options.weekStartsOn`
 *    and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)
 *    and [setWeekYear](https://date-fns.org/docs/setWeekYear)).
 *
 * 5. These patterns are not in the Unicode Technical Standard #35:
 *    - `i`: ISO day of week
 *    - `I`: ISO week of year
 *    - `R`: ISO week-numbering year
 *    - `o`: ordinal number modifier
 *    - `P`: long localized date
 *    - `p`: long localized time
 *
 * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.
 *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.
 *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based
 *    on the given locale.
 *
 *    using `en-US` locale: `P` => `MM/dd/yyyy`
 *    using `en-US` locale: `p` => `hh:mm a`
 *    using `pt-BR` locale: `P` => `dd/MM/yyyy`
 *    using `pt-BR` locale: `p` => `HH:mm`
 *
 * Values will be checked in the descending order of its unit's priority.
 * Units of an equal priority overwrite each other in the order of appearance.
 *
 * If no values of higher priority are matched (e.g. when matching string 'January 1st' without a year),
 * the values will be taken from today's using `new Date()` date which works as a context of parsing.
 *
 * The result may vary by locale.
 *
 * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.
 *
 * @param dateStr - The date string to verify
 * @param format - The string of tokens
 * @param options - An object with options.
 *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * @returns Is format string a match for date string?
 *
 * @throws `options.locale` must contain `match` property
 * @throws use `yyyy` instead of `YYYY` for formatting years; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `yy` instead of `YY` for formatting years; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `d` instead of `D` for formatting days of the month; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `dd` instead of `DD` for formatting days of the month; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws format string contains an unescaped latin alphabet character
 *
 * @example
 * // Match 11 February 2014 from middle-endian format:
 * const result = isMatch('02/11/2014', 'MM/dd/yyyy')
 * //=> true
 *
 * @example
 * // Match 28th of February in Esperanto locale in the context of 2010 year:
 * import eo from 'date-fns/locale/eo'
 * const result = isMatch('28-a de februaro', "do 'de' MMMM", {
 *   locale: eo
 * })
 * //=> true
 */
function isMatch(dateStr, formatStr, options) {
  return (0, _index.isValid)(
    (0, _index2.parse)(dateStr, formatStr, new Date(), options),
  );
}


/***/ }),

/***/ 7310:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.LocalWeekYearParser = void 0;
var _index = __webpack_require__(6708);

var _index2 = __webpack_require__(5472);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// Local week-numbering year
class LocalWeekYearParser extends _Parser.Parser {
  priority = 130;

  parse(dateString, token, match) {
    const valueCallback = (year) => ({
      year,
      isTwoDigitYear: token === "YY",
    });

    switch (token) {
      case "Y":
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(4, dateString),
          valueCallback,
        );
      case "Yo":
        return (0, _utils.mapValue)(
          match.ordinalNumber(dateString, {
            unit: "year",
          }),
          valueCallback,
        );
      default:
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(token.length, dateString),
          valueCallback,
        );
    }
  }

  validate(_date, value) {
    return value.isTwoDigitYear || value.year > 0;
  }

  set(date, flags, value, options) {
    const currentYear = (0, _index.getWeekYear)(date, options);

    if (value.isTwoDigitYear) {
      const normalizedTwoDigitYear = (0, _utils.normalizeTwoDigitYear)(
        value.year,
        currentYear,
      );
      date.setFullYear(
        normalizedTwoDigitYear,
        0,
        options.firstWeekContainsDate,
      );
      date.setHours(0, 0, 0, 0);
      return (0, _index2.startOfWeek)(date, options);
    }

    const year =
      !("era" in flags) || flags.era === 1 ? value.year : 1 - value.year;
    date.setFullYear(year, 0, options.firstWeekContainsDate);
    date.setHours(0, 0, 0, 0);
    return (0, _index2.startOfWeek)(date, options);
  }

  incompatibleTokens = [
    "y",
    "R",
    "u",
    "Q",
    "q",
    "M",
    "L",
    "I",
    "d",
    "D",
    "i",
    "t",
    "T",
  ];
}
exports.LocalWeekYearParser = LocalWeekYearParser;


/***/ }),

/***/ 7369:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ISODayParser = void 0;
var _index = __webpack_require__(2240);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

// ISO day of week
class ISODayParser extends _Parser.Parser {
  priority = 90;

  parse(dateString, token, match) {
    const valueCallback = (value) => {
      if (value === 0) {
        return 7;
      }
      return value;
    };

    switch (token) {
      // 2
      case "i":
      case "ii": // 02
        return (0, _utils.parseNDigits)(token.length, dateString);
      // 2nd
      case "io":
        return match.ordinalNumber(dateString, { unit: "day" });
      // Tue
      case "iii":
        return (0, _utils.mapValue)(
          match.day(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
            match.day(dateString, {
              width: "short",
              context: "formatting",
            }) ||
            match.day(dateString, {
              width: "narrow",
              context: "formatting",
            }),
          valueCallback,
        );
      // T
      case "iiiii":
        return (0, _utils.mapValue)(
          match.day(dateString, {
            width: "narrow",
            context: "formatting",
          }),
          valueCallback,
        );
      // Tu
      case "iiiiii":
        return (0, _utils.mapValue)(
          match.day(dateString, {
            width: "short",
            context: "formatting",
          }) ||
            match.day(dateString, {
              width: "narrow",
              context: "formatting",
            }),
          valueCallback,
        );
      // Tuesday
      case "iiii":
      default:
        return (0, _utils.mapValue)(
          match.day(dateString, {
            width: "wide",
            context: "formatting",
          }) ||
            match.day(dateString, {
              width: "abbreviated",
              context: "formatting",
            }) ||
            match.day(dateString, {
              width: "short",
              context: "formatting",
            }) ||
            match.day(dateString, {
              width: "narrow",
              context: "formatting",
            }),
          valueCallback,
        );
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 7;
  }

  set(date, _flags, value) {
    date = (0, _index.setISODay)(date, value);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "y",
    "Y",
    "u",
    "q",
    "Q",
    "M",
    "L",
    "w",
    "d",
    "D",
    "E",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.ISODayParser = ISODayParser;


/***/ }),

/***/ 7374:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextMonday = nextMonday;
var _index = __webpack_require__(64);

/**
 * The {@link nextMonday} function options.
 */

/**
 * @name nextMonday
 * @category Weekday Helpers
 * @summary When is the next Monday?
 *
 * @description
 * When is the next Monday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, returned from the context function if passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Monday
 *
 * @example
 * // When is the next Monday after Mar, 22, 2020?
 * const result = nextMonday(new Date(2020, 2, 22))
 * //=> Mon Mar 23 2020 00:00:00
 */
function nextMonday(date, options) {
  return (0, _index.nextDay)(date, 1, options);
}


/***/ }),

/***/ 7489:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isValid = isValid;
var _index = __webpack_require__(4337);
var _index2 = __webpack_require__(4446);

/**
 * @name isValid
 * @category Common Helpers
 * @summary Is the given date valid?
 *
 * @description
 * Returns false if argument is Invalid Date and true otherwise.
 * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)
 * Invalid Date is a Date, whose time value is NaN.
 *
 * Time value of Date: http://es5.github.io/#x15.9.1.1
 *
 * @param date - The date to check
 *
 * @returns The date is valid
 *
 * @example
 * // For the valid date:
 * const result = isValid(new Date(2014, 1, 31))
 * //=> true
 *
 * @example
 * // For the value, convertible into a date:
 * const result = isValid(1393804800000)
 * //=> true
 *
 * @example
 * // For the invalid date:
 * const result = isValid(new Date(''))
 * //=> false
 */
function isValid(date) {
  return !(
    (!(0, _index.isDate)(date) && typeof date !== "number") ||
    isNaN(+(0, _index2.toDate)(date))
  );
}


/***/ }),

/***/ 7519:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getMonth = getMonth;
var _index = __webpack_require__(4446);

/**
 * The {@link getMonth} function options.
 */

/**
 * @name getMonth
 * @category Month Helpers
 * @summary Get the month of the given date.
 *
 * @description
 * Get the month of the given date.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The month index (0-11)
 *
 * @example
 * // Which month is 29 February 2012?
 * const result = getMonth(new Date(2012, 1, 29))
 * //=> 1
 */
function getMonth(date, options) {
  return (0, _index.toDate)(date, options?.in).getMonth();
}


/***/ }),

/***/ 7520:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.buildMatchPatternFn = buildMatchPatternFn;

function buildMatchPatternFn(args) {
  return (string, options = {}) => {
    const matchResult = string.match(args.matchPattern);
    if (!matchResult) return null;
    const matchedString = matchResult[0];

    const parseResult = string.match(args.parsePattern);
    if (!parseResult) return null;
    let value = args.valueCallback
      ? args.valueCallback(parseResult[0])
      : parseResult[0];

    // [TODO] I challenge you to fix the type
    value = options.valueCallback ? options.valueCallback(value) : value;

    const rest = string.slice(matchedString.length);

    return { value, rest };
  };
}


/***/ }),

/***/ 7568:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.parsers = void 0;
var _EraParser = __webpack_require__(6862);
var _YearParser = __webpack_require__(1497);
var _LocalWeekYearParser = __webpack_require__(7310);
var _ISOWeekYearParser = __webpack_require__(5304);
var _ExtendedYearParser = __webpack_require__(8042);
var _QuarterParser = __webpack_require__(4400);
var _StandAloneQuarterParser = __webpack_require__(8259);
var _MonthParser = __webpack_require__(9150);
var _StandAloneMonthParser = __webpack_require__(6309);
var _LocalWeekParser = __webpack_require__(2577);
var _ISOWeekParser = __webpack_require__(5079);
var _DateParser = __webpack_require__(8589);
var _DayOfYearParser = __webpack_require__(8490);
var _DayParser = __webpack_require__(7702);
var _LocalDayParser = __webpack_require__(5303);
var _StandAloneLocalDayParser = __webpack_require__(6638);
var _ISODayParser = __webpack_require__(7369);
var _AMPMParser = __webpack_require__(6633);
var _AMPMMidnightParser = __webpack_require__(3653);
var _DayPeriodParser = __webpack_require__(6265);
var _Hour1to12Parser = __webpack_require__(1869);
var _Hour0to23Parser = __webpack_require__(9612);
var _Hour0To11Parser = __webpack_require__(2167);
var _Hour1To24Parser = __webpack_require__(6842);
var _MinuteParser = __webpack_require__(4042);
var _SecondParser = __webpack_require__(5078);
var _FractionOfSecondParser = __webpack_require__(3495);
var _ISOTimezoneWithZParser = __webpack_require__(3306);
var _ISOTimezoneParser = __webpack_require__(5982);
var _TimestampSecondsParser = __webpack_require__(5261);
var _TimestampMillisecondsParser = __webpack_require__(5942);

/*
 * |     | Unit                           |     | Unit                           |
 * |-----|--------------------------------|-----|--------------------------------|
 * |  a  | AM, PM                         |  A* | Milliseconds in day            |
 * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |
 * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |
 * |  d  | Day of month                   |  D  | Day of year                    |
 * |  e  | Local day of week              |  E  | Day of week                    |
 * |  f  |                                |  F* | Day of week in month           |
 * |  g* | Modified Julian day            |  G  | Era                            |
 * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
 * |  i! | ISO day of week                |  I! | ISO week of year               |
 * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |
 * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |
 * |  l* | (deprecated)                   |  L  | Stand-alone month              |
 * |  m  | Minute                         |  M  | Month                          |
 * |  n  |                                |  N  |                                |
 * |  o! | Ordinal number modifier        |  O* | Timezone (GMT)                 |
 * |  p  |                                |  P  |                                |
 * |  q  | Stand-alone quarter            |  Q  | Quarter                        |
 * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |
 * |  s  | Second                         |  S  | Fraction of second             |
 * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |
 * |  u  | Extended year                  |  U* | Cyclic year                    |
 * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |
 * |  w  | Local week of year             |  W* | Week of month                  |
 * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |
 * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |
 * |  z* | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |
 *
 * Letters marked by * are not implemented but reserved by Unicode standard.
 *
 * Letters marked by ! are non-standard, but implemented by date-fns:
 * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)
 * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
 *   i.e. 7 for Sunday, 1 for Monday, etc.
 * - `I` is ISO week of year, as opposed to `w` which is local week of year.
 * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
 *   `R` is supposed to be used in conjunction with `I` and `i`
 *   for universal ISO week-numbering date, whereas
 *   `Y` is supposed to be used in conjunction with `w` and `e`
 *   for week-numbering date specific to the locale.
 */
const parsers = (exports.parsers = {
  G: new _EraParser.EraParser(),
  y: new _YearParser.YearParser(),
  Y: new _LocalWeekYearParser.LocalWeekYearParser(),
  R: new _ISOWeekYearParser.ISOWeekYearParser(),
  u: new _ExtendedYearParser.ExtendedYearParser(),
  Q: new _QuarterParser.QuarterParser(),
  q: new _StandAloneQuarterParser.StandAloneQuarterParser(),
  M: new _MonthParser.MonthParser(),
  L: new _StandAloneMonthParser.StandAloneMonthParser(),
  w: new _LocalWeekParser.LocalWeekParser(),
  I: new _ISOWeekParser.ISOWeekParser(),
  d: new _DateParser.DateParser(),
  D: new _DayOfYearParser.DayOfYearParser(),
  E: new _DayParser.DayParser(),
  e: new _LocalDayParser.LocalDayParser(),
  c: new _StandAloneLocalDayParser.StandAloneLocalDayParser(),
  i: new _ISODayParser.ISODayParser(),
  a: new _AMPMParser.AMPMParser(),
  b: new _AMPMMidnightParser.AMPMMidnightParser(),
  B: new _DayPeriodParser.DayPeriodParser(),
  h: new _Hour1to12Parser.Hour1to12Parser(),
  H: new _Hour0to23Parser.Hour0to23Parser(),
  K: new _Hour0To11Parser.Hour0To11Parser(),
  k: new _Hour1To24Parser.Hour1To24Parser(),
  m: new _MinuteParser.MinuteParser(),
  s: new _SecondParser.SecondParser(),
  S: new _FractionOfSecondParser.FractionOfSecondParser(),
  X: new _ISOTimezoneWithZParser.ISOTimezoneWithZParser(),
  x: new _ISOTimezoneParser.ISOTimezoneParser(),
  t: new _TimestampSecondsParser.TimestampSecondsParser(),
  T: new _TimestampMillisecondsParser.TimestampMillisecondsParser(),
});


/***/ }),

/***/ 7591:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addDays = addDays;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link addDays} function options.
 */

/**
 * @name addDays
 * @category Day Helpers
 * @summary Add the specified number of days to the given date.
 *
 * @description
 * Add the specified number of days to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of days to be added.
 * @param options - An object with options
 *
 * @returns The new date with the days added
 *
 * @example
 * // Add 10 days to 1 September 2014:
 * const result = addDays(new Date(2014, 8, 1), 10)
 * //=> Thu Sep 11 2014 00:00:00
 */
function addDays(date, amount, options) {
  const _date = (0, _index2.toDate)(date, options?.in);
  if (isNaN(amount)) return (0, _index.constructFrom)(options?.in || date, NaN);

  // If 0 days, no-op to avoid changing times in the hour before end of DST
  if (!amount) return _date;

  _date.setDate(_date.getDate() + amount);
  return _date;
}


/***/ }),

/***/ 7604:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var props_exports = {};
__export(props_exports, {
  defaultProps: () => defaultProps,
  propTypes: () => propTypes
});
module.exports = __toCommonJS(props_exports);
var import_prop_types = __toESM(__webpack_require__(5556));
const { string, bool, number, array, oneOfType, shape, object, func, node } = import_prop_types.default;
const propTypes = {
  url: oneOfType([string, array, object]),
  playing: bool,
  loop: bool,
  controls: bool,
  volume: number,
  muted: bool,
  playbackRate: number,
  width: oneOfType([string, number]),
  height: oneOfType([string, number]),
  style: object,
  progressInterval: number,
  playsinline: bool,
  pip: bool,
  stopOnUnmount: bool,
  light: oneOfType([bool, string, object]),
  playIcon: node,
  previewTabIndex: number,
  previewAriaLabel: string,
  fallback: node,
  oEmbedUrl: string,
  wrapper: oneOfType([
    string,
    func,
    shape({ render: func.isRequired })
  ]),
  config: shape({
    soundcloud: shape({
      options: object
    }),
    youtube: shape({
      playerVars: object,
      embedOptions: object,
      onUnstarted: func
    }),
    facebook: shape({
      appId: string,
      version: string,
      playerId: string,
      attributes: object
    }),
    dailymotion: shape({
      params: object
    }),
    vimeo: shape({
      playerOptions: object,
      title: string
    }),
    mux: shape({
      attributes: object,
      version: string
    }),
    file: shape({
      attributes: object,
      tracks: array,
      forceVideo: bool,
      forceAudio: bool,
      forceHLS: bool,
      forceSafariHLS: bool,
      forceDisableHls: bool,
      forceDASH: bool,
      forceFLV: bool,
      hlsOptions: object,
      hlsVersion: string,
      dashVersion: string,
      flvVersion: string
    }),
    wistia: shape({
      options: object,
      playerId: string,
      customControls: array
    }),
    mixcloud: shape({
      options: object
    }),
    twitch: shape({
      options: object,
      playerId: string
    }),
    vidyard: shape({
      options: object
    })
  }),
  onReady: func,
  onStart: func,
  onPlay: func,
  onPause: func,
  onBuffer: func,
  onBufferEnd: func,
  onEnded: func,
  onError: func,
  onDuration: func,
  onSeek: func,
  onPlaybackRateChange: func,
  onPlaybackQualityChange: func,
  onProgress: func,
  onClickPreview: func,
  onEnablePIP: func,
  onDisablePIP: func
};
const noop = () => {
};
const defaultProps = {
  playing: false,
  loop: false,
  controls: false,
  volume: null,
  muted: false,
  playbackRate: 1,
  width: "640px",
  height: "360px",
  style: {},
  progressInterval: 1e3,
  playsinline: false,
  pip: false,
  stopOnUnmount: true,
  light: false,
  fallback: null,
  wrapper: "div",
  previewTabIndex: 0,
  previewAriaLabel: "",
  oEmbedUrl: "https://noembed.com/embed?url={url}",
  config: {
    soundcloud: {
      options: {
        visual: true,
        // Undocumented, but makes player fill container and look better
        buying: false,
        liking: false,
        download: false,
        sharing: false,
        show_comments: false,
        show_playcount: false
      }
    },
    youtube: {
      playerVars: {
        playsinline: 1,
        showinfo: 0,
        rel: 0,
        iv_load_policy: 3,
        modestbranding: 1
      },
      embedOptions: {},
      onUnstarted: noop
    },
    facebook: {
      appId: "1309697205772819",
      version: "v3.3",
      playerId: null,
      attributes: {}
    },
    dailymotion: {
      params: {
        api: 1,
        "endscreen-enable": false
      }
    },
    vimeo: {
      playerOptions: {
        autopause: false,
        byline: false,
        portrait: false,
        title: false
      },
      title: null
    },
    mux: {
      attributes: {},
      version: "2"
    },
    file: {
      attributes: {},
      tracks: [],
      forceVideo: false,
      forceAudio: false,
      forceHLS: false,
      forceDASH: false,
      forceFLV: false,
      hlsOptions: {},
      hlsVersion: "1.1.4",
      dashVersion: "3.1.3",
      flvVersion: "1.5.0",
      forceDisableHls: false
    },
    wistia: {
      options: {},
      playerId: null,
      customControls: null
    },
    mixcloud: {
      options: {
        hide_cover: 1
      }
    },
    twitch: {
      options: {},
      playerId: null
    },
    vidyard: {
      options: {}
    }
  },
  onReady: noop,
  onStart: noop,
  onPlay: noop,
  onPause: noop,
  onBuffer: noop,
  onBufferEnd: noop,
  onEnded: noop,
  onError: noop,
  onDuration: noop,
  onSeek: noop,
  onPlaybackRateChange: noop,
  onPlaybackQualityChange: noop,
  onProgress: noop,
  onClickPreview: noop,
  onEnablePIP: noop,
  onDisablePIP: noop
};


/***/ }),

/***/ 7617:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.closestTo = closestTo;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(8741);
var _index3 = __webpack_require__(2956);

/**
 * The {@link closestTo} function options.
 */

/**
 * The {@link closestTo} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the date argument,
 * then the start interval date, and finally the end interval date. If
 * a context function is passed, it uses the context function return type.
 */

/**
 * @name closestTo
 * @category Common Helpers
 * @summary Return a date from the array closest to the given date.
 *
 * @description
 * Return a date from the array closest to the given date.
 *
 * @typeParam DateToCompare - Date to compare argument type.
 * @typeParam DatesType - Dates array argument type.
 * @typeParam Options - Options type.
 *
 * @param dateToCompare - The date to compare with
 * @param dates - The array to search
 *
 * @returns The date from the array closest to the given date or undefined if no valid value is given
 *
 * @example
 * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?
 * const dateToCompare = new Date(2015, 8, 6)
 * const result = closestTo(dateToCompare, [
 *   new Date(2000, 0, 1),
 *   new Date(2030, 0, 1)
 * ])
 * //=> Tue Jan 01 2030 00:00:00
 */
function closestTo(dateToCompare, dates, options) {
  const [dateToCompare_, ...dates_] = (0, _index.normalizeDates)(
    options?.in,
    dateToCompare,
    ...dates,
  );

  const index = (0, _index2.closestIndexTo)(dateToCompare_, dates_);

  if (typeof index === "number" && isNaN(index))
    return (0, _index3.constructFrom)(dateToCompare_, NaN);

  if (index !== undefined) return dates_[index];
}


/***/ }),

/***/ 7624:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfYear = endOfYear;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfYear} function options.
 */

/**
 * @name endOfYear
 * @category Year Helpers
 * @summary Return the end of a year for the given date.
 *
 * @description
 * Return the end of a year for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The end of a year
 *
 * @example
 * // The end of a year for 2 September 2014 11:55:00:
 * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Wed Dec 31 2014 23:59:59.999
 */
function endOfYear(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const year = _date.getFullYear();
  _date.setFullYear(year + 1, 0, 0);
  _date.setHours(23, 59, 59, 999);
  return _date;
}


/***/ }),

/***/ 7626:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.add = add;
var _index = __webpack_require__(7591);
var _index2 = __webpack_require__(6379);
var _index3 = __webpack_require__(2956);
var _index4 = __webpack_require__(4446);

/**
 * The {@link add} function options.
 */

/**
 * @name add
 * @category Common Helpers
 * @summary Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.
 *
 * @description
 * Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date.
 *
 * @typeParam DateType - The `Date` type the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param duration - The object with years, months, weeks, days, hours, minutes, and seconds to be added.
 * @param options - An object with options
 *
 * @returns The new date with the seconds added
 *
 * @example
 * // Add the following duration to 1 September 2014, 10:19:50
 * const result = add(new Date(2014, 8, 1, 10, 19, 50), {
 *   years: 2,
 *   months: 9,
 *   weeks: 1,
 *   days: 7,
 *   hours: 5,
 *   minutes: 9,
 *   seconds: 30,
 * })
 * //=> Thu Jun 15 2017 15:29:20
 */
function add(date, duration, options) {
  const {
    years = 0,
    months = 0,
    weeks = 0,
    days = 0,
    hours = 0,
    minutes = 0,
    seconds = 0,
  } = duration;

  // Add years and months
  const _date = (0, _index4.toDate)(date, options?.in);
  const dateWithMonths =
    months || years
      ? (0, _index2.addMonths)(_date, months + years * 12)
      : _date;

  // Add weeks and days
  const dateWithDays =
    days || weeks
      ? (0, _index.addDays)(dateWithMonths, days + weeks * 7)
      : dateWithMonths;

  // Add days, hours, minutes, and seconds
  const minutesToAdd = minutes + hours * 60;
  const secondsToAdd = seconds + minutesToAdd * 60;
  const msToAdd = secondsToAdd * 1000;

  return (0, _index3.constructFrom)(
    options?.in || date,
    +dateWithDays + msToAdd,
  );
}


/***/ }),

/***/ 7633:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getMilliseconds = getMilliseconds;
var _index = __webpack_require__(4446);

/**
 * @name getMilliseconds
 * @category Millisecond Helpers
 * @summary Get the milliseconds of the given date.
 *
 * @description
 * Get the milliseconds of the given date.
 *
 * @param date - The given date
 *
 * @returns The milliseconds
 *
 * @example
 * // Get the milliseconds of 29 February 2012 11:45:05.123:
 * const result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))
 * //=> 123
 */
function getMilliseconds(date) {
  return (0, _index.toDate)(date).getMilliseconds();
}


/***/ }),

/***/ 7659:
/***/ ((module) => {

"use strict";


var memo = {};

/* istanbul ignore next  */
function getTarget(target) {
  if (typeof memo[target] === "undefined") {
    var styleTarget = document.querySelector(target);

    // Special case to return head of iframe instead of iframe itself
    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
      try {
        // This will throw an exception if access to iframe is blocked
        // due to cross-origin restrictions
        styleTarget = styleTarget.contentDocument.head;
      } catch (e) {
        // istanbul ignore next
        styleTarget = null;
      }
    }
    memo[target] = styleTarget;
  }
  return memo[target];
}

/* istanbul ignore next  */
function insertBySelector(insert, style) {
  var target = getTarget(insert);
  if (!target) {
    throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
  }
  target.appendChild(style);
}
module.exports = insertBySelector;

/***/ }),

/***/ 7663:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  UE: () => (/* binding */ floating_ui_dom_arrow),
  ll: () => (/* binding */ autoUpdate),
  rD: () => (/* binding */ floating_ui_dom_computePosition),
  UU: () => (/* binding */ floating_ui_dom_flip),
  cY: () => (/* binding */ floating_ui_dom_offset),
  BN: () => (/* binding */ floating_ui_dom_shift)
});

// UNUSED EXPORTS: autoPlacement, detectOverflow, getOverflowAncestors, hide, inline, limitShift, platform, size

;// ./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
/**
 * Custom positioning reference element.
 * @see https://floating-ui.com/docs/virtual-elements
 */

const floating_ui_utils_sides = (/* unused pure expression or super */ null && (['top', 'right', 'bottom', 'left']));
const alignments = (/* unused pure expression or super */ null && (['start', 'end']));
const floating_ui_utils_placements = /*#__PURE__*/(/* unused pure expression or super */ null && (floating_ui_utils_sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), [])));
const floating_ui_utils_min = Math.min;
const floating_ui_utils_max = Math.max;
const round = Math.round;
const floor = Math.floor;
const createCoords = v => ({
  x: v,
  y: v
});
const oppositeSideMap = {
  left: 'right',
  right: 'left',
  bottom: 'top',
  top: 'bottom'
};
const oppositeAlignmentMap = {
  start: 'end',
  end: 'start'
};
function clamp(start, value, end) {
  return floating_ui_utils_max(start, floating_ui_utils_min(value, end));
}
function floating_ui_utils_evaluate(value, param) {
  return typeof value === 'function' ? value(param) : value;
}
function floating_ui_utils_getSide(placement) {
  return placement.split('-')[0];
}
function floating_ui_utils_getAlignment(placement) {
  return placement.split('-')[1];
}
function floating_ui_utils_getOppositeAxis(axis) {
  return axis === 'x' ? 'y' : 'x';
}
function getAxisLength(axis) {
  return axis === 'y' ? 'height' : 'width';
}
function floating_ui_utils_getSideAxis(placement) {
  return ['top', 'bottom'].includes(floating_ui_utils_getSide(placement)) ? 'y' : 'x';
}
function getAlignmentAxis(placement) {
  return floating_ui_utils_getOppositeAxis(floating_ui_utils_getSideAxis(placement));
}
function floating_ui_utils_getAlignmentSides(placement, rects, rtl) {
  if (rtl === void 0) {
    rtl = false;
  }
  const alignment = floating_ui_utils_getAlignment(placement);
  const alignmentAxis = getAlignmentAxis(placement);
  const length = getAxisLength(alignmentAxis);
  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
  if (rects.reference[length] > rects.floating[length]) {
    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
  }
  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
}
function getExpandedPlacements(placement) {
  const oppositePlacement = getOppositePlacement(placement);
  return [floating_ui_utils_getOppositeAlignmentPlacement(placement), oppositePlacement, floating_ui_utils_getOppositeAlignmentPlacement(oppositePlacement)];
}
function floating_ui_utils_getOppositeAlignmentPlacement(placement) {
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
}
function getSideList(side, isStart, rtl) {
  const lr = ['left', 'right'];
  const rl = ['right', 'left'];
  const tb = ['top', 'bottom'];
  const bt = ['bottom', 'top'];
  switch (side) {
    case 'top':
    case 'bottom':
      if (rtl) return isStart ? rl : lr;
      return isStart ? lr : rl;
    case 'left':
    case 'right':
      return isStart ? tb : bt;
    default:
      return [];
  }
}
function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
  const alignment = floating_ui_utils_getAlignment(placement);
  let list = getSideList(floating_ui_utils_getSide(placement), direction === 'start', rtl);
  if (alignment) {
    list = list.map(side => side + "-" + alignment);
    if (flipAlignment) {
      list = list.concat(list.map(floating_ui_utils_getOppositeAlignmentPlacement));
    }
  }
  return list;
}
function getOppositePlacement(placement) {
  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
}
function expandPaddingObject(padding) {
  return {
    top: 0,
    right: 0,
    bottom: 0,
    left: 0,
    ...padding
  };
}
function floating_ui_utils_getPaddingObject(padding) {
  return typeof padding !== 'number' ? expandPaddingObject(padding) : {
    top: padding,
    right: padding,
    bottom: padding,
    left: padding
  };
}
function floating_ui_utils_rectToClientRect(rect) {
  const {
    x,
    y,
    width,
    height
  } = rect;
  return {
    width,
    height,
    top: y,
    left: x,
    right: x + width,
    bottom: y + height,
    x,
    y
  };
}



;// ./node_modules/@floating-ui/core/dist/floating-ui.core.mjs



function computeCoordsFromPlacement(_ref, placement, rtl) {
  let {
    reference,
    floating
  } = _ref;
  const sideAxis = floating_ui_utils_getSideAxis(placement);
  const alignmentAxis = getAlignmentAxis(placement);
  const alignLength = getAxisLength(alignmentAxis);
  const side = floating_ui_utils_getSide(placement);
  const isVertical = sideAxis === 'y';
  const commonX = reference.x + reference.width / 2 - floating.width / 2;
  const commonY = reference.y + reference.height / 2 - floating.height / 2;
  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
  let coords;
  switch (side) {
    case 'top':
      coords = {
        x: commonX,
        y: reference.y - floating.height
      };
      break;
    case 'bottom':
      coords = {
        x: commonX,
        y: reference.y + reference.height
      };
      break;
    case 'right':
      coords = {
        x: reference.x + reference.width,
        y: commonY
      };
      break;
    case 'left':
      coords = {
        x: reference.x - floating.width,
        y: commonY
      };
      break;
    default:
      coords = {
        x: reference.x,
        y: reference.y
      };
  }
  switch (floating_ui_utils_getAlignment(placement)) {
    case 'start':
      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
      break;
    case 'end':
      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
      break;
  }
  return coords;
}

/**
 * Computes the `x` and `y` coordinates that will place the floating element
 * next to a given reference element.
 *
 * This export does not have any `platform` interface logic. You will need to
 * write one for the platform you are using Floating UI with.
 */
const computePosition = async (reference, floating, config) => {
  const {
    placement = 'bottom',
    strategy = 'absolute',
    middleware = [],
    platform
  } = config;
  const validMiddleware = middleware.filter(Boolean);
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
  let rects = await platform.getElementRects({
    reference,
    floating,
    strategy
  });
  let {
    x,
    y
  } = computeCoordsFromPlacement(rects, placement, rtl);
  let statefulPlacement = placement;
  let middlewareData = {};
  let resetCount = 0;
  for (let i = 0; i < validMiddleware.length; i++) {
    const {
      name,
      fn
    } = validMiddleware[i];
    const {
      x: nextX,
      y: nextY,
      data,
      reset
    } = await fn({
      x,
      y,
      initialPlacement: placement,
      placement: statefulPlacement,
      strategy,
      middlewareData,
      rects,
      platform,
      elements: {
        reference,
        floating
      }
    });
    x = nextX != null ? nextX : x;
    y = nextY != null ? nextY : y;
    middlewareData = {
      ...middlewareData,
      [name]: {
        ...middlewareData[name],
        ...data
      }
    };
    if (reset && resetCount <= 50) {
      resetCount++;
      if (typeof reset === 'object') {
        if (reset.placement) {
          statefulPlacement = reset.placement;
        }
        if (reset.rects) {
          rects = reset.rects === true ? await platform.getElementRects({
            reference,
            floating,
            strategy
          }) : reset.rects;
        }
        ({
          x,
          y
        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
      }
      i = -1;
    }
  }
  return {
    x,
    y,
    placement: statefulPlacement,
    strategy,
    middlewareData
  };
};

/**
 * Resolves with an object of overflow side offsets that determine how much the
 * element is overflowing a given clipping boundary on each side.
 * - positive = overflowing the boundary by that number of pixels
 * - negative = how many pixels left before it will overflow
 * - 0 = lies flush with the boundary
 * @see https://floating-ui.com/docs/detectOverflow
 */
async function detectOverflow(state, options) {
  var _await$platform$isEle;
  if (options === void 0) {
    options = {};
  }
  const {
    x,
    y,
    platform,
    rects,
    elements,
    strategy
  } = state;
  const {
    boundary = 'clippingAncestors',
    rootBoundary = 'viewport',
    elementContext = 'floating',
    altBoundary = false,
    padding = 0
  } = floating_ui_utils_evaluate(options, state);
  const paddingObject = floating_ui_utils_getPaddingObject(padding);
  const altContext = elementContext === 'floating' ? 'reference' : 'floating';
  const element = elements[altBoundary ? altContext : elementContext];
  const clippingClientRect = floating_ui_utils_rectToClientRect(await platform.getClippingRect({
    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
    boundary,
    rootBoundary,
    strategy
  }));
  const rect = elementContext === 'floating' ? {
    x,
    y,
    width: rects.floating.width,
    height: rects.floating.height
  } : rects.reference;
  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
    x: 1,
    y: 1
  } : {
    x: 1,
    y: 1
  };
  const elementClientRect = floating_ui_utils_rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
    elements,
    rect,
    offsetParent,
    strategy
  }) : rect);
  return {
    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
  };
}

/**
 * Provides data to position an inner element of the floating element so that it
 * appears centered to the reference element.
 * @see https://floating-ui.com/docs/arrow
 */
const arrow = options => ({
  name: 'arrow',
  options,
  async fn(state) {
    const {
      x,
      y,
      placement,
      rects,
      platform,
      elements,
      middlewareData
    } = state;
    // Since `element` is required, we don't Partial<> the type.
    const {
      element,
      padding = 0
    } = floating_ui_utils_evaluate(options, state) || {};
    if (element == null) {
      return {};
    }
    const paddingObject = floating_ui_utils_getPaddingObject(padding);
    const coords = {
      x,
      y
    };
    const axis = getAlignmentAxis(placement);
    const length = getAxisLength(axis);
    const arrowDimensions = await platform.getDimensions(element);
    const isYAxis = axis === 'y';
    const minProp = isYAxis ? 'top' : 'left';
    const maxProp = isYAxis ? 'bottom' : 'right';
    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';
    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
    const startDiff = coords[axis] - rects.reference[axis];
    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;

    // DOM platform can return `window` as the `offsetParent`.
    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {
      clientSize = elements.floating[clientProp] || rects.floating[length];
    }
    const centerToReference = endDiff / 2 - startDiff / 2;

    // If the padding is large enough that it causes the arrow to no longer be
    // centered, modify the padding so that it is centered.
    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
    const minPadding = floating_ui_utils_min(paddingObject[minProp], largestPossiblePadding);
    const maxPadding = floating_ui_utils_min(paddingObject[maxProp], largestPossiblePadding);

    // Make sure the arrow doesn't overflow the floating element if the center
    // point is outside the floating element's bounds.
    const min$1 = minPadding;
    const max = clientSize - arrowDimensions[length] - maxPadding;
    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
    const offset = clamp(min$1, center, max);

    // If the reference is small enough that the arrow's padding causes it to
    // to point to nothing for an aligned placement, adjust the offset of the
    // floating element itself. To ensure `shift()` continues to take action,
    // a single reset is performed when this is true.
    const shouldAddOffset = !middlewareData.arrow && floating_ui_utils_getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;
    return {
      [axis]: coords[axis] + alignmentOffset,
      data: {
        [axis]: offset,
        centerOffset: center - offset - alignmentOffset,
        ...(shouldAddOffset && {
          alignmentOffset
        })
      },
      reset: shouldAddOffset
    };
  }
});

function getPlacementList(alignment, autoAlignment, allowedPlacements) {
  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);
  return allowedPlacementsSortedByAlignment.filter(placement => {
    if (alignment) {
      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);
    }
    return true;
  });
}
/**
 * Optimizes the visibility of the floating element by choosing the placement
 * that has the most space available automatically, without needing to specify a
 * preferred placement. Alternative to `flip`.
 * @see https://floating-ui.com/docs/autoPlacement
 */
const autoPlacement = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: 'autoPlacement',
    options,
    async fn(state) {
      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
      const {
        rects,
        middlewareData,
        placement,
        platform,
        elements
      } = state;
      const {
        crossAxis = false,
        alignment,
        allowedPlacements = placements,
        autoAlignment = true,
        ...detectOverflowOptions
      } = evaluate(options, state);
      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
      const currentPlacement = placements$1[currentIndex];
      if (currentPlacement == null) {
        return {};
      }
      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));

      // Make `computeCoords` start from the right place.
      if (placement !== currentPlacement) {
        return {
          reset: {
            placement: placements$1[0]
          }
        };
      }
      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];
      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {
        placement: currentPlacement,
        overflows: currentOverflows
      }];
      const nextPlacement = placements$1[currentIndex + 1];

      // There are more placements to check.
      if (nextPlacement) {
        return {
          data: {
            index: currentIndex + 1,
            overflows: allOverflows
          },
          reset: {
            placement: nextPlacement
          }
        };
      }
      const placementsSortedByMostSpace = allOverflows.map(d => {
        const alignment = getAlignment(d.placement);
        return [d.placement, alignment && crossAxis ?
        // Check along the mainAxis and main crossAxis side.
        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :
        // Check only the mainAxis.
        d.overflows[0], d.overflows];
      }).sort((a, b) => a[1] - b[1]);
      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,
      // Aligned placements should not check their opposite crossAxis
      // side.
      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));
      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];
      if (resetPlacement !== placement) {
        return {
          data: {
            index: currentIndex + 1,
            overflows: allOverflows
          },
          reset: {
            placement: resetPlacement
          }
        };
      }
      return {};
    }
  };
};

/**
 * Optimizes the visibility of the floating element by flipping the `placement`
 * in order to keep it in view when the preferred placement(s) will overflow the
 * clipping boundary. Alternative to `autoPlacement`.
 * @see https://floating-ui.com/docs/flip
 */
const flip = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: 'flip',
    options,
    async fn(state) {
      var _middlewareData$arrow, _middlewareData$flip;
      const {
        placement,
        middlewareData,
        rects,
        initialPlacement,
        platform,
        elements
      } = state;
      const {
        mainAxis: checkMainAxis = true,
        crossAxis: checkCrossAxis = true,
        fallbackPlacements: specifiedFallbackPlacements,
        fallbackStrategy = 'bestFit',
        fallbackAxisSideDirection = 'none',
        flipAlignment = true,
        ...detectOverflowOptions
      } = floating_ui_utils_evaluate(options, state);

      // If a reset by the arrow was caused due to an alignment offset being
      // added, we should skip any logic now since `flip()` has already done its
      // work.
      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
        return {};
      }
      const side = floating_ui_utils_getSide(placement);
      const initialSideAxis = floating_ui_utils_getSideAxis(initialPlacement);
      const isBasePlacement = floating_ui_utils_getSide(initialPlacement) === initialPlacement;
      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';
      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
      }
      const placements = [initialPlacement, ...fallbackPlacements];
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const overflows = [];
      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
      if (checkMainAxis) {
        overflows.push(overflow[side]);
      }
      if (checkCrossAxis) {
        const sides = floating_ui_utils_getAlignmentSides(placement, rects, rtl);
        overflows.push(overflow[sides[0]], overflow[sides[1]]);
      }
      overflowsData = [...overflowsData, {
        placement,
        overflows
      }];

      // One or more sides is overflowing.
      if (!overflows.every(side => side <= 0)) {
        var _middlewareData$flip2, _overflowsData$filter;
        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
        const nextPlacement = placements[nextIndex];
        if (nextPlacement) {
          const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== floating_ui_utils_getSideAxis(nextPlacement) : false;
          if (!ignoreCrossAxisOverflow ||
          // We leave the current main axis only if every placement on that axis
          // overflows the main axis.
          overflowsData.every(d => d.overflows[0] > 0 && floating_ui_utils_getSideAxis(d.placement) === initialSideAxis)) {
            // Try next placement and re-run the lifecycle.
            return {
              data: {
                index: nextIndex,
                overflows: overflowsData
              },
              reset: {
                placement: nextPlacement
              }
            };
          }
        }

        // First, find the candidates that fit on the mainAxis side of overflow,
        // then find the placement that fits the best on the main crossAxis side.
        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;

        // Otherwise fallback.
        if (!resetPlacement) {
          switch (fallbackStrategy) {
            case 'bestFit':
              {
                var _overflowsData$filter2;
                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {
                  if (hasFallbackAxisSideDirection) {
                    const currentSideAxis = floating_ui_utils_getSideAxis(d.placement);
                    return currentSideAxis === initialSideAxis ||
                    // Create a bias to the `y` side axis due to horizontal
                    // reading directions favoring greater width.
                    currentSideAxis === 'y';
                  }
                  return true;
                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
                if (placement) {
                  resetPlacement = placement;
                }
                break;
              }
            case 'initialPlacement':
              resetPlacement = initialPlacement;
              break;
          }
        }
        if (placement !== resetPlacement) {
          return {
            reset: {
              placement: resetPlacement
            }
          };
        }
      }
      return {};
    }
  };
};

function getSideOffsets(overflow, rect) {
  return {
    top: overflow.top - rect.height,
    right: overflow.right - rect.width,
    bottom: overflow.bottom - rect.height,
    left: overflow.left - rect.width
  };
}
function isAnySideFullyClipped(overflow) {
  return sides.some(side => overflow[side] >= 0);
}
/**
 * Provides data to hide the floating element in applicable situations, such as
 * when it is not in the same clipping context as the reference element.
 * @see https://floating-ui.com/docs/hide
 */
const hide = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: 'hide',
    options,
    async fn(state) {
      const {
        rects
      } = state;
      const {
        strategy = 'referenceHidden',
        ...detectOverflowOptions
      } = evaluate(options, state);
      switch (strategy) {
        case 'referenceHidden':
          {
            const overflow = await detectOverflow(state, {
              ...detectOverflowOptions,
              elementContext: 'reference'
            });
            const offsets = getSideOffsets(overflow, rects.reference);
            return {
              data: {
                referenceHiddenOffsets: offsets,
                referenceHidden: isAnySideFullyClipped(offsets)
              }
            };
          }
        case 'escaped':
          {
            const overflow = await detectOverflow(state, {
              ...detectOverflowOptions,
              altBoundary: true
            });
            const offsets = getSideOffsets(overflow, rects.floating);
            return {
              data: {
                escapedOffsets: offsets,
                escaped: isAnySideFullyClipped(offsets)
              }
            };
          }
        default:
          {
            return {};
          }
      }
    }
  };
};

function getBoundingRect(rects) {
  const minX = min(...rects.map(rect => rect.left));
  const minY = min(...rects.map(rect => rect.top));
  const maxX = max(...rects.map(rect => rect.right));
  const maxY = max(...rects.map(rect => rect.bottom));
  return {
    x: minX,
    y: minY,
    width: maxX - minX,
    height: maxY - minY
  };
}
function getRectsByLine(rects) {
  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);
  const groups = [];
  let prevRect = null;
  for (let i = 0; i < sortedRects.length; i++) {
    const rect = sortedRects[i];
    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {
      groups.push([rect]);
    } else {
      groups[groups.length - 1].push(rect);
    }
    prevRect = rect;
  }
  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));
}
/**
 * Provides improved positioning for inline reference elements that can span
 * over multiple lines, such as hyperlinks or range selections.
 * @see https://floating-ui.com/docs/inline
 */
const inline = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: 'inline',
    options,
    async fn(state) {
      const {
        placement,
        elements,
        rects,
        platform,
        strategy
      } = state;
      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a
      // ClientRect's bounds, despite the event listener being triggered. A
      // padding of 2 seems to handle this issue.
      const {
        padding = 2,
        x,
        y
      } = evaluate(options, state);
      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);
      const clientRects = getRectsByLine(nativeClientRects);
      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));
      const paddingObject = getPaddingObject(padding);
      function getBoundingClientRect() {
        // There are two rects and they are disjoined.
        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
          // Find the first rect in which the point is fully inside.
          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;
        }

        // There are 2 or more connected rects.
        if (clientRects.length >= 2) {
          if (getSideAxis(placement) === 'y') {
            const firstRect = clientRects[0];
            const lastRect = clientRects[clientRects.length - 1];
            const isTop = getSide(placement) === 'top';
            const top = firstRect.top;
            const bottom = lastRect.bottom;
            const left = isTop ? firstRect.left : lastRect.left;
            const right = isTop ? firstRect.right : lastRect.right;
            const width = right - left;
            const height = bottom - top;
            return {
              top,
              bottom,
              left,
              right,
              width,
              height,
              x: left,
              y: top
            };
          }
          const isLeftSide = getSide(placement) === 'left';
          const maxRight = max(...clientRects.map(rect => rect.right));
          const minLeft = min(...clientRects.map(rect => rect.left));
          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
          const top = measureRects[0].top;
          const bottom = measureRects[measureRects.length - 1].bottom;
          const left = minLeft;
          const right = maxRight;
          const width = right - left;
          const height = bottom - top;
          return {
            top,
            bottom,
            left,
            right,
            width,
            height,
            x: left,
            y: top
          };
        }
        return fallback;
      }
      const resetRects = await platform.getElementRects({
        reference: {
          getBoundingClientRect
        },
        floating: elements.floating,
        strategy
      });
      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {
        return {
          reset: {
            rects: resetRects
          }
        };
      }
      return {};
    }
  };
};

// For type backwards-compatibility, the `OffsetOptions` type was also
// Derivable.

async function convertValueToCoords(state, options) {
  const {
    placement,
    platform,
    elements
  } = state;
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
  const side = floating_ui_utils_getSide(placement);
  const alignment = floating_ui_utils_getAlignment(placement);
  const isVertical = floating_ui_utils_getSideAxis(placement) === 'y';
  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
  const rawValue = floating_ui_utils_evaluate(options, state);

  // eslint-disable-next-line prefer-const
  let {
    mainAxis,
    crossAxis,
    alignmentAxis
  } = typeof rawValue === 'number' ? {
    mainAxis: rawValue,
    crossAxis: 0,
    alignmentAxis: null
  } : {
    mainAxis: rawValue.mainAxis || 0,
    crossAxis: rawValue.crossAxis || 0,
    alignmentAxis: rawValue.alignmentAxis
  };
  if (alignment && typeof alignmentAxis === 'number') {
    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;
  }
  return isVertical ? {
    x: crossAxis * crossAxisMulti,
    y: mainAxis * mainAxisMulti
  } : {
    x: mainAxis * mainAxisMulti,
    y: crossAxis * crossAxisMulti
  };
}

/**
 * Modifies the placement by translating the floating element along the
 * specified axes.
 * A number (shorthand for `mainAxis` or distance), or an axes configuration
 * object may be passed.
 * @see https://floating-ui.com/docs/offset
 */
const offset = function (options) {
  if (options === void 0) {
    options = 0;
  }
  return {
    name: 'offset',
    options,
    async fn(state) {
      var _middlewareData$offse, _middlewareData$arrow;
      const {
        x,
        y,
        placement,
        middlewareData
      } = state;
      const diffCoords = await convertValueToCoords(state, options);

      // If the placement is the same and the arrow caused an alignment offset
      // then we don't need to change the positioning coordinates.
      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
        return {};
      }
      return {
        x: x + diffCoords.x,
        y: y + diffCoords.y,
        data: {
          ...diffCoords,
          placement
        }
      };
    }
  };
};

/**
 * Optimizes the visibility of the floating element by shifting it in order to
 * keep it in view when it will overflow the clipping boundary.
 * @see https://floating-ui.com/docs/shift
 */
const shift = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: 'shift',
    options,
    async fn(state) {
      const {
        x,
        y,
        placement
      } = state;
      const {
        mainAxis: checkMainAxis = true,
        crossAxis: checkCrossAxis = false,
        limiter = {
          fn: _ref => {
            let {
              x,
              y
            } = _ref;
            return {
              x,
              y
            };
          }
        },
        ...detectOverflowOptions
      } = floating_ui_utils_evaluate(options, state);
      const coords = {
        x,
        y
      };
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const crossAxis = floating_ui_utils_getSideAxis(floating_ui_utils_getSide(placement));
      const mainAxis = floating_ui_utils_getOppositeAxis(crossAxis);
      let mainAxisCoord = coords[mainAxis];
      let crossAxisCoord = coords[crossAxis];
      if (checkMainAxis) {
        const minSide = mainAxis === 'y' ? 'top' : 'left';
        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
        const min = mainAxisCoord + overflow[minSide];
        const max = mainAxisCoord - overflow[maxSide];
        mainAxisCoord = clamp(min, mainAxisCoord, max);
      }
      if (checkCrossAxis) {
        const minSide = crossAxis === 'y' ? 'top' : 'left';
        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
        const min = crossAxisCoord + overflow[minSide];
        const max = crossAxisCoord - overflow[maxSide];
        crossAxisCoord = clamp(min, crossAxisCoord, max);
      }
      const limitedCoords = limiter.fn({
        ...state,
        [mainAxis]: mainAxisCoord,
        [crossAxis]: crossAxisCoord
      });
      return {
        ...limitedCoords,
        data: {
          x: limitedCoords.x - x,
          y: limitedCoords.y - y,
          enabled: {
            [mainAxis]: checkMainAxis,
            [crossAxis]: checkCrossAxis
          }
        }
      };
    }
  };
};
/**
 * Built-in `limiter` that will stop `shift()` at a certain point.
 */
const limitShift = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    options,
    fn(state) {
      const {
        x,
        y,
        placement,
        rects,
        middlewareData
      } = state;
      const {
        offset = 0,
        mainAxis: checkMainAxis = true,
        crossAxis: checkCrossAxis = true
      } = evaluate(options, state);
      const coords = {
        x,
        y
      };
      const crossAxis = getSideAxis(placement);
      const mainAxis = getOppositeAxis(crossAxis);
      let mainAxisCoord = coords[mainAxis];
      let crossAxisCoord = coords[crossAxis];
      const rawOffset = evaluate(offset, state);
      const computedOffset = typeof rawOffset === 'number' ? {
        mainAxis: rawOffset,
        crossAxis: 0
      } : {
        mainAxis: 0,
        crossAxis: 0,
        ...rawOffset
      };
      if (checkMainAxis) {
        const len = mainAxis === 'y' ? 'height' : 'width';
        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
        if (mainAxisCoord < limitMin) {
          mainAxisCoord = limitMin;
        } else if (mainAxisCoord > limitMax) {
          mainAxisCoord = limitMax;
        }
      }
      if (checkCrossAxis) {
        var _middlewareData$offse, _middlewareData$offse2;
        const len = mainAxis === 'y' ? 'width' : 'height';
        const isOriginSide = ['top', 'left'].includes(getSide(placement));
        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
        if (crossAxisCoord < limitMin) {
          crossAxisCoord = limitMin;
        } else if (crossAxisCoord > limitMax) {
          crossAxisCoord = limitMax;
        }
      }
      return {
        [mainAxis]: mainAxisCoord,
        [crossAxis]: crossAxisCoord
      };
    }
  };
};

/**
 * Provides data that allows you to change the size of the floating element —
 * for instance, prevent it from overflowing the clipping boundary or match the
 * width of the reference element.
 * @see https://floating-ui.com/docs/size
 */
const size = function (options) {
  if (options === void 0) {
    options = {};
  }
  return {
    name: 'size',
    options,
    async fn(state) {
      var _state$middlewareData, _state$middlewareData2;
      const {
        placement,
        rects,
        platform,
        elements
      } = state;
      const {
        apply = () => {},
        ...detectOverflowOptions
      } = evaluate(options, state);
      const overflow = await detectOverflow(state, detectOverflowOptions);
      const side = getSide(placement);
      const alignment = getAlignment(placement);
      const isYAxis = getSideAxis(placement) === 'y';
      const {
        width,
        height
      } = rects.floating;
      let heightSide;
      let widthSide;
      if (side === 'top' || side === 'bottom') {
        heightSide = side;
        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
      } else {
        widthSide = side;
        heightSide = alignment === 'end' ? 'top' : 'bottom';
      }
      const maximumClippingHeight = height - overflow.top - overflow.bottom;
      const maximumClippingWidth = width - overflow.left - overflow.right;
      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
      const noShift = !state.middlewareData.shift;
      let availableHeight = overflowAvailableHeight;
      let availableWidth = overflowAvailableWidth;
      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
        availableWidth = maximumClippingWidth;
      }
      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
        availableHeight = maximumClippingHeight;
      }
      if (noShift && !alignment) {
        const xMin = max(overflow.left, 0);
        const xMax = max(overflow.right, 0);
        const yMin = max(overflow.top, 0);
        const yMax = max(overflow.bottom, 0);
        if (isYAxis) {
          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
        } else {
          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
        }
      }
      await apply({
        ...state,
        availableWidth,
        availableHeight
      });
      const nextDimensions = await platform.getDimensions(elements.floating);
      if (width !== nextDimensions.width || height !== nextDimensions.height) {
        return {
          reset: {
            rects: true
          }
        };
      }
      return {};
    }
  };
};



;// ./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
function hasWindow() {
  return typeof window !== 'undefined';
}
function getNodeName(node) {
  if (isNode(node)) {
    return (node.nodeName || '').toLowerCase();
  }
  // Mocked nodes in testing environments may not be instances of Node. By
  // returning `#document` an infinite loop won't occur.
  // https://github.com/floating-ui/floating-ui/issues/2317
  return '#document';
}
function getWindow(node) {
  var _node$ownerDocument;
  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
}
function getDocumentElement(node) {
  var _ref;
  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
}
function isNode(value) {
  if (!hasWindow()) {
    return false;
  }
  return value instanceof Node || value instanceof getWindow(value).Node;
}
function isElement(value) {
  if (!hasWindow()) {
    return false;
  }
  return value instanceof Element || value instanceof getWindow(value).Element;
}
function isHTMLElement(value) {
  if (!hasWindow()) {
    return false;
  }
  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
}
function isShadowRoot(value) {
  if (!hasWindow() || typeof ShadowRoot === 'undefined') {
    return false;
  }
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
}
function isOverflowElement(element) {
  const {
    overflow,
    overflowX,
    overflowY,
    display
  } = getComputedStyle(element);
  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
}
function isTableElement(element) {
  return ['table', 'td', 'th'].includes(getNodeName(element));
}
function isTopLayer(element) {
  return [':popover-open', ':modal'].some(selector => {
    try {
      return element.matches(selector);
    } catch (e) {
      return false;
    }
  });
}
function isContainingBlock(elementOrCss) {
  const webkit = isWebKit();
  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;

  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
  return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
}
function getContainingBlock(element) {
  let currentNode = getParentNode(element);
  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
    if (isContainingBlock(currentNode)) {
      return currentNode;
    } else if (isTopLayer(currentNode)) {
      return null;
    }
    currentNode = getParentNode(currentNode);
  }
  return null;
}
function isWebKit() {
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
  return CSS.supports('-webkit-backdrop-filter', 'none');
}
function isLastTraversableNode(node) {
  return ['html', 'body', '#document'].includes(getNodeName(node));
}
function getComputedStyle(element) {
  return getWindow(element).getComputedStyle(element);
}
function getNodeScroll(element) {
  if (isElement(element)) {
    return {
      scrollLeft: element.scrollLeft,
      scrollTop: element.scrollTop
    };
  }
  return {
    scrollLeft: element.scrollX,
    scrollTop: element.scrollY
  };
}
function getParentNode(node) {
  if (getNodeName(node) === 'html') {
    return node;
  }
  const result =
  // Step into the shadow DOM of the parent of a slotted node.
  node.assignedSlot ||
  // DOM Element detected.
  node.parentNode ||
  // ShadowRoot detected.
  isShadowRoot(node) && node.host ||
  // Fallback.
  getDocumentElement(node);
  return isShadowRoot(result) ? result.host : result;
}
function getNearestOverflowAncestor(node) {
  const parentNode = getParentNode(node);
  if (isLastTraversableNode(parentNode)) {
    return node.ownerDocument ? node.ownerDocument.body : node.body;
  }
  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
    return parentNode;
  }
  return getNearestOverflowAncestor(parentNode);
}
function getOverflowAncestors(node, list, traverseIframes) {
  var _node$ownerDocument2;
  if (list === void 0) {
    list = [];
  }
  if (traverseIframes === void 0) {
    traverseIframes = true;
  }
  const scrollableAncestor = getNearestOverflowAncestor(node);
  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
  const win = getWindow(scrollableAncestor);
  if (isBody) {
    const frameElement = getFrameElement(win);
    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
  }
  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
}
function getFrameElement(win) {
  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
}



;// ./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs





function getCssDimensions(element) {
  const css = getComputedStyle(element);
  // In testing environments, the `width` and `height` properties are empty
  // strings for SVG elements, returning NaN. Fallback to `0` in this case.
  let width = parseFloat(css.width) || 0;
  let height = parseFloat(css.height) || 0;
  const hasOffset = isHTMLElement(element);
  const offsetWidth = hasOffset ? element.offsetWidth : width;
  const offsetHeight = hasOffset ? element.offsetHeight : height;
  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
  if (shouldFallback) {
    width = offsetWidth;
    height = offsetHeight;
  }
  return {
    width,
    height,
    $: shouldFallback
  };
}

function unwrapElement(element) {
  return !isElement(element) ? element.contextElement : element;
}

function getScale(element) {
  const domElement = unwrapElement(element);
  if (!isHTMLElement(domElement)) {
    return createCoords(1);
  }
  const rect = domElement.getBoundingClientRect();
  const {
    width,
    height,
    $
  } = getCssDimensions(domElement);
  let x = ($ ? round(rect.width) : rect.width) / width;
  let y = ($ ? round(rect.height) : rect.height) / height;

  // 0, NaN, or Infinity should always fallback to 1.

  if (!x || !Number.isFinite(x)) {
    x = 1;
  }
  if (!y || !Number.isFinite(y)) {
    y = 1;
  }
  return {
    x,
    y
  };
}

const noOffsets = /*#__PURE__*/createCoords(0);
function getVisualOffsets(element) {
  const win = getWindow(element);
  if (!isWebKit() || !win.visualViewport) {
    return noOffsets;
  }
  return {
    x: win.visualViewport.offsetLeft,
    y: win.visualViewport.offsetTop
  };
}
function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
  if (isFixed === void 0) {
    isFixed = false;
  }
  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
    return false;
  }
  return isFixed;
}

function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
  if (includeScale === void 0) {
    includeScale = false;
  }
  if (isFixedStrategy === void 0) {
    isFixedStrategy = false;
  }
  const clientRect = element.getBoundingClientRect();
  const domElement = unwrapElement(element);
  let scale = createCoords(1);
  if (includeScale) {
    if (offsetParent) {
      if (isElement(offsetParent)) {
        scale = getScale(offsetParent);
      }
    } else {
      scale = getScale(element);
    }
  }
  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
  let x = (clientRect.left + visualOffsets.x) / scale.x;
  let y = (clientRect.top + visualOffsets.y) / scale.y;
  let width = clientRect.width / scale.x;
  let height = clientRect.height / scale.y;
  if (domElement) {
    const win = getWindow(domElement);
    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
    let currentWin = win;
    let currentIFrame = getFrameElement(currentWin);
    while (currentIFrame && offsetParent && offsetWin !== currentWin) {
      const iframeScale = getScale(currentIFrame);
      const iframeRect = currentIFrame.getBoundingClientRect();
      const css = getComputedStyle(currentIFrame);
      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
      x *= iframeScale.x;
      y *= iframeScale.y;
      width *= iframeScale.x;
      height *= iframeScale.y;
      x += left;
      y += top;
      currentWin = getWindow(currentIFrame);
      currentIFrame = getFrameElement(currentWin);
    }
  }
  return floating_ui_utils_rectToClientRect({
    width,
    height,
    x,
    y
  });
}

// If <html> has a CSS width greater than the viewport, then this will be
// incorrect for RTL.
function getWindowScrollBarX(element, rect) {
  const leftScroll = getNodeScroll(element).scrollLeft;
  if (!rect) {
    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
  }
  return rect.left + leftScroll;
}

function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
  if (ignoreScrollbarX === void 0) {
    ignoreScrollbarX = false;
  }
  const htmlRect = documentElement.getBoundingClientRect();
  const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
  // RTL <body> scrollbar.
  getWindowScrollBarX(documentElement, htmlRect));
  const y = htmlRect.top + scroll.scrollTop;
  return {
    x,
    y
  };
}

function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
  let {
    elements,
    rect,
    offsetParent,
    strategy
  } = _ref;
  const isFixed = strategy === 'fixed';
  const documentElement = getDocumentElement(offsetParent);
  const topLayer = elements ? isTopLayer(elements.floating) : false;
  if (offsetParent === documentElement || topLayer && isFixed) {
    return rect;
  }
  let scroll = {
    scrollLeft: 0,
    scrollTop: 0
  };
  let scale = createCoords(1);
  const offsets = createCoords(0);
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
      scroll = getNodeScroll(offsetParent);
    }
    if (isHTMLElement(offsetParent)) {
      const offsetRect = getBoundingClientRect(offsetParent);
      scale = getScale(offsetParent);
      offsets.x = offsetRect.x + offsetParent.clientLeft;
      offsets.y = offsetRect.y + offsetParent.clientTop;
    }
  }
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
  return {
    width: rect.width * scale.x,
    height: rect.height * scale.y,
    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
  };
}

function getClientRects(element) {
  return Array.from(element.getClientRects());
}

// Gets the entire size of the scrollable document area, even extending outside
// of the `<html>` and `<body>` rect bounds if horizontally scrollable.
function getDocumentRect(element) {
  const html = getDocumentElement(element);
  const scroll = getNodeScroll(element);
  const body = element.ownerDocument.body;
  const width = floating_ui_utils_max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
  const height = floating_ui_utils_max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
  const y = -scroll.scrollTop;
  if (getComputedStyle(body).direction === 'rtl') {
    x += floating_ui_utils_max(html.clientWidth, body.clientWidth) - width;
  }
  return {
    width,
    height,
    x,
    y
  };
}

function getViewportRect(element, strategy) {
  const win = getWindow(element);
  const html = getDocumentElement(element);
  const visualViewport = win.visualViewport;
  let width = html.clientWidth;
  let height = html.clientHeight;
  let x = 0;
  let y = 0;
  if (visualViewport) {
    width = visualViewport.width;
    height = visualViewport.height;
    const visualViewportBased = isWebKit();
    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
      x = visualViewport.offsetLeft;
      y = visualViewport.offsetTop;
    }
  }
  return {
    width,
    height,
    x,
    y
  };
}

// Returns the inner client rect, subtracting scrollbars if present.
function getInnerBoundingClientRect(element, strategy) {
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
  const top = clientRect.top + element.clientTop;
  const left = clientRect.left + element.clientLeft;
  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
  const width = element.clientWidth * scale.x;
  const height = element.clientHeight * scale.y;
  const x = left * scale.x;
  const y = top * scale.y;
  return {
    width,
    height,
    x,
    y
  };
}
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
  let rect;
  if (clippingAncestor === 'viewport') {
    rect = getViewportRect(element, strategy);
  } else if (clippingAncestor === 'document') {
    rect = getDocumentRect(getDocumentElement(element));
  } else if (isElement(clippingAncestor)) {
    rect = getInnerBoundingClientRect(clippingAncestor, strategy);
  } else {
    const visualOffsets = getVisualOffsets(element);
    rect = {
      x: clippingAncestor.x - visualOffsets.x,
      y: clippingAncestor.y - visualOffsets.y,
      width: clippingAncestor.width,
      height: clippingAncestor.height
    };
  }
  return floating_ui_utils_rectToClientRect(rect);
}
function hasFixedPositionAncestor(element, stopNode) {
  const parentNode = getParentNode(element);
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
    return false;
  }
  return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
}

// A "clipping ancestor" is an `overflow` element with the characteristic of
// clipping (or hiding) child elements. This returns all clipping ancestors
// of the given element up the tree.
function getClippingElementAncestors(element, cache) {
  const cachedResult = cache.get(element);
  if (cachedResult) {
    return cachedResult;
  }
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
  let currentContainingBlockComputedStyle = null;
  const elementIsFixed = getComputedStyle(element).position === 'fixed';
  let currentNode = elementIsFixed ? getParentNode(element) : element;

  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
    const computedStyle = getComputedStyle(currentNode);
    const currentNodeIsContaining = isContainingBlock(currentNode);
    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
      currentContainingBlockComputedStyle = null;
    }
    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
    if (shouldDropCurrentNode) {
      // Drop non-containing blocks.
      result = result.filter(ancestor => ancestor !== currentNode);
    } else {
      // Record last containing block for next iteration.
      currentContainingBlockComputedStyle = computedStyle;
    }
    currentNode = getParentNode(currentNode);
  }
  cache.set(element, result);
  return result;
}

// Gets the maximum area that the element is visible in due to any number of
// clipping ancestors.
function getClippingRect(_ref) {
  let {
    element,
    boundary,
    rootBoundary,
    strategy
  } = _ref;
  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
  const clippingAncestors = [...elementClippingAncestors, rootBoundary];
  const firstClippingAncestor = clippingAncestors[0];
  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
    accRect.top = floating_ui_utils_max(rect.top, accRect.top);
    accRect.right = floating_ui_utils_min(rect.right, accRect.right);
    accRect.bottom = floating_ui_utils_min(rect.bottom, accRect.bottom);
    accRect.left = floating_ui_utils_max(rect.left, accRect.left);
    return accRect;
  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
  return {
    width: clippingRect.right - clippingRect.left,
    height: clippingRect.bottom - clippingRect.top,
    x: clippingRect.left,
    y: clippingRect.top
  };
}

function getDimensions(element) {
  const {
    width,
    height
  } = getCssDimensions(element);
  return {
    width,
    height
  };
}

function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
  const documentElement = getDocumentElement(offsetParent);
  const isFixed = strategy === 'fixed';
  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
  let scroll = {
    scrollLeft: 0,
    scrollTop: 0
  };
  const offsets = createCoords(0);

  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
  // Firefox with layout.scrollbar.side = 3 in about:config to test this.
  function setLeftRTLScrollbarOffset() {
    offsets.x = getWindowScrollBarX(documentElement);
  }
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
      scroll = getNodeScroll(offsetParent);
    }
    if (isOffsetParentAnElement) {
      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
      offsets.x = offsetRect.x + offsetParent.clientLeft;
      offsets.y = offsetRect.y + offsetParent.clientTop;
    } else if (documentElement) {
      setLeftRTLScrollbarOffset();
    }
  }
  if (isFixed && !isOffsetParentAnElement && documentElement) {
    setLeftRTLScrollbarOffset();
  }
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
  return {
    x,
    y,
    width: rect.width,
    height: rect.height
  };
}

function isStaticPositioned(element) {
  return getComputedStyle(element).position === 'static';
}

function getTrueOffsetParent(element, polyfill) {
  if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
    return null;
  }
  if (polyfill) {
    return polyfill(element);
  }
  let rawOffsetParent = element.offsetParent;

  // Firefox returns the <html> element as the offsetParent if it's non-static,
  // while Chrome and Safari return the <body> element. The <body> element must
  // be used to perform the correct calculations even if the <html> element is
  // non-static.
  if (getDocumentElement(element) === rawOffsetParent) {
    rawOffsetParent = rawOffsetParent.ownerDocument.body;
  }
  return rawOffsetParent;
}

// Gets the closest ancestor positioned element. Handles some edge cases,
// such as table ancestors and cross browser bugs.
function getOffsetParent(element, polyfill) {
  const win = getWindow(element);
  if (isTopLayer(element)) {
    return win;
  }
  if (!isHTMLElement(element)) {
    let svgOffsetParent = getParentNode(element);
    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
        return svgOffsetParent;
      }
      svgOffsetParent = getParentNode(svgOffsetParent);
    }
    return win;
  }
  let offsetParent = getTrueOffsetParent(element, polyfill);
  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
    offsetParent = getTrueOffsetParent(offsetParent, polyfill);
  }
  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
    return win;
  }
  return offsetParent || getContainingBlock(element) || win;
}

const getElementRects = async function (data) {
  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
  const getDimensionsFn = this.getDimensions;
  const floatingDimensions = await getDimensionsFn(data.floating);
  return {
    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
    floating: {
      x: 0,
      y: 0,
      width: floatingDimensions.width,
      height: floatingDimensions.height
    }
  };
};

function isRTL(element) {
  return getComputedStyle(element).direction === 'rtl';
}

const platform = {
  convertOffsetParentRelativeRectToViewportRelativeRect,
  getDocumentElement: getDocumentElement,
  getClippingRect,
  getOffsetParent,
  getElementRects,
  getClientRects,
  getDimensions,
  getScale,
  isElement: isElement,
  isRTL
};

function rectsAreEqual(a, b) {
  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
}

// https://samthor.au/2021/observing-dom/
function observeMove(element, onMove) {
  let io = null;
  let timeoutId;
  const root = getDocumentElement(element);
  function cleanup() {
    var _io;
    clearTimeout(timeoutId);
    (_io = io) == null || _io.disconnect();
    io = null;
  }
  function refresh(skip, threshold) {
    if (skip === void 0) {
      skip = false;
    }
    if (threshold === void 0) {
      threshold = 1;
    }
    cleanup();
    const elementRectForRootMargin = element.getBoundingClientRect();
    const {
      left,
      top,
      width,
      height
    } = elementRectForRootMargin;
    if (!skip) {
      onMove();
    }
    if (!width || !height) {
      return;
    }
    const insetTop = floor(top);
    const insetRight = floor(root.clientWidth - (left + width));
    const insetBottom = floor(root.clientHeight - (top + height));
    const insetLeft = floor(left);
    const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
    const options = {
      rootMargin,
      threshold: floating_ui_utils_max(0, floating_ui_utils_min(1, threshold)) || 1
    };
    let isFirstUpdate = true;
    function handleObserve(entries) {
      const ratio = entries[0].intersectionRatio;
      if (ratio !== threshold) {
        if (!isFirstUpdate) {
          return refresh();
        }
        if (!ratio) {
          // If the reference is clipped, the ratio is 0. Throttle the refresh
          // to prevent an infinite loop of updates.
          timeoutId = setTimeout(() => {
            refresh(false, 1e-7);
          }, 1000);
        } else {
          refresh(false, ratio);
        }
      }
      if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
        // It's possible that even though the ratio is reported as 1, the
        // element is not actually fully within the IntersectionObserver's root
        // area anymore. This can happen under performance constraints. This may
        // be a bug in the browser's IntersectionObserver implementation. To
        // work around this, we compare the element's bounding rect now with
        // what it was at the time we created the IntersectionObserver. If they
        // are not equal then the element moved, so we refresh.
        refresh();
      }
      isFirstUpdate = false;
    }

    // Older browsers don't support a `document` as the root and will throw an
    // error.
    try {
      io = new IntersectionObserver(handleObserve, {
        ...options,
        // Handle <iframe>s
        root: root.ownerDocument
      });
    } catch (_e) {
      io = new IntersectionObserver(handleObserve, options);
    }
    io.observe(element);
  }
  refresh(true);
  return cleanup;
}

/**
 * Automatically updates the position of the floating element when necessary.
 * Should only be called when the floating element is mounted on the DOM or
 * visible on the screen.
 * @returns cleanup function that should be invoked when the floating element is
 * removed from the DOM or hidden from the screen.
 * @see https://floating-ui.com/docs/autoUpdate
 */
function autoUpdate(reference, floating, update, options) {
  if (options === void 0) {
    options = {};
  }
  const {
    ancestorScroll = true,
    ancestorResize = true,
    elementResize = typeof ResizeObserver === 'function',
    layoutShift = typeof IntersectionObserver === 'function',
    animationFrame = false
  } = options;
  const referenceEl = unwrapElement(reference);
  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];
  ancestors.forEach(ancestor => {
    ancestorScroll && ancestor.addEventListener('scroll', update, {
      passive: true
    });
    ancestorResize && ancestor.addEventListener('resize', update);
  });
  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
  let reobserveFrame = -1;
  let resizeObserver = null;
  if (elementResize) {
    resizeObserver = new ResizeObserver(_ref => {
      let [firstEntry] = _ref;
      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
        // Prevent update loops when using the `size` middleware.
        // https://github.com/floating-ui/floating-ui/issues/1740
        resizeObserver.unobserve(floating);
        cancelAnimationFrame(reobserveFrame);
        reobserveFrame = requestAnimationFrame(() => {
          var _resizeObserver;
          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
        });
      }
      update();
    });
    if (referenceEl && !animationFrame) {
      resizeObserver.observe(referenceEl);
    }
    resizeObserver.observe(floating);
  }
  let frameId;
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
  if (animationFrame) {
    frameLoop();
  }
  function frameLoop() {
    const nextRefRect = getBoundingClientRect(reference);
    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
      update();
    }
    prevRefRect = nextRefRect;
    frameId = requestAnimationFrame(frameLoop);
  }
  update();
  return () => {
    var _resizeObserver2;
    ancestors.forEach(ancestor => {
      ancestorScroll && ancestor.removeEventListener('scroll', update);
      ancestorResize && ancestor.removeEventListener('resize', update);
    });
    cleanupIo == null || cleanupIo();
    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
    resizeObserver = null;
    if (animationFrame) {
      cancelAnimationFrame(frameId);
    }
  };
}

/**
 * Resolves with an object of overflow side offsets that determine how much the
 * element is overflowing a given clipping boundary on each side.
 * - positive = overflowing the boundary by that number of pixels
 * - negative = how many pixels left before it will overflow
 * - 0 = lies flush with the boundary
 * @see https://floating-ui.com/docs/detectOverflow
 */
const floating_ui_dom_detectOverflow = (/* unused pure expression or super */ null && (detectOverflow$1));

/**
 * Modifies the placement by translating the floating element along the
 * specified axes.
 * A number (shorthand for `mainAxis` or distance), or an axes configuration
 * object may be passed.
 * @see https://floating-ui.com/docs/offset
 */
const floating_ui_dom_offset = offset;

/**
 * Optimizes the visibility of the floating element by choosing the placement
 * that has the most space available automatically, without needing to specify a
 * preferred placement. Alternative to `flip`.
 * @see https://floating-ui.com/docs/autoPlacement
 */
const floating_ui_dom_autoPlacement = (/* unused pure expression or super */ null && (autoPlacement$1));

/**
 * Optimizes the visibility of the floating element by shifting it in order to
 * keep it in view when it will overflow the clipping boundary.
 * @see https://floating-ui.com/docs/shift
 */
const floating_ui_dom_shift = shift;

/**
 * Optimizes the visibility of the floating element by flipping the `placement`
 * in order to keep it in view when the preferred placement(s) will overflow the
 * clipping boundary. Alternative to `autoPlacement`.
 * @see https://floating-ui.com/docs/flip
 */
const floating_ui_dom_flip = flip;

/**
 * Provides data that allows you to change the size of the floating element —
 * for instance, prevent it from overflowing the clipping boundary or match the
 * width of the reference element.
 * @see https://floating-ui.com/docs/size
 */
const floating_ui_dom_size = (/* unused pure expression or super */ null && (size$1));

/**
 * Provides data to hide the floating element in applicable situations, such as
 * when it is not in the same clipping context as the reference element.
 * @see https://floating-ui.com/docs/hide
 */
const floating_ui_dom_hide = (/* unused pure expression or super */ null && (hide$1));

/**
 * Provides data to position an inner element of the floating element so that it
 * appears centered to the reference element.
 * @see https://floating-ui.com/docs/arrow
 */
const floating_ui_dom_arrow = arrow;

/**
 * Provides improved positioning for inline reference elements that can span
 * over multiple lines, such as hyperlinks or range selections.
 * @see https://floating-ui.com/docs/inline
 */
const floating_ui_dom_inline = (/* unused pure expression or super */ null && (inline$1));

/**
 * Built-in `limiter` that will stop `shift()` at a certain point.
 */
const floating_ui_dom_limitShift = (/* unused pure expression or super */ null && (limitShift$1));

/**
 * Computes the `x` and `y` coordinates that will place the floating element
 * next to a given reference element.
 */
const floating_ui_dom_computePosition = (reference, floating, options) => {
  // This caches the expensive `getClippingElementAncestors` function so that
  // multiple lifecycle resets re-use the same result. It only lives for a
  // single call. If other functions become expensive, we can add them as well.
  const cache = new Map();
  const mergedOptions = {
    platform,
    ...options
  };
  const platformWithCache = {
    ...mergedOptions.platform,
    _c: cache
  };
  return computePosition(reference, floating, {
    ...mergedOptions,
    platform: platformWithCache
  });
};




/***/ }),

/***/ 7699:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.timezonePatterns = exports.numericPatterns = void 0;
const numericPatterns = (exports.numericPatterns = {
  month: /^(1[0-2]|0?\d)/, // 0 to 12
  date: /^(3[0-1]|[0-2]?\d)/, // 0 to 31
  dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, // 0 to 366
  week: /^(5[0-3]|[0-4]?\d)/, // 0 to 53
  hour23h: /^(2[0-3]|[0-1]?\d)/, // 0 to 23
  hour24h: /^(2[0-4]|[0-1]?\d)/, // 0 to 24
  hour11h: /^(1[0-1]|0?\d)/, // 0 to 11
  hour12h: /^(1[0-2]|0?\d)/, // 0 to 12
  minute: /^[0-5]?\d/, // 0 to 59
  second: /^[0-5]?\d/, // 0 to 59

  singleDigit: /^\d/, // 0 to 9
  twoDigits: /^\d{1,2}/, // 0 to 99
  threeDigits: /^\d{1,3}/, // 0 to 999
  fourDigits: /^\d{1,4}/, // 0 to 9999

  anyDigitsSigned: /^-?\d+/,
  singleDigitSigned: /^-?\d/, // 0 to 9, -0 to -9
  twoDigitsSigned: /^-?\d{1,2}/, // 0 to 99, -0 to -99
  threeDigitsSigned: /^-?\d{1,3}/, // 0 to 999, -0 to -999
  fourDigitsSigned: /^-?\d{1,4}/, // 0 to 9999, -0 to -9999
});

const timezonePatterns = (exports.timezonePatterns = {
  basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/,
  basic: /^([+-])(\d{2})(\d{2})|Z/,
  basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,
  extended: /^([+-])(\d{2}):(\d{2})|Z/,
  extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/,
});


/***/ }),

/***/ 7702:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.DayParser = void 0;
var _index = __webpack_require__(4395);
var _Parser = __webpack_require__(5513);

// Day of week
class DayParser extends _Parser.Parser {
  priority = 90;

  parse(dateString, token, match) {
    switch (token) {
      // Tue
      case "E":
      case "EE":
      case "EEE":
        return (
          match.day(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.day(dateString, { width: "short", context: "formatting" }) ||
          match.day(dateString, { width: "narrow", context: "formatting" })
        );

      // T
      case "EEEEE":
        return match.day(dateString, {
          width: "narrow",
          context: "formatting",
        });
      // Tu
      case "EEEEEE":
        return (
          match.day(dateString, { width: "short", context: "formatting" }) ||
          match.day(dateString, { width: "narrow", context: "formatting" })
        );

      // Tuesday
      case "EEEE":
      default:
        return (
          match.day(dateString, { width: "wide", context: "formatting" }) ||
          match.day(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.day(dateString, { width: "short", context: "formatting" }) ||
          match.day(dateString, { width: "narrow", context: "formatting" })
        );
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 6;
  }

  set(date, _flags, value, options) {
    date = (0, _index.setDay)(date, value, options);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["D", "i", "e", "c", "t", "T"];
}
exports.DayParser = DayParser;


/***/ }),

/***/ 7710:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfMonth = startOfMonth;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfMonth} function options.
 */

/**
 * @name startOfMonth
 * @category Month Helpers
 * @summary Return the start of a month for the given date.
 *
 * @description
 * Return the start of a month for the given date. The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.
 * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,
 * or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The start of a month
 *
 * @example
 * // The start of a month for 2 September 2014 11:55:00:
 * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Mon Sep 01 2014 00:00:00
 */
function startOfMonth(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setDate(1);
  _date.setHours(0, 0, 0, 0);
  return _date;
}


/***/ }),

/***/ 7724:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextThursday = nextThursday;
var _index = __webpack_require__(64);

/**
 * The {@link nextThursday} function options.
 */

/**
 * @name nextThursday
 * @category Weekday Helpers
 * @summary When is the next Thursday?
 *
 * @description
 * When is the next Thursday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Thursday
 *
 * @example
 * // When is the next Thursday after Mar, 22, 2020?
 * const result = nextThursday(new Date(2020, 2, 22))
 * //=> Thur Mar 26 2020 00:00:00
 */
function nextThursday(date, options) {
  return (0, _index.nextDay)(date, 4, options);
}


/***/ }),

/***/ 7777:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.compareDesc = compareDesc;
var _index = __webpack_require__(4446);

/**
 * @name compareDesc
 * @category Common Helpers
 * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.
 *
 * @description
 * Compare the two dates and return -1 if the first date is after the second,
 * 1 if the first date is before the second or 0 if dates are equal.
 *
 * @param dateLeft - The first date to compare
 * @param dateRight - The second date to compare
 *
 * @returns The result of the comparison
 *
 * @example
 * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:
 * const result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))
 * //=> 1
 *
 * @example
 * // Sort the array of dates in reverse chronological order:
 * const result = [
 *   new Date(1995, 6, 2),
 *   new Date(1987, 1, 11),
 *   new Date(1989, 6, 10)
 * ].sort(compareDesc)
 * //=> [
 * //   Sun Jul 02 1995 00:00:00,
 * //   Mon Jul 10 1989 00:00:00,
 * //   Wed Feb 11 1987 00:00:00
 * // ]
 */
function compareDesc(dateLeft, dateRight) {
  const diff = +(0, _index.toDate)(dateLeft) - +(0, _index.toDate)(dateRight);

  if (diff > 0) return -1;
  else if (diff < 0) return 1;

  // Return 0 if diff is 0; return NaN if diff is NaN
  return diff;
}


/***/ }),

/***/ 7816:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setWeekYear = setWeekYear;
var _index = __webpack_require__(6755);
var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(5506);
var _index4 = __webpack_require__(3040);
var _index5 = __webpack_require__(4446);

/**
 * The {@link setWeekYear} function options.
 */

/**
 * @name setWeekYear
 * @category Week-Numbering Year Helpers
 * @summary Set the local week-numbering year to the given date.
 *
 * @description
 * Set the local week-numbering year to the given date,
 * saving the week number and the weekday number.
 * The exact calculation depends on the values of
 * `options.weekStartsOn` (which is the index of the first day of the week)
 * and `options.firstWeekContainsDate` (which is the day of January, which is always in
 * the first week of the week-numbering year)
 *
 * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param weekYear - The local week-numbering year of the new date
 * @param options - An object with options
 *
 * @returns The new date with the local week-numbering year set
 *
 * @example
 * // Set the local week-numbering year 2004 to 2 January 2010 with default options:
 * const result = setWeekYear(new Date(2010, 0, 2), 2004)
 * //=> Sat Jan 03 2004 00:00:00
 *
 * @example
 * // Set the local week-numbering year 2004 to 2 January 2010,
 * // if Monday is the first day of week
 * // and 4 January is always in the first week of the year:
 * const result = setWeekYear(new Date(2010, 0, 2), 2004, {
 *   weekStartsOn: 1,
 *   firstWeekContainsDate: 4
 * })
 * //=> Sat Jan 01 2005 00:00:00
 */
function setWeekYear(date, weekYear, options) {
  const defaultOptions = (0, _index.getDefaultOptions)();
  const firstWeekContainsDate =
    options?.firstWeekContainsDate ??
    options?.locale?.options?.firstWeekContainsDate ??
    defaultOptions.firstWeekContainsDate ??
    defaultOptions.locale?.options?.firstWeekContainsDate ??
    1;

  const diff = (0, _index3.differenceInCalendarDays)(
    (0, _index5.toDate)(date, options?.in),
    (0, _index4.startOfWeekYear)(date, options),
    options,
  );

  const firstWeek = (0, _index2.constructFrom)(options?.in || date, 0);
  firstWeek.setFullYear(weekYear, 0, firstWeekContainsDate);
  firstWeek.setHours(0, 0, 0, 0);

  const date_ = (0, _index4.startOfWeekYear)(firstWeek, options);
  date_.setDate(date_.getDate() + diff);
  return date_;
}


/***/ }),

/***/ 7825:
/***/ ((module) => {

"use strict";


/* istanbul ignore next  */
function apply(styleElement, options, obj) {
  var css = "";
  if (obj.supports) {
    css += "@supports (".concat(obj.supports, ") {");
  }
  if (obj.media) {
    css += "@media ".concat(obj.media, " {");
  }
  var needLayer = typeof obj.layer !== "undefined";
  if (needLayer) {
    css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
  }
  css += obj.css;
  if (needLayer) {
    css += "}";
  }
  if (obj.media) {
    css += "}";
  }
  if (obj.supports) {
    css += "}";
  }
  var sourceMap = obj.sourceMap;
  if (sourceMap && typeof btoa !== "undefined") {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  }

  // For old IE
  /* istanbul ignore if  */
  options.styleTagTransform(css, styleElement, options.options);
}
function removeStyleElement(styleElement) {
  // istanbul ignore if
  if (styleElement.parentNode === null) {
    return false;
  }
  styleElement.parentNode.removeChild(styleElement);
}

/* istanbul ignore next  */
function domAPI(options) {
  if (typeof document === "undefined") {
    return {
      update: function update() {},
      remove: function remove() {}
    };
  }
  var styleElement = options.insertStyleElement(options);
  return {
    update: function update(obj) {
      apply(styleElement, options, obj);
    },
    remove: function remove() {
      removeStyleElement(styleElement);
    }
  };
}
module.exports = domAPI;

/***/ }),

/***/ 7838:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachQuarterOfInterval = eachQuarterOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(1149);
var _index3 = __webpack_require__(2956);
var _index4 = __webpack_require__(6944);

/**
 * The {@link eachQuarterOfInterval} function options.
 */

/**
 * The {@link eachQuarterOfInterval} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the date argument,
 * then the start interval date, and finally the end interval date. If
 * a context function is passed, it uses the context function return type.
 */

/**
 * @name eachQuarterOfInterval
 * @category Interval Helpers
 * @summary Return the array of quarters within the specified time interval.
 *
 * @description
 * Return the array of quarters within the specified time interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The interval
 * @param options - An object with options
 *
 * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end
 *
 * @example
 * // Each quarter within interval 6 February 2014 - 10 August 2014:
 * const result = eachQuarterOfInterval({
 *   start: new Date(2014, 1, 6),
 *   end: new Date(2014, 7, 10),
 * })
 * //=> [
 * //   Wed Jan 01 2014 00:00:00,
 * //   Tue Apr 01 2014 00:00:00,
 * //   Tue Jul 01 2014 00:00:00,
 * // ]
 */
function eachQuarterOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);

  let reversed = +start > +end;
  const endTime = reversed
    ? +(0, _index4.startOfQuarter)(start)
    : +(0, _index4.startOfQuarter)(end);
  let date = reversed
    ? (0, _index4.startOfQuarter)(end)
    : (0, _index4.startOfQuarter)(start);

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+date <= endTime) {
    dates.push((0, _index3.constructFrom)(start, date));
    date = (0, _index2.addQuarters)(date, step);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 7851:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isWednesday = isWednesday;
var _index = __webpack_require__(4446);

/**
 * The {@link isWednesday} function options.
 */

/**
 * @name isWednesday
 * @category Weekday Helpers
 * @summary Is the given date Wednesday?
 *
 * @description
 * Is the given date Wednesday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is Wednesday
 *
 * @example
 * // Is 24 September 2014 Wednesday?
 * const result = isWednesday(new Date(2014, 8, 24))
 * //=> true
 */
function isWednesday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 3;
}


/***/ }),

/***/ 7861:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ValueSetter = exports.Setter = exports.DateTimezoneSetter = void 0;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4082);

const TIMEZONE_UNIT_PRIORITY = 10;

class Setter {
  subPriority = 0;

  validate(_utcDate, _options) {
    return true;
  }
}
exports.Setter = Setter;

class ValueSetter extends Setter {
  constructor(
    value,

    validateValue,

    setValue,

    priority,
    subPriority,
  ) {
    super();
    this.value = value;
    this.validateValue = validateValue;
    this.setValue = setValue;
    this.priority = priority;
    if (subPriority) {
      this.subPriority = subPriority;
    }
  }

  validate(date, options) {
    return this.validateValue(date, this.value, options);
  }

  set(date, flags, options) {
    return this.setValue(date, flags, this.value, options);
  }
}
exports.ValueSetter = ValueSetter;

class DateTimezoneSetter extends Setter {
  priority = TIMEZONE_UNIT_PRIORITY;
  subPriority = -1;

  constructor(context, reference) {
    super();
    this.context =
      context || ((date) => (0, _index.constructFrom)(reference, date));
  }

  set(date, flags) {
    if (flags.timestampIsSet) return date;
    return (0, _index.constructFrom)(
      date,
      (0, _index2.transpose)(date, this.context),
    );
  }
}
exports.DateTimezoneSetter = DateTimezoneSetter;


/***/ }),

/***/ 7865:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isPast = isPast;
var _index = __webpack_require__(4446);

/**
 * @name isPast
 * @category Common Helpers
 * @summary Is the given date in the past?
 * @pure false
 *
 * @description
 * Is the given date in the past?
 *
 * @param date - The date to check
 *
 * @returns The date is in the past
 *
 * @example
 * // If today is 6 October 2014, is 2 July 2014 in the past?
 * const result = isPast(new Date(2014, 6, 2))
 * //=> true
 */
function isPast(date) {
  return +(0, _index.toDate)(date) < Date.now();
}


/***/ }),

/***/ 7909:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisMinute = isThisMinute;
var _index = __webpack_require__(2700);
var _index2 = __webpack_require__(8847);

/**
 * @name isThisMinute
 * @category Minute Helpers
 * @summary Is the given date in the same minute as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same minute as the current date?
 *
 * @param date - The date to check
 *
 * @returns The date is in this minute
 *
 * @example
 * // If now is 25 September 2014 18:30:15.500,
 * // is 25 September 2014 18:30:00 in this minute?
 * const result = isThisMinute(new Date(2014, 8, 25, 18, 30))
 * //=> true
 */

function isThisMinute(date) {
  return (0, _index2.isSameMinute)(date, (0, _index.constructNow)(date));
}


/***/ }),

/***/ 7957:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.roundToNearestMinutes = roundToNearestMinutes;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(4446);

/**
 * The {@link roundToNearestMinutes} function options.
 */

/**
 * @name roundToNearestMinutes
 * @category Minute Helpers
 * @summary Rounds the given date to the nearest minute
 *
 * @description
 * Rounds the given date to the nearest minute (or number of minutes).
 * Rounds up when the given date is exactly between the nearest round minutes.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to round
 * @param options - An object with options.
 *
 * @returns The new date rounded to the closest minute
 *
 * @example
 * // Round 10 July 2014 12:12:34 to nearest minute:
 * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34))
 * //=> Thu Jul 10 2014 12:13:00
 *
 * @example
 * // Round 10 July 2014 12:12:34 to nearest quarter hour:
 * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { nearestTo: 15 })
 * //=> Thu Jul 10 2014 12:15:00
 *
 * @example
 * // Floor (rounds down) 10 July 2014 12:12:34 to nearest minute:
 * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { roundingMethod: 'floor' })
 * //=> Thu Jul 10 2014 12:12:00
 *
 * @example
 * // Ceil (rounds up) 10 July 2014 12:12:34 to nearest half hour:
 * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { roundingMethod: 'ceil', nearestTo: 30 })
 * //=> Thu Jul 10 2014 12:30:00
 */
function roundToNearestMinutes(date, options) {
  const nearestTo = options?.nearestTo ?? 1;

  if (nearestTo < 1 || nearestTo > 30)
    return (0, _index2.constructFrom)(date, NaN);

  const date_ = (0, _index3.toDate)(date, options?.in);
  const fractionalSeconds = date_.getSeconds() / 60;
  const fractionalMilliseconds = date_.getMilliseconds() / 1000 / 60;
  const minutes =
    date_.getMinutes() + fractionalSeconds + fractionalMilliseconds;

  const method = options?.roundingMethod ?? "round";
  const roundingMethod = (0, _index.getRoundingMethod)(method);

  const roundedMinutes = roundingMethod(minutes / nearestTo) * nearestTo;

  date_.setMinutes(roundedMinutes, 0, 0);
  return date_;
}


/***/ }),

/***/ 8016:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.millisecondsToSeconds = millisecondsToSeconds;
var _index = __webpack_require__(8052);

/**
 * @name millisecondsToSeconds
 * @category Conversion Helpers
 * @summary Convert milliseconds to seconds.
 *
 * @description
 * Convert a number of milliseconds to a full number of seconds.
 *
 * @param milliseconds - The number of milliseconds to be converted
 *
 * @returns The number of milliseconds converted in seconds
 *
 * @example
 * // Convert 1000 milliseconds to seconds:
 * const result = millisecondsToSeconds(1000)
 * //=> 1
 *
 * @example
 * // It uses floor rounding:
 * const result = millisecondsToSeconds(1999)
 * //=> 1
 */
function millisecondsToSeconds(milliseconds) {
  const seconds = milliseconds / _index.millisecondsInSecond;
  return Math.trunc(seconds);
}


/***/ }),

/***/ 8021:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __publicField = (obj, key, value) => {
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
  return value;
};
var Player_exports = {};
__export(Player_exports, {
  default: () => Player
});
module.exports = __toCommonJS(Player_exports);
var import_react = __toESM(__webpack_require__(1594));
var import_react_fast_compare = __toESM(__webpack_require__(115));
var import_props = __webpack_require__(7604);
var import_utils = __webpack_require__(5635);
const SEEK_ON_PLAY_EXPIRY = 5e3;
class Player extends import_react.Component {
  constructor() {
    super(...arguments);
    __publicField(this, "mounted", false);
    __publicField(this, "isReady", false);
    __publicField(this, "isPlaying", false);
    // Track playing state internally to prevent bugs
    __publicField(this, "isLoading", true);
    // Use isLoading to prevent onPause when switching URL
    __publicField(this, "loadOnReady", null);
    __publicField(this, "startOnPlay", true);
    __publicField(this, "seekOnPlay", null);
    __publicField(this, "onDurationCalled", false);
    __publicField(this, "handlePlayerMount", (player) => {
      if (this.player) {
        this.progress();
        return;
      }
      this.player = player;
      this.player.load(this.props.url);
      this.progress();
    });
    __publicField(this, "getInternalPlayer", (key) => {
      if (!this.player)
        return null;
      return this.player[key];
    });
    __publicField(this, "progress", () => {
      if (this.props.url && this.player && this.isReady) {
        const playedSeconds = this.getCurrentTime() || 0;
        const loadedSeconds = this.getSecondsLoaded();
        const duration = this.getDuration();
        if (duration) {
          const progress = {
            playedSeconds,
            played: playedSeconds / duration
          };
          if (loadedSeconds !== null) {
            progress.loadedSeconds = loadedSeconds;
            progress.loaded = loadedSeconds / duration;
          }
          if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {
            this.props.onProgress(progress);
          }
          this.prevPlayed = progress.playedSeconds;
          this.prevLoaded = progress.loadedSeconds;
        }
      }
      this.progressTimeout = setTimeout(this.progress, this.props.progressFrequency || this.props.progressInterval);
    });
    __publicField(this, "handleReady", () => {
      if (!this.mounted)
        return;
      this.isReady = true;
      this.isLoading = false;
      const { onReady, playing, volume, muted } = this.props;
      onReady();
      if (!muted && volume !== null) {
        this.player.setVolume(volume);
      }
      if (this.loadOnReady) {
        this.player.load(this.loadOnReady, true);
        this.loadOnReady = null;
      } else if (playing) {
        this.player.play();
      }
      this.handleDurationCheck();
    });
    __publicField(this, "handlePlay", () => {
      this.isPlaying = true;
      this.isLoading = false;
      const { onStart, onPlay, playbackRate } = this.props;
      if (this.startOnPlay) {
        if (this.player.setPlaybackRate && playbackRate !== 1) {
          this.player.setPlaybackRate(playbackRate);
        }
        onStart();
        this.startOnPlay = false;
      }
      onPlay();
      if (this.seekOnPlay) {
        this.seekTo(this.seekOnPlay);
        this.seekOnPlay = null;
      }
      this.handleDurationCheck();
    });
    __publicField(this, "handlePause", (e) => {
      this.isPlaying = false;
      if (!this.isLoading) {
        this.props.onPause(e);
      }
    });
    __publicField(this, "handleEnded", () => {
      const { activePlayer, loop, onEnded } = this.props;
      if (activePlayer.loopOnEnded && loop) {
        this.seekTo(0);
      }
      if (!loop) {
        this.isPlaying = false;
        onEnded();
      }
    });
    __publicField(this, "handleError", (...args) => {
      this.isLoading = false;
      this.props.onError(...args);
    });
    __publicField(this, "handleDurationCheck", () => {
      clearTimeout(this.durationCheckTimeout);
      const duration = this.getDuration();
      if (duration) {
        if (!this.onDurationCalled) {
          this.props.onDuration(duration);
          this.onDurationCalled = true;
        }
      } else {
        this.durationCheckTimeout = setTimeout(this.handleDurationCheck, 100);
      }
    });
    __publicField(this, "handleLoaded", () => {
      this.isLoading = false;
    });
  }
  componentDidMount() {
    this.mounted = true;
  }
  componentWillUnmount() {
    clearTimeout(this.progressTimeout);
    clearTimeout(this.durationCheckTimeout);
    if (this.isReady && this.props.stopOnUnmount) {
      this.player.stop();
      if (this.player.disablePIP) {
        this.player.disablePIP();
      }
    }
    this.mounted = false;
  }
  componentDidUpdate(prevProps) {
    if (!this.player) {
      return;
    }
    const { url, playing, volume, muted, playbackRate, pip, loop, activePlayer, disableDeferredLoading } = this.props;
    if (!(0, import_react_fast_compare.default)(prevProps.url, url)) {
      if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, import_utils.isMediaStream)(url)) {
        console.warn(`ReactPlayer: the attempt to load ${url} is being deferred until the player has loaded`);
        this.loadOnReady = url;
        return;
      }
      this.isLoading = true;
      this.startOnPlay = true;
      this.onDurationCalled = false;
      this.player.load(url, this.isReady);
    }
    if (!prevProps.playing && playing && !this.isPlaying) {
      this.player.play();
    }
    if (prevProps.playing && !playing && this.isPlaying) {
      this.player.pause();
    }
    if (!prevProps.pip && pip && this.player.enablePIP) {
      this.player.enablePIP();
    }
    if (prevProps.pip && !pip && this.player.disablePIP) {
      this.player.disablePIP();
    }
    if (prevProps.volume !== volume && volume !== null) {
      this.player.setVolume(volume);
    }
    if (prevProps.muted !== muted) {
      if (muted) {
        this.player.mute();
      } else {
        this.player.unmute();
        if (volume !== null) {
          setTimeout(() => this.player.setVolume(volume));
        }
      }
    }
    if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {
      this.player.setPlaybackRate(playbackRate);
    }
    if (prevProps.loop !== loop && this.player.setLoop) {
      this.player.setLoop(loop);
    }
  }
  getDuration() {
    if (!this.isReady)
      return null;
    return this.player.getDuration();
  }
  getCurrentTime() {
    if (!this.isReady)
      return null;
    return this.player.getCurrentTime();
  }
  getSecondsLoaded() {
    if (!this.isReady)
      return null;
    return this.player.getSecondsLoaded();
  }
  seekTo(amount, type, keepPlaying) {
    if (!this.isReady) {
      if (amount !== 0) {
        this.seekOnPlay = amount;
        setTimeout(() => {
          this.seekOnPlay = null;
        }, SEEK_ON_PLAY_EXPIRY);
      }
      return;
    }
    const isFraction = !type ? amount > 0 && amount < 1 : type === "fraction";
    if (isFraction) {
      const duration = this.player.getDuration();
      if (!duration) {
        console.warn("ReactPlayer: could not seek using fraction \u2013\xA0duration not yet available");
        return;
      }
      this.player.seekTo(duration * amount, keepPlaying);
      return;
    }
    this.player.seekTo(amount, keepPlaying);
  }
  render() {
    const Player2 = this.props.activePlayer;
    if (!Player2) {
      return null;
    }
    return /* @__PURE__ */ import_react.default.createElement(
      Player2,
      {
        ...this.props,
        onMount: this.handlePlayerMount,
        onReady: this.handleReady,
        onPlay: this.handlePlay,
        onPause: this.handlePause,
        onEnded: this.handleEnded,
        onLoaded: this.handleLoaded,
        onError: this.handleError
      }
    );
  }
}
__publicField(Player, "displayName", "Player");
__publicField(Player, "propTypes", import_props.propTypes);
__publicField(Player, "defaultProps", import_props.defaultProps);


/***/ }),

/***/ 8032:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isTomorrow = isTomorrow;
var _index = __webpack_require__(7591);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(9691);

/**
 * The {@link isTomorrow} function options.
 */

/**
 * @name isTomorrow
 * @category Day Helpers
 * @summary Is the given date tomorrow?
 * @pure false
 *
 * @description
 * Is the given date tomorrow?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is tomorrow
 *
 * @example
 * // If today is 6 October 2014, is 7 October 14:00:00 tomorrow?
 * const result = isTomorrow(new Date(2014, 9, 7, 14, 0))
 * //=> true
 */
function isTomorrow(date, options) {
  return (0, _index3.isSameDay)(
    date,
    (0, _index.addDays)((0, _index2.constructNow)(options?.in || date), 1),
    options,
  );
}


/***/ }),

/***/ 8042:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.ExtendedYearParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class ExtendedYearParser extends _Parser.Parser {
  priority = 130;

  parse(dateString, token) {
    if (token === "u") {
      return (0, _utils.parseNDigitsSigned)(4, dateString);
    }

    return (0, _utils.parseNDigitsSigned)(token.length, dateString);
  }

  set(date, _flags, value) {
    date.setFullYear(value, 0, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"];
}
exports.ExtendedYearParser = ExtendedYearParser;


/***/ }),

/***/ 8052:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.secondsInYear =
  exports.secondsInWeek =
  exports.secondsInQuarter =
  exports.secondsInMonth =
  exports.secondsInMinute =
  exports.secondsInHour =
  exports.secondsInDay =
  exports.quartersInYear =
  exports.monthsInYear =
  exports.monthsInQuarter =
  exports.minutesInYear =
  exports.minutesInMonth =
  exports.minutesInHour =
  exports.minutesInDay =
  exports.minTime =
  exports.millisecondsInWeek =
  exports.millisecondsInSecond =
  exports.millisecondsInMinute =
  exports.millisecondsInHour =
  exports.millisecondsInDay =
  exports.maxTime =
  exports.daysInYear =
  exports.daysInWeek =
  exports.constructFromSymbol =
    void 0; /**
 * @module constants
 * @summary Useful constants
 * @description
 * Collection of useful date constants.
 *
 * The constants could be imported from `date-fns/constants`:
 *
 * ```ts
 * import { maxTime, minTime } from "date-fns/constants";
 *
 * function isAllowedTime(time) {
 *   return time <= maxTime && time >= minTime;
 * }
 * ```
 */

/**
 * @constant
 * @name daysInWeek
 * @summary Days in 1 week.
 */
const daysInWeek = (exports.daysInWeek = 7);

/**
 * @constant
 * @name daysInYear
 * @summary Days in 1 year.
 *
 * @description
 * How many days in a year.
 *
 * One years equals 365.2425 days according to the formula:
 *
 * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.
 * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days
 */
const daysInYear = (exports.daysInYear = 365.2425);

/**
 * @constant
 * @name maxTime
 * @summary Maximum allowed time.
 *
 * @example
 * import { maxTime } from "date-fns/constants";
 *
 * const isValid = 8640000000000001 <= maxTime;
 * //=> false
 *
 * new Date(8640000000000001);
 * //=> Invalid Date
 */
const maxTime = (exports.maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000);

/**
 * @constant
 * @name minTime
 * @summary Minimum allowed time.
 *
 * @example
 * import { minTime } from "date-fns/constants";
 *
 * const isValid = -8640000000000001 >= minTime;
 * //=> false
 *
 * new Date(-8640000000000001)
 * //=> Invalid Date
 */
const minTime = (exports.minTime = -maxTime);

/**
 * @constant
 * @name millisecondsInWeek
 * @summary Milliseconds in 1 week.
 */
const millisecondsInWeek = (exports.millisecondsInWeek = 604800000);

/**
 * @constant
 * @name millisecondsInDay
 * @summary Milliseconds in 1 day.
 */
const millisecondsInDay = (exports.millisecondsInDay = 86400000);

/**
 * @constant
 * @name millisecondsInMinute
 * @summary Milliseconds in 1 minute
 */
const millisecondsInMinute = (exports.millisecondsInMinute = 60000);

/**
 * @constant
 * @name millisecondsInHour
 * @summary Milliseconds in 1 hour
 */
const millisecondsInHour = (exports.millisecondsInHour = 3600000);

/**
 * @constant
 * @name millisecondsInSecond
 * @summary Milliseconds in 1 second
 */
const millisecondsInSecond = (exports.millisecondsInSecond = 1000);

/**
 * @constant
 * @name minutesInYear
 * @summary Minutes in 1 year.
 */
const minutesInYear = (exports.minutesInYear = 525600);

/**
 * @constant
 * @name minutesInMonth
 * @summary Minutes in 1 month.
 */
const minutesInMonth = (exports.minutesInMonth = 43200);

/**
 * @constant
 * @name minutesInDay
 * @summary Minutes in 1 day.
 */
const minutesInDay = (exports.minutesInDay = 1440);

/**
 * @constant
 * @name minutesInHour
 * @summary Minutes in 1 hour.
 */
const minutesInHour = (exports.minutesInHour = 60);

/**
 * @constant
 * @name monthsInQuarter
 * @summary Months in 1 quarter.
 */
const monthsInQuarter = (exports.monthsInQuarter = 3);

/**
 * @constant
 * @name monthsInYear
 * @summary Months in 1 year.
 */
const monthsInYear = (exports.monthsInYear = 12);

/**
 * @constant
 * @name quartersInYear
 * @summary Quarters in 1 year
 */
const quartersInYear = (exports.quartersInYear = 4);

/**
 * @constant
 * @name secondsInHour
 * @summary Seconds in 1 hour.
 */
const secondsInHour = (exports.secondsInHour = 3600);

/**
 * @constant
 * @name secondsInMinute
 * @summary Seconds in 1 minute.
 */
const secondsInMinute = (exports.secondsInMinute = 60);

/**
 * @constant
 * @name secondsInDay
 * @summary Seconds in 1 day.
 */
const secondsInDay = (exports.secondsInDay = secondsInHour * 24);

/**
 * @constant
 * @name secondsInWeek
 * @summary Seconds in 1 week.
 */
const secondsInWeek = (exports.secondsInWeek = secondsInDay * 7);

/**
 * @constant
 * @name secondsInYear
 * @summary Seconds in 1 year.
 */
const secondsInYear = (exports.secondsInYear = secondsInDay * daysInYear);

/**
 * @constant
 * @name secondsInMonth
 * @summary Seconds in 1 month
 */
const secondsInMonth = (exports.secondsInMonth = secondsInYear / 12);

/**
 * @constant
 * @name secondsInQuarter
 * @summary Seconds in 1 quarter.
 */
const secondsInQuarter = (exports.secondsInQuarter = secondsInMonth * 3);

/**
 * @constant
 * @name constructFromSymbol
 * @summary Symbol enabling Date extensions to inherit properties from the reference date.
 *
 * The symbol is used to enable the `constructFrom` function to construct a date
 * using a reference date and a value. It allows to transfer extra properties
 * from the reference date to the new date. It's useful for extensions like
 * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as
 * a constructor argument.
 */
const constructFromSymbol = (exports.constructFromSymbol =
  Symbol.for("constructDateFrom"));


/***/ }),

/***/ 8092:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousDay = previousDay;
var _index = __webpack_require__(1591);
var _index2 = __webpack_require__(3224);

/**
 * The {@link previousDay} function options.
 */

/**
 * @name previousDay
 * @category Weekday Helpers
 * @summary When is the previous day of the week?
 *
 * @description
 * When is the previous day of the week? 0-6 the day of the week, 0 represents Sunday.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to check
 * @param day - The day of the week
 * @param options - An object with options
 *
 * @returns The date is the previous day of week
 *
 * @example
 * // When is the previous Monday before Mar, 20, 2020?
 * const result = previousDay(new Date(2020, 2, 20), 1)
 * //=> Mon Mar 16 2020 00:00:00
 *
 * @example
 * // When is the previous Tuesday before Mar, 21, 2020?
 * const result = previousDay(new Date(2020, 2, 21), 2)
 * //=> Tue Mar 17 2020 00:00:00
 */
function previousDay(date, day, options) {
  let delta = (0, _index.getDay)(date, options) - day;
  if (delta <= 0) delta += 7;

  return (0, _index2.subDays)(date, delta, options);
}


/***/ }),

/***/ 8164:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isFriday = isFriday;
var _index = __webpack_require__(4446);

/**
 * The {@link isFriday} function options.
 */

/**
 * @name isFriday
 * @category Weekday Helpers
 * @summary Is the given date Friday?
 *
 * @description
 * Is the given date Friday?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is Friday
 *
 * @example
 * // Is 26 September 2014 Friday?
 * const result = isFriday(new Date(2014, 8, 26))
 * //=> true
 */
function isFriday(date, options) {
  return (0, _index.toDate)(date, options?.in).getDay() === 5;
}


/***/ }),

/***/ 8214:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.clamp = clamp;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(8873);
var _index3 = __webpack_require__(4855);

/**
 * The {@link clamp} function options.
 */

/**
 * The {@link clamp} function result type. It resolves the proper data type.
 * It uses the first argument date object type, starting from the date argument,
 * then the start interval date, and finally the end interval date. If
 * a context function is passed, it uses the context function return type.
 */

/**
 * @name clamp
 * @category Interval Helpers
 * @summary Return a date bounded by the start and the end of the given interval.
 *
 * @description
 * Clamps a date to the lower bound with the start of the interval and the upper
 * bound with the end of the interval.
 *
 * - When the date is less than the start of the interval, the start is returned.
 * - When the date is greater than the end of the interval, the end is returned.
 * - Otherwise the date is returned.
 *
 * @typeParam DateType - Date argument type.
 * @typeParam IntervalType - Interval argument type.
 * @typeParam Options - Options type.
 *
 * @param date - The date to be bounded
 * @param interval - The interval to bound to
 * @param options - An object with options
 *
 * @returns The date bounded by the start and the end of the interval
 *
 * @example
 * // What is Mar 21, 2021 bounded to an interval starting at Mar 22, 2021 and ending at Apr 01, 2021
 * const result = clamp(new Date(2021, 2, 21), {
 *   start: new Date(2021, 2, 22),
 *   end: new Date(2021, 3, 1),
 * })
 * //=> Mon Mar 22 2021 00:00:00
 */
function clamp(date, interval, options) {
  const [date_, start, end] = (0, _index.normalizeDates)(
    options?.in,
    date,
    interval.start,
    interval.end,
  );

  return (0, _index3.min)(
    [(0, _index2.max)([date_, start], options), end],
    options,
  );
}


/***/ }),

/***/ 8256:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.normalizeDates = normalizeDates;
var _index = __webpack_require__(2956);

function normalizeDates(context, ...dates) {
  const normalize = _index.constructFrom.bind(
    null,
    context || dates.find((date) => typeof date === "object"),
  );
  return dates.map(normalize);
}


/***/ }),

/***/ 8259:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.StandAloneQuarterParser = void 0;
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class StandAloneQuarterParser extends _Parser.Parser {
  priority = 120;

  parse(dateString, token, match) {
    switch (token) {
      // 1, 2, 3, 4
      case "q":
      case "qq": // 01, 02, 03, 04
        return (0, _utils.parseNDigits)(token.length, dateString);
      // 1st, 2nd, 3rd, 4th
      case "qo":
        return match.ordinalNumber(dateString, { unit: "quarter" });
      // Q1, Q2, Q3, Q4
      case "qqq":
        return (
          match.quarter(dateString, {
            width: "abbreviated",
            context: "standalone",
          }) ||
          match.quarter(dateString, {
            width: "narrow",
            context: "standalone",
          })
        );

      // 1, 2, 3, 4 (narrow quarter; could be not numerical)
      case "qqqqq":
        return match.quarter(dateString, {
          width: "narrow",
          context: "standalone",
        });
      // 1st quarter, 2nd quarter, ...
      case "qqqq":
      default:
        return (
          match.quarter(dateString, {
            width: "wide",
            context: "standalone",
          }) ||
          match.quarter(dateString, {
            width: "abbreviated",
            context: "standalone",
          }) ||
          match.quarter(dateString, {
            width: "narrow",
            context: "standalone",
          })
        );
    }
  }

  validate(_date, value) {
    return value >= 1 && value <= 4;
  }

  set(date, _flags, value) {
    date.setMonth((value - 1) * 3, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "Y",
    "R",
    "Q",
    "M",
    "L",
    "w",
    "I",
    "d",
    "D",
    "i",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.StandAloneQuarterParser = StandAloneQuarterParser;


/***/ }),

/***/ 8284:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getISODay = getISODay;
var _index = __webpack_require__(4446);

/**
 * The {@link getISODay} function options.
 */

/**
 * @name getISODay
 * @category Weekday Helpers
 * @summary Get the day of the ISO week of the given date.
 *
 * @description
 * Get the day of the ISO week of the given date,
 * which is 7 for Sunday, 1 for Monday etc.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The day of ISO week
 *
 * @example
 * // Which day of the ISO week is 26 February 2012?
 * const result = getISODay(new Date(2012, 1, 26))
 * //=> 7
 */
function getISODay(date, options) {
  const day = (0, _index.toDate)(date, options?.in).getDay();
  return day === 0 ? 7 : day;
}


/***/ }),

/***/ 8290:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.startOfDay = startOfDay;
var _index = __webpack_require__(4446);

/**
 * The {@link startOfDay} function options.
 */

/**
 * @name startOfDay
 * @category Day Helpers
 * @summary Return the start of a day for the given date.
 *
 * @description
 * Return the start of a day for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - The options
 *
 * @returns The start of a day
 *
 * @example
 * // The start of a day for 2 September 2014 11:55:00:
 * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 02 2014 00:00:00
 */
function startOfDay(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setHours(0, 0, 0, 0);
  return _date;
}


/***/ }),

/***/ 8397:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getQuarter = getQuarter;
var _index = __webpack_require__(4446);

/**
 * The {@link getQuarter} function options.
 */

/**
 * @name getQuarter
 * @category Quarter Helpers
 * @summary Get the year quarter of the given date.
 *
 * @description
 * Get the year quarter of the given date.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The quarter
 *
 * @example
 * // Which quarter is 2 July 2014?
 * const result = getQuarter(new Date(2014, 6, 2));
 * //=> 3
 */
function getQuarter(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const quarter = Math.trunc(_date.getMonth() / 3) + 1;
  return quarter;
}


/***/ }),

/***/ 8417:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subYears = subYears;
var _index = __webpack_require__(1440);

/**
 * The {@link subYears} function options.
 */

/**
 * @name subYears
 * @category Year Helpers
 * @summary Subtract the specified number of years from the given date.
 *
 * @description
 * Subtract the specified number of years from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of years to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the years subtracted
 *
 * @example
 * // Subtract 5 years from 1 September 2014:
 * const result = subYears(new Date(2014, 8, 1), 5)
 * //=> Tue Sep 01 2009 00:00:00
 */
function subYears(date, amount, options) {
  return (0, _index.addYears)(date, -amount, options);
}


/***/ }),

/***/ 8441:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lightFormatters = void 0;
var _index = __webpack_require__(2554);

/*
 * |     | Unit                           |     | Unit                           |
 * |-----|--------------------------------|-----|--------------------------------|
 * |  a  | AM, PM                         |  A* |                                |
 * |  d  | Day of month                   |  D  |                                |
 * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
 * |  m  | Minute                         |  M  | Month                          |
 * |  s  | Second                         |  S  | Fraction of second             |
 * |  y  | Year (abs)                     |  Y  |                                |
 *
 * Letters marked by * are not implemented but reserved by Unicode standard.
 */

const lightFormatters = (exports.lightFormatters = {
  // Year
  y(date, token) {
    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens
    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |
    // |----------|-------|----|-------|-------|-------|
    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |
    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |
    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |
    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |
    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |

    const signedYear = date.getFullYear();
    // Returns 1 for 1 BC (which is year 0 in JavaScript)
    const year = signedYear > 0 ? signedYear : 1 - signedYear;
    return (0, _index.addLeadingZeros)(
      token === "yy" ? year % 100 : year,
      token.length,
    );
  },

  // Month
  M(date, token) {
    const month = date.getMonth();
    return token === "M"
      ? String(month + 1)
      : (0, _index.addLeadingZeros)(month + 1, 2);
  },

  // Day of the month
  d(date, token) {
    return (0, _index.addLeadingZeros)(date.getDate(), token.length);
  },

  // AM or PM
  a(date, token) {
    const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am";

    switch (token) {
      case "a":
      case "aa":
        return dayPeriodEnumValue.toUpperCase();
      case "aaa":
        return dayPeriodEnumValue;
      case "aaaaa":
        return dayPeriodEnumValue[0];
      case "aaaa":
      default:
        return dayPeriodEnumValue === "am" ? "a.m." : "p.m.";
    }
  },

  // Hour [1-12]
  h(date, token) {
    return (0, _index.addLeadingZeros)(
      date.getHours() % 12 || 12,
      token.length,
    );
  },

  // Hour [0-23]
  H(date, token) {
    return (0, _index.addLeadingZeros)(date.getHours(), token.length);
  },

  // Minute
  m(date, token) {
    return (0, _index.addLeadingZeros)(date.getMinutes(), token.length);
  },

  // Second
  s(date, token) {
    return (0, _index.addLeadingZeros)(date.getSeconds(), token.length);
  },

  // Fraction of second
  S(date, token) {
    const numberOfDigits = token.length;
    const milliseconds = date.getMilliseconds();
    const fractionalSeconds = Math.trunc(
      milliseconds * Math.pow(10, numberOfDigits - 3),
    );
    return (0, _index.addLeadingZeros)(fractionalSeconds, token.length);
  },
});


/***/ }),

/***/ 8442:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.weeksToDays = weeksToDays;
var _index = __webpack_require__(8052);

/**
 * @name weeksToDays
 * @category Conversion Helpers
 * @summary Convert weeks to days.
 *
 * @description
 * Convert a number of weeks to a full number of days.
 *
 * @param weeks - The number of weeks to be converted
 *
 * @returns The number of weeks converted in days
 *
 * @example
 * // Convert 2 weeks into days
 * const result = weeksToDays(2)
 * //=> 14
 */
function weeksToDays(weeks) {
  return Math.trunc(weeks * _index.daysInWeek);
}


/***/ }),

/***/ 8483:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.formatRelative = void 0;

const formatRelativeLocale = {
  lastWeek: "'last' eeee 'at' p",
  yesterday: "'yesterday at' p",
  today: "'today at' p",
  tomorrow: "'tomorrow at' p",
  nextWeek: "eeee 'at' p",
  other: "P",
};

const formatRelative = (token, _date, _baseDate, _options) =>
  formatRelativeLocale[token];
exports.formatRelative = formatRelative;


/***/ }),

/***/ 8490:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.DayOfYearParser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class DayOfYearParser extends _Parser.Parser {
  priority = 90;

  subpriority = 1;

  parse(dateString, token, match) {
    switch (token) {
      case "D":
      case "DD":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.dayOfYear,
          dateString,
        );
      case "Do":
        return match.ordinalNumber(dateString, { unit: "date" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(date, value) {
    const year = date.getFullYear();
    const isLeapYear = (0, _utils.isLeapYearIndex)(year);
    if (isLeapYear) {
      return value >= 1 && value <= 366;
    } else {
      return value >= 1 && value <= 365;
    }
  }

  set(date, _flags, value) {
    date.setMonth(0, value);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "Y",
    "R",
    "q",
    "Q",
    "M",
    "L",
    "w",
    "I",
    "d",
    "E",
    "i",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.DayOfYearParser = DayOfYearParser;


/***/ }),

/***/ 8520:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isBefore = isBefore;
var _index = __webpack_require__(4446);

/**
 * @name isBefore
 * @category Common Helpers
 * @summary Is the first date before the second one?
 *
 * @description
 * Is the first date before the second one?
 *
 * @param date - The date that should be before the other one to return true
 * @param dateToCompare - The date to compare with
 *
 * @returns The first date is before the second date
 *
 * @example
 * // Is 10 July 1989 before 11 February 1987?
 * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))
 * //=> false
 */
function isBefore(date, dateToCompare) {
  return +(0, _index.toDate)(date) < +(0, _index.toDate)(dateToCompare);
}


/***/ }),

/***/ 8542:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.subQuarters = subQuarters;
var _index = __webpack_require__(1149);

/**
 * The {@link subQuarters} function options.
 */

/**
 * @name subQuarters
 * @category Quarter Helpers
 * @summary Subtract the specified number of year quarters from the given date.
 *
 * @description
 * Subtract the specified number of year quarters from the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of quarters to be subtracted.
 * @param options - An object with options
 *
 * @returns The new date with the quarters subtracted
 *
 * @example
 * // Subtract 3 quarters from 1 September 2014:
 * const result = subQuarters(new Date(2014, 8, 1), 3)
 * //=> Sun Dec 01 2013 00:00:00
 */
function subQuarters(date, amount, options) {
  return (0, _index.addQuarters)(date, -amount, options);
}


/***/ }),

/***/ 8563:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.hoursToMilliseconds = hoursToMilliseconds;
var _index = __webpack_require__(8052);

/**
 * @name hoursToMilliseconds
 * @category  Conversion Helpers
 * @summary Convert hours to milliseconds.
 *
 * @description
 * Convert a number of hours to a full number of milliseconds.
 *
 * @param hours - number of hours to be converted
 *
 * @returns The number of hours converted to milliseconds
 *
 * @example
 * // Convert 2 hours to milliseconds:
 * const result = hoursToMilliseconds(2)
 * //=> 7200000
 */
function hoursToMilliseconds(hours) {
  return Math.trunc(hours * _index.millisecondsInHour);
}


/***/ }),

/***/ 8589:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.DateParser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
const DAYS_IN_MONTH_LEAP_YEAR = [
  31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
];

// Day of the month
class DateParser extends _Parser.Parser {
  priority = 90;
  subPriority = 1;

  parse(dateString, token, match) {
    switch (token) {
      case "d":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.date,
          dateString,
        );
      case "do":
        return match.ordinalNumber(dateString, { unit: "date" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(date, value) {
    const year = date.getFullYear();
    const isLeapYear = (0, _utils.isLeapYearIndex)(year);
    const month = date.getMonth();
    if (isLeapYear) {
      return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];
    } else {
      return value >= 1 && value <= DAYS_IN_MONTH[month];
    }
  }

  set(date, _flags, value) {
    date.setDate(value);
    date.setHours(0, 0, 0, 0);
    return date;
  }

  incompatibleTokens = [
    "Y",
    "R",
    "q",
    "Q",
    "w",
    "I",
    "D",
    "i",
    "e",
    "c",
    "t",
    "T",
  ];
}
exports.DateParser = DateParser;


/***/ }),

/***/ 8595:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getISOWeeksInYear = getISOWeeksInYear;
var _index = __webpack_require__(4073);
var _index2 = __webpack_require__(8052);
var _index3 = __webpack_require__(1152);

/**
 * The {@link getISOWeeksInYear} function options.
 */

/**
 * @name getISOWeeksInYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Get the number of weeks in an ISO week-numbering year of the given date.
 *
 * @description
 * Get the number of weeks in an ISO week-numbering year of the given date.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The number of ISO weeks in a year
 *
 * @example
 * // How many weeks are in ISO week-numbering year 2015?
 * const result = getISOWeeksInYear(new Date(2015, 1, 11))
 * //=> 53
 */
function getISOWeeksInYear(date, options) {
  const thisYear = (0, _index3.startOfISOWeekYear)(date, options);
  const nextYear = (0, _index3.startOfISOWeekYear)(
    (0, _index.addWeeks)(thisYear, 60),
  );
  const diff = +nextYear - +thisYear;

  // Round the number of weeks to the nearest integer because the number of
  // milliseconds in a week is not constant (e.g. it's different in the week of
  // the daylight saving time clock shift).
  return Math.round(diff / _index2.millisecondsInWeek);
}


/***/ }),

/***/ 8684:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getYear = getYear;
var _index = __webpack_require__(4446);

/**
 * The {@link getYear} function options.
 */

/**
 * @name getYear
 * @category Year Helpers
 * @summary Get the year of the given date.
 *
 * @description
 * Get the year of the given date.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The year
 *
 * @example
 * // Which year is 2 July 2014?
 * const result = getYear(new Date(2014, 6, 2))
 * //=> 2014
 */
function getYear(date, options) {
  return (0, _index.toDate)(date, options?.in).getFullYear();
}


/***/ }),

/***/ 8715:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1354);
/* harmony import */ var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6314);
/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `.rdrCalendarWrapper{box-sizing:border-box;background:#fff;display:inline-flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDateDisplay{display:flex;justify-content:space-between}.rdrDateDisplayItem{flex:1 1;width:0;text-align:center;color:inherit}.rdrDateDisplayItem+.rdrDateDisplayItem{margin-left:.833em}.rdrDateDisplayItem input{text-align:inherit}.rdrDateDisplayItem input:disabled{cursor:default}.rdrMonthAndYearWrapper{box-sizing:inherit;display:flex;justify-content:space-between}.rdrMonthAndYearPickers{flex:1 1 auto;display:flex;justify-content:center;align-items:center}.rdrNextPrevButton{box-sizing:inherit;cursor:pointer;outline:none}.rdrMonths{display:flex}.rdrMonthsVertical{flex-direction:column}.rdrMonthsHorizontal>div>div>div{display:flex;flex-direction:row}.rdrMonth{width:27.667em}.rdrWeekDays{display:flex}.rdrWeekDay{flex-basis:14.2857142857%;box-sizing:inherit;text-align:center}.rdrDays{display:flex;flex-wrap:wrap}.rdrInfiniteMonths{overflow:auto}.rdrDateRangeWrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDateInput{position:relative}.rdrDateInput input{outline:none}.rdrDateInput .rdrWarning{position:absolute;font-size:1.6em;line-height:1.6em;top:0;right:.25em;color:red}.rdrDay{box-sizing:inherit;width:14.2857142857%;position:relative;font:inherit;cursor:pointer}.rdrDayNumber{display:block;position:relative}.rdrDayNumber span{color:#1d2429}.rdrDayDisabled{cursor:not-allowed}@supports(-ms-ime-align: auto){.rdrDay{flex-basis:14.285% !important}}.rdrSelected,.rdrInRange,.rdrStartEdge,.rdrEndEdge{pointer-events:none}.rdrDayStartPreview,.rdrDayInPreview,.rdrDayEndPreview{pointer-events:none}.rdrDateRangePickerWrapper{display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrStaticRanges{display:flex;flex-direction:column}.rdrStaticRange{font-size:inherit}.rdrInputRange{display:flex}`, "",{"version":3,"sources":["webpack://./node_modules/react-date-range/dist/styles.css"],"names":[],"mappings":"AAAA,oBAAoB,qBAAqB,CAAC,eAAe,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,YAAY,CAAC,6BAA6B,CAAC,oBAAoB,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,wCAAwC,kBAAkB,CAAC,0BAA0B,kBAAkB,CAAC,mCAAmC,cAAc,CAAC,wBAAwB,kBAAkB,CAAC,YAAY,CAAC,6BAA6B,CAAC,wBAAwB,aAAa,CAAC,YAAY,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,mBAAmB,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,YAAY,CAAC,mBAAmB,qBAAqB,CAAC,iCAAiC,YAAY,CAAC,kBAAkB,CAAC,UAAU,cAAc,CAAC,aAAa,YAAY,CAAC,YAAY,yBAAyB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,YAAY,CAAC,cAAc,CAAC,mBAAmB,aAAa,CAAC,qBAAqB,wBAAwB,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,cAAc,iBAAiB,CAAC,oBAAoB,YAAY,CAAC,0BAA0B,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,kBAAkB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,aAAa,CAAC,iBAAiB,CAAC,mBAAmB,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,+BAA+B,QAAQ,6BAA6B,CAAC,CAAC,mDAAmD,mBAAmB,CAAC,uDAAuD,mBAAmB,CAAC,2BAA2B,mBAAmB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,YAAY,CAAC,qBAAqB,CAAC,gBAAgB,iBAAiB,CAAC,eAAe,YAAY","sourcesContent":[".rdrCalendarWrapper{box-sizing:border-box;background:#fff;display:inline-flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDateDisplay{display:flex;justify-content:space-between}.rdrDateDisplayItem{flex:1 1;width:0;text-align:center;color:inherit}.rdrDateDisplayItem+.rdrDateDisplayItem{margin-left:.833em}.rdrDateDisplayItem input{text-align:inherit}.rdrDateDisplayItem input:disabled{cursor:default}.rdrMonthAndYearWrapper{box-sizing:inherit;display:flex;justify-content:space-between}.rdrMonthAndYearPickers{flex:1 1 auto;display:flex;justify-content:center;align-items:center}.rdrNextPrevButton{box-sizing:inherit;cursor:pointer;outline:none}.rdrMonths{display:flex}.rdrMonthsVertical{flex-direction:column}.rdrMonthsHorizontal>div>div>div{display:flex;flex-direction:row}.rdrMonth{width:27.667em}.rdrWeekDays{display:flex}.rdrWeekDay{flex-basis:14.2857142857%;box-sizing:inherit;text-align:center}.rdrDays{display:flex;flex-wrap:wrap}.rdrInfiniteMonths{overflow:auto}.rdrDateRangeWrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrDateInput{position:relative}.rdrDateInput input{outline:none}.rdrDateInput .rdrWarning{position:absolute;font-size:1.6em;line-height:1.6em;top:0;right:.25em;color:red}.rdrDay{box-sizing:inherit;width:14.2857142857%;position:relative;font:inherit;cursor:pointer}.rdrDayNumber{display:block;position:relative}.rdrDayNumber span{color:#1d2429}.rdrDayDisabled{cursor:not-allowed}@supports(-ms-ime-align: auto){.rdrDay{flex-basis:14.285% !important}}.rdrSelected,.rdrInRange,.rdrStartEdge,.rdrEndEdge{pointer-events:none}.rdrDayStartPreview,.rdrDayInPreview,.rdrDayEndPreview{pointer-events:none}.rdrDateRangePickerWrapper{display:inline-flex;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rdrStaticRanges{display:flex;flex-direction:column}.rdrStaticRange{font-size:inherit}.rdrInputRange{display:flex}"],"sourceRoot":""}]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 8741:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.closestIndexTo = closestIndexTo;
var _index = __webpack_require__(4446);

/**
 * @name closestIndexTo
 * @category Common Helpers
 * @summary Return an index of the closest date from the array comparing to the given date.
 *
 * @description
 * Return an index of the closest date from the array comparing to the given date.
 *
 * @param dateToCompare - The date to compare with
 * @param dates - The array to search
 *
 * @returns An index of the date closest to the given date or undefined if no valid value is given
 *
 * @example
 * // Which date is closer to 6 September 2015?
 * const dateToCompare = new Date(2015, 8, 6)
 * const datesArray = [
 *   new Date(2015, 0, 1),
 *   new Date(2016, 0, 1),
 *   new Date(2017, 0, 1)
 * ]
 * const result = closestIndexTo(dateToCompare, datesArray)
 * //=> 1
 */
function closestIndexTo(dateToCompare, dates) {
  // [TODO] It would be better to return -1 here rather than undefined, as this
  // is how JS behaves, but it would be a breaking change, so we need
  // to consider it for v4.
  const timeToCompare = +(0, _index.toDate)(dateToCompare);

  if (isNaN(timeToCompare)) return NaN;

  let result;
  let minDistance;
  dates.forEach((date, index) => {
    const date_ = (0, _index.toDate)(date);

    if (isNaN(+date_)) {
      result = NaN;
      minDistance = NaN;
      return;
    }

    const distance = Math.abs(timeToCompare - +date_);
    if (result == null || distance < minDistance) {
      result = index;
      minDistance = distance;
    }
  });

  return result;
}


/***/ }),

/***/ 8813:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.differenceInCalendarISOWeeks = differenceInCalendarISOWeeks;
var _index = __webpack_require__(6339);
var _index2 = __webpack_require__(8256);
var _index3 = __webpack_require__(8052);
var _index4 = __webpack_require__(6107);

/**
 * The {@link differenceInCalendarISOWeeks} function options.
 */

/**
 * @name differenceInCalendarISOWeeks
 * @category ISO Week Helpers
 * @summary Get the number of calendar ISO weeks between the given dates.
 *
 * @description
 * Get the number of calendar ISO weeks between the given dates.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param laterDate - The later date
 * @param earlierDate - The earlier date
 * @param options - An object with options
 *
 * @returns The number of calendar ISO weeks
 *
 * @example
 * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?
 * const result = differenceInCalendarISOWeeks(
 *   new Date(2014, 6, 21),
 *   new Date(2014, 6, 6),
 * );
 * //=> 3
 */
function differenceInCalendarISOWeeks(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index2.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );

  const startOfISOWeekLeft = (0, _index4.startOfISOWeek)(laterDate_);
  const startOfISOWeekRight = (0, _index4.startOfISOWeek)(earlierDate_);

  const timestampLeft =
    +startOfISOWeekLeft -
    (0, _index.getTimezoneOffsetInMilliseconds)(startOfISOWeekLeft);
  const timestampRight =
    +startOfISOWeekRight -
    (0, _index.getTimezoneOffsetInMilliseconds)(startOfISOWeekRight);

  // Round the number of weeks to the nearest integer because the number of
  // milliseconds in a week is not constant (e.g. it's different in the week of
  // the daylight saving time clock shift).
  return Math.round(
    (timestampLeft - timestampRight) / _index3.millisecondsInWeek,
  );
}


/***/ }),

/***/ 8847:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameMinute = isSameMinute;
var _index = __webpack_require__(1804);

/**
 * @name isSameMinute
 * @category Minute Helpers
 * @summary Are the given dates in the same minute (and hour and day)?
 *
 * @description
 * Are the given dates in the same minute (and hour and day)?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 *
 * @returns The dates are in the same minute (and hour and day)
 *
 * @example
 * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15 in the same minute?
 * const result = isSameMinute(
 *   new Date(2014, 8, 4, 6, 30),
 *   new Date(2014, 8, 4, 6, 30, 15)
 * )
 * //=> true
 *
 * @example
 * // Are 4 September 2014 06:30:00 and 5 September 2014 06:30:00 in the same minute?
 * const result = isSameMinute(
 *   new Date(2014, 8, 4, 6, 30),
 *   new Date(2014, 8, 5, 6, 30)
 * )
 * //=> false
 */
function isSameMinute(laterDate, earlierDate) {
  return (
    +(0, _index.startOfMinute)(laterDate) ===
    +(0, _index.startOfMinute)(earlierDate)
  );
}


/***/ }),

/***/ 8857:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameISOWeekYear = isSameISOWeekYear;
var _index = __webpack_require__(1152);

var _index2 = __webpack_require__(8256);

/**
 * The {@link isSameISOWeekYear} function options.
 */

/**
 * @name isSameISOWeekYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Are the given dates in the same ISO week-numbering year?
 *
 * @description
 * Are the given dates in the same ISO week-numbering year?
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same ISO week-numbering year
 *
 * @example
 * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?
 * const result = isSameISOWeekYear(new Date(2003, 11, 29), new Date(2005, 0, 2))
 * //=> true
 */
function isSameISOWeekYear(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index2.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return (
    +(0, _index.startOfISOWeekYear)(laterDate_) ===
    +(0, _index.startOfISOWeekYear)(earlierDate_)
  );
}


/***/ }),

/***/ 8859:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.createStaticRanges = createStaticRanges;
exports.defaultStaticRanges = exports.defaultInputRanges = void 0;
var _dateFns = __webpack_require__(411);
const defineds = {
  startOfWeek: (0, _dateFns.startOfWeek)(new Date()),
  endOfWeek: (0, _dateFns.endOfWeek)(new Date()),
  startOfLastWeek: (0, _dateFns.startOfWeek)((0, _dateFns.addDays)(new Date(), -7)),
  endOfLastWeek: (0, _dateFns.endOfWeek)((0, _dateFns.addDays)(new Date(), -7)),
  startOfToday: (0, _dateFns.startOfDay)(new Date()),
  endOfToday: (0, _dateFns.endOfDay)(new Date()),
  startOfYesterday: (0, _dateFns.startOfDay)((0, _dateFns.addDays)(new Date(), -1)),
  endOfYesterday: (0, _dateFns.endOfDay)((0, _dateFns.addDays)(new Date(), -1)),
  startOfMonth: (0, _dateFns.startOfMonth)(new Date()),
  endOfMonth: (0, _dateFns.endOfMonth)(new Date()),
  startOfLastMonth: (0, _dateFns.startOfMonth)((0, _dateFns.addMonths)(new Date(), -1)),
  endOfLastMonth: (0, _dateFns.endOfMonth)((0, _dateFns.addMonths)(new Date(), -1))
};
const staticRangeHandler = {
  range: {},
  isSelected(range) {
    const definedRange = this.range();
    return (0, _dateFns.isSameDay)(range.startDate, definedRange.startDate) && (0, _dateFns.isSameDay)(range.endDate, definedRange.endDate);
  }
};
function createStaticRanges(ranges) {
  return ranges.map(range => ({
    ...staticRangeHandler,
    ...range
  }));
}
const defaultStaticRanges = exports.defaultStaticRanges = createStaticRanges([{
  label: 'Today',
  range: () => ({
    startDate: defineds.startOfToday,
    endDate: defineds.endOfToday
  })
}, {
  label: 'Yesterday',
  range: () => ({
    startDate: defineds.startOfYesterday,
    endDate: defineds.endOfYesterday
  })
}, {
  label: 'This Week',
  range: () => ({
    startDate: defineds.startOfWeek,
    endDate: defineds.endOfWeek
  })
}, {
  label: 'Last Week',
  range: () => ({
    startDate: defineds.startOfLastWeek,
    endDate: defineds.endOfLastWeek
  })
}, {
  label: 'This Month',
  range: () => ({
    startDate: defineds.startOfMonth,
    endDate: defineds.endOfMonth
  })
}, {
  label: 'Last Month',
  range: () => ({
    startDate: defineds.startOfLastMonth,
    endDate: defineds.endOfLastMonth
  })
}]);
const defaultInputRanges = exports.defaultInputRanges = [{
  label: 'days up to today',
  range(value) {
    return {
      startDate: (0, _dateFns.addDays)(defineds.startOfToday, (Math.max(Number(value), 1) - 1) * -1),
      endDate: defineds.endOfToday
    };
  },
  getCurrentValue(range) {
    if (!(0, _dateFns.isSameDay)(range.endDate, defineds.endOfToday)) return '-';
    if (!range.startDate) return '∞';
    return (0, _dateFns.differenceInCalendarDays)(defineds.endOfToday, range.startDate) + 1;
  }
}, {
  label: 'days starting today',
  range(value) {
    const today = new Date();
    return {
      startDate: today,
      endDate: (0, _dateFns.addDays)(today, Math.max(Number(value), 1) - 1)
    };
  },
  getCurrentValue(range) {
    if (!(0, _dateFns.isSameDay)(range.startDate, defineds.startOfToday)) return '-';
    if (!range.endDate) return '∞';
    return (0, _dateFns.differenceInCalendarDays)(range.endDate, defineds.startOfToday) + 1;
  }
}];

/***/ }),

/***/ 8873:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.max = max;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(4446);

/**
 * The {@link max} function options.
 */

/**
 * @name max
 * @category Common Helpers
 * @summary Return the latest of the given dates.
 *
 * @description
 * Return the latest of the given dates.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param dates - The dates to compare
 *
 * @returns The latest of the dates
 *
 * @example
 * // Which of these dates is the latest?
 * const result = max([
 *   new Date(1989, 6, 10),
 *   new Date(1987, 1, 11),
 *   new Date(1995, 6, 2),
 *   new Date(1990, 0, 1)
 * ])
 * //=> Sun Jul 02 1995 00:00:00
 */
function max(dates, options) {
  let result;
  let context = options?.in;

  dates.forEach((date) => {
    // Use the first date object as the context function
    if (!context && typeof date === "object")
      context = _index.constructFrom.bind(null, date);

    const date_ = (0, _index2.toDate)(date, context);
    if (!result || result < date_ || isNaN(+date_)) result = date_;
  });

  return (0, _index.constructFrom)(context, result || NaN);
}


/***/ }),

/***/ 8926:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getISOWeek = getISOWeek;
var _index = __webpack_require__(8052);
var _index2 = __webpack_require__(6107);
var _index3 = __webpack_require__(1152);
var _index4 = __webpack_require__(4446);

/**
 * The {@link getISOWeek} function options.
 */

/**
 * @name getISOWeek
 * @category ISO Week Helpers
 * @summary Get the ISO week of the given date.
 *
 * @description
 * Get the ISO week of the given date.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param date - The given date
 * @param options - The options
 *
 * @returns The ISO week
 *
 * @example
 * // Which week of the ISO-week numbering year is 2 January 2005?
 * const result = getISOWeek(new Date(2005, 0, 2))
 * //=> 53
 */
function getISOWeek(date, options) {
  const _date = (0, _index4.toDate)(date, options?.in);
  const diff =
    +(0, _index2.startOfISOWeek)(_date) -
    +(0, _index3.startOfISOWeekYear)(_date);

  // Round the number of weeks to the nearest integer because the number of
  // milliseconds in a week is not constant (e.g. it's different in the week of
  // the daylight saving time clock shift).
  return Math.round(diff / _index.millisecondsInWeek) + 1;
}


/***/ }),

/***/ 8996:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachHourOfInterval = eachHourOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(2956);

/**
 * The {@link eachHourOfInterval} function options.
 */

/**
 * The {@link eachHourOfInterval} function result type.
 * Resolves to the appropriate date type based on inputs.
 */

/**
 * @name eachHourOfInterval
 * @category Interval Helpers
 * @summary Return the array of hours within the specified time interval.
 *
 * @description
 * Return the array of hours within the specified time interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The interval.
 * @param options - An object with options.
 *
 * @returns The array with starts of hours from the hour of the interval start to the hour of the interval end
 *
 * @example
 * // Each hour between 6 October 2014, 12:00 and 6 October 2014, 15:00
 * const result = eachHourOfInterval({
 *   start: new Date(2014, 9, 6, 12),
 *   end: new Date(2014, 9, 6, 15)
 * });
 * //=> [
 * //   Mon Oct 06 2014 12:00:00,
 * //   Mon Oct 06 2014 13:00:00,
 * //   Mon Oct 06 2014 14:00:00,
 * //   Mon Oct 06 2014 15:00:00
 * // ]
 */
function eachHourOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);

  let reversed = +start > +end;
  const endTime = reversed ? +start : +end;
  const date = reversed ? end : start;
  date.setMinutes(0, 0, 0);

  let step = options?.step ?? 1;
  if (!step) return [];
  if (step < 0) {
    step = -step;
    reversed = !reversed;
  }

  const dates = [];

  while (+date <= endTime) {
    dates.push((0, _index2.constructFrom)(start, date));
    date.setHours(date.getHours() + step);
  }

  return reversed ? dates.reverse() : dates;
}


/***/ }),

/***/ 9019:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameMonth = isSameMonth;
var _index = __webpack_require__(8256);

/**
 * The {@link isSameMonth} function options.
 */

/**
 * @name isSameMonth
 * @category Month Helpers
 * @summary Are the given dates in the same month (and year)?
 *
 * @description
 * Are the given dates in the same month (and year)?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same month (and year)
 *
 * @example
 * // Are 2 September 2014 and 25 September 2014 in the same month?
 * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))
 * //=> true
 *
 * @example
 * // Are 2 September 2014 and 25 September 2015 in the same month?
 * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))
 * //=> false
 */
function isSameMonth(laterDate, earlierDate, options) {
  const [laterDate_, earlierDate_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return (
    laterDate_.getFullYear() === earlierDate_.getFullYear() &&
    laterDate_.getMonth() === earlierDate_.getMonth()
  );
}


/***/ }),

/***/ 9038:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

exports.buildMatchFn = buildMatchFn;

function buildMatchFn(args) {
  return (string, options = {}) => {
    const width = options.width;

    const matchPattern =
      (width && args.matchPatterns[width]) ||
      args.matchPatterns[args.defaultMatchWidth];
    const matchResult = string.match(matchPattern);

    if (!matchResult) {
      return null;
    }
    const matchedString = matchResult[0];

    const parsePatterns =
      (width && args.parsePatterns[width]) ||
      args.parsePatterns[args.defaultParseWidth];

    const key = Array.isArray(parsePatterns)
      ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))
      : // [TODO] -- I challenge you to fix the type
        findKey(parsePatterns, (pattern) => pattern.test(matchedString));

    let value;

    value = args.valueCallback ? args.valueCallback(key) : key;
    value = options.valueCallback
      ? // [TODO] -- I challenge you to fix the type
        options.valueCallback(value)
      : value;

    const rest = string.slice(matchedString.length);

    return { value, rest };
  };
}

function findKey(object, predicate) {
  for (const key in object) {
    if (
      Object.prototype.hasOwnProperty.call(object, key) &&
      predicate(object[key])
    ) {
      return key;
    }
  }
  return undefined;
}

function findIndex(array, predicate) {
  for (let key = 0; key < array.length; key++) {
    if (predicate(array[key])) {
      return key;
    }
  }
  return undefined;
}


/***/ }),

/***/ 9049:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.yearsToQuarters = yearsToQuarters;
var _index = __webpack_require__(8052);

/**
 * @name yearsToQuarters
 * @category Conversion Helpers
 * @summary Convert years to quarters.
 *
 * @description
 * Convert a number of years to a full number of quarters.
 *
 * @param years - The number of years to be converted
 *
 * @returns The number of years converted in quarters
 *
 * @example
 * // Convert 2 years to quarters
 * const result = yearsToQuarters(2)
 * //=> 8
 */
function yearsToQuarters(years) {
  return Math.trunc(years * _index.quartersInYear);
}


/***/ }),

/***/ 9059:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousThursday = previousThursday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousThursday} function options.
 */

/**
 * @name previousThursday
 * @category Weekday Helpers
 * @summary When is the previous Thursday?
 *
 * @description
 * When is the previous Thursday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The previous Thursday
 *
 * @example
 * // When is the previous Thursday before Jun, 18, 2021?
 * const result = previousThursday(new Date(2021, 5, 18))
 * //=> Thu June 17 2021 00:00:00
 */
function previousThursday(date, options) {
  return (0, _index.previousDay)(date, 4, options);
}


/***/ }),

/***/ 9105:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisMonth = isThisMonth;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(9019);

/**
 * The {@link isThisMonth} function options.
 */

/**
 * @name isThisMonth
 * @category Month Helpers
 * @summary Is the given date in the same month as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same month as the current date?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is in this month
 *
 * @example
 * // If today is 25 September 2014, is 15 September 2014 in this month?
 * const result = isThisMonth(new Date(2014, 8, 15))
 * //=> true
 */
function isThisMonth(date, options) {
  return (0, _index3.isSameMonth)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index2.constructNow)(options?.in || date),
  );
}


/***/ }),

/***/ 9116:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Bz: () => (/* binding */ getIdParam),
/* harmony export */   Dk: () => (/* binding */ copyText),
/* harmony export */   Ds: () => (/* binding */ showNotification),
/* harmony export */   Fw: () => (/* binding */ playerTypes),
/* harmony export */   HG: () => (/* binding */ useHandlePlayerResize),
/* harmony export */   Hc: () => (/* binding */ setIdParam),
/* harmony export */   J8: () => (/* binding */ removeIdParam),
/* harmony export */   KA: () => (/* binding */ base64Encode),
/* harmony export */   LG: () => (/* binding */ getAudioDuration),
/* harmony export */   Nt: () => (/* binding */ copyShortcode),
/* harmony export */   PB: () => (/* binding */ openPopup),
/* harmony export */   Qu: () => (/* binding */ formatUsDate),
/* harmony export */   Th: () => (/* binding */ showClassicEditorPopup),
/* harmony export */   Yq: () => (/* binding */ formatDate),
/* harmony export */   ZZ: () => (/* binding */ formatDateForSQL),
/* harmony export */   a3: () => (/* binding */ formatDuration),
/* harmony export */   fU: () => (/* binding */ formatTime),
/* harmony export */   qK: () => (/* binding */ useMounted),
/* harmony export */   qQ: () => (/* binding */ posterClick),
/* harmony export */   qZ: () => (/* binding */ getVideoDuration),
/* harmony export */   ro: () => (/* binding */ getSkins),
/* harmony export */   sK: () => (/* binding */ textUpperCase),
/* harmony export */   so: () => (/* binding */ showEmbedModal),
/* harmony export */   st: () => (/* binding */ useResize),
/* harmony export */   uB: () => (/* binding */ showReviewPopup),
/* harmony export */   uW: () => (/* binding */ sendStatistics),
/* harmony export */   u_: () => (/* binding */ exportStatistics)
/* harmony export */ });
/* unused harmony exports getOrdinalSuffix, base64Decode, getPlayUrl, useOutsideClickHandler, isIOS, openStickyPlayer */
/* harmony import */ var _components_Player__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2480);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }

function sendStatistics(_x) {
  return _sendStatistics.apply(this, arguments);
}
function _sendStatistics() {
  _sendStatistics = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref) {
    var id, player_type, track, _ref$action, action, _ref$duration, duration, getUserData, userData, payload;
    return _regenerator().w(function (_context2) {
      while (1) switch (_context2.n) {
        case 0:
          id = _ref.id, player_type = _ref.player_type, track = _ref.track, _ref$action = _ref.action, action = _ref$action === void 0 ? 'play' : _ref$action, _ref$duration = _ref.duration, duration = _ref$duration === void 0 ? 0 : _ref$duration;
          if (!(!smp.isPro || !smp.settings.enableStats)) {
            _context2.n = 1;
            break;
          }
          return _context2.a(2);
        case 1:
          getUserData = /*#__PURE__*/function () {
            var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
              var saved, res, data, ip, country, country_code, _userData, _t, _t2;
              return _regenerator().w(function (_context) {
                while (1) switch (_context.n) {
                  case 0:
                    saved = localStorage.getItem('smp_user_data');
                    if (!saved) {
                      _context.n = 3;
                      break;
                    }
                    _context.p = 1;
                    return _context.a(2, JSON.parse(saved));
                  case 2:
                    _context.p = 2;
                    _t = _context.v;
                    console.warn('Failed to parse saved user data:', _t);
                  case 3:
                    _context.p = 3;
                    _context.n = 4;
                    return fetch('//www.iplocate.io/api/lookup');
                  case 4:
                    res = _context.v;
                    _context.n = 5;
                    return res.json();
                  case 5:
                    data = _context.v;
                    ip = data.ip, country = data.country, country_code = data.country_code;
                    _userData = {
                      ip: ip,
                      country: country
                    };
                    localStorage.setItem('smp_user_data', JSON.stringify(_userData));
                    return _context.a(2, _userData);
                  case 6:
                    _context.p = 6;
                    _t2 = _context.v;
                    console.error('Failed to fetch user data:', _t2);
                    return _context.a(2, {});
                }
              }, _callee, null, [[3, 6], [1, 2]]);
            }));
            return function getUserData() {
              return _ref2.apply(this, arguments);
            };
          }();
          _context2.n = 2;
          return getUserData();
        case 2:
          userData = _context2.v;
          payload = _objectSpread({
            id: id,
            type: player_type,
            track: track,
            event: action,
            duration: duration,
            userAgent: navigator.userAgent,
            page: window.location.href,
            timestamp: new Date().toISOString(),
            nonce: smp.nonce
          }, userData);
          wp.ajax.send('smp_insert_log', {
            data: payload,
            error: function error(_error) {
              console.error('Stats error:', _error);
            }
          });
        case 3:
          return _context2.a(2);
      }
    }, _callee2);
  }));
  return _sendStatistics.apply(this, arguments);
}
function formatDuration(seconds) {
  seconds = Number(seconds);
  if (!seconds || seconds < 1) return '00:00:00';
  var h = String(Math.floor(seconds / 3600)).padStart(2, '0');
  var m = String(Math.floor(seconds % 3600 / 60)).padStart(2, '0');
  var s = String(seconds % 60).padStart(2, '0');
  return "".concat(h, ":").concat(m, ":").concat(s);
}
function openPopup(id) {
  var _smp;
  var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var width = 450;
  var height = 550;
  if ((_smp = smp) !== null && _smp !== void 0 && (_smp = _smp.settings) !== null && _smp !== void 0 && _smp.customPopupSize) {
    var _smp$settings = smp.settings,
      _smp$settings$popupWi = _smp$settings.popupWidth,
      popupWidth = _smp$settings$popupWi === void 0 ? 450 : _smp$settings$popupWi,
      _smp$settings$popupHe = _smp$settings.popupHeight,
      popupHeight = _smp$settings$popupHe === void 0 ? 550 : _smp$settings$popupHe;
    width = popupWidth;
    height = popupHeight;
  }
  var homeUrl = smp.homeUrl;
  var httpUrl = homeUrl.replace('https://', 'http://');
  window.open("".concat(httpUrl, "/?multimedia_player=").concat(id, "&index=").concat(index, "&multimedia_player_popup=1"), 'multimedia-player', "width=".concat(width, ",height=").concat(height));
}
function copyShortcode(e) {
  var element = e.target.parentNode.querySelector('code');
  window.getSelection().selectAllChildren(element);
  var copyText = element.innerHTML;
  if (window.isSecureContext) {
    navigator.clipboard.writeText(copyText);
  } else {
    var textArea = document.createElement("textarea");
    textArea.value = copyText;
    document.body.appendChild(textArea);
    textArea.select();
    document.execCommand("Copy");
    textArea.remove();
  }
  Swal.fire({
    title: wp.i18n.__('Copied', "multimedia-player"),
    text: wp.i18n.__('Shortcode copied to clipboard', "multimedia-player"),
    icon: 'success',
    showConfirmButton: false,
    timer: 2000,
    timerProgressBar: true,
    toast: true
  });
}
function showNotification($text) {
  var $type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'success';
  Swal.fire({
    title: false,
    text: $text,
    icon: $type,
    toast: true,
    timer: 1500,
    timerProgressBar: true,
    showConfirmButton: false,
    position: 'top-end',
    customClass: {
      container: 'smp-swal smp-notification save-settings-toast'
    }
  });
}
function useMounted() {
  var _React$useState = React.useState(false),
    _React$useState2 = _slicedToArray(_React$useState, 2),
    mounted = _React$useState2[0],
    setMounted = _React$useState2[1];
  React.useEffect(function () {
    setMounted(true);
  }, []);
  return mounted;
}
function setIdParam(id) {
  var url = new URL(window.location.href);
  url.searchParams.set('id', id);
  window.history.pushState({}, '', url);
}
function removeIdParam() {
  var url = new URL(window.location.href);
  url.searchParams["delete"]('id');
  url.hash = ""; // reset the hash
  window.history.pushState({}, '', url);
}
function getIdParam() {
  var params = new URLSearchParams(window.location.search);
  return params.get('id');
}
function getOrdinalSuffix(n) {
  var s = ["th", "st", "nd", "rd"],
    v = n % 100;
  return n + (s[(v - 20) % 10] || s[v] || s[0]);
}
function base64Encode(str) {
  return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {
    return String.fromCharCode('0x' + p1);
  }));
}
function base64Decode(str) {
  return decodeURIComponent(atob(str).split('').map(function (c) {
    return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
  }).join(''));
}
function formatDate(dateString) {
  var date = dateString ? new Date(dateString) : new Date();
  var year = date.getFullYear();
  var month = (date.getMonth() + 1).toString().padStart(2, '0'); // Month is 0-based, hence +1. Padded to ensure two digits.
  var day = date.getDate().toString().padStart(2, '0'); // Padded to ensure two digits.

  return "".concat(year, "-").concat(month, "-").concat(day);
}
function formatUsDate(dateString) {
  var date = dateString ? new Date(dateString) : new Date();
  return Intl.DateTimeFormat('en-US', {
    year: 'numeric',
    month: 'long',
    day: 'numeric'
  }).format(date);
}
function formatTime(seconds) {
  var totalSeconds = Number(seconds);
  if (isNaN(totalSeconds) || totalSeconds < 0) {
    return "0:00";
  }
  var date = new Date(totalSeconds * 1000);
  var hh = date.getUTCHours();
  var mm = date.getUTCMinutes();
  var ss = date.getUTCSeconds().toString().padStart(2, '0');
  if (hh) {
    return "".concat(hh, ":").concat(mm.toString().padStart(2, '0'), ":").concat(ss);
  }
  return "".concat(mm, ":").concat(ss);
}
function showReviewPopup() {
  return _showReviewPopup.apply(this, arguments);
}
function _showReviewPopup() {
  _showReviewPopup = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
    var lastReviewPopup, remindInDays, currentDate, intervalMilliseconds, result;
    return _regenerator().w(function (_context3) {
      while (1) switch (_context3.n) {
        case 0:
          lastReviewPopup = localStorage.getItem('smp_last_review_popup');
          remindInDays = Number(localStorage.getItem('smp_remind_in_days')) || 2;
          currentDate = new Date().getTime();
          intervalMilliseconds = remindInDays * 24 * 60 * 60 * 1000; // If the popup has never been shown, or it's been more than the interval since it was last shown
          if (!(lastReviewPopup && currentDate - lastReviewPopup <= intervalMilliseconds)) {
            _context3.n = 1;
            break;
          }
          return _context3.a(2);
        case 1:
          localStorage.setItem('smp_last_review_popup', new Date().getTime()); // save the current date as the last shown date
          _context3.n = 2;
          return Swal.fire({
            title: 'Are You Enjoying Radio Player?',
            text: "Your feedback helps us create a better experience for you.",
            icon: 'question',
            showDenyButton: true,
            confirmButtonText: "Yes, I'm enjoying it",
            denyButtonText: "Not really",
            reverseButtons: true,
            allowOutsideClick: false,
            allowEscapeKey: false,
            showCloseButton: true,
            customClass: {
              container: 'smp-swal smp-review-swal'
            }
          }).then(function (result) {
            if (result.isConfirmed) {
              Swal.fire({
                title: 'We\'re glad to hear that!',
                text: 'Would you mind taking a few minutes to rate us and write a review?',
                icon: 'success',
                showDenyButton: true,
                confirmButtonText: 'Sure, I\'d be happy to',
                denyButtonText: 'Maybe later',
                reverseButtons: true,
                allowOutsideClick: false,
                allowEscapeKey: false,
                customClass: {
                  container: 'smp-swal smp-review-swal'
                }
              }).then(function (result) {
                if (result.isConfirmed) {
                  window.open('https://wordpress.org/support/plugin/soft-multimedia-player/reviews/#new-post', '_blank');
                  wp.ajax.post('smp_hide_review_notice', {
                    nonce: smp.nonce
                  });
                } else if (result.isDenied) {
                  localStorage.setItem('smp_remind_in_days', 7);
                }
              });
            } else if (result.isDenied) {
              Swal.fire({
                title: 'Sorry to hear that!',
                text: 'Could you please provide us with some feedback to help us improve?',
                input: 'textarea',
                inputPlaceholder: 'Enter your feedback here...',
                showCancelButton: false,
                confirmButtonText: 'Submit',
                showLoaderOnConfirm: true,
                showCloseButton: true,
                allowOutsideClick: false,
                allowEscapeKey: false,
                customClass: {
                  container: 'smp-swal smp-review-swal'
                }
              }).then(function (result) {
                if (result.isConfirmed) {
                  Swal.fire({
                    title: 'Thank you for your feedback!',
                    text: "We'll use your feedback to improve our plugin.",
                    icon: 'info',
                    customClass: {
                      container: 'smp-swal smp-review-swal'
                    }
                  });
                  wp.ajax.post('smp_review_feedback', {
                    feedback: result.value
                  });
                } else if (result.isDismissed) {
                  wp.ajax.post('smp_hide_review_notice', {
                    nonce: smp.nonce
                  });
                }
              });
            }
          });
        case 2:
          result = _context3.v;
        case 3:
          return _context3.a(2);
      }
    }, _callee3);
  }));
  return _showReviewPopup.apply(this, arguments);
}
function showClassicEditorPopup(callback) {
  var _smp2 = smp,
    players = _smp2.players,
    pluginUrl = _smp2.pluginUrl;
  Swal.fire({
    width: 600,
    padding: "30px",
    showConfirmButton: false,
    allowOutsideClick: false,
    allowEscapeKey: true,
    showCloseButton: true,
    html: "\n            <div class=\"smp-placeholder\">\n                <div class=\"smp-icon\">\n                    <img src=\"".concat(pluginUrl, "/assets/images/multimedia-player-logo.png\" />\n                </div>\n                <h2 class=\"title\">").concat(wp.i18n.__('Multimedia Player', 'soft-multimedia-player'), "</h2>\n                <h3 class=\"subtitle\">").concat(wp.i18n.__('Insert Existing Player', 'soft-multimedia-player'), "</h3>\n                <p class=\"description\">").concat(wp.i18n.__('Choose a saved player to insert.', 'soft-multimedia-player'), "</p>\n                <select class=\"form-control player_id\" name=\"player_id\">\n                    <option></option>\n                    ").concat(players.map(function (player) {
      return "\n                        <option value=\"".concat(player.id, "\" data-image=\"").concat(pluginUrl, "/assets/images/modules/").concat(player.type, ".svg\">\n                            ").concat(player.title, "\n                        </option>\n                    ");
    }).join(''), "\n                </select>\n            </div>\n        "),
    customClass: {
      container: 'smp-swal smp-classic-editor-swal'
    },
    didOpen: function didOpen(popupElement) {
      if (typeof callback === 'function') callback(popupElement);
    }
  });
}
function getPlayUrl(stream) {
  var url = stream;
  var isSiteOverHTTPS = window.location.protocol === 'https:';
  var isStreamM3U = stream.match(/\.m3u/); // Added escape for dot as it's a special character
  var isStreamHTTPS = stream.startsWith('https:');
  var isProxyPlayerActivated = !!smp.can_proxy_player_addon;
  var httpPlayer = isProxyPlayerActivated && !!smp.settings.httpPlayer;
  if (httpPlayer && isSiteOverHTTPS && !isStreamM3U && !isStreamHTTPS) {
    url = "".concat(smp.homeUrl, "/?multimedia_player_play=").concat(encodeURIComponent(stream));
  }
  return url;
}
function useOutsideClickHandler(callback) {
  React.useEffect(function () {
    var handleClickOutside = function handleClickOutside(event) {
      var _document$activeEleme;
      if ((_document$activeEleme = document.activeElement) !== null && _document$activeEleme !== void 0 && _document$activeEleme.contains(event.target)) {
        return;
      }
      callback();
    };
    document.addEventListener('mousedown', handleClickOutside);
    return function () {
      document.removeEventListener('mousedown', handleClickOutside);
    };
  }, [callback]);
}
function isIOS() {
  return /iPhone|iPad|iPod/i.test(navigator.userAgent) && !window.MSStream;
}
function formatDateForSQL(dateStr) {
  var date = new Date(dateStr);
  var year = date.getFullYear();
  var month = ('0' + (date.getMonth() + 1)).slice(-2); // Months are 0-based in JavaScript
  var day = ('0' + date.getDate()).slice(-2);
  return "".concat(year, "-").concat(month, "-").concat(day);
}
function exportStatistics(start_date, end_date) {
  var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';
  wp.ajax.post('smp_export_statistics', {
    start_date: start_date,
    end_date: end_date,
    type: type,
    nonce: smp.nonce
  }).done(function (response) {
    console.log(response);
    if (response.success) {
      window.location.href = response.url;
    } else {
      Swal.fire({
        title: wp.i18n.__('Error!', 'soft-multimedia-player'),
        text: wp.i18n.__('Something went wrong.', 'soft-multimedia-player'),
        icon: 'error',
        toast: true,
        timer: 2000,
        timerProgressBar: true,
        showConfirmButton: false
      });
    }
  }).fail(function (error) {
    console.log(error);
    Swal.fire({
      title: wp.i18n.__('Error!', 'soft-multimedia-player'),
      text: wp.i18n.__('Something went wrong.', 'soft-multimedia-player'),
      icon: 'error',
      toast: true,
      timer: 2000,
      timerProgressBar: true,
      showConfirmButton: false
    });
  });
}
function getAudioDuration(url) {
  return new Promise(function (resolve, reject) {
    var audio = new Audio();
    audio.src = url;
    audio.preload = "metadata";
    audio.addEventListener("loadedmetadata", function () {
      resolve(audio.duration);
    });
    audio.addEventListener("error", function (e) {
      reject("Error loading audio: " + e.message);
    });
  });
}
;
function getVideoDuration(url) {
  return new Promise(function (resolve, reject) {
    var video = document.createElement('video');
    video.crossOrigin = "anonymous";
    video.src = url;
    video.preload = "metadata";
    video.addEventListener("loadedmetadata", function () {
      resolve(video.duration);
    });
    video.addEventListener("error", function (e) {
      reject("Error loading video: " + e.message);
    });
  });
}
;
function getSkins(type) {
  // Audio skins
  var audioSkins = {
    skin0: {
      title: wp.i18n.__('Default', 'soft-multimedia-player'),
      isPro: false,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#FFD3E4',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#5C637E',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#5C637E',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '3',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#5C637E',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#5C637E',
        button_bg_color: '',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#5C637E',
        button_border_radius: 50,
        width: '350px',
        width_mobile: '320px',
        border_radius: 10,
        playlist_bg_color: '#FFD3E4',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    },
    skin1: {
      title: wp.i18n.__('Clean', 'soft-multimedia-player'),
      isPro: false,
      config: {
        progressBar: true,
        volumeButton: false,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#002FFF1A',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#5C637E',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#5C637E',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '3',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#5C637E',
        play_pause_icon_color: '#ffffff',
        play_pause_bg_color: '#5C637E',
        button_color: '#5C637E',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '350px',
        width_mobile: '320px',
        border_radius: 10,
        playlist_bg_color: '#002FFF1A',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: '',
        text_align: 'center'
      }
    },
    skin2: {
      title: wp.i18n.__('Vibrant Vibes', 'soft-multimedia-player'),
      isPro: true,
      config: {
        progressBar: true,
        volumeButton: false,
        bg_type: 'image',
        color_type: 'solid',
        bg_color: '',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/skins/audio/audio-skin-2.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0033fe',
        progressbar_handle_color: '#0033fe',
        progressbar_handle_border_size: '2',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#fff',
        button_color: '#fff',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#fff',
        button_border_radius: 50,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_bg_color: '',
        width: '350px',
        width_mobile: '320px',
        border_radius: 0,
        playlist_bg_color: '#040a16',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin3: {
      title: wp.i18n.__('Music Pod', 'soft-multimedia-player'),
      isPro: true,
      config: {
        progressBar: false,
        bg_type: 'image',
        color_type: 'solid',
        bg_color: '#f4f7f9',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/skins/audio/audio-skin-3.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0056d7',
        progressbar_handle_color: '#0056d7',
        progressbar_handle_border_size: '0',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#0056d7',
        button_color: '#fff',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#fff',
        button_border_radius: 50,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_bg_color: '',
        border_radius: 10,
        width: '300px',
        width_mobile: '300px',
        playlist_bg_color: '#133b88',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: 0,
        box_shadow_blur: 0,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(0, 0, 0, .5)',
        box_shadow_type: ''
      }
    },
    skin4: {
      title: wp.i18n.__('Electric Wave', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'image',
        color_type: 'gradient',
        bg_color: 'linear-gradient(143.53deg, #8D7DFE 11.16%, #6FB9FF 94.07%)',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/skins/audio/audio-skin-4.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0056d7',
        progressbar_handle_color: '#0056d7',
        progressbar_handle_border_size: '0',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#0056d7',
        button_color: '#fff',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#fff',
        button_border_radius: 8,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_bg_color: '',
        width: '350px',
        width_mobile: '320px',
        border_radius: 8,
        playlist_bg_color: 'linear-gradient(0deg, #070415 0%, #093cb1 100%)',
        box_shadow: true,
        box_shadow_h: '0',
        box_shadow_v: '-1',
        box_shadow_blur: '2',
        box_shadow_spread: '0',
        box_shadow_color: 'rgba(0, 0, 0, .5)',
        box_shadow_type: ''
      }
    },
    skin5: {
      title: wp.i18n.__('Featureful', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'gradient',
        bg_color: 'linear-gradient(154deg, #FEB49C 3.43%, #FD6B87 90.47%)',
        text_color: '#fff',
        button_color: '#fff',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#fff',
        button_border_radius: 8,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_bg_color: '',
        width: '400px',
        width_mobile: '350px',
        border_radius: 8,
        playlist_bg_color: "#fd6b87",
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 6,
        box_shadow_blur: 12,
        box_shadow_spread: -2,
        box_shadow_color: 'rgba(50, 50, 93, 0.25)',
        box_shadow_type: '',
        text_align: 'left'
      }
    },
    skin6: {
      title: wp.i18n.__('Stylish', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#191C8DE5',
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0056d7',
        progressbar_handle_color: '#0056d7',
        progressbar_handle_border_size: '0',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#0056d7',
        button_color: '#5C637E',
        button_bg_color: '#fff',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#fff',
        button_border_radius: 50,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        width: '400px',
        width_mobile: '350px',
        border_radius: 10,
        playlist_bg_color: "#151755",
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 6,
        box_shadow_blur: 12,
        box_shadow_spread: -2,
        box_shadow_color: 'rgba(50, 50, 93, 0.25)',
        box_shadow_type: ''
      }
    },
    skin7: {
      title: wp.i18n.__('Minimal', 'soft-multimedia-player'),
      isPro: true,
      config: {
        progressBar: false,
        volumeButton: true,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#fff',
        text_color: '#000',
        progressbar_bg_color: "#DADFEA",
        progressbar_fill_color: '#0056d7',
        progressbar_handle_color: '#0056d7',
        progressbar_handle_border_size: '0',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#0056d7',
        button_color: '#fff',
        button_bg_color: 'linear-gradient(90deg, #0E55C0 0%, #79AFFF 99.99%)',
        button_border_radius: 50,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        width: '350px',
        width_mobile: '320px',
        border_radius: 8,
        playlist_bg_color: "#fff",
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 0,
        box_shadow_blur: 8,
        box_shadow_spread: 2,
        box_shadow_color: 'rgba(50, 50, 93, 0.25)',
        box_shadow_type: ''
      }
    },
    skin8: {
      title: wp.i18n.__('Capsule', 'soft-multimedia-player'),
      isPro: true,
      config: {
        progressBar: true,
        volumeButton: false,
        bg_type: 'image',
        color_type: 'solid',
        bg_color: '#00205099',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/skins/audio/audio-skin-8.png"),
        text_color: '#fff',
        progressbar_bg_color: "rgba(255, 255, 255, 0.3)",
        progressbar_fill_color: '#fff',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '3',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#0056d7',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '400px',
        width_mobile: '350px',
        border_radius: 130,
        playlist_bg_color: '#3d5585',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 6,
        box_shadow_blur: 12,
        box_shadow_spread: -2,
        box_shadow_color: 'rgba(50, 50, 93, 0.25)',
        box_shadow_type: ''
      }
    },
    skin9: {
      title: wp.i18n.__('Vertical Box', 'soft-multimedia-player'),
      isPro: true,
      config: {
        progressBar: true,
        volumeButton: false,
        bg_type: 'image',
        color_type: 'color',
        bg_color: '#454256CC',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/skins/audio/audio-skin-9.png"),
        text_color: '#fff',
        progressbar_bg_color: "rgba(255, 255, 255, 0.3)",
        progressbar_fill_color: '#fff',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '3',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#535168',
        play_pause_icon_color: '#535168',
        play_pause_bg_color: '#fff',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '400px',
        width_mobile: '350px',
        border_radius: 10,
        playlist_bg_color: '#345697',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 6,
        box_shadow_blur: 12,
        box_shadow_spread: -2,
        box_shadow_color: 'rgba(50, 50, 93, 0.25)',
        box_shadow_type: ''
      }
    }
  };

  // Video Skins
  var videoSkins = {
    skin0: {
      title: wp.i18n.__('Default', 'soft-multimedia-player'),
      isPro: false,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#000',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#ccd7ff",
        progressbar_fill_color: '#fff',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#fff',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '425px',
        width_mobile: '320px',
        border_radius: 0,
        playlist_bg_color: '#000',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin1: {
      title: wp.i18n.__('Modern', 'soft-multimedia-player'),
      isPro: false,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#fff',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#0056D7",
        progressbar_fill_color: '#0056D7',
        progressbar_handle_color: '#0056D7',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#fff',
        play_pause_icon_color: '#ffffff',
        play_pause_bg_color: '#0056D7',
        button_color: '#0056D7',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '425px',
        width_mobile: '320px',
        border_radius: 0,
        playlist_bg_color: '#0056D7',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin2: {
      title: wp.i18n.__('Featureful', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#5C637E',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0056D7',
        progressbar_handle_color: '',
        progressbar_handle_border_size: '',
        progressbar_handle_border_style: '',
        progressbar_handle_border_color: '',
        play_pause_icon_color: '#5C637E',
        play_pause_bg_color: '#fff',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#fff',
        button_border_radius: 50,
        width: '400px',
        width_mobile: '380px',
        border_radius: 6.3,
        playlist_bg_color: '#5C637E',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin3: {
      title: wp.i18n.__('Dark Vibe', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'gradient',
        bg_color: 'linear-gradient(0deg, #1A1A1A 0%, #3B3B3B 100%)',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#4D4D4D",
        progressbar_fill_color: '#D91920',
        progressbar_handle_color: '#CCCCCC',
        progressbar_handle_border_size: 1,
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#F2F2F2',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '400px',
        width_mobile: '320px',
        border_radius: 6.3,
        playlist_bg_color: 'linear-gradient(0deg, #1A1A1A 0%, #3B3B3B 100%)',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin4: {
      title: wp.i18n.__('Simple', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#5C637E',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0056D7',
        progressbar_handle_color: '',
        progressbar_handle_border_size: '',
        progressbar_handle_border_style: '',
        progressbar_handle_border_color: '',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '400px',
        width_mobile: '320px',
        border_radius: 6.3,
        playlist_bg_color: '#5C637E',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin5: {
      title: wp.i18n.__('Minimalistic', 'soft-multimedia-player'),
      isPro: true,
      config: {
        width: '350px',
        width_mobile: '320px',
        border_radius: 6.3,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#00000000',
        text_color: '#000'
      }
    },
    skin6: {
      title: wp.i18n.__('Vivid', 'soft-multimedia-player'),
      isPro: true,
      config: {
        progressBar: false,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#5C637E',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#000',
        progressbar_handle_color: '',
        progressbar_handle_border_size: '',
        progressbar_handle_border_style: '',
        progressbar_handle_border_color: '',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#5C637E',
        button_bg_color: '#fff',
        button_border_size: 1,
        button_border_style: 'solid',
        button_border_color: '#7A7E8C',
        button_border_radius: 50,
        width: '380px',
        width_mobile: '320px',
        border_radius: 6.3,
        playlist_bg_color: 'linear-gradient(97deg, #12244A -5.11%, #062B74 125.51%)',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin7: {
      title: wp.i18n.__('Light Tone', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#fff',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#B3B3B3",
        progressbar_fill_color: '#000',
        progressbar_handle_color: '',
        progressbar_handle_border_size: '',
        progressbar_handle_border_style: '',
        progressbar_handle_border_color: '',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#fff',
        button_bg_color: '#000',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: 50,
        width: '400px',
        width_mobile: '320px',
        border_radius: 6.3,
        playlist_bg_color: '#000000',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    },
    skin8: {
      title: wp.i18n.__('Smart Look', 'soft-multimedia-player'),
      isPro: true,
      config: {
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#fff',
        bg_image: "".concat(smp.pluginUrl, "/assets/images/player-bg.png"),
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#0056D7',
        progressbar_handle_color: '',
        progressbar_handle_border_size: '',
        progressbar_handle_border_style: '',
        progressbar_handle_border_color: '',
        play_pause_icon_color: '#000',
        play_pause_bg_color: '#fff',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '400px',
        width_mobile: '320px',
        border_radius: 6.3,
        playlist_bg_color: '#04212C',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: -2,
        box_shadow_blur: 6,
        box_shadow_spread: 0,
        box_shadow_color: 'rgba(10, 37, 64, 0.35)',
        box_shadow_type: 'inset'
      }
    }
  };

  // Podcast Skins
  var podcastSkins = {
    skin0: {
      title: wp.i18n.__('Clean', 'soft-multimedia-player'),
      isPro: false,
      config: {
        playlist: true,
        trackTimeDuration: true,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#141313',
        bg_image: "",
        text_color: '#fff',
        progressbar_bg_color: "#FFFFFF4C",
        progressbar_fill_color: '#fff',
        progressbar_handle_color: '#000',
        progressbar_handle_border_size: '2',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#fff',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#000',
        button_bg_color: '#fff',
        button_border_size: '',
        button_border_style: 'solid',
        button_border_color: '',
        button_border_radius: 50,
        width: '100%',
        width_mobile: '100%',
        border_radius: 10,
        playlist_bg_color: '#000000',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    },
    skin1: {
      title: wp.i18n.__('Featureful', 'soft-multimedia-player'),
      isPro: false,
      config: {
        playlist: true,
        trackTimeDuration: true,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#020B1A',
        bg_image: "",
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#51C1F2',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#51C1F2',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#51C1F2',
        button_bg_color: '#fff',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: 50,
        width: '100%',
        width_mobile: '100%',
        border_radius: 10,
        playlist_bg_color: '#020B1A',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    },
    skin2: {
      title: wp.i18n.__('PodZone', 'soft-multimedia-player'),
      isPro: true,
      config: {
        playlist: true,
        trackTimeDuration: true,
        bg_type: 'color',
        color_type: 'gradient',
        bg_color: 'linear-gradient(154deg, #FFA385 3.43%, #EB4F6D 90.47%)',
        bg_image: "",
        text_color: '#fff',
        progressbar_bg_color: "#fff",
        progressbar_fill_color: '#eb4f6d',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#eb4f6d',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#eb4f6d',
        button_bg_color: '#fff',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: 50,
        width: '100%',
        width_mobile: '100%',
        border_radius: 10,
        playlist_bg_color: '#EB4F6D',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    },
    skin3: {
      title: wp.i18n.__('Podcast Pod', 'soft-multimedia-player'),
      isPro: true,
      config: {
        playlist: true,
        trackTimeDuration: true,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#002050',
        bg_image: "",
        text_color: '#fff',
        progressbar_bg_color: "rgba(255, 255, 255, 0.3)",
        progressbar_fill_color: '#fff',
        progressbar_handle_color: '#002050',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#fff',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#fff',
        button_bg_color: '',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: '',
        width: '100%',
        width_mobile: '100%',
        border_radius: 40,
        playlist_bg_color: '#002050',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    },
    skin4: {
      title: wp.i18n.__('Minimal Pod', 'soft-multimedia-player'),
      isPro: true,
      config: {
        playlist: true,
        trackTimeDuration: true,
        bg_type: 'color',
        color_type: 'solid',
        bg_color: '#5C637E',
        bg_image: "",
        progressbar_bg_color: "rgba(255, 255, 255, 1)",
        progressbar_fill_color: '#7E8AB8',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#7E8AB8',
        button: true,
        text_color: '#fff',
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#5C637E',
        button_bg_color: '#fff',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: 50,
        width: '100%',
        width_mobile: '100%',
        border_radius: 6,
        playlist_bg_color: '#5C637E',
        box_shadow: false,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    },
    skin5: {
      title: wp.i18n.__('Stylish', 'soft-multimedia-player'),
      isPro: true,
      config: {
        playlist: true,
        trackTimeDuration: true,
        bg_type: 'color',
        color_type: 'gradient',
        bg_color: 'linear-gradient(154deg, #D3C7FF 3.43%, #6861FF 90.47%)',
        bg_image: "",
        text_color: '#fff',
        progressbar_bg_color: "rgba(255, 255, 255, 1)",
        progressbar_fill_color: '#6861ff',
        progressbar_handle_color: '#fff',
        progressbar_handle_border_size: '1',
        progressbar_handle_border_style: 'solid',
        progressbar_handle_border_color: '#6861ff',
        button: true,
        play_pause_icon_color: '',
        play_pause_bg_color: '',
        button_color: '#6861FF',
        button_bg_color: '#fff',
        button_border_size: '',
        button_border_style: '',
        button_border_color: '',
        button_border_radius: 50,
        width: '100%',
        width_mobile: '100%',
        border_radius: 10,
        playlist_bg_color: '#6861FF',
        box_shadow: true,
        box_shadow_h: 0,
        box_shadow_v: 25,
        box_shadow_blur: 20,
        box_shadow_spread: -25,
        box_shadow_color: 'rgba(0, 0, 0, 0.45)',
        box_shadow_type: ''
      }
    }
  };
  return type === 'audio-player' ? audioSkins : type === 'video-player' ? videoSkins : podcastSkins;
}

/**
 * Simulates a click on the poster element of the player.
 *
 * @monzuralam
 * @since 1.0.0
 */
function posterClick() {
  var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  setTimeout(function () {
    var element = document.querySelector(".smp-".concat(id, " .react-player__preview"));
    if (element) {
      element.click();
    }
  }, 0);
}
function textUpperCase(string) {
  return (string === null || string === void 0 ? void 0 : string.charAt(0).toUpperCase()) + (string === null || string === void 0 ? void 0 : string.slice(1));
}
function useResize(ref, ignore) {
  var _React$useState3 = React.useState('md'),
    _React$useState4 = _slicedToArray(_React$useState3, 2),
    sizeClass = _React$useState4[0],
    setSizeClass = _React$useState4[1];

  // Flexbox breakpoints
  var screens = React.useMemo(function () {
    return [{
      "class": 'xxs',
      width: 320
    }, {
      "class": 'xs',
      width: 480
    }, {
      "class": 'sm',
      width: 768
    }, {
      "class": 'md',
      width: 992
    }, {
      "class": 'lg',
      width: 1200
    }, {
      "class": 'xl',
      width: 1440
    }, {
      "class": 'xxl',
      width: 1680
    }];
  }, []);
  function handleResize(entries) {
    var _entries$;
    if (ignore) {
      setSizeClass('md');
      return;
    }
    var width = (_entries$ = entries[0]) === null || _entries$ === void 0 || (_entries$ = _entries$.contentRect) === null || _entries$ === void 0 ? void 0 : _entries$.width;
    if (!width) return;

    // Find the appropriate class based on the width
    var matchingBreakpoint = screens.find(function (screen) {
      return width < screen.width;
    }) || screens[screens.length - 1];
    setSizeClass(matchingBreakpoint["class"]);
  }
  React.useEffect(function () {
    if (!(ref !== null && ref !== void 0 && ref.current)) return;
    var resizeObserver = new ResizeObserver(handleResize);
    resizeObserver.observe(ref.current);
    return function () {
      resizeObserver.disconnect();
    };
  }, [ref, ignore]);
  return 'size-' + sizeClass;
}
function playerTypes() {
  return {
    'audio-player': {
      key: 'audio-player',
      title: wp.i18n.__('Audio Player', 'soft-multimedia-player'),
      desc: wp.i18n.__('Play a wide range of audio formats using the audio player.', 'soft-multimedia-player')
    },
    'video-player': {
      key: 'video-player',
      title: wp.i18n.__('Video Player', 'soft-multimedia-player'),
      desc: wp.i18n.__('Play a wide range of video formats with the video player. ', 'soft-multimedia-player')
    },
    'podcast-player': {
      key: 'podcast-player',
      title: wp.i18n.__('Podcast Player', 'soft-multimedia-player'),
      desc: wp.i18n.__('A customizable podcast player type with episode playlist support.', 'soft-multimedia-player')
    }
  };
}
function copyText(copyText, text) {
  if (window.isSecureContext) {
    navigator.clipboard.writeText(copyText);
  } else {
    var textArea = document.createElement("textarea");
    textArea.value = copyText;
    document.body.appendChild(textArea);
    textArea.select();
    document.execCommand("Copy");
    textArea.remove();
  }
  Swal.fire({
    title: wp.i18n.__('Copied', "multimedia-player"),
    text: text ? text : wp.i18n.__('Copied to clipboard', "multimedia-player"),
    icon: 'success',
    showConfirmButton: false,
    timer: 2000,
    timerProgressBar: true,
    toast: true
  });
}
function showEmbedModal(id) {
  Swal.fire({
    title: wp.i18n.__('Embed Code', 'soft-multimedia-player'),
    html: "<p class=\"embed-code-title\">".concat(wp.i18n.__('Insert the following code into any webpage to showcase the player.', 'soft-multimedia-player'), "</p><textarea class=\"embed-code\" rows=\"5\" readonly>", "<iframe src=\"".concat(smp.homeUrl, "/?multimedia_player=").concat(id, "&embed\" width=\"100%\" height=\"350\" frameborder=\"0\"></iframe>"), "</textarea>"),
    showCloseButton: true,
    showCancelButton: false,
    confirmButtonText: wp.i18n.__('Copy', 'soft-multimedia-player'),
    confirmButtonColor: '#40CE87',
    customClass: {
      container: 'smp-swal embed-code-swal'
    },
    didOpen: function didOpen() {
      document.querySelector('.embed-code').select();
    }
  }).then(function (result) {
    if (result.value) {
      document.querySelector('.embed-code').select();
      document.execCommand("copy");
      Swal.fire({
        title: wp.i18n.__('Copied!', 'soft-multimedia-player'),
        text: wp.i18n.__('Embed code copied to clipboard', 'soft-multimedia-player'),
        icon: 'success',
        toast: true,
        showConfirmButton: false,
        timer: 3000,
        timerProgressBar: true
      });
    }
  });
}
function useHandlePlayerResize(ref) {
  var _React$useState5 = React.useState(),
    _React$useState6 = _slicedToArray(_React$useState5, 2),
    sizeClass = _React$useState6[0],
    setSizeClass = _React$useState6[1];

  // Flexbox breakpoints
  var screens = React.useMemo(function () {
    return [{
      "class": 'player-xxs',
      width: 320
    }, {
      "class": 'player-xs',
      width: 480
    }, {
      "class": 'player-sm',
      width: 640
    }, {
      "class": 'player-md',
      width: 768
    }, {
      "class": 'player-md-lg',
      width: 900
    }, {
      "class": 'player-lg',
      width: 1024
    }, {
      "class": 'player-xl',
      width: 1200
    }];
  }, []);
  function handlePlayerResize(entries) {
    var _entries$2;
    var width = (_entries$2 = entries[0]) === null || _entries$2 === void 0 || (_entries$2 = _entries$2.contentRect) === null || _entries$2 === void 0 ? void 0 : _entries$2.width;
    if (!width) return;

    // Find the appropriate class based on the width
    var matchingBreakpoint = screens.find(function (screen) {
      return width < screen.width;
    }) || screens[screens.length - 1];
    setSizeClass(matchingBreakpoint["class"]);
  }
  React.useEffect(function () {
    if (!(ref !== null && ref !== void 0 && ref.current)) return;
    var resizeObserver = new ResizeObserver(handlePlayerResize);
    resizeObserver.observe(ref.current);
    return function () {
      resizeObserver.disconnect();
    };
  }, [ref, screens]);
  return sizeClass;
}
function openStickyPlayer(data) {
  var station = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  if (!data) return;
  var STICKY_SELECTOR = '.multimedia_player[data-player-type="sticky"]';
  var stickyPlayer = document.querySelector(STICKY_SELECTOR);
  if (!stickyPlayer) {
    stickyPlayer = document.createElement('div');
    stickyPlayer.className = 'smp';
    stickyPlayer.dataset.playerType = 'sticky';
    stickyPlayer.dataset.data = base64Encode(JSON.stringify(data));
    stickyPlayer.dataset.station = station;
    document.body.appendChild(stickyPlayer);
    !!stickyPlayer && ReactDOM.render(/*#__PURE__*/React.createElement(Player, {
      data: _objectSpread(_objectSpread({}, data), {}, {
        playerType: 'sticky',
        autoplay: true
      })
    }), stickyPlayer);
    setTimeout(function () {
      stickyPlayer.querySelector('audio').play();
    }, 100);
  }
  window.dispatchEvent(new CustomEvent('smp:sticky', {
    detail: {
      data: data,
      station: station
    }
  }));
  setTimeout(function () {
    var _document$querySelect;
    (_document$querySelect = document.querySelector('.smp.sticky audio')) === null || _document$querySelect === void 0 || _document$querySelect.play();
  }, 100);
}

/***/ }),

/***/ 9150:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.MonthParser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class MonthParser extends _Parser.Parser {
  incompatibleTokens = [
    "Y",
    "R",
    "q",
    "Q",
    "L",
    "w",
    "I",
    "D",
    "i",
    "e",
    "c",
    "t",
    "T",
  ];

  priority = 110;

  parse(dateString, token, match) {
    const valueCallback = (value) => value - 1;

    switch (token) {
      // 1, 2, ..., 12
      case "M":
        return (0, _utils.mapValue)(
          (0, _utils.parseNumericPattern)(
            _constants.numericPatterns.month,
            dateString,
          ),
          valueCallback,
        );
      // 01, 02, ..., 12
      case "MM":
        return (0, _utils.mapValue)(
          (0, _utils.parseNDigits)(2, dateString),
          valueCallback,
        );
      // 1st, 2nd, ..., 12th
      case "Mo":
        return (0, _utils.mapValue)(
          match.ordinalNumber(dateString, {
            unit: "month",
          }),
          valueCallback,
        );
      // Jan, Feb, ..., Dec
      case "MMM":
        return (
          match.month(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.month(dateString, { width: "narrow", context: "formatting" })
        );

      // J, F, ..., D
      case "MMMMM":
        return match.month(dateString, {
          width: "narrow",
          context: "formatting",
        });
      // January, February, ..., December
      case "MMMM":
      default:
        return (
          match.month(dateString, { width: "wide", context: "formatting" }) ||
          match.month(dateString, {
            width: "abbreviated",
            context: "formatting",
          }) ||
          match.month(dateString, { width: "narrow", context: "formatting" })
        );
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 11;
  }

  set(date, _flags, value) {
    date.setMonth(value, 1);
    date.setHours(0, 0, 0, 0);
    return date;
  }
}
exports.MonthParser = MonthParser;


/***/ }),

/***/ 9182:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.previousWednesday = previousWednesday;
var _index = __webpack_require__(8092);

/**
 * The {@link previousWednesday} function options.
 */

/**
 * @name previousWednesday
 * @category Weekday Helpers
 * @summary When is the previous Wednesday?
 *
 * @description
 * When is the previous Wednesday?
 *
 * @typeParam DateType - The Date type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [UTCDate](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The previous Wednesday
 *
 * @example
 * // When is the previous Wednesday before Jun, 18, 2021?
 * const result = previousWednesday(new Date(2021, 5, 18))
 * //=> Wed June 16 2021 00:00:00
 */
function previousWednesday(date, options) {
  return (0, _index.previousDay)(date, 3, options);
}


/***/ }),

/***/ 9305:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.eachWeekendOfInterval = eachWeekendOfInterval;
var _index = __webpack_require__(5909);
var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(3700);
var _index4 = __webpack_require__(3348);

/**
 * The {@link eachWeekendOfInterval} function options.
 */

/**
 * The {@link eachWeekendOfInterval} function result type.
 */

/**
 * @name eachWeekendOfInterval
 * @category Interval Helpers
 * @summary List all the Saturdays and Sundays in the given date interval.
 *
 * @description
 * Get all the Saturdays and Sundays in the given date interval.
 *
 * @typeParam IntervalType - Interval type.
 * @typeParam Options - Options type.
 *
 * @param interval - The given interval
 * @param options - An object with options
 *
 * @returns An array containing all the Saturdays and Sundays
 *
 * @example
 * // Lists all Saturdays and Sundays in the given date interval
 * const result = eachWeekendOfInterval({
 *   start: new Date(2018, 8, 17),
 *   end: new Date(2018, 8, 30)
 * })
 * //=> [
 * //   Sat Sep 22 2018 00:00:00,
 * //   Sun Sep 23 2018 00:00:00,
 * //   Sat Sep 29 2018 00:00:00,
 * //   Sun Sep 30 2018 00:00:00
 * // ]
 */
function eachWeekendOfInterval(interval, options) {
  const { start, end } = (0, _index.normalizeInterval)(options?.in, interval);
  const dateInterval = (0, _index3.eachDayOfInterval)({ start, end }, options);
  const weekends = [];
  let index = 0;
  while (index < dateInterval.length) {
    const date = dateInterval[index++];
    if ((0, _index4.isWeekend)(date))
      weekends.push((0, _index2.constructFrom)(start, date));
  }
  return weekends;
}


/***/ }),

/***/ 9318:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getUnixTime = getUnixTime;
var _index = __webpack_require__(4446);

/**
 * @name getUnixTime
 * @category Timestamp Helpers
 * @summary Get the seconds timestamp of the given date.
 *
 * @description
 * Get the seconds timestamp of the given date.
 *
 * @param date - The given date
 *
 * @returns The timestamp
 *
 * @example
 * // Get the timestamp of 29 February 2012 11:45:05 CET:
 * const result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))
 * //=> 1330512305
 */
function getUnixTime(date) {
  return Math.trunc(+(0, _index.toDate)(date) / 1000);
}


/***/ }),

/***/ 9322:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.nextSunday = nextSunday;
var _index = __webpack_require__(64);

/**
 * The {@link nextSunday} function options.
 */

/**
 * @name nextSunday
 * @category Weekday Helpers
 * @summary When is the next Sunday?
 *
 * @description
 * When is the next Sunday?
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned if a context is provided.
 *
 * @param date - The date to start counting from
 * @param options - An object with options
 *
 * @returns The next Sunday
 *
 * @example
 * // When is the next Sunday after March 22, 2020?
 * const result = nextSunday(new Date(2020, 2, 22))
 * //=> Sun Mar 29 2020 00:00:00
 */
function nextSunday(date, options) {
  return (0, _index.nextDay)(date, 0, options);
}


/***/ }),

/***/ 9404:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.lastDayOfMonth = lastDayOfMonth;
var _index = __webpack_require__(4446);

/**
 * The {@link lastDayOfMonth} function options.
 */

/**
 * @name lastDayOfMonth
 * @category Month Helpers
 * @summary Return the last day of a month for the given date.
 *
 * @description
 * Return the last day of a month for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The last day of a month
 *
 * @example
 * // The last day of a month for 2 September 2014 11:55:00:
 * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 30 2014 00:00:00
 */
function lastDayOfMonth(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  const month = _date.getMonth();
  _date.setFullYear(_date.getFullYear(), month + 1, 0);
  _date.setHours(0, 0, 0, 0);
  return (0, _index.toDate)(_date, options?.in);
}


/***/ }),

/***/ 9435:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameSecond = isSameSecond;
var _index = __webpack_require__(6936);

/**
 * @name isSameSecond
 * @category Second Helpers
 * @summary Are the given dates in the same second (and hour and day)?
 *
 * @description
 * Are the given dates in the same second (and hour and day)?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 *
 * @returns The dates are in the same second (and hour and day)
 *
 * @example
 * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500 in the same second?
 * const result = isSameSecond(
 *   new Date(2014, 8, 4, 6, 30, 15),
 *   new Date(2014, 8, 4, 6, 30, 15, 500)
 * )
 * //=> true
 *
 * @example
 * // Are 4 September 2014 06:00:15.000 and 4 September 2014 06:01.15.000 in the same second?
 * const result = isSameSecond(
 *   new Date(2014, 8, 4, 6, 0, 15),
 *   new Date(2014, 8, 4, 6, 1, 15)
 * )
 * //=> false
 *
 * @example
 * // Are 4 September 2014 06:00:15.000 and 5 September 2014 06:00.15.000 in the same second?
 * const result = isSameSecond(
 *   new Date(2014, 8, 4, 6, 0, 15),
 *   new Date(2014, 8, 5, 6, 0, 15)
 * )
 * //=> false
 */
function isSameSecond(laterDate, earlierDate) {
  return (
    +(0, _index.startOfSecond)(laterDate) ===
    +(0, _index.startOfSecond)(earlierDate)
  );
}


/***/ }),

/***/ 9460:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.format = exports.formatDate = format;
Object.defineProperty(exports, "formatters", ({
  enumerable: true,
  get: function () {
    return _index3.formatters;
  },
}));
Object.defineProperty(exports, "longFormatters", ({
  enumerable: true,
  get: function () {
    return _index4.longFormatters;
  },
}));
var _index = __webpack_require__(9577);
var _index2 = __webpack_require__(6755);
var _index3 = __webpack_require__(3525);
var _index4 = __webpack_require__(7083);
var _index5 = __webpack_require__(2364);

var _index6 = __webpack_require__(7489);
var _index7 = __webpack_require__(4446);

// Rexports of internal for libraries to use.
// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874

// This RegExp consists of three parts separated by `|`:
// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token
//   (one of the certain letters followed by `o`)
// - (\w)\1* matches any sequences of the same letter
// - '' matches two quote characters in a row
// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
//   except a single quote symbol, which ends the sequence.
//   Two quote characters do not end the sequence.
//   If there is no matching single quote
//   then the sequence will continue until the end of the string.
// - . matches any single character unmatched by previous parts of the RegExps
const formattingTokensRegExp =
  /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;

// This RegExp catches symbols escaped by quotes, and also
// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`
const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;

const escapedStringRegExp = /^'([^]*?)'?$/;
const doubleQuoteRegExp = /''/g;
const unescapedLatinCharacterRegExp = /[a-zA-Z]/;

/**
 * The {@link format} function options.
 */

/**
 * @name format
 * @alias formatDate
 * @category Common Helpers
 * @summary Format the date.
 *
 * @description
 * Return the formatted date string in the given format. The result may vary by locale.
 *
 * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.
 * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * The characters wrapped between two single quotes characters (') are escaped.
 * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
 * (see the last example)
 *
 * Format of the string is based on Unicode Technical Standard #35:
 * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 * with a few additions (see note 7 below the table).
 *
 * Accepted patterns:
 * | Unit                            | Pattern | Result examples                   | Notes |
 * |---------------------------------|---------|-----------------------------------|-------|
 * | Era                             | G..GGG  | AD, BC                            |       |
 * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |
 * |                                 | GGGGG   | A, B                              |       |
 * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |
 * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |
 * |                                 | yy      | 44, 01, 00, 17                    | 5     |
 * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |
 * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |
 * |                                 | yyyyy   | ...                               | 3,5   |
 * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |
 * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |
 * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |
 * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |
 * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |
 * |                                 | YYYYY   | ...                               | 3,5   |
 * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |
 * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |
 * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |
 * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |
 * |                                 | RRRRR   | ...                               | 3,5,7 |
 * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |
 * |                                 | uu      | -43, 01, 1900, 2017               | 5     |
 * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |
 * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |
 * |                                 | uuuuu   | ...                               | 3,5   |
 * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |
 * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |
 * |                                 | QQ      | 01, 02, 03, 04                    |       |
 * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |
 * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |
 * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |
 * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |
 * |                                 | qq      | 01, 02, 03, 04                    |       |
 * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |
 * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |
 * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |
 * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |
 * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |
 * |                                 | MM      | 01, 02, ..., 12                   |       |
 * |                                 | MMM     | Jan, Feb, ..., Dec                |       |
 * |                                 | MMMM    | January, February, ..., December  | 2     |
 * |                                 | MMMMM   | J, F, ..., D                      |       |
 * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |
 * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |
 * |                                 | LL      | 01, 02, ..., 12                   |       |
 * |                                 | LLL     | Jan, Feb, ..., Dec                |       |
 * |                                 | LLLL    | January, February, ..., December  | 2     |
 * |                                 | LLLLL   | J, F, ..., D                      |       |
 * | Local week of year              | w       | 1, 2, ..., 53                     |       |
 * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |
 * |                                 | ww      | 01, 02, ..., 53                   |       |
 * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |
 * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |
 * |                                 | II      | 01, 02, ..., 53                   | 7     |
 * | Day of month                    | d       | 1, 2, ..., 31                     |       |
 * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |
 * |                                 | dd      | 01, 02, ..., 31                   |       |
 * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |
 * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |
 * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |
 * |                                 | DDD     | 001, 002, ..., 365, 366           |       |
 * |                                 | DDDD    | ...                               | 3     |
 * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |
 * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |
 * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |
 * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |
 * |                                 | ii      | 01, 02, ..., 07                   | 7     |
 * |                                 | iii     | Mon, Tue, Wed, ..., Sun           | 7     |
 * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |
 * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |
 * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 7     |
 * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |
 * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |
 * |                                 | ee      | 02, 03, ..., 01                   |       |
 * |                                 | eee     | Mon, Tue, Wed, ..., Sun           |       |
 * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 | eeeee   | M, T, W, T, F, S, S               |       |
 * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |
 * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |
 * |                                 | cc      | 02, 03, ..., 01                   |       |
 * |                                 | ccc     | Mon, Tue, Wed, ..., Sun           |       |
 * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |
 * |                                 | ccccc   | M, T, W, T, F, S, S               |       |
 * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
 * | AM, PM                          | a..aa   | AM, PM                            |       |
 * |                                 | aaa     | am, pm                            |       |
 * |                                 | aaaa    | a.m., p.m.                        | 2     |
 * |                                 | aaaaa   | a, p                              |       |
 * | AM, PM, noon, midnight          | b..bb   | AM, PM, noon, midnight            |       |
 * |                                 | bbb     | am, pm, noon, midnight            |       |
 * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |
 * |                                 | bbbbb   | a, p, n, mi                       |       |
 * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |
 * |                                 | BBBB    | at night, in the morning, ...     | 2     |
 * |                                 | BBBBB   | at night, in the morning, ...     |       |
 * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |
 * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |
 * |                                 | hh      | 01, 02, ..., 11, 12               |       |
 * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |
 * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |
 * |                                 | HH      | 00, 01, 02, ..., 23               |       |
 * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |
 * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |
 * |                                 | KK      | 01, 02, ..., 11, 00               |       |
 * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |
 * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |
 * |                                 | kk      | 24, 01, 02, ..., 23               |       |
 * | Minute                          | m       | 0, 1, ..., 59                     |       |
 * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |
 * |                                 | mm      | 00, 01, ..., 59                   |       |
 * | Second                          | s       | 0, 1, ..., 59                     |       |
 * |                                 | so      | 0th, 1st, ..., 59th               | 7     |
 * |                                 | ss      | 00, 01, ..., 59                   |       |
 * | Fraction of second              | S       | 0, 1, ..., 9                      |       |
 * |                                 | SS      | 00, 01, ..., 99                   |       |
 * |                                 | SSS     | 000, 001, ..., 999                |       |
 * |                                 | SSSS    | ...                               | 3     |
 * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |
 * |                                 | XX      | -0800, +0530, Z                   |       |
 * |                                 | XXX     | -08:00, +05:30, Z                 |       |
 * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |
 * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |
 * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |
 * |                                 | xx      | -0800, +0530, +0000               |       |
 * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |
 * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |
 * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |
 * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |
 * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |
 * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |
 * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |
 * | Seconds timestamp               | t       | 512969520                         | 7     |
 * |                                 | tt      | ...                               | 3,7   |
 * | Milliseconds timestamp          | T       | 512969520900                      | 7     |
 * |                                 | TT      | ...                               | 3,7   |
 * | Long localized date             | P       | 04/29/1453                        | 7     |
 * |                                 | PP      | Apr 29, 1453                      | 7     |
 * |                                 | PPP     | April 29th, 1453                  | 7     |
 * |                                 | PPPP    | Friday, April 29th, 1453          | 2,7   |
 * | Long localized time             | p       | 12:00 AM                          | 7     |
 * |                                 | pp      | 12:00:00 AM                       | 7     |
 * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |
 * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |
 * | Combination of date and time    | Pp      | 04/29/1453, 12:00 AM              | 7     |
 * |                                 | PPpp    | Apr 29, 1453, 12:00:00 AM         | 7     |
 * |                                 | PPPppp  | April 29th, 1453 at ...           | 7     |
 * |                                 | PPPPpppp| Friday, April 29th, 1453 at ...   | 2,7   |
 * Notes:
 * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale
 *    are the same as "stand-alone" units, but are different in some languages.
 *    "Formatting" units are declined according to the rules of the language
 *    in the context of a date. "Stand-alone" units are always nominative singular:
 *
 *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`
 *
 *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`
 *
 * 2. Any sequence of the identical letters is a pattern, unless it is escaped by
 *    the single quote characters (see below).
 *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)
 *    the output will be the same as default pattern for this unit, usually
 *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units
 *    are marked with "2" in the last column of the table.
 *
 *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`
 *
 *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`
 *
 * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).
 *    The output will be padded with zeros to match the length of the pattern.
 *
 *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`
 *
 * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.
 *    These tokens represent the shortest form of the quarter.
 *
 * 5. The main difference between `y` and `u` patterns are B.C. years:
 *
 *    | Year | `y` | `u` |
 *    |------|-----|-----|
 *    | AC 1 |   1 |   1 |
 *    | BC 1 |   1 |   0 |
 *    | BC 2 |   2 |  -1 |
 *
 *    Also `yy` always returns the last two digits of a year,
 *    while `uu` pads single digit years to 2 characters and returns other years unchanged:
 *
 *    | Year | `yy` | `uu` |
 *    |------|------|------|
 *    | 1    |   01 |   01 |
 *    | 14   |   14 |   14 |
 *    | 376  |   76 |  376 |
 *    | 1453 |   53 | 1453 |
 *
 *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),
 *    except local week-numbering years are dependent on `options.weekStartsOn`
 *    and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)
 *    and [getWeekYear](https://date-fns.org/docs/getWeekYear)).
 *
 * 6. Specific non-location timezones are currently unavailable in `date-fns`,
 *    so right now these tokens fall back to GMT timezones.
 *
 * 7. These patterns are not in the Unicode Technical Standard #35:
 *    - `i`: ISO day of week
 *    - `I`: ISO week of year
 *    - `R`: ISO week-numbering year
 *    - `t`: seconds timestamp
 *    - `T`: milliseconds timestamp
 *    - `o`: ordinal number modifier
 *    - `P`: long localized date
 *    - `p`: long localized time
 *
 * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.
 *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.
 *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 *
 * @param date - The original date
 * @param format - The string of tokens
 * @param options - An object with options
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 * @throws `options.locale` must contain `localize` property
 * @throws `options.locale` must contain `formatLong` property
 * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
 * @throws format string contains an unescaped latin alphabet character
 *
 * @example
 * // Represent 11 February 2014 in middle-endian format:
 * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')
 * //=> '02/11/2014'
 *
 * @example
 * // Represent 2 July 2014 in Esperanto:
 * import { eoLocale } from 'date-fns/locale/eo'
 * const result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", {
 *   locale: eoLocale
 * })
 * //=> '2-a de julio 2014'
 *
 * @example
 * // Escape string by single quote characters:
 * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'")
 * //=> "3 o'clock"
 */
function format(date, formatStr, options) {
  const defaultOptions = (0, _index2.getDefaultOptions)();
  const locale =
    options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;

  const firstWeekContainsDate =
    options?.firstWeekContainsDate ??
    options?.locale?.options?.firstWeekContainsDate ??
    defaultOptions.firstWeekContainsDate ??
    defaultOptions.locale?.options?.firstWeekContainsDate ??
    1;

  const weekStartsOn =
    options?.weekStartsOn ??
    options?.locale?.options?.weekStartsOn ??
    defaultOptions.weekStartsOn ??
    defaultOptions.locale?.options?.weekStartsOn ??
    0;

  const originalDate = (0, _index7.toDate)(date, options?.in);

  if (!(0, _index6.isValid)(originalDate)) {
    throw new RangeError("Invalid time value");
  }

  let parts = formatStr
    .match(longFormattingTokensRegExp)
    .map((substring) => {
      const firstCharacter = substring[0];
      if (firstCharacter === "p" || firstCharacter === "P") {
        const longFormatter = _index4.longFormatters[firstCharacter];
        return longFormatter(substring, locale.formatLong);
      }
      return substring;
    })
    .join("")
    .match(formattingTokensRegExp)
    .map((substring) => {
      // Replace two single quote characters with one single quote character
      if (substring === "''") {
        return { isToken: false, value: "'" };
      }

      const firstCharacter = substring[0];
      if (firstCharacter === "'") {
        return { isToken: false, value: cleanEscapedString(substring) };
      }

      if (_index3.formatters[firstCharacter]) {
        return { isToken: true, value: substring };
      }

      if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
        throw new RangeError(
          "Format string contains an unescaped latin alphabet character `" +
            firstCharacter +
            "`",
        );
      }

      return { isToken: false, value: substring };
    });

  // invoke localize preprocessor (only for french locales at the moment)
  if (locale.localize.preprocessor) {
    parts = locale.localize.preprocessor(originalDate, parts);
  }

  const formatterOptions = {
    firstWeekContainsDate,
    weekStartsOn,
    locale,
  };

  return parts
    .map((part) => {
      if (!part.isToken) return part.value;

      const token = part.value;

      if (
        (!options?.useAdditionalWeekYearTokens &&
          (0, _index5.isProtectedWeekYearToken)(token)) ||
        (!options?.useAdditionalDayOfYearTokens &&
          (0, _index5.isProtectedDayOfYearToken)(token))
      ) {
        (0, _index5.warnOrThrowProtectedError)(token, formatStr, String(date));
      }

      const formatter = _index3.formatters[token[0]];
      return formatter(originalDate, token, locale.localize, formatterOptions);
    })
    .join("");
}

function cleanEscapedString(input) {
  const matched = input.match(escapedStringRegExp);

  if (!matched) {
    return input;
  }

  return matched[1].replace(doubleQuoteRegExp, "'");
}


/***/ }),

/***/ 9463:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addHours = addHours;
var _index = __webpack_require__(4280);
var _index2 = __webpack_require__(8052);

/**
 * The {@link addHours} function options.
 */

/**
 * @name addHours
 * @category Hour Helpers
 * @summary Add the specified number of hours to the given date.
 *
 * @description
 * Add the specified number of hours to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of hours to be added
 * @param options - An object with options
 *
 * @returns The new date with the hours added
 *
 * @example
 * // Add 2 hours to 10 July 2014 23:00:00:
 * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)
 * //=> Fri Jul 11 2014 01:00:00
 */
function addHours(date, amount, options) {
  return (0, _index.addMilliseconds)(
    date,
    amount * _index2.millisecondsInHour,
    options,
  );
}


/***/ }),

/***/ 9520:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.setHours = setHours;
var _index = __webpack_require__(4446);

/**
 * The {@link setHours} function options.
 */

/**
 * @name setHours
 * @category Hour Helpers
 * @summary Set the hours to the given date.
 *
 * @description
 * Set the hours to the given date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param hours - The hours of the new date
 * @param options - An object with options
 *
 * @returns The new date with the hours set
 *
 * @example
 * // Set 4 hours to 1 September 2014 11:30:00:
 * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)
 * //=> Mon Sep 01 2014 04:30:00
 */
function setHours(date, hours, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setHours(hours);
  return _date;
}


/***/ }),

/***/ 9526:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isThisYear = isThisYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2700);
var _index3 = __webpack_require__(1992);

/**
 * The {@link isThisYear} function options.
 */

/**
 * @name isThisYear
 * @category Year Helpers
 * @summary Is the given date in the same year as the current date?
 * @pure false
 *
 * @description
 * Is the given date in the same year as the current date?
 *
 * @param date - The date to check
 * @param options - An object with options
 *
 * @returns The date is in this year
 *
 * @example
 * // If today is 25 September 2014, is 2 July 2014 in this year?
 * const result = isThisYear(new Date(2014, 6, 2))
 * //=> true
 */
function isThisYear(date, options) {
  return (0, _index3.isSameYear)(
    (0, _index.constructFrom)(options?.in || date, date),
    (0, _index2.constructNow)(options?.in || date),
  );
}


/***/ }),

/***/ 9577:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

Object.defineProperty(exports, "defaultLocale", ({
  enumerable: true,
  get: function () {
    return _index.enUS;
  },
}));
var _index = __webpack_require__(1343);


/***/ }),

/***/ 9612:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.Hour0to23Parser = void 0;
var _constants = __webpack_require__(7699);
var _Parser = __webpack_require__(5513);

var _utils = __webpack_require__(3771);

class Hour0to23Parser extends _Parser.Parser {
  priority = 70;

  parse(dateString, token, match) {
    switch (token) {
      case "H":
        return (0, _utils.parseNumericPattern)(
          _constants.numericPatterns.hour23h,
          dateString,
        );
      case "Ho":
        return match.ordinalNumber(dateString, { unit: "hour" });
      default:
        return (0, _utils.parseNDigits)(token.length, dateString);
    }
  }

  validate(_date, value) {
    return value >= 0 && value <= 23;
  }

  set(date, _flags, value) {
    date.setHours(value, 0, 0, 0);
    return date;
  }

  incompatibleTokens = ["a", "b", "h", "K", "k", "t", "T"];
}
exports.Hour0to23Parser = Hour0to23Parser;


/***/ }),

/***/ 9629:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.quartersToYears = quartersToYears;
var _index = __webpack_require__(8052);

/**
 * @name quartersToYears
 * @category Conversion Helpers
 * @summary Convert number of quarters to years.
 *
 * @description
 * Convert a number of quarters to a full number of years.
 *
 * @param quarters - The number of quarters to be converted
 *
 * @returns The number of quarters converted in years
 *
 * @example
 * // Convert 8 quarters to years
 * const result = quartersToYears(8)
 * //=> 2
 *
 * @example
 * // It uses floor rounding:
 * const result = quartersToYears(11)
 * //=> 2
 */
function quartersToYears(quarters) {
  const years = quarters / _index.quartersInYear;
  return Math.trunc(years);
}


/***/ }),

/***/ 9639:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getWeek = getWeek;
var _index = __webpack_require__(8052);
var _index2 = __webpack_require__(5472);
var _index3 = __webpack_require__(3040);
var _index4 = __webpack_require__(4446);

/**
 * The {@link getWeek} function options.
 */

/**
 * @name getWeek
 * @category Week Helpers
 * @summary Get the local week index of the given date.
 *
 * @description
 * Get the local week index of the given date.
 * The exact calculation depends on the values of
 * `options.weekStartsOn` (which is the index of the first day of the week)
 * and `options.firstWeekContainsDate` (which is the day of January, which is always in
 * the first week of the week-numbering year)
 *
 * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The week
 *
 * @example
 * // Which week of the local week numbering year is 2 January 2005 with default options?
 * const result = getWeek(new Date(2005, 0, 2))
 * //=> 2
 *
 * @example
 * // Which week of the local week numbering year is 2 January 2005,
 * // if Monday is the first day of the week,
 * // and the first week of the year always contains 4 January?
 * const result = getWeek(new Date(2005, 0, 2), {
 *   weekStartsOn: 1,
 *   firstWeekContainsDate: 4
 * })
 * //=> 53
 */
function getWeek(date, options) {
  const _date = (0, _index4.toDate)(date, options?.in);
  const diff =
    +(0, _index2.startOfWeek)(_date, options) -
    +(0, _index3.startOfWeekYear)(_date, options);

  // Round the number of weeks to the nearest integer because the number of
  // milliseconds in a week is not constant (e.g. it's different in the week of
  // the daylight saving time clock shift).
  return Math.round(diff / _index.millisecondsInWeek) + 1;
}


/***/ }),

/***/ 9651:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(1594));
var _propTypes = _interopRequireDefault(__webpack_require__(5556));
var _Calendar = _interopRequireDefault(__webpack_require__(4936));
var _DayCell = __webpack_require__(2448);
var _utils = __webpack_require__(2301);
var _dateFns = __webpack_require__(411);
var _classnames = _interopRequireDefault(__webpack_require__(6942));
var _styles = _interopRequireDefault(__webpack_require__(1776));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
class DateRange extends _react.Component {
  constructor(props, context) {
    var _this;
    super(props, context);
    _this = this;
    _defineProperty(this, "calcNewSelection", function (value) {
      let isSingleValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
      const focusedRange = _this.props.focusedRange || _this.state.focusedRange;
      const {
        ranges,
        onChange,
        maxDate,
        moveRangeOnFirstSelection,
        retainEndDateOnFirstSelection,
        disabledDates
      } = _this.props;
      const focusedRangeIndex = focusedRange[0];
      const selectedRange = ranges[focusedRangeIndex];
      if (!selectedRange || !onChange) return {};
      let {
        startDate,
        endDate
      } = selectedRange;
      const now = new Date();
      let nextFocusRange;
      if (!isSingleValue) {
        startDate = value.startDate;
        endDate = value.endDate;
      } else if (focusedRange[1] === 0) {
        // startDate selection
        const dayOffset = (0, _dateFns.differenceInCalendarDays)(endDate || now, startDate);
        const calculateEndDate = () => {
          if (moveRangeOnFirstSelection) {
            return (0, _dateFns.addDays)(value, dayOffset);
          }
          if (retainEndDateOnFirstSelection) {
            if (!endDate || (0, _dateFns.isBefore)(value, endDate)) {
              return endDate;
            }
            return value;
          }
          return value || now;
        };
        startDate = value;
        endDate = calculateEndDate();
        if (maxDate) endDate = (0, _dateFns.min)([endDate, maxDate]);
        nextFocusRange = [focusedRange[0], 1];
      } else {
        endDate = value;
      }

      // reverse dates if startDate before endDate
      let isStartDateSelected = focusedRange[1] === 0;
      if ((0, _dateFns.isBefore)(endDate, startDate)) {
        isStartDateSelected = !isStartDateSelected;
        [startDate, endDate] = [endDate, startDate];
      }
      const inValidDatesWithinRange = disabledDates.filter(disabledDate => (0, _dateFns.isWithinInterval)(disabledDate, {
        start: startDate,
        end: endDate
      }));
      if (inValidDatesWithinRange.length > 0) {
        if (isStartDateSelected) {
          startDate = (0, _dateFns.addDays)((0, _dateFns.max)(inValidDatesWithinRange), 1);
        } else {
          endDate = (0, _dateFns.addDays)((0, _dateFns.min)(inValidDatesWithinRange), -1);
        }
      }
      if (!nextFocusRange) {
        const nextFocusRangeIndex = (0, _utils.findNextRangeIndex)(_this.props.ranges, focusedRange[0]);
        nextFocusRange = [nextFocusRangeIndex, 0];
      }
      return {
        wasValid: !(inValidDatesWithinRange.length > 0),
        range: {
          startDate,
          endDate
        },
        nextFocusRange: nextFocusRange
      };
    });
    _defineProperty(this, "setSelection", (value, isSingleValue) => {
      const {
        onChange,
        ranges,
        onRangeFocusChange
      } = this.props;
      const focusedRange = this.props.focusedRange || this.state.focusedRange;
      const focusedRangeIndex = focusedRange[0];
      const selectedRange = ranges[focusedRangeIndex];
      if (!selectedRange) return;
      const newSelection = this.calcNewSelection(value, isSingleValue);
      onChange({
        [selectedRange.key || `range${focusedRangeIndex + 1}`]: {
          ...selectedRange,
          ...newSelection.range
        }
      });
      this.setState({
        focusedRange: newSelection.nextFocusRange,
        preview: null
      });
      onRangeFocusChange && onRangeFocusChange(newSelection.nextFocusRange);
    });
    _defineProperty(this, "handleRangeFocusChange", focusedRange => {
      this.setState({
        focusedRange
      });
      this.props.onRangeFocusChange && this.props.onRangeFocusChange(focusedRange);
    });
    _defineProperty(this, "updatePreview", val => {
      if (!val) {
        this.setState({
          preview: null
        });
        return;
      }
      const {
        rangeColors,
        ranges
      } = this.props;
      const focusedRange = this.props.focusedRange || this.state.focusedRange;
      const color = ranges[focusedRange[0]]?.color || rangeColors[focusedRange[0]] || color;
      this.setState({
        preview: {
          ...val.range,
          color
        }
      });
    });
    this.state = {
      focusedRange: props.initialFocusedRange || [(0, _utils.findNextRangeIndex)(props.ranges), 0],
      preview: null
    };
    this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);
  }
  render() {
    return /*#__PURE__*/_react.default.createElement(_Calendar.default, _extends({
      focusedRange: this.state.focusedRange,
      onRangeFocusChange: this.handleRangeFocusChange,
      preview: this.state.preview,
      onPreviewChange: value => {
        this.updatePreview(value ? this.calcNewSelection(value) : null);
      }
    }, this.props, {
      displayMode: "dateRange",
      className: (0, _classnames.default)(this.styles.dateRangeWrapper, this.props.className),
      onChange: this.setSelection,
      updateRange: val => this.setSelection(val, false),
      ref: target => {
        this.calendar = target;
      }
    }));
  }
}
DateRange.defaultProps = {
  classNames: {},
  ranges: [],
  moveRangeOnFirstSelection: false,
  retainEndDateOnFirstSelection: false,
  rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],
  disabledDates: []
};
DateRange.propTypes = {
  ..._Calendar.default.propTypes,
  onChange: _propTypes.default.func,
  onRangeFocusChange: _propTypes.default.func,
  className: _propTypes.default.string,
  ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),
  moveRangeOnFirstSelection: _propTypes.default.bool,
  retainEndDateOnFirstSelection: _propTypes.default.bool
};
var _default = exports["default"] = DateRange;

/***/ }),

/***/ 9691:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameDay = isSameDay;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(8290);

/**
 * The {@link isSameDay} function options.
 */

/**
 * @name isSameDay
 * @category Day Helpers
 * @summary Are the given dates in the same day (and year and month)?
 *
 * @description
 * Are the given dates in the same day (and year and month)?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same day (and year and month)
 *
 * @example
 * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?
 * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))
 * //=> true
 *
 * @example
 * // Are 4 September and 4 October in the same day?
 * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))
 * //=> false
 *
 * @example
 * // Are 4 September, 2014 and 4 September, 2015 in the same day?
 * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))
 * //=> false
 */
function isSameDay(laterDate, earlierDate, options) {
  const [dateLeft_, dateRight_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return (
    +(0, _index2.startOfDay)(dateLeft_) === +(0, _index2.startOfDay)(dateRight_)
  );
}


/***/ }),

/***/ 9698:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/**
 * @license React
 * react-jsx-runtime.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */


var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
  REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
function jsxProd(type, config, maybeKey) {
  var key = null;
  void 0 !== maybeKey && (key = "" + maybeKey);
  void 0 !== config.key && (key = "" + config.key);
  if ("key" in config) {
    maybeKey = {};
    for (var propName in config)
      "key" !== propName && (maybeKey[propName] = config[propName]);
  } else maybeKey = config;
  config = maybeKey.ref;
  return {
    $$typeof: REACT_ELEMENT_TYPE,
    type: type,
    key: key,
    ref: void 0 !== config ? config : null,
    props: maybeKey
  };
}
exports.Fragment = REACT_FRAGMENT_TYPE;
exports.jsx = jsxProd;
exports.jsxs = jsxProd;


/***/ }),

/***/ 9732:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getHours = getHours;
var _index = __webpack_require__(4446);

/**
 * The {@link getHours} function options.
 */

/**
 * @name getHours
 * @category Hour Helpers
 * @summary Get the hours of the given date.
 *
 * @description
 * Get the hours of the given date.
 *
 * @param date - The given date
 * @param options - An object with options
 *
 * @returns The hours
 *
 * @example
 * // Get the hours of 29 February 2012 11:45:00:
 * const result = getHours(new Date(2012, 1, 29, 11, 45))
 * //=> 11
 */
function getHours(date, options) {
  return (0, _index.toDate)(date, options?.in).getHours();
}


/***/ }),

/***/ 9757:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.parseISO = parseISO;
var _index = __webpack_require__(8052);

var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(4446);

/**
 * The {@link parseISO} function options.
 */

/**
 * @name parseISO
 * @category Common Helpers
 * @summary Parse ISO string
 *
 * @description
 * Parse the given string in ISO 8601 format and return an instance of Date.
 *
 * Function accepts complete ISO 8601 formats as well as partial implementations.
 * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601
 *
 * If the argument isn't a string, the function cannot parse the string or
 * the values are invalid, it returns Invalid Date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param argument - The value to convert
 * @param options - An object with options
 *
 * @returns The parsed date in the local time zone
 *
 * @example
 * // Convert string '2014-02-11T11:30:30' to date:
 * const result = parseISO('2014-02-11T11:30:30')
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert string '+02014101' to date,
 * // if the additional number of digits in the extended year format is 1:
 * const result = parseISO('+02014101', { additionalDigits: 1 })
 * //=> Fri Apr 11 2014 00:00:00
 */
function parseISO(argument, options) {
  const invalidDate = () => (0, _index2.constructFrom)(options?.in, NaN);

  const additionalDigits = options?.additionalDigits ?? 2;
  const dateStrings = splitDateString(argument);

  let date;
  if (dateStrings.date) {
    const parseYearResult = parseYear(dateStrings.date, additionalDigits);
    date = parseDate(parseYearResult.restDateString, parseYearResult.year);
  }

  if (!date || isNaN(+date)) return invalidDate();

  const timestamp = +date;
  let time = 0;
  let offset;

  if (dateStrings.time) {
    time = parseTime(dateStrings.time);
    if (isNaN(time)) return invalidDate();
  }

  if (dateStrings.timezone) {
    offset = parseTimezone(dateStrings.timezone);
    if (isNaN(offset)) return invalidDate();
  } else {
    const tmpDate = new Date(timestamp + time);
    const result = (0, _index3.toDate)(0, options?.in);
    result.setFullYear(
      tmpDate.getUTCFullYear(),
      tmpDate.getUTCMonth(),
      tmpDate.getUTCDate(),
    );
    result.setHours(
      tmpDate.getUTCHours(),
      tmpDate.getUTCMinutes(),
      tmpDate.getUTCSeconds(),
      tmpDate.getUTCMilliseconds(),
    );
    return result;
  }

  return (0, _index3.toDate)(timestamp + time + offset, options?.in);
}

const patterns = {
  dateTimeDelimiter: /[T ]/,
  timeZoneDelimiter: /[Z ]/i,
  timezone: /([Z+-].*)$/,
};

const dateRegex =
  /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/;
const timeRegex =
  /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/;
const timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/;

function splitDateString(dateString) {
  const dateStrings = {};
  const array = dateString.split(patterns.dateTimeDelimiter);
  let timeString;

  // The regex match should only return at maximum two array elements.
  // [date], [time], or [date, time].
  if (array.length > 2) {
    return dateStrings;
  }

  if (/:/.test(array[0])) {
    timeString = array[0];
  } else {
    dateStrings.date = array[0];
    timeString = array[1];
    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {
      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];
      timeString = dateString.substr(
        dateStrings.date.length,
        dateString.length,
      );
    }
  }

  if (timeString) {
    const token = patterns.timezone.exec(timeString);
    if (token) {
      dateStrings.time = timeString.replace(token[1], "");
      dateStrings.timezone = token[1];
    } else {
      dateStrings.time = timeString;
    }
  }

  return dateStrings;
}

function parseYear(dateString, additionalDigits) {
  const regex = new RegExp(
    "^(?:(\\d{4}|[+-]\\d{" +
      (4 + additionalDigits) +
      "})|(\\d{2}|[+-]\\d{" +
      (2 + additionalDigits) +
      "})$)",
  );

  const captures = dateString.match(regex);
  // Invalid ISO-formatted year
  if (!captures) return { year: NaN, restDateString: "" };

  const year = captures[1] ? parseInt(captures[1]) : null;
  const century = captures[2] ? parseInt(captures[2]) : null;

  // either year or century is null, not both
  return {
    year: century === null ? year : century * 100,
    restDateString: dateString.slice((captures[1] || captures[2]).length),
  };
}

function parseDate(dateString, year) {
  // Invalid ISO-formatted year
  if (year === null) return new Date(NaN);

  const captures = dateString.match(dateRegex);
  // Invalid ISO-formatted string
  if (!captures) return new Date(NaN);

  const isWeekDate = !!captures[4];
  const dayOfYear = parseDateUnit(captures[1]);
  const month = parseDateUnit(captures[2]) - 1;
  const day = parseDateUnit(captures[3]);
  const week = parseDateUnit(captures[4]);
  const dayOfWeek = parseDateUnit(captures[5]) - 1;

  if (isWeekDate) {
    if (!validateWeekDate(year, week, dayOfWeek)) {
      return new Date(NaN);
    }
    return dayOfISOWeekYear(year, week, dayOfWeek);
  } else {
    const date = new Date(0);
    if (
      !validateDate(year, month, day) ||
      !validateDayOfYearDate(year, dayOfYear)
    ) {
      return new Date(NaN);
    }
    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));
    return date;
  }
}

function parseDateUnit(value) {
  return value ? parseInt(value) : 1;
}

function parseTime(timeString) {
  const captures = timeString.match(timeRegex);
  if (!captures) return NaN; // Invalid ISO-formatted time

  const hours = parseTimeUnit(captures[1]);
  const minutes = parseTimeUnit(captures[2]);
  const seconds = parseTimeUnit(captures[3]);

  if (!validateTime(hours, minutes, seconds)) {
    return NaN;
  }

  return (
    hours * _index.millisecondsInHour +
    minutes * _index.millisecondsInMinute +
    seconds * 1000
  );
}

function parseTimeUnit(value) {
  return (value && parseFloat(value.replace(",", "."))) || 0;
}

function parseTimezone(timezoneString) {
  if (timezoneString === "Z") return 0;

  const captures = timezoneString.match(timezoneRegex);
  if (!captures) return 0;

  const sign = captures[1] === "+" ? -1 : 1;
  const hours = parseInt(captures[2]);
  const minutes = (captures[3] && parseInt(captures[3])) || 0;

  if (!validateTimezone(hours, minutes)) {
    return NaN;
  }

  return (
    sign *
    (hours * _index.millisecondsInHour + minutes * _index.millisecondsInMinute)
  );
}

function dayOfISOWeekYear(isoWeekYear, week, day) {
  const date = new Date(0);
  date.setUTCFullYear(isoWeekYear, 0, 4);
  const fourthOfJanuaryDay = date.getUTCDay() || 7;
  const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;
  date.setUTCDate(date.getUTCDate() + diff);
  return date;
}

// Validation functions

// February is null to handle the leap year (using ||)
const daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function isLeapYearIndex(year) {
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
}

function validateDate(year, month, date) {
  return (
    month >= 0 &&
    month <= 11 &&
    date >= 1 &&
    date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))
  );
}

function validateDayOfYearDate(year, dayOfYear) {
  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);
}

function validateWeekDate(_year, week, day) {
  return week >= 1 && week <= 53 && day >= 0 && day <= 6;
}

function validateTime(hours, minutes, seconds) {
  if (hours === 24) {
    return minutes === 0 && seconds === 0;
  }

  return (
    seconds >= 0 &&
    seconds < 60 &&
    minutes >= 0 &&
    minutes < 60 &&
    hours >= 0 &&
    hours < 25
  );
}

function validateTimezone(_hours, minutes) {
  return minutes >= 0 && minutes <= 59;
}


/***/ }),

/***/ 9792:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.formatISO9075 = formatISO9075;
var _index = __webpack_require__(2554);
var _index2 = __webpack_require__(7489);
var _index3 = __webpack_require__(4446);

/**
 * The {@link formatISO9075} function options.
 */

/**
 * @name formatISO9075
 * @category Common Helpers
 * @summary Format the date according to the ISO 9075 standard (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_get-format).
 *
 * @description
 * Return the formatted date string in ISO 9075 format. Options may be passed to control the parts and notations of the date.
 *
 * @param date - The original date
 * @param options - An object with options.
 *
 * @returns The formatted date string
 *
 * @throws `date` must not be Invalid Date
 *
 * @example
 * // Represent 18 September 2019 in ISO 9075 format:
 * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52))
 * //=> '2019-09-18 19:00:52'
 *
 * @example
 * // Represent 18 September 2019 in ISO 9075, short format:
 * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })
 * //=> '20190918 190052'
 *
 * @example
 * // Represent 18 September 2019 in ISO 9075 format, date only:
 * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })
 * //=> '2019-09-18'
 *
 * @example
 * // Represent 18 September 2019 in ISO 9075 format, time only:
 * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })
 * //=> '19:00:52'
 */
function formatISO9075(date, options) {
  const date_ = (0, _index3.toDate)(date, options?.in);

  if (!(0, _index2.isValid)(date_)) {
    throw new RangeError("Invalid time value");
  }

  const format = options?.format ?? "extended";
  const representation = options?.representation ?? "complete";

  let result = "";

  const dateDelimiter = format === "extended" ? "-" : "";
  const timeDelimiter = format === "extended" ? ":" : "";

  // Representation is either 'date' or 'complete'
  if (representation !== "time") {
    const day = (0, _index.addLeadingZeros)(date_.getDate(), 2);
    const month = (0, _index.addLeadingZeros)(date_.getMonth() + 1, 2);
    const year = (0, _index.addLeadingZeros)(date_.getFullYear(), 4);

    // yyyyMMdd or yyyy-MM-dd.
    result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;
  }

  // Representation is either 'time' or 'complete'
  if (representation !== "date") {
    const hour = (0, _index.addLeadingZeros)(date_.getHours(), 2);
    const minute = (0, _index.addLeadingZeros)(date_.getMinutes(), 2);
    const second = (0, _index.addLeadingZeros)(date_.getSeconds(), 2);

    // If there's also date, separate it with time with a space
    const separator = result === "" ? "" : " ";

    // HHmmss or HH:mm:ss.
    result = `${result}${separator}${hour}${timeDelimiter}${minute}${timeDelimiter}${second}`;
  }

  return result;
}


/***/ }),

/***/ 9825:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.isSameQuarter = isSameQuarter;
var _index = __webpack_require__(8256);
var _index2 = __webpack_require__(6944);

/**
 * The {@link isSameQuarter} function options.
 */

/**
 * @name isSameQuarter
 * @category Quarter Helpers
 * @summary Are the given dates in the same quarter (and year)?
 *
 * @description
 * Are the given dates in the same quarter (and year)?
 *
 * @param laterDate - The first date to check
 * @param earlierDate - The second date to check
 * @param options - An object with options
 *
 * @returns The dates are in the same quarter (and year)
 *
 * @example
 * // Are 1 January 2014 and 8 March 2014 in the same quarter?
 * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))
 * //=> true
 *
 * @example
 * // Are 1 January 2014 and 1 January 2015 in the same quarter?
 * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))
 * //=> false
 */
function isSameQuarter(laterDate, earlierDate, options) {
  const [dateLeft_, dateRight_] = (0, _index.normalizeDates)(
    options?.in,
    laterDate,
    earlierDate,
  );
  return (
    +(0, _index2.startOfQuarter)(dateLeft_) ===
    +(0, _index2.startOfQuarter)(dateRight_)
  );
}


/***/ }),

/***/ 9859:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.roundToNearestHours = roundToNearestHours;
var _index = __webpack_require__(1331);
var _index2 = __webpack_require__(2956);
var _index3 = __webpack_require__(4446);

/**
 * The {@link roundToNearestHours} function options.
 */

/**
 * @name roundToNearestHours
 * @category Hour Helpers
 * @summary Rounds the given date to the nearest hour
 *
 * @description
 * Rounds the given date to the nearest hour (or number of hours).
 * Rounds up when the given date is exactly between the nearest round hours.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to round
 * @param options - An object with options.
 *
 * @returns The new date rounded to the closest hour
 *
 * @example
 * // Round 10 July 2014 12:34:56 to nearest hour:
 * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56))
 * //=> Thu Jul 10 2014 13:00:00
 *
 * @example
 * // Round 10 July 2014 12:34:56 to nearest half hour:
 * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56), { nearestTo: 6 })
 * //=> Thu Jul 10 2014 12:00:00
 *
 * @example
 * // Round 10 July 2014 12:34:56 to nearest half hour:
 * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56), { nearestTo: 8 })
 * //=> Thu Jul 10 2014 16:00:00
 *
 * @example
 * // Floor (rounds down) 10 July 2014 12:34:56 to nearest hour:
 * const result = roundToNearestHours(new Date(2014, 6, 10, 1, 23, 45), { roundingMethod: 'ceil' })
 * //=> Thu Jul 10 2014 02:00:00
 *
 * @example
 * // Ceil (rounds up) 10 July 2014 12:34:56 to nearest quarter hour:
 * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56), { roundingMethod: 'floor', nearestTo: 8 })
 * //=> Thu Jul 10 2014 08:00:00
 */
function roundToNearestHours(date, options) {
  const nearestTo = options?.nearestTo ?? 1;

  if (nearestTo < 1 || nearestTo > 12)
    return (0, _index2.constructFrom)(options?.in || date, NaN);

  const date_ = (0, _index3.toDate)(date, options?.in);
  const fractionalMinutes = date_.getMinutes() / 60;
  const fractionalSeconds = date_.getSeconds() / 60 / 60;
  const fractionalMilliseconds = date_.getMilliseconds() / 1000 / 60 / 60;
  const hours =
    date_.getHours() +
    fractionalMinutes +
    fractionalSeconds +
    fractionalMilliseconds;

  const method = options?.roundingMethod ?? "round";
  const roundingMethod = (0, _index.getRoundingMethod)(method);

  const roundedHours = roundingMethod(hours / nearestTo) * nearestTo;

  date_.setHours(roundedHours, 0, 0, 0);
  return date_;
}


/***/ }),

/***/ 9883:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.endOfSecond = endOfSecond;
var _index = __webpack_require__(4446);

/**
 * The {@link endOfSecond} function options.
 */

/**
 * @name endOfSecond
 * @category Second Helpers
 * @summary Return the end of a second for the given date.
 *
 * @description
 * Return the end of a second for the given date.
 * The result will be in the local timezone if no `in` option is specified.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The original date
 * @param options - An object with options
 *
 * @returns The end of a second
 *
 * @example
 * // The end of a second for 1 December 2014 22:15:45.400:
 * const result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))
 * //=> Mon Dec 01 2014 22:15:45.999
 */
function endOfSecond(date, options) {
  const _date = (0, _index.toDate)(date, options?.in);
  _date.setMilliseconds(999);
  return _date;
}


/***/ }),

/***/ 9941:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.addBusinessDays = addBusinessDays;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(2056);
var _index3 = __webpack_require__(3561);
var _index4 = __webpack_require__(3348);
var _index5 = __webpack_require__(4446);

/**
 * The {@link addBusinessDays} function options.
 */

/**
 * @name addBusinessDays
 * @category Day Helpers
 * @summary Add the specified number of business days (mon - fri) to the given date.
 *
 * @description
 * Add the specified number of business days (mon - fri) to the given date, ignoring weekends.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.
 *
 * @param date - The date to be changed
 * @param amount - The amount of business days to be added.
 * @param options - An object with options
 *
 * @returns The new date with the business days added
 *
 * @example
 * // Add 10 business days to 1 September 2014:
 * const result = addBusinessDays(new Date(2014, 8, 1), 10)
 * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days)
 */
function addBusinessDays(date, amount, options) {
  const _date = (0, _index5.toDate)(date, options?.in);
  const startedOnWeekend = (0, _index4.isWeekend)(_date, options);

  if (isNaN(amount)) return (0, _index.constructFrom)(options?.in, NaN);

  const hours = _date.getHours();
  const sign = amount < 0 ? -1 : 1;
  const fullWeeks = Math.trunc(amount / 5);

  _date.setDate(_date.getDate() + fullWeeks * 7);

  // Get remaining days not part of a full week
  let restDays = Math.abs(amount % 5);

  // Loops over remaining days
  while (restDays > 0) {
    _date.setDate(_date.getDate() + sign);
    if (!(0, _index4.isWeekend)(_date, options)) restDays -= 1;
  }

  // If the date is a weekend day and we reduce a dividable of
  // 5 from it, we land on a weekend date.
  // To counter this, we add days accordingly to land on the next business day
  if (
    startedOnWeekend &&
    (0, _index4.isWeekend)(_date, options) &&
    amount !== 0
  ) {
    // If we're reducing days, we want to add days until we land on a weekday
    // If we're adding days we want to reduce days until we land on a weekday
    if ((0, _index2.isSaturday)(_date, options))
      _date.setDate(_date.getDate() + (sign < 0 ? 2 : -1));
    if ((0, _index3.isSunday)(_date, options))
      _date.setDate(_date.getDate() + (sign < 0 ? 1 : -2));
  }

  // Restore hours to avoid DST lag
  _date.setHours(hours);

  return _date;
}


/***/ }),

/***/ 9957:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";

exports.getISOWeekYear = getISOWeekYear;
var _index = __webpack_require__(2956);
var _index2 = __webpack_require__(6107);
var _index3 = __webpack_require__(4446);

/**
 * The {@link getISOWeekYear} function options.
 */

/**
 * @name getISOWeekYear
 * @category ISO Week-Numbering Year Helpers
 * @summary Get the ISO week-numbering year of the given date.
 *
 * @description
 * Get the ISO week-numbering year of the given date,
 * which always starts 3 days before the year's first Thursday.
 *
 * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
 *
 * @param date - The given date
 *
 * @returns The ISO week-numbering year
 *
 * @example
 * // Which ISO-week numbering year is 2 January 2005?
 * const result = getISOWeekYear(new Date(2005, 0, 2))
 * //=> 2004
 */
function getISOWeekYear(date, options) {
  const _date = (0, _index3.toDate)(date, options?.in);
  const year = _date.getFullYear();

  const fourthOfJanuaryOfNextYear = (0, _index.constructFrom)(_date, 0);
  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
  const startOfNextYear = (0, _index2.startOfISOWeek)(
    fourthOfJanuaryOfNextYear,
  );

  const fourthOfJanuaryOfThisYear = (0, _index.constructFrom)(_date, 0);
  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);
  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);
  const startOfThisYear = (0, _index2.startOfISOWeek)(
    fourthOfJanuaryOfThisYear,
  );

  if (_date.getTime() >= startOfNextYear.getTime()) {
    return year + 1;
  } else if (_date.getTime() >= startOfThisYear.getTime()) {
    return year;
  } else {
    return year - 1;
  }
}


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// 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
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = __webpack_modules__;
/******/ 	
/************************************************************************/
/******/ 	/* 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/create fake namespace object */
/******/ 	(() => {
/******/ 		var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
/******/ 		var leafPrototypes;
/******/ 		// create a fake namespace object
/******/ 		// mode & 1: value is a module id, require it
/******/ 		// mode & 2: merge all properties of value into the ns
/******/ 		// mode & 4: return value when already ns object
/******/ 		// mode & 16: return value when it's Promise-like
/******/ 		// mode & 8|1: behave like require
/******/ 		__webpack_require__.t = function(value, mode) {
/******/ 			if(mode & 1) value = this(value);
/******/ 			if(mode & 8) return value;
/******/ 			if(typeof value === 'object' && value) {
/******/ 				if((mode & 4) && value.__esModule) return value;
/******/ 				if((mode & 16) && typeof value.then === 'function') return value;
/******/ 			}
/******/ 			var ns = Object.create(null);
/******/ 			__webpack_require__.r(ns);
/******/ 			var def = {};
/******/ 			leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
/******/ 			for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
/******/ 				Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
/******/ 			}
/******/ 			def['default'] = () => (value);
/******/ 			__webpack_require__.d(ns, def);
/******/ 			return ns;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* 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/ensure chunk */
/******/ 	(() => {
/******/ 		__webpack_require__.f = {};
/******/ 		// This file contains only the entry chunk.
/******/ 		// The chunk loading function for additional chunks
/******/ 		__webpack_require__.e = (chunkId) => {
/******/ 			return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
/******/ 				__webpack_require__.f[key](chunkId, promises);
/******/ 				return promises;
/******/ 			}, []));
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/get javascript chunk filename */
/******/ 	(() => {
/******/ 		// This function allow to reference async chunks
/******/ 		__webpack_require__.u = (chunkId) => {
/******/ 			// return url for filenames based on template
/******/ 			return "" + {"42":"reactPlayerTwitch","173":"reactPlayerVimeo","328":"reactPlayerDailyMotion","340":"reactPlayerWistia","353":"reactPlayerPreview","392":"reactPlayerVidyard","446":"reactPlayerYouTube","458":"reactPlayerFilePlayer","463":"reactPlayerKaltura","570":"reactPlayerMixcloud","627":"reactPlayerStreamable","723":"reactPlayerMux","887":"reactPlayerFacebook","979":"reactPlayerSoundCloud"}[chunkId] + ".js";
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/harmony module decorator */
/******/ 	(() => {
/******/ 		__webpack_require__.hmd = (module) => {
/******/ 			module = Object.create(module);
/******/ 			if (!module.children) module.children = [];
/******/ 			Object.defineProperty(module, 'exports', {
/******/ 				enumerable: true,
/******/ 				set: () => {
/******/ 					throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
/******/ 				}
/******/ 			});
/******/ 			return module;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/load script */
/******/ 	(() => {
/******/ 		var inProgress = {};
/******/ 		var dataWebpackPrefix = "soft-multimedia-player:";
/******/ 		// loadScript function to load a script via script tag
/******/ 		__webpack_require__.l = (url, done, key, chunkId) => {
/******/ 			if(inProgress[url]) { inProgress[url].push(done); return; }
/******/ 			var script, needAttach;
/******/ 			if(key !== undefined) {
/******/ 				var scripts = document.getElementsByTagName("script");
/******/ 				for(var i = 0; i < scripts.length; i++) {
/******/ 					var s = scripts[i];
/******/ 					if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
/******/ 				}
/******/ 			}
/******/ 			if(!script) {
/******/ 				needAttach = true;
/******/ 				script = document.createElement('script');
/******/ 		
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.setAttribute("data-webpack", dataWebpackPrefix + key);
/******/ 		
/******/ 				script.src = url;
/******/ 			}
/******/ 			inProgress[url] = [done];
/******/ 			var onScriptComplete = (prev, event) => {
/******/ 				// avoid mem leaks in IE.
/******/ 				script.onerror = script.onload = null;
/******/ 				clearTimeout(timeout);
/******/ 				var doneFns = inProgress[url];
/******/ 				delete inProgress[url];
/******/ 				script.parentNode && script.parentNode.removeChild(script);
/******/ 				doneFns && doneFns.forEach((fn) => (fn(event)));
/******/ 				if(prev) return prev(event);
/******/ 			}
/******/ 			var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
/******/ 			script.onerror = onScriptComplete.bind(null, script.onerror);
/******/ 			script.onload = onScriptComplete.bind(null, script.onload);
/******/ 			needAttach && document.head.appendChild(script);
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* 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/publicPath */
/******/ 	(() => {
/******/ 		var scriptUrl;
/******/ 		if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
/******/ 		var document = __webpack_require__.g.document;
/******/ 		if (!scriptUrl && document) {
/******/ 			if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')
/******/ 				scriptUrl = document.currentScript.src;
/******/ 			if (!scriptUrl) {
/******/ 				var scripts = document.getElementsByTagName("script");
/******/ 				if(scripts.length) {
/******/ 					var i = scripts.length - 1;
/******/ 					while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;
/******/ 				}
/******/ 			}
/******/ 		}
/******/ 		// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
/******/ 		// or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
/******/ 		if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
/******/ 		scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
/******/ 		__webpack_require__.p = scriptUrl;
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/jsonp chunk loading */
/******/ 	(() => {
/******/ 		// no baseURI
/******/ 		
/******/ 		// object to store loaded and loading chunks
/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ 		var installedChunks = {
/******/ 			884: 0
/******/ 		};
/******/ 		
/******/ 		__webpack_require__.f.j = (chunkId, promises) => {
/******/ 				// JSONP chunk loading for javascript
/******/ 				var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
/******/ 				if(installedChunkData !== 0) { // 0 means "already installed".
/******/ 		
/******/ 					// a Promise means "currently loading".
/******/ 					if(installedChunkData) {
/******/ 						promises.push(installedChunkData[2]);
/******/ 					} else {
/******/ 						if(true) { // all chunks have JS
/******/ 							// setup Promise in chunk cache
/******/ 							var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
/******/ 							promises.push(installedChunkData[2] = promise);
/******/ 		
/******/ 							// start chunk loading
/******/ 							var url = __webpack_require__.p + __webpack_require__.u(chunkId);
/******/ 							// create error before stack unwound to get useful stacktrace later
/******/ 							var error = new Error();
/******/ 							var loadingEnded = (event) => {
/******/ 								if(__webpack_require__.o(installedChunks, chunkId)) {
/******/ 									installedChunkData = installedChunks[chunkId];
/******/ 									if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
/******/ 									if(installedChunkData) {
/******/ 										var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 										var realSrc = event && event.target && event.target.src;
/******/ 										error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 										error.name = 'ChunkLoadError';
/******/ 										error.type = errorType;
/******/ 										error.request = realSrc;
/******/ 										installedChunkData[1](error);
/******/ 									}
/******/ 								}
/******/ 							};
/******/ 							__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
/******/ 						}
/******/ 					}
/******/ 				}
/******/ 		};
/******/ 		
/******/ 		// no prefetching
/******/ 		
/******/ 		// no preloaded
/******/ 		
/******/ 		// no HMR
/******/ 		
/******/ 		// no HMR manifest
/******/ 		
/******/ 		// no on chunks loaded
/******/ 		
/******/ 		// install a JSONP callback for chunk loading
/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ 			var [chunkIds, moreModules, runtime] = data;
/******/ 			// add "moreModules" to the modules object,
/******/ 			// then flag all "chunkIds" as loaded and fire callback
/******/ 			var moduleId, chunkId, i = 0;
/******/ 			if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
/******/ 				for(moduleId in moreModules) {
/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ 					}
/******/ 				}
/******/ 				if(runtime) var result = runtime(__webpack_require__);
/******/ 			}
/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ 			for(;i < chunkIds.length; i++) {
/******/ 				chunkId = chunkIds[i];
/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ 					installedChunks[chunkId][0]();
/******/ 				}
/******/ 				installedChunks[chunkId] = 0;
/******/ 			}
/******/ 		
/******/ 		}
/******/ 		
/******/ 		var chunkLoadingGlobal = self["webpackChunksoft_multimedia_player"] = self["webpackChunksoft_multimedia_player"] || [];
/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";

;// ./src/js/contexts/AppContext.js
var AppContext = React.createContext();
/* harmony default export */ const contexts_AppContext = (AppContext);
var AppProvider = AppContext.Provider;
// EXTERNAL MODULE: ./node_modules/react-tooltip/dist/react-tooltip.min.mjs
var react_tooltip_min = __webpack_require__(7008);
;// ./node_modules/@babel/runtime/helpers/esm/typeof.js
function _typeof(o) {
  "@babel/helpers - typeof";

  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
    return typeof o;
  } : function (o) {
    return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
  }, _typeof(o);
}

;// ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js

function toPrimitive(t, r) {
  if ("object" != _typeof(t) || !t) return t;
  var e = t[Symbol.toPrimitive];
  if (void 0 !== e) {
    var i = e.call(t, r || "default");
    if ("object" != _typeof(i)) return i;
    throw new TypeError("@@toPrimitive must return a primitive value.");
  }
  return ("string" === r ? String : Number)(t);
}

;// ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js


function toPropertyKey(t) {
  var i = toPrimitive(t, "string");
  return "symbol" == _typeof(i) ? i : i + "";
}

;// ./node_modules/@babel/runtime/helpers/esm/defineProperty.js

function defineProperty_defineProperty(e, r, t) {
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
    value: t,
    enumerable: !0,
    configurable: !0,
    writable: !0
  }) : e[r] = t, e;
}

;// ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js

function ownKeys(e, r) {
  var t = Object.keys(e);
  if (Object.getOwnPropertySymbols) {
    var o = Object.getOwnPropertySymbols(e);
    r && (o = o.filter(function (r) {
      return Object.getOwnPropertyDescriptor(e, r).enumerable;
    })), t.push.apply(t, o);
  }
  return t;
}
function objectSpread2_objectSpread2(e) {
  for (var r = 1; r < arguments.length; r++) {
    var t = null != arguments[r] ? arguments[r] : {};
    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
      defineProperty_defineProperty(e, r, t[r]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
    });
  }
  return e;
}

;// ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
function _arrayWithHoles(r) {
  if (Array.isArray(r)) return r;
}

;// ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function _iterableToArrayLimit(r, l) {
  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
  if (null != t) {
    var e,
      n,
      i,
      u,
      a = [],
      f = !0,
      o = !1;
    try {
      if (i = (t = t.call(r)).next, 0 === l) {
        if (Object(t) !== t) return;
        f = !1;
      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
    } catch (r) {
      o = !0, n = r;
    } finally {
      try {
        if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
      } finally {
        if (o) throw n;
      }
    }
    return a;
  }
}

;// ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
function _arrayLikeToArray(r, a) {
  (null == a || a > r.length) && (a = r.length);
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
  return n;
}

;// ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js

function _unsupportedIterableToArray(r, a) {
  if (r) {
    if ("string" == typeof r) return _arrayLikeToArray(r, a);
    var t = {}.toString.call(r).slice(8, -1);
    return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
  }
}

;// ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

;// ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js




function _slicedToArray(r, e) {
  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
}

;// ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
function _objectWithoutPropertiesLoose(r, e) {
  if (null == r) return {};
  var t = {};
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
    if (-1 !== e.indexOf(n)) continue;
    t[n] = r[n];
  }
  return t;
}

;// ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js

function _objectWithoutProperties(e, t) {
  if (null == e) return {};
  var o,
    r,
    i = _objectWithoutPropertiesLoose(e, t);
  if (Object.getOwnPropertySymbols) {
    var n = Object.getOwnPropertySymbols(e);
    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
  }
  return i;
}

// EXTERNAL MODULE: external "React"
var external_React_ = __webpack_require__(1594);
var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
;// ./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js





var _excluded = ["defaultInputValue", "defaultMenuIsOpen", "defaultValue", "inputValue", "menuIsOpen", "onChange", "onInputChange", "onMenuClose", "onMenuOpen", "value"];
function useStateManager(_ref) {
  var _ref$defaultInputValu = _ref.defaultInputValue,
    defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,
    _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,
    defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,
    _ref$defaultValue = _ref.defaultValue,
    defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,
    propsInputValue = _ref.inputValue,
    propsMenuIsOpen = _ref.menuIsOpen,
    propsOnChange = _ref.onChange,
    propsOnInputChange = _ref.onInputChange,
    propsOnMenuClose = _ref.onMenuClose,
    propsOnMenuOpen = _ref.onMenuOpen,
    propsValue = _ref.value,
    restSelectProps = _objectWithoutProperties(_ref, _excluded);
  var _useState = (0,external_React_.useState)(propsInputValue !== undefined ? propsInputValue : defaultInputValue),
    _useState2 = _slicedToArray(_useState, 2),
    stateInputValue = _useState2[0],
    setStateInputValue = _useState2[1];
  var _useState3 = (0,external_React_.useState)(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),
    _useState4 = _slicedToArray(_useState3, 2),
    stateMenuIsOpen = _useState4[0],
    setStateMenuIsOpen = _useState4[1];
  var _useState5 = (0,external_React_.useState)(propsValue !== undefined ? propsValue : defaultValue),
    _useState6 = _slicedToArray(_useState5, 2),
    stateValue = _useState6[0],
    setStateValue = _useState6[1];
  var onChange = (0,external_React_.useCallback)(function (value, actionMeta) {
    if (typeof propsOnChange === 'function') {
      propsOnChange(value, actionMeta);
    }
    setStateValue(value);
  }, [propsOnChange]);
  var onInputChange = (0,external_React_.useCallback)(function (value, actionMeta) {
    var newValue;
    if (typeof propsOnInputChange === 'function') {
      newValue = propsOnInputChange(value, actionMeta);
    }
    setStateInputValue(newValue !== undefined ? newValue : value);
  }, [propsOnInputChange]);
  var onMenuOpen = (0,external_React_.useCallback)(function () {
    if (typeof propsOnMenuOpen === 'function') {
      propsOnMenuOpen();
    }
    setStateMenuIsOpen(true);
  }, [propsOnMenuOpen]);
  var onMenuClose = (0,external_React_.useCallback)(function () {
    if (typeof propsOnMenuClose === 'function') {
      propsOnMenuClose();
    }
    setStateMenuIsOpen(false);
  }, [propsOnMenuClose]);
  var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;
  var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;
  var value = propsValue !== undefined ? propsValue : stateValue;
  return objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, restSelectProps), {}, {
    inputValue: inputValue,
    menuIsOpen: menuIsOpen,
    onChange: onChange,
    onInputChange: onInputChange,
    onMenuClose: onMenuClose,
    onMenuOpen: onMenuOpen,
    value: value
  });
}



;// ./node_modules/@babel/runtime/helpers/esm/extends.js
function extends_extends() {
  return extends_extends = Object.assign ? Object.assign.bind() : function (n) {
    for (var e = 1; e < arguments.length; e++) {
      var t = arguments[e];
      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
    }
    return n;
  }, extends_extends.apply(null, arguments);
}

;// ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
function classCallCheck_classCallCheck(a, n) {
  if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
}

;// ./node_modules/@babel/runtime/helpers/esm/createClass.js

function _defineProperties(e, r) {
  for (var t = 0; t < r.length; t++) {
    var o = r[t];
    o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
  }
}
function createClass_createClass(e, r, t) {
  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
    writable: !1
  }), e;
}

;// ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
function _setPrototypeOf(t, e) {
  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
    return t.__proto__ = e, t;
  }, _setPrototypeOf(t, e);
}

;// ./node_modules/@babel/runtime/helpers/esm/inherits.js

function inherits_inherits(t, e) {
  if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
  t.prototype = Object.create(e && e.prototype, {
    constructor: {
      value: t,
      writable: !0,
      configurable: !0
    }
  }), Object.defineProperty(t, "prototype", {
    writable: !1
  }), e && _setPrototypeOf(t, e);
}

;// ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
function getPrototypeOf_getPrototypeOf(t) {
  return getPrototypeOf_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
    return t.__proto__ || Object.getPrototypeOf(t);
  }, getPrototypeOf_getPrototypeOf(t);
}

;// ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
function _isNativeReflectConstruct() {
  try {
    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  } catch (t) {}
  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
    return !!t;
  })();
}

;// ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
function assertThisInitialized_assertThisInitialized(e) {
  if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  return e;
}

;// ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js


function possibleConstructorReturn_possibleConstructorReturn(t, e) {
  if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
  if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
  return assertThisInitialized_assertThisInitialized(t);
}

;// ./node_modules/@babel/runtime/helpers/esm/createSuper.js



function _createSuper(t) {
  var r = _isNativeReflectConstruct();
  return function () {
    var e,
      o = getPrototypeOf_getPrototypeOf(t);
    if (r) {
      var s = getPrototypeOf_getPrototypeOf(this).constructor;
      e = Reflect.construct(o, arguments, s);
    } else e = o.apply(this, arguments);
    return possibleConstructorReturn_possibleConstructorReturn(this, e);
  };
}

;// ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js

function _arrayWithoutHoles(r) {
  if (Array.isArray(r)) return _arrayLikeToArray(r);
}

;// ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
function _iterableToArray(r) {
  if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
}

;// ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

;// ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js




function _toConsumableArray(r) {
  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
}

;// ./node_modules/@emotion/sheet/dist/emotion-sheet.esm.js
var emotion_sheet_esm_isDevelopment = false;

/*

Based off glamor's StyleSheet, thanks Sunil ❤️

high performance StyleSheet for css-in-js systems

- uses multiple style tags behind the scenes for millions of rules
- uses `insertRule` for appending in production for *much* faster performance

// usage

import { StyleSheet } from '@emotion/sheet'

let styleSheet = new StyleSheet({ key: '', container: document.head })

styleSheet.insert('#box { border: 1px solid red; }')
- appends a css rule into the stylesheet

styleSheet.flush()
- empties the stylesheet of all its contents

*/

function sheetForTag(tag) {
  if (tag.sheet) {
    return tag.sheet;
  } // this weirdness brought to you by firefox

  /* istanbul ignore next */


  for (var i = 0; i < document.styleSheets.length; i++) {
    if (document.styleSheets[i].ownerNode === tag) {
      return document.styleSheets[i];
    }
  } // this function should always return with a value
  // TS can't understand it though so we make it stop complaining here


  return undefined;
}

function createStyleElement(options) {
  var tag = document.createElement('style');
  tag.setAttribute('data-emotion', options.key);

  if (options.nonce !== undefined) {
    tag.setAttribute('nonce', options.nonce);
  }

  tag.appendChild(document.createTextNode(''));
  tag.setAttribute('data-s', '');
  return tag;
}

var StyleSheet = /*#__PURE__*/function () {
  // Using Node instead of HTMLElement since container may be a ShadowRoot
  function StyleSheet(options) {
    var _this = this;

    this._insertTag = function (tag) {
      var before;

      if (_this.tags.length === 0) {
        if (_this.insertionPoint) {
          before = _this.insertionPoint.nextSibling;
        } else if (_this.prepend) {
          before = _this.container.firstChild;
        } else {
          before = _this.before;
        }
      } else {
        before = _this.tags[_this.tags.length - 1].nextSibling;
      }

      _this.container.insertBefore(tag, before);

      _this.tags.push(tag);
    };

    this.isSpeedy = options.speedy === undefined ? !emotion_sheet_esm_isDevelopment : options.speedy;
    this.tags = [];
    this.ctr = 0;
    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets

    this.key = options.key;
    this.container = options.container;
    this.prepend = options.prepend;
    this.insertionPoint = options.insertionPoint;
    this.before = null;
  }

  var _proto = StyleSheet.prototype;

  _proto.hydrate = function hydrate(nodes) {
    nodes.forEach(this._insertTag);
  };

  _proto.insert = function insert(rule) {
    // the max length is how many rules we have per style tag, it's 65000 in speedy mode
    // it's 1 in dev because we insert source maps that map a single rule to a location
    // and you can only have one source map per style tag
    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {
      this._insertTag(createStyleElement(this));
    }

    var tag = this.tags[this.tags.length - 1];

    if (this.isSpeedy) {
      var sheet = sheetForTag(tag);

      try {
        // this is the ultrafast version, works across browsers
        // the big drawback is that the css won't be editable in devtools
        sheet.insertRule(rule, sheet.cssRules.length);
      } catch (e) {
      }
    } else {
      tag.appendChild(document.createTextNode(rule));
    }

    this.ctr++;
  };

  _proto.flush = function flush() {
    this.tags.forEach(function (tag) {
      var _tag$parentNode;

      return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);
    });
    this.tags = [];
    this.ctr = 0;
  };

  return StyleSheet;
}();



;// ./node_modules/stylis/src/Utility.js
/**
 * @param {number}
 * @return {number}
 */
var abs = Math.abs

/**
 * @param {number}
 * @return {string}
 */
var Utility_from = String.fromCharCode

/**
 * @param {object}
 * @return {object}
 */
var Utility_assign = Object.assign

/**
 * @param {string} value
 * @param {number} length
 * @return {number}
 */
function hash (value, length) {
	return Utility_charat(value, 0) ^ 45 ? (((((((length << 2) ^ Utility_charat(value, 0)) << 2) ^ Utility_charat(value, 1)) << 2) ^ Utility_charat(value, 2)) << 2) ^ Utility_charat(value, 3) : 0
}

/**
 * @param {string} value
 * @return {string}
 */
function trim (value) {
	return value.trim()
}

/**
 * @param {string} value
 * @param {RegExp} pattern
 * @return {string?}
 */
function Utility_match (value, pattern) {
	return (value = pattern.exec(value)) ? value[0] : value
}

/**
 * @param {string} value
 * @param {(string|RegExp)} pattern
 * @param {string} replacement
 * @return {string}
 */
function Utility_replace (value, pattern, replacement) {
	return value.replace(pattern, replacement)
}

/**
 * @param {string} value
 * @param {string} search
 * @return {number}
 */
function indexof (value, search) {
	return value.indexOf(search)
}

/**
 * @param {string} value
 * @param {number} index
 * @return {number}
 */
function Utility_charat (value, index) {
	return value.charCodeAt(index) | 0
}

/**
 * @param {string} value
 * @param {number} begin
 * @param {number} end
 * @return {string}
 */
function Utility_substr (value, begin, end) {
	return value.slice(begin, end)
}

/**
 * @param {string} value
 * @return {number}
 */
function Utility_strlen (value) {
	return value.length
}

/**
 * @param {any[]} value
 * @return {number}
 */
function Utility_sizeof (value) {
	return value.length
}

/**
 * @param {any} value
 * @param {any[]} array
 * @return {any}
 */
function Utility_append (value, array) {
	return array.push(value), value
}

/**
 * @param {string[]} array
 * @param {function} callback
 * @return {string}
 */
function Utility_combine (array, callback) {
	return array.map(callback).join('')
}

;// ./node_modules/stylis/src/Tokenizer.js


var line = 1
var column = 1
var Tokenizer_length = 0
var position = 0
var character = 0
var characters = ''

/**
 * @param {string} value
 * @param {object | null} root
 * @param {object | null} parent
 * @param {string} type
 * @param {string[] | string} props
 * @param {object[] | string} children
 * @param {number} length
 */
function node (value, root, parent, type, props, children, length) {
	return {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}
}

/**
 * @param {object} root
 * @param {object} props
 * @return {object}
 */
function Tokenizer_copy (root, props) {
	return Utility_assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)
}

/**
 * @return {number}
 */
function Tokenizer_char () {
	return character
}

/**
 * @return {number}
 */
function prev () {
	character = position > 0 ? Utility_charat(characters, --position) : 0

	if (column--, character === 10)
		column = 1, line--

	return character
}

/**
 * @return {number}
 */
function next () {
	character = position < Tokenizer_length ? Utility_charat(characters, position++) : 0

	if (column++, character === 10)
		column = 1, line++

	return character
}

/**
 * @return {number}
 */
function peek () {
	return Utility_charat(characters, position)
}

/**
 * @return {number}
 */
function caret () {
	return position
}

/**
 * @param {number} begin
 * @param {number} end
 * @return {string}
 */
function slice (begin, end) {
	return Utility_substr(characters, begin, end)
}

/**
 * @param {number} type
 * @return {number}
 */
function token (type) {
	switch (type) {
		// \0 \t \n \r \s whitespace token
		case 0: case 9: case 10: case 13: case 32:
			return 5
		// ! + , / > @ ~ isolate token
		case 33: case 43: case 44: case 47: case 62: case 64: case 126:
		// ; { } breakpoint token
		case 59: case 123: case 125:
			return 4
		// : accompanied token
		case 58:
			return 3
		// " ' ( [ opening delimit token
		case 34: case 39: case 40: case 91:
			return 2
		// ) ] closing delimit token
		case 41: case 93:
			return 1
	}

	return 0
}

/**
 * @param {string} value
 * @return {any[]}
 */
function alloc (value) {
	return line = column = 1, Tokenizer_length = Utility_strlen(characters = value), position = 0, []
}

/**
 * @param {any} value
 * @return {any}
 */
function dealloc (value) {
	return characters = '', value
}

/**
 * @param {number} type
 * @return {string}
 */
function delimit (type) {
	return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))
}

/**
 * @param {string} value
 * @return {string[]}
 */
function Tokenizer_tokenize (value) {
	return dealloc(tokenizer(alloc(value)))
}

/**
 * @param {number} type
 * @return {string}
 */
function whitespace (type) {
	while (character = peek())
		if (character < 33)
			next()
		else
			break

	return token(type) > 2 || token(character) > 3 ? '' : ' '
}

/**
 * @param {string[]} children
 * @return {string[]}
 */
function tokenizer (children) {
	while (next())
		switch (token(character)) {
			case 0: append(identifier(position - 1), children)
				break
			case 2: append(delimit(character), children)
				break
			default: append(from(character), children)
		}

	return children
}

/**
 * @param {number} index
 * @param {number} count
 * @return {string}
 */
function escaping (index, count) {
	while (--count && next())
		// not 0-9 A-F a-f
		if (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))
			break

	return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))
}

/**
 * @param {number} type
 * @return {number}
 */
function delimiter (type) {
	while (next())
		switch (character) {
			// ] ) " '
			case type:
				return position
			// " '
			case 34: case 39:
				if (type !== 34 && type !== 39)
					delimiter(character)
				break
			// (
			case 40:
				if (type === 41)
					delimiter(type)
				break
			// \
			case 92:
				next()
				break
		}

	return position
}

/**
 * @param {number} type
 * @param {number} index
 * @return {number}
 */
function commenter (type, index) {
	while (next())
		// //
		if (type + character === 47 + 10)
			break
		// /*
		else if (type + character === 42 + 42 && peek() === 47)
			break

	return '/*' + slice(index, position - 1) + '*' + Utility_from(type === 47 ? type : next())
}

/**
 * @param {number} index
 * @return {string}
 */
function identifier (index) {
	while (!token(peek()))
		next()

	return slice(index, position)
}

;// ./node_modules/stylis/src/Enum.js
var Enum_MS = '-ms-'
var Enum_MOZ = '-moz-'
var Enum_WEBKIT = '-webkit-'

var COMMENT = 'comm'
var Enum_RULESET = 'rule'
var Enum_DECLARATION = 'decl'

var PAGE = '@page'
var MEDIA = '@media'
var IMPORT = '@import'
var CHARSET = '@charset'
var VIEWPORT = '@viewport'
var SUPPORTS = '@supports'
var DOCUMENT = '@document'
var NAMESPACE = '@namespace'
var Enum_KEYFRAMES = '@keyframes'
var FONT_FACE = '@font-face'
var COUNTER_STYLE = '@counter-style'
var FONT_FEATURE_VALUES = '@font-feature-values'
var LAYER = '@layer'

;// ./node_modules/stylis/src/Serializer.js



/**
 * @param {object[]} children
 * @param {function} callback
 * @return {string}
 */
function Serializer_serialize (children, callback) {
	var output = ''
	var length = Utility_sizeof(children)

	for (var i = 0; i < length; i++)
		output += callback(children[i], i, children, callback) || ''

	return output
}

/**
 * @param {object} element
 * @param {number} index
 * @param {object[]} children
 * @param {function} callback
 * @return {string}
 */
function stringify (element, index, children, callback) {
	switch (element.type) {
		case LAYER: if (element.children.length) break
		case IMPORT: case Enum_DECLARATION: return element.return = element.return || element.value
		case COMMENT: return ''
		case Enum_KEYFRAMES: return element.return = element.value + '{' + Serializer_serialize(element.children, callback) + '}'
		case Enum_RULESET: element.value = element.props.join(',')
	}

	return Utility_strlen(children = Serializer_serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''
}

;// ./node_modules/stylis/src/Middleware.js






/**
 * @param {function[]} collection
 * @return {function}
 */
function middleware (collection) {
	var length = Utility_sizeof(collection)

	return function (element, index, children, callback) {
		var output = ''

		for (var i = 0; i < length; i++)
			output += collection[i](element, index, children, callback) || ''

		return output
	}
}

/**
 * @param {function} callback
 * @return {function}
 */
function rulesheet (callback) {
	return function (element) {
		if (!element.root)
			if (element = element.return)
				callback(element)
	}
}

/**
 * @param {object} element
 * @param {number} index
 * @param {object[]} children
 * @param {function} callback
 */
function prefixer (element, index, children, callback) {
	if (element.length > -1)
		if (!element.return)
			switch (element.type) {
				case DECLARATION: element.return = prefix(element.value, element.length, children)
					return
				case KEYFRAMES:
					return serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)
				case RULESET:
					if (element.length)
						return combine(element.props, function (value) {
							switch (match(value, /(::plac\w+|:read-\w+)/)) {
								// :read-(only|write)
								case ':read-only': case ':read-write':
									return serialize([copy(element, {props: [replace(value, /:(read-\w+)/, ':' + MOZ + '$1')]})], callback)
								// :placeholder
								case '::placeholder':
									return serialize([
										copy(element, {props: [replace(value, /:(plac\w+)/, ':' + WEBKIT + 'input-$1')]}),
										copy(element, {props: [replace(value, /:(plac\w+)/, ':' + MOZ + '$1')]}),
										copy(element, {props: [replace(value, /:(plac\w+)/, MS + 'input-$1')]})
									], callback)
							}

							return ''
						})
			}
}

/**
 * @param {object} element
 * @param {number} index
 * @param {object[]} children
 */
function namespace (element) {
	switch (element.type) {
		case RULESET:
			element.props = element.props.map(function (value) {
				return combine(tokenize(value), function (value, index, children) {
					switch (charat(value, 0)) {
						// \f
						case 12:
							return substr(value, 1, strlen(value))
						// \0 ( + > ~
						case 0: case 40: case 43: case 62: case 126:
							return value
						// :
						case 58:
							if (children[++index] === 'global')
								children[index] = '', children[++index] = '\f' + substr(children[index], index = 1, -1)
						// \s
						case 32:
							return index === 1 ? '' : value
						default:
							switch (index) {
								case 0: element = value
									return sizeof(children) > 1 ? '' : value
								case index = sizeof(children) - 1: case 2:
									return index === 2 ? value + element + element : value + element
								default:
									return value
							}
					}
				})
			})
	}
}

;// ./node_modules/stylis/src/Parser.js




/**
 * @param {string} value
 * @return {object[]}
 */
function compile (value) {
	return dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))
}

/**
 * @param {string} value
 * @param {object} root
 * @param {object?} parent
 * @param {string[]} rule
 * @param {string[]} rules
 * @param {string[]} rulesets
 * @param {number[]} pseudo
 * @param {number[]} points
 * @param {string[]} declarations
 * @return {object}
 */
function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
	var index = 0
	var offset = 0
	var length = pseudo
	var atrule = 0
	var property = 0
	var previous = 0
	var variable = 1
	var scanning = 1
	var ampersand = 1
	var character = 0
	var type = ''
	var props = rules
	var children = rulesets
	var reference = rule
	var characters = type

	while (scanning)
		switch (previous = character, character = next()) {
			// (
			case 40:
				if (previous != 108 && Utility_charat(characters, length - 1) == 58) {
					if (indexof(characters += Utility_replace(delimit(character), '&', '&\f'), '&\f') != -1)
						ampersand = -1
					break
				}
			// " ' [
			case 34: case 39: case 91:
				characters += delimit(character)
				break
			// \t \n \r \s
			case 9: case 10: case 13: case 32:
				characters += whitespace(previous)
				break
			// \
			case 92:
				characters += escaping(caret() - 1, 7)
				continue
			// /
			case 47:
				switch (peek()) {
					case 42: case 47:
						Utility_append(comment(commenter(next(), caret()), root, parent), declarations)
						break
					default:
						characters += '/'
				}
				break
			// {
			case 123 * variable:
				points[index++] = Utility_strlen(characters) * ampersand
			// } ; \0
			case 125 * variable: case 59: case 0:
				switch (character) {
					// \0 }
					case 0: case 125: scanning = 0
					// ;
					case 59 + offset: if (ampersand == -1) characters = Utility_replace(characters, /\f/g, '')
						if (property > 0 && (Utility_strlen(characters) - length))
							Utility_append(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(Utility_replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)
						break
					// @ ;
					case 59: characters += ';'
					// { rule/at-rule
					default:
						Utility_append(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)

						if (character === 123)
							if (offset === 0)
								parse(characters, root, reference, reference, props, rulesets, length, points, children)
							else
								switch (atrule === 99 && Utility_charat(characters, 3) === 110 ? 100 : atrule) {
									// d l m s
									case 100: case 108: case 109: case 115:
										parse(value, reference, reference, rule && Utility_append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)
										break
									default:
										parse(characters, reference, reference, reference, [''], children, 0, points, children)
								}
				}

				index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo
				break
			// :
			case 58:
				length = 1 + Utility_strlen(characters), property = previous
			default:
				if (variable < 1)
					if (character == 123)
						--variable
					else if (character == 125 && variable++ == 0 && prev() == 125)
						continue

				switch (characters += Utility_from(character), character * variable) {
					// &
					case 38:
						ampersand = offset > 0 ? 1 : (characters += '\f', -1)
						break
					// ,
					case 44:
						points[index++] = (Utility_strlen(characters) - 1) * ampersand, ampersand = 1
						break
					// @
					case 64:
						// -
						if (peek() === 45)
							characters += delimit(next())

						atrule = peek(), offset = length = Utility_strlen(type = characters += identifier(caret())), character++
						break
					// -
					case 45:
						if (previous === 45 && Utility_strlen(characters) == 2)
							variable = 0
				}
		}

	return rulesets
}

/**
 * @param {string} value
 * @param {object} root
 * @param {object?} parent
 * @param {number} index
 * @param {number} offset
 * @param {string[]} rules
 * @param {number[]} points
 * @param {string} type
 * @param {string[]} props
 * @param {string[]} children
 * @param {number} length
 * @return {object}
 */
function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {
	var post = offset - 1
	var rule = offset === 0 ? rules : ['']
	var size = Utility_sizeof(rule)

	for (var i = 0, j = 0, k = 0; i < index; ++i)
		for (var x = 0, y = Utility_substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)
			if (z = trim(j > 0 ? rule[x] + ' ' + y : Utility_replace(y, /&\f/g, rule[x])))
				props[k++] = z

	return node(value, root, parent, offset === 0 ? Enum_RULESET : type, props, children, length)
}

/**
 * @param {number} value
 * @param {object} root
 * @param {object?} parent
 * @return {object}
 */
function comment (value, root, parent) {
	return node(value, root, parent, COMMENT, Utility_from(Tokenizer_char()), Utility_substr(value, 2, -2), 0)
}

/**
 * @param {string} value
 * @param {object} root
 * @param {object?} parent
 * @param {number} length
 * @return {object}
 */
function declaration (value, root, parent, length) {
	return node(value, root, parent, Enum_DECLARATION, Utility_substr(value, 0, length), Utility_substr(value, length + 1, -1), length)
}

;// ./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js





var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
  var previous = 0;
  var character = 0;

  while (true) {
    previous = character;
    character = peek(); // &\f

    if (previous === 38 && character === 12) {
      points[index] = 1;
    }

    if (token(character)) {
      break;
    }

    next();
  }

  return slice(begin, position);
};

var toRules = function toRules(parsed, points) {
  // pretend we've started with a comma
  var index = -1;
  var character = 44;

  do {
    switch (token(character)) {
      case 0:
        // &\f
        if (character === 38 && peek() === 12) {
          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings
          // stylis inserts \f after & to know when & where it should replace this sequence with the context selector
          // and when it should just concatenate the outer and inner selectors
          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here
          points[index] = 1;
        }

        parsed[index] += identifierWithPointTracking(position - 1, points, index);
        break;

      case 2:
        parsed[index] += delimit(character);
        break;

      case 4:
        // comma
        if (character === 44) {
          // colon
          parsed[++index] = peek() === 58 ? '&\f' : '';
          points[index] = parsed[index].length;
          break;
        }

      // fallthrough

      default:
        parsed[index] += Utility_from(character);
    }
  } while (character = next());

  return parsed;
};

var getRules = function getRules(value, points) {
  return dealloc(toRules(alloc(value), points));
}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11


var fixedElements = /* #__PURE__ */new WeakMap();
var compat = function compat(element) {
  if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo
  // negative .length indicates that this rule has been already prefixed
  element.length < 1) {
    return;
  }

  var value = element.value;
  var parent = element.parent;
  var isImplicitRule = element.column === parent.column && element.line === parent.line;

  while (parent.type !== 'rule') {
    parent = parent.parent;
    if (!parent) return;
  } // short-circuit for the simplest case


  if (element.props.length === 1 && value.charCodeAt(0) !== 58
  /* colon */
  && !fixedElements.get(parent)) {
    return;
  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)
  // then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent"


  if (isImplicitRule) {
    return;
  }

  fixedElements.set(element, true);
  var points = [];
  var rules = getRules(value, points);
  var parentRules = parent.props;

  for (var i = 0, k = 0; i < rules.length; i++) {
    for (var j = 0; j < parentRules.length; j++, k++) {
      element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i];
    }
  }
};
var removeLabel = function removeLabel(element) {
  if (element.type === 'decl') {
    var value = element.value;

    if ( // charcode for l
    value.charCodeAt(0) === 108 && // charcode for b
    value.charCodeAt(2) === 98) {
      // this ignores label
      element["return"] = '';
      element.value = '';
    }
  }
};

/* eslint-disable no-fallthrough */

function emotion_cache_browser_esm_prefix(value, length) {
  switch (hash(value, length)) {
    // color-adjust
    case 5103:
      return Enum_WEBKIT + 'print-' + value + value;
    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)

    case 5737:
    case 4201:
    case 3177:
    case 3433:
    case 1641:
    case 4457:
    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break

    case 5572:
    case 6356:
    case 5844:
    case 3191:
    case 6645:
    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,

    case 6391:
    case 5879:
    case 5623:
    case 6135:
    case 4599:
    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)

    case 4215:
    case 6389:
    case 5109:
    case 5365:
    case 5621:
    case 3829:
      return Enum_WEBKIT + value + value;
    // appearance, user-select, transform, hyphens, text-size-adjust

    case 5349:
    case 4246:
    case 4810:
    case 6968:
    case 2756:
      return Enum_WEBKIT + value + Enum_MOZ + value + Enum_MS + value + value;
    // flex, flex-direction

    case 6828:
    case 4268:
      return Enum_WEBKIT + value + Enum_MS + value + value;
    // order

    case 6165:
      return Enum_WEBKIT + value + Enum_MS + 'flex-' + value + value;
    // align-items

    case 5187:
      return Enum_WEBKIT + value + Utility_replace(value, /(\w+).+(:[^]+)/, Enum_WEBKIT + 'box-$1$2' + Enum_MS + 'flex-$1$2') + value;
    // align-self

    case 5443:
      return Enum_WEBKIT + value + Enum_MS + 'flex-item-' + Utility_replace(value, /flex-|-self/, '') + value;
    // align-content

    case 4675:
      return Enum_WEBKIT + value + Enum_MS + 'flex-line-pack' + Utility_replace(value, /align-content|flex-|-self/, '') + value;
    // flex-shrink

    case 5548:
      return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'shrink', 'negative') + value;
    // flex-basis

    case 5292:
      return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'basis', 'preferred-size') + value;
    // flex-grow

    case 6060:
      return Enum_WEBKIT + 'box-' + Utility_replace(value, '-grow', '') + Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'grow', 'positive') + value;
    // transition

    case 4554:
      return Enum_WEBKIT + Utility_replace(value, /([^-])(transform)/g, '$1' + Enum_WEBKIT + '$2') + value;
    // cursor

    case 6187:
      return Utility_replace(Utility_replace(Utility_replace(value, /(zoom-|grab)/, Enum_WEBKIT + '$1'), /(image-set)/, Enum_WEBKIT + '$1'), value, '') + value;
    // background, background-image

    case 5495:
    case 3959:
      return Utility_replace(value, /(image-set\([^]*)/, Enum_WEBKIT + '$1' + '$`$1');
    // justify-content

    case 4968:
      return Utility_replace(Utility_replace(value, /(.+:)(flex-)?(.*)/, Enum_WEBKIT + 'box-pack:$3' + Enum_MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + Enum_WEBKIT + value + value;
    // (margin|padding)-inline-(start|end)

    case 4095:
    case 3583:
    case 4068:
    case 2532:
      return Utility_replace(value, /(.+)-inline(.+)/, Enum_WEBKIT + '$1$2') + value;
    // (min|max)?(width|height|inline-size|block-size)

    case 8116:
    case 7059:
    case 5753:
    case 5535:
    case 5445:
    case 5701:
    case 4933:
    case 4677:
    case 5533:
    case 5789:
    case 5021:
    case 4765:
      // stretch, max-content, min-content, fill-available
      if (Utility_strlen(value) - 1 - length > 6) switch (Utility_charat(value, length + 1)) {
        // (m)ax-content, (m)in-content
        case 109:
          // -
          if (Utility_charat(value, length + 4) !== 45) break;
        // (f)ill-available, (f)it-content

        case 102:
          return Utility_replace(value, /(.+:)(.+)-([^]+)/, '$1' + Enum_WEBKIT + '$2-$3' + '$1' + Enum_MOZ + (Utility_charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;
        // (s)tretch

        case 115:
          return ~indexof(value, 'stretch') ? emotion_cache_browser_esm_prefix(Utility_replace(value, 'stretch', 'fill-available'), length) + value : value;
      }
      break;
    // position: sticky

    case 4949:
      // (s)ticky?
      if (Utility_charat(value, length + 1) !== 115) break;
    // display: (flex|inline-flex)

    case 6444:
      switch (Utility_charat(value, Utility_strlen(value) - 3 - (~indexof(value, '!important') && 10))) {
        // stic(k)y
        case 107:
          return Utility_replace(value, ':', ':' + Enum_WEBKIT) + value;
        // (inline-)?fl(e)x

        case 101:
          return Utility_replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + Enum_WEBKIT + (Utility_charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + Enum_WEBKIT + '$2$3' + '$1' + Enum_MS + '$2box$3') + value;
      }

      break;
    // writing-mode

    case 5936:
      switch (Utility_charat(value, length + 11)) {
        // vertical-l(r)
        case 114:
          return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'tb') + value;
        // vertical-r(l)

        case 108:
          return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value;
        // horizontal(-)tb

        case 45:
          return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'lr') + value;
      }

      return Enum_WEBKIT + value + Enum_MS + value + value;
  }

  return value;
}

var emotion_cache_browser_esm_prefixer = function prefixer(element, index, children, callback) {
  if (element.length > -1) if (!element["return"]) switch (element.type) {
    case Enum_DECLARATION:
      element["return"] = emotion_cache_browser_esm_prefix(element.value, element.length);
      break;

    case Enum_KEYFRAMES:
      return Serializer_serialize([Tokenizer_copy(element, {
        value: Utility_replace(element.value, '@', '@' + Enum_WEBKIT)
      })], callback);

    case Enum_RULESET:
      if (element.length) return Utility_combine(element.props, function (value) {
        switch (Utility_match(value, /(::plac\w+|:read-\w+)/)) {
          // :read-(only|write)
          case ':read-only':
          case ':read-write':
            return Serializer_serialize([Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(read-\w+)/, ':' + Enum_MOZ + '$1')]
            })], callback);
          // :placeholder

          case '::placeholder':
            return Serializer_serialize([Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(plac\w+)/, ':' + Enum_WEBKIT + 'input-$1')]
            }), Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(plac\w+)/, ':' + Enum_MOZ + '$1')]
            }), Tokenizer_copy(element, {
              props: [Utility_replace(value, /:(plac\w+)/, Enum_MS + 'input-$1')]
            })], callback);
        }

        return '';
      });
  }
};

var defaultStylisPlugins = [emotion_cache_browser_esm_prefixer];

var emotion_cache_browser_esm_createCache = function createCache(options) {
  var key = options.key;

  if (key === 'css') {
    var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React's hydration
    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)
    // note this very very intentionally targets all style elements regardless of the key to ensure
    // that creating a cache works inside of render of a React component

    Array.prototype.forEach.call(ssrStyles, function (node) {
      // we want to only move elements which have a space in the data-emotion attribute value
      // because that indicates that it is an Emotion 11 server-side rendered style elements
      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector
      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)
      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles
      // will not result in the Emotion 10 styles being destroyed
      var dataEmotionAttribute = node.getAttribute('data-emotion');

      if (dataEmotionAttribute.indexOf(' ') === -1) {
        return;
      }

      document.head.appendChild(node);
      node.setAttribute('data-s', '');
    });
  }

  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;

  var inserted = {};
  var container;
  var nodesToHydrate = [];

  {
    container = options.container || document.head;
    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which
    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements
    document.querySelectorAll("style[data-emotion^=\"" + key + " \"]"), function (node) {
      var attrib = node.getAttribute("data-emotion").split(' ');

      for (var i = 1; i < attrib.length; i++) {
        inserted[attrib[i]] = true;
      }

      nodesToHydrate.push(node);
    });
  }

  var _insert;

  var omnipresentPlugins = [compat, removeLabel];

  {
    var currentSheet;
    var finalizingPlugins = [stringify, rulesheet(function (rule) {
      currentSheet.insert(rule);
    })];
    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));

    var stylis = function stylis(styles) {
      return Serializer_serialize(compile(styles), serializer);
    };

    _insert = function insert(selector, serialized, sheet, shouldCache) {
      currentSheet = sheet;

      stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles);

      if (shouldCache) {
        cache.inserted[serialized.name] = true;
      }
    };
  }

  var cache = {
    key: key,
    sheet: new StyleSheet({
      key: key,
      container: container,
      nonce: options.nonce,
      speedy: options.speedy,
      prepend: options.prepend,
      insertionPoint: options.insertionPoint
    }),
    nonce: options.nonce,
    inserted: inserted,
    registered: {},
    insert: _insert
  };
  cache.sheet.hydrate(nodesToHydrate);
  return cache;
};



;// ./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js
var isBrowser = true;

function emotion_utils_browser_esm_getRegisteredStyles(registered, registeredStyles, classNames) {
  var rawClassName = '';
  classNames.split(' ').forEach(function (className) {
    if (registered[className] !== undefined) {
      registeredStyles.push(registered[className] + ";");
    } else if (className) {
      rawClassName += className + " ";
    }
  });
  return rawClassName;
}
var emotion_utils_browser_esm_registerStyles = function registerStyles(cache, serialized, isStringTag) {
  var className = cache.key + "-" + serialized.name;

  if ( // we only need to add the styles to the registered cache if the
  // class name could be used further down
  // the tree but if it's a string tag, we know it won't
  // so we don't have to add it to registered cache.
  // this improves memory usage since we can avoid storing the whole style string
  (isStringTag === false || // we need to always store it if we're in compat mode and
  // in node since emotion-server relies on whether a style is in
  // the registered cache to know whether a style is global or not
  // also, note that this check will be dead code eliminated in the browser
  isBrowser === false ) && cache.registered[className] === undefined) {
    cache.registered[className] = serialized.styles;
  }
};
var emotion_utils_browser_esm_insertStyles = function insertStyles(cache, serialized, isStringTag) {
  emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
  var className = cache.key + "-" + serialized.name;

  if (cache.inserted[serialized.name] === undefined) {
    var current = serialized;

    do {
      cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);

      current = current.next;
    } while (current !== undefined);
  }
};



;// ./node_modules/@emotion/hash/dist/emotion-hash.esm.js
/* eslint-disable */
// Inspired by https://github.com/garycourt/murmurhash-js
// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86
function murmur2(str) {
  // 'm' and 'r' are mixing constants generated offline.
  // They're not really 'magic', they just happen to work well.
  // const m = 0x5bd1e995;
  // const r = 24;
  // Initialize the hash
  var h = 0; // Mix 4 bytes at a time into the hash

  var k,
      i = 0,
      len = str.length;

  for (; len >= 4; ++i, len -= 4) {
    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;
    k =
    /* Math.imul(k, m): */
    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);
    k ^=
    /* k >>> r: */
    k >>> 24;
    h =
    /* Math.imul(k, m): */
    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^
    /* Math.imul(h, m): */
    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
  } // Handle the last few bytes of the input array


  switch (len) {
    case 3:
      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;

    case 2:
      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;

    case 1:
      h ^= str.charCodeAt(i) & 0xff;
      h =
      /* Math.imul(h, m): */
      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
  } // Do a few final mixes of the hash to ensure the last few
  // bytes are well-incorporated.


  h ^= h >>> 13;
  h =
  /* Math.imul(h, m): */
  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
  return ((h ^ h >>> 15) >>> 0).toString(36);
}



;// ./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js
var unitlessKeys = {
  animationIterationCount: 1,
  aspectRatio: 1,
  borderImageOutset: 1,
  borderImageSlice: 1,
  borderImageWidth: 1,
  boxFlex: 1,
  boxFlexGroup: 1,
  boxOrdinalGroup: 1,
  columnCount: 1,
  columns: 1,
  flex: 1,
  flexGrow: 1,
  flexPositive: 1,
  flexShrink: 1,
  flexNegative: 1,
  flexOrder: 1,
  gridRow: 1,
  gridRowEnd: 1,
  gridRowSpan: 1,
  gridRowStart: 1,
  gridColumn: 1,
  gridColumnEnd: 1,
  gridColumnSpan: 1,
  gridColumnStart: 1,
  msGridRow: 1,
  msGridRowSpan: 1,
  msGridColumn: 1,
  msGridColumnSpan: 1,
  fontWeight: 1,
  lineHeight: 1,
  opacity: 1,
  order: 1,
  orphans: 1,
  scale: 1,
  tabSize: 1,
  widows: 1,
  zIndex: 1,
  zoom: 1,
  WebkitLineClamp: 1,
  // SVG-related properties
  fillOpacity: 1,
  floodOpacity: 1,
  stopOpacity: 1,
  strokeDasharray: 1,
  strokeDashoffset: 1,
  strokeMiterlimit: 1,
  strokeOpacity: 1,
  strokeWidth: 1
};



;// ./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
function memoize(fn) {
  var cache = Object.create(null);
  return function (arg) {
    if (cache[arg] === undefined) cache[arg] = fn(arg);
    return cache[arg];
  };
}



;// ./node_modules/@emotion/serialize/dist/emotion-serialize.esm.js




var emotion_serialize_esm_isDevelopment = false;

var hyphenateRegex = /[A-Z]|^ms/g;
var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;

var isCustomProperty = function isCustomProperty(property) {
  return property.charCodeAt(1) === 45;
};

var isProcessableValue = function isProcessableValue(value) {
  return value != null && typeof value !== 'boolean';
};

var processStyleName = /* #__PURE__ */memoize(function (styleName) {
  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();
});

var processStyleValue = function processStyleValue(key, value) {
  switch (key) {
    case 'animation':
    case 'animationName':
      {
        if (typeof value === 'string') {
          return value.replace(animationRegex, function (match, p1, p2) {
            cursor = {
              name: p1,
              styles: p2,
              next: cursor
            };
            return p1;
          });
        }
      }
  }

  if (unitlessKeys[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {
    return value + 'px';
  }

  return value;
};

var noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';

function handleInterpolation(mergedProps, registered, interpolation) {
  if (interpolation == null) {
    return '';
  }

  var componentSelector = interpolation;

  if (componentSelector.__emotion_styles !== undefined) {

    return componentSelector;
  }

  switch (typeof interpolation) {
    case 'boolean':
      {
        return '';
      }

    case 'object':
      {
        var keyframes = interpolation;

        if (keyframes.anim === 1) {
          cursor = {
            name: keyframes.name,
            styles: keyframes.styles,
            next: cursor
          };
          return keyframes.name;
        }

        var serializedStyles = interpolation;

        if (serializedStyles.styles !== undefined) {
          var next = serializedStyles.next;

          if (next !== undefined) {
            // not the most efficient thing ever but this is a pretty rare case
            // and there will be very few iterations of this generally
            while (next !== undefined) {
              cursor = {
                name: next.name,
                styles: next.styles,
                next: cursor
              };
              next = next.next;
            }
          }

          var styles = serializedStyles.styles + ";";
          return styles;
        }

        return createStringFromObject(mergedProps, registered, interpolation);
      }

    case 'function':
      {
        if (mergedProps !== undefined) {
          var previousCursor = cursor;
          var result = interpolation(mergedProps);
          cursor = previousCursor;
          return handleInterpolation(mergedProps, registered, result);
        }

        break;
      }
  } // finalize string values (regular strings and functions interpolated into css calls)


  var asString = interpolation;

  if (registered == null) {
    return asString;
  }

  var cached = registered[asString];
  return cached !== undefined ? cached : asString;
}

function createStringFromObject(mergedProps, registered, obj) {
  var string = '';

  if (Array.isArray(obj)) {
    for (var i = 0; i < obj.length; i++) {
      string += handleInterpolation(mergedProps, registered, obj[i]) + ";";
    }
  } else {
    for (var key in obj) {
      var value = obj[key];

      if (typeof value !== 'object') {
        var asString = value;

        if (registered != null && registered[asString] !== undefined) {
          string += key + "{" + registered[asString] + "}";
        } else if (isProcessableValue(asString)) {
          string += processStyleName(key) + ":" + processStyleValue(key, asString) + ";";
        }
      } else {
        if (key === 'NO_COMPONENT_SELECTOR' && emotion_serialize_esm_isDevelopment) {
          throw new Error(noComponentSelectorMessage);
        }

        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {
          for (var _i = 0; _i < value.length; _i++) {
            if (isProcessableValue(value[_i])) {
              string += processStyleName(key) + ":" + processStyleValue(key, value[_i]) + ";";
            }
          }
        } else {
          var interpolated = handleInterpolation(mergedProps, registered, value);

          switch (key) {
            case 'animation':
            case 'animationName':
              {
                string += processStyleName(key) + ":" + interpolated + ";";
                break;
              }

            default:
              {

                string += key + "{" + interpolated + "}";
              }
          }
        }
      }
    }
  }

  return string;
}

var labelPattern = /label:\s*([^\s;{]+)\s*(;|$)/g; // this is the cursor for keyframes
// keyframes are stored on the SerializedStyles object as a linked list

var cursor;
function emotion_serialize_esm_serializeStyles(args, registered, mergedProps) {
  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {
    return args[0];
  }

  var stringMode = true;
  var styles = '';
  cursor = undefined;
  var strings = args[0];

  if (strings == null || strings.raw === undefined) {
    stringMode = false;
    styles += handleInterpolation(mergedProps, registered, strings);
  } else {
    var asTemplateStringsArr = strings;

    styles += asTemplateStringsArr[0];
  } // we start at 1 since we've already handled the first arg


  for (var i = 1; i < args.length; i++) {
    styles += handleInterpolation(mergedProps, registered, args[i]);

    if (stringMode) {
      var templateStringsArr = strings;

      styles += templateStringsArr[i];
    }
  } // using a global regex with .exec is stateful so lastIndex has to be reset each time


  labelPattern.lastIndex = 0;
  var identifierName = '';
  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5

  while ((match = labelPattern.exec(styles)) !== null) {
    identifierName += '-' + match[1];
  }

  var name = murmur2(styles) + identifierName;

  return {
    name: name,
    styles: styles,
    next: cursor
  };
}



;// ./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js


var syncFallback = function syncFallback(create) {
  return create();
};

var useInsertionEffect = external_React_['useInsertion' + 'Effect'] ? external_React_['useInsertion' + 'Effect'] : false;
var emotion_use_insertion_effect_with_fallbacks_browser_esm_useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;
var emotion_use_insertion_effect_with_fallbacks_browser_esm_useInsertionEffectWithLayoutFallback = useInsertionEffect || external_React_.useLayoutEffect;



;// ./node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js










var emotion_element_f0de968e_browser_esm_isDevelopment = false;

var EmotionCacheContext = /* #__PURE__ */external_React_.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case
// because this module is primarily intended for the browser and node
// but it's also required in react native and similar environments sometimes
// and we could have a special build just for that
// but this is much easier and the native packages
// might use a different theme context in the future anyway
typeof HTMLElement !== 'undefined' ? /* #__PURE__ */emotion_cache_browser_esm_createCache({
  key: 'css'
}) : null);

var emotion_element_f0de968e_browser_esm_CacheProvider = EmotionCacheContext.Provider;
var __unsafe_useEmotionCache = function useEmotionCache() {
  return useContext(EmotionCacheContext);
};

var emotion_element_f0de968e_browser_esm_withEmotionCache = function withEmotionCache(func) {
  return /*#__PURE__*/(0,external_React_.forwardRef)(function (props, ref) {
    // the cache will never be null in the browser
    var cache = (0,external_React_.useContext)(EmotionCacheContext);
    return func(props, cache, ref);
  });
};

var emotion_element_f0de968e_browser_esm_ThemeContext = /* #__PURE__ */external_React_.createContext({});

var useTheme = function useTheme() {
  return React.useContext(emotion_element_f0de968e_browser_esm_ThemeContext);
};

var getTheme = function getTheme(outerTheme, theme) {
  if (typeof theme === 'function') {
    var mergedTheme = theme(outerTheme);

    return mergedTheme;
  }

  return _extends({}, outerTheme, theme);
};

var createCacheWithTheme = /* #__PURE__ */(/* unused pure expression or super */ null && (weakMemoize(function (outerTheme) {
  return weakMemoize(function (theme) {
    return getTheme(outerTheme, theme);
  });
})));
var ThemeProvider = function ThemeProvider(props) {
  var theme = React.useContext(emotion_element_f0de968e_browser_esm_ThemeContext);

  if (props.theme !== theme) {
    theme = createCacheWithTheme(theme)(props.theme);
  }

  return /*#__PURE__*/React.createElement(emotion_element_f0de968e_browser_esm_ThemeContext.Provider, {
    value: theme
  }, props.children);
};
function withTheme(Component) {
  var componentName = Component.displayName || Component.name || 'Component';
  var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {
    var theme = React.useContext(emotion_element_f0de968e_browser_esm_ThemeContext);
    return /*#__PURE__*/React.createElement(Component, _extends({
      theme: theme,
      ref: ref
    }, props));
  });
  WithTheme.displayName = "WithTheme(" + componentName + ")";
  return hoistNonReactStatics(WithTheme, Component);
}

var hasOwn = {}.hasOwnProperty;

var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
var createEmotionProps = function createEmotionProps(type, props) {

  var newProps = {};

  for (var _key in props) {
    if (hasOwn.call(props, _key)) {
      newProps[_key] = props[_key];
    }
  }

  newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:

  return newProps;
};

var Insertion = function Insertion(_ref) {
  var cache = _ref.cache,
      serialized = _ref.serialized,
      isStringTag = _ref.isStringTag;
  emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
  emotion_use_insertion_effect_with_fallbacks_browser_esm_useInsertionEffectAlwaysWithSyncFallback(function () {
    return emotion_utils_browser_esm_insertStyles(cache, serialized, isStringTag);
  });

  return null;
};

var Emotion = /* #__PURE__ */emotion_element_f0de968e_browser_esm_withEmotionCache(function (props, cache, ref) {
  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works
  // not passing the registered cache to serializeStyles because it would
  // make certain babel optimisations not possible

  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
    cssProp = cache.registered[cssProp];
  }

  var WrappedComponent = props[typePropName];
  var registeredStyles = [cssProp];
  var className = '';

  if (typeof props.className === 'string') {
    className = emotion_utils_browser_esm_getRegisteredStyles(cache.registered, registeredStyles, props.className);
  } else if (props.className != null) {
    className = props.className + " ";
  }

  var serialized = emotion_serialize_esm_serializeStyles(registeredStyles, undefined, external_React_.useContext(emotion_element_f0de968e_browser_esm_ThemeContext));

  className += cache.key + "-" + serialized.name;
  var newProps = {};

  for (var _key2 in props) {
    if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!emotion_element_f0de968e_browser_esm_isDevelopment )) {
      newProps[_key2] = props[_key2];
    }
  }

  newProps.className = className;

  if (ref) {
    newProps.ref = ref;
  }

  return /*#__PURE__*/external_React_.createElement(external_React_.Fragment, null, /*#__PURE__*/external_React_.createElement(Insertion, {
    cache: cache,
    serialized: serialized,
    isStringTag: typeof WrappedComponent === 'string'
  }), /*#__PURE__*/external_React_.createElement(WrappedComponent, newProps));
});

var Emotion$1 = Emotion;



// EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
var hoist_non_react_statics_cjs = __webpack_require__(4146);
;// ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js












var jsx = function jsx(type, props) {
  // eslint-disable-next-line prefer-rest-params
  var args = arguments;

  if (props == null || !hasOwn.call(props, 'css')) {
    return external_React_.createElement.apply(undefined, args);
  }

  var argsLength = args.length;
  var createElementArgArray = new Array(argsLength);
  createElementArgArray[0] = Emotion$1;
  createElementArgArray[1] = createEmotionProps(type, props);

  for (var i = 2; i < argsLength; i++) {
    createElementArgArray[i] = args[i];
  }

  return external_React_.createElement.apply(null, createElementArgArray);
};

(function (_jsx) {
  var JSX;

  (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));
})(jsx || (jsx = {}));

// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
// initial client-side render from SSR, use place of hydrating tag

var Global = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {

  var styles = props.styles;
  var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));
  // but it is based on a constant that will never change at runtime
  // it's effectively like having two implementations and switching them out
  // so it's not actually breaking anything


  var sheetRef = React.useRef();
  useInsertionEffectWithLayoutFallback(function () {
    var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675

    var sheet = new cache.sheet.constructor({
      key: key,
      nonce: cache.sheet.nonce,
      container: cache.sheet.container,
      speedy: cache.sheet.isSpeedy
    });
    var rehydrating = false;
    var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]");

    if (cache.sheet.tags.length) {
      sheet.before = cache.sheet.tags[0];
    }

    if (node !== null) {
      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s

      node.setAttribute('data-emotion', key);
      sheet.hydrate([node]);
    }

    sheetRef.current = [sheet, rehydrating];
    return function () {
      sheet.flush();
    };
  }, [cache]);
  useInsertionEffectWithLayoutFallback(function () {
    var sheetRefCurrent = sheetRef.current;
    var sheet = sheetRefCurrent[0],
        rehydrating = sheetRefCurrent[1];

    if (rehydrating) {
      sheetRefCurrent[1] = false;
      return;
    }

    if (serialized.next !== undefined) {
      // insert keyframes
      insertStyles(cache, serialized.next, true);
    }

    if (sheet.tags.length) {
      // if this doesn't exist then it will be null so the style element will be appended
      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;
      sheet.before = element;
      sheet.flush();
    }

    cache.insert("", serialized, sheet, false);
  }, [cache, serialized.name]);
  return null;
})));

function css() {
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  return emotion_serialize_esm_serializeStyles(args);
}

function keyframes() {
  var insertable = css.apply(void 0, arguments);
  var name = "animation-" + insertable.name;
  return {
    name: name,
    styles: "@keyframes " + name + "{" + insertable.styles + "}",
    anim: 1,
    toString: function toString() {
      return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
    }
  };
}

var classnames = function classnames(args) {
  var len = args.length;
  var i = 0;
  var cls = '';

  for (; i < len; i++) {
    var arg = args[i];
    if (arg == null) continue;
    var toAdd = void 0;

    switch (typeof arg) {
      case 'boolean':
        break;

      case 'object':
        {
          if (Array.isArray(arg)) {
            toAdd = classnames(arg);
          } else {

            toAdd = '';

            for (var k in arg) {
              if (arg[k] && k) {
                toAdd && (toAdd += ' ');
                toAdd += k;
              }
            }
          }

          break;
        }

      default:
        {
          toAdd = arg;
        }
    }

    if (toAdd) {
      cls && (cls += ' ');
      cls += toAdd;
    }
  }

  return cls;
};

function merge(registered, css, className) {
  var registeredStyles = [];
  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);

  if (registeredStyles.length < 2) {
    return className;
  }

  return rawClassName + css(registeredStyles);
}

var emotion_react_browser_esm_Insertion = function Insertion(_ref) {
  var cache = _ref.cache,
      serializedArr = _ref.serializedArr;
  useInsertionEffectAlwaysWithSyncFallback(function () {

    for (var i = 0; i < serializedArr.length; i++) {
      insertStyles(cache, serializedArr[i], false);
    }
  });

  return null;
};

var ClassNames = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {
  var hasRendered = false;
  var serializedArr = [];

  var css = function css() {
    if (hasRendered && isDevelopment) {
      throw new Error('css can only be used during render');
    }

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    var serialized = serializeStyles(args, cache.registered);
    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`

    registerStyles(cache, serialized, false);
    return cache.key + "-" + serialized.name;
  };

  var cx = function cx() {
    if (hasRendered && isDevelopment) {
      throw new Error('cx can only be used during render');
    }

    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }

    return merge(cache.registered, css, classnames(args));
  };

  var content = {
    css: css,
    cx: cx,
    theme: React.useContext(ThemeContext)
  };
  var ele = props.children(content);
  hasRendered = true;
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(emotion_react_browser_esm_Insertion, {
    cache: cache,
    serializedArr: serializedArr
  }), ele);
})));



;// ./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
function _taggedTemplateLiteral(e, t) {
  return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
    raw: {
      value: Object.freeze(t)
    }
  }));
}

;// external "ReactDOM"
const external_ReactDOM_namespaceObject = ReactDOM;
// EXTERNAL MODULE: ./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs + 3 modules
var floating_ui_dom = __webpack_require__(7663);
;// ./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js


var index = external_React_.useLayoutEffect ;



;// ./node_modules/react-select/dist/index-641ee5b8.esm.js













var _excluded$4 = ["className", "clearValue", "cx", "getStyles", "getClassNames", "getValue", "hasValue", "isMulti", "isRtl", "options", "selectOption", "selectProps", "setValue", "theme"];
// ==============================
// NO OP
// ==============================

var noop = function noop() {};

// ==============================
// Class Name Prefixer
// ==============================

/**
 String representation of component state for styling with class names.

 Expects an array of strings OR a string/object pair:
 - className(['comp', 'comp-arg', 'comp-arg-2'])
   @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'
 - className('comp', { some: true, state: false })
   @returns 'react-select__comp react-select__comp--some'
*/
function applyPrefixToName(prefix, name) {
  if (!name) {
    return prefix;
  } else if (name[0] === '-') {
    return prefix + name;
  } else {
    return prefix + '__' + name;
  }
}
function classNames(prefix, state) {
  for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
    classNameList[_key - 2] = arguments[_key];
  }
  var arr = [].concat(classNameList);
  if (state && prefix) {
    for (var key in state) {
      if (state.hasOwnProperty(key) && state[key]) {
        arr.push("".concat(applyPrefixToName(prefix, key)));
      }
    }
  }
  return arr.filter(function (i) {
    return i;
  }).map(function (i) {
    return String(i).trim();
  }).join(' ');
}
// ==============================
// Clean Value
// ==============================

var cleanValue = function cleanValue(value) {
  if (isArray(value)) return value.filter(Boolean);
  if (_typeof(value) === 'object' && value !== null) return [value];
  return [];
};

// ==============================
// Clean Common Props
// ==============================

var cleanCommonProps = function cleanCommonProps(props) {
  //className
  props.className;
    props.clearValue;
    props.cx;
    props.getStyles;
    props.getClassNames;
    props.getValue;
    props.hasValue;
    props.isMulti;
    props.isRtl;
    props.options;
    props.selectOption;
    props.selectProps;
    props.setValue;
    props.theme;
    var innerProps = _objectWithoutProperties(props, _excluded$4);
  return objectSpread2_objectSpread2({}, innerProps);
};

// ==============================
// Get Style Props
// ==============================

var getStyleProps = function getStyleProps(props, name, classNamesState) {
  var cx = props.cx,
    getStyles = props.getStyles,
    getClassNames = props.getClassNames,
    className = props.className;
  return {
    css: getStyles(name, props),
    className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)
  };
};

// ==============================
// Handle Input Change
// ==============================

function handleInputChange(inputValue, actionMeta, onInputChange) {
  if (onInputChange) {
    var _newValue = onInputChange(inputValue, actionMeta);
    if (typeof _newValue === 'string') return _newValue;
  }
  return inputValue;
}

// ==============================
// Scroll Helpers
// ==============================

function isDocumentElement(el) {
  return [document.documentElement, document.body, window].indexOf(el) > -1;
}

// Normalized Scroll Top
// ------------------------------

function normalizedHeight(el) {
  if (isDocumentElement(el)) {
    return window.innerHeight;
  }
  return el.clientHeight;
}

// Normalized scrollTo & scrollTop
// ------------------------------

function getScrollTop(el) {
  if (isDocumentElement(el)) {
    return window.pageYOffset;
  }
  return el.scrollTop;
}
function scrollTo(el, top) {
  // with a scroll distance, we perform scroll on the element
  if (isDocumentElement(el)) {
    window.scrollTo(0, top);
    return;
  }
  el.scrollTop = top;
}

// Get Scroll Parent
// ------------------------------

function getScrollParent(element) {
  var style = getComputedStyle(element);
  var excludeStaticParent = style.position === 'absolute';
  var overflowRx = /(auto|scroll)/;
  if (style.position === 'fixed') return document.documentElement;
  for (var parent = element; parent = parent.parentElement;) {
    style = getComputedStyle(parent);
    if (excludeStaticParent && style.position === 'static') {
      continue;
    }
    if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {
      return parent;
    }
  }
  return document.documentElement;
}

// Animated Scroll To
// ------------------------------

/**
  @param t: time (elapsed)
  @param b: initial value
  @param c: amount of change
  @param d: duration
*/
function easeOutCubic(t, b, c, d) {
  return c * ((t = t / d - 1) * t * t + 1) + b;
}
function animatedScrollTo(element, to) {
  var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
  var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;
  var start = getScrollTop(element);
  var change = to - start;
  var increment = 10;
  var currentTime = 0;
  function animateScroll() {
    currentTime += increment;
    var val = easeOutCubic(currentTime, start, change, duration);
    scrollTo(element, val);
    if (currentTime < duration) {
      window.requestAnimationFrame(animateScroll);
    } else {
      callback(element);
    }
  }
  animateScroll();
}

// Scroll Into View
// ------------------------------

function scrollIntoView(menuEl, focusedEl) {
  var menuRect = menuEl.getBoundingClientRect();
  var focusedRect = focusedEl.getBoundingClientRect();
  var overScroll = focusedEl.offsetHeight / 3;
  if (focusedRect.bottom + overScroll > menuRect.bottom) {
    scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));
  } else if (focusedRect.top - overScroll < menuRect.top) {
    scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));
  }
}

// ==============================
// Get bounding client object
// ==============================

// cannot get keys using array notation with DOMRect
function getBoundingClientObj(element) {
  var rect = element.getBoundingClientRect();
  return {
    bottom: rect.bottom,
    height: rect.height,
    left: rect.left,
    right: rect.right,
    top: rect.top,
    width: rect.width
  };
}

// ==============================
// Touch Capability Detector
// ==============================

function isTouchCapable() {
  try {
    document.createEvent('TouchEvent');
    return true;
  } catch (e) {
    return false;
  }
}

// ==============================
// Mobile Device Detector
// ==============================

function isMobileDevice() {
  try {
    return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
  } catch (e) {
    return false;
  }
}

// ==============================
// Passive Event Detector
// ==============================

// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36
var passiveOptionAccessed = false;
var options = {
  get passive() {
    return passiveOptionAccessed = true;
  }
};
// check for SSR
var w = typeof window !== 'undefined' ? window : {};
if (w.addEventListener && w.removeEventListener) {
  w.addEventListener('p', noop, options);
  w.removeEventListener('p', noop, false);
}
var supportsPassiveEvents = passiveOptionAccessed;
function notNullish(item) {
  return item != null;
}
function isArray(arg) {
  return Array.isArray(arg);
}
function valueTernary(isMulti, multiValue, singleValue) {
  return isMulti ? multiValue : singleValue;
}
function singleValueAsValue(singleValue) {
  return singleValue;
}
function multiValueAsValue(multiValue) {
  return multiValue;
}
var removeProps = function removeProps(propsObj) {
  for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
    properties[_key2 - 1] = arguments[_key2];
  }
  var propsMap = Object.entries(propsObj).filter(function (_ref) {
    var _ref2 = _slicedToArray(_ref, 1),
      key = _ref2[0];
    return !properties.includes(key);
  });
  return propsMap.reduce(function (newProps, _ref3) {
    var _ref4 = _slicedToArray(_ref3, 2),
      key = _ref4[0],
      val = _ref4[1];
    newProps[key] = val;
    return newProps;
  }, {});
};

var _excluded$3 = ["children", "innerProps"],
  _excluded2$1 = ["children", "innerProps"];
function getMenuPlacement(_ref) {
  var preferredMaxHeight = _ref.maxHeight,
    menuEl = _ref.menuEl,
    minHeight = _ref.minHeight,
    preferredPlacement = _ref.placement,
    shouldScroll = _ref.shouldScroll,
    isFixedPosition = _ref.isFixedPosition,
    controlHeight = _ref.controlHeight;
  var scrollParent = getScrollParent(menuEl);
  var defaultState = {
    placement: 'bottom',
    maxHeight: preferredMaxHeight
  };

  // something went wrong, return default state
  if (!menuEl || !menuEl.offsetParent) return defaultState;

  // we can't trust `scrollParent.scrollHeight` --> it may increase when
  // the menu is rendered
  var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
    scrollHeight = _scrollParent$getBoun.height;
  var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),
    menuBottom = _menuEl$getBoundingCl.bottom,
    menuHeight = _menuEl$getBoundingCl.height,
    menuTop = _menuEl$getBoundingCl.top;
  var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),
    containerTop = _menuEl$offsetParent$.top;
  var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);
  var scrollTop = getScrollTop(scrollParent);
  var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
  var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
  var viewSpaceAbove = containerTop - marginTop;
  var viewSpaceBelow = viewHeight - menuTop;
  var scrollSpaceAbove = viewSpaceAbove + scrollTop;
  var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;
  var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
  var scrollUp = scrollTop + menuTop - marginTop;
  var scrollDuration = 160;
  switch (preferredPlacement) {
    case 'auto':
    case 'bottom':
      // 1: the menu will fit, do nothing
      if (viewSpaceBelow >= menuHeight) {
        return {
          placement: 'bottom',
          maxHeight: preferredMaxHeight
        };
      }

      // 2: the menu will fit, if scrolled
      if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {
        if (shouldScroll) {
          animatedScrollTo(scrollParent, scrollDown, scrollDuration);
        }
        return {
          placement: 'bottom',
          maxHeight: preferredMaxHeight
        };
      }

      // 3: the menu will fit, if constrained
      if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {
        if (shouldScroll) {
          animatedScrollTo(scrollParent, scrollDown, scrollDuration);
        }

        // we want to provide as much of the menu as possible to the user,
        // so give them whatever is available below rather than the minHeight.
        var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;
        return {
          placement: 'bottom',
          maxHeight: constrainedHeight
        };
      }

      // 4. Forked beviour when there isn't enough space below

      // AUTO: flip the menu, render above
      if (preferredPlacement === 'auto' || isFixedPosition) {
        // may need to be constrained after flipping
        var _constrainedHeight = preferredMaxHeight;
        var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;
        if (spaceAbove >= minHeight) {
          _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);
        }
        return {
          placement: 'top',
          maxHeight: _constrainedHeight
        };
      }

      // BOTTOM: allow browser to increase scrollable area and immediately set scroll
      if (preferredPlacement === 'bottom') {
        if (shouldScroll) {
          scrollTo(scrollParent, scrollDown);
        }
        return {
          placement: 'bottom',
          maxHeight: preferredMaxHeight
        };
      }
      break;
    case 'top':
      // 1: the menu will fit, do nothing
      if (viewSpaceAbove >= menuHeight) {
        return {
          placement: 'top',
          maxHeight: preferredMaxHeight
        };
      }

      // 2: the menu will fit, if scrolled
      if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {
        if (shouldScroll) {
          animatedScrollTo(scrollParent, scrollUp, scrollDuration);
        }
        return {
          placement: 'top',
          maxHeight: preferredMaxHeight
        };
      }

      // 3: the menu will fit, if constrained
      if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
        var _constrainedHeight2 = preferredMaxHeight;

        // we want to provide as much of the menu as possible to the user,
        // so give them whatever is available below rather than the minHeight.
        if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
          _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;
        }
        if (shouldScroll) {
          animatedScrollTo(scrollParent, scrollUp, scrollDuration);
        }
        return {
          placement: 'top',
          maxHeight: _constrainedHeight2
        };
      }

      // 4. not enough space, the browser WILL NOT increase scrollable area when
      // absolutely positioned element rendered above the viewport (only below).
      // Flip the menu, render below
      return {
        placement: 'bottom',
        maxHeight: preferredMaxHeight
      };
    default:
      throw new Error("Invalid placement provided \"".concat(preferredPlacement, "\"."));
  }
  return defaultState;
}

// Menu Component
// ------------------------------

function alignToControl(placement) {
  var placementToCSSProp = {
    bottom: 'top',
    top: 'bottom'
  };
  return placement ? placementToCSSProp[placement] : 'bottom';
}
var coercePlacement = function coercePlacement(p) {
  return p === 'auto' ? 'bottom' : p;
};
var menuCSS = function menuCSS(_ref2, unstyled) {
  var _objectSpread2;
  var placement = _ref2.placement,
    _ref2$theme = _ref2.theme,
    borderRadius = _ref2$theme.borderRadius,
    spacing = _ref2$theme.spacing,
    colors = _ref2$theme.colors;
  return objectSpread2_objectSpread2((_objectSpread2 = {
    label: 'menu'
  }, defineProperty_defineProperty(_objectSpread2, alignToControl(placement), '100%'), defineProperty_defineProperty(_objectSpread2, "position", 'absolute'), defineProperty_defineProperty(_objectSpread2, "width", '100%'), defineProperty_defineProperty(_objectSpread2, "zIndex", 1), _objectSpread2), unstyled ? {} : {
    backgroundColor: colors.neutral0,
    borderRadius: borderRadius,
    boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',
    marginBottom: spacing.menuGutter,
    marginTop: spacing.menuGutter
  });
};
var PortalPlacementContext = /*#__PURE__*/(0,external_React_.createContext)(null);

// NOTE: internal only
var MenuPlacer = function MenuPlacer(props) {
  var children = props.children,
    minMenuHeight = props.minMenuHeight,
    maxMenuHeight = props.maxMenuHeight,
    menuPlacement = props.menuPlacement,
    menuPosition = props.menuPosition,
    menuShouldScrollIntoView = props.menuShouldScrollIntoView,
    theme = props.theme;
  var _ref3 = (0,external_React_.useContext)(PortalPlacementContext) || {},
    setPortalPlacement = _ref3.setPortalPlacement;
  var ref = (0,external_React_.useRef)(null);
  var _useState = (0,external_React_.useState)(maxMenuHeight),
    _useState2 = _slicedToArray(_useState, 2),
    maxHeight = _useState2[0],
    setMaxHeight = _useState2[1];
  var _useState3 = (0,external_React_.useState)(null),
    _useState4 = _slicedToArray(_useState3, 2),
    placement = _useState4[0],
    setPlacement = _useState4[1];
  var controlHeight = theme.spacing.controlHeight;
  index(function () {
    var menuEl = ref.current;
    if (!menuEl) return;

    // DO NOT scroll if position is fixed
    var isFixedPosition = menuPosition === 'fixed';
    var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;
    var state = getMenuPlacement({
      maxHeight: maxMenuHeight,
      menuEl: menuEl,
      minHeight: minMenuHeight,
      placement: menuPlacement,
      shouldScroll: shouldScroll,
      isFixedPosition: isFixedPosition,
      controlHeight: controlHeight
    });
    setMaxHeight(state.maxHeight);
    setPlacement(state.placement);
    setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);
  }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);
  return children({
    ref: ref,
    placerProps: objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, props), {}, {
      placement: placement || coercePlacement(menuPlacement),
      maxHeight: maxHeight
    })
  });
};
var Menu = function Menu(props) {
  var children = props.children,
    innerRef = props.innerRef,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'menu', {
    menu: true
  }), {
    ref: innerRef
  }, innerProps), children);
};
var Menu$1 = Menu;

// ==============================
// Menu List
// ==============================

var menuListCSS = function menuListCSS(_ref4, unstyled) {
  var maxHeight = _ref4.maxHeight,
    baseUnit = _ref4.theme.spacing.baseUnit;
  return objectSpread2_objectSpread2({
    maxHeight: maxHeight,
    overflowY: 'auto',
    position: 'relative',
    // required for offset[Height, Top] > keyboard scroll
    WebkitOverflowScrolling: 'touch'
  }, unstyled ? {} : {
    paddingBottom: baseUnit,
    paddingTop: baseUnit
  });
};
var MenuList = function MenuList(props) {
  var children = props.children,
    innerProps = props.innerProps,
    innerRef = props.innerRef,
    isMulti = props.isMulti;
  return jsx("div", extends_extends({}, getStyleProps(props, 'menuList', {
    'menu-list': true,
    'menu-list--is-multi': isMulti
  }), {
    ref: innerRef
  }, innerProps), children);
};

// ==============================
// Menu Notices
// ==============================

var noticeCSS = function noticeCSS(_ref5, unstyled) {
  var _ref5$theme = _ref5.theme,
    baseUnit = _ref5$theme.spacing.baseUnit,
    colors = _ref5$theme.colors;
  return objectSpread2_objectSpread2({
    textAlign: 'center'
  }, unstyled ? {} : {
    color: colors.neutral40,
    padding: "".concat(baseUnit * 2, "px ").concat(baseUnit * 3, "px")
  });
};
var noOptionsMessageCSS = noticeCSS;
var loadingMessageCSS = noticeCSS;
var NoOptionsMessage = function NoOptionsMessage(_ref6) {
  var _ref6$children = _ref6.children,
    children = _ref6$children === void 0 ? 'No options' : _ref6$children,
    innerProps = _ref6.innerProps,
    restProps = _objectWithoutProperties(_ref6, _excluded$3);
  return jsx("div", extends_extends({}, getStyleProps(objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, restProps), {}, {
    children: children,
    innerProps: innerProps
  }), 'noOptionsMessage', {
    'menu-notice': true,
    'menu-notice--no-options': true
  }), innerProps), children);
};
var LoadingMessage = function LoadingMessage(_ref7) {
  var _ref7$children = _ref7.children,
    children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,
    innerProps = _ref7.innerProps,
    restProps = _objectWithoutProperties(_ref7, _excluded2$1);
  return jsx("div", extends_extends({}, getStyleProps(objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, restProps), {}, {
    children: children,
    innerProps: innerProps
  }), 'loadingMessage', {
    'menu-notice': true,
    'menu-notice--loading': true
  }), innerProps), children);
};

// ==============================
// Menu Portal
// ==============================

var menuPortalCSS = function menuPortalCSS(_ref8) {
  var rect = _ref8.rect,
    offset = _ref8.offset,
    position = _ref8.position;
  return {
    left: rect.left,
    position: position,
    top: offset,
    width: rect.width,
    zIndex: 1
  };
};
var MenuPortal = function MenuPortal(props) {
  var appendTo = props.appendTo,
    children = props.children,
    controlElement = props.controlElement,
    innerProps = props.innerProps,
    menuPlacement = props.menuPlacement,
    menuPosition = props.menuPosition;
  var menuPortalRef = (0,external_React_.useRef)(null);
  var cleanupRef = (0,external_React_.useRef)(null);
  var _useState5 = (0,external_React_.useState)(coercePlacement(menuPlacement)),
    _useState6 = _slicedToArray(_useState5, 2),
    placement = _useState6[0],
    setPortalPlacement = _useState6[1];
  var portalPlacementContext = (0,external_React_.useMemo)(function () {
    return {
      setPortalPlacement: setPortalPlacement
    };
  }, []);
  var _useState7 = (0,external_React_.useState)(null),
    _useState8 = _slicedToArray(_useState7, 2),
    computedPosition = _useState8[0],
    setComputedPosition = _useState8[1];
  var updateComputedPosition = (0,external_React_.useCallback)(function () {
    if (!controlElement) return;
    var rect = getBoundingClientObj(controlElement);
    var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
    var offset = rect[placement] + scrollDistance;
    if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {
      setComputedPosition({
        offset: offset,
        rect: rect
      });
    }
  }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);
  index(function () {
    updateComputedPosition();
  }, [updateComputedPosition]);
  var runAutoUpdate = (0,external_React_.useCallback)(function () {
    if (typeof cleanupRef.current === 'function') {
      cleanupRef.current();
      cleanupRef.current = null;
    }
    if (controlElement && menuPortalRef.current) {
      cleanupRef.current = (0,floating_ui_dom/* autoUpdate */.ll)(controlElement, menuPortalRef.current, updateComputedPosition, {
        elementResize: 'ResizeObserver' in window
      });
    }
  }, [controlElement, updateComputedPosition]);
  index(function () {
    runAutoUpdate();
  }, [runAutoUpdate]);
  var setMenuPortalElement = (0,external_React_.useCallback)(function (menuPortalElement) {
    menuPortalRef.current = menuPortalElement;
    runAutoUpdate();
  }, [runAutoUpdate]);

  // bail early if required elements aren't present
  if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;

  // same wrapper element whether fixed or portalled
  var menuWrapper = jsx("div", extends_extends({
    ref: setMenuPortalElement
  }, getStyleProps(objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, props), {}, {
    offset: computedPosition.offset,
    position: menuPosition,
    rect: computedPosition.rect
  }), 'menuPortal', {
    'menu-portal': true
  }), innerProps), children);
  return jsx(PortalPlacementContext.Provider, {
    value: portalPlacementContext
  }, appendTo ? /*#__PURE__*/(0,external_ReactDOM_namespaceObject.createPortal)(menuWrapper, appendTo) : menuWrapper);
};

// ==============================
// Root Container
// ==============================

var containerCSS = function containerCSS(_ref) {
  var isDisabled = _ref.isDisabled,
    isRtl = _ref.isRtl;
  return {
    label: 'container',
    direction: isRtl ? 'rtl' : undefined,
    pointerEvents: isDisabled ? 'none' : undefined,
    // cancel mouse events when disabled
    position: 'relative'
  };
};
var SelectContainer = function SelectContainer(props) {
  var children = props.children,
    innerProps = props.innerProps,
    isDisabled = props.isDisabled,
    isRtl = props.isRtl;
  return jsx("div", extends_extends({}, getStyleProps(props, 'container', {
    '--is-disabled': isDisabled,
    '--is-rtl': isRtl
  }), innerProps), children);
};

// ==============================
// Value Container
// ==============================

var valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {
  var spacing = _ref2.theme.spacing,
    isMulti = _ref2.isMulti,
    hasValue = _ref2.hasValue,
    controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;
  return objectSpread2_objectSpread2({
    alignItems: 'center',
    display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',
    flex: 1,
    flexWrap: 'wrap',
    WebkitOverflowScrolling: 'touch',
    position: 'relative',
    overflow: 'hidden'
  }, unstyled ? {} : {
    padding: "".concat(spacing.baseUnit / 2, "px ").concat(spacing.baseUnit * 2, "px")
  });
};
var ValueContainer = function ValueContainer(props) {
  var children = props.children,
    innerProps = props.innerProps,
    isMulti = props.isMulti,
    hasValue = props.hasValue;
  return jsx("div", extends_extends({}, getStyleProps(props, 'valueContainer', {
    'value-container': true,
    'value-container--is-multi': isMulti,
    'value-container--has-value': hasValue
  }), innerProps), children);
};

// ==============================
// Indicator Container
// ==============================

var indicatorsContainerCSS = function indicatorsContainerCSS() {
  return {
    alignItems: 'center',
    alignSelf: 'stretch',
    display: 'flex',
    flexShrink: 0
  };
};
var IndicatorsContainer = function IndicatorsContainer(props) {
  var children = props.children,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'indicatorsContainer', {
    indicators: true
  }), innerProps), children);
};

var _templateObject;
var _excluded$2 = ["size"],
  _excluded2 = ["innerProps", "isRtl", "size"];
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }

// ==============================
// Dropdown & Clear Icons
// ==============================
var _ref2 =  true ? {
  name: "8mmkcg",
  styles: "display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"
} : 0;
var Svg = function Svg(_ref) {
  var size = _ref.size,
    props = _objectWithoutProperties(_ref, _excluded$2);
  return jsx("svg", extends_extends({
    height: size,
    width: size,
    viewBox: "0 0 20 20",
    "aria-hidden": "true",
    focusable: "false",
    css: _ref2
  }, props));
};
var CrossIcon = function CrossIcon(props) {
  return jsx(Svg, extends_extends({
    size: 20
  }, props), jsx("path", {
    d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"
  }));
};
var DownChevron = function DownChevron(props) {
  return jsx(Svg, extends_extends({
    size: 20
  }, props), jsx("path", {
    d: "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
  }));
};

// ==============================
// Dropdown & Clear Buttons
// ==============================

var baseCSS = function baseCSS(_ref3, unstyled) {
  var isFocused = _ref3.isFocused,
    _ref3$theme = _ref3.theme,
    baseUnit = _ref3$theme.spacing.baseUnit,
    colors = _ref3$theme.colors;
  return objectSpread2_objectSpread2({
    label: 'indicatorContainer',
    display: 'flex',
    transition: 'color 150ms'
  }, unstyled ? {} : {
    color: isFocused ? colors.neutral60 : colors.neutral20,
    padding: baseUnit * 2,
    ':hover': {
      color: isFocused ? colors.neutral80 : colors.neutral40
    }
  });
};
var dropdownIndicatorCSS = baseCSS;
var DropdownIndicator = function DropdownIndicator(props) {
  var children = props.children,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'dropdownIndicator', {
    indicator: true,
    'dropdown-indicator': true
  }), innerProps), children || jsx(DownChevron, null));
};
var clearIndicatorCSS = baseCSS;
var ClearIndicator = function ClearIndicator(props) {
  var children = props.children,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'clearIndicator', {
    indicator: true,
    'clear-indicator': true
  }), innerProps), children || jsx(CrossIcon, null));
};

// ==============================
// Separator
// ==============================

var indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {
  var isDisabled = _ref4.isDisabled,
    _ref4$theme = _ref4.theme,
    baseUnit = _ref4$theme.spacing.baseUnit,
    colors = _ref4$theme.colors;
  return objectSpread2_objectSpread2({
    label: 'indicatorSeparator',
    alignSelf: 'stretch',
    width: 1
  }, unstyled ? {} : {
    backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,
    marginBottom: baseUnit * 2,
    marginTop: baseUnit * 2
  });
};
var IndicatorSeparator = function IndicatorSeparator(props) {
  var innerProps = props.innerProps;
  return jsx("span", extends_extends({}, innerProps, getStyleProps(props, 'indicatorSeparator', {
    'indicator-separator': true
  })));
};

// ==============================
// Loading
// ==============================

var loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n  0%, 80%, 100% { opacity: 0; }\n  40% { opacity: 1; }\n"])));
var loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {
  var isFocused = _ref5.isFocused,
    size = _ref5.size,
    _ref5$theme = _ref5.theme,
    colors = _ref5$theme.colors,
    baseUnit = _ref5$theme.spacing.baseUnit;
  return objectSpread2_objectSpread2({
    label: 'loadingIndicator',
    display: 'flex',
    transition: 'color 150ms',
    alignSelf: 'center',
    fontSize: size,
    lineHeight: 1,
    marginRight: size,
    textAlign: 'center',
    verticalAlign: 'middle'
  }, unstyled ? {} : {
    color: isFocused ? colors.neutral60 : colors.neutral20,
    padding: baseUnit * 2
  });
};
var LoadingDot = function LoadingDot(_ref6) {
  var delay = _ref6.delay,
    offset = _ref6.offset;
  return jsx("span", {
    css: /*#__PURE__*/css({
      animation: "".concat(loadingDotAnimations, " 1s ease-in-out ").concat(delay, "ms infinite;"),
      backgroundColor: 'currentColor',
      borderRadius: '1em',
      display: 'inline-block',
      marginLeft: offset ? '1em' : undefined,
      height: '1em',
      verticalAlign: 'top',
      width: '1em'
    },  true ? "" : 0,  true ? "" : 0)
  });
};
var LoadingIndicator = function LoadingIndicator(_ref7) {
  var innerProps = _ref7.innerProps,
    isRtl = _ref7.isRtl,
    _ref7$size = _ref7.size,
    size = _ref7$size === void 0 ? 4 : _ref7$size,
    restProps = _objectWithoutProperties(_ref7, _excluded2);
  return jsx("div", extends_extends({}, getStyleProps(objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, restProps), {}, {
    innerProps: innerProps,
    isRtl: isRtl,
    size: size
  }), 'loadingIndicator', {
    indicator: true,
    'loading-indicator': true
  }), innerProps), jsx(LoadingDot, {
    delay: 0,
    offset: isRtl
  }), jsx(LoadingDot, {
    delay: 160,
    offset: true
  }), jsx(LoadingDot, {
    delay: 320,
    offset: !isRtl
  }));
};

var css$1 = function css(_ref, unstyled) {
  var isDisabled = _ref.isDisabled,
    isFocused = _ref.isFocused,
    _ref$theme = _ref.theme,
    colors = _ref$theme.colors,
    borderRadius = _ref$theme.borderRadius,
    spacing = _ref$theme.spacing;
  return objectSpread2_objectSpread2({
    label: 'control',
    alignItems: 'center',
    cursor: 'default',
    display: 'flex',
    flexWrap: 'wrap',
    justifyContent: 'space-between',
    minHeight: spacing.controlHeight,
    outline: '0 !important',
    position: 'relative',
    transition: 'all 100ms'
  }, unstyled ? {} : {
    backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,
    borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,
    borderRadius: borderRadius,
    borderStyle: 'solid',
    borderWidth: 1,
    boxShadow: isFocused ? "0 0 0 1px ".concat(colors.primary) : undefined,
    '&:hover': {
      borderColor: isFocused ? colors.primary : colors.neutral30
    }
  });
};
var Control = function Control(props) {
  var children = props.children,
    isDisabled = props.isDisabled,
    isFocused = props.isFocused,
    innerRef = props.innerRef,
    innerProps = props.innerProps,
    menuIsOpen = props.menuIsOpen;
  return jsx("div", extends_extends({
    ref: innerRef
  }, getStyleProps(props, 'control', {
    control: true,
    'control--is-disabled': isDisabled,
    'control--is-focused': isFocused,
    'control--menu-is-open': menuIsOpen
  }), innerProps, {
    "aria-disabled": isDisabled || undefined
  }), children);
};
var Control$1 = Control;

var _excluded$1 = ["data"];
var groupCSS = function groupCSS(_ref, unstyled) {
  var spacing = _ref.theme.spacing;
  return unstyled ? {} : {
    paddingBottom: spacing.baseUnit * 2,
    paddingTop: spacing.baseUnit * 2
  };
};
var Group = function Group(props) {
  var children = props.children,
    cx = props.cx,
    getStyles = props.getStyles,
    getClassNames = props.getClassNames,
    Heading = props.Heading,
    headingProps = props.headingProps,
    innerProps = props.innerProps,
    label = props.label,
    theme = props.theme,
    selectProps = props.selectProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'group', {
    group: true
  }), innerProps), jsx(Heading, extends_extends({}, headingProps, {
    selectProps: selectProps,
    theme: theme,
    getStyles: getStyles,
    getClassNames: getClassNames,
    cx: cx
  }), label), jsx("div", null, children));
};
var groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {
  var _ref2$theme = _ref2.theme,
    colors = _ref2$theme.colors,
    spacing = _ref2$theme.spacing;
  return objectSpread2_objectSpread2({
    label: 'group',
    cursor: 'default',
    display: 'block'
  }, unstyled ? {} : {
    color: colors.neutral40,
    fontSize: '75%',
    fontWeight: 500,
    marginBottom: '0.25em',
    paddingLeft: spacing.baseUnit * 3,
    paddingRight: spacing.baseUnit * 3,
    textTransform: 'uppercase'
  });
};
var GroupHeading = function GroupHeading(props) {
  var _cleanCommonProps = cleanCommonProps(props);
    _cleanCommonProps.data;
    var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);
  return jsx("div", extends_extends({}, getStyleProps(props, 'groupHeading', {
    'group-heading': true
  }), innerProps));
};
var Group$1 = Group;

var index_641ee5b8_esm_excluded = ["innerRef", "isDisabled", "isHidden", "inputClassName"];
var inputCSS = function inputCSS(_ref, unstyled) {
  var isDisabled = _ref.isDisabled,
    value = _ref.value,
    _ref$theme = _ref.theme,
    spacing = _ref$theme.spacing,
    colors = _ref$theme.colors;
  return objectSpread2_objectSpread2(objectSpread2_objectSpread2({
    visibility: isDisabled ? 'hidden' : 'visible',
    // force css to recompute when value change due to @emotion bug.
    // We can remove it whenever the bug is fixed.
    transform: value ? 'translateZ(0)' : ''
  }, containerStyle), unstyled ? {} : {
    margin: spacing.baseUnit / 2,
    paddingBottom: spacing.baseUnit / 2,
    paddingTop: spacing.baseUnit / 2,
    color: colors.neutral80
  });
};
var spacingStyle = {
  gridArea: '1 / 2',
  font: 'inherit',
  minWidth: '2px',
  border: 0,
  margin: 0,
  outline: 0,
  padding: 0
};
var containerStyle = {
  flex: '1 1 auto',
  display: 'inline-grid',
  gridArea: '1 / 1 / 2 / 3',
  gridTemplateColumns: '0 min-content',
  '&:after': objectSpread2_objectSpread2({
    content: 'attr(data-value) " "',
    visibility: 'hidden',
    whiteSpace: 'pre'
  }, spacingStyle)
};
var inputStyle = function inputStyle(isHidden) {
  return objectSpread2_objectSpread2({
    label: 'input',
    color: 'inherit',
    background: 0,
    opacity: isHidden ? 0 : 1,
    width: '100%'
  }, spacingStyle);
};
var Input = function Input(props) {
  var cx = props.cx,
    value = props.value;
  var _cleanCommonProps = cleanCommonProps(props),
    innerRef = _cleanCommonProps.innerRef,
    isDisabled = _cleanCommonProps.isDisabled,
    isHidden = _cleanCommonProps.isHidden,
    inputClassName = _cleanCommonProps.inputClassName,
    innerProps = _objectWithoutProperties(_cleanCommonProps, index_641ee5b8_esm_excluded);
  return jsx("div", extends_extends({}, getStyleProps(props, 'input', {
    'input-container': true
  }), {
    "data-value": value || ''
  }), jsx("input", extends_extends({
    className: cx({
      input: true
    }, inputClassName),
    ref: innerRef,
    style: inputStyle(isHidden),
    disabled: isDisabled
  }, innerProps)));
};
var Input$1 = Input;

var multiValueCSS = function multiValueCSS(_ref, unstyled) {
  var _ref$theme = _ref.theme,
    spacing = _ref$theme.spacing,
    borderRadius = _ref$theme.borderRadius,
    colors = _ref$theme.colors;
  return objectSpread2_objectSpread2({
    label: 'multiValue',
    display: 'flex',
    minWidth: 0
  }, unstyled ? {} : {
    backgroundColor: colors.neutral10,
    borderRadius: borderRadius / 2,
    margin: spacing.baseUnit / 2
  });
};
var multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {
  var _ref2$theme = _ref2.theme,
    borderRadius = _ref2$theme.borderRadius,
    colors = _ref2$theme.colors,
    cropWithEllipsis = _ref2.cropWithEllipsis;
  return objectSpread2_objectSpread2({
    overflow: 'hidden',
    textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,
    whiteSpace: 'nowrap'
  }, unstyled ? {} : {
    borderRadius: borderRadius / 2,
    color: colors.neutral80,
    fontSize: '85%',
    padding: 3,
    paddingLeft: 6
  });
};
var multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {
  var _ref3$theme = _ref3.theme,
    spacing = _ref3$theme.spacing,
    borderRadius = _ref3$theme.borderRadius,
    colors = _ref3$theme.colors,
    isFocused = _ref3.isFocused;
  return objectSpread2_objectSpread2({
    alignItems: 'center',
    display: 'flex'
  }, unstyled ? {} : {
    borderRadius: borderRadius / 2,
    backgroundColor: isFocused ? colors.dangerLight : undefined,
    paddingLeft: spacing.baseUnit,
    paddingRight: spacing.baseUnit,
    ':hover': {
      backgroundColor: colors.dangerLight,
      color: colors.danger
    }
  });
};
var MultiValueGeneric = function MultiValueGeneric(_ref4) {
  var children = _ref4.children,
    innerProps = _ref4.innerProps;
  return jsx("div", innerProps, children);
};
var MultiValueContainer = MultiValueGeneric;
var MultiValueLabel = MultiValueGeneric;
function MultiValueRemove(_ref5) {
  var children = _ref5.children,
    innerProps = _ref5.innerProps;
  return jsx("div", extends_extends({
    role: "button"
  }, innerProps), children || jsx(CrossIcon, {
    size: 14
  }));
}
var MultiValue = function MultiValue(props) {
  var children = props.children,
    components = props.components,
    data = props.data,
    innerProps = props.innerProps,
    isDisabled = props.isDisabled,
    removeProps = props.removeProps,
    selectProps = props.selectProps;
  var Container = components.Container,
    Label = components.Label,
    Remove = components.Remove;
  return jsx(Container, {
    data: data,
    innerProps: objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, getStyleProps(props, 'multiValue', {
      'multi-value': true,
      'multi-value--is-disabled': isDisabled
    })), innerProps),
    selectProps: selectProps
  }, jsx(Label, {
    data: data,
    innerProps: objectSpread2_objectSpread2({}, getStyleProps(props, 'multiValueLabel', {
      'multi-value__label': true
    })),
    selectProps: selectProps
  }, children), jsx(Remove, {
    data: data,
    innerProps: objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, getStyleProps(props, 'multiValueRemove', {
      'multi-value__remove': true
    })), {}, {
      'aria-label': "Remove ".concat(children || 'option')
    }, removeProps),
    selectProps: selectProps
  }));
};
var MultiValue$1 = MultiValue;

var optionCSS = function optionCSS(_ref, unstyled) {
  var isDisabled = _ref.isDisabled,
    isFocused = _ref.isFocused,
    isSelected = _ref.isSelected,
    _ref$theme = _ref.theme,
    spacing = _ref$theme.spacing,
    colors = _ref$theme.colors;
  return objectSpread2_objectSpread2({
    label: 'option',
    cursor: 'default',
    display: 'block',
    fontSize: 'inherit',
    width: '100%',
    userSelect: 'none',
    WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'
  }, unstyled ? {} : {
    backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',
    color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',
    padding: "".concat(spacing.baseUnit * 2, "px ").concat(spacing.baseUnit * 3, "px"),
    // provide some affordance on touch devices
    ':active': {
      backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined
    }
  });
};
var Option = function Option(props) {
  var children = props.children,
    isDisabled = props.isDisabled,
    isFocused = props.isFocused,
    isSelected = props.isSelected,
    innerRef = props.innerRef,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'option', {
    option: true,
    'option--is-disabled': isDisabled,
    'option--is-focused': isFocused,
    'option--is-selected': isSelected
  }), {
    ref: innerRef,
    "aria-disabled": isDisabled
  }, innerProps), children);
};
var Option$1 = Option;

var placeholderCSS = function placeholderCSS(_ref, unstyled) {
  var _ref$theme = _ref.theme,
    spacing = _ref$theme.spacing,
    colors = _ref$theme.colors;
  return objectSpread2_objectSpread2({
    label: 'placeholder',
    gridArea: '1 / 1 / 2 / 3'
  }, unstyled ? {} : {
    color: colors.neutral50,
    marginLeft: spacing.baseUnit / 2,
    marginRight: spacing.baseUnit / 2
  });
};
var Placeholder = function Placeholder(props) {
  var children = props.children,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'placeholder', {
    placeholder: true
  }), innerProps), children);
};
var Placeholder$1 = Placeholder;

var index_641ee5b8_esm_css = function css(_ref, unstyled) {
  var isDisabled = _ref.isDisabled,
    _ref$theme = _ref.theme,
    spacing = _ref$theme.spacing,
    colors = _ref$theme.colors;
  return objectSpread2_objectSpread2({
    label: 'singleValue',
    gridArea: '1 / 1 / 2 / 3',
    maxWidth: '100%',
    overflow: 'hidden',
    textOverflow: 'ellipsis',
    whiteSpace: 'nowrap'
  }, unstyled ? {} : {
    color: isDisabled ? colors.neutral40 : colors.neutral80,
    marginLeft: spacing.baseUnit / 2,
    marginRight: spacing.baseUnit / 2
  });
};
var SingleValue = function SingleValue(props) {
  var children = props.children,
    isDisabled = props.isDisabled,
    innerProps = props.innerProps;
  return jsx("div", extends_extends({}, getStyleProps(props, 'singleValue', {
    'single-value': true,
    'single-value--is-disabled': isDisabled
  }), innerProps), children);
};
var SingleValue$1 = SingleValue;

var components = {
  ClearIndicator: ClearIndicator,
  Control: Control$1,
  DropdownIndicator: DropdownIndicator,
  DownChevron: DownChevron,
  CrossIcon: CrossIcon,
  Group: Group$1,
  GroupHeading: GroupHeading,
  IndicatorsContainer: IndicatorsContainer,
  IndicatorSeparator: IndicatorSeparator,
  Input: Input$1,
  LoadingIndicator: LoadingIndicator,
  Menu: Menu$1,
  MenuList: MenuList,
  MenuPortal: MenuPortal,
  LoadingMessage: LoadingMessage,
  NoOptionsMessage: NoOptionsMessage,
  MultiValue: MultiValue$1,
  MultiValueContainer: MultiValueContainer,
  MultiValueLabel: MultiValueLabel,
  MultiValueRemove: MultiValueRemove,
  Option: Option$1,
  Placeholder: Placeholder$1,
  SelectContainer: SelectContainer,
  SingleValue: SingleValue$1,
  ValueContainer: ValueContainer
};
var defaultComponents = function defaultComponents(props) {
  return objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, components), props.components);
};



;// ./node_modules/react-select/node_modules/memoize-one/dist/memoize-one.esm.js
var safeIsNaN = Number.isNaN ||
    function ponyfill(value) {
        return typeof value === 'number' && value !== value;
    };
function isEqual(first, second) {
    if (first === second) {
        return true;
    }
    if (safeIsNaN(first) && safeIsNaN(second)) {
        return true;
    }
    return false;
}
function areInputsEqual(newInputs, lastInputs) {
    if (newInputs.length !== lastInputs.length) {
        return false;
    }
    for (var i = 0; i < newInputs.length; i++) {
        if (!isEqual(newInputs[i], lastInputs[i])) {
            return false;
        }
    }
    return true;
}

function memoizeOne(resultFn, isEqual) {
    if (isEqual === void 0) { isEqual = areInputsEqual; }
    var cache = null;
    function memoized() {
        var newArgs = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            newArgs[_i] = arguments[_i];
        }
        if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {
            return cache.lastResult;
        }
        var lastResult = resultFn.apply(this, newArgs);
        cache = {
            lastResult: lastResult,
            lastArgs: newArgs,
            lastThis: this,
        };
        return lastResult;
    }
    memoized.clear = function clear() {
        cache = null;
    };
    return memoized;
}



;// ./node_modules/react-select/dist/Select-aab027f3.esm.js














function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }

// Assistive text to describe visual elements. Hidden for sighted users.
var _ref =  true ? {
  name: "7pg0cj-a11yText",
  styles: "label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"
} : 0;
var A11yText = function A11yText(props) {
  return jsx("span", extends_extends({
    css: _ref
  }, props));
};
var A11yText$1 = A11yText;

var defaultAriaLiveMessages = {
  guidance: function guidance(props) {
    var isSearchable = props.isSearchable,
      isMulti = props.isMulti,
      tabSelectsValue = props.tabSelectsValue,
      context = props.context,
      isInitialFocus = props.isInitialFocus;
    switch (context) {
      case 'menu':
        return "Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu".concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', ".");
      case 'input':
        return isInitialFocus ? "".concat(props['aria-label'] || 'Select', " is focused ").concat(isSearchable ? ',type to refine list' : '', ", press Down to open the menu, ").concat(isMulti ? ' press left to focus selected values' : '') : '';
      case 'value':
        return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';
      default:
        return '';
    }
  },
  onChange: function onChange(props) {
    var action = props.action,
      _props$label = props.label,
      label = _props$label === void 0 ? '' : _props$label,
      labels = props.labels,
      isDisabled = props.isDisabled;
    switch (action) {
      case 'deselect-option':
      case 'pop-value':
      case 'remove-value':
        return "option ".concat(label, ", deselected.");
      case 'clear':
        return 'All selected options have been cleared.';
      case 'initial-input-focus':
        return "option".concat(labels.length > 1 ? 's' : '', " ").concat(labels.join(','), ", selected.");
      case 'select-option':
        return isDisabled ? "option ".concat(label, " is disabled. Select another option.") : "option ".concat(label, ", selected.");
      default:
        return '';
    }
  },
  onFocus: function onFocus(props) {
    var context = props.context,
      focused = props.focused,
      options = props.options,
      _props$label2 = props.label,
      label = _props$label2 === void 0 ? '' : _props$label2,
      selectValue = props.selectValue,
      isDisabled = props.isDisabled,
      isSelected = props.isSelected,
      isAppleDevice = props.isAppleDevice;
    var getArrayIndex = function getArrayIndex(arr, item) {
      return arr && arr.length ? "".concat(arr.indexOf(item) + 1, " of ").concat(arr.length) : '';
    };
    if (context === 'value' && selectValue) {
      return "value ".concat(label, " focused, ").concat(getArrayIndex(selectValue, focused), ".");
    }
    if (context === 'menu' && isAppleDevice) {
      var disabled = isDisabled ? ' disabled' : '';
      var status = "".concat(isSelected ? ' selected' : '').concat(disabled);
      return "".concat(label).concat(status, ", ").concat(getArrayIndex(options, focused), ".");
    }
    return '';
  },
  onFilter: function onFilter(props) {
    var inputValue = props.inputValue,
      resultsMessage = props.resultsMessage;
    return "".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', ".");
  }
};

var LiveRegion = function LiveRegion(props) {
  var ariaSelection = props.ariaSelection,
    focusedOption = props.focusedOption,
    focusedValue = props.focusedValue,
    focusableOptions = props.focusableOptions,
    isFocused = props.isFocused,
    selectValue = props.selectValue,
    selectProps = props.selectProps,
    id = props.id,
    isAppleDevice = props.isAppleDevice;
  var ariaLiveMessages = selectProps.ariaLiveMessages,
    getOptionLabel = selectProps.getOptionLabel,
    inputValue = selectProps.inputValue,
    isMulti = selectProps.isMulti,
    isOptionDisabled = selectProps.isOptionDisabled,
    isSearchable = selectProps.isSearchable,
    menuIsOpen = selectProps.menuIsOpen,
    options = selectProps.options,
    screenReaderStatus = selectProps.screenReaderStatus,
    tabSelectsValue = selectProps.tabSelectsValue,
    isLoading = selectProps.isLoading;
  var ariaLabel = selectProps['aria-label'];
  var ariaLive = selectProps['aria-live'];

  // Update aria live message configuration when prop changes
  var messages = (0,external_React_.useMemo)(function () {
    return objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, defaultAriaLiveMessages), ariaLiveMessages || {});
  }, [ariaLiveMessages]);

  // Update aria live selected option when prop changes
  var ariaSelected = (0,external_React_.useMemo)(function () {
    var message = '';
    if (ariaSelection && messages.onChange) {
      var option = ariaSelection.option,
        selectedOptions = ariaSelection.options,
        removedValue = ariaSelection.removedValue,
        removedValues = ariaSelection.removedValues,
        value = ariaSelection.value;
      // select-option when !isMulti does not return option so we assume selected option is value
      var asOption = function asOption(val) {
        return !Array.isArray(val) ? val : null;
      };

      // If there is just one item from the action then get its label
      var selected = removedValue || option || asOption(value);
      var label = selected ? getOptionLabel(selected) : '';

      // If there are multiple items from the action then return an array of labels
      var multiSelected = selectedOptions || removedValues || undefined;
      var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];
      var onChangeProps = objectSpread2_objectSpread2({
        // multiSelected items are usually items that have already been selected
        // or set by the user as a default value so we assume they are not disabled
        isDisabled: selected && isOptionDisabled(selected, selectValue),
        label: label,
        labels: labels
      }, ariaSelection);
      message = messages.onChange(onChangeProps);
    }
    return message;
  }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);
  var ariaFocused = (0,external_React_.useMemo)(function () {
    var focusMsg = '';
    var focused = focusedOption || focusedValue;
    var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));
    if (focused && messages.onFocus) {
      var onFocusProps = {
        focused: focused,
        label: getOptionLabel(focused),
        isDisabled: isOptionDisabled(focused, selectValue),
        isSelected: isSelected,
        options: focusableOptions,
        context: focused === focusedOption ? 'menu' : 'value',
        selectValue: selectValue,
        isAppleDevice: isAppleDevice
      };
      focusMsg = messages.onFocus(onFocusProps);
    }
    return focusMsg;
  }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isAppleDevice]);
  var ariaResults = (0,external_React_.useMemo)(function () {
    var resultsMsg = '';
    if (menuIsOpen && options.length && !isLoading && messages.onFilter) {
      var resultsMessage = screenReaderStatus({
        count: focusableOptions.length
      });
      resultsMsg = messages.onFilter({
        inputValue: inputValue,
        resultsMessage: resultsMessage
      });
    }
    return resultsMsg;
  }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);
  var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';
  var ariaGuidance = (0,external_React_.useMemo)(function () {
    var guidanceMsg = '';
    if (messages.guidance) {
      var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';
      guidanceMsg = messages.guidance({
        'aria-label': ariaLabel,
        context: context,
        isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),
        isMulti: isMulti,
        isSearchable: isSearchable,
        tabSelectsValue: tabSelectsValue,
        isInitialFocus: isInitialFocus
      });
    }
    return guidanceMsg;
  }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);
  var ScreenReaderText = jsx(external_React_.Fragment, null, jsx("span", {
    id: "aria-selection"
  }, ariaSelected), jsx("span", {
    id: "aria-focused"
  }, ariaFocused), jsx("span", {
    id: "aria-results"
  }, ariaResults), jsx("span", {
    id: "aria-guidance"
  }, ariaGuidance));
  return jsx(external_React_.Fragment, null, jsx(A11yText$1, {
    id: id
  }, isInitialFocus && ScreenReaderText), jsx(A11yText$1, {
    "aria-live": ariaLive,
    "aria-atomic": "false",
    "aria-relevant": "additions text",
    role: "log"
  }, isFocused && !isInitialFocus && ScreenReaderText));
};
var LiveRegion$1 = LiveRegion;

var diacritics = [{
  base: 'A',
  letters: "A\u24B6\uFF21\xC0\xC1\xC2\u1EA6\u1EA4\u1EAA\u1EA8\xC3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\xC4\u01DE\u1EA2\xC5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F"
}, {
  base: 'AA',
  letters: "\uA732"
}, {
  base: 'AE',
  letters: "\xC6\u01FC\u01E2"
}, {
  base: 'AO',
  letters: "\uA734"
}, {
  base: 'AU',
  letters: "\uA736"
}, {
  base: 'AV',
  letters: "\uA738\uA73A"
}, {
  base: 'AY',
  letters: "\uA73C"
}, {
  base: 'B',
  letters: "B\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181"
}, {
  base: 'C',
  letters: "C\u24B8\uFF23\u0106\u0108\u010A\u010C\xC7\u1E08\u0187\u023B\uA73E"
}, {
  base: 'D',
  letters: "D\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779"
}, {
  base: 'DZ',
  letters: "\u01F1\u01C4"
}, {
  base: 'Dz',
  letters: "\u01F2\u01C5"
}, {
  base: 'E',
  letters: "E\u24BA\uFF25\xC8\xC9\xCA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\xCB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E"
}, {
  base: 'F',
  letters: "F\u24BB\uFF26\u1E1E\u0191\uA77B"
}, {
  base: 'G',
  letters: "G\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E"
}, {
  base: 'H',
  letters: "H\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D"
}, {
  base: 'I',
  letters: "I\u24BE\uFF29\xCC\xCD\xCE\u0128\u012A\u012C\u0130\xCF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197"
}, {
  base: 'J',
  letters: "J\u24BF\uFF2A\u0134\u0248"
}, {
  base: 'K',
  letters: "K\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2"
}, {
  base: 'L',
  letters: "L\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780"
}, {
  base: 'LJ',
  letters: "\u01C7"
}, {
  base: 'Lj',
  letters: "\u01C8"
}, {
  base: 'M',
  letters: "M\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C"
}, {
  base: 'N',
  letters: "N\u24C3\uFF2E\u01F8\u0143\xD1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4"
}, {
  base: 'NJ',
  letters: "\u01CA"
}, {
  base: 'Nj',
  letters: "\u01CB"
}, {
  base: 'O',
  letters: "O\u24C4\uFF2F\xD2\xD3\xD4\u1ED2\u1ED0\u1ED6\u1ED4\xD5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\xD6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\xD8\u01FE\u0186\u019F\uA74A\uA74C"
}, {
  base: 'OI',
  letters: "\u01A2"
}, {
  base: 'OO',
  letters: "\uA74E"
}, {
  base: 'OU',
  letters: "\u0222"
}, {
  base: 'P',
  letters: "P\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754"
}, {
  base: 'Q',
  letters: "Q\u24C6\uFF31\uA756\uA758\u024A"
}, {
  base: 'R',
  letters: "R\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782"
}, {
  base: 'S',
  letters: "S\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784"
}, {
  base: 'T',
  letters: "T\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786"
}, {
  base: 'TZ',
  letters: "\uA728"
}, {
  base: 'U',
  letters: "U\u24CA\uFF35\xD9\xDA\xDB\u0168\u1E78\u016A\u1E7A\u016C\xDC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244"
}, {
  base: 'V',
  letters: "V\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245"
}, {
  base: 'VY',
  letters: "\uA760"
}, {
  base: 'W',
  letters: "W\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72"
}, {
  base: 'X',
  letters: "X\u24CD\uFF38\u1E8A\u1E8C"
}, {
  base: 'Y',
  letters: "Y\u24CE\uFF39\u1EF2\xDD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE"
}, {
  base: 'Z',
  letters: "Z\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762"
}, {
  base: 'a',
  letters: "a\u24D0\uFF41\u1E9A\xE0\xE1\xE2\u1EA7\u1EA5\u1EAB\u1EA9\xE3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\xE4\u01DF\u1EA3\xE5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250"
}, {
  base: 'aa',
  letters: "\uA733"
}, {
  base: 'ae',
  letters: "\xE6\u01FD\u01E3"
}, {
  base: 'ao',
  letters: "\uA735"
}, {
  base: 'au',
  letters: "\uA737"
}, {
  base: 'av',
  letters: "\uA739\uA73B"
}, {
  base: 'ay',
  letters: "\uA73D"
}, {
  base: 'b',
  letters: "b\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253"
}, {
  base: 'c',
  letters: "c\u24D2\uFF43\u0107\u0109\u010B\u010D\xE7\u1E09\u0188\u023C\uA73F\u2184"
}, {
  base: 'd',
  letters: "d\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A"
}, {
  base: 'dz',
  letters: "\u01F3\u01C6"
}, {
  base: 'e',
  letters: "e\u24D4\uFF45\xE8\xE9\xEA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\xEB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD"
}, {
  base: 'f',
  letters: "f\u24D5\uFF46\u1E1F\u0192\uA77C"
}, {
  base: 'g',
  letters: "g\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F"
}, {
  base: 'h',
  letters: "h\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265"
}, {
  base: 'hv',
  letters: "\u0195"
}, {
  base: 'i',
  letters: "i\u24D8\uFF49\xEC\xED\xEE\u0129\u012B\u012D\xEF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131"
}, {
  base: 'j',
  letters: "j\u24D9\uFF4A\u0135\u01F0\u0249"
}, {
  base: 'k',
  letters: "k\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3"
}, {
  base: 'l',
  letters: "l\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747"
}, {
  base: 'lj',
  letters: "\u01C9"
}, {
  base: 'm',
  letters: "m\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F"
}, {
  base: 'n',
  letters: "n\u24DD\uFF4E\u01F9\u0144\xF1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5"
}, {
  base: 'nj',
  letters: "\u01CC"
}, {
  base: 'o',
  letters: "o\u24DE\uFF4F\xF2\xF3\xF4\u1ED3\u1ED1\u1ED7\u1ED5\xF5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\xF6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\xF8\u01FF\u0254\uA74B\uA74D\u0275"
}, {
  base: 'oi',
  letters: "\u01A3"
}, {
  base: 'ou',
  letters: "\u0223"
}, {
  base: 'oo',
  letters: "\uA74F"
}, {
  base: 'p',
  letters: "p\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755"
}, {
  base: 'q',
  letters: "q\u24E0\uFF51\u024B\uA757\uA759"
}, {
  base: 'r',
  letters: "r\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783"
}, {
  base: 's',
  letters: "s\u24E2\uFF53\xDF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B"
}, {
  base: 't',
  letters: "t\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787"
}, {
  base: 'tz',
  letters: "\uA729"
}, {
  base: 'u',
  letters: "u\u24E4\uFF55\xF9\xFA\xFB\u0169\u1E79\u016B\u1E7B\u016D\xFC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289"
}, {
  base: 'v',
  letters: "v\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C"
}, {
  base: 'vy',
  letters: "\uA761"
}, {
  base: 'w',
  letters: "w\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73"
}, {
  base: 'x',
  letters: "x\u24E7\uFF58\u1E8B\u1E8D"
}, {
  base: 'y',
  letters: "y\u24E8\uFF59\u1EF3\xFD\u0177\u1EF9\u0233\u1E8F\xFF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF"
}, {
  base: 'z',
  letters: "z\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763"
}];
var anyDiacritic = new RegExp('[' + diacritics.map(function (d) {
  return d.letters;
}).join('') + ']', 'g');
var diacriticToBase = {};
for (var admin_i = 0; admin_i < diacritics.length; admin_i++) {
  var diacritic = diacritics[admin_i];
  for (var j = 0; j < diacritic.letters.length; j++) {
    diacriticToBase[diacritic.letters[j]] = diacritic.base;
  }
}
var stripDiacritics = function stripDiacritics(str) {
  return str.replace(anyDiacritic, function (match) {
    return diacriticToBase[match];
  });
};

var memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);
var trimString = function trimString(str) {
  return str.replace(/^\s+|\s+$/g, '');
};
var defaultStringify = function defaultStringify(option) {
  return "".concat(option.label, " ").concat(option.value);
};
var createFilter = function createFilter(config) {
  return function (option, rawInput) {
    // eslint-disable-next-line no-underscore-dangle
    if (option.data.__isNew__) return true;
    var _ignoreCase$ignoreAcc = objectSpread2_objectSpread2({
        ignoreCase: true,
        ignoreAccents: true,
        stringify: defaultStringify,
        trim: true,
        matchFrom: 'any'
      }, config),
      ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,
      ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,
      stringify = _ignoreCase$ignoreAcc.stringify,
      trim = _ignoreCase$ignoreAcc.trim,
      matchFrom = _ignoreCase$ignoreAcc.matchFrom;
    var input = trim ? trimString(rawInput) : rawInput;
    var candidate = trim ? trimString(stringify(option)) : stringify(option);
    if (ignoreCase) {
      input = input.toLowerCase();
      candidate = candidate.toLowerCase();
    }
    if (ignoreAccents) {
      input = memoizedStripDiacriticsForInput(input);
      candidate = stripDiacritics(candidate);
    }
    return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;
  };
};

var Select_aab027f3_esm_excluded = ["innerRef"];
function DummyInput(_ref) {
  var innerRef = _ref.innerRef,
    props = _objectWithoutProperties(_ref, Select_aab027f3_esm_excluded);
  // Remove animation props not meant for HTML elements
  var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');
  return jsx("input", extends_extends({
    ref: innerRef
  }, filteredProps, {
    css: /*#__PURE__*/css({
      label: 'dummyInput',
      // get rid of any default styles
      background: 0,
      border: 0,
      // important! this hides the flashing cursor
      caretColor: 'transparent',
      fontSize: 'inherit',
      gridArea: '1 / 1 / 2 / 3',
      outline: 0,
      padding: 0,
      // important! without `width` browsers won't allow focus
      width: 1,
      // remove cursor on desktop
      color: 'transparent',
      // remove cursor on mobile whilst maintaining "scroll into view" behaviour
      left: -100,
      opacity: 0,
      position: 'relative',
      transform: 'scale(.01)'
    },  true ? "" : 0,  true ? "" : 0)
  }));
}

var cancelScroll = function cancelScroll(event) {
  if (event.cancelable) event.preventDefault();
  event.stopPropagation();
};
function useScrollCapture(_ref) {
  var isEnabled = _ref.isEnabled,
    onBottomArrive = _ref.onBottomArrive,
    onBottomLeave = _ref.onBottomLeave,
    onTopArrive = _ref.onTopArrive,
    onTopLeave = _ref.onTopLeave;
  var isBottom = (0,external_React_.useRef)(false);
  var isTop = (0,external_React_.useRef)(false);
  var touchStart = (0,external_React_.useRef)(0);
  var scrollTarget = (0,external_React_.useRef)(null);
  var handleEventDelta = (0,external_React_.useCallback)(function (event, delta) {
    if (scrollTarget.current === null) return;
    var _scrollTarget$current = scrollTarget.current,
      scrollTop = _scrollTarget$current.scrollTop,
      scrollHeight = _scrollTarget$current.scrollHeight,
      clientHeight = _scrollTarget$current.clientHeight;
    var target = scrollTarget.current;
    var isDeltaPositive = delta > 0;
    var availableScroll = scrollHeight - clientHeight - scrollTop;
    var shouldCancelScroll = false;

    // reset bottom/top flags
    if (availableScroll > delta && isBottom.current) {
      if (onBottomLeave) onBottomLeave(event);
      isBottom.current = false;
    }
    if (isDeltaPositive && isTop.current) {
      if (onTopLeave) onTopLeave(event);
      isTop.current = false;
    }

    // bottom limit
    if (isDeltaPositive && delta > availableScroll) {
      if (onBottomArrive && !isBottom.current) {
        onBottomArrive(event);
      }
      target.scrollTop = scrollHeight;
      shouldCancelScroll = true;
      isBottom.current = true;

      // top limit
    } else if (!isDeltaPositive && -delta > scrollTop) {
      if (onTopArrive && !isTop.current) {
        onTopArrive(event);
      }
      target.scrollTop = 0;
      shouldCancelScroll = true;
      isTop.current = true;
    }

    // cancel scroll
    if (shouldCancelScroll) {
      cancelScroll(event);
    }
  }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);
  var onWheel = (0,external_React_.useCallback)(function (event) {
    handleEventDelta(event, event.deltaY);
  }, [handleEventDelta]);
  var onTouchStart = (0,external_React_.useCallback)(function (event) {
    // set touch start so we can calculate touchmove delta
    touchStart.current = event.changedTouches[0].clientY;
  }, []);
  var onTouchMove = (0,external_React_.useCallback)(function (event) {
    var deltaY = touchStart.current - event.changedTouches[0].clientY;
    handleEventDelta(event, deltaY);
  }, [handleEventDelta]);
  var startListening = (0,external_React_.useCallback)(function (el) {
    // bail early if no element is available to attach to
    if (!el) return;
    var notPassive = supportsPassiveEvents ? {
      passive: false
    } : false;
    el.addEventListener('wheel', onWheel, notPassive);
    el.addEventListener('touchstart', onTouchStart, notPassive);
    el.addEventListener('touchmove', onTouchMove, notPassive);
  }, [onTouchMove, onTouchStart, onWheel]);
  var stopListening = (0,external_React_.useCallback)(function (el) {
    // bail early if no element is available to detach from
    if (!el) return;
    el.removeEventListener('wheel', onWheel, false);
    el.removeEventListener('touchstart', onTouchStart, false);
    el.removeEventListener('touchmove', onTouchMove, false);
  }, [onTouchMove, onTouchStart, onWheel]);
  (0,external_React_.useEffect)(function () {
    if (!isEnabled) return;
    var element = scrollTarget.current;
    startListening(element);
    return function () {
      stopListening(element);
    };
  }, [isEnabled, startListening, stopListening]);
  return function (element) {
    scrollTarget.current = element;
  };
}

var STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];
var LOCK_STYLES = {
  boxSizing: 'border-box',
  // account for possible declaration `width: 100%;` on body
  overflow: 'hidden',
  position: 'relative',
  height: '100%'
};
function preventTouchMove(e) {
  if (e.cancelable) e.preventDefault();
}
function allowTouchMove(e) {
  e.stopPropagation();
}
function preventInertiaScroll() {
  var top = this.scrollTop;
  var totalScroll = this.scrollHeight;
  var currentScroll = top + this.offsetHeight;
  if (top === 0) {
    this.scrollTop = 1;
  } else if (currentScroll === totalScroll) {
    this.scrollTop = top - 1;
  }
}

// `ontouchstart` check works on most browsers
// `maxTouchPoints` works on IE10/11 and Surface
function isTouchDevice() {
  return 'ontouchstart' in window || navigator.maxTouchPoints;
}
var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
var activeScrollLocks = 0;
var listenerOptions = {
  capture: false,
  passive: false
};
function useScrollLock(_ref) {
  var isEnabled = _ref.isEnabled,
    _ref$accountForScroll = _ref.accountForScrollbars,
    accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;
  var originalStyles = (0,external_React_.useRef)({});
  var scrollTarget = (0,external_React_.useRef)(null);
  var addScrollLock = (0,external_React_.useCallback)(function (touchScrollTarget) {
    if (!canUseDOM) return;
    var target = document.body;
    var targetStyle = target && target.style;
    if (accountForScrollbars) {
      // store any styles already applied to the body
      STYLE_KEYS.forEach(function (key) {
        var val = targetStyle && targetStyle[key];
        originalStyles.current[key] = val;
      });
    }

    // apply the lock styles and padding if this is the first scroll lock
    if (accountForScrollbars && activeScrollLocks < 1) {
      var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;
      var clientWidth = document.body ? document.body.clientWidth : 0;
      var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;
      Object.keys(LOCK_STYLES).forEach(function (key) {
        var val = LOCK_STYLES[key];
        if (targetStyle) {
          targetStyle[key] = val;
        }
      });
      if (targetStyle) {
        targetStyle.paddingRight = "".concat(adjustedPadding, "px");
      }
    }

    // account for touch devices
    if (target && isTouchDevice()) {
      // Mobile Safari ignores { overflow: hidden } declaration on the body.
      target.addEventListener('touchmove', preventTouchMove, listenerOptions);

      // Allow scroll on provided target
      if (touchScrollTarget) {
        touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);
        touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);
      }
    }

    // increment active scroll locks
    activeScrollLocks += 1;
  }, [accountForScrollbars]);
  var removeScrollLock = (0,external_React_.useCallback)(function (touchScrollTarget) {
    if (!canUseDOM) return;
    var target = document.body;
    var targetStyle = target && target.style;

    // safely decrement active scroll locks
    activeScrollLocks = Math.max(activeScrollLocks - 1, 0);

    // reapply original body styles, if any
    if (accountForScrollbars && activeScrollLocks < 1) {
      STYLE_KEYS.forEach(function (key) {
        var val = originalStyles.current[key];
        if (targetStyle) {
          targetStyle[key] = val;
        }
      });
    }

    // remove touch listeners
    if (target && isTouchDevice()) {
      target.removeEventListener('touchmove', preventTouchMove, listenerOptions);
      if (touchScrollTarget) {
        touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);
        touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);
      }
    }
  }, [accountForScrollbars]);
  (0,external_React_.useEffect)(function () {
    if (!isEnabled) return;
    var element = scrollTarget.current;
    addScrollLock(element);
    return function () {
      removeScrollLock(element);
    };
  }, [isEnabled, addScrollLock, removeScrollLock]);
  return function (element) {
    scrollTarget.current = element;
  };
}

function _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
var blurSelectInput = function blurSelectInput(event) {
  var element = event.target;
  return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();
};
var _ref2$1 =  true ? {
  name: "1kfdb0e",
  styles: "position:fixed;left:0;bottom:0;right:0;top:0"
} : 0;
function ScrollManager(_ref) {
  var children = _ref.children,
    lockEnabled = _ref.lockEnabled,
    _ref$captureEnabled = _ref.captureEnabled,
    captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,
    onBottomArrive = _ref.onBottomArrive,
    onBottomLeave = _ref.onBottomLeave,
    onTopArrive = _ref.onTopArrive,
    onTopLeave = _ref.onTopLeave;
  var setScrollCaptureTarget = useScrollCapture({
    isEnabled: captureEnabled,
    onBottomArrive: onBottomArrive,
    onBottomLeave: onBottomLeave,
    onTopArrive: onTopArrive,
    onTopLeave: onTopLeave
  });
  var setScrollLockTarget = useScrollLock({
    isEnabled: lockEnabled
  });
  var targetRef = function targetRef(element) {
    setScrollCaptureTarget(element);
    setScrollLockTarget(element);
  };
  return jsx(external_React_.Fragment, null, lockEnabled && jsx("div", {
    onClick: blurSelectInput,
    css: _ref2$1
  }), children(targetRef));
}

function Select_aab027f3_esm_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
var Select_aab027f3_esm_ref2 =  true ? {
  name: "1a0ro4n-requiredInput",
  styles: "label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"
} : 0;
var RequiredInput = function RequiredInput(_ref) {
  var name = _ref.name,
    onFocus = _ref.onFocus;
  return jsx("input", {
    required: true,
    name: name,
    tabIndex: -1,
    "aria-hidden": "true",
    onFocus: onFocus,
    css: Select_aab027f3_esm_ref2
    // Prevent `Switching from uncontrolled to controlled` error
    ,
    value: "",
    onChange: function onChange() {}
  });
};
var RequiredInput$1 = RequiredInput;

/// <reference types="user-agent-data-types" />

function testPlatform(re) {
  var _window$navigator$use;
  return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window$navigator$use = window.navigator['userAgentData']) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.platform) || window.navigator.platform) : false;
}
function isIPhone() {
  return testPlatform(/^iPhone/i);
}
function isMac() {
  return testPlatform(/^Mac/i);
}
function isIPad() {
  return testPlatform(/^iPad/i) ||
  // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
  isMac() && navigator.maxTouchPoints > 1;
}
function isIOS() {
  return isIPhone() || isIPad();
}
function isAppleDevice() {
  return isMac() || isIOS();
}

var formatGroupLabel = function formatGroupLabel(group) {
  return group.label;
};
var Select_aab027f3_esm_getOptionLabel$1 = function getOptionLabel(option) {
  return option.label;
};
var Select_aab027f3_esm_getOptionValue$1 = function getOptionValue(option) {
  return option.value;
};
var isOptionDisabled = function isOptionDisabled(option) {
  return !!option.isDisabled;
};

var defaultStyles = {
  clearIndicator: clearIndicatorCSS,
  container: containerCSS,
  control: css$1,
  dropdownIndicator: dropdownIndicatorCSS,
  group: groupCSS,
  groupHeading: groupHeadingCSS,
  indicatorsContainer: indicatorsContainerCSS,
  indicatorSeparator: indicatorSeparatorCSS,
  input: inputCSS,
  loadingIndicator: loadingIndicatorCSS,
  loadingMessage: loadingMessageCSS,
  menu: menuCSS,
  menuList: menuListCSS,
  menuPortal: menuPortalCSS,
  multiValue: multiValueCSS,
  multiValueLabel: multiValueLabelCSS,
  multiValueRemove: multiValueRemoveCSS,
  noOptionsMessage: noOptionsMessageCSS,
  option: optionCSS,
  placeholder: placeholderCSS,
  singleValue: index_641ee5b8_esm_css,
  valueContainer: valueContainerCSS
};
// Merge Utility
// Allows consumers to extend a base Select with additional styles

function mergeStyles(source) {
  var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  // initialize with source styles
  var styles = _objectSpread({}, source);

  // massage in target styles
  Object.keys(target).forEach(function (keyAsString) {
    var key = keyAsString;
    if (source[key]) {
      styles[key] = function (rsCss, props) {
        return target[key](source[key](rsCss, props), props);
      };
    } else {
      styles[key] = target[key];
    }
  });
  return styles;
}

var colors = {
  primary: '#2684FF',
  primary75: '#4C9AFF',
  primary50: '#B2D4FF',
  primary25: '#DEEBFF',
  danger: '#DE350B',
  dangerLight: '#FFBDAD',
  neutral0: 'hsl(0, 0%, 100%)',
  neutral5: 'hsl(0, 0%, 95%)',
  neutral10: 'hsl(0, 0%, 90%)',
  neutral20: 'hsl(0, 0%, 80%)',
  neutral30: 'hsl(0, 0%, 70%)',
  neutral40: 'hsl(0, 0%, 60%)',
  neutral50: 'hsl(0, 0%, 50%)',
  neutral60: 'hsl(0, 0%, 40%)',
  neutral70: 'hsl(0, 0%, 30%)',
  neutral80: 'hsl(0, 0%, 20%)',
  neutral90: 'hsl(0, 0%, 10%)'
};
var borderRadius = 4;
// Used to calculate consistent margin/padding on elements
var baseUnit = 4;
// The minimum height of the control
var controlHeight = 38;
// The amount of space between the control and menu */
var menuGutter = baseUnit * 2;
var spacing = {
  baseUnit: baseUnit,
  controlHeight: controlHeight,
  menuGutter: menuGutter
};
var defaultTheme = {
  borderRadius: borderRadius,
  colors: colors,
  spacing: spacing
};

var defaultProps = {
  'aria-live': 'polite',
  backspaceRemovesValue: true,
  blurInputOnSelect: isTouchCapable(),
  captureMenuScroll: !isTouchCapable(),
  classNames: {},
  closeMenuOnSelect: true,
  closeMenuOnScroll: false,
  components: {},
  controlShouldRenderValue: true,
  escapeClearsValue: false,
  filterOption: createFilter(),
  formatGroupLabel: formatGroupLabel,
  getOptionLabel: Select_aab027f3_esm_getOptionLabel$1,
  getOptionValue: Select_aab027f3_esm_getOptionValue$1,
  isDisabled: false,
  isLoading: false,
  isMulti: false,
  isRtl: false,
  isSearchable: true,
  isOptionDisabled: isOptionDisabled,
  loadingMessage: function loadingMessage() {
    return 'Loading...';
  },
  maxMenuHeight: 300,
  minMenuHeight: 140,
  menuIsOpen: false,
  menuPlacement: 'bottom',
  menuPosition: 'absolute',
  menuShouldBlockScroll: false,
  menuShouldScrollIntoView: !isMobileDevice(),
  noOptionsMessage: function noOptionsMessage() {
    return 'No options';
  },
  openMenuOnFocus: false,
  openMenuOnClick: true,
  options: [],
  pageSize: 5,
  placeholder: 'Select...',
  screenReaderStatus: function screenReaderStatus(_ref) {
    var count = _ref.count;
    return "".concat(count, " result").concat(count !== 1 ? 's' : '', " available");
  },
  styles: {},
  tabIndex: 0,
  tabSelectsValue: true,
  unstyled: false
};
function toCategorizedOption(props, option, selectValue, index) {
  var isDisabled = _isOptionDisabled(props, option, selectValue);
  var isSelected = _isOptionSelected(props, option, selectValue);
  var label = getOptionLabel(props, option);
  var value = getOptionValue(props, option);
  return {
    type: 'option',
    data: option,
    isDisabled: isDisabled,
    isSelected: isSelected,
    label: label,
    value: value,
    index: index
  };
}
function buildCategorizedOptions(props, selectValue) {
  return props.options.map(function (groupOrOption, groupOrOptionIndex) {
    if ('options' in groupOrOption) {
      var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {
        return toCategorizedOption(props, option, selectValue, optionIndex);
      }).filter(function (categorizedOption) {
        return isFocusable(props, categorizedOption);
      });
      return categorizedOptions.length > 0 ? {
        type: 'group',
        data: groupOrOption,
        options: categorizedOptions,
        index: groupOrOptionIndex
      } : undefined;
    }
    var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);
    return isFocusable(props, categorizedOption) ? categorizedOption : undefined;
  }).filter(notNullish);
}
function buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {
  return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {
    if (categorizedOption.type === 'group') {
      optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {
        return option.data;
      })));
    } else {
      optionsAccumulator.push(categorizedOption.data);
    }
    return optionsAccumulator;
  }, []);
}
function buildFocusableOptionsWithIds(categorizedOptions, optionId) {
  return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {
    if (categorizedOption.type === 'group') {
      optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {
        return {
          data: option.data,
          id: "".concat(optionId, "-").concat(categorizedOption.index, "-").concat(option.index)
        };
      })));
    } else {
      optionsAccumulator.push({
        data: categorizedOption.data,
        id: "".concat(optionId, "-").concat(categorizedOption.index)
      });
    }
    return optionsAccumulator;
  }, []);
}
function buildFocusableOptions(props, selectValue) {
  return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));
}
function isFocusable(props, categorizedOption) {
  var _props$inputValue = props.inputValue,
    inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;
  var data = categorizedOption.data,
    isSelected = categorizedOption.isSelected,
    label = categorizedOption.label,
    value = categorizedOption.value;
  return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {
    label: label,
    value: value,
    data: data
  }, inputValue);
}
function getNextFocusedValue(state, nextSelectValue) {
  var focusedValue = state.focusedValue,
    lastSelectValue = state.selectValue;
  var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);
  if (lastFocusedIndex > -1) {
    var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);
    if (nextFocusedIndex > -1) {
      // the focused value is still in the selectValue, return it
      return focusedValue;
    } else if (lastFocusedIndex < nextSelectValue.length) {
      // the focusedValue is not present in the next selectValue array by
      // reference, so return the new value at the same index
      return nextSelectValue[lastFocusedIndex];
    }
  }
  return null;
}
function getNextFocusedOption(state, options) {
  var lastFocusedOption = state.focusedOption;
  return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];
}
var getFocusedOptionId = function getFocusedOptionId(focusableOptionsWithIds, focusedOption) {
  var _focusableOptionsWith;
  var focusedOptionId = (_focusableOptionsWith = focusableOptionsWithIds.find(function (option) {
    return option.data === focusedOption;
  })) === null || _focusableOptionsWith === void 0 ? void 0 : _focusableOptionsWith.id;
  return focusedOptionId || null;
};
var getOptionLabel = function getOptionLabel(props, data) {
  return props.getOptionLabel(data);
};
var getOptionValue = function getOptionValue(props, data) {
  return props.getOptionValue(data);
};
function _isOptionDisabled(props, option, selectValue) {
  return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;
}
function _isOptionSelected(props, option, selectValue) {
  if (selectValue.indexOf(option) > -1) return true;
  if (typeof props.isOptionSelected === 'function') {
    return props.isOptionSelected(option, selectValue);
  }
  var candidate = getOptionValue(props, option);
  return selectValue.some(function (i) {
    return getOptionValue(props, i) === candidate;
  });
}
function _filterOption(props, option, inputValue) {
  return props.filterOption ? props.filterOption(option, inputValue) : true;
}
var shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {
  var hideSelectedOptions = props.hideSelectedOptions,
    isMulti = props.isMulti;
  if (hideSelectedOptions === undefined) return isMulti;
  return hideSelectedOptions;
};
var instanceId = 1;
var Select = /*#__PURE__*/function (_Component) {
  inherits_inherits(Select, _Component);
  var _super = _createSuper(Select);
  // Misc. Instance Properties
  // ------------------------------

  // TODO

  // Refs
  // ------------------------------

  // Lifecycle
  // ------------------------------

  function Select(_props) {
    var _this;
    classCallCheck_classCallCheck(this, Select);
    _this = _super.call(this, _props);
    _this.state = {
      ariaSelection: null,
      focusedOption: null,
      focusedOptionId: null,
      focusableOptionsWithIds: [],
      focusedValue: null,
      inputIsHidden: false,
      isFocused: false,
      selectValue: [],
      clearFocusValueOnUpdate: false,
      prevWasFocused: false,
      inputIsHiddenAfterUpdate: undefined,
      prevProps: undefined,
      instancePrefix: ''
    };
    _this.blockOptionHover = false;
    _this.isComposing = false;
    _this.commonProps = void 0;
    _this.initialTouchX = 0;
    _this.initialTouchY = 0;
    _this.openAfterFocus = false;
    _this.scrollToFocusedOptionOnUpdate = false;
    _this.userIsDragging = void 0;
    _this.isAppleDevice = isAppleDevice();
    _this.controlRef = null;
    _this.getControlRef = function (ref) {
      _this.controlRef = ref;
    };
    _this.focusedOptionRef = null;
    _this.getFocusedOptionRef = function (ref) {
      _this.focusedOptionRef = ref;
    };
    _this.menuListRef = null;
    _this.getMenuListRef = function (ref) {
      _this.menuListRef = ref;
    };
    _this.inputRef = null;
    _this.getInputRef = function (ref) {
      _this.inputRef = ref;
    };
    _this.focus = _this.focusInput;
    _this.blur = _this.blurInput;
    _this.onChange = function (newValue, actionMeta) {
      var _this$props = _this.props,
        onChange = _this$props.onChange,
        name = _this$props.name;
      actionMeta.name = name;
      _this.ariaOnChange(newValue, actionMeta);
      onChange(newValue, actionMeta);
    };
    _this.setValue = function (newValue, action, option) {
      var _this$props2 = _this.props,
        closeMenuOnSelect = _this$props2.closeMenuOnSelect,
        isMulti = _this$props2.isMulti,
        inputValue = _this$props2.inputValue;
      _this.onInputChange('', {
        action: 'set-value',
        prevInputValue: inputValue
      });
      if (closeMenuOnSelect) {
        _this.setState({
          inputIsHiddenAfterUpdate: !isMulti
        });
        _this.onMenuClose();
      }
      // when the select value should change, we should reset focusedValue
      _this.setState({
        clearFocusValueOnUpdate: true
      });
      _this.onChange(newValue, {
        action: action,
        option: option
      });
    };
    _this.selectOption = function (newValue) {
      var _this$props3 = _this.props,
        blurInputOnSelect = _this$props3.blurInputOnSelect,
        isMulti = _this$props3.isMulti,
        name = _this$props3.name;
      var selectValue = _this.state.selectValue;
      var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);
      var isDisabled = _this.isOptionDisabled(newValue, selectValue);
      if (deselected) {
        var candidate = _this.getOptionValue(newValue);
        _this.setValue(multiValueAsValue(selectValue.filter(function (i) {
          return _this.getOptionValue(i) !== candidate;
        })), 'deselect-option', newValue);
      } else if (!isDisabled) {
        // Select option if option is not disabled
        if (isMulti) {
          _this.setValue(multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);
        } else {
          _this.setValue(singleValueAsValue(newValue), 'select-option');
        }
      } else {
        _this.ariaOnChange(singleValueAsValue(newValue), {
          action: 'select-option',
          option: newValue,
          name: name
        });
        return;
      }
      if (blurInputOnSelect) {
        _this.blurInput();
      }
    };
    _this.removeValue = function (removedValue) {
      var isMulti = _this.props.isMulti;
      var selectValue = _this.state.selectValue;
      var candidate = _this.getOptionValue(removedValue);
      var newValueArray = selectValue.filter(function (i) {
        return _this.getOptionValue(i) !== candidate;
      });
      var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);
      _this.onChange(newValue, {
        action: 'remove-value',
        removedValue: removedValue
      });
      _this.focusInput();
    };
    _this.clearValue = function () {
      var selectValue = _this.state.selectValue;
      _this.onChange(valueTernary(_this.props.isMulti, [], null), {
        action: 'clear',
        removedValues: selectValue
      });
    };
    _this.popValue = function () {
      var isMulti = _this.props.isMulti;
      var selectValue = _this.state.selectValue;
      var lastSelectedValue = selectValue[selectValue.length - 1];
      var newValueArray = selectValue.slice(0, selectValue.length - 1);
      var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);
      if (lastSelectedValue) {
        _this.onChange(newValue, {
          action: 'pop-value',
          removedValue: lastSelectedValue
        });
      }
    };
    _this.getFocusedOptionId = function (focusedOption) {
      return getFocusedOptionId(_this.state.focusableOptionsWithIds, focusedOption);
    };
    _this.getFocusableOptionsWithIds = function () {
      return buildFocusableOptionsWithIds(buildCategorizedOptions(_this.props, _this.state.selectValue), _this.getElementId('option'));
    };
    _this.getValue = function () {
      return _this.state.selectValue;
    };
    _this.cx = function () {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));
    };
    _this.getOptionLabel = function (data) {
      return getOptionLabel(_this.props, data);
    };
    _this.getOptionValue = function (data) {
      return getOptionValue(_this.props, data);
    };
    _this.getStyles = function (key, props) {
      var unstyled = _this.props.unstyled;
      var base = defaultStyles[key](props, unstyled);
      base.boxSizing = 'border-box';
      var custom = _this.props.styles[key];
      return custom ? custom(base, props) : base;
    };
    _this.getClassNames = function (key, props) {
      var _this$props$className, _this$props$className2;
      return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);
    };
    _this.getElementId = function (element) {
      return "".concat(_this.state.instancePrefix, "-").concat(element);
    };
    _this.getComponents = function () {
      return defaultComponents(_this.props);
    };
    _this.buildCategorizedOptions = function () {
      return buildCategorizedOptions(_this.props, _this.state.selectValue);
    };
    _this.getCategorizedOptions = function () {
      return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];
    };
    _this.buildFocusableOptions = function () {
      return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());
    };
    _this.getFocusableOptions = function () {
      return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];
    };
    _this.ariaOnChange = function (value, actionMeta) {
      _this.setState({
        ariaSelection: objectSpread2_objectSpread2({
          value: value
        }, actionMeta)
      });
    };
    _this.onMenuMouseDown = function (event) {
      if (event.button !== 0) {
        return;
      }
      event.stopPropagation();
      event.preventDefault();
      _this.focusInput();
    };
    _this.onMenuMouseMove = function (event) {
      _this.blockOptionHover = false;
    };
    _this.onControlMouseDown = function (event) {
      // Event captured by dropdown indicator
      if (event.defaultPrevented) {
        return;
      }
      var openMenuOnClick = _this.props.openMenuOnClick;
      if (!_this.state.isFocused) {
        if (openMenuOnClick) {
          _this.openAfterFocus = true;
        }
        _this.focusInput();
      } else if (!_this.props.menuIsOpen) {
        if (openMenuOnClick) {
          _this.openMenu('first');
        }
      } else {
        if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {
          _this.onMenuClose();
        }
      }
      if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {
        event.preventDefault();
      }
    };
    _this.onDropdownIndicatorMouseDown = function (event) {
      // ignore mouse events that weren't triggered by the primary button
      if (event && event.type === 'mousedown' && event.button !== 0) {
        return;
      }
      if (_this.props.isDisabled) return;
      var _this$props4 = _this.props,
        isMulti = _this$props4.isMulti,
        menuIsOpen = _this$props4.menuIsOpen;
      _this.focusInput();
      if (menuIsOpen) {
        _this.setState({
          inputIsHiddenAfterUpdate: !isMulti
        });
        _this.onMenuClose();
      } else {
        _this.openMenu('first');
      }
      event.preventDefault();
    };
    _this.onClearIndicatorMouseDown = function (event) {
      // ignore mouse events that weren't triggered by the primary button
      if (event && event.type === 'mousedown' && event.button !== 0) {
        return;
      }
      _this.clearValue();
      event.preventDefault();
      _this.openAfterFocus = false;
      if (event.type === 'touchend') {
        _this.focusInput();
      } else {
        setTimeout(function () {
          return _this.focusInput();
        });
      }
    };
    _this.onScroll = function (event) {
      if (typeof _this.props.closeMenuOnScroll === 'boolean') {
        if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {
          _this.props.onMenuClose();
        }
      } else if (typeof _this.props.closeMenuOnScroll === 'function') {
        if (_this.props.closeMenuOnScroll(event)) {
          _this.props.onMenuClose();
        }
      }
    };
    _this.onCompositionStart = function () {
      _this.isComposing = true;
    };
    _this.onCompositionEnd = function () {
      _this.isComposing = false;
    };
    _this.onTouchStart = function (_ref2) {
      var touches = _ref2.touches;
      var touch = touches && touches.item(0);
      if (!touch) {
        return;
      }
      _this.initialTouchX = touch.clientX;
      _this.initialTouchY = touch.clientY;
      _this.userIsDragging = false;
    };
    _this.onTouchMove = function (_ref3) {
      var touches = _ref3.touches;
      var touch = touches && touches.item(0);
      if (!touch) {
        return;
      }
      var deltaX = Math.abs(touch.clientX - _this.initialTouchX);
      var deltaY = Math.abs(touch.clientY - _this.initialTouchY);
      var moveThreshold = 5;
      _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;
    };
    _this.onTouchEnd = function (event) {
      if (_this.userIsDragging) return;

      // close the menu if the user taps outside
      // we're checking on event.target here instead of event.currentTarget, because we want to assert information
      // on events on child elements, not the document (which we've attached this handler to).
      if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {
        _this.blurInput();
      }

      // reset move vars
      _this.initialTouchX = 0;
      _this.initialTouchY = 0;
    };
    _this.onControlTouchEnd = function (event) {
      if (_this.userIsDragging) return;
      _this.onControlMouseDown(event);
    };
    _this.onClearIndicatorTouchEnd = function (event) {
      if (_this.userIsDragging) return;
      _this.onClearIndicatorMouseDown(event);
    };
    _this.onDropdownIndicatorTouchEnd = function (event) {
      if (_this.userIsDragging) return;
      _this.onDropdownIndicatorMouseDown(event);
    };
    _this.handleInputChange = function (event) {
      var prevInputValue = _this.props.inputValue;
      var inputValue = event.currentTarget.value;
      _this.setState({
        inputIsHiddenAfterUpdate: false
      });
      _this.onInputChange(inputValue, {
        action: 'input-change',
        prevInputValue: prevInputValue
      });
      if (!_this.props.menuIsOpen) {
        _this.onMenuOpen();
      }
    };
    _this.onInputFocus = function (event) {
      if (_this.props.onFocus) {
        _this.props.onFocus(event);
      }
      _this.setState({
        inputIsHiddenAfterUpdate: false,
        isFocused: true
      });
      if (_this.openAfterFocus || _this.props.openMenuOnFocus) {
        _this.openMenu('first');
      }
      _this.openAfterFocus = false;
    };
    _this.onInputBlur = function (event) {
      var prevInputValue = _this.props.inputValue;
      if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {
        _this.inputRef.focus();
        return;
      }
      if (_this.props.onBlur) {
        _this.props.onBlur(event);
      }
      _this.onInputChange('', {
        action: 'input-blur',
        prevInputValue: prevInputValue
      });
      _this.onMenuClose();
      _this.setState({
        focusedValue: null,
        isFocused: false
      });
    };
    _this.onOptionHover = function (focusedOption) {
      if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {
        return;
      }
      var options = _this.getFocusableOptions();
      var focusedOptionIndex = options.indexOf(focusedOption);
      _this.setState({
        focusedOption: focusedOption,
        focusedOptionId: focusedOptionIndex > -1 ? _this.getFocusedOptionId(focusedOption) : null
      });
    };
    _this.shouldHideSelectedOptions = function () {
      return shouldHideSelectedOptions(_this.props);
    };
    _this.onValueInputFocus = function (e) {
      e.preventDefault();
      e.stopPropagation();
      _this.focus();
    };
    _this.onKeyDown = function (event) {
      var _this$props5 = _this.props,
        isMulti = _this$props5.isMulti,
        backspaceRemovesValue = _this$props5.backspaceRemovesValue,
        escapeClearsValue = _this$props5.escapeClearsValue,
        inputValue = _this$props5.inputValue,
        isClearable = _this$props5.isClearable,
        isDisabled = _this$props5.isDisabled,
        menuIsOpen = _this$props5.menuIsOpen,
        onKeyDown = _this$props5.onKeyDown,
        tabSelectsValue = _this$props5.tabSelectsValue,
        openMenuOnFocus = _this$props5.openMenuOnFocus;
      var _this$state = _this.state,
        focusedOption = _this$state.focusedOption,
        focusedValue = _this$state.focusedValue,
        selectValue = _this$state.selectValue;
      if (isDisabled) return;
      if (typeof onKeyDown === 'function') {
        onKeyDown(event);
        if (event.defaultPrevented) {
          return;
        }
      }

      // Block option hover events when the user has just pressed a key
      _this.blockOptionHover = true;
      switch (event.key) {
        case 'ArrowLeft':
          if (!isMulti || inputValue) return;
          _this.focusValue('previous');
          break;
        case 'ArrowRight':
          if (!isMulti || inputValue) return;
          _this.focusValue('next');
          break;
        case 'Delete':
        case 'Backspace':
          if (inputValue) return;
          if (focusedValue) {
            _this.removeValue(focusedValue);
          } else {
            if (!backspaceRemovesValue) return;
            if (isMulti) {
              _this.popValue();
            } else if (isClearable) {
              _this.clearValue();
            }
          }
          break;
        case 'Tab':
          if (_this.isComposing) return;
          if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||
          // don't capture the event if the menu opens on focus and the focused
          // option is already selected; it breaks the flow of navigation
          openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {
            return;
          }
          _this.selectOption(focusedOption);
          break;
        case 'Enter':
          if (event.keyCode === 229) {
            // ignore the keydown event from an Input Method Editor(IME)
            // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode
            break;
          }
          if (menuIsOpen) {
            if (!focusedOption) return;
            if (_this.isComposing) return;
            _this.selectOption(focusedOption);
            break;
          }
          return;
        case 'Escape':
          if (menuIsOpen) {
            _this.setState({
              inputIsHiddenAfterUpdate: false
            });
            _this.onInputChange('', {
              action: 'menu-close',
              prevInputValue: inputValue
            });
            _this.onMenuClose();
          } else if (isClearable && escapeClearsValue) {
            _this.clearValue();
          }
          break;
        case ' ':
          // space
          if (inputValue) {
            return;
          }
          if (!menuIsOpen) {
            _this.openMenu('first');
            break;
          }
          if (!focusedOption) return;
          _this.selectOption(focusedOption);
          break;
        case 'ArrowUp':
          if (menuIsOpen) {
            _this.focusOption('up');
          } else {
            _this.openMenu('last');
          }
          break;
        case 'ArrowDown':
          if (menuIsOpen) {
            _this.focusOption('down');
          } else {
            _this.openMenu('first');
          }
          break;
        case 'PageUp':
          if (!menuIsOpen) return;
          _this.focusOption('pageup');
          break;
        case 'PageDown':
          if (!menuIsOpen) return;
          _this.focusOption('pagedown');
          break;
        case 'Home':
          if (!menuIsOpen) return;
          _this.focusOption('first');
          break;
        case 'End':
          if (!menuIsOpen) return;
          _this.focusOption('last');
          break;
        default:
          return;
      }
      event.preventDefault();
    };
    _this.state.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);
    _this.state.selectValue = cleanValue(_props.value);
    // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)
    if (_props.menuIsOpen && _this.state.selectValue.length) {
      var focusableOptionsWithIds = _this.getFocusableOptionsWithIds();
      var focusableOptions = _this.buildFocusableOptions();
      var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);
      _this.state.focusableOptionsWithIds = focusableOptionsWithIds;
      _this.state.focusedOption = focusableOptions[optionIndex];
      _this.state.focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusableOptions[optionIndex]);
    }
    return _this;
  }
  createClass_createClass(Select, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.startListeningComposition();
      this.startListeningToTouch();
      if (this.props.closeMenuOnScroll && document && document.addEventListener) {
        // Listen to all scroll events, and filter them out inside of 'onScroll'
        document.addEventListener('scroll', this.onScroll, true);
      }
      if (this.props.autoFocus) {
        this.focusInput();
      }

      // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)
      if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {
        scrollIntoView(this.menuListRef, this.focusedOptionRef);
      }
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps) {
      var _this$props6 = this.props,
        isDisabled = _this$props6.isDisabled,
        menuIsOpen = _this$props6.menuIsOpen;
      var isFocused = this.state.isFocused;
      if (
      // ensure focus is restored correctly when the control becomes enabled
      isFocused && !isDisabled && prevProps.isDisabled ||
      // ensure focus is on the Input when the menu opens
      isFocused && menuIsOpen && !prevProps.menuIsOpen) {
        this.focusInput();
      }
      if (isFocused && isDisabled && !prevProps.isDisabled) {
        // ensure select state gets blurred in case Select is programmatically disabled while focused
        // eslint-disable-next-line react/no-did-update-set-state
        this.setState({
          isFocused: false
        }, this.onMenuClose);
      } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {
        // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)
        // eslint-disable-next-line react/no-did-update-set-state
        this.setState({
          isFocused: true
        });
      }

      // scroll the focused option into view if necessary
      if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {
        scrollIntoView(this.menuListRef, this.focusedOptionRef);
        this.scrollToFocusedOptionOnUpdate = false;
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      this.stopListeningComposition();
      this.stopListeningToTouch();
      document.removeEventListener('scroll', this.onScroll, true);
    }

    // ==============================
    // Consumer Handlers
    // ==============================
  }, {
    key: "onMenuOpen",
    value: function onMenuOpen() {
      this.props.onMenuOpen();
    }
  }, {
    key: "onMenuClose",
    value: function onMenuClose() {
      this.onInputChange('', {
        action: 'menu-close',
        prevInputValue: this.props.inputValue
      });
      this.props.onMenuClose();
    }
  }, {
    key: "onInputChange",
    value: function onInputChange(newValue, actionMeta) {
      this.props.onInputChange(newValue, actionMeta);
    }

    // ==============================
    // Methods
    // ==============================
  }, {
    key: "focusInput",
    value: function focusInput() {
      if (!this.inputRef) return;
      this.inputRef.focus();
    }
  }, {
    key: "blurInput",
    value: function blurInput() {
      if (!this.inputRef) return;
      this.inputRef.blur();
    }

    // aliased for consumers
  }, {
    key: "openMenu",
    value: function openMenu(focusOption) {
      var _this2 = this;
      var _this$state2 = this.state,
        selectValue = _this$state2.selectValue,
        isFocused = _this$state2.isFocused;
      var focusableOptions = this.buildFocusableOptions();
      var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;
      if (!this.props.isMulti) {
        var selectedIndex = focusableOptions.indexOf(selectValue[0]);
        if (selectedIndex > -1) {
          openAtIndex = selectedIndex;
        }
      }

      // only scroll if the menu isn't already open
      this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);
      this.setState({
        inputIsHiddenAfterUpdate: false,
        focusedValue: null,
        focusedOption: focusableOptions[openAtIndex],
        focusedOptionId: this.getFocusedOptionId(focusableOptions[openAtIndex])
      }, function () {
        return _this2.onMenuOpen();
      });
    }
  }, {
    key: "focusValue",
    value: function focusValue(direction) {
      var _this$state3 = this.state,
        selectValue = _this$state3.selectValue,
        focusedValue = _this$state3.focusedValue;

      // Only multiselects support value focusing
      if (!this.props.isMulti) return;
      this.setState({
        focusedOption: null
      });
      var focusedIndex = selectValue.indexOf(focusedValue);
      if (!focusedValue) {
        focusedIndex = -1;
      }
      var lastIndex = selectValue.length - 1;
      var nextFocus = -1;
      if (!selectValue.length) return;
      switch (direction) {
        case 'previous':
          if (focusedIndex === 0) {
            // don't cycle from the start to the end
            nextFocus = 0;
          } else if (focusedIndex === -1) {
            // if nothing is focused, focus the last value first
            nextFocus = lastIndex;
          } else {
            nextFocus = focusedIndex - 1;
          }
          break;
        case 'next':
          if (focusedIndex > -1 && focusedIndex < lastIndex) {
            nextFocus = focusedIndex + 1;
          }
          break;
      }
      this.setState({
        inputIsHidden: nextFocus !== -1,
        focusedValue: selectValue[nextFocus]
      });
    }
  }, {
    key: "focusOption",
    value: function focusOption() {
      var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';
      var pageSize = this.props.pageSize;
      var focusedOption = this.state.focusedOption;
      var options = this.getFocusableOptions();
      if (!options.length) return;
      var nextFocus = 0; // handles 'first'
      var focusedIndex = options.indexOf(focusedOption);
      if (!focusedOption) {
        focusedIndex = -1;
      }
      if (direction === 'up') {
        nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;
      } else if (direction === 'down') {
        nextFocus = (focusedIndex + 1) % options.length;
      } else if (direction === 'pageup') {
        nextFocus = focusedIndex - pageSize;
        if (nextFocus < 0) nextFocus = 0;
      } else if (direction === 'pagedown') {
        nextFocus = focusedIndex + pageSize;
        if (nextFocus > options.length - 1) nextFocus = options.length - 1;
      } else if (direction === 'last') {
        nextFocus = options.length - 1;
      }
      this.scrollToFocusedOptionOnUpdate = true;
      this.setState({
        focusedOption: options[nextFocus],
        focusedValue: null,
        focusedOptionId: this.getFocusedOptionId(options[nextFocus])
      });
    }
  }, {
    key: "getTheme",
    value:
    // ==============================
    // Getters
    // ==============================

    function getTheme() {
      // Use the default theme if there are no customisations.
      if (!this.props.theme) {
        return defaultTheme;
      }
      // If the theme prop is a function, assume the function
      // knows how to merge the passed-in default theme with
      // its own modifications.
      if (typeof this.props.theme === 'function') {
        return this.props.theme(defaultTheme);
      }
      // Otherwise, if a plain theme object was passed in,
      // overlay it with the default theme.
      return objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, defaultTheme), this.props.theme);
    }
  }, {
    key: "getCommonProps",
    value: function getCommonProps() {
      var clearValue = this.clearValue,
        cx = this.cx,
        getStyles = this.getStyles,
        getClassNames = this.getClassNames,
        getValue = this.getValue,
        selectOption = this.selectOption,
        setValue = this.setValue,
        props = this.props;
      var isMulti = props.isMulti,
        isRtl = props.isRtl,
        options = props.options;
      var hasValue = this.hasValue();
      return {
        clearValue: clearValue,
        cx: cx,
        getStyles: getStyles,
        getClassNames: getClassNames,
        getValue: getValue,
        hasValue: hasValue,
        isMulti: isMulti,
        isRtl: isRtl,
        options: options,
        selectOption: selectOption,
        selectProps: props,
        setValue: setValue,
        theme: this.getTheme()
      };
    }
  }, {
    key: "hasValue",
    value: function hasValue() {
      var selectValue = this.state.selectValue;
      return selectValue.length > 0;
    }
  }, {
    key: "hasOptions",
    value: function hasOptions() {
      return !!this.getFocusableOptions().length;
    }
  }, {
    key: "isClearable",
    value: function isClearable() {
      var _this$props7 = this.props,
        isClearable = _this$props7.isClearable,
        isMulti = _this$props7.isMulti;

      // single select, by default, IS NOT clearable
      // multi select, by default, IS clearable
      if (isClearable === undefined) return isMulti;
      return isClearable;
    }
  }, {
    key: "isOptionDisabled",
    value: function isOptionDisabled(option, selectValue) {
      return _isOptionDisabled(this.props, option, selectValue);
    }
  }, {
    key: "isOptionSelected",
    value: function isOptionSelected(option, selectValue) {
      return _isOptionSelected(this.props, option, selectValue);
    }
  }, {
    key: "filterOption",
    value: function filterOption(option, inputValue) {
      return _filterOption(this.props, option, inputValue);
    }
  }, {
    key: "formatOptionLabel",
    value: function formatOptionLabel(data, context) {
      if (typeof this.props.formatOptionLabel === 'function') {
        var _inputValue = this.props.inputValue;
        var _selectValue = this.state.selectValue;
        return this.props.formatOptionLabel(data, {
          context: context,
          inputValue: _inputValue,
          selectValue: _selectValue
        });
      } else {
        return this.getOptionLabel(data);
      }
    }
  }, {
    key: "formatGroupLabel",
    value: function formatGroupLabel(data) {
      return this.props.formatGroupLabel(data);
    }

    // ==============================
    // Mouse Handlers
    // ==============================
  }, {
    key: "startListeningComposition",
    value:
    // ==============================
    // Composition Handlers
    // ==============================

    function startListeningComposition() {
      if (document && document.addEventListener) {
        document.addEventListener('compositionstart', this.onCompositionStart, false);
        document.addEventListener('compositionend', this.onCompositionEnd, false);
      }
    }
  }, {
    key: "stopListeningComposition",
    value: function stopListeningComposition() {
      if (document && document.removeEventListener) {
        document.removeEventListener('compositionstart', this.onCompositionStart);
        document.removeEventListener('compositionend', this.onCompositionEnd);
      }
    }
  }, {
    key: "startListeningToTouch",
    value:
    // ==============================
    // Touch Handlers
    // ==============================

    function startListeningToTouch() {
      if (document && document.addEventListener) {
        document.addEventListener('touchstart', this.onTouchStart, false);
        document.addEventListener('touchmove', this.onTouchMove, false);
        document.addEventListener('touchend', this.onTouchEnd, false);
      }
    }
  }, {
    key: "stopListeningToTouch",
    value: function stopListeningToTouch() {
      if (document && document.removeEventListener) {
        document.removeEventListener('touchstart', this.onTouchStart);
        document.removeEventListener('touchmove', this.onTouchMove);
        document.removeEventListener('touchend', this.onTouchEnd);
      }
    }
  }, {
    key: "renderInput",
    value:
    // ==============================
    // Renderers
    // ==============================
    function renderInput() {
      var _this$props8 = this.props,
        isDisabled = _this$props8.isDisabled,
        isSearchable = _this$props8.isSearchable,
        inputId = _this$props8.inputId,
        inputValue = _this$props8.inputValue,
        tabIndex = _this$props8.tabIndex,
        form = _this$props8.form,
        menuIsOpen = _this$props8.menuIsOpen,
        required = _this$props8.required;
      var _this$getComponents = this.getComponents(),
        Input = _this$getComponents.Input;
      var _this$state4 = this.state,
        inputIsHidden = _this$state4.inputIsHidden,
        ariaSelection = _this$state4.ariaSelection;
      var commonProps = this.commonProps;
      var id = inputId || this.getElementId('input');

      // aria attributes makes the JSX "noisy", separated for clarity
      var ariaAttributes = objectSpread2_objectSpread2(objectSpread2_objectSpread2(objectSpread2_objectSpread2({
        'aria-autocomplete': 'list',
        'aria-expanded': menuIsOpen,
        'aria-haspopup': true,
        'aria-errormessage': this.props['aria-errormessage'],
        'aria-invalid': this.props['aria-invalid'],
        'aria-label': this.props['aria-label'],
        'aria-labelledby': this.props['aria-labelledby'],
        'aria-required': required,
        role: 'combobox',
        'aria-activedescendant': this.isAppleDevice ? undefined : this.state.focusedOptionId || ''
      }, menuIsOpen && {
        'aria-controls': this.getElementId('listbox')
      }), !isSearchable && {
        'aria-readonly': true
      }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {
        'aria-describedby': this.getElementId('live-region')
      } : {
        'aria-describedby': this.getElementId('placeholder')
      });
      if (!isSearchable) {
        // use a dummy input to maintain focus/blur functionality
        return /*#__PURE__*/external_React_.createElement(DummyInput, extends_extends({
          id: id,
          innerRef: this.getInputRef,
          onBlur: this.onInputBlur,
          onChange: noop,
          onFocus: this.onInputFocus,
          disabled: isDisabled,
          tabIndex: tabIndex,
          inputMode: "none",
          form: form,
          value: ""
        }, ariaAttributes));
      }
      return /*#__PURE__*/external_React_.createElement(Input, extends_extends({}, commonProps, {
        autoCapitalize: "none",
        autoComplete: "off",
        autoCorrect: "off",
        id: id,
        innerRef: this.getInputRef,
        isDisabled: isDisabled,
        isHidden: inputIsHidden,
        onBlur: this.onInputBlur,
        onChange: this.handleInputChange,
        onFocus: this.onInputFocus,
        spellCheck: "false",
        tabIndex: tabIndex,
        form: form,
        type: "text",
        value: inputValue
      }, ariaAttributes));
    }
  }, {
    key: "renderPlaceholderOrValue",
    value: function renderPlaceholderOrValue() {
      var _this3 = this;
      var _this$getComponents2 = this.getComponents(),
        MultiValue = _this$getComponents2.MultiValue,
        MultiValueContainer = _this$getComponents2.MultiValueContainer,
        MultiValueLabel = _this$getComponents2.MultiValueLabel,
        MultiValueRemove = _this$getComponents2.MultiValueRemove,
        SingleValue = _this$getComponents2.SingleValue,
        Placeholder = _this$getComponents2.Placeholder;
      var commonProps = this.commonProps;
      var _this$props9 = this.props,
        controlShouldRenderValue = _this$props9.controlShouldRenderValue,
        isDisabled = _this$props9.isDisabled,
        isMulti = _this$props9.isMulti,
        inputValue = _this$props9.inputValue,
        placeholder = _this$props9.placeholder;
      var _this$state5 = this.state,
        selectValue = _this$state5.selectValue,
        focusedValue = _this$state5.focusedValue,
        isFocused = _this$state5.isFocused;
      if (!this.hasValue() || !controlShouldRenderValue) {
        return inputValue ? null : /*#__PURE__*/external_React_.createElement(Placeholder, extends_extends({}, commonProps, {
          key: "placeholder",
          isDisabled: isDisabled,
          isFocused: isFocused,
          innerProps: {
            id: this.getElementId('placeholder')
          }
        }), placeholder);
      }
      if (isMulti) {
        return selectValue.map(function (opt, index) {
          var isOptionFocused = opt === focusedValue;
          var key = "".concat(_this3.getOptionLabel(opt), "-").concat(_this3.getOptionValue(opt));
          return /*#__PURE__*/external_React_.createElement(MultiValue, extends_extends({}, commonProps, {
            components: {
              Container: MultiValueContainer,
              Label: MultiValueLabel,
              Remove: MultiValueRemove
            },
            isFocused: isOptionFocused,
            isDisabled: isDisabled,
            key: key,
            index: index,
            removeProps: {
              onClick: function onClick() {
                return _this3.removeValue(opt);
              },
              onTouchEnd: function onTouchEnd() {
                return _this3.removeValue(opt);
              },
              onMouseDown: function onMouseDown(e) {
                e.preventDefault();
              }
            },
            data: opt
          }), _this3.formatOptionLabel(opt, 'value'));
        });
      }
      if (inputValue) {
        return null;
      }
      var singleValue = selectValue[0];
      return /*#__PURE__*/external_React_.createElement(SingleValue, extends_extends({}, commonProps, {
        data: singleValue,
        isDisabled: isDisabled
      }), this.formatOptionLabel(singleValue, 'value'));
    }
  }, {
    key: "renderClearIndicator",
    value: function renderClearIndicator() {
      var _this$getComponents3 = this.getComponents(),
        ClearIndicator = _this$getComponents3.ClearIndicator;
      var commonProps = this.commonProps;
      var _this$props10 = this.props,
        isDisabled = _this$props10.isDisabled,
        isLoading = _this$props10.isLoading;
      var isFocused = this.state.isFocused;
      if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {
        return null;
      }
      var innerProps = {
        onMouseDown: this.onClearIndicatorMouseDown,
        onTouchEnd: this.onClearIndicatorTouchEnd,
        'aria-hidden': 'true'
      };
      return /*#__PURE__*/external_React_.createElement(ClearIndicator, extends_extends({}, commonProps, {
        innerProps: innerProps,
        isFocused: isFocused
      }));
    }
  }, {
    key: "renderLoadingIndicator",
    value: function renderLoadingIndicator() {
      var _this$getComponents4 = this.getComponents(),
        LoadingIndicator = _this$getComponents4.LoadingIndicator;
      var commonProps = this.commonProps;
      var _this$props11 = this.props,
        isDisabled = _this$props11.isDisabled,
        isLoading = _this$props11.isLoading;
      var isFocused = this.state.isFocused;
      if (!LoadingIndicator || !isLoading) return null;
      var innerProps = {
        'aria-hidden': 'true'
      };
      return /*#__PURE__*/external_React_.createElement(LoadingIndicator, extends_extends({}, commonProps, {
        innerProps: innerProps,
        isDisabled: isDisabled,
        isFocused: isFocused
      }));
    }
  }, {
    key: "renderIndicatorSeparator",
    value: function renderIndicatorSeparator() {
      var _this$getComponents5 = this.getComponents(),
        DropdownIndicator = _this$getComponents5.DropdownIndicator,
        IndicatorSeparator = _this$getComponents5.IndicatorSeparator;

      // separator doesn't make sense without the dropdown indicator
      if (!DropdownIndicator || !IndicatorSeparator) return null;
      var commonProps = this.commonProps;
      var isDisabled = this.props.isDisabled;
      var isFocused = this.state.isFocused;
      return /*#__PURE__*/external_React_.createElement(IndicatorSeparator, extends_extends({}, commonProps, {
        isDisabled: isDisabled,
        isFocused: isFocused
      }));
    }
  }, {
    key: "renderDropdownIndicator",
    value: function renderDropdownIndicator() {
      var _this$getComponents6 = this.getComponents(),
        DropdownIndicator = _this$getComponents6.DropdownIndicator;
      if (!DropdownIndicator) return null;
      var commonProps = this.commonProps;
      var isDisabled = this.props.isDisabled;
      var isFocused = this.state.isFocused;
      var innerProps = {
        onMouseDown: this.onDropdownIndicatorMouseDown,
        onTouchEnd: this.onDropdownIndicatorTouchEnd,
        'aria-hidden': 'true'
      };
      return /*#__PURE__*/external_React_.createElement(DropdownIndicator, extends_extends({}, commonProps, {
        innerProps: innerProps,
        isDisabled: isDisabled,
        isFocused: isFocused
      }));
    }
  }, {
    key: "renderMenu",
    value: function renderMenu() {
      var _this4 = this;
      var _this$getComponents7 = this.getComponents(),
        Group = _this$getComponents7.Group,
        GroupHeading = _this$getComponents7.GroupHeading,
        Menu = _this$getComponents7.Menu,
        MenuList = _this$getComponents7.MenuList,
        MenuPortal = _this$getComponents7.MenuPortal,
        LoadingMessage = _this$getComponents7.LoadingMessage,
        NoOptionsMessage = _this$getComponents7.NoOptionsMessage,
        Option = _this$getComponents7.Option;
      var commonProps = this.commonProps;
      var focusedOption = this.state.focusedOption;
      var _this$props12 = this.props,
        captureMenuScroll = _this$props12.captureMenuScroll,
        inputValue = _this$props12.inputValue,
        isLoading = _this$props12.isLoading,
        loadingMessage = _this$props12.loadingMessage,
        minMenuHeight = _this$props12.minMenuHeight,
        maxMenuHeight = _this$props12.maxMenuHeight,
        menuIsOpen = _this$props12.menuIsOpen,
        menuPlacement = _this$props12.menuPlacement,
        menuPosition = _this$props12.menuPosition,
        menuPortalTarget = _this$props12.menuPortalTarget,
        menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,
        menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,
        noOptionsMessage = _this$props12.noOptionsMessage,
        onMenuScrollToTop = _this$props12.onMenuScrollToTop,
        onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;
      if (!menuIsOpen) return null;

      // TODO: Internal Option Type here
      var render = function render(props, id) {
        var type = props.type,
          data = props.data,
          isDisabled = props.isDisabled,
          isSelected = props.isSelected,
          label = props.label,
          value = props.value;
        var isFocused = focusedOption === data;
        var onHover = isDisabled ? undefined : function () {
          return _this4.onOptionHover(data);
        };
        var onSelect = isDisabled ? undefined : function () {
          return _this4.selectOption(data);
        };
        var optionId = "".concat(_this4.getElementId('option'), "-").concat(id);
        var innerProps = {
          id: optionId,
          onClick: onSelect,
          onMouseMove: onHover,
          onMouseOver: onHover,
          tabIndex: -1,
          role: 'option',
          'aria-selected': _this4.isAppleDevice ? undefined : isSelected // is not supported on Apple devices
        };

        return /*#__PURE__*/external_React_.createElement(Option, extends_extends({}, commonProps, {
          innerProps: innerProps,
          data: data,
          isDisabled: isDisabled,
          isSelected: isSelected,
          key: optionId,
          label: label,
          type: type,
          value: value,
          isFocused: isFocused,
          innerRef: isFocused ? _this4.getFocusedOptionRef : undefined
        }), _this4.formatOptionLabel(props.data, 'menu'));
      };
      var menuUI;
      if (this.hasOptions()) {
        menuUI = this.getCategorizedOptions().map(function (item) {
          if (item.type === 'group') {
            var _data = item.data,
              options = item.options,
              groupIndex = item.index;
            var groupId = "".concat(_this4.getElementId('group'), "-").concat(groupIndex);
            var headingId = "".concat(groupId, "-heading");
            return /*#__PURE__*/external_React_.createElement(Group, extends_extends({}, commonProps, {
              key: groupId,
              data: _data,
              options: options,
              Heading: GroupHeading,
              headingProps: {
                id: headingId,
                data: item.data
              },
              label: _this4.formatGroupLabel(item.data)
            }), item.options.map(function (option) {
              return render(option, "".concat(groupIndex, "-").concat(option.index));
            }));
          } else if (item.type === 'option') {
            return render(item, "".concat(item.index));
          }
        });
      } else if (isLoading) {
        var message = loadingMessage({
          inputValue: inputValue
        });
        if (message === null) return null;
        menuUI = /*#__PURE__*/external_React_.createElement(LoadingMessage, commonProps, message);
      } else {
        var _message = noOptionsMessage({
          inputValue: inputValue
        });
        if (_message === null) return null;
        menuUI = /*#__PURE__*/external_React_.createElement(NoOptionsMessage, commonProps, _message);
      }
      var menuPlacementProps = {
        minMenuHeight: minMenuHeight,
        maxMenuHeight: maxMenuHeight,
        menuPlacement: menuPlacement,
        menuPosition: menuPosition,
        menuShouldScrollIntoView: menuShouldScrollIntoView
      };
      var menuElement = /*#__PURE__*/external_React_.createElement(MenuPlacer, extends_extends({}, commonProps, menuPlacementProps), function (_ref4) {
        var ref = _ref4.ref,
          _ref4$placerProps = _ref4.placerProps,
          placement = _ref4$placerProps.placement,
          maxHeight = _ref4$placerProps.maxHeight;
        return /*#__PURE__*/external_React_.createElement(Menu, extends_extends({}, commonProps, menuPlacementProps, {
          innerRef: ref,
          innerProps: {
            onMouseDown: _this4.onMenuMouseDown,
            onMouseMove: _this4.onMenuMouseMove
          },
          isLoading: isLoading,
          placement: placement
        }), /*#__PURE__*/external_React_.createElement(ScrollManager, {
          captureEnabled: captureMenuScroll,
          onTopArrive: onMenuScrollToTop,
          onBottomArrive: onMenuScrollToBottom,
          lockEnabled: menuShouldBlockScroll
        }, function (scrollTargetRef) {
          return /*#__PURE__*/external_React_.createElement(MenuList, extends_extends({}, commonProps, {
            innerRef: function innerRef(instance) {
              _this4.getMenuListRef(instance);
              scrollTargetRef(instance);
            },
            innerProps: {
              role: 'listbox',
              'aria-multiselectable': commonProps.isMulti,
              id: _this4.getElementId('listbox')
            },
            isLoading: isLoading,
            maxHeight: maxHeight,
            focusedOption: focusedOption
          }), menuUI);
        }));
      });

      // positioning behaviour is almost identical for portalled and fixed,
      // so we use the same component. the actual portalling logic is forked
      // within the component based on `menuPosition`
      return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/external_React_.createElement(MenuPortal, extends_extends({}, commonProps, {
        appendTo: menuPortalTarget,
        controlElement: this.controlRef,
        menuPlacement: menuPlacement,
        menuPosition: menuPosition
      }), menuElement) : menuElement;
    }
  }, {
    key: "renderFormField",
    value: function renderFormField() {
      var _this5 = this;
      var _this$props13 = this.props,
        delimiter = _this$props13.delimiter,
        isDisabled = _this$props13.isDisabled,
        isMulti = _this$props13.isMulti,
        name = _this$props13.name,
        required = _this$props13.required;
      var selectValue = this.state.selectValue;
      if (required && !this.hasValue() && !isDisabled) {
        return /*#__PURE__*/external_React_.createElement(RequiredInput$1, {
          name: name,
          onFocus: this.onValueInputFocus
        });
      }
      if (!name || isDisabled) return;
      if (isMulti) {
        if (delimiter) {
          var value = selectValue.map(function (opt) {
            return _this5.getOptionValue(opt);
          }).join(delimiter);
          return /*#__PURE__*/external_React_.createElement("input", {
            name: name,
            type: "hidden",
            value: value
          });
        } else {
          var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {
            return /*#__PURE__*/external_React_.createElement("input", {
              key: "i-".concat(i),
              name: name,
              type: "hidden",
              value: _this5.getOptionValue(opt)
            });
          }) : /*#__PURE__*/external_React_.createElement("input", {
            name: name,
            type: "hidden",
            value: ""
          });
          return /*#__PURE__*/external_React_.createElement("div", null, input);
        }
      } else {
        var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';
        return /*#__PURE__*/external_React_.createElement("input", {
          name: name,
          type: "hidden",
          value: _value
        });
      }
    }
  }, {
    key: "renderLiveRegion",
    value: function renderLiveRegion() {
      var commonProps = this.commonProps;
      var _this$state6 = this.state,
        ariaSelection = _this$state6.ariaSelection,
        focusedOption = _this$state6.focusedOption,
        focusedValue = _this$state6.focusedValue,
        isFocused = _this$state6.isFocused,
        selectValue = _this$state6.selectValue;
      var focusableOptions = this.getFocusableOptions();
      return /*#__PURE__*/external_React_.createElement(LiveRegion$1, extends_extends({}, commonProps, {
        id: this.getElementId('live-region'),
        ariaSelection: ariaSelection,
        focusedOption: focusedOption,
        focusedValue: focusedValue,
        isFocused: isFocused,
        selectValue: selectValue,
        focusableOptions: focusableOptions,
        isAppleDevice: this.isAppleDevice
      }));
    }
  }, {
    key: "render",
    value: function render() {
      var _this$getComponents8 = this.getComponents(),
        Control = _this$getComponents8.Control,
        IndicatorsContainer = _this$getComponents8.IndicatorsContainer,
        SelectContainer = _this$getComponents8.SelectContainer,
        ValueContainer = _this$getComponents8.ValueContainer;
      var _this$props14 = this.props,
        className = _this$props14.className,
        id = _this$props14.id,
        isDisabled = _this$props14.isDisabled,
        menuIsOpen = _this$props14.menuIsOpen;
      var isFocused = this.state.isFocused;
      var commonProps = this.commonProps = this.getCommonProps();
      return /*#__PURE__*/external_React_.createElement(SelectContainer, extends_extends({}, commonProps, {
        className: className,
        innerProps: {
          id: id,
          onKeyDown: this.onKeyDown
        },
        isDisabled: isDisabled,
        isFocused: isFocused
      }), this.renderLiveRegion(), /*#__PURE__*/external_React_.createElement(Control, extends_extends({}, commonProps, {
        innerRef: this.getControlRef,
        innerProps: {
          onMouseDown: this.onControlMouseDown,
          onTouchEnd: this.onControlTouchEnd
        },
        isDisabled: isDisabled,
        isFocused: isFocused,
        menuIsOpen: menuIsOpen
      }), /*#__PURE__*/external_React_.createElement(ValueContainer, extends_extends({}, commonProps, {
        isDisabled: isDisabled
      }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/external_React_.createElement(IndicatorsContainer, extends_extends({}, commonProps, {
        isDisabled: isDisabled
      }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(props, state) {
      var prevProps = state.prevProps,
        clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,
        inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,
        ariaSelection = state.ariaSelection,
        isFocused = state.isFocused,
        prevWasFocused = state.prevWasFocused,
        instancePrefix = state.instancePrefix;
      var options = props.options,
        value = props.value,
        menuIsOpen = props.menuIsOpen,
        inputValue = props.inputValue,
        isMulti = props.isMulti;
      var selectValue = cleanValue(value);
      var newMenuOptionsState = {};
      if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {
        var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];
        var focusableOptionsWithIds = menuIsOpen ? buildFocusableOptionsWithIds(buildCategorizedOptions(props, selectValue), "".concat(instancePrefix, "-option")) : [];
        var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;
        var focusedOption = getNextFocusedOption(state, focusableOptions);
        var focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusedOption);
        newMenuOptionsState = {
          selectValue: selectValue,
          focusedOption: focusedOption,
          focusedOptionId: focusedOptionId,
          focusableOptionsWithIds: focusableOptionsWithIds,
          focusedValue: focusedValue,
          clearFocusValueOnUpdate: false
        };
      }
      // some updates should toggle the state of the input visibility
      var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {
        inputIsHidden: inputIsHiddenAfterUpdate,
        inputIsHiddenAfterUpdate: undefined
      } : {};
      var newAriaSelection = ariaSelection;
      var hasKeptFocus = isFocused && prevWasFocused;
      if (isFocused && !hasKeptFocus) {
        // If `value` or `defaultValue` props are not empty then announce them
        // when the Select is initially focused
        newAriaSelection = {
          value: valueTernary(isMulti, selectValue, selectValue[0] || null),
          options: selectValue,
          action: 'initial-input-focus'
        };
        hasKeptFocus = !prevWasFocused;
      }

      // If the 'initial-input-focus' action has been set already
      // then reset the ariaSelection to null
      if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {
        newAriaSelection = null;
      }
      return objectSpread2_objectSpread2(objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, newMenuOptionsState), newInputIsHiddenState), {}, {
        prevProps: props,
        ariaSelection: newAriaSelection,
        prevWasFocused: hasKeptFocus
      });
    }
  }]);
  return Select;
}(external_React_.Component);
Select.defaultProps = defaultProps;



;// ./node_modules/react-select/dist/react-select.esm.js


























var StateManagedSelect = /*#__PURE__*/(0,external_React_.forwardRef)(function (props, ref) {
  var baseSelectProps = useStateManager(props);
  return /*#__PURE__*/external_React_.createElement(Select, extends_extends({
    ref: ref
  }, baseSelectProps));
});
var StateManagedSelect$1 = StateManagedSelect;

var NonceProvider = (function (_ref) {
  var nonce = _ref.nonce,
    children = _ref.children,
    cacheKey = _ref.cacheKey;
  var emotionCache = useMemo(function () {
    return createCache({
      key: cacheKey,
      nonce: nonce
    });
  }, [cacheKey, nonce]);
  return /*#__PURE__*/React.createElement(CacheProvider, {
    value: emotionCache
  }, children);
});



;// ./node_modules/clsx/dist/clsx.m.js
function admin_r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=admin_r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=admin_r(e))&&(n&&(n+=" "),n+=t);return n}/* harmony default export */ const clsx_m = (clsx);
;// ./node_modules/react-contexify/dist/react-contexify.esm.js
/* provided dependency */ var process = __webpack_require__(5606);



function react_contexify_esm_extends() {
  react_contexify_esm_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return react_contexify_esm_extends.apply(this, arguments);
}

function react_contexify_esm_objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

var Context = /*#__PURE__*/(0,external_React_.createContext)({});
/**
 * Access parent ref tracker.
 */

function useRefTrackerContext() {
  return (0,external_React_.useContext)(Context);
}
var RefTrackerProvider = function RefTrackerProvider(props) {
  return external_React_default().createElement(Context.Provider, {
    value: props.refTracker
  }, props.children);
};

function createEventManager() {
  var eventList = new Map();
  return {
    on: function on(event, handler) {
      var _eventList$get;

      //eslint-disable-next-line @typescript-eslint/no-unused-expressions
      eventList.has(event) ? (_eventList$get = eventList.get(event)) == null ? void 0 : _eventList$get.add(handler) : eventList.set(event, new Set([handler]));
      return this;
    },
    off: function off(event, handler) {
      handler ? eventList.get(event)["delete"](handler) : eventList["delete"](event);
      return this;
    },
    emit: function emit(event, args) {
      if (process.env.NODE !== 'production') {
        var currentEv = event;

        if (!eventList.has(event) && currentEv !== 0
        /* HIDE_ALL */
        ) {
            console.error("It seems that the menu you are trying to display is not renderer or you have a menu id mismatch.", "You used the menu id: " + event);
          }
      }

      eventList.has(event) && eventList.get(event).forEach(function (handler) {
        handler(args);
      });
      return this;
    }
  };
}

var eventManager = /*#__PURE__*/createEventManager();

function usePrevious(value) {
  var ref = (0,external_React_.useRef)();
  (0,external_React_.useEffect)(function () {
    ref.current = value;
  }, [value]);
  return ref.current;
}

/**
 * Used to store children refs
 */

function useRefTracker() {
  return (0,external_React_.useRef)(new Map()).current;
}

var contextMenu = {
  show: function show(_ref) {
    var id = _ref.id,
        event = _ref.event,
        props = _ref.props,
        position = _ref.position;
    if (event.preventDefault) event.preventDefault();
    eventManager.emit(0
    /* HIDE_ALL */
    ).emit(id, {
      event: event.nativeEvent || event,
      props: props,
      position: position
    });
  },
  hideAll: function hideAll() {
    eventManager.emit(0
    /* HIDE_ALL */
    );
  }
};

function useContextMenu(props) {
  return {
    show: function show(event, params) {
      if (false) // removed by dead control flow
{}

      contextMenu.show({
        id: (params == null ? void 0 : params.id) || (props == null ? void 0 : props.id),
        props: (params == null ? void 0 : params.props) || (props == null ? void 0 : props.props),
        event: event,
        position: params == null ? void 0 : params.position
      });
    },
    hideAll: function hideAll() {
      contextMenu.hideAll();
    }
  };
}

/**
 * Used to control keyboard navigation
 */
function createMenuController() {
  var menuList = new Map();
  var focusedIndex;
  var parentNode;
  var isAtRoot;
  var currentItems;
  var forceCloseSubmenu = false;

  function init(rootMenu) {
    currentItems = rootMenu;
    focusedIndex = -1;
    isAtRoot = true;
  }

  function focusSelectedItem() {
    currentItems[focusedIndex].node.focus();
  }

  function isSubmenuFocused() {
    return focusedIndex >= 0 && currentItems[focusedIndex].isSubmenu;
  }

  function getSubmenuItems() {
    return Array.from(currentItems[focusedIndex].submenuRefTracker.values());
  }

  function isFocused() {
    if (focusedIndex === -1) {
      // focus first item
      moveDown();
      return false;
    }

    return true;
  }

  function moveDown() {
    if (focusedIndex + 1 < currentItems.length) {
      focusedIndex++;
    } else if (focusedIndex + 1 === currentItems.length) {
      focusedIndex = 0;
    }

    if (forceCloseSubmenu) closeSubmenu();
    focusSelectedItem();
  }

  function moveUp() {
    if (focusedIndex === -1 || focusedIndex === 0) {
      focusedIndex = currentItems.length - 1;
    } else if (focusedIndex - 1 < currentItems.length) {
      focusedIndex--;
    }

    if (forceCloseSubmenu) closeSubmenu();
    focusSelectedItem();
  }

  function openSubmenu() {
    if (isFocused() && isSubmenuFocused()) {
      var submenuItems = getSubmenuItems();
      var currentNode = currentItems[focusedIndex].node;
      menuList.set(currentNode, {
        isRoot: isAtRoot,
        focusedIndex: focusedIndex,
        parentNode: parentNode || currentNode,
        items: currentItems
      });
      currentNode.classList.add("react-contexify__submenu--is-open"
      /* submenuOpen */
      );
      parentNode = currentNode;

      if (submenuItems.length > 0) {
        focusedIndex = 0;
        currentItems = submenuItems;
      } else {
        forceCloseSubmenu = true;
      }

      isAtRoot = false;
      focusSelectedItem();
      return true;
    }

    return false;
  }

  function closeSubmenu() {
    if (isFocused() && !isAtRoot) {
      var _menuList$get = menuList.get(parentNode),
          isRoot = _menuList$get.isRoot,
          items = _menuList$get.items,
          parentFocusedIndex = _menuList$get.focusedIndex,
          menuParentNode = _menuList$get.parentNode;

      parentNode.classList.remove("react-contexify__submenu--is-open"
      /* submenuOpen */
      );
      currentItems = items;
      parentNode = menuParentNode;

      if (isRoot) {
        isAtRoot = true;
        menuList.clear();
      }

      if (!forceCloseSubmenu) {
        focusedIndex = parentFocusedIndex;
        focusSelectedItem();
      }
    }
  }

  return {
    init: init,
    moveDown: moveDown,
    moveUp: moveUp,
    openSubmenu: openSubmenu,
    closeSubmenu: closeSubmenu
  };
}

var theme = {
  light: 'light',
  dark: 'dark'
};
var animation = {
  fade: 'fade',
  flip: 'flip',
  scale: 'scale',
  slide: 'slide'
};
var NOOP = function NOOP() {};

function isFn(v) {
  return typeof v === 'function';
}
function isStr(v) {
  return typeof v === 'string';
}
function isTouchEvent(e) {
  return e.type === 'touchend';
}
function cloneItems(children, props) {
  return external_React_.Children.map( // remove null item
  external_React_.Children.toArray(children).filter(Boolean), function (item) {
    return (0,external_React_.cloneElement)(item, props);
  });
}
function getMousePosition(e) {
  var pos = {
    x: 0,
    y: 0
  };

  if (isTouchEvent(e) && e.changedTouches && e.changedTouches.length > 0) {
    pos.x = e.changedTouches[0].clientX;
    pos.y = e.changedTouches[0].clientY;
  } else {
    pos.x = e.clientX;
    pos.y = e.clientY;
  }

  if (!pos.x || pos.x < 0) pos.x = 0;
  if (!pos.y || pos.y < 0) pos.y = 0;
  return pos;
}
function getPredicateValue(predicate, payload) {
  return isFn(predicate) ? predicate(payload) : predicate;
}
function hasExitAnimation(animation) {
  return !!(animation && (isStr(animation) || 'exit' in animation && animation.exit));
}

function reducer(state, payload) {
  return isFn(payload) ? react_contexify_esm_extends({}, state, payload(state)) : react_contexify_esm_extends({}, state, payload);
}

var react_contexify_esm_Menu = function Menu(_ref) {
  var _cx3;

  var id = _ref.id,
      theme = _ref.theme,
      style = _ref.style,
      className = _ref.className,
      children = _ref.children,
      _ref$animation = _ref.animation,
      animation = _ref$animation === void 0 ? 'scale' : _ref$animation,
      _ref$onHidden = _ref.onHidden,
      onHidden = _ref$onHidden === void 0 ? NOOP : _ref$onHidden,
      _ref$onShown = _ref.onShown,
      onShown = _ref$onShown === void 0 ? NOOP : _ref$onShown,
      rest = react_contexify_esm_objectWithoutPropertiesLoose(_ref, ["id", "theme", "style", "className", "children", "animation", "onHidden", "onShown"]);

  var _useReducer = (0,external_React_.useReducer)(reducer, {
    x: 0,
    y: 0,
    visible: false,
    triggerEvent: {},
    propsFromTrigger: null,
    willLeave: false
  }),
      state = _useReducer[0],
      setState = _useReducer[1];

  var nodeRef = (0,external_React_.useRef)(null);
  var didMount = (0,external_React_.useRef)(false);
  var wasVisible = usePrevious(state.visible);
  var refTracker = useRefTracker();

  var _useState = (0,external_React_.useState)(function () {
    return createMenuController();
  }),
      menuController = _useState[0]; // subscribe event manager


  (0,external_React_.useEffect)(function () {
    didMount.current = true;
    eventManager.on(id, show).on(0
    /* HIDE_ALL */
    , hide);
    return function () {
      eventManager.off(id, show).off(0
      /* HIDE_ALL */
      , hide);
    }; // hide rely on setState(dispatch), which is guaranted to be the same across render
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [id]); // handle show/ hide callback

  (0,external_React_.useEffect)(function () {
    if (didMount.current && state.visible !== wasVisible) {
      state.visible ? onShown() : onHidden();
    } // wasWisible is a ref
    // eslint-disable-next-line react-hooks/exhaustive-deps

  }, [state.visible, onHidden, onShown]); // collect menu items for keyboard navigation

  (0,external_React_.useEffect)(function () {
    if (!state.visible) {
      refTracker.clear();
    } else {
      menuController.init(Array.from(refTracker.values()));
    }
  }, [state.visible, menuController, refTracker]); // compute menu position

  (0,external_React_.useEffect)(function () {
    if (state.visible) {
      var _window = window,
          windowWidth = _window.innerWidth,
          windowHeight = _window.innerHeight;
      var _nodeRef$current = nodeRef.current,
          menuWidth = _nodeRef$current.offsetWidth,
          menuHeight = _nodeRef$current.offsetHeight;
      var _x = state.x,
          _y = state.y;

      if (_x + menuWidth > windowWidth) {
        _x -= _x + menuWidth - windowWidth;
      }

      if (_y + menuHeight > windowHeight) {
        _y -= _y + menuHeight - windowHeight;
      }

      setState({
        x: _x,
        y: _y
      });
    } // state.visible and state{x,y} are updated together
    // eslint-disable-next-line react-hooks/exhaustive-deps

  }, [state.visible]); // subscribe dom events

  (0,external_React_.useEffect)(function () {
    function handleKeyboard(e) {
      e.preventDefault();

      switch (e.key) {
        case 'Enter':
          if (!menuController.openSubmenu()) hide();
          break;

        case 'Escape':
          hide();
          break;

        case 'ArrowUp':
          menuController.moveUp();
          break;

        case 'ArrowDown':
          menuController.moveDown();
          break;

        case 'ArrowRight':
          menuController.openSubmenu();
          break;

        case 'ArrowLeft':
          menuController.closeSubmenu();
          break;
      }
    }

    if (state.visible) {
      window.addEventListener('resize', hide);
      window.addEventListener('contextmenu', hide);
      window.addEventListener('click', hide);
      window.addEventListener('scroll', hide);
      window.addEventListener('keydown', handleKeyboard); // This let us debug the menu in the console in dev mode

      if (true) {
        window.addEventListener('blur', hide);
      }
    }

    return function () {
      window.removeEventListener('resize', hide);
      window.removeEventListener('contextmenu', hide);
      window.removeEventListener('click', hide);
      window.removeEventListener('scroll', hide);
      window.removeEventListener('keydown', handleKeyboard);

      if (true) {
        window.removeEventListener('blur', hide);
      }
    }; // state.visible will let us get the right reference to `hide`
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [state.visible, menuController]);

  function show(_ref2) {
    var event = _ref2.event,
        props = _ref2.props,
        position = _ref2.position;
    event.stopPropagation();

    var _ref3 = position || getMousePosition(event),
        x = _ref3.x,
        y = _ref3.y; // prevent react from batching the state update
    // if the menu is already visible we have to recompute bounding rect based on position


    setTimeout(function () {
      setState({
        visible: true,
        willLeave: false,
        x: x,
        y: y,
        triggerEvent: event,
        propsFromTrigger: props
      });
    }, 0);
  }

  function hide(event) {
    // Safari trigger a click event when you ctrl + trackpad
    // Firefox:  trigger a click event when right click occur
    var e = event;

    if (typeof e !== 'undefined' && (e.button === 2 || e.ctrlKey === true) && e.type !== 'contextmenu') {
      return;
    }

    hasExitAnimation(animation) ? setState(function (state) {
      return {
        willLeave: state.visible
      };
    }) : setState(function (state) {
      return {
        visible: state.visible ? false : state.visible
      };
    });
  }

  function handleAnimationEnd() {
    if (state.willLeave && state.visible) {
      setState({
        visible: false,
        willLeave: false
      });
    }
  }

  function computeAnimationClasses() {
    if (!animation) return null;

    if (isStr(animation)) {
      var _cx;

      return clsx_m((_cx = {}, _cx["react-contexify__will-enter--"
      /* animationWillEnter */
      + animation] = animation && visible && !willLeave, _cx["react-contexify__will-leave--"
      /* animationWillLeave */
      + animation + " " + "react-contexify__will-leave--"
      /* animationWillLeave */
      + "'disabled'"] = animation && visible && willLeave, _cx));
    } else if ('enter' in animation && 'exit' in animation) {
      var _cx2;

      return clsx_m((_cx2 = {}, _cx2["react-contexify__will-enter--"
      /* animationWillEnter */
      + animation.enter] = animation.enter && visible && !willLeave, _cx2["react-contexify__will-leave--"
      /* animationWillLeave */
      + animation.exit + " " + "react-contexify__will-leave--"
      /* animationWillLeave */
      + "'disabled'"] = animation.exit && visible && willLeave, _cx2));
    }

    return null;
  }

  var visible = state.visible,
      triggerEvent = state.triggerEvent,
      propsFromTrigger = state.propsFromTrigger,
      x = state.x,
      y = state.y,
      willLeave = state.willLeave;
  var cssClasses = clsx_m("react-contexify"
  /* menu */
  , className, (_cx3 = {}, _cx3["react-contexify__theme--"
  /* theme */
  + theme] = theme, _cx3), computeAnimationClasses());

  var menuStyle = react_contexify_esm_extends({}, style, {
    left: x,
    top: y,
    opacity: 1
  });

  return external_React_default().createElement(RefTrackerProvider, {
    refTracker: refTracker
  }, visible && external_React_default().createElement("div", Object.assign({}, rest, {
    className: cssClasses,
    onAnimationEnd: handleAnimationEnd,
    style: menuStyle,
    ref: nodeRef,
    role: "menu"
  }), cloneItems(children, {
    propsFromTrigger: propsFromTrigger,
    triggerEvent: triggerEvent
  })));
};

var Item = function Item(_ref) {
  var _cx;

  var children = _ref.children,
      className = _ref.className,
      style = _ref.style,
      triggerEvent = _ref.triggerEvent,
      data = _ref.data,
      propsFromTrigger = _ref.propsFromTrigger,
      _ref$onClick = _ref.onClick,
      onClick = _ref$onClick === void 0 ? NOOP : _ref$onClick,
      _ref$disabled = _ref.disabled,
      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
      _ref$hidden = _ref.hidden,
      hidden = _ref$hidden === void 0 ? false : _ref$hidden,
      rest = react_contexify_esm_objectWithoutPropertiesLoose(_ref, ["children", "className", "style", "triggerEvent", "data", "propsFromTrigger", "onClick", "disabled", "hidden"]);

  var refTracker = useRefTrackerContext();
  var handlerParams = {
    data: data,
    triggerEvent: triggerEvent,
    props: propsFromTrigger
  };
  var isDisabled = getPredicateValue(disabled, handlerParams);
  var isHidden = getPredicateValue(hidden, handlerParams);

  function handleClick(e) {
    handlerParams.event = e;
    isDisabled ? e.stopPropagation() : onClick(handlerParams);
  }

  function trackRef(node) {
    if (node && !isDisabled) refTracker.set(node, {
      node: node,
      isSubmenu: false
    });
  }

  function handleKeyDown(e) {
    if (e.key === 'Enter') {
      handlerParams.event = e;
      onClick(handlerParams);
    }
  }

  if (isHidden) return null;
  var cssClasses = clsx_m("react-contexify__item"
  /* item */
  , className, (_cx = {}, _cx["react-contexify__item--disabled"
  /* itemDisabled */
  ] = isDisabled, _cx));
  return external_React_default().createElement("div", Object.assign({}, rest, {
    className: cssClasses,
    style: style,
    onClick: handleClick,
    onKeyDown: handleKeyDown,
    ref: trackRef,
    tabIndex: -1,
    role: "menuitem",
    "aria-disabled": isDisabled
  }), external_React_default().createElement("div", {
    className: "react-contexify__item__content"
    /* itemContent */

  }, children));
};

function Separator() {
  return React.createElement("div", {
    className: "react-contexify__separator"
    /* separator */

  });
}

var Submenu = function Submenu(_ref) {
  var _cx;

  var _ref$arrow = _ref.arrow,
      arrow = _ref$arrow === void 0 ? '▶' : _ref$arrow,
      children = _ref.children,
      _ref$disabled = _ref.disabled,
      disabled = _ref$disabled === void 0 ? false : _ref$disabled,
      _ref$hidden = _ref.hidden,
      hidden = _ref$hidden === void 0 ? false : _ref$hidden,
      label = _ref.label,
      className = _ref.className,
      triggerEvent = _ref.triggerEvent,
      propsFromTrigger = _ref.propsFromTrigger,
      style = _ref.style,
      rest = react_contexify_esm_objectWithoutPropertiesLoose(_ref, ["arrow", "children", "disabled", "hidden", "label", "className", "triggerEvent", "propsFromTrigger", "style"]);

  var menuRefTracker = useRefTrackerContext();
  var refTracker = useRefTracker();
  var nodeRef = (0,external_React_.useRef)(null);

  var _useState = (0,external_React_.useState)({
    left: '100%',
    top: 0,
    bottom: 'initial'
  }),
      position = _useState[0],
      setPosition = _useState[1];

  var handlerParams = {
    triggerEvent: triggerEvent,
    props: propsFromTrigger
  };
  var isDisabled = getPredicateValue(disabled, handlerParams);
  var isHidden = getPredicateValue(hidden, handlerParams);
  (0,external_React_.useEffect)(function () {
    if (nodeRef.current) {
      var _window = window,
          innerWidth = _window.innerWidth,
          innerHeight = _window.innerHeight;
      var rect = nodeRef.current.getBoundingClientRect();
      var _style = {};

      if (rect.right < innerWidth) {
        _style.left = '100%';
        _style.right = undefined;
      } else {
        _style.right = '100%';
        _style.left = undefined;
      }

      if (rect.bottom > innerHeight) {
        _style.bottom = 0;
        _style.top = 'initial';
      } else {
        _style.bottom = 'initial';
      }

      setPosition(_style);
    }
  }, []);

  function handleClick(e) {
    e.stopPropagation();
  }

  function trackRef(node) {
    if (node && !isDisabled) menuRefTracker.set(node, {
      node: node,
      isSubmenu: true,
      submenuRefTracker: refTracker
    });
  }

  if (isHidden) return null;
  var cssClasses = clsx_m("react-contexify__item"
  /* item */
  , className, (_cx = {}, _cx["react-contexify__item--disabled"
  /* itemDisabled */
  ] = isDisabled, _cx));

  var submenuStyle = react_contexify_esm_extends({}, style, position);

  return external_React_default().createElement(RefTrackerProvider, {
    refTracker: refTracker
  }, external_React_default().createElement("div", Object.assign({}, rest, {
    className: cssClasses,
    ref: trackRef,
    tabIndex: -1,
    role: "menuitem",
    "aria-haspopup": true,
    "aria-disabled": isDisabled
  }), external_React_default().createElement("div", {
    className: "react-contexify__item__content"
    /* itemContent */
    ,
    onClick: handleClick
  }, label, external_React_default().createElement("span", {
    className: "react-contexify__submenu-arrow"
    /* submenuArrow */

  }, arrow)), external_React_default().createElement("div", {
    className: "react-contexify react-contexify__submenu"
    /* submenu */
    ,
    ref: nodeRef,
    style: submenuStyle
  }, cloneItems(children, {
    propsFromTrigger: propsFromTrigger,
    // injected by the parent
    triggerEvent: triggerEvent
  }))));
};


//# sourceMappingURL=react-contexify.esm.js.map

// EXTERNAL MODULE: ./src/js/includes/functions.js
var functions = __webpack_require__(9116);
// EXTERNAL MODULE: ./src/js/includes/ProModal.js
var ProModal = __webpack_require__(3117);
;// ./src/js/components/App/Header.js
function Header_typeof(o) { "@babel/helpers - typeof"; return Header_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Header_typeof(o); }
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
function Header_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Header_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Header_ownKeys(Object(t), !0).forEach(function (r) { Header_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Header_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Header_defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == Header_typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != Header_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Header_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }






var _wp$components = wp.components,
  Spinner = _wp$components.Spinner,
  Button = _wp$components.Button,
  ButtonGroup = _wp$components.ButtonGroup;
var _React = React,
  Header_useContext = _React.useContext,
  useEffect = _React.useEffect;
var MENU_ID = "embed-context-menu";
function Header() {
  var _playerTypes$type, _playerTypes$type2;
  var isPro = smp.isPro;
  var context = Header_useContext(contexts_AppContext);
  var players = context.players,
    edit = context.edit,
    setEdit = context.setEdit,
    editData = context.editData,
    setEditData = context.setEditData,
    updating = context.updating,
    updatePlayer = context.updatePlayer,
    isDirty = context.isDirty,
    setOpenTypeModal = context.setOpenTypeModal;
  var _ref = editData || {},
    id = _ref.id,
    title = _ref.title,
    type = _ref.type;
  var _useContextMenu = useContextMenu({
      id: MENU_ID
    }),
    show = _useContextMenu.show;
  useEffect(function () {
    if (edit) {
      var _document$getElementB;
      (_document$getElementB = document.getElementById("shortcode-title")) === null || _document$getElementB === void 0 || _document$getElementB.focus();
    }
  }, [edit]);

  // Handle title change
  useEffect(function () {
    var input = document.getElementById("shortcode-title");
    if (input && (input === null || input === void 0 ? void 0 : input.innerText) !== title) {
      input.innerText = title;
    }
  }, [title]);
  var handleBack = function handleBack() {
    (0,functions/* removeIdParam */.J8)();
    setEdit(null);
  };
  var selectPage = /*#__PURE__*/function () {
    var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
      var pages, options, selectedPageId, _t;
      return _regenerator().w(function (_context) {
        while (1) switch (_context.n) {
          case 0:
            _context.p = 0;
            _context.n = 1;
            return wp.ajax.post('smp_get_pages', {
              nonce: smp.nonce
            });
          case 1:
            pages = _context.v;
            options = pages.map(function (page) {
              return {
                value: page.id,
                label: page.title
              };
            });
            selectedPageId = null;
            Swal.fire({
              title: wp.i18n.__("Select a Page", "soft-multimedia-player"),
              html: "\n                        <p>".concat(wp.i18n.__("Select a page to embed the shortcode.", "soft-multimedia-player"), "</p>\n                        <div id=\"react-select-container\"></div>\n                      "),
              didOpen: function didOpen() {
                var container = document.getElementById('react-select-container');
                if (container) {
                  var root = wp.element.createRoot(container);
                  root.render(wp.element.createElement(StateManagedSelect$1, {
                    options: options,
                    onChange: function onChange(selected) {
                      selectedPageId = selected === null || selected === void 0 ? void 0 : selected.value;
                    },
                    placeholder: wp.i18n.__('Search and select a page...', 'soft-multimedia-player'),
                    isSearchable: true,
                    className: 'smp-select',
                    menuPortalTarget: document.body,
                    styles: {
                      container: function container(base) {
                        return Header_objectSpread(Header_objectSpread({}, base), {}, {
                          width: '100%',
                          zIndex: 10000
                        });
                      },
                      menuPortal: function menuPortal(base) {
                        return Header_objectSpread(Header_objectSpread({}, base), {}, {
                          zIndex: 999999
                        });
                      }
                    }
                  }));
                }
              },
              preConfirm: function preConfirm() {
                if (!selectedPageId) {
                  Swal.showValidationMessage(wp.i18n.__("Please select a page.", "soft-multimedia-player"));
                  return false;
                }
                window.location.href = "".concat(smp.adminUrl, "/post.php?post=").concat(selectedPageId, "&action=edit");
              },
              confirmButtonText: wp.i18n.__("Let's Go", "soft-multimedia-player"),
              showCloseButton: true,
              customClass: {
                container: "smp-swal no-icon"
              }
            });
            _context.n = 3;
            break;
          case 2:
            _context.p = 2;
            _t = _context.v;
            Swal.showValidationMessage(wp.i18n.__("Please select a page.", "soft-multimedia-player"));
          case 3:
            return _context.a(2);
        }
      }, _callee, null, [[0, 2]]);
    }));
    return function selectPage() {
      return _ref2.apply(this, arguments);
    };
  }();
  var createPage = function createPage() {
    Swal.fire({
      title: wp.i18n.__("Create New Page", "soft-multimedia-player"),
      text: wp.i18n.__("Enter the title for the new page.", "soft-multimedia-player"),
      input: 'text',
      inputPlaceholder: wp.i18n.__("Enter page title", "soft-multimedia-player"),
      confirmButtonText: wp.i18n.__("Let's Go", "soft-multimedia-player"),
      showCloseButton: true,
      customClass: {
        container: "smp-swal no-icon"
      },
      preConfirm: function preConfirm(title) {
        var data = {
          title: title,
          id: id,
          nonce: smp.nonce
        };
        return wp.ajax.post('smp_create_page', data).then(function (response) {
          window.location.href = "".concat(smp.adminUrl, "/post.php?post=").concat(response.id, "&action=edit");
        })["catch"](function (err) {
          console.log(err);
          Swal.showValidationMessage(wp.i18n.__("Failed to create page.", "soft-multimedia-player"));
        });
      }
    });
  };
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-app__header"
  }, edit && /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "btn-back",
    onClick: handleBack
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-left-alt2"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Back", "soft-multimedia-player"))), /*#__PURE__*/React.createElement("div", {
    className: "header-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/multimedia-player-logo.png"),
    className: "header-icon ".concat(edit ? "edit" : "")
  }), !edit ? /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Multimedia Player", "soft-multimedia-player")) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("label", {
    htmlFor: "shortcode-title"
  }, wp.i18n.__("Edit Player", "soft-multimedia-player")), /*#__PURE__*/React.createElement("div", {
    className: "input-wrap"
  }, !!type && /*#__PURE__*/React.createElement("img", {
    className: "player-type-icon type-".concat(type),
    src: "".concat(smp.pluginUrl, "/assets/images/modules/").concat(type, ".svg"),
    alt: (_playerTypes$type = (0,functions/* playerTypes */.Fw)()[type]) === null || _playerTypes$type === void 0 ? void 0 : _playerTypes$type.title,
    onClick: function onClick() {
      return setOpenTypeModal('update');
    }
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: ".inxput-wrap img",
    place: "left",
    className: "smp-tooltip",
    content: (_playerTypes$type2 = (0,functions/* playerTypes */.Fw)()[type]) === null || _playerTypes$type2 === void 0 ? void 0 : _playerTypes$type2.title
  }), /*#__PURE__*/React.createElement("span", {
    id: "shortcode-title",
    className: "shortcode-title",
    contentEditable: true,
    suppressContentEditableWarning: true // suppress React warning
    ,
    spellCheck: false,
    onInput: function onInput(e) {
      setEditData(function (prev) {
        var _e$target;
        return Header_objectSpread(Header_objectSpread({}, prev), {}, {
          title: ((_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.innerText) === null || _e$target === void 0 ? void 0 : _e$target.trim()) || ''
        });
      });
    }
  })))), /*#__PURE__*/React.createElement("div", {
    className: "header-actions"
  }, !!edit ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ButtonGroup, {
    className: "smp-btn-group",
    "aria-label": wp.i18n.__("Player Actions", "soft-multimedia-player")
  }, /*#__PURE__*/React.createElement(Button, {
    variant: "primary",
    size: 'default',
    icon: "visibility",
    iconSize: 20,
    className: "view-type-btn",
    text: wp.i18n.__("View", "soft-multimedia-player"),
    label: wp.i18n.__("View Player", "soft-multimedia-player"),
    onClick: function onClick() {
      window.open("".concat(smp.homeUrl, "/player/").concat(id), "playere-".concat(id));
    }
  }), /*#__PURE__*/React.createElement(Button, {
    variant: "primary",
    size: 'default',
    className: "embed-btn",
    icon: "embed-post",
    iconSize: 20,
    text: wp.i18n.__("Embed", "soft-multimedia-player"),
    label: wp.i18n.__("Embed Player", "soft-multimedia-player"),
    onClick: function onClick(e) {
      return show(e);
    }
  })), /*#__PURE__*/React.createElement(react_contexify_esm_Menu, {
    id: MENU_ID,
    animation: animation.fade,
    className: "smp-context-menu embed-context-menu"
  }, /*#__PURE__*/React.createElement(Item, {
    onClick: function onClick() {
      return (0,functions/* copyText */.Dk)("".concat(smp.homeUrl, "/player/").concat(id), wp.i18n.__("View URL copied to clipboard", "soft-multimedia-player"));
    },
    className: "context-menu-item"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-admin-links"
  }), wp.i18n.__("Copy View URL", "soft-multimedia-player")), /*#__PURE__*/React.createElement(Item, {
    onClick: function onClick() {
      return (0,functions/* copyText */.Dk)("[multimedia_player id=\"".concat(id, "\"]"), wp.i18n.__("Shortcode copied to clipboard", "soft-multimedia-player"));
    },
    className: "context-menu-item"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-shortcode"
  }), wp.i18n.__("Copy Shortcode", "soft-multimedia-player")), /*#__PURE__*/React.createElement(Item, {
    onClick: function onClick() {
      if (!smp.isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to embed the player on any website or page.', 'soft-multimedia-player'));
        return;
      }
      (0,functions/* showEmbedModal */.so)(id);
    },
    className: "context-menu-item"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-editor-code"
  }), wp.i18n.__("Embed Code", "soft-multimedia-player")), /*#__PURE__*/React.createElement(Item, {
    className: "context-menu-item"
  }, /*#__PURE__*/React.createElement(Submenu, {
    label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-welcome-add-page"
    }), wp.i18n.__("Embed in Page", "soft-multimedia-player")),
    className: "context-submenu",
    arrow: /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-arrow-right"
    })
  }, /*#__PURE__*/React.createElement(Item, {
    onClick: selectPage,
    className: "context-menu-item"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-edit-page"
  }), wp.i18n.__("Select Existing Page", "soft-multimedia-player")), /*#__PURE__*/React.createElement(Item, {
    onClick: createPage,
    className: "context-menu-item"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-plus-alt2"
  }), wp.i18n.__("Create New Page", "soft-multimedia-player"))))), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn btn-save  ".concat(!isDirty ? "btn-secondary" : "btn-primary"),
    onClick: function onClick() {
      if (isDirty) {
        return updatePlayer(editData);
      }
      handleBack();
    }
  }, updating ? /*#__PURE__*/React.createElement("div", {
    className: "smp-spinner"
  }) : isDirty ? /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-saved"
  }) : /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-left-alt2"
  }), /*#__PURE__*/React.createElement("span", null, isDirty ? wp.i18n.__("Save", "soft-multimedia-player") : wp.i18n.__("Back", "soft-multimedia-player"))))) : /*#__PURE__*/React.createElement("button", {
    "data-tooltip-id": "add-new-pro",
    type: 'button',
    className: "smp-btn",
    onClick: function onClick() {
      if (!isPro && players.length >= 10) {
        (0,ProModal/* default */.A)(wp.i18n.__("You can't add more than 10 players in the free version.", "multimedia-player"));
        return;
      }
      setOpenTypeModal('new');
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-plus"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Add New Player", "soft-multimedia-player")))));
}
;// ./src/js/includes/Pagination/usePagination.js
function usePagination_toConsumableArray(r) { return usePagination_arrayWithoutHoles(r) || usePagination_iterableToArray(r) || usePagination_unsupportedIterableToArray(r) || usePagination_nonIterableSpread(); }
function usePagination_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function usePagination_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return usePagination_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? usePagination_arrayLikeToArray(r, a) : void 0; } }
function usePagination_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function usePagination_arrayWithoutHoles(r) { if (Array.isArray(r)) return usePagination_arrayLikeToArray(r); }
function usePagination_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
var usePagination_React = React,
  usePagination_useMemo = usePagination_React.useMemo;
var DOTS = '...';
var range = function range(start, end) {
  var length = end - start + 1;
  return Array.from({
    length: length
  }, function (_, idx) {
    return idx + start;
  });
};
var usePagination = function usePagination(_ref) {
  var pageCount = _ref.pageCount,
    _ref$siblingCount = _ref.siblingCount,
    siblingCount = _ref$siblingCount === void 0 ? 1 : _ref$siblingCount,
    currentPage = _ref.currentPage;
  var paginationRange = usePagination_useMemo(function () {
    // Pages count is determined as siblingCount + firstPage + lastPage + currentPage + 2*DOTS
    var totalPageNumbers = siblingCount + 5;

    /*
      If the number of pages is less than the page numbers we want to show in our
      paginationComponent, we return the range [1..pageCount]
    */
    if (totalPageNumbers >= pageCount) {
      return range(1, pageCount);
    }
    var leftSiblingIndex = Math.max(currentPage - siblingCount, 1);
    var rightSiblingIndex = Math.min(currentPage + siblingCount, pageCount);

    /*
      We do not want to show dots if there is only one position left
      after/before the left/right page count as that would lead to a change if our Pagination
      component size which we do not want
    */
    var shouldShowLeftDots = leftSiblingIndex > 2;
    var shouldShowRightDots = rightSiblingIndex < pageCount - 2;
    var firstPageIndex = 1;
    var lastPageIndex = pageCount;
    if (!shouldShowLeftDots && shouldShowRightDots) {
      var leftItemCount = 2 + 2 * siblingCount;
      var leftRange = range(1, leftItemCount);
      return [].concat(usePagination_toConsumableArray(leftRange), [DOTS, pageCount]);
    }
    if (shouldShowLeftDots && !shouldShowRightDots) {
      var rightItemCount = 2 + 2 * siblingCount;
      var rightRange = range(pageCount - rightItemCount + 1, pageCount);
      return [firstPageIndex, DOTS].concat(usePagination_toConsumableArray(rightRange));
    }
    if (shouldShowLeftDots && shouldShowRightDots) {
      var middleRange = range(leftSiblingIndex, rightSiblingIndex);
      return [firstPageIndex, DOTS].concat(usePagination_toConsumableArray(middleRange), [DOTS, lastPageIndex]);
    }
  }, [pageCount, siblingCount, currentPage]);
  return paginationRange;
};
;// ./src/js/includes/Pagination/Pagination.js

var Pagination = function Pagination(props) {
  var onPageChange = props.onPageChange,
    pageCount = props.pageCount,
    _props$siblingCount = props.siblingCount,
    siblingCount = _props$siblingCount === void 0 ? 1 : _props$siblingCount,
    _props$currentPage = props.currentPage,
    currentPage = _props$currentPage === void 0 ? 1 : _props$currentPage,
    className = props.className;
  var paginationRange = usePagination({
    pageCount: pageCount,
    siblingCount: siblingCount,
    currentPage: currentPage
  });
  if (currentPage === 0 || paginationRange.length < 2) {
    return null;
  }
  var onNext = function onNext() {
    onPageChange(currentPage + 1);
  };
  var onPrevious = function onPrevious() {
    onPageChange(currentPage - 1);
  };
  var lastPage = paginationRange[paginationRange.length - 1];
  return /*#__PURE__*/React.createElement("ul", {
    className: "pagination-container ".concat(className ? className : '')
  }, /*#__PURE__*/React.createElement("li", {
    className: "pagination-item ".concat(currentPage === 1 ? 'disabled' : ''),
    onClick: function onClick() {
      return currentPage !== 1 && onPrevious();
    }
  }, /*#__PURE__*/React.createElement("svg", {
    height: "15px",
    width: "15px",
    xmlns: "http://www.w3.org/2000/svg",
    x: "0px",
    y: "0px",
    viewBox: "0 0 490.787 490.787"
  }, /*#__PURE__*/React.createElement("pat", {
    d: "M362.671,490.787c-2.831,0.005-5.548-1.115-7.552-3.115L120.452,253.006c-4.164-4.165-4.164-10.917,0-15.083L355.119,3.256c4.093-4.237,10.845-4.354,15.083-0.262c4.237,4.093,4.354,10.845,0.262,15.083c-0.086,0.089-0.173,0.176-0.262,0.262L143.087,245.454l227.136,227.115c4.171,4.16,4.179,10.914,0.019,15.085C368.236,489.664,365.511,490.792,362.671,490.787z"
  }), /*#__PURE__*/React.createElement("path", {
    d: "M362.671,490.787c-2.831,0.005-5.548-1.115-7.552-3.115L120.452,253.006c-4.164-4.165-4.164-10.917,0-15.083L355.119,3.256c4.093-4.237,10.845-4.354,15.083-0.262c4.237,4.093,4.354,10.845,0.262,15.083c-0.086,0.089-0.173,0.176-0.262,0.262L143.087,245.454l227.136,227.115c4.171,4.16,4.179,10.914,0.019,15.085C368.236,489.664,365.511,490.792,362.671,490.787z"
  }))), paginationRange.map(function (pageNumber) {
    if (pageNumber === DOTS) {
      return /*#__PURE__*/React.createElement("li", {
        key: pageNumber,
        className: "pagination-item dots"
      }, "\u2026");
    }
    return /*#__PURE__*/React.createElement("li", {
      key: pageNumber,
      className: "pagination-item ".concat(pageNumber === currentPage ? 'selected' : ''),
      onClick: function onClick() {
        return onPageChange(pageNumber);
      }
    }, pageNumber);
  }), /*#__PURE__*/React.createElement("li", {
    className: "pagination-item ".concat(currentPage === lastPage ? 'disabled' : ''),
    onClick: function onClick() {
      return currentPage !== lastPage && onNext();
    }
  }, /*#__PURE__*/React.createElement("svg", {
    height: "15px",
    width: "15px",
    xmlns: "http://www.w3.org/2000/svg",
    x: "0px",
    y: "0px",
    viewBox: "0 0 490.8 490.8"
  }, /*#__PURE__*/React.createElement("path", {
    d: "M135.685,3.128c-4.237-4.093-10.99-3.975-15.083,0.262c-3.992,4.134-3.992,10.687,0,14.82l227.115,227.136L120.581,472.461c-4.237,4.093-4.354,10.845-0.262,15.083c4.093,4.237,10.845,4.354,15.083,0.262c0.089-0.086,0.176-0.173,0.262-0.262l234.667-234.667c4.164-4.165,4.164-10.917,0-15.083L135.685,3.128z"
  }), /*#__PURE__*/React.createElement("path", {
    d: "M128.133,490.68c-5.891,0.011-10.675-4.757-10.686-10.648c-0.005-2.84,1.123-5.565,3.134-7.571l227.136-227.115L120.581,18.232c-4.171-4.171-4.171-10.933,0-15.104c4.171-4.171,10.933-4.171,15.104,0l234.667,234.667c4.164,4.165,4.164,10.917,0,15.083L135.685,487.544C133.685,489.551,130.967,490.68,128.133,490.68z"
  }))));
};
/* harmony default export */ const Pagination_Pagination = (Pagination);
;// ./src/js/components/App/List.js
function List_typeof(o) { "@babel/helpers - typeof"; return List_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, List_typeof(o); }
function List_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function List_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? List_ownKeys(Object(t), !0).forEach(function (r) { List_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : List_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function List_defineProperty(e, r, t) { return (r = List_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function List_toPropertyKey(t) { var i = List_toPrimitive(t, "string"); return "symbol" == List_typeof(i) ? i : i + ""; }
function List_toPrimitive(t, r) { if ("object" != List_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != List_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function List_toConsumableArray(r) { return List_arrayWithoutHoles(r) || List_iterableToArray(r) || List_unsupportedIterableToArray(r) || List_nonIterableSpread(); }
function List_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function List_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function List_arrayWithoutHoles(r) { if (Array.isArray(r)) return List_arrayLikeToArray(r); }
function List_slicedToArray(r, e) { return List_arrayWithHoles(r) || List_iterableToArrayLimit(r, e) || List_unsupportedIterableToArray(r, e) || List_nonIterableRest(); }
function List_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function List_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return List_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? List_arrayLikeToArray(r, a) : void 0; } }
function List_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function List_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function List_arrayWithHoles(r) { if (Array.isArray(r)) return r; }





var List_wp$components = wp.components,
  FormToggle = List_wp$components.FormToggle,
  CheckboxControl = List_wp$components.CheckboxControl,
  SelectControl = List_wp$components.SelectControl,
  List_Button = List_wp$components.Button;
var List_React = React,
  List_useContext = List_React.useContext,
  useState = List_React.useState,
  List_useEffect = List_React.useEffect,
  useRef = List_React.useRef;
function List() {
  var isPro = smp.isPro;
  var context = List_useContext(contexts_AppContext);
  var players = context.players,
    deletePlayer = context.deletePlayer,
    setEdit = context.setEdit,
    updatePlayer = context.updatePlayer,
    page = context.page,
    setPage = context.setPage,
    perPage = context.perPage,
    setPerPage = context.setPerPage,
    sortBy = context.sortBy,
    setSortBy = context.setSortBy,
    sortOrder = context.sortOrder,
    setSortOrder = context.setSortOrder,
    duplicatePlayer = context.duplicatePlayer;
  var _useState = useState([]),
    _useState2 = List_slicedToArray(_useState, 2),
    filteredPlayers = _useState2[0],
    setFilteredPlayers = _useState2[1];
  var _useState3 = useState(0),
    _useState4 = List_slicedToArray(_useState3, 2),
    filteredTotal = _useState4[0],
    setFilteredTotal = _useState4[1];
  var _useState5 = useState(''),
    _useState6 = List_slicedToArray(_useState5, 2),
    searchTerm = _useState6[0],
    setSearchTerm = _useState6[1];
  var _useState7 = useState([]),
    _useState8 = List_slicedToArray(_useState7, 2),
    selectedPlayers = _useState8[0],
    setSelectedPlayers = _useState8[1];
  var _useState9 = useState(null),
    _useState0 = List_slicedToArray(_useState9, 2),
    lastCheckedIndex = _useState0[0],
    setLastCheckedIndex = _useState0[1];
  var initColumns = ['ID', 'type', 'status', 'shortcode', 'created'];
  var savedColumns = localStorage.getItem('smp_shortcode_list_columns');
  var _useState1 = useState(savedColumns ? JSON.parse(savedColumns) : initColumns),
    _useState10 = List_slicedToArray(_useState1, 2),
    columns = _useState10[0],
    setColumns = _useState10[1];
  List_useEffect(function () {
    localStorage.setItem('smp_shortcode_list_columns', JSON.stringify(columns));
  }, [columns]);
  List_useEffect(function () {
    var data = List_toConsumableArray(players);

    // 1. Search
    var term = searchTerm.trim().toLowerCase();
    if (term.length > 0) {
      data = data.filter(function (_ref) {
        var _config$type;
        var title = _ref.title,
          config = _ref.config;
        var t = (title === null || title === void 0 ? void 0 : title.toLowerCase()) || '';
        var type = (config === null || config === void 0 || (_config$type = config.type) === null || _config$type === void 0 ? void 0 : _config$type.toLowerCase()) || '';
        return t.includes(term) || type.includes(term);
      });
    }

    // 2. Sorting
    if (sortBy) {
      data.sort(function (a, b) {
        var aVal = a[sortBy];
        var bVal = b[sortBy];
        var isNumeric = sortBy === 'id';
        if (isNumeric) {
          return sortOrder === 'asc' ? Number(aVal) - Number(bVal) : Number(bVal) - Number(aVal);
        }
        return sortOrder === 'asc' ? String(aVal).localeCompare(String(bVal)) : String(bVal).localeCompare(String(aVal));
      });
    }
    var totalItems = data.length;

    // 3. Pagination
    var start = (page - 1) * perPage;
    var end = start + perPage;
    var paginated = data.slice(start, end);
    setFilteredPlayers(paginated);
    setFilteredTotal(totalItems);
  }, [players, searchTerm, sortBy, sortOrder, page, perPage]);
  return /*#__PURE__*/React.createElement("div", {
    className: "player-list-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-list-header"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "player-list-title"
  }, wp.i18n.__("All Players", "soft-multimedia-player"), /*#__PURE__*/React.createElement("span", {
    className: "shortcode-list-count"
  }, "(", filteredTotal === 0 ? 0 : (page - 1) * perPage + 1, "\u2013", Math.min(page * perPage, filteredTotal), " / ", filteredTotal, ")")), /*#__PURE__*/React.createElement("div", {
    className: "settings-per-page"
  }, /*#__PURE__*/React.createElement("h4", null, wp.i18n.__('Items Per Page', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(SelectControl, {
    value: perPage,
    options: [{
      label: '10',
      value: 10
    }, {
      label: '20',
      value: 20
    }, {
      label: '50',
      value: 50
    }, {
      label: '100',
      value: 100
    }],
    onChange: function onChange(value) {
      setPerPage(value);
      setPage(1);
      localStorage.setItem('igd_shortcode_list_per_page', value);
    }
  })), /*#__PURE__*/React.createElement("div", {
    className: "search-wrap"
  }, searchTerm && /*#__PURE__*/React.createElement("div", {
    className: "search-dismiss",
    onClick: function onClick() {
      setSearchTerm('');
    }
  }, /*#__PURE__*/React.createElement("svg", {
    width: "14",
    height: "14",
    viewBox: "0 0 12 12",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, /*#__PURE__*/React.createElement("path", {
    d: "M1.5 1.5L10.5 10.5M1.5 10.5L10.5 1.5L1.5 10.5Z",
    stroke: "#BABABA",
    strokeWidth: "2",
    strokeLinecap: "round",
    strokeLinejoin: "round"
  }))), /*#__PURE__*/React.createElement("input", {
    type: "text",
    value: searchTerm,
    className: "search-input",
    placeholder: wp.i18n.__("Search by title, type", 'soft-multimedia-player'),
    onChange: function onChange(e) {
      var value = e.target.value;
      setSearchTerm(value);
    }
  }), /*#__PURE__*/React.createElement("div", {
    className: "search-submit"
  }, /*#__PURE__*/React.createElement("svg", {
    width: "20",
    height: "20",
    viewBox: "0 0 21 21",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, /*#__PURE__*/React.createElement("circle", {
    cx: "9.7659",
    cy: "9.76639",
    r: "8.98856",
    stroke: "#3D3D3D",
    strokeWidth: "1.5",
    strokeLinecap: "round",
    strokeLinejoin: "round"
  }), /*#__PURE__*/React.createElement("path", {
    d: "M16.0176 16.4849L19.5416 19.9997",
    stroke: "#3D3D3D",
    strokeWidth: "1.5",
    strokeLinecap: "round",
    strokeLinejoin: "round"
  })))), /*#__PURE__*/React.createElement("div", {
    className: "smp-list-column-settings"
  }, /*#__PURE__*/React.createElement("i", {
    className: "column-settings-icon dashicons dashicons-admin-generic"
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: ".column-settings-icon",
    place: "left",
    variant: "light",
    clickable: true,
    border: "1px solid #ddd",
    scrollHide: false,
    className: "smp-tooltip list-settings-tooltip"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-wrap settings-columns"
  }, /*#__PURE__*/React.createElement("h4", null, wp.i18n.__('Columns', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "column-options"
  }, ['ID', 'type', 'status', 'shortcode', 'locations', 'created'].map(function (column, index) {
    return /*#__PURE__*/React.createElement("div", {
      className: "smp-column-setting",
      key: index
    }, /*#__PURE__*/React.createElement(CheckboxControl, {
      label: column,
      checked: columns.includes(column),
      onChange: function onChange() {
        var newColumns = columns.includes(column) ? columns.filter(function (item) {
          return item !== column;
        }) : [].concat(List_toConsumableArray(columns), [column]);
        setColumns(newColumns);
      }
    }));
  })))))), !!selectedPlayers.length && /*#__PURE__*/React.createElement("div", {
    className: "selection-actions-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "selection-count"
  }, selectedPlayers.length, " ", wp.i18n.__('Item(s) selected', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("button", {
    className: "smp-btn btn-warning",
    onClick: function onClick() {
      return setSelectedPlayers([]);
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: 'dashicons dashicons-no-alt'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Clear Selection', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("button", {
    className: "smp-btn btn-info",
    onClick: function onClick() {
      duplicatePlayer(selectedPlayers);
      setSelectedPlayers([]);
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: 'dashicons dashicons-admin-page'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Duplicate', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("button", {
    className: "smp-btn btn-danger",
    onClick: function onClick() {
      Swal.fire({
        title: wp.i18n.__('Are you sure?', 'soft-multimedia-player'),
        text: wp.i18n.__('You will not be able to recover this shortcode!', 'soft-multimedia-player'),
        icon: 'warning',
        showCancelButton: true,
        confirmButtonText: wp.i18n.__('Yes, delete it!', 'soft-multimedia-player'),
        reverseButtons: true,
        customClass: {
          container: 'smp-swal smp-swal-reverse'
        }
      }).then(function (result) {
        if (result.isConfirmed) {
          selectedPlayers.forEach(function (id) {
            return deletePlayer(id);
          });
          setSelectedPlayers([]);
        }
      });
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: 'dashicons dashicons-trash'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Delete', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("table", {
    className: "player-list"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", {
    className: "col-selection"
  }, /*#__PURE__*/React.createElement(CheckboxControl, {
    checked: selectedPlayers.length === filteredPlayers.length,
    onChange: function onChange() {
      if (selectedPlayers.length === filteredPlayers.length) {
        setSelectedPlayers([]);
      } else {
        setSelectedPlayers(filteredPlayers.map(function (item) {
          return item.id;
        }));
      }
    }
  })), columns.includes('ID') && /*#__PURE__*/React.createElement("th", {
    className: "col-id"
  }, /*#__PURE__*/React.createElement("div", {
    className: "sortable ".concat(sortBy === 'id' && sortOrder, " ").concat(sortBy === 'id' ? 'active' : ''),
    onClick: function onClick() {
      setSortBy('id');
      setSortOrder(sortOrder === 'asc' ? 'desc' : 'asc');
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__("ID", 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-up"
  }))), /*#__PURE__*/React.createElement("th", {
    className: "col-title"
  }, /*#__PURE__*/React.createElement("div", {
    className: "sortable ".concat(sortBy === 'title' && sortOrder, " ").concat(sortBy === 'title' ? 'active' : ''),
    onClick: function onClick() {
      setSortBy('title');
      setSortOrder(sortOrder === 'asc' ? 'desc' : 'asc');
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Title", 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-up"
  }))), columns.includes('type') && /*#__PURE__*/React.createElement("th", {
    className: "col-type"
  }, /*#__PURE__*/React.createElement("div", {
    className: "sortable ".concat(sortBy === 'type' && sortOrder, " ").concat(sortBy === 'type' ? 'active' : ''),
    onClick: function onClick() {
      setSortBy('type');
      setSortOrder(sortOrder === 'asc' ? 'desc' : 'asc');
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Type", 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-up"
  }))), columns.includes('status') && /*#__PURE__*/React.createElement("th", {
    className: "col-status"
  }, wp.i18n.__("Status", 'soft-multimedia-player'), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-info col-status-info"
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: ".col-status-info",
    content: wp.i18n.__("Shortcode active/inactive status", 'soft-multimedia-player'),
    place: "top",
    className: "smp-tooltip list-th-tooltip"
  })), columns.includes('shortcode') && /*#__PURE__*/React.createElement("th", {
    className: "col-shortcode"
  }, wp.i18n.__("Shortcode", 'soft-multimedia-player')), columns.includes('locations') && /*#__PURE__*/React.createElement("th", {
    className: "col-locations"
  }, wp.i18n.__("Locations", 'soft-multimedia-player'), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-info col-locations-info"
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: ".col-locations-info",
    content: wp.i18n.__("The locations where the shortcode is used", 'soft-multimedia-player'),
    place: "top",
    className: "smp-tooltip list-th-tooltip"
  })), columns.includes('created') && /*#__PURE__*/React.createElement("th", {
    className: "col-date"
  }, wp.i18n.__("Created at", 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", {
    className: "col-actions"
  }, wp.i18n.__("Actions", 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, filteredPlayers.map(function (item) {
    var _playerTypes$type;
    var id = item.id,
      title = item.title,
      status = item.status,
      created_at = item.created_at,
      config = item.config,
      _item$locations = item.locations,
      locations = _item$locations === void 0 ? [] : _item$locations;
    var type = config.type;
    return /*#__PURE__*/React.createElement("tr", {
      className: "player-list-item"
    }, /*#__PURE__*/React.createElement("td", {
      className: "col-selection"
    }, /*#__PURE__*/React.createElement(CheckboxControl, {
      checked: selectedPlayers.includes(id),
      onChange: function onChange(isChecked) {
        var currentIndex = players.findIndex(function (s) {
          return s.id === id;
        });

        // Shift key pressed and a previous index exists
        if (window.event.shiftKey && lastCheckedIndex !== null) {
          var _sort = [lastCheckedIndex, currentIndex].sort(function (a, b) {
              return a - b;
            }),
            _sort2 = List_slicedToArray(_sort, 2),
            start = _sort2[0],
            end = _sort2[1];
          var rangeIds = players.slice(start, end + 1).map(function (s) {
            return s.id;
          });
          var newSelected = isChecked ? List_toConsumableArray(new Set([].concat(List_toConsumableArray(selectedPlayers), List_toConsumableArray(rangeIds)))) : selectedPlayers.filter(function (id) {
            return !rangeIds.includes(id);
          });
          setSelectedPlayers(newSelected);
        } else {
          // Normal single toggle
          setSelectedPlayers(function (prev) {
            return isChecked ? [].concat(List_toConsumableArray(prev), [id]) : prev.filter(function (item) {
              return item !== id;
            });
          });
        }
        setLastCheckedIndex(currentIndex);
      }
    })), columns.includes('ID') && /*#__PURE__*/React.createElement("td", {
      className: "col-id"
    }, id), /*#__PURE__*/React.createElement("td", {
      className: "col-title",
      onClick: function onClick() {
        (0,functions/* setIdParam */.Hc)(id);
        setEdit(id);
      }
    }, title), columns.includes('type') && /*#__PURE__*/React.createElement("td", {
      className: "col-type"
    }, /*#__PURE__*/React.createElement("img", {
      "data-tooltip-id": type,
      src: smp.pluginUrl + "/assets/images/modules/".concat(type, ".svg"),
      alt: type
    }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
      id: type,
      place: "top",
      content: ((_playerTypes$type = (0,functions/* playerTypes */.Fw)()[type]) === null || _playerTypes$type === void 0 ? void 0 : _playerTypes$type.title) || ''
    })), columns.includes('status') && /*#__PURE__*/React.createElement("td", {
      className: "col-shortcode-status"
    }, /*#__PURE__*/React.createElement(FormToggle, {
      checked: status,
      onChange: function onChange() {
        updatePlayer(List_objectSpread(List_objectSpread({}, config), {}, {
          id: id,
          status: !status
        }));
      }
    })), columns.includes('shortcode') && /*#__PURE__*/React.createElement("td", {
      className: "col-code"
    }, /*#__PURE__*/React.createElement("div", {
      onClick: functions/* copyShortcode */.Nt
    }, /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-admin-page"
    }), /*#__PURE__*/React.createElement("code", null, "[multimedia_player id=\"".concat(id, "\"]")))), columns.includes('locations') && /*#__PURE__*/React.createElement("td", {
      className: "col-locations"
    }, !!locations && locations.length > 0 ? /*#__PURE__*/React.createElement("div", {
      className: "shortcode-locations"
    }, /*#__PURE__*/React.createElement("span", {
      "data-tooltip-id": "shortcodeLocations-".concat(id),
      className: "location-count"
    }, locations.length), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
      id: "shortcodeLocations-".concat(id),
      effect: "solid",
      place: "top",
      openOnClick: "click",
      variant: "light",
      clickable: true,
      border: "1px solid #ddd",
      scrollHide: false,
      className: "smp-tooltip",
      globalEventOff: "click"
    }, /*#__PURE__*/React.createElement("h3", null, wp.i18n.__('Player Locations', 'soft-multimedia-player')), locations.map(function (location, index) {
      return /*#__PURE__*/React.createElement("div", {
        key: index,
        className: "location-item"
      }, /*#__PURE__*/React.createElement("a", {
        href: location.url,
        target: "_blank"
      }, /*#__PURE__*/React.createElement("span", null, index + 1, ". "), " ", location.title, /*#__PURE__*/React.createElement("i", {
        className: "dashicons dashicons-external"
      })));
    }))) : /*#__PURE__*/React.createElement("div", {
      className: "shortcode-locations"
    }, /*#__PURE__*/React.createElement("span", {
      className: "location-count"
    }, wp.i18n.__('0', 'soft-multimedia-player')))), columns.includes('created') && /*#__PURE__*/React.createElement("td", {
      className: "col-date"
    }, (0,functions/* formatDate */.Yq)(created_at)), /*#__PURE__*/React.createElement("td", {
      className: "col-actions"
    }, /*#__PURE__*/React.createElement(List_Button, {
      className: "smp-btn edit-btn",
      onClick: function onClick() {
        (0,functions/* setIdParam */.Hc)(id);
        setEdit(id);
      },
      icon: /*#__PURE__*/React.createElement("img", {
        src: "".concat(smp.pluginUrl, "/assets/images/icons/edit.svg")
      }),
      label: wp.i18n.__('Edit Player', 'soft-multimedia-player')
    }), /*#__PURE__*/React.createElement("button", {
      className: "smp-btn btn-tools btn-".concat(id)
    }, /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-ellipsis"
    })), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
      anchorSelect: ".btn-".concat(id),
      place: "bottom",
      variant: "light",
      border: "1px solid #ddd",
      className: "smp-tooltip options-tooltip",
      clickable: true,
      content: /*#__PURE__*/React.createElement("div", {
        className: "action-tools"
      }, /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn",
        onClick: function onClick() {
          (0,functions/* setIdParam */.Hc)(id);
          setEdit(id);
        },
        icon: "edit",
        label: wp.i18n.__('Edit Player', 'soft-multimedia-player'),
        text: wp.i18n.__('Edit', 'soft-multimedia-player')
      }), /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn",
        onClick: function onClick() {
          window.open("".concat(smp.homeUrl, "/player/").concat(id), "playere-".concat(id));
        },
        icon: "visibility",
        label: wp.i18n.__('Preview Player', 'soft-multimedia-player'),
        text: wp.i18n.__('View', 'soft-multimedia-player')
      }), /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn",
        onClick: function onClick() {
          (0,functions/* copyText */.Dk)("".concat(smp.homeUrl, "/player/").concat(id), wp.i18n.__('Preview Link has been copied on the clipboard.', 'soft-multimedia-player'));
        },
        icon: "admin-links",
        label: wp.i18n.__('Copy Player View Link', 'soft-multimedia-player'),
        text: wp.i18n.__('Copy View Link', 'soft-multimedia-player')
      }), /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn",
        onClick: function onClick() {
          (0,functions/* copyText */.Dk)("[multimedia_player id=\"".concat(id, "\"]"), wp.i18n.__('Shortcode has been copied on the clipboard.', 'soft-multimedia-player'));
        },
        icon: "shortcode",
        label: wp.i18n.__('Copy Player Shortcode', 'soft-multimedia-player'),
        text: wp.i18n.__('Copy Shortcode', 'soft-multimedia-player')
      }), /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn",
        onClick: function onClick() {
          if (!smp.isPro) {
            (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to embed the player on any website or page.', 'soft-multimedia-player'));
            return;
          }
          (0,functions/* showEmbedModal */.so)(id);
        },
        icon: "editor-code",
        label: wp.i18n.__('Copy Player Embed Code', 'soft-multimedia-player'),
        text: wp.i18n.__('Copy Embed Code', 'soft-multimedia-player')
      }), /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn",
        onClick: function onClick() {
          if (!isPro) {
            (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to duplicate player.', 'soft-multimedia-player'));
            return;
          }
          duplicatePlayer([id]);
        },
        icon: "admin-page",
        label: wp.i18n.__('Duplicate Player', 'soft-multimedia-player'),
        text: wp.i18n.__('Duplicate', 'soft-multimedia-player')
      }), /*#__PURE__*/React.createElement(List_Button, {
        className: "smp-btn delete-btn",
        onClick: function onClick() {
          Swal.fire({
            title: wp.i18n.__("Are you sure?", "soft-multimedia-player"),
            text: wp.i18n.__("You won't be able to revert this!", "soft-multimedia-player"),
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#FF8000',
            cancelButtonColor: '#40CE87',
            confirmButtonText: wp.i18n.__("Yes, delete it!", "soft-multimedia-player"),
            cancelButtonText: wp.i18n.__("No, cancel!", "soft-multimedia-player"),
            reverseButtons: true,
            focusCancel: true,
            showLoaderOnConfirm: true,
            preConfirm: function preConfirm() {
              return deletePlayer(id);
            }
          });
        },
        icon: 'trash',
        label: wp.i18n.__('Delete Player', 'soft-multimedia-player'),
        text: wp.i18n.__('Delete', 'soft-multimedia-player')
      }))
    })));
  }))), /*#__PURE__*/React.createElement("div", {
    className: "player-list-footer"
  }, /*#__PURE__*/React.createElement(Pagination_Pagination, {
    className: "smp-pagination",
    pageCount: Math.ceil(filteredTotal / perPage),
    currentPage: page,
    onPageChange: function onPageChange(page) {
      return setPage(page);
    }
  })));
}
;// ./src/js/components/App/Placeholder.js
/* harmony default export */ function App_Placeholder(_ref) {
  var setOpenTypeModal = _ref.setOpenTypeModal;
  return /*#__PURE__*/React.createElement("div", {
    className: "empty-placeholder"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/empty-placeholder.png")
  }), /*#__PURE__*/React.createElement("h3", null, wp.i18n.__("No, Players!", 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__("You have not created any player yet.", 'radio-player')), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn",
    onClick: function onClick() {
      return setOpenTypeModal('new');
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-plus-alt2"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Add new player", 'radio-player'))));
}
;// ./node_modules/react-select/dist/useCreatable-84008237.esm.js







var useCreatable_84008237_esm_excluded = ["allowCreateWhileLoading", "createOptionPosition", "formatCreateLabel", "isValidNewOption", "getNewOptionData", "onCreateOption", "options", "onChange"];
var compareOption = function compareOption() {
  var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  var option = arguments.length > 1 ? arguments[1] : undefined;
  var accessors = arguments.length > 2 ? arguments[2] : undefined;
  var candidate = String(inputValue).toLowerCase();
  var optionValue = String(accessors.getOptionValue(option)).toLowerCase();
  var optionLabel = String(accessors.getOptionLabel(option)).toLowerCase();
  return optionValue === candidate || optionLabel === candidate;
};
var builtins = {
  formatCreateLabel: function formatCreateLabel(inputValue) {
    return "Create \"".concat(inputValue, "\"");
  },
  isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions, accessors) {
    return !(!inputValue || selectValue.some(function (option) {
      return compareOption(inputValue, option, accessors);
    }) || selectOptions.some(function (option) {
      return compareOption(inputValue, option, accessors);
    }));
  },
  getNewOptionData: function getNewOptionData(inputValue, optionLabel) {
    return {
      label: optionLabel,
      value: inputValue,
      __isNew__: true
    };
  }
};
function useCreatable(_ref) {
  var _ref$allowCreateWhile = _ref.allowCreateWhileLoading,
    allowCreateWhileLoading = _ref$allowCreateWhile === void 0 ? false : _ref$allowCreateWhile,
    _ref$createOptionPosi = _ref.createOptionPosition,
    createOptionPosition = _ref$createOptionPosi === void 0 ? 'last' : _ref$createOptionPosi,
    _ref$formatCreateLabe = _ref.formatCreateLabel,
    formatCreateLabel = _ref$formatCreateLabe === void 0 ? builtins.formatCreateLabel : _ref$formatCreateLabe,
    _ref$isValidNewOption = _ref.isValidNewOption,
    isValidNewOption = _ref$isValidNewOption === void 0 ? builtins.isValidNewOption : _ref$isValidNewOption,
    _ref$getNewOptionData = _ref.getNewOptionData,
    getNewOptionData = _ref$getNewOptionData === void 0 ? builtins.getNewOptionData : _ref$getNewOptionData,
    onCreateOption = _ref.onCreateOption,
    _ref$options = _ref.options,
    propsOptions = _ref$options === void 0 ? [] : _ref$options,
    propsOnChange = _ref.onChange,
    restSelectProps = _objectWithoutProperties(_ref, useCreatable_84008237_esm_excluded);
  var _restSelectProps$getO = restSelectProps.getOptionValue,
    getOptionValue$1 = _restSelectProps$getO === void 0 ? Select_aab027f3_esm_getOptionValue$1 : _restSelectProps$getO,
    _restSelectProps$getO2 = restSelectProps.getOptionLabel,
    getOptionLabel$1 = _restSelectProps$getO2 === void 0 ? Select_aab027f3_esm_getOptionLabel$1 : _restSelectProps$getO2,
    inputValue = restSelectProps.inputValue,
    isLoading = restSelectProps.isLoading,
    isMulti = restSelectProps.isMulti,
    value = restSelectProps.value,
    name = restSelectProps.name;
  var newOption = (0,external_React_.useMemo)(function () {
    return isValidNewOption(inputValue, cleanValue(value), propsOptions, {
      getOptionValue: getOptionValue$1,
      getOptionLabel: getOptionLabel$1
    }) ? getNewOptionData(inputValue, formatCreateLabel(inputValue)) : undefined;
  }, [formatCreateLabel, getNewOptionData, getOptionLabel$1, getOptionValue$1, inputValue, isValidNewOption, propsOptions, value]);
  var options = (0,external_React_.useMemo)(function () {
    return (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(_toConsumableArray(propsOptions)) : [].concat(_toConsumableArray(propsOptions), [newOption]) : propsOptions;
  }, [allowCreateWhileLoading, createOptionPosition, isLoading, newOption, propsOptions]);
  var onChange = (0,external_React_.useCallback)(function (newValue, actionMeta) {
    if (actionMeta.action !== 'select-option') {
      return propsOnChange(newValue, actionMeta);
    }
    var valueArray = Array.isArray(newValue) ? newValue : [newValue];
    if (valueArray[valueArray.length - 1] === newOption) {
      if (onCreateOption) onCreateOption(inputValue);else {
        var newOptionData = getNewOptionData(inputValue, inputValue);
        var newActionMeta = {
          action: 'create-option',
          name: name,
          option: newOptionData
        };
        propsOnChange(valueTernary(isMulti, [].concat(_toConsumableArray(cleanValue(value)), [newOptionData]), newOptionData), newActionMeta);
      }
      return;
    }
    propsOnChange(newValue, actionMeta);
  }, [getNewOptionData, inputValue, isMulti, name, newOption, onCreateOption, propsOnChange, value]);
  return objectSpread2_objectSpread2(objectSpread2_objectSpread2({}, restSelectProps), {}, {
    options: options,
    onChange: onChange
  });
}



;// ./node_modules/react-select/creatable/dist/react-select-creatable.esm.js

























var CreatableSelect = /*#__PURE__*/(0,external_React_.forwardRef)(function (props, ref) {
  var creatableProps = useStateManager(props);
  var selectProps = useCreatable(creatableProps);
  return /*#__PURE__*/external_React_.createElement(Select, extends_extends({
    ref: ref
  }, selectProps));
});
var CreatableSelect$1 = CreatableSelect;



;// ./src/js/components/App/Form/Uploader.js
function Uploader(_ref) {
  var media = _ref.media,
    _ref$type = _ref.type,
    type = _ref$type === void 0 ? 'image' : _ref$type,
    _onChange = _ref.onChange;
  var openUploader = function openUploader(e) {
    e.preventDefault();

    // Create the media frame.
    var file_frame = wp.media.frames.file_frame = wp.media({
      title: type === 'image' ? wp.i18n.__('Insert image', 'soft-multimedia-player') : wp.i18n.__('Insert', 'soft-multimedia-player'),
      library: {
        type: type
      },
      button: {
        text: wp.i18n.__('Insert', 'soft-multimedia-player')
      },
      multiple: false
    });
    file_frame.on('select', function () {
      var attachment = file_frame.state().get('selection').first().toJSON();
      _onChange(attachment.url);
    });

    // Finally, open the modal
    file_frame.open();
  };
  var deleteMedia = function deleteMedia(e) {
    e.preventDefault();
    _onChange('');
  };
  var isPro = smp.isPro;
  return /*#__PURE__*/React.createElement("div", {
    className: "upload-input-wrap thumbnail-uploader-wrap ".concat(!isPro ? 'disabled' : '')
  }, media && type === 'image' && /*#__PURE__*/React.createElement("img", {
    src: media,
    className: "thumbnail-preview"
  }), type === 'image' && /*#__PURE__*/React.createElement("input", {
    type: "text",
    id: "thumbnail",
    name: "thumbnail",
    placeholder: wp.i18n.__('Enter image url or select image', 'soft-multimedia-player'),
    value: media,
    onChange: function onChange(e) {
      return _onChange(e.target.value);
    }
  }), type === 'text/vtt' && /*#__PURE__*/React.createElement("input", {
    type: "text",
    id: "subtitle",
    name: "subtitle",
    placeholder: wp.i18n.__('Enter subtitle url or select subtitle', 'soft-multimedia-player'),
    value: media,
    onChange: function onChange(e) {
      return _onChange(e.target.value);
    }
  }), /*#__PURE__*/React.createElement("button", {
    type: 'button',
    className: "button select-file-btn radio_player_select_img",
    onClick: openUploader
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-upload"
  }, " ")), media && /*#__PURE__*/React.createElement("button", {
    type: 'button',
    className: "button remove-file-btn radio_player_delete_img",
    onClick: deleteMedia
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-trash"
  }, " ")));
}
;// ./node_modules/array-move/index.js
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;
}

;// ./node_modules/@babel/runtime/helpers/esm/objectSpread.js

function objectSpread_objectSpread(e) {
  for (var r = 1; r < arguments.length; r++) {
    var t = null != arguments[r] ? Object(arguments[r]) : {},
      o = Object.keys(t);
    "function" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) {
      return Object.getOwnPropertyDescriptor(t, e).enumerable;
    })), o.forEach(function (r) {
      defineProperty_defineProperty(e, r, t[r]);
    });
  }
  return e;
}

// EXTERNAL MODULE: ./node_modules/invariant/browser.js
var browser = __webpack_require__(311);
var browser_default = /*#__PURE__*/__webpack_require__.n(browser);
// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__(5556);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
;// ./node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js
















var Manager = function () {
  function Manager() {
    classCallCheck_classCallCheck(this, Manager);

    defineProperty_defineProperty(this, "refs", {});
  }

  createClass_createClass(Manager, [{
    key: "add",
    value: function add(collection, ref) {
      if (!this.refs[collection]) {
        this.refs[collection] = [];
      }

      this.refs[collection].push(ref);
    }
  }, {
    key: "remove",
    value: function remove(collection, ref) {
      var index = this.getIndex(collection, ref);

      if (index !== -1) {
        this.refs[collection].splice(index, 1);
      }
    }
  }, {
    key: "isActive",
    value: function isActive() {
      return this.active;
    }
  }, {
    key: "getActive",
    value: function getActive() {
      var _this = this;

      return this.refs[this.active.collection].find(function (_ref) {
        var node = _ref.node;
        return node.sortableInfo.index == _this.active.index;
      });
    }
  }, {
    key: "getIndex",
    value: function getIndex(collection, ref) {
      return this.refs[collection].indexOf(ref);
    }
  }, {
    key: "getOrderedRefs",
    value: function getOrderedRefs() {
      var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;
      return this.refs[collection].sort(sortByIndex);
    }
  }]);

  return Manager;
}();

function sortByIndex(_ref2, _ref3) {
  var index1 = _ref2.node.sortableInfo.index;
  var index2 = _ref3.node.sortableInfo.index;
  return index1 - index2;
}

function arrayMove(array, from, to) {
  if (false) // removed by dead control flow
{}

  array = array.slice();
  array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
  return array;
}
function omit(obj, keysToOmit) {
  return Object.keys(obj).reduce(function (acc, key) {
    if (keysToOmit.indexOf(key) === -1) {
      acc[key] = obj[key];
    }

    return acc;
  }, {});
}
var events = {
  end: ['touchend', 'touchcancel', 'mouseup'],
  move: ['touchmove', 'mousemove'],
  start: ['touchstart', 'mousedown']
};
var vendorPrefix = function () {
  if (typeof window === 'undefined' || typeof document === 'undefined') {
    return '';
  }

  var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];
  var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];

  switch (pre) {
    case 'ms':
      return 'ms';

    default:
      return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';
  }
}();
function setInlineStyles(node, styles) {
  Object.keys(styles).forEach(function (key) {
    node.style[key] = styles[key];
  });
}
function setTranslate3d(node, translate) {
  node.style["".concat(vendorPrefix, "Transform")] = translate == null ? '' : "translate3d(".concat(translate.x, "px,").concat(translate.y, "px,0)");
}
function setTransitionDuration(node, duration) {
  node.style["".concat(vendorPrefix, "TransitionDuration")] = duration == null ? '' : "".concat(duration, "ms");
}
function closest(el, fn) {
  while (el) {
    if (fn(el)) {
      return el;
    }

    el = el.parentNode;
  }

  return null;
}
function limit(min, max, value) {
  return Math.max(min, Math.min(value, max));
}

function getPixelValue(stringValue) {
  if (stringValue.substr(-2) === 'px') {
    return parseFloat(stringValue);
  }

  return 0;
}

function getElementMargin(element) {
  var style = window.getComputedStyle(element);
  return {
    bottom: getPixelValue(style.marginBottom),
    left: getPixelValue(style.marginLeft),
    right: getPixelValue(style.marginRight),
    top: getPixelValue(style.marginTop)
  };
}
function provideDisplayName(prefix, Component$$1) {
  var componentName = Component$$1.displayName || Component$$1.name;
  return componentName ? "".concat(prefix, "(").concat(componentName, ")") : prefix;
}
function getScrollAdjustedBoundingClientRect(node, scrollDelta) {
  var boundingClientRect = node.getBoundingClientRect();
  return {
    top: boundingClientRect.top + scrollDelta.top,
    left: boundingClientRect.left + scrollDelta.left
  };
}
function getPosition(event) {
  if (event.touches && event.touches.length) {
    return {
      x: event.touches[0].pageX,
      y: event.touches[0].pageY
    };
  } else if (event.changedTouches && event.changedTouches.length) {
    return {
      x: event.changedTouches[0].pageX,
      y: event.changedTouches[0].pageY
    };
  } else {
    return {
      x: event.pageX,
      y: event.pageY
    };
  }
}
function react_sortable_hoc_esm_isTouchEvent(event) {
  return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;
}
function getEdgeOffset(node, parent) {
  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
    left: 0,
    top: 0
  };

  if (!node) {
    return undefined;
  }

  var nodeOffset = {
    left: offset.left + node.offsetLeft,
    top: offset.top + node.offsetTop
  };

  if (node.parentNode === parent) {
    return nodeOffset;
  }

  return getEdgeOffset(node.parentNode, parent, nodeOffset);
}
function getTargetIndex(newIndex, prevIndex, oldIndex) {
  if (newIndex < oldIndex && newIndex > prevIndex) {
    return newIndex - 1;
  } else if (newIndex > oldIndex && newIndex < prevIndex) {
    return newIndex + 1;
  } else {
    return newIndex;
  }
}
function getLockPixelOffset(_ref) {
  var lockOffset = _ref.lockOffset,
      width = _ref.width,
      height = _ref.height;
  var offsetX = lockOffset;
  var offsetY = lockOffset;
  var unit = 'px';

  if (typeof lockOffset === 'string') {
    var match = /^[+-]?\d*(?:\.\d*)?(px|%)$/.exec(lockOffset);
    browser_default()(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by "px" or "%". Given %s', lockOffset);
    offsetX = parseFloat(lockOffset);
    offsetY = parseFloat(lockOffset);
    unit = match[1];
  }

  browser_default()(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);

  if (unit === '%') {
    offsetX = offsetX * width / 100;
    offsetY = offsetY * height / 100;
  }

  return {
    x: offsetX,
    y: offsetY
  };
}
function getLockPixelOffsets(_ref2) {
  var height = _ref2.height,
      width = _ref2.width,
      lockOffset = _ref2.lockOffset;
  var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];
  browser_default()(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);

  var _offsets = _slicedToArray(offsets, 2),
      minLockOffset = _offsets[0],
      maxLockOffset = _offsets[1];

  return [getLockPixelOffset({
    height: height,
    lockOffset: minLockOffset,
    width: width
  }), getLockPixelOffset({
    height: height,
    lockOffset: maxLockOffset,
    width: width
  })];
}

function isScrollable(el) {
  var computedStyle = window.getComputedStyle(el);
  var overflowRegex = /(auto|scroll)/;
  var properties = ['overflow', 'overflowX', 'overflowY'];
  return properties.find(function (property) {
    return overflowRegex.test(computedStyle[property]);
  });
}

function getScrollingParent(el) {
  if (!(el instanceof HTMLElement)) {
    return null;
  } else if (isScrollable(el)) {
    return el;
  } else {
    return getScrollingParent(el.parentNode);
  }
}
function getContainerGridGap(element) {
  var style = window.getComputedStyle(element);

  if (style.display === 'grid') {
    return {
      x: getPixelValue(style.gridColumnGap),
      y: getPixelValue(style.gridRowGap)
    };
  }

  return {
    x: 0,
    y: 0
  };
}
var KEYCODE = {
  TAB: 9,
  ESC: 27,
  SPACE: 32,
  LEFT: 37,
  UP: 38,
  RIGHT: 39,
  DOWN: 40
};
var NodeType = {
  Anchor: 'A',
  Button: 'BUTTON',
  Canvas: 'CANVAS',
  Input: 'INPUT',
  Option: 'OPTION',
  Textarea: 'TEXTAREA',
  Select: 'SELECT'
};
function cloneNode(node) {
  var selector = 'input, textarea, select, canvas, [contenteditable]';
  var fields = node.querySelectorAll(selector);
  var clonedNode = node.cloneNode(true);

  var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));

  clonedFields.forEach(function (field, i) {
    if (field.type !== 'file') {
      field.value = fields[i].value;
    }

    if (field.type === 'radio' && field.name) {
      field.name = "__sortableClone__".concat(field.name);
    }

    if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {
      var destCtx = field.getContext('2d');
      destCtx.drawImage(fields[i], 0, 0);
    }
  });
  return clonedNode;
}

function sortableHandle(WrappedComponent) {
  var _class, _temp;

  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
    withRef: false
  };
  return _temp = _class = function (_React$Component) {
    _inherits(WithSortableHandle, _React$Component);

    function WithSortableHandle() {
      var _getPrototypeOf2;

      var _this;

      _classCallCheck(this, WithSortableHandle);

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WithSortableHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));

      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "wrappedInstance", createRef());

      return _this;
    }

    _createClass(WithSortableHandle, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        var node = findDOMNode(this);
        node.sortableHandle = true;
      }
    }, {
      key: "getWrappedInstance",
      value: function getWrappedInstance() {
        invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');
        return this.wrappedInstance.current;
      }
    }, {
      key: "render",
      value: function render() {
        var ref = config.withRef ? this.wrappedInstance : null;
        return createElement(WrappedComponent, _extends({
          ref: ref
        }, this.props));
      }
    }]);

    return WithSortableHandle;
  }(Component), _defineProperty(_class, "displayName", provideDisplayName('sortableHandle', WrappedComponent)), _temp;
}
function isSortableHandle(node) {
  return node.sortableHandle != null;
}

var AutoScroller = function () {
  function AutoScroller(container, onScrollCallback) {
    classCallCheck_classCallCheck(this, AutoScroller);

    this.container = container;
    this.onScrollCallback = onScrollCallback;
  }

  createClass_createClass(AutoScroller, [{
    key: "clear",
    value: function clear() {
      if (this.interval == null) {
        return;
      }

      clearInterval(this.interval);
      this.interval = null;
    }
  }, {
    key: "update",
    value: function update(_ref) {
      var _this = this;

      var translate = _ref.translate,
          minTranslate = _ref.minTranslate,
          maxTranslate = _ref.maxTranslate,
          width = _ref.width,
          height = _ref.height;
      var direction = {
        x: 0,
        y: 0
      };
      var speed = {
        x: 1,
        y: 1
      };
      var acceleration = {
        x: 10,
        y: 10
      };
      var _this$container = this.container,
          scrollTop = _this$container.scrollTop,
          scrollLeft = _this$container.scrollLeft,
          scrollHeight = _this$container.scrollHeight,
          scrollWidth = _this$container.scrollWidth,
          clientHeight = _this$container.clientHeight,
          clientWidth = _this$container.clientWidth;
      var isTop = scrollTop === 0;
      var isBottom = scrollHeight - scrollTop - clientHeight === 0;
      var isLeft = scrollLeft === 0;
      var isRight = scrollWidth - scrollLeft - clientWidth === 0;

      if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {
        direction.y = 1;
        speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);
      } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {
        direction.x = 1;
        speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);
      } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {
        direction.y = -1;
        speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);
      } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {
        direction.x = -1;
        speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);
      }

      if (this.interval) {
        this.clear();
        this.isAutoScrolling = false;
      }

      if (direction.x !== 0 || direction.y !== 0) {
        this.interval = setInterval(function () {
          _this.isAutoScrolling = true;
          var offset = {
            left: speed.x * direction.x,
            top: speed.y * direction.y
          };
          _this.container.scrollTop += offset.top;
          _this.container.scrollLeft += offset.left;

          _this.onScrollCallback(offset);
        }, 5);
      }
    }
  }]);

  return AutoScroller;
}();

function defaultGetHelperDimensions(_ref) {
  var node = _ref.node;
  return {
    height: node.offsetHeight,
    width: node.offsetWidth
  };
}

function defaultShouldCancelStart(event) {
  var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];

  if (interactiveElements.indexOf(event.target.tagName) !== -1) {
    return true;
  }

  if (closest(event.target, function (el) {
    return el.contentEditable === 'true';
  })) {
    return true;
  }

  return false;
}

var propTypes = {
  axis: prop_types_default().oneOf(['x', 'y', 'xy']),
  contentWindow: (prop_types_default()).any,
  disableAutoscroll: (prop_types_default()).bool,
  distance: (prop_types_default()).number,
  getContainer: (prop_types_default()).func,
  getHelperDimensions: (prop_types_default()).func,
  helperClass: (prop_types_default()).string,
  helperContainer: prop_types_default().oneOfType([(prop_types_default()).func, typeof HTMLElement === 'undefined' ? (prop_types_default()).any : prop_types_default().instanceOf(HTMLElement)]),
  hideSortableGhost: (prop_types_default()).bool,
  keyboardSortingTransitionDuration: (prop_types_default()).number,
  lockAxis: (prop_types_default()).string,
  lockOffset: prop_types_default().oneOfType([(prop_types_default()).number, (prop_types_default()).string, prop_types_default().arrayOf(prop_types_default().oneOfType([(prop_types_default()).number, (prop_types_default()).string]))]),
  lockToContainerEdges: (prop_types_default()).bool,
  onSortEnd: (prop_types_default()).func,
  onSortMove: (prop_types_default()).func,
  onSortOver: (prop_types_default()).func,
  onSortStart: (prop_types_default()).func,
  pressDelay: (prop_types_default()).number,
  pressThreshold: (prop_types_default()).number,
  keyCodes: prop_types_default().shape({
    lift: prop_types_default().arrayOf((prop_types_default()).number),
    drop: prop_types_default().arrayOf((prop_types_default()).number),
    cancel: prop_types_default().arrayOf((prop_types_default()).number),
    up: prop_types_default().arrayOf((prop_types_default()).number),
    down: prop_types_default().arrayOf((prop_types_default()).number)
  }),
  shouldCancelStart: (prop_types_default()).func,
  transitionDuration: (prop_types_default()).number,
  updateBeforeSortStart: (prop_types_default()).func,
  useDragHandle: (prop_types_default()).bool,
  useWindowAsScrollContainer: (prop_types_default()).bool
};
var defaultKeyCodes = {
  lift: [KEYCODE.SPACE],
  drop: [KEYCODE.SPACE],
  cancel: [KEYCODE.ESC],
  up: [KEYCODE.UP, KEYCODE.LEFT],
  down: [KEYCODE.DOWN, KEYCODE.RIGHT]
};
var react_sortable_hoc_esm_defaultProps = {
  axis: 'y',
  disableAutoscroll: false,
  distance: 0,
  getHelperDimensions: defaultGetHelperDimensions,
  hideSortableGhost: true,
  lockOffset: '50%',
  lockToContainerEdges: false,
  pressDelay: 0,
  pressThreshold: 5,
  keyCodes: defaultKeyCodes,
  shouldCancelStart: defaultShouldCancelStart,
  transitionDuration: 300,
  useWindowAsScrollContainer: false
};
var omittedProps = Object.keys(propTypes);
function validateProps(props) {
  browser_default()(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');
}

function _finallyRethrows(body, finalizer) {
  try {
    var result = body();
  } catch (e) {
    return finalizer(true, e);
  }

  if (result && result.then) {
    return result.then(finalizer.bind(null, false), finalizer.bind(null, true));
  }

  return finalizer(false, value);
}
var SortableContext = (0,external_React_.createContext)({
  manager: {}
});
function sortableContainer(WrappedComponent) {
  var _class, _temp;

  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
    withRef: false
  };
  return _temp = _class = function (_React$Component) {
    inherits_inherits(WithSortableContainer, _React$Component);

    function WithSortableContainer(props) {
      var _this;

      classCallCheck_classCallCheck(this, WithSortableContainer);

      _this = possibleConstructorReturn_possibleConstructorReturn(this, getPrototypeOf_getPrototypeOf(WithSortableContainer).call(this, props));

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "state", {});

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleStart", function (event) {
        var _this$props = _this.props,
            distance = _this$props.distance,
            shouldCancelStart = _this$props.shouldCancelStart;

        if (event.button === 2 || shouldCancelStart(event)) {
          return;
        }

        _this.touched = true;
        _this.position = getPosition(event);
        var node = closest(event.target, function (el) {
          return el.sortableInfo != null;
        });

        if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {
          var useDragHandle = _this.props.useDragHandle;
          var _node$sortableInfo = node.sortableInfo,
              index = _node$sortableInfo.index,
              collection = _node$sortableInfo.collection,
              disabled = _node$sortableInfo.disabled;

          if (disabled) {
            return;
          }

          if (useDragHandle && !closest(event.target, isSortableHandle)) {
            return;
          }

          _this.manager.active = {
            collection: collection,
            index: index
          };

          if (!react_sortable_hoc_esm_isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {
            event.preventDefault();
          }

          if (!distance) {
            if (_this.props.pressDelay === 0) {
              _this.handlePress(event);
            } else {
              _this.pressTimer = setTimeout(function () {
                return _this.handlePress(event);
              }, _this.props.pressDelay);
            }
          }
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "nodeIsChild", function (node) {
        return node.sortableInfo.manager === _this.manager;
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleMove", function (event) {
        var _this$props2 = _this.props,
            distance = _this$props2.distance,
            pressThreshold = _this$props2.pressThreshold;

        if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {
          var position = getPosition(event);
          var delta = {
            x: _this.position.x - position.x,
            y: _this.position.y - position.y
          };
          var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);
          _this.delta = delta;

          if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {
            clearTimeout(_this.cancelTimer);
            _this.cancelTimer = setTimeout(_this.cancel, 0);
          } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {
            _this.handlePress(event);
          }
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleEnd", function () {
        _this.touched = false;

        _this.cancel();
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "cancel", function () {
        var distance = _this.props.distance;
        var sorting = _this.state.sorting;

        if (!sorting) {
          if (!distance) {
            clearTimeout(_this.pressTimer);
          }

          _this.manager.active = null;
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handlePress", function (event) {
        try {
          var active = _this.manager.getActive();

          var _temp6 = function () {
            if (active) {
              var _temp7 = function _temp7() {
                var index = _node.sortableInfo.index;
                var margin = getElementMargin(_node);
                var gridGap = getContainerGridGap(_this.container);

                var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();

                var dimensions = _getHelperDimensions({
                  index: index,
                  node: _node,
                  collection: _collection
                });

                _this.node = _node;
                _this.margin = margin;
                _this.gridGap = gridGap;
                _this.width = dimensions.width;
                _this.height = dimensions.height;
                _this.marginOffset = {
                  x: _this.margin.left + _this.margin.right + _this.gridGap.x,
                  y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)
                };
                _this.boundingClientRect = _node.getBoundingClientRect();
                _this.containerBoundingRect = containerBoundingRect;
                _this.index = index;
                _this.newIndex = index;
                _this.axis = {
                  x: _axis.indexOf('x') >= 0,
                  y: _axis.indexOf('y') >= 0
                };
                _this.offsetEdge = getEdgeOffset(_node, _this.container);

                if (_isKeySorting) {
                  _this.initialOffset = getPosition(objectSpread_objectSpread({}, event, {
                    pageX: _this.boundingClientRect.left,
                    pageY: _this.boundingClientRect.top
                  }));
                } else {
                  _this.initialOffset = getPosition(event);
                }

                _this.initialScroll = {
                  left: _this.scrollContainer.scrollLeft,
                  top: _this.scrollContainer.scrollTop
                };
                _this.initialWindowScroll = {
                  left: window.pageXOffset,
                  top: window.pageYOffset
                };
                _this.helper = _this.helperContainer.appendChild(cloneNode(_node));
                setInlineStyles(_this.helper, {
                  boxSizing: 'border-box',
                  height: "".concat(_this.height, "px"),
                  left: "".concat(_this.boundingClientRect.left - margin.left, "px"),
                  pointerEvents: 'none',
                  position: 'fixed',
                  top: "".concat(_this.boundingClientRect.top - margin.top, "px"),
                  width: "".concat(_this.width, "px")
                });

                if (_isKeySorting) {
                  _this.helper.focus();
                }

                if (_hideSortableGhost) {
                  _this.sortableGhost = _node;
                  setInlineStyles(_node, {
                    opacity: 0,
                    visibility: 'hidden'
                  });
                }

                _this.minTranslate = {};
                _this.maxTranslate = {};

                if (_isKeySorting) {
                  var _ref = _useWindowAsScrollContainer ? {
                    top: 0,
                    left: 0,
                    width: _this.contentWindow.innerWidth,
                    height: _this.contentWindow.innerHeight
                  } : _this.containerBoundingRect,
                      containerTop = _ref.top,
                      containerLeft = _ref.left,
                      containerWidth = _ref.width,
                      containerHeight = _ref.height;

                  var containerBottom = containerTop + containerHeight;
                  var containerRight = containerLeft + containerWidth;

                  if (_this.axis.x) {
                    _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;
                    _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);
                  }

                  if (_this.axis.y) {
                    _this.minTranslate.y = containerTop - _this.boundingClientRect.top;
                    _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);
                  }
                } else {
                  if (_this.axis.x) {
                    _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;
                    _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;
                  }

                  if (_this.axis.y) {
                    _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;
                    _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;
                  }
                }

                if (_helperClass) {
                  _helperClass.split(' ').forEach(function (className) {
                    return _this.helper.classList.add(className);
                  });
                }

                _this.listenerNode = event.touches ? event.target : _this.contentWindow;

                if (_isKeySorting) {
                  _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);

                  _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);

                  _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);
                } else {
                  events.move.forEach(function (eventName) {
                    return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);
                  });
                  events.end.forEach(function (eventName) {
                    return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);
                  });
                }

                _this.setState({
                  sorting: true,
                  sortingIndex: index
                });

                if (_onSortStart) {
                  _onSortStart({
                    node: _node,
                    index: index,
                    collection: _collection,
                    isKeySorting: _isKeySorting,
                    nodes: _this.manager.getOrderedRefs(),
                    helper: _this.helper
                  }, event);
                }

                if (_isKeySorting) {
                  _this.keyMove(0);
                }
              };

              var _this$props3 = _this.props,
                  _axis = _this$props3.axis,
                  _getHelperDimensions = _this$props3.getHelperDimensions,
                  _helperClass = _this$props3.helperClass,
                  _hideSortableGhost = _this$props3.hideSortableGhost,
                  updateBeforeSortStart = _this$props3.updateBeforeSortStart,
                  _onSortStart = _this$props3.onSortStart,
                  _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;
              var _node = active.node,
                  _collection = active.collection;
              var _isKeySorting = _this.manager.isKeySorting;

              var _temp8 = function () {
                if (typeof updateBeforeSortStart === 'function') {
                  _this._awaitingUpdateBeforeSortStart = true;

                  var _temp9 = _finallyRethrows(function () {
                    var index = _node.sortableInfo.index;
                    return Promise.resolve(updateBeforeSortStart({
                      collection: _collection,
                      index: index,
                      node: _node,
                      isKeySorting: _isKeySorting
                    }, event)).then(function () {});
                  }, function (_wasThrown, _result) {
                    _this._awaitingUpdateBeforeSortStart = false;
                    if (_wasThrown) throw _result;
                    return _result;
                  });

                  if (_temp9 && _temp9.then) return _temp9.then(function () {});
                }
              }();

              return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);
            }
          }();

          return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
        } catch (e) {
          return Promise.reject(e);
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleSortMove", function (event) {
        var onSortMove = _this.props.onSortMove;

        if (typeof event.preventDefault === 'function' && event.cancelable) {
          event.preventDefault();
        }

        _this.updateHelperPosition(event);

        _this.animateNodes();

        _this.autoscroll();

        if (onSortMove) {
          onSortMove(event);
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleSortEnd", function (event) {
        var _this$props4 = _this.props,
            hideSortableGhost = _this$props4.hideSortableGhost,
            onSortEnd = _this$props4.onSortEnd;
        var _this$manager = _this.manager,
            collection = _this$manager.active.collection,
            isKeySorting = _this$manager.isKeySorting;

        var nodes = _this.manager.getOrderedRefs();

        if (_this.listenerNode) {
          if (isKeySorting) {
            _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);

            _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);

            _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);
          } else {
            events.move.forEach(function (eventName) {
              return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);
            });
            events.end.forEach(function (eventName) {
              return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);
            });
          }
        }

        _this.helper.parentNode.removeChild(_this.helper);

        if (hideSortableGhost && _this.sortableGhost) {
          setInlineStyles(_this.sortableGhost, {
            opacity: '',
            visibility: ''
          });
        }

        for (var i = 0, len = nodes.length; i < len; i++) {
          var _node2 = nodes[i];
          var el = _node2.node;
          _node2.edgeOffset = null;
          _node2.boundingClientRect = null;
          setTranslate3d(el, null);
          setTransitionDuration(el, null);
          _node2.translate = null;
        }

        _this.autoScroller.clear();

        _this.manager.active = null;
        _this.manager.isKeySorting = false;

        _this.setState({
          sorting: false,
          sortingIndex: null
        });

        if (typeof onSortEnd === 'function') {
          onSortEnd({
            collection: collection,
            newIndex: _this.newIndex,
            oldIndex: _this.index,
            isKeySorting: isKeySorting,
            nodes: nodes
          }, event);
        }

        _this.touched = false;
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "autoscroll", function () {
        var disableAutoscroll = _this.props.disableAutoscroll;
        var isKeySorting = _this.manager.isKeySorting;

        if (disableAutoscroll) {
          _this.autoScroller.clear();

          return;
        }

        if (isKeySorting) {
          var translate = objectSpread_objectSpread({}, _this.translate);

          var scrollX = 0;
          var scrollY = 0;

          if (_this.axis.x) {
            translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));
            scrollX = _this.translate.x - translate.x;
          }

          if (_this.axis.y) {
            translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));
            scrollY = _this.translate.y - translate.y;
          }

          _this.translate = translate;
          setTranslate3d(_this.helper, _this.translate);
          _this.scrollContainer.scrollLeft += scrollX;
          _this.scrollContainer.scrollTop += scrollY;
          return;
        }

        _this.autoScroller.update({
          height: _this.height,
          maxTranslate: _this.maxTranslate,
          minTranslate: _this.minTranslate,
          translate: _this.translate,
          width: _this.width
        });
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "onAutoScroll", function (offset) {
        _this.translate.x += offset.left;
        _this.translate.y += offset.top;

        _this.animateNodes();
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleKeyDown", function (event) {
        var keyCode = event.keyCode;
        var _this$props5 = _this.props,
            shouldCancelStart = _this$props5.shouldCancelStart,
            _this$props5$keyCodes = _this$props5.keyCodes,
            customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;

        var keyCodes = objectSpread_objectSpread({}, defaultKeyCodes, customKeyCodes);

        if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {
          return;
        }

        event.stopPropagation();
        event.preventDefault();

        if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {
          _this.keyLift(event);
        } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {
          _this.keyDrop(event);
        } else if (keyCodes.cancel.includes(keyCode)) {
          _this.newIndex = _this.manager.active.index;

          _this.keyDrop(event);
        } else if (keyCodes.up.includes(keyCode)) {
          _this.keyMove(-1);
        } else if (keyCodes.down.includes(keyCode)) {
          _this.keyMove(1);
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "keyLift", function (event) {
        var target = event.target;
        var node = closest(target, function (el) {
          return el.sortableInfo != null;
        });
        var _node$sortableInfo2 = node.sortableInfo,
            index = _node$sortableInfo2.index,
            collection = _node$sortableInfo2.collection;
        _this.initialFocusedNode = target;
        _this.manager.isKeySorting = true;
        _this.manager.active = {
          index: index,
          collection: collection
        };

        _this.handlePress(event);
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "keyMove", function (shift) {
        var nodes = _this.manager.getOrderedRefs();

        var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;
        var newIndex = _this.newIndex + shift;
        var prevIndex = _this.newIndex;

        if (newIndex < 0 || newIndex > lastIndex) {
          return;
        }

        _this.prevIndex = prevIndex;
        _this.newIndex = newIndex;
        var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);
        var target = nodes.find(function (_ref2) {
          var node = _ref2.node;
          return node.sortableInfo.index === targetIndex;
        });
        var targetNode = target.node;
        var scrollDelta = _this.containerScrollDelta;
        var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);
        var targetTranslate = target.translate || {
          x: 0,
          y: 0
        };
        var targetPosition = {
          top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,
          left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left
        };
        var shouldAdjustForSize = prevIndex < newIndex;
        var sizeAdjustment = {
          x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,
          y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0
        };

        _this.handleSortMove({
          pageX: targetPosition.left + sizeAdjustment.x,
          pageY: targetPosition.top + sizeAdjustment.y,
          ignoreTransition: shift === 0
        });
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "keyDrop", function (event) {
        _this.handleSortEnd(event);

        if (_this.initialFocusedNode) {
          _this.initialFocusedNode.focus();
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "handleKeyEnd", function (event) {
        if (_this.manager.active) {
          _this.keyDrop(event);
        }
      });

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "isValidSortingTarget", function (event) {
        var useDragHandle = _this.props.useDragHandle;
        var target = event.target;
        var node = closest(target, function (el) {
          return el.sortableInfo != null;
        });
        return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);
      });

      var manager = new Manager();
      validateProps(props);
      _this.manager = manager;
      _this.wrappedInstance = (0,external_React_.createRef)();
      _this.sortableContextValue = {
        manager: manager
      };
      _this.events = {
        end: _this.handleEnd,
        move: _this.handleMove,
        start: _this.handleStart
      };
      return _this;
    }

    createClass_createClass(WithSortableContainer, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        var _this2 = this;

        var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;
        var container = this.getContainer();
        Promise.resolve(container).then(function (containerNode) {
          _this2.container = containerNode;
          _this2.document = _this2.container.ownerDocument || document;
          var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;
          _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;
          _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;
          _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);
          Object.keys(_this2.events).forEach(function (key) {
            return events[key].forEach(function (eventName) {
              return _this2.container.addEventListener(eventName, _this2.events[key], false);
            });
          });

          _this2.container.addEventListener('keydown', _this2.handleKeyDown);
        });
      }
    }, {
      key: "componentWillUnmount",
      value: function componentWillUnmount() {
        var _this3 = this;

        if (this.helper && this.helper.parentNode) {
          this.helper.parentNode.removeChild(this.helper);
        }

        if (!this.container) {
          return;
        }

        Object.keys(this.events).forEach(function (key) {
          return events[key].forEach(function (eventName) {
            return _this3.container.removeEventListener(eventName, _this3.events[key]);
          });
        });
        this.container.removeEventListener('keydown', this.handleKeyDown);
      }
    }, {
      key: "updateHelperPosition",
      value: function updateHelperPosition(event) {
        var _this$props6 = this.props,
            lockAxis = _this$props6.lockAxis,
            lockOffset = _this$props6.lockOffset,
            lockToContainerEdges = _this$props6.lockToContainerEdges,
            transitionDuration = _this$props6.transitionDuration,
            _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,
            keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;
        var isKeySorting = this.manager.isKeySorting;
        var ignoreTransition = event.ignoreTransition;
        var offset = getPosition(event);
        var translate = {
          x: offset.x - this.initialOffset.x,
          y: offset.y - this.initialOffset.y
        };
        translate.y -= window.pageYOffset - this.initialWindowScroll.top;
        translate.x -= window.pageXOffset - this.initialWindowScroll.left;
        this.translate = translate;

        if (lockToContainerEdges) {
          var _getLockPixelOffsets = getLockPixelOffsets({
            height: this.height,
            lockOffset: lockOffset,
            width: this.width
          }),
              _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),
              minLockOffset = _getLockPixelOffsets2[0],
              maxLockOffset = _getLockPixelOffsets2[1];

          var minOffset = {
            x: this.width / 2 - minLockOffset.x,
            y: this.height / 2 - minLockOffset.y
          };
          var maxOffset = {
            x: this.width / 2 - maxLockOffset.x,
            y: this.height / 2 - maxLockOffset.y
          };
          translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);
          translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);
        }

        if (lockAxis === 'x') {
          translate.y = 0;
        } else if (lockAxis === 'y') {
          translate.x = 0;
        }

        if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {
          setTransitionDuration(this.helper, keyboardSortingTransitionDuration);
        }

        setTranslate3d(this.helper, translate);
      }
    }, {
      key: "animateNodes",
      value: function animateNodes() {
        var _this$props7 = this.props,
            transitionDuration = _this$props7.transitionDuration,
            hideSortableGhost = _this$props7.hideSortableGhost,
            onSortOver = _this$props7.onSortOver;
        var containerScrollDelta = this.containerScrollDelta,
            windowScrollDelta = this.windowScrollDelta;
        var nodes = this.manager.getOrderedRefs();
        var sortingOffset = {
          left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,
          top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top
        };
        var isKeySorting = this.manager.isKeySorting;
        var prevIndex = this.newIndex;
        this.newIndex = null;

        for (var i = 0, len = nodes.length; i < len; i++) {
          var _node3 = nodes[i].node;
          var index = _node3.sortableInfo.index;
          var width = _node3.offsetWidth;
          var height = _node3.offsetHeight;
          var offset = {
            height: this.height > height ? height / 2 : this.height / 2,
            width: this.width > width ? width / 2 : this.width / 2
          };
          var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;
          var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;
          var translate = {
            x: 0,
            y: 0
          };
          var edgeOffset = nodes[i].edgeOffset;

          if (!edgeOffset) {
            edgeOffset = getEdgeOffset(_node3, this.container);
            nodes[i].edgeOffset = edgeOffset;

            if (isKeySorting) {
              nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);
            }
          }

          var nextNode = i < nodes.length - 1 && nodes[i + 1];
          var prevNode = i > 0 && nodes[i - 1];

          if (nextNode && !nextNode.edgeOffset) {
            nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);

            if (isKeySorting) {
              nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);
            }
          }

          if (index === this.index) {
            if (hideSortableGhost) {
              this.sortableGhost = _node3;
              setInlineStyles(_node3, {
                opacity: 0,
                visibility: 'hidden'
              });
            }

            continue;
          }

          if (transitionDuration) {
            setTransitionDuration(_node3, transitionDuration);
          }

          if (this.axis.x) {
            if (this.axis.y) {
              if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {
                translate.x = this.width + this.marginOffset.x;

                if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {
                  if (nextNode) {
                    translate.x = nextNode.edgeOffset.left - edgeOffset.left;
                    translate.y = nextNode.edgeOffset.top - edgeOffset.top;
                  }
                }

                if (this.newIndex === null) {
                  this.newIndex = index;
                }
              } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {
                translate.x = -(this.width + this.marginOffset.x);

                if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {
                  if (prevNode) {
                    translate.x = prevNode.edgeOffset.left - edgeOffset.left;
                    translate.y = prevNode.edgeOffset.top - edgeOffset.top;
                  }
                }

                this.newIndex = index;
              }
            } else {
              if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {
                translate.x = -(this.width + this.marginOffset.x);
                this.newIndex = index;
              } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {
                translate.x = this.width + this.marginOffset.x;

                if (this.newIndex == null) {
                  this.newIndex = index;
                }
              }
            }
          } else if (this.axis.y) {
            if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {
              translate.y = -(this.height + this.marginOffset.y);
              this.newIndex = index;
            } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {
              translate.y = this.height + this.marginOffset.y;

              if (this.newIndex == null) {
                this.newIndex = index;
              }
            }
          }

          setTranslate3d(_node3, translate);
          nodes[i].translate = translate;
        }

        if (this.newIndex == null) {
          this.newIndex = this.index;
        }

        if (isKeySorting) {
          this.newIndex = prevIndex;
        }

        var oldIndex = isKeySorting ? this.prevIndex : prevIndex;

        if (onSortOver && this.newIndex !== oldIndex) {
          onSortOver({
            collection: this.manager.active.collection,
            index: this.index,
            newIndex: this.newIndex,
            oldIndex: oldIndex,
            isKeySorting: isKeySorting,
            nodes: nodes,
            helper: this.helper
          });
        }
      }
    }, {
      key: "getWrappedInstance",
      value: function getWrappedInstance() {
        browser_default()(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');
        return this.wrappedInstance.current;
      }
    }, {
      key: "getContainer",
      value: function getContainer() {
        var getContainer = this.props.getContainer;

        if (typeof getContainer !== 'function') {
          return (0,external_ReactDOM_namespaceObject.findDOMNode)(this);
        }

        return getContainer(config.withRef ? this.getWrappedInstance() : undefined);
      }
    }, {
      key: "render",
      value: function render() {
        var ref = config.withRef ? this.wrappedInstance : null;
        return (0,external_React_.createElement)(SortableContext.Provider, {
          value: this.sortableContextValue
        }, (0,external_React_.createElement)(WrappedComponent, extends_extends({
          ref: ref
        }, omit(this.props, omittedProps))));
      }
    }, {
      key: "helperContainer",
      get: function get() {
        var helperContainer = this.props.helperContainer;

        if (typeof helperContainer === 'function') {
          return helperContainer();
        }

        return this.props.helperContainer || this.document.body;
      }
    }, {
      key: "containerScrollDelta",
      get: function get() {
        var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;

        if (useWindowAsScrollContainer) {
          return {
            left: 0,
            top: 0
          };
        }

        return {
          left: this.scrollContainer.scrollLeft - this.initialScroll.left,
          top: this.scrollContainer.scrollTop - this.initialScroll.top
        };
      }
    }, {
      key: "windowScrollDelta",
      get: function get() {
        return {
          left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,
          top: this.contentWindow.pageYOffset - this.initialWindowScroll.top
        };
      }
    }]);

    return WithSortableContainer;
  }(external_React_.Component), defineProperty_defineProperty(_class, "displayName", provideDisplayName('sortableList', WrappedComponent)), defineProperty_defineProperty(_class, "defaultProps", react_sortable_hoc_esm_defaultProps), defineProperty_defineProperty(_class, "propTypes", propTypes), _temp;
}

var propTypes$1 = {
  index: (prop_types_default()).number.isRequired,
  collection: prop_types_default().oneOfType([(prop_types_default()).number, (prop_types_default()).string]),
  disabled: (prop_types_default()).bool
};
var omittedProps$1 = Object.keys(propTypes$1);
function sortableElement(WrappedComponent) {
  var _class, _temp;

  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
    withRef: false
  };
  return _temp = _class = function (_React$Component) {
    inherits_inherits(WithSortableElement, _React$Component);

    function WithSortableElement() {
      var _getPrototypeOf2;

      var _this;

      classCallCheck_classCallCheck(this, WithSortableElement);

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      _this = possibleConstructorReturn_possibleConstructorReturn(this, (_getPrototypeOf2 = getPrototypeOf_getPrototypeOf(WithSortableElement)).call.apply(_getPrototypeOf2, [this].concat(args)));

      defineProperty_defineProperty(assertThisInitialized_assertThisInitialized(assertThisInitialized_assertThisInitialized(_this)), "wrappedInstance", (0,external_React_.createRef)());

      return _this;
    }

    createClass_createClass(WithSortableElement, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        this.register();
      }
    }, {
      key: "componentDidUpdate",
      value: function componentDidUpdate(prevProps) {
        if (this.node) {
          if (prevProps.index !== this.props.index) {
            this.node.sortableInfo.index = this.props.index;
          }

          if (prevProps.disabled !== this.props.disabled) {
            this.node.sortableInfo.disabled = this.props.disabled;
          }
        }

        if (prevProps.collection !== this.props.collection) {
          this.unregister(prevProps.collection);
          this.register();
        }
      }
    }, {
      key: "componentWillUnmount",
      value: function componentWillUnmount() {
        this.unregister();
      }
    }, {
      key: "register",
      value: function register() {
        var _this$props = this.props,
            collection = _this$props.collection,
            disabled = _this$props.disabled,
            index = _this$props.index;
        var node = (0,external_ReactDOM_namespaceObject.findDOMNode)(this);
        node.sortableInfo = {
          collection: collection,
          disabled: disabled,
          index: index,
          manager: this.context.manager
        };
        this.node = node;
        this.ref = {
          node: node
        };
        this.context.manager.add(collection, this.ref);
      }
    }, {
      key: "unregister",
      value: function unregister() {
        var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;
        this.context.manager.remove(collection, this.ref);
      }
    }, {
      key: "getWrappedInstance",
      value: function getWrappedInstance() {
        browser_default()(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');
        return this.wrappedInstance.current;
      }
    }, {
      key: "render",
      value: function render() {
        var ref = config.withRef ? this.wrappedInstance : null;
        return (0,external_React_.createElement)(WrappedComponent, extends_extends({
          ref: ref
        }, omit(this.props, omittedProps$1)));
      }
    }]);

    return WithSortableElement;
  }(external_React_.Component), defineProperty_defineProperty(_class, "displayName", provideDisplayName('sortableElement', WrappedComponent)), defineProperty_defineProperty(_class, "contextType", SortableContext), defineProperty_defineProperty(_class, "propTypes", propTypes$1), defineProperty_defineProperty(_class, "defaultProps", {
    collection: 0
  }), _temp;
}



;// ./src/js/components/App/Form/Tracks.js
function Tracks_typeof(o) { "@babel/helpers - typeof"; return Tracks_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Tracks_typeof(o); }
function Tracks_toConsumableArray(r) { return Tracks_arrayWithoutHoles(r) || Tracks_iterableToArray(r) || Tracks_unsupportedIterableToArray(r) || Tracks_nonIterableSpread(); }
function Tracks_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Tracks_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function Tracks_arrayWithoutHoles(r) { if (Array.isArray(r)) return Tracks_arrayLikeToArray(r); }
function Tracks_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Tracks_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Tracks_ownKeys(Object(t), !0).forEach(function (r) { Tracks_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Tracks_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Tracks_defineProperty(e, r, t) { return (r = Tracks_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Tracks_toPropertyKey(t) { var i = Tracks_toPrimitive(t, "string"); return "symbol" == Tracks_typeof(i) ? i : i + ""; }
function Tracks_toPrimitive(t, r) { if ("object" != Tracks_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Tracks_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function Tracks_slicedToArray(r, e) { return Tracks_arrayWithHoles(r) || Tracks_iterableToArrayLimit(r, e) || Tracks_unsupportedIterableToArray(r, e) || Tracks_nonIterableRest(); }
function Tracks_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Tracks_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Tracks_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Tracks_arrayLikeToArray(r, a) : void 0; } }
function Tracks_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Tracks_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Tracks_arrayWithHoles(r) { if (Array.isArray(r)) return r; }









var Tracks_wp$components = wp.components,
  TextControl = Tracks_wp$components.TextControl,
  TextareaControl = Tracks_wp$components.TextareaControl,
  Tracks_SelectControl = Tracks_wp$components.SelectControl,
  Tracks_ButtonGroup = Tracks_wp$components.ButtonGroup,
  Tracks_Button = Tracks_wp$components.Button;
var Tracks_React = React,
  Tracks_useState = Tracks_React.useState,
  Tracks_useContext = Tracks_React.useContext,
  Tracks_useEffect = Tracks_React.useEffect;
var openUploader = function openUploader(e) {
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'audio-player';
  var onSelect = arguments.length > 2 ? arguments[2] : undefined;
  e.preventDefault();

  // Create the media frame.
  var file_frame = wp.media.frames.file_frame = wp.media({
    title: wp.i18n.__('Select File', 'soft-multimedia-player'),
    library: {
      type: 'video-player' === type ? 'video' : 'audio'
    },
    button: {
      text: wp.i18n.__('Select', 'soft-multimedia-player')
    },
    multiple: false
  });
  file_frame.on('select', function () {
    var attachment = file_frame.state().get('selection').first().toJSON();
    onSelect(attachment);
  });

  // Finally, open the modal
  file_frame.open();
};
var SortableItem = sortableElement(function (_ref) {
  var length = _ref.length,
    skin = _ref.skin,
    value = _ref.value,
    keyIndex = _ref.keyIndex,
    options = _ref.options,
    genreOptions = _ref.genreOptions,
    isActive = _ref.isActive,
    handleActive = _ref.handleActive,
    handleChange = _ref.handleChange,
    handleCreate = _ref.handleCreate,
    itemTitle = _ref.itemTitle,
    type = _ref.type,
    subtitle = _ref.subtitle,
    handleDuplicate = _ref.handleDuplicate,
    onRemove = _ref.onRemove;
  var _smp = smp,
    isPro = _smp.isPro,
    homeUrl = _smp.homeUrl;
  var title = value.title,
    _value$desc = value.desc,
    desc = _value$desc === void 0 ? '' : _value$desc,
    _value$sourceType = value.sourceType,
    sourceType = _value$sourceType === void 0 ? 'local' : _value$sourceType,
    source = value.source,
    thumbnail = value.thumbnail,
    _value$season = value.season,
    season = _value$season === void 0 ? '' : _value$season,
    _value$episode = value.episode,
    episode = _value$episode === void 0 ? '' : _value$episode,
    _value$episodeType = value.episodeType,
    episodeType = _value$episodeType === void 0 ? 'none' : _value$episodeType,
    _value$episodeLink = value.episodeLink,
    episodeLink = _value$episodeLink === void 0 ? '' : _value$episodeLink,
    _value$explicit = value.explicit,
    explicit = _value$explicit === void 0 ? 'no' : _value$explicit,
    publishDate = value.publishDate,
    duration = value.duration,
    artist = value.artist,
    album = value.album,
    genre = value.genre,
    subtitleFile = value.subtitleFile,
    _value$subtitleLang = value.subtitleLang,
    subtitleLang = _value$subtitleLang === void 0 ? 'en' : _value$subtitleLang;

  // Audio sources
  var audioSources = [{
    key: 'local',
    label: wp.i18n.__('Local Audio', 'soft-multimedia-player'),
    isPro: false
  }, {
    key: 'external',
    label: wp.i18n.__('External Audio URL', 'soft-multimedia-player'),
    isPro: false
  }, {
    key: 'soundcloud',
    label: wp.i18n.__('SoundCloud', 'soft-multimedia-player'),
    isPro: true
  }];

  // Video sources
  var videoSources = [{
    key: 'local',
    label: wp.i18n.__('Local Video', 'soft-multimedia-player'),
    isPro: false
  }, {
    key: 'external',
    label: wp.i18n.__('External Video', 'soft-multimedia-player'),
    isPro: false
  }, {
    key: 'youtube',
    label: wp.i18n.__('Youtube', 'soft-multimedia-player'),
    isPro: true
  }, {
    key: 'vimeo',
    label: wp.i18n.__('Vimeo', 'soft-multimedia-player'),
    isPro: true
  }, {
    key: 'wista',
    label: wp.i18n.__('Wista', 'soft-multimedia-player'),
    isPro: true
  }, {
    key: 'facebook',
    label: wp.i18n.__('Facebook', 'soft-multimedia-player'),
    isPro: true,
    comingSoon: true
  }];

  // Podcast sources
  var podcastSources = [{
    key: 'local',
    label: wp.i18n.__('Local Audio', 'soft-multimedia-player'),
    isPro: false
  }, {
    key: 'external',
    label: wp.i18n.__('External Audio URL', 'soft-multimedia-player'),
    isPro: false
  }];
  var regexMap = {
    'audio-player': {
      local: new RegExp("^(".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "/wp-content/uploads/.+\\.(mp3|wav|ogg)|https?:\\/\\/(?!").concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), ")[^\\s]+\\/[^\\s]+\\.(mp3|wav|m4a|aac|oga)(\\?.*)?)$"), 'i'),
      external: new RegExp("^(".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "/wp-content/uploads/.+\\.(mp3|wav|ogg)|https?:\\/\\/(?!").concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), ")[^\\s]+\\/[^\\s]+\\.(mp3|wav|m4a|aac|oga)(\\?.*)?)$"), 'i'),
      soundcloud: /^(https?:\/\/)?(www\.)?soundcloud\.com\/[\w-]+\/[\w-]+(\S+)?$/i
    },
    'video-player': {
      local: new RegExp("^(" + "".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')) + "/wp-content/uploads/.+\\.(mp4|webm)" + "|https?:\\/\\/(?!".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), ")") + "[^\\s]+\\/[^\\s]+\\.(mp4|webm|m4v|ogg|ogv|m3u8|mpd)(\\?.*)?" + ")$", 'i'),
      external: new RegExp("^(" + "".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')) + "/wp-content/uploads/.+\\.(mp4|webm)" + "|https?:\\/\\/(?!".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), ")") + "[^\\s]+\\/[^\\s]+\\.(mp4|webm|m4v|ogg|ogv|m3u8|mpd)(\\?.*)?" + ")$", 'i'),
      youtube: /^(https?:\/\/)?(www\.)?(youtube\.com\/watch\?v=|youtube\.com\/embed\/|youtu\.be\/)[\w-]{11}(\S+)?$/i,
      facebook: /^(https?:\/\/)?(www\.)?facebook\.com\/(watch\/?\?v=\d+|[^\/]+\/videos\/\d+|video\.php\?v=\d+)(\S+)?$/i,
      vimeo: /^(https?:\/\/)?(www\.)?vimeo\.com\/(\d+|channels\/[\w]+\/\d+|ondemand\/[\w]+\/\d+)(\S+)?$/i,
      dailymotion: /^(https?:\/\/)?(www\.)?(dailymotion\.com\/video\/[\w]+|dai\.ly\/[\w]+)(\S+)?$/i,
      twitch: /^(https?:\/\/)?(www\.)?twitch\.tv\/(videos\/\d+|[\w-]+)(\S+)?$/i,
      streamable: /^(https?:\/\/)?(www\.)?streamable\.com\/[\w]+$/i,
      wistia: /^(https?:\/\/)?(www\.)?home\.wistia\.com\/(medias|embed)\/[a-zA-Z0-9]+$/i,
      mixcloud: /^(https?:\/\/)?(www\.)?mixcloud\.com\/[\w-]+\/[\w-]+\/?$/i
    },
    'podcast-player': {
      local: new RegExp("^(".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "/wp-content/uploads/.+\\.(mp3|wav|ogg)|https?:\\/\\/(?!").concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), ")[^\\s]+\\/[^\\s]+\\.(mp3|wav|m4a|aac|oga)(\\?.*)?)$"), 'i'),
      external: new RegExp("^(".concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), "/wp-content/uploads/.+\\.(mp3|wav|ogg)|https?:\\/\\/(?!").concat(homeUrl.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), ")[^\\s]+\\/[^\\s]+\\.(mp3|wav|m4a|aac|oga)(\\?.*)?)$"), 'i')
    }
  };
  var handleValidateUrl = function handleValidateUrl() {
    var _regexMap$type;
    if (!type || !sourceType || !source) return;
    var selectedRegex = regexMap === null || regexMap === void 0 || (_regexMap$type = regexMap[type]) === null || _regexMap$type === void 0 ? void 0 : _regexMap$type[sourceType];
    var isRegexMatch = selectedRegex === null || selectedRegex === void 0 ? void 0 : selectedRegex.test(source);
    var isExternal = sourceType === 'external';
    var isFromSite = source.includes(homeUrl);
    return isRegexMatch && (!isExternal || !!isExternal && !isFromSite);
  };
  Tracks_useEffect(function () {
    handleValidateUrl();
  }, [type, sourceType, source]);
  return /*#__PURE__*/React.createElement("div", {
    className: "player-track ".concat(isActive ? 'active' : '')
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-track-header"
  }, length > 1 && /*#__PURE__*/React.createElement("svg", {
    className: "drag-file-item sort-item",
    width: "24",
    height: "24",
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 24 24",
    "aria-hidden": "true",
    focusable: "false"
  }, /*#__PURE__*/React.createElement("path", {
    d: "M8 7h2V5H8v2zm0 6h2v-2H8v2zm0 6h2v-2H8v2zm6-14v2h2V5h-2zm0 8h2v-2h-2v2zm0 6h2v-2h-2v2z"
  })), /*#__PURE__*/React.createElement("h4", {
    onClick: handleActive
  }, " ", keyIndex + 1, ". ", title, " "), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: 'button button-link-duplicate',
    onClick: function onClick() {
      return handleDuplicate(keyIndex);
    }
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/icons/duplicate-alt.svg"),
    alt: wp.i18n.__('Duplicate', 'soft-multimedia-player')
  })), length > 1 && /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: 'button button-link-delete',
    onClick: function onClick() {
      Swal.fire({
        title: wp.i18n.__('Are you sure?', 'soft-multimedia-player'),
        text: wp.i18n.__('Would you like to delete this item?', 'soft-multimedia-player'),
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#40CE87',
        cancelButtonColor: '#FF8000',
        confirmButtonText: wp.i18n.__('Yes, delete it!', 'soft-multimedia-player'),
        reverseButtons: true
      }).then(function (result) {
        if (result.value) {
          onRemove(keyIndex);
        }
      });
    }
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/icons/delete-alt.svg"),
    alt: wp.i18n.__('Delete', 'soft-multimedia-player')
  })), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: 'button button-primary',
    onClick: handleActive
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons ".concat(isActive ? 'dashicons-arrow-up-alt2' : 'dashicons-arrow-down-alt2')
  }))), isActive && /*#__PURE__*/React.createElement("div", {
    className: "player-track-body"
  }, /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Source', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field source"
  }, 'audio-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "source-type-wrap"
  }, /*#__PURE__*/React.createElement(Tracks_ButtonGroup, null, audioSources.map(function (item, index) {
    return /*#__PURE__*/React.createElement(Tracks_Button, {
      key: index,
      className: sourceType === item.key ? 'active' : '',
      onClick: function onClick() {
        if (item.isPro && !isPro) {
          (0,ProModal/* default */.A)();
          return;
        }
        handleChange({
          sourceType: item.key
        });
      }
    }, /*#__PURE__*/React.createElement("img", {
      src: "".concat(smp.pluginUrl, "/assets/images/modules/audio-player/").concat(item.key, ".png"),
      alt: item.label
    }), item.label);
  }))), 'video-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "source-type-wrap"
  }, /*#__PURE__*/React.createElement(Tracks_ButtonGroup, null, videoSources.map(function (item, index) {
    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Tracks_Button, {
      key: index,
      className: "".concat(sourceType === item.key ? 'active' : '', " ").concat(item !== null && item !== void 0 && item.comingSoon ? 'disabled' : ''),
      onClick: function onClick() {
        if (item !== null && item !== void 0 && item.comingSoon) {
          return;
        }
        if (item.isPro && !isPro) {
          (0,ProModal/* default */.A)();
          return;
        }
        handleChange({
          sourceType: item.key
        });
      },
      "data-tooltip-id": "".concat(item.key, "-tooltip"),
      "data-tooltip-content": item !== null && item !== void 0 && item.comingSoon ? wp.i18n.__('Coming soon', 'soft-multimedia-player') : item.isPro && !isPro ? wp.i18n.__('Pro feature', 'soft-multimedia-player') : ''
    }, /*#__PURE__*/React.createElement("img", {
      src: "".concat(smp.pluginUrl, "/assets/images/modules/video-player/").concat(item.key, ".png"),
      alt: item.label
    }), item.label), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
      id: "".concat(item.key, "-tooltip"),
      variant: "warning",
      place: "top",
      effect: "solid"
    }));
  }))), 'podcast-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "source-type-wrap"
  }, /*#__PURE__*/React.createElement(Tracks_ButtonGroup, null, podcastSources.map(function (item, index) {
    return /*#__PURE__*/React.createElement(Tracks_Button, {
      key: index,
      className: sourceType === item.key ? 'active' : '',
      onClick: function onClick() {
        if (item.isPro && !isPro) {
          (0,ProModal/* default */.A)();
          return;
        }
        handleChange({
          sourceType: item.key
        });
      }
    }, /*#__PURE__*/React.createElement("img", {
      src: "".concat(smp.pluginUrl, "/assets/images/modules/audio-player/").concat(item.key, ".png"),
      alt: item.label
    }), item.label);
  }))), /*#__PURE__*/React.createElement("div", {
    className: "upload-input-wrap"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'url',
    value: source,
    onBlur: handleValidateUrl,
    onChange: function onChange(value) {
      // disable youtube, vimeo, dailymotion, facebook on local video source
      if ('local' === sourceType && (value.includes('youtube.com') || value.includes('youtu.be') || value.includes('vimeo.com') || value.includes('dailymotion.com') || value.includes('facebook.com'))) {
        (0,functions/* showNotification */.Ds)(wp.i18n.__('You can not use youtube, vimeo, dailymotion, facebook on local video source', 'soft-multimedia-player'), 'error');
        return;
      }
      handleChange({
        source: value
      });
      switch (type) {
        case 'audio-player':
          (0,functions/* getAudioDuration */.LG)(value).then(function (time) {
            handleChange({
              duration: time
            });
          });
          break;
        case 'video-player':
          (0,functions/* getVideoDuration */.qZ)(value).then(function (time) {
            handleChange({
              duration: time
            });
          });
          break;
        default:
          break;
      }
    },
    placeholder: 'audio-player' === type ? wp.i18n.__('Enter the audio URL', 'soft-multimedia-player') : 'video-player' === type ? wp.i18n.__('Enter the video URL', 'soft-multimedia-player') : wp.i18n.__('Enter the podcast audio URL', 'soft-multimedia-player')
  }), (source === null || source === void 0 ? void 0 : source.length) > 0 && !handleValidateUrl() && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("i", {
    className: "source-validate dashicons dashicons-no",
    "data-tooltip-id": "source-valid-tooltip-".concat(keyIndex)
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "source-valid-tooltip-".concat(keyIndex),
    className: "smp-tooltip",
    place: "top",
    effect: "solid",
    variant: 'warning',
    content: wp.i18n.__('Invalid URL', 'soft-multimedia-player')
  })), 'local' === sourceType && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("button", {
    type: 'button',
    className: "button select-file-btn",
    onClick: function onClick(e) {
      return openUploader(e, type, function (data) {
        var _data$image, _data$meta, _data$meta2;
        console.log('data', data);
        var fileUrl = data === null || data === void 0 ? void 0 : data.url;
        var title = (data === null || data === void 0 ? void 0 : data.title) || '';
        var _data$fileLength$spli = data === null || data === void 0 ? void 0 : data.fileLength.split(':').map(Number),
          _data$fileLength$spli2 = Tracks_slicedToArray(_data$fileLength$spli, 2),
          minutes = _data$fileLength$spli2[0],
          seconds = _data$fileLength$spli2[1];
        var fileDuration = minutes * 60 + seconds;
        var fileThumbnail = data === null || data === void 0 || (_data$image = data.image) === null || _data$image === void 0 ? void 0 : _data$image.src;
        var fileArtist = (data === null || data === void 0 || (_data$meta = data.meta) === null || _data$meta === void 0 ? void 0 : _data$meta.artist) || '';
        var fileAlbum = (data === null || data === void 0 || (_data$meta2 = data.meta) === null || _data$meta2 === void 0 ? void 0 : _data$meta2.album) || '';
        handleChange({
          source: fileUrl
        });
        handleChange({
          duration: fileDuration
        });
        handleChange({
          title: title
        });
        if ('audio-player' === type) {
          handleChange({
            artist: fileArtist
          });
          handleChange({
            album: fileAlbum
          });
        }
        if ('video-player' !== type) {
          handleChange({
            thumbnail: fileThumbnail
          });
        }
      });
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-upload"
  }, " "), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Select Local Media', 'soft-multimedia-player')))), !!source && /*#__PURE__*/React.createElement("button", {
    type: 'button',
    className: "button remove-file-btn",
    onClick: function onClick() {
      return handleChange({
        source: ''
      });
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-trash"
  }, " "))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, type === 'audio-player' && ('local' === sourceType ? wp.i18n.__('Enter the playable audio URL or you can also use any audio files from your media library.', 'soft-multimedia-player') : wp.i18n.__('Enter the playable audio URL.', 'soft-multimedia-player')), type === 'video-player' && wp.i18n.__('Enter the playable video URL or you can also use any video files from your media library.', 'soft-multimedia-player'), type === 'podcast-player' && wp.i18n.__('Enter the playable audio/podcast URL or you can also use any audio files from your media library.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Title', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'text',
    value: title,
    onChange: function onChange(value) {
      return handleChange({
        title: value
      });
    },
    placeholder: "Track title"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Enter the track title.", 'soft-multimedia-player')))), 'podcast-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Description', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextareaControl, {
    rows: 2,
    value: desc,
    onChange: function onChange(value) {
      return handleChange({
        desc: value
      });
    },
    placeholder: "Enter the ".concat(itemTitle, " description")
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Enter the ".concat(itemTitle, " description."), 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, ('audio-player' === type || 'podcast-player' === type) && wp.i18n.__('Artwork', 'soft-multimedia-player'), 'video-player' === type && wp.i18n.__('Thumbnail', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(Uploader, {
    media: thumbnail,
    onChange: function onChange(media) {
      return handleChange({
        thumbnail: media
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, 'audio-player' === type && wp.i18n.__('Set the audio artwork image.', 'soft-multimedia-player'), 'video-player' === type && wp.i18n.__('Set the video thumbnail image.', 'soft-multimedia-player')))), ('audio-player' === type || 'podcast-player' === type) && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Artist Name', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'text',
    value: artist,
    onChange: function onChange(value) {
      return handleChange({
        artist: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the artist name.", 'soft-multimedia-player')))), 'audio-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Album Name', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'text',
    value: album,
    onChange: function onChange(value) {
      return handleChange({
        album: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the album name.", 'soft-multimedia-player')))), 'audio-player' === type && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Genres', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(CreatableSelect$1, {
    isMulti: true,
    options: genreOptions,
    className: "radio-player-select",
    classNamePrefix: "radio-player-select",
    onChange: function onChange(selected) {
      handleChange({
        genre: selected
      });
    },
    onCreateOption: function onCreateOption(value) {
      return handleCreate(value, 'genre');
    },
    value: genre,
    placeholder: wp.i18n.__("Select or create genres", "radio-player")
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select or add genres for this track.', 'soft-multimedia-player')))), 'video-player' === type && 'local' === sourceType && !!subtitle && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Subtitle', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(Uploader, {
    media: subtitleFile,
    type: "text/vtt",
    onChange: function onChange(media) {
      return handleChange({
        subtitleFile: media
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Upload Subtitle .vtt file here.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Subtitle Language', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(Tracks_SelectControl, {
    isDisabled: !isPro,
    options: [{
      value: 'af',
      label: wp.i18n.__('Afrikaans', 'soft-multimedia-player')
    }, {
      value: 'am',
      label: wp.i18n.__('Amharic', 'soft-multimedia-player')
    }, {
      value: 'ar',
      label: wp.i18n.__('Arabic', 'soft-multimedia-player')
    }, {
      value: 'az',
      label: wp.i18n.__('Azerbaijani', 'soft-multimedia-player')
    }, {
      value: 'be',
      label: wp.i18n.__('Belarusian', 'soft-multimedia-player')
    }, {
      value: 'bg',
      label: wp.i18n.__('Bulgarian', 'soft-multimedia-player')
    }, {
      value: 'bn',
      label: wp.i18n.__('Bengali', 'soft-multimedia-player')
    }, {
      value: 'bs',
      label: wp.i18n.__('Bosnian', 'soft-multimedia-player')
    }, {
      value: 'ca',
      label: wp.i18n.__('Catalan', 'soft-multimedia-player')
    }, {
      value: 'cs',
      label: wp.i18n.__('Czech', 'soft-multimedia-player')
    }, {
      value: 'cy',
      label: wp.i18n.__('Welsh', 'soft-multimedia-player')
    }, {
      value: 'da',
      label: wp.i18n.__('Danish', 'soft-multimedia-player')
    }, {
      value: 'de',
      label: wp.i18n.__('German', 'soft-multimedia-player')
    }, {
      value: 'el',
      label: wp.i18n.__('Greek', 'soft-multimedia-player')
    }, {
      value: 'en',
      label: wp.i18n.__('English', 'soft-multimedia-player')
    }, {
      value: 'es',
      label: wp.i18n.__('Spanish', 'soft-multimedia-player')
    }, {
      value: 'et',
      label: wp.i18n.__('Estonian', 'soft-multimedia-player')
    }, {
      value: 'eu',
      label: wp.i18n.__('Basque', 'soft-multimedia-player')
    }, {
      value: 'fa',
      label: wp.i18n.__('Persian', 'soft-multimedia-player')
    }, {
      value: 'fi',
      label: wp.i18n.__('Finnish', 'soft-multimedia-player')
    }, {
      value: 'fr',
      label: wp.i18n.__('French', 'soft-multimedia-player')
    }, {
      value: 'ga',
      label: wp.i18n.__('Irish', 'soft-multimedia-player')
    }, {
      value: 'gl',
      label: wp.i18n.__('Galician', 'soft-multimedia-player')
    }, {
      value: 'gu',
      label: wp.i18n.__('Gujarati', 'soft-multimedia-player')
    }, {
      value: 'he',
      label: wp.i18n.__('Hebrew', 'soft-multimedia-player')
    }, {
      value: 'hi',
      label: wp.i18n.__('Hindi', 'soft-multimedia-player')
    }, {
      value: 'hr',
      label: wp.i18n.__('Croatian', 'soft-multimedia-player')
    }, {
      value: 'hu',
      label: wp.i18n.__('Hungarian', 'soft-multimedia-player')
    }, {
      value: 'hy',
      label: wp.i18n.__('Armenian', 'soft-multimedia-player')
    }, {
      value: 'id',
      label: wp.i18n.__('Indonesian', 'soft-multimedia-player')
    }, {
      value: 'is',
      label: wp.i18n.__('Icelandic', 'soft-multimedia-player')
    }, {
      value: 'it',
      label: wp.i18n.__('Italian', 'soft-multimedia-player')
    }, {
      value: 'ja',
      label: wp.i18n.__('Japanese', 'soft-multimedia-player')
    }, {
      value: 'ka',
      label: wp.i18n.__('Georgian', 'soft-multimedia-player')
    }, {
      value: 'kk',
      label: wp.i18n.__('Kazakh', 'soft-multimedia-player')
    }, {
      value: 'km',
      label: wp.i18n.__('Khmer', 'soft-multimedia-player')
    }, {
      value: 'kn',
      label: wp.i18n.__('Kannada', 'soft-multimedia-player')
    }, {
      value: 'ko',
      label: wp.i18n.__('Korean', 'soft-multimedia-player')
    }, {
      value: 'lo',
      label: wp.i18n.__('Lao', 'soft-multimedia-player')
    }, {
      value: 'lt',
      label: wp.i18n.__('Lithuanian', 'soft-multimedia-player')
    }, {
      value: 'lv',
      label: wp.i18n.__('Latvian', 'soft-multimedia-player')
    }, {
      value: 'mk',
      label: wp.i18n.__('Macedonian', 'soft-multimedia-player')
    }, {
      value: 'ml',
      label: wp.i18n.__('Malayalam', 'soft-multimedia-player')
    }, {
      value: 'mn',
      label: wp.i18n.__('Mongolian', 'soft-multimedia-player')
    }, {
      value: 'mr',
      label: wp.i18n.__('Marathi', 'soft-multimedia-player')
    }, {
      value: 'ms',
      label: wp.i18n.__('Malay', 'soft-multimedia-player')
    }, {
      value: 'my',
      label: wp.i18n.__('Burmese', 'soft-multimedia-player')
    }, {
      value: 'ne',
      label: wp.i18n.__('Nepali', 'soft-multimedia-player')
    }, {
      value: 'nl',
      label: wp.i18n.__('Dutch', 'soft-multimedia-player')
    }, {
      value: 'no',
      label: wp.i18n.__('Norwegian', 'soft-multimedia-player')
    }, {
      value: 'pa',
      label: wp.i18n.__('Punjabi', 'soft-multimedia-player')
    }, {
      value: 'pl',
      label: wp.i18n.__('Polish', 'soft-multimedia-player')
    }, {
      value: 'pt',
      label: wp.i18n.__('Portuguese', 'soft-multimedia-player')
    }, {
      value: 'ro',
      label: wp.i18n.__('Romanian', 'soft-multimedia-player')
    }, {
      value: 'ru',
      label: wp.i18n.__('Russian', 'soft-multimedia-player')
    }, {
      value: 'si',
      label: wp.i18n.__('Sinhala', 'soft-multimedia-player')
    }, {
      value: 'sk',
      label: wp.i18n.__('Slovak', 'soft-multimedia-player')
    }, {
      value: 'sl',
      label: wp.i18n.__('Slovenian', 'soft-multimedia-player')
    }, {
      value: 'sq',
      label: wp.i18n.__('Albanian', 'soft-multimedia-player')
    }, {
      value: 'sr',
      label: wp.i18n.__('Serbian', 'soft-multimedia-player')
    }, {
      value: 'sv',
      label: wp.i18n.__('Swedish', 'soft-multimedia-player')
    }, {
      value: 'sw',
      label: wp.i18n.__('Swahili', 'soft-multimedia-player')
    }, {
      value: 'ta',
      label: wp.i18n.__('Tamil', 'soft-multimedia-player')
    }, {
      value: 'te',
      label: wp.i18n.__('Telugu', 'soft-multimedia-player')
    }, {
      value: 'th',
      label: wp.i18n.__('Thai', 'soft-multimedia-player')
    }, {
      value: 'tl',
      label: wp.i18n.__('Tagalog', 'soft-multimedia-player')
    }, {
      value: 'tr',
      label: wp.i18n.__('Turkish', 'soft-multimedia-player')
    }, {
      value: 'uk',
      label: wp.i18n.__('Ukrainian', 'soft-multimedia-player')
    }, {
      value: 'ur',
      label: wp.i18n.__('Urdu', 'soft-multimedia-player')
    }, {
      value: 'uz',
      label: wp.i18n.__('Uzbek', 'soft-multimedia-player')
    }, {
      value: 'vi',
      label: wp.i18n.__('Vietnamese', 'soft-multimedia-player')
    }, {
      value: 'zh',
      label: wp.i18n.__('Chinese', 'soft-multimedia-player')
    }],
    value: subtitleLang,
    onChange: function onChange(value) {
      return handleChange({
        subtitleLang: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Upload Subtitle .srt file here.', 'soft-multimedia-player'))))), 'podcast-player' === type && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Season', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'text',
    value: season,
    onChange: function onChange(value) {
      return handleChange({
        season: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the season.", 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Episode', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'text',
    value: episode,
    onChange: function onChange(value) {
      return handleChange({
        episode: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the episode.", 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Episode Type', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(Tracks_SelectControl, {
    value: episodeType,
    options: [{
      label: wp.i18n.__('None', 'soft-multimedia-player'),
      value: 'none'
    }, {
      label: wp.i18n.__('Full', 'soft-multimedia-player'),
      value: 'full'
    }, {
      label: wp.i18n.__('Trailer', 'soft-multimedia-player'),
      value: 'trailer'
    }, {
      label: wp.i18n.__('Bonus', 'soft-multimedia-player'),
      value: 'bonus'
    }],
    onChange: function onChange(value) {
      return handleChange({
        episodeType: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the episode type.", 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Episode Link', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'url',
    placeholder: wp.i18n.__('Enter Episode Link', 'soft-multimedia-player'),
    value: episodeLink,
    onChange: function onChange(value) {
      return handleChange({
        episodeLink: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the episode link.", 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Publish Date', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(TextControl, {
    type: 'date',
    value: publishDate,
    onChange: function onChange(value) {
      return handleChange({
        publishDate: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the episode link.", 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("span", {
    className: 'form-label'
  }, wp.i18n.__('Explicit Content', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(Tracks_SelectControl, {
    value: explicit,
    options: [{
      label: wp.i18n.__('No', 'soft-multimedia-player'),
      value: 'no'
    }, {
      label: wp.i18n.__('Yes', 'soft-multimedia-player'),
      value: 'yes'
    }, {
      label: wp.i18n.__('Clean', 'soft-multimedia-player'),
      value: 'clean'
    }],
    onChange: function onChange(value) {
      return handleChange({
        explicit: value
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Set the explicit content type.", 'soft-multimedia-player'), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("strong", null, "Note : "), wp.i18n.__("Explicit content includes that the episode material that may not be suitable for all listeners", 'soft-multimedia-player')))))));
});
var SortableList = sortableContainer(function (_ref2) {
  var items = _ref2.items,
    itemTitle = _ref2.itemTitle,
    type = _ref2.type,
    skin = _ref2.skin,
    subtitle = _ref2.subtitle,
    active = _ref2.active,
    options = _ref2.options,
    genreOptions = _ref2.genreOptions,
    setActive = _ref2.setActive,
    onRemove = _ref2.onRemove,
    handleChange = _ref2.handleChange,
    handleCreate = _ref2.handleCreate,
    handleDuplicate = _ref2.handleDuplicate;
  return /*#__PURE__*/React.createElement("div", {
    className: "player-tracks"
  }, items.map(function (value, index) {
    var isActive = active === index;
    return /*#__PURE__*/React.createElement(SortableItem, {
      key: index,
      length: items.length,
      skin: skin,
      options: options,
      genreOptions: genreOptions,
      isActive: isActive,
      handleActive: function handleActive() {
        return setActive(isActive ? null : index);
      },
      handleChange: handleChange,
      handleCreate: handleCreate,
      keyIndex: index,
      index: index,
      value: value,
      itemTitle: itemTitle,
      type: type,
      subtitle: subtitle,
      handleDuplicate: handleDuplicate,
      onRemove: onRemove
    });
  }));
});
function Tracks() {
  var _window$smp;
  var _smp2 = smp,
    isPro = _smp2.isPro,
    homeUrl = _smp2.homeUrl,
    genres = _smp2.genres;
  var context = Tracks_useContext(contexts_AppContext);
  var editData = context.editData,
    setEditData = context.setEditData,
    prevData = context.prevData;
  var type = editData.type,
    _editData$items = editData.items,
    items = _editData$items === void 0 ? [] : _editData$items,
    _editData$skin = editData.skin,
    skin = _editData$skin === void 0 ? 'skin1' : _editData$skin,
    subtitle = editData.subtitle,
    _editData$podcastItem = editData.podcastItems,
    podcastItems = _editData$podcastItem === void 0 ? [] : _editData$podcastItem,
    rssfeed = editData.rssfeed,
    rssfeedUrl = editData.rssfeedUrl;
  var initOptions = items.flatMap(function (item) {
    return (item === null || item === void 0 ? void 0 : item.playlist) || [];
  }).filter(function (item, index, self) {
    return index === self.findIndex(function (t) {
      return t.value === item.value;
    });
  });

  // Playlist options
  var _useState = Tracks_useState(initOptions),
    _useState2 = Tracks_slicedToArray(_useState, 2),
    options = _useState2[0],
    setOptions = _useState2[1];

  // Genres options
  var initGenreOptions = genres.map(function (genre) {
    return {
      value: genre,
      label: genre
    };
  });
  var _useState3 = Tracks_useState(initGenreOptions),
    _useState4 = Tracks_slicedToArray(_useState3, 2),
    genreOptions = _useState4[0],
    setGenreOptions = _useState4[1];
  var rssFeedUrlValidation = /^(https?:\/\/)[^\s]+(\.(rss|xml|rdf))?([\/\?][^\s]*)?(format=rss|feed=(rss2?|atom))?/i;
  var isValidRssFeedUrl = rssFeedUrlValidation.test(rssfeedUrl);
  var _useState5 = Tracks_useState(false),
    _useState6 = Tracks_slicedToArray(_useState5, 2),
    isSyncing = _useState6[0],
    setIsSyncing = _useState6[1];
  var syncRssFeedItems = function syncRssFeedItems() {
    setIsSyncing(true);
    wp.ajax.post('smp_get_feed_items', {
      url: rssfeedUrl,
      nonce: smp.nonce
    }).done(function (response) {
      if (Array.isArray(response)) {
        setEditData(function (data) {
          return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
            podcastItems: Tracks_toConsumableArray(response)
          });
        });
      }
      (0,functions/* showNotification */.Ds)(wp.i18n.__('RSS feed items synced successfully.', 'soft-multimedia-player'), 'success');
    }).fail(function (error) {
      console.error('Error syncing RSS feed items:', error);
      (0,functions/* showNotification */.Ds)(wp.i18n.__('Failed to sync RSS feed items.', 'soft-multimedia-player'), 'error');
    }).always(function () {
      setIsSyncing(false);
    });
  };
  var title = (0,functions/* playerTypes */.Fw)()[type].title;
  var initItem = {
    title: 'podcast-player' === type ? wp.i18n.__('Episode Title', 'soft-multimedia-player') : wp.i18n.__('Track Title', 'soft-multimedia-player'),
    source: '',
    thumbnail: type !== 'video-player' ? ((_window$smp = window.smp) === null || _window$smp === void 0 ? void 0 : _window$smp.pluginUrl) + "/assets/images/placeholder.png" : '',
    playlist: []
  };
  var _useState7 = Tracks_useState(items.length === 1 ? 0 : null),
    _useState8 = Tracks_slicedToArray(_useState7, 2),
    active = _useState8[0],
    setActive = _useState8[1];
  var isRssFeed = items.some(function (item) {
    return item.sourceType === 'rss-feed';
  });
  var handleChange = function handleChange(obj) {
    var key = Object.keys(obj)[0];
    var value = obj[key];
    setEditData(function (editData) {
      var updatedItems = Tracks_toConsumableArray(editData.items);
      updatedItems[active] = Tracks_objectSpread(Tracks_objectSpread({}, updatedItems[active]), {}, Tracks_defineProperty({}, key, value));
      return Tracks_objectSpread(Tracks_objectSpread({}, editData), {}, {
        items: updatedItems
      });
    });
  };
  var handleCreate = function handleCreate(inputValue) {
    var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'playlist';
    if (!smp.isPro) {
      (0,ProModal/* default */.A)();
      return;
    }
    var newOption = {
      label: inputValue,
      value: inputValue
    };
    var currentItem = active !== null ? items[active] : null;
    if (!currentItem) return;
    if (type === 'genre') {
      var updatedGenres = [].concat(Tracks_toConsumableArray(currentItem.genre || []), [newOption]);
      setGenreOptions(function (prev) {
        return [].concat(Tracks_toConsumableArray(prev), [newOption]);
      });
      handleChange({
        genre: updatedGenres
      });
    } else {
      var updatedPlaylists = [].concat(Tracks_toConsumableArray(currentItem.playlist || []), [newOption]);
      setOptions(function (prev) {
        return [].concat(Tracks_toConsumableArray(prev), [newOption]);
      });
      handleChange({
        playlist: updatedPlaylists
      });
    }
  };
  var handleDuplicate = function handleDuplicate(index) {
    if (!smp.isPro && items.length >= 5) {
      (0,ProModal/* default */.A)(wp.i18n.__('You can add up to 5 items to the same player on the free version.', 'soft-multimedia-player'));
      return;
    }
    setEditData(function (data) {
      return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
        items: [].concat(Tracks_toConsumableArray(items), [items[index]])
      });
    });
  };
  var handleDelete = function handleDelete(index) {
    setEditData(function (data) {
      return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
        items: items.filter(function (item, i) {
          return i !== index;
        })
      });
    });
  };
  var handleAddNew = function handleAddNew() {
    if (!smp.isPro && items.length >= 5) {
      (0,ProModal/* default */.A)(wp.i18n.__('You can add up to 5 items to the same player on the free version.', 'soft-multimedia-player'));
      return;
    }

    // Create a deep copy of the items array
    setEditData(function (data) {
      return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
        items: [].concat(Tracks_toConsumableArray(items), [initItem])
      });
    });
    setActive(items.length);
  };
  var handleSortEnd = function handleSortEnd(_ref3) {
    var oldIndex = _ref3.oldIndex,
      newIndex = _ref3.newIndex;
    setEditData(function (data) {
      return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
        items: arrayMoveImmutable(items, oldIndex, newIndex)
      });
    });
  };

  // Update title on type change
  Tracks_useEffect(function () {
    if (editData.id > 0) return;
    setEditData(function (editData) {
      return Tracks_objectSpread(Tracks_objectSpread({}, editData), {}, {
        items: items.map(function (item) {
          var _window$smp2;
          return Tracks_objectSpread(Tracks_objectSpread({}, item), {}, {
            title: title + wp.i18n.__(' Title', 'soft-multimedia-player'),
            thumbnail: type === 'video-player' ? '' : ((_window$smp2 = window.smp) === null || _window$smp2 === void 0 ? void 0 : _window$smp2.pluginUrl) + "/assets/images/placeholder.png"
          });
        })
      });
    });
  }, [type]);
  var handleRssFeedUrlChange = function handleRssFeedUrlChange() {
    if (isValidRssFeedUrl) {
      if (rssfeedUrl !== prevData.rssfeedUrl) {
        syncRssFeedItems();
        prevData.rssfeedUrl = rssfeedUrl;
      }
    } else {
      setEditData(function (data) {
        return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
          podcastItems: []
        });
      }); // Clear podcast items if URL is invalid
    }
  };
  return /*#__PURE__*/React.createElement("div", {
    className: "settings-body"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "settings-title"
  }, wp.i18n.__('Tracks', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, type === 'audio-player' && wp.i18n.__('Add and manage audio tracks for your player. Multiple tracks can be listed in the playlist.', 'soft-multimedia-player'), type === 'video-player' && wp.i18n.__('Add and manage video tracks for your player. Multiple tracks can be listed in the playlist.', 'soft-multimedia-player'), type === 'podcast-player' && wp.i18n.__('Add and manage podcast episodes. Multiple episodes can be listed in the playlist.', 'soft-multimedia-player'))), type === 'podcast-player' && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "form-label"
  }, wp.i18n.__('Source Type', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-content "
  }, /*#__PURE__*/React.createElement(Tracks_ButtonGroup, null, /*#__PURE__*/React.createElement(Tracks_Button, {
    className: "btn ".concat(!rssfeed ? 'is-primary' : ''),
    onClick: function onClick() {
      return setEditData(function (data) {
        return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
          rssfeed: false
        });
      });
    }
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/modules/podcast-player/other.png"),
    alt: wp.i18n.__('Other', 'soft-multimedia-player')
  }), wp.i18n.__('Other', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(Tracks_Button, {
    className: "btn ".concat(rssfeed ? 'is-primary' : ''),
    onClick: function onClick() {
      setEditData(function (data) {
        return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
          rssfeed: true
        });
      });
    }
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/modules/podcast-player/rss-feed.png"),
    alt: wp.i18n.__('RSS Feed', 'soft-multimedia-player')
  }), wp.i18n.__('RSS Feed', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the source type for your podcast player. Either by adding custom tracks or using an RSS feed.', 'soft-multimedia-player')))), !!rssfeed && type === 'podcast-player' && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "form-label"
  }, wp.i18n.__('RSS Feed URL', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-content "
  }, /*#__PURE__*/React.createElement(TextControl, {
    onBlur: handleRssFeedUrlChange,
    className: "form-control rss-feed-input",
    placeholder: wp.i18n.__('Enter RSS Feed URL', 'soft-multimedia-player'),
    value: editData.rssfeedUrl,
    onChange: function onChange(value) {
      return setEditData(function (data) {
        return Tracks_objectSpread(Tracks_objectSpread({}, data), {}, {
          rssfeedUrl: value
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Tracks_Button, {
    className: "smp-btn btn-primary rss-sync-btn ".concat(isSyncing ? 'loading' : '', " ").concat(!isValidRssFeedUrl ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isValidRssFeedUrl) {
        Swal.alert({
          title: wp.i18n.__('Invalid RSS Feed URL', 'soft-multimedia-player'),
          text: wp.i18n.__('Please enter a valid RSS Feed URL.', 'soft-multimedia-player'),
          icon: 'warning'
        });
        return;
      }
      syncRssFeedItems();
    },
    icon: "update",
    label: wp.i18n.__('Sync RSS Feed', 'soft-multimedia-player'),
    text: isSyncing ? wp.i18n.__('Syncing...', 'soft-multimedia-player') : wp.i18n.__('Sync Episodes', 'soft-multimedia-player')
  }), (rssfeedUrl === null || rssfeedUrl === void 0 ? void 0 : rssfeedUrl.length) > 0 && !isValidRssFeedUrl && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-no rss-feed-validate"
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: ".rss-feed-validate",
    className: "smp-tooltip",
    place: "top",
    effect: "solid",
    variant: 'warning',
    content: wp.i18n.__('Invalid URL', 'soft-multimedia-player')
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Make sure you have a valid RSS Feed. You can ', 'soft-multimedia-player'), /*#__PURE__*/React.createElement("a", {
    href: "https://podba.se/validate/",
    target: "_blank",
    rel: "noopener noreferrer"
  }, wp.i18n.__('validate it here', 'soft-multimedia-player')), "."))), (!rssfeed || 'podcast-player' !== type) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SortableList, {
    lockAxis: 'y',
    lockToContainerEdges: true,
    shouldCancelStart: function shouldCancelStart(e) {
      return !e.target.classList.contains('sort-item');
    },
    items: items,
    itemTitle: title,
    type: type,
    skin: skin,
    subtitle: subtitle,
    active: active,
    options: options,
    genreOptions: genreOptions,
    setActive: setActive,
    helperClass: 'sortable-item',
    updateBeforeSortStart: function updateBeforeSortStart() {
      return setActive(null);
    },
    onSortEnd: handleSortEnd,
    handleChange: handleChange,
    handleCreate: handleCreate,
    handleDuplicate: handleDuplicate,
    onRemove: handleDelete
  }), /*#__PURE__*/React.createElement("button", {
    type: "button",
    "data-tooltip-content": wp.i18n.__('Pro Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "add-new-tooltip",
    className: "smp-btn btn-primary add-new-btn ".concat(!smp.isPro && items.length >= 5 || !!isRssFeed ? 'disabled' : ''),
    onClick: handleAddNew,
    disabled: isRssFeed
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-plus"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Add New ', 'soft-multimedia-player'), " ", type === 'podcast-player' ? wp.i18n.__('Episode', 'soft-multimedia-player') : wp.i18n.__('Track', 'soft-multimedia-player'))), !smp.isPro && items.length >= 5 && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    padding: "5px 10px",
    id: "add-new-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  })));
}
;// ./src/js/components/App/Form/Skins.js
function Skins_typeof(o) { "@babel/helpers - typeof"; return Skins_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Skins_typeof(o); }
function Skins_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Skins_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Skins_ownKeys(Object(t), !0).forEach(function (r) { Skins_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Skins_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Skins_defineProperty(e, r, t) { return (r = Skins_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Skins_toPropertyKey(t) { var i = Skins_toPrimitive(t, "string"); return "symbol" == Skins_typeof(i) ? i : i + ""; }
function Skins_toPrimitive(t, r) { if ("object" != Skins_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Skins_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }



var Skins_React = React,
  Skins_useContext = Skins_React.useContext;
function Skins() {
  var isPro = !!smp.isPro;
  var context = Skins_useContext(contexts_AppContext);
  var editData = context.editData,
    setEditData = context.setEditData;
  var type = editData.type,
    _editData$skin = editData.skin,
    skin = _editData$skin === void 0 ? 'skin0' : _editData$skin;
  var skins = (0,functions/* getSkins */.ro)(type);
  return /*#__PURE__*/React.createElement("div", {
    className: "settings-body"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "header-title"
  }, wp.i18n.__('Choose Player Skin', 'soft-multimedia-player'), " "), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Skins will be applied to the shortcode and popup players but not to the sticky player.', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "skins"
  }, Object.keys(skins).map(function (key) {
    var isProSkin = skins[key].isPro;
    var config = skins[key].config ? skins[key].config : null;
    return /*#__PURE__*/React.createElement("div", {
      key: key,
      className: "skin-item ".concat(skin === key ? 'active' : '', " ").concat(isProSkin && !isPro ? 'pro' : ''),
      onClick: function onClick() {
        if (isProSkin && !isPro) {
          (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use this skin', 'soft-multimedia-player'));
          return;
        }
        setEditData(function (data) {
          return Skins_objectSpread(Skins_objectSpread({}, data), {}, {
            skin: key
          });
        });
        if (config) {
          Object.keys(config).map(function (key) {
            return setEditData(function (data) {
              return Skins_objectSpread(Skins_objectSpread({}, data), {}, Skins_defineProperty({}, key, config[key]));
            });
          });
        }
      }
    }, /*#__PURE__*/React.createElement("div", {
      className: "img-wrap"
    }, /*#__PURE__*/React.createElement("img", {
      src: "".concat(smp.pluginUrl, "/assets/images/skins/").concat(type, "/").concat(key, ".png")
    })), /*#__PURE__*/React.createElement("div", {
      className: "skin-title"
    }, /*#__PURE__*/React.createElement("span", null, skins[key]['title']), /*#__PURE__*/React.createElement("a", {
      href: "https://softlabbd.com/multimedia-player-multiple-player-skins#".concat(key),
      target: '_blank',
      onClick: function onClick(e) {
        return e.stopPropagation();
      }
    }, /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-visibility"
    }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Preview', 'soft-multimedia-player')))));
  })));
}
;// ./src/js/components/App/Form/Controls/FormToggleWrapper.js

var FormToggleWrapper_FormToggle = wp.components.FormToggle;
var FormToggleWrapper = function FormToggleWrapper(_ref) {
  var title = _ref.title,
    content = _ref.content,
    itemKey = _ref.itemKey,
    updateValue = _ref.updateValue,
    _ref$isPremium = _ref.isPremium,
    isPremium = _ref$isPremium === void 0 ? false : _ref$isPremium,
    _onClick = _ref.onClick,
    _ref$className = _ref.className,
    className = _ref$className === void 0 ? '' : _ref$className;
  var _smp = smp,
    isPro = _smp.isPro;
  return /*#__PURE__*/React.createElement("div", {
    className: "form-group ".concat(className)
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, title && /*#__PURE__*/React.createElement("span", null, wp.i18n.__(title, 'multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": !isPro && !!isPremium ? wp.i18n.__('Pro Feature', 'multimedia-player') : null,
    "data-tooltip-id": !isPro && !!isPremium ? "toggle_type-tooltip" + itemKey : null,
    className: "form-field ".concat(!isPro && !!isPremium ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement(FormToggleWrapper_FormToggle, {
    checked: updateValue,
    onClick: function onClick() {
      _onClick();
    }
  }), content && /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__(content, 'multimedia-player')), itemKey === 'autoPlay' && /*#__PURE__*/React.createElement("div", {
    className: "smp-notice smp-notice-warning"
  }, /*#__PURE__*/React.createElement("p", {
    className: "smp-notice-content"
  }, wp.i18n.__("Autoplay may not work as expected, as modern browsers block it for user experience and security.", 'radio-player'))), itemKey === 'downloadButton' && /*#__PURE__*/React.createElement("div", {
    className: "smp-notice smp-notice-warning"
  }, /*#__PURE__*/React.createElement("p", {
    className: "smp-notice-content"
  }, wp.i18n.__("Download only works for local audio and video files only.", 'radio-player'))), itemKey === 'subtitle' && /*#__PURE__*/React.createElement("div", {
    className: "smp-notice smp-notice-info"
  }, /*#__PURE__*/React.createElement("p", {
    className: "smp-notice-content"
  }, wp.i18n.__("You need to configure subtitle language & upload the subtitle file.", 'radio-player')))), !isPro && !!isPremium && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: "smp-tooltip",
    id: "toggle_type-tooltip" + itemKey,
    place: "left",
    variant: "warning"
  }));
};
/* harmony default export */ const Controls_FormToggleWrapper = (FormToggleWrapper);
;// ./src/js/components/App/Form/Controls/PlaylistStyle.js
function PlaylistStyle_typeof(o) { "@babel/helpers - typeof"; return PlaylistStyle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PlaylistStyle_typeof(o); }
function PlaylistStyle_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function PlaylistStyle_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? PlaylistStyle_ownKeys(Object(t), !0).forEach(function (r) { PlaylistStyle_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : PlaylistStyle_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function PlaylistStyle_defineProperty(e, r, t) { return (r = PlaylistStyle_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function PlaylistStyle_toPropertyKey(t) { var i = PlaylistStyle_toPrimitive(t, "string"); return "symbol" == PlaylistStyle_typeof(i) ? i : i + ""; }
function PlaylistStyle_toPrimitive(t, r) { if ("object" != PlaylistStyle_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PlaylistStyle_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }




var PlaylistStyle_wp$components = wp.components,
  Radio = PlaylistStyle_wp$components.__experimentalRadio,
  RadioGroup = PlaylistStyle_wp$components.__experimentalRadioGroup;
var styleOptions = [{
  value: 'default',
  label: wp.i18n.__('Default', 'soft-multimedia-player')
}, {
  value: 'style-1',
  label: wp.i18n.__('Style 1', 'soft-multimedia-player')
}, {
  value: 'style-2',
  label: wp.i18n.__('Style 2', 'soft-multimedia-player')
}, {
  value: 'style-3',
  label: wp.i18n.__('Style 3', 'soft-multimedia-player')
}, {
  value: 'style-4',
  label: wp.i18n.__('Style 4', 'soft-multimedia-player')
}, {
  value: 'style-5',
  label: wp.i18n.__('Style 5', 'soft-multimedia-player')
}];
function PlaylistStyle() {
  var _useContext = (0,external_React_.useContext)(contexts_AppContext),
    editData = _useContext.editData,
    setEditData = _useContext.setEditData;
  var playlistStyle = editData.playlistStyle || 'default';
  var handleChange = function handleChange(style) {
    if (!smp.isPro && style !== 'default') {
      (0,ProModal/* default */.A)(__('Upgrade to PRO to use this feature.', 'soft-multimedia-player'));
      return;
    }
    setEditData(function (data) {
      return PlaylistStyle_objectSpread(PlaylistStyle_objectSpread({}, data), {}, {
        playlistStyle: style
      });
    });
  };
  return /*#__PURE__*/external_React_default().createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/external_React_default().createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/external_React_default().createElement("span", null, wp.i18n.__('Playlist Style', 'soft-multimedia-player'))), /*#__PURE__*/external_React_default().createElement("div", {
    "data-tooltip-id": "playlist_style-tooltip",
    "data-tooltip-content": wp.i18n.__('Pro Feature', 'soft-multimedia-player'),
    className: "form-field ".concat(!smp.isPro && playlistStyle !== 'default' ? 'disabled' : '')
  }, /*#__PURE__*/external_React_default().createElement(RadioGroup, {
    label: wp.i18n.__('Playlist Style', 'soft-multimedia-player'),
    checked: playlistStyle,
    onChange: handleChange,
    className: "playlist-list-style"
  }, styleOptions.map(function (_ref) {
    var value = _ref.value,
      label = _ref.label;
    var isDefault = value === 'default';
    var isActive = playlistStyle === value;
    var isDisabled = !smp.isPro && !isDefault;
    return /*#__PURE__*/external_React_default().createElement(Radio, {
      key: value,
      value: value,
      className: "".concat(isDisabled ? 'pro-feature disabled' : '', " ").concat(isActive ? 'active' : '')
    }, /*#__PURE__*/external_React_default().createElement("img", {
      src: "".concat(smp.pluginUrl, "/assets/images/icons/playlist/").concat(isDefault ? 'default' : value, ".png"),
      alt: label
    }), /*#__PURE__*/external_React_default().createElement("span", null, label));
  })), !smp.isPro && /*#__PURE__*/external_React_default().createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: ".pro-feature",
    effect: "solid",
    place: "top",
    variant: "warning",
    className: "smp-tooltip",
    content: wp.i18n.__('PRO feature', 'soft-multimedia-player')
  }), /*#__PURE__*/external_React_default().createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the playlist style.', 'soft-multimedia-player'))));
}
;// ./src/js/components/App/Form/Controls.js
function Controls_typeof(o) { "@babel/helpers - typeof"; return Controls_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Controls_typeof(o); }
function Controls_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Controls_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Controls_ownKeys(Object(t), !0).forEach(function (r) { Controls_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Controls_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Controls_defineProperty(e, r, t) { return (r = Controls_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Controls_toPropertyKey(t) { var i = Controls_toPrimitive(t, "string"); return "symbol" == Controls_typeof(i) ? i : i + ""; }
function Controls_toPrimitive(t, r) { if ("object" != Controls_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Controls_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }





var Controls_FormToggle = wp.components.FormToggle;
var Controls_React = React,
  Controls_useContext = Controls_React.useContext;
var _smp = smp,
  isPro = _smp.isPro;
function Controls() {
  var context = Controls_useContext(contexts_AppContext);
  var editData = context.editData,
    setEditData = context.setEditData;
  var type = editData.type,
    sourceType = editData.sourceType,
    _editData$volumeButto = editData.volumeButton,
    volumeButton = _editData$volumeButto === void 0 ? true : _editData$volumeButto,
    _editData$progressBar = editData.progressBar,
    progressBar = _editData$progressBar === void 0 ? true : _editData$progressBar,
    _editData$previousNex = editData.previousNextButton,
    previousNextButton = _editData$previousNex === void 0 ? true : _editData$previousNex,
    rewindForwardButton = editData.rewindForwardButton,
    _editData$playlist = editData.playlist,
    playlist = _editData$playlist === void 0 ? type === 'podcast-player' : _editData$playlist,
    searchPlaylist = editData.searchPlaylist,
    fullScreenButton = editData.fullScreenButton,
    _editData$popup = editData.popup,
    popup = _editData$popup === void 0 ? false : _editData$popup,
    shuffleButton = editData.shuffleButton,
    downloadButton = editData.downloadButton,
    settingButton = editData.settingButton,
    _editData$trackTimeDu = editData.trackTimeDuration,
    trackTimeDuration = _editData$trackTimeDu === void 0 ? true : _editData$trackTimeDu,
    autoPlay = editData.autoPlay,
    subtitle = editData.subtitle,
    keyboardShortcuts = editData.keyboardShortcuts,
    embedding = editData.embedding,
    schema = editData.schema;
  return /*#__PURE__*/React.createElement("div", {
    className: "settings-body"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "header-title"
  }, wp.i18n.__('Customize Player Controls', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Customize the different controls and elements of the player.', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Progress Bar', 'soft-multimedia-player'),
    content: wp.i18n.__('Choose to display the progress bar for tracking audio playback.', 'soft-multimedia-player'),
    updateValue: progressBar,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          progressBar: !progressBar
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Next/Previous Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Allow users to skip to the next or previous track.', 'soft-multimedia-player'),
    updateValue: previousNextButton,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          previousNextButton: !previousNextButton
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Rewind/Forward Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable rewind and forward buttons for jumping back or forward by a set time.', 'soft-multimedia-player'),
    updateValue: rewindForwardButton,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use this feature.', 'soft-multimedia-player'));
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          rewindForwardButton: !rewindForwardButton
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Volume Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable or disable the volume control button for adjusting audio levels.', 'soft-multimedia-player'),
    updateValue: volumeButton,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          volumeButton: !volumeButton
        });
      });
    }
  }), type === 'video-player' && /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Full Screen Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable a fullscreen button for video players.', 'soft-multimedia-player'),
    updateValue: fullScreenButton,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          fullScreenButton: !fullScreenButton
        });
      });
    }
  }), /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": !isPro && type !== 'podcast-player' ? wp.i18n.__('Pro Feature', 'soft-multimedia-player') : null,
    "data-tooltip-id": !isPro && type !== 'podcast-player' ? "toggle_type-tooltip-playlist" : null,
    className: "display-playlist ".concat(playlist && "active", " ").concat(!isPro && type !== 'podcast-player' ? 'disabled' : '', " form-group")
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Playlist', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field ".concat(!isPro && type !== 'podcast-player' ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement(Controls_FormToggle, {
    checked: playlist,
    onChange: function onChange() {
      if (!isPro && type !== 'podcast-player') {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use this feature.', 'soft-multimedia-player'));
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          playlist: !playlist
        });
      });
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Show or hide the playlist with all available tracks.', 'soft-multimedia-player')), (playlist || !isPro) && /*#__PURE__*/React.createElement("div", {
    className: "playlist"
  }, type === 'podcast-player' && /*#__PURE__*/React.createElement(PlaylistStyle, null), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Allow Search', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable/Disable search functionality within the audio playlist for quick track navigation.', 'soft-multimedia-player'),
    updateValue: searchPlaylist,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use this feature.', 'soft-multimedia-player'));
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          searchPlaylist: !searchPlaylist
        });
      });
    },
    className: "playlist-item ".concat(!isPro ? 'disabled' : '')
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Track Duration', 'soft-multimedia-player'),
    content: wp.i18n.__('Show the time duration of each track in the playlist.', 'soft-multimedia-player'),
    updateValue: trackTimeDuration,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          trackTimeDuration: !trackTimeDuration
        });
      });
    }
  })))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: "smp-tooltip",
    id: "toggle_type-tooltip-playlist",
    place: "left",
    variant: "warning"
  }), type !== 'video-player' && /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Popup Icon', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable a shuffle button to randomly play the tracks in the playlist.', 'soft-multimedia-player'),
    updateValue: popup,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          popup: !popup
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Shuffle Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable a shuffle button to randomly play the tracks in the playlist.', 'soft-multimedia-player'),
    updateValue: shuffleButton,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          shuffleButton: !shuffleButton
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Download Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable a button that lets users download the audio directly from the player.', 'soft-multimedia-player'),
    itemKey: "downloadButton",
    updateValue: downloadButton,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          downloadButton: !downloadButton
        });
      });
    }
  }), type !== 'video-player' && /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Settings Button', 'soft-multimedia-player'),
    content: wp.i18n.__('Provide an option for users to access and adjust the audio player settings.', 'soft-multimedia-player'),
    updateValue: settingButton,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          settingButton: !settingButton
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Allow Autoplay', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable the player to automatically start playing once the page loads.', 'soft-multimedia-player'),
    itemKey: "autoPlay",
    updateValue: autoPlay,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          autoPlay: !autoPlay
        });
      });
    }
  }), type === 'video-player' && 'local' === sourceType && /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Video Subtitle', 'soft-multimedia-player'),
    content: wp.i18n.__('You need to configure video subtitles in the video settings.', 'soft-multimedia-player'),
    itemKey: "subtitle",
    updateValue: subtitle,
    onClick: function onClick() {
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          subtitle: !subtitle
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Keyboard Shortcut', 'soft-multimedia-player'),
    content: wp.i18n.__('Allow users to control the player using keyboard shortcuts.', 'soft-multimedia-player'),
    updateValue: keyboardShortcuts,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          keyboardShortcuts: !keyboardShortcuts
        });
      });
    }
  }), /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Allow Embedding', 'soft-multimedia-player'),
    content: wp.i18n.__('Allow users to embed the audio player on other websites from front end.', 'soft-multimedia-player'),
    updateValue: embedding,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          embedding: !embedding
        });
      });
    }
  }), type === 'video-player' && /*#__PURE__*/React.createElement(Controls_FormToggleWrapper, {
    title: wp.i18n.__('Video Schema', 'soft-multimedia-player'),
    content: wp.i18n.__('Enable structured data markup for videos to improve visibility in search results and support rich video features.', 'soft-multimedia-player'),
    updateValue: schema,
    isPremium: true,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to enable Video Schema.', 'soft-multimedia-player'));
        return;
      }
      setEditData(function (data) {
        return Controls_objectSpread(Controls_objectSpread({}, data), {}, {
          schema: !schema
        });
      });
    }
  }));
}
;// ./src/js/components/App/Form/Controls/ColorPickerWrapper.js

var ColorPicker = wp.components.ColorPicker;
function ColorPickerWrapper(_ref) {
  var value = _ref.value,
    _onChange = _ref.onChange,
    _ref$allowReset = _ref.allowReset,
    allowReset = _ref$allowReset === void 0 ? false : _ref$allowReset,
    _ref$resetValue = _ref.resetValue,
    resetValue = _ref$resetValue === void 0 ? '' : _ref$resetValue;
  var uniqueId = 'color-picker-' + Math.random().toString(36).substring(7);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-color-picker-wrapper"
  }, /*#__PURE__*/React.createElement("div", {
    className: "color-holder-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-id": uniqueId,
    className: "color-holder",
    style: {
      background: value
    }
  }), /*#__PURE__*/React.createElement("input", {
    type: "text",
    className: "color-input",
    value: value,
    onChange: function onChange(e) {
      return _onChange(e.target.value);
    }
  }), /*#__PURE__*/React.createElement("i", {
    "data-tooltip-id": uniqueId,
    className: "smp-popup-edit color-edit dashicons dashicons-edit"
  }), allowReset && !!value && /*#__PURE__*/React.createElement("i", {
    className: "popup-settings-reset dashicons dashicons-image-rotate",
    onClick: function onClick() {
      return _onChange(null);
    },
    title: wp.i18n.__('Reset', 'cf7-extended')
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: uniqueId,
    effect: "solid",
    place: "top",
    variant: "light",
    openOnClick: true,
    clickable: true,
    delayHide: 100,
    className: "smp-tooltip color-picker-tooltip",
    positionStrategy: "absolute",
    border: '1px solid #ccc'
  }, /*#__PURE__*/React.createElement(ColorPicker, {
    color: value,
    onChange: _onChange,
    enableAlpha: true
  }))));
}
;// ./src/js/includes/google-fonts.json
const google_fonts_namespaceObject = /*#__PURE__*/JSON.parse('[{"value":"Arial,\'Helvetica Neue\',Helvetica,sans-serif","label":"Arial","category":"system fonts"},{"value":"\'Helvetica Neue\',Helvetica,Arial,sans-serif","label":"Helvetica Neue","category":"system fonts"},{"value":"\'TimesNewRoman\',\'Times New Roman\',Times,Baskerville,Georgia,serif","label":"Times New Roman","category":"system fonts"},{"value":"\'Courier New\',Courier,\'Lucida Sans Typewriter\',\'Lucida Typewriter\',monospace","label":"Courier New","category":"system fonts"},{"value":"Verdana,Geneva,sans-serif","label":"Verdana","category":"system fonts"},{"value":"Georgia,Times,\'Times New Roman\',serif","label":"Georgia","category":"system fonts"},{"value":"Palatino,\'Palatino Linotype\',\'Palatino LT STD\',\'Book Antiqua\',Georgia,serif","label":"Palatino","category":"system fonts"},{"value":"Garamond,Baskerville,\'Baskerville Old Face\',\'Hoefler Text\',\'Times New Roman\',serif","label":"Garamond","category":"system fonts"},{"value":"\'Trebuchet MS\',\'Lucida Grande\',\'Lucida Sans Unicode\',\'Lucida Sans\',Tahoma,sans-serif","label":"Trebuchet MS","category":"system fonts"},{"value":"\'Arial Black\',\'Arial Bold\',Gadget,sans-serif","label":"Arial Black","category":"system fonts"},{"value":"Impact,Haettenschweiler,\'Franklin Gothic Bold\',Charcoal,\'Helvetica Inserat\',\'Bitstream Vera Sans Bold\',\'Arial Black\',\'sans serif\'","label":"Impact","category":"system fonts"},{"value":"Tahoma,Verdana,Segoe,sans-serif","label":"Tahoma","category":"system fonts"},{"value":"\'ABeeZee\', sans-serif","label":"ABeeZee"},{"value":"\'Abel\', sans-serif","label":"Abel"},{"value":"\'Abhaya Libre\', serif","label":"Abhaya Libre"},{"value":"\'Abril Fatface\', display","label":"Abril Fatface"},{"value":"\'Aclonica\', sans-serif","label":"Aclonica"},{"value":"\'Acme\', sans-serif","label":"Acme"},{"value":"\'Actor\', sans-serif","label":"Actor"},{"value":"\'Adamina\', serif","label":"Adamina"},{"value":"\'Advent Pro\', sans-serif","label":"Advent Pro"},{"value":"\'Aguafina Script\', handwriting","label":"Aguafina Script"},{"value":"\'Akaya Kanadaka\', display","label":"Akaya Kanadaka"},{"value":"\'Akaya Telivigala\', display","label":"Akaya Telivigala"},{"value":"\'Akronim\', display","label":"Akronim"},{"value":"\'Aladin\', handwriting","label":"Aladin"},{"value":"\'Alata\', sans-serif","label":"Alata"},{"value":"\'Alatsi\', sans-serif","label":"Alatsi"},{"value":"\'Aldrich\', sans-serif","label":"Aldrich"},{"value":"\'Alef\', sans-serif","label":"Alef"},{"value":"\'Alegreya\', serif","label":"Alegreya"},{"value":"\'Alegreya SC\', serif","label":"Alegreya SC"},{"value":"\'Alegreya Sans\', sans-serif","label":"Alegreya Sans"},{"value":"\'Alegreya Sans SC\', sans-serif","label":"Alegreya Sans SC"},{"value":"\'Aleo\', serif","label":"Aleo"},{"value":"\'Alex Brush\', handwriting","label":"Alex Brush"},{"value":"\'Alfa Slab One\', display","label":"Alfa Slab One"},{"value":"\'Alice\', serif","label":"Alice"},{"value":"\'Alike\', serif","label":"Alike"},{"value":"\'Alike Angular\', serif","label":"Alike Angular"},{"value":"\'Allan\', display","label":"Allan"},{"value":"\'Allerta\', sans-serif","label":"Allerta"},{"value":"\'Allerta Stencil\', sans-serif","label":"Allerta Stencil"},{"value":"\'Allison\', handwriting","label":"Allison"},{"value":"\'Allura\', handwriting","label":"Allura"},{"value":"\'Almarai\', sans-serif","label":"Almarai"},{"value":"\'Almendra\', serif","label":"Almendra"},{"value":"\'Almendra Display\', display","label":"Almendra Display"},{"value":"\'Almendra SC\', serif","label":"Almendra SC"},{"value":"\'Alumni Sans\', sans-serif","label":"Alumni Sans"},{"value":"\'Amarante\', display","label":"Amarante"},{"value":"\'Amaranth\', sans-serif","label":"Amaranth"},{"value":"\'Amatic SC\', handwriting","label":"Amatic SC"},{"value":"\'Amethysta\', serif","label":"Amethysta"},{"value":"\'Amiko\', sans-serif","label":"Amiko"},{"value":"\'Amiri\', serif","label":"Amiri"},{"value":"\'Amita\', handwriting","label":"Amita"},{"value":"\'Anaheim\', sans-serif","label":"Anaheim"},{"value":"\'Andada\', serif","label":"Andada"},{"value":"\'Andada Pro\', serif","label":"Andada Pro"},{"value":"\'Andika\', sans-serif","label":"Andika"},{"value":"\'Andika New Basic\', sans-serif","label":"Andika New Basic"},{"value":"\'Angkor\', display","label":"Angkor"},{"value":"\'Annie Use Your Telescope\', handwriting","label":"Annie Use Your Telescope"},{"value":"\'Anonymous Pro\', monospace","label":"Anonymous Pro"},{"value":"\'Antic\', sans-serif","label":"Antic"},{"value":"\'Antic Didone\', serif","label":"Antic Didone"},{"value":"\'Antic Slab\', serif","label":"Antic Slab"},{"value":"\'Anton\', sans-serif","label":"Anton"},{"value":"\'Antonio\', sans-serif","label":"Antonio"},{"value":"\'Arapey\', serif","label":"Arapey"},{"value":"\'Arbutus\', display","label":"Arbutus"},{"value":"\'Arbutus Slab\', serif","label":"Arbutus Slab"},{"value":"\'Architects Daughter\', handwriting","label":"Architects Daughter"},{"value":"\'Archivo\', sans-serif","label":"Archivo"},{"value":"\'Archivo Black\', sans-serif","label":"Archivo Black"},{"value":"\'Archivo Narrow\', sans-serif","label":"Archivo Narrow"},{"value":"\'Aref Ruqaa\', serif","label":"Aref Ruqaa"},{"value":"\'Arima Madurai\', display","label":"Arima Madurai"},{"value":"\'Arimo\', sans-serif","label":"Arimo"},{"value":"\'Arizonia\', handwriting","label":"Arizonia"},{"value":"\'Armata\', sans-serif","label":"Armata"},{"value":"\'Arsenal\', sans-serif","label":"Arsenal"},{"value":"\'Artifika\', serif","label":"Artifika"},{"value":"\'Arvo\', serif","label":"Arvo"},{"value":"\'Arya\', sans-serif","label":"Arya"},{"value":"\'Asap\', sans-serif","label":"Asap"},{"value":"\'Asap Condensed\', sans-serif","label":"Asap Condensed"},{"value":"\'Asar\', serif","label":"Asar"},{"value":"\'Asset\', display","label":"Asset"},{"value":"\'Assistant\', sans-serif","label":"Assistant"},{"value":"\'Astloch\', display","label":"Astloch"},{"value":"\'Asul\', sans-serif","label":"Asul"},{"value":"\'Athiti\', sans-serif","label":"Athiti"},{"value":"\'Atkinson Hyperlegible\', sans-serif","label":"Atkinson Hyperlegible"},{"value":"\'Atma\', display","label":"Atma"},{"value":"\'Atomic Age\', display","label":"Atomic Age"},{"value":"\'Aubrey\', display","label":"Aubrey"},{"value":"\'Audiowide\', display","label":"Audiowide"},{"value":"\'Autour One\', display","label":"Autour One"},{"value":"\'Average\', serif","label":"Average"},{"value":"\'Average Sans\', sans-serif","label":"Average Sans"},{"value":"\'Averia Gruesa Libre\', display","label":"Averia Gruesa Libre"},{"value":"\'Averia Libre\', display","label":"Averia Libre"},{"value":"\'Averia Sans Libre\', display","label":"Averia Sans Libre"},{"value":"\'Averia Serif Libre\', display","label":"Averia Serif Libre"},{"value":"\'Azeret Mono\', monospace","label":"Azeret Mono"},{"value":"\'B612\', sans-serif","label":"B612"},{"value":"\'B612 Mono\', monospace","label":"B612 Mono"},{"value":"\'Bad Script\', handwriting","label":"Bad Script"},{"value":"\'Bahiana\', display","label":"Bahiana"},{"value":"\'Bahianita\', display","label":"Bahianita"},{"value":"\'Bai Jamjuree\', sans-serif","label":"Bai Jamjuree"},{"value":"\'Ballet\', handwriting","label":"Ballet"},{"value":"\'Baloo 2\', display","label":"Baloo 2"},{"value":"\'Baloo Bhai 2\', display","label":"Baloo Bhai 2"},{"value":"\'Baloo Bhaina 2\', display","label":"Baloo Bhaina 2"},{"value":"\'Baloo Chettan 2\', display","label":"Baloo Chettan 2"},{"value":"\'Baloo Da 2\', display","label":"Baloo Da 2"},{"value":"\'Baloo Paaji 2\', display","label":"Baloo Paaji 2"},{"value":"\'Baloo Tamma 2\', display","label":"Baloo Tamma 2"},{"value":"\'Baloo Tammudu 2\', display","label":"Baloo Tammudu 2"},{"value":"\'Baloo Thambi 2\', display","label":"Baloo Thambi 2"},{"value":"\'Balsamiq Sans\', display","label":"Balsamiq Sans"},{"value":"\'Balthazar\', serif","label":"Balthazar"},{"value":"\'Bangers\', display","label":"Bangers"},{"value":"\'Barlow\', sans-serif","label":"Barlow"},{"value":"\'Barlow Condensed\', sans-serif","label":"Barlow Condensed"},{"value":"\'Barlow Semi Condensed\', sans-serif","label":"Barlow Semi Condensed"},{"value":"\'Barriecito\', display","label":"Barriecito"},{"value":"\'Barrio\', display","label":"Barrio"},{"value":"\'Basic\', sans-serif","label":"Basic"},{"value":"\'Baskervville\', serif","label":"Baskervville"},{"value":"\'Battambang\', display","label":"Battambang"},{"value":"\'Baumans\', display","label":"Baumans"},{"value":"\'Bayon\', display","label":"Bayon"},{"value":"\'Be Vietnam\', sans-serif","label":"Be Vietnam"},{"value":"\'Bebas Neue\', display","label":"Bebas Neue"},{"value":"\'Belgrano\', serif","label":"Belgrano"},{"value":"\'Bellefair\', serif","label":"Bellefair"},{"value":"\'Belleza\', sans-serif","label":"Belleza"},{"value":"\'Bellota\', display","label":"Bellota"},{"value":"\'Bellota Text\', display","label":"Bellota Text"},{"value":"\'BenchNine\', sans-serif","label":"BenchNine"},{"value":"\'Benne\', serif","label":"Benne"},{"value":"\'Bentham\', serif","label":"Bentham"},{"value":"\'Berkshire Swash\', handwriting","label":"Berkshire Swash"},{"value":"\'Besley\', serif","label":"Besley"},{"value":"\'Beth Ellen\', handwriting","label":"Beth Ellen"},{"value":"\'Bevan\', display","label":"Bevan"},{"value":"\'Big Shoulders Display\', display","label":"Big Shoulders Display"},{"value":"\'Big Shoulders Inline Display\', display","label":"Big Shoulders Inline Display"},{"value":"\'Big Shoulders Inline Text\', display","label":"Big Shoulders Inline Text"},{"value":"\'Big Shoulders Stencil Display\', display","label":"Big Shoulders Stencil Display"},{"value":"\'Big Shoulders Stencil Text\', display","label":"Big Shoulders Stencil Text"},{"value":"\'Big Shoulders Text\', display","label":"Big Shoulders Text"},{"value":"\'Bigelow Rules\', display","label":"Bigelow Rules"},{"value":"\'Bigshot One\', display","label":"Bigshot One"},{"value":"\'Bilbo\', handwriting","label":"Bilbo"},{"value":"\'Bilbo Swash Caps\', handwriting","label":"Bilbo Swash Caps"},{"value":"\'BioRhyme\', serif","label":"BioRhyme"},{"value":"\'BioRhyme Expanded\', serif","label":"BioRhyme Expanded"},{"value":"\'Biryani\', sans-serif","label":"Biryani"},{"value":"\'Bitter\', serif","label":"Bitter"},{"value":"\'Black And White Picture\', sans-serif","label":"Black And White Picture"},{"value":"\'Black Han Sans\', sans-serif","label":"Black Han Sans"},{"value":"\'Black Ops One\', display","label":"Black Ops One"},{"value":"\'Blinker\', sans-serif","label":"Blinker"},{"value":"\'Bodoni Moda\', serif","label":"Bodoni Moda"},{"value":"\'Bokor\', display","label":"Bokor"},{"value":"\'Bona Nova\', serif","label":"Bona Nova"},{"value":"\'Bonbon\', handwriting","label":"Bonbon"},{"value":"\'Boogaloo\', display","label":"Boogaloo"},{"value":"\'Bowlby One\', display","label":"Bowlby One"},{"value":"\'Bowlby One SC\', display","label":"Bowlby One SC"},{"value":"\'Brawler\', serif","label":"Brawler"},{"value":"\'Bree Serif\', serif","label":"Bree Serif"},{"value":"\'Brygada 1918\', serif","label":"Brygada 1918"},{"value":"\'Bubblegum Sans\', display","label":"Bubblegum Sans"},{"value":"\'Bubbler One\', sans-serif","label":"Bubbler One"},{"value":"\'Buda\', display","label":"Buda"},{"value":"\'Buenard\', serif","label":"Buenard"},{"value":"\'Bungee\', display","label":"Bungee"},{"value":"\'Bungee Hairline\', display","label":"Bungee Hairline"},{"value":"\'Bungee Inline\', display","label":"Bungee Inline"},{"value":"\'Bungee Outline\', display","label":"Bungee Outline"},{"value":"\'Bungee Shade\', display","label":"Bungee Shade"},{"value":"\'Butcherman\', display","label":"Butcherman"},{"value":"\'Butterfly Kids\', handwriting","label":"Butterfly Kids"},{"value":"\'Cabin\', sans-serif","label":"Cabin"},{"value":"\'Cabin Condensed\', sans-serif","label":"Cabin Condensed"},{"value":"\'Cabin Sketch\', display","label":"Cabin Sketch"},{"value":"\'Caesar Dressing\', display","label":"Caesar Dressing"},{"value":"\'Cagliostro\', sans-serif","label":"Cagliostro"},{"value":"\'Cairo\', sans-serif","label":"Cairo"},{"value":"\'Caladea\', serif","label":"Caladea"},{"value":"\'Calistoga\', display","label":"Calistoga"},{"value":"\'Calligraffitti\', handwriting","label":"Calligraffitti"},{"value":"\'Cambay\', sans-serif","label":"Cambay"},{"value":"\'Cambo\', serif","label":"Cambo"},{"value":"\'Candal\', sans-serif","label":"Candal"},{"value":"\'Cantarell\', sans-serif","label":"Cantarell"},{"value":"\'Cantata One\', serif","label":"Cantata One"},{"value":"\'Cantora One\', sans-serif","label":"Cantora One"},{"value":"\'Capriola\', sans-serif","label":"Capriola"},{"value":"\'Cardo\', serif","label":"Cardo"},{"value":"\'Carme\', sans-serif","label":"Carme"},{"value":"\'Carrois Gothic\', sans-serif","label":"Carrois Gothic"},{"value":"\'Carrois Gothic SC\', sans-serif","label":"Carrois Gothic SC"},{"value":"\'Carter One\', display","label":"Carter One"},{"value":"\'Castoro\', serif","label":"Castoro"},{"value":"\'Catamaran\', sans-serif","label":"Catamaran"},{"value":"\'Caudex\', serif","label":"Caudex"},{"value":"\'Caveat\', handwriting","label":"Caveat"},{"value":"\'Caveat Brush\', handwriting","label":"Caveat Brush"},{"value":"\'Cedarville Cursive\', handwriting","label":"Cedarville Cursive"},{"value":"\'Ceviche One\', display","label":"Ceviche One"},{"value":"\'Chakra Petch\', sans-serif","label":"Chakra Petch"},{"value":"\'Changa\', sans-serif","label":"Changa"},{"value":"\'Changa One\', display","label":"Changa One"},{"value":"\'Chango\', display","label":"Chango"},{"value":"\'Charm\', handwriting","label":"Charm"},{"value":"\'Charmonman\', handwriting","label":"Charmonman"},{"value":"\'Chathura\', sans-serif","label":"Chathura"},{"value":"\'Chau Philomene One\', sans-serif","label":"Chau Philomene One"},{"value":"\'Chela One\', display","label":"Chela One"},{"value":"\'Chelsea Market\', display","label":"Chelsea Market"},{"value":"\'Chenla\', display","label":"Chenla"},{"value":"\'Cherry Cream Soda\', display","label":"Cherry Cream Soda"},{"value":"\'Cherry Swash\', display","label":"Cherry Swash"},{"value":"\'Chewy\', display","label":"Chewy"},{"value":"\'Chicle\', display","label":"Chicle"},{"value":"\'Chilanka\', handwriting","label":"Chilanka"},{"value":"\'Chivo\', sans-serif","label":"Chivo"},{"value":"\'Chonburi\', display","label":"Chonburi"},{"value":"\'Cinzel\', serif","label":"Cinzel"},{"value":"\'Cinzel Decorative\', display","label":"Cinzel Decorative"},{"value":"\'Clicker Script\', handwriting","label":"Clicker Script"},{"value":"\'Coda\', display","label":"Coda"},{"value":"\'Coda Caption\', sans-serif","label":"Coda Caption"},{"value":"\'Codystar\', display","label":"Codystar"},{"value":"\'Coiny\', display","label":"Coiny"},{"value":"\'Combo\', display","label":"Combo"},{"value":"\'Comfortaa\', display","label":"Comfortaa"},{"value":"\'Comic Neue\', handwriting","label":"Comic Neue"},{"value":"\'Coming Soon\', handwriting","label":"Coming Soon"},{"value":"\'Commissioner\', sans-serif","label":"Commissioner"},{"value":"\'Concert One\', display","label":"Concert One"},{"value":"\'Condiment\', handwriting","label":"Condiment"},{"value":"\'Content\', display","label":"Content"},{"value":"\'Contrail One\', display","label":"Contrail One"},{"value":"\'Convergence\', sans-serif","label":"Convergence"},{"value":"\'Cookie\', handwriting","label":"Cookie"},{"value":"\'Copse\', serif","label":"Copse"},{"value":"\'Corben\', display","label":"Corben"},{"value":"\'Cormorant\', serif","label":"Cormorant"},{"value":"\'Cormorant Garamond\', serif","label":"Cormorant Garamond"},{"value":"\'Cormorant Infant\', serif","label":"Cormorant Infant"},{"value":"\'Cormorant SC\', serif","label":"Cormorant SC"},{"value":"\'Cormorant Unicase\', serif","label":"Cormorant Unicase"},{"value":"\'Cormorant Upright\', serif","label":"Cormorant Upright"},{"value":"\'Courgette\', handwriting","label":"Courgette"},{"value":"\'Courier Prime\', monospace","label":"Courier Prime"},{"value":"\'Cousine\', monospace","label":"Cousine"},{"value":"\'Coustard\', serif","label":"Coustard"},{"value":"\'Covered By Your Grace\', handwriting","label":"Covered By Your Grace"},{"value":"\'Crafty Girls\', handwriting","label":"Crafty Girls"},{"value":"\'Creepster\', display","label":"Creepster"},{"value":"\'Crete Round\', serif","label":"Crete Round"},{"value":"\'Crimson Pro\', serif","label":"Crimson Pro"},{"value":"\'Crimson Text\', serif","label":"Crimson Text"},{"value":"\'Croissant One\', display","label":"Croissant One"},{"value":"\'Crushed\', display","label":"Crushed"},{"value":"\'Cuprum\', sans-serif","label":"Cuprum"},{"value":"\'Cute Font\', display","label":"Cute Font"},{"value":"\'Cutive\', serif","label":"Cutive"},{"value":"\'Cutive Mono\', monospace","label":"Cutive Mono"},{"value":"\'DM Mono\', monospace","label":"DM Mono"},{"value":"\'DM Sans\', sans-serif","label":"DM Sans"},{"value":"\'DM Serif Display\', serif","label":"DM Serif Display"},{"value":"\'DM Serif Text\', serif","label":"DM Serif Text"},{"value":"\'Damion\', handwriting","label":"Damion"},{"value":"\'Dancing Script\', handwriting","label":"Dancing Script"},{"value":"\'Dangrek\', display","label":"Dangrek"},{"value":"\'Darker Grotesque\', sans-serif","label":"Darker Grotesque"},{"value":"\'David Libre\', serif","label":"David Libre"},{"value":"\'Dawning of a New Day\', handwriting","label":"Dawning of a New Day"},{"value":"\'Days One\', sans-serif","label":"Days One"},{"value":"\'Dekko\', handwriting","label":"Dekko"},{"value":"\'Dela Gothic One\', display","label":"Dela Gothic One"},{"value":"\'Delius\', handwriting","label":"Delius"},{"value":"\'Delius Swash Caps\', handwriting","label":"Delius Swash Caps"},{"value":"\'Delius Unicase\', handwriting","label":"Delius Unicase"},{"value":"\'Della Respira\', serif","label":"Della Respira"},{"value":"\'Denk One\', sans-serif","label":"Denk One"},{"value":"\'Devonshire\', handwriting","label":"Devonshire"},{"value":"\'Dhurjati\', sans-serif","label":"Dhurjati"},{"value":"\'Didact Gothic\', sans-serif","label":"Didact Gothic"},{"value":"\'Diplomata\', display","label":"Diplomata"},{"value":"\'Diplomata SC\', display","label":"Diplomata SC"},{"value":"\'Do Hyeon\', sans-serif","label":"Do Hyeon"},{"value":"\'Dokdo\', handwriting","label":"Dokdo"},{"value":"\'Domine\', serif","label":"Domine"},{"value":"\'Donegal One\', serif","label":"Donegal One"},{"value":"\'Doppio One\', sans-serif","label":"Doppio One"},{"value":"\'Dorsa\', sans-serif","label":"Dorsa"},{"value":"\'Dosis\', sans-serif","label":"Dosis"},{"value":"\'DotGothic16\', sans-serif","label":"DotGothic16"},{"value":"\'Dr Sugiyama\', handwriting","label":"Dr Sugiyama"},{"value":"\'Duru Sans\', sans-serif","label":"Duru Sans"},{"value":"\'Dynalight\', display","label":"Dynalight"},{"value":"\'EB Garamond\', serif","label":"EB Garamond"},{"value":"\'Eagle Lake\', handwriting","label":"Eagle Lake"},{"value":"\'East Sea Dokdo\', handwriting","label":"East Sea Dokdo"},{"value":"\'Eater\', display","label":"Eater"},{"value":"\'Economica\', sans-serif","label":"Economica"},{"value":"\'Eczar\', serif","label":"Eczar"},{"value":"\'El Messiri\', sans-serif","label":"El Messiri"},{"value":"\'Electrolize\', sans-serif","label":"Electrolize"},{"value":"\'Elsie\', display","label":"Elsie"},{"value":"\'Elsie Swash Caps\', display","label":"Elsie Swash Caps"},{"value":"\'Emblema One\', display","label":"Emblema One"},{"value":"\'Emilys Candy\', display","label":"Emilys Candy"},{"value":"\'Encode Sans\', sans-serif","label":"Encode Sans"},{"value":"\'Encode Sans Condensed\', sans-serif","label":"Encode Sans Condensed"},{"value":"\'Encode Sans Expanded\', sans-serif","label":"Encode Sans Expanded"},{"value":"\'Encode Sans SC\', sans-serif","label":"Encode Sans SC"},{"value":"\'Encode Sans Semi Condensed\', sans-serif","label":"Encode Sans Semi Condensed"},{"value":"\'Encode Sans Semi Expanded\', sans-serif","label":"Encode Sans Semi Expanded"},{"value":"\'Engagement\', handwriting","label":"Engagement"},{"value":"\'Englebert\', sans-serif","label":"Englebert"},{"value":"\'Enriqueta\', serif","label":"Enriqueta"},{"value":"\'Epilogue\', sans-serif","label":"Epilogue"},{"value":"\'Erica One\', display","label":"Erica One"},{"value":"\'Esteban\', serif","label":"Esteban"},{"value":"\'Euphoria Script\', handwriting","label":"Euphoria Script"},{"value":"\'Ewert\', display","label":"Ewert"},{"value":"\'Exo\', sans-serif","label":"Exo"},{"value":"\'Exo 2\', sans-serif","label":"Exo 2"},{"value":"\'Expletus Sans\', display","label":"Expletus Sans"},{"value":"\'Fahkwang\', sans-serif","label":"Fahkwang"},{"value":"\'Fanwood Text\', serif","label":"Fanwood Text"},{"value":"\'Farro\', sans-serif","label":"Farro"},{"value":"\'Farsan\', display","label":"Farsan"},{"value":"\'Fascinate\', display","label":"Fascinate"},{"value":"\'Fascinate Inline\', display","label":"Fascinate Inline"},{"value":"\'Faster One\', display","label":"Faster One"},{"value":"\'Fasthand\', serif","label":"Fasthand"},{"value":"\'Fauna One\', serif","label":"Fauna One"},{"value":"\'Faustina\', serif","label":"Faustina"},{"value":"\'Federant\', display","label":"Federant"},{"value":"\'Federo\', sans-serif","label":"Federo"},{"value":"\'Felipa\', handwriting","label":"Felipa"},{"value":"\'Fenix\', serif","label":"Fenix"},{"value":"\'Festive\', handwriting","label":"Festive"},{"value":"\'Finger Paint\', display","label":"Finger Paint"},{"value":"\'Fira Code\', monospace","label":"Fira Code"},{"value":"\'Fira Mono\', monospace","label":"Fira Mono"},{"value":"\'Fira Sans\', sans-serif","label":"Fira Sans"},{"value":"\'Fira Sans Condensed\', sans-serif","label":"Fira Sans Condensed"},{"value":"\'Fira Sans Extra Condensed\', sans-serif","label":"Fira Sans Extra Condensed"},{"value":"\'Fjalla One\', sans-serif","label":"Fjalla One"},{"value":"\'Fjord One\', serif","label":"Fjord One"},{"value":"\'Flamenco\', display","label":"Flamenco"},{"value":"\'Flavors\', display","label":"Flavors"},{"value":"\'Fondamento\', handwriting","label":"Fondamento"},{"value":"\'Fontdiner Swanky\', display","label":"Fontdiner Swanky"},{"value":"\'Forum\', display","label":"Forum"},{"value":"\'Francois One\', sans-serif","label":"Francois One"},{"value":"\'Frank Ruhl Libre\', serif","label":"Frank Ruhl Libre"},{"value":"\'Fraunces\', serif","label":"Fraunces"},{"value":"\'Freckle Face\', display","label":"Freckle Face"},{"value":"\'Fredericka the Great\', display","label":"Fredericka the Great"},{"value":"\'Fredoka One\', display","label":"Fredoka One"},{"value":"\'Freehand\', display","label":"Freehand"},{"value":"\'Fresca\', sans-serif","label":"Fresca"},{"value":"\'Frijole\', display","label":"Frijole"},{"value":"\'Fruktur\', display","label":"Fruktur"},{"value":"\'Fugaz One\', display","label":"Fugaz One"},{"value":"\'Fuggles\', handwriting","label":"Fuggles"},{"value":"\'GFS Didot\', serif","label":"GFS Didot"},{"value":"\'GFS Neohellenic\', sans-serif","label":"GFS Neohellenic"},{"value":"\'Gabriela\', serif","label":"Gabriela"},{"value":"\'Gaegu\', handwriting","label":"Gaegu"},{"value":"\'Gafata\', sans-serif","label":"Gafata"},{"value":"\'Galada\', display","label":"Galada"},{"value":"\'Galdeano\', sans-serif","label":"Galdeano"},{"value":"\'Galindo\', display","label":"Galindo"},{"value":"\'Gamja Flower\', handwriting","label":"Gamja Flower"},{"value":"\'Gayathri\', sans-serif","label":"Gayathri"},{"value":"\'Gelasio\', serif","label":"Gelasio"},{"value":"\'Gentium Basic\', serif","label":"Gentium Basic"},{"value":"\'Gentium Book Basic\', serif","label":"Gentium Book Basic"},{"value":"\'Geo\', sans-serif","label":"Geo"},{"value":"\'Georama\', sans-serif","label":"Georama"},{"value":"\'Geostar\', display","label":"Geostar"},{"value":"\'Geostar Fill\', display","label":"Geostar Fill"},{"value":"\'Germania One\', display","label":"Germania One"},{"value":"\'Gidugu\', sans-serif","label":"Gidugu"},{"value":"\'Gilda Display\', serif","label":"Gilda Display"},{"value":"\'Girassol\', display","label":"Girassol"},{"value":"\'Give You Glory\', handwriting","label":"Give You Glory"},{"value":"\'Glass Antiqua\', display","label":"Glass Antiqua"},{"value":"\'Glegoo\', serif","label":"Glegoo"},{"value":"\'Gloria Hallelujah\', handwriting","label":"Gloria Hallelujah"},{"value":"\'Glory\', sans-serif","label":"Glory"},{"value":"\'Goblin One\', display","label":"Goblin One"},{"value":"\'Gochi Hand\', handwriting","label":"Gochi Hand"},{"value":"\'Goldman\', display","label":"Goldman"},{"value":"\'Gorditas\', display","label":"Gorditas"},{"value":"\'Gothic A1\', sans-serif","label":"Gothic A1"},{"value":"\'Gotu\', sans-serif","label":"Gotu"},{"value":"\'Goudy Bookletter 1911\', serif","label":"Goudy Bookletter 1911"},{"value":"\'Gowun Batang\', serif","label":"Gowun Batang"},{"value":"\'Gowun Dodum\', sans-serif","label":"Gowun Dodum"},{"value":"\'Graduate\', display","label":"Graduate"},{"value":"\'Grand Hotel\', handwriting","label":"Grand Hotel"},{"value":"\'Grandstander\', display","label":"Grandstander"},{"value":"\'Gravitas One\', display","label":"Gravitas One"},{"value":"\'Great Vibes\', handwriting","label":"Great Vibes"},{"value":"\'Grenze\', serif","label":"Grenze"},{"value":"\'Grenze Gotisch\', display","label":"Grenze Gotisch"},{"value":"\'Griffy\', display","label":"Griffy"},{"value":"\'Gruppo\', display","label":"Gruppo"},{"value":"\'Gudea\', sans-serif","label":"Gudea"},{"value":"\'Gugi\', display","label":"Gugi"},{"value":"\'Gupter\', serif","label":"Gupter"},{"value":"\'Gurajada\', serif","label":"Gurajada"},{"value":"\'Habibi\', serif","label":"Habibi"},{"value":"\'Hachi Maru Pop\', handwriting","label":"Hachi Maru Pop"},{"value":"\'Hahmlet\', serif","label":"Hahmlet"},{"value":"\'Halant\', serif","label":"Halant"},{"value":"\'Hammersmith One\', sans-serif","label":"Hammersmith One"},{"value":"\'Hanalei\', display","label":"Hanalei"},{"value":"\'Hanalei Fill\', display","label":"Hanalei Fill"},{"value":"\'Handlee\', handwriting","label":"Handlee"},{"value":"\'Hanuman\', serif","label":"Hanuman"},{"value":"\'Happy Monkey\', display","label":"Happy Monkey"},{"value":"\'Harmattan\', sans-serif","label":"Harmattan"},{"value":"\'Headland One\', serif","label":"Headland One"},{"value":"\'Heebo\', sans-serif","label":"Heebo"},{"value":"\'Henny Penny\', display","label":"Henny Penny"},{"value":"\'Hepta Slab\', serif","label":"Hepta Slab"},{"value":"\'Herr Von Muellerhoff\', handwriting","label":"Herr Von Muellerhoff"},{"value":"\'Hi Melody\', handwriting","label":"Hi Melody"},{"value":"\'Hina Mincho\', serif","label":"Hina Mincho"},{"value":"\'Hind\', sans-serif","label":"Hind"},{"value":"\'Hind Guntur\', sans-serif","label":"Hind Guntur"},{"value":"\'Hind Madurai\', sans-serif","label":"Hind Madurai"},{"value":"\'Hind Siliguri\', sans-serif","label":"Hind Siliguri"},{"value":"\'Hind Vadodara\', sans-serif","label":"Hind Vadodara"},{"value":"\'Holtwood One SC\', serif","label":"Holtwood One SC"},{"value":"\'Homemade Apple\', handwriting","label":"Homemade Apple"},{"value":"\'Homenaje\', sans-serif","label":"Homenaje"},{"value":"\'IBM Plex Mono\', monospace","label":"IBM Plex Mono"},{"value":"\'IBM Plex Sans\', sans-serif","label":"IBM Plex Sans"},{"value":"\'IBM Plex Sans Arabic\', sans-serif","label":"IBM Plex Sans Arabic"},{"value":"\'IBM Plex Sans Condensed\', sans-serif","label":"IBM Plex Sans Condensed"},{"value":"\'IBM Plex Sans Devanagari\', sans-serif","label":"IBM Plex Sans Devanagari"},{"value":"\'IBM Plex Sans Hebrew\', sans-serif","label":"IBM Plex Sans Hebrew"},{"value":"\'IBM Plex Sans KR\', sans-serif","label":"IBM Plex Sans KR"},{"value":"\'IBM Plex Sans Thai\', sans-serif","label":"IBM Plex Sans Thai"},{"value":"\'IBM Plex Sans Thai Looped\', sans-serif","label":"IBM Plex Sans Thai Looped"},{"value":"\'IBM Plex Serif\', serif","label":"IBM Plex Serif"},{"value":"\'IM Fell DW Pica\', serif","label":"IM Fell DW Pica"},{"value":"\'IM Fell DW Pica SC\', serif","label":"IM Fell DW Pica SC"},{"value":"\'IM Fell Double Pica\', serif","label":"IM Fell Double Pica"},{"value":"\'IM Fell Double Pica SC\', serif","label":"IM Fell Double Pica SC"},{"value":"\'IM Fell English\', serif","label":"IM Fell English"},{"value":"\'IM Fell English SC\', serif","label":"IM Fell English SC"},{"value":"\'IM Fell French Canon\', serif","label":"IM Fell French Canon"},{"value":"\'IM Fell French Canon SC\', serif","label":"IM Fell French Canon SC"},{"value":"\'IM Fell Great Primer\', serif","label":"IM Fell Great Primer"},{"value":"\'IM Fell Great Primer SC\', serif","label":"IM Fell Great Primer SC"},{"value":"\'Ibarra Real Nova\', serif","label":"Ibarra Real Nova"},{"value":"\'Iceberg\', display","label":"Iceberg"},{"value":"\'Iceland\', display","label":"Iceland"},{"value":"\'Imbue\', serif","label":"Imbue"},{"value":"\'Imprima\', sans-serif","label":"Imprima"},{"value":"\'Inconsolata\', monospace","label":"Inconsolata"},{"value":"\'Inder\', sans-serif","label":"Inder"},{"value":"\'Indie Flower\', handwriting","label":"Indie Flower"},{"value":"\'Inika\', serif","label":"Inika"},{"value":"\'Inknut Antiqua\', serif","label":"Inknut Antiqua"},{"value":"\'Inria Sans\', sans-serif","label":"Inria Sans"},{"value":"\'Inria Serif\', serif","label":"Inria Serif"},{"value":"\'Inter\', sans-serif","label":"Inter"},{"value":"\'Irish Grover\', display","label":"Irish Grover"},{"value":"\'Istok Web\', sans-serif","label":"Istok Web"},{"value":"\'Italiana\', serif","label":"Italiana"},{"value":"\'Italianno\', handwriting","label":"Italianno"},{"value":"\'Itim\', handwriting","label":"Itim"},{"value":"\'Jacques Francois\', serif","label":"Jacques Francois"},{"value":"\'Jacques Francois Shadow\', display","label":"Jacques Francois Shadow"},{"value":"\'Jaldi\', sans-serif","label":"Jaldi"},{"value":"\'JetBrains Mono\', monospace","label":"JetBrains Mono"},{"value":"\'Jim Nightshade\', handwriting","label":"Jim Nightshade"},{"value":"\'Jockey One\', sans-serif","label":"Jockey One"},{"value":"\'Jolly Lodger\', display","label":"Jolly Lodger"},{"value":"\'Jomhuria\', display","label":"Jomhuria"},{"value":"\'Jomolhari\', serif","label":"Jomolhari"},{"value":"\'Josefin Sans\', sans-serif","label":"Josefin Sans"},{"value":"\'Josefin Slab\', serif","label":"Josefin Slab"},{"value":"\'Jost\', sans-serif","label":"Jost"},{"value":"\'Joti One\', display","label":"Joti One"},{"value":"\'Jua\', sans-serif","label":"Jua"},{"value":"\'Judson\', serif","label":"Judson"},{"value":"\'Julee\', handwriting","label":"Julee"},{"value":"\'Julius Sans One\', sans-serif","label":"Julius Sans One"},{"value":"\'Junge\', serif","label":"Junge"},{"value":"\'Jura\', sans-serif","label":"Jura"},{"value":"\'Just Another Hand\', handwriting","label":"Just Another Hand"},{"value":"\'Just Me Again Down Here\', handwriting","label":"Just Me Again Down Here"},{"value":"\'K2D\', sans-serif","label":"K2D"},{"value":"\'Kadwa\', serif","label":"Kadwa"},{"value":"\'Kaisei Decol\', serif","label":"Kaisei Decol"},{"value":"\'Kaisei HarunoUmi\', serif","label":"Kaisei HarunoUmi"},{"value":"\'Kaisei Opti\', serif","label":"Kaisei Opti"},{"value":"\'Kaisei Tokumin\', serif","label":"Kaisei Tokumin"},{"value":"\'Kalam\', handwriting","label":"Kalam"},{"value":"\'Kameron\', serif","label":"Kameron"},{"value":"\'Kanit\', sans-serif","label":"Kanit"},{"value":"\'Kantumruy\', sans-serif","label":"Kantumruy"},{"value":"\'Karantina\', display","label":"Karantina"},{"value":"\'Karla\', sans-serif","label":"Karla"},{"value":"\'Karma\', serif","label":"Karma"},{"value":"\'Katibeh\', display","label":"Katibeh"},{"value":"\'Kaushan Script\', handwriting","label":"Kaushan Script"},{"value":"\'Kavivanar\', handwriting","label":"Kavivanar"},{"value":"\'Kavoon\', display","label":"Kavoon"},{"value":"\'Kdam Thmor\', display","label":"Kdam Thmor"},{"value":"\'Keania One\', display","label":"Keania One"},{"value":"\'Kelly Slab\', display","label":"Kelly Slab"},{"value":"\'Kenia\', display","label":"Kenia"},{"value":"\'Khand\', sans-serif","label":"Khand"},{"value":"\'Khmer\', display","label":"Khmer"},{"value":"\'Khula\', sans-serif","label":"Khula"},{"value":"\'Kirang Haerang\', display","label":"Kirang Haerang"},{"value":"\'Kite One\', sans-serif","label":"Kite One"},{"value":"\'Kiwi Maru\', serif","label":"Kiwi Maru"},{"value":"\'Klee One\', handwriting","label":"Klee One"},{"value":"\'Knewave\', display","label":"Knewave"},{"value":"\'KoHo\', sans-serif","label":"KoHo"},{"value":"\'Kodchasan\', sans-serif","label":"Kodchasan"},{"value":"\'Kosugi\', sans-serif","label":"Kosugi"},{"value":"\'Kosugi Maru\', sans-serif","label":"Kosugi Maru"},{"value":"\'Kotta One\', serif","label":"Kotta One"},{"value":"\'Koulen\', display","label":"Koulen"},{"value":"\'Kranky\', display","label":"Kranky"},{"value":"\'Kreon\', serif","label":"Kreon"},{"value":"\'Kristi\', handwriting","label":"Kristi"},{"value":"\'Krona One\', sans-serif","label":"Krona One"},{"value":"\'Krub\', sans-serif","label":"Krub"},{"value":"\'Kufam\', sans-serif","label":"Kufam"},{"value":"\'Kulim Park\', sans-serif","label":"Kulim Park"},{"value":"\'Kumar One\', display","label":"Kumar One"},{"value":"\'Kumar One Outline\', display","label":"Kumar One Outline"},{"value":"\'Kumbh Sans\', sans-serif","label":"Kumbh Sans"},{"value":"\'Kurale\', serif","label":"Kurale"},{"value":"\'La Belle Aurore\', handwriting","label":"La Belle Aurore"},{"value":"\'Lacquer\', display","label":"Lacquer"},{"value":"\'Laila\', sans-serif","label":"Laila"},{"value":"\'Lakki Reddy\', handwriting","label":"Lakki Reddy"},{"value":"\'Lalezar\', display","label":"Lalezar"},{"value":"\'Lancelot\', display","label":"Lancelot"},{"value":"\'Langar\', display","label":"Langar"},{"value":"\'Lateef\', handwriting","label":"Lateef"},{"value":"\'Lato\', sans-serif","label":"Lato"},{"value":"\'League Script\', handwriting","label":"League Script"},{"value":"\'Leckerli One\', handwriting","label":"Leckerli One"},{"value":"\'Ledger\', serif","label":"Ledger"},{"value":"\'Lekton\', sans-serif","label":"Lekton"},{"value":"\'Lemon\', display","label":"Lemon"},{"value":"\'Lemonada\', display","label":"Lemonada"},{"value":"\'Lexend\', sans-serif","label":"Lexend"},{"value":"\'Lexend Deca\', sans-serif","label":"Lexend Deca"},{"value":"\'Lexend Exa\', sans-serif","label":"Lexend Exa"},{"value":"\'Lexend Giga\', sans-serif","label":"Lexend Giga"},{"value":"\'Lexend Mega\', sans-serif","label":"Lexend Mega"},{"value":"\'Lexend Peta\', sans-serif","label":"Lexend Peta"},{"value":"\'Lexend Tera\', sans-serif","label":"Lexend Tera"},{"value":"\'Lexend Zetta\', sans-serif","label":"Lexend Zetta"},{"value":"\'Libre Barcode 128\', display","label":"Libre Barcode 128"},{"value":"\'Libre Barcode 128 Text\', display","label":"Libre Barcode 128 Text"},{"value":"\'Libre Barcode 39\', display","label":"Libre Barcode 39"},{"value":"\'Libre Barcode 39 Extended\', display","label":"Libre Barcode 39 Extended"},{"value":"\'Libre Barcode 39 Extended Text\', display","label":"Libre Barcode 39 Extended Text"},{"value":"\'Libre Barcode 39 Text\', display","label":"Libre Barcode 39 Text"},{"value":"\'Libre Barcode EAN13 Text\', display","label":"Libre Barcode EAN13 Text"},{"value":"\'Libre Baskerville\', serif","label":"Libre Baskerville"},{"value":"\'Libre Caslon Display\', serif","label":"Libre Caslon Display"},{"value":"\'Libre Caslon Text\', serif","label":"Libre Caslon Text"},{"value":"\'Libre Franklin\', sans-serif","label":"Libre Franklin"},{"value":"\'Life Savers\', display","label":"Life Savers"},{"value":"\'Lilita One\', display","label":"Lilita One"},{"value":"\'Lily Script One\', display","label":"Lily Script One"},{"value":"\'Limelight\', display","label":"Limelight"},{"value":"\'Linden Hill\', serif","label":"Linden Hill"},{"value":"\'Literata\', serif","label":"Literata"},{"value":"\'Liu Jian Mao Cao\', handwriting","label":"Liu Jian Mao Cao"},{"value":"\'Livvic\', sans-serif","label":"Livvic"},{"value":"\'Lobster\', display","label":"Lobster"},{"value":"\'Lobster Two\', display","label":"Lobster Two"},{"value":"\'Londrina Outline\', display","label":"Londrina Outline"},{"value":"\'Londrina Shadow\', display","label":"Londrina Shadow"},{"value":"\'Londrina Sketch\', display","label":"Londrina Sketch"},{"value":"\'Londrina Solid\', display","label":"Londrina Solid"},{"value":"\'Long Cang\', handwriting","label":"Long Cang"},{"value":"\'Lora\', serif","label":"Lora"},{"value":"\'Love Ya Like A Sister\', display","label":"Love Ya Like A Sister"},{"value":"\'Loved by the King\', handwriting","label":"Loved by the King"},{"value":"\'Lovers Quarrel\', handwriting","label":"Lovers Quarrel"},{"value":"\'Luckiest Guy\', display","label":"Luckiest Guy"},{"value":"\'Lusitana\', serif","label":"Lusitana"},{"value":"\'Lustria\', serif","label":"Lustria"},{"value":"\'M PLUS 1p\', sans-serif","label":"M PLUS 1p"},{"value":"\'M PLUS Rounded 1c\', sans-serif","label":"M PLUS Rounded 1c"},{"value":"\'Ma Shan Zheng\', handwriting","label":"Ma Shan Zheng"},{"value":"\'Macondo\', display","label":"Macondo"},{"value":"\'Macondo Swash Caps\', display","label":"Macondo Swash Caps"},{"value":"\'Mada\', sans-serif","label":"Mada"},{"value":"\'Magra\', sans-serif","label":"Magra"},{"value":"\'Maiden Orange\', display","label":"Maiden Orange"},{"value":"\'Maitree\', serif","label":"Maitree"},{"value":"\'Major Mono Display\', monospace","label":"Major Mono Display"},{"value":"\'Mako\', sans-serif","label":"Mako"},{"value":"\'Mali\', handwriting","label":"Mali"},{"value":"\'Mallanna\', sans-serif","label":"Mallanna"},{"value":"\'Mandali\', sans-serif","label":"Mandali"},{"value":"\'Manjari\', sans-serif","label":"Manjari"},{"value":"\'Manrope\', sans-serif","label":"Manrope"},{"value":"\'Mansalva\', handwriting","label":"Mansalva"},{"value":"\'Manuale\', serif","label":"Manuale"},{"value":"\'Marcellus\', serif","label":"Marcellus"},{"value":"\'Marcellus SC\', serif","label":"Marcellus SC"},{"value":"\'Marck Script\', handwriting","label":"Marck Script"},{"value":"\'Margarine\', display","label":"Margarine"},{"value":"\'Markazi Text\', serif","label":"Markazi Text"},{"value":"\'Marko One\', serif","label":"Marko One"},{"value":"\'Marmelad\', sans-serif","label":"Marmelad"},{"value":"\'Martel\', serif","label":"Martel"},{"value":"\'Martel Sans\', sans-serif","label":"Martel Sans"},{"value":"\'Marvel\', sans-serif","label":"Marvel"},{"value":"\'Mate\', serif","label":"Mate"},{"value":"\'Mate SC\', serif","label":"Mate SC"},{"value":"\'Maven Pro\', sans-serif","label":"Maven Pro"},{"value":"\'McLaren\', display","label":"McLaren"},{"value":"\'Meddon\', handwriting","label":"Meddon"},{"value":"\'MedievalSharp\', display","label":"MedievalSharp"},{"value":"\'Medula One\', display","label":"Medula One"},{"value":"\'Meera Inimai\', sans-serif","label":"Meera Inimai"},{"value":"\'Megrim\', display","label":"Megrim"},{"value":"\'Meie Script\', handwriting","label":"Meie Script"},{"value":"\'Merienda\', handwriting","label":"Merienda"},{"value":"\'Merienda One\', handwriting","label":"Merienda One"},{"value":"\'Merriweather\', serif","label":"Merriweather"},{"value":"\'Merriweather Sans\', sans-serif","label":"Merriweather Sans"},{"value":"\'Metal\', display","label":"Metal"},{"value":"\'Metal Mania\', display","label":"Metal Mania"},{"value":"\'Metamorphous\', display","label":"Metamorphous"},{"value":"\'Metrophobic\', sans-serif","label":"Metrophobic"},{"value":"\'Michroma\', sans-serif","label":"Michroma"},{"value":"\'Milonga\', display","label":"Milonga"},{"value":"\'Miltonian\', display","label":"Miltonian"},{"value":"\'Miltonian Tattoo\', display","label":"Miltonian Tattoo"},{"value":"\'Mina\', sans-serif","label":"Mina"},{"value":"\'Miniver\', display","label":"Miniver"},{"value":"\'Miriam Libre\', sans-serif","label":"Miriam Libre"},{"value":"\'Mirza\', display","label":"Mirza"},{"value":"\'Miss Fajardose\', handwriting","label":"Miss Fajardose"},{"value":"\'Mitr\', sans-serif","label":"Mitr"},{"value":"\'Modak\', display","label":"Modak"},{"value":"\'Modern Antiqua\', display","label":"Modern Antiqua"},{"value":"\'Mogra\', display","label":"Mogra"},{"value":"\'Molengo\', sans-serif","label":"Molengo"},{"value":"\'Molle\', handwriting","label":"Molle"},{"value":"\'Monda\', sans-serif","label":"Monda"},{"value":"\'Monofett\', display","label":"Monofett"},{"value":"\'Monoton\', display","label":"Monoton"},{"value":"\'Monsieur La Doulaise\', handwriting","label":"Monsieur La Doulaise"},{"value":"\'Montaga\', serif","label":"Montaga"},{"value":"\'MonteCarlo\', handwriting","label":"MonteCarlo"},{"value":"\'Montez\', handwriting","label":"Montez"},{"value":"\'Montserrat\', sans-serif","label":"Montserrat"},{"value":"\'Montserrat Alternates\', sans-serif","label":"Montserrat Alternates"},{"value":"\'Montserrat Subrayada\', sans-serif","label":"Montserrat Subrayada"},{"value":"\'Moul\', display","label":"Moul"},{"value":"\'Moulpali\', display","label":"Moulpali"},{"value":"\'Mountains of Christmas\', display","label":"Mountains of Christmas"},{"value":"\'Mouse Memoirs\', sans-serif","label":"Mouse Memoirs"},{"value":"\'Mr Bedfort\', handwriting","label":"Mr Bedfort"},{"value":"\'Mr Dafoe\', handwriting","label":"Mr Dafoe"},{"value":"\'Mr De Haviland\', handwriting","label":"Mr De Haviland"},{"value":"\'Mrs Saint Delafield\', handwriting","label":"Mrs Saint Delafield"},{"value":"\'Mrs Sheppards\', handwriting","label":"Mrs Sheppards"},{"value":"\'Mukta\', sans-serif","label":"Mukta"},{"value":"\'Mukta Mahee\', sans-serif","label":"Mukta Mahee"},{"value":"\'Mukta Malar\', sans-serif","label":"Mukta Malar"},{"value":"\'Mukta Vaani\', sans-serif","label":"Mukta Vaani"},{"value":"\'Mulish\', sans-serif","label":"Mulish"},{"value":"\'MuseoModerno\', display","label":"MuseoModerno"},{"value":"\'Mystery Quest\', display","label":"Mystery Quest"},{"value":"\'NTR\', sans-serif","label":"NTR"},{"value":"\'Nanum Brush Script\', handwriting","label":"Nanum Brush Script"},{"value":"\'Nanum Gothic\', sans-serif","label":"Nanum Gothic"},{"value":"\'Nanum Gothic Coding\', monospace","label":"Nanum Gothic Coding"},{"value":"\'Nanum Myeongjo\', serif","label":"Nanum Myeongjo"},{"value":"\'Nanum Pen Script\', handwriting","label":"Nanum Pen Script"},{"value":"\'Nerko One\', handwriting","label":"Nerko One"},{"value":"\'Neucha\', handwriting","label":"Neucha"},{"value":"\'Neuton\', serif","label":"Neuton"},{"value":"\'New Rocker\', display","label":"New Rocker"},{"value":"\'New Tegomin\', serif","label":"New Tegomin"},{"value":"\'News Cycle\', sans-serif","label":"News Cycle"},{"value":"\'Newsreader\', serif","label":"Newsreader"},{"value":"\'Niconne\', handwriting","label":"Niconne"},{"value":"\'Niramit\', sans-serif","label":"Niramit"},{"value":"\'Nixie One\', display","label":"Nixie One"},{"value":"\'Nobile\', sans-serif","label":"Nobile"},{"value":"\'Nokora\', serif","label":"Nokora"},{"value":"\'Norican\', handwriting","label":"Norican"},{"value":"\'Nosifer\', display","label":"Nosifer"},{"value":"\'Notable\', sans-serif","label":"Notable"},{"value":"\'Nothing You Could Do\', handwriting","label":"Nothing You Could Do"},{"value":"\'Noticia Text\', serif","label":"Noticia Text"},{"value":"\'Noto Sans\', sans-serif","label":"Noto Sans"},{"value":"\'Noto Sans HK\', sans-serif","label":"Noto Sans HK"},{"value":"\'Noto Sans JP\', sans-serif","label":"Noto Sans JP"},{"value":"\'Noto Sans KR\', sans-serif","label":"Noto Sans KR"},{"value":"\'Noto Sans SC\', sans-serif","label":"Noto Sans SC"},{"value":"\'Noto Sans TC\', sans-serif","label":"Noto Sans TC"},{"value":"\'Noto Serif\', serif","label":"Noto Serif"},{"value":"\'Noto Serif JP\', serif","label":"Noto Serif JP"},{"value":"\'Noto Serif KR\', serif","label":"Noto Serif KR"},{"value":"\'Noto Serif SC\', serif","label":"Noto Serif SC"},{"value":"\'Noto Serif TC\', serif","label":"Noto Serif TC"},{"value":"\'Nova Cut\', display","label":"Nova Cut"},{"value":"\'Nova Flat\', display","label":"Nova Flat"},{"value":"\'Nova Mono\', monospace","label":"Nova Mono"},{"value":"\'Nova Oval\', display","label":"Nova Oval"},{"value":"\'Nova Round\', display","label":"Nova Round"},{"value":"\'Nova Script\', display","label":"Nova Script"},{"value":"\'Nova Slim\', display","label":"Nova Slim"},{"value":"\'Nova Square\', display","label":"Nova Square"},{"value":"\'Numans\', sans-serif","label":"Numans"},{"value":"\'Nunito\', sans-serif","label":"Nunito"},{"value":"\'Nunito Sans\', sans-serif","label":"Nunito Sans"},{"value":"\'Odibee Sans\', display","label":"Odibee Sans"},{"value":"\'Odor Mean Chey\', display","label":"Odor Mean Chey"},{"value":"\'Offside\', display","label":"Offside"},{"value":"\'Oi\', display","label":"Oi"},{"value":"\'Old Standard TT\', serif","label":"Old Standard TT"},{"value":"\'Oldenburg\', display","label":"Oldenburg"},{"value":"\'Oleo Script\', display","label":"Oleo Script"},{"value":"\'Oleo Script Swash Caps\', display","label":"Oleo Script Swash Caps"},{"value":"\'Open Sans\', sans-serif","label":"Open Sans"},{"value":"\'Open Sans Condensed\', sans-serif","label":"Open Sans Condensed"},{"value":"\'Oranienbaum\', serif","label":"Oranienbaum"},{"value":"\'Orbitron\', sans-serif","label":"Orbitron"},{"value":"\'Oregano\', display","label":"Oregano"},{"value":"\'Orelega One\', display","label":"Orelega One"},{"value":"\'Orienta\', sans-serif","label":"Orienta"},{"value":"\'Original Surfer\', display","label":"Original Surfer"},{"value":"\'Oswald\', sans-serif","label":"Oswald"},{"value":"\'Otomanopee One\', sans-serif","label":"Otomanopee One"},{"value":"\'Over the Rainbow\', handwriting","label":"Over the Rainbow"},{"value":"\'Overlock\', display","label":"Overlock"},{"value":"\'Overlock SC\', display","label":"Overlock SC"},{"value":"\'Overpass\', sans-serif","label":"Overpass"},{"value":"\'Overpass Mono\', monospace","label":"Overpass Mono"},{"value":"\'Ovo\', serif","label":"Ovo"},{"value":"\'Oxanium\', display","label":"Oxanium"},{"value":"\'Oxygen\', sans-serif","label":"Oxygen"},{"value":"\'Oxygen Mono\', monospace","label":"Oxygen Mono"},{"value":"\'PT Mono\', monospace","label":"PT Mono"},{"value":"\'PT Sans\', sans-serif","label":"PT Sans"},{"value":"\'PT Sans Caption\', sans-serif","label":"PT Sans Caption"},{"value":"\'PT Sans Narrow\', sans-serif","label":"PT Sans Narrow"},{"value":"\'PT Serif\', serif","label":"PT Serif"},{"value":"\'PT Serif Caption\', serif","label":"PT Serif Caption"},{"value":"\'Pacifico\', handwriting","label":"Pacifico"},{"value":"\'Padauk\', sans-serif","label":"Padauk"},{"value":"\'Palanquin\', sans-serif","label":"Palanquin"},{"value":"\'Palanquin Dark\', sans-serif","label":"Palanquin Dark"},{"value":"\'Palette Mosaic\', display","label":"Palette Mosaic"},{"value":"\'Pangolin\', handwriting","label":"Pangolin"},{"value":"\'Paprika\', display","label":"Paprika"},{"value":"\'Parisienne\', handwriting","label":"Parisienne"},{"value":"\'Passero One\', display","label":"Passero One"},{"value":"\'Passion One\', display","label":"Passion One"},{"value":"\'Pathway Gothic One\', sans-serif","label":"Pathway Gothic One"},{"value":"\'Patrick Hand\', handwriting","label":"Patrick Hand"},{"value":"\'Patrick Hand SC\', handwriting","label":"Patrick Hand SC"},{"value":"\'Pattaya\', sans-serif","label":"Pattaya"},{"value":"\'Patua One\', display","label":"Patua One"},{"value":"\'Pavanam\', sans-serif","label":"Pavanam"},{"value":"\'Paytone One\', sans-serif","label":"Paytone One"},{"value":"\'Peddana\', serif","label":"Peddana"},{"value":"\'Peralta\', display","label":"Peralta"},{"value":"\'Permanent Marker\', handwriting","label":"Permanent Marker"},{"value":"\'Petit Formal Script\', handwriting","label":"Petit Formal Script"},{"value":"\'Petrona\', serif","label":"Petrona"},{"value":"\'Philosopher\', sans-serif","label":"Philosopher"},{"value":"\'Piazzolla\', serif","label":"Piazzolla"},{"value":"\'Piedra\', display","label":"Piedra"},{"value":"\'Pinyon Script\', handwriting","label":"Pinyon Script"},{"value":"\'Pirata One\', display","label":"Pirata One"},{"value":"\'Plaster\', display","label":"Plaster"},{"value":"\'Play\', sans-serif","label":"Play"},{"value":"\'Playball\', display","label":"Playball"},{"value":"\'Playfair Display\', serif","label":"Playfair Display"},{"value":"\'Playfair Display SC\', serif","label":"Playfair Display SC"},{"value":"\'Podkova\', serif","label":"Podkova"},{"value":"\'Poiret One\', display","label":"Poiret One"},{"value":"\'Poller One\', display","label":"Poller One"},{"value":"\'Poly\', serif","label":"Poly"},{"value":"\'Pompiere\', display","label":"Pompiere"},{"value":"\'Pontano Sans\', sans-serif","label":"Pontano Sans"},{"value":"\'Poor Story\', display","label":"Poor Story"},{"value":"\'Poppins\', sans-serif","label":"Poppins"},{"value":"\'Port Lligat Sans\', sans-serif","label":"Port Lligat Sans"},{"value":"\'Port Lligat Slab\', serif","label":"Port Lligat Slab"},{"value":"\'Potta One\', display","label":"Potta One"},{"value":"\'Pragati Narrow\', sans-serif","label":"Pragati Narrow"},{"value":"\'Prata\', serif","label":"Prata"},{"value":"\'Preahvihear\', display","label":"Preahvihear"},{"value":"\'Press Start 2P\', display","label":"Press Start 2P"},{"value":"\'Pridi\', serif","label":"Pridi"},{"value":"\'Princess Sofia\', handwriting","label":"Princess Sofia"},{"value":"\'Prociono\', serif","label":"Prociono"},{"value":"\'Prompt\', sans-serif","label":"Prompt"},{"value":"\'Prosto One\', display","label":"Prosto One"},{"value":"\'Proza Libre\', sans-serif","label":"Proza Libre"},{"value":"\'Public Sans\', sans-serif","label":"Public Sans"},{"value":"\'Puritan\', sans-serif","label":"Puritan"},{"value":"\'Purple Purse\', display","label":"Purple Purse"},{"value":"\'Qahiri\', sans-serif","label":"Qahiri"},{"value":"\'Quando\', serif","label":"Quando"},{"value":"\'Quantico\', sans-serif","label":"Quantico"},{"value":"\'Quattrocento\', serif","label":"Quattrocento"},{"value":"\'Quattrocento Sans\', sans-serif","label":"Quattrocento Sans"},{"value":"\'Questrial\', sans-serif","label":"Questrial"},{"value":"\'Quicksand\', sans-serif","label":"Quicksand"},{"value":"\'Quintessential\', handwriting","label":"Quintessential"},{"value":"\'Qwigley\', handwriting","label":"Qwigley"},{"value":"\'Racing Sans One\', display","label":"Racing Sans One"},{"value":"\'Radley\', serif","label":"Radley"},{"value":"\'Rajdhani\', sans-serif","label":"Rajdhani"},{"value":"\'Rakkas\', display","label":"Rakkas"},{"value":"\'Raleway\', sans-serif","label":"Raleway"},{"value":"\'Raleway Dots\', display","label":"Raleway Dots"},{"value":"\'Ramabhadra\', sans-serif","label":"Ramabhadra"},{"value":"\'Ramaraja\', serif","label":"Ramaraja"},{"value":"\'Rambla\', sans-serif","label":"Rambla"},{"value":"\'Rammetto One\', display","label":"Rammetto One"},{"value":"\'Rampart One\', display","label":"Rampart One"},{"value":"\'Ranchers\', display","label":"Ranchers"},{"value":"\'Rancho\', handwriting","label":"Rancho"},{"value":"\'Ranga\', display","label":"Ranga"},{"value":"\'Rasa\', serif","label":"Rasa"},{"value":"\'Rationale\', sans-serif","label":"Rationale"},{"value":"\'Ravi Prakash\', display","label":"Ravi Prakash"},{"value":"\'Recursive\', sans-serif","label":"Recursive"},{"value":"\'Red Hat Display\', sans-serif","label":"Red Hat Display"},{"value":"\'Red Hat Text\', sans-serif","label":"Red Hat Text"},{"value":"\'Red Rose\', display","label":"Red Rose"},{"value":"\'Redressed\', handwriting","label":"Redressed"},{"value":"\'Reem Kufi\', sans-serif","label":"Reem Kufi"},{"value":"\'Reenie Beanie\', handwriting","label":"Reenie Beanie"},{"value":"\'Reggae One\', display","label":"Reggae One"},{"value":"\'Revalia\', display","label":"Revalia"},{"value":"\'Rhodium Libre\', serif","label":"Rhodium Libre"},{"value":"\'Ribeye\', display","label":"Ribeye"},{"value":"\'Ribeye Marrow\', display","label":"Ribeye Marrow"},{"value":"\'Righteous\', display","label":"Righteous"},{"value":"\'Risque\', display","label":"Risque"},{"value":"\'Roboto\', sans-serif","label":"Roboto"},{"value":"\'Roboto Condensed\', sans-serif","label":"Roboto Condensed"},{"value":"\'Roboto Mono\', monospace","label":"Roboto Mono"},{"value":"\'Roboto Slab\', serif","label":"Roboto Slab"},{"value":"\'Rochester\', handwriting","label":"Rochester"},{"value":"\'Rock Salt\', handwriting","label":"Rock Salt"},{"value":"\'RocknRoll One\', sans-serif","label":"RocknRoll One"},{"value":"\'Rokkitt\', serif","label":"Rokkitt"},{"value":"\'Romanesco\', handwriting","label":"Romanesco"},{"value":"\'Ropa Sans\', sans-serif","label":"Ropa Sans"},{"value":"\'Rosario\', sans-serif","label":"Rosario"},{"value":"\'Rosarivo\', serif","label":"Rosarivo"},{"value":"\'Rouge Script\', handwriting","label":"Rouge Script"},{"value":"\'Rowdies\', display","label":"Rowdies"},{"value":"\'Rozha One\', serif","label":"Rozha One"},{"value":"\'Rubik\', sans-serif","label":"Rubik"},{"value":"\'Rubik Mono One\', sans-serif","label":"Rubik Mono One"},{"value":"\'Ruda\', sans-serif","label":"Ruda"},{"value":"\'Rufina\', serif","label":"Rufina"},{"value":"\'Ruge Boogie\', handwriting","label":"Ruge Boogie"},{"value":"\'Ruluko\', sans-serif","label":"Ruluko"},{"value":"\'Rum Raisin\', sans-serif","label":"Rum Raisin"},{"value":"\'Ruslan Display\', display","label":"Ruslan Display"},{"value":"\'Russo One\', sans-serif","label":"Russo One"},{"value":"\'Ruthie\', handwriting","label":"Ruthie"},{"value":"\'Rye\', display","label":"Rye"},{"value":"\'STIX Two Math\', serif","label":"STIX Two Math"},{"value":"\'STIX Two Text\', serif","label":"STIX Two Text"},{"value":"\'Sacramento\', handwriting","label":"Sacramento"},{"value":"\'Sahitya\', serif","label":"Sahitya"},{"value":"\'Sail\', display","label":"Sail"},{"value":"\'Saira\', sans-serif","label":"Saira"},{"value":"\'Saira Condensed\', sans-serif","label":"Saira Condensed"},{"value":"\'Saira Extra Condensed\', sans-serif","label":"Saira Extra Condensed"},{"value":"\'Saira Semi Condensed\', sans-serif","label":"Saira Semi Condensed"},{"value":"\'Saira Stencil One\', display","label":"Saira Stencil One"},{"value":"\'Salsa\', display","label":"Salsa"},{"value":"\'Sanchez\', serif","label":"Sanchez"},{"value":"\'Sancreek\', display","label":"Sancreek"},{"value":"\'Sansita\', sans-serif","label":"Sansita"},{"value":"\'Sansita Swashed\', display","label":"Sansita Swashed"},{"value":"\'Sarabun\', sans-serif","label":"Sarabun"},{"value":"\'Sarala\', sans-serif","label":"Sarala"},{"value":"\'Sarina\', display","label":"Sarina"},{"value":"\'Sarpanch\', sans-serif","label":"Sarpanch"},{"value":"\'Satisfy\', handwriting","label":"Satisfy"},{"value":"\'Sawarabi Gothic\', sans-serif","label":"Sawarabi Gothic"},{"value":"\'Sawarabi Mincho\', sans-serif","label":"Sawarabi Mincho"},{"value":"\'Scada\', sans-serif","label":"Scada"},{"value":"\'Scheherazade\', serif","label":"Scheherazade"},{"value":"\'Schoolbell\', handwriting","label":"Schoolbell"},{"value":"\'Scope One\', serif","label":"Scope One"},{"value":"\'Seaweed Script\', display","label":"Seaweed Script"},{"value":"\'Secular One\', sans-serif","label":"Secular One"},{"value":"\'Sedgwick Ave\', handwriting","label":"Sedgwick Ave"},{"value":"\'Sedgwick Ave Display\', handwriting","label":"Sedgwick Ave Display"},{"value":"\'Sen\', sans-serif","label":"Sen"},{"value":"\'Sevillana\', display","label":"Sevillana"},{"value":"\'Seymour One\', sans-serif","label":"Seymour One"},{"value":"\'Shadows Into Light\', handwriting","label":"Shadows Into Light"},{"value":"\'Shadows Into Light Two\', handwriting","label":"Shadows Into Light Two"},{"value":"\'Shanti\', sans-serif","label":"Shanti"},{"value":"\'Share\', display","label":"Share"},{"value":"\'Share Tech\', sans-serif","label":"Share Tech"},{"value":"\'Share Tech Mono\', monospace","label":"Share Tech Mono"},{"value":"\'Shippori Mincho\', serif","label":"Shippori Mincho"},{"value":"\'Shippori Mincho B1\', serif","label":"Shippori Mincho B1"},{"value":"\'Shojumaru\', display","label":"Shojumaru"},{"value":"\'Short Stack\', handwriting","label":"Short Stack"},{"value":"\'Shrikhand\', display","label":"Shrikhand"},{"value":"\'Siemreap\', display","label":"Siemreap"},{"value":"\'Sigmar One\', display","label":"Sigmar One"},{"value":"\'Signika\', sans-serif","label":"Signika"},{"value":"\'Signika Negative\', sans-serif","label":"Signika Negative"},{"value":"\'Simonetta\', display","label":"Simonetta"},{"value":"\'Single Day\', display","label":"Single Day"},{"value":"\'Sintony\', sans-serif","label":"Sintony"},{"value":"\'Sirin Stencil\', display","label":"Sirin Stencil"},{"value":"\'Six Caps\', sans-serif","label":"Six Caps"},{"value":"\'Skranji\', display","label":"Skranji"},{"value":"\'Slabo 13px\', serif","label":"Slabo 13px"},{"value":"\'Slabo 27px\', serif","label":"Slabo 27px"},{"value":"\'Slackey\', display","label":"Slackey"},{"value":"\'Smokum\', display","label":"Smokum"},{"value":"\'Smythe\', display","label":"Smythe"},{"value":"\'Sniglet\', display","label":"Sniglet"},{"value":"\'Snippet\', sans-serif","label":"Snippet"},{"value":"\'Snowburst One\', display","label":"Snowburst One"},{"value":"\'Sofadi One\', display","label":"Sofadi One"},{"value":"\'Sofia\', handwriting","label":"Sofia"},{"value":"\'Solway\', serif","label":"Solway"},{"value":"\'Song Myung\', serif","label":"Song Myung"},{"value":"\'Sonsie One\', display","label":"Sonsie One"},{"value":"\'Sora\', sans-serif","label":"Sora"},{"value":"\'Sorts Mill Goudy\', serif","label":"Sorts Mill Goudy"},{"value":"\'Source Code Pro\', monospace","label":"Source Code Pro"},{"value":"\'Source Sans Pro\', sans-serif","label":"Source Sans Pro"},{"value":"\'Source Serif Pro\', serif","label":"Source Serif Pro"},{"value":"\'Space Grotesk\', sans-serif","label":"Space Grotesk"},{"value":"\'Space Mono\', monospace","label":"Space Mono"},{"value":"\'Spartan\', sans-serif","label":"Spartan"},{"value":"\'Special Elite\', display","label":"Special Elite"},{"value":"\'Spectral\', serif","label":"Spectral"},{"value":"\'Spectral SC\', serif","label":"Spectral SC"},{"value":"\'Spicy Rice\', display","label":"Spicy Rice"},{"value":"\'Spinnaker\', sans-serif","label":"Spinnaker"},{"value":"\'Spirax\', display","label":"Spirax"},{"value":"\'Squada One\', display","label":"Squada One"},{"value":"\'Sree Krushnadevaraya\', serif","label":"Sree Krushnadevaraya"},{"value":"\'Sriracha\', handwriting","label":"Sriracha"},{"value":"\'Srisakdi\', display","label":"Srisakdi"},{"value":"\'Staatliches\', display","label":"Staatliches"},{"value":"\'Stalemate\', handwriting","label":"Stalemate"},{"value":"\'Stalinist One\', display","label":"Stalinist One"},{"value":"\'Stardos Stencil\', display","label":"Stardos Stencil"},{"value":"\'Stick\', sans-serif","label":"Stick"},{"value":"\'Stint Ultra Condensed\', display","label":"Stint Ultra Condensed"},{"value":"\'Stint Ultra Expanded\', display","label":"Stint Ultra Expanded"},{"value":"\'Stoke\', serif","label":"Stoke"},{"value":"\'Strait\', sans-serif","label":"Strait"},{"value":"\'Style Script\', handwriting","label":"Style Script"},{"value":"\'Stylish\', sans-serif","label":"Stylish"},{"value":"\'Sue Ellen Francisco\', handwriting","label":"Sue Ellen Francisco"},{"value":"\'Suez One\', serif","label":"Suez One"},{"value":"\'Sulphur Point\', sans-serif","label":"Sulphur Point"},{"value":"\'Sumana\', serif","label":"Sumana"},{"value":"\'Sunflower\', sans-serif","label":"Sunflower"},{"value":"\'Sunshiney\', handwriting","label":"Sunshiney"},{"value":"\'Supermercado One\', display","label":"Supermercado One"},{"value":"\'Sura\', serif","label":"Sura"},{"value":"\'Suranna\', serif","label":"Suranna"},{"value":"\'Suravaram\', serif","label":"Suravaram"},{"value":"\'Suwannaphum\', display","label":"Suwannaphum"},{"value":"\'Swanky and Moo Moo\', handwriting","label":"Swanky and Moo Moo"},{"value":"\'Syncopate\', sans-serif","label":"Syncopate"},{"value":"\'Syne\', sans-serif","label":"Syne"},{"value":"\'Syne Mono\', monospace","label":"Syne Mono"},{"value":"\'Syne Tactile\', display","label":"Syne Tactile"},{"value":"\'Tajawal\', sans-serif","label":"Tajawal"},{"value":"\'Tangerine\', handwriting","label":"Tangerine"},{"value":"\'Taprom\', display","label":"Taprom"},{"value":"\'Tauri\', sans-serif","label":"Tauri"},{"value":"\'Taviraj\', serif","label":"Taviraj"},{"value":"\'Teko\', sans-serif","label":"Teko"},{"value":"\'Telex\', sans-serif","label":"Telex"},{"value":"\'Tenali Ramakrishna\', sans-serif","label":"Tenali Ramakrishna"},{"value":"\'Tenor Sans\', sans-serif","label":"Tenor Sans"},{"value":"\'Text Me One\', sans-serif","label":"Text Me One"},{"value":"\'Texturina\', serif","label":"Texturina"},{"value":"\'Thasadith\', sans-serif","label":"Thasadith"},{"value":"\'The Girl Next Door\', handwriting","label":"The Girl Next Door"},{"value":"\'Tienne\', serif","label":"Tienne"},{"value":"\'Tillana\', handwriting","label":"Tillana"},{"value":"\'Timmana\', sans-serif","label":"Timmana"},{"value":"\'Tinos\', serif","label":"Tinos"},{"value":"\'Titan One\', display","label":"Titan One"},{"value":"\'Titillium Web\', sans-serif","label":"Titillium Web"},{"value":"\'Tomorrow\', sans-serif","label":"Tomorrow"},{"value":"\'Tourney\', display","label":"Tourney"},{"value":"\'Trade Winds\', display","label":"Trade Winds"},{"value":"\'Train One\', display","label":"Train One"},{"value":"\'Trirong\', serif","label":"Trirong"},{"value":"\'Trispace\', sans-serif","label":"Trispace"},{"value":"\'Trocchi\', serif","label":"Trocchi"},{"value":"\'Trochut\', display","label":"Trochut"},{"value":"\'Truculenta\', sans-serif","label":"Truculenta"},{"value":"\'Trykker\', serif","label":"Trykker"},{"value":"\'Tulpen One\', display","label":"Tulpen One"},{"value":"\'Turret Road\', display","label":"Turret Road"},{"value":"\'Ubuntu\', sans-serif","label":"Ubuntu"},{"value":"\'Ubuntu Condensed\', sans-serif","label":"Ubuntu Condensed"},{"value":"\'Ubuntu Mono\', monospace","label":"Ubuntu Mono"},{"value":"\'Uchen\', serif","label":"Uchen"},{"value":"\'Ultra\', serif","label":"Ultra"},{"value":"\'Uncial Antiqua\', display","label":"Uncial Antiqua"},{"value":"\'Underdog\', display","label":"Underdog"},{"value":"\'Unica One\', display","label":"Unica One"},{"value":"\'UnifrakturCook\', display","label":"UnifrakturCook"},{"value":"\'UnifrakturMaguntia\', display","label":"UnifrakturMaguntia"},{"value":"\'Unkempt\', display","label":"Unkempt"},{"value":"\'Unlock\', display","label":"Unlock"},{"value":"\'Unna\', serif","label":"Unna"},{"value":"\'Urbanist\', sans-serif","label":"Urbanist"},{"value":"\'VT323\', monospace","label":"VT323"},{"value":"\'Vampiro One\', display","label":"Vampiro One"},{"value":"\'Varela\', sans-serif","label":"Varela"},{"value":"\'Varela Round\', sans-serif","label":"Varela Round"},{"value":"\'Varta\', sans-serif","label":"Varta"},{"value":"\'Vast Shadow\', display","label":"Vast Shadow"},{"value":"\'Vesper Libre\', serif","label":"Vesper Libre"},{"value":"\'Viaoda Libre\', display","label":"Viaoda Libre"},{"value":"\'Vibes\', display","label":"Vibes"},{"value":"\'Vibur\', handwriting","label":"Vibur"},{"value":"\'Vidaloka\', serif","label":"Vidaloka"},{"value":"\'Viga\', sans-serif","label":"Viga"},{"value":"\'Voces\', display","label":"Voces"},{"value":"\'Volkhov\', serif","label":"Volkhov"},{"value":"\'Vollkorn\', serif","label":"Vollkorn"},{"value":"\'Vollkorn SC\', serif","label":"Vollkorn SC"},{"value":"\'Voltaire\', sans-serif","label":"Voltaire"},{"value":"\'Waiting for the Sunrise\', handwriting","label":"Waiting for the Sunrise"},{"value":"\'Wallpoet\', display","label":"Wallpoet"},{"value":"\'Walter Turncoat\', handwriting","label":"Walter Turncoat"},{"value":"\'Warnes\', display","label":"Warnes"},{"value":"\'Wellfleet\', display","label":"Wellfleet"},{"value":"\'Wendy One\', sans-serif","label":"Wendy One"},{"value":"\'WindSong\', handwriting","label":"WindSong"},{"value":"\'Wire One\', sans-serif","label":"Wire One"},{"value":"\'Work Sans\', sans-serif","label":"Work Sans"},{"value":"\'Xanh Mono\', monospace","label":"Xanh Mono"},{"value":"\'Yanone Kaffeesatz\', sans-serif","label":"Yanone Kaffeesatz"},{"value":"\'Yantramanav\', sans-serif","label":"Yantramanav"},{"value":"\'Yatra One\', display","label":"Yatra One"},{"value":"\'Yellowtail\', handwriting","label":"Yellowtail"},{"value":"\'Yeon Sung\', display","label":"Yeon Sung"},{"value":"\'Yeseva One\', display","label":"Yeseva One"},{"value":"\'Yesteryear\', handwriting","label":"Yesteryear"},{"value":"\'Yomogi\', handwriting","label":"Yomogi"},{"value":"\'Yrsa\', serif","label":"Yrsa"},{"value":"\'Yusei Magic\', sans-serif","label":"Yusei Magic"},{"value":"\'ZCOOL KuaiLe\', display","label":"ZCOOL KuaiLe"},{"value":"\'ZCOOL QingKe HuangYou\', display","label":"ZCOOL QingKe HuangYou"},{"value":"\'ZCOOL XiaoWei\', serif","label":"ZCOOL XiaoWei"},{"value":"\'Zen Dots\', display","label":"Zen Dots"},{"value":"\'Zen Loop\', display","label":"Zen Loop"},{"value":"\'Zen Tokyo Zoo\', display","label":"Zen Tokyo Zoo"},{"value":"\'Zeyada\', handwriting","label":"Zeyada"},{"value":"\'Zhi Mang Xing\', handwriting","label":"Zhi Mang Xing"},{"value":"\'Zilla Slab\', serif","label":"Zilla Slab"},{"value":"\'Zilla Slab Highlight\', display","label":"Zilla Slab Highlight"}]');
;// ./src/js/components/App/Form/Appearance.js
function Appearance_typeof(o) { "@babel/helpers - typeof"; return Appearance_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Appearance_typeof(o); }
function Appearance_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Appearance_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Appearance_ownKeys(Object(t), !0).forEach(function (r) { Appearance_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Appearance_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Appearance_defineProperty(e, r, t) { return (r = Appearance_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Appearance_toPropertyKey(t) { var i = Appearance_toPrimitive(t, "string"); return "symbol" == Appearance_typeof(i) ? i : i + ""; }
function Appearance_toPrimitive(t, r) { if ("object" != Appearance_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Appearance_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }






var Appearance_wp$components = wp.components,
  Appearance_ButtonGroup = Appearance_wp$components.ButtonGroup,
  Appearance_Button = Appearance_wp$components.Button,
  RangeControl = Appearance_wp$components.RangeControl,
  Appearance_FormToggle = Appearance_wp$components.FormToggle,
  Appearance_TextControl = Appearance_wp$components.TextControl,
  Appearance_SelectControl = Appearance_wp$components.SelectControl,
  Appearance_Radio = Appearance_wp$components.__experimentalRadio,
  Appearance_RadioGroup = Appearance_wp$components.__experimentalRadioGroup,
  GradientPicker = Appearance_wp$components.GradientPicker,
  GradientPicker2 = Appearance_wp$components.__experimentalGradientPicker;
if (!GradientPicker) {
  GradientPicker = GradientPicker2;
}
var Appearance_React = React,
  Appearance_useContext = Appearance_React.useContext;
function Appearance() {
  var isPro = !!smp.isPro;
  var context = Appearance_useContext(contexts_AppContext);
  var editData = context.editData,
    setEditData = context.setEditData;
  var type = editData.type,
    skin = editData.skin,
    playlist = editData.playlist,
    _editData$bg_type = editData.bg_type,
    bg_type = _editData$bg_type === void 0 ? 'image' : _editData$bg_type,
    _editData$color_type = editData.color_type,
    color_type = _editData$color_type === void 0 ? 'solid' : _editData$color_type,
    bg_color = editData.bg_color,
    width = editData.width,
    width_mobile = editData.width_mobile,
    border_radius = editData.border_radius,
    _editData$bg_image = editData.bg_image,
    bg_image = _editData$bg_image === void 0 ? "".concat(smp.pluginUrl, "/assets/images/skins/audio/audio-skin-2.png") : _editData$bg_image,
    playlist_bg_color = editData.playlist_bg_color,
    text_color = editData.text_color,
    _editData$progressbar = editData.progressbar,
    progressbar = _editData$progressbar === void 0 ? false : _editData$progressbar,
    progressbar_bg_color = editData.progressbar_bg_color,
    progressbar_fill_color = editData.progressbar_fill_color,
    progressbar_handle_color = editData.progressbar_handle_color,
    progressbar_handle_border_size = editData.progressbar_handle_border_size,
    progressbar_handle_border_style = editData.progressbar_handle_border_style,
    progressbar_handle_border_color = editData.progressbar_handle_border_color,
    button = editData.button,
    play_pause_icon_color = editData.play_pause_icon_color,
    play_pause_bg_color = editData.play_pause_bg_color,
    button_color = editData.button_color,
    button_bg_color = editData.button_bg_color,
    button_border_size = editData.button_border_size,
    button_border_style = editData.button_border_style,
    button_border_color = editData.button_border_color,
    button_border_radius = editData.button_border_radius,
    _editData$box_shadow = editData.box_shadow,
    box_shadow = _editData$box_shadow === void 0 ? false : _editData$box_shadow,
    _editData$box_shadow_ = editData.box_shadow_h,
    box_shadow_h = _editData$box_shadow_ === void 0 ? 0 : _editData$box_shadow_,
    _editData$box_shadow_2 = editData.box_shadow_v,
    box_shadow_v = _editData$box_shadow_2 === void 0 ? 0 : _editData$box_shadow_2,
    _editData$box_shadow_3 = editData.box_shadow_blur,
    box_shadow_blur = _editData$box_shadow_3 === void 0 ? 0 : _editData$box_shadow_3,
    _editData$box_shadow_4 = editData.box_shadow_spread,
    box_shadow_spread = _editData$box_shadow_4 === void 0 ? 0 : _editData$box_shadow_4,
    _editData$box_shadow_5 = editData.box_shadow_color,
    box_shadow_color = _editData$box_shadow_5 === void 0 ? '#000000' : _editData$box_shadow_5,
    _editData$box_shadow_6 = editData.box_shadow_type,
    box_shadow_type = _editData$box_shadow_6 === void 0 ? '' : _editData$box_shadow_6,
    _editData$typography = editData.typography,
    typography = _editData$typography === void 0 ? false : _editData$typography,
    _editData$font_family = editData.font_family,
    font_family = _editData$font_family === void 0 ? '' : _editData$font_family,
    _editData$font_weight = editData.font_weight,
    font_weight = _editData$font_weight === void 0 ? '700' : _editData$font_weight,
    _editData$text_align = editData.text_align,
    text_align = _editData$text_align === void 0 ? 'center' : _editData$text_align,
    _editData$font_size = editData.font_size,
    font_size = _editData$font_size === void 0 ? 16 : _editData$font_size,
    _editData$line_height = editData.line_height,
    line_height = _editData$line_height === void 0 ? 18 : _editData$line_height,
    _editData$letter_spac = editData.letter_spacing,
    letter_spacing = _editData$letter_spac === void 0 ? 1 : _editData$letter_spac,
    _editData$width_devic = editData.width_device,
    width_device = _editData$width_devic === void 0 ? 'desktop' : _editData$width_devic;
  var fontWeightOptions = [{
    label: wp.i18n.__("Thin", "multimedia-player"),
    value: "100"
  }, {
    label: wp.i18n.__("Extra Light", "multimedia-player"),
    value: "200"
  }, {
    label: wp.i18n.__("Light", "multimedia-player"),
    value: "300"
  }, {
    label: wp.i18n.__("Regular", "multimedia-player"),
    value: "400"
  }, {
    label: wp.i18n.__("Medium", "multimedia-player"),
    value: "500"
  }, {
    label: wp.i18n.__("Semi Bold", "multimedia-player"),
    value: "600"
  }, {
    label: wp.i18n.__("Bold", "multimedia-player"),
    value: "700"
  }, {
    label: wp.i18n.__("Extra Bold", "multimedia-player"),
    value: "800"
  }, {
    label: wp.i18n.__("Black", "multimedia-player"),
    value: "900"
  }];
  return /*#__PURE__*/React.createElement("div", {
    className: "settings-body"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "header-title"
  }, wp.i18n.__('Customize Player Appearance', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Modify the look and feel of your player, including color schemes, button styles, and layout.', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Player Width', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(Appearance_RadioGroup, {
    label: wp.i18n.__('Devices', 'soft-multimedia-player'),
    checked: width_device,
    onChange: function onChange(width_device) {
      return setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          width_device: width_device
        });
      });
    },
    className: "width-devices"
  }, /*#__PURE__*/React.createElement(Appearance_Radio, {
    value: "desktop"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-desktop"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Desktop', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement(Appearance_Radio, {
    value: "mobile"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-smartphone"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Mobile', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement(Appearance_TextControl, {
    type: 'text',
    value: width_device === 'mobile' ? width_mobile : width,
    onChange: function onChange(width) {
      if (width_device === 'mobile') {
        setEditData(function (data) {
          return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
            width_mobile: width
          });
        });
      } else {
        setEditData(function (data) {
          return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
            width: width
          });
        });
      }
    }
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set the player width on ', 'soft-multimedia-player'), " ", width_device, " "))), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Background Type', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(Appearance_ButtonGroup, null, /*#__PURE__*/React.createElement(Appearance_Button, {
    onClick: function onClick() {
      return setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          bg_type: 'color'
        });
      });
    },
    isPrimary: 'color' === bg_type
  }, /*#__PURE__*/React.createElement("svg", {
    width: "18",
    height: "18",
    viewBox: "0 0 18 18",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, /*#__PURE__*/React.createElement("path", {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M3.5998 1.79999C2.60569 1.79999 1.7998 2.60588 1.7998 3.59999V13.5C1.7998 14.9912 3.00864 16.2 4.4998 16.2C5.99097 16.2 7.1998 14.9912 7.1998 13.5V3.59999C7.1998 2.60588 6.39392 1.79999 5.3998 1.79999H3.5998ZM4.4998 14.4C4.99686 14.4 5.3998 13.997 5.3998 13.5C5.3998 13.0029 4.99686 12.6 4.4998 12.6C4.00275 12.6 3.5998 13.0029 3.5998 13.5C3.5998 13.997 4.00275 14.4 4.4998 14.4Z",
    fill: "#5C637E"
  }), /*#__PURE__*/React.createElement("path", {
    d: "M8.9998 12.8183L13.4093 8.40876C14.1123 7.70581 14.1123 6.56612 13.4093 5.86317L12.1365 4.59038C11.4336 3.88744 10.2939 3.88744 9.59096 4.59038L8.9998 5.18154V12.8183Z",
    fill: "#5C637E"
  }), /*#__PURE__*/React.createElement("path", {
    d: "M14.3998 16.2H8.16374L13.5637 10.8H14.3998C15.3939 10.8 16.1998 11.6059 16.1998 12.6V14.4C16.1998 15.3941 15.3939 16.2 14.3998 16.2Z",
    fill: "#5C637E"
  })), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Color', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement(Appearance_Button, {
    "data-tooltip-content": !isPro ? wp.i18n.__('Pro Feature', 'soft-multimedia-player') : null,
    "data-tooltip-id": !isPro ? "toggle_type-tooltip-bg-img" : null,
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the player background image.', 'soft-multimedia-player'));
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          bg_type: 'image'
        });
      });
    },
    isPrimary: 'image' === bg_type,
    className: "".concat(!isPro ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement("svg", {
    width: "18",
    height: "18",
    viewBox: "0 0 18 18",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, /*#__PURE__*/React.createElement("path", {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M5.74964 16.5H12.2496C14.7923 16.5 16.5 14.7164 16.5 12.0625V5.93754C16.5 3.28358 14.7923 1.5 12.2504 1.5H5.74964C3.20767 1.5 1.5 3.28358 1.5 5.93754V12.0625C1.5 14.7164 3.20767 16.5 5.74964 16.5ZM6.37414 8.25C5.34016 8.25 4.5 7.4087 4.5 6.375C4.5 5.3413 5.34016 4.5 6.37414 4.5C7.40737 4.5 8.24829 5.3413 8.24829 6.375C8.24829 7.4087 7.40737 8.25 6.37414 8.25ZM14.8656 11.2005C15.1168 11.8444 14.9863 12.6184 14.7178 13.2562C14.3995 14.0147 13.7901 14.589 13.0224 14.8398C12.6815 14.9512 12.324 15 11.9673 15H5.64648C5.0175 15 4.46091 14.8491 4.00463 14.5681C3.71879 14.3916 3.66826 13.9845 3.88019 13.7206C4.23465 13.2794 4.58459 12.8367 4.93755 12.3901C5.61028 11.5356 6.06355 11.2879 6.56734 11.5054C6.77172 11.5952 6.97686 11.7299 7.18803 11.8723C7.75065 12.2546 8.53274 12.7802 9.56295 12.2098C10.268 11.8149 10.6769 11.1376 11.0329 10.5478L11.0389 10.5379C11.0641 10.4965 11.0891 10.4552 11.1141 10.4139L11.1141 10.4139C11.2337 10.2159 11.3518 10.0205 11.4854 9.84056C11.6528 9.61533 12.2735 8.91099 13.0774 9.41254C13.5895 9.72833 14.0202 10.1556 14.481 10.613C14.6567 10.7879 14.7819 10.9868 14.8656 11.2005Z",
    fill: "#5C637E"
  })), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Image', 'soft-multimedia-player'))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: "smp-tooltip",
    id: "toggle_type-tooltip-bg-img",
    place: "left",
    variant: "warning"
  }))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the player background type color/ image.', 'soft-multimedia-player'), /*#__PURE__*/React.createElement("br", null), 'wave' === bg_type && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("strong", null, wp.i18n.__('Note:', 'soft-multimedia-player'), " "), " ", wp.i18n.__('Wave background will be automatically applied based on the music.', 'soft-multimedia-player'))))), 'image' === bg_type && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Background Image', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement("div", {
    className: "input-group ".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the player background.', 'soft-multimedia-player'));
      }
    }
  }, /*#__PURE__*/React.createElement(Uploader, {
    media: bg_image,
    onChange: function onChange(media) {
      return setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          bg_image: media
        });
      });
    }
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set the player background image.', 'soft-multimedia-player')))), 'color' === bg_type && /*#__PURE__*/React.createElement("div", {
    className: "form-group bg-color"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Background Color', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(Appearance_ButtonGroup, null, /*#__PURE__*/React.createElement(Appearance_Button, {
    isPrimary: 'solid' === color_type,
    onClick: function onClick() {
      return setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          color_type: 'solid'
        });
      });
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Solid', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement(Appearance_Button, {
    "data-tooltip-content": !isPro ? wp.i18n.__('Pro Feature', 'soft-multimedia-player') : null,
    "data-tooltip-id": !isPro ? "toggle_type-tooltip-bg-color-gradient" : null,
    isPrimary: 'gradient' === color_type,
    className: "".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          color_type: 'gradient'
        });
      });
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Gradient', 'soft-multimedia-player'))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: "smp-tooltip",
    id: "toggle_type-tooltip-bg-color-gradient",
    place: "left",
    variant: "warning"
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the background color type solid/ gradient.', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "form-field-sub"
  }, 'solid' === color_type && /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: bg_color,
    onChange: function onChange(bg_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          bg_color: bg_color
        });
      });
    },
    allowReset: true
  }), 'gradient' === color_type && /*#__PURE__*/React.createElement(GradientPicker, {
    value: bg_color,
    className: "smp-gradient-picker ".concat(isPro ? '' : 'disabled'),
    onChange: function onChange(bg_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the player background color.', 'soft-multimedia-player'));
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          bg_color: bg_color
        });
      });
    },
    gradients: [{
      gradient: 'linear-gradient(-225deg, #E3FDF5 0%, #FFE6FA 100%)'
    }, {
      gradient: 'linear-gradient(153.63deg, #61E89D 3.43%, #2DCA74 90.47%)'
    }, {
      gradient: 'linear-gradient(153.63deg, #CE80FF 3.43%, #8A75FF 90.47%)'
    }, {
      gradient: 'linear-gradient(143.53deg, #F7CCDC 11.16%, #FD80D2 94.07%)'
    }, {
      gradient: 'linear-gradient(143.53deg, #8D7DFE 11.16%, #6FB9FF 94.07%)'
    }, {
      gradient: 'linear-gradient(143.38deg, #FFCDA3 4.99%, #FD6C87 94.05%)'
    }]
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Customize the player background color.', 'soft-multimedia-player')))))), (playlist || !isPro) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Playlist Background', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": !isPro ? wp.i18n.__('Pro Feature', 'soft-multimedia-player') : null,
    "data-tooltip-id": !isPro ? "toggle_type-tooltip-playlist-color" : null,
    className: "input-group ".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the player colors.', 'soft-multimedia-player'));
        return;
      }
    }
  }, /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: playlist_bg_color,
    onChange: function onChange(playlist_bg_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          playlist_bg_color: playlist_bg_color
        });
      });
    },
    allowReset: true
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: "smp-tooltip",
    id: "toggle_type-tooltip-playlist-color",
    place: "left",
    variant: "warning"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Customize the playlist background color.', 'soft-multimedia-player'))))), type !== 'video-player' && /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Text Color', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: text_color,
    onChange: function onChange(text_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          text_color: text_color
        });
      });
    },
    allowReset: true
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the text color displayed in the player (e.g., track title, artist name).', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "form-group progressbar"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Progress Bar', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field ".concat(!isPro ? 'disabled' : ''),
    "data-tooltip-id": "progressbar-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player')
  }, /*#__PURE__*/React.createElement(Appearance_FormToggle, {
    checked: progressbar,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar: !progressbar
        });
      });
    }
  }), (progressbar || !isPro) && /*#__PURE__*/React.createElement("div", {
    className: "progressbar_item"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Progressbar Background Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: progressbar_bg_color,
    onChange: function onChange(progressbar_bg_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar_bg_color: progressbar_bg_color
        });
      });
    },
    allowReset: true
  }), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Progressbar Fill Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: progressbar_fill_color,
    onChange: function onChange(progressbar_fill_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar_fill_color: progressbar_fill_color
        });
      });
    },
    allowReset: true
  }), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Handle Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: progressbar_handle_color,
    onChange: function onChange(progressbar_handle_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar_handle_color: progressbar_handle_color
        });
      });
    },
    allowReset: true
  }), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Handle Border Size', 'soft-multimedia-player'),
    value: parseInt(progressbar_handle_border_size),
    onChange: function onChange(progressbar_handle_border_size) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar_handle_border_size: progressbar_handle_border_size
        });
      });
    },
    min: 1,
    max: 10,
    allowReset: true,
    resetFallbackValue: 1
  }), /*#__PURE__*/React.createElement("div", {
    className: "selected-item"
  }, /*#__PURE__*/React.createElement(Appearance_SelectControl, {
    label: wp.i18n.__('Handle Border Style', 'soft-multimedia-player'),
    value: progressbar_handle_border_style,
    onChange: function onChange(progressbar_handle_border_style) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar_handle_border_style: progressbar_handle_border_style
        });
      });
    },
    options: [{
      value: 'none',
      label: wp.i18n.__('None', 'soft-multimedia-player')
    }, {
      value: 'solid',
      label: wp.i18n.__('Solid', 'soft-multimedia-player')
    }, {
      value: 'dashed',
      label: wp.i18n.__('Dashed', 'soft-multimedia-player')
    }, {
      value: 'dotted',
      label: wp.i18n.__('Dotted', 'soft-multimedia-player')
    }, {
      value: 'double',
      label: wp.i18n.__('Double', 'soft-multimedia-player')
    }, {
      value: 'groove',
      label: wp.i18n.__('Groove', 'soft-multimedia-player')
    }, {
      value: 'ridge',
      label: wp.i18n.__('Ridge', 'soft-multimedia-player')
    }, {
      value: 'inset',
      label: wp.i18n.__('Inset', 'soft-multimedia-player')
    }, {
      value: 'outset',
      label: wp.i18n.__('Outset', 'soft-multimedia-player')
    }]
  })), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Handle Border Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: progressbar_handle_border_color,
    onChange: function onChange(progressbar_handle_border_color) {
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          progressbar_handle_border_color: progressbar_handle_border_color
        });
      });
    },
    allowReset: true
  }))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "progressbar-tooltip",
    className: "smp-tooltip",
    place: "left",
    variant: "warning"
  })), /*#__PURE__*/React.createElement("div", {
    className: "form-group progressbar"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Button control', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field ".concat(!isPro ? 'disabled' : ''),
    "data-tooltip-id": "button-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player')
  }, /*#__PURE__*/React.createElement(Appearance_FormToggle, {
    checked: button,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button: !button
        });
      });
    }
  }), (button || !isPro) && /*#__PURE__*/React.createElement("div", {
    className: "progressbar_item"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('General Icon Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: button_color,
    onChange: function onChange(button_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button_color: button_color
        });
      });
    }
  }), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('General Background Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: button_bg_color,
    onChange: function onChange(button_bg_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button_bg_color: button_bg_color
        });
      });
    }
  }), (type === 'audio-player' && (skin === 'skin1' || skin === 'skin9') || type === 'video-player' && (skin === 'skin1' || skin === 'skin2' || skin === 'skin8')) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Play/Pause Icon Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: play_pause_icon_color,
    onChange: function onChange(play_pause_icon_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          play_pause_icon_color: play_pause_icon_color
        });
      });
    }
  }), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Play/Pause Background Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: play_pause_bg_color,
    onChange: function onChange(play_pause_bg_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          play_pause_bg_color: play_pause_bg_color
        });
      });
    }
  })), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Button Border Size', 'soft-multimedia-player'),
    value: parseInt(button_border_size),
    onChange: function onChange(button_border_size) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button_border_size: button_border_size
        });
      });
    },
    min: 0,
    max: 10,
    allowReset: true,
    resetFallbackValue: 1
  }), /*#__PURE__*/React.createElement("div", {
    className: "selected-item"
  }, /*#__PURE__*/React.createElement(Appearance_SelectControl, {
    label: wp.i18n.__('Button Border Style', 'soft-multimedia-player'),
    value: button_border_style,
    onChange: function onChange(button_border_style) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button_border_style: button_border_style
        });
      });
    },
    options: [{
      value: 'none',
      label: wp.i18n.__('None', 'soft-multimedia-player')
    }, {
      value: 'solid',
      label: wp.i18n.__('Solid', 'soft-multimedia-player')
    }, {
      value: 'dashed',
      label: wp.i18n.__('Dashed', 'soft-multimedia-player')
    }, {
      value: 'dotted',
      label: wp.i18n.__('Dotted', 'soft-multimedia-player')
    }, {
      value: 'double',
      label: wp.i18n.__('Double', 'soft-multimedia-player')
    }, {
      value: 'groove',
      label: wp.i18n.__('Groove', 'soft-multimedia-player')
    }, {
      value: 'ridge',
      label: wp.i18n.__('Ridge', 'soft-multimedia-player')
    }, {
      value: 'inset',
      label: wp.i18n.__('Inset', 'soft-multimedia-player')
    }, {
      value: 'outset',
      label: wp.i18n.__('Outset', 'soft-multimedia-player')
    }]
  })), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Button Border Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: button_border_color,
    onChange: function onChange(button_border_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button_border_color: button_border_color
        });
      });
    }
  }), /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Button Border Radius', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(RangeControl, {
    value: parseInt(button_border_radius),
    onChange: function onChange(button_border_radius) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          button_border_radius: button_border_radius
        });
      });
    },
    min: 1,
    max: 200,
    allowReset: true,
    resetFallbackValue: 5
  }))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "button-tooltip",
    className: "smp-tooltip",
    place: "left",
    variant: "warning"
  })), /*#__PURE__*/React.createElement("div", {
    className: "form-group"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Border Radius', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field"
  }, /*#__PURE__*/React.createElement(RangeControl, {
    value: parseInt(border_radius),
    onChange: function onChange(border_radius) {
      return setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          border_radius: border_radius
        });
      });
    },
    min: 2,
    max: 100,
    allowReset: true,
    resetFallbackValue: 5
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set border radius in pixels.', 'soft-multimedia-player')))), type !== 'video-player' && /*#__PURE__*/React.createElement("div", {
    className: "form-group box-shadow"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Box Shadow', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field ".concat(!isPro ? 'disabled' : ''),
    "data-tooltip-id": "box-shadow-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player')
  }, /*#__PURE__*/React.createElement(Appearance_FormToggle, {
    checked: box_shadow,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow: !box_shadow
        });
      });
    }
  }), (box_shadow || !isPro) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Horizontal', 'soft-multimedia-player'),
    value: parseInt(box_shadow_h),
    onChange: function onChange(box_shadow_h) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow_h: box_shadow_h
        });
      });
    },
    min: -50,
    max: 50,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  }), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Vertical', 'soft-multimedia-player'),
    value: parseInt(box_shadow_v),
    onChange: function onChange(box_shadow_v) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow_v: box_shadow_v
        });
      });
    },
    min: -50,
    max: 50,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  }), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Blur', 'soft-multimedia-player'),
    value: parseInt(box_shadow_blur),
    onChange: function onChange(box_shadow_blur) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow_blur: box_shadow_blur
        });
      });
    },
    min: 0,
    max: 50,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  }), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Spread', 'soft-multimedia-player'),
    value: parseInt(box_shadow_spread),
    onChange: function onChange(box_shadow_spread) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow_spread: box_shadow_spread
        });
      });
    },
    min: -50,
    max: 50,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  }), /*#__PURE__*/React.createElement("h4", {
    className: "shadow-color-label"
  }, wp.i18n.__('Shadow Color', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(ColorPickerWrapper, {
    value: box_shadow_color,
    onChange: function onChange(box_shadow_color) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow_color: box_shadow_color
        });
      });
    },
    allowReset: true
  }), /*#__PURE__*/React.createElement(Appearance_SelectControl, {
    label: wp.i18n.__('Shadow Type', 'soft-multimedia-player'),
    value: box_shadow_type,
    onChange: function onChange(box_shadow_type) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          box_shadow_type: box_shadow_type
        });
      });
    },
    options: [{
      value: 'inset',
      label: wp.i18n.__('Inset', 'soft-multimedia-player')
    }, {
      value: '',
      label: wp.i18n.__('Outset', 'soft-multimedia-player')
    }],
    style: {
      marginTop: 10
    }
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set Player Box Shadow.', 'soft-multimedia-player'))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "box-shadow-tooltip",
    className: "smp-tooltip",
    variant: "warning",
    place: "left"
  })), /*#__PURE__*/React.createElement("div", {
    className: "form-group typography"
  }, /*#__PURE__*/React.createElement("label", {
    className: "form-label"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Typography', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "form-field ".concat(!isPro ? 'disabled' : ''),
    "data-tooltip-id": "typography-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player')
  }, /*#__PURE__*/React.createElement(Appearance_FormToggle, {
    className: "".concat(!isPro ? 'disabled' : ''),
    checked: typography,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          typography: !typography
        });
      });
    }
  }), (typography || !isPro) && /*#__PURE__*/React.createElement("div", {
    className: "typography_item"
  }, /*#__PURE__*/React.createElement("div", {
    className: "selected-item"
  }, /*#__PURE__*/React.createElement(Appearance_SelectControl, {
    label: wp.i18n.__('Font Family', 'soft-multimedia-player'),
    options: google_fonts_namespaceObject,
    value: font_family,
    onChange: function onChange(font) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          font_family: font
        });
      });
    },
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true
  }), /*#__PURE__*/React.createElement(Appearance_SelectControl, {
    label: wp.i18n.__('Font Weight', 'soft-multimedia-player'),
    value: font_weight,
    options: fontWeightOptions,
    onChange: function onChange(value) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          font_weight: value
        });
      });
    },
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true
  }), /*#__PURE__*/React.createElement(Appearance_SelectControl, {
    label: wp.i18n.__('Text Alignment', 'soft-multimedia-player'),
    value: text_align,
    options: [{
      label: wp.i18n.__('Align Left', 'soft-multimedia-player'),
      value: "left"
    }, {
      label: wp.i18n.__('Align Center', 'soft-multimedia-player'),
      value: "center"
    }, {
      label: wp.i18n.__('Align Right', 'soft-multimedia-player'),
      value: "right"
    }],
    onChange: function onChange(value) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          text_align: value
        });
      });
    },
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true
  })), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Font Size', 'soft-multimedia-player'),
    value: parseInt(font_size),
    onChange: function onChange(font_size) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          font_size: font_size
        });
      });
    },
    min: 1,
    max: 100,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  }), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Line Height', 'soft-multimedia-player'),
    value: parseInt(line_height),
    onChange: function onChange(line_height) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          line_height: line_height
        });
      });
    },
    min: 1,
    max: 100,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  }), /*#__PURE__*/React.createElement(RangeControl, {
    label: wp.i18n.__('Line Spacing', 'soft-multimedia-player'),
    value: parseInt(letter_spacing),
    onChange: function onChange(letter_spacing) {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setEditData(function (data) {
        return Appearance_objectSpread(Appearance_objectSpread({}, data), {}, {
          letter_spacing: letter_spacing
        });
      });
    },
    min: 1,
    max: 100,
    step: 1,
    allowReset: true,
    resetFallbackValue: 0
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Customize fonts and styles for text within the audio player.', 'soft-multimedia-player'))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "typography-tooltip",
    className: "smp-tooltip",
    place: "left",
    variant: "warning"
  })));
}
;// ./src/js/components/App/Form/Types.js
function Types_typeof(o) { "@babel/helpers - typeof"; return Types_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Types_typeof(o); }
function Types_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Types_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Types_ownKeys(Object(t), !0).forEach(function (r) { Types_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Types_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Types_defineProperty(e, r, t) { return (r = Types_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Types_toPropertyKey(t) { var i = Types_toPrimitive(t, "string"); return "symbol" == Types_typeof(i) ? i : i + ""; }
function Types_toPrimitive(t, r) { if ("object" != Types_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Types_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }


var Types_React = React,
  Types_useContext = Types_React.useContext;
function Types() {
  var context = Types_useContext(contexts_AppContext);
  var editData = context.editData,
    setEditData = context.setEditData,
    openTypeModal = context.openTypeModal,
    setOpenTypeModal = context.setOpenTypeModal,
    edit = context.edit,
    updatePlayer = context.updatePlayer;
  var _ref = editData || {},
    type = _ref.type,
    _ref$skin = _ref.skin,
    skin = _ref$skin === void 0 ? 'skin0' : _ref$skin;
  return /*#__PURE__*/React.createElement("div", {
    className: "player-types-wrap"
  }, /*#__PURE__*/React.createElement("div", {
    className: "player-types-header"
  }, /*#__PURE__*/React.createElement("h3", {
    className: "settings-title"
  }, wp.i18n.__('Player Type', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Choose the player type you want to use.', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "player-types-close dashicons dashicons-no-alt",
    onClick: function onClick() {
      if ('init' === openTypeModal && !edit) {
        Swal.close();
      }
      setOpenTypeModal(false);
    }
  })), /*#__PURE__*/React.createElement("div", {
    className: "player-types"
  }, Object.keys((0,functions/* playerTypes */.Fw)()).map(function (key) {
    var _ref2 = (0,functions/* playerTypes */.Fw)()[key] || {},
      title = _ref2.title,
      desc = _ref2.desc;
    var isActive = key === type;
    return /*#__PURE__*/React.createElement("div", {
      key: key,
      className: "player-type ".concat(isActive ? 'active' : ''),
      onClick: function onClick() {
        var _skins$selectedSkin;
        if (isActive) return;
        var skins = (0,functions/* getSkins */.ro)(key);
        var selectedSkin = skins[skin] ? skin : 'skin0';
        var config = (_skins$selectedSkin = skins[selectedSkin]) === null || _skins$selectedSkin === void 0 ? void 0 : _skins$selectedSkin.config;
        if (edit) {
          setEditData(Types_objectSpread(Types_objectSpread({}, editData), {}, {
            type: key,
            skin: selectedSkin
          }, config));
          setOpenTypeModal(false);
        } else {
          updatePlayer(Types_objectSpread({
            type: key,
            status: true,
            skin: selectedSkin
          }, config));
        }
      }
    }, /*#__PURE__*/React.createElement("img", {
      src: "".concat(smp.pluginUrl, "/assets/images/modules/").concat(key, ".svg")
    }), /*#__PURE__*/React.createElement("h3", null, title), /*#__PURE__*/React.createElement("p", null, desc));
  })));
}
// EXTERNAL MODULE: ./src/js/components/Player.js + 47 modules
var admin_Player = __webpack_require__(2480);
;// ./src/js/components/App/Form.js
function Form_typeof(o) { "@babel/helpers - typeof"; return Form_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Form_typeof(o); }
function Form_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Form_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Form_ownKeys(Object(t), !0).forEach(function (r) { Form_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Form_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Form_defineProperty(e, r, t) { return (r = Form_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Form_toPropertyKey(t) { var i = Form_toPrimitive(t, "string"); return "symbol" == Form_typeof(i) ? i : i + ""; }
function Form_toPrimitive(t, r) { if ("object" != Form_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Form_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function Form_slicedToArray(r, e) { return Form_arrayWithHoles(r) || Form_iterableToArrayLimit(r, e) || Form_unsupportedIterableToArray(r, e) || Form_nonIterableRest(); }
function Form_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Form_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Form_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Form_arrayLikeToArray(r, a) : void 0; } }
function Form_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Form_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Form_arrayWithHoles(r) { if (Array.isArray(r)) return r; }









var Form_Spinner = wp.components.Spinner;
var _wp$element = wp.element,
  Form_useContext = _wp$element.useContext,
  Form_useState = _wp$element.useState,
  Form_useEffect = _wp$element.useEffect;
function Form() {
  var context = Form_useContext(contexts_AppContext);
  var editData = context.editData,
    setEditData = context.setEditData,
    updatePlayer = context.updatePlayer,
    updating = context.updating,
    isDirty = context.isDirty;
  var type = editData.type,
    width_device = editData.width_device,
    _editData$skin = editData.skin,
    skin = _editData$skin === void 0 ? 'skin0' : _editData$skin;
  var _useState = Form_useState('tracks'),
    _useState2 = Form_slicedToArray(_useState, 2),
    tab = _useState2[0],
    setTab = _useState2[1];
  var _useState3 = Form_useState(width_device || 'desktop'),
    _useState4 = Form_slicedToArray(_useState3, 2),
    previewDevice = _useState4[0],
    setPreviewDevice = _useState4[1];
  var tabs = {
    tracks: 'podcast-player' === type ? wp.i18n.__('Episodes', 'soft-multimedia-player') : wp.i18n.__('Tracks', 'soft-multimedia-player'),
    skins: wp.i18n.__('Skins', 'soft-multimedia-player'),
    controls: wp.i18n.__('Controls', 'soft-multimedia-player'),
    appearance: wp.i18n.__('Appearance', 'soft-multimedia-player')
  };

  // Update skins based on config
  Form_useEffect(function () {
    var skins = (0,functions/* getSkins */.ro)(type);
    var currentSkin = skins[skin];
    if (currentSkin !== null && currentSkin !== void 0 && currentSkin.config) {
      setEditData(function (data) {
        return Form_objectSpread(Form_objectSpread({}, data), skin.config);
      });
    }
  }, [type]);
  Form_useEffect(function () {
    setPreviewDevice(editData.width_device || 'desktop');
  }, [width_device]);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-form"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-form-main"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-form-settings"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-tabs"
  }, Object.keys(tabs).map(function (tabKey, index) {
    return /*#__PURE__*/React.createElement("button", {
      key: index,
      type: 'button',
      className: "smp-form-tab ".concat(tab === tabKey ? 'active' : '', " tab-").concat(tabKey, " ").concat('tracks' === tabKey ? "tab-".concat(type) : ''),
      onClick: function onClick() {
        setTab(tabKey);
      }
    }, /*#__PURE__*/React.createElement("span", {
      className: "tab-icon"
    }), tabs[tabKey]);
  })), 'tracks' === tab && /*#__PURE__*/React.createElement(Tracks, null), 'skins' === tab && /*#__PURE__*/React.createElement(Skins, null), 'controls' === tab && /*#__PURE__*/React.createElement(Controls, null), 'appearance' === tab && /*#__PURE__*/React.createElement(Appearance, null), /*#__PURE__*/React.createElement("div", {
    className: "settings-footer"
  }, /*#__PURE__*/React.createElement("button", {
    "data-tooltip-content": wp.i18n.__('Previous step', "multimedia-player"),
    "data-tooltip-id": 'previous',
    type: 'button',
    disabled: 'tracks' === tab,
    className: "smp-btn ".concat('tracks' === tab ? 'disabled' : ''),
    onClick: function onClick() {
      var tabKeys = Object.keys(tabs);
      var tabIndex = tabKeys.findIndex(function (item) {
        return item === tab;
      });
      setTab(tabKeys[tabIndex - 1]);
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-left-alt2"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Back", "multimedia-player")), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "previous",
    effect: "solid",
    place: "top"
  })), /*#__PURE__*/React.createElement("button", {
    type: 'button',
    className: "smp-btn ".concat(isDirty ? '' : 'disabled'),
    onClick: function onClick() {
      return updatePlayer(editData);
    }
  }, updating ? /*#__PURE__*/React.createElement(Form_Spinner, null) : /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-saved"
  }), /*#__PURE__*/React.createElement("span", null, isDirty ? wp.i18n.__("Save", "multimedia-player") : wp.i18n.__("Saved", "multimedia-player"))), /*#__PURE__*/React.createElement("button", {
    "data-tooltip-content": wp.i18n.__('Next step', "multimedia-player"),
    "data-tooltip-id": 'next',
    type: 'button',
    disabled: 'appearance' === tab,
    className: "smp-btn ".concat('appearance' === tab ? 'disabled' : ''),
    onClick: function onClick() {
      var tabKeys = Object.keys(tabs);
      var tabIndex = tabKeys.findIndex(function (item) {
        return item === tab;
      });
      setTab(tabKeys[tabIndex + 1]);
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Next", "multimedia-player")), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-right-alt2"
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "next",
    effect: "solid",
    place: "top"
  })))), /*#__PURE__*/React.createElement("div", {
    className: "smp-form-sidebar"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-form-preview"
  }, /*#__PURE__*/React.createElement("div", {
    className: "preview-browser device-".concat(previewDevice)
  }, /*#__PURE__*/React.createElement("div", {
    className: "preview-browser-header"
  }, /*#__PURE__*/React.createElement("div", {
    className: "preview-browser-buttons"
  }, /*#__PURE__*/React.createElement("div", {
    className: "header-button close"
  }), /*#__PURE__*/React.createElement("div", {
    className: "header-button minimize"
  }), /*#__PURE__*/React.createElement("div", {
    className: "header-button maximize"
  })), /*#__PURE__*/React.createElement("div", {
    className: "preview-browser-url"
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-visibility"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Live Preview', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "preview-browser-devices"
  }, /*#__PURE__*/React.createElement("i", {
    onClick: function onClick() {
      return setPreviewDevice('desktop');
    },
    className: "dashicons dashicons-desktop ".concat('desktop' === previewDevice ? 'active' : '')
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-smartphone ".concat('mobile' === previewDevice ? 'active' : ''),
    onClick: function onClick() {
      return setPreviewDevice('mobile');
    }
  }))), /*#__PURE__*/React.createElement("div", {
    className: "browser-content"
  }, /*#__PURE__*/React.createElement(admin_Player/* default */.A, {
    data: Form_objectSpread(Form_objectSpread({}, editData), {}, {
      playerType: 'shortcode'
    }),
    isPreview: true,
    previewDevice: previewDevice
  })))))));
}
;// ./src/js/includes/Modal.js

var Modal_React = React,
  Modal_useEffect = Modal_React.useEffect,
  Modal_useRef = Modal_React.useRef;
var Modal = function Modal(_ref) {
  var isOpen = _ref.isOpen,
    onClose = _ref.onClose,
    children = _ref.children,
    className = _ref.className,
    _ref$target = _ref.target,
    target = _ref$target === void 0 ? document.body : _ref$target;
  var modalRef = Modal_useRef(null);

  // Dynamically handle the isList dependency to resize the modal content
  var sizeClass = (0,functions/* useResize */.st)(modalRef, !isOpen);

  // Close modal when clicking outside
  Modal_useEffect(function () {
    var handleOutsideClick = function handleOutsideClick(event) {
      var _modalRef$current, _document$getElementB;
      if (modalRef.current && !((_modalRef$current = modalRef.current) !== null && _modalRef$current !== void 0 && _modalRef$current.contains(event.target)) && !((_document$getElementB = document.getElementById('smp-pro-modal')) !== null && _document$getElementB !== void 0 && _document$getElementB.contains(event.target))) {
        onClose();
      }
    };
    if (isOpen) {
      document.addEventListener('mousedown', handleOutsideClick);
    } else {
      document.removeEventListener('mousedown', handleOutsideClick);
    }
    return function () {
      document.removeEventListener('mousedown', handleOutsideClick);
    };
  }, [isOpen, onClose]);
  if (!isOpen) {
    return null;
  }
  return ReactDOM.createPortal(/*#__PURE__*/React.createElement("div", {
    className: "smp-modal-overlay ".concat(className ? className : '', " ")
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-modal-content ".concat(sizeClass),
    ref: modalRef
  }, children)), target);
};
/* harmony default export */ const includes_Modal = (Modal);
;// ./src/js/components/App.js
function App_typeof(o) { "@babel/helpers - typeof"; return App_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, App_typeof(o); }
function App_toConsumableArray(r) { return App_arrayWithoutHoles(r) || App_iterableToArray(r) || App_unsupportedIterableToArray(r) || App_nonIterableSpread(); }
function App_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function App_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function App_arrayWithoutHoles(r) { if (Array.isArray(r)) return App_arrayLikeToArray(r); }
function App_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function App_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? App_ownKeys(Object(t), !0).forEach(function (r) { App_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : App_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function App_defineProperty(e, r, t) { return (r = App_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function App_toPropertyKey(t) { var i = App_toPrimitive(t, "string"); return "symbol" == App_typeof(i) ? i : i + ""; }
function App_toPrimitive(t, r) { if ("object" != App_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != App_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function App_slicedToArray(r, e) { return App_arrayWithHoles(r) || App_iterableToArrayLimit(r, e) || App_unsupportedIterableToArray(r, e) || App_nonIterableRest(); }
function App_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function App_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return App_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? App_arrayLikeToArray(r, a) : void 0; } }
function App_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function App_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function App_arrayWithHoles(r) { if (Array.isArray(r)) return r; }








var App_Spinner = wp.components.Spinner;
var App_React = React,
  App_useEffect = App_React.useEffect,
  App_useState = App_React.useState,
  App_useRef = App_React.useRef;
function App(_ref) {
  var _document$querySelect;
  var editId = _ref.editId,
    addType = _ref.addType;
  var _useState = App_useState([]),
    _useState2 = App_slicedToArray(_useState, 2),
    players = _useState2[0],
    setPlayers = _useState2[1];
  var _useState3 = App_useState(editId),
    _useState4 = App_slicedToArray(_useState3, 2),
    edit = _useState4[0],
    setEdit = _useState4[1];
  var _useState5 = App_useState(false),
    _useState6 = App_slicedToArray(_useState5, 2),
    updating = _useState6[0],
    setUpdating = _useState6[1];
  var _useState7 = App_useState(false),
    _useState8 = App_slicedToArray(_useState7, 2),
    loading = _useState8[0],
    setLoading = _useState8[1];
  var _useState9 = App_useState(addType),
    _useState0 = App_slicedToArray(_useState9, 2),
    openTypeModal = _useState0[0],
    setOpenTypeModal = _useState0[1];
  var _useState1 = App_useState(localStorage.getItem('smp_list_per_page') || 20),
    _useState10 = App_slicedToArray(_useState1, 2),
    perPage = _useState10[0],
    setPerPage = _useState10[1];
  var _useState11 = App_useState(localStorage.getItem('smp_list_sort_by') || 'id'),
    _useState12 = App_slicedToArray(_useState11, 2),
    sortBy = _useState12[0],
    setSortBy = _useState12[1];
  var _useState13 = App_useState(localStorage.getItem('smp_list_sort_order') || 'desc'),
    _useState14 = App_slicedToArray(_useState13, 2),
    sortOrder = _useState14[0],
    setSortOrder = _useState14[1];
  var _useState15 = App_useState(1),
    _useState16 = App_slicedToArray(_useState15, 2),
    page = _useState16[0],
    setPage = _useState16[1];
  var prevDataRef = App_useRef(null);
  var _useState17 = App_useState(null),
    _useState18 = App_slicedToArray(_useState17, 2),
    editData = _useState18[0],
    setEditData = _useState18[1];
  var _useState19 = App_useState(false),
    _useState20 = App_slicedToArray(_useState19, 2),
    isDirty = _useState20[0],
    setIsDirty = _useState20[1];
  var getPlayers = function getPlayers() {
    setLoading(true);
    return wp.ajax.post('smp_get_players', {
      nonce: smp.nonce
    }).done(function (players) {
      setPlayers(players);
    }).fail(function (error) {
      return console.log(error);
    }).always(function () {
      return setLoading(false);
    });
  };

  // Get Players on mount
  App_useEffect(function () {
    getPlayers().then(function () {
      if ((0,functions/* getIdParam */.Bz)()) {
        setEdit((0,functions/* getIdParam */.Bz)());
      }
    });
  }, []);
  var isMounted = (0,functions/* useMounted */.qK)();

  // Update editData
  App_useEffect(function () {
    if (!edit || !players.length) {
      setEditData(null);
      return;
    }
    var found = players.find(function (item) {
      return item.id == edit;
    });
    if (!found) {
      setEdit(false);
      return;
    }
    var editData = App_objectSpread(App_objectSpread({}, found['config']), {}, {
      id: parseInt(edit)
    });
    setEditData(editData);
    prevDataRef.current = editData;
  }, [players, edit]);

  // Update page title on edit
  App_useEffect(function () {
    if (edit) {
      document.title = wp.i18n.__('Edit Player - Multimedia Player', 'soft-multimedia-player');
    } else {
      document.title = wp.i18n.__('All Players - Multimedia Player', 'soft-multimedia-player');
    }
  }, [edit, editData]);

  // Update Player
  var updatePlayer = function updatePlayer(playerData) {
    var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    setUpdating(true);

    // If not isNew
    if (playerData.id) {
      // Update players list
      var index = players.findIndex(function (item) {
        return item.id == playerData.id;
      });
      players[index]['config'] = playerData;
      players[index]['status'] = typeof playerData.status === 'undefined' ? true : playerData.status;
      players[index]['title'] = playerData.title;
      setPlayers(players);
      setEditData(App_objectSpread({}, playerData));
      prevDataRef.current = App_objectSpread({}, playerData);
    } else {
      playerData['items'] = [{
        title: 'podcast-player' === playerData.type ? wp.i18n.__('Episode Title', 'soft-multimedia-player') : wp.i18n.__('Track Title', 'soft-multimedia-player'),
        thumbnail: 'video-player' === playerData.type ? '' : smp.pluginUrl + '/assets/images/placeholder.png'
      }];
    }
    var encodedData = (0,functions/* base64Encode */.KA)(JSON.stringify(playerData));
    return wp.ajax.post('smp_update_player', {
      data: encodedData,
      nonce: smp.nonce
    }).done(function (response) {
      // If is new
      if (!playerData.id) {
        var id = response.id,
          config = response.config;
        var newPlayers = [response].concat(App_toConsumableArray(players));
        setPlayers(newPlayers);
        setOpenTypeModal(false);
        if (!action) {
          setEdit(id);
          setEditData(config);
        }
        prevDataRef.current = config;
        return;
      }
      Swal.fire({
        text: wp.i18n.__("Player has been updated.", "soft-multimedia-player"),
        icon: 'success',
        timer: 2000,
        timerProgressBar: true,
        showConfirmButton: false,
        toast: true,
        position: 'top-end',
        customClass: {
          container: 'smp-swal save-settings-toast'
        }
      });
    }).fail(function (error) {
      console.error('Player update failed:', error);
      Swal.fire({
        text: wp.i18n.__("Something went wrong.", "soft-multimedia-player"),
        icon: 'error',
        timer: 2000,
        showConfirmButton: false,
        toast: true,
        position: 'top-end'
      });
    }).always(function () {
      setUpdating(false);
    });
  };

  // Delete Player
  var deletePlayer = function deletePlayer(id, isEdit) {
    return wp.ajax.post('smp_delete_player', {
      id: id,
      nonce: smp.nonce
    }).done(function () {
      setPlayers(function (players) {
        return players.filter(function (item) {
          return item.id != id;
        });
      });
      if (isEdit) {
        (0,functions/* removeIdParam */.J8)();
        setEdit(false);
      }
      Swal.fire({
        title: wp.i18n.__("Deleted!", "soft-multimedia-player"),
        text: wp.i18n.__("Player has been deleted.", "soft-multimedia-player"),
        icon: 'success',
        timer: 2000,
        showConfirmButton: false,
        toast: true,
        position: 'top-end',
        customClass: {
          container: 'smp-swal smp-swal-toast'
        }
      });
    }).fail(function (error) {
      console.log(error);
    });
  };
  var duplicatePlayer = function duplicatePlayer(playerIds) {
    playerIds.forEach(function (id) {
      var item = players.find(function (player) {
        return player.id === id;
      });
      var config = item.config,
        title = item.title;
      updatePlayer(App_objectSpread(App_objectSpread({}, config), {}, {
        id: '',
        title: "Copy of ".concat(title)
      }), true).then(function () {
        Swal.fire({
          title: wp.i18n.__('Success', 'multimedia-player'),
          text: wp.i18n.__('Player duplicated successfully', 'multimedia-player'),
          icon: 'success',
          toast: true,
          timer: 2000,
          showConfirmButton: false
        });
      });
    });
  };

  // Check if is changed
  App_useEffect(function () {
    if (!isMounted) return;
    setIsDirty(JSON.stringify(editData) !== JSON.stringify(prevDataRef.current));
  }, [editData, prevDataRef.current]);
  return /*#__PURE__*/React.createElement(contexts_AppContext.Provider, {
    value: {
      edit: edit,
      players: players,
      setEdit: setEdit,
      editData: editData,
      setEditData: setEditData,
      updatePlayer: updatePlayer,
      deletePlayer: deletePlayer,
      duplicatePlayer: duplicatePlayer,
      getPlayers: getPlayers,
      updating: updating,
      perPage: perPage,
      setPerPage: setPerPage,
      sortBy: sortBy,
      setSortBy: setSortBy,
      sortOrder: sortOrder,
      setSortOrder: setSortOrder,
      page: page,
      setPage: setPage,
      isDirty: isDirty,
      openTypeModal: openTypeModal,
      setOpenTypeModal: setOpenTypeModal,
      prevData: prevDataRef.current
    }
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-app"
  }, /*#__PURE__*/React.createElement(includes_Modal, {
    isOpen: openTypeModal,
    onClose: function onClose() {
      if ('new' === openTypeModal && !edit) {
        Swal.close();
      }
      setOpenTypeModal(false);
    },
    className: "player-types-modal ".concat(openTypeModal === 'init' ? 'modal-init' : openTypeModal === 'new' ? 'modal-new' : editId ? 'modal-update' : '', " "),
    target: ((_document$querySelect = document.querySelector('.smp-app')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.parentElement) || document.body
  }, /*#__PURE__*/React.createElement(Types, null)), /*#__PURE__*/React.createElement(Header, null), loading && /*#__PURE__*/React.createElement("div", {
    className: "loading-spinner"
  }, /*#__PURE__*/React.createElement(App_Spinner, null)), !loading && !edit && !players.length && /*#__PURE__*/React.createElement(App_Placeholder, {
    setOpenTypeModal: setOpenTypeModal
  }), !loading && !edit && !!players.length && /*#__PURE__*/React.createElement(List, null), !loading && edit && editData && /*#__PURE__*/React.createElement(Form, null)));
}
;// ./src/js/components/Settings/Header.js
var Header_Spinner = wp.components.Spinner;
function Header_Header(_ref) {
  var updateSettings = _ref.updateSettings,
    isUpdating = _ref.isUpdating;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-header"
  }, /*#__PURE__*/React.createElement("div", {
    className: "header-title"
  }, /*#__PURE__*/React.createElement("svg", {
    width: "44",
    height: "44",
    viewBox: "0 0 44 44",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, /*#__PURE__*/React.createElement("circle", {
    cx: "22",
    cy: "22",
    r: "22",
    fill: "#00BB45"
  }), /*#__PURE__*/React.createElement("g", {
    clipPath: "url(#clip0_2140_8682)"
  }, /*#__PURE__*/React.createElement("path", {
    d: "M17.469 31.5165C18.5654 30.42 19.6057 29.3705 20.6646 28.3396C20.749 28.2553 20.9458 28.2553 21.0863 28.2646C23.6634 28.4708 25.8282 27.6836 27.2714 25.472C28.649 23.3634 28.724 21.1049 27.4963 18.912C26.2593 16.691 24.2726 15.604 21.7236 15.7164C17.9469 15.8757 15.2761 19.1276 15.7447 22.8855C15.7634 23.0261 15.7728 23.2322 15.6884 23.3166C14.6295 24.3755 13.5611 25.4157 12.446 26.5122C12.2304 25.9031 12.0336 25.2939 11.7993 24.7129C11.7337 24.5442 11.5557 24.3474 11.3964 24.3099C9.80323 23.9538 10.0094 23.832 10 22.4544C10 21.8921 10.0094 21.3298 10 20.7676C9.99066 20.2896 10.2062 19.9335 10.6654 19.896C11.5182 19.8398 11.8649 19.39 12.0617 18.6028C12.221 17.9655 12.5678 17.3751 12.877 16.7754C12.9989 16.5317 13.0363 16.3443 12.8864 16.0913C12.221 15.0136 12.0524 15.0136 13.1675 13.9452C13.5986 13.5329 14.011 13.1112 14.4233 12.6895C14.7607 12.3427 15.1543 12.2303 15.5479 12.5489C16.1289 13.0268 16.6443 13.0081 17.2909 12.6145C17.8907 12.249 18.6029 12.0616 19.287 11.8367C19.5401 11.7523 19.6806 11.6493 19.7275 11.3869C20.0367 9.79373 20.2054 10.0186 21.5268 10.0093C22.1078 10.0093 22.6795 10.0186 23.2605 10.0093C23.7478 9.9999 24.0852 10.2342 24.1226 10.684C24.1882 11.4993 24.5912 11.8648 25.3784 12.0522C26.0438 12.2115 26.6529 12.6239 27.2995 12.8863C27.4682 12.9519 27.7306 12.9612 27.8805 12.8769C29.052 12.1928 29.0051 12.071 30.1109 13.2049C30.5045 13.6079 30.9075 14.0015 31.3011 14.3951C31.7228 14.8261 31.7978 15.0885 31.451 15.5477C31.0106 16.1288 30.9918 16.6161 31.3854 17.2533C31.7603 17.8718 31.9196 18.6122 32.2007 19.2775C32.2757 19.4462 32.4444 19.6524 32.6037 19.6899C34.1968 20.0553 34 20.1303 34.0094 21.5829C34.0094 22.1452 34 22.7074 34.0094 23.2697C34.0188 23.7289 33.8032 24.0663 33.3628 24.1038C32.4912 24.16 32.1445 24.6379 31.9383 25.4345C31.779 26.0717 31.4229 26.6621 31.123 27.2619C31.0012 27.4962 30.9825 27.6649 31.123 27.8992C31.8165 29.0237 31.9477 28.9956 30.8325 30.0827C30.4202 30.4856 30.0172 30.9074 29.6049 31.3103C29.1832 31.7227 28.9114 31.7976 28.4522 31.4415C27.8618 30.9823 27.3745 31.0104 26.7466 31.3947C26.1375 31.7508 25.4346 31.9476 24.7505 32.1725C24.5069 32.2568 24.3569 32.3412 24.3007 32.6129C23.9821 34.2061 23.8509 33.9999 22.4639 34.0093C21.9016 34.0093 21.3394 33.9999 20.7771 34.0093C20.2991 34.0186 19.943 33.8031 19.9055 33.3439C19.8399 32.5005 19.4089 32.1069 18.6029 31.9663C18.2281 31.882 17.8813 31.6758 17.469 31.5165Z",
    fill: "white"
  }), /*#__PURE__*/React.createElement("path", {
    d: "M22.0422 17.0659C22.3983 17.1128 22.7638 17.1128 23.1011 17.2346C23.3542 17.3189 23.6728 17.5251 23.7384 17.7407C23.804 17.9562 23.654 18.3123 23.476 18.5091C23.0543 19.0058 22.5576 19.4462 22.0984 19.9148C21.4612 20.5708 21.4237 21.4236 22.0047 21.9952C22.5763 22.5763 23.4291 22.5388 24.0851 21.9015C24.5537 21.4423 24.9941 20.955 25.4908 20.5239C25.6876 20.3553 26.0437 20.1959 26.2593 20.2615C26.4748 20.3271 26.7091 20.6458 26.7653 20.8894C27.6087 24.5255 24.4225 27.6462 20.777 26.7559C20.4116 26.6622 20.2148 26.7559 19.9711 26.9995C17.9 29.08 15.829 31.1604 13.7485 33.2315C12.7833 34.1874 11.5463 34.253 10.656 33.4189C9.84069 32.6505 9.76572 31.4041 10.4967 30.5419C10.6185 30.4013 10.7497 30.2701 10.8809 30.1296C12.9332 28.0772 14.9856 26.0249 17.0472 23.9726C17.2722 23.7477 17.3284 23.5603 17.244 23.2416C16.4194 20.1022 18.7809 17.0753 22.0422 17.0659Z",
    fill: "white"
  })), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
    id: "clip0_2140_8682"
  }, /*#__PURE__*/React.createElement("rect", {
    width: "24",
    height: "24",
    fill: "white",
    transform: "translate(10 10)"
  })))), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Multimedia Player Settings', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: 'smp-btn save-settings',
    onClick: updateSettings
  }, isUpdating ? /*#__PURE__*/React.createElement(Header_Spinner, null) : /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-saved"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Save Changes', 'soft-multimedia-player'))));
}
;// ./src/js/components/Settings/GeneralSettings.js
function GeneralSettings_typeof(o) { "@babel/helpers - typeof"; return GeneralSettings_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeneralSettings_typeof(o); }
function GeneralSettings_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function GeneralSettings_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? GeneralSettings_ownKeys(Object(t), !0).forEach(function (r) { GeneralSettings_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : GeneralSettings_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function GeneralSettings_defineProperty(e, r, t) { return (r = GeneralSettings_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function GeneralSettings_toPropertyKey(t) { var i = GeneralSettings_toPrimitive(t, "string"); return "symbol" == GeneralSettings_typeof(i) ? i : i + ""; }
function GeneralSettings_toPrimitive(t, r) { if ("object" != GeneralSettings_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != GeneralSettings_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
var GeneralSettings_RangeControl = wp.components.RangeControl;
function PlayerSettings(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var _data$volume = data.volume,
    volume = _data$volume === void 0 ? 80 : _data$volume;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/general.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('General Settings', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Default Volume', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(GeneralSettings_RangeControl, {
    value: volume,
    onChange: function onChange(volume) {
      return setData(function (data) {
        return GeneralSettings_objectSpread(GeneralSettings_objectSpread({}, data), {}, {
          volume: volume
        });
      });
    },
    min: 5,
    max: 100,
    step: 5,
    allowReset: true,
    resetFallbackValue: 80
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set the default initial volume level for the radio player.', 'soft-multimedia-player')))));
}
;// ./src/js/components/Settings/StatisticsSettings.js
function StatisticsSettings_typeof(o) { "@babel/helpers - typeof"; return StatisticsSettings_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, StatisticsSettings_typeof(o); }
function StatisticsSettings_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function StatisticsSettings_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? StatisticsSettings_ownKeys(Object(t), !0).forEach(function (r) { StatisticsSettings_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : StatisticsSettings_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function StatisticsSettings_defineProperty(e, r, t) { return (r = StatisticsSettings_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function StatisticsSettings_toPropertyKey(t) { var i = StatisticsSettings_toPrimitive(t, "string"); return "symbol" == StatisticsSettings_typeof(i) ? i : i + ""; }
function StatisticsSettings_toPrimitive(t, r) { if ("object" != StatisticsSettings_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != StatisticsSettings_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }


var StatisticsSettings_wp$components = wp.components,
  StatisticsSettings_FormToggle = StatisticsSettings_wp$components.FormToggle,
  StatisticsSettings_SelectControl = StatisticsSettings_wp$components.SelectControl;
function StatisticsSettings(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var isPro = !!smp.isPro;
  var _data$enableStats = data.enableStats,
    enableStats = _data$enableStats === void 0 ? false : _data$enableStats,
    _data$emailReport = data.emailReport,
    emailReport = _data$emailReport === void 0 ? false : _data$emailReport,
    _data$enableDashboard = data.enableDashboardWidget,
    enableDashboardWidget = _data$enableDashboard === void 0 ? false : _data$enableDashboard,
    _data$emailReportInte = data.emailReportInterval,
    emailReportInterval = _data$emailReportInte === void 0 ? 'weekly' : _data$emailReportInte,
    _data$reportingEmail = data.reportingEmail,
    reportingEmail = _data$reportingEmail === void 0 ? smp.adminEmail : _data$reportingEmail;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/statistics.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Statistics Settings', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Enable Statistics', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-id": "enableStats-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player'),
    className: "input-group ".concat(!isPro ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement(StatisticsSettings_FormToggle, {
    checked: isPro && enableStats,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)('Upgrade to PRO to enable statistics.');
        return;
      }
      setData(function (data) {
        return StatisticsSettings_objectSpread(StatisticsSettings_objectSpread({}, data), {}, {
          enableStats: !enableStats
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: "smp-tooltip",
    id: "enableStats-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Enable/disable the multimedia players playing statistics.', 'soft-multimedia-player')))), !!enableStats && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Enable Dashboard Widget', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-id": "enableDashboardWidget-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player'),
    className: "input-group ".concat(!isPro ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement(StatisticsSettings_FormToggle, {
    checked: isPro && enableDashboardWidget,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)('Upgrade to PRO to enable dashboard widget.');
        return;
      }
      setData(function (data) {
        return StatisticsSettings_objectSpread(StatisticsSettings_objectSpread({}, data), {}, {
          enableDashboardWidget: !enableDashboardWidget
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "enableDashboardWidget-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Enable/disable the multimedia players dashboard widget.', 'soft-multimedia-player')))), !!enableStats && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Enable Email Report', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-id": "emailReport-tooltip",
    "data-tooltip-content": wp.i18n.__('Pro Feature', 'soft-multimedia-player'),
    className: "input-group ".concat(!isPro ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement(StatisticsSettings_FormToggle, {
    checked: isPro && !!emailReport,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)('Upgrade to PRO to enable usage statistics.');
        return;
      }
      setData(function (data) {
        return StatisticsSettings_objectSpread(StatisticsSettings_objectSpread({}, data), {}, {
          emailReport: !emailReport
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "emailReport-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Enable/disable the statistics email reporting.', 'soft-multimedia-player')))), !!enableStats && !!emailReport && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Reporting Email', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-id": "reportingEmail-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player'),
    className: "input-group ".concat(!isPro ? 'multimedia-player-disabled' : '')
  }, /*#__PURE__*/React.createElement("input", {
    disabled: !isPro,
    value: reportingEmail,
    type: 'email',
    className: "smp-input-control",
    onChange: function onChange(e) {
      if (!isPro) {
        (0,ProModal/* default */.A)('Upgrade to PRO to enable statistics.');
        return;
      }
      setData(StatisticsSettings_objectSpread(StatisticsSettings_objectSpread({}, data), {}, {
        reportingEmail: e.target.value
      }));
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "reportingEmail-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Enter the email to receive the player statistics report.', 'soft-multimedia-player')))), !!enableStats && !!emailReport && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Email Report Interval', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-id": "emailReportInterval-tooltip",
    "data-tooltip-content": wp.i18n.__('Pro Feature', 'soft-multimedia-player'),
    className: "input-group ".concat(!isPro ? 'disabled' : '')
  }, /*#__PURE__*/React.createElement(StatisticsSettings_SelectControl, {
    disabled: !isPro,
    value: emailReportInterval,
    options: [{
      label: 'Daily',
      value: 'daily'
    }, {
      label: 'Weekly',
      value: 'weekly'
    }, {
      label: 'Monthly',
      value: 'monthly'
    }],
    onChange: function onChange(emailReportInterval) {
      if (!isPro) {
        (0,ProModal/* default */.A)('Upgrade to PRO to enable statistics.');
        return;
      }
      setData(function (data) {
        return StatisticsSettings_objectSpread(StatisticsSettings_objectSpread({}, data), {}, {
          emailReportInterval: emailReportInterval
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "emailReportInterval-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the email reporting interval.', 'soft-multimedia-player')))));
}
;// ./src/js/components/Settings/CustomCSS.js
function CustomCSS_typeof(o) { "@babel/helpers - typeof"; return CustomCSS_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CustomCSS_typeof(o); }
function CustomCSS_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function CustomCSS_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? CustomCSS_ownKeys(Object(t), !0).forEach(function (r) { CustomCSS_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : CustomCSS_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function CustomCSS_defineProperty(e, r, t) { return (r = CustomCSS_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function CustomCSS_toPropertyKey(t) { var i = CustomCSS_toPrimitive(t, "string"); return "symbol" == CustomCSS_typeof(i) ? i : i + ""; }
function CustomCSS_toPrimitive(t, r) { if ("object" != CustomCSS_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != CustomCSS_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }


var CustomCSS_React = React,
  CustomCSS_useEffect = CustomCSS_React.useEffect;
function CustomCSS(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var _smp = smp,
    isPro = _smp.isPro;
  var customCSS = data.customCSS;
  CustomCSS_useEffect(function () {
    var element = document.querySelector('.smp-editor');
    if (!element) return;
    var instance = wp.codeEditor.initialize(element, CustomCSS_objectSpread(CustomCSS_objectSpread({}, wp.codeEditor.defaultSettings), {}, {
      mode: 'css',
      wordWrap: true,
      tabSize: 2,
      autoComplete: {
        enable: true,
        showDescriptions: true,
        caseSensitive: true,
        autoTrigger: true,
        delay: 0,
        maxItems: 10,
        sortBy: 'score',
        maxLength: 0,
        maxResults: 10,
        highlightMatches: true,
        maxHighlightLength: 0,
        style: 'popup'
      },
      showGutter: true,
      showPrintMargin: true,
      highlightActiveLine: true,
      showLineNumbers: true,
      enableBasicAutocompletion: true,
      enableLiveAutocompletion: true,
      enableCodeFolding: true,
      enableCodeFormatting: true
    }));
    instance.codemirror.on('change', function (codemirror) {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use this feature.', 'soft-multimedia-player'));
        return;
      }
      setData(function (data) {
        return CustomCSS_objectSpread(CustomCSS_objectSpread({}, data), {}, {
          customCSS: codemirror.getValue()
        });
      });
    });
    return function () {
      instance.codemirror.off('change');
    };
  }, []);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/css.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Custom CSS', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field custom-css"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Add custom CSS for the Radio Players.', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content",
    "data-tooltip-id": "custom-css-tooltip",
    "data-tooltip-content": wp.i18n.__("Pro Feature", 'soft-multimedia-player')
  }, /*#__PURE__*/React.createElement("textarea", {
    value: customCSS,
    placeholder: "Enter custom CSS here...",
    className: "smp-editor ".concat(!isPro ? 'disabled' : ''),
    id: "smp-custom-css",
    rows: 20
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "custom-css-tooltip",
    className: "smp-tooltip",
    place: "right",
    variant: "warning",
    effect: "solid"
  })));
}
;// ./src/js/components/Settings/Tools.js
function Tools_typeof(o) { "@babel/helpers - typeof"; return Tools_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Tools_typeof(o); }
function Tools_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function Tools_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Tools_ownKeys(Object(t), !0).forEach(function (r) { Tools_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Tools_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function Tools_defineProperty(e, r, t) { return (r = Tools_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function Tools_toPropertyKey(t) { var i = Tools_toPrimitive(t, "string"); return "symbol" == Tools_typeof(i) ? i : i + ""; }
function Tools_toPrimitive(t, r) { if ("object" != Tools_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != Tools_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function Tools_slicedToArray(r, e) { return Tools_arrayWithHoles(r) || Tools_iterableToArrayLimit(r, e) || Tools_unsupportedIterableToArray(r, e) || Tools_nonIterableRest(); }
function Tools_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Tools_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Tools_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Tools_arrayLikeToArray(r, a) : void 0; } }
function Tools_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Tools_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Tools_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var Tools_wp$components = wp.components,
  Tools_SelectControl = Tools_wp$components.SelectControl,
  Tools_FormToggle = Tools_wp$components.FormToggle;
var Tools_React = React,
  Tools_useState = Tools_React.useState;
function Tools(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var _data$exportData = data.exportData,
    exportData = _data$exportData === void 0 ? 'all' : _data$exportData,
    autoSave = data.autoSave;
  var _useState = Tools_useState(false),
    _useState2 = Tools_slicedToArray(_useState, 2),
    isLoading = _useState2[0],
    setIsLoading = _useState2[1];
  var getExportData = function getExportData() {
    setIsLoading('export');
    wp.ajax.post('smp_get_export_data', {
      type: exportData,
      nonce: smp.nonce
    }).done(function (response) {
      var json = JSON.stringify(response);
      var blob = new Blob([json], {
        type: 'application/json'
      });
      var url = URL.createObjectURL(blob);
      var link = document.createElement('a');
      link.href = url;
      link.download = "smp-export-".concat(exportData.replace('_', '-'), "-").concat(new Date().toISOString().slice(0, 10), ".json");
      link.click();
      URL.revokeObjectURL(url);
    }).fail(function (error) {
      return console.log(error);
    }).always(function () {
      return setIsLoading(false);
    });
  };
  var importData = function importData() {
    //create file input
    var input = document.createElement('input');
    input.type = 'file';
    input.accept = 'application/json';
    input.onchange = function () {
      //get file
      var file = input.files[0];
      //read file
      var reader = new FileReader();
      reader.readAsText(file);
      reader.onload = function () {
        setIsLoading('import');

        //Get data
        var json = JSON.parse(reader.result);
        wp.ajax.post('smp_import_data', {
          data: json,
          nonce: smp.nonce
        }).done(function () {
          Swal.fire({
            title: wp.i18n.__('Imported!', 'soft-multimedia-player'),
            text: wp.i18n.__('Data imported successfully.', 'soft-multimedia-player'),
            icon: 'success',
            showConfirmButton: false,
            timer: 2500,
            timerProgressBar: true,
            toast: true,
            customClass: {
              container: 'smp-swal smp-swal-toast'
            }
          });
          if (json.settings) {
            setData(json.settings);
          }
        }).fail(function (error) {
          return console.log(error);
        }).always(function () {
          return setIsLoading(false);
        });
      };
    };

    //click file input
    input.click();
  };
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/tools.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Tools', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "setting-field-label"
  }, wp.i18n.__('Enable Auto-save', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content "
  }, /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(Tools_FormToggle, {
    checked: autoSave,
    onChange: function onChange() {
      return setData(Tools_objectSpread(Tools_objectSpread({}, data), {}, {
        autoSave: !autoSave
      }));
    }
  }))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Enable automatic saving when you change a setting', 'dracula-dark-mode')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", {
    className: "setting-field-label"
  }, wp.i18n.__("Export Data", "multimedia-player")), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement(Tools_SelectControl, {
    value: exportData,
    options: [{
      label: wp.i18n.__("Players", "multimedia-player"),
      value: 'players'
    }, {
      label: wp.i18n.__("Settings", "multimedia-player"),
      value: 'settings'
    }, {
      label: wp.i18n.__("Export All ( Players, Settings )", "multimedia-player"),
      value: 'all'
    }],
    onChange: function onChange(exportData) {
      setData(Tools_objectSpread(Tools_objectSpread({}, data), {}, {
        exportData: exportData
      }));
    },
    className: "smp-select-control"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Select the data you want to export.", "multimedia-player")), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn btn-primary",
    onClick: getExportData
  }, 'export' === isLoading ? /*#__PURE__*/React.createElement("div", {
    className: "rp-spinner"
  }) : /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Export", "multimedia-player"))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Export the selected data to a JSON file.", "multimedia-player")))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", {
    className: "setting-field-label"
  }, wp.i18n.__("Import Data", "multimedia-player")), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn btn-info",
    onClick: importData
  }, 'import' === isLoading ? /*#__PURE__*/React.createElement("div", {
    className: "rp-spinner"
  }) : /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-upload"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Import', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Select the exported JSON file you would like to import. Please note that the import will replace the current data", "multimedia-player")))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", {
    className: "setting-field-label"
  }, wp.i18n.__("Reset Settings", "multimedia-player")), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn btn-danger",
    onClick: function onClick() {
      Swal.fire({
        title: wp.i18n.__('Are you sure?', 'soft-multimedia-player'),
        text: wp.i18n.__('We recommend you to export your current settings before resetting them.', 'soft-multimedia-player'),
        icon: 'warning',
        showCancelButton: true,
        confirmButtonText: wp.i18n.__('Reset', 'soft-multimedia-player'),
        reverseButtons: true,
        showLoaderOnConfirm: true,
        customClass: {
          container: 'smp-swal'
        }
      }).then(function (result) {
        if (result.value) {
          setData({});
        }
      });
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-update"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__("Reset", "multimedia-player"))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__("Reset all settings to default.", "multimedia-player")))));
}
;// ./src/js/components/Settings/PlaylistSettings.js
function PlaylistSettings_typeof(o) { "@babel/helpers - typeof"; return PlaylistSettings_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PlaylistSettings_typeof(o); }
function PlaylistSettings_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function PlaylistSettings_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? PlaylistSettings_ownKeys(Object(t), !0).forEach(function (r) { PlaylistSettings_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : PlaylistSettings_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function PlaylistSettings_defineProperty(e, r, t) { return (r = PlaylistSettings_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function PlaylistSettings_toPropertyKey(t) { var i = PlaylistSettings_toPrimitive(t, "string"); return "symbol" == PlaylistSettings_typeof(i) ? i : i + ""; }
function PlaylistSettings_toPrimitive(t, r) { if ("object" != PlaylistSettings_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PlaylistSettings_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }


var PlaylistSettings_wp$components = wp.components,
  PlaylistSettings_RangeControl = PlaylistSettings_wp$components.RangeControl,
  PlaylistSettings_FormToggle = PlaylistSettings_wp$components.FormToggle,
  PlaylistSettings_ButtonGroup = PlaylistSettings_wp$components.ButtonGroup,
  PlaylistSettings_Button = PlaylistSettings_wp$components.Button;
var PlaylistSettings_isPro = !!smp.isPro;
function PlaylistSettings(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var _data$openPlaylist = data.openPlaylist,
    openPlaylist = _data$openPlaylist === void 0 ? true : _data$openPlaylist,
    _data$playlistHeight = data.playlistHeight,
    playlistHeight = _data$playlistHeight === void 0 ? 'custom' : _data$playlistHeight,
    _data$playlistHeightC = data.playlistHeightCustom,
    playlistHeightCustom = _data$playlistHeightC === void 0 ? 300 : _data$playlistHeightC;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/playlist.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Playlist Settings', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "setting-field-label"
  }, wp.i18n.__('Opened Playlist', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content "
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "open-playlist-tooltip",
    className: "".concat(!PlaylistSettings_isPro ? 'disabled' : '', " input-group")
  }, /*#__PURE__*/React.createElement(PlaylistSettings_FormToggle, {
    checked: PlaylistSettings_isPro && openPlaylist,
    onChange: function onChange() {
      if (!PlaylistSettings_isPro) {
        (0,ProModal/* default */.A)('Upgrade to PRO to use the station playlist.');
        return;
      }
      setData(function (data) {
        return PlaylistSettings_objectSpread(PlaylistSettings_objectSpread({}, data), {}, {
          openPlaylist: !openPlaylist
        });
      });
    }
  })), !PlaylistSettings_isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "open-playlist-tooltip",
    className: 'smp-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Enable to keep open the station playlist by default.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "setting-field-label"
  }, wp.i18n.__('Playlist Height', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content "
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    className: "".concat(!PlaylistSettings_isPro ? 'disabled' : '', " input-group"),
    "data-tooltip-id": "playlist-height-tooltip"
  }, /*#__PURE__*/React.createElement(PlaylistSettings_ButtonGroup, null, /*#__PURE__*/React.createElement(PlaylistSettings_Button, {
    isPrimary: playlistHeight === 'full',
    onClick: function onClick() {
      return setData(function (data) {
        return PlaylistSettings_objectSpread(PlaylistSettings_objectSpread({}, data), {}, {
          playlistHeight: 'full'
        });
      });
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Full', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement(PlaylistSettings_Button, {
    isPrimary: playlistHeight === 'custom',
    onClick: function onClick() {
      return setData(function (data) {
        return PlaylistSettings_objectSpread(PlaylistSettings_objectSpread({}, data), {}, {
          playlistHeight: 'custom'
        });
      });
    }
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Custom', 'soft-multimedia-player'))))), !PlaylistSettings_isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "playlist-height-tooltip",
    className: 'smp-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the height of the station playlist.', 'soft-multimedia-player')))), 'custom' === playlistHeight && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Playlist Custom Height', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(PlaylistSettings_RangeControl, {
    value: playlistHeightCustom,
    onChange: function onChange(playlistHeightCustom) {
      return setData(function (data) {
        return PlaylistSettings_objectSpread(PlaylistSettings_objectSpread({}, data), {}, {
          playlistHeightCustom: playlistHeightCustom
        });
      });
    },
    min: 0,
    max: 1000,
    step: 5,
    allowReset: true,
    resetFallbackValue: 300
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set the custom height of the playlist in px.', 'soft-multimedia-player'))))));
}
;// ./src/js/components/Settings/PopupSettings.js
function PopupSettings_typeof(o) { "@babel/helpers - typeof"; return PopupSettings_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PopupSettings_typeof(o); }
function PopupSettings_toConsumableArray(r) { return PopupSettings_arrayWithoutHoles(r) || PopupSettings_iterableToArray(r) || PopupSettings_unsupportedIterableToArray(r) || PopupSettings_nonIterableSpread(); }
function PopupSettings_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PopupSettings_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PopupSettings_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PopupSettings_arrayLikeToArray(r, a) : void 0; } }
function PopupSettings_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function PopupSettings_arrayWithoutHoles(r) { if (Array.isArray(r)) return PopupSettings_arrayLikeToArray(r); }
function PopupSettings_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PopupSettings_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function PopupSettings_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? PopupSettings_ownKeys(Object(t), !0).forEach(function (r) { PopupSettings_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : PopupSettings_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function PopupSettings_defineProperty(e, r, t) { return (r = PopupSettings_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function PopupSettings_toPropertyKey(t) { var i = PopupSettings_toPrimitive(t, "string"); return "symbol" == PopupSettings_typeof(i) ? i : i + ""; }
function PopupSettings_toPrimitive(t, r) { if ("object" != PopupSettings_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PopupSettings_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }


var PopupSettings_wp$components = wp.components,
  PopupSettings_RangeControl = PopupSettings_wp$components.RangeControl,
  PopupSettings_FormToggle = PopupSettings_wp$components.FormToggle,
  PopupSettings_SelectControl = PopupSettings_wp$components.SelectControl;
var PopupSettings_React = React,
  PopupSettings_useEffect = PopupSettings_React.useEffect;
function PopupSettings(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var isPro = !!smp.isPro;
  var players = smp.players;
  var playerList = [];
  if (isPro) {
    players.map(function (item) {
      playerList.push({
        value: item.id,
        label: item.title
      });
    });
  } else {
    playerList.push({
      label: wp.i18n.__("Select Player", "soft-multimedia-player"),
      value: 0
    });
  }
  var alwaysPopup = data.alwaysPopup,
    customPopupSize = data.customPopupSize,
    _data$popupWidth = data.popupWidth,
    popupWidth = _data$popupWidth === void 0 ? 450 : _data$popupWidth,
    _data$popupHeight = data.popupHeight,
    popupHeight = _data$popupHeight === void 0 ? 550 : _data$popupHeight,
    popupHeaderContent = data.popupHeaderContent,
    popupFooterContent = data.popupFooterContent,
    _data$popupTriggers = data.popupTriggers,
    popupTriggers = _data$popupTriggers === void 0 ? [] : _data$popupTriggers;
  PopupSettings_useEffect(function () {
    var config = {
      tinymce: {
        wpautop: true,
        toolbar1: 'formatselect,bold,italic,strikethrough,forecolor,backcolor,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,media,spellchecker,fullscreen,wp_adv',
        toolbar2: 'underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',
        plugins: 'lists,fullscreen, paste, wpautoresize, wpdialogs, wpeditimage, wpgallery, wplink, wptextpattern, wpview, wordpress, wpemoji,media,textcolor,hr',
        menubar: false,
        branding: false,
        height: 250,
        wp_adv_height: 48,
        setup: function setup(editor) {
          var id = editor.id;
          editor.on('change', function () {
            var content = editor.getContent();
            if (id === 'header-content-editor') {
              setData(PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
                popupHeaderContent: content
              }));
            } else if (id === 'footer-content-editor') {
              setData(PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
                popupFooterContent: content
              }));
            }
          });
        }
      },
      quicktags: {
        buttons: 'strong,em,link,block,del,ins,img,ul,ol,li,code,close'
      },
      mediaButtons: true
    };
    setTimeout(function () {
      ['header-content-editor', 'footer-content-editor'].forEach(function (id) {
        wp.editor.initialize(id, config);
      });
    }, 500);
    return function () {
      ['header-content-editor', 'footer-content-editor'].forEach(function (id) {
        if (document.getElementById(id)) {
          wp.editor.remove(id);
        }
      });
    };
  }, []);
  var updateTrigger = function updateTrigger(index, key, value) {
    setData(PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
      popupTriggers: [].concat(PopupSettings_toConsumableArray(popupTriggers.slice(0, index)), [PopupSettings_objectSpread(PopupSettings_objectSpread({}, popupTriggers[index]), {}, PopupSettings_defineProperty({}, key, value))], PopupSettings_toConsumableArray(popupTriggers.slice(index + 1)))
    }));
  };
  var removeTrigger = function removeTrigger(index) {
    var newTriggers = [].concat(PopupSettings_toConsumableArray(popupTriggers.slice(0, index)), PopupSettings_toConsumableArray(popupTriggers.slice(index + 1)));
    setData(PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
      popupTriggers: newTriggers
    }));
  };
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/popup.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Popup Settings', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Always Popup', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content "
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    className: "".concat(!isPro ? 'disabled pro-features' : '', " input-group")
  }, /*#__PURE__*/React.createElement(PopupSettings_FormToggle, {
    checked: isPro && alwaysPopup,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the popup player.', 'soft-multimedia-player'));
        return;
      }
      setData(function (data) {
        return PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
          alwaysPopup: !alwaysPopup
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: 'smp-tooltip',
    anchorSelect: ".pro-features",
    place: "left",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Turn it ON to play the player always in the popup window when the user clicks on the play button.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Customize Popup Player Size', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    className: "".concat(!isPro ? 'disabled pro-features' : '', " input-group")
  }, /*#__PURE__*/React.createElement(PopupSettings_FormToggle, {
    checked: isPro && !!customPopupSize,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the popup player size.', 'soft-multimedia-player'));
        return;
      }
      setData(function (data) {
        return PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
          customPopupSize: !customPopupSize
        });
      });
    }
  })), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Turn ON to customize the popup player width and height.', 'soft-multimedia-player')))), (!isPro || !!customPopupSize) && /*#__PURE__*/React.createElement("div", {
    className: "setting-field popup-size"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Popup Player Size', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "input-group"
  }, /*#__PURE__*/React.createElement(PopupSettings_RangeControl, {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "player-width",
    className: "smp-range-control ".concat(!isPro ? 'disabled' : ''),
    label: wp.i18n.__("Player Width", 'soft-multimedia-player'),
    value: popupWidth,
    onChange: function onChange(popupWidth) {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the popup player size.', 'soft-multimedia-player'));
        return;
      }
      setData(function (data) {
        return PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
          popupWidth: popupWidth
        });
      });
    },
    min: 100,
    max: 1000,
    step: 5,
    allowReset: true,
    resetFallbackValue: 450
  }), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "player-width",
    className: 'smp-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement(PopupSettings_RangeControl, {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "player-height",
    className: "smp-range-control ".concat(!isPro ? 'disabled' : ''),
    label: wp.i18n.__("Player Height", 'soft-multimedia-player'),
    value: popupHeight,
    onChange: function onChange(popupHeight) {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the popup player size.', 'soft-multimedia-player'));
        return;
      }
      setData(function (data) {
        return PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
          popupHeight: popupHeight
        });
      });
    },
    min: 100,
    max: 1000,
    step: 5,
    allowReset: true,
    resetFallbackValue: 550
  }), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "player-height",
    className: 'smp-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field field-popup-triggers"
  }, /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "popup-triggers"
  }, /*#__PURE__*/React.createElement("h3", null, wp.i18n.__('Popup Triggers', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Select the elements that will trigger the popup player.', 'soft-multimedia-player')), popupTriggers.map(function (triger, index) {
    var selector = triger.selector,
      player = triger.player;
    return /*#__PURE__*/React.createElement("div", {
      "data-tooltip-content": !isPro ? wp.i18n.__('PRO Feature', 'soft-multimedia-player') : '',
      "data-tooltip-id": "trigger-group",
      className: "trigger-group",
      onClick: function onClick() {
        if (!isPro) {
          (0,ProModal/* default */.A)();
        }
      },
      key: index
    }, /*#__PURE__*/React.createElement("div", {
      className: "group-item"
    }, index === 0 && /*#__PURE__*/React.createElement("div", {
      className: "group-item-header"
    }, /*#__PURE__*/React.createElement("span", {
      className: "header-title"
    }, wp.i18n.__('Element Selector', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
      className: "input-group"
    }, /*#__PURE__*/React.createElement("input", {
      type: "text",
      placeholder: "Enter CSS Selector (e.g. .my-class, #my-id)",
      value: selector,
      onChange: function onChange(e) {
        return updateTrigger(index, 'selector', e.target.value);
      }
    }))), /*#__PURE__*/React.createElement("div", {
      className: "group-item"
    }, index === 0 && /*#__PURE__*/React.createElement("div", {
      className: "group-item-header"
    }, /*#__PURE__*/React.createElement("span", {
      className: "header-title"
    }, wp.i18n.__('Select Player', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
      className: "input-group"
    }, /*#__PURE__*/React.createElement(PopupSettings_SelectControl, {
      isDisabled: !isPro,
      value: player,
      options: playerList,
      onChange: function onChange(value) {
        if (!isPro) {
          (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the Popup Player.', 'soft-multimedia-player'));
          return;
        }
        updateTrigger(index, 'player', value);
      },
      __next40pxDefaultSize: true,
      __nextHasNoMarginBottom: true
    }))), /*#__PURE__*/React.createElement("button", {
      type: "button",
      className: "smp-btn btn-danger",
      onClick: function onClick() {
        return removeTrigger(index);
      }
    }, /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-trash"
    })));
  }), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    variant: "warning",
    id: "trigger-group",
    effect: "solid",
    place: "left",
    className: 'multimedia-player-tooltip'
  }), /*#__PURE__*/React.createElement("button", {
    "data-tooltip-content": !isPro ? wp.i18n.__('PRO Feature', 'soft-multimedia-player') : '',
    "data-tooltip-id": "popup-trigger-add",
    type: "button",
    className: "smp-btn add-group ".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setData(PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
        popupTriggers: [].concat(PopupSettings_toConsumableArray(popupTriggers), [{
          selector: '',
          player: playerList[0].value
        }])
      }));
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-plus-alt2"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Add New Trigger', 'soft-multimedia-player'))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "popup-trigger-add",
    variant: "warning",
    effect: "solid",
    place: "right",
    className: 'smp-tooltip'
  })))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field field-editor"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Popup Header Content', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("p", {
    className: 'description'
  }, wp.i18n.__('Add any custom content to the popup header. You can use HTML tags.', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "header-content-editor-tooltip",
    className: "content-editor-wrap ".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the popup player.', 'soft-multimedia-player'));
        return;
      }
    }
  }, /*#__PURE__*/React.createElement("textarea", {
    value: popupHeaderContent,
    id: 'header-content-editor',
    onChange: function onChange(e) {
      setData(function (data) {
        return PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
          popupHeaderContent: e.target.value
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "header-content-editor-tooltip",
    className: 'multimedia-player-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field field-editor"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Popup Footer Content', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("p", {
    className: 'description'
  }, wp.i18n.__('Add any custom content to the popup footer. You can use HTML tags.', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "footer-content-editor-tooltip",
    className: "content-editor-wrap ".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the popup player.', 'soft-multimedia-player'));
        return;
      }
    }
  }, /*#__PURE__*/React.createElement("textarea", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    className: "content-editor ".concat(!isPro ? 'disabled' : ''),
    value: popupFooterContent,
    id: 'footer-content-editor',
    onChange: function onChange(e) {
      setData(function (data) {
        return PopupSettings_objectSpread(PopupSettings_objectSpread({}, data), {}, {
          popupFooterContent: e.target.value
        });
      });
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "footer-content-editor-tooltip",
    className: 'multimedia-player-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }))));
}
;// ./src/js/components/Settings/StickySettings.js
function StickySettings_typeof(o) { "@babel/helpers - typeof"; return StickySettings_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, StickySettings_typeof(o); }
function StickySettings_toConsumableArray(r) { return StickySettings_arrayWithoutHoles(r) || StickySettings_iterableToArray(r) || StickySettings_unsupportedIterableToArray(r) || StickySettings_nonIterableSpread(); }
function StickySettings_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function StickySettings_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return StickySettings_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? StickySettings_arrayLikeToArray(r, a) : void 0; } }
function StickySettings_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function StickySettings_arrayWithoutHoles(r) { if (Array.isArray(r)) return StickySettings_arrayLikeToArray(r); }
function StickySettings_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function StickySettings_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function StickySettings_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? StickySettings_ownKeys(Object(t), !0).forEach(function (r) { StickySettings_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : StickySettings_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function StickySettings_defineProperty(e, r, t) { return (r = StickySettings_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function StickySettings_toPropertyKey(t) { var i = StickySettings_toPrimitive(t, "string"); return "symbol" == StickySettings_typeof(i) ? i : i + ""; }
function StickySettings_toPrimitive(t, r) { if ("object" != StickySettings_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != StickySettings_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }




var StickySettings_wp$components = wp.components,
  StickySettings_FormToggle = StickySettings_wp$components.FormToggle,
  StickySettings_SelectControl = StickySettings_wp$components.SelectControl,
  StickySettings_Radio = StickySettings_wp$components.__experimentalRadio,
  StickySettings_RadioGroup = StickySettings_wp$components.__experimentalRadioGroup;
function StickySettings(_ref) {
  var data = _ref.data,
    setData = _ref.setData;
  var excludeList = [];
  var playerList = [{
    label: wp.i18n.__("None", "soft-multimedia-player"),
    value: 0
  }];
  var isPro = !!smp.isPro;
  var _smp = smp,
    multimediaPlayerExcludeList = _smp.multimediaPlayerExcludeList,
    players = _smp.players;
  if (isPro && typeof multimediaPlayerExcludeList !== 'undefined') {
    Object.keys(multimediaPlayerExcludeList).forEach(function (key) {
      var options = multimediaPlayerExcludeList[key].options;
      excludeList.push({
        label: multimediaPlayerExcludeList[key].label,
        options: Object.keys(options).map(function (key) {
          return {
            label: options[key],
            value: key
          };
        })
      });
    });
    players.map(function (item) {
      playerList.push({
        value: item.id,
        label: item.title
      });
    });
  }
  var allOptions = excludeList.reduce(function (acc, cur) {
    return acc.concat(cur.options);
  }, []);
  var _data$excludePages = data.excludePages,
    excludePages = _data$excludePages === void 0 ? [] : _data$excludePages,
    _data$excludeAll = data.excludeAll,
    excludeAll = _data$excludeAll === void 0 ? false : _data$excludeAll,
    _data$excludeExceptPa = data.excludeExceptPages,
    excludeExceptPages = _data$excludeExceptPa === void 0 ? [] : _data$excludeExceptPa,
    stickyPlayer = data.stickyPlayer,
    alwaysSticky = data.alwaysSticky,
    _data$stickyStyle = data.stickyStyle,
    stickyStyle = _data$stickyStyle === void 0 ? 'fullwidth' : _data$stickyStyle,
    _data$floatingPositio = data.floatingPosition,
    floatingPosition = _data$floatingPositio === void 0 ? 'bottom-right' : _data$floatingPositio,
    _data$stickyPosition = data.stickyPosition,
    stickyPosition = _data$stickyPosition === void 0 ? 'bottom' : _data$stickyPosition,
    _data$displayOnMobile = data.displayOnMobile,
    displayOnMobile = _data$displayOnMobile === void 0 ? true : _data$displayOnMobile,
    _data$minimizePlayerI = data.minimizePlayerImage,
    minimizePlayerImage = _data$minimizePlayerI === void 0 ? smp.pluginUrl + '/assets/images/minimize.png' : _data$minimizePlayerI,
    _data$draggableFloati = data.draggableFloating,
    draggableFloating = _data$draggableFloati === void 0 ? true : _data$draggableFloati,
    _data$stickyTriggers = data.stickyTriggers,
    stickyTriggers = _data$stickyTriggers === void 0 ? [] : _data$stickyTriggers;
  var excludeExceptPagesValue = !!allOptions.length && excludeExceptPages.map(function (item) {
    var foundOption = allOptions.find(function (option) {
      return option.value === item.toString();
    });
    return {
      value: item,
      label: (foundOption === null || foundOption === void 0 ? void 0 : foundOption.label) || ''
    };
  });
  var excludePagesValue = !!allOptions.length && excludePages.map(function (item) {
    var foundOption = allOptions.find(function (option) {
      return option.value === item.toString();
    });
    return {
      value: item,
      label: (foundOption === null || foundOption === void 0 ? void 0 : foundOption.label) || ''
    };
  });
  var updateTrigger = function updateTrigger(index, key, value) {
    setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
      stickyTriggers: [].concat(StickySettings_toConsumableArray(stickyTriggers.slice(0, index)), [StickySettings_objectSpread(StickySettings_objectSpread({}, stickyTriggers[index]), {}, StickySettings_defineProperty({}, key, value))], StickySettings_toConsumableArray(stickyTriggers.slice(index + 1)))
    }));
  };
  var removeTrigger = function removeTrigger(index) {
    var newTriggers = [].concat(StickySettings_toConsumableArray(stickyTriggers.slice(0, index)), StickySettings_toConsumableArray(stickyTriggers.slice(index + 1)));
    setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
      stickyTriggers: newTriggers
    }));
  };
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-tab-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "settings-header"
  }, /*#__PURE__*/React.createElement("img", {
    src: "".concat(smp.pluginUrl, "/assets/images/settings/sticky.svg")
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Sticky Player Settings', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, alwaysSticky ? /*#__PURE__*/React.createElement("h4", {
    className: "setting-field-label"
  }, wp.i18n.__('Default Sticky Player', 'soft-multimedia-player')) : /*#__PURE__*/React.createElement("h4", {
    className: "setting-field-label"
  }, wp.i18n.__('Sticky Player', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "sticky-player",
    className: "".concat(!isPro ? 'disabled pro-disabled' : '', " input-group"),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use Sticky Player.', 'soft-multimedia-player'));
      }
    }
  }, /*#__PURE__*/React.createElement(StickySettings_SelectControl, {
    isDisabled: !isPro,
    value: stickyPlayer,
    options: playerList,
    onChange: function onChange(value) {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to customize the sticky player.', 'soft-multimedia-player'));
        return;
      }
      setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        stickyPlayer: value
      }));
    },
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: 'smp-tooltip',
    id: "sticky-player",
    place: "left",
    variant: "warning",
    effect: "solid"
  }), alwaysSticky ? /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the default sticky player to use.', 'soft-multimedia-player')) : /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the player to display as the sticky player.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Sticky Player Style', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "sticky-style",
    className: "".concat(!isPro ? 'disabled' : '', " input-group")
  }, /*#__PURE__*/React.createElement(StickySettings_RadioGroup, {
    label: wp.i18n.__('Sticky Player Style', 'soft-multimedia-player'),
    checked: stickyStyle,
    onChange: function onChange(value) {
      if (!isPro) {
        (0,ProModal/* default */.A)(__('Upgrade to PRO to customize the sticky player style.', 'soft-multimedia-player'));
        return;
      }
      setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        stickyStyle: value
      }));
    },
    className: "smp-radio-group"
  }, /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "fullwidth"
  }, wp.i18n.__('Fullwidth', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "mini-fullwidth"
  }, wp.i18n.__('Mini Fullwidth', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "floating"
  }, wp.i18n.__('Floating', 'soft-multimedia-player')))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: 'smp-tooltip',
    id: "sticky-style",
    place: "left",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Select the sticky player style.', 'soft-multimedia-player')))), isPro && stickyStyle !== 'floating' && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Sticky Player Position', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement(StickySettings_RadioGroup, {
    label: wp.i18n.__('Sticky Player Position', 'soft-multimedia-player'),
    checked: stickyPosition,
    onChange: function onChange(value) {
      return setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        stickyPosition: value
      }));
    },
    className: "smp-radio-group"
  }, /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "top"
  }, wp.i18n.__('Top', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "bottom"
  }, wp.i18n.__('Bottom', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set the fullwidth sticky player position.', 'soft-multimedia-player')))), isPro && stickyStyle === 'floating' && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Floating Position', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement(StickySettings_RadioGroup, {
    label: wp.i18n.__('Floating Position', 'soft-multimedia-player'),
    checked: floatingPosition,
    onChange: function onChange(value) {
      return setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        floatingPosition: value
      }));
    },
    className: "smp-radio-group"
  }, /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "top-left"
  }, wp.i18n.__('Top Left', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "top-right"
  }, wp.i18n.__('Top Right', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "bottom-left"
  }, wp.i18n.__('Bottom Left', 'soft-multimedia-player')), /*#__PURE__*/React.createElement(StickySettings_Radio, {
    value: "bottom-right"
  }, wp.i18n.__('Bottom Right', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Set the floating sticky player position.', 'soft-multimedia-player')))), isPro && stickyStyle === 'floating' && /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Draggable Floating Player', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "draggable-floating",
    className: "".concat(!isPro ? 'disabled' : '', " input-group")
  }, /*#__PURE__*/React.createElement(StickySettings_FormToggle, {
    checked: draggableFloating,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to make the floating player draggable.', 'soft-multimedia-player'));
        return;
      }
      setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        draggableFloating: !draggableFloating
      }));
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    className: 'smp-tooltip',
    id: "draggable-floating",
    place: "left",
    variant: "warning",
    effect: "solid"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Make the floating sticky player draggable to let your users move it around the screen.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Display On Mobile', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": "PRO Feature",
    "data-tooltip-id": "mobile-tooltip",
    className: "".concat(!isPro ? 'disabled' : '', " input-group")
  }, /*#__PURE__*/React.createElement(StickySettings_FormToggle, {
    checked: displayOnMobile,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the sticky player.', 'soft-multimedia-player'));
        return;
      }
      setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        displayOnMobile: !displayOnMobile
      }));
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "mobile-tooltip",
    place: "right",
    effect: "solid",
    variant: "warning"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Display the sticky player on mobile devices.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field exclude-field"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Exclude Pages', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": wp.i18n.__('PRO Feature', 'soft-multimedia-player'),
    "data-tooltip-id": "exclude-pages",
    className: "".concat(!isPro ? 'disabled' : '', " input-group"),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use Sticky Player.', 'soft-multimedia-player'));
      }
    }
  }, /*#__PURE__*/React.createElement("div", {
    className: "exclude-field-input"
  }, /*#__PURE__*/React.createElement(StateManagedSelect$1, {
    isMulti: true,
    isDisabled: !!excludeAll,
    value: excludePagesValue,
    options: excludeList,
    onChange: function onChange(selected) {
      return setData(function (data) {
        return StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
          excludePages: selected.map(function (item) {
            return item.value.toString();
          })
        });
      });
    },
    className: "smp-select",
    classNamePrefix: "smp-select"
  }), /*#__PURE__*/React.createElement("span", {
    className: "description"
  }, wp.i18n.__('Select the posts/pages, where the sticky player will be hidden.', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "exclude-field-all"
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
    className: "exclude-field-all-label"
  }, wp.i18n.__("Exclude All : ", "soft-multimedia-player"), " "), /*#__PURE__*/React.createElement(StickySettings_FormToggle, {
    checked: excludeAll,
    onChange: function onChange() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use Sticky Player', 'soft-multimedia-player'));
        return;
      }
      setData(function (data) {
        return StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
          excludeAll: !excludeAll
        });
      });
    }
  })), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
    className: "exclude-field-all-label"
  }, wp.i18n.__("Except : ", "soft-multimedia-player")), /*#__PURE__*/React.createElement(StateManagedSelect$1, {
    isMulti: true,
    isDisabled: !excludeAll,
    value: excludeExceptPagesValue,
    options: excludeList,
    onChange: function onChange(selected) {
      return setData(function (data) {
        return StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
          excludeExceptPages: selected.map(function (item) {
            return item.value.toString();
          })
        });
      });
    },
    className: "smp-select",
    classNamePrefix: "smp-select"
  })), /*#__PURE__*/React.createElement("span", {
    className: "description"
  }, wp.i18n.__('When Excluded All, the sticky player will only show on the exceptions posts/pages.', 'soft-multimedia-player')))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "exclude-pages",
    className: 'smp-tooltip',
    place: "left",
    variant: "warning",
    effect: "solid"
  }))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field field-minimize-player-image"
  }, /*#__PURE__*/React.createElement("label", null, wp.i18n.__('Minimized Player Image', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    "data-tooltip-content": "PRO Feature",
    className: "".concat(!isPro ? 'disabled pro-disabled' : '', " input-group"),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the sticky player.', 'soft-multimedia-player'));
      }
    }
  }, /*#__PURE__*/React.createElement(Uploader, {
    media: minimizePlayerImage,
    onChange: function onChange(minimizePlayerImage) {
      return setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        minimizePlayerImage: minimizePlayerImage
      }));
    }
  })), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    place: "left",
    effect: "solid",
    variant: "warning"
  }), /*#__PURE__*/React.createElement("p", {
    className: "description"
  }, wp.i18n.__('Show the image when the sticky player is in minimized state.', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "setting-field field-popup-triggers"
  }, /*#__PURE__*/React.createElement("div", {
    className: "setting-field-content"
  }, /*#__PURE__*/React.createElement("div", {
    className: "popup-triggers"
  }, /*#__PURE__*/React.createElement("h3", null, wp.i18n.__('Sticky Triggers', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("p", null, wp.i18n.__('Select the elements that will trigger the sticky player.', 'soft-multimedia-player')), stickyTriggers.map(function (triger, index) {
    var selector = triger.selector,
      player = triger.player;
    return /*#__PURE__*/React.createElement("div", {
      "data-tooltip-content": !isPro ? wp.i18n.__('PRO Feature', 'soft-multimedia-player') : '',
      "data-tooltip-id": "trigger-group",
      className: "trigger-group",
      onClick: function onClick() {
        if (!isPro) {
          (0,ProModal/* default */.A)();
        }
      },
      key: index
    }, /*#__PURE__*/React.createElement("div", {
      className: "group-item"
    }, index === 0 && /*#__PURE__*/React.createElement("div", {
      className: "group-item-header"
    }, /*#__PURE__*/React.createElement("span", {
      className: "header-title"
    }, wp.i18n.__('Element Selector', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
      className: "input-group"
    }, /*#__PURE__*/React.createElement("input", {
      type: "text",
      placeholder: "Enter CSS Selector (e.g. .my-class, #my-id)",
      value: selector,
      onChange: function onChange(e) {
        return updateTrigger(index, 'selector', e.target.value);
      }
    }))), /*#__PURE__*/React.createElement("div", {
      className: "group-item"
    }, index === 0 && /*#__PURE__*/React.createElement("div", {
      className: "group-item-header"
    }, /*#__PURE__*/React.createElement("span", {
      className: "header-title"
    }, wp.i18n.__('Select Player', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
      className: "input-group"
    }, /*#__PURE__*/React.createElement(StickySettings_SelectControl, {
      isDisabled: !isPro,
      value: player,
      options: playerList,
      onChange: function onChange(value) {
        if (!isPro) {
          (0,ProModal/* default */.A)(wp.i18n.__('Upgrade to PRO to use the Popup Player.', 'soft-multimedia-player'));
          return;
        }
        updateTrigger(index, 'player', value);
      },
      __next40pxDefaultSize: true,
      __nextHasNoMarginBottom: true
    }))), /*#__PURE__*/React.createElement("button", {
      type: "button",
      className: "smp-btn btn-danger",
      onClick: function onClick() {
        return removeTrigger(index);
      }
    }, /*#__PURE__*/React.createElement("i", {
      className: "dashicons dashicons-trash"
    })));
  }), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    variant: "warning",
    id: "trigger-group",
    effect: "solid",
    place: "left",
    className: 'smp-tooltip'
  }), /*#__PURE__*/React.createElement("button", {
    "data-tooltip-content": !isPro ? wp.i18n.__('PRO Feature', 'soft-multimedia-player') : '',
    "data-tooltip-id": "trigger-group-btn",
    type: "button",
    className: "smp-btn add-group ".concat(!isPro ? 'disabled' : ''),
    onClick: function onClick() {
      if (!isPro) {
        (0,ProModal/* default */.A)();
        return;
      }
      setData(StickySettings_objectSpread(StickySettings_objectSpread({}, data), {}, {
        stickyTriggers: [].concat(StickySettings_toConsumableArray(stickyTriggers), [{
          selector: '',
          player: playerList[0].value
        }])
      }));
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-plus-alt2"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Add New Trigger', 'soft-multimedia-player'))), !isPro && /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "trigger-group-btn",
    variant: "warning",
    effect: "solid",
    place: "right",
    className: 'smp-tooltip'
  })))));
}
;// ./src/js/components/Settings.js
function Settings_slicedToArray(r, e) { return Settings_arrayWithHoles(r) || Settings_iterableToArrayLimit(r, e) || Settings_unsupportedIterableToArray(r, e) || Settings_nonIterableRest(); }
function Settings_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Settings_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Settings_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Settings_arrayLikeToArray(r, a) : void 0; } }
function Settings_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Settings_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Settings_arrayWithHoles(r) { if (Array.isArray(r)) return r; }









var Settings_React = React,
  Settings_useState = Settings_React.useState,
  Settings_useEffect = Settings_React.useEffect,
  Settings_useRef = Settings_React.useRef;
function Settings() {
  var _useState = Settings_useState(smp.settings || {}),
    _useState2 = Settings_slicedToArray(_useState, 2),
    data = _useState2[0],
    setData = _useState2[1];

  // Fetch the tab parameter from the URL
  var urlParams = new URLSearchParams(window.location.search);
  var tabFromUrl = urlParams.get('tab');

  // Fallback to local storage and then to default values if necessary
  var savedTab = localStorage.getItem('smp_settings_tab');
  savedTab = !savedTab || 'player' === savedTab ? 'general' : savedTab;

  // Prioritize URL parameter, then local storage, and finally the default value
  var initialTab = tabFromUrl || savedTab;
  var _useState3 = Settings_useState(initialTab),
    _useState4 = Settings_slicedToArray(_useState3, 2),
    tab = _useState4[0],
    setTab = _useState4[1];
  var _useState5 = Settings_useState(false),
    _useState6 = Settings_slicedToArray(_useState5, 2),
    isUpdating = _useState6[0],
    setIsUpdating = _useState6[1];
  var updateSettings = function updateSettings() {
    setIsUpdating(true);
    wp.ajax.post('smp_update_settings', {
      data: data,
      nonce: smp.nonce
    }).done(function () {
      Swal.fire({
        icon: 'success',
        title: wp.i18n.__('Settings saved successfully', 'soft-multimedia-player'),
        showConfirmButton: false,
        timer: 2000,
        toast: true,
        position: 'top-end',
        customClass: {
          container: 'smp-swal smp-swal-toast'
        }
      });
    }).fail(function (error) {
      console.log(error);
      Swal.fire({
        icon: 'error',
        title: 'Something went wrong',
        showConfirmButton: false,
        timer: 1500,
        toast: true,
        position: 'top-end'
      });
    }).always(function () {
      setIsUpdating(false);
    });
  };
  var tabs = [{
    key: 'general',
    title: wp.i18n.__('General Settings', 'soft-multimedia-player')
  }, {
    key: 'sticky',
    title: wp.i18n.__('Sticky Player Settings', 'soft-multimedia-player')
  }, {
    key: 'popup',
    title: wp.i18n.__('Popup Player Settings', 'soft-multimedia-player')
  }, {
    key: 'playlist',
    title: wp.i18n.__('Playlist Settings', 'soft-multimedia-player')
  }, {
    key: 'statistics',
    title: wp.i18n.__('Statistics Settings', 'soft-multimedia-player')
  }, {
    key: 'css',
    title: wp.i18n.__('Custom CSS', 'soft-multimedia-player')
  }, {
    key: 'tools',
    title: wp.i18n.__('Tools', 'soft-multimedia-player')
  }];
  Settings_useEffect(function () {
    localStorage.setItem('smp_settings_tab', tab);
    if (smp.showReviewPopup) {
      setTimeout(function () {
        (0,functions/* showReviewPopup */.uB)();
      }, 5000);
    }
  }, [tab]);

  // Automatically save the settings when the data is updated
  var prevDataRef = Settings_useRef(data);
  var isMounted = (0,functions/* useMounted */.qK)();
  Settings_useEffect(function () {
    if (!isMounted || !data.autoSave) return;
    var delay = 100;

    // Get the previous data state from the ref
    var prevData = prevDataRef.current;

    // Check which data key has been changed
    for (var key in data) {
      if (data[key] !== prevData[key]) {
        if (['volume', 'customCSS'].includes(key)) {
          return;
        }
        if (['reportingEmail'].includes(key)) {
          delay = 2000;
        }
        break;
      }
    }

    // Update the ref with the current data state
    prevDataRef.current = data;
    var handler = setTimeout(function () {
      updateSettings();
    }, delay);
    return function () {
      return clearTimeout(handler);
    };
  }, [data]);
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header_Header, {
    updateSettings: updateSettings,
    isUpdating: isUpdating
  }), /*#__PURE__*/React.createElement("div", {
    className: "smp-settings-menu"
  }, tabs.map(function (_ref) {
    var key = _ref.key,
      title = _ref.title,
      icon = _ref.icon;
    return /*#__PURE__*/React.createElement("div", {
      key: key,
      className: "menu-item ".concat(key, " ").concat(tab === key ? 'active' : ''),
      onClick: function onClick() {
        return setTab(key);
      }
    }, /*#__PURE__*/React.createElement("img", {
      className: "settings-icon",
      src: "".concat(smp.pluginUrl, "/assets/images/settings/").concat(key, ".svg")
    }), /*#__PURE__*/React.createElement("span", {
      className: "settings-title"
    }, title));
  })), tab === 'general' && /*#__PURE__*/React.createElement(PlayerSettings, {
    data: data,
    setData: setData
  }), tab === 'popup' && /*#__PURE__*/React.createElement(PopupSettings, {
    data: data,
    setData: setData
  }), tab === 'playlist' && /*#__PURE__*/React.createElement(PlaylistSettings, {
    data: data,
    setData: setData
  }), tab === 'sticky' && /*#__PURE__*/React.createElement(StickySettings, {
    data: data,
    setData: setData
  }), tab === 'statistics' && /*#__PURE__*/React.createElement(StatisticsSettings, {
    data: data,
    setData: setData
  }), tab === 'css' && /*#__PURE__*/React.createElement(CustomCSS, {
    data: data,
    setData: setData
  }), tab === 'tools' && /*#__PURE__*/React.createElement(Tools, {
    data: data,
    setData: setData
  }));
}
// EXTERNAL MODULE: ./node_modules/react-date-range/dist/index.js
var dist = __webpack_require__(20);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
var injectStylesIntoStyleTag = __webpack_require__(5072);
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
var styleDomAPI = __webpack_require__(7825);
var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
var insertBySelector = __webpack_require__(7659);
var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
var setAttributesWithoutAttributes = __webpack_require__(5056);
var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
var insertStyleElement = __webpack_require__(540);
var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
var styleTagTransform = __webpack_require__(1113);
var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/sass-loader/dist/cjs.js!./node_modules/react-date-range/dist/styles.css
var styles = __webpack_require__(8715);
;// ./node_modules/react-date-range/dist/styles.css

      
      
      
      
      
      
      
      
      

var styles_options = {};

styles_options.styleTagTransform = (styleTagTransform_default());
styles_options.setAttributes = (setAttributesWithoutAttributes_default());

      styles_options.insert = insertBySelector_default().bind(null, "head");
    
styles_options.domAPI = (styleDomAPI_default());
styles_options.insertStyleElement = (insertStyleElement_default());

var update = injectStylesIntoStyleTag_default()(styles/* default */.A, styles_options);




       /* harmony default export */ const dist_styles = (styles/* default */.A && styles/* default */.A.locals ? styles/* default */.A.locals : undefined);

// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/sass-loader/dist/cjs.js!./node_modules/react-date-range/dist/theme/default.css
var theme_default = __webpack_require__(5620);
;// ./node_modules/react-date-range/dist/theme/default.css

      
      
      
      
      
      
      
      
      

var default_options = {};

default_options.styleTagTransform = (styleTagTransform_default());
default_options.setAttributes = (setAttributesWithoutAttributes_default());

      default_options.insert = insertBySelector_default().bind(null, "head");
    
default_options.domAPI = (styleDomAPI_default());
default_options.insertStyleElement = (insertStyleElement_default());

var default_update = injectStylesIntoStyleTag_default()(theme_default/* default */.A, default_options);




       /* harmony default export */ const dist_theme_default = (theme_default/* default */.A && theme_default/* default */.A.locals ? theme_default/* default */.A.locals : undefined);

;// ./src/js/components/Statistics/Header.js
function Header_slicedToArray(r, e) { return Header_arrayWithHoles(r) || Header_iterableToArrayLimit(r, e) || Header_unsupportedIterableToArray(r, e) || Header_nonIterableRest(); }
function Header_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Header_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Header_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Header_arrayLikeToArray(r, a) : void 0; } }
function Header_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Header_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Header_arrayWithHoles(r) { if (Array.isArray(r)) return r; }


 // Main style file
 // Theme file


var Header_React = React,
  Header_useState = Header_React.useState;
function Statistics_Header_Header(_ref) {
  var setData = _ref.setData,
    handleDateChange = _ref.handleDateChange,
    dateRange = _ref.dateRange;
  var _dateRange$ = dateRange[0],
    startDate = _dateRange$.startDate,
    endDate = _dateRange$.endDate;

  // Handle filter tooltip
  var _useState = Header_useState(false),
    _useState2 = Header_slicedToArray(_useState, 2),
    isTooltipOpen = _useState2[0],
    setTooltipOpen = _useState2[1];
  return /*#__PURE__*/React.createElement("div", {
    className: "statistics-header"
  }, /*#__PURE__*/React.createElement("div", {
    className: "statistics-header-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/statistics-icon.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Multimedia Player Statistics', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "statistics-range"
  }, /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn btn-primary filter-btn",
    onClick: function onClick() {
      return setTooltipOpen(!isTooltipOpen);
    }
  }, isTooltipOpen ? /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-no"
  }) : /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-filter"
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Filter', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: '.filter-btn',
    place: 'bottom',
    isOpen: isTooltipOpen,
    setIsOpen: setTooltipOpen,
    variant: "light",
    clickable: true,
    border: "1px solid #ddd",
    resizeHide: false,
    className: "statistics-tooltip-wrap smp-tooltip"
  }, /*#__PURE__*/React.createElement("div", {
    className: "statistics-filter"
  }, /*#__PURE__*/React.createElement("div", {
    className: "filter-options"
  }, /*#__PURE__*/React.createElement(dist/* DateRangePicker */.Ur, {
    editableDateInputs: true,
    onChange: handleDateChange,
    showSelectionPreview: true,
    moveRangeOnFirstSelection: false,
    ranges: dateRange,
    showMonthAndYearPickers: true,
    maxDate: new Date(),
    months: 2,
    direction: "horizontal",
    rangeColors: ["#3d91ff"] // Custom color
  })))), /*#__PURE__*/React.createElement("i", {
    "data-tooltip-id": "clear-statistics",
    className: "clear-statistics dashicons dashicons-ellipsis"
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    id: "clear-statistics",
    place: "bottom",
    variant: "light",
    effect: "solid",
    openOnClick: "click",
    globalEventOff: "click",
    className: "smp-tooltip clear-statistics-tooltip",
    clickable: true,
    border: "1px solid #ddd"
  }, /*#__PURE__*/React.createElement("button", {
    className: "smp-btn btn-info",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)((0,functions/* formatDateForSQL */.ZZ)(startDate), (0,functions/* formatDateForSQL */.ZZ)(endDate));
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download"
  }), wp.i18n.__('Export Statistics', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("button", {
    type: "button",
    className: "smp-btn btn-danger",
    onClick: function onClick() {
      Swal.fire({
        title: wp.i18n.__('Deleted!', 'soft-multimedia-player'),
        text: wp.i18n.__('All statistics data has been deleted.', 'soft-multimedia-player'),
        icon: 'success',
        toast: true,
        timer: 2000,
        timerProgressBar: true,
        showConfirmButton: false,
        customClass: {
          container: 'smp-swal smp-swal-toast'
        }
      });
      setData(null);
      wp.ajax.post('multimedia_player_clear_statistics', {
        nonce: smp.nonce
      });
    }
  }, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-trash"
  }), wp.i18n.__('Clear Statistics', 'soft-multimedia-player')))));
}
;// ./src/js/components/Statistics/Summary.js

function Summary(_ref) {
  var _ref$data = _ref.data,
    data = _ref$data === void 0 ? {} : _ref$data;
  var users = data === null || data === void 0 ? void 0 : data.users;
  var totalPlay = users === null || users === void 0 ? void 0 : users.reduce(function (acc, curr) {
    return acc + parseInt(curr.total_plays);
  }, 0);
  var totalDuration = users === null || users === void 0 ? void 0 : users.reduce(function (acc, curr) {
    return acc + parseInt(curr.total_duration);
  }, 0);
  var totalUsers = users === null || users === void 0 ? void 0 : users.length;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-summary"
  }, /*#__PURE__*/React.createElement("div", {
    className: "summary-item"
  }, /*#__PURE__*/React.createElement("div", {
    className: "summary-item-label"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/play-count.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Total Plays', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "summary-item-value"
  }, /*#__PURE__*/React.createElement("span", null, totalPlay))), /*#__PURE__*/React.createElement("div", {
    className: "summary-item"
  }, /*#__PURE__*/React.createElement("div", {
    className: "summary-item-label"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/plays.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Total Play Time', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "summary-item-value"
  }, /*#__PURE__*/React.createElement("span", null, (0,functions/* formatDuration */.a3)(totalDuration)))), /*#__PURE__*/React.createElement("div", {
    className: "summary-item"
  }, /*#__PURE__*/React.createElement("div", {
    className: "summary-item-label"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/listeners.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Total Listeners', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("div", {
    className: "summary-item-value"
  }, /*#__PURE__*/React.createElement("span", null, totalUsers))));
}
;// ./src/js/components/Statistics/PlayChart.js
function PlayChart_typeof(o) { "@babel/helpers - typeof"; return PlayChart_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PlayChart_typeof(o); }
function PlayChart_toConsumableArray(r) { return PlayChart_arrayWithoutHoles(r) || PlayChart_iterableToArray(r) || PlayChart_unsupportedIterableToArray(r) || PlayChart_nonIterableSpread(); }
function PlayChart_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function PlayChart_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return PlayChart_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? PlayChart_arrayLikeToArray(r, a) : void 0; } }
function PlayChart_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function PlayChart_arrayWithoutHoles(r) { if (Array.isArray(r)) return PlayChart_arrayLikeToArray(r); }
function PlayChart_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function PlayChart_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function PlayChart_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? PlayChart_ownKeys(Object(t), !0).forEach(function (r) { PlayChart_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : PlayChart_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function PlayChart_defineProperty(e, r, t) { return (r = PlayChart_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function PlayChart_toPropertyKey(t) { var i = PlayChart_toPrimitive(t, "string"); return "symbol" == PlayChart_typeof(i) ? i : i + ""; }
function PlayChart_toPrimitive(t, r) { if ("object" != PlayChart_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PlayChart_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
var PlayChart_React = React,
  PlayChart_useEffect = PlayChart_React.useEffect,
  PlayChart_useRef = PlayChart_React.useRef;

function PlayChart(_ref) {
  var _data$logs;
  var data = _ref.data;
  var chartRef = PlayChart_useRef(null);
  var logs = data === null || data === void 0 || (_data$logs = data.logs) === null || _data$logs === void 0 ? void 0 : _data$logs.map(function (log) {
    return PlayChart_objectSpread(PlayChart_objectSpread({}, log), {}, {
      date: (0,functions/* formatDate */.Yq)(log.date)
    });
  });
  var dates = PlayChart_toConsumableArray(new Set(logs === null || logs === void 0 ? void 0 : logs.map(function (event) {
    return event.date;
  }))).reverse();
  var playLogs = _.groupBy(logs === null || logs === void 0 ? void 0 : logs.filter(function (log) {
    return log.action === "play_start";
  }), function (log) {
    return log.date;
  });
  var plays = dates.map(function (date) {
    return playLogs[date] ? playLogs[date].length : 0;
  });
  PlayChart_useEffect(function () {
    var canvasElement = document.createElement("canvas");
    canvasElement.height = 400;
    chartRef.current.appendChild(canvasElement);
    var gradient = canvasElement.getContext('2d').createLinearGradient(0, 0, 0, 250);
    gradient.addColorStop(0, 'rgba(62, 193, 255, 0.6)');
    gradient.addColorStop(1, 'rgba(62, 193, 255, 0.05)');
    var myChart = new Chart(canvasElement, {
      type: 'line',
      data: {
        labels: dates,
        datasets: [{
          label: wp.i18n.__('Play Count', 'soft-multimedia-player'),
          data: plays,
          backgroundColor: gradient,
          borderColor: 'rgba(54, 162, 235, 1)',
          borderWidth: 2,
          fill: true
        }]
      },
      options: {
        responsive: false,
        maintainAspectRatio: false
      }
    });
    return function () {
      canvasElement.remove();
      myChart.destroy();
    };
  }, [data]);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-chart"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "chart-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/play-count.svg'
  }), wp.i18n.__('Play Count / Day', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "chart",
    ref: chartRef
  }));
}
;// ./src/js/components/Statistics/TopPlayers.js
function TopPlayers_slicedToArray(r, e) { return TopPlayers_arrayWithHoles(r) || TopPlayers_iterableToArrayLimit(r, e) || TopPlayers_unsupportedIterableToArray(r, e) || TopPlayers_nonIterableRest(); }
function TopPlayers_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function TopPlayers_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return TopPlayers_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? TopPlayers_arrayLikeToArray(r, a) : void 0; } }
function TopPlayers_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function TopPlayers_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function TopPlayers_arrayWithHoles(r) { if (Array.isArray(r)) return r; }

var TopPlayers_React = React,
  TopPlayers_useState = TopPlayers_React.useState;
function TopPlayers(_ref) {
  var data = _ref.data,
    startDate = _ref.startDate,
    endDate = _ref.endDate;
  var storedData = localStorage.getItem('smp_show_top_players_data');
  var _useState = TopPlayers_useState(storedData ? storedData === 'true' : true),
    _useState2 = TopPlayers_slicedToArray(_useState, 2),
    showData = _useState2[0],
    setShowData = _useState2[1];
  var _data$players = data.players,
    players = _data$players === void 0 ? [] : _data$players;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box smp-statistics-players"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/players.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Top Players', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'players');
    }
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showData ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('smp_show_top_players_data', !showData);
      setShowData(!showData);
    },
    "data-tooltip-content": wp.i18n.__(showData ? 'Hide Data' : 'Show Data')
  })), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showData ? '' : 'multimedia-player-hidden')
  }, players.length ? /*#__PURE__*/React.createElement("table", {
    className: "widefat striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", {
    className: 'col-sl'
  }, "#"), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Player', 'multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Listeners', 'multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Plays', 'multimedia-player')), /*#__PURE__*/React.createElement("th", {
    className: 'col-times'
  }, wp.i18n.__('Play Duration', 'multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, players.map(function (_ref2, index) {
    var player_id = _ref2.player_id,
      player_title = _ref2.player_title,
      total_duration = _ref2.total_duration,
      total_plays = _ref2.total_plays,
      total_users = _ref2.total_users;
    return /*#__PURE__*/React.createElement("tr", {
      key: player_id
    }, /*#__PURE__*/React.createElement("td", {
      className: 'col-sl'
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, ".")), /*#__PURE__*/React.createElement("td", {
      className: "col-title"
    }, /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.adminUrl, "/admin.php?page=multimedia-player&id=").concat(player_id),
      target: "_blank"
    }, player_title)), /*#__PURE__*/React.createElement("td", {
      className: "col-listeners"
    }, total_users), /*#__PURE__*/React.createElement("td", {
      className: "col-play"
    }, total_plays), /*#__PURE__*/React.createElement("td", {
      className: "col-times"
    }, (0,functions/* formatDuration */.a3)(Number(total_duration))));
  }))) : /*#__PURE__*/React.createElement("div", {
    className: "no-data"
  }, wp.i18n.__('No data found!', 'soft-multimedia-player'))));
}
;// ./src/js/components/Statistics/TimesChart.js
function TimesChart_typeof(o) { "@babel/helpers - typeof"; return TimesChart_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TimesChart_typeof(o); }
function TimesChart_toConsumableArray(r) { return TimesChart_arrayWithoutHoles(r) || TimesChart_iterableToArray(r) || TimesChart_unsupportedIterableToArray(r) || TimesChart_nonIterableSpread(); }
function TimesChart_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function TimesChart_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return TimesChart_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? TimesChart_arrayLikeToArray(r, a) : void 0; } }
function TimesChart_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function TimesChart_arrayWithoutHoles(r) { if (Array.isArray(r)) return TimesChart_arrayLikeToArray(r); }
function TimesChart_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function TimesChart_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function TimesChart_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? TimesChart_ownKeys(Object(t), !0).forEach(function (r) { TimesChart_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : TimesChart_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function TimesChart_defineProperty(e, r, t) { return (r = TimesChart_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function TimesChart_toPropertyKey(t) { var i = TimesChart_toPrimitive(t, "string"); return "symbol" == TimesChart_typeof(i) ? i : i + ""; }
function TimesChart_toPrimitive(t, r) { if ("object" != TimesChart_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != TimesChart_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }

var TimesChart_React = React,
  TimesChart_useEffect = TimesChart_React.useEffect,
  TimesChart_useRef = TimesChart_React.useRef;
function TimesChart(_ref) {
  var data = _ref.data;
  var chartRef = TimesChart_useRef(null);
  var logs = data.logs.map(function (log) {
    return TimesChart_objectSpread(TimesChart_objectSpread({}, log), {}, {
      date: (0,functions/* formatDate */.Yq)(log.date)
    });
  });
  var dates = TimesChart_toConsumableArray(new Set(logs.map(function (event) {
    return event.date;
  }))).reverse();
  var durationLogs = _.groupBy(logs.filter(function (log) {
    return log.action === "play_end";
  }), function (log) {
    return log.date;
  });
  var durations = dates.map(function (date) {
    var logsForDate = durationLogs[date] || [];
    var totalSeconds = logsForDate.reduce(function (acc, log) {
      return acc + (parseInt(log.duration) || 0);
    }, 0);
    return Math.round(totalSeconds / 60); // round to nearest minute
  });
  TimesChart_useEffect(function () {
    var canvasElement = document.createElement("canvas");
    canvasElement.height = 400;
    chartRef.current.appendChild(canvasElement);
    var gradient = canvasElement.getContext('2d').createLinearGradient(0, 0, 0, 250);
    gradient.addColorStop(0, 'rgba(62, 193, 255, 0.6)');
    gradient.addColorStop(1, 'rgba(62, 193, 255, 0.05)');
    var myChart = new Chart(canvasElement, {
      type: 'line',
      data: {
        labels: dates,
        datasets: [{
          label: wp.i18n.__('Play Times (Minutes)', 'soft-multimedia-player'),
          data: durations,
          backgroundColor: 'rgba(47, 180, 75, 0.1)',
          borderColor: '#2FB44B',
          borderWidth: 2,
          fill: true
        }]
      },
      options: {
        responsive: false,
        maintainAspectRatio: false
      }
    });
    return function () {
      canvasElement.remove();
      myChart.destroy();
    };
  }, [data]);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-chart"
  }, /*#__PURE__*/React.createElement("h4", {
    className: "chart-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/play-count.svg'
  }), wp.i18n.__('Play Times / Day', 'multimedia-player')), /*#__PURE__*/React.createElement("div", {
    className: "chart",
    ref: chartRef
  }));
}
;// ./src/js/components/Statistics/TopStations.js
function TopStations_slicedToArray(r, e) { return TopStations_arrayWithHoles(r) || TopStations_iterableToArrayLimit(r, e) || TopStations_unsupportedIterableToArray(r, e) || TopStations_nonIterableRest(); }
function TopStations_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function TopStations_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return TopStations_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? TopStations_arrayLikeToArray(r, a) : void 0; } }
function TopStations_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function TopStations_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function TopStations_arrayWithHoles(r) { if (Array.isArray(r)) return r; }

var TopStations_React = React,
  TopStations_useState = TopStations_React.useState;
function TopStations(_ref) {
  var data = _ref.data,
    startDate = _ref.startDate,
    endDate = _ref.endDate,
    count = _ref.count;
  var storedData = localStorage.getItem('smp_show_top_stations_data');
  var _useState = TopStations_useState(storedData ? storedData === 'true' : true),
    _useState2 = TopStations_slicedToArray(_useState, 2),
    showData = _useState2[0],
    setShowData = _useState2[1];
  var stations = (data === null || data === void 0 ? void 0 : data.stations) || [];
  var visibleStations = count ? stations.slice(0, count) : stations;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box statistics-stations"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/stations.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Top Tracks', 'soft-multimedia-player')), count ? null : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'tracks');
    }
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showData ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('smp_show_top_stations_data', !showData);
      setShowData(!showData);
    },
    "data-tooltip-content": wp.i18n.__(showData ? 'Hide Data' : 'Show Data')
  }))), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showData ? '' : 'smp-hidden')
  }, visibleStations.length ? /*#__PURE__*/React.createElement("table", {
    className: "widefat striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", {
    className: 'col-sl'
  }, "#"), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Track', 'soft-multimedia-player')), count ? null : /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Player', 'soft-multimedia-player')), count ? null : /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Listeners', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Plays', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", {
    className: 'col-times'
  }, wp.i18n.__('Total Play Time', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, visibleStations.map(function (_ref2, index) {
    var player_id = _ref2.player_id,
      player_title = _ref2.player_title,
      track = _ref2.track,
      track_title = _ref2.track_title,
      total_duration = _ref2.total_duration,
      total_plays = _ref2.total_plays,
      total_users = _ref2.total_users;
    return /*#__PURE__*/React.createElement("tr", {
      key: player_id
    }, /*#__PURE__*/React.createElement("td", {
      className: 'col-sl'
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, ".")), /*#__PURE__*/React.createElement("td", {
      className: "col-station"
    }, /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.adminUrl, "/admin.php?page=multimedia-player&id=").concat(player_id),
      target: "_blank"
    }, track_title)), count ? null : /*#__PURE__*/React.createElement("td", {
      className: "col-player"
    }, /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.adminUrl, "/admin.php?page=multimedia-player&id=").concat(player_id),
      target: "_blank"
    }, player_title)), count ? null : /*#__PURE__*/React.createElement("td", {
      className: "col-listeners"
    }, total_users), /*#__PURE__*/React.createElement("td", {
      className: "col-play"
    }, total_plays), /*#__PURE__*/React.createElement("td", {
      className: "col-times"
    }, (0,functions/* formatDuration */.a3)(Number(total_duration))));
  }))) : /*#__PURE__*/React.createElement("div", {
    className: "no-data"
  }, wp.i18n.__('No data found!', 'soft-multimedia-player'))));
}
;// ./src/js/components/Statistics/Logs.js
function Logs_slicedToArray(r, e) { return Logs_arrayWithHoles(r) || Logs_iterableToArrayLimit(r, e) || Logs_unsupportedIterableToArray(r, e) || Logs_nonIterableRest(); }
function Logs_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Logs_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Logs_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Logs_arrayLikeToArray(r, a) : void 0; } }
function Logs_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Logs_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Logs_arrayWithHoles(r) { if (Array.isArray(r)) return r; }

var Logs_React = React,
  Logs_useState = Logs_React.useState;
function Logs(_ref) {
  var data = _ref.data,
    startDate = _ref.startDate,
    endDate = _ref.endDate;
  var storedData = localStorage.getItem('smp_show_logs_data');
  var _useState = Logs_useState(storedData ? storedData === 'true' : true),
    _useState2 = Logs_slicedToArray(_useState, 2),
    showData = _useState2[0],
    setShowData = _useState2[1];
  var logs = data.logs;
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box statistics-logs"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/logs.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Event Logs', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'logs');
    }
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showData ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('smp_show_logs_data', !showData);
      setShowData(!showData);
    },
    "data-tooltip-content": wp.i18n.__(showData ? 'Hide Data' : 'Show Data')
  })), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showData ? '' : 'smp-hidden')
  }, logs.length > 0 ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("table", {
    className: "widefat striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "#"), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Description', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Player', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Track', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Page', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('IP', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Country', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Duration', 'soft-multimedia-player'))), /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement("div", null, wp.i18n.__('Date', 'soft-multimedia-player'))))), /*#__PURE__*/React.createElement("tbody", null, logs.map(function (log, index) {
    var action = log.action,
      user_id = log.user_id,
      username = log.username,
      country = log.country,
      ip = log.ip,
      player_id = log.player_id,
      player_title = log.player_title,
      track = log.track,
      track_title = log.track_title,
      date = log.date,
      page = log.page,
      duration = log.duration;
    var userText = !!parseInt(user_id) ? /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.admin_url, "/user-edit.php?user_id=").concat(user_id),
      target: "_blank"
    }, username) : wp.i18n.__('A visitor', 'soft-multimedia-player');
    var actionTextMap = {
      'play_start': wp.i18n.__('started playing', 'soft-multimedia-player'),
      'play_end': wp.i18n.__('stopped playing', 'soft-multimedia-player')
    };
    var actionText = actionTextMap[action] || wp.i18n.__('started playing', 'soft-multimedia-player');
    return /*#__PURE__*/React.createElement("tr", {
      key: index
    }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
      className: "sl"
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, "."))), /*#__PURE__*/React.createElement("td", null, userText, " ", actionText), /*#__PURE__*/React.createElement("td", {
      className: "col-player"
    }, /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.homeUrl, "/wp-admin/admin.php?page=multimedia-player&id=").concat(player_id),
      target: "_blank"
    }, player_title)), /*#__PURE__*/React.createElement("td", {
      className: "col-station"
    }, /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.homeUrl, "/wp-admin/admin.php?page=multimedia-player&id=").concat(player_id),
      target: "_blank"
    }, track_title)), /*#__PURE__*/React.createElement("td", {
      className: "col-page"
    }, page && /*#__PURE__*/React.createElement("a", {
      href: page,
      target: "_blank"
    }, page.replace(smp.homeUrl, ''))), /*#__PURE__*/React.createElement("td", {
      className: "col-ip"
    }, ip ? /*#__PURE__*/React.createElement("a", {
      href: "https://www.iplocation.net/ip-lookup/".concat(ip),
      target: "_blank"
    }, ip) : '—'), /*#__PURE__*/React.createElement("td", {
      className: "col-country"
    }, country || '—'), /*#__PURE__*/React.createElement("td", {
      className: "col-date"
    }, 'play_end' === action ? (0,functions/* formatDuration */.a3)(duration, true) : ' — '), /*#__PURE__*/React.createElement("td", {
      className: "col-date"
    }, (0,functions/* formatDate */.Yq)(date, true)));
  })))) : /*#__PURE__*/React.createElement("div", {
    className: "no-data"
  }, wp.i18n.__('No data found!', 'soft-multimedia-player'))));
}
;// ./src/js/components/Statistics/TopUsers.js
function TopUsers_slicedToArray(r, e) { return TopUsers_arrayWithHoles(r) || TopUsers_iterableToArrayLimit(r, e) || TopUsers_unsupportedIterableToArray(r, e) || TopUsers_nonIterableRest(); }
function TopUsers_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function TopUsers_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return TopUsers_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? TopUsers_arrayLikeToArray(r, a) : void 0; } }
function TopUsers_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function TopUsers_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function TopUsers_arrayWithHoles(r) { if (Array.isArray(r)) return r; }


var TopUsers_React = React,
  TopUsers_useState = TopUsers_React.useState;
function TopUsers(_ref) {
  var data = _ref.data,
    startDate = _ref.startDate,
    endDate = _ref.endDate;
  var _useState = TopUsers_useState(localStorage.getItem('smp_show_users_data') ? localStorage.getItem('smp_show_users_data') === 'true' : true),
    _useState2 = TopUsers_slicedToArray(_useState, 2),
    showData = _useState2[0],
    setShowData = _useState2[1];
  var _useState3 = TopUsers_useState(localStorage.getItem('smp_show_users_data') ? localStorage.getItem('smp_show_users_data') === 'true' : true),
    _useState4 = TopUsers_slicedToArray(_useState3, 2),
    showUsers = _useState4[0],
    setShowUsers = _useState4[1];
  var _ref2 = data || {},
    _ref2$users = _ref2.users,
    users = _ref2$users === void 0 ? [] : _ref2$users,
    _ref2$countries = _ref2.countries,
    countries = _ref2$countries === void 0 ? [] : _ref2$countries;
  return /*#__PURE__*/React.createElement("div", {
    className: "statistics-boxes top-users"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/users.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Top Users', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'users');
    }
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: '.dashicons-download',
    place: "top",
    content: 'Export'
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showData ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('smp_show_users_data', !showData);
      setShowData(!showData);
    },
    "data-tooltip-content": wp.i18n.__(showData ? 'Hide Data' : 'Show Data')
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: '.dashicons-arrow-up-alt2, .dashicons-arrow-down-alt2',
    place: "top"
  })), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showData ? '' : 'multimedia-player-hidden')
  }, users.length > 0 ? /*#__PURE__*/React.createElement("table", {
    className: "widefat top-items striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "#"), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Name', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('IP', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Country', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Plays', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Duration', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, users.map(function (item, index) {
    var avatar = item.avatar,
      user_id = item.user_id,
      name = item.name,
      ip = item.ip,
      country = item.country,
      total_plays = item.total_plays,
      total_duration = item.total_duration;
    return /*#__PURE__*/React.createElement("tr", {
      key: index
    }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
      className: "sl"
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, "."))), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
      className: "user-wrap"
    }, /*#__PURE__*/React.createElement("span", {
      dangerouslySetInnerHTML: {
        __html: avatar
      }
    }), !!parseInt(user_id) ? /*#__PURE__*/React.createElement("a", {
      href: "".concat(smp.homeUrl, "/wp-admin/user-edit.php?user_id=").concat(user_id),
      target: "_blank"
    }, name) : name)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("a", {
      href: "https://www.iplocation.net/ip-lookup/".concat(ip),
      target: "_blank"
    }, ip)), /*#__PURE__*/React.createElement("td", null, country), /*#__PURE__*/React.createElement("td", null, total_plays), /*#__PURE__*/React.createElement("td", null, (0,functions/* formatDuration */.a3)(Number(total_duration))));
  }))) : /*#__PURE__*/React.createElement("span", {
    className: "no-data"
  }, wp.i18n.__('No data found', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/countries.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Top Countries', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'countries');
    }
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showUsers ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('smp_show_users_data', !showUsers);
      setShowUsers(!showUsers);
    },
    "data-tooltip-content": wp.i18n.__(showUsers ? 'Hide Data' : 'Show Data')
  })), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showUsers ? '' : 'smp-hidden')
  }, countries.length ? /*#__PURE__*/React.createElement("table", {
    className: "widefat top-users striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null, "#"), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Country', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Users', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Plays', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Duration', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, countries.map(function (item, index) {
    var country = item.country,
      total_users = item.total_users,
      total_plays = item.total_plays,
      total_duration = item.total_duration;
    return /*#__PURE__*/React.createElement("tr", {
      key: index
    }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
      className: "sl"
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, "."))), /*#__PURE__*/React.createElement("td", null, country), /*#__PURE__*/React.createElement("td", null, total_users), /*#__PURE__*/React.createElement("td", null, total_plays), /*#__PURE__*/React.createElement("td", null, (0,functions/* formatDuration */.a3)(Number(total_duration))));
  }))) : /*#__PURE__*/React.createElement("span", {
    className: "no-data"
  }, wp.i18n.__('No data found', 'soft-multimedia-player')))));
}
;// ./src/js/components/Statistics/TopBrowsers.js
function TopBrowsers_slicedToArray(r, e) { return TopBrowsers_arrayWithHoles(r) || TopBrowsers_iterableToArrayLimit(r, e) || TopBrowsers_unsupportedIterableToArray(r, e) || TopBrowsers_nonIterableRest(); }
function TopBrowsers_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function TopBrowsers_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return TopBrowsers_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? TopBrowsers_arrayLikeToArray(r, a) : void 0; } }
function TopBrowsers_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function TopBrowsers_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function TopBrowsers_arrayWithHoles(r) { if (Array.isArray(r)) return r; }


var TopBrowsers_React = React,
  TopBrowsers_useState = TopBrowsers_React.useState;
function TopBrowsers(_ref) {
  var data = _ref.data,
    startDate = _ref.startDate,
    endDate = _ref.endDate;
  var _useState = TopBrowsers_useState(localStorage.getItem('smp_show_browsers_data') ? localStorage.getItem('smp_show_browsers_data') === 'true' : true),
    _useState2 = TopBrowsers_slicedToArray(_useState, 2),
    showData = _useState2[0],
    setShowData = _useState2[1];
  var _useState3 = TopBrowsers_useState(localStorage.getItem('mp_show_devices_data') ? localStorage.getItem('mp_show_devices_data') === 'true' : true),
    _useState4 = TopBrowsers_slicedToArray(_useState3, 2),
    showUsers = _useState4[0],
    setShowUsers = _useState4[1];
  var _ref2 = data || {},
    _ref2$browsers = _ref2.browsers,
    browsers = _ref2$browsers === void 0 ? [] : _ref2$browsers,
    _ref2$devices = _ref2.devices,
    devices = _ref2$devices === void 0 ? [] : _ref2$devices;
  return /*#__PURE__*/React.createElement("div", {
    className: "statistics-boxes top-users"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/browsers.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Top Browsers', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'browsers');
    }
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: '.dashicons-download',
    place: "top",
    content: wp.i18n.__('Export', 'soft-multimedia-player')
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showData ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('smp_show_browsers_data', !showData);
      setShowData(!showData);
    },
    "data-tooltip-content": wp.i18n.__(showData ? 'Hide Data' : 'Show Data')
  }), /*#__PURE__*/React.createElement(react_tooltip_min/* Tooltip */.m_, {
    anchorSelect: '.dashicons-arrow-up-alt2, .dashicons-arrow-down-alt2',
    place: "top"
  })), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showData ? '' : 'multimedia-player-hidden')
  }, browsers.length > 0 ? /*#__PURE__*/React.createElement("table", {
    className: "widefat top-items striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Browser', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Users', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Plays', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Duration', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, browsers.map(function (item, index) {
    var browser = item.browser,
      total_users = item.total_users,
      total_plays = item.total_plays,
      total_duration = item.total_duration;
    return /*#__PURE__*/React.createElement("tr", {
      key: index
    }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
      className: "sl"
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, "."))), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, browser)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, total_users)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, total_plays)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, (0,functions/* formatDuration */.a3)(total_duration))));
  }))) : /*#__PURE__*/React.createElement("span", {
    className: "no-data"
  }, wp.i18n.__('No data found', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics-box"
  }, /*#__PURE__*/React.createElement("div", {
    className: "box-title"
  }, /*#__PURE__*/React.createElement("img", {
    src: smp.pluginUrl + '/assets/images/statistics/devices.svg'
  }), /*#__PURE__*/React.createElement("span", null, wp.i18n.__('Top Devices', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-download",
    onClick: function onClick() {
      return (0,functions/* exportStatistics */.u_)(startDate, endDate, 'devices');
    }
  }), /*#__PURE__*/React.createElement("i", {
    className: "dashicons dashicons-arrow-".concat(showUsers ? 'up' : 'down', "-alt2"),
    onClick: function onClick() {
      localStorage.setItem('mp_show_devices_data', !showUsers);
      setShowUsers(!showUsers);
    },
    "data-tooltip-content": wp.i18n.__(showUsers ? 'Hide Data' : 'Show Data')
  })), /*#__PURE__*/React.createElement("div", {
    className: "table-wrapper ".concat(showUsers ? '' : 'multimedia-player-hidden')
  }, devices.length ? /*#__PURE__*/React.createElement("table", {
    className: "widefat top-users striped"
  }, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("th", null), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Device', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Users', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Plays', 'soft-multimedia-player')), /*#__PURE__*/React.createElement("th", null, wp.i18n.__('Total Duration', 'soft-multimedia-player')))), /*#__PURE__*/React.createElement("tbody", null, devices.map(function (item, index) {
    var device = item.device,
      total_users = item.total_users,
      total_plays = item.total_plays,
      total_duration = item.total_duration;
    return /*#__PURE__*/React.createElement("tr", {
      key: index
    }, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
      className: "sl"
    }, /*#__PURE__*/React.createElement("span", {
      className: "sl-no"
    }, index + 1, "."))), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, device)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, total_users)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, total_plays)), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", null, (0,functions/* formatDuration */.a3)(total_duration))));
  }))) : /*#__PURE__*/React.createElement("span", {
    className: "no-data"
  }, wp.i18n.__('No data found', 'soft-multimedia-player')))));
}
;// ./src/js/components/Statistics.js
function Statistics_slicedToArray(r, e) { return Statistics_arrayWithHoles(r) || Statistics_iterableToArrayLimit(r, e) || Statistics_unsupportedIterableToArray(r, e) || Statistics_nonIterableRest(); }
function Statistics_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function Statistics_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Statistics_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Statistics_arrayLikeToArray(r, a) : void 0; } }
function Statistics_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function Statistics_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function Statistics_arrayWithHoles(r) { if (Array.isArray(r)) return r; }










var Statistics_React = React,
  Statistics_useState = Statistics_React.useState,
  Statistics_useEffect = Statistics_React.useEffect;
function Statistics() {
  var isPro = smp.isPro;
  var _useState = Statistics_useState(false),
    _useState2 = Statistics_slicedToArray(_useState, 2),
    loading = _useState2[0],
    setLoading = _useState2[1];
  var lastMonthDate = new Date();
  lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
  var _useState3 = Statistics_useState(null),
    _useState4 = Statistics_slicedToArray(_useState3, 2),
    data = _useState4[0],
    setData = _useState4[1];
  var _useState5 = Statistics_useState((0,functions/* formatDate */.Yq)(lastMonthDate)),
    _useState6 = Statistics_slicedToArray(_useState5, 2),
    startDate = _useState6[0],
    setStartDate = _useState6[1];
  var _useState7 = Statistics_useState((0,functions/* formatDate */.Yq)(new Date())),
    _useState8 = Statistics_slicedToArray(_useState7, 2),
    endDate = _useState8[0],
    setEndDate = _useState8[1];
  var _useState9 = Statistics_useState([{
      startDate: lastMonthDate,
      endDate: new Date(),
      key: "selection"
    }]),
    _useState0 = Statistics_slicedToArray(_useState9, 2),
    dateRange = _useState0[0],
    setDateRange = _useState0[1];
  var handleDateChange = function handleDateChange(ranges) {
    setDateRange([ranges.selection]);
    setStartDate((0,functions/* formatDate */.Yq)(ranges.selection.startDate));
    setEndDate((0,functions/* formatDate */.Yq)(ranges.selection.endDate));
  };
  Statistics_useEffect(function () {
    if (!isPro) return;
    setLoading(true);
    setData(null);
    wp.ajax.post('smp_get_statistics', {
      start_date: startDate,
      end_date: endDate,
      nonce: smp.nonce
    }).done(function (data) {
      setData(data);
    }).fail(function (error) {
      return console.log(error);
    }).always(function () {
      setLoading(false);
    });
  }, [startDate, endDate]);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-statistics"
  }, /*#__PURE__*/React.createElement(Statistics_Header_Header, {
    startDate: startDate,
    endDate: endDate,
    setStartDate: setStartDate,
    setEndDate: setEndDate,
    setData: setData,
    handleDateChange: handleDateChange,
    dateRange: dateRange
  }), loading && /*#__PURE__*/React.createElement("div", {
    className: "smp-spinner spinner-large"
  }), !!data && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Summary, {
    data: data
  }), /*#__PURE__*/React.createElement(PlayChart, {
    data: data
  }), /*#__PURE__*/React.createElement(TimesChart, {
    data: data
  }), /*#__PURE__*/React.createElement(TopUsers, {
    data: data,
    startDate: startDate,
    endDate: endDate
  }), /*#__PURE__*/React.createElement(TopBrowsers, {
    data: data,
    startDate: startDate,
    endDate: endDate
  }), /*#__PURE__*/React.createElement(TopPlayers, {
    data: data
  }), /*#__PURE__*/React.createElement(TopStations, {
    data: data
  }), /*#__PURE__*/React.createElement(Logs, {
    data: data,
    startDate: startDate,
    endDate: endDate
  })));
}
;// ./src/js/components/Statistics/ChartWidget.js
function ChartWidget_slicedToArray(r, e) { return ChartWidget_arrayWithHoles(r) || ChartWidget_iterableToArrayLimit(r, e) || ChartWidget_unsupportedIterableToArray(r, e) || ChartWidget_nonIterableRest(); }
function ChartWidget_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function ChartWidget_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return ChartWidget_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? ChartWidget_arrayLikeToArray(r, a) : void 0; } }
function ChartWidget_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function ChartWidget_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function ChartWidget_arrayWithHoles(r) { if (Array.isArray(r)) return r; }


var ChartWidget_SelectControl = wp.components.SelectControl;
var ChartWidget_React = React,
  ChartWidget_useState = ChartWidget_React.useState,
  ChartWidget_useEffect = ChartWidget_React.useEffect;
function ChartWidget() {
  var isPro = smp.isPro;
  var _useState = ChartWidget_useState(7),
    _useState2 = ChartWidget_slicedToArray(_useState, 2),
    length = _useState2[0],
    setLength = _useState2[1];
  var _useState3 = ChartWidget_useState(false),
    _useState4 = ChartWidget_slicedToArray(_useState3, 2),
    loading = _useState4[0],
    setLoading = _useState4[1];
  var _useState5 = ChartWidget_useState(null),
    _useState6 = ChartWidget_slicedToArray(_useState5, 2),
    data = _useState6[0],
    setData = _useState6[1];
  var startDate = moment().subtract(length, 'day').format('YYYY-MM-DD');
  var endDate = moment().format('YYYY-MM-DD');
  ChartWidget_useEffect(function () {
    if (!isPro) return;
    setLoading(true);
    setData(null);
    wp.ajax.post('smp_get_statistics', {
      start_date: startDate,
      end_date: endDate,
      nonce: smp.nonce
    }).done(function (data) {
      setData(data);
    }).fail(function (error) {
      return console.log(error);
    }).always(function () {
      return setLoading(false);
    });
  }, [length]);
  return /*#__PURE__*/React.createElement("div", {
    className: "smp-chart-widget"
  }, /*#__PURE__*/React.createElement("div", {
    className: "smp-chart-widget-header"
  }, /*#__PURE__*/React.createElement("span", null, wp.i18n.sprintf('You are viewing the statistics of the last %s days.', length)), /*#__PURE__*/React.createElement(ChartWidget_SelectControl, {
    value: length,
    options: [{
      label: wp.i18n.__('Last 7 days', 'soft-multimedia-player'),
      value: 7
    }, {
      label: wp.i18n.__('Last 30 days', 'soft-multimedia-player'),
      value: 30
    }],
    onChange: function onChange(value) {
      return setLength(value);
    }
  })), /*#__PURE__*/React.createElement(Summary, {
    data: data
  }), /*#__PURE__*/React.createElement(TopStations, {
    data: data,
    startDate: startDate,
    endDate: endDate,
    count: 10
  }), /*#__PURE__*/React.createElement("a", {
    href: smp.admin_url + 'admin.php?page=multimedia-player-statistics',
    className: 'smp-btn btn-primary'
  }, wp.i18n.__('View full statistics', 'soft-multimedia-player')));
}
;// ./src/js/includes/getting-started.js
var $ = jQuery;
var app = {
  init: function init() {
    $(document).on('click', '.smp-getting-started .menu-item', app.toggleGettingStartedTab);

    // Handle Get Started Check List
    $(document).on('click', '.timeline-step-finish .btn-finish', app.getStartedFinish);
    $(document).on('click', '.timeline-content, .timeline-content-toggle', app.handleGetStartedToggle);
    $(document).on('click', '.timeline-content .smp-btn', function (e) {
      return e.stopPropagation();
    });
    $(document).on('click', '.timeline-content .smp-btn.activate-license', app.openLicenseModal);
  },
  handleGetStartedToggle: function handleGetStartedToggle(e) {
    $(this).closest('.timeline-item').toggleClass('active').find('.timeline-body').slideToggle();
  },
  getStartedFinish: function getStartedFinish(e) {
    $('#introduction').addClass('setup-complete');
    $('.section-get-started, .heading-get-started').slideUp();
    wp.ajax.post('smp_hide_setup', {
      nonce: smp.nonce
    });
  },
  openLicenseModal: function openLicenseModal() {
    $('.fs-modal-license-activation-soft-multimedia-player').addClass('active');
  },
  toggleGettingStartedTab: function toggleGettingStartedTab() {
    var target = $(this).data('target');
    $('.menu-item').removeClass('active');
    $('.getting-started-content').removeClass('active');
    $(this).addClass('active');
    $('#' + target).addClass('active');
  }
};
/* harmony default export */ const getting_started = (app);
;// ./src/js/admin.js







;
(function ($) {
  var app = {
    init: function init() {
      app.initApp();
      app.initSettings();
      app.initStatistics();
    },
    ready: function ready() {
      $(document).on('click', '#multimeida-player', app.initMultimediaPlayerInserter);
      $(document).on('click', '#all-feature-show', function () {
        $('.other-feature-card.smp-hidden').hide().slideDown().removeClass('smp-hidden');
        $('#all-feature-show').parent().remove();
      });

      // Getting Started
      getting_started.init();
    },
    initApp: function initApp() {
      var element = document.getElementById('smp-app');
      if (element) {
        ReactDOM.render(/*#__PURE__*/React.createElement(App, null), element);
      }
    },
    initSettings: function initSettings() {
      var element = document.getElementById('smp-settings');
      if (element) {
        ReactDOM.render(/*#__PURE__*/React.createElement(Settings, null), element);
      }
    },
    initStatistics: function initStatistics() {
      var element = document.getElementById('smp-statistics');
      if (element) {
        ReactDOM.render(/*#__PURE__*/React.createElement(Statistics, null), element);
      }
      var chartWidgetElement = document.getElementById('smp-chart-widget');
      if (chartWidgetElement) {
        ReactDOM.render(/*#__PURE__*/React.createElement(ChartWidget, null), chartWidgetElement);
      }
    },
    // Multimedia Player Inserter on Classic Editor
    initMultimediaPlayerInserter: function initMultimediaPlayerInserter(e) {
      e.stopPropagation();
      (0,functions/* showClassicEditorPopup */.Th)(function (popupContainer) {
        var $select = $(popupContainer).find('.player_id');
        $select.select2({
          width: '100%',
          placeholder: wp.i18n.__('Select a player', 'soft-multimedia-player'),
          allowClear: true,
          minimumInputLength: 0,
          minimumResultsForSearch: 0,
          templateResult: app.formatOption,
          templateSelection: app.formatOption
        });
        $select.on('change', function () {
          var id = this.value;
          var title = $(this).find('option:selected').text();
          wp.media.editor.insert("[multimedia_player id=".concat(id, " title=\"").concat(title, "\"]"));
          Swal.close();
        });
      });
    },
    formatOption: function formatOption(data) {
      if (!data.id) return data.text;
      var image = $(data.element).data('image');
      var label = data.text || '';
      if (image) {
        return $("<span class=\"smp-select2-option\"><img src=\"".concat(image, "\" /> ").concat(label, "</span>"));
      }
      return $('<span>').text(label);
    }
  };
  app.init();
  $(document).ready(app.ready);
})(jQuery);
})();

/******/ })()
;