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

/***/ 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;
  }
};


/***/ }),

/***/ 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
};


/***/ }),

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

"use strict";
module.exports = React;

/***/ }),

/***/ 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);


/***/ }),

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

"use strict";

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

;// ./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((0,functions/* base64Decode */.u)(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);
    }
  });
}

/***/ }),

/***/ 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;
};


/***/ }),

/***/ 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);
}

/***/ }),

/***/ 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);


/***/ }),

/***/ 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;


/***/ }),

/***/ 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;
};


/***/ }),

/***/ 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; };


/***/ }),

/***/ 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;
}


/***/ }),

/***/ 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
  }
}


/***/ }),

/***/ 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;


/***/ }),

/***/ 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
{}
}());


/***/ }),

/***/ 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)))
  }
];


/***/ }),

/***/ 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
};


/***/ }),

/***/ 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
  });
};




/***/ }),

/***/ 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);


/***/ }),

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

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   HG: () => (/* binding */ useHandlePlayerResize),
/* harmony export */   PB: () => (/* binding */ openPopup),
/* harmony export */   Qu: () => (/* binding */ formatUsDate),
/* harmony export */   Vn: () => (/* binding */ openStickyPlayer),
/* harmony export */   fU: () => (/* binding */ formatTime),
/* harmony export */   qK: () => (/* binding */ useMounted),
/* harmony export */   qQ: () => (/* binding */ posterClick),
/* harmony export */   sK: () => (/* binding */ textUpperCase),
/* harmony export */   so: () => (/* binding */ showEmbedModal),
/* harmony export */   u: () => (/* binding */ base64Decode),
/* harmony export */   uW: () => (/* binding */ sendStatistics)
/* harmony export */ });
/* unused harmony exports formatDuration, copyShortcode, showNotification, setIdParam, removeIdParam, getIdParam, getOrdinalSuffix, base64Encode, formatDate, showReviewPopup, showClassicEditorPopup, getPlayUrl, useOutsideClickHandler, isIOS, formatDateForSQL, exportStatistics, getAudioDuration, getVideoDuration, getSkins, useResize, playerTypes, copyText */
/* 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(_components_Player__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A, {
      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);
}

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// 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](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 = {
/******/ 			343: 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));
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
/* harmony import */ var _includes_functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9116);
/* harmony import */ var _components_Player__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2480);
var _smp = smp,
  isPro = _smp.isPro;



;
(function ($) {
  var app = {
    init: function init() {
      window.MultiMediaPlayerInit = _components_Player__WEBPACK_IMPORTED_MODULE_1__/* .MultiMediaPlayerInit */ .f;
      (0,_components_Player__WEBPACK_IMPORTED_MODULE_1__/* .MultiMediaPlayerInit */ .f)();
      $(window).on('elementor/frontend/init', function () {
        window.elementorFrontend.hooks.addAction('frontend/element_ready/soft_multimedia_player.default', _components_Player__WEBPACK_IMPORTED_MODULE_1__/* .MultiMediaPlayerInit */ .f);
      });
    },
    ready: function ready() {
      if (isPro) {
        app.handlePopupTriggers();
        app.handleStickyTriggers();
      }
    },
    handlePopupTriggers: function handlePopupTriggers() {
      var _window$smp$settings$ = window.smp.settings.popupTriggers,
        popupTriggers = _window$smp$settings$ === void 0 ? [] : _window$smp$settings$;
      if (popupTriggers.length) {
        var selectors = popupTriggers.map(function (trigger) {
          return trigger.selector;
        });
        var playerIds = popupTriggers.map(function (trigger) {
          return parseInt(trigger.player);
        });
        selectors.forEach(function (selector, index) {
          if (!selector) return;
          $(document).on('click', selector, function (e) {
            e.preventDefault();
            (0,_includes_functions__WEBPACK_IMPORTED_MODULE_0__/* .openPopup */ .PB)(playerIds[index]);
          });
        });
      }
    },
    handleStickyTriggers: function handleStickyTriggers() {
      var _window$smp, _window$smp2;
      var players = (_window$smp = window.smp) === null || _window$smp === void 0 ? void 0 : _window$smp.players;
      var _window$smp$settings = (_window$smp2 = window.smp) === null || _window$smp2 === void 0 ? void 0 : _window$smp2.settings,
        _window$smp$settings$2 = _window$smp$settings.stickyTriggers,
        stickyTriggers = _window$smp$settings$2 === void 0 ? [] : _window$smp$settings$2;
      if (stickyTriggers.length) {
        var selectors = stickyTriggers.map(function (trigger) {
          return trigger.selector;
        });
        var playerIds = stickyTriggers.map(function (trigger) {
          return parseInt(trigger.player);
        });
        selectors.forEach(function (selector, index) {
          var player = players.find(function (player) {
            return player.id === playerIds[index];
          });
          var data = player === null || player === void 0 ? void 0 : player.config;
          if (!selector || !data) return;
          $(document).on('click', selector, function (e) {
            e.preventDefault();

            // open sticky player
            (0,_includes_functions__WEBPACK_IMPORTED_MODULE_0__/* .openStickyPlayer */ .Vn)(data);
          });
        });
      }
    }
  };
  app.init();
  $(document).ready(app.ready);
})(jQuery);
})();

/******/ })()
;