{"version":3,"sources":["webpack:///./node_modules/@vimeo/player/dist/player.es.js"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","isNode","global","toString","call","getMethodName","prop","type","indexOf","toLowerCase","concat","substr","toUpperCase","isDomElement","element","Boolean","nodeType","ownerDocument","defaultView","isInteger","value","isNaN","parseFloat","isFinite","Math","floor","isVimeoUrl","url","test","getVimeoUrl","oEmbedParameters","arguments","undefined","id","idOrUrl","Error","replace","arrayIndexOfSupport","Array","postMessageSupport","window","postMessage","commonjsGlobal","globalThis","self","createCommonjsModule","fn","module","exports","WeakMap","hasOwnProperty","object","name","this","genId","checkInstance","x","methodName","isObject","prefix","rand","random","substring","entry","_id","npo_src","context","definition","builtInProp","cycle","scheduling_queue","ToString","timer","setImmediate","setTimeout","obj","val","config","err","schedule","add","drain","isThenable","o","_then","o_type","then","notify","chain","notifyIsolated","state","success","failure","cb","ret","reject","msg","promise","resolve","triggered","def","def_wrapper","MakeDefWrapper","apply","iteratePromises","arr","resolver","rejecter","idx","MakeDef","Promise","executor","__NPO__","constructor","push","first","last","item","Item","next","f","PromisePrototype","len","msgs","count","callbackMap","storeCallback","player","callback","playerCallbacks","get","set","getCallbacks","removeCallback","index","splice","shiftCallbacks","shift","swapCallbacks","oldElement","newElement","delete","getOEmbedParameters","defaults","reduce","params","param","getAttribute","createEmbed","_ref","html","querySelector","div","document","createElement","innerHTML","appendChild","firstChild","setAttribute","getOEmbedData","videoUrl","encodeURIComponent","xhr","XDomainRequest","XMLHttpRequest","open","onload","status","json","JSON","parse","responseText","domain_status_code","error","onerror","send","initializeEmbeds","parent","elements","slice","querySelectorAll","handleError","console","forEach","data","catch","resizeEmbeds","VimeoPlayerResizeEmbeds_","onMessage","event","origin","iframes","contentWindow","source","space","parentElement","style","paddingBottom","bottom","addEventListener","parseMessageData","warn","method","message","ieVersion","navigator","userAgent","stringify","processData","callbacks","promises","e","playerMap","readyMap","Player","_this","options","jQuery","getElementById","nodeName","iframe","has","_window","readyPromise","_onMessage","isError","isReadyError","isReadyEvent","isPingResponse","_originalElement","_this2","args","ready","_this3","_this4","eventName","callMethod","lastCallback","time","language","kind","_this5","removeAttribute","parentNode","removeChild","removeEventListener","autopause","color","currentTime","loop","muted","playbackRate","volume"],"mappings":"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","file":"js/chunk-2d0de528.758b263b.js","sourcesContent":["/*! @vimeo/player v2.11.0 | (c) 2020 Vimeo | MIT License | https://github.com/vimeo/player.js */\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\n/**\n * @module lib/functions\n */\n\n/**\n * Check to see this is a node environment.\n * @type {Boolean}\n */\n\n/* global global */\nvar isNode = typeof global !== 'undefined' && {}.toString.call(global) === '[object global]';\n/**\n * Get the name of the method for a given getter or setter.\n *\n * @param {string} prop The name of the property.\n * @param {string} type Either “get” or “set”.\n * @return {string}\n */\n\nfunction getMethodName(prop, type) {\n if (prop.indexOf(type.toLowerCase()) === 0) {\n return prop;\n }\n\n return \"\".concat(type.toLowerCase()).concat(prop.substr(0, 1).toUpperCase()).concat(prop.substr(1));\n}\n/**\n * Check to see if the object is a DOM Element.\n *\n * @param {*} element The object to check.\n * @return {boolean}\n */\n\nfunction isDomElement(element) {\n return Boolean(element && element.nodeType === 1 && 'nodeName' in element && element.ownerDocument && element.ownerDocument.defaultView);\n}\n/**\n * Check to see whether the value is a number.\n *\n * @see http://dl.dropboxusercontent.com/u/35146/js/tests/isNumber.html\n * @param {*} value The value to check.\n * @param {boolean} integer Check if the value is an integer.\n * @return {boolean}\n */\n\nfunction isInteger(value) {\n // eslint-disable-next-line eqeqeq\n return !isNaN(parseFloat(value)) && isFinite(value) && Math.floor(value) == value;\n}\n/**\n * Check to see if the URL is a Vimeo url.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\n\nfunction isVimeoUrl(url) {\n return /^(https?:)?\\/\\/((player|www)\\.)?vimeo\\.com(?=$|\\/)/.test(url);\n}\n/**\n * Get the Vimeo URL from an element.\n * The element must have either a data-vimeo-id or data-vimeo-url attribute.\n *\n * @param {object} oEmbedParameters The oEmbed parameters.\n * @return {string}\n */\n\nfunction getVimeoUrl() {\n var oEmbedParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var id = oEmbedParameters.id;\n var url = oEmbedParameters.url;\n var idOrUrl = id || url;\n\n if (!idOrUrl) {\n throw new Error('An id or url must be passed, either in an options object or as a data-vimeo-id or data-vimeo-url attribute.');\n }\n\n if (isInteger(idOrUrl)) {\n return \"https://vimeo.com/\".concat(idOrUrl);\n }\n\n if (isVimeoUrl(idOrUrl)) {\n return idOrUrl.replace('http:', 'https:');\n }\n\n if (id) {\n throw new TypeError(\"\\u201C\".concat(id, \"\\u201D is not a valid video id.\"));\n }\n\n throw new TypeError(\"\\u201C\".concat(idOrUrl, \"\\u201D is not a vimeo.com url.\"));\n}\n\nvar arrayIndexOfSupport = typeof Array.prototype.indexOf !== 'undefined';\nvar postMessageSupport = typeof window !== 'undefined' && typeof window.postMessage !== 'undefined';\n\nif (!isNode && (!arrayIndexOfSupport || !postMessageSupport)) {\n throw new Error('Sorry, the Vimeo Player API is not available in this browser.');\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\n/*!\n * weakmap-polyfill v2.0.1 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2020 Polygon Planet \n * @license MIT\n */\n(function (self) {\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n var defineProperty = function (object, name, value) {\n if (Object.defineProperty) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = function () {\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap')); // ECMA-262 23.3.1.1 WeakMap([iterable])\n\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n } // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n\n\n defineProperty(WeakMap.prototype, 'delete', function (key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n }); // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n\n defineProperty(WeakMap.prototype, 'get', function (key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n }); // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n\n defineProperty(WeakMap.prototype, 'has', function (key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n }); // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n\n defineProperty(WeakMap.prototype, 'set', function (key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(methodName + ' method called on incompatible receiver ' + typeof x);\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n }();\n\n function isObject(x) {\n return Object(x) === x;\n }\n})(typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : commonjsGlobal);\n\nvar npo_src = createCommonjsModule(function (module) {\n/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n(function UMD(name, context, definition) {\n // special form of UMD for polyfilling across evironments\n context[name] = context[name] || definition();\n\n if ( module.exports) {\n module.exports = context[name];\n }\n})(\"Promise\", typeof commonjsGlobal != \"undefined\" ? commonjsGlobal : commonjsGlobal, function DEF() {\n\n var builtInProp,\n cycle,\n scheduling_queue,\n ToString = Object.prototype.toString,\n timer = typeof setImmediate != \"undefined\" ? function timer(fn) {\n return setImmediate(fn);\n } : setTimeout; // dammit, IE8.\n\n try {\n Object.defineProperty({}, \"x\", {});\n\n builtInProp = function builtInProp(obj, name, val, config) {\n return Object.defineProperty(obj, name, {\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n } catch (err) {\n builtInProp = function builtInProp(obj, name, val) {\n obj[name] = val;\n return obj;\n };\n } // Note: using a queue instead of array for efficiency\n\n\n scheduling_queue = function Queue() {\n var first, last, item;\n\n function Item(fn, self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n\n return {\n add: function add(fn, self) {\n item = new Item(fn, self);\n\n if (last) {\n last.next = item;\n } else {\n first = item;\n }\n\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n }();\n\n function schedule(fn, self) {\n scheduling_queue.add(fn, self);\n\n if (!cycle) {\n cycle = timer(scheduling_queue.drain);\n }\n } // promise duck typing\n\n\n function isThenable(o) {\n var _then,\n o_type = typeof o;\n\n if (o != null && (o_type == \"object\" || o_type == \"function\")) {\n _then = o.then;\n }\n\n return typeof _then == \"function\" ? _then : false;\n }\n\n function notify() {\n for (var i = 0; i < this.chain.length; i++) {\n notifyIsolated(this, this.state === 1 ? this.chain[i].success : this.chain[i].failure, this.chain[i]);\n }\n\n this.chain.length = 0;\n } // NOTE: This is a separate function to isolate\n // the `try..catch` so that other code can be\n // optimized better\n\n\n function notifyIsolated(self, cb, chain) {\n var ret, _then;\n\n try {\n if (cb === false) {\n chain.reject(self.msg);\n } else {\n if (cb === true) {\n ret = self.msg;\n } else {\n ret = cb.call(void 0, self.msg);\n }\n\n if (ret === chain.promise) {\n chain.reject(TypeError(\"Promise-chain cycle\"));\n } else if (_then = isThenable(ret)) {\n _then.call(ret, chain.resolve, chain.reject);\n } else {\n chain.resolve(ret);\n }\n }\n } catch (err) {\n chain.reject(err);\n }\n }\n\n function resolve(msg) {\n var _then,\n self = this; // already triggered?\n\n\n if (self.triggered) {\n return;\n }\n\n self.triggered = true; // unwrap\n\n if (self.def) {\n self = self.def;\n }\n\n try {\n if (_then = isThenable(msg)) {\n schedule(function () {\n var def_wrapper = new MakeDefWrapper(self);\n\n try {\n _then.call(msg, function $resolve$() {\n resolve.apply(def_wrapper, arguments);\n }, function $reject$() {\n reject.apply(def_wrapper, arguments);\n });\n } catch (err) {\n reject.call(def_wrapper, err);\n }\n });\n } else {\n self.msg = msg;\n self.state = 1;\n\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n } catch (err) {\n reject.call(new MakeDefWrapper(self), err);\n }\n }\n\n function reject(msg) {\n var self = this; // already triggered?\n\n if (self.triggered) {\n return;\n }\n\n self.triggered = true; // unwrap\n\n if (self.def) {\n self = self.def;\n }\n\n self.msg = msg;\n self.state = 2;\n\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n\n function iteratePromises(Constructor, arr, resolver, rejecter) {\n for (var idx = 0; idx < arr.length; idx++) {\n (function IIFE(idx) {\n Constructor.resolve(arr[idx]).then(function $resolver$(msg) {\n resolver(idx, msg);\n }, rejecter);\n })(idx);\n }\n }\n\n function MakeDefWrapper(self) {\n this.def = self;\n this.triggered = false;\n }\n\n function MakeDef(self) {\n this.promise = self;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n }\n\n function Promise(executor) {\n if (typeof executor != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n if (this.__NPO__ !== 0) {\n throw TypeError(\"Not a promise\");\n } // instance shadowing the inherited \"brand\"\n // to signal an already \"initialized\" promise\n\n\n this.__NPO__ = 1;\n var def = new MakeDef(this);\n\n this[\"then\"] = function then(success, failure) {\n var o = {\n success: typeof success == \"function\" ? success : true,\n failure: typeof failure == \"function\" ? failure : false\n }; // Note: `then(..)` itself can be borrowed to be used against\n // a different promise constructor for making the chained promise,\n // by substituting a different `this` binding.\n\n o.promise = new this.constructor(function extractChain(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n o.resolve = resolve;\n o.reject = reject;\n });\n def.chain.push(o);\n\n if (def.state !== 0) {\n schedule(notify, def);\n }\n\n return o.promise;\n };\n\n this[\"catch\"] = function $catch$(failure) {\n return this.then(void 0, failure);\n };\n\n try {\n executor.call(void 0, function publicResolve(msg) {\n resolve.call(def, msg);\n }, function publicReject(msg) {\n reject.call(def, msg);\n });\n } catch (err) {\n reject.call(def, err);\n }\n }\n\n var PromisePrototype = builtInProp({}, \"constructor\", Promise,\n /*configurable=*/\n false); // Note: Android 4 cannot use `Object.defineProperty(..)` here\n\n Promise.prototype = PromisePrototype; // built-in \"brand\" to signal an \"uninitialized\" promise\n\n builtInProp(PromisePrototype, \"__NPO__\", 0,\n /*configurable=*/\n false);\n builtInProp(Promise, \"resolve\", function Promise$resolve(msg) {\n var Constructor = this; // spec mandated checks\n // note: best \"isPromise\" check that's practical for now\n\n if (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n return msg;\n }\n\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n resolve(msg);\n });\n });\n builtInProp(Promise, \"reject\", function Promise$reject(msg) {\n return new this(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n reject(msg);\n });\n });\n builtInProp(Promise, \"all\", function Promise$all(arr) {\n var Constructor = this; // spec mandated checks\n\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n var len = arr.length,\n msgs = Array(len),\n count = 0;\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n msgs[idx] = msg;\n\n if (++count === len) {\n resolve(msgs);\n }\n }, reject);\n });\n });\n builtInProp(Promise, \"race\", function Promise$race(arr) {\n var Constructor = this; // spec mandated checks\n\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n resolve(msg);\n }, reject);\n });\n });\n return Promise;\n});\n});\n\n/**\n * @module lib/callbacks\n */\nvar callbackMap = new WeakMap();\n/**\n * Store a callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @param {(function(this:Player, *): void|{resolve: function, reject: function})} callback\n * The callback to call or an object with resolve and reject functions for a promise.\n * @return {void}\n */\n\nfunction storeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n\n if (!(name in playerCallbacks)) {\n playerCallbacks[name] = [];\n }\n\n playerCallbacks[name].push(callback);\n callbackMap.set(player.element, playerCallbacks);\n}\n/**\n * Get the callbacks for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @return {function[]}\n */\n\nfunction getCallbacks(player, name) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n return playerCallbacks[name] || [];\n}\n/**\n * Remove a stored callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @param {function} [callback] The specific callback to remove.\n * @return {boolean} Was this the last callback?\n */\n\nfunction removeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n\n if (!playerCallbacks[name]) {\n return true;\n } // If no callback is passed, remove all callbacks for the event\n\n\n if (!callback) {\n playerCallbacks[name] = [];\n callbackMap.set(player.element, playerCallbacks);\n return true;\n }\n\n var index = playerCallbacks[name].indexOf(callback);\n\n if (index !== -1) {\n playerCallbacks[name].splice(index, 1);\n }\n\n callbackMap.set(player.element, playerCallbacks);\n return playerCallbacks[name] && playerCallbacks[name].length === 0;\n}\n/**\n * Return the first stored callback for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @return {function} The callback, or false if there were none\n */\n\nfunction shiftCallbacks(player, name) {\n var playerCallbacks = getCallbacks(player, name);\n\n if (playerCallbacks.length < 1) {\n return false;\n }\n\n var callback = playerCallbacks.shift();\n removeCallback(player, name, callback);\n return callback;\n}\n/**\n * Move callbacks associated with an element to another element.\n *\n * @param {HTMLElement} oldElement The old element.\n * @param {HTMLElement} newElement The new element.\n * @return {void}\n */\n\nfunction swapCallbacks(oldElement, newElement) {\n var playerCallbacks = callbackMap.get(oldElement);\n callbackMap.set(newElement, playerCallbacks);\n callbackMap.delete(oldElement);\n}\n\n/**\n * @module lib/embed\n */\nvar oEmbedParameters = ['autopause', 'autoplay', 'background', 'byline', 'color', 'controls', 'dnt', 'height', 'id', 'loop', 'maxheight', 'maxwidth', 'muted', 'playsinline', 'portrait', 'responsive', 'speed', 'texttrack', 'title', 'transparent', 'url', 'width'];\n/**\n * Get the 'data-vimeo'-prefixed attributes from an element as an object.\n *\n * @param {HTMLElement} element The element.\n * @param {Object} [defaults={}] The default values to use.\n * @return {Object}\n */\n\nfunction getOEmbedParameters(element) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return oEmbedParameters.reduce(function (params, param) {\n var value = element.getAttribute(\"data-vimeo-\".concat(param));\n\n if (value || value === '') {\n params[param] = value === '' ? 1 : value;\n }\n\n return params;\n }, defaults);\n}\n/**\n * Create an embed from oEmbed data inside an element.\n *\n * @param {object} data The oEmbed data.\n * @param {HTMLElement} element The element to put the iframe in.\n * @return {HTMLIFrameElement} The iframe embed.\n */\n\nfunction createEmbed(_ref, element) {\n var html = _ref.html;\n\n if (!element) {\n throw new TypeError('An element must be provided');\n }\n\n if (element.getAttribute('data-vimeo-initialized') !== null) {\n return element.querySelector('iframe');\n }\n\n var div = document.createElement('div');\n div.innerHTML = html;\n element.appendChild(div.firstChild);\n element.setAttribute('data-vimeo-initialized', 'true');\n return element.querySelector('iframe');\n}\n/**\n * Make an oEmbed call for the specified URL.\n *\n * @param {string} videoUrl The vimeo.com url for the video.\n * @param {Object} [params] Parameters to pass to oEmbed.\n * @param {HTMLElement} element The element.\n * @return {Promise}\n */\n\nfunction getOEmbedData(videoUrl) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var element = arguments.length > 2 ? arguments[2] : undefined;\n return new Promise(function (resolve, reject) {\n if (!isVimeoUrl(videoUrl)) {\n throw new TypeError(\"\\u201C\".concat(videoUrl, \"\\u201D is not a vimeo.com url.\"));\n }\n\n var url = \"https://vimeo.com/api/oembed.json?url=\".concat(encodeURIComponent(videoUrl));\n\n for (var param in params) {\n if (params.hasOwnProperty(param)) {\n url += \"&\".concat(param, \"=\").concat(encodeURIComponent(params[param]));\n }\n }\n\n var xhr = 'XDomainRequest' in window ? new XDomainRequest() : new XMLHttpRequest();\n xhr.open('GET', url, true);\n\n xhr.onload = function () {\n if (xhr.status === 404) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D was not found.\")));\n return;\n }\n\n if (xhr.status === 403) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n\n try {\n var json = JSON.parse(xhr.responseText); // Check api response for 403 on oembed\n\n if (json.domain_status_code === 403) {\n // We still want to create the embed to give users visual feedback\n createEmbed(json, element);\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n\n xhr.onerror = function () {\n var status = xhr.status ? \" (\".concat(xhr.status, \")\") : '';\n reject(new Error(\"There was an error fetching the embed code from Vimeo\".concat(status, \".\")));\n };\n\n xhr.send();\n });\n}\n/**\n * Initialize all embeds within a specific element\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\n\nfunction initializeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var elements = [].slice.call(parent.querySelectorAll('[data-vimeo-id], [data-vimeo-url]'));\n\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error creating an embed: \".concat(error));\n }\n };\n\n elements.forEach(function (element) {\n try {\n // Skip any that have data-vimeo-defer\n if (element.getAttribute('data-vimeo-defer') !== null) {\n return;\n }\n\n var params = getOEmbedParameters(element);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n return createEmbed(data, element);\n }).catch(handleError);\n } catch (error) {\n handleError(error);\n }\n });\n}\n/**\n * Resize embeds when messaged by the player.\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\n\nfunction resizeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoPlayerResizeEmbeds_) {\n return;\n }\n\n window.VimeoPlayerResizeEmbeds_ = true;\n\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n } // 'spacechange' is fired only on embeds with cards\n\n\n if (!event.data || event.data.event !== 'spacechange') {\n return;\n }\n\n var iframes = parent.querySelectorAll('iframe');\n\n for (var i = 0; i < iframes.length; i++) {\n if (iframes[i].contentWindow !== event.source) {\n continue;\n } // Change padding-bottom of the enclosing div to accommodate\n // card carousel without distorting aspect ratio\n\n\n var space = iframes[i].parentElement;\n space.style.paddingBottom = \"\".concat(event.data.data[0].bottom, \"px\");\n break;\n }\n };\n\n window.addEventListener('message', onMessage);\n}\n\n/**\n * @module lib/postmessage\n */\n/**\n * Parse a message received from postMessage.\n *\n * @param {*} data The data received from postMessage.\n * @return {object}\n */\n\nfunction parseMessageData(data) {\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (error) {\n // If the message cannot be parsed, throw the error as a warning\n console.warn(error);\n return {};\n }\n }\n\n return data;\n}\n/**\n * Post a message to the specified target.\n *\n * @param {Player} player The player object to use.\n * @param {string} method The API method to call.\n * @param {object} params The parameters to send to the player.\n * @return {void}\n */\n\nfunction postMessage(player, method, params) {\n if (!player.element.contentWindow || !player.element.contentWindow.postMessage) {\n return;\n }\n\n var message = {\n method: method\n };\n\n if (params !== undefined) {\n message.value = params;\n } // IE 8 and 9 do not support passing messages, so stringify them\n\n\n var ieVersion = parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\\d+).*$/, '$1'));\n\n if (ieVersion >= 8 && ieVersion < 10) {\n message = JSON.stringify(message);\n }\n\n player.element.contentWindow.postMessage(message, player.origin);\n}\n/**\n * Parse the data received from a message event.\n *\n * @param {Player} player The player that received the message.\n * @param {(Object|string)} data The message data. Strings will be parsed into JSON.\n * @return {void}\n */\n\nfunction processData(player, data) {\n data = parseMessageData(data);\n var callbacks = [];\n var param;\n\n if (data.event) {\n if (data.event === 'error') {\n var promises = getCallbacks(player, data.data.method);\n promises.forEach(function (promise) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n promise.reject(error);\n removeCallback(player, data.data.method, promise);\n });\n }\n\n callbacks = getCallbacks(player, \"event:\".concat(data.event));\n param = data.data;\n } else if (data.method) {\n var callback = shiftCallbacks(player, data.method);\n\n if (callback) {\n callbacks.push(callback);\n param = data.value;\n }\n }\n\n callbacks.forEach(function (callback) {\n try {\n if (typeof callback === 'function') {\n callback.call(player, param);\n return;\n }\n\n callback.resolve(param);\n } catch (e) {// empty\n }\n });\n}\n\nvar playerMap = new WeakMap();\nvar readyMap = new WeakMap();\n\nvar Player =\n/*#__PURE__*/\nfunction () {\n /**\n * Create a Player.\n *\n * @param {(HTMLIFrameElement|HTMLElement|string|jQuery)} element A reference to the Vimeo\n * player iframe, and id, or a jQuery object.\n * @param {object} [options] oEmbed parameters to use when creating an embed in the element.\n * @return {Player}\n */\n function Player(element) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Player);\n\n /* global jQuery */\n if (window.jQuery && element instanceof jQuery) {\n if (element.length > 1 && window.console && console.warn) {\n console.warn('A jQuery object with multiple elements was passed, using the first element.');\n }\n\n element = element[0];\n } // Find an element by ID\n\n\n if (typeof document !== 'undefined' && typeof element === 'string') {\n element = document.getElementById(element);\n } // Not an element!\n\n\n if (!isDomElement(element)) {\n throw new TypeError('You must pass either a valid element or a valid id.');\n } // Already initialized an embed in this div, so grab the iframe\n\n\n if (element.nodeName !== 'IFRAME') {\n var iframe = element.querySelector('iframe');\n\n if (iframe) {\n element = iframe;\n }\n } // iframe url is not a Vimeo url\n\n\n if (element.nodeName === 'IFRAME' && !isVimeoUrl(element.getAttribute('src') || '')) {\n throw new Error('The player element passed isn’t a Vimeo embed.');\n } // If there is already a player object in the map, return that\n\n\n if (playerMap.has(element)) {\n return playerMap.get(element);\n }\n\n this._window = element.ownerDocument.defaultView;\n this.element = element;\n this.origin = '*';\n var readyPromise = new npo_src(function (resolve, reject) {\n _this._onMessage = function (event) {\n if (!isVimeoUrl(event.origin) || _this.element.contentWindow !== event.source) {\n return;\n }\n\n if (_this.origin === '*') {\n _this.origin = event.origin;\n }\n\n var data = parseMessageData(event.data);\n var isError = data && data.event === 'error';\n var isReadyError = isError && data.data && data.data.method === 'ready';\n\n if (isReadyError) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n reject(error);\n return;\n }\n\n var isReadyEvent = data && data.event === 'ready';\n var isPingResponse = data && data.method === 'ping';\n\n if (isReadyEvent || isPingResponse) {\n _this.element.setAttribute('data-ready', 'true');\n\n resolve();\n return;\n }\n\n processData(_this, data);\n };\n\n _this._window.addEventListener('message', _this._onMessage);\n\n if (_this.element.nodeName !== 'IFRAME') {\n var params = getOEmbedParameters(element, options);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n var iframe = createEmbed(data, element); // Overwrite element with the new iframe,\n // but store reference to the original element\n\n _this.element = iframe;\n _this._originalElement = element;\n swapCallbacks(element, iframe);\n playerMap.set(_this.element, _this);\n return data;\n }).catch(reject);\n }\n }); // Store a copy of this Player in the map\n\n readyMap.set(this, readyPromise);\n playerMap.set(this.element, this); // Send a ping to the iframe so the ready promise will be resolved if\n // the player is already ready.\n\n if (this.element.nodeName === 'IFRAME') {\n postMessage(this, 'ping');\n }\n\n return this;\n }\n /**\n * Get a promise for a method.\n *\n * @param {string} name The API method to call.\n * @param {Object} [args={}] Arguments to send via postMessage.\n * @return {Promise}\n */\n\n\n _createClass(Player, [{\n key: \"callMethod\",\n value: function callMethod(name) {\n var _this2 = this;\n\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new npo_src(function (resolve, reject) {\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this2.ready().then(function () {\n storeCallback(_this2, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this2, name, args);\n }).catch(reject);\n });\n }\n /**\n * Get a promise for the value of a player property.\n *\n * @param {string} name The property name\n * @return {Promise}\n */\n\n }, {\n key: \"get\",\n value: function get(name) {\n var _this3 = this;\n\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'get'); // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n\n return _this3.ready().then(function () {\n storeCallback(_this3, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this3, name);\n }).catch(reject);\n });\n }\n /**\n * Get a promise for setting the value of a player property.\n *\n * @param {string} name The API method to call.\n * @param {mixed} value The value to set.\n * @return {Promise}\n */\n\n }, {\n key: \"set\",\n value: function set(name, value) {\n var _this4 = this;\n\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'set');\n\n if (value === undefined || value === null) {\n throw new TypeError('There must be a value to set.');\n } // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n\n\n return _this4.ready().then(function () {\n storeCallback(_this4, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this4, name, value);\n }).catch(reject);\n });\n }\n /**\n * Add an event listener for the specified event. Will call the\n * callback with a single parameter, `data`, that contains the data for\n * that event.\n *\n * @param {string} eventName The name of the event.\n * @param {function(*)} callback The function to call when the event fires.\n * @return {void}\n */\n\n }, {\n key: \"on\",\n value: function on(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n\n if (!callback) {\n throw new TypeError('You must pass a callback function.');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n\n var callbacks = getCallbacks(this, \"event:\".concat(eventName));\n\n if (callbacks.length === 0) {\n this.callMethod('addEventListener', eventName).catch(function () {// Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n\n storeCallback(this, \"event:\".concat(eventName), callback);\n }\n /**\n * Remove an event listener for the specified event. Will remove all\n * listeners for that event if a `callback` isn’t passed, or only that\n * specific callback if it is passed.\n *\n * @param {string} eventName The name of the event.\n * @param {function} [callback] The specific callback to remove.\n * @return {void}\n */\n\n }, {\n key: \"off\",\n value: function off(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n\n if (callback && typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n\n var lastCallback = removeCallback(this, \"event:\".concat(eventName), callback); // If there are no callbacks left, remove the listener\n\n if (lastCallback) {\n this.callMethod('removeEventListener', eventName).catch(function (e) {// Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n }\n /**\n * A promise to load a new video.\n *\n * @promise LoadVideoPromise\n * @fulfill {number} The video with this id successfully loaded.\n * @reject {TypeError} The id was not a number.\n */\n\n /**\n * Load a new video into this embed. The promise will be resolved if\n * the video is successfully loaded, or it will be rejected if it could\n * not be loaded.\n *\n * @param {number|object} options The id of the video or an object with embed options.\n * @return {LoadVideoPromise}\n */\n\n }, {\n key: \"loadVideo\",\n value: function loadVideo(options) {\n return this.callMethod('loadVideo', options);\n }\n /**\n * A promise to perform an action when the Player is ready.\n *\n * @todo document errors\n * @promise LoadVideoPromise\n * @fulfill {void}\n */\n\n /**\n * Trigger a function when the player iframe has initialized. You do not\n * need to wait for `ready` to trigger to begin adding event listeners\n * or calling other methods.\n *\n * @return {ReadyPromise}\n */\n\n }, {\n key: \"ready\",\n value: function ready() {\n var readyPromise = readyMap.get(this) || new npo_src(function (resolve, reject) {\n reject(new Error('Unknown player. Probably unloaded.'));\n });\n return npo_src.resolve(readyPromise);\n }\n /**\n * A promise to add a cue point to the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point to use for removeCuePoint.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n\n /**\n * Add a cue point to the player.\n *\n * @param {number} time The time for the cue point.\n * @param {object} [data] Arbitrary data to be returned with the cue point.\n * @return {AddCuePointPromise}\n */\n\n }, {\n key: \"addCuePoint\",\n value: function addCuePoint(time) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.callMethod('addCuePoint', {\n time: time,\n data: data\n });\n }\n /**\n * A promise to remove a cue point from the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point that was removed.\n * @reject {InvalidCuePoint} The cue point with the specified id was not\n * found.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n\n /**\n * Remove a cue point from the video.\n *\n * @param {string} id The id of the cue point to remove.\n * @return {RemoveCuePointPromise}\n */\n\n }, {\n key: \"removeCuePoint\",\n value: function removeCuePoint(id) {\n return this.callMethod('removeCuePoint', id);\n }\n /**\n * A representation of a text track on a video.\n *\n * @typedef {Object} VimeoTextTrack\n * @property {string} language The ISO language code.\n * @property {string} kind The kind of track it is (captions or subtitles).\n * @property {string} label The human‐readable label for the track.\n */\n\n /**\n * A promise to enable a text track.\n *\n * @promise EnableTextTrackPromise\n * @fulfill {VimeoTextTrack} The text track that was enabled.\n * @reject {InvalidTrackLanguageError} No track was available with the\n * specified language.\n * @reject {InvalidTrackError} No track was available with the specified\n * language and kind.\n */\n\n /**\n * Enable the text track with the specified language, and optionally the\n * specified kind (captions or subtitles).\n *\n * When set via the API, the track language will not change the viewer’s\n * stored preference.\n *\n * @param {string} language The two‐letter language code.\n * @param {string} [kind] The kind of track to enable (captions or subtitles).\n * @return {EnableTextTrackPromise}\n */\n\n }, {\n key: \"enableTextTrack\",\n value: function enableTextTrack(language, kind) {\n if (!language) {\n throw new TypeError('You must pass a language.');\n }\n\n return this.callMethod('enableTextTrack', {\n language: language,\n kind: kind\n });\n }\n /**\n * A promise to disable the active text track.\n *\n * @promise DisableTextTrackPromise\n * @fulfill {void} The track was disabled.\n */\n\n /**\n * Disable the currently-active text track.\n *\n * @return {DisableTextTrackPromise}\n */\n\n }, {\n key: \"disableTextTrack\",\n value: function disableTextTrack() {\n return this.callMethod('disableTextTrack');\n }\n /**\n * A promise to pause the video.\n *\n * @promise PausePromise\n * @fulfill {void} The video was paused.\n */\n\n /**\n * Pause the video if it’s playing.\n *\n * @return {PausePromise}\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n return this.callMethod('pause');\n }\n /**\n * A promise to play the video.\n *\n * @promise PlayPromise\n * @fulfill {void} The video was played.\n */\n\n /**\n * Play the video if it’s paused. **Note:** on iOS and some other\n * mobile devices, you cannot programmatically trigger play. Once the\n * viewer has tapped on the play button in the player, however, you\n * will be able to use this function.\n *\n * @return {PlayPromise}\n */\n\n }, {\n key: \"play\",\n value: function play() {\n return this.callMethod('play');\n }\n /**\n * A promise to unload the video.\n *\n * @promise UnloadPromise\n * @fulfill {void} The video was unloaded.\n */\n\n /**\n * Return the player to its initial state.\n *\n * @return {UnloadPromise}\n */\n\n }, {\n key: \"unload\",\n value: function unload() {\n return this.callMethod('unload');\n }\n /**\n * Cleanup the player and remove it from the DOM\n *\n * It won't be usable and a new one should be constructed\n * in order to do any operations.\n *\n * @return {Promise}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this5 = this;\n\n return new npo_src(function (resolve) {\n readyMap.delete(_this5);\n playerMap.delete(_this5.element);\n\n if (_this5._originalElement) {\n playerMap.delete(_this5._originalElement);\n\n _this5._originalElement.removeAttribute('data-vimeo-initialized');\n }\n\n if (_this5.element && _this5.element.nodeName === 'IFRAME' && _this5.element.parentNode) {\n _this5.element.parentNode.removeChild(_this5.element);\n }\n\n _this5._window.removeEventListener('message', _this5._onMessage);\n\n resolve();\n });\n }\n /**\n * A promise to get the autopause behavior of the video.\n *\n * @promise GetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n\n /**\n * Get the autopause behavior for this player.\n *\n * @return {GetAutopausePromise}\n */\n\n }, {\n key: \"getAutopause\",\n value: function getAutopause() {\n return this.get('autopause');\n }\n /**\n * A promise to set the autopause behavior of the video.\n *\n * @promise SetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n\n /**\n * Enable or disable the autopause behavior of this player.\n *\n * By default, when another video is played in the same browser, this\n * player will automatically pause. Unless you have a specific reason\n * for doing so, we recommend that you leave autopause set to the\n * default (`true`).\n *\n * @param {boolean} autopause\n * @return {SetAutopausePromise}\n */\n\n }, {\n key: \"setAutopause\",\n value: function setAutopause(autopause) {\n return this.set('autopause', autopause);\n }\n /**\n * A promise to get the buffered property of the video.\n *\n * @promise GetBufferedPromise\n * @fulfill {Array} Buffered Timeranges converted to an Array.\n */\n\n /**\n * Get the buffered property of the video.\n *\n * @return {GetBufferedPromise}\n */\n\n }, {\n key: \"getBuffered\",\n value: function getBuffered() {\n return this.get('buffered');\n }\n /**\n * A representation of a chapter.\n *\n * @typedef {Object} VimeoChapter\n * @property {number} startTime The start time of the chapter.\n * @property {object} title The title of the chapter.\n * @property {number} index The place in the order of Chapters. Starts at 1.\n */\n\n /**\n * A promise to get chapters for the video.\n *\n * @promise GetChaptersPromise\n * @fulfill {VimeoChapter[]} The chapters for the video.\n */\n\n /**\n * Get an array of all the chapters for the video.\n *\n * @return {GetChaptersPromise}\n */\n\n }, {\n key: \"getChapters\",\n value: function getChapters() {\n return this.get('chapters');\n }\n /**\n * A promise to get the currently active chapter.\n *\n * @promise GetCurrentChaptersPromise\n * @fulfill {VimeoChapter|undefined} The current chapter for the video.\n */\n\n /**\n * Get the currently active chapter for the video.\n *\n * @return {GetCurrentChaptersPromise}\n */\n\n }, {\n key: \"getCurrentChapter\",\n value: function getCurrentChapter() {\n return this.get('currentChapter');\n }\n /**\n * A promise to get the color of the player.\n *\n * @promise GetColorPromise\n * @fulfill {string} The hex color of the player.\n */\n\n /**\n * Get the color for this player.\n *\n * @return {GetColorPromise}\n */\n\n }, {\n key: \"getColor\",\n value: function getColor() {\n return this.get('color');\n }\n /**\n * A promise to set the color of the player.\n *\n * @promise SetColorPromise\n * @fulfill {string} The color was successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n\n /**\n * Set the color of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n *\n * @param {string} color The hex or rgb color string to set.\n * @return {SetColorPromise}\n */\n\n }, {\n key: \"setColor\",\n value: function setColor(color) {\n return this.set('color', color);\n }\n /**\n * A representation of a cue point.\n *\n * @typedef {Object} VimeoCuePoint\n * @property {number} time The time of the cue point.\n * @property {object} data The data passed when adding the cue point.\n * @property {string} id The unique id for use with removeCuePoint.\n */\n\n /**\n * A promise to get the cue points of a video.\n *\n * @promise GetCuePointsPromise\n * @fulfill {VimeoCuePoint[]} The cue points added to the video.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n\n /**\n * Get an array of the cue points added to the video.\n *\n * @return {GetCuePointsPromise}\n */\n\n }, {\n key: \"getCuePoints\",\n value: function getCuePoints() {\n return this.get('cuePoints');\n }\n /**\n * A promise to get the current time of the video.\n *\n * @promise GetCurrentTimePromise\n * @fulfill {number} The current time in seconds.\n */\n\n /**\n * Get the current playback position in seconds.\n *\n * @return {GetCurrentTimePromise}\n */\n\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.get('currentTime');\n }\n /**\n * A promise to set the current time of the video.\n *\n * @promise SetCurrentTimePromise\n * @fulfill {number} The actual current time that was set.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n */\n\n /**\n * Set the current playback position in seconds. If the player was\n * paused, it will remain paused. Likewise, if the player was playing,\n * it will resume playing once the video has buffered.\n *\n * You can provide an accurate time and the player will attempt to seek\n * to as close to that time as possible. The exact time will be the\n * fulfilled value of the promise.\n *\n * @param {number} currentTime\n * @return {SetCurrentTimePromise}\n */\n\n }, {\n key: \"setCurrentTime\",\n value: function setCurrentTime(currentTime) {\n return this.set('currentTime', currentTime);\n }\n /**\n * A promise to get the duration of the video.\n *\n * @promise GetDurationPromise\n * @fulfill {number} The duration in seconds.\n */\n\n /**\n * Get the duration of the video in seconds. It will be rounded to the\n * nearest second before playback begins, and to the nearest thousandth\n * of a second after playback begins.\n *\n * @return {GetDurationPromise}\n */\n\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.get('duration');\n }\n /**\n * A promise to get the ended state of the video.\n *\n * @promise GetEndedPromise\n * @fulfill {boolean} Whether or not the video has ended.\n */\n\n /**\n * Get the ended state of the video. The video has ended if\n * `currentTime === duration`.\n *\n * @return {GetEndedPromise}\n */\n\n }, {\n key: \"getEnded\",\n value: function getEnded() {\n return this.get('ended');\n }\n /**\n * A promise to get the loop state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the player is set to loop.\n */\n\n /**\n * Get the loop state of the player.\n *\n * @return {GetLoopPromise}\n */\n\n }, {\n key: \"getLoop\",\n value: function getLoop() {\n return this.get('loop');\n }\n /**\n * A promise to set the loop state of the player.\n *\n * @promise SetLoopPromise\n * @fulfill {boolean} The loop state that was set.\n */\n\n /**\n * Set the loop state of the player. When set to `true`, the player\n * will start over immediately once playback ends.\n *\n * @param {boolean} loop\n * @return {SetLoopPromise}\n */\n\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n return this.set('loop', loop);\n }\n /**\n * A promise to set the muted state of the player.\n *\n * @promise SetMutedPromise\n * @fulfill {boolean} The muted state that was set.\n */\n\n /**\n * Set the muted state of the player. When set to `true`, the player\n * volume will be muted.\n *\n * @param {boolean} muted\n * @return {SetMutedPromise}\n */\n\n }, {\n key: \"setMuted\",\n value: function setMuted(muted) {\n return this.set('muted', muted);\n }\n /**\n * A promise to get the muted state of the player.\n *\n * @promise GetMutedPromise\n * @fulfill {boolean} Whether or not the player is muted.\n */\n\n /**\n * Get the muted state of the player.\n *\n * @return {GetMutedPromise}\n */\n\n }, {\n key: \"getMuted\",\n value: function getMuted() {\n return this.get('muted');\n }\n /**\n * A promise to get the paused state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the video is paused.\n */\n\n /**\n * Get the paused state of the player.\n *\n * @return {GetLoopPromise}\n */\n\n }, {\n key: \"getPaused\",\n value: function getPaused() {\n return this.get('paused');\n }\n /**\n * A promise to get the playback rate of the player.\n *\n * @promise GetPlaybackRatePromise\n * @fulfill {number} The playback rate of the player on a scale from 0.5 to 2.\n */\n\n /**\n * Get the playback rate of the player on a scale from `0.5` to `2`.\n *\n * @return {GetPlaybackRatePromise}\n */\n\n }, {\n key: \"getPlaybackRate\",\n value: function getPlaybackRate() {\n return this.get('playbackRate');\n }\n /**\n * A promise to set the playbackrate of the player.\n *\n * @promise SetPlaybackRatePromise\n * @fulfill {number} The playback rate was set.\n * @reject {RangeError} The playback rate was less than 0.5 or greater than 2.\n */\n\n /**\n * Set the playback rate of the player on a scale from `0.5` to `2`. When set\n * via the API, the playback rate will not be synchronized to other\n * players or stored as the viewer's preference.\n *\n * @param {number} playbackRate\n * @return {SetPlaybackRatePromise}\n */\n\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(playbackRate) {\n return this.set('playbackRate', playbackRate);\n }\n /**\n * A promise to get the played property of the video.\n *\n * @promise GetPlayedPromise\n * @fulfill {Array} Played Timeranges converted to an Array.\n */\n\n /**\n * Get the played property of the video.\n *\n * @return {GetPlayedPromise}\n */\n\n }, {\n key: \"getPlayed\",\n value: function getPlayed() {\n return this.get('played');\n }\n /**\n * A promise to get the seekable property of the video.\n *\n * @promise GetSeekablePromise\n * @fulfill {Array} Seekable Timeranges converted to an Array.\n */\n\n /**\n * Get the seekable property of the video.\n *\n * @return {GetSeekablePromise}\n */\n\n }, {\n key: \"getSeekable\",\n value: function getSeekable() {\n return this.get('seekable');\n }\n /**\n * A promise to get the seeking property of the player.\n *\n * @promise GetSeekingPromise\n * @fulfill {boolean} Whether or not the player is currently seeking.\n */\n\n /**\n * Get if the player is currently seeking.\n *\n * @return {GetSeekingPromise}\n */\n\n }, {\n key: \"getSeeking\",\n value: function getSeeking() {\n return this.get('seeking');\n }\n /**\n * A promise to get the text tracks of a video.\n *\n * @promise GetTextTracksPromise\n * @fulfill {VimeoTextTrack[]} The text tracks associated with the video.\n */\n\n /**\n * Get an array of the text tracks that exist for the video.\n *\n * @return {GetTextTracksPromise}\n */\n\n }, {\n key: \"getTextTracks\",\n value: function getTextTracks() {\n return this.get('textTracks');\n }\n /**\n * A promise to get the embed code for the video.\n *\n * @promise GetVideoEmbedCodePromise\n * @fulfill {string} The `