playbackRate.js 21 KB

1
  1. window.PlayerControls = window.PlayerControls || {}, window.PlayerControls.playbackRate = function (e) { var t = {}; function n(r) { if (t[r]) return t[r].exports; var a = t[r] = { i: r, l: !1, exports: {} }; return e[r].call(a.exports, a, a.exports, n), a.l = !0, a.exports } return n.m = e, n.c = t, n.d = function (e, t, r) { n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: r }) }, n.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, n.t = function (e, t) { if (1 & t && (e = n(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var a in e) n.d(r, a, function (t) { return e[t] }.bind(null, a)); return r }, n.n = function (e) { var t = e && e.__esModule ? function () { return e.default } : function () { return e }; return n.d(t, "a", t), t }, n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, n.p = "", n(n.s = 0) }([function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var r = function (e) { return e && e.__esModule ? e : { default: e } }(n(1)); t.default = { name: "playbackRate", method: function () { r.default.method.call(this) } }, e.exports = t.default }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var r = n(2), a = function (e) { return e && e.__esModule ? e : { default: e } }(n(4)); n(5); t.default = { name: "s_playbackRate", method: function () { var e = this, t = []; if (!e.config.playbackRate) return !1; (t = [].concat(e.config.playbackRate)).sort(function (e, t) { return t - e }); var n = (0, r.createDom)("xg-playbackrate", " ", {}, "xgplayer-playbackrate"); "mobile" === a.default.device && (e.config.playbackRateActive = "click"); var o = []; t.forEach(function (e) { o.push({ name: "" + e, rate: e + "x", selected: !1 }) }); var i = 1, l = ["<ul>"]; o.forEach(function (t) { e.config.defaultPlaybackRate && e.config.defaultPlaybackRate.toString() === t.name ? (t.selected = !0, i = e.config.defaultPlaybackRate, e.once("playing", function () { e.video.playbackRate = e.config.defaultPlaybackRate })) : "1.0" !== t.name && "1" !== t.name || e.config.defaultPlaybackRate && 1 !== e.config.defaultPlaybackRate || (t.selected = !0), l.push("<li cname='" + t.name + "' class='" + (t.selected ? "selected" : "") + "'>" + t.rate + "</li>") }), l.push("</ul><p class='name'>" + i + "x</p>"); var s = e.root.querySelector(".xgplayer-playbackrate"); if (s) { s.innerHTML = l.join(""); var c = s.querySelector(".name"); e.config.playbackRateActive && "hover" !== e.config.playbackRateActive || c.addEventListener("mouseenter", function (t) { t.preventDefault(), t.stopPropagation(), (0, r.addClass)(e.root, "xgplayer-playbackrate-active"), s.focus() }) } else { n.innerHTML = l.join(""); var u = n.querySelector(".name"); e.config.playbackRateActive && "hover" !== e.config.playbackRateActive || u.addEventListener("mouseenter", function (t) { t.preventDefault(), t.stopPropagation(), (0, r.addClass)(e.root, "xgplayer-playbackrate-active"), n.focus() }), e.once("ready", function () { e.controls.appendChild(n) }) } ["touchend", "click"].forEach(function (t) { n.addEventListener(t, function (t) { t.stopPropagation(), t.preventDefault(); var l = t.target; if (l && "li" === l.tagName.toLocaleLowerCase()) { var s, c = void 0; o.forEach(function (t) { t.selected = !1, l.textContent.replace(/\s+/g, "") === t.rate && (Array.prototype.forEach.call(l.parentNode.childNodes, function (e) { (0, r.hasClass)(e, "selected") && (c = Number(e.getAttribute("cname")), (0, r.removeClass)(e, "selected")) }), t.selected = !0, e.video.playbackRate = 1 * t.name, i = 1 * t.name) }), (0, r.addClass)(l, "selected"), s = Number(l.getAttribute("cname")), l.parentNode.nextSibling.innerHTML = l.getAttribute("cname") + "x", e.emit("playbackrateChange", { from: c, to: s }), "mobile" === a.default.device && (0, r.removeClass)(e.root, "xgplayer-playbackrate-active") } else "click" !== e.config.playbackRateActive || !l || "p" !== l.tagName.toLocaleLowerCase() && "span" !== l.tagName.toLocaleLowerCase() || ("mobile" === a.default.device ? (0, r.toggleClass)(e.root, "xgplayer-playbackrate-active") : (0, r.addClass)(e.root, "xgplayer-playbackrate-active"), n.focus()); e.emit("focus") }, !1) }), n.addEventListener("mouseleave", function (t) { t.preventDefault(), t.stopPropagation(), (0, r.removeClass)(e.root, "xgplayer-playbackrate-active") }), e.on("blur", function () { (0, r.removeClass)(e.root, "xgplayer-playbackrate-active") }), e.on("play", function () { e.video.playbackRate.toFixed(1) !== i.toFixed(1) && (e.video.playbackRate = i) }) } }, e.exports = t.default }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.util = void 0, t.createDom = a, t.hasClass = o, t.addClass = i, t.removeClass = l, t.toggleClass = s, t.findDom = c, t.padStart = u, t.format = f, t.event = d, t.typeOf = p, t.deepCopy = g, t.getBgImage = v, t.copyDom = y, t._setInterval = b, t._clearInterval = h, t.createImgBtn = m, t.isWeiXin = x, t.isUc = k, t.computeWatchDur = w, t.offInDestroy = C, t.on = L, t.once = O, t.getBuffered2 = R; var r = function (e) { return e && e.__esModule ? e : { default: e } }(n(3)); function a() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "div", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "", a = document.createElement(e); return a.className = r, a.innerHTML = t, Object.keys(n).forEach(function (t) { var r = t, o = n[t]; "video" === e || "audio" === e ? o && a.setAttribute(r, o) : a.setAttribute(r, o) }), a } function o(e, t) { return !!e && (e.classList ? Array.prototype.some.call(e.classList, function (e) { return e === t }) : !!e.className && !!e.className.match(new RegExp("(\\s|^)" + t + "(\\s|$)"))) } function i(e, t) { e && (e.classList ? t.replace(/(^\s+|\s+$)/g, "").split(/\s+/g).forEach(function (t) { t && e.classList.add(t) }) : o(e, t) || (e.className += " " + t)) } function l(e, t) { e && (e.classList ? t.split(/\s+/g).forEach(function (t) { e.classList.remove(t) }) : o(e, t) && t.split(/\s+/g).forEach(function (t) { var n = new RegExp("(\\s|^)" + t + "(\\s|$)"); e.className = e.className.replace(n, " ") })) } function s(e, t) { e && t.split(/\s+/g).forEach(function (t) { o(e, t) ? l(e, t) : i(e, t) }) } function c() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : document, t = arguments[1], n = void 0; try { n = e.querySelector(t) } catch (r) { 0 === t.indexOf("#") && (n = e.getElementById(t.slice(1))) } return n } function u(e, t, n) { for (var r = String(n), a = t >> 0, o = Math.ceil(a / r.length), i = [], l = String(e); o--;)i.push(r); return i.join("").substring(0, a - l.length) + l } function f(e) { if (window.isNaN(e)) return ""; var t = u(Math.floor(e / 3600), 2, 0), n = u(Math.floor((e - 3600 * t) / 60), 2, 0), r = u(Math.floor(e - 3600 * t - 60 * n), 2, 0); return ("00" === t ? [n, r] : [t, n, r]).join(":") } function d(e) { if (e.touches) { var t = e.touches[0] || e.changedTouches[0]; e.clientX = t.clientX || 0, e.clientY = t.clientY || 0, e.offsetX = t.pageX - t.target.offsetLeft, e.offsetY = t.pageY - t.target.offsetTop } e._target = e.target || e.srcElement } function p(e) { return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0] } function g(e, t) { if ("Object" === p(t) && "Object" === p(e)) return Object.keys(t).forEach(function (n) { "Object" !== p(t[n]) || t[n] instanceof Node ? "Array" === p(t[n]) ? e[n] = "Array" === p(e[n]) ? e[n].concat(t[n]) : t[n] : e[n] = t[n] : e[n] ? g(e[n], t[n]) : e[n] = t[n] }), e } function v(e) { var t = (e.currentStyle || window.getComputedStyle(e, null)).backgroundImage; if (!t || "none" === t) return ""; var n = document.createElement("a"); return n.href = t.replace(/url\("|"\)/g, ""), n.href } function y(e) { if (e && 1 === e.nodeType) { var t = document.createElement(e.tagName); return Array.prototype.forEach.call(e.attributes, function (e) { t.setAttribute(e.name, e.value) }), e.innerHTML && (t.innerHTML = e.innerHTML), t } return "" } function b(e, t, n, r) { e._interval[t] || (e._interval[t] = setInterval(n.bind(e), r)) } function h(e, t) { clearInterval(e._interval[t]), e._interval[t] = null } function m(e, t, n, r) { var o = a("xg-" + e, "", {}, "xgplayer-" + e + "-img"); if (o.style.backgroundImage = 'url("' + t + '")', n && r) { var i = void 0, l = void 0, s = void 0;["px", "rem", "em", "pt", "dp", "vw", "vh", "vm", "%"].every(function (e) { return !(n.indexOf(e) > -1 && r.indexOf(e) > -1) || (i = Number(n.slice(0, n.indexOf(e)).trim()), l = Number(r.slice(0, r.indexOf(e)).trim()), s = e, !1) }), o.style.width = "" + i + s, o.style.height = "" + l + s, o.style.backgroundSize = "" + i + s + " " + l + s, o.style.margin = "start" === e ? "-" + l / 2 + s + " auto auto -" + i / 2 + s : "auto 5px auto 5px" } return o } function x() { return window.navigator.userAgent.toLowerCase().indexOf("micromessenger") > -1 } function k() { return window.navigator.userAgent.toLowerCase().indexOf("ucbrowser") > -1 } function w() { for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], t = [], n = 0; n < e.length; n++)if (!(!e[n].end || e[n].begin < 0 || e[n].end < 0 || e[n].end < e[n].begin)) if (t.length < 1) t.push({ begin: e[n].begin, end: e[n].end }); else for (var r = 0; r < t.length; r++) { var a = e[n].begin, o = e[n].end; if (o < t[r].begin) { t.splice(r, 0, { begin: a, end: o }); break } if (!(a > t[r].end)) { var i = t[r].begin, l = t[r].end; t[r].begin = Math.min(a, i), t[r].end = Math.max(o, l); break } if (r > t.length - 2) { t.push({ begin: a, end: o }); break } } for (var s = 0, c = 0; c < t.length; c++)s += t[c].end - t[c].begin; return s } function C(e, t, n, r) { e.once(r, function a() { e.off(t, n), e.off(r, a) }) } function L(e, t, n, r) { if (r) e.on(t, n), C(e, t, n, r); else { e.on(t, function r(a) { n(a), e.off(t, r) }) } } function O(e, t, n, r) { if (r) e.once(t, n), C(e, t, n, r); else { e.once(t, function r(a) { n(a), e.off(t, r) }) } } function R(e) { for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .5, n = [], a = 0; a < e.length; a++)n.push({ start: e.start(a) < .5 ? 0 : e.start(a), end: e.end(a) }); n.sort(function (e, t) { var n = e.start - t.start; return n || t.end - e.end }); var o = []; if (t) for (var i = 0; i < n.length; i++) { var l = o.length; if (l) { var s = o[l - 1].end; n[i].start - s < t ? n[i].end > s && (o[l - 1].end = n[i].end) : o.push(n[i]) } else o.push(n[i]) } else o = n; return new r.default(o) } t.util = { createDom: a, hasClass: o, addClass: i, removeClass: l, toggleClass: s, findDom: c, padStart: u, format: f, event: d, typeOf: p, deepCopy: g, getBgImage: v, copyDom: y, _setInterval: b, _clearInterval: h, createImgBtn: m, isWeiXin: x, isUc: k, computeWatchDur: w, offInDestroy: C, on: L, once: O, getBuffered2: R } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var r = function () { function e(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) } } return function (t, n, r) { return n && e(t.prototype, n), r && e(t, r), t } }(); var a = function () { function e(t) { !function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e), this.bufferedList = t } return r(e, [{ key: "start", value: function (e) { return this.bufferedList[e].start } }, { key: "end", value: function (e) { return this.bufferedList[e].end } }, { key: "length", get: function () { return this.bufferedList.length } }]), e }(); t.default = a, e.exports = t.default }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var r = { get device() { return r.os.isPc ? "pc" : "mobile" }, get browser() { var e = navigator.userAgent.toLowerCase(), t = { ie: /rv:([\d.]+)\) like gecko/, firfox: /firefox\/([\d.]+)/, chrome: /chrome\/([\d.]+)/, opera: /opera.([\d.]+)/, safari: /version\/([\d.]+).*safari/ }; return [].concat(Object.keys(t).filter(function (n) { return t[n].test(e) }))[0] }, get os() { var e = navigator.userAgent, t = /(?:Windows Phone)/.test(e), n = /(?:SymbianOS)/.test(e) || t, r = /(?:Android)/.test(e), a = /(?:Firefox)/.test(e), o = /(?:iPad|PlayBook)/.test(e) || r && !/(?:Mobile)/.test(e) || a && /(?:Tablet)/.test(e), i = /(?:iPhone)/.test(e) && !o; return { isTablet: o, isPhone: i, isAndroid: r, isPc: !(i || r || n || o), isSymbian: n, isWindowsPhone: t, isFireFox: a } } }; t.default = r, e.exports = t.default }, function (e, t, n) { var r = n(6); "string" == typeof r && (r = [[e.i, r, ""]]); var a = { hmr: !0, transform: void 0, insertInto: void 0 }; n(8)(r, a); r.locals && (e.exports = r.locals) }, function (e, t, n) { (e.exports = n(7)(!1)).push([e.i, ".xgplayer-skin-default .xgplayer-playbackrate{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:150px;z-index:18;position:relative;display:inline-block;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-playbackrate ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-playbackrate ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);position:relative;padding:4px 0;text-align:center}.xgplayer-skin-default .xgplayer-playbackrate ul li.selected,.xgplayer-skin-default .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-playbackrate ul li:first-child{position:relative;margin-top:12px}.xgplayer-skin-default .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-default .xgplayer-playbackrate .name{width:60px;height:20px;position:absolute;bottom:0;text-align:center;font-family:PingFangSC-Regular;font-size:13px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px;line-height:20px}.xgplayer-skin-default .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-default .xgplayer-playbackrate:hover{opacity:1}.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}", ""]) }, function (e, t) { e.exports = function (e) { var t = []; return t.toString = function () { return this.map(function (t) { var n = function (e, t) { var n = e[1] || "", r = e[3]; if (!r) return n; if (t && "function" == typeof btoa) { var a = function (e) { return "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(e)))) + " */" }(r), o = r.sources.map(function (e) { return "/*# sourceURL=" + r.sourceRoot + e + " */" }); return [n].concat(o).concat([a]).join("\n") } return [n].join("\n") }(t, e); return t[2] ? "@media " + t[2] + "{" + n + "}" : n }).join("") }, t.i = function (e, n) { "string" == typeof e && (e = [[null, e, ""]]); for (var r = {}, a = 0; a < this.length; a++) { var o = this[a][0]; "number" == typeof o && (r[o] = !0) } for (a = 0; a < e.length; a++) { var i = e[a]; "number" == typeof i[0] && r[i[0]] || (n && !i[2] ? i[2] = n : n && (i[2] = "(" + i[2] + ") and (" + n + ")"), t.push(i)) } }, t } }, function (e, t, n) { var r = {}, a = function (e) { var t; return function () { return void 0 === t && (t = e.apply(this, arguments)), t } }(function () { return window && document && document.all && !window.atob }), o = function (e) { var t = {}; return function (e) { if ("function" == typeof e) return e(); if (void 0 === t[e]) { var n = function (e) { return document.querySelector(e) }.call(this, e); if (window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement) try { n = n.contentDocument.head } catch (e) { n = null } t[e] = n } return t[e] } }(), i = null, l = 0, s = [], c = n(9); function u(e, t) { for (var n = 0; n < e.length; n++) { var a = e[n], o = r[a.id]; if (o) { o.refs++; for (var i = 0; i < o.parts.length; i++)o.parts[i](a.parts[i]); for (; i < a.parts.length; i++)o.parts.push(y(a.parts[i], t)) } else { var l = []; for (i = 0; i < a.parts.length; i++)l.push(y(a.parts[i], t)); r[a.id] = { id: a.id, refs: 1, parts: l } } } } function f(e, t) { for (var n = [], r = {}, a = 0; a < e.length; a++) { var o = e[a], i = t.base ? o[0] + t.base : o[0], l = { css: o[1], media: o[2], sourceMap: o[3] }; r[i] ? r[i].parts.push(l) : n.push(r[i] = { id: i, parts: [l] }) } return n } function d(e, t) { var n = o(e.insertInto); if (!n) throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid."); var r = s[s.length - 1]; if ("top" === e.insertAt) r ? r.nextSibling ? n.insertBefore(t, r.nextSibling) : n.appendChild(t) : n.insertBefore(t, n.firstChild), s.push(t); else if ("bottom" === e.insertAt) n.appendChild(t); else { if ("object" != typeof e.insertAt || !e.insertAt.before) throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n"); var a = o(e.insertInto + " " + e.insertAt.before); n.insertBefore(t, a) } } function p(e) { if (null === e.parentNode) return !1; e.parentNode.removeChild(e); var t = s.indexOf(e); t >= 0 && s.splice(t, 1) } function g(e) { var t = document.createElement("style"); return e.attrs.type = "text/css", v(t, e.attrs), d(e, t), t } function v(e, t) { Object.keys(t).forEach(function (n) { e.setAttribute(n, t[n]) }) } function y(e, t) { var n, r, a, o; if (t.transform && e.css) { if (!(o = t.transform(e.css))) return function () { }; e.css = o } if (t.singleton) { var s = l++; n = i || (i = g(t)), r = h.bind(null, n, s, !1), a = h.bind(null, n, s, !0) } else e.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = function (e) { var t = document.createElement("link"); return e.attrs.type = "text/css", e.attrs.rel = "stylesheet", v(t, e.attrs), d(e, t), t }(t), r = function (e, t, n) { var r = n.css, a = n.sourceMap, o = void 0 === t.convertToAbsoluteUrls && a; (t.convertToAbsoluteUrls || o) && (r = c(r)); a && (r += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(a)))) + " */"); var i = new Blob([r], { type: "text/css" }), l = e.href; e.href = URL.createObjectURL(i), l && URL.revokeObjectURL(l) }.bind(null, n, t), a = function () { p(n), n.href && URL.revokeObjectURL(n.href) }) : (n = g(t), r = function (e, t) { var n = t.css, r = t.media; r && e.setAttribute("media", r); if (e.styleSheet) e.styleSheet.cssText = n; else { for (; e.firstChild;)e.removeChild(e.firstChild); e.appendChild(document.createTextNode(n)) } }.bind(null, n), a = function () { p(n) }); return r(e), function (t) { if (t) { if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return; r(e = t) } else a() } } e.exports = function (e, t) { if ("undefined" != typeof DEBUG && DEBUG && "object" != typeof document) throw new Error("The style-loader cannot be used in a non-browser environment"); (t = t || {}).attrs = "object" == typeof t.attrs ? t.attrs : {}, t.singleton || "boolean" == typeof t.singleton || (t.singleton = a()), t.insertInto || (t.insertInto = "head"), t.insertAt || (t.insertAt = "bottom"); var n = f(e, t); return u(n, t), function (e) { for (var a = [], o = 0; o < n.length; o++) { var i = n[o]; (l = r[i.id]).refs--, a.push(l) } e && u(f(e, t), t); for (o = 0; o < a.length; o++) { var l; if (0 === (l = a[o]).refs) { for (var s = 0; s < l.parts.length; s++)l.parts[s](); delete r[l.id] } } } }; var b = function () { var e = []; return function (t, n) { return e[t] = n, e.filter(Boolean).join("\n") } }(); function h(e, t, n, r) { var a = n ? "" : r.css; if (e.styleSheet) e.styleSheet.cssText = b(t, a); else { var o = document.createTextNode(a), i = e.childNodes; i[t] && e.removeChild(i[t]), i.length ? e.insertBefore(o, i[t]) : e.appendChild(o) } } }, function (e, t) { e.exports = function (e) { var t = "undefined" != typeof window && window.location; if (!t) throw new Error("fixUrls requires window.location"); if (!e || "string" != typeof e) return e; var n = t.protocol + "//" + t.host, r = n + t.pathname.replace(/\/[^\/]*$/, "/"); return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function (e, t) { var a, o = t.trim().replace(/^"(.*)"$/, function (e, t) { return t }).replace(/^'(.*)'$/, function (e, t) { return t }); return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o) ? e : (a = 0 === o.indexOf("//") ? o : 0 === o.indexOf("/") ? n + o : r + o.replace(/^\.\//, ""), "url(" + JSON.stringify(a) + ")") }) } }]);