{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./node_modules/js-video-url-parser/lib/base.js","webpack:///./node_modules/js-video-url-parser/lib/urlParser.js","webpack:///./app/frontend/javascripts/components/BlockCustomHtml.js","webpack:///./app/frontend/packs/pages/static/page_layout_top.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./app/frontend/javascripts/custom_link_menu.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/keen-slider/keen-slider.es.js","webpack:///./node_modules/lodash/isObject.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/js-video-url-parser/dist/jsVideoUrlParser.js","webpack:///./node_modules/js-video-url-parser/lib/provider/youtube.js","webpack:///./node_modules/js-video-url-parser/lib/util.js","webpack:///./app/frontend/javascripts/js-video-url-parser/provider/youtube/index.js","webpack:///./app/frontend/javascripts/editor/view_mode.js","webpack:///./app/frontend/javascripts/components/Like.js","webpack:///./app/frontend/javascripts/api_utils.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_typeof","_regeneratorRuntime","e","a","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","type","arg","h","f","y","GeneratorFunction","GeneratorFunctionPrototype","this","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","parser","obj","getQueryParams","UrlParser","_i","_arr","plugins","parseProvider","url","match","undefined","parse","result","provider","plugin","params","removeEmptyParameters","alternatives","op","videoInfo","vi","format","defaultFormat","formats","apply","assign","BlockCustomHtml","templateId","getAttribute","template","document","getElementById","content","cloneNode","attachShadow","appendChild","HTMLElement","PageLayoutTop","requestInitPosts","initPostUrl","$","ajax","dataType","response","initPostsByCallbackAndPostTagId","postTagId","self","window","IntersectionObserver","observer","entries","entry","isIntersecting","unobserve","target","root","rootMargin","threshold","observe","querySelector","bindCustomLinkPostEvent","customElements","Coorum","KeenSlider","Like","ViewMode","replace","initCustomLinkMenu","addEventListener","bindCustomLinkMenuEvent","el","find","each","on","dataset","id","data","beforeSend","jqueryAjaxBeforeSend","isObject","now","toNumber","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","arguments","leadingEdge","clearTimeout","cancel","flush","_Symbol","freeGlobal","freeSelf","_n","Array","concat","Date","removeAttribute","setAttribute","isArray","querySelectorAll","NodeList","raw","cancelable","defaultPrevented","preventDefault","stopPropagation","add","addListener","input","nativeEvent","changedTouches","targetTouches","detail","x","identifier","idChanged","screenX","pageX","screenY","pageY","purge","removeListener","removeEventListener","getBoundingClientRect","round","b","k","w","M","T","_","C","E","abs","A","floor","indexOf","reduce","origin","rel","z","L","I","sign","S","D","loop","distance","timestamp","O","emit","map","rtl","portion","size","maxIdx","minIdx","position","progress","slides","details","absToRel","distToIdx","idxToDist","init","trackConfig","range","track","Number","to","velocity","lastTimestamp","pow","dist","dur","duration","easing","earlyExit","rubberband","animator","start","moveToIdx","vertical","innerHeight","innerWidth","drag","disabled","dragSpeed","container","passive","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","style","overflowY","overflowX","active","requestAnimationFrame","renderMode","transform","getComputedStyle","getPropertyValue","matches","__media","breakpoints","height","width","matchMedia","spacing","selector","destroy","update","defaultAnimation","targetIdx","cancelAnimationFrame","initial","console","error","baseGetTag","isObjectLike","symbolTag","global","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","objectProto","nativeObjectToString","toString","isOwn","tag","unmasked","baseTrim","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","trimmedEndIndex","reTrimStart","string","reWhitespace","index","factory","_typeof2","util","hasParams","combined","sort","timeString","timePairs","totalSeconds","timeValues","trim","split","getLetterTime","getColonTime","getQueryParams$1","qs","join","substr","decodeURIComponent","urlParser","base","Allocine","embed","createEmbedUrl","mediaTypes","VIDEO","parseUrl","mediaType","combineParams$1","CanalPlus","parseParameters","vid","combineParams$2","Coub","createLongUrl","createUrl","baseUrl","combineParams$3","getTime$1","Dailymotion","createShortUrl","image","createImageUrl","parseTime","combineParams$4","Loom","combineParams$5","getTime$2","Twitch","STREAM","CLIP","seperateId","pre","parseChannel","channel","utm_content","video","clip","isClip","parseMediaType","_this","combineParams$6","getTime$3","Vimeo","parseHash","hash","startTime","combineParams$7","getTime$4","Wistia","embedjsonp","createEmbedJsonpUrl","EMBEDVIDEO","wtime","wvideo","combineParams$8","Youku","flash","createFlashUrl","createStaticUrl","VideoIDS","combineParams$9","getTime$5","YouTube","shortImage","createShortImageUrl","longImage","createLongImageUrl","imageQualities","DEFAULT","HQDEFAULT","SDDEFAULT","MQDEFAULT","MAXRESDEFAULT","defaultImageQuality","PLAYLIST","SHARE","CHANNEL","parseVideoUrl","parseChannelUrl","list","ci","channelResult","feature","listType","playlist","imageQuality","combineParams$a","getTime$6","SoundCloud","TRACK","APITRACK","APIPLAYLIST","combineParams$b","TeacherTube","AUDIO","DOCUMENT","COLLECTION","GROUP","parsePlaylist","mediaTypeMatch","combineParams$c","TikTok","combineParams$d","Ted","combineParams$e","Facebook","watch","createWatchUrl","pageId","_require","combineParams","getTime","YouTubeExtend","videoUrlParser","youtube","$element","elem","attributes","parentElement","innerHTML","createVideoBlock","createOGCard","card","videoContainer","createElement","iframe","className","outerHTML","request_url","encodeURIComponent","fetchWithTimeout","json","html","classname","sns_animation","rootElement","$buttons","hide_event","long_touch_event","clickEvent","hoverEvent","touchEvent","classList","remove","reactionPopup","popupHide","popupShowWithTimer","popupShow","eyecatch","animationend","_debounce","formAction","reactionParam","reaction","fetch","headers","text","replacedButton","isLessMD","click","contains","touch","touches","targetElement","elementFromPoint","clientX","clientY","closest","popupElem","withLoadingAndDisable","loadingTarget","disableTargets","callback","ms","pollingRequest","requestCb","stopConditionCb","intervalMs","getCsrfToken","xhr","setRequestHeader","apiFailResultHandler","message","responseJSON","status","alert","resource","timeout","controller","AbortController","abort","signal","buildSafeURLSearchParams","paramsObj","URLSearchParams"],"mappings":"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","file":"js/pages/static/page_layout_top-ae2d27bd0e7107a44f88.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1078);\n","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n    return e;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  var t,\n    e = {},\n    r = Object.prototype,\n    n = r.hasOwnProperty,\n    o = Object.defineProperty || function (t, e, r) {\n      t[e] = r.value;\n    },\n    i = \"function\" == typeof Symbol ? Symbol : {},\n    a = i.iterator || \"@@iterator\",\n    c = i.asyncIterator || \"@@asyncIterator\",\n    u = i.toStringTag || \"@@toStringTag\";\n  function define(t, e, r) {\n    return Object.defineProperty(t, e, {\n      value: r,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), t[e];\n  }\n  try {\n    define({}, \"\");\n  } catch (t) {\n    define = function define(t, e, r) {\n      return t[e] = r;\n    };\n  }\n  function wrap(t, e, r, n) {\n    var i = e && e.prototype instanceof Generator ? e : Generator,\n      a = Object.create(i.prototype),\n      c = new Context(n || []);\n    return o(a, \"_invoke\", {\n      value: makeInvokeMethod(t, r, c)\n    }), a;\n  }\n  function tryCatch(t, e, r) {\n    try {\n      return {\n        type: \"normal\",\n        arg: t.call(e, r)\n      };\n    } catch (t) {\n      return {\n        type: \"throw\",\n        arg: t\n      };\n    }\n  }\n  e.wrap = wrap;\n  var h = \"suspendedStart\",\n    l = \"suspendedYield\",\n    f = \"executing\",\n    s = \"completed\",\n    y = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var p = {};\n  define(p, a, function () {\n    return this;\n  });\n  var d = Object.getPrototypeOf,\n    v = d && d(d(values([])));\n  v && v !== r && n.call(v, a) && (p = v);\n  var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n  function defineIteratorMethods(t) {\n    [\"next\", \"throw\", \"return\"].forEach(function (e) {\n      define(t, e, function (t) {\n        return this._invoke(e, t);\n      });\n    });\n  }\n  function AsyncIterator(t, e) {\n    function invoke(r, o, i, a) {\n      var c = tryCatch(t[r], t, o);\n      if (\"throw\" !== c.type) {\n        var u = c.arg,\n          h = u.value;\n        return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n          invoke(\"next\", t, i, a);\n        }, function (t) {\n          invoke(\"throw\", t, i, a);\n        }) : e.resolve(h).then(function (t) {\n          u.value = t, i(u);\n        }, function (t) {\n          return invoke(\"throw\", t, i, a);\n        });\n      }\n      a(c.arg);\n    }\n    var r;\n    o(this, \"_invoke\", {\n      value: function value(t, n) {\n        function callInvokeWithMethodAndArg() {\n          return new e(function (e, r) {\n            invoke(t, n, e, r);\n          });\n        }\n        return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(e, r, n) {\n    var o = h;\n    return function (i, a) {\n      if (o === f) throw new Error(\"Generator is already running\");\n      if (o === s) {\n        if (\"throw\" === i) throw a;\n        return {\n          value: t,\n          done: !0\n        };\n      }\n      for (n.method = i, n.arg = a;;) {\n        var c = n.delegate;\n        if (c) {\n          var u = maybeInvokeDelegate(c, n);\n          if (u) {\n            if (u === y) continue;\n            return u;\n          }\n        }\n        if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n          if (o === h) throw o = s, n.arg;\n          n.dispatchException(n.arg);\n        } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n        o = f;\n        var p = tryCatch(e, r, n);\n        if (\"normal\" === p.type) {\n          if (o = n.done ? s : l, p.arg === y) continue;\n          return {\n            value: p.arg,\n            done: n.done\n          };\n        }\n        \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(e, r) {\n    var n = r.method,\n      o = e.iterator[n];\n    if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n    var i = tryCatch(o, e.iterator, r.arg);\n    if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n    var a = i.arg;\n    return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n  }\n  function pushTryEntry(t) {\n    var e = {\n      tryLoc: t[0]\n    };\n    1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n  }\n  function resetTryEntry(t) {\n    var e = t.completion || {};\n    e.type = \"normal\", delete e.arg, t.completion = e;\n  }\n  function Context(t) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], t.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(e) {\n    if (e || \"\" === e) {\n      var r = e[a];\n      if (r) return r.call(e);\n      if (\"function\" == typeof e.next) return e;\n      if (!isNaN(e.length)) {\n        var o = -1,\n          i = function next() {\n            for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n            return next.value = t, next.done = !0, next;\n          };\n        return i.next = i;\n      }\n    }\n    throw new TypeError(_typeof(e) + \" is not iterable\");\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), o(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n    var e = \"function\" == typeof t && t.constructor;\n    return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n  }, e.mark = function (t) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n  }, e.awrap = function (t) {\n    return {\n      __await: t\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n    return this;\n  }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n    void 0 === i && (i = Promise);\n    var a = new AsyncIterator(wrap(t, r, n, o), i);\n    return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n      return t.done ? t.value : a.next();\n    });\n  }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n    return this;\n  }), define(g, \"toString\", function () {\n    return \"[object Generator]\";\n  }), e.keys = function (t) {\n    var e = Object(t),\n      r = [];\n    for (var n in e) r.push(n);\n    return r.reverse(), function next() {\n      for (; r.length;) {\n        var t = r.pop();\n        if (t in e) return next.value = t, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, e.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(e) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n    },\n    stop: function stop() {\n      this.done = !0;\n      var t = this.tryEntries[0].completion;\n      if (\"throw\" === t.type) throw t.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(e) {\n      if (this.done) throw e;\n      var r = this;\n      function handle(n, o) {\n        return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n      }\n      for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n        var i = this.tryEntries[o],\n          a = i.completion;\n        if (\"root\" === i.tryLoc) return handle(\"end\");\n        if (i.tryLoc <= this.prev) {\n          var c = n.call(i, \"catchLoc\"),\n            u = n.call(i, \"finallyLoc\");\n          if (c && u) {\n            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n          } else if (c) {\n            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n          } else {\n            if (!u) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(t, e) {\n      for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n        var o = this.tryEntries[r];\n        if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n          var i = o;\n          break;\n        }\n      }\n      i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n      var a = i ? i.completion : {};\n      return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n    },\n    complete: function complete(t, e) {\n      if (\"throw\" === t.type) throw t.arg;\n      return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n    },\n    finish: function finish(t) {\n      for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n        var r = this.tryEntries[e];\n        if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n      }\n    },\n    \"catch\": function _catch(t) {\n      for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n        var r = this.tryEntries[e];\n        if (r.tryLoc === t) {\n          var n = r.completion;\n          if (\"throw\" === n.type) {\n            var o = n.arg;\n            resetTryEntry(r);\n          }\n          return o;\n        }\n      }\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(e, r, n) {\n      return this.delegate = {\n        iterator: values(e),\n        resultName: r,\n        nextLoc: n\n      }, \"next\" === this.method && (this.arg = t), y;\n    }\n  }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var UrlParser = require('./urlParser');\n\nvar parser = new UrlParser();\nmodule.exports = parser;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('./util'),\n    getQueryParams = _require.getQueryParams;\n\nfunction UrlParser() {\n  for (var _i = 0, _arr = ['parseProvider', 'parse', 'bind', 'create']; _i < _arr.length; _i++) {\n    var key = _arr[_i];\n    this[key] = this[key].bind(this);\n  }\n\n  this.plugins = {};\n}\n\nmodule.exports = UrlParser;\n\nUrlParser.prototype.parseProvider = function (url) {\n  var match = url.match(/(?:(?:https?:)?\\/\\/)?(?:[^.]+\\.)?(\\w+)\\./i);\n  return match ? match[1] : undefined;\n};\n\nUrlParser.prototype.parse = function (url) {\n  if (typeof url === 'undefined') {\n    return undefined;\n  }\n\n  var provider = this.parseProvider(url);\n  var result;\n  var plugin = this.plugins[provider];\n\n  if (!provider || !plugin || !plugin.parse) {\n    return undefined;\n  }\n\n  result = plugin.parse.call(plugin, url, getQueryParams(url));\n\n  if (result) {\n    result = removeEmptyParameters(result);\n    result.provider = plugin.provider;\n  }\n\n  return result;\n};\n\nUrlParser.prototype.bind = function (plugin) {\n  this.plugins[plugin.provider] = plugin;\n\n  if (plugin.alternatives) {\n    for (var i = 0; i < plugin.alternatives.length; i += 1) {\n      this.plugins[plugin.alternatives[i]] = plugin;\n    }\n  }\n};\n\nUrlParser.prototype.create = function (op) {\n  if (_typeof(op) !== 'object' || _typeof(op.videoInfo) !== 'object') {\n    return undefined;\n  }\n\n  var vi = op.videoInfo;\n  var params = op.params;\n  var plugin = this.plugins[vi.provider];\n  params = params === 'internal' ? vi.params : params || {};\n\n  if (plugin) {\n    op.format = op.format || plugin.defaultFormat; // eslint-disable-next-line no-prototype-builtins\n\n    if (plugin.formats.hasOwnProperty(op.format)) {\n      return plugin.formats[op.format].apply(plugin, [vi, Object.assign({}, params)]);\n    }\n  }\n\n  return undefined;\n};\n\nfunction removeEmptyParameters(result) {\n  if (result.params && Object.keys(result.params).length === 0) {\n    delete result.params;\n  }\n\n  return result;\n}","class BlockCustomHtml extends HTMLElement {\n  constructor() {\n    super();\n    const templateId = this.getAttribute('template-id');\n    const template = document.getElementById(templateId).content.cloneNode(true);\n\n    const shadow = this.attachShadow({ mode: 'open' });\n    shadow.appendChild(template);\n  }\n}\n\nexport { BlockCustomHtml };\n","import KeenSlider from 'keen-slider';\nimport { BlockCustomHtml } from '../../../javascripts/components/BlockCustomHtml';\nimport Like from '../../../javascripts/components/Like';\nimport ViewMode from '../../../javascripts/editor/view_mode';\nimport '../../../styles/layout/_editor';\nimport { bindCustomLinkPostEvent } from '../../../javascripts/custom_link_menu'\n\nvar PageLayoutTop = {\n  requestInitPosts: function (initPostUrl) {\n    $.ajax({\n      type: 'GET',\n      url: initPostUrl,\n      dataType: 'script',\n    }).done((response) => { });\n  },\n  initPostsByCallbackAndPostTagId: function (initPostUrl, postTagId) {\n    let self = this;\n    if (window.IntersectionObserver) {\n      const options = {\n        root: null,\n        rootMargin: '100px',\n        threshold: 0,\n      };\n\n      function handleIntersect(entries) {\n        entries.forEach((entry) => {\n          if (entry.isIntersecting) {\n            self.requestInitPosts(initPostUrl);\n            observer.unobserve(entry.target);\n          }\n        });\n      }\n\n      let observer = new IntersectionObserver(handleIntersect, options);\n      observer.observe(document.querySelector(postTagId));\n    } else {\n      self.requestInitPosts(initPostUrl);\n    }\n  },\n  bindCustomLinkPostEvent: function(document) {\n    bindCustomLinkPostEvent(document)\n  },\n};\n\nif (!customElements.get('block-custom-html')) {\n  customElements.define('block-custom-html', BlockCustomHtml);\n}\n\nif (!window?.Coorum) {\n  window.Coorum = {};\n}\nwindow.Coorum.PageLayoutTop = PageLayoutTop;\nwindow.Coorum.KeenSlider = KeenSlider;\nwindow.Coorum.Like = Like;\n\n$(() => {\n  const viewMode = new ViewMode('oembed[url]');\n  viewMode.replace();\n});\n","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import {  jqueryAjaxBeforeSend } from \"./api_utils\";\n\n\nexport const initCustomLinkMenu = () => {\n  document.addEventListener(\"DOMContentLoaded\", () => {\n    bindCustomLinkMenuEvent(document);\n    bindCustomLinkPostEvent(document);\n  });\n};\n\nexport const bindCustomLinkMenuEvent = (el) => {\n  const customeLinks = $(el).find(\".st-Nav_Link[href^=http],.st-GroupedNav_Link[href^=http],.st-NavFooter_Link[href^=http]\");\n  customeLinks.each(function () {\n    $(this).on(\"click\", function (e) {\n      $.ajax({\n        type: 'GET',\n        url: `/menus/${this.dataset.id}`,\n        async: true,\n        data: { id: this.dataset.id },\n        beforeSend: jqueryAjaxBeforeSend,\n      }).done(function (data) {\n        ;\n      });\n    });\n  });\n};\n\nexport const bindCustomLinkPostEvent = (el) => {\n  const customeLinks = $(el).find(\".announcement-custom-link[href^=http]\");\n  customeLinks.each(function () {\n    $(this).on(\"click\", function (e) {\n      $.ajax({\n        type: 'GET',\n        url: `/announcements/${this.dataset.id}/custom_link_postproc`,\n        async: true,\n        data: { id: this.dataset.id },\n        beforeSend: jqueryAjaxBeforeSend,\n      }).done(function (data) {\n        ;\n      });\n    });\n  });\n};\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n\n  wait = toNumber(wait) || 0;\n\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time; // Start the timer for the trailing edge.\n\n    timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n    return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n\n    return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n  }\n\n  function timerExpired() {\n    var time = now();\n\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    } // Restart the timer.\n\n\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n\n    return result;\n  }\n\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar _Symbol = root.Symbol;\nmodule.exports = _Symbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","var _n = function n() {\n  return _n = Object.assign || function (n) {\n    for (var t, i = 1, e = arguments.length; i < e; i++) {\n      for (var r in t = arguments[i]) {\n        Object.prototype.hasOwnProperty.call(t, r) && (n[r] = t[r]);\n      }\n    }\n\n    return n;\n  }, _n.apply(this, arguments);\n};\n\nfunction t(n, t, i) {\n  if (i || 2 === arguments.length) for (var e, r = 0, a = t.length; r < a; r++) {\n    !e && r in t || (e || (e = Array.prototype.slice.call(t, 0, r)), e[r] = t[r]);\n  }\n  return n.concat(e || Array.prototype.slice.call(t));\n}\n\nfunction i(n) {\n  return Array.prototype.slice.call(n);\n}\n\nfunction e() {\n  return Date.now();\n}\n\nfunction r(n, t, i) {\n  if (t = \"data-keen-slider-\" + t, null === i) return n.removeAttribute(t);\n  n.setAttribute(t, i || \"\");\n}\n\nfunction a(n, t) {\n  return t = t || document, \"function\" == typeof n && (n = n(t)), Array.isArray(n) ? n : \"string\" == typeof n ? i(t.querySelectorAll(n)) : n instanceof HTMLElement ? [n] : n instanceof NodeList ? i(n) : [];\n}\n\nfunction o(n) {\n  n.raw && (n = n.raw), n.cancelable && !n.defaultPrevented && n.preventDefault();\n}\n\nfunction u(n) {\n  n.raw && (n = n.raw), n.stopPropagation && n.stopPropagation();\n}\n\nfunction s() {\n  var n = [];\n  return {\n    add: function add(t, i, e, r) {\n      t.addListener ? t.addListener(e) : t.addEventListener(i, e, r), n.push([t, i, e, r]);\n    },\n    input: function input(n, t, i, e) {\n      this.add(n, t, function (n) {\n        return function (t) {\n          t.nativeEvent && (t = t.nativeEvent);\n          var i = t.changedTouches || [],\n              e = t.targetTouches || [],\n              r = t.detail && t.detail.x ? t.detail : null;\n          return n({\n            id: r ? r.identifier ? r.identifier : \"i\" : e[0] ? e[0] ? e[0].identifier : \"e\" : \"d\",\n            idChanged: r ? r.identifier ? r.identifier : \"i\" : i[0] ? i[0] ? i[0].identifier : \"e\" : \"d\",\n            raw: t,\n            x: r && r.x ? r.x : e[0] ? e[0].screenX : r ? r.x : t.pageX,\n            y: r && r.y ? r.y : e[0] ? e[0].screenY : r ? r.y : t.pageY\n          });\n        };\n      }(i), e);\n    },\n    purge: function purge() {\n      n.forEach(function (n) {\n        n[0].removeListener ? n[0].removeListener(n[2]) : n[0].removeEventListener(n[1], n[2], n[3]);\n      }), n = [];\n    }\n  };\n}\n\nfunction c(n, t, i) {\n  return Math.min(Math.max(n, t), i);\n}\n\nfunction d(n) {\n  return (n > 0 ? 1 : 0) - (n < 0 ? 1 : 0) || +n;\n}\n\nfunction l(n) {\n  return n.getBoundingClientRect();\n}\n\nfunction f(n, t, i, e) {\n  var r = n && n[t];\n  return null == r ? i : e && \"function\" == typeof r ? r() : r;\n}\n\nfunction p(n) {\n  return Math.round(1e6 * n) / 1e6;\n}\n\nfunction v(n) {\n  var t, i, e, r, a, o;\n\n  function u(t) {\n    o || (o = t), s(!0);\n    var a = t - o;\n    a > e && (a = e);\n    var l = r[i];\n    if (l[3] < a) return i++, u(t);\n    var f = l[2],\n        p = l[4],\n        v = l[0],\n        m = l[1] * (0, l[5])(0 === p ? 1 : (a - f) / p);\n    if (m && n.track.to(v + m), a < e) return d();\n    o = null, s(!1), c(null), n.emit(\"animationEnded\");\n  }\n\n  function s(n) {\n    t.active = n;\n  }\n\n  function c(n) {\n    t.targetIdx = n;\n  }\n\n  function d() {\n    var n;\n    n = u, a = window.requestAnimationFrame(n);\n  }\n\n  function l() {\n    var t;\n    t = a, window.cancelAnimationFrame(t), s(!1), c(null), o && n.emit(\"animationStopped\"), o = null;\n  }\n\n  return t = {\n    active: !1,\n    start: function start(t) {\n      if (l(), n.track.details) {\n        var a = 0,\n            o = n.track.details.position;\n        i = 0, e = 0, r = t.map(function (n) {\n          var t,\n              i = o,\n              r = null !== (t = n.earlyExit) && void 0 !== t ? t : n.duration,\n              u = n.easing,\n              s = n.distance * u(r / n.duration) || 0;\n          o += s;\n          var c = e;\n          return e += r, a += s, [i, n.distance, c, e, n.duration, u];\n        }), c(n.track.distToIdx(a)), d(), n.emit(\"animationStarted\");\n      }\n    },\n    stop: l,\n    targetIdx: null\n  };\n}\n\nfunction m(n) {\n  var i,\n      r,\n      a,\n      o,\n      u,\n      s,\n      l,\n      v,\n      m,\n      h,\n      g,\n      b,\n      x,\n      y = 1 / 0,\n      k = [],\n      w = null,\n      M = 0;\n\n  function T(n) {\n    _(M + n);\n  }\n\n  function C(n) {\n    var t = E(M + n).abs;\n    return A(t) ? t : null;\n  }\n\n  function E(n) {\n    var i = Math.floor(Math.abs(n / r)),\n        e = (n % r + r) % r,\n        a = d(n),\n        o = l.indexOf(t([], l, !0).reduce(function (n, t) {\n      return Math.abs(t - e) < Math.abs(n - e) ? t : n;\n    })),\n        u = o;\n    return a < 0 && 0 !== e && i++, o === s && (u = 0, i += a > 0 ? 1 : -1), {\n      abs: u + i * s * a,\n      origin: o,\n      rel: u\n    };\n  }\n\n  function z(n, t, i) {\n    var e;\n    if (t || !L()) return I(n, i);\n    if (!A(n)) return null;\n    var r = E(null != i ? i : M),\n        a = r.abs,\n        o = n - r.rel,\n        u = a + o;\n    e = I(u);\n    var c = I(u - s * Math.sign(o));\n    return (null !== c && Math.abs(c) < Math.abs(e) || null === e) && (e = c), p(e);\n  }\n\n  function I(n, t) {\n    if (null == t && (t = p(M)), !A(n) || null === n) return null;\n    n = Math.round(n);\n    var i = E(t),\n        e = i.abs,\n        a = i.rel,\n        o = i.origin,\n        u = S(n),\n        c = (t % r + r) % r,\n        d = l[o],\n        f = Math.floor((n - (e - a)) / s) * r;\n    return p(d - c - d + l[u] + f + (o === s ? r : 0));\n  }\n\n  function A(n) {\n    return D(n) === n;\n  }\n\n  function D(n) {\n    return c(n, v, m);\n  }\n\n  function L() {\n    return o.loop;\n  }\n\n  function S(n) {\n    return (n % s + s) % s;\n  }\n\n  function _(t) {\n    var i;\n    i = t - M, k.push({\n      distance: i,\n      timestamp: e()\n    }), k.length > 6 && (k = k.slice(-6)), M = Math.round(1e6 * t) / 1e6;\n    var r = O().abs;\n\n    if (r !== w) {\n      var a = null !== w;\n      w = r, a && n.emit(\"slideChanged\");\n    }\n  }\n\n  function O(t) {\n    var e = t ? null : function () {\n      if (s) {\n        var n = L(),\n            t = n ? (M % r + r) % r : M,\n            i = (n ? M % r : M) - u[0][2],\n            e = 0 - (i < 0 && n ? r - Math.abs(i) : i),\n            c = 0,\n            l = E(M),\n            f = l.abs,\n            p = l.rel,\n            y = u[p][2],\n            k = u.map(function (t, i) {\n          var a = e + c;\n          (a < 0 - t[0] || a > 1) && (a += (Math.abs(a) > r - 1 && n ? r : 0) * d(-a));\n          var u = i - p,\n              l = Math.sign(u),\n              v = u + f;\n          n && (-1 === l && a > y && (v += s), 1 === l && a < y && (v -= s), null !== h && v < h && (a += r), null !== g && v > g && (a -= r));\n          var m = a + t[0] + t[1],\n              b = Math.max(a >= 0 && m <= 1 ? 1 : m < 0 || a > 1 ? 0 : a < 0 ? Math.min(1, (t[0] + a) / t[0]) : (1 - a) / t[0], 0);\n          return c += t[0] + t[1], {\n            abs: v,\n            distance: o.rtl ? -1 * a + 1 - t[0] : a,\n            portion: b,\n            size: t[0]\n          };\n        });\n        return f = D(f), p = S(f), {\n          abs: D(f),\n          length: a,\n          max: x,\n          maxIdx: m,\n          min: b,\n          minIdx: v,\n          position: M,\n          progress: n ? t / r : M / a,\n          rel: p,\n          slides: k\n        };\n      }\n    }();\n    return i.details = e, n.emit(\"detailsChanged\"), e;\n  }\n\n  return i = {\n    absToRel: S,\n    add: T,\n    details: null,\n    distToIdx: C,\n    idxToDist: z,\n    init: function init(t) {\n      if (function () {\n        if (o = n.options, u = (o.trackConfig || []).map(function (n) {\n          return [f(n, \"size\", 1), f(n, \"spacing\", 0), f(n, \"origin\", 0)];\n        }), s = u.length) {\n          r = p(u.reduce(function (n, t) {\n            return n + t[0] + t[1];\n          }, 0));\n          var t = s - 1;\n          a = p(r + u[0][2] - u[t][0] - u[t][2] - u[t][1]), (l = u.reduce(function (n, t) {\n            if (!n) return [0];\n            var i = u[n.length - 1],\n                e = n[n.length - 1] + (i[0] + i[2]) + i[1];\n            return e -= t[2], n[n.length - 1] > e && (e = n[n.length - 1]), n.push(e), n;\n          }, null)).push(r);\n        }\n      }(), !s) return O(!0);\n      var i;\n      !function () {\n        var t = n.options.range,\n            i = n.options.loop;\n        h = v = i ? f(i, \"min\", -1 / 0) : 0, g = m = i ? f(i, \"max\", y) : u.length - 1;\n        var e = f(t, \"min\", null),\n            r = f(t, \"max\", null);\n        e && (v = e), r && (m = r), b = v === -1 / 0 ? v : n.track.idxToDist(v || 0, !0, 0), x = m === y ? m : z(m, !0, 0), null === r && (g = m), f(t, \"align\", !1) && m !== y && 0 === u[S(m)][2] && (x -= 1 - u[S(m)][0], m = C(x)), b = p(b), x = p(x);\n      }(), i = t, Number(i) === i ? T(I(D(t))) : O();\n    },\n    to: _,\n    velocity: function velocity() {\n      var n = e(),\n          t = k.reduce(function (t, i) {\n        var e = i.distance,\n            r = i.timestamp;\n        return n - r > 200 || (d(e) !== d(t.distance) && t.distance && (t = {\n          distance: 0,\n          lastTimestamp: 0,\n          time: 0\n        }), t.time && (t.distance += e), t.lastTimestamp && (t.time += r - t.lastTimestamp), t.lastTimestamp = r), t;\n      }, {\n        distance: 0,\n        lastTimestamp: 0,\n        time: 0\n      });\n      return t.distance / t.time || 0;\n    }\n  };\n}\n\nfunction h(n) {\n  var t, i, e, r, a, o, u;\n\n  function s(n) {\n    return 2 * n;\n  }\n\n  function l(n) {\n    return c(n, o, u);\n  }\n\n  function f(n) {\n    return 1 - Math.pow(1 - n, 3);\n  }\n\n  function p() {\n    h();\n    var t = \"free-snap\" === n.options.mode,\n        i = n.track,\n        o = i.velocity();\n    e = d(o);\n    var u = n.track.details,\n        c = [];\n\n    if (o || !t) {\n      var p = v(o),\n          m = p.dist,\n          g = p.dur;\n\n      if (g = s(g), m *= e, t) {\n        var b = i.idxToDist(i.distToIdx(m), !0);\n        b && (m = b);\n      }\n\n      c.push({\n        distance: m,\n        duration: g,\n        easing: f\n      });\n      var x = u.position,\n          y = x + m;\n\n      if (y < r || y > a) {\n        var k = y < r ? r - x : a - x,\n            w = 0,\n            M = o;\n\n        if (d(k) === e) {\n          var T = Math.min(Math.abs(k) / Math.abs(m), 1),\n              C = function (n) {\n            return 1 - Math.pow(1 - n, 1 / 3);\n          }(T) * g;\n\n          c[0].earlyExit = C, M = o * (1 - T);\n        } else c[0].earlyExit = 0, w += k;\n\n        var E = v(M, 100),\n            z = E.dist * e;\n        n.options.rubberband && (c.push({\n          distance: z,\n          duration: s(E.dur),\n          easing: f\n        }), c.push({\n          distance: -z + w,\n          duration: 500,\n          easing: f\n        }));\n      }\n\n      n.animator.start(c);\n    } else n.moveToIdx(l(u.abs), !0, {\n      duration: 500,\n      easing: function easing(n) {\n        return 1 + --n * n * n * n * n;\n      }\n    });\n  }\n\n  function v(n, t) {\n    void 0 === t && (t = 1e3);\n    var i = 147e-9 + (n = Math.abs(n)) / t;\n    return {\n      dist: Math.pow(n, 2) / i,\n      dur: n / i\n    };\n  }\n\n  function m() {\n    var t = n.track.details;\n    t && (r = t.min, a = t.max, o = t.minIdx, u = t.maxIdx);\n  }\n\n  function h() {\n    n.animator.stop();\n  }\n\n  n.on(\"updated\", m), n.on(\"optionsChanged\", m), n.on(\"created\", m), n.on(\"dragStarted\", function () {\n    h(), t = i = n.track.details.abs;\n  }), n.on(\"dragEnded\", function () {\n    var e = n.options.mode;\n    \"snap\" === e && function () {\n      var e = n.track,\n          o = n.track.details,\n          u = o.position,\n          s = d(e.velocity());\n      (u > a || u < r) && (s = 0);\n      var c = t + s;\n      0 === o.slides[e.absToRel(c)].portion && (c -= s), t !== i && (c = i), d(e.idxToDist(c, !0)) !== s && (c += s), c = l(c);\n      var f = e.idxToDist(c, !0);\n      n.animator.start([{\n        distance: f,\n        duration: 500,\n        easing: function easing(n) {\n          return 1 + --n * n * n * n * n;\n        }\n      }]);\n    }(), \"free\" !== e && \"free-snap\" !== e || p();\n  }), n.on(\"dragged\", function () {\n    i = n.track.details.abs;\n  });\n}\n\nfunction g(n) {\n  var t,\n      i,\n      e,\n      l,\n      f,\n      p,\n      v,\n      m,\n      h,\n      g,\n      b,\n      x,\n      y,\n      k,\n      w,\n      M,\n      T,\n      C,\n      E = s();\n\n  function z(a) {\n    if (p && m === a.id) {\n      var s = L(a);\n\n      if (h) {\n        if (!D(a)) return A(a);\n        g = s, h = !1, n.emit(\"dragChecked\");\n      }\n\n      if (M) return g = s;\n      o(a);\n\n      var y = function (t) {\n        if (T === -1 / 0 && C === 1 / 0) return t;\n        var e = n.track.details,\n            r = e.length,\n            a = e.position,\n            o = c(t, T - a, C - a);\n        if (0 === r) return 0;\n        if (!n.options.rubberband) return o;\n        if (a <= C && a >= T) return t;\n        if (a < T && i > 0 || a > C && i < 0) return t;\n        var u = (a < T ? a - T : a - C) / r,\n            s = l * r,\n            d = Math.abs(u * s),\n            p = Math.max(0, 1 - d / f * 2);\n        return p * p * t;\n      }(v(g - s) / l * e);\n\n      i = d(y);\n      var k = n.track.details.position;\n      (k > T && k < C || k === T && i > 0 || k === C && i < 0) && u(a), b += y, !x && Math.abs(b * l) > 5 && (x = !0, r(t, \"moves\", \"\")), n.track.add(y), g = s, n.emit(\"dragged\");\n    }\n  }\n\n  function I(t) {\n    !p && n.track.details && n.track.details.length && (x = !1, b = 0, p = !0, h = !0, m = t.id, D(t), g = L(t), n.emit(\"dragStarted\"));\n  }\n\n  function A(i) {\n    p && m === i.idChanged && (r(t, \"moves\", null), p = !1, n.emit(\"dragEnded\"));\n  }\n\n  function D(n) {\n    var t = S(),\n        i = t ? n.y : n.x,\n        e = t ? n.x : n.y,\n        r = void 0 !== y && void 0 !== k && Math.abs(k - e) <= Math.abs(y - i);\n    return y = i, k = e, r;\n  }\n\n  function L(n) {\n    return S() ? n.y : n.x;\n  }\n\n  function S() {\n    return n.options.vertical;\n  }\n\n  function _() {\n    l = n.size, f = S() ? window.innerHeight : window.innerWidth;\n    var t = n.track.details;\n    t && (T = t.min, C = t.max);\n  }\n\n  function O() {\n    if (E.purge(), n.options.drag && !n.options.disabled) {\n      var i;\n      i = n.options.dragSpeed || 1, v = \"function\" == typeof i ? i : function (n) {\n        return n * i;\n      }, e = n.options.rtl ? -1 : 1, _(), t = n.container, function () {\n        var n = \"data-keen-slider-clickable\";\n        a(\"[\".concat(n, \"]:not([\").concat(n, \"=false])\"), t).map(function (n) {\n          E.add(n, \"mousedown\", u), E.add(n, \"touchstart\", u);\n        });\n      }(), E.add(t, \"dragstart\", function (n) {\n        o(n);\n      }), E.input(t, \"ksDragStart\", I), E.input(t, \"ksDrag\", z), E.input(t, \"ksDragEnd\", A), E.input(t, \"mousedown\", I), E.input(t, \"mousemove\", z), E.input(t, \"mouseleave\", A), E.input(t, \"mouseup\", A), E.input(t, \"touchstart\", I, {\n        passive: !0\n      }), E.input(t, \"touchmove\", z, {\n        passive: !1\n      }), E.input(t, \"touchend\", A), E.input(t, \"touchcancel\", A), E.add(window, \"wheel\", function (n) {\n        p && o(n);\n      });\n      var r = \"data-keen-slider-scrollable\";\n      a(\"[\".concat(r, \"]:not([\").concat(r, \"=false])\"), n.container).map(function (n) {\n        return function (n) {\n          var t;\n          E.input(n, \"touchstart\", function (n) {\n            t = L(n), M = !0, w = !0;\n          }, {\n            passive: !0\n          }), E.input(n, \"touchmove\", function (i) {\n            var e = S(),\n                r = e ? n.scrollHeight - n.clientHeight : n.scrollWidth - n.clientWidth,\n                a = t - L(i),\n                u = e ? n.scrollTop : n.scrollLeft,\n                s = e && \"scroll\" === n.style.overflowY || !e && \"scroll\" === n.style.overflowX;\n            if (t = L(i), (a < 0 && u > 0 || a > 0 && u < r) && w && s) return M = !0;\n            w = !1, o(i), M = !1;\n          }), E.input(n, \"touchend\", function () {\n            M = !1;\n          });\n        }(n);\n      });\n    }\n  }\n\n  n.on(\"updated\", _), n.on(\"optionsChanged\", O), n.on(\"created\", O), n.on(\"destroyed\", E.purge);\n}\n\nfunction b(n) {\n  var t,\n      i,\n      e = null;\n\n  function r(t, i, e) {\n    n.animator.active ? o(t, i, e) : requestAnimationFrame(function () {\n      return o(t, i, e);\n    });\n  }\n\n  function a() {\n    r(!1, !1, i);\n  }\n\n  function o(i, r, a) {\n    var o = 0,\n        c = n.size,\n        d = n.track.details;\n\n    if (d && t) {\n      var l = d.slides;\n      t.forEach(function (n, t) {\n        if (i) !e && r && u(n, null, a), s(n, null, a);else {\n          if (!l[t]) return;\n          var d = l[t].size * c;\n          !e && r && u(n, d, a), s(n, l[t].distance * c - o, a), o += d;\n        }\n      });\n    }\n  }\n\n  function u(n, t, i) {\n    var e = i ? \"height\" : \"width\";\n    null !== t && (t += \"px\"), n.style[\"min-\" + e] = t, n.style[\"max-\" + e] = t;\n  }\n\n  function s(t, i, e) {\n    if (null !== i) {\n      \"performance\" === n.options.renderMode && (i = Math.round(i));\n      var r = e ? i : 0;\n      i = \"translate3d(\".concat(e ? 0 : i, \"px, \").concat(r, \"px, 0)\");\n    }\n\n    t.style.transform = i, t.style[\"-webkit-transform\"] = i;\n  }\n\n  function c() {\n    t && r(!0, !0, i), n.on(\"detailsChanged\", a, !0);\n  }\n\n  function d() {\n    r(!1, !0, i);\n  }\n\n  function l() {\n    c(), i = n.options.vertical, n.options.disabled || \"custom\" === n.options.renderMode || (e = \"auto\" === f(n.options.slides, \"perView\", null), n.on(\"detailsChanged\", a), (t = n.slides).length && d());\n  }\n\n  n.on(\"created\", l), n.on(\"optionsChanged\", l), n.on(\"updated\", d), n.on(\"destroyed\", c);\n}\n\nfunction x(t, i) {\n  return function (e) {\n    var o,\n        u,\n        c,\n        d,\n        p,\n        v,\n        m = s();\n\n    function h(n) {\n      var t;\n      r(e.container, \"reverse\", \"rtl\" !== (t = e.container, window.getComputedStyle(t, null).getPropertyValue(\"direction\")) || n ? null : \"\"), r(e.container, \"v\", e.options.vertical && !n ? \"\" : null), r(e.container, \"disabled\", e.options.disabled && !n ? \"\" : null);\n    }\n\n    function g() {\n      b() && M();\n    }\n\n    function b() {\n      var t = null;\n      if (d.forEach(function (n) {\n        n.matches && (t = n.__media);\n      }), t === o) return !1;\n      o = t;\n      var i = t ? c.breakpoints[t] : c;\n      return e.options = _n(_n({}, c), i), h(), I(), A(), C(), !0;\n    }\n\n    function x(n) {\n      var t = l(n);\n      return (e.options.vertical ? t.height : t.width) / e.size || 1;\n    }\n\n    function y() {\n      return e.options.trackConfig.length;\n    }\n\n    function k(t) {\n      for (var r in o = !1, c = _n(_n({}, i), t), m.purge(), u = e.size, d = [], c.breakpoints || []) {\n        var a = window.matchMedia(r);\n        a.__media = r, d.push(a), m.add(a, \"change\", g);\n      }\n\n      m.add(window, \"orientationchange\", z), m.add(window, \"resize\", E), b();\n    }\n\n    function w(n) {\n      e.animator.stop();\n      var t = e.track.details;\n      e.track.init(null != n ? n : t ? t.abs : 0);\n    }\n\n    function M(n) {\n      w(n), e.emit(\"optionsChanged\");\n    }\n\n    function T(n, t) {\n      if (n) return k(n), void M(t);\n      I(), A();\n      var i = y();\n      C(), y() !== i ? M(t) : w(t), e.emit(\"updated\");\n    }\n\n    function C() {\n      var n = e.options.slides;\n      if (\"function\" == typeof n) return e.options.trackConfig = n(e.size, e.slides);\n\n      for (var t = e.slides, i = t.length, r = \"number\" == typeof n ? n : f(n, \"number\", i, !0), a = [], o = f(n, \"perView\", 1, !0), u = f(n, \"spacing\", 0, !0) / e.size || 0, s = \"auto\" === o ? u : u / o, c = f(n, \"origin\", \"auto\"), d = 0, l = 0; l < r; l++) {\n        var p = \"auto\" === o ? x(t[l]) : 1 / o - u + s,\n            v = \"center\" === c ? .5 - p / 2 : \"auto\" === c ? 0 : c;\n        a.push({\n          origin: v,\n          size: p,\n          spacing: u\n        }), d += p;\n      }\n\n      if (d += u * (r - 1), \"auto\" === c && !e.options.loop && 1 !== o) {\n        var m = 0;\n        a.map(function (n) {\n          var t = d - m;\n          return m += n.size + u, t >= 1 || (n.origin = 1 - t - (d > 1 ? 0 : 1 - d)), n;\n        });\n      }\n\n      e.options.trackConfig = a;\n    }\n\n    function E() {\n      I();\n      var n = e.size;\n      e.options.disabled || n === u || (u = n, T());\n    }\n\n    function z() {\n      E(), setTimeout(E, 500), setTimeout(E, 2e3);\n    }\n\n    function I() {\n      var n = l(e.container);\n      e.size = (e.options.vertical ? n.height : n.width) || 1;\n    }\n\n    function A() {\n      e.slides = a(e.options.selector, e.container);\n    }\n\n    e.container = (v = a(t, p || document)).length ? v[0] : null, e.destroy = function () {\n      m.purge(), e.emit(\"destroyed\"), h(!0);\n    }, e.prev = function () {\n      e.moveToIdx(e.track.details.abs - 1, !0);\n    }, e.next = function () {\n      e.moveToIdx(e.track.details.abs + 1, !0);\n    }, e.update = T, k(e.options);\n  };\n}\n\nvar y = function y(n, i, e) {\n  try {\n    return function (n, t) {\n      var i,\n          e = {};\n      return i = {\n        emit: function emit(n) {\n          e[n] && e[n].forEach(function (n) {\n            n(i);\n          });\n          var t = i.options[n];\n          t && t(i);\n        },\n        moveToIdx: function moveToIdx(n, t, e) {\n          var r = i.track.idxToDist(n, t);\n\n          if (r) {\n            var a = i.options.defaultAnimation;\n            i.animator.start([{\n              distance: r,\n              duration: f(e || a, \"duration\", 500),\n              easing: f(e || a, \"easing\", function (n) {\n                return 1 + --n * n * n * n * n;\n              })\n            }]);\n          }\n        },\n        on: function on(n, t, i) {\n          void 0 === i && (i = !1), e[n] || (e[n] = []);\n          var r = e[n].indexOf(t);\n          r > -1 ? i && delete e[n][r] : i || e[n].push(t);\n        },\n        options: n\n      }, function () {\n        if (i.track = m(i), i.animator = v(i), t) for (var n in t) {\n          var e = t[n];\n          e && e(i);\n        }\n        i.track.init(i.options.initial || 0), i.emit(\"created\");\n      }(), i;\n    }(i, t([x(n, {\n      drag: !0,\n      mode: \"snap\",\n      renderMode: \"precision\",\n      rubberband: !0,\n      selector: \".keen-slider__slide\"\n    }), b, g, h], e || [], !0));\n  } catch (n) {\n    console.error(n);\n  }\n};\n\nexport { y as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = _typeof(value);\n\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n  return this;\n}();\n\ntry {\n  // This works if eval is allowed (see CSP)\n  g = g || new Function(\"return this\")();\n} catch (e) {\n  // This works if the window reference is available\n  if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\nfunction isSymbol(value) {\n  return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","var _Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n\n  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","var _Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n\n  return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && _typeof(value) == 'object';\n}\n\nmodule.exports = isObjectLike;","var root = require('./_root');\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\n\nvar now = function now() {\n  return root.Date.now();\n};\n\nmodule.exports = now;","var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar NAN = 0 / 0;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n\n  if (isSymbol(value)) {\n    return NAN;\n  }\n\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? other + '' : other;\n  }\n\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = toNumber;","var trimmedEndIndex = require('./_trimmedEndIndex');\n/** Used to match leading whitespace. */\n\n\nvar reTrimStart = /^\\s+/;\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\nfunction baseTrim(string) {\n  return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\n\nmodule.exports = baseTrim;","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (global, factory) {\n  (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.urlParser = factory());\n})(this, function () {\n  'use strict';\n\n  function _typeof(obj) {\n    \"@babel/helpers - typeof\";\n\n    if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n      _typeof = function _typeof(obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function _typeof(obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n    }\n\n    return _typeof(obj);\n  }\n\n  var getQueryParams = function getQueryParams(qs) {\n    if (typeof qs !== 'string') {\n      return {};\n    }\n\n    qs = qs.split('+').join(' ');\n    var params = {};\n    var match = qs.match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);\n    var split;\n\n    if (match === null) {\n      return {};\n    }\n\n    split = match[0].substr(1).split(/[&#=]/);\n\n    for (var i = 0; i < split.length; i += 2) {\n      params[decodeURIComponent(split[i])] = decodeURIComponent(split[i + 1] || '');\n    }\n\n    return params;\n  };\n\n  var combineParams = function combineParams(params, hasParams) {\n    if (_typeof(params) !== 'object') {\n      return '';\n    }\n\n    var combined = '';\n    var i = 0;\n    var keys = Object.keys(params);\n\n    if (keys.length === 0) {\n      return '';\n    } //always have parameters in the same order\n\n\n    keys.sort();\n\n    if (!hasParams) {\n      combined += '?' + keys[0] + '=' + params[keys[0]];\n      i += 1;\n    }\n\n    for (; i < keys.length; i += 1) {\n      combined += '&' + keys[i] + '=' + params[keys[i]];\n    }\n\n    return combined;\n  }; //parses strings like 1h30m20s to seconds\n\n\n  function getLetterTime(timeString) {\n    var totalSeconds = 0;\n    var timeValues = {\n      's': 1,\n      'm': 1 * 60,\n      'h': 1 * 60 * 60,\n      'd': 1 * 60 * 60 * 24,\n      'w': 1 * 60 * 60 * 24 * 7\n    };\n    var timePairs; //expand to \"1 h 30 m 20 s\" and split\n\n    timeString = timeString.replace(/([smhdw])/g, ' $1 ').trim();\n    timePairs = timeString.split(' ');\n\n    for (var i = 0; i < timePairs.length; i += 2) {\n      totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs[i + 1] || 's'];\n    }\n\n    return totalSeconds;\n  } //parses strings like 1:30:20 to seconds\n\n\n  function getColonTime(timeString) {\n    var totalSeconds = 0;\n    var timeValues = [1, 1 * 60, 1 * 60 * 60, 1 * 60 * 60 * 24, 1 * 60 * 60 * 24 * 7];\n    var timePairs = timeString.split(':');\n\n    for (var i = 0; i < timePairs.length; i++) {\n      totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs.length - i - 1];\n    }\n\n    return totalSeconds;\n  }\n\n  var getTime = function getTime(timeString) {\n    if (typeof timeString === 'undefined') {\n      return 0;\n    }\n\n    if (timeString.match(/^(\\d+[smhdw]?)+$/)) {\n      return getLetterTime(timeString);\n    }\n\n    if (timeString.match(/^(\\d+:?)+$/)) {\n      return getColonTime(timeString);\n    }\n\n    return 0;\n  };\n\n  var util = {\n    getQueryParams: getQueryParams,\n    combineParams: combineParams,\n    getTime: getTime\n  };\n  var getQueryParams$1 = util.getQueryParams;\n\n  function UrlParser() {\n    for (var _i = 0, _arr = ['parseProvider', 'parse', 'bind', 'create']; _i < _arr.length; _i++) {\n      var key = _arr[_i];\n      this[key] = this[key].bind(this);\n    }\n\n    this.plugins = {};\n  }\n\n  var urlParser = UrlParser;\n\n  UrlParser.prototype.parseProvider = function (url) {\n    var match = url.match(/(?:(?:https?:)?\\/\\/)?(?:[^.]+\\.)?(\\w+)\\./i);\n    return match ? match[1] : undefined;\n  };\n\n  UrlParser.prototype.parse = function (url) {\n    if (typeof url === 'undefined') {\n      return undefined;\n    }\n\n    var provider = this.parseProvider(url);\n    var result;\n    var plugin = this.plugins[provider];\n\n    if (!provider || !plugin || !plugin.parse) {\n      return undefined;\n    }\n\n    result = plugin.parse.call(plugin, url, getQueryParams$1(url));\n\n    if (result) {\n      result = removeEmptyParameters(result);\n      result.provider = plugin.provider;\n    }\n\n    return result;\n  };\n\n  UrlParser.prototype.bind = function (plugin) {\n    this.plugins[plugin.provider] = plugin;\n\n    if (plugin.alternatives) {\n      for (var i = 0; i < plugin.alternatives.length; i += 1) {\n        this.plugins[plugin.alternatives[i]] = plugin;\n      }\n    }\n  };\n\n  UrlParser.prototype.create = function (op) {\n    if (_typeof(op) !== 'object' || _typeof(op.videoInfo) !== 'object') {\n      return undefined;\n    }\n\n    var vi = op.videoInfo;\n    var params = op.params;\n    var plugin = this.plugins[vi.provider];\n    params = params === 'internal' ? vi.params : params || {};\n\n    if (plugin) {\n      op.format = op.format || plugin.defaultFormat; // eslint-disable-next-line no-prototype-builtins\n\n      if (plugin.formats.hasOwnProperty(op.format)) {\n        return plugin.formats[op.format].apply(plugin, [vi, Object.assign({}, params)]);\n      }\n    }\n\n    return undefined;\n  };\n\n  function removeEmptyParameters(result) {\n    if (result.params && Object.keys(result.params).length === 0) {\n      delete result.params;\n    }\n\n    return result;\n  }\n\n  var parser = new urlParser();\n  var base = parser;\n\n  function Allocine() {\n    this.provider = 'allocine';\n    this.alternatives = [];\n    this.defaultFormat = 'embed';\n    this.formats = {\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Allocine.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:\\/video\\/player_gen_cmedia=)([A-Za-z0-9]+)/i);\n    return match ? match[1] : undefined;\n  };\n\n  Allocine.prototype.parse = function (url) {\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      id: this.parseUrl(url)\n    };\n    return result.id ? result : undefined;\n  };\n\n  Allocine.prototype.createEmbedUrl = function (vi) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    return 'https://player.allocine.fr/' + vi.id + '.html';\n  };\n\n  base.bind(new Allocine());\n  var combineParams$1 = util.combineParams;\n\n  function CanalPlus() {\n    this.provider = 'canalplus';\n    this.defaultFormat = 'embed';\n    this.formats = {\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  CanalPlus.prototype.parseParameters = function (params) {\n    delete params.vid;\n    return params;\n  };\n\n  CanalPlus.prototype.parse = function (url, params) {\n    var _this = this;\n\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      id: params.vid\n    };\n    result.params = _this.parseParameters(params);\n\n    if (!result.id) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  CanalPlus.prototype.createEmbedUrl = function (vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = 'http://player.canalplus.fr/embed/';\n    params.vid = vi.id;\n    url += combineParams$1(params);\n    return url;\n  };\n\n  base.bind(new CanalPlus());\n  var combineParams$2 = util.combineParams;\n\n  function Coub() {\n    this.provider = 'coub';\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Coub.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:embed|view)\\/([a-zA-Z\\d]+)/i);\n    return match ? match[1] : undefined;\n  };\n\n  Coub.prototype.parse = function (url, params) {\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      params: params,\n      id: this.parseUrl(url)\n    };\n\n    if (!result.id) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  Coub.prototype.createUrl = function (baseUrl, vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = baseUrl + vi.id;\n    url += combineParams$2(params);\n    return url;\n  };\n\n  Coub.prototype.createLongUrl = function (vi, params) {\n    return this.createUrl('https://coub.com/view/', vi, params);\n  };\n\n  Coub.prototype.createEmbedUrl = function (vi, params) {\n    return this.createUrl('//coub.com/embed/', vi, params);\n  };\n\n  base.bind(new Coub());\n  var combineParams$3 = util.combineParams,\n      getTime$1 = util.getTime;\n\n  function Dailymotion() {\n    this.provider = 'dailymotion';\n    this.alternatives = ['dai'];\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"short\": this.createShortUrl,\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl,\n      image: this.createImageUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Dailymotion.prototype.parseParameters = function (params) {\n    return this.parseTime(params);\n  };\n\n  Dailymotion.prototype.parseTime = function (params) {\n    if (params.start) {\n      params.start = getTime$1(params.start);\n    }\n\n    return params;\n  };\n\n  Dailymotion.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:\\/video|ly)\\/([A-Za-z0-9]+)/i);\n    return match ? match[1] : undefined;\n  };\n\n  Dailymotion.prototype.parse = function (url, params) {\n    var _this = this;\n\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      params: _this.parseParameters(params),\n      id: _this.parseUrl(url)\n    };\n    return result.id ? result : undefined;\n  };\n\n  Dailymotion.prototype.createUrl = function (base, vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    return base + vi.id + combineParams$3(params);\n  };\n\n  Dailymotion.prototype.createShortUrl = function (vi, params) {\n    return this.createUrl('https://dai.ly/', vi, params);\n  };\n\n  Dailymotion.prototype.createLongUrl = function (vi, params) {\n    return this.createUrl('https://dailymotion.com/video/', vi, params);\n  };\n\n  Dailymotion.prototype.createEmbedUrl = function (vi, params) {\n    return this.createUrl('https://www.dailymotion.com/embed/video/', vi, params);\n  };\n\n  Dailymotion.prototype.createImageUrl = function (vi, params) {\n    delete params.start;\n    return this.createUrl('https://www.dailymotion.com/thumbnail/video/', vi, params);\n  };\n\n  base.bind(new Dailymotion());\n  var combineParams$4 = util.combineParams;\n\n  function Loom() {\n    this.provider = 'loom';\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Loom.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:share|embed)\\/([a-zA-Z\\d]+)/i);\n    return match ? match[1] : undefined;\n  };\n\n  Loom.prototype.parse = function (url, params) {\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      params: params,\n      id: this.parseUrl(url)\n    };\n    return result.id ? result : undefined;\n  };\n\n  Loom.prototype.createUrl = function (baseUrl, vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = baseUrl + vi.id;\n    url += combineParams$4(params);\n    return url;\n  };\n\n  Loom.prototype.createLongUrl = function (vi, params) {\n    return this.createUrl('https://loom.com/share/', vi, params);\n  };\n\n  Loom.prototype.createEmbedUrl = function (vi, params) {\n    return this.createUrl('//loom.com/embed/', vi, params);\n  };\n\n  base.bind(new Loom());\n  var combineParams$5 = util.combineParams,\n      getTime$2 = util.getTime;\n\n  function Twitch() {\n    this.provider = 'twitch';\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video',\n      STREAM: 'stream',\n      CLIP: 'clip'\n    };\n  }\n\n  Twitch.prototype.seperateId = function (id) {\n    return {\n      pre: id[0],\n      id: id.substr(1)\n    };\n  };\n\n  Twitch.prototype.parseChannel = function (result, params) {\n    var channel = params.channel || params.utm_content || result.channel;\n    delete params.utm_content;\n    delete params.channel;\n    return channel;\n  };\n\n  Twitch.prototype.parseUrl = function (url, result, params) {\n    var match;\n    match = url.match(/(clips\\.)?twitch\\.tv\\/(?:(?:videos\\/(\\d+))|(\\w+(?:-[\\w\\d-]+)?)(?:\\/clip\\/(\\w+))?)/i);\n\n    if (match && match[2]) {\n      //video\n      result.id = 'v' + match[2];\n    } else if (params.video) {\n      //video embed\n      result.id = params.video;\n      delete params.video;\n    } else if (params.clip) {\n      //clips embed\n      result.id = params.clip;\n      result.isClip = true;\n      delete params.clip;\n    } else if (match && match[1] && match[3]) {\n      //clips.twitch.tv/id\n      result.id = match[3];\n      result.isClip = true;\n    } else if (match && match[3] && match[4]) {\n      //twitch.tv/channel/clip/id\n      result.channel = match[3];\n      result.id = match[4];\n      result.isClip = true;\n    } else if (match && match[3]) {\n      result.channel = match[3];\n    }\n\n    return result;\n  };\n\n  Twitch.prototype.parseMediaType = function (result) {\n    var mediaType;\n\n    if (result.id) {\n      if (result.isClip) {\n        mediaType = this.mediaTypes.CLIP;\n        delete result.isClip;\n      } else {\n        mediaType = this.mediaTypes.VIDEO;\n      }\n    } else if (result.channel) {\n      mediaType = this.mediaTypes.STREAM;\n    }\n\n    return mediaType;\n  };\n\n  Twitch.prototype.parseParameters = function (params) {\n    if (params.t) {\n      params.start = getTime$2(params.t);\n      delete params.t;\n    }\n\n    return params;\n  };\n\n  Twitch.prototype.parse = function (url, params) {\n    var _this = this;\n\n    var result = {};\n    result = _this.parseUrl(url, result, params);\n    result.channel = _this.parseChannel(result, params);\n    result.mediaType = _this.parseMediaType(result);\n    result.params = _this.parseParameters(params);\n    return result.channel || result.id ? result : undefined;\n  };\n\n  Twitch.prototype.createLongUrl = function (vi, params) {\n    var url = '';\n\n    if (vi.mediaType === this.mediaTypes.STREAM && vi.channel) {\n      url = 'https://twitch.tv/' + vi.channel;\n    } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      var sep = this.seperateId(vi.id);\n      url = 'https://twitch.tv/videos/' + sep.id;\n\n      if (params.start) {\n        params.t = params.start + 's';\n        delete params.start;\n      }\n    } else if (vi.mediaType === this.mediaTypes.CLIP && vi.id) {\n      if (vi.channel) {\n        url = 'https://www.twitch.tv/' + vi.channel + '/clip/' + vi.id;\n      } else {\n        url = 'https://clips.twitch.tv/' + vi.id;\n      }\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$5(params);\n    return url;\n  };\n\n  Twitch.prototype.createEmbedUrl = function (vi, params) {\n    var url = 'https://player.twitch.tv/';\n\n    if (vi.mediaType === this.mediaTypes.STREAM && vi.channel) {\n      params.channel = vi.channel;\n    } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      params.video = vi.id;\n\n      if (params.start) {\n        params.t = params.start + 's';\n        delete params.start;\n      }\n    } else if (vi.mediaType === this.mediaTypes.CLIP && vi.id) {\n      url = 'https://clips.twitch.tv/embed';\n      params.clip = vi.id;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$5(params);\n    return url;\n  };\n\n  base.bind(new Twitch());\n  var combineParams$6 = util.combineParams,\n      getTime$3 = util.getTime;\n\n  function Vimeo() {\n    this.provider = 'vimeo';\n    this.alternatives = ['vimeopro'];\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Vimeo.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:\\/showcase\\/\\d+)?(?:\\/(?:channels\\/[\\w]+|(?:(?:album\\/\\d+|groups\\/[\\w]+)\\/)?videos?))?\\/(\\d+)/i);\n    return match ? match[1] : undefined;\n  };\n\n  Vimeo.prototype.parseHash = function (url) {\n    var match = url.match(/\\/\\d+\\/(\\w+)$/i);\n    return match ? match[1] : undefined;\n  };\n\n  Vimeo.prototype.parseParameters = function (params) {\n    if (params.t) {\n      params.start = getTime$3(params.t);\n      delete params.t;\n    }\n\n    if (params.h) {\n      params.hash = params.h;\n      delete params.h;\n    }\n\n    return params;\n  };\n\n  Vimeo.prototype.parse = function (url, params) {\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      params: this.parseParameters(params),\n      id: this.parseUrl(url)\n    };\n    var hash = this.parseHash(url, params);\n\n    if (hash) {\n      result.params.hash = hash;\n    }\n\n    return result.id ? result : undefined;\n  };\n\n  Vimeo.prototype.createUrl = function (baseUrl, vi, params, type) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = baseUrl + vi.id;\n    var startTime = params.start;\n    delete params.start;\n\n    if (params.hash) {\n      if (type === 'embed') {\n        params.h = params.hash;\n      } else if (type === 'long') {\n        url += '/' + params.hash;\n      }\n\n      delete params.hash;\n    }\n\n    url += combineParams$6(params);\n\n    if (startTime) {\n      url += '#t=' + startTime;\n    }\n\n    return url;\n  };\n\n  Vimeo.prototype.createLongUrl = function (vi, params) {\n    return this.createUrl('https://vimeo.com/', vi, params, 'long');\n  };\n\n  Vimeo.prototype.createEmbedUrl = function (vi, params) {\n    return this.createUrl('//player.vimeo.com/video/', vi, params, 'embed');\n  };\n\n  base.bind(new Vimeo());\n  var combineParams$7 = util.combineParams,\n      getTime$4 = util.getTime;\n\n  function Wistia() {\n    this.provider = 'wistia';\n    this.alternatives = [];\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl,\n      embedjsonp: this.createEmbedJsonpUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video',\n      EMBEDVIDEO: 'embedvideo'\n    };\n  }\n\n  Wistia.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:(?:medias|iframe)\\/|wvideo=)([\\w-]+)/);\n    return match ? match[1] : undefined;\n  };\n\n  Wistia.prototype.parseChannel = function (url) {\n    var match = url.match(/(?:(?:https?:)?\\/\\/)?([^.]*)\\.wistia\\./);\n    var channel = match ? match[1] : undefined;\n\n    if (channel === 'fast' || channel === 'content') {\n      return undefined;\n    }\n\n    return channel;\n  };\n\n  Wistia.prototype.parseParameters = function (params, result) {\n    if (params.wtime) {\n      params.start = getTime$4(params.wtime);\n      delete params.wtime;\n    }\n\n    if (params.wvideo === result.id) {\n      delete params.wvideo;\n    }\n\n    return params;\n  };\n\n  Wistia.prototype.parseMediaType = function (result) {\n    if (result.id && result.channel) {\n      return this.mediaTypes.VIDEO;\n    } else if (result.id) {\n      delete result.channel;\n      return this.mediaTypes.EMBEDVIDEO;\n    } else {\n      return undefined;\n    }\n  };\n\n  Wistia.prototype.parse = function (url, params) {\n    var result = {\n      id: this.parseUrl(url),\n      channel: this.parseChannel(url)\n    };\n    result.params = this.parseParameters(params, result);\n    result.mediaType = this.parseMediaType(result);\n\n    if (!result.id) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  Wistia.prototype.createUrl = function (vi, params, url) {\n    if (params.start) {\n      params.wtime = params.start;\n      delete params.start;\n    }\n\n    url += combineParams$7(params);\n    return url;\n  };\n\n  Wistia.prototype.createLongUrl = function (vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = 'https://' + vi.channel + '.wistia.com/medias/' + vi.id;\n    return this.createUrl(vi, params, url);\n  };\n\n  Wistia.prototype.createEmbedUrl = function (vi, params) {\n    if (!vi.id || !(vi.mediaType === this.mediaTypes.VIDEO || vi.mediaType === this.mediaTypes.EMBEDVIDEO)) {\n      return undefined;\n    }\n\n    var url = 'https://fast.wistia.com/embed/iframe/' + vi.id;\n    return this.createUrl(vi, params, url);\n  };\n\n  Wistia.prototype.createEmbedJsonpUrl = function (vi) {\n    if (!vi.id || !(vi.mediaType === this.mediaTypes.VIDEO || vi.mediaType === this.mediaTypes.EMBEDVIDEO)) {\n      return undefined;\n    }\n\n    return 'https://fast.wistia.com/embed/medias/' + vi.id + '.jsonp';\n  };\n\n  base.bind(new Wistia());\n  var combineParams$8 = util.combineParams;\n\n  function Youku() {\n    this.provider = 'youku';\n    this.defaultFormat = 'long';\n    this.formats = {\n      embed: this.createEmbedUrl,\n      \"long\": this.createLongUrl,\n      flash: this.createFlashUrl,\n      \"static\": this.createStaticUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Youku.prototype.parseUrl = function (url) {\n    var match = url.match(/(?:(?:embed|sid)\\/|v_show\\/id_|VideoIDS=)([a-zA-Z0-9]+)/);\n    return match ? match[1] : undefined;\n  };\n\n  Youku.prototype.parseParameters = function (params) {\n    if (params.VideoIDS) {\n      delete params.VideoIDS;\n    }\n\n    return params;\n  };\n\n  Youku.prototype.parse = function (url, params) {\n    var _this = this;\n\n    var result = {\n      mediaType: this.mediaTypes.VIDEO,\n      id: _this.parseUrl(url),\n      params: _this.parseParameters(params)\n    };\n\n    if (!result.id) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  Youku.prototype.createUrl = function (baseUrl, vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = baseUrl + vi.id;\n    url += combineParams$8(params);\n    return url;\n  };\n\n  Youku.prototype.createEmbedUrl = function (vi, params) {\n    return this.createUrl('http://player.youku.com/embed/', vi, params);\n  };\n\n  Youku.prototype.createLongUrl = function (vi, params) {\n    return this.createUrl('http://v.youku.com/v_show/id_', vi, params);\n  };\n\n  Youku.prototype.createStaticUrl = function (vi, params) {\n    return this.createUrl('http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=', vi, params);\n  };\n\n  Youku.prototype.createFlashUrl = function (vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = 'http://player.youku.com/player.php/sid/' + vi.id + '/v.swf';\n    url += combineParams$8(params);\n    return url;\n  };\n\n  base.bind(new Youku());\n  var combineParams$9 = util.combineParams,\n      getTime$5 = util.getTime;\n\n  function YouTube() {\n    this.provider = 'youtube';\n    this.alternatives = ['youtu', 'ytimg'];\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"short\": this.createShortUrl,\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl,\n      shortImage: this.createShortImageUrl,\n      longImage: this.createLongImageUrl\n    };\n    this.imageQualities = {\n      '0': '0',\n      '1': '1',\n      '2': '2',\n      '3': '3',\n      DEFAULT: 'default',\n      HQDEFAULT: 'hqdefault',\n      SDDEFAULT: 'sddefault',\n      MQDEFAULT: 'mqdefault',\n      MAXRESDEFAULT: 'maxresdefault'\n    };\n    this.defaultImageQuality = this.imageQualities.HQDEFAULT;\n    this.mediaTypes = {\n      VIDEO: 'video',\n      PLAYLIST: 'playlist',\n      SHARE: 'share',\n      CHANNEL: 'channel'\n    };\n  }\n\n  YouTube.prototype.parseVideoUrl = function (url) {\n    var match = url.match(/(?:(?:v|vi|be|videos|embed)\\/(?!videoseries)|(?:v|ci)=)([\\w-]{11})/i);\n    return match ? match[1] : undefined;\n  };\n\n  YouTube.prototype.parseChannelUrl = function (url) {\n    // Match an opaque channel ID\n    var match = url.match(/\\/channel\\/([\\w-]+)/);\n\n    if (match) {\n      return {\n        id: match[1],\n        mediaType: this.mediaTypes.CHANNEL\n      };\n    } // Match a vanity channel name or a user name. User urls are deprecated and\n    // currently redirect to the channel of that same name.\n\n\n    match = url.match(/\\/(?:c|user)\\/([\\w-]+)/);\n\n    if (match) {\n      return {\n        name: match[1],\n        mediaType: this.mediaTypes.CHANNEL\n      };\n    }\n  };\n\n  YouTube.prototype.parseParameters = function (params, result) {\n    if (params.start || params.t) {\n      params.start = getTime$5(params.start || params.t);\n      delete params.t;\n    }\n\n    if (params.v === result.id) {\n      delete params.v;\n    }\n\n    if (params.list === result.id) {\n      delete params.list;\n    }\n\n    return params;\n  };\n\n  YouTube.prototype.parseMediaType = function (result) {\n    if (result.params.list) {\n      result.list = result.params.list;\n      delete result.params.list;\n    }\n\n    if (result.id && !result.params.ci) {\n      result.mediaType = this.mediaTypes.VIDEO;\n    } else if (result.list) {\n      delete result.id;\n      result.mediaType = this.mediaTypes.PLAYLIST;\n    } else if (result.params.ci) {\n      delete result.params.ci;\n      result.mediaType = this.mediaTypes.SHARE;\n    } else {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  YouTube.prototype.parse = function (url, params) {\n    var channelResult = this.parseChannelUrl(url);\n\n    if (channelResult) {\n      return channelResult;\n    } else {\n      var result = {\n        params: params,\n        id: this.parseVideoUrl(url)\n      };\n      result.params = this.parseParameters(params, result);\n      result = this.parseMediaType(result);\n      return result;\n    }\n  };\n\n  YouTube.prototype.createShortUrl = function (vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = 'https://youtu.be/' + vi.id;\n\n    if (params.start) {\n      url += '#t=' + params.start;\n    }\n\n    return url;\n  };\n\n  YouTube.prototype.createLongUrl = function (vi, params) {\n    var url = '';\n    var startTime = params.start;\n    delete params.start;\n\n    if (vi.mediaType === this.mediaTypes.CHANNEL) {\n      if (vi.id) {\n        url += 'https://www.youtube.com/channel/' + vi.id;\n      } else if (vi.name) {\n        url += 'https://www.youtube.com/c/' + vi.name;\n      } else {\n        return undefined;\n      }\n    } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n      params.feature = 'share';\n      url += 'https://www.youtube.com/playlist';\n    } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      params.v = vi.id;\n      url += 'https://www.youtube.com/watch';\n    } else if (vi.mediaType === this.mediaTypes.SHARE && vi.id) {\n      params.ci = vi.id;\n      url += 'https://www.youtube.com/shared';\n    } else {\n      return undefined;\n    }\n\n    if (vi.list) {\n      params.list = vi.list;\n    }\n\n    url += combineParams$9(params);\n\n    if (vi.mediaType !== this.mediaTypes.PLAYLIST && startTime) {\n      url += '#t=' + startTime;\n    }\n\n    return url;\n  };\n\n  YouTube.prototype.createEmbedUrl = function (vi, params) {\n    var url = 'https://www.youtube.com/embed';\n\n    if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n      params.listType = 'playlist';\n    } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      url += '/' + vi.id; //loop hack\n\n      if (params.loop === '1') {\n        params.playlist = vi.id;\n      }\n    } else {\n      return undefined;\n    }\n\n    if (vi.list) {\n      params.list = vi.list;\n    }\n\n    url += combineParams$9(params);\n    return url;\n  };\n\n  YouTube.prototype.createImageUrl = function (baseUrl, vi, params) {\n    if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n      return undefined;\n    }\n\n    var url = baseUrl + vi.id + '/';\n    var quality = params.imageQuality || this.defaultImageQuality;\n    return url + quality + '.jpg';\n  };\n\n  YouTube.prototype.createShortImageUrl = function (vi, params) {\n    return this.createImageUrl('https://i.ytimg.com/vi/', vi, params);\n  };\n\n  YouTube.prototype.createLongImageUrl = function (vi, params) {\n    return this.createImageUrl('https://img.youtube.com/vi/', vi, params);\n  };\n\n  base.bind(new YouTube());\n  var combineParams$a = util.combineParams,\n      getTime$6 = util.getTime;\n\n  function SoundCloud() {\n    this.provider = 'soundcloud';\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      TRACK: 'track',\n      PLAYLIST: 'playlist',\n      APITRACK: 'apitrack',\n      APIPLAYLIST: 'apiplaylist'\n    };\n  }\n\n  SoundCloud.prototype.parseUrl = function (url, result) {\n    var match = url.match(/(?:m\\.)?soundcloud\\.com\\/(?:([\\w-]+)\\/(sets\\/)?)([\\w-]+)/i);\n\n    if (!match) {\n      return result;\n    }\n\n    result.channel = match[1];\n\n    if (match[1] === 'playlists' || match[2]) {\n      //playlist\n      result.list = match[3];\n    } else {\n      //track\n      result.id = match[3];\n    }\n\n    return result;\n  };\n\n  SoundCloud.prototype.parseParameters = function (params) {\n    if (params.t) {\n      params.start = getTime$6(params.t);\n      delete params.t;\n    }\n\n    return params;\n  };\n\n  SoundCloud.prototype.parseMediaType = function (result) {\n    if (result.id) {\n      if (result.channel === 'tracks') {\n        delete result.channel;\n        delete result.params.url;\n        result.mediaType = this.mediaTypes.APITRACK;\n      } else {\n        result.mediaType = this.mediaTypes.TRACK;\n      }\n    }\n\n    if (result.list) {\n      if (result.channel === 'playlists') {\n        delete result.channel;\n        delete result.params.url;\n        result.mediaType = this.mediaTypes.APIPLAYLIST;\n      } else {\n        result.mediaType = this.mediaTypes.PLAYLIST;\n      }\n    }\n\n    return result;\n  };\n\n  SoundCloud.prototype.parse = function (url, params) {\n    var result = {};\n    result = this.parseUrl(url, result);\n    result.params = this.parseParameters(params);\n    result = this.parseMediaType(result);\n\n    if (!result.id && !result.list) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  SoundCloud.prototype.createLongUrl = function (vi, params) {\n    var url = '';\n    var startTime = params.start;\n    delete params.start;\n\n    if (vi.mediaType === this.mediaTypes.TRACK && vi.id && vi.channel) {\n      url = 'https://soundcloud.com/' + vi.channel + '/' + vi.id;\n    } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list && vi.channel) {\n      url = 'https://soundcloud.com/' + vi.channel + '/sets/' + vi.list;\n    } else if (vi.mediaType === this.mediaTypes.APITRACK && vi.id) {\n      url = 'https://api.soundcloud.com/tracks/' + vi.id;\n    } else if (vi.mediaType === this.mediaTypes.APIPLAYLIST && vi.list) {\n      url = 'https://api.soundcloud.com/playlists/' + vi.list;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$a(params);\n\n    if (startTime) {\n      url += '#t=' + startTime;\n    }\n\n    return url;\n  };\n\n  SoundCloud.prototype.createEmbedUrl = function (vi, params) {\n    var url = 'https://w.soundcloud.com/player/';\n    delete params.start;\n\n    if (vi.mediaType === this.mediaTypes.APITRACK && vi.id) {\n      params.url = 'https%3A//api.soundcloud.com/tracks/' + vi.id;\n    } else if (vi.mediaType === this.mediaTypes.APIPLAYLIST && vi.list) {\n      params.url = 'https%3A//api.soundcloud.com/playlists/' + vi.list;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$a(params);\n    return url;\n  };\n\n  base.bind(new SoundCloud());\n  var combineParams$b = util.combineParams;\n\n  function TeacherTube() {\n    this.provider = 'teachertube';\n    this.alternatives = [];\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video',\n      AUDIO: 'audio',\n      DOCUMENT: 'document',\n      CHANNEL: 'channel',\n      COLLECTION: 'collection',\n      GROUP: 'group'\n    };\n  }\n\n  TeacherTube.prototype.parse = function (url, params) {\n    var result = {};\n    result.list = this.parsePlaylist(params);\n    result.params = params;\n    var match = url.match(/\\/(audio|video|document|user\\/channel|collection|group)\\/(?:[\\w-]+-)?(\\w+)/);\n\n    if (!match) {\n      return undefined;\n    }\n\n    result.mediaType = this.parseMediaType(match[1]);\n    result.id = match[2];\n    return result;\n  };\n\n  TeacherTube.prototype.parsePlaylist = function (params) {\n    if (params['playlist-id']) {\n      var list = params['playlist-id'];\n      delete params['playlist-id'];\n      return list;\n    }\n\n    return undefined;\n  };\n\n  TeacherTube.prototype.parseMediaType = function (mediaTypeMatch) {\n    switch (mediaTypeMatch) {\n      case 'audio':\n        return this.mediaTypes.AUDIO;\n\n      case 'video':\n        return this.mediaTypes.VIDEO;\n\n      case 'document':\n        return this.mediaTypes.DOCUMENT;\n\n      case 'user/channel':\n        return this.mediaTypes.CHANNEL;\n\n      case 'collection':\n        return this.mediaTypes.COLLECTION;\n\n      case 'group':\n        return this.mediaTypes.GROUP;\n    }\n  };\n\n  TeacherTube.prototype.createLongUrl = function (vi, params) {\n    if (!vi.id) {\n      return undefined;\n    }\n\n    var url = 'https://www.teachertube.com/';\n\n    if (vi.list) {\n      params['playlist-id'] = vi.list;\n    }\n\n    if (vi.mediaType === this.mediaTypes.CHANNEL) {\n      url += 'user/channel/';\n    } else {\n      url += vi.mediaType + '/';\n    }\n\n    url += vi.id;\n    url += combineParams$b(params);\n    return url;\n  };\n\n  TeacherTube.prototype.createEmbedUrl = function (vi, params) {\n    if (!vi.id) {\n      return undefined;\n    }\n\n    var url = 'https://www.teachertube.com/embed/';\n\n    if (vi.mediaType === this.mediaTypes.VIDEO || vi.mediaType === this.mediaTypes.AUDIO) {\n      url += vi.mediaType + '/' + vi.id;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$b(params);\n    return url;\n  };\n\n  base.bind(new TeacherTube());\n  var combineParams$c = util.combineParams;\n\n  function TikTok() {\n    this.provider = 'tiktok';\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  TikTok.prototype.parse = function (url, params) {\n    var result = {\n      params: params,\n      mediaType: this.mediaTypes.VIDEO\n    };\n    var match = url.match(/@([^/]+)\\/video\\/(\\d{19})/);\n\n    if (!match) {\n      return;\n    }\n\n    result.channel = match[1];\n    result.id = match[2];\n    return result;\n  };\n\n  TikTok.prototype.createLongUrl = function (vi, params) {\n    var url = '';\n\n    if (vi.mediaType === this.mediaTypes.VIDEO && vi.id && vi.channel) {\n      url += \"https://www.tiktok.com/@\".concat(vi.channel, \"/video/\").concat(vi.id);\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$c(params);\n    return url;\n  };\n\n  base.bind(new TikTok());\n  var combineParams$d = util.combineParams;\n\n  function Ted() {\n    this.provider = 'ted';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      embed: this.createEmbedUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video',\n      PLAYLIST: 'playlist'\n    };\n  }\n\n  Ted.prototype.parseUrl = function (url, result) {\n    var match = url.match(/\\/(talks|playlists\\/(\\d+))\\/([\\w-]+)/i);\n    var channel = match ? match[1] : undefined;\n\n    if (!channel) {\n      return result;\n    }\n\n    result.channel = channel.split('/')[0];\n    result.id = match[3];\n\n    if (result.channel === 'playlists') {\n      result.list = match[2];\n    }\n\n    return result;\n  };\n\n  Ted.prototype.parseMediaType = function (result) {\n    if (result.id && result.channel === 'playlists') {\n      delete result.channel;\n      result.mediaType = this.mediaTypes.PLAYLIST;\n    }\n\n    if (result.id && result.channel === 'talks') {\n      delete result.channel;\n      result.mediaType = this.mediaTypes.VIDEO;\n    }\n\n    return result;\n  };\n\n  Ted.prototype.parse = function (url, params) {\n    var result = {\n      params: params\n    };\n    result = this.parseUrl(url, result);\n    result = this.parseMediaType(result);\n\n    if (!result.id) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  Ted.prototype.createLongUrl = function (vi, params) {\n    var url = '';\n\n    if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      url += 'https://ted.com/talks/' + vi.id;\n    } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.id) {\n      url += 'https://ted.com/playlists/' + vi.list + '/' + vi.id;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$d(params);\n    return url;\n  };\n\n  Ted.prototype.createEmbedUrl = function (vi, params) {\n    var url = 'https://embed.ted.com/';\n\n    if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.id) {\n      url += 'playlists/' + vi.list + '/' + vi.id;\n    } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      url += 'talks/' + vi.id;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$d(params);\n    return url;\n  };\n\n  base.bind(new Ted());\n  var combineParams$e = util.combineParams;\n\n  function Facebook() {\n    this.provider = 'facebook';\n    this.alternatives = [];\n    this.defaultFormat = 'long';\n    this.formats = {\n      \"long\": this.createLongUrl,\n      watch: this.createWatchUrl\n    };\n    this.mediaTypes = {\n      VIDEO: 'video'\n    };\n  }\n\n  Facebook.prototype.parse = function (url, params) {\n    var result = {\n      params: params,\n      mediaType: this.mediaTypes.VIDEO\n    };\n    var match = url.match(/(?:\\/(\\d+))?\\/videos(?:\\/.*?)?\\/(\\d+)/i);\n\n    if (match) {\n      if (match[1]) {\n        result.pageId = match[1];\n      }\n\n      result.id = match[2];\n    }\n\n    if (params.v && !result.id) {\n      result.id = params.v;\n      delete params.v;\n      result.params = params;\n    }\n\n    if (!result.id) {\n      return undefined;\n    }\n\n    return result;\n  };\n\n  Facebook.prototype.createWatchUrl = function (vi, params) {\n    var url = 'https://facebook.com/watch/';\n\n    if (vi.mediaType !== this.mediaTypes.VIDEO || !vi.id) {\n      return undefined;\n    }\n\n    params = {\n      v: vi.id\n    };\n    url += combineParams$e(params);\n    return url;\n  };\n\n  Facebook.prototype.createLongUrl = function (vi, params) {\n    var url = 'https://facebook.com/';\n\n    if (vi.pageId) {\n      url += vi.pageId;\n    } else {\n      return undefined;\n    }\n\n    if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n      url += '/videos/' + vi.id;\n    } else {\n      return undefined;\n    }\n\n    url += combineParams$e(params);\n    return url;\n  };\n\n  base.bind(new Facebook());\n  var lib = base;\n  return lib;\n});","var _require = require('../util'),\n    combineParams = _require.combineParams,\n    getTime = _require.getTime;\n\nfunction YouTube() {\n  this.provider = 'youtube';\n  this.alternatives = ['youtu', 'ytimg'];\n  this.defaultFormat = 'long';\n  this.formats = {\n    \"short\": this.createShortUrl,\n    \"long\": this.createLongUrl,\n    embed: this.createEmbedUrl,\n    shortImage: this.createShortImageUrl,\n    longImage: this.createLongImageUrl\n  };\n  this.imageQualities = {\n    '0': '0',\n    '1': '1',\n    '2': '2',\n    '3': '3',\n    DEFAULT: 'default',\n    HQDEFAULT: 'hqdefault',\n    SDDEFAULT: 'sddefault',\n    MQDEFAULT: 'mqdefault',\n    MAXRESDEFAULT: 'maxresdefault'\n  };\n  this.defaultImageQuality = this.imageQualities.HQDEFAULT;\n  this.mediaTypes = {\n    VIDEO: 'video',\n    PLAYLIST: 'playlist',\n    SHARE: 'share',\n    CHANNEL: 'channel'\n  };\n}\n\nmodule.exports = YouTube;\n\nYouTube.prototype.parseVideoUrl = function (url) {\n  var match = url.match(/(?:(?:v|vi|be|videos|embed)\\/(?!videoseries)|(?:v|ci)=)([\\w-]{11})/i);\n  return match ? match[1] : undefined;\n};\n\nYouTube.prototype.parseChannelUrl = function (url) {\n  // Match an opaque channel ID\n  var match = url.match(/\\/channel\\/([\\w-]+)/);\n\n  if (match) {\n    return {\n      id: match[1],\n      mediaType: this.mediaTypes.CHANNEL\n    };\n  } // Match a vanity channel name or a user name. User urls are deprecated and\n  // currently redirect to the channel of that same name.\n\n\n  match = url.match(/\\/(?:c|user)\\/([\\w-]+)/);\n\n  if (match) {\n    return {\n      name: match[1],\n      mediaType: this.mediaTypes.CHANNEL\n    };\n  }\n};\n\nYouTube.prototype.parseParameters = function (params, result) {\n  if (params.start || params.t) {\n    params.start = getTime(params.start || params.t);\n    delete params.t;\n  }\n\n  if (params.v === result.id) {\n    delete params.v;\n  }\n\n  if (params.list === result.id) {\n    delete params.list;\n  }\n\n  return params;\n};\n\nYouTube.prototype.parseMediaType = function (result) {\n  if (result.params.list) {\n    result.list = result.params.list;\n    delete result.params.list;\n  }\n\n  if (result.id && !result.params.ci) {\n    result.mediaType = this.mediaTypes.VIDEO;\n  } else if (result.list) {\n    delete result.id;\n    result.mediaType = this.mediaTypes.PLAYLIST;\n  } else if (result.params.ci) {\n    delete result.params.ci;\n    result.mediaType = this.mediaTypes.SHARE;\n  } else {\n    return undefined;\n  }\n\n  return result;\n};\n\nYouTube.prototype.parse = function (url, params) {\n  var channelResult = this.parseChannelUrl(url);\n\n  if (channelResult) {\n    return channelResult;\n  } else {\n    var result = {\n      params: params,\n      id: this.parseVideoUrl(url)\n    };\n    result.params = this.parseParameters(params, result);\n    result = this.parseMediaType(result);\n    return result;\n  }\n};\n\nYouTube.prototype.createShortUrl = function (vi, params) {\n  if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n    return undefined;\n  }\n\n  var url = 'https://youtu.be/' + vi.id;\n\n  if (params.start) {\n    url += '#t=' + params.start;\n  }\n\n  return url;\n};\n\nYouTube.prototype.createLongUrl = function (vi, params) {\n  var url = '';\n  var startTime = params.start;\n  delete params.start;\n\n  if (vi.mediaType === this.mediaTypes.CHANNEL) {\n    if (vi.id) {\n      url += 'https://www.youtube.com/channel/' + vi.id;\n    } else if (vi.name) {\n      url += 'https://www.youtube.com/c/' + vi.name;\n    } else {\n      return undefined;\n    }\n  } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n    params.feature = 'share';\n    url += 'https://www.youtube.com/playlist';\n  } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n    params.v = vi.id;\n    url += 'https://www.youtube.com/watch';\n  } else if (vi.mediaType === this.mediaTypes.SHARE && vi.id) {\n    params.ci = vi.id;\n    url += 'https://www.youtube.com/shared';\n  } else {\n    return undefined;\n  }\n\n  if (vi.list) {\n    params.list = vi.list;\n  }\n\n  url += combineParams(params);\n\n  if (vi.mediaType !== this.mediaTypes.PLAYLIST && startTime) {\n    url += '#t=' + startTime;\n  }\n\n  return url;\n};\n\nYouTube.prototype.createEmbedUrl = function (vi, params) {\n  var url = 'https://www.youtube.com/embed';\n\n  if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n    params.listType = 'playlist';\n  } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n    url += '/' + vi.id; //loop hack\n\n    if (params.loop === '1') {\n      params.playlist = vi.id;\n    }\n  } else {\n    return undefined;\n  }\n\n  if (vi.list) {\n    params.list = vi.list;\n  }\n\n  url += combineParams(params);\n  return url;\n};\n\nYouTube.prototype.createImageUrl = function (baseUrl, vi, params) {\n  if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n    return undefined;\n  }\n\n  var url = baseUrl + vi.id + '/';\n  var quality = params.imageQuality || this.defaultImageQuality;\n  return url + quality + '.jpg';\n};\n\nYouTube.prototype.createShortImageUrl = function (vi, params) {\n  return this.createImageUrl('https://i.ytimg.com/vi/', vi, params);\n};\n\nYouTube.prototype.createLongImageUrl = function (vi, params) {\n  return this.createImageUrl('https://img.youtube.com/vi/', vi, params);\n};\n\nrequire('../base').bind(new YouTube());","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.getQueryParams = function getQueryParams(qs) {\n  if (typeof qs !== 'string') {\n    return {};\n  }\n\n  qs = qs.split('+').join(' ');\n  var params = {};\n  var match = qs.match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);\n  var split;\n\n  if (match === null) {\n    return {};\n  }\n\n  split = match[0].substr(1).split(/[&#=]/);\n\n  for (var i = 0; i < split.length; i += 2) {\n    params[decodeURIComponent(split[i])] = decodeURIComponent(split[i + 1] || '');\n  }\n\n  return params;\n};\n\nexports.combineParams = function combineParams(params, hasParams) {\n  if (_typeof(params) !== 'object') {\n    return '';\n  }\n\n  var combined = '';\n  var i = 0;\n  var keys = Object.keys(params);\n\n  if (keys.length === 0) {\n    return '';\n  } //always have parameters in the same order\n\n\n  keys.sort();\n\n  if (!hasParams) {\n    combined += '?' + keys[0] + '=' + params[keys[0]];\n    i += 1;\n  }\n\n  for (; i < keys.length; i += 1) {\n    combined += '&' + keys[i] + '=' + params[keys[i]];\n  }\n\n  return combined;\n}; //parses strings like 1h30m20s to seconds\n\n\nfunction getLetterTime(timeString) {\n  var totalSeconds = 0;\n  var timeValues = {\n    's': 1,\n    'm': 1 * 60,\n    'h': 1 * 60 * 60,\n    'd': 1 * 60 * 60 * 24,\n    'w': 1 * 60 * 60 * 24 * 7\n  };\n  var timePairs; //expand to \"1 h 30 m 20 s\" and split\n\n  timeString = timeString.replace(/([smhdw])/g, ' $1 ').trim();\n  timePairs = timeString.split(' ');\n\n  for (var i = 0; i < timePairs.length; i += 2) {\n    totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs[i + 1] || 's'];\n  }\n\n  return totalSeconds;\n} //parses strings like 1:30:20 to seconds\n\n\nfunction getColonTime(timeString) {\n  var totalSeconds = 0;\n  var timeValues = [1, 1 * 60, 1 * 60 * 60, 1 * 60 * 60 * 24, 1 * 60 * 60 * 24 * 7];\n  var timePairs = timeString.split(':');\n\n  for (var i = 0; i < timePairs.length; i++) {\n    totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs.length - i - 1];\n  }\n\n  return totalSeconds;\n}\n\nexports.getTime = function getTime(timeString) {\n  if (typeof timeString === 'undefined') {\n    return 0;\n  }\n\n  if (timeString.match(/^(\\d+[smhdw]?)+$/)) {\n    return getLetterTime(timeString);\n  }\n\n  if (timeString.match(/^(\\d+:?)+$/)) {\n    return getColonTime(timeString);\n  }\n\n  return 0;\n};","import YouTube from 'js-video-url-parser/lib/provider/youtube';\n\nconst YouTubeExtend = function () {\n  YouTube.call(this);\n};\nYouTubeExtend.prototype = Object.create(YouTube.prototype);\nYouTubeExtend.prototype.parseVideoUrl = function (url) {\n  const regex =\n    /(?:(?:v|vi|be|videos|embed|shorts)\\/(?!videoseries)|(?:v|ci)=)([\\w-]{11})/i;\n  const match = url.match(regex);\n  return match ? match[1] : undefined;\n};\nYouTubeExtend.prototype.constructor = YouTubeExtend;\n\nexport default YouTubeExtend;\n","import videoUrlParser from 'js-video-url-parser';\nimport YouTubeExtend from '../../javascripts/js-video-url-parser/provider/youtube';\nimport { fetchWithTimeout } from '../api_utils';\nvideoUrlParser.plugins.youtube = new YouTubeExtend();\n\nclass ViewMode {\n  constructor($element) {\n    this.$element = $element;\n  }\n\n  replace() {\n    document.querySelectorAll('oembed[url]').forEach(async elem => {\n      const videoInfo = videoUrlParser.parse(elem.attributes.url.value);\n\n      if (videoInfo) {\n        switch (videoInfo.provider) {\n          case 'vimeo':\n            elem.parentElement.innerHTML = this.createVideoBlock(`//player.vimeo.com/video/${videoInfo.id}`);\n            break;\n          case 'youtube':\n            elem.parentElement.innerHTML = this.createVideoBlock(`//www.youtube.com/embed/${videoInfo.id}`);\n            break;\n        }\n      }\n      else if (elem.attributes.url.value) {\n        const card = await this.createOGCard(elem.attributes.url.value);\n        elem.parentElement.innerHTML = card;\n      }\n    });\n  }\n\n  createVideoBlock(url) {\n    const videoContainer = document.createElement('div');\n    const iframe = document.createElement('iframe');\n    iframe.setAttribute('width', '100%');\n    iframe.setAttribute('height', '100%');\n    iframe.setAttribute('src', url);\n    iframe.setAttribute('frameborder', 0);\n    iframe.setAttribute('allowfullscreen', '');\n    videoContainer.className = 'video-container';\n    videoContainer.appendChild(iframe);\n    return videoContainer.outerHTML;\n  }\n\n  async createOGCard(request_url) {\n    const url = encodeURIComponent(request_url);\n    const response = await fetchWithTimeout(`/open_graph?url=${url}`);\n    const json = await response.json();\n    return json.html;\n  }\n}\n\nexport default ViewMode;\n","import _debounce from 'lodash/debounce'\n\nexport default class Like {\n  constructor(classname, sns_animation = false, rootElement = document) {\n    this.sns_animation = sns_animation\n    this.classname = classname\n    this.$buttons = rootElement.querySelectorAll(this.classname)\n    this.hide_event = null\n    this.long_touch_event = null\n\n    if (this.$buttons.length < 1) return\n\n    this.$buttons.forEach((elem, n) => this.clickEvent(elem))\n    this.$buttons.forEach((elem, n) => this.hoverEvent(elem))\n    this.$buttons.forEach((elem, n) => this.touchEvent(elem))\n  }\n\n  animationend(e) {\n    setTimeout(() => {\n      e.target.classList.add('like-anime-hidden')\n      e.target.classList.remove('like-animation')\n    }, 500)\n  }\n\n  hoverEvent(elem) {\n    const reactionPopup = document.querySelector(\n      `${this.classname}-popup[data-value=\"${elem.dataset.value}\"]`\n    )\n    if (!reactionPopup) return\n\n    elem.addEventListener(\n      'mouseout',\n      () => {\n        this.popupHide(reactionPopup)\n      }\n    )\n    elem.addEventListener(\n      'mouseover',\n      () => {\n        this.popupShowWithTimer(reactionPopup)\n        reactionPopup.addEventListener('mouseover', () => {\n          this.popupShow(reactionPopup)\n        })\n        reactionPopup.addEventListener('mouseout', () => {\n          this.popupHide(reactionPopup)\n        })\n      }\n    )\n  }\n  clickEvent(elem) {\n    const eyecatch = document.querySelector(\n      `${this.classname}-animation[data-value=\"${elem.dataset.value}\"]`\n    )\n    const reactionPopup = document.querySelector(\n      `${this.classname}-popup[data-value=\"${elem.dataset.value}\"]`\n    )\n\n    if (this.sns_animation === true) {\n      eyecatch.removeEventListener('animationend', this.animationend)\n      eyecatch.addEventListener('animationend', this.animationend)\n    }\n\n    elem.addEventListener(\n      'click',\n      _debounce(() => {\n        if (!elem.dataset.method) return\n        // 連打対策\n        elem.disabled = !elem.disabled;\n        if (elem.dataset.method === 'post' && this.sns_animation === true) {\n          eyecatch.classList.remove('like-anime-hidden')\n          eyecatch.classList.add('like-animation')\n        }\n        if (reactionPopup){\n          reactionPopup.classList.add('popup_hide')\n        }\n        return this.formAction(elem)\n      }, 400)\n    )\n  }\n\n  async formAction({ dataset }) {\n    let reactionParam = ''\n    if (dataset.reaction != null){\n      reactionParam = `&like_reaction_attributes[community_reaction_id]=${dataset.reaction}`\n    }\n    const response = await fetch(\n      `${dataset.url}?${dataset.key}_id=${dataset.value}${reactionParam}`,\n      {\n        method: dataset.method,\n        headers: {\n          'Content-Type': 'application/json',\n          'X-CSRF-Token': document\n            .querySelector('meta[name=csrf-token]')\n            .getAttribute('content'),\n        },\n      }\n    )\n\n    const text = await response.text()\n    // $.ajaxのevalの代替しで`XXX.js.haml`の処理を実施\n    await Function(`\"use strict\";return (${text})`)()\n\n    // 上記`XXX.js.haml`で生成されたDOMにEventを付与\n    const replacedButton = document.querySelector(\n      `${this.classname}[data-key=\"${dataset.key}\"][data-value=\"${dataset.value}\"]`\n    )\n\n    replacedButton.classList.add(\n      dataset.method === 'delete' ? '-unfilled' : '-filled'\n    )\n\n    this.clickEvent(replacedButton)\n    this.hoverEvent(replacedButton)\n    this.touchEvent(replacedButton)\n    const reactionPopup = document.querySelector(\n      `${this.classname}-popup[data-value=\"${dataset.value}\"]`\n    )\n    if (!reactionPopup) return\n    const replacedButtons = reactionPopup.querySelectorAll(\n      `${this.classname}[data-key=\"${dataset.key}\"][data-value=\"${dataset.value}\"]`\n    )\n    replacedButtons.forEach((elem, n) => { this.clickEvent(elem) })\n\n  }\n\n  isLessMD() {\n    if (window.matchMedia && window.matchMedia('(max-device-width: 640px)').matches) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  touchEvent(elem) {\n    if (!this.isLessMD()){ return; }\n\n    const reactionPopup = document.querySelector(\n      `${this.classname}-popup[data-value=\"${elem.dataset.value}\"]`\n    )\n    if (!reactionPopup) return\n\n    elem.addEventListener(\n      'touchstart',\n      (e) => {\n        e.preventDefault()\n        this.long_touch_event = setTimeout(() => {\n          this.popupShowWithTimer(reactionPopup,5000)\n          this.long_touch_event = null\n        }, 500)\n      }\n    )\n    elem.addEventListener(\n      'touchend',\n      (e) => {\n        if (this.long_touch_event){\n          clearTimeout(this.long_touch_event)\n          e.target.click()\n        }\n        const reactionButtons = document.querySelectorAll(\n          `.c-Button-reaction[data-value=\"${elem.dataset.value}\"]`\n        )\n        reactionButtons.forEach((elem, n) => { \n          if (elem.classList.contains('hovered')){\n            elem.click()\n            elem.classList.remove('hovered')\n            return;\n          }\n        })\n        this.popupHide(reactionPopup)\n      }\n    )\n    elem.addEventListener(\n      'touchmove',\n      (e) => {\n        const touch = e.touches[0];\n        const targetElement = document.elementFromPoint(touch.clientX, touch.clientY);\n        const reactionButtons = document.querySelectorAll(\n          `.c-Button-reaction[data-value=\"${elem.dataset.value}\"]`\n        )\n        reactionButtons.forEach((elem, n) => { \n          if (elem === targetElement.closest('.c-Button-reaction')){\n            elem.classList.add('hovered')\n          }else{\n            elem.classList.remove('hovered')\n          }\n        })\n      }\n    )\n  }\n\n  popupShowWithTimer(popupElem,duration = 1000) {\n    popupElem.classList.remove('popup_hide')\n    this.popupHide(popupElem,duration)\n  }\n\n  popupShow(popupElem) {\n    if (this.hide_event){\n      clearTimeout(this.hide_event)\n    }\n    popupElem.classList.remove('popup_hide')\n  }\n\n  popupHide(popupElem,duration = 1000) {\n    if (this.hide_event){\n      clearTimeout(this.hide_event)\n    }\n    this.hide_event = setTimeout(() => {\n      popupElem.classList.add('popup_hide')\n    }, duration)\n  }\n}\n","/**\n * usage:\n * - 1. loadingTargetを position: relative\n * - 2. loadingTargetに中に <%= render partial: 'shared/loader' %>入れる\n *\n * @param loadingTarget\n * @param disableTargets\n * @param callback\n * @returns {Promise<null|*>}\n */\nexport async function withLoadingAndDisable(loadingTarget, disableTargets, callback) {\n  try {\n    // loading\n    loadingTarget.classList.add('-loading');\n    // disable\n    if (disableTargets) {\n      disableTargets.forEach(el => {\n        el.disabled = true;\n      });\n    }\n\n    const result = await callback();\n\n    // loading off\n    loadingTarget.classList.remove('-loading');\n    // disable off\n    if (disableTargets) {\n      disableTargets.forEach(el => {\n        el.disabled = false;\n      });\n    }\n\n    return result;\n  } catch (e) {\n    console.error('error: ', e);\n\n    // loading off\n    loadingTarget.classList.remove('-loading');\n    // disable off\n    if (disableTargets) {\n      disableTargets.forEach(el => {\n        el.disabled = false;\n      });\n    }\n    return null;\n  }\n}\n\nfunction wait(ms) {\n  return new Promise(resolve => {\n    setTimeout(resolve, ms);\n  });\n}\n\n/**\n * @param requestCb\n * @param stopConditionCb\n * @param intervalMs\n * @returns {Promise<*>}\n */\nexport async function pollingRequest(requestCb, stopConditionCb, intervalMs = 5000) {\n  let result = await requestCb();\n  while (!stopConditionCb(result)) {\n    await wait(intervalMs);\n    result = await requestCb();\n  }\n  return result;\n}\n\n/**\n * @deprecated\n * use utils/csrf.util.ts\n * jsでtsは参照はできないので、getCsrfToken()を使うjsが viteからcompileされる時だけrefactoringすること\n */\nexport function getCsrfToken() {\n  return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content');\n}\n\nexport function jqueryAjaxBeforeSend(xhr) {\n  xhr.setRequestHeader('X-CSRF-Token', getCsrfToken());\n}\n\nexport function apiFailResultHandler(e, message) {\n  console.error(e);\n  if (e.responseJSON && e.responseJSON.status === 400) {\n    alert(e.responseJSON.message);\n  } else {\n    alert(message);\n  }\n}\n\nexport async function fetchWithTimeout(resource, options = {}) {\n  const { timeout = 10000 } = options;\n\n  const controller = new AbortController();\n  const id = setTimeout(() => controller.abort(), timeout);\n\n  const response = await fetch(resource, {\n    headers: {\n      'Accept': 'application/json',\n      'X-CSRF-TOKEN': getCsrfToken(),\n    },\n    ...options,\n    signal: controller.signal\n  });\n  clearTimeout(id);\n\n  return response;\n}\n\n/**\n * objectから、null, undefined, ''の値を削除して、URLSearchParamsを作成する\n * 0は残した場合があるため、truthyは使わない\n *\n * @param paramsObj\n * @returns {module:url.URLSearchParams}\n */\nexport function buildSafeURLSearchParams(paramsObj) {\n  for (const key of Object.keys(paramsObj)) {\n    if (paramsObj[key] === null || paramsObj[key] === undefined || paramsObj[key] === '') {\n      delete paramsObj[key];\n    }\n  }\n  return new URLSearchParams(paramsObj);\n}\n"],"sourceRoot":""}