mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
4185 lines
No EOL
196 KiB
JavaScript
4185 lines
No EOL
196 KiB
JavaScript
/**
|
||
* libjass
|
||
*
|
||
* https://github.com/Arnavion/libjass
|
||
*
|
||
* Copyright 2013 Arnav Singh
|
||
*
|
||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
* you may not use this file except in compliance with the License.
|
||
* You may obtain a copy of the License at
|
||
*
|
||
* http://www.apache.org/licenses/LICENSE-2.0
|
||
*
|
||
* Unless required by applicable law or agreed to in writing, software
|
||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
* See the License for the specific language governing permissions and
|
||
* limitations under the License.
|
||
*/
|
||
! function(e, t) {
|
||
var r = this;
|
||
"function" == typeof define && define.amd ? define([], function() {
|
||
return t(r)
|
||
}) : "object" == typeof exports && "object" == typeof module ? module.exports = t(r) : "object" == typeof exports ? exports.libjass = t(r) : e.libjass = t(r)
|
||
}(this, function(e) {
|
||
"use strict";
|
||
return function(e) {
|
||
function t(n) {
|
||
if (r[n]) return r[n];
|
||
var i = r[n] = Object.create(null);
|
||
return e[n](i, t), i
|
||
}
|
||
var r = Object.create(null);
|
||
return t(0)
|
||
}([function(e, t) {
|
||
var r = t(23),
|
||
n = t(23);
|
||
e.debugMode = n.debugMode, e.verboseMode = n.verboseMode;
|
||
var i = t(33),
|
||
o = t(33);
|
||
e.Set = o.Set;
|
||
var a = t(30),
|
||
l = t(30);
|
||
e.Map = l.Map;
|
||
var s = t(32),
|
||
u = t(32);
|
||
e.Promise = u.Promise, e.DeferredPromise = u.DeferredPromise;
|
||
var p = t(37);
|
||
e.webworker = p;
|
||
var c = t(8);
|
||
e.parts = c;
|
||
var h = t(1);
|
||
e.parser = h;
|
||
var f = t(14);
|
||
e.renderers = f;
|
||
var d = t(24);
|
||
e.ASS = d.ASS;
|
||
var _ = t(25);
|
||
e.Attachment = _.Attachment, e.AttachmentType = _.AttachmentType;
|
||
var g = t(26);
|
||
e.Dialogue = g.Dialogue;
|
||
var v = t(28);
|
||
e.ScriptProperties = v.ScriptProperties;
|
||
var y = t(29);
|
||
e.Style = y.Style;
|
||
var m = t(27);
|
||
e.BorderStyle = m.BorderStyle, e.Format = m.Format, e.WrappingStyle = m.WrappingStyle, Object.defineProperties(e, {
|
||
debugMode: {
|
||
get: function() {
|
||
return r.debugMode
|
||
},
|
||
set: r.setDebugMode
|
||
},
|
||
verboseMode: {
|
||
get: function() {
|
||
return r.verboseMode
|
||
},
|
||
set: r.setVerboseMode
|
||
},
|
||
Set: {
|
||
get: function() {
|
||
return i.Set
|
||
},
|
||
set: i.setImplementation
|
||
},
|
||
Map: {
|
||
get: function() {
|
||
return a.Map
|
||
},
|
||
set: a.setImplementation
|
||
},
|
||
Promise: {
|
||
get: function() {
|
||
return s.Promise
|
||
},
|
||
set: s.setImplementation
|
||
}
|
||
})
|
||
}, function(e, t) {
|
||
var r = t(3);
|
||
e.parse = r.parse;
|
||
var n = t(5);
|
||
e.BrowserReadableStream = n.BrowserReadableStream, e.StringStream = n.StringStream, e.XhrStream = n.XhrStream;
|
||
var i = t(4);
|
||
e.StreamParser = i.StreamParser, e.SrtStreamParser = i.SrtStreamParser
|
||
}, function(e, t) {
|
||
function r(e) {
|
||
var t = e.indexOf(":");
|
||
if (-1 === t) return null;
|
||
var r = e.substr(0, t),
|
||
n = e.substr(t + 1).replace(/^\s+/, "");
|
||
return {
|
||
name: r,
|
||
value: n
|
||
}
|
||
}
|
||
|
||
function n(e, t) {
|
||
var n = r(e);
|
||
if (null === n) return null;
|
||
var o = n.value.split(",");
|
||
o.length > t.length && (o[t.length - 1] = o.slice(t.length - 1).join(","));
|
||
var a = new i.Map;
|
||
return t.forEach(function(e, t) {
|
||
a.set(e, o[t])
|
||
}), {
|
||
type: n.name,
|
||
template: a
|
||
}
|
||
}
|
||
var i = t(30);
|
||
e.parseLineIntoProperty = r, e.parseLineIntoTypedTemplate = n
|
||
}, function(e, t) {
|
||
function r(e, t) {
|
||
var r = new s(e, t);
|
||
if (null === r.result || r.result.end !== e.length) throw o.debugMode && console.error("Parse failed. %s %s %o", t, e, r.result), new Error("Parse failed.");
|
||
return r.result.value
|
||
}
|
||
|
||
function n(e, t, r, n) {
|
||
s.prototype["parse_tag_" + e] = function(i) {
|
||
var o = this,
|
||
a = new h(i);
|
||
if (null === o.read(a, e)) return i.pop(), null;
|
||
var l = r.call(o, a);
|
||
if (null !== l) a.value = new t(l.value);
|
||
else {
|
||
if (n) return i.pop(), null;
|
||
a.value = new t(null)
|
||
}
|
||
return a
|
||
}
|
||
}
|
||
var i = t(8),
|
||
o = t(23),
|
||
a = t(30),
|
||
l = new a.Map;
|
||
e.parse = r;
|
||
var s = function() {
|
||
function e(e, t) {
|
||
this.e = e, this.t = new h(null), this.r = l.get(t).call(this, this.t)
|
||
}
|
||
return Object.defineProperty(e.prototype, "result", {
|
||
get: function() {
|
||
return this.r
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.parse_dialogueParts = function(e) {
|
||
var t, n = new h(e);
|
||
for (n.value = []; this.n();) {
|
||
var o = this.parse_enclosedTags(n);
|
||
if (null !== o)(t = n.value).push.apply(t, o.value);
|
||
else {
|
||
var a = this.parse_newline(n) || this.parse_hardspace(n) || this.parse_text(n);
|
||
if (null === a) return e.pop(), null;
|
||
if (a.value instanceof i.Text && n.value[n.value.length - 1] instanceof i.Text) {
|
||
var l = n.value[n.value.length - 1];
|
||
n.value[n.value.length - 1] = new i.Text(l.value + a.value.value)
|
||
} else n.value.push(a.value)
|
||
}
|
||
}
|
||
var s = !1;
|
||
return n.value.forEach(function(e, t) {
|
||
e instanceof i.DrawingMode ? s = 0 !== e.scale : e instanceof i.Text && s && (n.value[t] = new i.DrawingInstructions(r(e.value, "drawingInstructions")))
|
||
}), n
|
||
}, e.prototype.parse_enclosedTags = function(e) {
|
||
var t = new h(e);
|
||
if (t.value = [], null === this.read(t, "{")) return e.pop(), null;
|
||
for (var r = this.i(); this.n() && "}" !== r; r = this.i()) {
|
||
var n = null;
|
||
if (null !== this.read(t, "\\") && (n = this.parse_tag_alpha(t) || this.parse_tag_iclip(t) || this.parse_tag_xbord(t) || this.parse_tag_ybord(t) || this.parse_tag_xshad(t) || this.parse_tag_yshad(t) || this.parse_tag_blur(t) || this.parse_tag_bord(t) || this.parse_tag_clip(t) || this.parse_tag_fade(t) || this.parse_tag_fscx(t) || this.parse_tag_fscy(t) || this.parse_tag_move(t) || this.parse_tag_shad(t) || this.parse_tag_fad(t) || this.parse_tag_fax(t) || this.parse_tag_fay(t) || this.parse_tag_frx(t) || this.parse_tag_fry(t) || this.parse_tag_frz(t) || this.parse_tag_fsp(t) || this.parse_tag_fsplus(t) || this.parse_tag_fsminus(t) || this.parse_tag_org(t) || this.parse_tag_pbo(t) || this.parse_tag_pos(t) || this.parse_tag_an(t) || this.parse_tag_be(t) || this.parse_tag_fn(t) || this.parse_tag_fr(t) || this.parse_tag_fs(t) || this.parse_tag_kf(t) || this.parse_tag_ko(t) || this.parse_tag_1a(t) || this.parse_tag_1c(t) || this.parse_tag_2a(t) || this.parse_tag_2c(t) || this.parse_tag_3a(t) || this.parse_tag_3c(t) || this.parse_tag_4a(t) || this.parse_tag_4c(t) || this.parse_tag_a(t) || this.parse_tag_b(t) || this.parse_tag_c(t) || this.parse_tag_i(t) || this.parse_tag_k(t) || this.parse_tag_K(t) || this.parse_tag_p(t) || this.parse_tag_q(t) || this.parse_tag_r(t) || this.parse_tag_s(t) || this.parse_tag_t(t) || this.parse_tag_u(t), null === n && t.pop()), null === n && (n = this.parse_comment(t)), null === n) return e.pop(), null;
|
||
n.value instanceof i.Comment && t.value[t.value.length - 1] instanceof i.Comment ? t.value[t.value.length - 1] = new i.Comment(t.value[t.value.length - 1].value + n.value.value) : t.value.push(n.value)
|
||
}
|
||
return null === this.read(t, "}") ? (e.pop(), null) : t
|
||
}, e.prototype.parse_newline = function(e) {
|
||
var t = new h(e);
|
||
return null === this.read(t, "\\N") ? (e.pop(), null) : (t.value = new i.NewLine, t)
|
||
}, e.prototype.parse_hardspace = function(e) {
|
||
var t = new h(e);
|
||
return null === this.read(t, "\\h") ? (e.pop(), null) : (t.value = new i.Text(" "), t)
|
||
}, e.prototype.parse_text = function(e) {
|
||
var t = this.i(),
|
||
r = new h(e),
|
||
n = new h(r, t);
|
||
return r.value = new i.Text(n.value), r
|
||
}, e.prototype.parse_comment = function(e) {
|
||
var t = this.i(),
|
||
r = new h(e),
|
||
n = new h(r, t);
|
||
return r.value = new i.Comment(n.value), r
|
||
}, e.prototype.parse_tag_a = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "a")) return e.pop(), null;
|
||
var r = this.i();
|
||
switch (r) {
|
||
case "1":
|
||
var n = this.i(2);
|
||
switch (n) {
|
||
case "10":
|
||
case "11":
|
||
r = n
|
||
}
|
||
break;
|
||
case "2":
|
||
case "3":
|
||
case "5":
|
||
case "6":
|
||
case "7":
|
||
case "9":
|
||
break;
|
||
default:
|
||
return e.pop(), null
|
||
}
|
||
var o = new h(t, r),
|
||
a = null;
|
||
switch (o.value) {
|
||
case "1":
|
||
a = 1;
|
||
break;
|
||
case "2":
|
||
a = 2;
|
||
break;
|
||
case "3":
|
||
a = 3;
|
||
break;
|
||
case "5":
|
||
a = 7;
|
||
break;
|
||
case "6":
|
||
a = 8;
|
||
break;
|
||
case "7":
|
||
a = 9;
|
||
break;
|
||
case "9":
|
||
a = 4;
|
||
break;
|
||
case "10":
|
||
a = 5;
|
||
break;
|
||
case "11":
|
||
a = 6
|
||
}
|
||
return t.value = new i.Alignment(a), t
|
||
}, e.prototype.parse_tag_alpha = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_an = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "an")) return e.pop(), null;
|
||
var r = this.i();
|
||
if ("1" > r || r > "9") return e.pop(), null;
|
||
var n = new h(t, r);
|
||
return t.value = new i.Alignment(parseInt(n.value)), t
|
||
}, e.prototype.parse_tag_b = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "b")) return e.pop(), null;
|
||
var r = null,
|
||
n = this.i();
|
||
return n >= "1" && "9" >= n && (n = this.i(3), "00" === n.substr(1) && (r = new h(t, n), r.value = parseInt(r.value))), null === r && (r = this.parse_enableDisable(t)), null !== r ? t.value = new i.Bold(r.value) : t.value = new i.Bold(null), t
|
||
}, e.prototype.parse_tag_be = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_blur = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_bord = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_c = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_clip = function(e) {
|
||
return this.o("clip", e)
|
||
}, e.prototype.parse_tag_fad = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fad")) return e.pop(), null;
|
||
if (null === this.read(t, "(")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
if (null === r) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var n = this.parse_decimal(t);
|
||
return null === n ? (e.pop(), null) : null === this.read(t, ")") ? (e.pop(), null) : (t.value = new i.Fade(r.value / 1e3, n.value / 1e3), t)
|
||
}, e.prototype.parse_tag_fade = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fade")) return e.pop(), null;
|
||
if (null === this.read(t, "(")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
if (null === r) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var n = this.parse_decimal(t);
|
||
if (null === n) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var o = this.parse_decimal(t);
|
||
if (null === o) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var a = this.parse_decimal(t);
|
||
if (null === a) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var l = this.parse_decimal(t);
|
||
if (null === l) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var s = this.parse_decimal(t);
|
||
if (null === s) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var u = this.parse_decimal(t);
|
||
return null === u ? (e.pop(), null) : null === this.read(t, ")") ? (e.pop(), null) : (t.value = new i.ComplexFade(1 - r.value / 255, 1 - n.value / 255, 1 - o.value / 255, a.value / 1e3, l.value / 1e3, s.value / 1e3, u.value / 1e3), t)
|
||
}, e.prototype.parse_tag_fax = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_fay = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_fn = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fn")) return e.pop(), null;
|
||
for (var r = new h(t, ""), n = this.i(); this.n() && "\\" !== n && "}" !== n; n = this.i()) r.value += n;
|
||
return r.value.length > 0 ? t.value = new i.FontName(r.value) : t.value = new i.FontName(null), t
|
||
}, e.prototype.parse_tag_fr = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_frx = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_fry = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_frz = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_fs = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_fsplus = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fs+")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null === r ? (e.pop(), null) : (t.value = new i.FontSizePlus(r.value), t)
|
||
}, e.prototype.parse_tag_fsminus = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fs-")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null === r ? (e.pop(), null) : (t.value = new i.FontSizeMinus(r.value), t)
|
||
}, e.prototype.parse_tag_fscx = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fscx")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null !== r ? t.value = new i.FontScaleX(r.value / 100) : t.value = new i.FontScaleX(null), t
|
||
}, e.prototype.parse_tag_fscy = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "fscy")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null !== r ? t.value = new i.FontScaleY(r.value / 100) : t.value = new i.FontScaleY(null), t
|
||
}, e.prototype.parse_tag_fsp = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_i = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_iclip = function(e) {
|
||
return this.o("iclip", e)
|
||
}, e.prototype.parse_tag_k = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "k")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null === r ? (e.pop(), null) : (t.value = new i.ColorKaraoke(r.value / 100), t)
|
||
}, e.prototype.parse_tag_K = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "K")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null === r ? (e.pop(), null) : (t.value = new i.SweepingColorKaraoke(r.value / 100), t)
|
||
}, e.prototype.parse_tag_kf = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "kf")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null === r ? (e.pop(), null) : (t.value = new i.SweepingColorKaraoke(r.value / 100), t)
|
||
}, e.prototype.parse_tag_ko = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "ko")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
return null === r ? (e.pop(), null) : (t.value = new i.OutlineKaraoke(r.value / 100), t)
|
||
}, e.prototype.parse_tag_move = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "move")) return e.pop(), null;
|
||
if (null === this.read(t, "(")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
if (null === r) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var n = this.parse_decimal(t);
|
||
if (null === n) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var o = this.parse_decimal(t);
|
||
if (null === o) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var a = this.parse_decimal(t);
|
||
if (null === a) return e.pop(), null;
|
||
var l = null,
|
||
s = null;
|
||
if (null !== this.read(t, ",")) {
|
||
if (l = this.parse_decimal(t), null === l) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
if (s = this.parse_decimal(t), null === s) return e.pop(), null
|
||
}
|
||
return null === this.read(t, ")") ? (e.pop(), null) : (t.value = new i.Move(r.value, n.value, o.value, a.value, null !== l ? l.value / 1e3 : null, null !== s ? s.value / 1e3 : null), t)
|
||
}, e.prototype.parse_tag_org = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "org")) return e.pop(), null;
|
||
if (null === this.read(t, "(")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
if (null === r) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var n = this.parse_decimal(t);
|
||
return null === n ? (e.pop(), null) : null === this.read(t, ")") ? (e.pop(), null) : (t.value = new i.RotationOrigin(r.value, n.value), t)
|
||
}, e.prototype.parse_tag_p = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_pbo = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_pos = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "pos")) return e.pop(), null;
|
||
if (null === this.read(t, "(")) return e.pop(), null;
|
||
var r = this.parse_decimal(t);
|
||
if (null === r) return e.pop(), null;
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var n = this.parse_decimal(t);
|
||
return null === n ? (e.pop(), null) : null === this.read(t, ")") ? (e.pop(), null) : (t.value = new i.Position(r.value, n.value), t)
|
||
}, e.prototype.parse_tag_q = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "q")) return e.pop(), null;
|
||
var r = this.i();
|
||
if ("0" > r || r > "3") return e.pop(), null;
|
||
var n = new h(t, r);
|
||
return t.value = new i.WrappingStyle(parseInt(n.value)), t
|
||
}, e.prototype.parse_tag_r = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "r")) return e.pop(), null;
|
||
for (var r = new h(t, ""), n = this.i(); this.n() && "\\" !== n && "}" !== n; n = this.i()) r.value += n;
|
||
return r.value.length > 0 ? t.value = new i.Reset(r.value) : t.value = new i.Reset(null), t
|
||
}, e.prototype.parse_tag_s = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_shad = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_t = function(e) {
|
||
var t = new h(e);
|
||
if (null === this.read(t, "t")) return e.pop(), null;
|
||
if (null === this.read(t, "(")) return e.pop(), null;
|
||
var r = null,
|
||
n = null,
|
||
o = null,
|
||
a = this.parse_decimal(t);
|
||
if (null !== a) {
|
||
if (null === this.read(t, ",")) return e.pop(), null;
|
||
var l = this.parse_decimal(t);
|
||
if (null !== l) {
|
||
if (r = a, n = l, null === this.read(t, ",")) return e.pop(), null;
|
||
var s = this.parse_decimal(t);
|
||
if (null !== s && (o = s, null === this.read(t, ","))) return e.pop(), null
|
||
} else if (o = a, null === this.read(t, ",")) return e.pop(), null
|
||
}
|
||
for (var u = [], p = this.i(); this.n() && ")" !== p && "}" !== p; p = this.i()) {
|
||
var c = null;
|
||
if (null !== this.read(t, "\\") && (c = this.parse_tag_alpha(t) || this.parse_tag_iclip(t) || this.parse_tag_xbord(t) || this.parse_tag_ybord(t) || this.parse_tag_xshad(t) || this.parse_tag_yshad(t) || this.parse_tag_blur(t) || this.parse_tag_bord(t) || this.parse_tag_clip(t) || this.parse_tag_fscx(t) || this.parse_tag_fscy(t) || this.parse_tag_shad(t) || this.parse_tag_fax(t) || this.parse_tag_fay(t) || this.parse_tag_frx(t) || this.parse_tag_fry(t) || this.parse_tag_frz(t) || this.parse_tag_fsp(t) || this.parse_tag_fsplus(t) || this.parse_tag_fsminus(t) || this.parse_tag_be(t) || this.parse_tag_fr(t) || this.parse_tag_fs(t) || this.parse_tag_1a(t) || this.parse_tag_1c(t) || this.parse_tag_2a(t) || this.parse_tag_2c(t) || this.parse_tag_3a(t) || this.parse_tag_3c(t) || this.parse_tag_4a(t) || this.parse_tag_4c(t) || this.parse_tag_c(t), null === c && t.pop()), null === c && (c = this.parse_comment(t)), null === c) return e.pop(), null;
|
||
c.value instanceof i.Comment && u[u.length - 1] instanceof i.Comment ? u[u.length - 1] = new i.Comment(u[u.length - 1].value + c.value.value) : u.push(c.value)
|
||
}
|
||
return this.read(t, ")"), t.value = new i.Transform(null !== r ? r.value / 1e3 : null, null !== n ? n.value / 1e3 : null, null !== o ? o.value / 1e3 : null, u), t
|
||
}, e.prototype.parse_tag_u = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_xbord = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_xshad = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_ybord = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_yshad = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_1a = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_1c = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_2a = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_2c = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_3a = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_3c = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_4a = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_tag_4c = function() {
|
||
throw new Error("Method not implemented.")
|
||
}, e.prototype.parse_drawingInstructions = function(e) {
|
||
var t = new h(e),
|
||
r = null,
|
||
n = [];
|
||
for (t.value = []; this.n();) {
|
||
for (; null !== this.read(t, " "););
|
||
if (!this.n()) break;
|
||
if (null !== r) {
|
||
var o = this.parse_decimal(t);
|
||
if (null !== o) {
|
||
n.push(o), "m" === r && 2 === n.length ? (t.value.push(new i.drawing.MoveInstruction(n[0].value, n[1].value)), n.splice(0, n.length)) : "l" === r && 2 === n.length ? (t.value.push(new i.drawing.LineInstruction(n[0].value, n[1].value)), n.splice(0, n.length)) : "b" === r && 6 === n.length && (t.value.push(new i.drawing.CubicBezierCurveInstruction(n[0].value, n[1].value, n[2].value, n[3].value, n[4].value, n[5].value)), n.splice(0, n.length));
|
||
continue
|
||
}
|
||
}
|
||
var a = this.parse_text(t);
|
||
if (null === a) break;
|
||
var l = a.value.value;
|
||
switch (l) {
|
||
case "m":
|
||
case "l":
|
||
case "b":
|
||
r = l, n.splice(0, n.length)
|
||
}
|
||
}
|
||
for (; null !== this.read(t, " "););
|
||
return t
|
||
}, e.prototype.parse_decimalInt32 = function(e) {
|
||
for (var t = new h(e), r = null !== this.read(t, "-"), n = new h(t, ""), i = this.i(); this.n() && i >= "0" && "9" >= i; i = this.i()) n.value += i;
|
||
if (0 === n.value.length) return e.pop(), null;
|
||
var o = parseInt(n.value);
|
||
return o >= 4294967295 ? o = 4294967295 : r && (o = -o), t.value = o, t
|
||
}, e.prototype.parse_hexInt32 = function(e) {
|
||
for (var t = new h(e), r = null !== this.read(t, "-"), n = new h(t, ""), i = this.i(); this.n() && (i >= "0" && "9" >= i || i >= "a" && "f" >= i || i >= "A" && "F" >= i); i = this.i()) n.value += i;
|
||
if (0 === n.value.length) return e.pop(), null;
|
||
var o = parseInt(n.value, 16);
|
||
return o >= 4294967295 ? o = 4294967295 : r && (o = -o), t.value = o, t
|
||
}, e.prototype.parse_decimalOrHexInt32 = function(e) {
|
||
var t = new h(e),
|
||
r = null !== this.read(t, "&H") || null !== this.read(t, "&h") ? this.parse_hexInt32(t) : this.parse_decimalInt32(t);
|
||
return null === r ? (e.pop(), null) : (t.value = r.value, t)
|
||
}, e.prototype.parse_decimal = function(e) {
|
||
var t = new h(e),
|
||
r = null !== this.read(t, "-"),
|
||
n = this.parse_unsignedDecimal(t);
|
||
return null === n ? (e.pop(), null) : (t.value = n.value, r && (t.value = -t.value), t)
|
||
}, e.prototype.parse_unsignedDecimal = function(e) {
|
||
for (var t = new h(e), r = new h(t, ""), n = null, i = this.i(); this.n() && i >= "0" && "9" >= i; i = this.i()) r.value += i;
|
||
if (0 === r.value.length) return e.pop(), null;
|
||
if (null !== this.read(t, ".")) {
|
||
n = new h(t, "");
|
||
for (var i = this.i(); this.n() && i >= "0" && "9" >= i; i = this.i()) n.value += i;
|
||
if (0 === n.value.length) return e.pop(), null
|
||
}
|
||
return t.value = parseFloat(r.value + (null !== n ? "." + n.value : "")), t
|
||
}, e.prototype.parse_enableDisable = function(e) {
|
||
var t = this.i();
|
||
if ("0" === t || "1" === t) {
|
||
var r = new h(e, t);
|
||
return r.value = "1" === r.value, r
|
||
}
|
||
return null
|
||
}, e.prototype.parse_color = function(e) {
|
||
for (var t = new h(e); null !== this.read(t, "&") || null !== this.read(t, "H"););
|
||
var r = this.parse_hexInt32(t);
|
||
if (null === r) return e.pop(), null;
|
||
var n = r.value;
|
||
for (t.value = new i.Color(255 & n, n >> 8 & 255, n >> 16 & 255); null !== this.read(t, "&") || null !== this.read(t, "H"););
|
||
return t
|
||
}, e.prototype.parse_alpha = function(e) {
|
||
for (var t = new h(e); null !== this.read(t, "&") || null !== this.read(t, "H"););
|
||
var r = this.parse_hexInt32(t);
|
||
if (null === r) return e.pop(), null;
|
||
var n = r.value;
|
||
for (t.value = 1 - (255 & n) / 255; null !== this.read(t, "&") || null !== this.read(t, "H"););
|
||
return t
|
||
}, e.prototype.parse_colorWithAlpha = function(e) {
|
||
var t = new h(e),
|
||
r = this.parse_decimalOrHexInt32(t);
|
||
if (null === r) return e.pop(), null;
|
||
var n = r.value;
|
||
return t.value = new i.Color(255 & n, n >> 8 & 255, n >> 16 & 255, 1 - (n >> 24 & 255) / 255), t
|
||
}, e.prototype.read = function(e, t) {
|
||
return this.i(t.length) !== t ? null : new h(e, t)
|
||
}, e.prototype.i = function(e) {
|
||
return void 0 === e && (e = 1), 1 === e ? this.e[this.t.end] : this.e.substr(this.t.end, e)
|
||
}, e.prototype.n = function() {
|
||
return this.t.end < this.e.length
|
||
}, e.prototype.o = function(e, t) {
|
||
var n = new h(t);
|
||
if (null === this.read(n, e)) return t.pop(), null;
|
||
if (null === this.read(n, "(")) return t.pop(), null;
|
||
var o = null,
|
||
a = null,
|
||
l = null,
|
||
s = null,
|
||
u = null,
|
||
p = null,
|
||
c = this.parse_decimal(n);
|
||
if (null !== c) {
|
||
if (null === this.read(n, ",")) return t.pop(), null;
|
||
var f = this.parse_decimal(n);
|
||
null !== f ? (o = c, l = f) : u = c
|
||
}
|
||
if (null !== o && null !== l) {
|
||
if (null === this.read(n, ",")) return t.pop(), null;
|
||
if (a = this.parse_decimal(n), null === this.read(n, ",")) return t.pop(), null;
|
||
s = this.parse_decimal(n), n.value = new i.RectangularClip(o.value, l.value, a.value, s.value, "clip" === e)
|
||
} else {
|
||
p = new h(n, "");
|
||
for (var d = this.i(); this.n() && ")" !== d && "}" !== d; d = this.i()) p.value += d;
|
||
n.value = new i.VectorClip(null !== u ? u.value : 1, r(p.value, "drawingInstructions"), "clip" === e)
|
||
}
|
||
return null === this.read(n, ")") ? (t.pop(), null) : n
|
||
}, e
|
||
}();
|
||
n("alpha", i.Alpha, s.prototype.parse_alpha, !1), n("be", i.Blur, s.prototype.parse_decimal, !1), n("blur", i.GaussianBlur, s.prototype.parse_decimal, !1), n("bord", i.Border, s.prototype.parse_decimal, !1), n("c", i.PrimaryColor, s.prototype.parse_color, !1), n("fax", i.SkewX, s.prototype.parse_decimal, !1), n("fay", i.SkewY, s.prototype.parse_decimal, !1), n("fr", i.RotateZ, s.prototype.parse_decimal, !1), n("frx", i.RotateX, s.prototype.parse_decimal, !1), n("fry", i.RotateY, s.prototype.parse_decimal, !1), n("frz", i.RotateZ, s.prototype.parse_decimal, !1), n("fs", i.FontSize, s.prototype.parse_decimal, !1), n("fsp", i.LetterSpacing, s.prototype.parse_decimal, !1), n("i", i.Italic, s.prototype.parse_enableDisable, !1), n("p", i.DrawingMode, s.prototype.parse_decimal, !0), n("pbo", i.DrawingBaselineOffset, s.prototype.parse_decimal, !0), n("s", i.StrikeThrough, s.prototype.parse_enableDisable, !1), n("shad", i.Shadow, s.prototype.parse_decimal, !1), n("u", i.Underline, s.prototype.parse_enableDisable, !1), n("xbord", i.BorderX, s.prototype.parse_decimal, !1), n("xshad", i.ShadowX, s.prototype.parse_decimal, !1), n("ybord", i.BorderY, s.prototype.parse_decimal, !1), n("yshad", i.ShadowY, s.prototype.parse_decimal, !1), n("1a", i.PrimaryAlpha, s.prototype.parse_alpha, !1), n("1c", i.PrimaryColor, s.prototype.parse_color, !1), n("2a", i.SecondaryAlpha, s.prototype.parse_alpha, !1), n("2c", i.SecondaryColor, s.prototype.parse_color, !1), n("3a", i.OutlineAlpha, s.prototype.parse_alpha, !1), n("3c", i.OutlineColor, s.prototype.parse_color, !1), n("4a", i.ShadowAlpha, s.prototype.parse_alpha, !1), n("4c", i.ShadowColor, s.prototype.parse_color, !1);
|
||
for (var u = 0, p = Object.keys(s.prototype); u < p.length; u++) {
|
||
var c = p[u];
|
||
0 === c.indexOf("parse_") && "function" == typeof s.prototype[c] && l.set(c.substr("parse_".length), s.prototype[c])
|
||
}
|
||
var h = function() {
|
||
function e(e, t) {
|
||
void 0 === t && (t = null), this.a = e, this.l = [], null !== e && e.children.push(this), this.s = null !== e ? e.end : 0, this.u = this.s, this.value = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "start", {
|
||
get: function() {
|
||
return this.s
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "end", {
|
||
get: function() {
|
||
return this.u
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "parent", {
|
||
get: function() {
|
||
return this.a
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "children", {
|
||
get: function() {
|
||
return this.l
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
set: function(e) {
|
||
this.p = e, null !== this.p && this.p.constructor === String && 0 === this.l.length && this.c(this.s + this.p.length)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.pop = function() {
|
||
this.l.splice(this.l.length - 1, 1), this.l.length > 0 ? this.c(this.l[this.l.length - 1].end) : this.c(this.start)
|
||
}, e.prototype.c = function(e) {
|
||
this.u = e, null !== this.a && this.a.end !== this.u && this.a.c(this.u)
|
||
}, e
|
||
}(),
|
||
f = t(32),
|
||
d = t(36),
|
||
_ = t(38);
|
||
_.registerWorkerCommand(d.WorkerCommands.Parse, function(e) {
|
||
return new f.Promise(function(t) {
|
||
t(r(e.input, e.rule))
|
||
})
|
||
})
|
||
}, function(e, t) {
|
||
function r(e) {
|
||
for (var t = "", r = 0; r < e.length; r++) {
|
||
var n = e.charCodeAt(r) - 33;
|
||
if (0 > n || n > 63) throw new Error("Out-of-range character code " + n + " at index " + r + " in string " + e);
|
||
t += 26 > n ? String.fromCharCode("A".charCodeAt(0) + n) : 52 > n ? String.fromCharCode("a".charCodeAt(0) + n - 26) : 62 > n ? String.fromCharCode("0".charCodeAt(0) + n - 52) : 62 === n ? "+" : "/"
|
||
}
|
||
return t
|
||
}
|
||
var n, i = t(23),
|
||
o = t(24),
|
||
a = t(29),
|
||
l = t(26),
|
||
s = t(25),
|
||
u = t(30),
|
||
p = t(32),
|
||
c = t(2);
|
||
! function(e) {
|
||
e[e.ScriptInfo = 0] = "ScriptInfo", e[e.Styles = 1] = "Styles", e[e.Events = 2] = "Events", e[e.Fonts = 3] = "Fonts", e[e.Graphics = 4] = "Graphics", e[e.Other = 5] = "Other", e[e.EOF = 6] = "EOF"
|
||
}(n || (n = {}));
|
||
var h = function() {
|
||
function e(e) {
|
||
var t = this;
|
||
this.h = e, this.f = new o.ASS, this.d = new p.DeferredPromise, this._ = new p.DeferredPromise, this.g = !0, this.v = n.ScriptInfo, this.y = null, this.h.nextLine().then(function(e) {
|
||
return t.m(e)
|
||
}, function(e) {
|
||
t.d.reject(e), t._.reject(e)
|
||
})
|
||
}
|
||
return Object.defineProperty(e.prototype, "minimalASS", {
|
||
get: function() {
|
||
return this.d.promise
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "ass", {
|
||
get: function() {
|
||
return this._.promise
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "currentSection", {
|
||
get: function() {
|
||
return this.v
|
||
},
|
||
set: function(e) {
|
||
if (null !== this.y && (this.f.addAttachment(this.y), this.y = null), this.v === n.ScriptInfo && e !== n.ScriptInfo && this.d.resolve(this.f), e === n.EOF) {
|
||
var t = this.f.properties;
|
||
void 0 === t.resolutionX || void 0 === t.resolutionY ? (this.d.reject("Malformed ASS script."), this._.reject("Malformed ASS script.")) : (this.d.resolve(this.f), this._.resolve(this.f))
|
||
}
|
||
this.v = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.m = function(e) {
|
||
var t = this;
|
||
if (null === e) return void(this.currentSection = n.EOF);
|
||
if ("\r" === e[e.length - 1] && (e = e.substr(0, e.length - 1)), 65279 === e.charCodeAt(0) && this.g && (e = e.substr(1)), this.g = !1, "" === e);
|
||
else if (";" === e[0] && null === this.y);
|
||
else if ("[Script Info]" === e) this.currentSection = n.ScriptInfo;
|
||
else if ("[V4+ Styles]" === e || "[V4 Styles]" === e) this.currentSection = n.Styles;
|
||
else if ("[Events]" === e) this.currentSection = n.Events;
|
||
else if ("[Fonts]" === e) this.currentSection = n.Fonts;
|
||
else if ("[Graphics]" === e) this.currentSection = n.Graphics;
|
||
else switch (null === this.y && "[" === e[0] && "]" === e[e.length - 1] && (this.currentSection = n.Other), this.currentSection) {
|
||
case n.ScriptInfo:
|
||
var o = c.parseLineIntoProperty(e);
|
||
if (null !== o) switch (o.name) {
|
||
case "PlayResX":
|
||
this.f.properties.resolutionX = parseInt(o.value);
|
||
break;
|
||
case "PlayResY":
|
||
this.f.properties.resolutionY = parseInt(o.value);
|
||
break;
|
||
case "WrapStyle":
|
||
this.f.properties.wrappingStyle = parseInt(o.value);
|
||
break;
|
||
case "ScaledBorderAndShadow":
|
||
this.f.properties.scaleBorderAndShadow = "yes" === o.value
|
||
}
|
||
break;
|
||
case n.Styles:
|
||
if (null === this.f.stylesFormatSpecifier) {
|
||
var a = c.parseLineIntoProperty(e);
|
||
null !== a && "Format" === a.name && (this.f.stylesFormatSpecifier = a.value.split(",").map(function(e) {
|
||
return e.trim()
|
||
}))
|
||
} else try {
|
||
this.f.addStyle(e)
|
||
} catch (t) {
|
||
i.debugMode && console.error("Could not parse style from line " + e + " - " + (t.stack || t))
|
||
}
|
||
break;
|
||
case n.Events:
|
||
if (null === this.f.dialoguesFormatSpecifier) {
|
||
var l = c.parseLineIntoProperty(e);
|
||
null !== l && "Format" === l.name && (this.f.dialoguesFormatSpecifier = l.value.split(",").map(function(e) {
|
||
return e.trim()
|
||
}))
|
||
} else try {
|
||
this.f.addEvent(e)
|
||
} catch (t) {
|
||
i.debugMode && console.error("Could not parse event from line " + e + " - " + (t.stack || t))
|
||
}
|
||
break;
|
||
case n.Fonts:
|
||
case n.Graphics:
|
||
var u = this.currentSection === n.Fonts ? /^fontname:(.+)/ : /^filename:(.+)/,
|
||
p = u.exec(e);
|
||
if (null !== p) null !== this.y && (this.f.addAttachment(this.y), this.y = null), this.y = new s.Attachment(p[1].trim(), this.currentSection === n.Fonts ? s.AttachmentType.Font : s.AttachmentType.Graphic);
|
||
else if (null !== this.y) try {
|
||
this.y.contents += r(e)
|
||
} catch (e) {
|
||
i.debugMode && console.error("Encountered error while reading font " + this.y.filename + ": %o", e), this.y = null
|
||
}
|
||
break;
|
||
case n.Other:
|
||
break;
|
||
default:
|
||
throw new Error("Unhandled state " + this.currentSection)
|
||
}
|
||
this.h.nextLine().then(function(e) {
|
||
return t.m(e)
|
||
}, function(e) {
|
||
t.d.reject(e), t._.reject(e)
|
||
})
|
||
}, e
|
||
}();
|
||
e.StreamParser = h;
|
||
var f = function() {
|
||
function e(e) {
|
||
var t = this;
|
||
this.h = e, this.f = new o.ASS, this._ = new p.DeferredPromise, this.g = !0, this.b = null, this.w = null, this.S = null, this.O = null, this.h.nextLine().then(function(e) {
|
||
return t.m(e)
|
||
}, function(e) {
|
||
t._.reject(e)
|
||
}), this.f.properties.resolutionX = 1280, this.f.properties.resolutionY = 720, this.f.properties.wrappingStyle = 1, this.f.properties.scaleBorderAndShadow = !0;
|
||
var r = new a.Style(new u.Map([
|
||
["Name", "Default"],
|
||
["FontSize", "36"]
|
||
]));
|
||
this.f.styles.set(r.name, r)
|
||
}
|
||
return Object.defineProperty(e.prototype, "ass", {
|
||
get: function() {
|
||
return this._.promise
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.m = function(e) {
|
||
var t = this;
|
||
if (null === e) return null !== this.b && null !== this.w && null !== this.S && null !== this.O && this.f.dialogues.push(new l.Dialogue(new u.Map([
|
||
["Style", "Default"],
|
||
["Start", this.w],
|
||
["End", this.S],
|
||
["Text", this.O]
|
||
]), this.f)), void this._.resolve(this.f);
|
||
if ("\r" === e[e.length - 1] && (e = e.substr(0, e.length - 1)), 65279 === e.charCodeAt(0) && this.g && (e = e.substr(1)), this.g = !1, "" === e) null !== this.b && null !== this.w && null !== this.S && null !== this.O && this.f.dialogues.push(new l.Dialogue(new u.Map([
|
||
["Style", "Default"],
|
||
["Start", this.w],
|
||
["End", this.S],
|
||
["Text", this.O]
|
||
]), this.f)), this.b = this.w = this.S = this.O = null;
|
||
else if (null === this.b) /^\d+$/.test(e) && (this.b = e);
|
||
else if (null === this.w && null === this.S) {
|
||
var r = /^(\d\d:\d\d:\d\d,\d\d\d) --> (\d\d:\d\d:\d\d,\d\d\d)/.exec(e);
|
||
null !== r && (this.w = r[1].replace(",", "."), this.S = r[2].replace(",", "."))
|
||
} else e = e.replace(/<b>/g, "{\\b1}").replace(/\{b\}/g, "{\\b1}").replace(/<\/b>/g, "{\\b0}").replace(/\{\/b\}/g, "{\\b0}").replace(/<i>/g, "{\\i1}").replace(/\{i\}/g, "{\\i1}").replace(/<\/i>/g, "{\\i0}").replace(/\{\/i\}/g, "{\\i0}").replace(/<u>/g, "{\\u1}").replace(/\{u\}/g, "{\\u1}").replace(/<\/u>/g, "{\\u0}").replace(/\{\/u\}/g, "{\\u0}").replace(/<font color="#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})">/g, function(e, t, r, n) {
|
||
return "{c&H" + n + r + t + "&}"
|
||
}).replace(/<\/font>/g, "{\\c}"), null !== this.O ? this.O += "\\N" + e : this.O = e;
|
||
this.h.nextLine().then(function(e) {
|
||
return t.m(e)
|
||
}, function(e) {
|
||
t._.reject(e)
|
||
})
|
||
}, e
|
||
}();
|
||
e.SrtStreamParser = f
|
||
}, function(t, r) {
|
||
var n = r(32),
|
||
i = function() {
|
||
function e(e) {
|
||
this.P = e, this.C = 0
|
||
}
|
||
return e.prototype.nextLine = function() {
|
||
var e = null;
|
||
if (this.C < this.P.length) {
|
||
var t = this.P.indexOf("\n", this.C); - 1 !== t ? (e = n.Promise.resolve(this.P.substring(this.C, t)), this.C = t + 1) : (e = n.Promise.resolve(this.P.substr(this.C)), this.C = this.P.length)
|
||
} else e = n.Promise.resolve(null);
|
||
return e
|
||
}, e
|
||
}();
|
||
t.StringStream = i;
|
||
var o = function() {
|
||
function e(e) {
|
||
var t = this;
|
||
this.k = e, this.C = 0, this.x = null, this.j = null, e.addEventListener("progress", function() {
|
||
return t.A()
|
||
}, !1), e.addEventListener("load", function() {
|
||
return t.T()
|
||
}, !1), e.addEventListener("error", function(e) {
|
||
return t.D(e)
|
||
}, !1)
|
||
}
|
||
return e.prototype.nextLine = function() {
|
||
if (null !== this.x) throw new Error("XhrStream only supports one pending unfulfilled read at a time.");
|
||
var e = this.x = new n.DeferredPromise;
|
||
return this.F(), e.promise
|
||
}, e.prototype.A = function() {
|
||
null !== this.x && this.k.readyState !== XMLHttpRequest.DONE && this.F()
|
||
}, e.prototype.T = function() {
|
||
null !== this.x && this.F()
|
||
}, e.prototype.D = function(e) {
|
||
this.j = e, null !== this.x && this.F()
|
||
}, e.prototype.F = function() {
|
||
if (null !== this.j) return void this.x.reject(this.j);
|
||
var e = this.k.responseText,
|
||
t = e.indexOf("\n", this.C); - 1 !== t ? (this.x.resolve(e.substring(this.C, t)), this.C = t + 1, this.x = null) : this.k.readyState === XMLHttpRequest.DONE && (null !== this.j ? this.x.reject(this.j) : this.C < e.length ? (this.x.resolve(e.substr(this.C)), this.C = e.length) : this.x.resolve(null), this.x = null)
|
||
}, e
|
||
}();
|
||
t.XhrStream = o;
|
||
var a = function() {
|
||
function t(t, r) {
|
||
this.M = "", this.x = null, this.R = t.getReader(), this.N = new e.TextDecoder(r, {
|
||
ignoreBOM: !0
|
||
})
|
||
}
|
||
return t.prototype.nextLine = function() {
|
||
if (null !== this.x) throw new Error("BrowserReadableStream only supports one pending unfulfilled read at a time.");
|
||
var e = this.x = new n.DeferredPromise;
|
||
return this.F(), e.promise
|
||
}, t.prototype.F = function() {
|
||
var e = this,
|
||
t = this.M.indexOf("\n"); - 1 !== t ? (this.x.resolve(this.M.substr(0, t)), this.M = this.M.substr(t + 1), this.x = null) : this.R.read().then(function(t) {
|
||
var r = t.value,
|
||
n = t.done;
|
||
n ? (0 === e.M.length ? e.x.resolve(null) : (e.x.resolve(e.M), e.M = ""), e.x = null) : (e.M += e.N.decode(r, {
|
||
stream: !0
|
||
}), e.F())
|
||
})
|
||
}, t
|
||
}();
|
||
t.BrowserReadableStream = a
|
||
}, function(e, t) {
|
||
function r(e) {
|
||
for (var t = atob(e.contents), r = new Uint8Array(new ArrayBuffer(t.length)), n = 0; n < t.length; n++) r[n] = t.charCodeAt(n);
|
||
for (var i = {
|
||
dataView: new DataView(r.buffer),
|
||
position: 0
|
||
}, o = p.read(i), a = null, n = 0; n < o.numTables; n++) {
|
||
var l = c.read(i);
|
||
if (l.c1 + l.c2 + l.c3 + l.c4 === "name") {
|
||
a = l;
|
||
break
|
||
}
|
||
}
|
||
i.position = a.offset;
|
||
for (var u = h.read(i), d = new s.Set, n = 0; n < u.count; n++) {
|
||
var _ = f.read(i);
|
||
switch (_.nameId) {
|
||
case 1:
|
||
case 4:
|
||
case 6:
|
||
var g = a.offset + u.stringOffset + _.offset,
|
||
v = r.subarray(g, g + _.length);
|
||
switch (_.platformId) {
|
||
case 1:
|
||
for (var y = "", m = 0; m < v.length; m++) y += String.fromCharCode(v[m]);
|
||
d.add(y);
|
||
break;
|
||
case 3:
|
||
for (var b = "", m = 0; m < v.length; m += 2) b += String.fromCharCode((v[m] << 8) + v[m + 1]);
|
||
d.add(b)
|
||
}
|
||
}
|
||
}
|
||
return d
|
||
}
|
||
|
||
function n(e) {
|
||
var t = e.W;
|
||
return e.read = function(r) {
|
||
for (var n = new e, i = 0; i < t.length; i++) {
|
||
var a = t[i],
|
||
l = void 0;
|
||
switch (a.type) {
|
||
case o.Char:
|
||
l = String.fromCharCode(r.dataView.getInt8(r.position)), r.position += 1;
|
||
break;
|
||
case o.Uint16:
|
||
l = r.dataView.getUint16(r.position), r.position += 2;
|
||
break;
|
||
case o.Uint32:
|
||
l = r.dataView.getUint32(r.position), r.position += 4
|
||
}
|
||
n[a.field] = l
|
||
}
|
||
return n
|
||
}, e
|
||
}
|
||
|
||
function i(e) {
|
||
var t = u.get(e);
|
||
return void 0 === t && (t = function(t, r) {
|
||
var n = t.constructor;
|
||
void 0 === n.W && (n.W = []), n.W.push({
|
||
type: e,
|
||
field: r
|
||
})
|
||
}, u.set(e, t)), t
|
||
}
|
||
var o, a = t(34).L,
|
||
l = t(30),
|
||
s = t(33);
|
||
! function(e) {
|
||
e[e.Char = 0] = "Char", e[e.Uint16 = 1] = "Uint16", e[e.Uint32 = 2] = "Uint32"
|
||
}(o || (o = {}));
|
||
var u = new l.Map,
|
||
p = function() {
|
||
function e() {}
|
||
return a([i(o.Uint16)], e.prototype, "majorVersion", void 0), a([i(o.Uint16)], e.prototype, "minorVersion", void 0), a([i(o.Uint16)], e.prototype, "numTables", void 0), a([i(o.Uint16)], e.prototype, "searchRange", void 0), a([i(o.Uint16)], e.prototype, "entrySelector", void 0), a([i(o.Uint16)], e.prototype, "rangeShift", void 0), e = a([n], e)
|
||
}(),
|
||
c = function() {
|
||
function e() {}
|
||
return a([i(o.Char)], e.prototype, "c1", void 0), a([i(o.Char)], e.prototype, "c2", void 0), a([i(o.Char)], e.prototype, "c3", void 0), a([i(o.Char)], e.prototype, "c4", void 0), a([i(o.Uint32)], e.prototype, "checksum", void 0), a([i(o.Uint32)], e.prototype, "offset", void 0), a([i(o.Uint32)], e.prototype, "length", void 0), e = a([n], e)
|
||
}(),
|
||
h = function() {
|
||
function e() {}
|
||
return a([i(o.Uint16)], e.prototype, "formatSelector", void 0), a([i(o.Uint16)], e.prototype, "count", void 0), a([i(o.Uint16)], e.prototype, "stringOffset", void 0), e = a([n], e)
|
||
}(),
|
||
f = function() {
|
||
function e() {}
|
||
return a([i(o.Uint16)], e.prototype, "platformId", void 0), a([i(o.Uint16)], e.prototype, "encodingId", void 0), a([i(o.Uint16)], e.prototype, "languageId", void 0), a([i(o.Uint16)], e.prototype, "nameId", void 0), a([i(o.Uint16)], e.prototype, "length", void 0), a([i(o.Uint16)], e.prototype, "offset", void 0), e = a([n], e)
|
||
}();
|
||
e.getTtfNames = r
|
||
}, function(e) {
|
||
var t = function() {
|
||
function e(e, t) {
|
||
this.I = e, this.X = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "x", {
|
||
get: function() {
|
||
return this.I
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y", {
|
||
get: function() {
|
||
return this.X
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.MoveInstruction = t;
|
||
var r = function() {
|
||
function e(e, t) {
|
||
this.I = e, this.X = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "x", {
|
||
get: function() {
|
||
return this.I
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y", {
|
||
get: function() {
|
||
return this.X
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.LineInstruction = r;
|
||
var n = function() {
|
||
function e(e, t, r, n, i, o) {
|
||
this.Y = e, this.V = t, this.B = r, this.z = n, this.G = i, this.q = o
|
||
}
|
||
return Object.defineProperty(e.prototype, "x1", {
|
||
get: function() {
|
||
return this.Y
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y1", {
|
||
get: function() {
|
||
return this.V
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "x2", {
|
||
get: function() {
|
||
return this.B
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y2", {
|
||
get: function() {
|
||
return this.z
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "x3", {
|
||
get: function() {
|
||
return this.G
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y3", {
|
||
get: function() {
|
||
return this.q
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.CubicBezierCurveInstruction = n
|
||
}, function(e, t) {
|
||
var r = t(7);
|
||
e.drawing = r;
|
||
var n = function() {
|
||
function e(e, t, r, n) {
|
||
void 0 === n && (n = 1), this.U = e, this.H = t, this.K = r, this.Z = n
|
||
}
|
||
return Object.defineProperty(e.prototype, "red", {
|
||
get: function() {
|
||
return this.U
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "green", {
|
||
get: function() {
|
||
return this.H
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "blue", {
|
||
get: function() {
|
||
return this.K
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "alpha", {
|
||
get: function() {
|
||
return this.Z
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.withAlpha = function(t) {
|
||
return null !== t ? new e(this.U, this.H, this.K, t) : this
|
||
}, e.prototype.toString = function() {
|
||
return "rgba(" + this.U + ", " + this.H + ", " + this.K + ", " + this.Z.toFixed(3) + ")"
|
||
}, e.prototype.interpolate = function(t, r) {
|
||
return new e(this.U + r * (t.red - this.U), this.H + r * (t.green - this.H), this.K + r * (t.blue - this.K), this.Z + r * (t.alpha - this.Z))
|
||
}, e
|
||
}();
|
||
e.Color = n;
|
||
var i = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Comment = i;
|
||
var o = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.toString = function() {
|
||
return "Text { value: " + this.p.replace(/\u00A0/g, "\\h") + " }"
|
||
}, e
|
||
}();
|
||
e.Text = o;
|
||
var a = function() {
|
||
function e() {}
|
||
return e
|
||
}();
|
||
e.NewLine = a;
|
||
var l = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Italic = l;
|
||
var s = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Bold = s;
|
||
var u = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Underline = u;
|
||
var p = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.StrikeThrough = p;
|
||
var c = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Border = c;
|
||
var h = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.BorderX = h;
|
||
var f = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.BorderY = f;
|
||
var d = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Shadow = d;
|
||
var _ = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ShadowX = _;
|
||
var g = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ShadowY = g;
|
||
var v = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Blur = v;
|
||
var y = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.GaussianBlur = y;
|
||
var m = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.FontName = m;
|
||
var b = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.FontSize = b;
|
||
var w = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.FontSizePlus = w;
|
||
var S = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.FontSizeMinus = S;
|
||
var O = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.FontScaleX = O;
|
||
var P = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.FontScaleY = P;
|
||
var C = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.LetterSpacing = C;
|
||
var k = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.RotateX = k;
|
||
var E = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.RotateY = E;
|
||
var x = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.RotateZ = x;
|
||
var j = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.SkewX = j;
|
||
var A = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.SkewY = A;
|
||
var T = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.PrimaryColor = T;
|
||
var D = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.SecondaryColor = D;
|
||
var F = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.OutlineColor = F;
|
||
var M = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ShadowColor = M;
|
||
var R = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Alpha = R;
|
||
var N = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.PrimaryAlpha = N;
|
||
var W = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.SecondaryAlpha = W;
|
||
var L = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.OutlineAlpha = L;
|
||
var I = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ShadowAlpha = I;
|
||
var X = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Alignment = X;
|
||
var Y = function() {
|
||
function e(e) {
|
||
this.J = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "duration", {
|
||
get: function() {
|
||
return this.J
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ColorKaraoke = Y;
|
||
var V = function() {
|
||
function e(e) {
|
||
this.J = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "duration", {
|
||
get: function() {
|
||
return this.J
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.SweepingColorKaraoke = V;
|
||
var B = function() {
|
||
function e(e) {
|
||
this.J = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "duration", {
|
||
get: function() {
|
||
return this.J
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.OutlineKaraoke = B;
|
||
var z = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.WrappingStyle = z;
|
||
var G = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Reset = G;
|
||
var q = function() {
|
||
function e(e, t) {
|
||
this.I = e, this.X = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "x", {
|
||
get: function() {
|
||
return this.I
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y", {
|
||
get: function() {
|
||
return this.X
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Position = q;
|
||
var U = function() {
|
||
function e(e, t, r, n, i, o) {
|
||
this.Y = e, this.V = t, this.B = r, this.z = n, this.$ = i, this.Q = o
|
||
}
|
||
return Object.defineProperty(e.prototype, "x1", {
|
||
get: function() {
|
||
return this.Y
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y1", {
|
||
get: function() {
|
||
return this.V
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "x2", {
|
||
get: function() {
|
||
return this.B
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y2", {
|
||
get: function() {
|
||
return this.z
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "t1", {
|
||
get: function() {
|
||
return this.$
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "t2", {
|
||
get: function() {
|
||
return this.Q
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Move = U;
|
||
var H = function() {
|
||
function e(e, t) {
|
||
this.I = e, this.X = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "x", {
|
||
get: function() {
|
||
return this.I
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y", {
|
||
get: function() {
|
||
return this.X
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.RotationOrigin = H;
|
||
var K = function() {
|
||
function e(e, t) {
|
||
this.s = e, this.u = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "start", {
|
||
get: function() {
|
||
return this.s
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "end", {
|
||
get: function() {
|
||
return this.u
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Fade = K;
|
||
var Z = function() {
|
||
function e(e, t, r, n, i, o, a) {
|
||
this.ee = e, this.te = t, this.re = r, this.$ = n, this.Q = i, this.ne = o, this.ie = a
|
||
}
|
||
return Object.defineProperty(e.prototype, "a1", {
|
||
get: function() {
|
||
return this.ee
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "a2", {
|
||
get: function() {
|
||
return this.te
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "a3", {
|
||
get: function() {
|
||
return this.re
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "t1", {
|
||
get: function() {
|
||
return this.$
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "t2", {
|
||
get: function() {
|
||
return this.Q
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "t3", {
|
||
get: function() {
|
||
return this.ne
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "t4", {
|
||
get: function() {
|
||
return this.ie
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ComplexFade = Z;
|
||
var J = function() {
|
||
function e(e, t, r, n) {
|
||
this.s = e, this.u = t, this.oe = r, this.ae = n
|
||
}
|
||
return Object.defineProperty(e.prototype, "start", {
|
||
get: function() {
|
||
return this.s
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "end", {
|
||
get: function() {
|
||
return this.u
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "accel", {
|
||
get: function() {
|
||
return this.oe
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "tags", {
|
||
get: function() {
|
||
return this.ae
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Transform = J;
|
||
var $ = function() {
|
||
function e(e, t, r, n, i) {
|
||
this.Y = e, this.V = t, this.B = r, this.z = n, this.le = i
|
||
}
|
||
return Object.defineProperty(e.prototype, "x1", {
|
||
get: function() {
|
||
return this.Y
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y1", {
|
||
get: function() {
|
||
return this.V
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "x2", {
|
||
get: function() {
|
||
return this.B
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "y2", {
|
||
get: function() {
|
||
return this.z
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "inside", {
|
||
get: function() {
|
||
return this.le
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.RectangularClip = $;
|
||
var Q = function() {
|
||
function e(e, t, r) {
|
||
this.se = e, this.ue = t, this.le = r
|
||
}
|
||
return Object.defineProperty(e.prototype, "scale", {
|
||
get: function() {
|
||
return this.se
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "instructions", {
|
||
get: function() {
|
||
return this.ue
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "inside", {
|
||
get: function() {
|
||
return this.le
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.VectorClip = Q;
|
||
var ee = function() {
|
||
function e(e) {
|
||
this.se = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "scale", {
|
||
get: function() {
|
||
return this.se
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.DrawingMode = ee;
|
||
var te = function() {
|
||
function e(e) {
|
||
this.p = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "value", {
|
||
get: function() {
|
||
return this.p
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.DrawingBaselineOffset = te;
|
||
var re = function() {
|
||
function e(e) {
|
||
this.ue = e
|
||
}
|
||
return Object.defineProperty(e.prototype, "instructions", {
|
||
get: function() {
|
||
return this.ue
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.DrawingInstructions = re;
|
||
for (var ne = function(e, t) {
|
||
if (!e.prototype.hasOwnProperty("toString")) {
|
||
var r = Object.getOwnPropertyNames(e.prototype).filter(function(e) {
|
||
return "constructor" !== e
|
||
});
|
||
e.prototype.toString = function() {
|
||
var e = this;
|
||
return t + " { " + r.map(function(t) {
|
||
return t + ": " + e[t]
|
||
}).join(", ") + (r.length > 0 ? " " : "") + "}"
|
||
}
|
||
}
|
||
}, ie = t(38), oe = 0, ae = Object.keys(e); oe < ae.length; oe++) {
|
||
var le = ae[oe],
|
||
se = e[le];
|
||
se instanceof Function && (ne(se, le), ie.registerClassPrototype(se.prototype))
|
||
}
|
||
for (var ue = 0, pe = Object.keys(r); ue < pe.length; ue++) {
|
||
var le = pe[ue],
|
||
se = r[le];
|
||
se instanceof Function && (ne(se, "Drawing" + le), ie.registerClassPrototype(se.prototype))
|
||
}
|
||
}, function(e, t) {
|
||
var r = t(23),
|
||
n = t(11),
|
||
i = function() {
|
||
function e(e, t) {
|
||
this.pe = e, this.ce = t, this.he = new n.ManualClock, this.fe = null, this.de = null, this._e = null
|
||
}
|
||
return e.prototype.play = function() {
|
||
this.he.enabled && (this.ge(), this.he.play())
|
||
}, e.prototype.pause = function() {
|
||
if (this.he.enabled) {
|
||
if (null === this.fe) return void(r.debugMode && console.warn("AutoClock.pause: Abnormal state detected. AutoClock._nextAnimationFrameRequestId should not have been null."));
|
||
this.ve(), this.he.pause()
|
||
}
|
||
}, e.prototype.seeking = function() {
|
||
this.he.seek(this.pe())
|
||
}, Object.defineProperty(e.prototype, "currentTime", {
|
||
get: function() {
|
||
return this.he.currentTime
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "enabled", {
|
||
get: function() {
|
||
return this.he.enabled
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "paused", {
|
||
get: function() {
|
||
return this.he.paused
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rate", {
|
||
get: function() {
|
||
return this.he.rate
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.setRate = function(e) {
|
||
this.he.setRate(e)
|
||
}, e.prototype.enable = function() {
|
||
return this.he.enable() ? (this.ge(), !0) : !1
|
||
}, e.prototype.disable = function() {
|
||
return this.he.disable() ? (this.ve(), !0) : !1
|
||
}, e.prototype.toggle = function() {
|
||
this.he.enabled ? this.disable() : this.enable()
|
||
}, e.prototype.setEnabled = function(e) {
|
||
return e ? this.enable() : this.disable()
|
||
}, e.prototype.addEventListener = function(e, t) {
|
||
this.he.addEventListener(e, t)
|
||
}, e.prototype.ye = function(e) {
|
||
var t = this;
|
||
if (!this.he.enabled) return void(r.debugMode && console.warn("AutoClock._onTimerTick: Called when disabled."));
|
||
var n = this.he.currentTime,
|
||
i = this.pe();
|
||
this.he.paused ? n !== i && (this.de = i, this._e = e, this.he.tick(i)) : null !== this.de && i === this.de ? e - this._e > this.ce ? (this._e = null, this.he.pause()) : this.he.tick((e - this._e) / 1e3 * this.he.rate + this.de) : (this.de = i, this._e = e, this.he.tick(i)), this.fe = requestAnimationFrame(function(e) {
|
||
return t.ye(e)
|
||
})
|
||
}, e.prototype.ge = function() {
|
||
var e = this;
|
||
null === this.fe && (this.fe = requestAnimationFrame(function(t) {
|
||
return e.ye(t)
|
||
}))
|
||
}, e.prototype.ve = function() {
|
||
null !== this.fe && (cancelAnimationFrame(this.fe), this.fe = null)
|
||
}, e
|
||
}();
|
||
e.AutoClock = i
|
||
}, function(e) {
|
||
var t = function() {
|
||
function e() {}
|
||
return e.prototype.addEventListener = function(e, t) {
|
||
var r = this.me.get(e);
|
||
void 0 === r && this.me.set(e, r = []), r.push(t)
|
||
}, e.prototype.be = function(e, t) {
|
||
var r = this.me.get(e);
|
||
if (void 0 !== r)
|
||
for (var n = 0; n < r.length; n++) {
|
||
var i = r[n];
|
||
i.apply(this, t)
|
||
}
|
||
}, e
|
||
}();
|
||
e.EventSource = t,
|
||
function(e) {
|
||
e[e.Play = 0] = "Play", e[e.Tick = 1] = "Tick", e[e.Pause = 2] = "Pause", e[e.Stop = 3] = "Stop", e[e.RateChange = 4] = "RateChange"
|
||
}(e.ClockEvent || (e.ClockEvent = {}))
|
||
}, function(e, t) {
|
||
var r = t(31),
|
||
n = t(30),
|
||
i = t(10),
|
||
o = function() {
|
||
function e() {
|
||
this.we = -1, this.Se = 1, this.Oe = !0, this.Pe = !0, this.me = new n.Map
|
||
}
|
||
return e.prototype.play = function() {
|
||
this.Oe && this.Pe && (this.Pe = !1, this.be(i.ClockEvent.Play, []))
|
||
}, e.prototype.tick = function(e) {
|
||
this.Oe && this.we !== e && (this.play(), this.we = e, this.be(i.ClockEvent.Tick, []))
|
||
}, e.prototype.seek = function(e) {
|
||
this.Oe && (this.pause(), this.we !== e && (this.stop(), this.tick(e), this.pause()))
|
||
}, e.prototype.pause = function() {
|
||
this.Oe && (this.Pe || (this.Pe = !0, this.be(i.ClockEvent.Pause, [])))
|
||
}, e.prototype.stop = function() {
|
||
this.be(i.ClockEvent.Stop, [])
|
||
}, Object.defineProperty(e.prototype, "currentTime", {
|
||
get: function() {
|
||
return this.we
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "enabled", {
|
||
get: function() {
|
||
return this.Oe
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "paused", {
|
||
get: function() {
|
||
return this.Pe
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rate", {
|
||
get: function() {
|
||
return this.Se
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.setRate = function(e) {
|
||
this.Se !== e && (this.Se = e, this.be(i.ClockEvent.RateChange, []))
|
||
}, e.prototype.enable = function() {
|
||
return this.Oe ? !1 : (this.Oe = !0, !0)
|
||
}, e.prototype.disable = function() {
|
||
return this.Oe ? (this.pause(), this.stop(), this.Oe = !1, !0) : !1
|
||
}, e.prototype.toggle = function() {
|
||
this.Oe ? this.disable() : this.enable()
|
||
}, e.prototype.setEnabled = function(e) {
|
||
return e ? this.enable() : this.disable()
|
||
}, e
|
||
}();
|
||
e.ManualClock = o, r.mixin(o, [i.EventSource])
|
||
}, function(e, t) {
|
||
var r = t(9),
|
||
n = function() {
|
||
function e(e) {
|
||
var t = this;
|
||
this.Ce = new r.AutoClock(function() {
|
||
return e.currentTime
|
||
}, 100), e.addEventListener("playing", function() {
|
||
return t.Ce.play()
|
||
}, !1), e.addEventListener("pause", function() {
|
||
return t.Ce.pause()
|
||
}, !1), e.addEventListener("seeking", function() {
|
||
return t.Ce.seeking()
|
||
}, !1), e.addEventListener("ratechange", function() {
|
||
return t.Ce.setRate(e.playbackRate)
|
||
}, !1)
|
||
}
|
||
return Object.defineProperty(e.prototype, "currentTime", {
|
||
get: function() {
|
||
return this.Ce.currentTime
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "enabled", {
|
||
get: function() {
|
||
return this.Ce.enabled
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "paused", {
|
||
get: function() {
|
||
return this.Ce.paused
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rate", {
|
||
get: function() {
|
||
return this.Ce.rate
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.enable = function() {
|
||
return this.Ce.enable()
|
||
}, e.prototype.disable = function() {
|
||
return this.Ce.disable()
|
||
}, e.prototype.toggle = function() {
|
||
this.Ce.enabled ? this.disable() : this.enable()
|
||
}, e.prototype.setEnabled = function(e) {
|
||
return e ? this.enable() : this.disable()
|
||
}, e.prototype.addEventListener = function(e, t) {
|
||
this.Ce.addEventListener(e, t)
|
||
}, e
|
||
}();
|
||
e.VideoClock = n
|
||
}, function(e, t) {
|
||
var r = t(34).ke,
|
||
n = t(12),
|
||
i = t(21),
|
||
o = function(e) {
|
||
function t(t, r, i) {
|
||
e.call(this, r, new n.VideoClock(t), document.createElement("div"), i), this.Ee = t, this.Ee.parentElement.replaceChild(this.libjassSubsWrapper, this.Ee), this.libjassSubsWrapper.insertBefore(this.Ee, this.libjassSubsWrapper.firstElementChild)
|
||
}
|
||
return r(t, e), t.prototype.resize = function() {
|
||
var t = this.Ee.videoWidth,
|
||
r = this.Ee.videoHeight,
|
||
n = this.Ee.offsetWidth,
|
||
i = this.Ee.offsetHeight,
|
||
o = Math.min(n / t, i / r),
|
||
a = t * o,
|
||
l = r * o,
|
||
s = (n - a) / 2,
|
||
u = (i - l) / 2;
|
||
e.prototype.resize.call(this, a, l, s, u)
|
||
}, t.prototype.resizeVideo = function() {
|
||
console.warn("`DefaultRenderer.resizeVideo(width, height)` has been deprecated. Use `DefaultRenderer.resize()` instead."), this.resize()
|
||
}, t.prototype.xe = function() {
|
||
this.resize(), e.prototype.xe.call(this)
|
||
}, t
|
||
}(i.WebRenderer);
|
||
e.DefaultRenderer = o
|
||
}, function(e, t) {
|
||
var r = t(10);
|
||
e.ClockEvent = r.ClockEvent, e.EventSource = r.EventSource;
|
||
var n = t(9);
|
||
e.AutoClock = n.AutoClock;
|
||
var i = t(11);
|
||
e.ManualClock = i.ManualClock;
|
||
var o = t(12);
|
||
e.VideoClock = o.VideoClock;
|
||
var a = t(13);
|
||
e.DefaultRenderer = a.DefaultRenderer;
|
||
var l = t(15);
|
||
e.NullRenderer = l.NullRenderer;
|
||
var s = t(21);
|
||
e.WebRenderer = s.WebRenderer;
|
||
var u = t(16);
|
||
e.RendererSettings = u.RendererSettings
|
||
}, function(e, t) {
|
||
var r = t(10),
|
||
n = t(16),
|
||
i = t(23),
|
||
o = function() {
|
||
function e(t, i, o) {
|
||
var a = this;
|
||
this.f = t, this.je = i, this.Ae = ++e.Te, this.De = n.RendererSettings.from(o), this.je.addEventListener(r.ClockEvent.Play, function() {
|
||
return a.Fe()
|
||
}), this.je.addEventListener(r.ClockEvent.Tick, function() {
|
||
return a.Me()
|
||
}), this.je.addEventListener(r.ClockEvent.Pause, function() {
|
||
return a.Re()
|
||
}), this.je.addEventListener(r.ClockEvent.Stop, function() {
|
||
return a.Ne()
|
||
}), this.je.addEventListener(r.ClockEvent.RateChange, function() {
|
||
return a.We()
|
||
})
|
||
}
|
||
return Object.defineProperty(e.prototype, "id", {
|
||
get: function() {
|
||
return this.Ae
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "ass", {
|
||
get: function() {
|
||
return this.f
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "clock", {
|
||
get: function() {
|
||
return this.je
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "settings", {
|
||
get: function() {
|
||
return this.De
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.preRender = function() {}, e.prototype.draw = function() {}, e.prototype.enable = function() {
|
||
return this.je.enable()
|
||
}, e.prototype.disable = function() {
|
||
return this.je.disable()
|
||
}, e.prototype.toggle = function() {
|
||
this.je.toggle()
|
||
}, e.prototype.setEnabled = function(e) {
|
||
return this.je.setEnabled(e)
|
||
}, Object.defineProperty(e.prototype, "enabled", {
|
||
get: function() {
|
||
return this.je.enabled
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.Fe = function() {
|
||
i.verboseMode && console.log("NullRenderer._onClockPlay")
|
||
}, e.prototype.Me = function() {
|
||
var e = this.je.currentTime;
|
||
i.verboseMode && console.log("NullRenderer._onClockTick: currentTime = " + e);
|
||
for (var t = 0, r = this.f.dialogues; t < r.length; t++) {
|
||
var n = r[t];
|
||
n.end > e && (n.start <= e ? this.draw(n) : n.start <= e + this.De.preRenderTime && this.preRender(n))
|
||
}
|
||
}, e.prototype.Re = function() {
|
||
i.verboseMode && console.log("NullRenderer._onClockPause")
|
||
}, e.prototype.Ne = function() {
|
||
i.verboseMode && console.log("NullRenderer._onClockStop")
|
||
}, e.prototype.We = function() {
|
||
i.verboseMode && console.log("NullRenderer._onClockRateChange")
|
||
}, e.Te = -1, e
|
||
}();
|
||
e.NullRenderer = o
|
||
}, function(e, t) {
|
||
function r(e) {
|
||
return e.type === CSSRule.FONT_FACE_RULE
|
||
}
|
||
var n = t(30),
|
||
i = function() {
|
||
function e() {}
|
||
return e.makeFontMapFromStyleElement = function(e) {
|
||
for (var t = new n.Map, i = e.sheet, o = 0; o < i.cssRules.length; o++) {
|
||
var a = i.cssRules[o];
|
||
if (r(a)) {
|
||
var l = a.style.getPropertyValue("font-family").match(/^["']?(.*?)["']?$/)[1],
|
||
s = a.style.getPropertyValue("src");
|
||
s || (s = a.cssText.split("\n").map(function(e) {
|
||
return e.match(/src:\s*([^;]+?)\s*;/)
|
||
}).filter(function(e) {
|
||
return null !== e
|
||
}).map(function(e) {
|
||
return e[1]
|
||
})[0]), t.set(l, s)
|
||
}
|
||
}
|
||
return t
|
||
}, e.from = function(t) {
|
||
(void 0 === t || null === t) && (t = {});
|
||
var r = t,
|
||
n = r.fontMap,
|
||
i = void 0 === n ? null : n,
|
||
o = r.preRenderTime,
|
||
a = void 0 === o ? 5 : o,
|
||
l = r.preciseOutlines,
|
||
s = void 0 === l ? !1 : l,
|
||
u = r.enableSvg,
|
||
p = void 0 === u ? !0 : u,
|
||
c = r.fallbackFonts,
|
||
h = void 0 === c ? 'Arial, Helvetica, sans-serif, "Segoe UI Symbol"' : c,
|
||
f = r.useAttachedFonts,
|
||
d = void 0 === f ? !1 : f,
|
||
_ = new e;
|
||
return _.fontMap = i, _.preRenderTime = a, _.preciseOutlines = s, _.enableSvg = p, _.fallbackFonts = h, _.useAttachedFonts = d, _
|
||
}, e
|
||
}();
|
||
e.RendererSettings = i
|
||
}, function(e, t) {
|
||
var r = t(30),
|
||
n = function() {
|
||
function e(t, n) {
|
||
this.Le = n, this.Ie = "", this.Xe = new r.Map, this.Ye = 0, this.Ae = t.id + "-" + e.Ve++, this.Se = t.clock.rate
|
||
}
|
||
return Object.defineProperty(e.prototype, "animationStyle", {
|
||
get: function() {
|
||
return this.Ie
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "animationDelays", {
|
||
get: function() {
|
||
return this.Xe
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.add = function(e, t) {
|
||
for (var r = null, n = null, i = 0; i < t.length; i++) {
|
||
var o = t[i];
|
||
null === r && (r = o.time), n = o.time
|
||
}
|
||
for (var a = "", l = 0; l < t.length; l++) {
|
||
var o = t[l];
|
||
a += " " + (100 * (n - r === 0 ? 1 : (o.time - r) / (n - r))).toFixed(3) + "% {\n", o.properties.forEach(function(e, t) {
|
||
a += " " + t + ": " + e + ";\n"
|
||
}), a += " }\n"
|
||
}
|
||
var s = "animation-" + this.Ae + "-" + this.Ye++;
|
||
this.Le.appendChild(document.createTextNode("@-webkit-keyframes " + s + " {\n" + a + "\n}")), this.Le.appendChild(document.createTextNode("@keyframes " + s + " {\n" + a + "\n}")), "" !== this.Ie && (this.Ie += ","), this.Ie += s + " " + ((n - r) / this.Se).toFixed(3) + "s " + e, this.Xe.set(s, r)
|
||
}, e.Ve = 0, e
|
||
}();
|
||
e.AnimationCollection = n
|
||
}, function(e, t) {
|
||
var r = t(8),
|
||
n = function() {
|
||
function e(e, t) {
|
||
this.Be = e, this.ze = t, this.se = 1, this.Ge = 0
|
||
}
|
||
return Object.defineProperty(e.prototype, "scale", {
|
||
set: function(e) {
|
||
this.se = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "baselineOffset", {
|
||
set: function(e) {
|
||
this.Ge = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.toSVG = function(e, t) {
|
||
for (var n = Math.pow(2, this.se - 1), i = this.Be / n, o = this.ze / n, a = document.createElementNS("http://www.w3.org/2000/svg", "path"), l = 0, s = 0, u = 0, p = e.instructions; u < p.length; u++) {
|
||
var c = p[u];
|
||
c instanceof r.drawing.MoveInstruction ? (a.pathSegList.appendItem(a.createSVGPathSegMovetoAbs(c.x, c.y + this.Ge)), l = Math.max(l, c.x), s = Math.max(s, c.y + this.Ge)) : c instanceof r.drawing.LineInstruction ? (a.pathSegList.appendItem(a.createSVGPathSegLinetoAbs(c.x, c.y + this.Ge)), l = Math.max(l, c.x), s = Math.max(s, c.y + this.Ge)) : c instanceof r.drawing.CubicBezierCurveInstruction && (a.pathSegList.appendItem(a.createSVGPathSegCurvetoCubicAbs(c.x3, c.y3 + this.Ge, c.x1, c.y1 + this.Ge, c.x2, c.y2 + this.Ge)), l = Math.max(l, c.x1, c.x2, c.x3), s = Math.max(s, c.y1 + this.Ge, c.y2 + this.Ge, c.y3 + this.Ge))
|
||
}
|
||
var h = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
||
h.setAttribute("version", "1.1"), h.width.baseVal.valueAsString = (l * i).toFixed(3) + "px", h.height.baseVal.valueAsString = (s * o).toFixed(3) + "px";
|
||
var f = document.createElementNS("http://www.w3.org/2000/svg", "g");
|
||
return h.appendChild(f), f.setAttribute("transform", "scale(" + i.toFixed(3) + " " + o.toFixed(3) + ")"), f.appendChild(a), a.setAttribute("fill", t.toString()), h
|
||
}, e
|
||
}();
|
||
e.DrawingStyles = n
|
||
}, function(e, t) {
|
||
function r(e, t, r, n) {
|
||
var i = '"' + e + '"';
|
||
"" !== r && (i += ", " + r), n.style.fontFamily = i, n.style.fontSize = t + "px"
|
||
}
|
||
|
||
function n(e, t, n, i) {
|
||
return r(e, t, n, i), new u.Promise(function(e) {
|
||
return setTimeout(function() {
|
||
return e(i.offsetHeight)
|
||
}, 1e3)
|
||
})
|
||
}
|
||
|
||
function i(e, t, n, i) {
|
||
return r(e, t, n, i), i.offsetHeight
|
||
}
|
||
|
||
function o(e, t) {
|
||
return [e, 180 / (t - e)]
|
||
}
|
||
|
||
function a(e, t, r) {
|
||
return n(e, 180, t, r).then(function(i) {
|
||
return n(e, 360, t, r).then(function(e) {
|
||
return o(i, e)
|
||
})
|
||
})
|
||
}
|
||
|
||
function l(e, t, r) {
|
||
return 180 + (e - t) * r
|
||
}
|
||
|
||
function s(e, t, r, n, a) {
|
||
var s = a.get(e);
|
||
if (void 0 === s) {
|
||
var u = i(e, 180, r, n),
|
||
p = i(e, 360, r, n);
|
||
a.set(e, s = o(u, p))
|
||
}
|
||
var c = s[0],
|
||
h = s[1];
|
||
return l(t, c, h)
|
||
}
|
||
var u = t(32);
|
||
e.calculateFontMetrics = a, e.fontSizeForLineHeight = s
|
||
}, function(e) {
|
||
var t = function() {
|
||
function e(e, t) {
|
||
this.qe = e, this.Ue = t
|
||
}
|
||
return Object.defineProperty(e.prototype, "time", {
|
||
get: function() {
|
||
return this.qe
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "properties", {
|
||
get: function() {
|
||
return this.Ue
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Keyframe = t
|
||
}, function(t, r) {
|
||
var n = r(34).ke,
|
||
i = r(17),
|
||
o = r(18),
|
||
a = r(19),
|
||
l = r(20),
|
||
s = r(22),
|
||
u = r(10),
|
||
p = r(15),
|
||
c = r(6),
|
||
h = r(8),
|
||
f = r(23),
|
||
d = r(25),
|
||
_ = r(27),
|
||
g = r(31),
|
||
v = r(30),
|
||
y = r(32),
|
||
m = /^(url|local)\(["']?(.+?)["']?\)$/,
|
||
b = function(t) {
|
||
function r(r, n, i, o) {
|
||
var a = this;
|
||
t.call(this, r, n, function() {
|
||
if (!(i instanceof HTMLDivElement)) {
|
||
var e = o;
|
||
o = i, i = e, console.warn("WebRenderer's constructor now takes libjassSubsWrapper as the third parameter and settings as the fourth parameter. Please update the caller.")
|
||
}
|
||
return o
|
||
}()), this.He = i, this.Ke = [], this.Ze = [], this.Je = new v.Map, this.$e = new v.Map, this.Qe = new v.Map, this.me = new v.Map, this.He.classList.add("libjass-wrapper"), this.et = document.createElement("div"), this.He.appendChild(this.et), this.et.className = "libjass-subs", this.tt = document.createElement("div"), this.He.appendChild(this.tt), this.tt.className = "libjass-font-measure", this.tt.appendChild(document.createTextNode("M")), f.debugMode && console.log("Preloading fonts...");
|
||
var l = [],
|
||
s = new v.Map,
|
||
u = null === this.settings.fontMap ? new v.Map : this.settings.fontMap,
|
||
p = new v.Map;
|
||
this.settings.useAttachedFonts && r.attachments.forEach(function(e) {
|
||
if (e.type === d.AttachmentType.Font) {
|
||
var t = null;
|
||
try {
|
||
t = c.getTtfNames(e)
|
||
} catch (e) {
|
||
return void console.error(e)
|
||
}
|
||
var r = "data:application/x-font-ttf;base64," + e.contents;
|
||
t.forEach(function(e) {
|
||
var t = u.get(e);
|
||
if (void 0 !== t)
|
||
if ("string" != typeof t) t.push(r);
|
||
else {
|
||
var n = p.get(e);
|
||
void 0 === n && p.set(e, n = []), n.push(r)
|
||
}
|
||
else u.set(e, [r])
|
||
})
|
||
}
|
||
}), u.forEach(function(t, r) {
|
||
var n;
|
||
if (e.document.fonts && e.document.fonts.add) {
|
||
var i = "string" == typeof t ? t : t.map(function(e) {
|
||
return null !== e.match(m) ? e : 'url("' + e + '")'
|
||
}).join(", "),
|
||
o = p.get(r);
|
||
if (void 0 !== o)
|
||
for (var u = 0; u < o.length; u++) {
|
||
var c = o[u];
|
||
i += ', url("' + c + '")'
|
||
}
|
||
var h = [];
|
||
e.document.fonts.forEach(function(e) {
|
||
(e.family === r || e.family === '"' + r + '"') && h.push(e)
|
||
});
|
||
var d;
|
||
if (0 === h.length) {
|
||
var _ = new FontFace(r, i),
|
||
g = new FontFace('"' + r + '"', i);
|
||
e.document.fonts.add(_), e.document.fonts.add(g), d = y.any([_.load(), g.load()])
|
||
} else d = y.any(h.map(function(e) {
|
||
return e.load()
|
||
}));
|
||
n = a.rt(r, d.catch(function(e) {
|
||
return console.warn("Fetching fonts for " + r + " at " + i + " failed: %o", e), null
|
||
}))
|
||
} else {
|
||
var v = ("string" == typeof t ? t.split(/,/) : t).map(function(e) {
|
||
return e.trim()
|
||
}).map(function(e) {
|
||
var t = e.match(m);
|
||
return null === t ? e : "local" === t[1] ? null : t[2];
|
||
}).filter(function(e) {
|
||
return null !== e
|
||
}),
|
||
o = p.get(r);
|
||
void 0 !== o && (v = v.concat(o));
|
||
var b = v.map(function(e) {
|
||
var t = s.get(e);
|
||
return void 0 === t && (t = new y.Promise(function(t, r) {
|
||
var n = new XMLHttpRequest;
|
||
n.addEventListener("load", function() {
|
||
f.debugMode && console.log("Preloaded " + e + "."), t(null)
|
||
}), n.addEventListener("error", function(e) {
|
||
r(e)
|
||
}), n.open("GET", e, !0), n.send()
|
||
}), s.set(e, t)), t
|
||
}),
|
||
w = 0 === b.length ? y.Promise.resolve(null) : y.first(b).catch(function(e) {
|
||
return console.warn("Fetching fonts for " + r + " at " + v.join(", ") + " failed: %o", e), null
|
||
});
|
||
n = a.rt(r, w)
|
||
}
|
||
l.push(n.then(function(e) {
|
||
return a.Je.set(r, e)
|
||
}))
|
||
}), y.Promise.all(l).then(function() {
|
||
f.debugMode && console.log("All fonts have been preloaded."), a.xe()
|
||
})
|
||
}
|
||
return n(r, t), Object.defineProperty(r.prototype, "libjassSubsWrapper", {
|
||
get: function() {
|
||
return this.He
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), r.prototype.resize = function(e, t, r, n) {
|
||
void 0 === r && (r = 0), void 0 === n && (n = 0), this.nt(), this.et.style.width = e.toFixed(3) + "px", this.et.style.height = t.toFixed(3) + "px", this.et.style.left = r.toFixed(3) + "px", this.et.style.top = n.toFixed(3) + "px", this.it = e, this.ot = e / this.ass.properties.resolutionX, this.at = t / this.ass.properties.resolutionY, this.Qe.clear(), -1 !== this.clock.currentTime && this.Me()
|
||
}, r.prototype.preRender = function(e) {
|
||
var t = this,
|
||
n = this.Qe.get(e.id);
|
||
if (n) return n;
|
||
var a = this.clock.currentTime - e.start;
|
||
if (e.containsTransformTag && 0 > a) return null;
|
||
var u = document.createElement("div");
|
||
u.style.marginLeft = (this.ot * e.style.marginLeft).toFixed(3) + "px", u.style.marginRight = (this.ot * e.style.marginRight).toFixed(3) + "px", u.style.marginTop = u.style.marginBottom = (this.at * e.style.marginVertical).toFixed(3) + "px", u.style.minWidth = (this.it - this.ot * (e.style.marginLeft + e.style.marginRight)).toFixed(3) + "px";
|
||
var p = document.createElement("style");
|
||
p.id = "libjass-animation-styles-" + this.id + "-" + e.id, p.type = "text/css";
|
||
var c = new i.AnimationCollection(this, p),
|
||
d = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
||
d.setAttribute("version", "1.1"), d.setAttribute("class", "libjass-filters"), d.width.baseVal.valueAsString = "0", d.height.baseVal.valueAsString = "0";
|
||
var g = document.createElementNS("http://www.w3.org/2000/svg", "defs");
|
||
d.appendChild(g);
|
||
var y = null,
|
||
m = new s.SpanStyles(this, e, this.ot, this.at, this.settings, this.tt, g, this.Je),
|
||
b = null,
|
||
w = !1,
|
||
S = function(e) {
|
||
null !== y && y.hasChildNodes() && u.appendChild(m.setStylesOnSpan(y, b)), null !== b && b.animationDelays.forEach(function(e, t) {
|
||
return c.animationDelays.set(t, e)
|
||
}), e && (w ? u.appendChild(m.makeNewLine()) : u.appendChild(document.createElement("br"))), y = document.createElement("span"), b = new i.AnimationCollection(t, p), w = e
|
||
};
|
||
S(!1);
|
||
for (var O = new o.DrawingStyles(this.ot, this.at), P = this.ass.properties.wrappingStyle, C = 0, k = 0, E = e.parts; k < E.length; k++) {
|
||
var x = E[k];
|
||
if (x instanceof h.Italic) m.italic = x.value;
|
||
else if (x instanceof h.Bold) m.bold = x.value;
|
||
else if (x instanceof h.Underline) m.underline = x.value;
|
||
else if (x instanceof h.StrikeThrough) m.strikeThrough = x.value;
|
||
else if (x instanceof h.Border) m.outlineWidth = x.value, m.outlineHeight = x.value;
|
||
else if (x instanceof h.BorderX) m.outlineWidth = x.value;
|
||
else if (x instanceof h.BorderY) m.outlineHeight = x.value;
|
||
else if (x instanceof h.Shadow) m.shadowDepthX = x.value, m.shadowDepthY = x.value;
|
||
else if (x instanceof h.ShadowX) m.shadowDepthX = x.value;
|
||
else if (x instanceof h.ShadowY) m.shadowDepthY = x.value;
|
||
else if (x instanceof h.Blur) m.blur = x.value;
|
||
else if (x instanceof h.GaussianBlur) m.gaussianBlur = x.value;
|
||
else if (x instanceof h.FontName) m.fontName = x.value;
|
||
else if (x instanceof h.FontSize) m.fontSize = x.value;
|
||
else if (x instanceof h.FontSizePlus) m.fontSize += x.value;
|
||
else if (x instanceof h.FontSizeMinus) m.fontSize -= x.value;
|
||
else if (x instanceof h.FontScaleX) m.fontScaleX = x.value;
|
||
else if (x instanceof h.FontScaleY) m.fontScaleY = x.value;
|
||
else if (x instanceof h.LetterSpacing) m.letterSpacing = x.value;
|
||
else if (x instanceof h.RotateX) m.rotationX = x.value;
|
||
else if (x instanceof h.RotateY) m.rotationY = x.value;
|
||
else if (x instanceof h.RotateZ) m.rotationZ = x.value;
|
||
else if (x instanceof h.SkewX) m.skewX = x.value;
|
||
else if (x instanceof h.SkewY) m.skewY = x.value;
|
||
else if (x instanceof h.PrimaryColor) m.primaryColor = x.value;
|
||
else if (x instanceof h.SecondaryColor) m.secondaryColor = x.value;
|
||
else if (x instanceof h.OutlineColor) m.outlineColor = x.value;
|
||
else if (x instanceof h.ShadowColor) m.shadowColor = x.value;
|
||
else if (x instanceof h.Alpha) m.primaryAlpha = x.value, m.secondaryAlpha = x.value, m.outlineAlpha = x.value, m.shadowAlpha = x.value;
|
||
else if (x instanceof h.PrimaryAlpha) m.primaryAlpha = x.value;
|
||
else if (x instanceof h.SecondaryAlpha) m.secondaryAlpha = x.value;
|
||
else if (x instanceof h.OutlineAlpha) m.outlineAlpha = x.value;
|
||
else if (x instanceof h.ShadowAlpha) m.shadowAlpha = x.value;
|
||
else if (x instanceof h.Alignment);
|
||
else if (x instanceof h.ColorKaraoke) S(!1), b.add("step-end", [new l.Keyframe(0, new v.Map([
|
||
["color", m.secondaryColor.withAlpha(m.secondaryAlpha).toString()]
|
||
])), new l.Keyframe(C, new v.Map([
|
||
["color", m.primaryColor.withAlpha(m.primaryAlpha).toString()]
|
||
]))]), C += x.duration;
|
||
else if (x instanceof h.WrappingStyle) P = x.value;
|
||
else if (x instanceof h.Reset) m.reset(this.ass.styles.get(x.value));
|
||
else if (x instanceof h.Position) u.style.position = "absolute", u.style.left = (this.ot * x.x).toFixed(3) + "px", u.style.top = (this.at * x.y).toFixed(3) + "px";
|
||
else if (x instanceof h.Move) u.style.position = "absolute", c.add("linear", [new l.Keyframe(0, new v.Map([
|
||
["left", (this.ot * x.x1).toFixed(3) + "px"],
|
||
["top", (this.at * x.y1).toFixed(3) + "px"]
|
||
])), new l.Keyframe(x.t1, new v.Map([
|
||
["left", (this.ot * x.x1).toFixed(3) + "px"],
|
||
["top", (this.at * x.y1).toFixed(3) + "px"]
|
||
])), new l.Keyframe(x.t2, new v.Map([
|
||
["left", (this.ot * x.x2).toFixed(3) + "px"],
|
||
["top", (this.at * x.y2).toFixed(3) + "px"]
|
||
])), new l.Keyframe(e.end - e.start, new v.Map([
|
||
["left", (this.ot * x.x2).toFixed(3) + "px"],
|
||
["top", (this.at * x.y2).toFixed(3) + "px"]
|
||
]))]);
|
||
else if (x instanceof h.Fade) c.add("linear", [new l.Keyframe(0, new v.Map([
|
||
["opacity", "0"]
|
||
])), new l.Keyframe(x.start, new v.Map([
|
||
["opacity", "1"]
|
||
])), new l.Keyframe(e.end - e.start - x.end, new v.Map([
|
||
["opacity", "1"]
|
||
])), new l.Keyframe(e.end - e.start, new v.Map([
|
||
["opacity", "0"]
|
||
]))]);
|
||
else if (x instanceof h.ComplexFade) c.add("linear", [new l.Keyframe(0, new v.Map([
|
||
["opacity", x.a1.toFixed(3)]
|
||
])), new l.Keyframe(x.t1, new v.Map([
|
||
["opacity", x.a1.toFixed(3)]
|
||
])), new l.Keyframe(x.t2, new v.Map([
|
||
["opacity", x.a2.toFixed(3)]
|
||
])), new l.Keyframe(x.t3, new v.Map([
|
||
["opacity", x.a2.toFixed(3)]
|
||
])), new l.Keyframe(x.t4, new v.Map([
|
||
["opacity", x.a3.toFixed(3)]
|
||
])), new l.Keyframe(e.end - e.start, new v.Map([
|
||
["opacity", x.a3.toFixed(3)]
|
||
]))]);
|
||
else if (x instanceof h.Transform)
|
||
for (var j = a <= x.start ? 0 : a >= x.end ? 1 : Math.pow((a - x.start) / (x.end - x.start), x.accel), A = 0, T = x.tags; A < T.length; A++) {
|
||
var D = T[A];
|
||
D instanceof h.Border ? (m.outlineWidth += j * (D.value - m.outlineWidth), m.outlineHeight += j * (D.value - m.outlineHeight)) : D instanceof h.BorderX ? m.outlineWidth += j * (D.value - m.outlineWidth) : D instanceof h.BorderY ? m.outlineHeight += j * (D.value - m.outlineHeight) : D instanceof h.Shadow ? (m.shadowDepthX += j * (D.value - m.shadowDepthX), m.shadowDepthY += j * (D.value - m.shadowDepthY)) : D instanceof h.ShadowX ? m.shadowDepthX += j * (D.value - m.shadowDepthX) : D instanceof h.ShadowY ? m.shadowDepthY += j * (D.value - m.shadowDepthY) : D instanceof h.Blur ? m.blur += j * (D.value - m.blur) : D instanceof h.GaussianBlur ? m.gaussianBlur += j * (D.value - m.gaussianBlur) : D instanceof h.FontSize ? m.fontSize += j * (D.value - m.fontSize) : D instanceof h.FontSizePlus ? m.fontSize += j * D.value : D instanceof h.FontSizeMinus ? m.fontSize -= j * D.value : D instanceof h.FontScaleX ? m.fontScaleX += j * (D.value - m.fontScaleX) : D instanceof h.FontScaleY ? m.fontScaleY += j * (D.value - m.fontScaleY) : D instanceof h.LetterSpacing ? m.letterSpacing += j * (D.value - m.letterSpacing) : D instanceof h.RotateX ? m.rotationX += j * (D.value - m.rotationX) : D instanceof h.RotateY ? m.rotationY += j * (D.value - m.rotationY) : D instanceof h.RotateZ ? m.rotationZ += j * (D.value - m.rotationZ) : D instanceof h.SkewX ? m.skewX += j * (D.value - m.skewX) : D instanceof h.SkewY ? m.skewY += j * (D.value - m.skewY) : D instanceof h.PrimaryColor ? m.primaryColor = m.primaryColor.interpolate(D.value, j) : D instanceof h.SecondaryColor ? m.secondaryColor = m.secondaryColor.interpolate(D.value, j) : D instanceof h.OutlineColor ? m.outlineColor = m.outlineColor.interpolate(D.value, j) : D instanceof h.ShadowColor ? m.shadowColor = m.shadowColor.interpolate(D.value, j) : D instanceof h.Alpha ? (m.primaryAlpha += j * (D.value - m.primaryAlpha), m.secondaryAlpha += j * (D.value - m.secondaryAlpha), m.outlineAlpha += j * (D.value - m.outlineAlpha), m.shadowAlpha += j * (D.value - m.shadowAlpha)) : D instanceof h.PrimaryAlpha ? m.primaryAlpha += j * (D.value - m.primaryAlpha) : D instanceof h.SecondaryAlpha ? m.secondaryAlpha += j * (D.value - m.secondaryAlpha) : D instanceof h.OutlineAlpha ? m.outlineAlpha += j * (D.value - m.outlineAlpha) : D instanceof h.ShadowAlpha && (m.shadowAlpha += j * (D.value - m.shadowAlpha))
|
||
} else x instanceof h.DrawingMode ? 0 !== x.scale && (O.scale = x.scale) : x instanceof h.DrawingBaselineOffset ? O.baselineOffset = x.value : x instanceof h.DrawingInstructions ? (y.appendChild(O.toSVG(x, m.primaryColor.withAlpha(m.primaryAlpha))), S(!1)) : x instanceof h.Text ? (y.appendChild(document.createTextNode(x.value + "")), S(!1)) : f.debugMode && x instanceof h.Comment ? (y.appendChild(document.createTextNode(x.value)), S(!1)) : x instanceof h.NewLine && S(!0)
|
||
}
|
||
for (var F = 0, M = e.parts; F < M.length; F++) {
|
||
var x = M[F];
|
||
if (x instanceof h.Position || x instanceof h.Move) {
|
||
var R = r.lt[e.alignment],
|
||
N = "translate(" + -R[0] + "%, " + -R[1] + "%) translate(-" + u.style.marginLeft + ", -" + u.style.marginTop + ")",
|
||
W = R[0] + "% " + R[1] + "%";
|
||
u.style.webkitTransform = N, u.style.webkitTransformOrigin = W, u.style.transform = N, u.style.transformOrigin = W;
|
||
break
|
||
}
|
||
}
|
||
switch (P) {
|
||
case _.WrappingStyle.EndOfLineWrapping:
|
||
u.style.whiteSpace = "pre-wrap";
|
||
break;
|
||
case _.WrappingStyle.NoLineWrapping:
|
||
u.style.whiteSpace = "pre";
|
||
break;
|
||
case _.WrappingStyle.SmartWrappingWithWiderTopLine:
|
||
case _.WrappingStyle.SmartWrappingWithWiderBottomLine:
|
||
u.style.whiteSpace = "pre-wrap"
|
||
}
|
||
if ("" !== u.style.position) switch (e.alignment) {
|
||
case 1:
|
||
case 4:
|
||
case 7:
|
||
u.style.textAlign = "left";
|
||
break;
|
||
case 2:
|
||
case 5:
|
||
case 8:
|
||
u.style.textAlign = "center";
|
||
break;
|
||
case 3:
|
||
case 6:
|
||
case 9:
|
||
u.style.textAlign = "right"
|
||
}
|
||
u.style.webkitAnimation = c.animationStyle, u.style.animation = c.animationStyle, u.setAttribute("data-dialogue-id", this.id + "-" + e.id), "" !== p.textContent && u.appendChild(p), g.hasChildNodes() && u.appendChild(d);
|
||
var L = {
|
||
sub: u,
|
||
animationDelays: c.animationDelays
|
||
};
|
||
return e.containsTransformTag || this.Qe.set(e.id, L), L
|
||
}, r.prototype.draw = function(e) {
|
||
var t = this;
|
||
if (!this.$e.has(e) || e.containsTransformTag) {
|
||
f.debugMode && console.log(e.toString());
|
||
var r = this.Qe.get(e.id);
|
||
void 0 === r && (r = this.preRender(e), f.debugMode && console.log(e.toString()));
|
||
var n = r.sub.cloneNode(!0),
|
||
i = function(n) {
|
||
var i = n.style.animationName || n.style.webkitAnimationName;
|
||
if (void 0 !== i && "" !== i) {
|
||
var o = i.split(",").map(function(n) {
|
||
n = n.trim();
|
||
var i = r.animationDelays.get(n);
|
||
return ((i + e.start - t.clock.currentTime) / t.clock.rate).toFixed(3) + "s"
|
||
}).join(", ");
|
||
n.style.webkitAnimationDelay = o, n.style.animationDelay = o
|
||
}
|
||
};
|
||
i(n);
|
||
for (var o = n.querySelectorAll('[style*="animation:"]'), a = 0; a < o.length; a++) i(o[a]);
|
||
var l = e.layer,
|
||
s = "absolute" === n.style.position ? 0 : e.alignment;
|
||
if (void 0 === this.Ke[l]) {
|
||
var u = document.createElement("div");
|
||
u.className = "layer layer" + l;
|
||
for (var p = null, c = l + 1; c < this.Ke.length && null === p; c++) void 0 !== this.Ke[c] && (p = this.Ke[c]);
|
||
this.et.insertBefore(u, p), this.Ke[l] = u, this.Ze[l] = []
|
||
}
|
||
if (void 0 === this.Ze[l][s]) {
|
||
var h = document.createElement("div");
|
||
h.className = "an an" + s;
|
||
for (var u = this.Ke[l], p = null, d = s + 1; d < this.Ze[l].length && null === p; d++) void 0 !== this.Ze[l][d] && (p = this.Ze[l][d]);
|
||
u.insertBefore(h, p), this.Ze[l][s] = h
|
||
}
|
||
this.Ze[l][s].appendChild(n);
|
||
var _ = n.getElementsByTagName("style")[0];
|
||
if (void 0 !== _) {
|
||
var g = _.sheet;
|
||
0 === g.cssRules.length && (g.cssText = _.textContent)
|
||
}
|
||
this.$e.set(e, n)
|
||
}
|
||
}, r.prototype.Fe = function() {
|
||
t.prototype.Fe.call(this), this.nt(), this.et.style.display = "", this.et.classList.remove("paused")
|
||
}, r.prototype.Me = function() {
|
||
var e = this,
|
||
r = this.clock.currentTime;
|
||
this.$e.forEach(function(t, n) {
|
||
(n.start > r || n.end < r || n.containsTransformTag) && (e.$e.delete(n), e.st(t))
|
||
}), t.prototype.Me.call(this)
|
||
}, r.prototype.Re = function() {
|
||
t.prototype.Re.call(this), this.et.classList.add("paused")
|
||
}, r.prototype.Ne = function() {
|
||
t.prototype.Ne.call(this), this.et.style.display = "none"
|
||
}, r.prototype.We = function() {
|
||
t.prototype.We.call(this), this.Qe.clear()
|
||
}, r.prototype.xe = function() {
|
||
this.be("ready", [])
|
||
}, r.prototype.rt = function(e, t) {
|
||
var r = this;
|
||
return t.then(function() {
|
||
var t = r.tt.cloneNode(!0);
|
||
return r.He.appendChild(t), y.lastly(a.calculateFontMetrics(e, r.settings.fallbackFonts, t), function() {
|
||
r.He.removeChild(t)
|
||
})
|
||
})
|
||
}, r.prototype.st = function(e) {
|
||
e.parentNode.removeChild(e)
|
||
}, r.prototype.nt = function() {
|
||
var e = this;
|
||
this.$e.forEach(function(t) {
|
||
return e.st(t)
|
||
}), this.$e.clear()
|
||
}, r.lt = [null, [0, 100],
|
||
[50, 100],
|
||
[100, 100],
|
||
[0, 50],
|
||
[50, 50],
|
||
[100, 50],
|
||
[0, 0],
|
||
[50, 0],
|
||
[100, 0]
|
||
], r
|
||
}(p.NullRenderer);
|
||
t.WebRenderer = b, g.mixin(b, [u.EventSource])
|
||
}, function(e, t) {
|
||
var r = t(19),
|
||
n = function() {
|
||
function e(e, t, r, n, i, o, a, l) {
|
||
this.ot = r, this.at = n, this.De = i, this.tt = o, this.ut = a, this.Je = l, this.pt = 0, this.Ae = e.id + "-" + t.id, this.ct = t.style, this.reset(null)
|
||
}
|
||
return e.prototype.reset = function(e) {
|
||
(void 0 === e || null === e) && (e = this.ct), this.italic = e.italic, this.bold = e.bold, this.underline = e.underline, this.strikeThrough = e.strikeThrough, this.outlineWidth = e.outlineThickness, this.outlineHeight = e.outlineThickness, this.shadowDepthX = e.shadowDepth, this.shadowDepthY = e.shadowDepth, this.fontName = e.fontName, this.fontSize = e.fontSize, this.fontScaleX = e.fontScaleX, this.fontScaleY = e.fontScaleY, this.letterSpacing = e.letterSpacing, this.ht = null, this.ft = null, this.dt = e.rotationZ, this._t = null, this.gt = null, this.primaryColor = e.primaryColor, this.secondaryColor = e.secondaryColor, this.outlineColor = e.outlineColor, this.shadowColor = e.shadowColor, this.primaryAlpha = e.primaryColor.alpha, this.secondaryAlpha = e.secondaryColor.alpha, this.outlineAlpha = e.outlineColor.alpha, this.shadowAlpha = e.shadowColor.alpha, this.blur = null, this.gaussianBlur = null
|
||
}, e.prototype.setStylesOnSpan = function(t, n) {
|
||
var i = t.childNodes[0] instanceof Text,
|
||
o = "";
|
||
this.vt && (o += "italic "), this.yt === !0 ? o += "bold " : this.yt !== !1 && (o += this.yt + " ");
|
||
var a = (this.at * r.fontSizeForLineHeight(this.mt, this.bt * (i ? this.wt : 1), this.De.fallbackFonts, this.tt, this.Je)).toFixed(3),
|
||
l = (this.at * this.bt).toFixed(3),
|
||
s = this.mt;
|
||
switch (s) {
|
||
case "cursive":
|
||
case "fantasy":
|
||
case "monospace":
|
||
case "sans-serif":
|
||
case "serif":
|
||
break;
|
||
default:
|
||
s = '"' + s + '"'
|
||
}
|
||
"" !== this.De.fallbackFonts && (s += ", " + this.De.fallbackFonts), t.style.font = "" + o + a + "px/" + l + "px " + s;
|
||
var u = "";
|
||
this.St && (u = "underline"), this.Ot && (u += " line-through"), t.style.textDecoration = u.trim();
|
||
var p = "";
|
||
if (i ? this.Pt !== this.wt && (p += "scaleY(" + (this.Pt / this.wt).toFixed(3) + ") ") : (1 !== this.wt && (p += "scaleX(" + this.wt + ") "), 1 !== this.Pt && (p += "scaleY(" + this.Pt + ") ")), null !== this.ft && (p += "rotateY(" + this.ft + "deg) "), null !== this.ht && (p += "rotateX(" + this.ht + "deg) "), 0 !== this.dt && (p += "rotateZ(" + -1 * this.dt + "deg) "), null !== this._t || null !== this.gt) {
|
||
var c = e.Ct(this._t, 0),
|
||
h = e.Ct(this.gt, 0);
|
||
p += "matrix(1, " + h + ", " + c + ", 1, 0, 0) "
|
||
}
|
||
"" !== p && (t.style.webkitTransform = p, t.style.webkitTransformOrigin = "50% 50%", t.style.transform = p, t.style.transformOrigin = "50% 50%", t.style.display = "inline-block"), t.style.letterSpacing = (this.ot * this.kt).toFixed(3) + "px";
|
||
var f = this.ot * this.Et,
|
||
d = this.at * this.xt,
|
||
_ = document.createElement("span");
|
||
_.appendChild(t);
|
||
var g = this.jt.withAlpha(this.At),
|
||
v = this.Tt.withAlpha(this.Dt),
|
||
y = this.Ft.withAlpha(this.Mt);
|
||
if (this.De.enableSvg || (0 !== f || 0 !== d) && v.alpha !== g.alpha || (0 !== this.Rt || 0 !== this.Nt) && y.alpha !== g.alpha || (g = this.jt.withAlpha(1), v = this.Tt.withAlpha(1), y = this.Ft.withAlpha(1), t.style.opacity = this.At.toFixed(3)), t.style.color = g.toString(), this.De.enableSvg ? this.Wt(_, f, d, v, this.At) : this.Lt(t, f, d, v), 0 !== this.Rt || 0 !== this.Nt) {
|
||
var m = y.toString() + " " + (this.Rt * this.ot).toFixed(3) + "px " + (this.Nt * this.at).toFixed(3) + "px 0px";
|
||
"" === t.style.textShadow ? t.style.textShadow = m : t.style.textShadow += ", " + m
|
||
}
|
||
return (0 !== this.ht || 0 !== this.ft) && (_.style.display = "inline-block"), t.style.webkitAnimation = n.animationStyle, t.style.animation = n.animationStyle, _
|
||
}, e.prototype.Wt = function(e, t, r, n, i) {
|
||
var o = "svg-filter-" + this.Ae + "-" + this.pt++,
|
||
a = document.createElementNS("http://www.w3.org/2000/svg", "filter");
|
||
if (a.id = o, a.x.baseVal.valueAsString = "-50%", a.width.baseVal.valueAsString = "200%", a.y.baseVal.valueAsString = "-50%", a.height.baseVal.valueAsString = "200%", t > 0 || r > 0) {
|
||
var l = 0,
|
||
s = !this.De.preciseOutlines && this.It > 0 ? this.It : 1;
|
||
! function(e) {
|
||
if (r >= t)
|
||
if (t > 0) {
|
||
var n;
|
||
for (n = 0; t >= n; n += s) e(n, r / t * Math.sqrt(t * t - n * n));
|
||
n !== t + s && e(t, 0)
|
||
} else e(0, r);
|
||
else if (r > 0) {
|
||
var i;
|
||
for (i = 0; r >= i; i += s) e(t / r * Math.sqrt(r * r - i * i), i);
|
||
i !== r + s && e(0, r)
|
||
} else e(t, 0)
|
||
}(function(e, t) {
|
||
var r = document.createElementNS("http://www.w3.org/2000/svg", "feMorphology");
|
||
a.appendChild(r), r.in1.baseVal = "source", r.operator.baseVal = SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE, r.radiusX.baseVal = e, r.radiusY.baseVal = t, r.result.baseVal = "outline" + l, l++
|
||
});
|
||
var u = document.createElementNS("http://www.w3.org/2000/svg", "feComponentTransfer");
|
||
a.insertBefore(u, a.firstElementChild), u.in1.baseVal = "SourceAlpha", u.result.baseVal = "source";
|
||
var p = document.createElementNS("http://www.w3.org/2000/svg", "feFuncA");
|
||
u.appendChild(p), p.type.baseVal = SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR, p.slope.baseVal = 0 === i ? 1 : 1 / i, p.intercept.baseVal = 0;
|
||
var c = document.createElementNS("http://www.w3.org/2000/svg", "feMerge");
|
||
a.appendChild(c);
|
||
for (var h = 0; l > h; h++) {
|
||
var f = document.createElementNS("http://www.w3.org/2000/svg", "feMergeNode");
|
||
c.appendChild(f), f.in1.baseVal = "outline" + h
|
||
}
|
||
var d = document.createElementNS("http://www.w3.org/2000/svg", "feComponentTransfer");
|
||
a.appendChild(d), d.setAttribute("color-interpolation-filters", "sRGB");
|
||
var _ = document.createElementNS("http://www.w3.org/2000/svg", "feFuncR");
|
||
d.appendChild(_), _.type.baseVal = SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR, _.slope.baseVal = 0, _.intercept.baseVal = n.red / 255 * n.alpha;
|
||
var g = document.createElementNS("http://www.w3.org/2000/svg", "feFuncG");
|
||
d.appendChild(g), g.type.baseVal = SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR, g.slope.baseVal = 0, g.intercept.baseVal = n.green / 255 * n.alpha;
|
||
var v = document.createElementNS("http://www.w3.org/2000/svg", "feFuncB");
|
||
d.appendChild(v), v.type.baseVal = SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR, v.slope.baseVal = 0, v.intercept.baseVal = n.blue / 255 * n.alpha;
|
||
var y = document.createElementNS("http://www.w3.org/2000/svg", "feFuncA");
|
||
if (d.appendChild(y), y.type.baseVal = SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR, y.slope.baseVal = n.alpha, y.intercept.baseVal = 0, this.It > 0) {
|
||
var m = document.createElementNS("http://www.w3.org/2000/svg", "feGaussianBlur");
|
||
a.appendChild(m), m.stdDeviationX.baseVal = this.It, m.stdDeviationY.baseVal = this.It
|
||
}
|
||
for (var h = 0; h < this.Xt; h++) {
|
||
var b = document.createElementNS("http://www.w3.org/2000/svg", "feConvolveMatrix");
|
||
a.appendChild(b), b.setAttribute("kernelMatrix", "1 2 1 2 4 2 1 2 1"), b.edgeMode.baseVal = SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE
|
||
}
|
||
var w = document.createElementNS("http://www.w3.org/2000/svg", "feComposite");
|
||
a.appendChild(w), w.in2.baseVal = "source", w.operator.baseVal = SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT;
|
||
var S = document.createElementNS("http://www.w3.org/2000/svg", "feMerge");
|
||
a.appendChild(S);
|
||
var O = document.createElementNS("http://www.w3.org/2000/svg", "feMergeNode");
|
||
S.appendChild(O);
|
||
var P = document.createElementNS("http://www.w3.org/2000/svg", "feMergeNode");
|
||
S.appendChild(P), P.in1.baseVal = "SourceGraphic"
|
||
} else {
|
||
if (this.It > 0) {
|
||
var m = document.createElementNS("http://www.w3.org/2000/svg", "feGaussianBlur");
|
||
a.appendChild(m), m.stdDeviationX.baseVal = this.It, m.stdDeviationY.baseVal = this.It
|
||
}
|
||
for (var h = 0; h < this.Xt; h++) {
|
||
var b = document.createElementNS("http://www.w3.org/2000/svg", "feConvolveMatrix");
|
||
a.appendChild(b), b.setAttribute("kernelMatrix", "1 2 1 2 4 2 1 2 1"), b.edgeMode.baseVal = SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE
|
||
}
|
||
}
|
||
a.childElementCount > 0 && (this.ut.appendChild(a), e.style.webkitFilter = 'url("#' + o + '")', e.style.filter = 'url("#' + o + '")')
|
||
}, e.prototype.Lt = function(e, t, r, n) {
|
||
var i = this;
|
||
if (t > 0 || r > 0) {
|
||
var o = "";
|
||
! function(e) {
|
||
for (var n = 0; t >= n; n++)
|
||
for (var i = 0 === t ? r : r * Math.sqrt(1 - n * n / (t * t)), o = 0; i >= o; o++) e(n, o), 0 !== n && e(-n, o), 0 !== o && e(n, -o), 0 !== n && 0 !== o && e(-n, -o)
|
||
}(function(e, t) {
|
||
o += ", " + n.toString() + " " + e + "px " + t + "px " + i.It.toFixed(3) + "px"
|
||
}), e.style.textShadow = o.substr(", ".length)
|
||
}
|
||
}, e.prototype.makeNewLine = function() {
|
||
var e = document.createElement("br");
|
||
return e.style.lineHeight = (this.at * this.bt).toFixed(3) + "px", e
|
||
}, Object.defineProperty(e.prototype, "italic", {
|
||
set: function(t) {
|
||
this.vt = e.Ct(t, this.ct.italic)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "bold", {
|
||
set: function(t) {
|
||
this.yt = e.Ct(t, this.ct.bold)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "underline", {
|
||
set: function(t) {
|
||
this.St = e.Ct(t, this.ct.underline)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "strikeThrough", {
|
||
set: function(t) {
|
||
this.Ot = e.Ct(t, this.ct.strikeThrough)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "outlineWidth", {
|
||
get: function() {
|
||
return this.Et
|
||
},
|
||
set: function(t) {
|
||
this.Et = e.Ct(t, this.ct.outlineThickness)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "outlineHeight", {
|
||
get: function() {
|
||
return this.Et
|
||
},
|
||
set: function(t) {
|
||
this.xt = e.Ct(t, this.ct.outlineThickness)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "shadowDepthX", {
|
||
get: function() {
|
||
return this.Rt
|
||
},
|
||
set: function(t) {
|
||
this.Rt = e.Ct(t, this.ct.shadowDepth)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "shadowDepthY", {
|
||
get: function() {
|
||
return this.Nt
|
||
},
|
||
set: function(t) {
|
||
this.Nt = e.Ct(t, this.ct.shadowDepth)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "blur", {
|
||
get: function() {
|
||
return this.Xt
|
||
},
|
||
set: function(t) {
|
||
this.Xt = e.Ct(t, 0)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "gaussianBlur", {
|
||
get: function() {
|
||
return this.It
|
||
},
|
||
set: function(t) {
|
||
this.It = e.Ct(t, 0)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontName", {
|
||
set: function(t) {
|
||
this.mt = e.Ct(t, this.ct.fontName)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontSize", {
|
||
get: function() {
|
||
return this.bt
|
||
},
|
||
set: function(t) {
|
||
this.bt = e.Ct(t, this.ct.fontSize)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontScaleX", {
|
||
get: function() {
|
||
return this.wt
|
||
},
|
||
set: function(t) {
|
||
this.wt = e.Ct(t, this.ct.fontScaleX)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontScaleY", {
|
||
get: function() {
|
||
return this.Pt
|
||
},
|
||
set: function(t) {
|
||
this.Pt = e.Ct(t, this.ct.fontScaleY)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "letterSpacing", {
|
||
get: function() {
|
||
return this.kt
|
||
},
|
||
set: function(t) {
|
||
this.kt = e.Ct(t, this.ct.letterSpacing)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rotationX", {
|
||
get: function() {
|
||
return this.ht
|
||
},
|
||
set: function(e) {
|
||
this.ht = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rotationY", {
|
||
get: function() {
|
||
return this.ft
|
||
},
|
||
set: function(e) {
|
||
this.ft = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rotationZ", {
|
||
get: function() {
|
||
return this.dt
|
||
},
|
||
set: function(t) {
|
||
this.dt = e.Ct(t, this.ct.rotationZ)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "skewX", {
|
||
get: function() {
|
||
return this._t
|
||
},
|
||
set: function(e) {
|
||
this._t = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "skewY", {
|
||
get: function() {
|
||
return this.gt
|
||
},
|
||
set: function(e) {
|
||
this.gt = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "primaryColor", {
|
||
get: function() {
|
||
return this.jt
|
||
},
|
||
set: function(t) {
|
||
this.jt = e.Ct(t, this.ct.primaryColor)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "secondaryColor", {
|
||
get: function() {
|
||
return this.Yt
|
||
},
|
||
set: function(t) {
|
||
this.Yt = e.Ct(t, this.ct.secondaryColor)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "outlineColor", {
|
||
get: function() {
|
||
return this.Tt
|
||
},
|
||
set: function(t) {
|
||
this.Tt = e.Ct(t, this.ct.outlineColor)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "shadowColor", {
|
||
get: function() {
|
||
return this.Ft
|
||
},
|
||
set: function(t) {
|
||
this.Ft = e.Ct(t, this.ct.shadowColor)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "primaryAlpha", {
|
||
get: function() {
|
||
return this.At
|
||
},
|
||
set: function(t) {
|
||
this.At = e.Ct(t, this.ct.primaryColor.alpha)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "secondaryAlpha", {
|
||
get: function() {
|
||
return this.Vt
|
||
},
|
||
set: function(t) {
|
||
this.Vt = e.Ct(t, this.ct.secondaryColor.alpha)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "outlineAlpha", {
|
||
get: function() {
|
||
return this.Dt
|
||
},
|
||
set: function(t) {
|
||
this.Dt = e.Ct(t, this.ct.outlineColor.alpha)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "shadowAlpha", {
|
||
get: function() {
|
||
return this.Mt
|
||
},
|
||
set: function(t) {
|
||
this.Mt = e.Ct(t, this.ct.shadowColor.alpha)
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.Ct = function(e, t) {
|
||
return null !== e ? e : t
|
||
}, e
|
||
}();
|
||
e.SpanStyles = n
|
||
}, function(e) {
|
||
function t(t) {
|
||
e.debugMode = t
|
||
}
|
||
|
||
function r(t) {
|
||
e.verboseMode = t
|
||
}
|
||
e.debugMode = !1, e.verboseMode = !1, e.setDebugMode = t, e.setVerboseMode = r
|
||
}, function(t, r) {
|
||
var n = r(26),
|
||
i = r(29),
|
||
o = r(28),
|
||
a = r(27),
|
||
l = r(23),
|
||
s = r(1),
|
||
u = r(2),
|
||
p = r(30),
|
||
c = r(32),
|
||
h = function() {
|
||
function t() {
|
||
if (this.Ue = new o.ScriptProperties, this.Bt = new p.Map, this.zt = [], this.Gt = [], this.qt = null, this.Ut = null, 1 === arguments.length) throw new Error("Constructor `new ASS(rawASS)` has been deprecated. Use `ASS.fromString(rawASS)` instead.");
|
||
this.Bt.set("Default", new i.Style(new p.Map([
|
||
["Name", "Default"]
|
||
])))
|
||
}
|
||
return Object.defineProperty(t.prototype, "properties", {
|
||
get: function() {
|
||
return this.Ue
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(t.prototype, "styles", {
|
||
get: function() {
|
||
return this.Bt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(t.prototype, "dialogues", {
|
||
get: function() {
|
||
return this.zt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(t.prototype, "attachments", {
|
||
get: function() {
|
||
return this.Gt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(t.prototype, "stylesFormatSpecifier", {
|
||
get: function() {
|
||
return this.qt
|
||
},
|
||
set: function(e) {
|
||
this.qt = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(t.prototype, "dialoguesFormatSpecifier", {
|
||
get: function() {
|
||
return this.Ut
|
||
},
|
||
set: function(e) {
|
||
this.Ut = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), t.prototype.addStyle = function(e) {
|
||
var t = u.parseLineIntoTypedTemplate(e, this.qt);
|
||
if (null !== t && "Style" === t.type) {
|
||
var r = t.template;
|
||
if (l.verboseMode) {
|
||
var n = "";
|
||
r.forEach(function(e, t) {
|
||
return n += t + " = " + e + ", "
|
||
}), console.log("Read style: " + n)
|
||
}
|
||
var o = new i.Style(r);
|
||
this.Bt.set(o.name, o)
|
||
}
|
||
}, t.prototype.addEvent = function(e) {
|
||
var t = u.parseLineIntoTypedTemplate(e, this.Ut);
|
||
if (null !== t && "Dialogue" === t.type) {
|
||
var r = t.template;
|
||
if (l.verboseMode) {
|
||
var i = "";
|
||
r.forEach(function(e, t) {
|
||
return i += t + " = " + e + ", "
|
||
}), console.log("Read dialogue: " + i)
|
||
}
|
||
this.dialogues.push(new n.Dialogue(r, this))
|
||
}
|
||
}, t.prototype.addAttachment = function(e) {
|
||
this.Gt.push(e)
|
||
}, t.fromString = function(e, r) {
|
||
return void 0 === r && (r = a.Format.ASS), t.fromStream(new s.StringStream(e), r)
|
||
}, t.fromStream = function(e, t) {
|
||
switch (void 0 === t && (t = a.Format.ASS), t) {
|
||
case a.Format.ASS:
|
||
return new s.StreamParser(e).ass;
|
||
case a.Format.SRT:
|
||
return new s.SrtStreamParser(e).ass;
|
||
default:
|
||
throw new Error("Illegal value of type: " + t)
|
||
}
|
||
}, t.fromUrl = function(r, n) {
|
||
void 0 === n && (n = a.Format.ASS);
|
||
var i;
|
||
return i = "function" == typeof e.fetch && "function" == typeof e.ReadableStream && "function" == typeof e.ReadableStream.prototype.getReader && "function" == typeof e.TextDecoder ? e.fetch(r).then(function(e) {
|
||
if (e.ok === !1 || void 0 === e.ok && (e.status < 200 || e.status > 299)) throw new Error("HTTP request for " + r + " failed with status code " + e.status);
|
||
return t.fromReadableStream(e.body, "utf-8", n)
|
||
}) : c.Promise.reject(new Error("Not supported.")), i.catch(function(e) {
|
||
console.warn("fetch() failed, falling back to XHR: %o", e);
|
||
var i = new XMLHttpRequest,
|
||
o = t.fromStream(new s.XhrStream(i), n);
|
||
return i.open("GET", r, !0), i.send(), o
|
||
})
|
||
}, t.fromReadableStream = function(e, r, n) {
|
||
return void 0 === r && (r = "utf-8"), void 0 === n && (n = a.Format.ASS), t.fromStream(new s.BrowserReadableStream(e, r), n)
|
||
}, t
|
||
}();
|
||
t.ASS = h
|
||
}, function(e) {
|
||
! function(e) {
|
||
e[e.Font = 0] = "Font", e[e.Graphic = 1] = "Graphic"
|
||
}(e.AttachmentType || (e.AttachmentType = {}));
|
||
var t = function() {
|
||
function e(e, t) {
|
||
this.Ht = e, this.Kt = t, this.Zt = ""
|
||
}
|
||
return Object.defineProperty(e.prototype, "filename", {
|
||
get: function() {
|
||
return this.Ht
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "type", {
|
||
get: function() {
|
||
return this.Kt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "contents", {
|
||
get: function() {
|
||
return this.Zt
|
||
},
|
||
set: function(e) {
|
||
this.Zt = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Attachment = t
|
||
}, function(e, t) {
|
||
var r = t(27),
|
||
n = t(3),
|
||
i = t(8),
|
||
o = t(23),
|
||
a = t(30),
|
||
l = function() {
|
||
function e(t, n) {
|
||
this.Jt = null, this.$t = !1;
|
||
var i = new a.Map;
|
||
t.forEach(function(e, t) {
|
||
i.set(t.toLowerCase(), e)
|
||
}), t = i, this.Ae = ++e.Qt;
|
||
var l = t.get("style");
|
||
if (void 0 !== l && null !== l && l.constructor === String && (l = l.replace(/^\*+/, ""), null !== l.match(/^Default$/i) && (l = "Default")), this.Le = n.styles.get(l), void 0 === this.Le && (o.debugMode && console.warn("Unrecognized style " + l + '. Falling back to "Default"'), this.Le = n.styles.get("Default")), void 0 === this.Le) throw new Error("Unrecognized style " + l);
|
||
if (this.s = e.er(t.get("start")), this.u = e.er(t.get("end")), this.tr = Math.max(r.valueOrDefault(t, "layer", parseInt, function(e) {
|
||
return !isNaN(e)
|
||
}, "0"), 0), this.rr = t.get("text"), void 0 === this.rr || null === this.rr || this.rr.constructor !== String) throw new Error("Dialogue doesn't have any text.")
|
||
}
|
||
return Object.defineProperty(e.prototype, "id", {
|
||
get: function() {
|
||
return this.Ae
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "start", {
|
||
get: function() {
|
||
return this.s
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "end", {
|
||
get: function() {
|
||
return this.u
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "style", {
|
||
get: function() {
|
||
return this.Le
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "alignment", {
|
||
get: function() {
|
||
return null === this.Jt && this.nr(), this.ir
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "layer", {
|
||
get: function() {
|
||
return this.tr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "parts", {
|
||
get: function() {
|
||
return null === this.Jt && this.nr(), this.Jt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "containsTransformTag", {
|
||
get: function() {
|
||
return null === this.Jt && this.nr(), this.$t
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.toString = function() {
|
||
return "#" + this.Ae + " [" + this.s.toFixed(3) + "-" + this.u.toFixed(3) + "] " + (null !== this.Jt ? this.Jt.join(", ") : this.rr)
|
||
}, e.prototype.nr = function() {
|
||
var e = this;
|
||
if (this.Jt = n.parse(this.rr, "dialogueParts"), this.ir = this.Le.alignment, this.Jt.forEach(function(t, r) {
|
||
t instanceof i.Alignment ? e.ir = t.value : t instanceof i.Move ? (null === t.t1 || null === t.t2) && (e.Jt[r] = new i.Move(t.x1, t.y1, t.x2, t.y2, 0, e.u - e.s)) : t instanceof i.Transform && ((null === t.start || null === t.end || null === t.accel) && (e.Jt[r] = new i.Transform(null === t.start ? 0 : t.start, null === t.end ? e.u - e.s : t.end, null === t.accel ? 1 : t.accel, t.tags)), e.$t = !0)
|
||
}), o.debugMode) {
|
||
var t = this.Jt.filter(function(e) {
|
||
return e instanceof i.Comment && -1 !== e.value.indexOf("\\")
|
||
});
|
||
t.length > 0 && console.warn("Possible incorrect parse:\n" + this.rr + "\nwas parsed as\n" + this.toString() + "\nThe possibly incorrect parses are:\n" + t.join("\n"))
|
||
}
|
||
}, e.er = function(e) {
|
||
return e.split(":").reduce(function(e, t) {
|
||
return 60 * e + parseFloat(t)
|
||
}, 0)
|
||
}, e.Qt = -1, e
|
||
}();
|
||
e.Dialogue = l
|
||
}, function(e) {
|
||
function t(e, t, r, n, i) {
|
||
var o = e.get(t);
|
||
if (void 0 === o) return r(i);
|
||
try {
|
||
var a = r(o);
|
||
if (null !== n && !n(a)) throw new Error("Validation failed.");
|
||
return a
|
||
} catch (e) {
|
||
throw new Error("Property " + t + " has invalid value " + o + " - " + e.stack)
|
||
}
|
||
}! function(e) {
|
||
e[e.ASS = 0] = "ASS", e[e.SRT = 1] = "SRT"
|
||
}(e.Format || (e.Format = {})),
|
||
function(e) {
|
||
e[e.SmartWrappingWithWiderTopLine = 0] = "SmartWrappingWithWiderTopLine", e[e.SmartWrappingWithWiderBottomLine = 3] = "SmartWrappingWithWiderBottomLine", e[e.EndOfLineWrapping = 1] = "EndOfLineWrapping", e[e.NoLineWrapping = 2] = "NoLineWrapping"
|
||
}(e.WrappingStyle || (e.WrappingStyle = {})),
|
||
function(e) {
|
||
e[e.Outline = 1] = "Outline", e[e.OpaqueBox = 3] = "OpaqueBox"
|
||
}(e.BorderStyle || (e.BorderStyle = {})), e.valueOrDefault = t
|
||
}, function(e) {
|
||
var t = function() {
|
||
function e() {}
|
||
return Object.defineProperty(e.prototype, "resolutionX", {
|
||
get: function() {
|
||
return this.or
|
||
},
|
||
set: function(e) {
|
||
this.or = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "resolutionY", {
|
||
get: function() {
|
||
return this.ar
|
||
},
|
||
set: function(e) {
|
||
this.ar = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "wrappingStyle", {
|
||
get: function() {
|
||
return this.lr
|
||
},
|
||
set: function(e) {
|
||
this.lr = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "scaleBorderAndShadow", {
|
||
get: function() {
|
||
return this.sr
|
||
},
|
||
set: function(e) {
|
||
this.sr = e
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.ScriptProperties = t
|
||
}, function(e, t) {
|
||
var r = t(27),
|
||
n = t(3),
|
||
i = t(30),
|
||
o = function() {
|
||
function e(e) {
|
||
var t = new i.Map;
|
||
if (e.forEach(function(e, r) {
|
||
t.set(r.toLowerCase(), e)
|
||
}), e = t, this.ur = e.get("name"), void 0 === this.ur || null === this.ur || this.ur.constructor !== String) throw new Error("Style doesn't have a name.");
|
||
this.ur = this.ur.replace(/^\*+/, ""), this.vt = !!r.valueOrDefault(e, "italic", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "0"), this.yt = !!r.valueOrDefault(e, "bold", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "0"), this.St = !!r.valueOrDefault(e, "underline", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "0"), this.Ot = !!r.valueOrDefault(e, "strikeout", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "0"), this.mt = r.valueOrDefault(e, "fontname", function(e) {
|
||
return e
|
||
}, function(e) {
|
||
return e.constructor === String
|
||
}, "sans-serif"), this.bt = r.valueOrDefault(e, "fontsize", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "18"), this.wt = r.valueOrDefault(e, "scalex", parseFloat, function(e) {
|
||
return e >= 0
|
||
}, "100") / 100, this.Pt = r.valueOrDefault(e, "scaley", parseFloat, function(e) {
|
||
return e >= 0
|
||
}, "100") / 100, this.kt = r.valueOrDefault(e, "spacing", parseFloat, function(e) {
|
||
return e >= 0
|
||
}, "0"), this.dt = r.valueOrDefault(e, "angle", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "0"), this.jt = r.valueOrDefault(e, "primarycolour", function(e) {
|
||
return n.parse(e, "colorWithAlpha")
|
||
}, null, "&H00FFFFFF"), this.Yt = r.valueOrDefault(e, "secondarycolour", function(e) {
|
||
return n.parse(e, "colorWithAlpha")
|
||
}, null, "&H00FFFF00"), this.Tt = r.valueOrDefault(e, "outlinecolour", function(e) {
|
||
return n.parse(e, "colorWithAlpha")
|
||
}, null, "&H00000000"), this.Ft = r.valueOrDefault(e, "backcolour", function(e) {
|
||
return n.parse(e, "colorWithAlpha")
|
||
}, null, "&H80000000"), this.pr = r.valueOrDefault(e, "outline", parseFloat, function(e) {
|
||
return e >= 0
|
||
}, "2"), this.cr = r.valueOrDefault(e, "borderstyle", parseInt, function(e) {
|
||
return r.BorderStyle[r.BorderStyle[e]] === e
|
||
}, "1"), this.hr = r.valueOrDefault(e, "shadow", parseFloat, function(e) {
|
||
return e >= 0
|
||
}, "3"), this.ir = r.valueOrDefault(e, "alignment", parseInt, function(e) {
|
||
return e >= 1 && 9 >= e
|
||
}, "2"), this.fr = r.valueOrDefault(e, "marginl", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "20"), this.dr = r.valueOrDefault(e, "marginr", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "20"), this._r = r.valueOrDefault(e, "marginv", parseFloat, function(e) {
|
||
return !isNaN(e)
|
||
}, "20")
|
||
}
|
||
return Object.defineProperty(e.prototype, "name", {
|
||
get: function() {
|
||
return this.ur
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "italic", {
|
||
get: function() {
|
||
return this.vt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "bold", {
|
||
get: function() {
|
||
return this.yt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "underline", {
|
||
get: function() {
|
||
return this.St
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "strikeThrough", {
|
||
get: function() {
|
||
return this.Ot
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontName", {
|
||
get: function() {
|
||
return this.mt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontSize", {
|
||
get: function() {
|
||
return this.bt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontScaleX", {
|
||
get: function() {
|
||
return this.wt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "fontScaleY", {
|
||
get: function() {
|
||
return this.Pt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "letterSpacing", {
|
||
get: function() {
|
||
return this.kt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "rotationZ", {
|
||
get: function() {
|
||
return this.dt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "primaryColor", {
|
||
get: function() {
|
||
return this.jt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "secondaryColor", {
|
||
get: function() {
|
||
return this.Yt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "outlineColor", {
|
||
get: function() {
|
||
return this.Tt
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "shadowColor", {
|
||
get: function() {
|
||
return this.Ft
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "outlineThickness", {
|
||
get: function() {
|
||
return this.pr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "borderStyle", {
|
||
get: function() {
|
||
return this.cr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "shadowDepth", {
|
||
get: function() {
|
||
return this.hr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "alignment", {
|
||
get: function() {
|
||
return this.ir
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "marginLeft", {
|
||
get: function() {
|
||
return this.fr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "marginRight", {
|
||
get: function() {
|
||
return this.dr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), Object.defineProperty(e.prototype, "marginVertical", {
|
||
get: function() {
|
||
return this._r
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
e.Style = o
|
||
}, function(t) {
|
||
function r(e) {
|
||
null !== e ? t.Map = e : t.Map = n
|
||
}
|
||
t.Map = e.Map;
|
||
var n = function() {
|
||
function e(e) {
|
||
if (this.clear(), void 0 !== e) {
|
||
if (!Array.isArray(e)) throw new Error("Non-array iterables are not supported by the SimpleMap constructor.");
|
||
for (var t = 0; t < e.length; t++) {
|
||
var r = e[t];
|
||
this.set(r[0], r[1])
|
||
}
|
||
}
|
||
}
|
||
return e.prototype.get = function(e) {
|
||
var t = this.gr(e);
|
||
if (null !== t) return this.vr[t]
|
||
}, e.prototype.has = function(e) {
|
||
var t = this.gr(e);
|
||
return null === t ? !1 : t in this.yr
|
||
}, e.prototype.set = function(e, t) {
|
||
var r = this.gr(e);
|
||
if (null === r) throw new Error("This Map implementation only supports Number and String keys, or keys with an id property.");
|
||
return r in this.yr || this.mr++, this.yr[r] = e, this.vr[r] = t, this
|
||
}, e.prototype.delete = function(e) {
|
||
var t = this.gr(e);
|
||
if (null === t) return !1;
|
||
var r = t in this.yr;
|
||
return r && (delete this.yr[t], delete this.vr[t], this.mr--), r
|
||
}, e.prototype.clear = function() {
|
||
this.yr = Object.create(null), this.vr = Object.create(null), this.mr = 0
|
||
}, e.prototype.forEach = function(e, t) {
|
||
for (var r = 0, n = Object.keys(this.yr); r < n.length; r++) {
|
||
var i = n[r];
|
||
e.call(t, this.vr[i], this.yr[i], this)
|
||
}
|
||
}, Object.defineProperty(e.prototype, "size", {
|
||
get: function() {
|
||
return this.mr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.gr = function(e) {
|
||
return "number" == typeof e ? "#" + e : "string" == typeof e ? "'" + e : void 0 !== e.id ? "!" + e.id : null
|
||
}, e
|
||
}();
|
||
(void 0 === t.Map || "function" != typeof t.Map.prototype.forEach || function() {
|
||
try {
|
||
return 2 !== new t.Map([
|
||
[1, "foo"],
|
||
[2, "bar"]
|
||
]).size
|
||
} catch (e) {
|
||
return !0
|
||
}
|
||
}()) && (t.Map = n), t.setImplementation = r
|
||
}, function(e) {
|
||
function t(e, t) {
|
||
for (var r = 0; r < t.length; r++)
|
||
for (var n = t[r], i = 0, o = Object.getOwnPropertyNames(n.prototype); i < o.length; i++) {
|
||
var a = o[i];
|
||
e.prototype[a] = n.prototype[a]
|
||
}
|
||
}
|
||
e.mixin = t
|
||
}, function(t) {
|
||
function r(e) {
|
||
null !== e ? t.Promise = e : t.Promise = s
|
||
}
|
||
|
||
function n(e) {
|
||
return i(e, [])
|
||
}
|
||
|
||
function i(e, r) {
|
||
if (0 === e.length) return t.Promise.reject(r);
|
||
var n = e[0],
|
||
o = e.slice(1);
|
||
return n.catch(function(e) {
|
||
return i(o, r.concat(e))
|
||
})
|
||
}
|
||
|
||
function o(e) {
|
||
return new t.Promise(function(r, n) {
|
||
return t.Promise.all(e.map(function(e) {
|
||
return e.then(r, function(e) {
|
||
return e
|
||
})
|
||
})).then(n)
|
||
})
|
||
}
|
||
|
||
function a(e, t) {
|
||
return e.then(function(e) {
|
||
return t(), e
|
||
}, function(e) {
|
||
throw t(), e
|
||
})
|
||
}
|
||
t.Promise = e.Promise;
|
||
var l = function() {
|
||
var t = e.MutationObserver || e.WebkitMutationObserver;
|
||
if (void 0 !== e.process && "function" == typeof e.process.nextTick) return function(t) {
|
||
e.process.nextTick(t)
|
||
};
|
||
if (void 0 !== t) {
|
||
var r = [],
|
||
n = !1,
|
||
i = document.createElement("div"),
|
||
o = new t(function() {
|
||
for (var e = r.splice(0, r.length), t = 0; t < e.length; t++) {
|
||
var o = e[t];
|
||
o()
|
||
}
|
||
n = !1, r.length > 0 && (i.classList.toggle("foo"), n = !0)
|
||
});
|
||
return o.observe(i, {
|
||
attributes: !0
|
||
}),
|
||
function(e) {
|
||
r.push(e), n || (i.classList.toggle("foo"), n = !0)
|
||
}
|
||
}
|
||
return function(e) {
|
||
return setTimeout(e, 0)
|
||
}
|
||
}(),
|
||
s = function() {
|
||
function e(e) {
|
||
if (this.br = u.PENDING, this.wr = [], this.Sr = [], this.Or = null, this.Pr = null, "function" != typeof e) throw new TypeError('typeof executor !== "function"');
|
||
var t = this.Cr(),
|
||
r = t.resolve,
|
||
n = t.reject;
|
||
try {
|
||
e(r, n)
|
||
} catch (e) {
|
||
n(e)
|
||
}
|
||
}
|
||
return e.prototype.then = function(e, t) {
|
||
var r = new p;
|
||
"function" != typeof e && (e = function(e) {
|
||
return e
|
||
}), "function" != typeof t && (t = function(e) {
|
||
throw e
|
||
});
|
||
var n = {
|
||
capabilities: r,
|
||
handler: e
|
||
},
|
||
i = {
|
||
capabilities: r,
|
||
handler: t
|
||
};
|
||
switch (this.br) {
|
||
case u.PENDING:
|
||
this.wr.push(n), this.Sr.push(i);
|
||
break;
|
||
case u.FULFILLED:
|
||
this.kr(n, this.Or);
|
||
break;
|
||
case u.REJECTED:
|
||
this.Er(i, this.Pr)
|
||
}
|
||
return r.promise
|
||
}, e.prototype.catch = function(e) {
|
||
return this.then(null, e)
|
||
}, e.resolve = function(r) {
|
||
return r instanceof e ? r : new t.Promise(function(e) {
|
||
return e(r)
|
||
})
|
||
}, e.reject = function(e) {
|
||
return new t.Promise(function(t, r) {
|
||
return r(e)
|
||
})
|
||
}, e.all = function(e) {
|
||
return new t.Promise(function(r, n) {
|
||
var i = [],
|
||
o = e.length;
|
||
return 0 === o ? void r(i) : void e.forEach(function(e, a) {
|
||
return t.Promise.resolve(e).then(function(e) {
|
||
i[a] = e, o--, 0 === o && r(i)
|
||
}, n)
|
||
})
|
||
})
|
||
}, e.race = function(e) {
|
||
return new t.Promise(function(r, n) {
|
||
for (var i = 0; i < e.length; i++) {
|
||
var o = e[i];
|
||
t.Promise.resolve(o).then(r, n)
|
||
}
|
||
})
|
||
}, e.prototype.Cr = function() {
|
||
var e = this,
|
||
t = !1,
|
||
r = function(r) {
|
||
if (!t) {
|
||
if (t = !0, r === e) return void e.xr(new TypeError("resolution === this"));
|
||
if (null === r || "object" != typeof r && "function" != typeof r) return void e.jr(r);
|
||
try {
|
||
var n = r.then
|
||
} catch (t) {
|
||
return void e.xr(t)
|
||
}
|
||
return "function" != typeof n ? void e.jr(r) : void l(function() {
|
||
return e.Ar(r, n)
|
||
})
|
||
}
|
||
},
|
||
n = function(r) {
|
||
t || (t = !0, e.xr(r))
|
||
};
|
||
return {
|
||
resolve: r,
|
||
reject: n
|
||
}
|
||
}, e.prototype.Ar = function(e, t) {
|
||
var r = this.Cr(),
|
||
n = r.resolve,
|
||
i = r.reject;
|
||
try {
|
||
t.call(e, n, i)
|
||
} catch (e) {
|
||
i(e)
|
||
}
|
||
}, e.prototype.jr = function(e) {
|
||
var t = this.wr;
|
||
this.Or = e, this.wr = void 0, this.Sr = void 0, this.br = u.FULFILLED;
|
||
for (var r = 0; r < t.length; r++) {
|
||
var n = t[r];
|
||
this.kr(n, e)
|
||
}
|
||
}, e.prototype.xr = function(e) {
|
||
var t = this.Sr;
|
||
this.Pr = e, this.wr = void 0, this.Sr = void 0, this.br = u.REJECTED;
|
||
for (var r = 0; r < t.length; r++) {
|
||
var n = t[r];
|
||
this.Er(n, e)
|
||
}
|
||
}, e.prototype.kr = function(e, t) {
|
||
l(function() {
|
||
var r, n = e.capabilities,
|
||
i = n.resolve,
|
||
o = n.reject,
|
||
a = e.handler;
|
||
try {
|
||
r = a(t)
|
||
} catch (e) {
|
||
return void o(e)
|
||
}
|
||
i(r)
|
||
})
|
||
}, e.prototype.Er = function(e, t) {
|
||
l(function() {
|
||
var r, n = e.capabilities,
|
||
i = n.resolve,
|
||
o = n.reject,
|
||
a = e.handler;
|
||
try {
|
||
r = a(t)
|
||
} catch (e) {
|
||
return void o(e)
|
||
}
|
||
i(r)
|
||
})
|
||
}, e
|
||
}();
|
||
void 0 === t.Promise && (t.Promise = s);
|
||
var u;
|
||
! function(e) {
|
||
e[e.PENDING = 0] = "PENDING", e[e.FULFILLED = 1] = "FULFILLED", e[e.REJECTED = 2] = "REJECTED"
|
||
}(u || (u = {})), t.setImplementation = r;
|
||
var p = function() {
|
||
function e() {
|
||
var e = this;
|
||
this.Tr = new t.Promise(function(t, r) {
|
||
Object.defineProperties(e, {
|
||
resolve: {
|
||
value: t,
|
||
enumerable: !0
|
||
},
|
||
reject: {
|
||
value: r,
|
||
enumerable: !0
|
||
}
|
||
})
|
||
})
|
||
}
|
||
return Object.defineProperty(e.prototype, "promise", {
|
||
get: function() {
|
||
return this.Tr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e
|
||
}();
|
||
t.DeferredPromise = p, t.first = n, t.any = o, t.lastly = a
|
||
}, function(t) {
|
||
function r(e) {
|
||
null !== e ? t.Set = e : t.Set = n
|
||
}
|
||
t.Set = e.Set;
|
||
var n = function() {
|
||
function e(e) {
|
||
if (this.clear(), void 0 !== e) {
|
||
if (!Array.isArray(e)) throw new Error("Non-array iterables are not supported by the SimpleSet constructor.");
|
||
for (var t = 0; t < e.length; t++) {
|
||
var r = e[t];
|
||
this.add(r)
|
||
}
|
||
}
|
||
}
|
||
return e.prototype.add = function(e) {
|
||
var t = this.Dr(e);
|
||
if (null === t) throw new Error("This Set implementation only supports Number and String values.");
|
||
return t in this.Fr || this.mr++, this.Fr[t] = e, this
|
||
}, e.prototype.clear = function() {
|
||
this.Fr = Object.create(null), this.mr = 0
|
||
}, e.prototype.has = function(e) {
|
||
var t = this.Dr(e);
|
||
return null === t ? !1 : t in this.Fr
|
||
}, e.prototype.forEach = function(e, t) {
|
||
for (var r = 0, n = Object.keys(this.Fr); r < n.length; r++) {
|
||
var i = n[r],
|
||
o = this.Fr[i];
|
||
e.call(t, o, o, this)
|
||
}
|
||
}, Object.defineProperty(e.prototype, "size", {
|
||
get: function() {
|
||
return this.mr
|
||
},
|
||
enumerable: !0,
|
||
configurable: !0
|
||
}), e.prototype.Dr = function(e) {
|
||
return "number" == typeof e ? "#" + e : "string" == typeof e ? "'" + e : null
|
||
}, e
|
||
}();
|
||
(void 0 === t.Set || "function" != typeof t.Set.prototype.forEach || function() {
|
||
try {
|
||
return 2 !== new t.Set([1, 2]).size
|
||
} catch (e) {
|
||
return !0
|
||
}
|
||
}()) && (t.Set = n), t.setImplementation = r
|
||
}, function(e) {
|
||
function t(e, t) {
|
||
function r() {
|
||
this.constructor = e
|
||
}
|
||
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
|
||
r.prototype = t.prototype, e.prototype = new r
|
||
}
|
||
|
||
function r(e, t, r) {
|
||
return arguments.length < 3 ? n(e.reverse(), t) : void i(e.reverse(), t, r)
|
||
}
|
||
|
||
function n(e, t) {
|
||
for (var r = 0; r < e.length; r++) {
|
||
var n = e[r];
|
||
t = n(t) || t
|
||
}
|
||
return t
|
||
}
|
||
|
||
function i(e, t, r) {
|
||
for (var n = 0; n < e.length; n++) {
|
||
var i = e[n];
|
||
i(t, r)
|
||
}
|
||
}
|
||
e.ke = t, e.L = r
|
||
}, function(e, t) {
|
||
var r = t(30),
|
||
n = t(32),
|
||
i = t(36),
|
||
o = t(38),
|
||
a = function() {
|
||
function e(e) {
|
||
var t = this;
|
||
this.Mr = e, this.Rr = new r.Map, this.Mr.addEventListener("message", function(e) {
|
||
return t.Nr(e.data)
|
||
}, !1)
|
||
}
|
||
return e.prototype.request = function(t, r) {
|
||
var i = new n.DeferredPromise,
|
||
a = ++e.Wr;
|
||
this.Rr.set(a, i);
|
||
var l = {
|
||
requestId: a,
|
||
command: t,
|
||
parameters: r
|
||
};
|
||
return this.Mr.postMessage(o.serialize(l)), i.promise
|
||
}, e.prototype.cancelRequest = function(e) {
|
||
var t = this.Rr.get(e);
|
||
void 0 !== t && (this.Rr.delete(e), t.reject(new Error("Cancelled.")))
|
||
}, e.prototype.Lr = function(e) {
|
||
var t = e.requestId,
|
||
r = e.error,
|
||
n = e.result;
|
||
r instanceof Error && (r = {
|
||
message: r.message,
|
||
stack: r.stack
|
||
}), this.Mr.postMessage(o.serialize({
|
||
command: i.WorkerCommands.Response,
|
||
requestId: t,
|
||
error: r,
|
||
result: n
|
||
}))
|
||
}, e.prototype.Nr = function(e) {
|
||
var t = this,
|
||
r = o.deserialize(e);
|
||
if (r.command === i.WorkerCommands.Response) {
|
||
var n = r,
|
||
a = this.Rr.get(n.requestId);
|
||
void 0 !== a && (this.Rr.delete(n.requestId), null === n.error ? a.resolve(n.result) : a.reject(n.error))
|
||
} else {
|
||
var l = r,
|
||
s = l.requestId,
|
||
u = o.getWorkerCommandHandler(l.command);
|
||
if (void 0 === u) return void this.Lr({
|
||
requestId: s,
|
||
error: new Error("No handler registered for command " + l.command),
|
||
result: null
|
||
});
|
||
u(l.parameters).then(function(e) {
|
||
return {
|
||
requestId: s,
|
||
error: null,
|
||
result: e
|
||
}
|
||
}, function(e) {
|
||
return {
|
||
requestId: s,
|
||
error: e,
|
||
result: null
|
||
}
|
||
}).then(function(e) {
|
||
return t.Lr(e)
|
||
})
|
||
}
|
||
}, e.Wr = -1, e
|
||
}();
|
||
e.WorkerChannelImpl = a, o.registerWorkerCommand(i.WorkerCommands.Ping, function() {
|
||
return new n.Promise(function(e) {
|
||
return e(null)
|
||
})
|
||
})
|
||
}, function(e) {
|
||
! function(e) {
|
||
e[e.Response = 0] = "Response", e[e.Parse = 1] = "Parse", e[e.Ping = 2] = "Ping"
|
||
}(e.WorkerCommands || (e.WorkerCommands = {}))
|
||
}, function(t, r) {
|
||
function n(e) {
|
||
return void 0 === e && (e = a.src), new i.WorkerChannelImpl(new Worker(e))
|
||
}
|
||
var i = r(35),
|
||
o = r(36);
|
||
t.WorkerCommands = o.WorkerCommands, t.supported = "undefined" != typeof Worker;
|
||
var a = "undefined" != typeof document && void 0 !== document.currentScript ? document.currentScript : null;
|
||
t.createWorker = n, "undefined" != typeof WorkerGlobalScope && e instanceof WorkerGlobalScope && new i.WorkerChannelImpl(e)
|
||
}, function(e, t) {
|
||
function r(e, t) {
|
||
s.set(e, t)
|
||
}
|
||
|
||
function n(e) {
|
||
return s.get(e)
|
||
}
|
||
|
||
function i(e) {
|
||
e.Ir = u.size, u.set(e.Ir, e)
|
||
}
|
||
|
||
function o(e) {
|
||
return JSON.stringify(e, function(e, t) {
|
||
return t && void 0 !== t.Ir && (t.Ir = t.Ir), t
|
||
})
|
||
}
|
||
|
||
function a(e) {
|
||
return JSON.parse(e, function(e, t) {
|
||
if (t && void 0 !== t.Ir) {
|
||
for (var r = Object.create(u.get(t.Ir)), n = 0, i = Object.keys(t); n < i.length; n++) {
|
||
var o = i[n];
|
||
"_classTag" !== o && (r[o] = t[o])
|
||
}
|
||
t = r
|
||
}
|
||
return t
|
||
})
|
||
}
|
||
var l = t(30),
|
||
s = new l.Map,
|
||
u = new l.Map;
|
||
e.registerWorkerCommand = r, e.getWorkerCommandHandler = n, e.registerClassPrototype = i, e.serialize = o, e.deserialize = a
|
||
}])
|
||
});
|
||
//# sourceMappingURL=libjass.min.js.map
|