Created
February 25, 2025 07:44
-
-
Save MarvinXu/0988e151ce016962f202e840baafa0fb to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
(self.webpackChunkpolyhedron_canvas = self.webpackChunkpolyhedron_canvas || []).push([[179], { | |
739: () => { | |
function Ye(n) { | |
return "function" == typeof n | |
} | |
function is(n) { | |
const t = n(r => { | |
Error.call(r), | |
r.stack = (new Error).stack | |
} | |
); | |
return t.prototype = Object.create(Error.prototype), | |
t.prototype.constructor = t, | |
t | |
} | |
const La = is(n => function(t) { | |
n(this), | |
this.message = t ? `${t.length} errors occurred during unsubscription:\n${t.map( (r, i) => `${i + 1}) ${r.toString()}`).join("\n ")}` : "", | |
this.name = "UnsubscriptionError", | |
this.errors = t | |
} | |
); | |
function Yi(n, e) { | |
if (n) { | |
const t = n.indexOf(e); | |
0 <= t && n.splice(t, 1) | |
} | |
} | |
class mn { | |
constructor(e) { | |
this.initialTeardown = e, | |
this.closed = !1, | |
this._parentage = null, | |
this._finalizers = null | |
} | |
unsubscribe() { | |
let e; | |
if (!this.closed) { | |
this.closed = !0; | |
const {_parentage: t} = this; | |
if (t) | |
if (this._parentage = null, | |
Array.isArray(t)) | |
for (const o of t) | |
o.remove(this); | |
else | |
t.remove(this); | |
const {initialTeardown: r} = this; | |
if (Ye(r)) | |
try { | |
r() | |
} catch (o) { | |
e = o instanceof La ? o.errors : [o] | |
} | |
const {_finalizers: i} = this; | |
if (i) { | |
this._finalizers = null; | |
for (const o of i) | |
try { | |
Sg(o) | |
} catch (s) { | |
e = null != e ? e : [], | |
s instanceof La ? e = [...e, ...s.errors] : e.push(s) | |
} | |
} | |
if (e) | |
throw new La(e) | |
} | |
} | |
add(e) { | |
var t; | |
if (e && e !== this) | |
if (this.closed) | |
Sg(e); | |
else { | |
if (e instanceof mn) { | |
if (e.closed || e._hasParent(this)) | |
return; | |
e._addParent(this) | |
} | |
(this._finalizers = null !== (t = this._finalizers) && void 0 !== t ? t : []).push(e) | |
} | |
} | |
_hasParent(e) { | |
const {_parentage: t} = this; | |
return t === e || Array.isArray(t) && t.includes(e) | |
} | |
_addParent(e) { | |
const {_parentage: t} = this; | |
this._parentage = Array.isArray(t) ? (t.push(e), | |
t) : t ? [t, e] : e | |
} | |
_removeParent(e) { | |
const {_parentage: t} = this; | |
t === e ? this._parentage = null : Array.isArray(t) && Yi(t, e) | |
} | |
remove(e) { | |
const {_finalizers: t} = this; | |
t && Yi(t, e), | |
e instanceof mn && e._removeParent(this) | |
} | |
} | |
mn.EMPTY = ( () => { | |
const n = new mn; | |
return n.closed = !0, | |
n | |
} | |
)(); | |
const Ag = mn.EMPTY; | |
function Ig(n) { | |
return n instanceof mn || n && "closed"in n && Ye(n.remove) && Ye(n.add) && Ye(n.unsubscribe) | |
} | |
function Sg(n) { | |
Ye(n) ? n() : n.unsubscribe() | |
} | |
const bi = { | |
onUnhandledError: null, | |
onStoppedNotification: null, | |
Promise: void 0, | |
useDeprecatedSynchronousErrorHandling: !1, | |
useDeprecatedNextContext: !1 | |
} | |
, Va = { | |
setTimeout(n, e, ...t) { | |
const {delegate: r} = Va; | |
return null != r && r.setTimeout ? r.setTimeout(n, e, ...t) : setTimeout(n, e, ...t) | |
}, | |
clearTimeout(n) { | |
const {delegate: e} = Va; | |
return ((null == e ? void 0 : e.clearTimeout) || clearTimeout)(n) | |
}, | |
delegate: void 0 | |
}; | |
function xg(n) { | |
Va.setTimeout( () => { | |
const {onUnhandledError: e} = bi; | |
if (!e) | |
throw n; | |
e(n) | |
} | |
) | |
} | |
function bu() {} | |
const DD = Cu("C", void 0, void 0); | |
function Cu(n, e, t) { | |
return { | |
kind: n, | |
value: e, | |
error: t | |
} | |
} | |
let Ci = null; | |
function Ba(n) { | |
if (bi.useDeprecatedSynchronousErrorHandling) { | |
const e = !Ci; | |
if (e && (Ci = { | |
errorThrown: !1, | |
error: null | |
}), | |
n(), | |
e) { | |
const {errorThrown: t, error: r} = Ci; | |
if (Ci = null, | |
t) | |
throw r | |
} | |
} else | |
n() | |
} | |
class Tu extends mn { | |
constructor(e) { | |
super(), | |
this.isStopped = !1, | |
e ? (this.destination = e, | |
Ig(e) && e.add(this)) : this.destination = FD | |
} | |
static create(e, t, r) { | |
return new os(e,t,r) | |
} | |
next(e) { | |
this.isStopped ? wu(function AD(n) { | |
return Cu("N", n, void 0) | |
}(e), this) : this._next(e) | |
} | |
error(e) { | |
this.isStopped ? wu(function MD(n) { | |
return Cu("E", void 0, n) | |
}(e), this) : (this.isStopped = !0, | |
this._error(e)) | |
} | |
complete() { | |
this.isStopped ? wu(DD, this) : (this.isStopped = !0, | |
this._complete()) | |
} | |
unsubscribe() { | |
this.closed || (this.isStopped = !0, | |
super.unsubscribe(), | |
this.destination = null) | |
} | |
_next(e) { | |
this.destination.next(e) | |
} | |
_error(e) { | |
try { | |
this.destination.error(e) | |
} finally { | |
this.unsubscribe() | |
} | |
} | |
_complete() { | |
try { | |
this.destination.complete() | |
} finally { | |
this.unsubscribe() | |
} | |
} | |
} | |
const SD = Function.prototype.bind; | |
function Eu(n, e) { | |
return SD.call(n, e) | |
} | |
class xD { | |
constructor(e) { | |
this.partialObserver = e | |
} | |
next(e) { | |
const {partialObserver: t} = this; | |
if (t.next) | |
try { | |
t.next(e) | |
} catch (r) { | |
Ua(r) | |
} | |
} | |
error(e) { | |
const {partialObserver: t} = this; | |
if (t.error) | |
try { | |
t.error(e) | |
} catch (r) { | |
Ua(r) | |
} | |
else | |
Ua(e) | |
} | |
complete() { | |
const {partialObserver: e} = this; | |
if (e.complete) | |
try { | |
e.complete() | |
} catch (t) { | |
Ua(t) | |
} | |
} | |
} | |
class os extends Tu { | |
constructor(e, t, r) { | |
let i; | |
if (super(), | |
Ye(e) || !e) | |
i = { | |
next: null != e ? e : void 0, | |
error: null != t ? t : void 0, | |
complete: null != r ? r : void 0 | |
}; | |
else { | |
let o; | |
this && bi.useDeprecatedNextContext ? (o = Object.create(e), | |
o.unsubscribe = () => this.unsubscribe(), | |
i = { | |
next: e.next && Eu(e.next, o), | |
error: e.error && Eu(e.error, o), | |
complete: e.complete && Eu(e.complete, o) | |
}) : i = e | |
} | |
this.destination = new xD(i) | |
} | |
} | |
function Ua(n) { | |
bi.useDeprecatedSynchronousErrorHandling ? function ID(n) { | |
bi.useDeprecatedSynchronousErrorHandling && Ci && (Ci.errorThrown = !0, | |
Ci.error = n) | |
}(n) : xg(n) | |
} | |
function wu(n, e) { | |
const {onStoppedNotification: t} = bi; | |
t && Va.setTimeout( () => t(n, e)) | |
} | |
const FD = { | |
closed: !0, | |
next: bu, | |
error: function RD(n) { | |
throw n | |
}, | |
complete: bu | |
} | |
, Du = "function" == typeof Symbol && Symbol.observable || "@@observable"; | |
function qr(n) { | |
return n | |
} | |
function Rg(n) { | |
return 0 === n.length ? qr : 1 === n.length ? n[0] : function(t) { | |
return n.reduce( (r, i) => i(r), t) | |
} | |
} | |
let vt = ( () => { | |
class n { | |
constructor(t) { | |
t && (this._subscribe = t) | |
} | |
lift(t) { | |
const r = new n; | |
return r.source = this, | |
r.operator = t, | |
r | |
} | |
subscribe(t, r, i) { | |
const o = function ND(n) { | |
return n && n instanceof Tu || function OD(n) { | |
return n && Ye(n.next) && Ye(n.error) && Ye(n.complete) | |
}(n) && Ig(n) | |
}(t) ? t : new os(t,r,i); | |
return Ba( () => { | |
const {operator: s, source: a} = this; | |
o.add(s ? s.call(o, a) : a ? this._subscribe(o) : this._trySubscribe(o)) | |
} | |
), | |
o | |
} | |
_trySubscribe(t) { | |
try { | |
return this._subscribe(t) | |
} catch (r) { | |
t.error(r) | |
} | |
} | |
forEach(t, r) { | |
return new (r = Fg(r))( (i, o) => { | |
const s = new os({ | |
next: a => { | |
try { | |
t(a) | |
} catch (l) { | |
o(l), | |
s.unsubscribe() | |
} | |
} | |
, | |
error: o, | |
complete: i | |
}); | |
this.subscribe(s) | |
} | |
) | |
} | |
_subscribe(t) { | |
var r; | |
return null === (r = this.source) || void 0 === r ? void 0 : r.subscribe(t) | |
} | |
[Du]() { | |
return this | |
} | |
pipe(...t) { | |
return Rg(t)(this) | |
} | |
toPromise(t) { | |
return new (t = Fg(t))( (r, i) => { | |
let o; | |
this.subscribe(s => o = s, s => i(s), () => r(o)) | |
} | |
) | |
} | |
} | |
return n.create = e => new n(e), | |
n | |
} | |
)(); | |
function Fg(n) { | |
var e; | |
return null !== (e = null != n ? n : bi.Promise) && void 0 !== e ? e : Promise | |
} | |
const kD = is(n => function() { | |
n(this), | |
this.name = "ObjectUnsubscribedError", | |
this.message = "object unsubscribed" | |
} | |
); | |
let un = ( () => { | |
class n extends vt { | |
constructor() { | |
super(), | |
this.closed = !1, | |
this.currentObservers = null, | |
this.observers = [], | |
this.isStopped = !1, | |
this.hasError = !1, | |
this.thrownError = null | |
} | |
lift(t) { | |
const r = new Pg(this,this); | |
return r.operator = t, | |
r | |
} | |
_throwIfClosed() { | |
if (this.closed) | |
throw new kD | |
} | |
next(t) { | |
Ba( () => { | |
if (this._throwIfClosed(), | |
!this.isStopped) { | |
this.currentObservers || (this.currentObservers = Array.from(this.observers)); | |
for (const r of this.currentObservers) | |
r.next(t) | |
} | |
} | |
) | |
} | |
error(t) { | |
Ba( () => { | |
if (this._throwIfClosed(), | |
!this.isStopped) { | |
this.hasError = this.isStopped = !0, | |
this.thrownError = t; | |
const {observers: r} = this; | |
for (; r.length; ) | |
r.shift().error(t) | |
} | |
} | |
) | |
} | |
complete() { | |
Ba( () => { | |
if (this._throwIfClosed(), | |
!this.isStopped) { | |
this.isStopped = !0; | |
const {observers: t} = this; | |
for (; t.length; ) | |
t.shift().complete() | |
} | |
} | |
) | |
} | |
unsubscribe() { | |
this.isStopped = this.closed = !0, | |
this.observers = this.currentObservers = null | |
} | |
get observed() { | |
var t; | |
return (null === (t = this.observers) || void 0 === t ? void 0 : t.length) > 0 | |
} | |
_trySubscribe(t) { | |
return this._throwIfClosed(), | |
super._trySubscribe(t) | |
} | |
_subscribe(t) { | |
return this._throwIfClosed(), | |
this._checkFinalizedStatuses(t), | |
this._innerSubscribe(t) | |
} | |
_innerSubscribe(t) { | |
const {hasError: r, isStopped: i, observers: o} = this; | |
return r || i ? Ag : (this.currentObservers = null, | |
o.push(t), | |
new mn( () => { | |
this.currentObservers = null, | |
Yi(o, t) | |
} | |
)) | |
} | |
_checkFinalizedStatuses(t) { | |
const {hasError: r, thrownError: i, isStopped: o} = this; | |
r ? t.error(i) : o && t.complete() | |
} | |
asObservable() { | |
const t = new vt; | |
return t.source = this, | |
t | |
} | |
} | |
return n.create = (e, t) => new Pg(e,t), | |
n | |
} | |
)(); | |
class Pg extends un { | |
constructor(e, t) { | |
super(), | |
this.destination = e, | |
this.source = t | |
} | |
next(e) { | |
var t, r; | |
null === (r = null === (t = this.destination) || void 0 === t ? void 0 : t.next) || void 0 === r || r.call(t, e) | |
} | |
error(e) { | |
var t, r; | |
null === (r = null === (t = this.destination) || void 0 === t ? void 0 : t.error) || void 0 === r || r.call(t, e) | |
} | |
complete() { | |
var e, t; | |
null === (t = null === (e = this.destination) || void 0 === e ? void 0 : e.complete) || void 0 === t || t.call(e) | |
} | |
_subscribe(e) { | |
var t, r; | |
return null !== (r = null === (t = this.source) || void 0 === t ? void 0 : t.subscribe(e)) && void 0 !== r ? r : Ag | |
} | |
} | |
function Og(n) { | |
return Ye(null == n ? void 0 : n.lift) | |
} | |
function bt(n) { | |
return e => { | |
if (Og(e)) | |
return e.lift(function(t) { | |
try { | |
return n(t, this) | |
} catch (r) { | |
this.error(r) | |
} | |
}); | |
throw new TypeError("Unable to lift unknown Observable type") | |
} | |
} | |
function pt(n, e, t, r, i) { | |
return new LD(n,e,t,r,i) | |
} | |
class LD extends Tu { | |
constructor(e, t, r, i, o, s) { | |
super(e), | |
this.onFinalize = o, | |
this.shouldUnsubscribe = s, | |
this._next = t ? function(a) { | |
try { | |
t(a) | |
} catch (l) { | |
e.error(l) | |
} | |
} | |
: super._next, | |
this._error = i ? function(a) { | |
try { | |
i(a) | |
} catch (l) { | |
e.error(l) | |
} finally { | |
this.unsubscribe() | |
} | |
} | |
: super._error, | |
this._complete = r ? function() { | |
try { | |
r() | |
} catch (a) { | |
e.error(a) | |
} finally { | |
this.unsubscribe() | |
} | |
} | |
: super._complete | |
} | |
unsubscribe() { | |
var e; | |
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { | |
const {closed: t} = this; | |
super.unsubscribe(), | |
!t && (null === (e = this.onFinalize) || void 0 === e || e.call(this)) | |
} | |
} | |
} | |
function Fe(n, e) { | |
return bt( (t, r) => { | |
let i = 0; | |
t.subscribe(pt(r, o => { | |
r.next(n.call(e, o, i++)) | |
} | |
)) | |
} | |
) | |
} | |
function Ht(n, e, t, r) { | |
return new (t || (t = Promise))(function(o, s) { | |
function a(u) { | |
try { | |
c(r.next(u)) | |
} catch (d) { | |
s(d) | |
} | |
} | |
function l(u) { | |
try { | |
c(r.throw(u)) | |
} catch (d) { | |
s(d) | |
} | |
} | |
function c(u) { | |
u.done ? o(u.value) : function i(o) { | |
return o instanceof t ? o : new t(function(s) { | |
s(o) | |
} | |
) | |
}(u.value).then(a, l) | |
} | |
c((r = r.apply(n, e || [])).next()) | |
} | |
) | |
} | |
function Kr(n) { | |
return this instanceof Kr ? (this.v = n, | |
this) : new Kr(n) | |
} | |
function kg(n, e, t) { | |
if (!Symbol.asyncIterator) | |
throw new TypeError("Symbol.asyncIterator is not defined."); | |
var i, r = t.apply(n, e || []), o = []; | |
return i = {}, | |
s("next"), | |
s("throw"), | |
s("return"), | |
i[Symbol.asyncIterator] = function() { | |
return this | |
} | |
, | |
i; | |
function s(h) { | |
r[h] && (i[h] = function(f) { | |
return new Promise(function(p, _) { | |
o.push([h, f, p, _]) > 1 || a(h, f) | |
} | |
) | |
} | |
) | |
} | |
function a(h, f) { | |
try { | |
!function l(h) { | |
h.value instanceof Kr ? Promise.resolve(h.value.v).then(c, u) : d(o[0][2], h) | |
}(r[h](f)) | |
} catch (p) { | |
d(o[0][3], p) | |
} | |
} | |
function c(h) { | |
a("next", h) | |
} | |
function u(h) { | |
a("throw", h) | |
} | |
function d(h, f) { | |
h(f), | |
o.shift(), | |
o.length && a(o[0][0], o[0][1]) | |
} | |
} | |
function Lg(n) { | |
if (!Symbol.asyncIterator) | |
throw new TypeError("Symbol.asyncIterator is not defined."); | |
var t, e = n[Symbol.asyncIterator]; | |
return e ? e.call(n) : (n = function Su(n) { | |
var e = "function" == typeof Symbol && Symbol.iterator | |
, t = e && n[e] | |
, r = 0; | |
if (t) | |
return t.call(n); | |
if (n && "number" == typeof n.length) | |
return { | |
next: function() { | |
return n && r >= n.length && (n = void 0), | |
{ | |
value: n && n[r++], | |
done: !n | |
} | |
} | |
}; | |
throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined.") | |
}(n), | |
t = {}, | |
r("next"), | |
r("throw"), | |
r("return"), | |
t[Symbol.asyncIterator] = function() { | |
return this | |
} | |
, | |
t); | |
function r(o) { | |
t[o] = n[o] && function(s) { | |
return new Promise(function(a, l) { | |
!function i(o, s, a, l) { | |
Promise.resolve(l).then(function(c) { | |
o({ | |
value: c, | |
done: a | |
}) | |
}, s) | |
}(a, l, (s = n[o](s)).done, s.value) | |
} | |
) | |
} | |
} | |
} | |
"function" == typeof SuppressedError && SuppressedError; | |
const Vg = n => n && "number" == typeof n.length && "function" != typeof n; | |
function Bg(n) { | |
return Ye(null == n ? void 0 : n.then) | |
} | |
function Ug(n) { | |
return Ye(n[Du]) | |
} | |
function jg(n) { | |
return Symbol.asyncIterator && Ye(null == n ? void 0 : n[Symbol.asyncIterator]) | |
} | |
function Hg(n) { | |
return new TypeError(`You provided ${null !== n && "object" == typeof n ? "an invalid object" : `'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`) | |
} | |
const zg = function oM() { | |
return "function" == typeof Symbol && Symbol.iterator ? Symbol.iterator : "@@iterator" | |
}(); | |
function $g(n) { | |
return Ye(null == n ? void 0 : n[zg]) | |
} | |
function Wg(n) { | |
return kg(this, arguments, function*() { | |
const t = n.getReader(); | |
try { | |
for (; ; ) { | |
const {value: r, done: i} = yield Kr(t.read()); | |
if (i) | |
return yield Kr(void 0); | |
yield yield Kr(r) | |
} | |
} finally { | |
t.releaseLock() | |
} | |
}) | |
} | |
function Gg(n) { | |
return Ye(null == n ? void 0 : n.getReader) | |
} | |
function _n(n) { | |
if (n instanceof vt) | |
return n; | |
if (null != n) { | |
if (Ug(n)) | |
return function sM(n) { | |
return new vt(e => { | |
const t = n[Du](); | |
if (Ye(t.subscribe)) | |
return t.subscribe(e); | |
throw new TypeError("Provided object does not correctly implement Symbol.observable") | |
} | |
) | |
}(n); | |
if (Vg(n)) | |
return function aM(n) { | |
return new vt(e => { | |
for (let t = 0; t < n.length && !e.closed; t++) | |
e.next(n[t]); | |
e.complete() | |
} | |
) | |
}(n); | |
if (Bg(n)) | |
return function lM(n) { | |
return new vt(e => { | |
n.then(t => { | |
e.closed || (e.next(t), | |
e.complete()) | |
} | |
, t => e.error(t)).then(null, xg) | |
} | |
) | |
}(n); | |
if (jg(n)) | |
return qg(n); | |
if ($g(n)) | |
return function cM(n) { | |
return new vt(e => { | |
for (const t of n) | |
if (e.next(t), | |
e.closed) | |
return; | |
e.complete() | |
} | |
) | |
}(n); | |
if (Gg(n)) | |
return function uM(n) { | |
return qg(Wg(n)) | |
}(n) | |
} | |
throw Hg(n) | |
} | |
function qg(n) { | |
return new vt(e => { | |
(function dM(n, e) { | |
var t, r, i, o; | |
return Ht(this, void 0, void 0, function*() { | |
try { | |
for (t = Lg(n); !(r = yield t.next()).done; ) | |
if (e.next(r.value), | |
e.closed) | |
return | |
} catch (s) { | |
i = { | |
error: s | |
} | |
} finally { | |
try { | |
r && !r.done && (o = t.return) && (yield o.call(t)) | |
} finally { | |
if (i) | |
throw i.error | |
} | |
} | |
e.complete() | |
}) | |
} | |
)(n, e).catch(t => e.error(t)) | |
} | |
) | |
} | |
function Cr(n, e, t, r=0, i=!1) { | |
const o = e.schedule(function() { | |
t(), | |
i ? n.add(this.schedule(null, r)) : this.unsubscribe() | |
}, r); | |
if (n.add(o), | |
!i) | |
return o | |
} | |
function Lt(n, e, t=1 / 0) { | |
return Ye(e) ? Lt( (r, i) => Fe( (o, s) => e(r, o, i, s))(_n(n(r, i))), t) : ("number" == typeof e && (t = e), | |
bt( (r, i) => function hM(n, e, t, r, i, o, s, a) { | |
const l = []; | |
let c = 0 | |
, u = 0 | |
, d = !1; | |
const h = () => { | |
d && !l.length && !c && e.complete() | |
} | |
, f = _ => c < r ? p(_) : l.push(_) | |
, p = _ => { | |
o && e.next(_), | |
c++; | |
let C = !1; | |
_n(t(_, u++)).subscribe(pt(e, S => { | |
null == i || i(S), | |
o ? f(S) : e.next(S) | |
} | |
, () => { | |
C = !0 | |
} | |
, void 0, () => { | |
if (C) | |
try { | |
for (c--; l.length && c < r; ) { | |
const S = l.shift(); | |
s ? Cr(e, s, () => p(S)) : p(S) | |
} | |
h() | |
} catch (S) { | |
e.error(S) | |
} | |
} | |
)) | |
} | |
; | |
return n.subscribe(pt(e, f, () => { | |
d = !0, | |
h() | |
} | |
)), | |
() => { | |
null == a || a() | |
} | |
}(r, i, n, t))) | |
} | |
function Zi(n=1 / 0) { | |
return Lt(qr, n) | |
} | |
const Tr = new vt(n => n.complete()); | |
function xu(n) { | |
return n[n.length - 1] | |
} | |
function Kg(n) { | |
return Ye(xu(n)) ? n.pop() : void 0 | |
} | |
function ss(n) { | |
return function pM(n) { | |
return n && Ye(n.schedule) | |
}(xu(n)) ? n.pop() : void 0 | |
} | |
function Qg(n, e=0) { | |
return bt( (t, r) => { | |
t.subscribe(pt(r, i => Cr(r, n, () => r.next(i), e), () => Cr(r, n, () => r.complete(), e), i => Cr(r, n, () => r.error(i), e))) | |
} | |
) | |
} | |
function Yg(n, e=0) { | |
return bt( (t, r) => { | |
r.add(n.schedule( () => t.subscribe(r), e)) | |
} | |
) | |
} | |
function Zg(n, e) { | |
if (!n) | |
throw new Error("Iterable cannot be null"); | |
return new vt(t => { | |
Cr(t, e, () => { | |
const r = n[Symbol.asyncIterator](); | |
Cr(t, e, () => { | |
r.next().then(i => { | |
i.done ? t.complete() : t.next(i.value) | |
} | |
) | |
} | |
, 0, !0) | |
} | |
) | |
} | |
) | |
} | |
function wt(n, e) { | |
return e ? function CM(n, e) { | |
if (null != n) { | |
if (Ug(n)) | |
return function mM(n, e) { | |
return _n(n).pipe(Yg(e), Qg(e)) | |
}(n, e); | |
if (Vg(n)) | |
return function yM(n, e) { | |
return new vt(t => { | |
let r = 0; | |
return e.schedule(function() { | |
r === n.length ? t.complete() : (t.next(n[r++]), | |
t.closed || this.schedule()) | |
}) | |
} | |
) | |
}(n, e); | |
if (Bg(n)) | |
return function _M(n, e) { | |
return _n(n).pipe(Yg(e), Qg(e)) | |
}(n, e); | |
if (jg(n)) | |
return Zg(n, e); | |
if ($g(n)) | |
return function vM(n, e) { | |
return new vt(t => { | |
let r; | |
return Cr(t, e, () => { | |
r = n[zg](), | |
Cr(t, e, () => { | |
let i, o; | |
try { | |
({value: i, done: o} = r.next()) | |
} catch (s) { | |
return void t.error(s) | |
} | |
o ? t.complete() : t.next(i) | |
} | |
, 0, !0) | |
} | |
), | |
() => Ye(null == r ? void 0 : r.return) && r.return() | |
} | |
) | |
}(n, e); | |
if (Gg(n)) | |
return function bM(n, e) { | |
return Zg(Wg(n), e) | |
}(n, e) | |
} | |
throw Hg(n) | |
}(n, e) : _n(n) | |
} | |
function Ru(n, e, ...t) { | |
if (!0 === e) | |
return void n(); | |
if (!1 === e) | |
return; | |
const r = new os({ | |
next: () => { | |
r.unsubscribe(), | |
n() | |
} | |
}); | |
return _n(e(...t)).subscribe(r) | |
} | |
function We(n) { | |
for (let e in n) | |
if (n[e] === We) | |
return e; | |
throw Error("Could not find renamed property on target object.") | |
} | |
function Fu(n, e) { | |
for (const t in e) | |
e.hasOwnProperty(t) && !n.hasOwnProperty(t) && (n[t] = e[t]) | |
} | |
function Ge(n) { | |
if ("string" == typeof n) | |
return n; | |
if (Array.isArray(n)) | |
return "[" + n.map(Ge).join(", ") + "]"; | |
if (null == n) | |
return "" + n; | |
if (n.overriddenName) | |
return `${n.overriddenName}`; | |
if (n.name) | |
return `${n.name}`; | |
const e = n.toString(); | |
if (null == e) | |
return "" + e; | |
const t = e.indexOf("\n"); | |
return -1 === t ? e : e.substring(0, t) | |
} | |
function Pu(n, e) { | |
return null == n || "" === n ? null === e ? "" : e : null == e || "" === e ? n : n + " " + e | |
} | |
const wM = We({ | |
__forward_ref__: We | |
}); | |
function qe(n) { | |
return n.__forward_ref__ = qe, | |
n.toString = function() { | |
return Ge(this()) | |
} | |
, | |
n | |
} | |
function ge(n) { | |
return Ou(n) ? n() : n | |
} | |
function Ou(n) { | |
return "function" == typeof n && n.hasOwnProperty(wM) && n.__forward_ref__ === qe | |
} | |
class U extends Error { | |
constructor(e, t) { | |
super(function ja(n, e) { | |
return `NG0${Math.abs(n)}${e ? ": " + e.trim() : ""}` | |
}(e, t)), | |
this.code = e | |
} | |
} | |
function ye(n) { | |
return "string" == typeof n ? n : null == n ? "" : String(n) | |
} | |
function Ha(n, e) { | |
throw new U(-201,!1) | |
} | |
function vn(n, e) { | |
null == n && function Be(n, e, t, r) { | |
throw new Error(`ASSERTION ERROR: ${n}` + (null == r ? "" : ` [Expected=> ${t} ${r} ${e} <=Actual]`)) | |
}(e, n, null, "!=") | |
} | |
function se(n) { | |
return { | |
token: n.token, | |
providedIn: n.providedIn || null, | |
factory: n.factory, | |
value: void 0 | |
} | |
} | |
function lt(n) { | |
return { | |
providers: n.providers || [], | |
imports: n.imports || [] | |
} | |
} | |
function za(n) { | |
return Xg(n, $a) || Xg(n, em) | |
} | |
function Xg(n, e) { | |
return n.hasOwnProperty(e) ? n[e] : null | |
} | |
function Jg(n) { | |
return n && (n.hasOwnProperty(Nu) || n.hasOwnProperty(PM)) ? n[Nu] : null | |
} | |
const $a = We({ | |
\u0275prov: We | |
}) | |
, Nu = We({ | |
\u0275inj: We | |
}) | |
, em = We({ | |
ngInjectableDef: We | |
}) | |
, PM = We({ | |
ngInjectorDef: We | |
}); | |
var he = ( () => ((he = he || {})[he.Default = 0] = "Default", | |
he[he.Host = 1] = "Host", | |
he[he.Self = 2] = "Self", | |
he[he.SkipSelf = 4] = "SkipSelf", | |
he[he.Optional = 8] = "Optional", | |
he))(); | |
let ku; | |
function Rn(n) { | |
const e = ku; | |
return ku = n, | |
e | |
} | |
function tm(n, e, t) { | |
const r = za(n); | |
return r && "root" == r.providedIn ? void 0 === r.value ? r.value = r.factory() : r.value : t & he.Optional ? null : void 0 !== e ? e : void Ha(Ge(n)) | |
} | |
function Qr(n) { | |
return { | |
toString: n | |
}.toString() | |
} | |
var Wn = ( () => ((Wn = Wn || {})[Wn.OnPush = 0] = "OnPush", | |
Wn[Wn.Default = 1] = "Default", | |
Wn))() | |
, Gn = ( () => { | |
return (n = Gn || (Gn = {}))[n.Emulated = 0] = "Emulated", | |
n[n.None = 2] = "None", | |
n[n.ShadowDom = 3] = "ShadowDom", | |
Gn; | |
var n | |
} | |
)(); | |
const Ze = ( () => "undefined" != typeof globalThis && globalThis || "undefined" != typeof global && global || "undefined" != typeof window && window || "undefined" != typeof self && "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope && self)() | |
, Xi = {} | |
, Ne = [] | |
, Wa = We({ | |
\u0275cmp: We | |
}) | |
, Lu = We({ | |
\u0275dir: We | |
}) | |
, Vu = We({ | |
\u0275pipe: We | |
}) | |
, nm = We({ | |
\u0275mod: We | |
}) | |
, wr = We({ | |
\u0275fac: We | |
}) | |
, as = We({ | |
__NG_ELEMENT_ID__: We | |
}); | |
let NM = 0; | |
function dn(n) { | |
return Qr( () => { | |
const t = !0 === n.standalone | |
, r = {} | |
, i = { | |
type: n.type, | |
providersResolver: null, | |
decls: n.decls, | |
vars: n.vars, | |
factory: null, | |
template: n.template || null, | |
consts: n.consts || null, | |
ngContentSelectors: n.ngContentSelectors, | |
hostBindings: n.hostBindings || null, | |
hostVars: n.hostVars || 0, | |
hostAttrs: n.hostAttrs || null, | |
contentQueries: n.contentQueries || null, | |
declaredInputs: r, | |
inputs: null, | |
outputs: null, | |
exportAs: n.exportAs || null, | |
onPush: n.changeDetection === Wn.OnPush, | |
directiveDefs: null, | |
pipeDefs: null, | |
standalone: t, | |
dependencies: t && n.dependencies || null, | |
getStandaloneInjector: null, | |
selectors: n.selectors || Ne, | |
viewQuery: n.viewQuery || null, | |
features: n.features || null, | |
data: n.data || {}, | |
encapsulation: n.encapsulation || Gn.Emulated, | |
id: "c" + NM++, | |
styles: n.styles || Ne, | |
_: null, | |
setInput: null, | |
schemas: n.schemas || null, | |
tView: null | |
} | |
, o = n.dependencies | |
, s = n.features; | |
return i.inputs = om(n.inputs, r), | |
i.outputs = om(n.outputs), | |
s && s.forEach(a => a(i)), | |
i.directiveDefs = o ? () => ("function" == typeof o ? o() : o).map(rm).filter(im) : null, | |
i.pipeDefs = o ? () => ("function" == typeof o ? o() : o).map(Xt).filter(im) : null, | |
i | |
} | |
) | |
} | |
function rm(n) { | |
return ze(n) || Zt(n) | |
} | |
function im(n) { | |
return null !== n | |
} | |
function gt(n) { | |
return Qr( () => ({ | |
type: n.type, | |
bootstrap: n.bootstrap || Ne, | |
declarations: n.declarations || Ne, | |
imports: n.imports || Ne, | |
exports: n.exports || Ne, | |
transitiveCompileScopes: null, | |
schemas: n.schemas || null, | |
id: n.id || null | |
})) | |
} | |
function om(n, e) { | |
if (null == n) | |
return Xi; | |
const t = {}; | |
for (const r in n) | |
if (n.hasOwnProperty(r)) { | |
let i = n[r] | |
, o = i; | |
Array.isArray(i) && (o = i[1], | |
i = i[0]), | |
t[i] = r, | |
e && (e[i] = o) | |
} | |
return t | |
} | |
const ue = dn; | |
function ze(n) { | |
return n[Wa] || null | |
} | |
function Zt(n) { | |
return n[Lu] || null | |
} | |
function Xt(n) { | |
return n[Vu] || null | |
} | |
function bn(n, e) { | |
const t = n[nm] || null; | |
if (!t && !0 === e) | |
throw new Error(`Type ${Ge(n)} does not have '\u0275mod' property.`); | |
return t | |
} | |
function fn(n) { | |
return Array.isArray(n) && "object" == typeof n[1] | |
} | |
function Kn(n) { | |
return Array.isArray(n) && !0 === n[1] | |
} | |
function ju(n) { | |
return 0 != (8 & n.flags) | |
} | |
function Qa(n) { | |
return 2 == (2 & n.flags) | |
} | |
function Ya(n) { | |
return 1 == (1 & n.flags) | |
} | |
function Qn(n) { | |
return null !== n.template | |
} | |
function jM(n) { | |
return 0 != (256 & n[2]) | |
} | |
function Mi(n, e) { | |
return n.hasOwnProperty(wr) ? n[wr] : null | |
} | |
class $M { | |
constructor(e, t, r) { | |
this.previousValue = e, | |
this.currentValue = t, | |
this.firstChange = r | |
} | |
isFirstChange() { | |
return this.firstChange | |
} | |
} | |
function Tn() { | |
return lm | |
} | |
function lm(n) { | |
return n.type.prototype.ngOnChanges && (n.setInput = GM), | |
WM | |
} | |
function WM() { | |
const n = um(this) | |
, e = null == n ? void 0 : n.current; | |
if (e) { | |
const t = n.previous; | |
if (t === Xi) | |
n.previous = e; | |
else | |
for (let r in e) | |
t[r] = e[r]; | |
n.current = null, | |
this.ngOnChanges(e) | |
} | |
} | |
function GM(n, e, t, r) { | |
const i = um(n) || function qM(n, e) { | |
return n[cm] = e | |
}(n, { | |
previous: Xi, | |
current: null | |
}) | |
, o = i.current || (i.current = {}) | |
, s = i.previous | |
, a = this.declaredInputs[t] | |
, l = s[a]; | |
o[a] = new $M(l && l.currentValue,e,s === Xi), | |
n[r] = e | |
} | |
Tn.ngInherit = !0; | |
const cm = "__ngSimpleChanges__"; | |
function um(n) { | |
return n[cm] || null | |
} | |
function Dt(n) { | |
for (; Array.isArray(n); ) | |
n = n[0]; | |
return n | |
} | |
function Za(n, e) { | |
return Dt(e[n]) | |
} | |
function En(n, e) { | |
return Dt(e[n.index]) | |
} | |
function Gu(n, e) { | |
return n.data[e] | |
} | |
function wn(n, e) { | |
const t = e[n]; | |
return fn(t) ? t : t[0] | |
} | |
function Xa(n) { | |
return 64 == (64 & n[2]) | |
} | |
function Yr(n, e) { | |
return null == e ? null : n[e] | |
} | |
function dm(n) { | |
n[18] = 0 | |
} | |
function qu(n, e) { | |
n[5] += e; | |
let t = n | |
, r = n[3]; | |
for (; null !== r && (1 === e && 1 === t[5] || -1 === e && 0 === t[5]); ) | |
r[5] += e, | |
t = r, | |
r = r[3] | |
} | |
const me = { | |
lFrame: Cm(null), | |
bindingsEnabled: !0 | |
}; | |
function fm() { | |
return me.bindingsEnabled | |
} | |
function H() { | |
return me.lFrame.lView | |
} | |
function Pe() { | |
return me.lFrame.tView | |
} | |
function Ue(n) { | |
return me.lFrame.contextLView = n, | |
n[8] | |
} | |
function je(n) { | |
return me.lFrame.contextLView = null, | |
n | |
} | |
function St() { | |
let n = pm(); | |
for (; null !== n && 64 === n.type; ) | |
n = n.parent; | |
return n | |
} | |
function pm() { | |
return me.lFrame.currentTNode | |
} | |
function lr(n, e) { | |
const t = me.lFrame; | |
t.currentTNode = n, | |
t.isParent = e | |
} | |
function Ku() { | |
return me.lFrame.isParent | |
} | |
function Qu() { | |
me.lFrame.isParent = !1 | |
} | |
function io() { | |
return me.lFrame.bindingIndex++ | |
} | |
function lA(n, e) { | |
const t = me.lFrame; | |
t.bindingIndex = t.bindingRootIndex = n, | |
Yu(e) | |
} | |
function Yu(n) { | |
me.lFrame.currentDirectiveIndex = n | |
} | |
function ym() { | |
return me.lFrame.currentQueryIndex | |
} | |
function Xu(n) { | |
me.lFrame.currentQueryIndex = n | |
} | |
function uA(n) { | |
const e = n[1]; | |
return 2 === e.type ? e.declTNode : 1 === e.type ? n[6] : null | |
} | |
function vm(n, e, t) { | |
if (t & he.SkipSelf) { | |
let i = e | |
, o = n; | |
for (; !(i = i.parent, | |
null !== i || t & he.Host || (i = uA(o), | |
null === i || (o = o[15], | |
10 & i.type))); ) | |
; | |
if (null === i) | |
return !1; | |
e = i, | |
n = o | |
} | |
const r = me.lFrame = bm(); | |
return r.currentTNode = e, | |
r.lView = n, | |
!0 | |
} | |
function Ju(n) { | |
const e = bm() | |
, t = n[1]; | |
me.lFrame = e, | |
e.currentTNode = t.firstChild, | |
e.lView = n, | |
e.tView = t, | |
e.contextLView = n, | |
e.bindingIndex = t.bindingStartIndex, | |
e.inI18n = !1 | |
} | |
function bm() { | |
const n = me.lFrame | |
, e = null === n ? null : n.child; | |
return null === e ? Cm(n) : e | |
} | |
function Cm(n) { | |
const e = { | |
currentTNode: null, | |
isParent: !0, | |
lView: null, | |
tView: null, | |
selectedIndex: -1, | |
contextLView: null, | |
elementDepthCount: 0, | |
currentNamespace: null, | |
currentDirectiveIndex: -1, | |
bindingRootIndex: -1, | |
bindingIndex: -1, | |
currentQueryIndex: 0, | |
parent: n, | |
child: null, | |
inI18n: !1 | |
}; | |
return null !== n && (n.child = e), | |
e | |
} | |
function Tm() { | |
const n = me.lFrame; | |
return me.lFrame = n.parent, | |
n.currentTNode = null, | |
n.lView = null, | |
n | |
} | |
const Em = Tm; | |
function ed() { | |
const n = Tm(); | |
n.isParent = !0, | |
n.tView = null, | |
n.selectedIndex = -1, | |
n.contextLView = null, | |
n.elementDepthCount = 0, | |
n.currentDirectiveIndex = -1, | |
n.currentNamespace = null, | |
n.bindingRootIndex = -1, | |
n.bindingIndex = -1, | |
n.currentQueryIndex = 0 | |
} | |
function en() { | |
return me.lFrame.selectedIndex | |
} | |
function Zr(n) { | |
me.lFrame.selectedIndex = n | |
} | |
function ct() { | |
const n = me.lFrame; | |
return Gu(n.tView, n.selectedIndex) | |
} | |
function Ja(n, e) { | |
for (let t = e.directiveStart, r = e.directiveEnd; t < r; t++) { | |
const o = n.data[t].type.prototype | |
, {ngAfterContentInit: s, ngAfterContentChecked: a, ngAfterViewInit: l, ngAfterViewChecked: c, ngOnDestroy: u} = o; | |
s && (n.contentHooks || (n.contentHooks = [])).push(-t, s), | |
a && ((n.contentHooks || (n.contentHooks = [])).push(t, a), | |
(n.contentCheckHooks || (n.contentCheckHooks = [])).push(t, a)), | |
l && (n.viewHooks || (n.viewHooks = [])).push(-t, l), | |
c && ((n.viewHooks || (n.viewHooks = [])).push(t, c), | |
(n.viewCheckHooks || (n.viewCheckHooks = [])).push(t, c)), | |
null != u && (n.destroyHooks || (n.destroyHooks = [])).push(t, u) | |
} | |
} | |
function el(n, e, t) { | |
wm(n, e, 3, t) | |
} | |
function tl(n, e, t, r) { | |
(3 & n[2]) === t && wm(n, e, t, r) | |
} | |
function td(n, e) { | |
let t = n[2]; | |
(3 & t) === e && (t &= 2047, | |
t += 1, | |
n[2] = t) | |
} | |
function wm(n, e, t, r) { | |
const o = null != r ? r : -1 | |
, s = e.length - 1; | |
let a = 0; | |
for (let l = void 0 !== r ? 65535 & n[18] : 0; l < s; l++) | |
if ("number" == typeof e[l + 1]) { | |
if (a = e[l], | |
null != r && a >= r) | |
break | |
} else | |
e[l] < 0 && (n[18] += 65536), | |
(a < o || -1 == o) && (vA(n, t, e, l), | |
n[18] = (4294901760 & n[18]) + l + 2), | |
l++ | |
} | |
function vA(n, e, t, r) { | |
const i = t[r] < 0 | |
, o = t[r + 1] | |
, a = n[i ? -t[r] : t[r]]; | |
if (i) { | |
if (n[2] >> 11 < n[18] >> 16 && (3 & n[2]) === e) { | |
n[2] += 2048; | |
try { | |
o.call(a) | |
} finally {} | |
} | |
} else | |
try { | |
o.call(a) | |
} finally {} | |
} | |
class fs { | |
constructor(e, t, r) { | |
this.factory = e, | |
this.resolving = !1, | |
this.canSeeViewProviders = t, | |
this.injectImpl = r | |
} | |
} | |
function nl(n, e, t) { | |
let r = 0; | |
for (; r < t.length; ) { | |
const i = t[r]; | |
if ("number" == typeof i) { | |
if (0 !== i) | |
break; | |
r++; | |
const o = t[r++] | |
, s = t[r++] | |
, a = t[r++]; | |
n.setAttribute(e, s, a, o) | |
} else { | |
const o = i | |
, s = t[++r]; | |
Mm(o) ? n.setProperty(e, o, s) : n.setAttribute(e, o, s), | |
r++ | |
} | |
} | |
return r | |
} | |
function Dm(n) { | |
return 3 === n || 4 === n || 6 === n | |
} | |
function Mm(n) { | |
return 64 === n.charCodeAt(0) | |
} | |
function rl(n, e) { | |
if (null !== e && 0 !== e.length) | |
if (null === n || 0 === n.length) | |
n = e.slice(); | |
else { | |
let t = -1; | |
for (let r = 0; r < e.length; r++) { | |
const i = e[r]; | |
"number" == typeof i ? t = i : 0 === t || Am(n, t, i, null, -1 === t || 2 === t ? e[++r] : null) | |
} | |
} | |
return n | |
} | |
function Am(n, e, t, r, i) { | |
let o = 0 | |
, s = n.length; | |
if (-1 === e) | |
s = -1; | |
else | |
for (; o < n.length; ) { | |
const a = n[o++]; | |
if ("number" == typeof a) { | |
if (a === e) { | |
s = -1; | |
break | |
} | |
if (a > e) { | |
s = o - 1; | |
break | |
} | |
} | |
} | |
for (; o < n.length; ) { | |
const a = n[o]; | |
if ("number" == typeof a) | |
break; | |
if (a === t) { | |
if (null === r) | |
return void (null !== i && (n[o + 1] = i)); | |
if (r === n[o + 1]) | |
return void (n[o + 2] = i) | |
} | |
o++, | |
null !== r && o++, | |
null !== i && o++ | |
} | |
-1 !== s && (n.splice(s, 0, e), | |
o = s + 1), | |
n.splice(o++, 0, t), | |
null !== r && n.splice(o++, 0, r), | |
null !== i && n.splice(o++, 0, i) | |
} | |
function Im(n) { | |
return -1 !== n | |
} | |
function oo(n) { | |
return 32767 & n | |
} | |
function so(n, e) { | |
let t = function wA(n) { | |
return n >> 16 | |
}(n) | |
, r = e; | |
for (; t > 0; ) | |
r = r[15], | |
t--; | |
return r | |
} | |
let rd = !0; | |
function il(n) { | |
const e = rd; | |
return rd = n, | |
e | |
} | |
let DA = 0; | |
const cr = {}; | |
function gs(n, e) { | |
const t = od(n, e); | |
if (-1 !== t) | |
return t; | |
const r = e[1]; | |
r.firstCreatePass && (n.injectorIndex = e.length, | |
id(r.data, n), | |
id(e, null), | |
id(r.blueprint, null)); | |
const i = ol(n, e) | |
, o = n.injectorIndex; | |
if (Im(i)) { | |
const s = oo(i) | |
, a = so(i, e) | |
, l = a[1].data; | |
for (let c = 0; c < 8; c++) | |
e[o + c] = a[s + c] | l[s + c] | |
} | |
return e[o + 8] = i, | |
o | |
} | |
function id(n, e) { | |
n.push(0, 0, 0, 0, 0, 0, 0, 0, e) | |
} | |
function od(n, e) { | |
return -1 === n.injectorIndex || n.parent && n.parent.injectorIndex === n.injectorIndex || null === e[n.injectorIndex + 8] ? -1 : n.injectorIndex | |
} | |
function ol(n, e) { | |
if (n.parent && -1 !== n.parent.injectorIndex) | |
return n.parent.injectorIndex; | |
let t = 0 | |
, r = null | |
, i = e; | |
for (; null !== i; ) { | |
if (r = Lm(i), | |
null === r) | |
return -1; | |
if (t++, | |
i = i[15], | |
-1 !== r.injectorIndex) | |
return r.injectorIndex | t << 16 | |
} | |
return -1 | |
} | |
function sl(n, e, t) { | |
!function MA(n, e, t) { | |
let r; | |
"string" == typeof t ? r = t.charCodeAt(0) || 0 : t.hasOwnProperty(as) && (r = t[as]), | |
null == r && (r = t[as] = DA++); | |
const i = 255 & r; | |
e.data[n + (i >> 5)] |= 1 << i | |
}(n, e, t) | |
} | |
function Rm(n, e, t) { | |
if (t & he.Optional || void 0 !== n) | |
return n; | |
Ha() | |
} | |
function Fm(n, e, t, r) { | |
if (t & he.Optional && void 0 === r && (r = null), | |
0 == (t & (he.Self | he.Host))) { | |
const i = n[9] | |
, o = Rn(void 0); | |
try { | |
return i ? i.get(e, r, t & he.Optional) : tm(e, r, t & he.Optional) | |
} finally { | |
Rn(o) | |
} | |
} | |
return Rm(r, 0, t) | |
} | |
function Pm(n, e, t, r=he.Default, i) { | |
if (null !== n) { | |
if (1024 & e[2]) { | |
const s = function RA(n, e, t, r, i) { | |
let o = n | |
, s = e; | |
for (; null !== o && null !== s && 1024 & s[2] && !(256 & s[2]); ) { | |
const a = Om(o, s, t, r | he.Self, cr); | |
if (a !== cr) | |
return a; | |
let l = o.parent; | |
if (!l) { | |
const c = s[21]; | |
if (c) { | |
const u = c.get(t, cr, r); | |
if (u !== cr) | |
return u | |
} | |
l = Lm(s), | |
s = s[15] | |
} | |
o = l | |
} | |
return i | |
}(n, e, t, r, cr); | |
if (s !== cr) | |
return s | |
} | |
const o = Om(n, e, t, r, cr); | |
if (o !== cr) | |
return o | |
} | |
return Fm(e, t, r, i) | |
} | |
function Om(n, e, t, r, i) { | |
const o = function SA(n) { | |
if ("string" == typeof n) | |
return n.charCodeAt(0) || 0; | |
const e = n.hasOwnProperty(as) ? n[as] : void 0; | |
return "number" == typeof e ? e >= 0 ? 255 & e : xA : e | |
}(t); | |
if ("function" == typeof o) { | |
if (!vm(e, n, r)) | |
return r & he.Host ? Rm(i, 0, r) : Fm(e, t, r, i); | |
try { | |
const s = o(r); | |
if (null != s || r & he.Optional) | |
return s; | |
Ha() | |
} finally { | |
Em() | |
} | |
} else if ("number" == typeof o) { | |
let s = null | |
, a = od(n, e) | |
, l = -1 | |
, c = r & he.Host ? e[16][6] : null; | |
for ((-1 === a || r & he.SkipSelf) && (l = -1 === a ? ol(n, e) : e[a + 8], | |
-1 !== l && km(r, !1) ? (s = e[1], | |
a = oo(l), | |
e = so(l, e)) : a = -1); -1 !== a; ) { | |
const u = e[1]; | |
if (Nm(o, a, u.data)) { | |
const d = IA(a, e, t, s, r, c); | |
if (d !== cr) | |
return d | |
} | |
l = e[a + 8], | |
-1 !== l && km(r, e[1].data[a + 8] === c) && Nm(o, a, e) ? (s = u, | |
a = oo(l), | |
e = so(l, e)) : a = -1 | |
} | |
} | |
return i | |
} | |
function IA(n, e, t, r, i, o) { | |
const s = e[1] | |
, a = s.data[n + 8] | |
, u = al(a, s, t, null == r ? Qa(a) && rd : r != s && 0 != (3 & a.type), i & he.Host && o === a); | |
return null !== u ? ms(e, s, u, a) : cr | |
} | |
function al(n, e, t, r, i) { | |
const o = n.providerIndexes | |
, s = e.data | |
, a = 1048575 & o | |
, l = n.directiveStart | |
, u = o >> 20 | |
, h = i ? a + u : n.directiveEnd; | |
for (let f = r ? a : a + u; f < h; f++) { | |
const p = s[f]; | |
if (f < l && t === p || f >= l && p.type === t) | |
return f | |
} | |
if (i) { | |
const f = s[l]; | |
if (f && Qn(f) && f.type === t) | |
return l | |
} | |
return null | |
} | |
function ms(n, e, t, r) { | |
let i = n[t]; | |
const o = e.data; | |
if (function bA(n) { | |
return n instanceof fs | |
}(i)) { | |
const s = i; | |
s.resolving && function DM(n, e) { | |
const t = e ? `. Dependency path: ${e.join(" > ")} > ${n}` : ""; | |
throw new U(-200,`Circular dependency in DI detected for ${n}${t}`) | |
}(function Oe(n) { | |
return "function" == typeof n ? n.name || n.toString() : "object" == typeof n && null != n && "function" == typeof n.type ? n.type.name || n.type.toString() : ye(n) | |
}(o[t])); | |
const a = il(s.canSeeViewProviders); | |
s.resolving = !0; | |
const l = s.injectImpl ? Rn(s.injectImpl) : null; | |
vm(n, r, he.Default); | |
try { | |
i = n[t] = s.factory(void 0, o, n, r), | |
e.firstCreatePass && t >= r.directiveStart && function yA(n, e, t) { | |
const {ngOnChanges: r, ngOnInit: i, ngDoCheck: o} = e.type.prototype; | |
if (r) { | |
const s = lm(e); | |
(t.preOrderHooks || (t.preOrderHooks = [])).push(n, s), | |
(t.preOrderCheckHooks || (t.preOrderCheckHooks = [])).push(n, s) | |
} | |
i && (t.preOrderHooks || (t.preOrderHooks = [])).push(0 - n, i), | |
o && ((t.preOrderHooks || (t.preOrderHooks = [])).push(n, o), | |
(t.preOrderCheckHooks || (t.preOrderCheckHooks = [])).push(n, o)) | |
}(t, o[t], e) | |
} finally { | |
null !== l && Rn(l), | |
il(a), | |
s.resolving = !1, | |
Em() | |
} | |
} | |
return i | |
} | |
function Nm(n, e, t) { | |
return !!(t[e + (n >> 5)] & 1 << n) | |
} | |
function km(n, e) { | |
return !(n & he.Self || n & he.Host && e) | |
} | |
class ao { | |
constructor(e, t) { | |
this._tNode = e, | |
this._lView = t | |
} | |
get(e, t, r) { | |
return Pm(this._tNode, this._lView, e, r, t) | |
} | |
} | |
function xA() { | |
return new ao(St(),H()) | |
} | |
function sd(n) { | |
return Ou(n) ? () => { | |
const e = sd(ge(n)); | |
return e && e() | |
} | |
: Mi(n) | |
} | |
function Lm(n) { | |
const e = n[1] | |
, t = e.type; | |
return 2 === t ? e.declTNode : 1 === t ? n[6] : null | |
} | |
function lo(n) { | |
return function AA(n, e) { | |
if ("class" === e) | |
return n.classes; | |
if ("style" === e) | |
return n.styles; | |
const t = n.attrs; | |
if (t) { | |
const r = t.length; | |
let i = 0; | |
for (; i < r; ) { | |
const o = t[i]; | |
if (Dm(o)) | |
break; | |
if (0 === o) | |
i += 2; | |
else if ("number" == typeof o) | |
for (i++; i < r && "string" == typeof t[i]; ) | |
i++; | |
else { | |
if (o === e) | |
return t[i + 1]; | |
i += 2 | |
} | |
} | |
} | |
return null | |
}(St(), n) | |
} | |
const uo = "__parameters__"; | |
function fo(n, e, t) { | |
return Qr( () => { | |
const r = function ad(n) { | |
return function(...t) { | |
if (n) { | |
const r = n(...t); | |
for (const i in r) | |
this[i] = r[i] | |
} | |
} | |
}(e); | |
function i(...o) { | |
if (this instanceof i) | |
return r.apply(this, o), | |
this; | |
const s = new i(...o); | |
return a.annotation = s, | |
a; | |
function a(l, c, u) { | |
const d = l.hasOwnProperty(uo) ? l[uo] : Object.defineProperty(l, uo, { | |
value: [] | |
})[uo]; | |
for (; d.length <= u; ) | |
d.push(null); | |
return (d[u] = d[u] || []).push(s), | |
l | |
} | |
} | |
return t && (i.prototype = Object.create(t.prototype)), | |
i.prototype.ngMetadataName = n, | |
i.annotationCls = i, | |
i | |
} | |
) | |
} | |
class ee { | |
constructor(e, t) { | |
this._desc = e, | |
this.ngMetadataName = "InjectionToken", | |
this.\u0275prov = void 0, | |
"number" == typeof t ? this.__NG_ELEMENT_ID__ = t : void 0 !== t && (this.\u0275prov = se({ | |
token: this, | |
providedIn: t.providedIn || "root", | |
factory: t.factory | |
})) | |
} | |
get multi() { | |
return this | |
} | |
toString() { | |
return `InjectionToken ${this._desc}` | |
} | |
} | |
function Dn(n, e) { | |
void 0 === e && (e = n); | |
for (let t = 0; t < n.length; t++) { | |
let r = n[t]; | |
Array.isArray(r) ? (e === n && (e = n.slice(0, t)), | |
Dn(r, e)) : e !== n && e.push(r) | |
} | |
return e | |
} | |
function Ar(n, e) { | |
n.forEach(t => Array.isArray(t) ? Ar(t, e) : e(t)) | |
} | |
function Bm(n, e, t) { | |
e >= n.length ? n.push(t) : n.splice(e, 0, t) | |
} | |
function ll(n, e) { | |
return e >= n.length - 1 ? n.pop() : n.splice(e, 1)[0] | |
} | |
function vs(n, e) { | |
const t = []; | |
for (let r = 0; r < n; r++) | |
t.push(e); | |
return t | |
} | |
function Mn(n, e, t) { | |
let r = po(n, e); | |
return r >= 0 ? n[1 | r] = t : (r = ~r, | |
function NA(n, e, t, r) { | |
let i = n.length; | |
if (i == e) | |
n.push(t, r); | |
else if (1 === i) | |
n.push(r, n[0]), | |
n[0] = t; | |
else { | |
for (i--, | |
n.push(n[i - 1], n[i]); i > e; ) | |
n[i] = n[i - 2], | |
i--; | |
n[e] = t, | |
n[e + 1] = r | |
} | |
}(n, r, e, t)), | |
r | |
} | |
function cd(n, e) { | |
const t = po(n, e); | |
if (t >= 0) | |
return n[1 | t] | |
} | |
function po(n, e) { | |
return function Hm(n, e, t) { | |
let r = 0 | |
, i = n.length >> t; | |
for (; i !== r; ) { | |
const o = r + (i - r >> 1) | |
, s = n[o << t]; | |
if (e === s) | |
return o << t; | |
s > e ? i = o : r = o + 1 | |
} | |
return ~(i << t) | |
}(n, e, 1) | |
} | |
const bs = {} | |
, dd = "__NG_DI_FLAG__" | |
, ul = "ngTempTokenPath" | |
, zA = /\n/gm | |
, zm = "__source"; | |
let Cs; | |
function go(n) { | |
const e = Cs; | |
return Cs = n, | |
e | |
} | |
function WA(n, e=he.Default) { | |
if (void 0 === Cs) | |
throw new U(-203,!1); | |
return null === Cs ? tm(n, void 0, e) : Cs.get(n, e & he.Optional ? null : void 0, e) | |
} | |
function Q(n, e=he.Default) { | |
return (function OM() { | |
return ku | |
}() || WA)(ge(n), e) | |
} | |
function ot(n, e=he.Default) { | |
return "number" != typeof e && (e = 0 | (e.optional && 8) | (e.host && 1) | (e.self && 2) | (e.skipSelf && 4)), | |
Q(n, e) | |
} | |
function hd(n) { | |
const e = []; | |
for (let t = 0; t < n.length; t++) { | |
const r = ge(n[t]); | |
if (Array.isArray(r)) { | |
if (0 === r.length) | |
throw new U(900,!1); | |
let i, o = he.Default; | |
for (let s = 0; s < r.length; s++) { | |
const a = r[s] | |
, l = GA(a); | |
"number" == typeof l ? -1 === l ? i = a.token : o |= l : i = a | |
} | |
e.push(Q(i, o)) | |
} else | |
e.push(Q(r)) | |
} | |
return e | |
} | |
function Ts(n, e) { | |
return n[dd] = e, | |
n.prototype[dd] = e, | |
n | |
} | |
function GA(n) { | |
return n[dd] | |
} | |
const Es = Ts(fo("Optional"), 8) | |
, ws = Ts(fo("SkipSelf"), 4); | |
var pn = ( () => ((pn = pn || {})[pn.Important = 1] = "Important", | |
pn[pn.DashCase = 2] = "DashCase", | |
pn))(); | |
const _d = new Map; | |
let uI = 0; | |
const vd = "__ngContext__"; | |
function Gt(n, e) { | |
fn(e) ? (n[vd] = e[20], | |
function hI(n) { | |
_d.set(n[20], n) | |
}(e)) : n[vd] = e | |
} | |
function Cd(n, e) { | |
return undefined(n, e) | |
} | |
function Is(n) { | |
const e = n[3]; | |
return Kn(e) ? e[3] : e | |
} | |
function Td(n) { | |
return u_(n[13]) | |
} | |
function Ed(n) { | |
return u_(n[4]) | |
} | |
function u_(n) { | |
for (; null !== n && !Kn(n); ) | |
n = n[4]; | |
return n | |
} | |
function _o(n, e, t, r, i) { | |
if (null != r) { | |
let o, s = !1; | |
Kn(r) ? o = r : fn(r) && (s = !0, | |
r = r[0]); | |
const a = Dt(r); | |
0 === n && null !== t ? null == i ? m_(e, t, a) : Ai(e, t, a, i || null, !0) : 1 === n && null !== t ? Ai(e, t, a, i || null, !0) : 2 === n ? function xd(n, e, t) { | |
const r = fl(n, e); | |
r && function OI(n, e, t, r) { | |
n.removeChild(e, t, r) | |
}(n, r, e, t) | |
}(e, a, s) : 3 === n && e.destroyNode(a), | |
null != o && function LI(n, e, t, r, i) { | |
const o = t[7]; | |
o !== Dt(t) && _o(e, n, r, o, i); | |
for (let a = 10; a < t.length; a++) { | |
const l = t[a]; | |
Ss(l[1], l, n, e, r, o) | |
} | |
}(e, n, o, t, i) | |
} | |
} | |
function Dd(n, e, t) { | |
return n.createElement(e, t) | |
} | |
function h_(n, e) { | |
const t = n[9] | |
, r = t.indexOf(e) | |
, i = e[3]; | |
512 & e[2] && (e[2] &= -513, | |
qu(i, -1)), | |
t.splice(r, 1) | |
} | |
function Md(n, e) { | |
if (n.length <= 10) | |
return; | |
const t = 10 + e | |
, r = n[t]; | |
if (r) { | |
const i = r[17]; | |
null !== i && i !== n && h_(i, r), | |
e > 0 && (n[t - 1][4] = r[4]); | |
const o = ll(n, 10 + e); | |
!function MI(n, e) { | |
Ss(n, e, e[11], 2, null, null), | |
e[0] = null, | |
e[6] = null | |
}(r[1], r); | |
const s = o[19]; | |
null !== s && s.detachView(o[1]), | |
r[3] = null, | |
r[4] = null, | |
r[2] &= -65 | |
} | |
return r | |
} | |
function f_(n, e) { | |
if (!(128 & e[2])) { | |
const t = e[11]; | |
t.destroyNode && Ss(n, e, t, 3, null, null), | |
function SI(n) { | |
let e = n[13]; | |
if (!e) | |
return Ad(n[1], n); | |
for (; e; ) { | |
let t = null; | |
if (fn(e)) | |
t = e[13]; | |
else { | |
const r = e[10]; | |
r && (t = r) | |
} | |
if (!t) { | |
for (; e && !e[4] && e !== n; ) | |
fn(e) && Ad(e[1], e), | |
e = e[3]; | |
null === e && (e = n), | |
fn(e) && Ad(e[1], e), | |
t = e && e[4] | |
} | |
e = t | |
} | |
}(e) | |
} | |
} | |
function Ad(n, e) { | |
if (!(128 & e[2])) { | |
e[2] &= -65, | |
e[2] |= 128, | |
function PI(n, e) { | |
let t; | |
if (null != n && null != (t = n.destroyHooks)) | |
for (let r = 0; r < t.length; r += 2) { | |
const i = e[t[r]]; | |
if (!(i instanceof fs)) { | |
const o = t[r + 1]; | |
if (Array.isArray(o)) | |
for (let s = 0; s < o.length; s += 2) { | |
const a = i[o[s]] | |
, l = o[s + 1]; | |
try { | |
l.call(a) | |
} finally {} | |
} | |
else | |
try { | |
o.call(i) | |
} finally {} | |
} | |
} | |
}(n, e), | |
function FI(n, e) { | |
const t = n.cleanup | |
, r = e[7]; | |
let i = -1; | |
if (null !== t) | |
for (let o = 0; o < t.length - 1; o += 2) | |
if ("string" == typeof t[o]) { | |
const s = t[o + 1] | |
, a = "function" == typeof s ? s(e) : Dt(e[s]) | |
, l = r[i = t[o + 2]] | |
, c = t[o + 3]; | |
"boolean" == typeof c ? a.removeEventListener(t[o], l, c) : c >= 0 ? r[i = c]() : r[i = -c].unsubscribe(), | |
o += 2 | |
} else { | |
const s = r[i = t[o + 1]]; | |
t[o].call(s) | |
} | |
if (null !== r) { | |
for (let o = i + 1; o < r.length; o++) | |
(0, | |
r[o])(); | |
e[7] = null | |
} | |
}(n, e), | |
1 === e[1].type && e[11].destroy(); | |
const t = e[17]; | |
if (null !== t && Kn(e[3])) { | |
t !== e[3] && h_(t, e); | |
const r = e[19]; | |
null !== r && r.detachView(n) | |
} | |
!function fI(n) { | |
_d.delete(n[20]) | |
}(e) | |
} | |
} | |
function p_(n, e, t) { | |
return function g_(n, e, t) { | |
let r = e; | |
for (; null !== r && 40 & r.type; ) | |
r = (e = r).parent; | |
if (null === r) | |
return t[0]; | |
if (2 & r.flags) { | |
const i = n.data[r.directiveStart].encapsulation; | |
if (i === Gn.None || i === Gn.Emulated) | |
return null | |
} | |
return En(r, t) | |
}(n, e.parent, t) | |
} | |
function Ai(n, e, t, r, i) { | |
n.insertBefore(e, t, r, i) | |
} | |
function m_(n, e, t) { | |
n.appendChild(e, t) | |
} | |
function __(n, e, t, r, i) { | |
null !== r ? Ai(n, e, t, r, i) : m_(n, e, t) | |
} | |
function fl(n, e) { | |
return n.parentNode(e) | |
} | |
function y_(n, e, t) { | |
return b_(n, e, t) | |
} | |
let Od, b_ = function v_(n, e, t) { | |
return 40 & n.type ? En(n, t) : null | |
}; | |
function pl(n, e, t, r) { | |
const i = p_(n, r, e) | |
, o = e[11] | |
, a = y_(r.parent || e[6], r, e); | |
if (null != i) | |
if (Array.isArray(t)) | |
for (let l = 0; l < t.length; l++) | |
__(o, i, t[l], a, !1); | |
else | |
__(o, i, t, a, !1) | |
} | |
function gl(n, e) { | |
if (null !== e) { | |
const t = e.type; | |
if (3 & t) | |
return En(e, n); | |
if (4 & t) | |
return Sd(-1, n[e.index]); | |
if (8 & t) { | |
const r = e.child; | |
if (null !== r) | |
return gl(n, r); | |
{ | |
const i = n[e.index]; | |
return Kn(i) ? Sd(-1, i) : Dt(i) | |
} | |
} | |
if (32 & t) | |
return Cd(e, n)() || Dt(n[e.index]); | |
{ | |
const r = T_(n, e); | |
return null !== r ? Array.isArray(r) ? r[0] : gl(Is(n[16]), r) : gl(n, e.next) | |
} | |
} | |
return null | |
} | |
function T_(n, e) { | |
return null !== e ? n[16][6].projection[e.projection] : null | |
} | |
function Sd(n, e) { | |
const t = 10 + n + 1; | |
if (t < e.length) { | |
const r = e[t] | |
, i = r[1].firstChild; | |
if (null !== i) | |
return gl(r, i) | |
} | |
return e[7] | |
} | |
function Rd(n, e, t, r, i, o, s) { | |
for (; null != t; ) { | |
const a = r[t.index] | |
, l = t.type; | |
if (s && 0 === e && (a && Gt(Dt(a), r), | |
t.flags |= 4), | |
64 != (64 & t.flags)) | |
if (8 & l) | |
Rd(n, e, t.child, r, i, o, !1), | |
_o(e, n, i, a, o); | |
else if (32 & l) { | |
const c = Cd(t, r); | |
let u; | |
for (; u = c(); ) | |
_o(e, n, i, u, o); | |
_o(e, n, i, a, o) | |
} else | |
16 & l ? E_(n, e, r, t, i, o) : _o(e, n, i, a, o); | |
t = s ? t.projectionNext : t.next | |
} | |
} | |
function Ss(n, e, t, r, i, o) { | |
Rd(t, r, n.firstChild, e, i, o, !1) | |
} | |
function E_(n, e, t, r, i, o) { | |
const s = t[16] | |
, l = s[6].projection[r.projection]; | |
if (Array.isArray(l)) | |
for (let c = 0; c < l.length; c++) | |
_o(e, n, i, l[c], o); | |
else | |
Rd(n, e, l, s[3], i, o, !0) | |
} | |
function w_(n, e, t) { | |
n.setAttribute(e, "style", t) | |
} | |
function Fd(n, e, t) { | |
"" === t ? n.removeAttribute(e, "class") : n.setAttribute(e, "class", t) | |
} | |
class S_ { | |
constructor(e) { | |
this.changingThisBreaksApplicationSecurity = e | |
} | |
toString() { | |
return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)` | |
} | |
} | |
function Jr(n) { | |
return n instanceof S_ ? n.changingThisBreaksApplicationSecurity : n | |
} | |
const XI = /^(?:(?:https?|mailto|data|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi; | |
var Mt = ( () => ((Mt = Mt || {})[Mt.NONE = 0] = "NONE", | |
Mt[Mt.HTML = 1] = "HTML", | |
Mt[Mt.STYLE = 2] = "STYLE", | |
Mt[Mt.SCRIPT = 3] = "SCRIPT", | |
Mt[Mt.URL = 4] = "URL", | |
Mt[Mt.RESOURCE_URL = 5] = "RESOURCE_URL", | |
Mt))(); | |
function ei(n) { | |
const e = function Fs() { | |
const n = H(); | |
return n && n[12] | |
}(); | |
return e ? e.sanitize(Mt.URL, n) || "" : function xs(n, e) { | |
const t = function KI(n) { | |
return n instanceof S_ && n.getTypeName() || null | |
}(n); | |
if (null != t && t !== e) { | |
if ("ResourceURL" === t && "URL" === e) | |
return !0; | |
throw new Error(`Required a safe ${e}, got a ${t} (see https://g.co/ng/security#xss)`) | |
} | |
return t === e | |
}(n, "URL") ? Jr(n) : function kd(n) { | |
return (n = String(n)).match(XI) ? n : "unsafe:" + n | |
}(ye(n)) | |
} | |
const Ud = new ee("ENVIRONMENT_INITIALIZER") | |
, L_ = new ee("INJECTOR",-1) | |
, V_ = new ee("INJECTOR_DEF_TYPES"); | |
class B_ { | |
get(e, t=bs) { | |
if (t === bs) { | |
const r = new Error(`NullInjectorError: No provider for ${Ge(e)}!`); | |
throw r.name = "NullInjectorError", | |
r | |
} | |
return t | |
} | |
} | |
function hS(...n) { | |
return { | |
\u0275providers: U_(0, n) | |
} | |
} | |
function U_(n, ...e) { | |
const t = [] | |
, r = new Set; | |
let i; | |
return Ar(e, o => { | |
const s = o; | |
jd(s, t, [], r) && (i || (i = []), | |
i.push(s)) | |
} | |
), | |
void 0 !== i && j_(i, t), | |
t | |
} | |
function j_(n, e) { | |
for (let t = 0; t < n.length; t++) { | |
const {providers: i} = n[t]; | |
Ar(i, o => { | |
e.push(o) | |
} | |
) | |
} | |
} | |
function jd(n, e, t, r) { | |
if (!(n = ge(n))) | |
return !1; | |
let i = null | |
, o = Jg(n); | |
const s = !o && ze(n); | |
if (o || s) { | |
if (s && !s.standalone) | |
return !1; | |
i = n | |
} else { | |
const l = n.ngModule; | |
if (o = Jg(l), | |
!o) | |
return !1; | |
i = l | |
} | |
const a = r.has(i); | |
if (s) { | |
if (a) | |
return !1; | |
if (r.add(i), | |
s.dependencies) { | |
const l = "function" == typeof s.dependencies ? s.dependencies() : s.dependencies; | |
for (const c of l) | |
jd(c, e, t, r) | |
} | |
} else { | |
if (!o) | |
return !1; | |
{ | |
if (null != o.imports && !a) { | |
let c; | |
r.add(i); | |
try { | |
Ar(o.imports, u => { | |
jd(u, e, t, r) && (c || (c = []), | |
c.push(u)) | |
} | |
) | |
} finally {} | |
void 0 !== c && j_(c, e) | |
} | |
if (!a) { | |
const c = Mi(i) || ( () => new i); | |
e.push({ | |
provide: i, | |
useFactory: c, | |
deps: Ne | |
}, { | |
provide: V_, | |
useValue: i, | |
multi: !0 | |
}, { | |
provide: Ud, | |
useValue: () => Q(i), | |
multi: !0 | |
}) | |
} | |
const l = o.providers; | |
null == l || a || Ar(l, u => { | |
e.push(u) | |
} | |
) | |
} | |
} | |
return i !== n && void 0 !== n.providers | |
} | |
const fS = We({ | |
provide: String, | |
useValue: We | |
}); | |
function Hd(n) { | |
return null !== n && "object" == typeof n && fS in n | |
} | |
function Si(n) { | |
return "function" == typeof n | |
} | |
const zd = new ee("Set Injector scope.") | |
, vl = {} | |
, gS = {}; | |
let $d; | |
function bl() { | |
return void 0 === $d && ($d = new B_), | |
$d | |
} | |
class ti { | |
} | |
class $_ extends ti { | |
constructor(e, t, r, i) { | |
super(), | |
this.parent = t, | |
this.source = r, | |
this.scopes = i, | |
this.records = new Map, | |
this._ngOnDestroyHooks = new Set, | |
this._onDestroyHooks = [], | |
this._destroyed = !1, | |
Gd(e, s => this.processProvider(s)), | |
this.records.set(L_, yo(void 0, this)), | |
i.has("environment") && this.records.set(ti, yo(void 0, this)); | |
const o = this.records.get(zd); | |
null != o && "string" == typeof o.value && this.scopes.add(o.value), | |
this.injectorDefTypes = new Set(this.get(V_.multi, Ne, he.Self)) | |
} | |
get destroyed() { | |
return this._destroyed | |
} | |
destroy() { | |
this.assertNotDestroyed(), | |
this._destroyed = !0; | |
try { | |
for (const e of this._ngOnDestroyHooks) | |
e.ngOnDestroy(); | |
for (const e of this._onDestroyHooks) | |
e() | |
} finally { | |
this.records.clear(), | |
this._ngOnDestroyHooks.clear(), | |
this.injectorDefTypes.clear(), | |
this._onDestroyHooks.length = 0 | |
} | |
} | |
onDestroy(e) { | |
this._onDestroyHooks.push(e) | |
} | |
runInContext(e) { | |
this.assertNotDestroyed(); | |
const t = go(this) | |
, r = Rn(void 0); | |
try { | |
return e() | |
} finally { | |
go(t), | |
Rn(r) | |
} | |
} | |
get(e, t=bs, r=he.Default) { | |
this.assertNotDestroyed(); | |
const i = go(this) | |
, o = Rn(void 0); | |
try { | |
if (!(r & he.SkipSelf)) { | |
let a = this.records.get(e); | |
if (void 0 === a) { | |
const l = function bS(n) { | |
return "function" == typeof n || "object" == typeof n && n instanceof ee | |
}(e) && za(e); | |
a = l && this.injectableDefInScope(l) ? yo(Wd(e), vl) : null, | |
this.records.set(e, a) | |
} | |
if (null != a) | |
return this.hydrate(e, a) | |
} | |
return (r & he.Self ? bl() : this.parent).get(e, t = r & he.Optional && t === bs ? null : t) | |
} catch (s) { | |
if ("NullInjectorError" === s.name) { | |
if ((s[ul] = s[ul] || []).unshift(Ge(e)), | |
i) | |
throw s; | |
return function qA(n, e, t, r) { | |
const i = n[ul]; | |
throw e[zm] && i.unshift(e[zm]), | |
n.message = function KA(n, e, t, r=null) { | |
n = n && "\n" === n.charAt(0) && "\u0275" == n.charAt(1) ? n.slice(2) : n; | |
let i = Ge(e); | |
if (Array.isArray(e)) | |
i = e.map(Ge).join(" -> "); | |
else if ("object" == typeof e) { | |
let o = []; | |
for (let s in e) | |
if (e.hasOwnProperty(s)) { | |
let a = e[s]; | |
o.push(s + ":" + ("string" == typeof a ? JSON.stringify(a) : Ge(a))) | |
} | |
i = `{${o.join(", ")}}` | |
} | |
return `${t}${r ? "(" + r + ")" : ""}[${i}]: ${n.replace(zA, "\n ")}` | |
}("\n" + n.message, i, t, r), | |
n.ngTokenPath = i, | |
n[ul] = null, | |
n | |
}(s, e, "R3InjectorError", this.source) | |
} | |
throw s | |
} finally { | |
Rn(o), | |
go(i) | |
} | |
} | |
resolveInjectorInitializers() { | |
const e = go(this) | |
, t = Rn(void 0); | |
try { | |
const r = this.get(Ud.multi, Ne, he.Self); | |
for (const i of r) | |
i() | |
} finally { | |
go(e), | |
Rn(t) | |
} | |
} | |
toString() { | |
const e = [] | |
, t = this.records; | |
for (const r of t.keys()) | |
e.push(Ge(r)); | |
return `R3Injector[${e.join(", ")}]` | |
} | |
assertNotDestroyed() { | |
if (this._destroyed) | |
throw new U(205,!1) | |
} | |
processProvider(e) { | |
let t = Si(e = ge(e)) ? e : ge(e && e.provide); | |
const r = function _S(n) { | |
return Hd(n) ? yo(void 0, n.useValue) : yo(W_(n), vl) | |
}(e); | |
if (Si(e) || !0 !== e.multi) | |
this.records.get(t); | |
else { | |
let i = this.records.get(t); | |
i || (i = yo(void 0, vl, !0), | |
i.factory = () => hd(i.multi), | |
this.records.set(t, i)), | |
t = e, | |
i.multi.push(e) | |
} | |
this.records.set(t, r) | |
} | |
hydrate(e, t) { | |
return t.value === vl && (t.value = gS, | |
t.value = t.factory()), | |
"object" == typeof t.value && t.value && function vS(n) { | |
return null !== n && "object" == typeof n && "function" == typeof n.ngOnDestroy | |
}(t.value) && this._ngOnDestroyHooks.add(t.value), | |
t.value | |
} | |
injectableDefInScope(e) { | |
if (!e.providedIn) | |
return !1; | |
const t = ge(e.providedIn); | |
return "string" == typeof t ? "any" === t || this.scopes.has(t) : this.injectorDefTypes.has(t) | |
} | |
} | |
function Wd(n) { | |
const e = za(n) | |
, t = null !== e ? e.factory : Mi(n); | |
if (null !== t) | |
return t; | |
if (n instanceof ee) | |
throw new U(204,!1); | |
if (n instanceof Function) | |
return function mS(n) { | |
const e = n.length; | |
if (e > 0) | |
throw vs(e, "?"), | |
new U(204,!1); | |
const t = function RM(n) { | |
const e = n && (n[$a] || n[em]); | |
if (e) { | |
const t = function FM(n) { | |
if (n.hasOwnProperty("name")) | |
return n.name; | |
const e = ("" + n).match(/^function\s*([^\s(]+)/); | |
return null === e ? "" : e[1] | |
}(n); | |
return console.warn(`DEPRECATED: DI is instantiating a token "${t}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${t}" class.`), | |
e | |
} | |
return null | |
}(n); | |
return null !== t ? () => t.factory(n) : () => new n | |
}(n); | |
throw new U(204,!1) | |
} | |
function W_(n, e, t) { | |
let r; | |
if (Si(n)) { | |
const i = ge(n); | |
return Mi(i) || Wd(i) | |
} | |
if (Hd(n)) | |
r = () => ge(n.useValue); | |
else if (function z_(n) { | |
return !(!n || !n.useFactory) | |
}(n)) | |
r = () => n.useFactory(...hd(n.deps || [])); | |
else if (function H_(n) { | |
return !(!n || !n.useExisting) | |
}(n)) | |
r = () => Q(ge(n.useExisting)); | |
else { | |
const i = ge(n && (n.useClass || n.provide)); | |
if (!function yS(n) { | |
return !!n.deps | |
}(n)) | |
return Mi(i) || Wd(i); | |
r = () => new i(...hd(n.deps)) | |
} | |
return r | |
} | |
function yo(n, e, t=!1) { | |
return { | |
factory: n, | |
value: e, | |
multi: t ? [] : void 0 | |
} | |
} | |
function CS(n) { | |
return !!n.\u0275providers | |
} | |
function Gd(n, e) { | |
for (const t of n) | |
Array.isArray(t) ? Gd(t, e) : CS(t) ? Gd(t.\u0275providers, e) : e(t) | |
} | |
class G_ { | |
} | |
class wS { | |
resolveComponentFactory(e) { | |
throw function ES(n) { | |
const e = Error(`No component factory found for ${Ge(n)}. Did you add it to @NgModule.entryComponents?`); | |
return e.ngComponent = n, | |
e | |
}(e) | |
} | |
} | |
let Ps = ( () => { | |
class n { | |
} | |
return n.NULL = new wS, | |
n | |
} | |
)(); | |
function DS() { | |
return vo(St(), H()) | |
} | |
function vo(n, e) { | |
return new Vt(En(n, e)) | |
} | |
let Vt = ( () => { | |
class n { | |
constructor(t) { | |
this.nativeElement = t | |
} | |
} | |
return n.__NG_ELEMENT_ID__ = DS, | |
n | |
} | |
)(); | |
function MS(n) { | |
return n instanceof Vt ? n.nativeElement : n | |
} | |
class Os { | |
} | |
let Sr = ( () => { | |
class n { | |
} | |
return n.__NG_ELEMENT_ID__ = () => function AS() { | |
const n = H() | |
, t = wn(St().index, n); | |
return (fn(t) ? t : n)[11] | |
}(), | |
n | |
} | |
)() | |
, IS = ( () => { | |
class n { | |
} | |
return n.\u0275prov = se({ | |
token: n, | |
providedIn: "root", | |
factory: () => null | |
}), | |
n | |
} | |
)(); | |
class xi { | |
constructor(e) { | |
this.full = e, | |
this.major = e.split(".")[0], | |
this.minor = e.split(".")[1], | |
this.patch = e.split(".").slice(2).join(".") | |
} | |
} | |
const SS = new xi("14.3.0") | |
, qd = {}; | |
function Qd(n) { | |
return n.ngOriginalError | |
} | |
class bo { | |
constructor() { | |
this._console = console | |
} | |
handleError(e) { | |
const t = this._findOriginalError(e); | |
this._console.error("ERROR", e), | |
t && this._console.error("ORIGINAL ERROR", t) | |
} | |
_findOriginalError(e) { | |
let t = e && Qd(e); | |
for (; t && Qd(t); ) | |
t = Qd(t); | |
return t || null | |
} | |
} | |
function K_(n) { | |
return n.ownerDocument.defaultView | |
} | |
function Q_(n) { | |
return n.ownerDocument | |
} | |
function xr(n) { | |
return n instanceof Function ? n() : n | |
} | |
function Z_(n, e, t) { | |
let r = n.length; | |
for (; ; ) { | |
const i = n.indexOf(e, t); | |
if (-1 === i) | |
return i; | |
if (0 === i || n.charCodeAt(i - 1) <= 32) { | |
const o = e.length; | |
if (i + o === r || n.charCodeAt(i + o) <= 32) | |
return i | |
} | |
t = i + 1 | |
} | |
} | |
const X_ = "ng-template"; | |
function VS(n, e, t) { | |
let r = 0; | |
for (; r < n.length; ) { | |
let i = n[r++]; | |
if (t && "class" === i) { | |
if (i = n[r], | |
-1 !== Z_(i.toLowerCase(), e, 0)) | |
return !0 | |
} else if (1 === i) { | |
for (; r < n.length && "string" == typeof (i = n[r++]); ) | |
if (i.toLowerCase() === e) | |
return !0; | |
return !1 | |
} | |
} | |
return !1 | |
} | |
function J_(n) { | |
return 4 === n.type && n.value !== X_ | |
} | |
function BS(n, e, t) { | |
return e === (4 !== n.type || t ? n.value : X_) | |
} | |
function US(n, e, t) { | |
let r = 4; | |
const i = n.attrs || [] | |
, o = function zS(n) { | |
for (let e = 0; e < n.length; e++) | |
if (Dm(n[e])) | |
return e; | |
return n.length | |
}(i); | |
let s = !1; | |
for (let a = 0; a < e.length; a++) { | |
const l = e[a]; | |
if ("number" != typeof l) { | |
if (!s) | |
if (4 & r) { | |
if (r = 2 | 1 & r, | |
"" !== l && !BS(n, l, t) || "" === l && 1 === e.length) { | |
if (Yn(r)) | |
return !1; | |
s = !0 | |
} | |
} else { | |
const c = 8 & r ? l : e[++a]; | |
if (8 & r && null !== n.attrs) { | |
if (!VS(n.attrs, c, t)) { | |
if (Yn(r)) | |
return !1; | |
s = !0 | |
} | |
continue | |
} | |
const d = jS(8 & r ? "class" : l, i, J_(n), t); | |
if (-1 === d) { | |
if (Yn(r)) | |
return !1; | |
s = !0; | |
continue | |
} | |
if ("" !== c) { | |
let h; | |
h = d > o ? "" : i[d + 1].toLowerCase(); | |
const f = 8 & r ? h : null; | |
if (f && -1 !== Z_(f, c, 0) || 2 & r && c !== h) { | |
if (Yn(r)) | |
return !1; | |
s = !0 | |
} | |
} | |
} | |
} else { | |
if (!s && !Yn(r) && !Yn(l)) | |
return !1; | |
if (s && Yn(l)) | |
continue; | |
s = !1, | |
r = l | 1 & r | |
} | |
} | |
return Yn(r) || s | |
} | |
function Yn(n) { | |
return 0 == (1 & n) | |
} | |
function jS(n, e, t, r) { | |
if (null === e) | |
return -1; | |
let i = 0; | |
if (r || !t) { | |
let o = !1; | |
for (; i < e.length; ) { | |
const s = e[i]; | |
if (s === n) | |
return i; | |
if (3 === s || 6 === s) | |
o = !0; | |
else { | |
if (1 === s || 2 === s) { | |
let a = e[++i]; | |
for (; "string" == typeof a; ) | |
a = e[++i]; | |
continue | |
} | |
if (4 === s) | |
break; | |
if (0 === s) { | |
i += 4; | |
continue | |
} | |
} | |
i += o ? 1 : 2 | |
} | |
return -1 | |
} | |
return function $S(n, e) { | |
let t = n.indexOf(4); | |
if (t > -1) | |
for (t++; t < n.length; ) { | |
const r = n[t]; | |
if ("number" == typeof r) | |
return -1; | |
if (r === e) | |
return t; | |
t++ | |
} | |
return -1 | |
}(e, n) | |
} | |
function ey(n, e, t=!1) { | |
for (let r = 0; r < e.length; r++) | |
if (US(n, e[r], t)) | |
return !0; | |
return !1 | |
} | |
function WS(n, e) { | |
e: for (let t = 0; t < e.length; t++) { | |
const r = e[t]; | |
if (n.length === r.length) { | |
for (let i = 0; i < n.length; i++) | |
if (n[i] !== r[i]) | |
continue e; | |
return !0 | |
} | |
} | |
return !1 | |
} | |
function ty(n, e) { | |
return n ? ":not(" + e.trim() + ")" : e | |
} | |
function GS(n) { | |
let e = n[0] | |
, t = 1 | |
, r = 2 | |
, i = "" | |
, o = !1; | |
for (; t < n.length; ) { | |
let s = n[t]; | |
if ("string" == typeof s) | |
if (2 & r) { | |
const a = n[++t]; | |
i += "[" + s + (a.length > 0 ? '="' + a + '"' : "") + "]" | |
} else | |
8 & r ? i += "." + s : 4 & r && (i += " " + s); | |
else | |
"" !== i && !Yn(s) && (e += ty(o, i), | |
i = ""), | |
r = s, | |
o = o || !Yn(r); | |
t++ | |
} | |
return "" !== i && (e += ty(o, i)), | |
e | |
} | |
const ve = {}; | |
function Ee(n) { | |
ny(Pe(), H(), en() + n, !1) | |
} | |
function ny(n, e, t, r) { | |
if (!r) | |
if (3 == (3 & e[2])) { | |
const o = n.preOrderCheckHooks; | |
null !== o && el(e, o, t) | |
} else { | |
const o = n.preOrderHooks; | |
null !== o && tl(e, o, 0, t) | |
} | |
Zr(t) | |
} | |
function sy(n, e=null, t=null, r) { | |
const i = ay(n, e, t, r); | |
return i.resolveInjectorInitializers(), | |
i | |
} | |
function ay(n, e=null, t=null, r, i=new Set) { | |
const o = [t || Ne, hS(n)]; | |
return r = r || ("object" == typeof n ? void 0 : Ge(n)), | |
new $_(o,e || bl(),r || null,i) | |
} | |
let On = ( () => { | |
class n { | |
static create(t, r) { | |
var i; | |
if (Array.isArray(t)) | |
return sy({ | |
name: "" | |
}, r, t, ""); | |
{ | |
const o = null !== (i = t.name) && void 0 !== i ? i : ""; | |
return sy({ | |
name: o | |
}, t.parent, t.providers, o) | |
} | |
} | |
} | |
return n.THROW_IF_NOT_FOUND = bs, | |
n.NULL = new B_, | |
n.\u0275prov = se({ | |
token: n, | |
providedIn: "any", | |
factory: () => Q(L_) | |
}), | |
n.__NG_ELEMENT_ID__ = -1, | |
n | |
} | |
)(); | |
function B(n, e=he.Default) { | |
const t = H(); | |
return null === t ? Q(n, e) : Pm(St(), t, ge(n), e) | |
} | |
function eh() { | |
throw new Error("invalid") | |
} | |
function Tl(n, e) { | |
return n << 17 | e << 2 | |
} | |
function Zn(n) { | |
return n >> 17 & 32767 | |
} | |
function th(n) { | |
return 2 | n | |
} | |
function Rr(n) { | |
return (131068 & n) >> 2 | |
} | |
function nh(n, e) { | |
return -131069 & n | e << 2 | |
} | |
function rh(n) { | |
return 1 | n | |
} | |
function wy(n, e) { | |
const t = n.contentQueries; | |
if (null !== t) | |
for (let r = 0; r < t.length; r += 2) { | |
const i = t[r] | |
, o = t[r + 1]; | |
if (-1 !== o) { | |
const s = n.data[o]; | |
Xu(i), | |
s.contentQueries(2, e[o], o) | |
} | |
} | |
} | |
function Dl(n, e, t, r, i, o, s, a, l, c, u) { | |
const d = e.blueprint.slice(); | |
return d[0] = i, | |
d[2] = 76 | r, | |
(null !== u || n && 1024 & n[2]) && (d[2] |= 1024), | |
dm(d), | |
d[3] = d[15] = n, | |
d[8] = t, | |
d[10] = s || n && n[10], | |
d[11] = a || n && n[11], | |
d[12] = l || n && n[12] || null, | |
d[9] = c || n && n[9] || null, | |
d[6] = o, | |
d[20] = function dI() { | |
return uI++ | |
}(), | |
d[21] = u, | |
d[16] = 2 == e.type ? n[16] : d, | |
d | |
} | |
function Eo(n, e, t, r, i) { | |
let o = n.data[e]; | |
if (null === o) | |
o = function dh(n, e, t, r, i) { | |
const o = pm() | |
, s = Ku() | |
, l = n.data[e] = function Ix(n, e, t, r, i, o) { | |
return { | |
type: t, | |
index: r, | |
insertBeforeIndex: null, | |
injectorIndex: e ? e.injectorIndex : -1, | |
directiveStart: -1, | |
directiveEnd: -1, | |
directiveStylingLast: -1, | |
propertyBindings: null, | |
flags: 0, | |
providerIndexes: 0, | |
value: i, | |
attrs: o, | |
mergedAttrs: null, | |
localNames: null, | |
initialInputs: void 0, | |
inputs: null, | |
outputs: null, | |
tViews: null, | |
next: null, | |
projectionNext: null, | |
child: null, | |
parent: e, | |
projection: null, | |
styles: null, | |
stylesWithoutHost: null, | |
residualStyles: void 0, | |
classes: null, | |
classesWithoutHost: null, | |
residualClasses: void 0, | |
classBindings: 0, | |
styleBindings: 0 | |
} | |
}(0, s ? o : o && o.parent, t, e, r, i); | |
return null === n.firstChild && (n.firstChild = l), | |
null !== o && (s ? null == o.child && null !== l.parent && (o.child = l) : null === o.next && (o.next = l)), | |
l | |
}(n, e, t, r, i), | |
function aA() { | |
return me.lFrame.inI18n | |
}() && (o.flags |= 64); | |
else if (64 & o.type) { | |
o.type = t, | |
o.value = r, | |
o.attrs = i; | |
const s = function hs() { | |
const n = me.lFrame | |
, e = n.currentTNode; | |
return n.isParent ? e : e.parent | |
}(); | |
o.injectorIndex = null === s ? -1 : s.injectorIndex | |
} | |
return lr(o, !0), | |
o | |
} | |
function wo(n, e, t, r) { | |
if (0 === t) | |
return -1; | |
const i = e.length; | |
for (let o = 0; o < t; o++) | |
e.push(r), | |
n.blueprint.push(r), | |
n.data.push(null); | |
return i | |
} | |
function hh(n, e, t) { | |
Ju(e); | |
try { | |
const r = n.viewQuery; | |
null !== r && bh(1, r, t); | |
const i = n.template; | |
null !== i && Dy(n, e, i, 1, t), | |
n.firstCreatePass && (n.firstCreatePass = !1), | |
n.staticContentQueries && wy(n, e), | |
n.staticViewQueries && bh(2, n.viewQuery, t); | |
const o = n.components; | |
null !== o && function Dx(n, e) { | |
for (let t = 0; t < e.length; t++) | |
$x(n, e[t]) | |
}(e, o) | |
} catch (r) { | |
throw n.firstCreatePass && (n.incompleteFirstPass = !0, | |
n.firstCreatePass = !1), | |
r | |
} finally { | |
e[2] &= -5, | |
ed() | |
} | |
} | |
function Ml(n, e, t, r) { | |
const i = e[2]; | |
if (128 != (128 & i)) { | |
Ju(e); | |
try { | |
dm(e), | |
function mm(n) { | |
return me.lFrame.bindingIndex = n | |
}(n.bindingStartIndex), | |
null !== t && Dy(n, e, t, 2, r); | |
const s = 3 == (3 & i); | |
if (s) { | |
const c = n.preOrderCheckHooks; | |
null !== c && el(e, c, null) | |
} else { | |
const c = n.preOrderHooks; | |
null !== c && tl(e, c, 0, null), | |
td(e, 0) | |
} | |
if (function Hx(n) { | |
for (let e = Td(n); null !== e; e = Ed(e)) { | |
if (!e[2]) | |
continue; | |
const t = e[9]; | |
for (let r = 0; r < t.length; r++) { | |
const i = t[r] | |
, o = i[3]; | |
0 == (512 & i[2]) && qu(o, 1), | |
i[2] |= 512 | |
} | |
} | |
}(e), | |
function jx(n) { | |
for (let e = Td(n); null !== e; e = Ed(e)) | |
for (let t = 10; t < e.length; t++) { | |
const r = e[t] | |
, i = r[1]; | |
Xa(r) && Ml(i, r, i.template, r[8]) | |
} | |
}(e), | |
null !== n.contentQueries && wy(n, e), | |
s) { | |
const c = n.contentCheckHooks; | |
null !== c && el(e, c) | |
} else { | |
const c = n.contentHooks; | |
null !== c && tl(e, c, 1), | |
td(e, 1) | |
} | |
!function Ex(n, e) { | |
const t = n.hostBindingOpCodes; | |
if (null !== t) | |
try { | |
for (let r = 0; r < t.length; r++) { | |
const i = t[r]; | |
if (i < 0) | |
Zr(~i); | |
else { | |
const o = i | |
, s = t[++r] | |
, a = t[++r]; | |
lA(s, o), | |
a(2, e[o]) | |
} | |
} | |
} finally { | |
Zr(-1) | |
} | |
}(n, e); | |
const a = n.components; | |
null !== a && function wx(n, e) { | |
for (let t = 0; t < e.length; t++) | |
zx(n, e[t]) | |
}(e, a); | |
const l = n.viewQuery; | |
if (null !== l && bh(2, l, r), | |
s) { | |
const c = n.viewCheckHooks; | |
null !== c && el(e, c) | |
} else { | |
const c = n.viewHooks; | |
null !== c && tl(e, c, 2), | |
td(e, 2) | |
} | |
!0 === n.firstUpdatePass && (n.firstUpdatePass = !1), | |
e[2] &= -41, | |
512 & e[2] && (e[2] &= -513, | |
qu(e[3], -1)) | |
} finally { | |
ed() | |
} | |
} | |
} | |
function Dy(n, e, t, r, i) { | |
const o = en() | |
, s = 2 & r; | |
try { | |
Zr(-1), | |
s && e.length > 22 && ny(n, e, 22, !1), | |
t(r, i) | |
} finally { | |
Zr(o) | |
} | |
} | |
function My(n, e, t) { | |
if (ju(e)) { | |
const i = e.directiveEnd; | |
for (let o = e.directiveStart; o < i; o++) { | |
const s = n.data[o]; | |
s.contentQueries && s.contentQueries(1, t[o], o) | |
} | |
} | |
} | |
function fh(n, e, t) { | |
!fm() || (function Px(n, e, t, r) { | |
const i = t.directiveStart | |
, o = t.directiveEnd; | |
n.firstCreatePass || gs(t, e), | |
Gt(r, e); | |
const s = t.initialInputs; | |
for (let a = i; a < o; a++) { | |
const l = n.data[a] | |
, c = Qn(l); | |
c && Vx(e, t, l); | |
const u = ms(e, n, a, t); | |
Gt(u, e), | |
null !== s && Bx(0, a - i, u, l, 0, s), | |
c && (wn(t.index, e)[8] = u) | |
} | |
}(n, e, t, En(t, e)), | |
128 == (128 & t.flags) && function Ox(n, e, t) { | |
const r = t.directiveStart | |
, i = t.directiveEnd | |
, o = t.index | |
, s = function cA() { | |
return me.lFrame.currentDirectiveIndex | |
}(); | |
try { | |
Zr(o); | |
for (let a = r; a < i; a++) { | |
const l = n.data[a] | |
, c = e[a]; | |
Yu(a), | |
(null !== l.hostBindings || 0 !== l.hostVars || null !== l.hostAttrs) && Py(l, c) | |
} | |
} finally { | |
Zr(-1), | |
Yu(s) | |
} | |
}(n, e, t)) | |
} | |
function ph(n, e, t=En) { | |
const r = e.localNames; | |
if (null !== r) { | |
let i = e.index + 1; | |
for (let o = 0; o < r.length; o += 2) { | |
const s = r[o + 1] | |
, a = -1 === s ? t(e, n) : n[s]; | |
n[i++] = a | |
} | |
} | |
} | |
function Ay(n) { | |
const e = n.tView; | |
return null === e || e.incompleteFirstPass ? n.tView = gh(1, null, n.template, n.decls, n.vars, n.directiveDefs, n.pipeDefs, n.viewQuery, n.schemas, n.consts) : e | |
} | |
function gh(n, e, t, r, i, o, s, a, l, c) { | |
const u = 22 + r | |
, d = u + i | |
, h = function Mx(n, e) { | |
const t = []; | |
for (let r = 0; r < e; r++) | |
t.push(r < n ? null : ve); | |
return t | |
}(u, d) | |
, f = "function" == typeof c ? c() : c; | |
return h[1] = { | |
type: n, | |
blueprint: h, | |
template: t, | |
queries: null, | |
viewQuery: a, | |
declTNode: e, | |
data: h.slice().fill(null, u), | |
bindingStartIndex: u, | |
expandoStartIndex: d, | |
hostBindingOpCodes: null, | |
firstCreatePass: !0, | |
firstUpdatePass: !0, | |
staticViewQueries: !1, | |
staticContentQueries: !1, | |
preOrderHooks: null, | |
preOrderCheckHooks: null, | |
contentHooks: null, | |
contentCheckHooks: null, | |
viewHooks: null, | |
viewCheckHooks: null, | |
destroyHooks: null, | |
cleanup: null, | |
contentQueries: null, | |
components: null, | |
directiveRegistry: "function" == typeof o ? o() : o, | |
pipeRegistry: "function" == typeof s ? s() : s, | |
firstChild: null, | |
schemas: l, | |
consts: f, | |
incompleteFirstPass: !1 | |
} | |
} | |
function Iy(n, e, t, r) { | |
const i = Vy(e); | |
null === t ? i.push(r) : (i.push(t), | |
n.firstCreatePass && By(n).push(r, i.length - 1)) | |
} | |
function Sy(n, e, t) { | |
for (let r in n) | |
if (n.hasOwnProperty(r)) { | |
const i = n[r]; | |
(t = null === t ? {} : t).hasOwnProperty(r) ? t[r].push(e, i) : t[r] = [e, i] | |
} | |
return t | |
} | |
function xy(n, e) { | |
const r = e.directiveEnd | |
, i = n.data | |
, o = e.attrs | |
, s = []; | |
let a = null | |
, l = null; | |
for (let c = e.directiveStart; c < r; c++) { | |
const u = i[c] | |
, d = u.inputs | |
, h = null === o || J_(e) ? null : Ux(d, o); | |
s.push(h), | |
a = Sy(d, c, a), | |
l = Sy(u.outputs, c, l) | |
} | |
null !== a && (a.hasOwnProperty("class") && (e.flags |= 16), | |
a.hasOwnProperty("style") && (e.flags |= 32)), | |
e.initialInputs = s, | |
e.inputs = a, | |
e.outputs = l | |
} | |
function Ry(n, e) { | |
const t = wn(e, n); | |
16 & t[2] || (t[2] |= 32) | |
} | |
function mh(n, e, t, r) { | |
let i = !1; | |
if (fm()) { | |
const o = function Nx(n, e, t) { | |
const r = n.directiveRegistry; | |
let i = null; | |
if (r) | |
for (let o = 0; o < r.length; o++) { | |
const s = r[o]; | |
ey(t, s.selectors, !1) && (i || (i = []), | |
sl(gs(t, e), n, s.type), | |
Qn(s) ? (Oy(n, t), | |
i.unshift(s)) : i.push(s)) | |
} | |
return i | |
}(n, e, t) | |
, s = null === r ? null : { | |
"": -1 | |
}; | |
if (null !== o) { | |
i = !0, | |
Ny(t, n.data.length, o.length); | |
for (let u = 0; u < o.length; u++) { | |
const d = o[u]; | |
d.providersResolver && d.providersResolver(d) | |
} | |
let a = !1 | |
, l = !1 | |
, c = wo(n, e, o.length, null); | |
for (let u = 0; u < o.length; u++) { | |
const d = o[u]; | |
t.mergedAttrs = rl(t.mergedAttrs, d.hostAttrs), | |
ky(n, t, e, c, d), | |
Lx(c, d, s), | |
null !== d.contentQueries && (t.flags |= 8), | |
(null !== d.hostBindings || null !== d.hostAttrs || 0 !== d.hostVars) && (t.flags |= 128); | |
const h = d.type.prototype; | |
!a && (h.ngOnChanges || h.ngOnInit || h.ngDoCheck) && ((n.preOrderHooks || (n.preOrderHooks = [])).push(t.index), | |
a = !0), | |
!l && (h.ngOnChanges || h.ngDoCheck) && ((n.preOrderCheckHooks || (n.preOrderCheckHooks = [])).push(t.index), | |
l = !0), | |
c++ | |
} | |
xy(n, t) | |
} | |
s && function kx(n, e, t) { | |
if (e) { | |
const r = n.localNames = []; | |
for (let i = 0; i < e.length; i += 2) { | |
const o = t[e[i + 1]]; | |
if (null == o) | |
throw new U(-301,!1); | |
r.push(e[i], o) | |
} | |
} | |
}(t, r, s) | |
} | |
return t.mergedAttrs = rl(t.mergedAttrs, t.attrs), | |
i | |
} | |
function Fy(n, e, t, r, i, o) { | |
const s = o.hostBindings; | |
if (s) { | |
let a = n.hostBindingOpCodes; | |
null === a && (a = n.hostBindingOpCodes = []); | |
const l = ~e.index; | |
(function Fx(n) { | |
let e = n.length; | |
for (; e > 0; ) { | |
const t = n[--e]; | |
if ("number" == typeof t && t < 0) | |
return t | |
} | |
return 0 | |
} | |
)(a) != l && a.push(l), | |
a.push(r, i, s) | |
} | |
} | |
function Py(n, e) { | |
null !== n.hostBindings && n.hostBindings(1, e) | |
} | |
function Oy(n, e) { | |
e.flags |= 2, | |
(n.components || (n.components = [])).push(e.index) | |
} | |
function Lx(n, e, t) { | |
if (t) { | |
if (e.exportAs) | |
for (let r = 0; r < e.exportAs.length; r++) | |
t[e.exportAs[r]] = n; | |
Qn(e) && (t[""] = n) | |
} | |
} | |
function Ny(n, e, t) { | |
n.flags |= 1, | |
n.directiveStart = e, | |
n.directiveEnd = e + t, | |
n.providerIndexes = e | |
} | |
function ky(n, e, t, r, i) { | |
n.data[r] = i; | |
const o = i.factory || (i.factory = Mi(i.type)) | |
, s = new fs(o,Qn(i),B); | |
n.blueprint[r] = s, | |
t[r] = s, | |
Fy(n, e, 0, r, wo(n, t, i.hostVars, ve), i) | |
} | |
function Vx(n, e, t) { | |
const r = En(e, n) | |
, i = Ay(t) | |
, o = n[10] | |
, s = Al(n, Dl(n, i, null, t.onPush ? 32 : 16, r, e, o, o.createRenderer(r, t), null, null, null)); | |
n[e.index] = s | |
} | |
function ur(n, e, t, r, i, o) { | |
const s = En(n, e); | |
!function _h(n, e, t, r, i, o, s) { | |
if (null == o) | |
n.removeAttribute(e, i, t); | |
else { | |
const a = null == s ? ye(o) : s(o, r || "", i); | |
n.setAttribute(e, i, a, t) | |
} | |
}(e[11], s, o, n.value, t, r, i) | |
} | |
function Bx(n, e, t, r, i, o) { | |
const s = o[e]; | |
if (null !== s) { | |
const a = r.setInput; | |
for (let l = 0; l < s.length; ) { | |
const c = s[l++] | |
, u = s[l++] | |
, d = s[l++]; | |
null !== a ? r.setInput(t, d, c, u) : t[u] = d | |
} | |
} | |
} | |
function Ux(n, e) { | |
let t = null | |
, r = 0; | |
for (; r < e.length; ) { | |
const i = e[r]; | |
if (0 !== i) | |
if (5 !== i) { | |
if ("number" == typeof i) | |
break; | |
n.hasOwnProperty(i) && (null === t && (t = []), | |
t.push(i, n[i], e[r + 1])), | |
r += 2 | |
} else | |
r += 2; | |
else | |
r += 4 | |
} | |
return t | |
} | |
function Ly(n, e, t, r) { | |
return new Array(n,!0,!1,e,null,0,r,t,null,null) | |
} | |
function zx(n, e) { | |
const t = wn(e, n); | |
if (Xa(t)) { | |
const r = t[1]; | |
48 & t[2] ? Ml(r, t, r.template, t[8]) : t[5] > 0 && yh(t) | |
} | |
} | |
function yh(n) { | |
for (let r = Td(n); null !== r; r = Ed(r)) | |
for (let i = 10; i < r.length; i++) { | |
const o = r[i]; | |
if (Xa(o)) | |
if (512 & o[2]) { | |
const s = o[1]; | |
Ml(s, o, s.template, o[8]) | |
} else | |
o[5] > 0 && yh(o) | |
} | |
const t = n[1].components; | |
if (null !== t) | |
for (let r = 0; r < t.length; r++) { | |
const i = wn(t[r], n); | |
Xa(i) && i[5] > 0 && yh(i) | |
} | |
} | |
function $x(n, e) { | |
const t = wn(e, n) | |
, r = t[1]; | |
(function Wx(n, e) { | |
for (let t = e.length; t < n.blueprint.length; t++) | |
e.push(n.blueprint[t]) | |
} | |
)(r, t), | |
hh(r, t, t[8]) | |
} | |
function Al(n, e) { | |
return n[13] ? n[14][4] = e : n[13] = e, | |
n[14] = e, | |
e | |
} | |
function vh(n) { | |
for (; n; ) { | |
n[2] |= 32; | |
const e = Is(n); | |
if (jM(n) && !e) | |
return n; | |
n = e | |
} | |
return null | |
} | |
function Il(n, e, t, r=!0) { | |
const i = e[10]; | |
i.begin && i.begin(); | |
try { | |
Ml(n, e, n.template, t) | |
} catch (s) { | |
throw r && jy(e, s), | |
s | |
} finally { | |
i.end && i.end() | |
} | |
} | |
function bh(n, e, t) { | |
Xu(0), | |
e(n, t) | |
} | |
function Vy(n) { | |
return n[7] || (n[7] = []) | |
} | |
function By(n) { | |
return n.cleanup || (n.cleanup = []) | |
} | |
function jy(n, e) { | |
const t = n[9] | |
, r = t ? t.get(bo, null) : null; | |
r && r.handleError(e) | |
} | |
function Ch(n, e, t, r, i) { | |
for (let o = 0; o < t.length; ) { | |
const s = t[o++] | |
, a = t[o++] | |
, l = e[s] | |
, c = n.data[s]; | |
null !== c.setInput ? c.setInput(l, i, r, a) : l[a] = i | |
} | |
} | |
function Sl(n, e, t) { | |
let r = t ? n.styles : null | |
, i = t ? n.classes : null | |
, o = 0; | |
if (null !== e) | |
for (let s = 0; s < e.length; s++) { | |
const a = e[s]; | |
"number" == typeof a ? o = a : 1 == o ? i = Pu(i, a) : 2 == o && (r = Pu(r, a + ": " + e[++s] + ";")) | |
} | |
t ? n.styles = r : n.stylesWithoutHost = r, | |
t ? n.classes = i : n.classesWithoutHost = i | |
} | |
function xl(n, e, t, r, i=!1) { | |
for (; null !== t; ) { | |
const o = e[t.index]; | |
if (null !== o && r.push(Dt(o)), | |
Kn(o)) | |
for (let a = 10; a < o.length; a++) { | |
const l = o[a] | |
, c = l[1].firstChild; | |
null !== c && xl(l[1], l, c, r) | |
} | |
const s = t.type; | |
if (8 & s) | |
xl(n, e, t.child, r); | |
else if (32 & s) { | |
const a = Cd(t, e); | |
let l; | |
for (; l = a(); ) | |
r.push(l) | |
} else if (16 & s) { | |
const a = T_(e, t); | |
if (Array.isArray(a)) | |
r.push(...a); | |
else { | |
const l = Is(e[16]); | |
xl(l[1], l, a, r, !0) | |
} | |
} | |
t = i ? t.projectionNext : t.next | |
} | |
return r | |
} | |
class Ns { | |
constructor(e, t) { | |
this._lView = e, | |
this._cdRefInjectingView = t, | |
this._appRef = null, | |
this._attachedToViewContainer = !1 | |
} | |
get rootNodes() { | |
const e = this._lView | |
, t = e[1]; | |
return xl(t, e, t.firstChild, []) | |
} | |
get context() { | |
return this._lView[8] | |
} | |
set context(e) { | |
this._lView[8] = e | |
} | |
get destroyed() { | |
return 128 == (128 & this._lView[2]) | |
} | |
destroy() { | |
if (this._appRef) | |
this._appRef.detachView(this); | |
else if (this._attachedToViewContainer) { | |
const e = this._lView[3]; | |
if (Kn(e)) { | |
const t = e[8] | |
, r = t ? t.indexOf(this) : -1; | |
r > -1 && (Md(e, r), | |
ll(t, r)) | |
} | |
this._attachedToViewContainer = !1 | |
} | |
f_(this._lView[1], this._lView) | |
} | |
onDestroy(e) { | |
Iy(this._lView[1], this._lView, null, e) | |
} | |
markForCheck() { | |
vh(this._cdRefInjectingView || this._lView) | |
} | |
detach() { | |
this._lView[2] &= -65 | |
} | |
reattach() { | |
this._lView[2] |= 64 | |
} | |
detectChanges() { | |
Il(this._lView[1], this._lView, this.context) | |
} | |
checkNoChanges() {} | |
attachToViewContainerRef() { | |
if (this._appRef) | |
throw new U(902,!1); | |
this._attachedToViewContainer = !0 | |
} | |
detachFromAppRef() { | |
this._appRef = null, | |
function II(n, e) { | |
Ss(n, e, e[11], 2, null, null) | |
}(this._lView[1], this._lView) | |
} | |
attachToAppRef(e) { | |
if (this._attachedToViewContainer) | |
throw new U(902,!1); | |
this._appRef = e | |
} | |
} | |
class Gx extends Ns { | |
constructor(e) { | |
super(e), | |
this._view = e | |
} | |
detectChanges() { | |
const e = this._view; | |
Il(e[1], e, e[8], !1) | |
} | |
checkNoChanges() {} | |
get context() { | |
return null | |
} | |
} | |
class Th extends Ps { | |
constructor(e) { | |
super(), | |
this.ngModule = e | |
} | |
resolveComponentFactory(e) { | |
const t = ze(e); | |
return new ks(t,this.ngModule) | |
} | |
} | |
function Hy(n) { | |
const e = []; | |
for (let t in n) | |
n.hasOwnProperty(t) && e.push({ | |
propName: n[t], | |
templateName: t | |
}); | |
return e | |
} | |
class Kx { | |
constructor(e, t) { | |
this.injector = e, | |
this.parentInjector = t | |
} | |
get(e, t, r) { | |
const i = this.injector.get(e, qd, r); | |
return i !== qd || t === qd ? i : this.parentInjector.get(e, t, r) | |
} | |
} | |
class ks extends G_ { | |
constructor(e, t) { | |
super(), | |
this.componentDef = e, | |
this.ngModule = t, | |
this.componentType = e.type, | |
this.selector = function qS(n) { | |
return n.map(GS).join(",") | |
}(e.selectors), | |
this.ngContentSelectors = e.ngContentSelectors ? e.ngContentSelectors : [], | |
this.isBoundToModule = !!t | |
} | |
get inputs() { | |
return Hy(this.componentDef.inputs) | |
} | |
get outputs() { | |
return Hy(this.componentDef.outputs) | |
} | |
create(e, t, r, i) { | |
let o = (i = i || this.ngModule)instanceof ti ? i : null == i ? void 0 : i.injector; | |
o && null !== this.componentDef.getStandaloneInjector && (o = this.componentDef.getStandaloneInjector(o) || o); | |
const s = o ? new Kx(e,o) : e | |
, a = s.get(Os, null); | |
if (null === a) | |
throw new U(407,!1); | |
const l = s.get(IS, null) | |
, c = a.createRenderer(null, this.componentDef) | |
, u = this.componentDef.selectors[0][0] || "div" | |
, d = r ? function Ax(n, e, t) { | |
return n.selectRootElement(e, t === Gn.ShadowDom) | |
}(c, r, this.componentDef.encapsulation) : Dd(c, u, function qx(n) { | |
const e = n.toLowerCase(); | |
return "svg" === e ? "svg" : "math" === e ? "math" : null | |
}(u)) | |
, h = this.componentDef.onPush ? 288 : 272 | |
, f = gh(0, null, null, 1, 0, null, null, null, null, null) | |
, p = Dl(null, f, null, h, null, null, a, c, l, s, null); | |
let _, C; | |
Ju(p); | |
try { | |
const S = function Zx(n, e, t, r, i, o) { | |
const s = t[1]; | |
t[22] = n; | |
const l = Eo(s, 22, 2, "#host", null) | |
, c = l.mergedAttrs = e.hostAttrs; | |
null !== c && (Sl(l, c, !0), | |
null !== n && (nl(i, n, c), | |
null !== l.classes && Fd(i, n, l.classes), | |
null !== l.styles && w_(i, n, l.styles))); | |
const u = r.createRenderer(n, e) | |
, d = Dl(t, Ay(e), null, e.onPush ? 32 : 16, t[22], l, r, u, o || null, null, null); | |
return s.firstCreatePass && (sl(gs(l, t), s, e.type), | |
Oy(s, l), | |
Ny(l, t.length, 1)), | |
Al(t, d), | |
t[22] = d | |
}(d, this.componentDef, p, a, c); | |
if (d) | |
if (r) | |
nl(c, d, ["ng-version", SS.full]); | |
else { | |
const {attrs: R, classes: v} = function KS(n) { | |
const e = [] | |
, t = []; | |
let r = 1 | |
, i = 2; | |
for (; r < n.length; ) { | |
let o = n[r]; | |
if ("string" == typeof o) | |
2 === i ? "" !== o && e.push(o, n[++r]) : 8 === i && t.push(o); | |
else { | |
if (!Yn(i)) | |
break; | |
i = o | |
} | |
r++ | |
} | |
return { | |
attrs: e, | |
classes: t | |
} | |
}(this.componentDef.selectors[0]); | |
R && nl(c, d, R), | |
v && v.length > 0 && Fd(c, d, v.join(" ")) | |
} | |
if (C = Gu(f, 22), | |
void 0 !== t) { | |
const R = C.projection = []; | |
for (let v = 0; v < this.ngContentSelectors.length; v++) { | |
const O = t[v]; | |
R.push(null != O ? Array.from(O) : null) | |
} | |
} | |
_ = function Xx(n, e, t, r) { | |
const i = t[1] | |
, o = function Rx(n, e, t) { | |
const r = St(); | |
n.firstCreatePass && (t.providersResolver && t.providersResolver(t), | |
ky(n, r, e, wo(n, e, 1, null), t), | |
xy(n, r)); | |
const i = ms(e, n, r.directiveStart, r); | |
Gt(i, e); | |
const o = En(r, e); | |
return o && Gt(o, e), | |
i | |
}(i, t, e); | |
if (n[8] = t[8] = o, | |
null !== r) | |
for (const a of r) | |
a(o, e); | |
if (e.contentQueries) { | |
const a = St(); | |
e.contentQueries(1, o, a.directiveStart) | |
} | |
const s = St(); | |
return !i.firstCreatePass || null === e.hostBindings && null === e.hostAttrs || (Zr(s.index), | |
Fy(t[1], s, 0, s.directiveStart, s.directiveEnd, e), | |
Py(e, o)), | |
o | |
}(S, this.componentDef, p, [Jx]), | |
hh(f, p, null) | |
} finally { | |
ed() | |
} | |
return new Yx(this.componentType,_,vo(C, p),p,C) | |
} | |
} | |
class Yx extends class TS { | |
} | |
{ | |
constructor(e, t, r, i, o) { | |
super(), | |
this.location = r, | |
this._rootLView = i, | |
this._tNode = o, | |
this.instance = t, | |
this.hostView = this.changeDetectorRef = new Gx(i), | |
this.componentType = e | |
} | |
setInput(e, t) { | |
const r = this._tNode.inputs; | |
let i; | |
if (null !== r && (i = r[e])) { | |
const o = this._rootLView; | |
Ch(o[1], o, i, e, t), | |
Ry(o, this._tNode.index) | |
} | |
} | |
get injector() { | |
return new ao(this._tNode,this._rootLView) | |
} | |
destroy() { | |
this.hostView.destroy() | |
} | |
onDestroy(e) { | |
this.hostView.onDestroy(e) | |
} | |
} | |
function Jx() { | |
const n = St(); | |
Ja(H()[1], n) | |
} | |
function ke(n) { | |
let e = function zy(n) { | |
return Object.getPrototypeOf(n.prototype).constructor | |
}(n.type) | |
, t = !0; | |
const r = [n]; | |
for (; e; ) { | |
let i; | |
if (Qn(n)) | |
i = e.\u0275cmp || e.\u0275dir; | |
else { | |
if (e.\u0275cmp) | |
throw new U(903,!1); | |
i = e.\u0275dir | |
} | |
if (i) { | |
if (t) { | |
r.push(i); | |
const s = n; | |
s.inputs = Eh(n.inputs), | |
s.declaredInputs = Eh(n.declaredInputs), | |
s.outputs = Eh(n.outputs); | |
const a = i.hostBindings; | |
a && rR(n, a); | |
const l = i.viewQuery | |
, c = i.contentQueries; | |
if (l && tR(n, l), | |
c && nR(n, c), | |
Fu(n.inputs, i.inputs), | |
Fu(n.declaredInputs, i.declaredInputs), | |
Fu(n.outputs, i.outputs), | |
Qn(i) && i.data.animation) { | |
const u = n.data; | |
u.animation = (u.animation || []).concat(i.data.animation) | |
} | |
} | |
const o = i.features; | |
if (o) | |
for (let s = 0; s < o.length; s++) { | |
const a = o[s]; | |
a && a.ngInherit && a(n), | |
a === ke && (t = !1) | |
} | |
} | |
e = Object.getPrototypeOf(e) | |
} | |
!function eR(n) { | |
let e = 0 | |
, t = null; | |
for (let r = n.length - 1; r >= 0; r--) { | |
const i = n[r]; | |
i.hostVars = e += i.hostVars, | |
i.hostAttrs = rl(i.hostAttrs, t = rl(t, i.hostAttrs)) | |
} | |
}(r) | |
} | |
function Eh(n) { | |
return n === Xi ? {} : n === Ne ? [] : n | |
} | |
function tR(n, e) { | |
const t = n.viewQuery; | |
n.viewQuery = t ? (r, i) => { | |
e(r, i), | |
t(r, i) | |
} | |
: e | |
} | |
function nR(n, e) { | |
const t = n.contentQueries; | |
n.contentQueries = t ? (r, i, o) => { | |
e(r, i, o), | |
t(r, i, o) | |
} | |
: e | |
} | |
function rR(n, e) { | |
const t = n.hostBindings; | |
n.hostBindings = t ? (r, i) => { | |
e(r, i), | |
t(r, i) | |
} | |
: e | |
} | |
let Rl = null; | |
function Ri() { | |
if (!Rl) { | |
const n = Ze.Symbol; | |
if (n && n.iterator) | |
Rl = n.iterator; | |
else { | |
const e = Object.getOwnPropertyNames(Map.prototype); | |
for (let t = 0; t < e.length; ++t) { | |
const r = e[t]; | |
"entries" !== r && "size" !== r && Map.prototype[r] === Map.prototype.entries && (Rl = r) | |
} | |
} | |
} | |
return Rl | |
} | |
function Ls(n) { | |
return !!wh(n) && (Array.isArray(n) || !(n instanceof Map) && Ri()in n) | |
} | |
function wh(n) { | |
return null !== n && ("function" == typeof n || "object" == typeof n) | |
} | |
function qt(n, e, t) { | |
return !Object.is(n[e], t) && (n[e] = t, | |
!0) | |
} | |
function In(n, e, t, r) { | |
const i = H(); | |
return qt(i, io(), e) && (Pe(), | |
ur(ct(), i, n, e, t, r)), | |
In | |
} | |
function Ke(n, e, t, r, i, o, s, a) { | |
const l = H() | |
, c = Pe() | |
, u = n + 22 | |
, d = c.firstCreatePass ? function dR(n, e, t, r, i, o, s, a, l) { | |
const c = e.consts | |
, u = Eo(e, n, 4, s || null, Yr(c, a)); | |
mh(e, t, u, Yr(c, l)), | |
Ja(e, u); | |
const d = u.tViews = gh(2, u, r, i, o, e.directiveRegistry, e.pipeRegistry, null, e.schemas, c); | |
return null !== e.queries && (e.queries.template(e, u), | |
d.queries = e.queries.embeddedTView(u)), | |
u | |
}(u, c, l, e, t, r, i, o, s) : c.data[u]; | |
lr(d, !1); | |
const h = l[11].createComment(""); | |
pl(c, l, h, d), | |
Gt(h, l), | |
Al(l, l[u] = Ly(h, l, h, d)), | |
Ya(d) && fh(c, l, d), | |
null != s && ph(l, d, a) | |
} | |
function kn(n) { | |
return function ro(n, e) { | |
return n[e] | |
}(function sA() { | |
return me.lFrame.contextLView | |
}(), 22 + n) | |
} | |
function Ae(n, e, t) { | |
const r = H(); | |
return qt(r, io(), e) && function An(n, e, t, r, i, o, s, a) { | |
const l = En(e, t); | |
let u, c = e.inputs; | |
!a && null != c && (u = c[r]) ? (Ch(n, t, u, r, i), | |
Qa(e) && Ry(t, e.index)) : 3 & e.type && (r = function Sx(n) { | |
return "class" === n ? "className" : "for" === n ? "htmlFor" : "formaction" === n ? "formAction" : "innerHtml" === n ? "innerHTML" : "readonly" === n ? "readOnly" : "tabindex" === n ? "tabIndex" : n | |
}(r), | |
i = null != s ? s(i, e.value || "", r) : i, | |
o.setProperty(l, r, i)) | |
}(Pe(), ct(), r, n, e, r[11], t, !1), | |
Ae | |
} | |
function Dh(n, e, t, r, i) { | |
const s = i ? "class" : "style"; | |
Ch(n, t, e.inputs[s], s, r) | |
} | |
function re(n, e, t, r) { | |
const i = H() | |
, o = Pe() | |
, s = 22 + n | |
, a = i[11] | |
, l = i[s] = Dd(a, e, function _A() { | |
return me.lFrame.currentNamespace | |
}()) | |
, c = o.firstCreatePass ? function fR(n, e, t, r, i, o, s) { | |
const a = e.consts | |
, c = Eo(e, n, 2, i, Yr(a, o)); | |
return mh(e, t, c, Yr(a, s)), | |
null !== c.attrs && Sl(c, c.attrs, !1), | |
null !== c.mergedAttrs && Sl(c, c.mergedAttrs, !0), | |
null !== e.queries && e.queries.elementStart(e, c), | |
c | |
}(s, o, i, 0, e, t, r) : o.data[s]; | |
lr(c, !0); | |
const u = c.mergedAttrs; | |
null !== u && nl(a, l, u); | |
const d = c.classes; | |
null !== d && Fd(a, l, d); | |
const h = c.styles; | |
return null !== h && w_(a, l, h), | |
64 != (64 & c.flags) && pl(o, i, l, c), | |
0 === function tA() { | |
return me.lFrame.elementDepthCount | |
}() && Gt(l, i), | |
function nA() { | |
me.lFrame.elementDepthCount++ | |
}(), | |
Ya(c) && (fh(o, i, c), | |
My(o, c, i)), | |
null !== r && ph(i, c), | |
re | |
} | |
function oe() { | |
let n = St(); | |
Ku() ? Qu() : (n = n.parent, | |
lr(n, !1)); | |
const e = n; | |
!function rA() { | |
me.lFrame.elementDepthCount-- | |
}(); | |
const t = Pe(); | |
return t.firstCreatePass && (Ja(t, n), | |
ju(n) && t.queries.elementEnd(n)), | |
null != e.classesWithoutHost && function TA(n) { | |
return 0 != (16 & n.flags) | |
}(e) && Dh(t, e, H(), e.classesWithoutHost, !0), | |
null != e.stylesWithoutHost && function EA(n) { | |
return 0 != (32 & n.flags) | |
}(e) && Dh(t, e, H(), e.stylesWithoutHost, !1), | |
oe | |
} | |
function Ct(n, e, t, r) { | |
return re(n, e, t, r), | |
oe(), | |
Ct | |
} | |
function Pi(n, e, t) { | |
const r = H() | |
, i = Pe() | |
, o = n + 22 | |
, s = i.firstCreatePass ? function pR(n, e, t, r, i) { | |
const o = e.consts | |
, s = Yr(o, r) | |
, a = Eo(e, n, 8, "ng-container", s); | |
return null !== s && Sl(a, s, !0), | |
mh(e, t, a, Yr(o, i)), | |
null !== e.queries && e.queries.elementStart(e, a), | |
a | |
}(o, i, r, e, t) : i.data[o]; | |
lr(s, !0); | |
const a = r[o] = r[11].createComment(""); | |
return pl(i, r, a, s), | |
Gt(a, r), | |
Ya(s) && (fh(i, r, s), | |
My(i, s, r)), | |
null != t && ph(r, s), | |
Pi | |
} | |
function Oi() { | |
let n = St(); | |
const e = Pe(); | |
return Ku() ? Qu() : (n = n.parent, | |
lr(n, !1)), | |
e.firstCreatePass && (Ja(e, n), | |
ju(n) && e.queries.elementEnd(n)), | |
Oi | |
} | |
function Ln() { | |
return H() | |
} | |
function Bs(n) { | |
return !!n && "function" == typeof n.then | |
} | |
const Mh = function ev(n) { | |
return !!n && "function" == typeof n.subscribe | |
}; | |
function _e(n, e, t, r) { | |
const i = H() | |
, o = Pe() | |
, s = St(); | |
return function nv(n, e, t, r, i, o, s, a) { | |
const l = Ya(r) | |
, u = n.firstCreatePass && By(n) | |
, d = e[8] | |
, h = Vy(e); | |
let f = !0; | |
if (3 & r.type || a) { | |
const C = En(r, e) | |
, S = a ? a(C) : C | |
, R = h.length | |
, v = a ? M => a(Dt(M[r.index])) : r.index; | |
let O = null; | |
if (!a && l && (O = function gR(n, e, t, r) { | |
const i = n.cleanup; | |
if (null != i) | |
for (let o = 0; o < i.length - 1; o += 2) { | |
const s = i[o]; | |
if (s === t && i[o + 1] === r) { | |
const a = e[7] | |
, l = i[o + 2]; | |
return a.length > l ? a[l] : null | |
} | |
"string" == typeof s && (o += 2) | |
} | |
return null | |
}(n, e, i, r.index)), | |
null !== O) | |
(O.__ngLastListenerFn__ || O).__ngNextListenerFn__ = o, | |
O.__ngLastListenerFn__ = o, | |
f = !1; | |
else { | |
o = iv(r, e, d, o, !1); | |
const M = t.listen(S, i, o); | |
h.push(o, M), | |
u && u.push(i, v, R, R + 1) | |
} | |
} else | |
o = iv(r, e, d, o, !1); | |
const p = r.outputs; | |
let _; | |
if (f && null !== p && (_ = p[i])) { | |
const C = _.length; | |
if (C) | |
for (let S = 0; S < C; S += 2) { | |
const N = e[_[S]][_[S + 1]].subscribe(o) | |
, F = h.length; | |
h.push(o, N), | |
u && u.push(i, r.index, F, -(F + 1)) | |
} | |
} | |
}(o, i, i[11], s, n, e, 0, r), | |
_e | |
} | |
function rv(n, e, t, r) { | |
try { | |
return !1 !== t(r) | |
} catch (i) { | |
return jy(n, i), | |
!1 | |
} | |
} | |
function iv(n, e, t, r, i) { | |
return function o(s) { | |
if (s === Function) | |
return r; | |
vh(2 & n.flags ? wn(n.index, e) : e); | |
let l = rv(e, 0, r, s) | |
, c = o.__ngNextListenerFn__; | |
for (; c; ) | |
l = rv(e, 0, c, s) && l, | |
c = c.__ngNextListenerFn__; | |
return i && !1 === l && (s.preventDefault(), | |
s.returnValue = !1), | |
l | |
} | |
} | |
function be(n=1) { | |
return function dA(n) { | |
return (me.lFrame.contextLView = function hA(n, e) { | |
for (; n > 0; ) | |
e = e[15], | |
n--; | |
return e | |
}(n, me.lFrame.contextLView))[8] | |
}(n) | |
} | |
function mR(n, e) { | |
let t = null; | |
const r = function HS(n) { | |
const e = n.attrs; | |
if (null != e) { | |
const t = e.indexOf(5); | |
if (0 == (1 & t)) | |
return e[t + 1] | |
} | |
return null | |
}(n); | |
for (let i = 0; i < e.length; i++) { | |
const o = e[i]; | |
if ("*" !== o) { | |
if (null === r ? ey(n, o, !0) : WS(r, o)) | |
return i | |
} else | |
t = i | |
} | |
return t | |
} | |
function Ah(n) { | |
const e = H()[16][6]; | |
if (!e.projection) { | |
const r = e.projection = vs(n ? n.length : 1, null) | |
, i = r.slice(); | |
let o = e.child; | |
for (; null !== o; ) { | |
const s = n ? mR(o, n) : 0; | |
null !== s && (i[s] ? i[s].projectionNext = o : r[s] = o, | |
i[s] = o), | |
o = o.next | |
} | |
} | |
} | |
function Pl(n, e=0, t) { | |
const r = H() | |
, i = Pe() | |
, o = Eo(i, 22 + n, 16, null, t || null); | |
null === o.projection && (o.projection = e), | |
Qu(), | |
64 != (64 & o.flags) && function kI(n, e, t) { | |
E_(e[11], 0, e, t, p_(n, t, e), y_(t.parent || e[6], t, e)) | |
}(i, r, o) | |
} | |
function pv(n, e, t, r, i) { | |
const o = n[t + 1] | |
, s = null === e; | |
let a = r ? Zn(o) : Rr(o) | |
, l = !1; | |
for (; 0 !== a && (!1 === l || s); ) { | |
const u = n[a + 1]; | |
vR(n[a], e) && (l = !0, | |
n[a + 1] = r ? rh(u) : th(u)), | |
a = r ? Zn(u) : Rr(u) | |
} | |
l && (n[t + 1] = r ? th(o) : rh(o)) | |
} | |
function vR(n, e) { | |
return null === n || null == e || (Array.isArray(n) ? n[1] : n) === e || !(!Array.isArray(n) || "string" != typeof e) && po(n, e) >= 0 | |
} | |
function Sh(n, e, t) { | |
return Jn(n, e, t, !1), | |
Sh | |
} | |
function Xn(n, e) { | |
return Jn(n, e, null, !0), | |
Xn | |
} | |
function Jn(n, e, t, r) { | |
const i = H() | |
, o = Pe() | |
, s = function Mr(n) { | |
const e = me.lFrame | |
, t = e.bindingIndex; | |
return e.bindingIndex = e.bindingIndex + n, | |
t | |
}(2); | |
o.firstUpdatePass && function Tv(n, e, t, r) { | |
const i = n.data; | |
if (null === i[t + 1]) { | |
const o = i[en()] | |
, s = function Cv(n, e) { | |
return e >= n.expandoStartIndex | |
}(n, t); | |
(function Mv(n, e) { | |
return 0 != (n.flags & (e ? 16 : 32)) | |
} | |
)(o, r) && null === e && !s && (e = !1), | |
e = function IR(n, e, t, r) { | |
const i = function Zu(n) { | |
const e = me.lFrame.currentDirectiveIndex; | |
return -1 === e ? null : n[e] | |
}(n); | |
let o = r ? e.residualClasses : e.residualStyles; | |
if (null === i) | |
0 === (r ? e.classBindings : e.styleBindings) && (t = Us(t = xh(null, n, e, t, r), e.attrs, r), | |
o = null); | |
else { | |
const s = e.directiveStylingLast; | |
if (-1 === s || n[s] !== i) | |
if (t = xh(i, n, e, t, r), | |
null === o) { | |
let l = function SR(n, e, t) { | |
const r = t ? e.classBindings : e.styleBindings; | |
if (0 !== Rr(r)) | |
return n[Zn(r)] | |
}(n, e, r); | |
void 0 !== l && Array.isArray(l) && (l = xh(null, n, e, l[1], r), | |
l = Us(l, e.attrs, r), | |
function xR(n, e, t, r) { | |
n[Zn(t ? e.classBindings : e.styleBindings)] = r | |
}(n, e, r, l)) | |
} else | |
o = function RR(n, e, t) { | |
let r; | |
const i = e.directiveEnd; | |
for (let o = 1 + e.directiveStylingLast; o < i; o++) | |
r = Us(r, n[o].hostAttrs, t); | |
return Us(r, e.attrs, t) | |
}(n, e, r) | |
} | |
return void 0 !== o && (r ? e.residualClasses = o : e.residualStyles = o), | |
t | |
}(i, o, e, r), | |
function _R(n, e, t, r, i, o) { | |
let s = o ? e.classBindings : e.styleBindings | |
, a = Zn(s) | |
, l = Rr(s); | |
n[r] = t; | |
let u, c = !1; | |
if (Array.isArray(t)) { | |
const d = t; | |
u = d[1], | |
(null === u || po(d, u) > 0) && (c = !0) | |
} else | |
u = t; | |
if (i) | |
if (0 !== l) { | |
const h = Zn(n[a + 1]); | |
n[r + 1] = Tl(h, a), | |
0 !== h && (n[h + 1] = nh(n[h + 1], r)), | |
n[a + 1] = function fx(n, e) { | |
return 131071 & n | e << 17 | |
}(n[a + 1], r) | |
} else | |
n[r + 1] = Tl(a, 0), | |
0 !== a && (n[a + 1] = nh(n[a + 1], r)), | |
a = r; | |
else | |
n[r + 1] = Tl(l, 0), | |
0 === a ? a = r : n[l + 1] = nh(n[l + 1], r), | |
l = r; | |
c && (n[r + 1] = th(n[r + 1])), | |
pv(n, u, r, !0), | |
pv(n, u, r, !1), | |
function yR(n, e, t, r, i) { | |
const o = i ? n.residualClasses : n.residualStyles; | |
null != o && "string" == typeof e && po(o, e) >= 0 && (t[r + 1] = rh(t[r + 1])) | |
}(e, u, n, r, o), | |
s = Tl(a, l), | |
o ? e.classBindings = s : e.styleBindings = s | |
}(i, o, e, t, s, r) | |
} | |
}(o, n, s, r), | |
e !== ve && qt(i, s, e) && function wv(n, e, t, r, i, o, s, a) { | |
if (!(3 & e.type)) | |
return; | |
const l = n.data | |
, c = l[a + 1]; | |
Ol(function my(n) { | |
return 1 == (1 & n) | |
}(c) ? Dv(l, e, t, i, Rr(c), s) : void 0) || (Ol(o) || function gy(n) { | |
return 2 == (2 & n) | |
}(c) && (o = Dv(l, null, t, i, a, s)), | |
function VI(n, e, t, r, i) { | |
if (e) | |
i ? n.addClass(t, r) : n.removeClass(t, r); | |
else { | |
let o = -1 === r.indexOf("-") ? void 0 : pn.DashCase; | |
null == i ? n.removeStyle(t, r, o) : ("string" == typeof i && i.endsWith("!important") && (i = i.slice(0, -10), | |
o |= pn.Important), | |
n.setStyle(t, r, i, o)) | |
} | |
}(r, s, Za(en(), t), i, o)) | |
}(o, o.data[en()], i, i[11], n, i[s + 1] = function OR(n, e) { | |
return null == n || ("string" == typeof e ? n += e : "object" == typeof n && (n = Ge(Jr(n)))), | |
n | |
}(e, t), r, s) | |
} | |
function xh(n, e, t, r, i) { | |
let o = null; | |
const s = t.directiveEnd; | |
let a = t.directiveStylingLast; | |
for (-1 === a ? a = t.directiveStart : a++; a < s && (o = e[a], | |
r = Us(r, o.hostAttrs, i), | |
o !== n); ) | |
a++; | |
return null !== n && (t.directiveStylingLast = a), | |
r | |
} | |
function Us(n, e, t) { | |
const r = t ? 1 : 2; | |
let i = -1; | |
if (null !== e) | |
for (let o = 0; o < e.length; o++) { | |
const s = e[o]; | |
"number" == typeof s ? i = s : i === r && (Array.isArray(n) || (n = void 0 === n ? [] : ["", n]), | |
Mn(n, s, !!t || e[++o])) | |
} | |
return void 0 === n ? null : n | |
} | |
function Dv(n, e, t, r, i, o) { | |
const s = null === e; | |
let a; | |
for (; i > 0; ) { | |
const l = n[i] | |
, c = Array.isArray(l) | |
, u = c ? l[1] : l | |
, d = null === u; | |
let h = t[i + 1]; | |
h === ve && (h = d ? Ne : void 0); | |
let f = d ? cd(h, r) : u === r ? h : void 0; | |
if (c && !Ol(f) && (f = cd(l, r)), | |
Ol(f) && (a = f, | |
s)) | |
return a; | |
const p = n[i + 1]; | |
i = s ? Zn(p) : Rr(p) | |
} | |
if (null !== e) { | |
let l = o ? e.residualClasses : e.residualStyles; | |
null != l && (a = cd(l, r)) | |
} | |
return a | |
} | |
function Ol(n) { | |
return void 0 !== n | |
} | |
function $e(n, e="") { | |
const t = H() | |
, r = Pe() | |
, i = n + 22 | |
, o = r.firstCreatePass ? Eo(r, i, 1, e, null) : r.data[i] | |
, s = t[i] = function wd(n, e) { | |
return n.createText(e) | |
}(t[11], e); | |
pl(r, t, s, o), | |
lr(o, !1) | |
} | |
function pr(n) { | |
return Rh("", n, ""), | |
pr | |
} | |
function Rh(n, e, t) { | |
const r = H() | |
, i = function Mo(n, e, t, r) { | |
return qt(n, io(), t) ? e + ye(t) + r : ve | |
}(r, n, e, t); | |
return i !== ve && function Fr(n, e, t) { | |
const r = Za(e, n); | |
!function d_(n, e, t) { | |
n.setValue(e, t) | |
}(n[11], r, t) | |
}(r, en(), i), | |
Rh | |
} | |
const ko = "en-US"; | |
let Kv = ko; | |
function Oh(n, e, t, r, i) { | |
if (n = ge(n), | |
Array.isArray(n)) | |
for (let o = 0; o < n.length; o++) | |
Oh(n[o], e, t, r, i); | |
else { | |
const o = Pe() | |
, s = H(); | |
let a = Si(n) ? n : ge(n.provide) | |
, l = W_(n); | |
const c = St() | |
, u = 1048575 & c.providerIndexes | |
, d = c.directiveStart | |
, h = c.providerIndexes >> 20; | |
if (Si(n) || !n.multi) { | |
const f = new fs(l,i,B) | |
, p = kh(a, e, i ? u : u + h, d); | |
-1 === p ? (sl(gs(c, s), o, a), | |
Nh(o, n, e.length), | |
e.push(a), | |
c.directiveStart++, | |
c.directiveEnd++, | |
i && (c.providerIndexes += 1048576), | |
t.push(f), | |
s.push(f)) : (t[p] = f, | |
s[p] = f) | |
} else { | |
const f = kh(a, e, u + h, d) | |
, p = kh(a, e, u, u + h) | |
, _ = f >= 0 && t[f] | |
, C = p >= 0 && t[p]; | |
if (i && !C || !i && !_) { | |
sl(gs(c, s), o, a); | |
const S = function J1(n, e, t, r, i) { | |
const o = new fs(n,t,B); | |
return o.multi = [], | |
o.index = e, | |
o.componentProviders = 0, | |
vb(o, i, r && !t), | |
o | |
}(i ? X1 : Z1, t.length, i, r, l); | |
!i && C && (t[p].providerFactory = S), | |
Nh(o, n, e.length, 0), | |
e.push(a), | |
c.directiveStart++, | |
c.directiveEnd++, | |
i && (c.providerIndexes += 1048576), | |
t.push(S), | |
s.push(S) | |
} else | |
Nh(o, n, f > -1 ? f : p, vb(t[i ? p : f], l, !i && r)); | |
!i && r && C && t[p].componentProviders++ | |
} | |
} | |
} | |
function Nh(n, e, t, r) { | |
const i = Si(e) | |
, o = function pS(n) { | |
return !!n.useClass | |
}(e); | |
if (i || o) { | |
const l = (o ? ge(e.useClass) : e).prototype.ngOnDestroy; | |
if (l) { | |
const c = n.destroyHooks || (n.destroyHooks = []); | |
if (!i && e.multi) { | |
const u = c.indexOf(t); | |
-1 === u ? c.push(t, [r, l]) : c[u + 1].push(r, l) | |
} else | |
c.push(t, l) | |
} | |
} | |
} | |
function vb(n, e, t) { | |
return t && n.componentProviders++, | |
n.multi.push(e) - 1 | |
} | |
function kh(n, e, t, r) { | |
for (let i = t; i < r; i++) | |
if (e[i] === n) | |
return i; | |
return -1 | |
} | |
function Z1(n, e, t, r) { | |
return Lh(this.multi, []) | |
} | |
function X1(n, e, t, r) { | |
const i = this.multi; | |
let o; | |
if (this.providerFactory) { | |
const s = this.providerFactory.componentProviders | |
, a = ms(t, t[1], this.providerFactory.index, r); | |
o = a.slice(0, s), | |
Lh(i, o); | |
for (let l = s; l < a.length; l++) | |
o.push(a[l]) | |
} else | |
o = [], | |
Lh(i, o); | |
return o | |
} | |
function Lh(n, e) { | |
for (let t = 0; t < n.length; t++) | |
e.push((0, | |
n[t])()); | |
return e | |
} | |
function tt(n, e=[]) { | |
return t => { | |
t.providersResolver = (r, i) => function Y1(n, e, t) { | |
const r = Pe(); | |
if (r.firstCreatePass) { | |
const i = Qn(n); | |
Oh(t, r.data, r.blueprint, i, !0), | |
Oh(e, r.data, r.blueprint, i, !1) | |
} | |
}(r, i ? i(n) : n, e) | |
} | |
} | |
class ki { | |
} | |
class bb { | |
} | |
class Cb extends ki { | |
constructor(e, t) { | |
super(), | |
this._parent = t, | |
this._bootstrapComponents = [], | |
this.destroyCbs = [], | |
this.componentFactoryResolver = new Th(this); | |
const r = bn(e); | |
this._bootstrapComponents = xr(r.bootstrap), | |
this._r3Injector = ay(e, t, [{ | |
provide: ki, | |
useValue: this | |
}, { | |
provide: Ps, | |
useValue: this.componentFactoryResolver | |
}], Ge(e), new Set(["environment"])), | |
this._r3Injector.resolveInjectorInitializers(), | |
this.instance = this._r3Injector.get(e) | |
} | |
get injector() { | |
return this._r3Injector | |
} | |
destroy() { | |
const e = this._r3Injector; | |
!e.destroyed && e.destroy(), | |
this.destroyCbs.forEach(t => t()), | |
this.destroyCbs = null | |
} | |
onDestroy(e) { | |
this.destroyCbs.push(e) | |
} | |
} | |
class Vh extends bb { | |
constructor(e) { | |
super(), | |
this.moduleType = e | |
} | |
create(e) { | |
return new Cb(this.moduleType,e) | |
} | |
} | |
class tF extends ki { | |
constructor(e, t, r) { | |
super(), | |
this.componentFactoryResolver = new Th(this), | |
this.instance = null; | |
const i = new $_([...e, { | |
provide: ki, | |
useValue: this | |
}, { | |
provide: Ps, | |
useValue: this.componentFactoryResolver | |
}],t || bl(),r,new Set(["environment"])); | |
this.injector = i, | |
i.resolveInjectorInitializers() | |
} | |
destroy() { | |
this.injector.destroy() | |
} | |
onDestroy(e) { | |
this.injector.onDestroy(e) | |
} | |
} | |
function Bl(n, e, t=null) { | |
return new tF(n,e,t).injector | |
} | |
let nF = ( () => { | |
class n { | |
constructor(t) { | |
this._injector = t, | |
this.cachedInjectors = new Map | |
} | |
getOrCreateStandaloneInjector(t) { | |
if (!t.standalone) | |
return null; | |
if (!this.cachedInjectors.has(t.id)) { | |
const r = U_(0, t.type) | |
, i = r.length > 0 ? Bl([r], this._injector, `Standalone[${t.type.name}]`) : null; | |
this.cachedInjectors.set(t.id, i) | |
} | |
return this.cachedInjectors.get(t.id) | |
} | |
ngOnDestroy() { | |
try { | |
for (const t of this.cachedInjectors.values()) | |
null !== t && t.destroy() | |
} finally { | |
this.cachedInjectors.clear() | |
} | |
} | |
} | |
return n.\u0275prov = se({ | |
token: n, | |
providedIn: "environment", | |
factory: () => new n(Q(ti)) | |
}), | |
n | |
} | |
)(); | |
function Tb(n) { | |
n.getStandaloneInjector = e => e.get(nF).getOrCreateStandaloneInjector(n) | |
} | |
function Uh(n) { | |
return e => { | |
setTimeout(n, void 0, e) | |
} | |
} | |
const Se = class IF extends un { | |
constructor(e=!1) { | |
super(), | |
this.__isAsync = e | |
} | |
emit(e) { | |
super.next(e) | |
} | |
subscribe(e, t, r) { | |
var i, o, s; | |
let a = e | |
, l = t || ( () => null) | |
, c = r; | |
if (e && "object" == typeof e) { | |
const d = e; | |
a = null === (i = d.next) || void 0 === i ? void 0 : i.bind(d), | |
l = null === (o = d.error) || void 0 === o ? void 0 : o.bind(d), | |
c = null === (s = d.complete) || void 0 === s ? void 0 : s.bind(d) | |
} | |
this.__isAsync && (l = Uh(l), | |
a && (a = Uh(a)), | |
c && (c = Uh(c))); | |
const u = super.subscribe({ | |
next: a, | |
error: l, | |
complete: c | |
}); | |
return e instanceof mn && e.add(u), | |
u | |
} | |
} | |
; | |
function SF() { | |
return this._results[Ri()]() | |
} | |
class jh { | |
constructor(e=!1) { | |
this._emitDistinctChangesOnly = e, | |
this.dirty = !0, | |
this._results = [], | |
this._changesDetected = !1, | |
this._changes = null, | |
this.length = 0, | |
this.first = void 0, | |
this.last = void 0; | |
const t = Ri() | |
, r = jh.prototype; | |
r[t] || (r[t] = SF) | |
} | |
get changes() { | |
return this._changes || (this._changes = new Se) | |
} | |
get(e) { | |
return this._results[e] | |
} | |
map(e) { | |
return this._results.map(e) | |
} | |
filter(e) { | |
return this._results.filter(e) | |
} | |
find(e) { | |
return this._results.find(e) | |
} | |
reduce(e, t) { | |
return this._results.reduce(e, t) | |
} | |
forEach(e) { | |
this._results.forEach(e) | |
} | |
some(e) { | |
return this._results.some(e) | |
} | |
toArray() { | |
return this._results.slice() | |
} | |
toString() { | |
return this._results.toString() | |
} | |
reset(e, t) { | |
const r = this; | |
r.dirty = !1; | |
const i = Dn(e); | |
(this._changesDetected = !function PA(n, e, t) { | |
if (n.length !== e.length) | |
return !1; | |
for (let r = 0; r < n.length; r++) { | |
let i = n[r] | |
, o = e[r]; | |
if (t && (i = t(i), | |
o = t(o)), | |
o !== i) | |
return !1 | |
} | |
return !0 | |
}(r._results, i, t)) && (r._results = i, | |
r.length = i.length, | |
r.last = i[this.length - 1], | |
r.first = i[0]) | |
} | |
notifyOnChanges() { | |
this._changes && (this._changesDetected || !this._emitDistinctChangesOnly) && this._changes.emit(this) | |
} | |
setDirty() { | |
this.dirty = !0 | |
} | |
destroy() { | |
this.changes.complete(), | |
this.changes.unsubscribe() | |
} | |
} | |
let Pr = ( () => { | |
class n { | |
} | |
return n.__NG_ELEMENT_ID__ = FF, | |
n | |
} | |
)(); | |
const xF = Pr | |
, RF = class extends xF { | |
constructor(e, t, r) { | |
super(), | |
this._declarationLView = e, | |
this._declarationTContainer = t, | |
this.elementRef = r | |
} | |
createEmbeddedView(e, t) { | |
const r = this._declarationTContainer.tViews | |
, i = Dl(this._declarationLView, r, e, 16, null, r.declTNode, null, null, null, null, t || null); | |
i[17] = this._declarationLView[this._declarationTContainer.index]; | |
const s = this._declarationLView[19]; | |
return null !== s && (i[19] = s.createEmbeddedView(r)), | |
hh(r, i, e), | |
new Ns(i) | |
} | |
} | |
; | |
function FF() { | |
return Ul(St(), H()) | |
} | |
function Ul(n, e) { | |
return 4 & n.type ? new RF(e,n,vo(n, e)) : null | |
} | |
let tr = ( () => { | |
class n { | |
} | |
return n.__NG_ELEMENT_ID__ = PF, | |
n | |
} | |
)(); | |
function PF() { | |
return kb(St(), H()) | |
} | |
const OF = tr | |
, Ob = class extends OF { | |
constructor(e, t, r) { | |
super(), | |
this._lContainer = e, | |
this._hostTNode = t, | |
this._hostLView = r | |
} | |
get element() { | |
return vo(this._hostTNode, this._hostLView) | |
} | |
get injector() { | |
return new ao(this._hostTNode,this._hostLView) | |
} | |
get parentInjector() { | |
const e = ol(this._hostTNode, this._hostLView); | |
if (Im(e)) { | |
const t = so(e, this._hostLView) | |
, r = oo(e); | |
return new ao(t[1].data[r + 8],t) | |
} | |
return new ao(null,this._hostLView) | |
} | |
clear() { | |
for (; this.length > 0; ) | |
this.remove(this.length - 1) | |
} | |
get(e) { | |
const t = Nb(this._lContainer); | |
return null !== t && t[e] || null | |
} | |
get length() { | |
return this._lContainer.length - 10 | |
} | |
createEmbeddedView(e, t, r) { | |
let i, o; | |
"number" == typeof r ? i = r : null != r && (i = r.index, | |
o = r.injector); | |
const s = e.createEmbeddedView(t || {}, o); | |
return this.insert(s, i), | |
s | |
} | |
createComponent(e, t, r, i, o) { | |
const s = e && !function ys(n) { | |
return "function" == typeof n | |
}(e); | |
let a; | |
if (s) | |
a = t; | |
else { | |
const d = t || {}; | |
a = d.index, | |
r = d.injector, | |
i = d.projectableNodes, | |
o = d.environmentInjector || d.ngModuleRef | |
} | |
const l = s ? e : new ks(ze(e)) | |
, c = r || this.parentInjector; | |
if (!o && null == l.ngModule) { | |
const h = (s ? c : this.parentInjector).get(ti, null); | |
h && (o = h) | |
} | |
const u = l.create(c, i, void 0, o); | |
return this.insert(u.hostView, a), | |
u | |
} | |
insert(e, t) { | |
const r = e._lView | |
, i = r[1]; | |
if (function eA(n) { | |
return Kn(n[3]) | |
}(r)) { | |
const u = this.indexOf(e); | |
if (-1 !== u) | |
this.detach(u); | |
else { | |
const d = r[3] | |
, h = new Ob(d,d[6],d[3]); | |
h.detach(h.indexOf(e)) | |
} | |
} | |
const o = this._adjustIndex(t) | |
, s = this._lContainer; | |
!function xI(n, e, t, r) { | |
const i = 10 + r | |
, o = t.length; | |
r > 0 && (t[i - 1][4] = e), | |
r < o - 10 ? (e[4] = t[i], | |
Bm(t, 10 + r, e)) : (t.push(e), | |
e[4] = null), | |
e[3] = t; | |
const s = e[17]; | |
null !== s && t !== s && function RI(n, e) { | |
const t = n[9]; | |
e[16] !== e[3][3][16] && (n[2] = !0), | |
null === t ? n[9] = [e] : t.push(e) | |
}(s, e); | |
const a = e[19]; | |
null !== a && a.insertView(n), | |
e[2] |= 64 | |
}(i, r, s, o); | |
const a = Sd(o, s) | |
, l = r[11] | |
, c = fl(l, s[7]); | |
return null !== c && function AI(n, e, t, r, i, o) { | |
r[0] = i, | |
r[6] = e, | |
Ss(n, r, t, 1, i, o) | |
}(i, s[6], l, r, c, a), | |
e.attachToViewContainerRef(), | |
Bm(Hh(s), o, e), | |
e | |
} | |
move(e, t) { | |
return this.insert(e, t) | |
} | |
indexOf(e) { | |
const t = Nb(this._lContainer); | |
return null !== t ? t.indexOf(e) : -1 | |
} | |
remove(e) { | |
const t = this._adjustIndex(e, -1) | |
, r = Md(this._lContainer, t); | |
r && (ll(Hh(this._lContainer), t), | |
f_(r[1], r)) | |
} | |
detach(e) { | |
const t = this._adjustIndex(e, -1) | |
, r = Md(this._lContainer, t); | |
return r && null != ll(Hh(this._lContainer), t) ? new Ns(r) : null | |
} | |
_adjustIndex(e, t=0) { | |
return null == e ? this.length + t : e | |
} | |
} | |
; | |
function Nb(n) { | |
return n[8] | |
} | |
function Hh(n) { | |
return n[8] || (n[8] = []) | |
} | |
function kb(n, e) { | |
let t; | |
const r = e[n.index]; | |
if (Kn(r)) | |
t = r; | |
else { | |
let i; | |
if (8 & n.type) | |
i = Dt(r); | |
else { | |
const o = e[11]; | |
i = o.createComment(""); | |
const s = En(n, e); | |
Ai(o, fl(o, s), i, function NI(n, e) { | |
return n.nextSibling(e) | |
}(o, s), !1) | |
} | |
e[n.index] = t = Ly(r, e, i, n), | |
Al(e, t) | |
} | |
return new Ob(t,n,e) | |
} | |
class zh { | |
constructor(e) { | |
this.queryList = e, | |
this.matches = null | |
} | |
clone() { | |
return new zh(this.queryList) | |
} | |
setDirty() { | |
this.queryList.setDirty() | |
} | |
} | |
class $h { | |
constructor(e=[]) { | |
this.queries = e | |
} | |
createEmbeddedView(e) { | |
const t = e.queries; | |
if (null !== t) { | |
const r = null !== e.contentQueries ? e.contentQueries[0] : t.length | |
, i = []; | |
for (let o = 0; o < r; o++) { | |
const s = t.getByIndex(o); | |
i.push(this.queries[s.indexInDeclarationView].clone()) | |
} | |
return new $h(i) | |
} | |
return null | |
} | |
insertView(e) { | |
this.dirtyQueriesWithMatches(e) | |
} | |
detachView(e) { | |
this.dirtyQueriesWithMatches(e) | |
} | |
dirtyQueriesWithMatches(e) { | |
for (let t = 0; t < this.queries.length; t++) | |
null !== jb(e, t).matches && this.queries[t].setDirty() | |
} | |
} | |
class Lb { | |
constructor(e, t, r=null) { | |
this.predicate = e, | |
this.flags = t, | |
this.read = r | |
} | |
} | |
class Wh { | |
constructor(e=[]) { | |
this.queries = e | |
} | |
elementStart(e, t) { | |
for (let r = 0; r < this.queries.length; r++) | |
this.queries[r].elementStart(e, t) | |
} | |
elementEnd(e) { | |
for (let t = 0; t < this.queries.length; t++) | |
this.queries[t].elementEnd(e) | |
} | |
embeddedTView(e) { | |
let t = null; | |
for (let r = 0; r < this.length; r++) { | |
const i = null !== t ? t.length : 0 | |
, o = this.getByIndex(r).embeddedTView(e, i); | |
o && (o.indexInDeclarationView = r, | |
null !== t ? t.push(o) : t = [o]) | |
} | |
return null !== t ? new Wh(t) : null | |
} | |
template(e, t) { | |
for (let r = 0; r < this.queries.length; r++) | |
this.queries[r].template(e, t) | |
} | |
getByIndex(e) { | |
return this.queries[e] | |
} | |
get length() { | |
return this.queries.length | |
} | |
track(e) { | |
this.queries.push(e) | |
} | |
} | |
class Gh { | |
constructor(e, t=-1) { | |
this.metadata = e, | |
this.matches = null, | |
this.indexInDeclarationView = -1, | |
this.crossesNgTemplate = !1, | |
this._appliesToNextNode = !0, | |
this._declarationNodeIndex = t | |
} | |
elementStart(e, t) { | |
this.isApplyingToNode(t) && this.matchTNode(e, t) | |
} | |
elementEnd(e) { | |
this._declarationNodeIndex === e.index && (this._appliesToNextNode = !1) | |
} | |
template(e, t) { | |
this.elementStart(e, t) | |
} | |
embeddedTView(e, t) { | |
return this.isApplyingToNode(e) ? (this.crossesNgTemplate = !0, | |
this.addMatch(-e.index, t), | |
new Gh(this.metadata)) : null | |
} | |
isApplyingToNode(e) { | |
if (this._appliesToNextNode && 1 != (1 & this.metadata.flags)) { | |
const t = this._declarationNodeIndex; | |
let r = e.parent; | |
for (; null !== r && 8 & r.type && r.index !== t; ) | |
r = r.parent; | |
return t === (null !== r ? r.index : -1) | |
} | |
return this._appliesToNextNode | |
} | |
matchTNode(e, t) { | |
const r = this.metadata.predicate; | |
if (Array.isArray(r)) | |
for (let i = 0; i < r.length; i++) { | |
const o = r[i]; | |
this.matchTNodeWithReadOption(e, t, LF(t, o)), | |
this.matchTNodeWithReadOption(e, t, al(t, e, o, !1, !1)) | |
} | |
else | |
r === Pr ? 4 & t.type && this.matchTNodeWithReadOption(e, t, -1) : this.matchTNodeWithReadOption(e, t, al(t, e, r, !1, !1)) | |
} | |
matchTNodeWithReadOption(e, t, r) { | |
if (null !== r) { | |
const i = this.metadata.read; | |
if (null !== i) | |
if (i === Vt || i === tr || i === Pr && 4 & t.type) | |
this.addMatch(t.index, -2); | |
else { | |
const o = al(t, e, i, !1, !1); | |
null !== o && this.addMatch(t.index, o) | |
} | |
else | |
this.addMatch(t.index, r) | |
} | |
} | |
addMatch(e, t) { | |
null === this.matches ? this.matches = [e, t] : this.matches.push(e, t) | |
} | |
} | |
function LF(n, e) { | |
const t = n.localNames; | |
if (null !== t) | |
for (let r = 0; r < t.length; r += 2) | |
if (t[r] === e) | |
return t[r + 1]; | |
return null | |
} | |
function BF(n, e, t, r) { | |
return -1 === t ? function VF(n, e) { | |
return 11 & n.type ? vo(n, e) : 4 & n.type ? Ul(n, e) : null | |
}(e, n) : -2 === t ? function UF(n, e, t) { | |
return t === Vt ? vo(e, n) : t === Pr ? Ul(e, n) : t === tr ? kb(e, n) : void 0 | |
}(n, e, r) : ms(n, n[1], t, e) | |
} | |
function Vb(n, e, t, r) { | |
const i = e[19].queries[r]; | |
if (null === i.matches) { | |
const o = n.data | |
, s = t.matches | |
, a = []; | |
for (let l = 0; l < s.length; l += 2) { | |
const c = s[l]; | |
a.push(c < 0 ? null : BF(e, o[c], s[l + 1], t.metadata.read)) | |
} | |
i.matches = a | |
} | |
return i.matches | |
} | |
function qh(n, e, t, r) { | |
const i = n.queries.getByIndex(t) | |
, o = i.matches; | |
if (null !== o) { | |
const s = Vb(n, e, i, t); | |
for (let a = 0; a < o.length; a += 2) { | |
const l = o[a]; | |
if (l > 0) | |
r.push(s[a / 2]); | |
else { | |
const c = o[a + 1] | |
, u = e[-l]; | |
for (let d = 10; d < u.length; d++) { | |
const h = u[d]; | |
h[17] === h[3] && qh(h[1], h, c, r) | |
} | |
if (null !== u[9]) { | |
const d = u[9]; | |
for (let h = 0; h < d.length; h++) { | |
const f = d[h]; | |
qh(f[1], f, c, r) | |
} | |
} | |
} | |
} | |
} | |
return r | |
} | |
function rn(n) { | |
const e = H() | |
, t = Pe() | |
, r = ym(); | |
Xu(r + 1); | |
const i = jb(t, r); | |
if (n.dirty && function JM(n) { | |
return 4 == (4 & n[2]) | |
}(e) === (2 == (2 & i.metadata.flags))) { | |
if (null === i.matches) | |
n.reset([]); | |
else { | |
const o = i.crossesNgTemplate ? qh(t, e, r, []) : Vb(t, e, i, r); | |
n.reset(o, MS), | |
n.notifyOnChanges() | |
} | |
return !0 | |
} | |
return !1 | |
} | |
function nr(n, e, t) { | |
const r = Pe(); | |
r.firstCreatePass && (Ub(r, new Lb(n,e,t), -1), | |
2 == (2 & e) && (r.staticViewQueries = !0)), | |
Bb(r, H(), e) | |
} | |
function Ks(n, e, t, r) { | |
const i = Pe(); | |
if (i.firstCreatePass) { | |
const o = St(); | |
Ub(i, new Lb(e,t,r), o.index), | |
function HF(n, e) { | |
const t = n.contentQueries || (n.contentQueries = []); | |
e !== (t.length ? t[t.length - 1] : -1) && t.push(n.queries.length - 1, e) | |
}(i, n), | |
2 == (2 & t) && (i.staticContentQueries = !0) | |
} | |
Bb(i, H(), t) | |
} | |
function on() { | |
return function jF(n, e) { | |
return n[19].queries[e].queryList | |
}(H(), ym()) | |
} | |
function Bb(n, e, t) { | |
const r = new jh(4 == (4 & t)); | |
Iy(n, e, r, r.destroy), | |
null === e[19] && (e[19] = new $h), | |
e[19].queries.push(new zh(r)) | |
} | |
function Ub(n, e, t) { | |
null === n.queries && (n.queries = new Wh), | |
n.queries.track(new Gh(e,t)) | |
} | |
function jb(n, e) { | |
return n.queries.getByIndex(e) | |
} | |
function rr(n, e) { | |
return Ul(n, e) | |
} | |
function Hl(...n) {} | |
const zl = new ee("Application Initializer"); | |
let $l = ( () => { | |
class n { | |
constructor(t) { | |
this.appInits = t, | |
this.resolve = Hl, | |
this.reject = Hl, | |
this.initialized = !1, | |
this.done = !1, | |
this.donePromise = new Promise( (r, i) => { | |
this.resolve = r, | |
this.reject = i | |
} | |
) | |
} | |
runInitializers() { | |
if (this.initialized) | |
return; | |
const t = [] | |
, r = () => { | |
this.done = !0, | |
this.resolve() | |
} | |
; | |
if (this.appInits) | |
for (let i = 0; i < this.appInits.length; i++) { | |
const o = this.appInits[i](); | |
if (Bs(o)) | |
t.push(o); | |
else if (Mh(o)) { | |
const s = new Promise( (a, l) => { | |
o.subscribe({ | |
complete: a, | |
error: l | |
}) | |
} | |
); | |
t.push(s) | |
} | |
} | |
Promise.all(t).then( () => { | |
r() | |
} | |
).catch(i => { | |
this.reject(i) | |
} | |
), | |
0 === t.length && r(), | |
this.initialized = !0 | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(zl, 8)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const Ys = new ee("AppId",{ | |
providedIn: "root", | |
factory: function a0() { | |
return `${Xh()}${Xh()}${Xh()}` | |
} | |
}); | |
function Xh() { | |
return String.fromCharCode(97 + Math.floor(25 * Math.random())) | |
} | |
const l0 = new ee("Platform Initializer") | |
, Jh = new ee("Platform ID",{ | |
providedIn: "platform", | |
factory: () => "unknown" | |
}) | |
, c0 = new ee("appBootstrapListener") | |
, ef = new ee("AnimationModuleType"); | |
let lP = ( () => { | |
class n { | |
log(t) { | |
console.log(t) | |
} | |
warn(t) { | |
console.warn(t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "platform" | |
}), | |
n | |
} | |
)(); | |
const gr = new ee("LocaleId",{ | |
providedIn: "root", | |
factory: () => ot(gr, he.Optional | he.SkipSelf) || function cP() { | |
return "undefined" != typeof $localize && $localize.locale || ko | |
}() | |
}); | |
class dP { | |
constructor(e, t) { | |
this.ngModuleFactory = e, | |
this.componentFactories = t | |
} | |
} | |
let tf = ( () => { | |
class n { | |
compileModuleSync(t) { | |
return new Vh(t) | |
} | |
compileModuleAsync(t) { | |
return Promise.resolve(this.compileModuleSync(t)) | |
} | |
compileModuleAndAllComponentsSync(t) { | |
const r = this.compileModuleSync(t) | |
, o = xr(bn(t).declarations).reduce( (s, a) => { | |
const l = ze(a); | |
return l && s.push(new ks(l)), | |
s | |
} | |
, []); | |
return new dP(r,o) | |
} | |
compileModuleAndAllComponentsAsync(t) { | |
return Promise.resolve(this.compileModuleAndAllComponentsSync(t)) | |
} | |
clearCache() {} | |
clearCacheFor(t) {} | |
getModuleId(t) {} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const pP = ( () => Promise.resolve(0))(); | |
function nf(n) { | |
"undefined" == typeof Zone ? pP.then( () => { | |
n && n.apply(null, null) | |
} | |
) : Zone.current.scheduleMicroTask("scheduleMicrotask", n) | |
} | |
class nt { | |
constructor({enableLongStackTrace: e=!1, shouldCoalesceEventChangeDetection: t=!1, shouldCoalesceRunChangeDetection: r=!1}) { | |
if (this.hasPendingMacrotasks = !1, | |
this.hasPendingMicrotasks = !1, | |
this.isStable = !0, | |
this.onUnstable = new Se(!1), | |
this.onMicrotaskEmpty = new Se(!1), | |
this.onStable = new Se(!1), | |
this.onError = new Se(!1), | |
"undefined" == typeof Zone) | |
throw new U(908,!1); | |
Zone.assertZonePatched(); | |
const i = this; | |
if (i._nesting = 0, | |
i._outer = i._inner = Zone.current, | |
Zone.AsyncStackTaggingZoneSpec) { | |
const o = Zone.AsyncStackTaggingZoneSpec; | |
i._inner = i._inner.fork(new o("Angular")) | |
} | |
Zone.TaskTrackingZoneSpec && (i._inner = i._inner.fork(new Zone.TaskTrackingZoneSpec)), | |
e && Zone.longStackTraceZoneSpec && (i._inner = i._inner.fork(Zone.longStackTraceZoneSpec)), | |
i.shouldCoalesceEventChangeDetection = !r && t, | |
i.shouldCoalesceRunChangeDetection = r, | |
i.lastRequestAnimationFrameId = -1, | |
i.nativeRequestAnimationFrame = function gP() { | |
let n = Ze.requestAnimationFrame | |
, e = Ze.cancelAnimationFrame; | |
if ("undefined" != typeof Zone && n && e) { | |
const t = n[Zone.__symbol__("OriginalDelegate")]; | |
t && (n = t); | |
const r = e[Zone.__symbol__("OriginalDelegate")]; | |
r && (e = r) | |
} | |
return { | |
nativeRequestAnimationFrame: n, | |
nativeCancelAnimationFrame: e | |
} | |
}().nativeRequestAnimationFrame, | |
function yP(n) { | |
const e = () => { | |
!function _P(n) { | |
n.isCheckStableRunning || -1 !== n.lastRequestAnimationFrameId || (n.lastRequestAnimationFrameId = n.nativeRequestAnimationFrame.call(Ze, () => { | |
n.fakeTopEventTask || (n.fakeTopEventTask = Zone.root.scheduleEventTask("fakeTopEventTask", () => { | |
n.lastRequestAnimationFrameId = -1, | |
sf(n), | |
n.isCheckStableRunning = !0, | |
rf(n), | |
n.isCheckStableRunning = !1 | |
} | |
, void 0, () => {} | |
, () => {} | |
)), | |
n.fakeTopEventTask.invoke() | |
} | |
), | |
sf(n)) | |
}(n) | |
} | |
; | |
n._inner = n._inner.fork({ | |
name: "angular", | |
properties: { | |
isAngularZone: !0 | |
}, | |
onInvokeTask: (t, r, i, o, s, a) => { | |
try { | |
return h0(n), | |
t.invokeTask(i, o, s, a) | |
} finally { | |
(n.shouldCoalesceEventChangeDetection && "eventTask" === o.type || n.shouldCoalesceRunChangeDetection) && e(), | |
f0(n) | |
} | |
} | |
, | |
onInvoke: (t, r, i, o, s, a, l) => { | |
try { | |
return h0(n), | |
t.invoke(i, o, s, a, l) | |
} finally { | |
n.shouldCoalesceRunChangeDetection && e(), | |
f0(n) | |
} | |
} | |
, | |
onHasTask: (t, r, i, o) => { | |
t.hasTask(i, o), | |
r === i && ("microTask" == o.change ? (n._hasPendingMicrotasks = o.microTask, | |
sf(n), | |
rf(n)) : "macroTask" == o.change && (n.hasPendingMacrotasks = o.macroTask)) | |
} | |
, | |
onHandleError: (t, r, i, o) => (t.handleError(i, o), | |
n.runOutsideAngular( () => n.onError.emit(o)), | |
!1) | |
}) | |
}(i) | |
} | |
static isInAngularZone() { | |
return "undefined" != typeof Zone && !0 === Zone.current.get("isAngularZone") | |
} | |
static assertInAngularZone() { | |
if (!nt.isInAngularZone()) | |
throw new U(909,!1) | |
} | |
static assertNotInAngularZone() { | |
if (nt.isInAngularZone()) | |
throw new U(909,!1) | |
} | |
run(e, t, r) { | |
return this._inner.run(e, t, r) | |
} | |
runTask(e, t, r, i) { | |
const o = this._inner | |
, s = o.scheduleEventTask("NgZoneEvent: " + i, e, mP, Hl, Hl); | |
try { | |
return o.runTask(s, t, r) | |
} finally { | |
o.cancelTask(s) | |
} | |
} | |
runGuarded(e, t, r) { | |
return this._inner.runGuarded(e, t, r) | |
} | |
runOutsideAngular(e) { | |
return this._outer.run(e) | |
} | |
} | |
const mP = {}; | |
function rf(n) { | |
if (0 == n._nesting && !n.hasPendingMicrotasks && !n.isStable) | |
try { | |
n._nesting++, | |
n.onMicrotaskEmpty.emit(null) | |
} finally { | |
if (n._nesting--, | |
!n.hasPendingMicrotasks) | |
try { | |
n.runOutsideAngular( () => n.onStable.emit(null)) | |
} finally { | |
n.isStable = !0 | |
} | |
} | |
} | |
function sf(n) { | |
n.hasPendingMicrotasks = !!(n._hasPendingMicrotasks || (n.shouldCoalesceEventChangeDetection || n.shouldCoalesceRunChangeDetection) && -1 !== n.lastRequestAnimationFrameId) | |
} | |
function h0(n) { | |
n._nesting++, | |
n.isStable && (n.isStable = !1, | |
n.onUnstable.emit(null)) | |
} | |
function f0(n) { | |
n._nesting--, | |
rf(n) | |
} | |
class vP { | |
constructor() { | |
this.hasPendingMicrotasks = !1, | |
this.hasPendingMacrotasks = !1, | |
this.isStable = !0, | |
this.onUnstable = new Se, | |
this.onMicrotaskEmpty = new Se, | |
this.onStable = new Se, | |
this.onError = new Se | |
} | |
run(e, t, r) { | |
return e.apply(t, r) | |
} | |
runGuarded(e, t, r) { | |
return e.apply(t, r) | |
} | |
runOutsideAngular(e) { | |
return e() | |
} | |
runTask(e, t, r, i) { | |
return e.apply(t, r) | |
} | |
} | |
const p0 = new ee("") | |
, Wl = new ee(""); | |
let Zs, af = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this._ngZone = t, | |
this.registry = r, | |
this._pendingCount = 0, | |
this._isZoneStable = !0, | |
this._didWork = !1, | |
this._callbacks = [], | |
this.taskTrackingZone = null, | |
Zs || (function bP(n) { | |
Zs = n | |
}(i), | |
i.addToWindow(r)), | |
this._watchAngularEvents(), | |
t.run( () => { | |
this.taskTrackingZone = "undefined" == typeof Zone ? null : Zone.current.get("TaskTrackingZone") | |
} | |
) | |
} | |
_watchAngularEvents() { | |
this._ngZone.onUnstable.subscribe({ | |
next: () => { | |
this._didWork = !0, | |
this._isZoneStable = !1 | |
} | |
}), | |
this._ngZone.runOutsideAngular( () => { | |
this._ngZone.onStable.subscribe({ | |
next: () => { | |
nt.assertNotInAngularZone(), | |
nf( () => { | |
this._isZoneStable = !0, | |
this._runCallbacksIfReady() | |
} | |
) | |
} | |
}) | |
} | |
) | |
} | |
increasePendingRequestCount() { | |
return this._pendingCount += 1, | |
this._didWork = !0, | |
this._pendingCount | |
} | |
decreasePendingRequestCount() { | |
if (this._pendingCount -= 1, | |
this._pendingCount < 0) | |
throw new Error("pending async requests below zero"); | |
return this._runCallbacksIfReady(), | |
this._pendingCount | |
} | |
isStable() { | |
return this._isZoneStable && 0 === this._pendingCount && !this._ngZone.hasPendingMacrotasks | |
} | |
_runCallbacksIfReady() { | |
if (this.isStable()) | |
nf( () => { | |
for (; 0 !== this._callbacks.length; ) { | |
let t = this._callbacks.pop(); | |
clearTimeout(t.timeoutId), | |
t.doneCb(this._didWork) | |
} | |
this._didWork = !1 | |
} | |
); | |
else { | |
let t = this.getPendingTasks(); | |
this._callbacks = this._callbacks.filter(r => !r.updateCb || !r.updateCb(t) || (clearTimeout(r.timeoutId), | |
!1)), | |
this._didWork = !0 | |
} | |
} | |
getPendingTasks() { | |
return this.taskTrackingZone ? this.taskTrackingZone.macroTasks.map(t => ({ | |
source: t.source, | |
creationLocation: t.creationLocation, | |
data: t.data | |
})) : [] | |
} | |
addCallback(t, r, i) { | |
let o = -1; | |
r && r > 0 && (o = setTimeout( () => { | |
this._callbacks = this._callbacks.filter(s => s.timeoutId !== o), | |
t(this._didWork, this.getPendingTasks()) | |
} | |
, r)), | |
this._callbacks.push({ | |
doneCb: t, | |
timeoutId: o, | |
updateCb: i | |
}) | |
} | |
whenStable(t, r, i) { | |
if (i && !this.taskTrackingZone) | |
throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?'); | |
this.addCallback(t, r, i), | |
this._runCallbacksIfReady() | |
} | |
getPendingRequestCount() { | |
return this._pendingCount | |
} | |
registerApplication(t) { | |
this.registry.registerApplication(t, this) | |
} | |
unregisterApplication(t) { | |
this.registry.unregisterApplication(t) | |
} | |
findProviders(t, r, i) { | |
return [] | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(nt),Q(lf),Q(Wl)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(), lf = ( () => { | |
class n { | |
constructor() { | |
this._applications = new Map | |
} | |
registerApplication(t, r) { | |
this._applications.set(t, r) | |
} | |
unregisterApplication(t) { | |
this._applications.delete(t) | |
} | |
unregisterAllApplications() { | |
this._applications.clear() | |
} | |
getTestability(t) { | |
return this._applications.get(t) || null | |
} | |
getAllTestabilities() { | |
return Array.from(this._applications.values()) | |
} | |
getAllRootElements() { | |
return Array.from(this._applications.keys()) | |
} | |
findTestabilityInTree(t, r=!0) { | |
var i; | |
return null !== (i = null == Zs ? void 0 : Zs.findTestabilityInTree(this, t, r)) && void 0 !== i ? i : null | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "platform" | |
}), | |
n | |
} | |
)(), mr = null; | |
const g0 = new ee("AllowMultipleToken") | |
, cf = new ee("PlatformDestroyListeners"); | |
class m0 { | |
constructor(e, t) { | |
this.name = e, | |
this.token = t | |
} | |
} | |
function y0(n, e, t=[]) { | |
const r = `Platform: ${e}` | |
, i = new ee(r); | |
return (o=[]) => { | |
let s = uf(); | |
if (!s || s.injector.get(g0, !1)) { | |
const a = [...t, ...o, { | |
provide: i, | |
useValue: !0 | |
}]; | |
n ? n(a) : function EP(n) { | |
if (mr && !mr.get(g0, !1)) | |
throw new U(400,!1); | |
mr = n; | |
const e = n.get(b0); | |
(function _0(n) { | |
const e = n.get(l0, null); | |
e && e.forEach(t => t()) | |
} | |
)(n) | |
}(function v0(n=[], e) { | |
return On.create({ | |
name: e, | |
providers: [{ | |
provide: zd, | |
useValue: "platform" | |
}, { | |
provide: cf, | |
useValue: new Set([ () => mr = null]) | |
}, ...n] | |
}) | |
}(a, r)) | |
} | |
return function DP(n) { | |
const e = uf(); | |
if (!e) | |
throw new U(401,!1); | |
return e | |
}() | |
} | |
} | |
function uf() { | |
var n; | |
return null !== (n = null == mr ? void 0 : mr.get(b0)) && void 0 !== n ? n : null | |
} | |
let b0 = ( () => { | |
class n { | |
constructor(t) { | |
this._injector = t, | |
this._modules = [], | |
this._destroyListeners = [], | |
this._destroyed = !1 | |
} | |
bootstrapModuleFactory(t, r) { | |
const i = function T0(n, e) { | |
let t; | |
return t = "noop" === n ? new vP : ("zone.js" === n ? void 0 : n) || new nt(e), | |
t | |
}(null == r ? void 0 : r.ngZone, function C0(n) { | |
return { | |
enableLongStackTrace: !1, | |
shouldCoalesceEventChangeDetection: !(!n || !n.ngZoneEventCoalescing) || !1, | |
shouldCoalesceRunChangeDetection: !(!n || !n.ngZoneRunCoalescing) || !1 | |
} | |
}(r)) | |
, o = [{ | |
provide: nt, | |
useValue: i | |
}]; | |
return i.run( () => { | |
const s = On.create({ | |
providers: o, | |
parent: this.injector, | |
name: t.moduleType.name | |
}) | |
, a = t.create(s) | |
, l = a.injector.get(bo, null); | |
if (!l) | |
throw new U(402,!1); | |
return i.runOutsideAngular( () => { | |
const c = i.onError.subscribe({ | |
next: u => { | |
l.handleError(u) | |
} | |
}); | |
a.onDestroy( () => { | |
Gl(this._modules, a), | |
c.unsubscribe() | |
} | |
) | |
} | |
), | |
function E0(n, e, t) { | |
try { | |
const r = t(); | |
return Bs(r) ? r.catch(i => { | |
throw e.runOutsideAngular( () => n.handleError(i)), | |
i | |
} | |
) : r | |
} catch (r) { | |
throw e.runOutsideAngular( () => n.handleError(r)), | |
r | |
} | |
}(l, i, () => { | |
const c = a.injector.get($l); | |
return c.runInitializers(), | |
c.donePromise.then( () => (function Qv(n) { | |
vn(n, "Expected localeId to be defined"), | |
"string" == typeof n && (Kv = n.toLowerCase().replace(/_/g, "-")) | |
}(a.injector.get(gr, ko) || ko), | |
this._moduleDoBootstrap(a), | |
a)) | |
} | |
) | |
} | |
) | |
} | |
bootstrapModule(t, r=[]) { | |
const i = w0({}, r); | |
return function CP(n, e, t) { | |
const r = new Vh(t); | |
return Promise.resolve(r) | |
}(0, 0, t).then(o => this.bootstrapModuleFactory(o, i)) | |
} | |
_moduleDoBootstrap(t) { | |
const r = t.injector.get(Xs); | |
if (t._bootstrapComponents.length > 0) | |
t._bootstrapComponents.forEach(i => r.bootstrap(i)); | |
else { | |
if (!t.instance.ngDoBootstrap) | |
throw new U(403,!1); | |
t.instance.ngDoBootstrap(r) | |
} | |
this._modules.push(t) | |
} | |
onDestroy(t) { | |
this._destroyListeners.push(t) | |
} | |
get injector() { | |
return this._injector | |
} | |
destroy() { | |
if (this._destroyed) | |
throw new U(404,!1); | |
this._modules.slice().forEach(r => r.destroy()), | |
this._destroyListeners.forEach(r => r()); | |
const t = this._injector.get(cf, null); | |
t && (t.forEach(r => r()), | |
t.clear()), | |
this._destroyed = !0 | |
} | |
get destroyed() { | |
return this._destroyed | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(On)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "platform" | |
}), | |
n | |
} | |
)(); | |
function w0(n, e) { | |
return Array.isArray(e) ? e.reduce(w0, n) : Object.assign(Object.assign({}, n), e) | |
} | |
let Xs = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this._zone = t, | |
this._injector = r, | |
this._exceptionHandler = i, | |
this._bootstrapListeners = [], | |
this._views = [], | |
this._runningTick = !1, | |
this._stable = !0, | |
this._destroyed = !1, | |
this._destroyListeners = [], | |
this.componentTypes = [], | |
this.components = [], | |
this._onMicrotaskEmptySubscription = this._zone.onMicrotaskEmpty.subscribe({ | |
next: () => { | |
this._zone.run( () => { | |
this.tick() | |
} | |
) | |
} | |
}); | |
const o = new vt(a => { | |
this._stable = this._zone.isStable && !this._zone.hasPendingMacrotasks && !this._zone.hasPendingMicrotasks, | |
this._zone.runOutsideAngular( () => { | |
a.next(this._stable), | |
a.complete() | |
} | |
) | |
} | |
) | |
, s = new vt(a => { | |
let l; | |
this._zone.runOutsideAngular( () => { | |
l = this._zone.onStable.subscribe( () => { | |
nt.assertNotInAngularZone(), | |
nf( () => { | |
!this._stable && !this._zone.hasPendingMacrotasks && !this._zone.hasPendingMicrotasks && (this._stable = !0, | |
a.next(!0)) | |
} | |
) | |
} | |
) | |
} | |
); | |
const c = this._zone.onUnstable.subscribe( () => { | |
nt.assertInAngularZone(), | |
this._stable && (this._stable = !1, | |
this._zone.runOutsideAngular( () => { | |
a.next(!1) | |
} | |
)) | |
} | |
); | |
return () => { | |
l.unsubscribe(), | |
c.unsubscribe() | |
} | |
} | |
); | |
this.isStable = function TM(...n) { | |
const e = ss(n) | |
, t = function gM(n, e) { | |
return "number" == typeof xu(n) ? n.pop() : e | |
}(n, 1 / 0) | |
, r = n; | |
return r.length ? 1 === r.length ? _n(r[0]) : Zi(t)(wt(r, e)) : Tr | |
}(o, s.pipe(function EM(n={}) { | |
const {connector: e=( () => new un), resetOnError: t=!0, resetOnComplete: r=!0, resetOnRefCountZero: i=!0} = n; | |
return o => { | |
let s, a, l, c = 0, u = !1, d = !1; | |
const h = () => { | |
null == a || a.unsubscribe(), | |
a = void 0 | |
} | |
, f = () => { | |
h(), | |
s = l = void 0, | |
u = d = !1 | |
} | |
, p = () => { | |
const _ = s; | |
f(), | |
null == _ || _.unsubscribe() | |
} | |
; | |
return bt( (_, C) => { | |
c++, | |
!d && !u && h(); | |
const S = l = null != l ? l : e(); | |
C.add( () => { | |
c--, | |
0 === c && !d && !u && (a = Ru(p, i)) | |
} | |
), | |
S.subscribe(C), | |
!s && c > 0 && (s = new os({ | |
next: R => S.next(R), | |
error: R => { | |
d = !0, | |
h(), | |
a = Ru(f, t, R), | |
S.error(R) | |
} | |
, | |
complete: () => { | |
u = !0, | |
h(), | |
a = Ru(f, r), | |
S.complete() | |
} | |
}), | |
_n(_).subscribe(s)) | |
} | |
)(o) | |
} | |
}())) | |
} | |
get destroyed() { | |
return this._destroyed | |
} | |
get injector() { | |
return this._injector | |
} | |
bootstrap(t, r) { | |
const i = t instanceof G_; | |
if (!this._injector.get($l).done) | |
throw !i && function Ji(n) { | |
const e = ze(n) || Zt(n) || Xt(n); | |
return null !== e && e.standalone | |
}(t), | |
new U(405,false); | |
let s; | |
s = i ? t : this._injector.get(Ps).resolveComponentFactory(t), | |
this.componentTypes.push(s.componentType); | |
const a = function TP(n) { | |
return n.isBoundToModule | |
}(s) ? void 0 : this._injector.get(ki) | |
, c = s.create(On.NULL, [], r || s.selector, a) | |
, u = c.location.nativeElement | |
, d = c.injector.get(p0, null); | |
return null == d || d.registerApplication(u), | |
c.onDestroy( () => { | |
this.detachView(c.hostView), | |
Gl(this.components, c), | |
null == d || d.unregisterApplication(u) | |
} | |
), | |
this._loadComponent(c), | |
c | |
} | |
tick() { | |
if (this._runningTick) | |
throw new U(101,!1); | |
try { | |
this._runningTick = !0; | |
for (let t of this._views) | |
t.detectChanges() | |
} catch (t) { | |
this._zone.runOutsideAngular( () => this._exceptionHandler.handleError(t)) | |
} finally { | |
this._runningTick = !1 | |
} | |
} | |
attachView(t) { | |
const r = t; | |
this._views.push(r), | |
r.attachToAppRef(this) | |
} | |
detachView(t) { | |
const r = t; | |
Gl(this._views, r), | |
r.detachFromAppRef() | |
} | |
_loadComponent(t) { | |
this.attachView(t.hostView), | |
this.tick(), | |
this.components.push(t), | |
this._injector.get(c0, []).concat(this._bootstrapListeners).forEach(i => i(t)) | |
} | |
ngOnDestroy() { | |
if (!this._destroyed) | |
try { | |
this._destroyListeners.forEach(t => t()), | |
this._views.slice().forEach(t => t.destroy()), | |
this._onMicrotaskEmptySubscription.unsubscribe() | |
} finally { | |
this._destroyed = !0, | |
this._views = [], | |
this._bootstrapListeners = [], | |
this._destroyListeners = [] | |
} | |
} | |
onDestroy(t) { | |
return this._destroyListeners.push(t), | |
() => Gl(this._destroyListeners, t) | |
} | |
destroy() { | |
if (this._destroyed) | |
throw new U(406,!1); | |
const t = this._injector; | |
t.destroy && !t.destroyed && t.destroy() | |
} | |
get viewCount() { | |
return this._views.length | |
} | |
warnIfDestroyed() {} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(nt),Q(ti),Q(bo)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
function Gl(n, e) { | |
const t = n.indexOf(e); | |
t > -1 && n.splice(t, 1) | |
} | |
let M0 = !0 | |
, Bo = ( () => { | |
class n { | |
} | |
return n.__NG_ELEMENT_ID__ = IP, | |
n | |
} | |
)(); | |
function IP(n) { | |
return function SP(n, e, t) { | |
if (Qa(n) && !t) { | |
const r = wn(n.index, e); | |
return new Ns(r,r) | |
} | |
return 47 & n.type ? new Ns(e[16],e) : null | |
}(St(), H(), 16 == (16 & n)) | |
} | |
class R0 { | |
constructor() {} | |
supports(e) { | |
return Ls(e) | |
} | |
create(e) { | |
return new NP(e) | |
} | |
} | |
const OP = (n, e) => e; | |
class NP { | |
constructor(e) { | |
this.length = 0, | |
this._linkedRecords = null, | |
this._unlinkedRecords = null, | |
this._previousItHead = null, | |
this._itHead = null, | |
this._itTail = null, | |
this._additionsHead = null, | |
this._additionsTail = null, | |
this._movesHead = null, | |
this._movesTail = null, | |
this._removalsHead = null, | |
this._removalsTail = null, | |
this._identityChangesHead = null, | |
this._identityChangesTail = null, | |
this._trackByFn = e || OP | |
} | |
forEachItem(e) { | |
let t; | |
for (t = this._itHead; null !== t; t = t._next) | |
e(t) | |
} | |
forEachOperation(e) { | |
let t = this._itHead | |
, r = this._removalsHead | |
, i = 0 | |
, o = null; | |
for (; t || r; ) { | |
const s = !r || t && t.currentIndex < P0(r, i, o) ? t : r | |
, a = P0(s, i, o) | |
, l = s.currentIndex; | |
if (s === r) | |
i--, | |
r = r._nextRemoved; | |
else if (t = t._next, | |
null == s.previousIndex) | |
i++; | |
else { | |
o || (o = []); | |
const c = a - i | |
, u = l - i; | |
if (c != u) { | |
for (let h = 0; h < c; h++) { | |
const f = h < o.length ? o[h] : o[h] = 0 | |
, p = f + h; | |
u <= p && p < c && (o[h] = f + 1) | |
} | |
o[s.previousIndex] = u - c | |
} | |
} | |
a !== l && e(s, a, l) | |
} | |
} | |
forEachPreviousItem(e) { | |
let t; | |
for (t = this._previousItHead; null !== t; t = t._nextPrevious) | |
e(t) | |
} | |
forEachAddedItem(e) { | |
let t; | |
for (t = this._additionsHead; null !== t; t = t._nextAdded) | |
e(t) | |
} | |
forEachMovedItem(e) { | |
let t; | |
for (t = this._movesHead; null !== t; t = t._nextMoved) | |
e(t) | |
} | |
forEachRemovedItem(e) { | |
let t; | |
for (t = this._removalsHead; null !== t; t = t._nextRemoved) | |
e(t) | |
} | |
forEachIdentityChange(e) { | |
let t; | |
for (t = this._identityChangesHead; null !== t; t = t._nextIdentityChange) | |
e(t) | |
} | |
diff(e) { | |
if (null == e && (e = []), | |
!Ls(e)) | |
throw new U(900,!1); | |
return this.check(e) ? this : null | |
} | |
onDestroy() {} | |
check(e) { | |
this._reset(); | |
let i, o, s, t = this._itHead, r = !1; | |
if (Array.isArray(e)) { | |
this.length = e.length; | |
for (let a = 0; a < this.length; a++) | |
o = e[a], | |
s = this._trackByFn(a, o), | |
null !== t && Object.is(t.trackById, s) ? (r && (t = this._verifyReinsertion(t, o, s, a)), | |
Object.is(t.item, o) || this._addIdentityChange(t, o)) : (t = this._mismatch(t, o, s, a), | |
r = !0), | |
t = t._next | |
} else | |
i = 0, | |
function lR(n, e) { | |
if (Array.isArray(n)) | |
for (let t = 0; t < n.length; t++) | |
e(n[t]); | |
else { | |
const t = n[Ri()](); | |
let r; | |
for (; !(r = t.next()).done; ) | |
e(r.value) | |
} | |
}(e, a => { | |
s = this._trackByFn(i, a), | |
null !== t && Object.is(t.trackById, s) ? (r && (t = this._verifyReinsertion(t, a, s, i)), | |
Object.is(t.item, a) || this._addIdentityChange(t, a)) : (t = this._mismatch(t, a, s, i), | |
r = !0), | |
t = t._next, | |
i++ | |
} | |
), | |
this.length = i; | |
return this._truncate(t), | |
this.collection = e, | |
this.isDirty | |
} | |
get isDirty() { | |
return null !== this._additionsHead || null !== this._movesHead || null !== this._removalsHead || null !== this._identityChangesHead | |
} | |
_reset() { | |
if (this.isDirty) { | |
let e; | |
for (e = this._previousItHead = this._itHead; null !== e; e = e._next) | |
e._nextPrevious = e._next; | |
for (e = this._additionsHead; null !== e; e = e._nextAdded) | |
e.previousIndex = e.currentIndex; | |
for (this._additionsHead = this._additionsTail = null, | |
e = this._movesHead; null !== e; e = e._nextMoved) | |
e.previousIndex = e.currentIndex; | |
this._movesHead = this._movesTail = null, | |
this._removalsHead = this._removalsTail = null, | |
this._identityChangesHead = this._identityChangesTail = null | |
} | |
} | |
_mismatch(e, t, r, i) { | |
let o; | |
return null === e ? o = this._itTail : (o = e._prev, | |
this._remove(e)), | |
null !== (e = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(r, null)) ? (Object.is(e.item, t) || this._addIdentityChange(e, t), | |
this._reinsertAfter(e, o, i)) : null !== (e = null === this._linkedRecords ? null : this._linkedRecords.get(r, i)) ? (Object.is(e.item, t) || this._addIdentityChange(e, t), | |
this._moveAfter(e, o, i)) : e = this._addAfter(new kP(t,r), o, i), | |
e | |
} | |
_verifyReinsertion(e, t, r, i) { | |
let o = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(r, null); | |
return null !== o ? e = this._reinsertAfter(o, e._prev, i) : e.currentIndex != i && (e.currentIndex = i, | |
this._addToMoves(e, i)), | |
e | |
} | |
_truncate(e) { | |
for (; null !== e; ) { | |
const t = e._next; | |
this._addToRemovals(this._unlink(e)), | |
e = t | |
} | |
null !== this._unlinkedRecords && this._unlinkedRecords.clear(), | |
null !== this._additionsTail && (this._additionsTail._nextAdded = null), | |
null !== this._movesTail && (this._movesTail._nextMoved = null), | |
null !== this._itTail && (this._itTail._next = null), | |
null !== this._removalsTail && (this._removalsTail._nextRemoved = null), | |
null !== this._identityChangesTail && (this._identityChangesTail._nextIdentityChange = null) | |
} | |
_reinsertAfter(e, t, r) { | |
null !== this._unlinkedRecords && this._unlinkedRecords.remove(e); | |
const i = e._prevRemoved | |
, o = e._nextRemoved; | |
return null === i ? this._removalsHead = o : i._nextRemoved = o, | |
null === o ? this._removalsTail = i : o._prevRemoved = i, | |
this._insertAfter(e, t, r), | |
this._addToMoves(e, r), | |
e | |
} | |
_moveAfter(e, t, r) { | |
return this._unlink(e), | |
this._insertAfter(e, t, r), | |
this._addToMoves(e, r), | |
e | |
} | |
_addAfter(e, t, r) { | |
return this._insertAfter(e, t, r), | |
this._additionsTail = null === this._additionsTail ? this._additionsHead = e : this._additionsTail._nextAdded = e, | |
e | |
} | |
_insertAfter(e, t, r) { | |
const i = null === t ? this._itHead : t._next; | |
return e._next = i, | |
e._prev = t, | |
null === i ? this._itTail = e : i._prev = e, | |
null === t ? this._itHead = e : t._next = e, | |
null === this._linkedRecords && (this._linkedRecords = new F0), | |
this._linkedRecords.put(e), | |
e.currentIndex = r, | |
e | |
} | |
_remove(e) { | |
return this._addToRemovals(this._unlink(e)) | |
} | |
_unlink(e) { | |
null !== this._linkedRecords && this._linkedRecords.remove(e); | |
const t = e._prev | |
, r = e._next; | |
return null === t ? this._itHead = r : t._next = r, | |
null === r ? this._itTail = t : r._prev = t, | |
e | |
} | |
_addToMoves(e, t) { | |
return e.previousIndex === t || (this._movesTail = null === this._movesTail ? this._movesHead = e : this._movesTail._nextMoved = e), | |
e | |
} | |
_addToRemovals(e) { | |
return null === this._unlinkedRecords && (this._unlinkedRecords = new F0), | |
this._unlinkedRecords.put(e), | |
e.currentIndex = null, | |
e._nextRemoved = null, | |
null === this._removalsTail ? (this._removalsTail = this._removalsHead = e, | |
e._prevRemoved = null) : (e._prevRemoved = this._removalsTail, | |
this._removalsTail = this._removalsTail._nextRemoved = e), | |
e | |
} | |
_addIdentityChange(e, t) { | |
return e.item = t, | |
this._identityChangesTail = null === this._identityChangesTail ? this._identityChangesHead = e : this._identityChangesTail._nextIdentityChange = e, | |
e | |
} | |
} | |
class kP { | |
constructor(e, t) { | |
this.item = e, | |
this.trackById = t, | |
this.currentIndex = null, | |
this.previousIndex = null, | |
this._nextPrevious = null, | |
this._prev = null, | |
this._next = null, | |
this._prevDup = null, | |
this._nextDup = null, | |
this._prevRemoved = null, | |
this._nextRemoved = null, | |
this._nextAdded = null, | |
this._nextMoved = null, | |
this._nextIdentityChange = null | |
} | |
} | |
class LP { | |
constructor() { | |
this._head = null, | |
this._tail = null | |
} | |
add(e) { | |
null === this._head ? (this._head = this._tail = e, | |
e._nextDup = null, | |
e._prevDup = null) : (this._tail._nextDup = e, | |
e._prevDup = this._tail, | |
e._nextDup = null, | |
this._tail = e) | |
} | |
get(e, t) { | |
let r; | |
for (r = this._head; null !== r; r = r._nextDup) | |
if ((null === t || t <= r.currentIndex) && Object.is(r.trackById, e)) | |
return r; | |
return null | |
} | |
remove(e) { | |
const t = e._prevDup | |
, r = e._nextDup; | |
return null === t ? this._head = r : t._nextDup = r, | |
null === r ? this._tail = t : r._prevDup = t, | |
null === this._head | |
} | |
} | |
class F0 { | |
constructor() { | |
this.map = new Map | |
} | |
put(e) { | |
const t = e.trackById; | |
let r = this.map.get(t); | |
r || (r = new LP, | |
this.map.set(t, r)), | |
r.add(e) | |
} | |
get(e, t) { | |
const i = this.map.get(e); | |
return i ? i.get(e, t) : null | |
} | |
remove(e) { | |
const t = e.trackById; | |
return this.map.get(t).remove(e) && this.map.delete(t), | |
e | |
} | |
get isEmpty() { | |
return 0 === this.map.size | |
} | |
clear() { | |
this.map.clear() | |
} | |
} | |
function P0(n, e, t) { | |
const r = n.previousIndex; | |
if (null === r) | |
return r; | |
let i = 0; | |
return t && r < t.length && (i = t[r]), | |
r + e + i | |
} | |
class O0 { | |
constructor() {} | |
supports(e) { | |
return e instanceof Map || wh(e) | |
} | |
create() { | |
return new VP | |
} | |
} | |
class VP { | |
constructor() { | |
this._records = new Map, | |
this._mapHead = null, | |
this._appendAfter = null, | |
this._previousMapHead = null, | |
this._changesHead = null, | |
this._changesTail = null, | |
this._additionsHead = null, | |
this._additionsTail = null, | |
this._removalsHead = null, | |
this._removalsTail = null | |
} | |
get isDirty() { | |
return null !== this._additionsHead || null !== this._changesHead || null !== this._removalsHead | |
} | |
forEachItem(e) { | |
let t; | |
for (t = this._mapHead; null !== t; t = t._next) | |
e(t) | |
} | |
forEachPreviousItem(e) { | |
let t; | |
for (t = this._previousMapHead; null !== t; t = t._nextPrevious) | |
e(t) | |
} | |
forEachChangedItem(e) { | |
let t; | |
for (t = this._changesHead; null !== t; t = t._nextChanged) | |
e(t) | |
} | |
forEachAddedItem(e) { | |
let t; | |
for (t = this._additionsHead; null !== t; t = t._nextAdded) | |
e(t) | |
} | |
forEachRemovedItem(e) { | |
let t; | |
for (t = this._removalsHead; null !== t; t = t._nextRemoved) | |
e(t) | |
} | |
diff(e) { | |
if (e) { | |
if (!(e instanceof Map || wh(e))) | |
throw new U(900,!1) | |
} else | |
e = new Map; | |
return this.check(e) ? this : null | |
} | |
onDestroy() {} | |
check(e) { | |
this._reset(); | |
let t = this._mapHead; | |
if (this._appendAfter = null, | |
this._forEach(e, (r, i) => { | |
if (t && t.key === i) | |
this._maybeAddToChanges(t, r), | |
this._appendAfter = t, | |
t = t._next; | |
else { | |
const o = this._getOrCreateRecordForKey(i, r); | |
t = this._insertBeforeOrAppend(t, o) | |
} | |
} | |
), | |
t) { | |
t._prev && (t._prev._next = null), | |
this._removalsHead = t; | |
for (let r = t; null !== r; r = r._nextRemoved) | |
r === this._mapHead && (this._mapHead = null), | |
this._records.delete(r.key), | |
r._nextRemoved = r._next, | |
r.previousValue = r.currentValue, | |
r.currentValue = null, | |
r._prev = null, | |
r._next = null | |
} | |
return this._changesTail && (this._changesTail._nextChanged = null), | |
this._additionsTail && (this._additionsTail._nextAdded = null), | |
this.isDirty | |
} | |
_insertBeforeOrAppend(e, t) { | |
if (e) { | |
const r = e._prev; | |
return t._next = e, | |
t._prev = r, | |
e._prev = t, | |
r && (r._next = t), | |
e === this._mapHead && (this._mapHead = t), | |
this._appendAfter = e, | |
e | |
} | |
return this._appendAfter ? (this._appendAfter._next = t, | |
t._prev = this._appendAfter) : this._mapHead = t, | |
this._appendAfter = t, | |
null | |
} | |
_getOrCreateRecordForKey(e, t) { | |
if (this._records.has(e)) { | |
const i = this._records.get(e); | |
this._maybeAddToChanges(i, t); | |
const o = i._prev | |
, s = i._next; | |
return o && (o._next = s), | |
s && (s._prev = o), | |
i._next = null, | |
i._prev = null, | |
i | |
} | |
const r = new BP(e); | |
return this._records.set(e, r), | |
r.currentValue = t, | |
this._addToAdditions(r), | |
r | |
} | |
_reset() { | |
if (this.isDirty) { | |
let e; | |
for (this._previousMapHead = this._mapHead, | |
e = this._previousMapHead; null !== e; e = e._next) | |
e._nextPrevious = e._next; | |
for (e = this._changesHead; null !== e; e = e._nextChanged) | |
e.previousValue = e.currentValue; | |
for (e = this._additionsHead; null != e; e = e._nextAdded) | |
e.previousValue = e.currentValue; | |
this._changesHead = this._changesTail = null, | |
this._additionsHead = this._additionsTail = null, | |
this._removalsHead = null | |
} | |
} | |
_maybeAddToChanges(e, t) { | |
Object.is(t, e.currentValue) || (e.previousValue = e.currentValue, | |
e.currentValue = t, | |
this._addToChanges(e)) | |
} | |
_addToAdditions(e) { | |
null === this._additionsHead ? this._additionsHead = this._additionsTail = e : (this._additionsTail._nextAdded = e, | |
this._additionsTail = e) | |
} | |
_addToChanges(e) { | |
null === this._changesHead ? this._changesHead = this._changesTail = e : (this._changesTail._nextChanged = e, | |
this._changesTail = e) | |
} | |
_forEach(e, t) { | |
e instanceof Map ? e.forEach(t) : Object.keys(e).forEach(r => t(e[r], r)) | |
} | |
} | |
class BP { | |
constructor(e) { | |
this.key = e, | |
this.previousValue = null, | |
this.currentValue = null, | |
this._nextPrevious = null, | |
this._next = null, | |
this._prev = null, | |
this._nextAdded = null, | |
this._nextRemoved = null, | |
this._nextChanged = null | |
} | |
} | |
function N0() { | |
return new Ql([new R0]) | |
} | |
let Ql = ( () => { | |
class n { | |
constructor(t) { | |
this.factories = t | |
} | |
static create(t, r) { | |
if (null != r) { | |
const i = r.factories.slice(); | |
t = t.concat(i) | |
} | |
return new n(t) | |
} | |
static extend(t) { | |
return { | |
provide: n, | |
useFactory: r => n.create(t, r || N0()), | |
deps: [[n, new ws, new Es]] | |
} | |
} | |
find(t) { | |
const r = this.factories.find(i => i.supports(t)); | |
if (null != r) | |
return r; | |
throw new U(901,!1) | |
} | |
} | |
return n.\u0275prov = se({ | |
token: n, | |
providedIn: "root", | |
factory: N0 | |
}), | |
n | |
} | |
)(); | |
function k0() { | |
return new Js([new O0]) | |
} | |
let Js = ( () => { | |
class n { | |
constructor(t) { | |
this.factories = t | |
} | |
static create(t, r) { | |
if (r) { | |
const i = r.factories.slice(); | |
t = t.concat(i) | |
} | |
return new n(t) | |
} | |
static extend(t) { | |
return { | |
provide: n, | |
useFactory: r => n.create(t, r || k0()), | |
deps: [[n, new ws, new Es]] | |
} | |
} | |
find(t) { | |
const r = this.factories.find(i => i.supports(t)); | |
if (r) | |
return r; | |
throw new U(901,!1) | |
} | |
} | |
return n.\u0275prov = se({ | |
token: n, | |
providedIn: "root", | |
factory: k0 | |
}), | |
n | |
} | |
)(); | |
const HP = y0(null, "core", []); | |
let zP = ( () => { | |
class n { | |
constructor(t) {} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(Xs)) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({}), | |
n | |
} | |
)(); | |
let Yl = null; | |
function _r() { | |
return Yl | |
} | |
const yt = new ee("DocumentToken"); | |
let gf = ( () => { | |
class n { | |
historyGo(t) { | |
throw new Error("Not implemented") | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return function qP() { | |
return Q(L0) | |
}() | |
}, | |
providedIn: "platform" | |
}), | |
n | |
} | |
)(); | |
const KP = new ee("Location Initialized"); | |
let L0 = ( () => { | |
class n extends gf { | |
constructor(t) { | |
super(), | |
this._doc = t, | |
this._init() | |
} | |
_init() { | |
this.location = window.location, | |
this._history = window.history | |
} | |
getBaseHrefFromDOM() { | |
return _r().getBaseHref(this._doc) | |
} | |
onPopState(t) { | |
const r = _r().getGlobalEventTarget(this._doc, "window"); | |
return r.addEventListener("popstate", t, !1), | |
() => r.removeEventListener("popstate", t) | |
} | |
onHashChange(t) { | |
const r = _r().getGlobalEventTarget(this._doc, "window"); | |
return r.addEventListener("hashchange", t, !1), | |
() => r.removeEventListener("hashchange", t) | |
} | |
get href() { | |
return this.location.href | |
} | |
get protocol() { | |
return this.location.protocol | |
} | |
get hostname() { | |
return this.location.hostname | |
} | |
get port() { | |
return this.location.port | |
} | |
get pathname() { | |
return this.location.pathname | |
} | |
get search() { | |
return this.location.search | |
} | |
get hash() { | |
return this.location.hash | |
} | |
set pathname(t) { | |
this.location.pathname = t | |
} | |
pushState(t, r, i) { | |
V0() ? this._history.pushState(t, r, i) : this.location.hash = i | |
} | |
replaceState(t, r, i) { | |
V0() ? this._history.replaceState(t, r, i) : this.location.hash = i | |
} | |
forward() { | |
this._history.forward() | |
} | |
back() { | |
this._history.back() | |
} | |
historyGo(t=0) { | |
this._history.go(t) | |
} | |
getState() { | |
return this._history.state | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return function QP() { | |
return new L0(Q(yt)) | |
}() | |
}, | |
providedIn: "platform" | |
}), | |
n | |
} | |
)(); | |
function V0() { | |
return !!window.history.pushState | |
} | |
function mf(n, e) { | |
if (0 == n.length) | |
return e; | |
if (0 == e.length) | |
return n; | |
let t = 0; | |
return n.endsWith("/") && t++, | |
e.startsWith("/") && t++, | |
2 == t ? n + e.substring(1) : 1 == t ? n + e : n + "/" + e | |
} | |
function B0(n) { | |
const e = n.match(/#|\?|$/) | |
, t = e && e.index || n.length; | |
return n.slice(0, t - ("/" === n[t - 1] ? 1 : 0)) + n.slice(t) | |
} | |
function kr(n) { | |
return n && "?" !== n[0] ? "?" + n : n | |
} | |
let ii = ( () => { | |
class n { | |
historyGo(t) { | |
throw new Error("Not implemented") | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return ot(j0) | |
}, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const U0 = new ee("appBaseHref"); | |
let j0 = ( () => { | |
class n extends ii { | |
constructor(t, r) { | |
var i, o, s; | |
super(), | |
this._platformLocation = t, | |
this._removeListenerFns = [], | |
this._baseHref = null !== (s = null !== (i = null != r ? r : this._platformLocation.getBaseHrefFromDOM()) && void 0 !== i ? i : null === (o = ot(yt).location) || void 0 === o ? void 0 : o.origin) && void 0 !== s ? s : "" | |
} | |
ngOnDestroy() { | |
for (; this._removeListenerFns.length; ) | |
this._removeListenerFns.pop()() | |
} | |
onPopState(t) { | |
this._removeListenerFns.push(this._platformLocation.onPopState(t), this._platformLocation.onHashChange(t)) | |
} | |
getBaseHref() { | |
return this._baseHref | |
} | |
prepareExternalUrl(t) { | |
return mf(this._baseHref, t) | |
} | |
path(t=!1) { | |
const r = this._platformLocation.pathname + kr(this._platformLocation.search) | |
, i = this._platformLocation.hash; | |
return i && t ? `${r}${i}` : r | |
} | |
pushState(t, r, i, o) { | |
const s = this.prepareExternalUrl(i + kr(o)); | |
this._platformLocation.pushState(t, r, s) | |
} | |
replaceState(t, r, i, o) { | |
const s = this.prepareExternalUrl(i + kr(o)); | |
this._platformLocation.replaceState(t, r, s) | |
} | |
forward() { | |
this._platformLocation.forward() | |
} | |
back() { | |
this._platformLocation.back() | |
} | |
getState() { | |
return this._platformLocation.getState() | |
} | |
historyGo(t=0) { | |
var r, i; | |
null === (i = (r = this._platformLocation).historyGo) || void 0 === i || i.call(r, t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(gf),Q(U0, 8)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)() | |
, YP = ( () => { | |
class n extends ii { | |
constructor(t, r) { | |
super(), | |
this._platformLocation = t, | |
this._baseHref = "", | |
this._removeListenerFns = [], | |
null != r && (this._baseHref = r) | |
} | |
ngOnDestroy() { | |
for (; this._removeListenerFns.length; ) | |
this._removeListenerFns.pop()() | |
} | |
onPopState(t) { | |
this._removeListenerFns.push(this._platformLocation.onPopState(t), this._platformLocation.onHashChange(t)) | |
} | |
getBaseHref() { | |
return this._baseHref | |
} | |
path(t=!1) { | |
let r = this._platformLocation.hash; | |
return null == r && (r = "#"), | |
r.length > 0 ? r.substring(1) : r | |
} | |
prepareExternalUrl(t) { | |
const r = mf(this._baseHref, t); | |
return r.length > 0 ? "#" + r : r | |
} | |
pushState(t, r, i, o) { | |
let s = this.prepareExternalUrl(i + kr(o)); | |
0 == s.length && (s = this._platformLocation.pathname), | |
this._platformLocation.pushState(t, r, s) | |
} | |
replaceState(t, r, i, o) { | |
let s = this.prepareExternalUrl(i + kr(o)); | |
0 == s.length && (s = this._platformLocation.pathname), | |
this._platformLocation.replaceState(t, r, s) | |
} | |
forward() { | |
this._platformLocation.forward() | |
} | |
back() { | |
this._platformLocation.back() | |
} | |
getState() { | |
return this._platformLocation.getState() | |
} | |
historyGo(t=0) { | |
var r, i; | |
null === (i = (r = this._platformLocation).historyGo) || void 0 === i || i.call(r, t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(gf),Q(U0, 8)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)() | |
, _f = ( () => { | |
class n { | |
constructor(t) { | |
this._subject = new Se, | |
this._urlChangeListeners = [], | |
this._urlChangeSubscription = null, | |
this._locationStrategy = t; | |
const r = this._locationStrategy.getBaseHref(); | |
this._baseHref = B0(H0(r)), | |
this._locationStrategy.onPopState(i => { | |
this._subject.emit({ | |
url: this.path(!0), | |
pop: !0, | |
state: i.state, | |
type: i.type | |
}) | |
} | |
) | |
} | |
ngOnDestroy() { | |
var t; | |
null === (t = this._urlChangeSubscription) || void 0 === t || t.unsubscribe(), | |
this._urlChangeListeners = [] | |
} | |
path(t=!1) { | |
return this.normalize(this._locationStrategy.path(t)) | |
} | |
getState() { | |
return this._locationStrategy.getState() | |
} | |
isCurrentPathEqualTo(t, r="") { | |
return this.path() == this.normalize(t + kr(r)) | |
} | |
normalize(t) { | |
return n.stripTrailingSlash(function XP(n, e) { | |
return n && e.startsWith(n) ? e.substring(n.length) : e | |
}(this._baseHref, H0(t))) | |
} | |
prepareExternalUrl(t) { | |
return t && "/" !== t[0] && (t = "/" + t), | |
this._locationStrategy.prepareExternalUrl(t) | |
} | |
go(t, r="", i=null) { | |
this._locationStrategy.pushState(i, "", t, r), | |
this._notifyUrlChangeListeners(this.prepareExternalUrl(t + kr(r)), i) | |
} | |
replaceState(t, r="", i=null) { | |
this._locationStrategy.replaceState(i, "", t, r), | |
this._notifyUrlChangeListeners(this.prepareExternalUrl(t + kr(r)), i) | |
} | |
forward() { | |
this._locationStrategy.forward() | |
} | |
back() { | |
this._locationStrategy.back() | |
} | |
historyGo(t=0) { | |
var r, i; | |
null === (i = (r = this._locationStrategy).historyGo) || void 0 === i || i.call(r, t) | |
} | |
onUrlChange(t) { | |
return this._urlChangeListeners.push(t), | |
this._urlChangeSubscription || (this._urlChangeSubscription = this.subscribe(r => { | |
this._notifyUrlChangeListeners(r.url, r.state) | |
} | |
)), | |
() => { | |
var r; | |
const i = this._urlChangeListeners.indexOf(t); | |
this._urlChangeListeners.splice(i, 1), | |
0 === this._urlChangeListeners.length && (null === (r = this._urlChangeSubscription) || void 0 === r || r.unsubscribe(), | |
this._urlChangeSubscription = null) | |
} | |
} | |
_notifyUrlChangeListeners(t="", r) { | |
this._urlChangeListeners.forEach(i => i(t, r)) | |
} | |
subscribe(t, r, i) { | |
return this._subject.subscribe({ | |
next: t, | |
error: r, | |
complete: i | |
}) | |
} | |
} | |
return n.normalizeQueryParams = kr, | |
n.joinWithSlash = mf, | |
n.stripTrailingSlash = B0, | |
n.\u0275fac = function(t) { | |
return new (t || n)(Q(ii)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return function ZP() { | |
return new _f(Q(ii)) | |
}() | |
}, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
function H0(n) { | |
return n.replace(/\/index.html$/, "") | |
} | |
let Z0 = ( () => { | |
class n { | |
constructor(t, r, i, o) { | |
this._iterableDiffers = t, | |
this._keyValueDiffers = r, | |
this._ngEl = i, | |
this._renderer = o, | |
this._iterableDiffer = null, | |
this._keyValueDiffer = null, | |
this._initialClasses = [], | |
this._rawClass = null | |
} | |
set klass(t) { | |
this._removeClasses(this._initialClasses), | |
this._initialClasses = "string" == typeof t ? t.split(/\s+/) : [], | |
this._applyClasses(this._initialClasses), | |
this._applyClasses(this._rawClass) | |
} | |
set ngClass(t) { | |
this._removeClasses(this._rawClass), | |
this._applyClasses(this._initialClasses), | |
this._iterableDiffer = null, | |
this._keyValueDiffer = null, | |
this._rawClass = "string" == typeof t ? t.split(/\s+/) : t, | |
this._rawClass && (Ls(this._rawClass) ? this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create() : this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create()) | |
} | |
ngDoCheck() { | |
if (this._iterableDiffer) { | |
const t = this._iterableDiffer.diff(this._rawClass); | |
t && this._applyIterableChanges(t) | |
} else if (this._keyValueDiffer) { | |
const t = this._keyValueDiffer.diff(this._rawClass); | |
t && this._applyKeyValueChanges(t) | |
} | |
} | |
_applyKeyValueChanges(t) { | |
t.forEachAddedItem(r => this._toggleClass(r.key, r.currentValue)), | |
t.forEachChangedItem(r => this._toggleClass(r.key, r.currentValue)), | |
t.forEachRemovedItem(r => { | |
r.previousValue && this._toggleClass(r.key, !1) | |
} | |
) | |
} | |
_applyIterableChanges(t) { | |
t.forEachAddedItem(r => { | |
if ("string" != typeof r.item) | |
throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Ge(r.item)}`); | |
this._toggleClass(r.item, !0) | |
} | |
), | |
t.forEachRemovedItem(r => this._toggleClass(r.item, !1)) | |
} | |
_applyClasses(t) { | |
t && (Array.isArray(t) || t instanceof Set ? t.forEach(r => this._toggleClass(r, !0)) : Object.keys(t).forEach(r => this._toggleClass(r, !!t[r]))) | |
} | |
_removeClasses(t) { | |
t && (Array.isArray(t) || t instanceof Set ? t.forEach(r => this._toggleClass(r, !1)) : Object.keys(t).forEach(r => this._toggleClass(r, !1))) | |
} | |
_toggleClass(t, r) { | |
(t = t.trim()) && t.split(/\s+/g).forEach(i => { | |
r ? this._renderer.addClass(this._ngEl.nativeElement, i) : this._renderer.removeClass(this._ngEl.nativeElement, i) | |
} | |
) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Ql),B(Js),B(Vt),B(Sr)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "ngClass", ""]], | |
inputs: { | |
klass: ["class", "klass"], | |
ngClass: "ngClass" | |
}, | |
standalone: !0 | |
}), | |
n | |
} | |
)(); | |
class LO { | |
constructor(e, t, r, i) { | |
this.$implicit = e, | |
this.ngForOf = t, | |
this.index = r, | |
this.count = i | |
} | |
get first() { | |
return 0 === this.index | |
} | |
get last() { | |
return this.index === this.count - 1 | |
} | |
get even() { | |
return this.index % 2 == 0 | |
} | |
get odd() { | |
return !this.even | |
} | |
} | |
let Af = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this._viewContainer = t, | |
this._template = r, | |
this._differs = i, | |
this._ngForOf = null, | |
this._ngForOfDirty = !0, | |
this._differ = null | |
} | |
set ngForOf(t) { | |
this._ngForOf = t, | |
this._ngForOfDirty = !0 | |
} | |
set ngForTrackBy(t) { | |
this._trackByFn = t | |
} | |
get ngForTrackBy() { | |
return this._trackByFn | |
} | |
set ngForTemplate(t) { | |
t && (this._template = t) | |
} | |
ngDoCheck() { | |
if (this._ngForOfDirty) { | |
this._ngForOfDirty = !1; | |
const t = this._ngForOf; | |
!this._differ && t && (this._differ = this._differs.find(t).create(this.ngForTrackBy)) | |
} | |
if (this._differ) { | |
const t = this._differ.diff(this._ngForOf); | |
t && this._applyChanges(t) | |
} | |
} | |
_applyChanges(t) { | |
const r = this._viewContainer; | |
t.forEachOperation( (i, o, s) => { | |
if (null == i.previousIndex) | |
r.createEmbeddedView(this._template, new LO(i.item,this._ngForOf,-1,-1), null === s ? void 0 : s); | |
else if (null == s) | |
r.remove(null === o ? void 0 : o); | |
else if (null !== o) { | |
const a = r.get(o); | |
r.move(a, s), | |
eC(a, i) | |
} | |
} | |
); | |
for (let i = 0, o = r.length; i < o; i++) { | |
const a = r.get(i).context; | |
a.index = i, | |
a.count = o, | |
a.ngForOf = this._ngForOf | |
} | |
t.forEachIdentityChange(i => { | |
eC(r.get(i.currentIndex), i) | |
} | |
) | |
} | |
static ngTemplateContextGuard(t, r) { | |
return !0 | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(tr),B(Pr),B(Ql)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "ngFor", "", "ngForOf", ""]], | |
inputs: { | |
ngForOf: "ngForOf", | |
ngForTrackBy: "ngForTrackBy", | |
ngForTemplate: "ngForTemplate" | |
}, | |
standalone: !0 | |
}), | |
n | |
} | |
)(); | |
function eC(n, e) { | |
n.context.$implicit = e.item | |
} | |
let na = ( () => { | |
class n { | |
constructor(t, r) { | |
this._viewContainer = t, | |
this._context = new BO, | |
this._thenTemplateRef = null, | |
this._elseTemplateRef = null, | |
this._thenViewRef = null, | |
this._elseViewRef = null, | |
this._thenTemplateRef = r | |
} | |
set ngIf(t) { | |
this._context.$implicit = this._context.ngIf = t, | |
this._updateView() | |
} | |
set ngIfThen(t) { | |
tC("ngIfThen", t), | |
this._thenTemplateRef = t, | |
this._thenViewRef = null, | |
this._updateView() | |
} | |
set ngIfElse(t) { | |
tC("ngIfElse", t), | |
this._elseTemplateRef = t, | |
this._elseViewRef = null, | |
this._updateView() | |
} | |
_updateView() { | |
this._context.$implicit ? this._thenViewRef || (this._viewContainer.clear(), | |
this._elseViewRef = null, | |
this._thenTemplateRef && (this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context))) : this._elseViewRef || (this._viewContainer.clear(), | |
this._thenViewRef = null, | |
this._elseTemplateRef && (this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context))) | |
} | |
static ngTemplateContextGuard(t, r) { | |
return !0 | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(tr),B(Pr)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "ngIf", ""]], | |
inputs: { | |
ngIf: "ngIf", | |
ngIfThen: "ngIfThen", | |
ngIfElse: "ngIfElse" | |
}, | |
standalone: !0 | |
}), | |
n | |
} | |
)(); | |
class BO { | |
constructor() { | |
this.$implicit = null, | |
this.ngIf = null | |
} | |
} | |
function tC(n, e) { | |
if (e && !e.createEmbeddedView) | |
throw new Error(`${n} must be a TemplateRef, but received '${Ge(e)}'.`) | |
} | |
let rC = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this._ngEl = t, | |
this._differs = r, | |
this._renderer = i, | |
this._ngStyle = null, | |
this._differ = null | |
} | |
set ngStyle(t) { | |
this._ngStyle = t, | |
!this._differ && t && (this._differ = this._differs.find(t).create()) | |
} | |
ngDoCheck() { | |
if (this._differ) { | |
const t = this._differ.diff(this._ngStyle); | |
t && this._applyChanges(t) | |
} | |
} | |
_setStyle(t, r) { | |
const [i,o] = t.split(".") | |
, s = -1 === i.indexOf("-") ? void 0 : pn.DashCase; | |
null != r ? this._renderer.setStyle(this._ngEl.nativeElement, i, o ? `${r}${o}` : r, s) : this._renderer.removeStyle(this._ngEl.nativeElement, i, s) | |
} | |
_applyChanges(t) { | |
t.forEachRemovedItem(r => this._setStyle(r.key, null)), | |
t.forEachAddedItem(r => this._setStyle(r.key, r.currentValue)), | |
t.forEachChangedItem(r => this._setStyle(r.key, r.currentValue)) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Vt),B(Js),B(Sr)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "ngStyle", ""]], | |
inputs: { | |
ngStyle: "ngStyle" | |
}, | |
standalone: !0 | |
}), | |
n | |
} | |
)() | |
, Ff = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({}), | |
n | |
} | |
)(); | |
const oC = "browser"; | |
let gN = ( () => { | |
class n { | |
} | |
return n.\u0275prov = se({ | |
token: n, | |
providedIn: "root", | |
factory: () => new mN(Q(yt),window) | |
}), | |
n | |
} | |
)(); | |
class mN { | |
constructor(e, t) { | |
this.document = e, | |
this.window = t, | |
this.offset = () => [0, 0] | |
} | |
setOffset(e) { | |
this.offset = Array.isArray(e) ? () => e : e | |
} | |
getScrollPosition() { | |
return this.supportsScrolling() ? [this.window.pageXOffset, this.window.pageYOffset] : [0, 0] | |
} | |
scrollToPosition(e) { | |
this.supportsScrolling() && this.window.scrollTo(e[0], e[1]) | |
} | |
scrollToAnchor(e) { | |
if (!this.supportsScrolling()) | |
return; | |
const t = function _N(n, e) { | |
const t = n.getElementById(e) || n.getElementsByName(e)[0]; | |
if (t) | |
return t; | |
if ("function" == typeof n.createTreeWalker && n.body && (n.body.createShadowRoot || n.body.attachShadow)) { | |
const r = n.createTreeWalker(n.body, NodeFilter.SHOW_ELEMENT); | |
let i = r.currentNode; | |
for (; i; ) { | |
const o = i.shadowRoot; | |
if (o) { | |
const s = o.getElementById(e) || o.querySelector(`[name="${e}"]`); | |
if (s) | |
return s | |
} | |
i = r.nextNode() | |
} | |
} | |
return null | |
}(this.document, e); | |
t && (this.scrollToElement(t), | |
t.focus()) | |
} | |
setHistoryScrollRestoration(e) { | |
if (this.supportScrollRestoration()) { | |
const t = this.window.history; | |
t && t.scrollRestoration && (t.scrollRestoration = e) | |
} | |
} | |
scrollToElement(e) { | |
const t = e.getBoundingClientRect() | |
, r = t.left + this.window.pageXOffset | |
, i = t.top + this.window.pageYOffset | |
, o = this.offset(); | |
this.window.scrollTo(r - o[0], i - o[1]) | |
} | |
supportScrollRestoration() { | |
try { | |
if (!this.supportsScrolling()) | |
return !1; | |
const e = sC(this.window.history) || sC(Object.getPrototypeOf(this.window.history)); | |
return !(!e || !e.writable && !e.set) | |
} catch (e) { | |
return !1 | |
} | |
} | |
supportsScrolling() { | |
try { | |
return !!this.window && !!this.window.scrollTo && "pageXOffset"in this.window | |
} catch (e) { | |
return !1 | |
} | |
} | |
} | |
function sC(n) { | |
return Object.getOwnPropertyDescriptor(n, "scrollRestoration") | |
} | |
class Nf extends class WN extends class GP { | |
} | |
{ | |
constructor() { | |
super(...arguments), | |
this.supportsDOMEvents = !0 | |
} | |
} | |
{ | |
static makeCurrent() { | |
!function WP(n) { | |
Yl || (Yl = n) | |
}(new Nf) | |
} | |
onAndCancel(e, t, r) { | |
return e.addEventListener(t, r, !1), | |
() => { | |
e.removeEventListener(t, r, !1) | |
} | |
} | |
dispatchEvent(e, t) { | |
e.dispatchEvent(t) | |
} | |
remove(e) { | |
e.parentNode && e.parentNode.removeChild(e) | |
} | |
createElement(e, t) { | |
return (t = t || this.getDefaultDocument()).createElement(e) | |
} | |
createHtmlDocument() { | |
return document.implementation.createHTMLDocument("fakeTitle") | |
} | |
getDefaultDocument() { | |
return document | |
} | |
isElementNode(e) { | |
return e.nodeType === Node.ELEMENT_NODE | |
} | |
isShadowRoot(e) { | |
return e instanceof DocumentFragment | |
} | |
getGlobalEventTarget(e, t) { | |
return "window" === t ? window : "document" === t ? e : "body" === t ? e.body : null | |
} | |
getBaseHref(e) { | |
const t = function GN() { | |
return ia = ia || document.querySelector("base"), | |
ia ? ia.getAttribute("href") : null | |
}(); | |
return null == t ? null : function qN(n) { | |
lc = lc || document.createElement("a"), | |
lc.setAttribute("href", n); | |
const e = lc.pathname; | |
return "/" === e.charAt(0) ? e : `/${e}` | |
}(t) | |
} | |
resetBaseElement() { | |
ia = null | |
} | |
getUserAgent() { | |
return window.navigator.userAgent | |
} | |
getCookie(e) { | |
return function NO(n, e) { | |
e = encodeURIComponent(e); | |
for (const t of n.split(";")) { | |
const r = t.indexOf("=") | |
, [i,o] = -1 == r ? [t, ""] : [t.slice(0, r), t.slice(r + 1)]; | |
if (i.trim() === e) | |
return decodeURIComponent(o) | |
} | |
return null | |
}(document.cookie, e) | |
} | |
} | |
let lc, ia = null; | |
const dC = new ee("TRANSITION_ID") | |
, QN = [{ | |
provide: zl, | |
useFactory: function KN(n, e, t) { | |
return () => { | |
t.get($l).donePromise.then( () => { | |
const r = _r() | |
, i = e.querySelectorAll(`style[ng-transition="${n}"]`); | |
for (let o = 0; o < i.length; o++) | |
r.remove(i[o]) | |
} | |
) | |
} | |
}, | |
deps: [dC, yt, On], | |
multi: !0 | |
}]; | |
let ZN = ( () => { | |
class n { | |
build() { | |
return new XMLHttpRequest | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
const cc = new ee("EventManagerPlugins"); | |
let uc = ( () => { | |
class n { | |
constructor(t, r) { | |
this._zone = r, | |
this._eventNameToPlugin = new Map, | |
t.forEach(i => i.manager = this), | |
this._plugins = t.slice().reverse() | |
} | |
addEventListener(t, r, i) { | |
return this._findPluginFor(r).addEventListener(t, r, i) | |
} | |
addGlobalEventListener(t, r, i) { | |
return this._findPluginFor(r).addGlobalEventListener(t, r, i) | |
} | |
getZone() { | |
return this._zone | |
} | |
_findPluginFor(t) { | |
const r = this._eventNameToPlugin.get(t); | |
if (r) | |
return r; | |
const i = this._plugins; | |
for (let o = 0; o < i.length; o++) { | |
const s = i[o]; | |
if (s.supports(t)) | |
return this._eventNameToPlugin.set(t, s), | |
s | |
} | |
throw new Error(`No event manager plugin found for event ${t}`) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(cc),Q(nt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
class hC { | |
constructor(e) { | |
this._doc = e | |
} | |
addGlobalEventListener(e, t, r) { | |
const i = _r().getGlobalEventTarget(this._doc, e); | |
if (!i) | |
throw new Error(`Unsupported event target ${i} for event ${t}`); | |
return this.addEventListener(i, t, r) | |
} | |
} | |
let fC = ( () => { | |
class n { | |
constructor() { | |
this._stylesSet = new Set | |
} | |
addStyles(t) { | |
const r = new Set; | |
t.forEach(i => { | |
this._stylesSet.has(i) || (this._stylesSet.add(i), | |
r.add(i)) | |
} | |
), | |
this.onStylesAdded(r) | |
} | |
onStylesAdded(t) {} | |
getAllStyles() { | |
return Array.from(this._stylesSet) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)() | |
, oa = ( () => { | |
class n extends fC { | |
constructor(t) { | |
super(), | |
this._doc = t, | |
this._hostNodes = new Map, | |
this._hostNodes.set(t.head, []) | |
} | |
_addStylesToHost(t, r, i) { | |
t.forEach(o => { | |
const s = this._doc.createElement("style"); | |
s.textContent = o, | |
i.push(r.appendChild(s)) | |
} | |
) | |
} | |
addHost(t) { | |
const r = []; | |
this._addStylesToHost(this._stylesSet, t, r), | |
this._hostNodes.set(t, r) | |
} | |
removeHost(t) { | |
const r = this._hostNodes.get(t); | |
r && r.forEach(pC), | |
this._hostNodes.delete(t) | |
} | |
onStylesAdded(t) { | |
this._hostNodes.forEach( (r, i) => { | |
this._addStylesToHost(t, i, r) | |
} | |
) | |
} | |
ngOnDestroy() { | |
this._hostNodes.forEach(t => t.forEach(pC)) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
function pC(n) { | |
_r().remove(n) | |
} | |
const kf = { | |
svg: "http://www.w3.org/2000/svg", | |
xhtml: "http://www.w3.org/1999/xhtml", | |
xlink: "http://www.w3.org/1999/xlink", | |
xml: "http://www.w3.org/XML/1998/namespace", | |
xmlns: "http://www.w3.org/2000/xmlns/", | |
math: "http://www.w3.org/1998/MathML/" | |
} | |
, Lf = /%COMP%/g; | |
function dc(n, e, t) { | |
for (let r = 0; r < e.length; r++) { | |
let i = e[r]; | |
Array.isArray(i) ? dc(n, i, t) : (i = i.replace(Lf, n), | |
t.push(i)) | |
} | |
return t | |
} | |
function _C(n) { | |
return e => { | |
if ("__ngUnwrap__" === e) | |
return n; | |
!1 === n(e) && (e.preventDefault(), | |
e.returnValue = !1) | |
} | |
} | |
let hc = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this.eventManager = t, | |
this.sharedStylesHost = r, | |
this.appId = i, | |
this.rendererByCompId = new Map, | |
this.defaultRenderer = new Vf(t) | |
} | |
createRenderer(t, r) { | |
if (!t || !r) | |
return this.defaultRenderer; | |
switch (r.encapsulation) { | |
case Gn.Emulated: | |
{ | |
let i = this.rendererByCompId.get(r.id); | |
return i || (i = new rk(this.eventManager,this.sharedStylesHost,r,this.appId), | |
this.rendererByCompId.set(r.id, i)), | |
i.applyToHost(t), | |
i | |
} | |
case 1: | |
case Gn.ShadowDom: | |
return new ik(this.eventManager,this.sharedStylesHost,t,r); | |
default: | |
if (!this.rendererByCompId.has(r.id)) { | |
const i = dc(r.id, r.styles, []); | |
this.sharedStylesHost.addStyles(i), | |
this.rendererByCompId.set(r.id, this.defaultRenderer) | |
} | |
return this.defaultRenderer | |
} | |
} | |
begin() {} | |
end() {} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(uc),Q(oa),Q(Ys)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
class Vf { | |
constructor(e) { | |
this.eventManager = e, | |
this.data = Object.create(null), | |
this.destroyNode = null | |
} | |
destroy() {} | |
createElement(e, t) { | |
return t ? document.createElementNS(kf[t] || t, e) : document.createElement(e) | |
} | |
createComment(e) { | |
return document.createComment(e) | |
} | |
createText(e) { | |
return document.createTextNode(e) | |
} | |
appendChild(e, t) { | |
(vC(e) ? e.content : e).appendChild(t) | |
} | |
insertBefore(e, t, r) { | |
e && (vC(e) ? e.content : e).insertBefore(t, r) | |
} | |
removeChild(e, t) { | |
e && e.removeChild(t) | |
} | |
selectRootElement(e, t) { | |
let r = "string" == typeof e ? document.querySelector(e) : e; | |
if (!r) | |
throw new Error(`The selector "${e}" did not match any elements`); | |
return t || (r.textContent = ""), | |
r | |
} | |
parentNode(e) { | |
return e.parentNode | |
} | |
nextSibling(e) { | |
return e.nextSibling | |
} | |
setAttribute(e, t, r, i) { | |
if (i) { | |
t = i + ":" + t; | |
const o = kf[i]; | |
o ? e.setAttributeNS(o, t, r) : e.setAttribute(t, r) | |
} else | |
e.setAttribute(t, r) | |
} | |
removeAttribute(e, t, r) { | |
if (r) { | |
const i = kf[r]; | |
i ? e.removeAttributeNS(i, t) : e.removeAttribute(`${r}:${t}`) | |
} else | |
e.removeAttribute(t) | |
} | |
addClass(e, t) { | |
e.classList.add(t) | |
} | |
removeClass(e, t) { | |
e.classList.remove(t) | |
} | |
setStyle(e, t, r, i) { | |
i & (pn.DashCase | pn.Important) ? e.style.setProperty(t, r, i & pn.Important ? "important" : "") : e.style[t] = r | |
} | |
removeStyle(e, t, r) { | |
r & pn.DashCase ? e.style.removeProperty(t) : e.style[t] = "" | |
} | |
setProperty(e, t, r) { | |
e[t] = r | |
} | |
setValue(e, t) { | |
e.nodeValue = t | |
} | |
listen(e, t, r) { | |
return "string" == typeof e ? this.eventManager.addGlobalEventListener(e, t, _C(r)) : this.eventManager.addEventListener(e, t, _C(r)) | |
} | |
} | |
function vC(n) { | |
return "TEMPLATE" === n.tagName && void 0 !== n.content | |
} | |
class rk extends Vf { | |
constructor(e, t, r, i) { | |
super(e), | |
this.component = r; | |
const o = dc(i + "-" + r.id, r.styles, []); | |
t.addStyles(o), | |
this.contentAttr = function ek(n) { | |
return "_ngcontent-%COMP%".replace(Lf, n) | |
}(i + "-" + r.id), | |
this.hostAttr = function tk(n) { | |
return "_nghost-%COMP%".replace(Lf, n) | |
}(i + "-" + r.id) | |
} | |
applyToHost(e) { | |
super.setAttribute(e, this.hostAttr, "") | |
} | |
createElement(e, t) { | |
const r = super.createElement(e, t); | |
return super.setAttribute(r, this.contentAttr, ""), | |
r | |
} | |
} | |
class ik extends Vf { | |
constructor(e, t, r, i) { | |
super(e), | |
this.sharedStylesHost = t, | |
this.hostEl = r, | |
this.shadowRoot = r.attachShadow({ | |
mode: "open" | |
}), | |
this.sharedStylesHost.addHost(this.shadowRoot); | |
const o = dc(i.id, i.styles, []); | |
for (let s = 0; s < o.length; s++) { | |
const a = document.createElement("style"); | |
a.textContent = o[s], | |
this.shadowRoot.appendChild(a) | |
} | |
} | |
nodeOrShadowRoot(e) { | |
return e === this.hostEl ? this.shadowRoot : e | |
} | |
destroy() { | |
this.sharedStylesHost.removeHost(this.shadowRoot) | |
} | |
appendChild(e, t) { | |
return super.appendChild(this.nodeOrShadowRoot(e), t) | |
} | |
insertBefore(e, t, r) { | |
return super.insertBefore(this.nodeOrShadowRoot(e), t, r) | |
} | |
removeChild(e, t) { | |
return super.removeChild(this.nodeOrShadowRoot(e), t) | |
} | |
parentNode(e) { | |
return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e))) | |
} | |
} | |
let ok = ( () => { | |
class n extends hC { | |
constructor(t) { | |
super(t) | |
} | |
supports(t) { | |
return !0 | |
} | |
addEventListener(t, r, i) { | |
return t.addEventListener(r, i, !1), | |
() => this.removeEventListener(t, r, i) | |
} | |
removeEventListener(t, r, i) { | |
return t.removeEventListener(r, i) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
const bC = ["alt", "control", "meta", "shift"] | |
, sk = { | |
"\b": "Backspace", | |
"\t": "Tab", | |
"\x7f": "Delete", | |
"\x1b": "Escape", | |
Del: "Delete", | |
Esc: "Escape", | |
Left: "ArrowLeft", | |
Right: "ArrowRight", | |
Up: "ArrowUp", | |
Down: "ArrowDown", | |
Menu: "ContextMenu", | |
Scroll: "ScrollLock", | |
Win: "OS" | |
} | |
, ak = { | |
alt: n => n.altKey, | |
control: n => n.ctrlKey, | |
meta: n => n.metaKey, | |
shift: n => n.shiftKey | |
}; | |
let lk = ( () => { | |
class n extends hC { | |
constructor(t) { | |
super(t) | |
} | |
supports(t) { | |
return null != n.parseEventName(t) | |
} | |
addEventListener(t, r, i) { | |
const o = n.parseEventName(r) | |
, s = n.eventCallback(o.fullKey, i, this.manager.getZone()); | |
return this.manager.getZone().runOutsideAngular( () => _r().onAndCancel(t, o.domEventName, s)) | |
} | |
static parseEventName(t) { | |
const r = t.toLowerCase().split(".") | |
, i = r.shift(); | |
if (0 === r.length || "keydown" !== i && "keyup" !== i) | |
return null; | |
const o = n._normalizeKey(r.pop()); | |
let s = "" | |
, a = r.indexOf("code"); | |
if (a > -1 && (r.splice(a, 1), | |
s = "code."), | |
bC.forEach(c => { | |
const u = r.indexOf(c); | |
u > -1 && (r.splice(u, 1), | |
s += c + ".") | |
} | |
), | |
s += o, | |
0 != r.length || 0 === o.length) | |
return null; | |
const l = {}; | |
return l.domEventName = i, | |
l.fullKey = s, | |
l | |
} | |
static matchEventFullKeyCode(t, r) { | |
let i = sk[t.key] || t.key | |
, o = ""; | |
return r.indexOf("code.") > -1 && (i = t.code, | |
o = "code."), | |
!(null == i || !i) && (i = i.toLowerCase(), | |
" " === i ? i = "space" : "." === i && (i = "dot"), | |
bC.forEach(s => { | |
s !== i && (0, | |
ak[s])(t) && (o += s + ".") | |
} | |
), | |
o += i, | |
o === r) | |
} | |
static eventCallback(t, r, i) { | |
return o => { | |
n.matchEventFullKeyCode(o, t) && i.runGuarded( () => r(o)) | |
} | |
} | |
static _normalizeKey(t) { | |
return "esc" === t ? "escape" : t | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
const TC = [{ | |
provide: Jh, | |
useValue: oC | |
}, { | |
provide: l0, | |
useValue: function ck() { | |
Nf.makeCurrent() | |
}, | |
multi: !0 | |
}, { | |
provide: yt, | |
useFactory: function dk() { | |
return function HI(n) { | |
Od = n | |
}(document), | |
document | |
}, | |
deps: [] | |
}] | |
, hk = y0(HP, "browser", TC) | |
, EC = new ee("") | |
, wC = [{ | |
provide: Wl, | |
useClass: class YN { | |
addToWindow(e) { | |
Ze.getAngularTestability = (r, i=!0) => { | |
const o = e.findTestabilityInTree(r, i); | |
if (null == o) | |
throw new Error("Could not find testability for element."); | |
return o | |
} | |
, | |
Ze.getAllAngularTestabilities = () => e.getAllTestabilities(), | |
Ze.getAllAngularRootElements = () => e.getAllRootElements(), | |
Ze.frameworkStabilizers || (Ze.frameworkStabilizers = []), | |
Ze.frameworkStabilizers.push(r => { | |
const i = Ze.getAllAngularTestabilities(); | |
let o = i.length | |
, s = !1; | |
const a = function(l) { | |
s = s || l, | |
o--, | |
0 == o && r(s) | |
}; | |
i.forEach(function(l) { | |
l.whenStable(a) | |
}) | |
} | |
) | |
} | |
findTestabilityInTree(e, t, r) { | |
if (null == t) | |
return null; | |
const i = e.getTestability(t); | |
return null != i ? i : r ? _r().isShadowRoot(t) ? this.findTestabilityInTree(e, t.host, !0) : this.findTestabilityInTree(e, t.parentElement, !0) : null | |
} | |
} | |
, | |
deps: [] | |
}, { | |
provide: p0, | |
useClass: af, | |
deps: [nt, lf, Wl] | |
}, { | |
provide: af, | |
useClass: af, | |
deps: [nt, lf, Wl] | |
}] | |
, DC = [{ | |
provide: zd, | |
useValue: "root" | |
}, { | |
provide: bo, | |
useFactory: function uk() { | |
return new bo | |
}, | |
deps: [] | |
}, { | |
provide: cc, | |
useClass: ok, | |
multi: !0, | |
deps: [yt, nt, Jh] | |
}, { | |
provide: cc, | |
useClass: lk, | |
multi: !0, | |
deps: [yt] | |
}, { | |
provide: hc, | |
useClass: hc, | |
deps: [uc, oa, Ys] | |
}, { | |
provide: Os, | |
useExisting: hc | |
}, { | |
provide: fC, | |
useExisting: oa | |
}, { | |
provide: oa, | |
useClass: oa, | |
deps: [yt] | |
}, { | |
provide: uc, | |
useClass: uc, | |
deps: [cc, nt] | |
}, { | |
provide: class yN { | |
} | |
, | |
useClass: ZN, | |
deps: [] | |
}, []]; | |
let MC = ( () => { | |
class n { | |
constructor(t) {} | |
static withServerTransition(t) { | |
return { | |
ngModule: n, | |
providers: [{ | |
provide: Ys, | |
useValue: t.appId | |
}, { | |
provide: dC, | |
useExisting: Ys | |
}, QN] | |
} | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(EC, 12)) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
providers: [...DC, ...wC], | |
imports: [Ff, zP] | |
}), | |
n | |
} | |
)() | |
, AC = ( () => { | |
class n { | |
constructor(t) { | |
this._doc = t | |
} | |
getTitle() { | |
return this._doc.title | |
} | |
setTitle(t) { | |
this._doc.title = t || "" | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function(t) { | |
let r = null; | |
return r = t ? new t : function pk() { | |
return new AC(Q(yt)) | |
}(), | |
r | |
}, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
"undefined" != typeof window && window; | |
const {isArray: Tk} = Array | |
, {getPrototypeOf: Ek, prototype: wk, keys: Dk} = Object; | |
function xC(n) { | |
if (1 === n.length) { | |
const e = n[0]; | |
if (Tk(e)) | |
return { | |
args: e, | |
keys: null | |
}; | |
if (function Mk(n) { | |
return n && "object" == typeof n && Ek(n) === wk | |
}(e)) { | |
const t = Dk(e); | |
return { | |
args: t.map(r => e[r]), | |
keys: t | |
} | |
} | |
} | |
return { | |
args: n, | |
keys: null | |
} | |
} | |
const {isArray: Ak} = Array; | |
function RC(n) { | |
return Fe(e => function Ik(n, e) { | |
return Ak(e) ? n(...e) : n(e) | |
}(n, e)) | |
} | |
function FC(n, e) { | |
return n.reduce( (t, r, i) => (t[r] = e[i], | |
t), {}) | |
} | |
let PC = ( () => { | |
class n { | |
constructor(t, r) { | |
this._renderer = t, | |
this._elementRef = r, | |
this.onChange = i => {} | |
, | |
this.onTouched = () => {} | |
} | |
setProperty(t, r) { | |
this._renderer.setProperty(this._elementRef.nativeElement, t, r) | |
} | |
registerOnTouched(t) { | |
this.onTouched = t | |
} | |
registerOnChange(t) { | |
this.onChange = t | |
} | |
setDisabledState(t) { | |
this.setProperty("disabled", t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Sr),B(Vt)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n | |
}), | |
n | |
} | |
)() | |
, Vi = ( () => { | |
class n extends PC { | |
} | |
return n.\u0275fac = function() { | |
let e; | |
return function(r) { | |
return (e || (e = function Wt(n) { | |
return Qr( () => { | |
const e = n.prototype.constructor | |
, t = e[wr] || sd(e) | |
, r = Object.prototype; | |
let i = Object.getPrototypeOf(n.prototype).constructor; | |
for (; i && i !== r; ) { | |
const o = i[wr] || sd(i); | |
if (o && o !== t) | |
return o; | |
i = Object.getPrototypeOf(i) | |
} | |
return o => new o | |
} | |
) | |
}(n)))(r || n) | |
} | |
}(), | |
n.\u0275dir = ue({ | |
type: n, | |
features: [ke] | |
}), | |
n | |
} | |
)(); | |
const ar = new ee("NgValueAccessor") | |
, Rk = { | |
provide: ar, | |
useExisting: qe( () => jf), | |
multi: !0 | |
} | |
, Pk = new ee("CompositionEventMode"); | |
let jf = ( () => { | |
class n extends PC { | |
constructor(t, r, i) { | |
super(t, r), | |
this._compositionMode = i, | |
this._composing = !1, | |
null == this._compositionMode && (this._compositionMode = !function Fk() { | |
const n = _r() ? _r().getUserAgent() : ""; | |
return /android (\d+)/.test(n.toLowerCase()) | |
}()) | |
} | |
writeValue(t) { | |
this.setProperty("value", null == t ? "" : t) | |
} | |
_handleInput(t) { | |
(!this._compositionMode || this._compositionMode && !this._composing) && this.onChange(t) | |
} | |
_compositionStart() { | |
this._composing = !0 | |
} | |
_compositionEnd(t) { | |
this._composing = !1, | |
this._compositionMode && this.onChange(t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Sr),B(Vt),B(Pk, 8)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["input", "formControlName", "", 3, "type", "checkbox"], ["textarea", "formControlName", ""], ["input", "formControl", "", 3, "type", "checkbox"], ["textarea", "formControl", ""], ["input", "ngModel", "", 3, "type", "checkbox"], ["textarea", "ngModel", ""], ["", "ngDefaultControl", ""]], | |
hostBindings: function(t, r) { | |
1 & t && _e("input", function(o) { | |
return r._handleInput(o.target.value) | |
})("blur", function() { | |
return r.onTouched() | |
})("compositionstart", function() { | |
return r._compositionStart() | |
})("compositionend", function(o) { | |
return r._compositionEnd(o.target.value) | |
}) | |
}, | |
features: [tt([Rk]), ke] | |
}), | |
n | |
} | |
)(); | |
const Kt = new ee("NgValidators") | |
, ai = new ee("NgAsyncValidators"); | |
function $C(n) { | |
return null != n | |
} | |
function WC(n) { | |
return Bs(n) ? wt(n) : n | |
} | |
function GC(n) { | |
let e = {}; | |
return n.forEach(t => { | |
e = null != t ? Object.assign(Object.assign({}, e), t) : e | |
} | |
), | |
0 === Object.keys(e).length ? null : e | |
} | |
function qC(n, e) { | |
return e.map(t => t(n)) | |
} | |
function KC(n) { | |
return n.map(e => function kk(n) { | |
return !n.validate | |
}(e) ? e : t => e.validate(t)) | |
} | |
function Hf(n) { | |
return null != n ? function QC(n) { | |
if (!n) | |
return null; | |
const e = n.filter($C); | |
return 0 == e.length ? null : function(t) { | |
return GC(qC(t, e)) | |
} | |
}(KC(n)) : null | |
} | |
function zf(n) { | |
return null != n ? function YC(n) { | |
if (!n) | |
return null; | |
const e = n.filter($C); | |
return 0 == e.length ? null : function(t) { | |
return function Sk(...n) { | |
const e = Kg(n) | |
, {args: t, keys: r} = xC(n) | |
, i = new vt(o => { | |
const {length: s} = t; | |
if (!s) | |
return void o.complete(); | |
const a = new Array(s); | |
let l = s | |
, c = s; | |
for (let u = 0; u < s; u++) { | |
let d = !1; | |
_n(t[u]).subscribe(pt(o, h => { | |
d || (d = !0, | |
c--), | |
a[u] = h | |
} | |
, () => l--, void 0, () => { | |
(!l || !d) && (c || o.next(r ? FC(r, a) : a), | |
o.complete()) | |
} | |
)) | |
} | |
} | |
); | |
return e ? i.pipe(RC(e)) : i | |
}(qC(t, e).map(WC)).pipe(Fe(GC)) | |
} | |
}(KC(n)) : null | |
} | |
function ZC(n, e) { | |
return null === n ? [e] : Array.isArray(n) ? [...n, e] : [n, e] | |
} | |
function $f(n) { | |
return n ? Array.isArray(n) ? n : [n] : [] | |
} | |
function pc(n, e) { | |
return Array.isArray(n) ? n.includes(e) : n === e | |
} | |
function eT(n, e) { | |
const t = $f(e); | |
return $f(n).forEach(i => { | |
pc(t, i) || t.push(i) | |
} | |
), | |
t | |
} | |
function tT(n, e) { | |
return $f(e).filter(t => !pc(n, t)) | |
} | |
class nT { | |
constructor() { | |
this._rawValidators = [], | |
this._rawAsyncValidators = [], | |
this._onDestroyCallbacks = [] | |
} | |
get value() { | |
return this.control ? this.control.value : null | |
} | |
get valid() { | |
return this.control ? this.control.valid : null | |
} | |
get invalid() { | |
return this.control ? this.control.invalid : null | |
} | |
get pending() { | |
return this.control ? this.control.pending : null | |
} | |
get disabled() { | |
return this.control ? this.control.disabled : null | |
} | |
get enabled() { | |
return this.control ? this.control.enabled : null | |
} | |
get errors() { | |
return this.control ? this.control.errors : null | |
} | |
get pristine() { | |
return this.control ? this.control.pristine : null | |
} | |
get dirty() { | |
return this.control ? this.control.dirty : null | |
} | |
get touched() { | |
return this.control ? this.control.touched : null | |
} | |
get status() { | |
return this.control ? this.control.status : null | |
} | |
get untouched() { | |
return this.control ? this.control.untouched : null | |
} | |
get statusChanges() { | |
return this.control ? this.control.statusChanges : null | |
} | |
get valueChanges() { | |
return this.control ? this.control.valueChanges : null | |
} | |
get path() { | |
return null | |
} | |
_setValidators(e) { | |
this._rawValidators = e || [], | |
this._composedValidatorFn = Hf(this._rawValidators) | |
} | |
_setAsyncValidators(e) { | |
this._rawAsyncValidators = e || [], | |
this._composedAsyncValidatorFn = zf(this._rawAsyncValidators) | |
} | |
get validator() { | |
return this._composedValidatorFn || null | |
} | |
get asyncValidator() { | |
return this._composedAsyncValidatorFn || null | |
} | |
_registerOnDestroy(e) { | |
this._onDestroyCallbacks.push(e) | |
} | |
_invokeOnDestroyCallbacks() { | |
this._onDestroyCallbacks.forEach(e => e()), | |
this._onDestroyCallbacks = [] | |
} | |
reset(e) { | |
this.control && this.control.reset(e) | |
} | |
hasError(e, t) { | |
return !!this.control && this.control.hasError(e, t) | |
} | |
getError(e, t) { | |
return this.control ? this.control.getError(e, t) : null | |
} | |
} | |
class li extends nT { | |
constructor() { | |
super(...arguments), | |
this._parent = null, | |
this.name = null, | |
this.valueAccessor = null | |
} | |
} | |
class an extends nT { | |
get formDirective() { | |
return null | |
} | |
get path() { | |
return null | |
} | |
} | |
let iT = ( () => { | |
class n extends class rT { | |
constructor(e) { | |
this._cd = e | |
} | |
get isTouched() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.touched) | |
} | |
get isUntouched() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.untouched) | |
} | |
get isPristine() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.pristine) | |
} | |
get isDirty() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.dirty) | |
} | |
get isValid() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.valid) | |
} | |
get isInvalid() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.invalid) | |
} | |
get isPending() { | |
var e, t; | |
return !(null === (t = null === (e = this._cd) || void 0 === e ? void 0 : e.control) || void 0 === t || !t.pending) | |
} | |
get isSubmitted() { | |
var e; | |
return !(null === (e = this._cd) || void 0 === e || !e.submitted) | |
} | |
} | |
{ | |
constructor(t) { | |
super(t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(li, 2)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "formControlName", ""], ["", "ngModel", ""], ["", "formControl", ""]], | |
hostVars: 14, | |
hostBindings: function(t, r) { | |
2 & t && Xn("ng-untouched", r.isUntouched)("ng-touched", r.isTouched)("ng-pristine", r.isPristine)("ng-dirty", r.isDirty)("ng-valid", r.isValid)("ng-invalid", r.isInvalid)("ng-pending", r.isPending) | |
}, | |
features: [ke] | |
}), | |
n | |
} | |
)(); | |
const sa = "VALID" | |
, mc = "INVALID" | |
, Uo = "PENDING" | |
, aa = "DISABLED"; | |
function sT(n) { | |
return Array.isArray(n) ? Hf(n) : n || null | |
} | |
function aT(n) { | |
return Array.isArray(n) ? zf(n) : n || null | |
} | |
function _c(n) { | |
return null != n && !Array.isArray(n) && "object" == typeof n | |
} | |
function la(n, e) { | |
var t, r; | |
(function Zf(n, e) { | |
const t = function XC(n) { | |
return n._rawValidators | |
}(n); | |
null !== e.validator ? n.setValidators(ZC(t, e.validator)) : "function" == typeof t && n.setValidators([t]); | |
const r = function JC(n) { | |
return n._rawAsyncValidators | |
}(n); | |
null !== e.asyncValidator ? n.setAsyncValidators(ZC(r, e.asyncValidator)) : "function" == typeof r && n.setAsyncValidators([r]); | |
const i = () => n.updateValueAndValidity(); | |
bc(e._rawValidators, i), | |
bc(e._rawAsyncValidators, i) | |
} | |
)(n, e), | |
e.valueAccessor.writeValue(n.value), | |
n.disabled && (null === (r = (t = e.valueAccessor).setDisabledState) || void 0 === r || r.call(t, !0)), | |
function Gk(n, e) { | |
e.valueAccessor.registerOnChange(t => { | |
n._pendingValue = t, | |
n._pendingChange = !0, | |
n._pendingDirty = !0, | |
"change" === n.updateOn && dT(n, e) | |
} | |
) | |
}(n, e), | |
function Kk(n, e) { | |
const t = (r, i) => { | |
e.valueAccessor.writeValue(r), | |
i && e.viewToModelUpdate(r) | |
} | |
; | |
n.registerOnChange(t), | |
e._registerOnDestroy( () => { | |
n._unregisterOnChange(t) | |
} | |
) | |
}(n, e), | |
function qk(n, e) { | |
e.valueAccessor.registerOnTouched( () => { | |
n._pendingTouched = !0, | |
"blur" === n.updateOn && n._pendingChange && dT(n, e), | |
"submit" !== n.updateOn && n.markAsTouched() | |
} | |
) | |
}(n, e), | |
function Wk(n, e) { | |
if (e.valueAccessor.setDisabledState) { | |
const t = r => { | |
e.valueAccessor.setDisabledState(r) | |
} | |
; | |
n.registerOnDisabledChange(t), | |
e._registerOnDestroy( () => { | |
n._unregisterOnDisabledChange(t) | |
} | |
) | |
} | |
}(n, e) | |
} | |
function bc(n, e) { | |
n.forEach(t => { | |
t.registerOnValidatorChange && t.registerOnValidatorChange(e) | |
} | |
) | |
} | |
function dT(n, e) { | |
n._pendingDirty && n.markAsDirty(), | |
n.setValue(n._pendingValue, { | |
emitModelToViewChange: !1 | |
}), | |
e.viewToModelUpdate(n._pendingValue), | |
n._pendingChange = !1 | |
} | |
function gT(n, e) { | |
const t = n.indexOf(e); | |
t > -1 && n.splice(t, 1) | |
} | |
function mT(n) { | |
return "object" == typeof n && null !== n && 2 === Object.keys(n).length && "value"in n && "disabled"in n | |
} | |
const nL = { | |
provide: li, | |
useExisting: qe( () => tp) | |
} | |
, bT = ( () => Promise.resolve())(); | |
let tp = ( () => { | |
class n extends li { | |
constructor(t, r, i, o, s) { | |
super(), | |
this._changeDetectorRef = s, | |
this.control = new class extends class uT { | |
constructor(e, t) { | |
this._pendingDirty = !1, | |
this._hasOwnPendingAsyncValidator = !1, | |
this._pendingTouched = !1, | |
this._onCollectionChange = () => {} | |
, | |
this._parent = null, | |
this.pristine = !0, | |
this.touched = !1, | |
this._onDisabledChange = [], | |
this._rawValidators = e, | |
this._rawAsyncValidators = t, | |
this._composedValidatorFn = sT(this._rawValidators), | |
this._composedAsyncValidatorFn = aT(this._rawAsyncValidators) | |
} | |
get validator() { | |
return this._composedValidatorFn | |
} | |
set validator(e) { | |
this._rawValidators = this._composedValidatorFn = e | |
} | |
get asyncValidator() { | |
return this._composedAsyncValidatorFn | |
} | |
set asyncValidator(e) { | |
this._rawAsyncValidators = this._composedAsyncValidatorFn = e | |
} | |
get parent() { | |
return this._parent | |
} | |
get valid() { | |
return this.status === sa | |
} | |
get invalid() { | |
return this.status === mc | |
} | |
get pending() { | |
return this.status == Uo | |
} | |
get disabled() { | |
return this.status === aa | |
} | |
get enabled() { | |
return this.status !== aa | |
} | |
get dirty() { | |
return !this.pristine | |
} | |
get untouched() { | |
return !this.touched | |
} | |
get updateOn() { | |
return this._updateOn ? this._updateOn : this.parent ? this.parent.updateOn : "change" | |
} | |
setValidators(e) { | |
this._rawValidators = e, | |
this._composedValidatorFn = sT(e) | |
} | |
setAsyncValidators(e) { | |
this._rawAsyncValidators = e, | |
this._composedAsyncValidatorFn = aT(e) | |
} | |
addValidators(e) { | |
this.setValidators(eT(e, this._rawValidators)) | |
} | |
addAsyncValidators(e) { | |
this.setAsyncValidators(eT(e, this._rawAsyncValidators)) | |
} | |
removeValidators(e) { | |
this.setValidators(tT(e, this._rawValidators)) | |
} | |
removeAsyncValidators(e) { | |
this.setAsyncValidators(tT(e, this._rawAsyncValidators)) | |
} | |
hasValidator(e) { | |
return pc(this._rawValidators, e) | |
} | |
hasAsyncValidator(e) { | |
return pc(this._rawAsyncValidators, e) | |
} | |
clearValidators() { | |
this.validator = null | |
} | |
clearAsyncValidators() { | |
this.asyncValidator = null | |
} | |
markAsTouched(e={}) { | |
this.touched = !0, | |
this._parent && !e.onlySelf && this._parent.markAsTouched(e) | |
} | |
markAllAsTouched() { | |
this.markAsTouched({ | |
onlySelf: !0 | |
}), | |
this._forEachChild(e => e.markAllAsTouched()) | |
} | |
markAsUntouched(e={}) { | |
this.touched = !1, | |
this._pendingTouched = !1, | |
this._forEachChild(t => { | |
t.markAsUntouched({ | |
onlySelf: !0 | |
}) | |
} | |
), | |
this._parent && !e.onlySelf && this._parent._updateTouched(e) | |
} | |
markAsDirty(e={}) { | |
this.pristine = !1, | |
this._parent && !e.onlySelf && this._parent.markAsDirty(e) | |
} | |
markAsPristine(e={}) { | |
this.pristine = !0, | |
this._pendingDirty = !1, | |
this._forEachChild(t => { | |
t.markAsPristine({ | |
onlySelf: !0 | |
}) | |
} | |
), | |
this._parent && !e.onlySelf && this._parent._updatePristine(e) | |
} | |
markAsPending(e={}) { | |
this.status = Uo, | |
!1 !== e.emitEvent && this.statusChanges.emit(this.status), | |
this._parent && !e.onlySelf && this._parent.markAsPending(e) | |
} | |
disable(e={}) { | |
const t = this._parentMarkedDirty(e.onlySelf); | |
this.status = aa, | |
this.errors = null, | |
this._forEachChild(r => { | |
r.disable(Object.assign(Object.assign({}, e), { | |
onlySelf: !0 | |
})) | |
} | |
), | |
this._updateValue(), | |
!1 !== e.emitEvent && (this.valueChanges.emit(this.value), | |
this.statusChanges.emit(this.status)), | |
this._updateAncestors(Object.assign(Object.assign({}, e), { | |
skipPristineCheck: t | |
})), | |
this._onDisabledChange.forEach(r => r(!0)) | |
} | |
enable(e={}) { | |
const t = this._parentMarkedDirty(e.onlySelf); | |
this.status = sa, | |
this._forEachChild(r => { | |
r.enable(Object.assign(Object.assign({}, e), { | |
onlySelf: !0 | |
})) | |
} | |
), | |
this.updateValueAndValidity({ | |
onlySelf: !0, | |
emitEvent: e.emitEvent | |
}), | |
this._updateAncestors(Object.assign(Object.assign({}, e), { | |
skipPristineCheck: t | |
})), | |
this._onDisabledChange.forEach(r => r(!1)) | |
} | |
_updateAncestors(e) { | |
this._parent && !e.onlySelf && (this._parent.updateValueAndValidity(e), | |
e.skipPristineCheck || this._parent._updatePristine(), | |
this._parent._updateTouched()) | |
} | |
setParent(e) { | |
this._parent = e | |
} | |
getRawValue() { | |
return this.value | |
} | |
updateValueAndValidity(e={}) { | |
this._setInitialStatus(), | |
this._updateValue(), | |
this.enabled && (this._cancelExistingSubscription(), | |
this.errors = this._runValidator(), | |
this.status = this._calculateStatus(), | |
(this.status === sa || this.status === Uo) && this._runAsyncValidator(e.emitEvent)), | |
!1 !== e.emitEvent && (this.valueChanges.emit(this.value), | |
this.statusChanges.emit(this.status)), | |
this._parent && !e.onlySelf && this._parent.updateValueAndValidity(e) | |
} | |
_updateTreeValidity(e={ | |
emitEvent: !0 | |
}) { | |
this._forEachChild(t => t._updateTreeValidity(e)), | |
this.updateValueAndValidity({ | |
onlySelf: !0, | |
emitEvent: e.emitEvent | |
}) | |
} | |
_setInitialStatus() { | |
this.status = this._allControlsDisabled() ? aa : sa | |
} | |
_runValidator() { | |
return this.validator ? this.validator(this) : null | |
} | |
_runAsyncValidator(e) { | |
if (this.asyncValidator) { | |
this.status = Uo, | |
this._hasOwnPendingAsyncValidator = !0; | |
const t = WC(this.asyncValidator(this)); | |
this._asyncValidationSubscription = t.subscribe(r => { | |
this._hasOwnPendingAsyncValidator = !1, | |
this.setErrors(r, { | |
emitEvent: e | |
}) | |
} | |
) | |
} | |
} | |
_cancelExistingSubscription() { | |
this._asyncValidationSubscription && (this._asyncValidationSubscription.unsubscribe(), | |
this._hasOwnPendingAsyncValidator = !1) | |
} | |
setErrors(e, t={}) { | |
this.errors = e, | |
this._updateControlsErrors(!1 !== t.emitEvent) | |
} | |
get(e) { | |
let t = e; | |
return null == t || (Array.isArray(t) || (t = t.split(".")), | |
0 === t.length) ? null : t.reduce( (r, i) => r && r._find(i), this) | |
} | |
getError(e, t) { | |
const r = t ? this.get(t) : this; | |
return r && r.errors ? r.errors[e] : null | |
} | |
hasError(e, t) { | |
return !!this.getError(e, t) | |
} | |
get root() { | |
let e = this; | |
for (; e._parent; ) | |
e = e._parent; | |
return e | |
} | |
_updateControlsErrors(e) { | |
this.status = this._calculateStatus(), | |
e && this.statusChanges.emit(this.status), | |
this._parent && this._parent._updateControlsErrors(e) | |
} | |
_initObservables() { | |
this.valueChanges = new Se, | |
this.statusChanges = new Se | |
} | |
_calculateStatus() { | |
return this._allControlsDisabled() ? aa : this.errors ? mc : this._hasOwnPendingAsyncValidator || this._anyControlsHaveStatus(Uo) ? Uo : this._anyControlsHaveStatus(mc) ? mc : sa | |
} | |
_anyControlsHaveStatus(e) { | |
return this._anyControls(t => t.status === e) | |
} | |
_anyControlsDirty() { | |
return this._anyControls(e => e.dirty) | |
} | |
_anyControlsTouched() { | |
return this._anyControls(e => e.touched) | |
} | |
_updatePristine(e={}) { | |
this.pristine = !this._anyControlsDirty(), | |
this._parent && !e.onlySelf && this._parent._updatePristine(e) | |
} | |
_updateTouched(e={}) { | |
this.touched = this._anyControlsTouched(), | |
this._parent && !e.onlySelf && this._parent._updateTouched(e) | |
} | |
_registerOnCollectionChange(e) { | |
this._onCollectionChange = e | |
} | |
_setUpdateStrategy(e) { | |
_c(e) && null != e.updateOn && (this._updateOn = e.updateOn) | |
} | |
_parentMarkedDirty(e) { | |
return !e && !(!this._parent || !this._parent.dirty) && !this._parent._anyControlsDirty() | |
} | |
_find(e) { | |
return null | |
} | |
} | |
{ | |
constructor(e=null, t, r) { | |
super(function Kf(n) { | |
return (_c(n) ? n.validators : n) || null | |
}(t), function Qf(n, e) { | |
return (_c(e) ? e.asyncValidators : n) || null | |
}(r, t)), | |
this.defaultValue = null, | |
this._onChange = [], | |
this._pendingChange = !1, | |
this._applyFormState(e), | |
this._setUpdateStrategy(t), | |
this._initObservables(), | |
this.updateValueAndValidity({ | |
onlySelf: !0, | |
emitEvent: !!this.asyncValidator | |
}), | |
_c(t) && (t.nonNullable || t.initialValueIsDefault) && (this.defaultValue = mT(e) ? e.value : e) | |
} | |
setValue(e, t={}) { | |
this.value = this._pendingValue = e, | |
this._onChange.length && !1 !== t.emitModelToViewChange && this._onChange.forEach(r => r(this.value, !1 !== t.emitViewToModelChange)), | |
this.updateValueAndValidity(t) | |
} | |
patchValue(e, t={}) { | |
this.setValue(e, t) | |
} | |
reset(e=this.defaultValue, t={}) { | |
this._applyFormState(e), | |
this.markAsPristine(t), | |
this.markAsUntouched(t), | |
this.setValue(this.value, t), | |
this._pendingChange = !1 | |
} | |
_updateValue() {} | |
_anyControls(e) { | |
return !1 | |
} | |
_allControlsDisabled() { | |
return this.disabled | |
} | |
registerOnChange(e) { | |
this._onChange.push(e) | |
} | |
_unregisterOnChange(e) { | |
gT(this._onChange, e) | |
} | |
registerOnDisabledChange(e) { | |
this._onDisabledChange.push(e) | |
} | |
_unregisterOnDisabledChange(e) { | |
gT(this._onDisabledChange, e) | |
} | |
_forEachChild(e) {} | |
_syncPendingControls() { | |
return !("submit" !== this.updateOn || (this._pendingDirty && this.markAsDirty(), | |
this._pendingTouched && this.markAsTouched(), | |
!this._pendingChange) || (this.setValue(this._pendingValue, { | |
onlySelf: !0, | |
emitModelToViewChange: !1 | |
}), | |
0)) | |
} | |
_applyFormState(e) { | |
mT(e) ? (this.value = this._pendingValue = e.value, | |
e.disabled ? this.disable({ | |
onlySelf: !0, | |
emitEvent: !1 | |
}) : this.enable({ | |
onlySelf: !0, | |
emitEvent: !1 | |
})) : this.value = this._pendingValue = e | |
} | |
} | |
, | |
this._registered = !1, | |
this.update = new Se, | |
this._parent = t, | |
this._setValidators(r), | |
this._setAsyncValidators(i), | |
this.valueAccessor = function Jf(n, e) { | |
if (!e) | |
return null; | |
let t, r, i; | |
return Array.isArray(e), | |
e.forEach(o => { | |
o.constructor === jf ? t = o : function Zk(n) { | |
return Object.getPrototypeOf(n.constructor) === Vi | |
}(o) ? r = o : i = o | |
} | |
), | |
i || r || t || null | |
}(0, o) | |
} | |
ngOnChanges(t) { | |
if (this._checkForErrors(), | |
!this._registered || "name"in t) { | |
if (this._registered && (this._checkName(), | |
this.formDirective)) { | |
const r = t.name.previousValue; | |
this.formDirective.removeControl({ | |
name: r, | |
path: this._getPath(r) | |
}) | |
} | |
this._setUpControl() | |
} | |
"isDisabled"in t && this._updateDisabled(t), | |
function Xf(n, e) { | |
if (!n.hasOwnProperty("model")) | |
return !1; | |
const t = n.model; | |
return !!t.isFirstChange() || !Object.is(e, t.currentValue) | |
}(t, this.viewModel) && (this._updateValue(this.model), | |
this.viewModel = this.model) | |
} | |
ngOnDestroy() { | |
this.formDirective && this.formDirective.removeControl(this) | |
} | |
get path() { | |
return this._getPath(this.name) | |
} | |
get formDirective() { | |
return this._parent ? this._parent.formDirective : null | |
} | |
viewToModelUpdate(t) { | |
this.viewModel = t, | |
this.update.emit(t) | |
} | |
_setUpControl() { | |
this._setUpdateStrategy(), | |
this._isStandalone() ? this._setUpStandalone() : this.formDirective.addControl(this), | |
this._registered = !0 | |
} | |
_setUpdateStrategy() { | |
this.options && null != this.options.updateOn && (this.control._updateOn = this.options.updateOn) | |
} | |
_isStandalone() { | |
return !this._parent || !(!this.options || !this.options.standalone) | |
} | |
_setUpStandalone() { | |
la(this.control, this), | |
this.control.updateValueAndValidity({ | |
emitEvent: !1 | |
}) | |
} | |
_checkForErrors() { | |
this._isStandalone() || this._checkParentType(), | |
this._checkName() | |
} | |
_checkParentType() {} | |
_checkName() { | |
this.options && this.options.name && (this.name = this.options.name), | |
this._isStandalone() | |
} | |
_updateValue(t) { | |
bT.then( () => { | |
var r; | |
this.control.setValue(t, { | |
emitViewToModelChange: !1 | |
}), | |
null === (r = this._changeDetectorRef) || void 0 === r || r.markForCheck() | |
} | |
) | |
} | |
_updateDisabled(t) { | |
const r = t.isDisabled.currentValue | |
, i = 0 !== r && function Nr(n) { | |
return "boolean" == typeof n ? n : null != n && "false" !== n | |
}(r); | |
bT.then( () => { | |
var o; | |
i && !this.control.disabled ? this.control.disable() : !i && this.control.disabled && this.control.enable(), | |
null === (o = this._changeDetectorRef) || void 0 === o || o.markForCheck() | |
} | |
) | |
} | |
_getPath(t) { | |
return this._parent ? function yc(n, e) { | |
return [...e.path, n] | |
}(t, this._parent) : [t] | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(an, 9),B(Kt, 10),B(ai, 10),B(ar, 10),B(Bo, 8)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "ngModel", "", 3, "formControlName", "", 3, "formControl", ""]], | |
inputs: { | |
name: "name", | |
isDisabled: ["disabled", "isDisabled"], | |
model: ["ngModel", "model"], | |
options: ["ngModelOptions", "options"] | |
}, | |
outputs: { | |
update: "ngModelChange" | |
}, | |
exportAs: ["ngModel"], | |
features: [tt([nL]), ke, Tn] | |
}), | |
n | |
} | |
)() | |
, TT = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({}), | |
n | |
} | |
)(); | |
const np = new ee("NgModelWithFormControlWarning"); | |
let BT = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [TT] | |
}), | |
n | |
} | |
)() | |
, AL = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [BT] | |
}), | |
n | |
} | |
)() | |
, IL = ( () => { | |
class n { | |
static withConfig(t) { | |
return { | |
ngModule: n, | |
providers: [{ | |
provide: np, | |
useValue: t.warnOnNgModelWithFormControl | |
}] | |
} | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [BT] | |
}), | |
n | |
} | |
)(); | |
class UT { | |
} | |
const Vr = "*"; | |
function jT(n, e=null) { | |
return { | |
type: 2, | |
steps: n, | |
options: e | |
} | |
} | |
function Ui(n) { | |
return { | |
type: 6, | |
styles: n, | |
offset: null | |
} | |
} | |
function HT(n) { | |
Promise.resolve().then(n) | |
} | |
class ua { | |
constructor(e=0, t=0) { | |
this._onDoneFns = [], | |
this._onStartFns = [], | |
this._onDestroyFns = [], | |
this._originalOnDoneFns = [], | |
this._originalOnStartFns = [], | |
this._started = !1, | |
this._destroyed = !1, | |
this._finished = !1, | |
this._position = 0, | |
this.parentPlayer = null, | |
this.totalTime = e + t | |
} | |
_onFinish() { | |
this._finished || (this._finished = !0, | |
this._onDoneFns.forEach(e => e()), | |
this._onDoneFns = []) | |
} | |
onStart(e) { | |
this._originalOnStartFns.push(e), | |
this._onStartFns.push(e) | |
} | |
onDone(e) { | |
this._originalOnDoneFns.push(e), | |
this._onDoneFns.push(e) | |
} | |
onDestroy(e) { | |
this._onDestroyFns.push(e) | |
} | |
hasStarted() { | |
return this._started | |
} | |
init() {} | |
play() { | |
this.hasStarted() || (this._onStart(), | |
this.triggerMicrotask()), | |
this._started = !0 | |
} | |
triggerMicrotask() { | |
HT( () => this._onFinish()) | |
} | |
_onStart() { | |
this._onStartFns.forEach(e => e()), | |
this._onStartFns = [] | |
} | |
pause() {} | |
restart() {} | |
finish() { | |
this._onFinish() | |
} | |
destroy() { | |
this._destroyed || (this._destroyed = !0, | |
this.hasStarted() || this._onStart(), | |
this.finish(), | |
this._onDestroyFns.forEach(e => e()), | |
this._onDestroyFns = []) | |
} | |
reset() { | |
this._started = !1, | |
this._finished = !1, | |
this._onStartFns = this._originalOnStartFns, | |
this._onDoneFns = this._originalOnDoneFns | |
} | |
setPosition(e) { | |
this._position = this.totalTime ? e * this.totalTime : 1 | |
} | |
getPosition() { | |
return this.totalTime ? this._position / this.totalTime : 1 | |
} | |
triggerCallback(e) { | |
const t = "start" == e ? this._onStartFns : this._onDoneFns; | |
t.forEach(r => r()), | |
t.length = 0 | |
} | |
} | |
class zT { | |
constructor(e) { | |
this._onDoneFns = [], | |
this._onStartFns = [], | |
this._finished = !1, | |
this._started = !1, | |
this._destroyed = !1, | |
this._onDestroyFns = [], | |
this.parentPlayer = null, | |
this.totalTime = 0, | |
this.players = e; | |
let t = 0 | |
, r = 0 | |
, i = 0; | |
const o = this.players.length; | |
0 == o ? HT( () => this._onFinish()) : this.players.forEach(s => { | |
s.onDone( () => { | |
++t == o && this._onFinish() | |
} | |
), | |
s.onDestroy( () => { | |
++r == o && this._onDestroy() | |
} | |
), | |
s.onStart( () => { | |
++i == o && this._onStart() | |
} | |
) | |
} | |
), | |
this.totalTime = this.players.reduce( (s, a) => Math.max(s, a.totalTime), 0) | |
} | |
_onFinish() { | |
this._finished || (this._finished = !0, | |
this._onDoneFns.forEach(e => e()), | |
this._onDoneFns = []) | |
} | |
init() { | |
this.players.forEach(e => e.init()) | |
} | |
onStart(e) { | |
this._onStartFns.push(e) | |
} | |
_onStart() { | |
this.hasStarted() || (this._started = !0, | |
this._onStartFns.forEach(e => e()), | |
this._onStartFns = []) | |
} | |
onDone(e) { | |
this._onDoneFns.push(e) | |
} | |
onDestroy(e) { | |
this._onDestroyFns.push(e) | |
} | |
hasStarted() { | |
return this._started | |
} | |
play() { | |
this.parentPlayer || this.init(), | |
this._onStart(), | |
this.players.forEach(e => e.play()) | |
} | |
pause() { | |
this.players.forEach(e => e.pause()) | |
} | |
restart() { | |
this.players.forEach(e => e.restart()) | |
} | |
finish() { | |
this._onFinish(), | |
this.players.forEach(e => e.finish()) | |
} | |
destroy() { | |
this._onDestroy() | |
} | |
_onDestroy() { | |
this._destroyed || (this._destroyed = !0, | |
this._onFinish(), | |
this.players.forEach(e => e.destroy()), | |
this._onDestroyFns.forEach(e => e()), | |
this._onDestroyFns = []) | |
} | |
reset() { | |
this.players.forEach(e => e.reset()), | |
this._destroyed = !1, | |
this._finished = !1, | |
this._started = !1 | |
} | |
setPosition(e) { | |
const t = e * this.totalTime; | |
this.players.forEach(r => { | |
const i = r.totalTime ? Math.min(1, t / r.totalTime) : 1; | |
r.setPosition(i) | |
} | |
) | |
} | |
getPosition() { | |
const e = this.players.reduce( (t, r) => null === t || r.totalTime > t.totalTime ? r : t, null); | |
return null != e ? e.getPosition() : 0 | |
} | |
beforeDestroy() { | |
this.players.forEach(e => { | |
e.beforeDestroy && e.beforeDestroy() | |
} | |
) | |
} | |
triggerCallback(e) { | |
const t = "start" == e ? this._onStartFns : this._onDoneFns; | |
t.forEach(r => r()), | |
t.length = 0 | |
} | |
} | |
function $T(n) { | |
return new U(3e3,!1) | |
} | |
function f2() { | |
return "undefined" != typeof window && void 0 !== window.document | |
} | |
function fp() { | |
return "undefined" != typeof process && "[object process]" === {}.toString.call(process) | |
} | |
function ci(n) { | |
switch (n.length) { | |
case 0: | |
return new ua; | |
case 1: | |
return n[0]; | |
default: | |
return new zT(n) | |
} | |
} | |
function WT(n, e, t, r, i=new Map, o=new Map) { | |
const s = [] | |
, a = []; | |
let l = -1 | |
, c = null; | |
if (r.forEach(u => { | |
const d = u.get("offset") | |
, h = d == l | |
, f = h && c || new Map; | |
u.forEach( (p, _) => { | |
let C = _ | |
, S = p; | |
if ("offset" !== _) | |
switch (C = e.normalizePropertyName(C, s), | |
S) { | |
case "!": | |
S = i.get(_); | |
break; | |
case Vr: | |
S = o.get(_); | |
break; | |
default: | |
S = e.normalizeStyleValue(_, C, S, s) | |
} | |
f.set(C, S) | |
} | |
), | |
h || a.push(f), | |
c = f, | |
l = d | |
} | |
), | |
s.length) | |
throw function e2(n) { | |
return new U(3502,!1) | |
}(); | |
return a | |
} | |
function pp(n, e, t, r) { | |
switch (e) { | |
case "start": | |
n.onStart( () => r(t && gp(t, "start", n))); | |
break; | |
case "done": | |
n.onDone( () => r(t && gp(t, "done", n))); | |
break; | |
case "destroy": | |
n.onDestroy( () => r(t && gp(t, "destroy", n))) | |
} | |
} | |
function gp(n, e, t) { | |
const r = t.totalTime | |
, o = mp(n.element, n.triggerName, n.fromState, n.toState, e || n.phaseName, null == r ? n.totalTime : r, !!t.disabled) | |
, s = n._data; | |
return null != s && (o._data = s), | |
o | |
} | |
function mp(n, e, t, r, i="", o=0, s) { | |
return { | |
element: n, | |
triggerName: e, | |
fromState: t, | |
toState: r, | |
phaseName: i, | |
totalTime: o, | |
disabled: !!s | |
} | |
} | |
function Sn(n, e, t) { | |
let r = n.get(e); | |
return r || n.set(e, r = t), | |
r | |
} | |
function GT(n) { | |
const e = n.indexOf(":"); | |
return [n.substring(1, e), n.slice(e + 1)] | |
} | |
let _p = (n, e) => !1 | |
, qT = (n, e, t) => [] | |
, KT = null; | |
function yp(n) { | |
const e = n.parentNode || n.host; | |
return e === KT ? null : e | |
} | |
(fp() || "undefined" != typeof Element) && (f2() ? (KT = ( () => document.documentElement)(), | |
_p = (n, e) => { | |
for (; e; ) { | |
if (e === n) | |
return !0; | |
e = yp(e) | |
} | |
return !1 | |
} | |
) : _p = (n, e) => n.contains(e), | |
qT = (n, e, t) => { | |
if (t) | |
return Array.from(n.querySelectorAll(e)); | |
const r = n.querySelector(e); | |
return r ? [r] : [] | |
} | |
); | |
let ji = null | |
, QT = !1; | |
const YT = _p | |
, ZT = qT; | |
let XT = ( () => { | |
class n { | |
validateStyleProperty(t) { | |
return function g2(n) { | |
ji || (ji = function m2() { | |
return "undefined" != typeof document ? document.body : null | |
}() || {}, | |
QT = !!ji.style && "WebkitAppearance"in ji.style); | |
let e = !0; | |
return ji.style && !function p2(n) { | |
return "ebkit" == n.substring(1, 6) | |
}(n) && (e = n in ji.style, | |
!e && QT && (e = "Webkit" + n.charAt(0).toUpperCase() + n.slice(1)in ji.style)), | |
e | |
}(t) | |
} | |
matchesElement(t, r) { | |
return !1 | |
} | |
containsElement(t, r) { | |
return YT(t, r) | |
} | |
getParentElement(t) { | |
return yp(t) | |
} | |
query(t, r, i) { | |
return ZT(t, r, i) | |
} | |
computeStyle(t, r, i) { | |
return i || "" | |
} | |
animate(t, r, i, o, s, a=[], l) { | |
return new ua(i,o) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)() | |
, vp = ( () => { | |
class n { | |
} | |
return n.NOOP = new XT, | |
n | |
} | |
)(); | |
const bp = "ng-enter" | |
, Tc = "ng-leave" | |
, Ec = "ng-trigger" | |
, wc = ".ng-trigger" | |
, eE = "ng-animating" | |
, Cp = ".ng-animating"; | |
function Br(n) { | |
if ("number" == typeof n) | |
return n; | |
const e = n.match(/^(-?[\.\d]+)(m?s)/); | |
return !e || e.length < 2 ? 0 : Tp(parseFloat(e[1]), e[2]) | |
} | |
function Tp(n, e) { | |
return "s" === e ? 1e3 * n : n | |
} | |
function Dc(n, e, t) { | |
return n.hasOwnProperty("duration") ? n : function v2(n, e, t) { | |
let i, o = 0, s = ""; | |
if ("string" == typeof n) { | |
const a = n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i); | |
if (null === a) | |
return e.push($T()), | |
{ | |
duration: 0, | |
delay: 0, | |
easing: "" | |
}; | |
i = Tp(parseFloat(a[1]), a[2]); | |
const l = a[3]; | |
null != l && (o = Tp(parseFloat(l), a[4])); | |
const c = a[5]; | |
c && (s = c) | |
} else | |
i = n; | |
if (!t) { | |
let a = !1 | |
, l = e.length; | |
i < 0 && (e.push(function FL() { | |
return new U(3100,!1) | |
}()), | |
a = !0), | |
o < 0 && (e.push(function PL() { | |
return new U(3101,!1) | |
}()), | |
a = !0), | |
a && e.splice(l, 0, $T()) | |
} | |
return { | |
duration: i, | |
delay: o, | |
easing: s | |
} | |
}(n, e, t) | |
} | |
function da(n, e={}) { | |
return Object.keys(n).forEach(t => { | |
e[t] = n[t] | |
} | |
), | |
e | |
} | |
function tE(n) { | |
const e = new Map; | |
return Object.keys(n).forEach(t => { | |
e.set(t, n[t]) | |
} | |
), | |
e | |
} | |
function ui(n, e=new Map, t) { | |
if (t) | |
for (let[r,i] of t) | |
e.set(r, i); | |
for (let[r,i] of n) | |
e.set(r, i); | |
return e | |
} | |
function rE(n, e, t) { | |
return t ? e + ":" + t + ";" : "" | |
} | |
function iE(n) { | |
let e = ""; | |
for (let t = 0; t < n.style.length; t++) { | |
const r = n.style.item(t); | |
e += rE(0, r, n.style.getPropertyValue(r)) | |
} | |
for (const t in n.style) | |
n.style.hasOwnProperty(t) && !t.startsWith("_") && (e += rE(0, E2(t), n.style[t])); | |
n.setAttribute("style", e) | |
} | |
function yr(n, e, t) { | |
n.style && (e.forEach( (r, i) => { | |
const o = wp(i); | |
t && !t.has(i) && t.set(i, n.style[o]), | |
n.style[o] = r | |
} | |
), | |
fp() && iE(n)) | |
} | |
function Hi(n, e) { | |
n.style && (e.forEach( (t, r) => { | |
const i = wp(r); | |
n.style[i] = "" | |
} | |
), | |
fp() && iE(n)) | |
} | |
function ha(n) { | |
return Array.isArray(n) ? 1 == n.length ? n[0] : jT(n) : n | |
} | |
const Ep = new RegExp("{{\\s*(.+?)\\s*}}","g"); | |
function oE(n) { | |
let e = []; | |
if ("string" == typeof n) { | |
let t; | |
for (; t = Ep.exec(n); ) | |
e.push(t[1]); | |
Ep.lastIndex = 0 | |
} | |
return e | |
} | |
function fa(n, e, t) { | |
const r = n.toString() | |
, i = r.replace(Ep, (o, s) => { | |
let a = e[s]; | |
return null == a && (t.push(function NL(n) { | |
return new U(3003,!1) | |
}()), | |
a = ""), | |
a.toString() | |
} | |
); | |
return i == r ? n : i | |
} | |
function Mc(n) { | |
const e = []; | |
let t = n.next(); | |
for (; !t.done; ) | |
e.push(t.value), | |
t = n.next(); | |
return e | |
} | |
const T2 = /-+([a-z0-9])/g; | |
function wp(n) { | |
return n.replace(T2, (...e) => e[1].toUpperCase()) | |
} | |
function E2(n) { | |
return n.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() | |
} | |
function xn(n, e, t) { | |
switch (e.type) { | |
case 7: | |
return n.visitTrigger(e, t); | |
case 0: | |
return n.visitState(e, t); | |
case 1: | |
return n.visitTransition(e, t); | |
case 2: | |
return n.visitSequence(e, t); | |
case 3: | |
return n.visitGroup(e, t); | |
case 4: | |
return n.visitAnimate(e, t); | |
case 5: | |
return n.visitKeyframes(e, t); | |
case 6: | |
return n.visitStyle(e, t); | |
case 8: | |
return n.visitReference(e, t); | |
case 9: | |
return n.visitAnimateChild(e, t); | |
case 10: | |
return n.visitAnimateRef(e, t); | |
case 11: | |
return n.visitQuery(e, t); | |
case 12: | |
return n.visitStagger(e, t); | |
default: | |
throw function kL(n) { | |
return new U(3004,!1) | |
}() | |
} | |
} | |
function sE(n, e) { | |
return window.getComputedStyle(n)[e] | |
} | |
function S2(n, e) { | |
const t = []; | |
return "string" == typeof n ? n.split(/\s*,\s*/).forEach(r => function x2(n, e, t) { | |
if (":" == n[0]) { | |
const l = function R2(n, e) { | |
switch (n) { | |
case ":enter": | |
return "void => *"; | |
case ":leave": | |
return "* => void"; | |
case ":increment": | |
return (t, r) => parseFloat(r) > parseFloat(t); | |
case ":decrement": | |
return (t, r) => parseFloat(r) < parseFloat(t); | |
default: | |
return e.push(function YL(n) { | |
return new U(3016,!1) | |
}()), | |
"* => *" | |
} | |
}(n, t); | |
if ("function" == typeof l) | |
return void e.push(l); | |
n = l | |
} | |
const r = n.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/); | |
if (null == r || r.length < 4) | |
return t.push(function QL(n) { | |
return new U(3015,!1) | |
}()), | |
e; | |
const i = r[1] | |
, o = r[2] | |
, s = r[3]; | |
e.push(aE(i, s)); | |
"<" == o[0] && !("*" == i && "*" == s) && e.push(aE(s, i)) | |
}(r, t, e)) : t.push(n), | |
t | |
} | |
const xc = new Set(["true", "1"]) | |
, Rc = new Set(["false", "0"]); | |
function aE(n, e) { | |
const t = xc.has(n) || Rc.has(n) | |
, r = xc.has(e) || Rc.has(e); | |
return (i, o) => { | |
let s = "*" == n || n == i | |
, a = "*" == e || e == o; | |
return !s && t && "boolean" == typeof i && (s = i ? xc.has(n) : Rc.has(n)), | |
!a && r && "boolean" == typeof o && (a = o ? xc.has(e) : Rc.has(e)), | |
s && a | |
} | |
} | |
const F2 = new RegExp("s*:selfs*,?","g"); | |
function Dp(n, e, t, r) { | |
return new P2(n).build(e, t, r) | |
} | |
class P2 { | |
constructor(e) { | |
this._driver = e | |
} | |
build(e, t, r) { | |
const i = new k2(t); | |
return this._resetContextStyleTimingState(i), | |
xn(this, ha(e), i) | |
} | |
_resetContextStyleTimingState(e) { | |
e.currentQuerySelector = "", | |
e.collectedStyles = new Map, | |
e.collectedStyles.set("", new Map), | |
e.currentTime = 0 | |
} | |
visitTrigger(e, t) { | |
let r = t.queryCount = 0 | |
, i = t.depCount = 0; | |
const o = [] | |
, s = []; | |
return "@" == e.name.charAt(0) && t.errors.push(function VL() { | |
return new U(3006,!1) | |
}()), | |
e.definitions.forEach(a => { | |
if (this._resetContextStyleTimingState(t), | |
0 == a.type) { | |
const l = a | |
, c = l.name; | |
c.toString().split(/\s*,\s*/).forEach(u => { | |
l.name = u, | |
o.push(this.visitState(l, t)) | |
} | |
), | |
l.name = c | |
} else if (1 == a.type) { | |
const l = this.visitTransition(a, t); | |
r += l.queryCount, | |
i += l.depCount, | |
s.push(l) | |
} else | |
t.errors.push(function BL() { | |
return new U(3007,!1) | |
}()) | |
} | |
), | |
{ | |
type: 7, | |
name: e.name, | |
states: o, | |
transitions: s, | |
queryCount: r, | |
depCount: i, | |
options: null | |
} | |
} | |
visitState(e, t) { | |
const r = this.visitStyle(e.styles, t) | |
, i = e.options && e.options.params || null; | |
if (r.containsDynamicStyles) { | |
const o = new Set | |
, s = i || {}; | |
r.styles.forEach(a => { | |
a instanceof Map && a.forEach(l => { | |
oE(l).forEach(c => { | |
s.hasOwnProperty(c) || o.add(c) | |
} | |
) | |
} | |
) | |
} | |
), | |
o.size && (Mc(o.values()), | |
t.errors.push(function UL(n, e) { | |
return new U(3008,!1) | |
}())) | |
} | |
return { | |
type: 0, | |
name: e.name, | |
style: r, | |
options: i ? { | |
params: i | |
} : null | |
} | |
} | |
visitTransition(e, t) { | |
t.queryCount = 0, | |
t.depCount = 0; | |
const r = xn(this, ha(e.animation), t); | |
return { | |
type: 1, | |
matchers: S2(e.expr, t.errors), | |
animation: r, | |
queryCount: t.queryCount, | |
depCount: t.depCount, | |
options: zi(e.options) | |
} | |
} | |
visitSequence(e, t) { | |
return { | |
type: 2, | |
steps: e.steps.map(r => xn(this, r, t)), | |
options: zi(e.options) | |
} | |
} | |
visitGroup(e, t) { | |
const r = t.currentTime; | |
let i = 0; | |
const o = e.steps.map(s => { | |
t.currentTime = r; | |
const a = xn(this, s, t); | |
return i = Math.max(i, t.currentTime), | |
a | |
} | |
); | |
return t.currentTime = i, | |
{ | |
type: 3, | |
steps: o, | |
options: zi(e.options) | |
} | |
} | |
visitAnimate(e, t) { | |
const r = function V2(n, e) { | |
if (n.hasOwnProperty("duration")) | |
return n; | |
if ("number" == typeof n) | |
return Mp(Dc(n, e).duration, 0, ""); | |
const t = n; | |
if (t.split(/\s+/).some(o => "{" == o.charAt(0) && "{" == o.charAt(1))) { | |
const o = Mp(0, 0, ""); | |
return o.dynamic = !0, | |
o.strValue = t, | |
o | |
} | |
const i = Dc(t, e); | |
return Mp(i.duration, i.delay, i.easing) | |
}(e.timings, t.errors); | |
t.currentAnimateTimings = r; | |
let i, o = e.styles ? e.styles : Ui({}); | |
if (5 == o.type) | |
i = this.visitKeyframes(o, t); | |
else { | |
let s = e.styles | |
, a = !1; | |
if (!s) { | |
a = !0; | |
const c = {}; | |
r.easing && (c.easing = r.easing), | |
s = Ui(c) | |
} | |
t.currentTime += r.duration + r.delay; | |
const l = this.visitStyle(s, t); | |
l.isEmptyStep = a, | |
i = l | |
} | |
return t.currentAnimateTimings = null, | |
{ | |
type: 4, | |
timings: r, | |
style: i, | |
options: null | |
} | |
} | |
visitStyle(e, t) { | |
const r = this._makeStyleAst(e, t); | |
return this._validateStyleAst(r, t), | |
r | |
} | |
_makeStyleAst(e, t) { | |
const r = [] | |
, i = Array.isArray(e.styles) ? e.styles : [e.styles]; | |
for (let a of i) | |
"string" == typeof a ? a === Vr ? r.push(a) : t.errors.push(new U(3002,!1)) : r.push(tE(a)); | |
let o = !1 | |
, s = null; | |
return r.forEach(a => { | |
if (a instanceof Map && (a.has("easing") && (s = a.get("easing"), | |
a.delete("easing")), | |
!o)) | |
for (let l of a.values()) | |
if (l.toString().indexOf("{{") >= 0) { | |
o = !0; | |
break | |
} | |
} | |
), | |
{ | |
type: 6, | |
styles: r, | |
easing: s, | |
offset: e.offset, | |
containsDynamicStyles: o, | |
options: null | |
} | |
} | |
_validateStyleAst(e, t) { | |
const r = t.currentAnimateTimings; | |
let i = t.currentTime | |
, o = t.currentTime; | |
r && o > 0 && (o -= r.duration + r.delay), | |
e.styles.forEach(s => { | |
"string" != typeof s && s.forEach( (a, l) => { | |
const c = t.collectedStyles.get(t.currentQuerySelector) | |
, u = c.get(l); | |
let d = !0; | |
u && (o != i && o >= u.startTime && i <= u.endTime && (t.errors.push(function HL(n, e, t, r, i) { | |
return new U(3010,!1) | |
}()), | |
d = !1), | |
o = u.startTime), | |
d && c.set(l, { | |
startTime: o, | |
endTime: i | |
}), | |
t.options && function C2(n, e, t) { | |
const r = e.params || {} | |
, i = oE(n); | |
i.length && i.forEach(o => { | |
r.hasOwnProperty(o) || t.push(function OL(n) { | |
return new U(3001,!1) | |
}()) | |
} | |
) | |
}(a, t.options, t.errors) | |
} | |
) | |
} | |
) | |
} | |
visitKeyframes(e, t) { | |
const r = { | |
type: 5, | |
styles: [], | |
options: null | |
}; | |
if (!t.currentAnimateTimings) | |
return t.errors.push(function zL() { | |
return new U(3011,!1) | |
}()), | |
r; | |
let o = 0; | |
const s = []; | |
let a = !1 | |
, l = !1 | |
, c = 0; | |
const u = e.steps.map(S => { | |
const R = this._makeStyleAst(S, t); | |
let v = null != R.offset ? R.offset : function L2(n) { | |
if ("string" == typeof n) | |
return null; | |
let e = null; | |
if (Array.isArray(n)) | |
n.forEach(t => { | |
if (t instanceof Map && t.has("offset")) { | |
const r = t; | |
e = parseFloat(r.get("offset")), | |
r.delete("offset") | |
} | |
} | |
); | |
else if (n instanceof Map && n.has("offset")) { | |
const t = n; | |
e = parseFloat(t.get("offset")), | |
t.delete("offset") | |
} | |
return e | |
}(R.styles) | |
, O = 0; | |
return null != v && (o++, | |
O = R.offset = v), | |
l = l || O < 0 || O > 1, | |
a = a || O < c, | |
c = O, | |
s.push(O), | |
R | |
} | |
); | |
l && t.errors.push(function $L() { | |
return new U(3012,!1) | |
}()), | |
a && t.errors.push(function WL() { | |
return new U(3200,!1) | |
}()); | |
const d = e.steps.length; | |
let h = 0; | |
o > 0 && o < d ? t.errors.push(function GL() { | |
return new U(3202,!1) | |
}()) : 0 == o && (h = 1 / (d - 1)); | |
const f = d - 1 | |
, p = t.currentTime | |
, _ = t.currentAnimateTimings | |
, C = _.duration; | |
return u.forEach( (S, R) => { | |
const v = h > 0 ? R == f ? 1 : h * R : s[R] | |
, O = v * C; | |
t.currentTime = p + _.delay + O, | |
_.duration = O, | |
this._validateStyleAst(S, t), | |
S.offset = v, | |
r.styles.push(S) | |
} | |
), | |
r | |
} | |
visitReference(e, t) { | |
return { | |
type: 8, | |
animation: xn(this, ha(e.animation), t), | |
options: zi(e.options) | |
} | |
} | |
visitAnimateChild(e, t) { | |
return t.depCount++, | |
{ | |
type: 9, | |
options: zi(e.options) | |
} | |
} | |
visitAnimateRef(e, t) { | |
return { | |
type: 10, | |
animation: this.visitReference(e.animation, t), | |
options: zi(e.options) | |
} | |
} | |
visitQuery(e, t) { | |
const r = t.currentQuerySelector | |
, i = e.options || {}; | |
t.queryCount++, | |
t.currentQuery = e; | |
const [o,s] = function O2(n) { | |
const e = !!n.split(/\s*,\s*/).find(t => ":self" == t); | |
return e && (n = n.replace(F2, "")), | |
n = n.replace(/@\*/g, wc).replace(/@\w+/g, t => wc + "-" + t.slice(1)).replace(/:animating/g, Cp), | |
[n, e] | |
}(e.selector); | |
t.currentQuerySelector = r.length ? r + " " + o : o, | |
Sn(t.collectedStyles, t.currentQuerySelector, new Map); | |
const a = xn(this, ha(e.animation), t); | |
return t.currentQuery = null, | |
t.currentQuerySelector = r, | |
{ | |
type: 11, | |
selector: o, | |
limit: i.limit || 0, | |
optional: !!i.optional, | |
includeSelf: s, | |
animation: a, | |
originalSelector: e.selector, | |
options: zi(e.options) | |
} | |
} | |
visitStagger(e, t) { | |
t.currentQuery || t.errors.push(function qL() { | |
return new U(3013,!1) | |
}()); | |
const r = "full" === e.timings ? { | |
duration: 0, | |
delay: 0, | |
easing: "full" | |
} : Dc(e.timings, t.errors, !0); | |
return { | |
type: 12, | |
animation: xn(this, ha(e.animation), t), | |
timings: r, | |
options: null | |
} | |
} | |
} | |
class k2 { | |
constructor(e) { | |
this.errors = e, | |
this.queryCount = 0, | |
this.depCount = 0, | |
this.currentTransition = null, | |
this.currentQuery = null, | |
this.currentQuerySelector = null, | |
this.currentAnimateTimings = null, | |
this.currentTime = 0, | |
this.collectedStyles = new Map, | |
this.options = null, | |
this.unsupportedCSSPropertiesFound = new Set | |
} | |
} | |
function zi(n) { | |
return n ? (n = da(n)).params && (n.params = function N2(n) { | |
return n ? da(n) : null | |
}(n.params)) : n = {}, | |
n | |
} | |
function Mp(n, e, t) { | |
return { | |
duration: n, | |
delay: e, | |
easing: t | |
} | |
} | |
function Ap(n, e, t, r, i, o, s=null, a=!1) { | |
return { | |
type: 1, | |
element: n, | |
keyframes: e, | |
preStyleProps: t, | |
postStyleProps: r, | |
duration: i, | |
delay: o, | |
totalTime: i + o, | |
easing: s, | |
subTimeline: a | |
} | |
} | |
class Fc { | |
constructor() { | |
this._map = new Map | |
} | |
get(e) { | |
return this._map.get(e) || [] | |
} | |
append(e, t) { | |
let r = this._map.get(e); | |
r || this._map.set(e, r = []), | |
r.push(...t) | |
} | |
has(e) { | |
return this._map.has(e) | |
} | |
clear() { | |
this._map.clear() | |
} | |
} | |
const j2 = new RegExp(":enter","g") | |
, z2 = new RegExp(":leave","g"); | |
function Ip(n, e, t, r, i, o=new Map, s=new Map, a, l, c=[]) { | |
return (new $2).buildKeyframes(n, e, t, r, i, o, s, a, l, c) | |
} | |
class $2 { | |
buildKeyframes(e, t, r, i, o, s, a, l, c, u=[]) { | |
c = c || new Fc; | |
const d = new Sp(e,t,c,i,o,u,[]); | |
d.options = l; | |
const h = l.delay ? Br(l.delay) : 0; | |
d.currentTimeline.delayNextStep(h), | |
d.currentTimeline.setStyles([s], null, d.errors, l), | |
xn(this, r, d); | |
const f = d.timelines.filter(p => p.containsAnimation()); | |
if (f.length && a.size) { | |
let p; | |
for (let _ = f.length - 1; _ >= 0; _--) { | |
const C = f[_]; | |
if (C.element === t) { | |
p = C; | |
break | |
} | |
} | |
p && !p.allowOnlyTimelineStyles() && p.setStyles([a], null, d.errors, l) | |
} | |
return f.length ? f.map(p => p.buildKeyframes()) : [Ap(t, [], [], [], 0, h, "", !1)] | |
} | |
visitTrigger(e, t) {} | |
visitState(e, t) {} | |
visitTransition(e, t) {} | |
visitAnimateChild(e, t) { | |
const r = t.subInstructions.get(t.element); | |
if (r) { | |
const i = t.createSubContext(e.options) | |
, o = t.currentTimeline.currentTime | |
, s = this._visitSubInstructions(r, i, i.options); | |
o != s && t.transformIntoNewTimeline(s) | |
} | |
t.previousNode = e | |
} | |
visitAnimateRef(e, t) { | |
const r = t.createSubContext(e.options); | |
r.transformIntoNewTimeline(), | |
this._applyAnimationRefDelays([e.options, e.animation.options], t, r), | |
this.visitReference(e.animation, r), | |
t.transformIntoNewTimeline(r.currentTimeline.currentTime), | |
t.previousNode = e | |
} | |
_applyAnimationRefDelays(e, t, r) { | |
var i; | |
for (const o of e) { | |
const s = null == o ? void 0 : o.delay; | |
if (s) { | |
const a = "number" == typeof s ? s : Br(fa(s, null !== (i = null == o ? void 0 : o.params) && void 0 !== i ? i : {}, t.errors)); | |
r.delayNextStep(a) | |
} | |
} | |
} | |
_visitSubInstructions(e, t, r) { | |
let o = t.currentTimeline.currentTime; | |
const s = null != r.duration ? Br(r.duration) : null | |
, a = null != r.delay ? Br(r.delay) : null; | |
return 0 !== s && e.forEach(l => { | |
const c = t.appendInstructionToTimeline(l, s, a); | |
o = Math.max(o, c.duration + c.delay) | |
} | |
), | |
o | |
} | |
visitReference(e, t) { | |
t.updateOptions(e.options, !0), | |
xn(this, e.animation, t), | |
t.previousNode = e | |
} | |
visitSequence(e, t) { | |
const r = t.subContextCount; | |
let i = t; | |
const o = e.options; | |
if (o && (o.params || o.delay) && (i = t.createSubContext(o), | |
i.transformIntoNewTimeline(), | |
null != o.delay)) { | |
6 == i.previousNode.type && (i.currentTimeline.snapshotCurrentStyles(), | |
i.previousNode = Pc); | |
const s = Br(o.delay); | |
i.delayNextStep(s) | |
} | |
e.steps.length && (e.steps.forEach(s => xn(this, s, i)), | |
i.currentTimeline.applyStylesToKeyframe(), | |
i.subContextCount > r && i.transformIntoNewTimeline()), | |
t.previousNode = e | |
} | |
visitGroup(e, t) { | |
const r = []; | |
let i = t.currentTimeline.currentTime; | |
const o = e.options && e.options.delay ? Br(e.options.delay) : 0; | |
e.steps.forEach(s => { | |
const a = t.createSubContext(e.options); | |
o && a.delayNextStep(o), | |
xn(this, s, a), | |
i = Math.max(i, a.currentTimeline.currentTime), | |
r.push(a.currentTimeline) | |
} | |
), | |
r.forEach(s => t.currentTimeline.mergeTimelineCollectedStyles(s)), | |
t.transformIntoNewTimeline(i), | |
t.previousNode = e | |
} | |
_visitTiming(e, t) { | |
if (e.dynamic) { | |
const r = e.strValue; | |
return Dc(t.params ? fa(r, t.params, t.errors) : r, t.errors) | |
} | |
return { | |
duration: e.duration, | |
delay: e.delay, | |
easing: e.easing | |
} | |
} | |
visitAnimate(e, t) { | |
const r = t.currentAnimateTimings = this._visitTiming(e.timings, t) | |
, i = t.currentTimeline; | |
r.delay && (t.incrementTime(r.delay), | |
i.snapshotCurrentStyles()); | |
const o = e.style; | |
5 == o.type ? this.visitKeyframes(o, t) : (t.incrementTime(r.duration), | |
this.visitStyle(o, t), | |
i.applyStylesToKeyframe()), | |
t.currentAnimateTimings = null, | |
t.previousNode = e | |
} | |
visitStyle(e, t) { | |
const r = t.currentTimeline | |
, i = t.currentAnimateTimings; | |
!i && r.hasCurrentStyleProperties() && r.forwardFrame(); | |
const o = i && i.easing || e.easing; | |
e.isEmptyStep ? r.applyEmptyStep(o) : r.setStyles(e.styles, o, t.errors, t.options), | |
t.previousNode = e | |
} | |
visitKeyframes(e, t) { | |
const r = t.currentAnimateTimings | |
, i = t.currentTimeline.duration | |
, o = r.duration | |
, a = t.createSubContext().currentTimeline; | |
a.easing = r.easing, | |
e.styles.forEach(l => { | |
a.forwardTime((l.offset || 0) * o), | |
a.setStyles(l.styles, l.easing, t.errors, t.options), | |
a.applyStylesToKeyframe() | |
} | |
), | |
t.currentTimeline.mergeTimelineCollectedStyles(a), | |
t.transformIntoNewTimeline(i + o), | |
t.previousNode = e | |
} | |
visitQuery(e, t) { | |
const r = t.currentTimeline.currentTime | |
, i = e.options || {} | |
, o = i.delay ? Br(i.delay) : 0; | |
o && (6 === t.previousNode.type || 0 == r && t.currentTimeline.hasCurrentStyleProperties()) && (t.currentTimeline.snapshotCurrentStyles(), | |
t.previousNode = Pc); | |
let s = r; | |
const a = t.invokeQuery(e.selector, e.originalSelector, e.limit, e.includeSelf, !!i.optional, t.errors); | |
t.currentQueryTotal = a.length; | |
let l = null; | |
a.forEach( (c, u) => { | |
t.currentQueryIndex = u; | |
const d = t.createSubContext(e.options, c); | |
o && d.delayNextStep(o), | |
c === t.element && (l = d.currentTimeline), | |
xn(this, e.animation, d), | |
d.currentTimeline.applyStylesToKeyframe(), | |
s = Math.max(s, d.currentTimeline.currentTime) | |
} | |
), | |
t.currentQueryIndex = 0, | |
t.currentQueryTotal = 0, | |
t.transformIntoNewTimeline(s), | |
l && (t.currentTimeline.mergeTimelineCollectedStyles(l), | |
t.currentTimeline.snapshotCurrentStyles()), | |
t.previousNode = e | |
} | |
visitStagger(e, t) { | |
const r = t.parentContext | |
, i = t.currentTimeline | |
, o = e.timings | |
, s = Math.abs(o.duration) | |
, a = s * (t.currentQueryTotal - 1); | |
let l = s * t.currentQueryIndex; | |
switch (o.duration < 0 ? "reverse" : o.easing) { | |
case "reverse": | |
l = a - l; | |
break; | |
case "full": | |
l = r.currentStaggerTime | |
} | |
const u = t.currentTimeline; | |
l && u.delayNextStep(l); | |
const d = u.currentTime; | |
xn(this, e.animation, t), | |
t.previousNode = e, | |
r.currentStaggerTime = i.currentTime - d + (i.startTime - r.currentTimeline.startTime) | |
} | |
} | |
const Pc = {}; | |
class Sp { | |
constructor(e, t, r, i, o, s, a, l) { | |
this._driver = e, | |
this.element = t, | |
this.subInstructions = r, | |
this._enterClassName = i, | |
this._leaveClassName = o, | |
this.errors = s, | |
this.timelines = a, | |
this.parentContext = null, | |
this.currentAnimateTimings = null, | |
this.previousNode = Pc, | |
this.subContextCount = 0, | |
this.options = {}, | |
this.currentQueryIndex = 0, | |
this.currentQueryTotal = 0, | |
this.currentStaggerTime = 0, | |
this.currentTimeline = l || new Oc(this._driver,t,0), | |
a.push(this.currentTimeline) | |
} | |
get params() { | |
return this.options.params | |
} | |
updateOptions(e, t) { | |
if (!e) | |
return; | |
const r = e; | |
let i = this.options; | |
null != r.duration && (i.duration = Br(r.duration)), | |
null != r.delay && (i.delay = Br(r.delay)); | |
const o = r.params; | |
if (o) { | |
let s = i.params; | |
s || (s = this.options.params = {}), | |
Object.keys(o).forEach(a => { | |
(!t || !s.hasOwnProperty(a)) && (s[a] = fa(o[a], s, this.errors)) | |
} | |
) | |
} | |
} | |
_copyOptions() { | |
const e = {}; | |
if (this.options) { | |
const t = this.options.params; | |
if (t) { | |
const r = e.params = {}; | |
Object.keys(t).forEach(i => { | |
r[i] = t[i] | |
} | |
) | |
} | |
} | |
return e | |
} | |
createSubContext(e=null, t, r) { | |
const i = t || this.element | |
, o = new Sp(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i, r || 0)); | |
return o.previousNode = this.previousNode, | |
o.currentAnimateTimings = this.currentAnimateTimings, | |
o.options = this._copyOptions(), | |
o.updateOptions(e), | |
o.currentQueryIndex = this.currentQueryIndex, | |
o.currentQueryTotal = this.currentQueryTotal, | |
o.parentContext = this, | |
this.subContextCount++, | |
o | |
} | |
transformIntoNewTimeline(e) { | |
return this.previousNode = Pc, | |
this.currentTimeline = this.currentTimeline.fork(this.element, e), | |
this.timelines.push(this.currentTimeline), | |
this.currentTimeline | |
} | |
appendInstructionToTimeline(e, t, r) { | |
const i = { | |
duration: null != t ? t : e.duration, | |
delay: this.currentTimeline.currentTime + (null != r ? r : 0) + e.delay, | |
easing: "" | |
} | |
, o = new W2(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe); | |
return this.timelines.push(o), | |
i | |
} | |
incrementTime(e) { | |
this.currentTimeline.forwardTime(this.currentTimeline.duration + e) | |
} | |
delayNextStep(e) { | |
e > 0 && this.currentTimeline.delayNextStep(e) | |
} | |
invokeQuery(e, t, r, i, o, s) { | |
let a = []; | |
if (i && a.push(this.element), | |
e.length > 0) { | |
e = (e = e.replace(j2, "." + this._enterClassName)).replace(z2, "." + this._leaveClassName); | |
let c = this._driver.query(this.element, e, 1 != r); | |
0 !== r && (c = r < 0 ? c.slice(c.length + r, c.length) : c.slice(0, r)), | |
a.push(...c) | |
} | |
return !o && 0 == a.length && s.push(function KL(n) { | |
return new U(3014,!1) | |
}()), | |
a | |
} | |
} | |
class Oc { | |
constructor(e, t, r, i) { | |
this._driver = e, | |
this.element = t, | |
this.startTime = r, | |
this._elementTimelineStylesLookup = i, | |
this.duration = 0, | |
this._previousKeyframe = new Map, | |
this._currentKeyframe = new Map, | |
this._keyframes = new Map, | |
this._styleSummary = new Map, | |
this._localTimelineStyles = new Map, | |
this._pendingStyles = new Map, | |
this._backFill = new Map, | |
this._currentEmptyStepKeyframe = null, | |
this._elementTimelineStylesLookup || (this._elementTimelineStylesLookup = new Map), | |
this._globalTimelineStyles = this._elementTimelineStylesLookup.get(t), | |
this._globalTimelineStyles || (this._globalTimelineStyles = this._localTimelineStyles, | |
this._elementTimelineStylesLookup.set(t, this._localTimelineStyles)), | |
this._loadKeyframe() | |
} | |
containsAnimation() { | |
switch (this._keyframes.size) { | |
case 0: | |
return !1; | |
case 1: | |
return this.hasCurrentStyleProperties(); | |
default: | |
return !0 | |
} | |
} | |
hasCurrentStyleProperties() { | |
return this._currentKeyframe.size > 0 | |
} | |
get currentTime() { | |
return this.startTime + this.duration | |
} | |
delayNextStep(e) { | |
const t = 1 === this._keyframes.size && this._pendingStyles.size; | |
this.duration || t ? (this.forwardTime(this.currentTime + e), | |
t && this.snapshotCurrentStyles()) : this.startTime += e | |
} | |
fork(e, t) { | |
return this.applyStylesToKeyframe(), | |
new Oc(this._driver,e,t || this.currentTime,this._elementTimelineStylesLookup) | |
} | |
_loadKeyframe() { | |
this._currentKeyframe && (this._previousKeyframe = this._currentKeyframe), | |
this._currentKeyframe = this._keyframes.get(this.duration), | |
this._currentKeyframe || (this._currentKeyframe = new Map, | |
this._keyframes.set(this.duration, this._currentKeyframe)) | |
} | |
forwardFrame() { | |
this.duration += 1, | |
this._loadKeyframe() | |
} | |
forwardTime(e) { | |
this.applyStylesToKeyframe(), | |
this.duration = e, | |
this._loadKeyframe() | |
} | |
_updateStyle(e, t) { | |
this._localTimelineStyles.set(e, t), | |
this._globalTimelineStyles.set(e, t), | |
this._styleSummary.set(e, { | |
time: this.currentTime, | |
value: t | |
}) | |
} | |
allowOnlyTimelineStyles() { | |
return this._currentEmptyStepKeyframe !== this._currentKeyframe | |
} | |
applyEmptyStep(e) { | |
e && this._previousKeyframe.set("easing", e); | |
for (let[t,r] of this._globalTimelineStyles) | |
this._backFill.set(t, r || Vr), | |
this._currentKeyframe.set(t, Vr); | |
this._currentEmptyStepKeyframe = this._currentKeyframe | |
} | |
setStyles(e, t, r, i) { | |
var o; | |
t && this._previousKeyframe.set("easing", t); | |
const s = i && i.params || {} | |
, a = function G2(n, e) { | |
const t = new Map; | |
let r; | |
return n.forEach(i => { | |
if ("*" === i) { | |
r = r || e.keys(); | |
for (let o of r) | |
t.set(o, Vr) | |
} else | |
ui(i, t) | |
} | |
), | |
t | |
}(e, this._globalTimelineStyles); | |
for (let[l,c] of a) { | |
const u = fa(c, s, r); | |
this._pendingStyles.set(l, u), | |
this._localTimelineStyles.has(l) || this._backFill.set(l, null !== (o = this._globalTimelineStyles.get(l)) && void 0 !== o ? o : Vr), | |
this._updateStyle(l, u) | |
} | |
} | |
applyStylesToKeyframe() { | |
0 != this._pendingStyles.size && (this._pendingStyles.forEach( (e, t) => { | |
this._currentKeyframe.set(t, e) | |
} | |
), | |
this._pendingStyles.clear(), | |
this._localTimelineStyles.forEach( (e, t) => { | |
this._currentKeyframe.has(t) || this._currentKeyframe.set(t, e) | |
} | |
)) | |
} | |
snapshotCurrentStyles() { | |
for (let[e,t] of this._localTimelineStyles) | |
this._pendingStyles.set(e, t), | |
this._updateStyle(e, t) | |
} | |
getFinalKeyframe() { | |
return this._keyframes.get(this.duration) | |
} | |
get properties() { | |
const e = []; | |
for (let t in this._currentKeyframe) | |
e.push(t); | |
return e | |
} | |
mergeTimelineCollectedStyles(e) { | |
e._styleSummary.forEach( (t, r) => { | |
const i = this._styleSummary.get(r); | |
(!i || t.time > i.time) && this._updateStyle(r, t.value) | |
} | |
) | |
} | |
buildKeyframes() { | |
this.applyStylesToKeyframe(); | |
const e = new Set | |
, t = new Set | |
, r = 1 === this._keyframes.size && 0 === this.duration; | |
let i = []; | |
this._keyframes.forEach( (a, l) => { | |
const c = ui(a, new Map, this._backFill); | |
c.forEach( (u, d) => { | |
"!" === u ? e.add(d) : u === Vr && t.add(d) | |
} | |
), | |
r || c.set("offset", l / this.duration), | |
i.push(c) | |
} | |
); | |
const o = e.size ? Mc(e.values()) : [] | |
, s = t.size ? Mc(t.values()) : []; | |
if (r) { | |
const a = i[0] | |
, l = new Map(a); | |
a.set("offset", 0), | |
l.set("offset", 1), | |
i = [a, l] | |
} | |
return Ap(this.element, i, o, s, this.duration, this.startTime, this.easing, !1) | |
} | |
} | |
class W2 extends Oc { | |
constructor(e, t, r, i, o, s, a=!1) { | |
super(e, t, s.delay), | |
this.keyframes = r, | |
this.preStyleProps = i, | |
this.postStyleProps = o, | |
this._stretchStartingKeyframe = a, | |
this.timings = { | |
duration: s.duration, | |
delay: s.delay, | |
easing: s.easing | |
} | |
} | |
containsAnimation() { | |
return this.keyframes.length > 1 | |
} | |
buildKeyframes() { | |
let e = this.keyframes | |
, {delay: t, duration: r, easing: i} = this.timings; | |
if (this._stretchStartingKeyframe && t) { | |
const o = [] | |
, s = r + t | |
, a = t / s | |
, l = ui(e[0]); | |
l.set("offset", 0), | |
o.push(l); | |
const c = ui(e[0]); | |
c.set("offset", uE(a)), | |
o.push(c); | |
const u = e.length - 1; | |
for (let d = 1; d <= u; d++) { | |
let h = ui(e[d]); | |
const f = h.get("offset"); | |
h.set("offset", uE((t + f * r) / s)), | |
o.push(h) | |
} | |
r = s, | |
t = 0, | |
i = "", | |
e = o | |
} | |
return Ap(this.element, e, this.preStyleProps, this.postStyleProps, r, t, i, !0) | |
} | |
} | |
function uE(n, e=3) { | |
const t = Math.pow(10, e - 1); | |
return Math.round(n * t) / t | |
} | |
class xp { | |
} | |
const q2 = new Set(["width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "left", "top", "bottom", "right", "fontSize", "outlineWidth", "outlineOffset", "paddingTop", "paddingLeft", "paddingBottom", "paddingRight", "marginTop", "marginLeft", "marginBottom", "marginRight", "borderRadius", "borderWidth", "borderTopWidth", "borderLeftWidth", "borderRightWidth", "borderBottomWidth", "textIndent", "perspective"]); | |
class K2 extends xp { | |
normalizePropertyName(e, t) { | |
return wp(e) | |
} | |
normalizeStyleValue(e, t, r, i) { | |
let o = ""; | |
const s = r.toString().trim(); | |
if (q2.has(t) && 0 !== r && "0" !== r) | |
if ("number" == typeof r) | |
o = "px"; | |
else { | |
const a = r.match(/^[+-]?[\d\.]+([a-z]*)$/); | |
a && 0 == a[1].length && i.push(function LL(n, e) { | |
return new U(3005,!1) | |
}()) | |
} | |
return s + o | |
} | |
} | |
function dE(n, e, t, r, i, o, s, a, l, c, u, d, h) { | |
return { | |
type: 0, | |
element: n, | |
triggerName: e, | |
isRemovalTransition: i, | |
fromState: t, | |
fromStyles: o, | |
toState: r, | |
toStyles: s, | |
timelines: a, | |
queriedElements: l, | |
preStyleProps: c, | |
postStyleProps: u, | |
totalTime: d, | |
errors: h | |
} | |
} | |
const Rp = {}; | |
class hE { | |
constructor(e, t, r) { | |
this._triggerName = e, | |
this.ast = t, | |
this._stateStyles = r | |
} | |
match(e, t, r, i) { | |
return function Q2(n, e, t, r, i) { | |
return n.some(o => o(e, t, r, i)) | |
}(this.ast.matchers, e, t, r, i) | |
} | |
buildStyles(e, t, r) { | |
let i = this._stateStyles.get("*"); | |
return void 0 !== e && (i = this._stateStyles.get(null == e ? void 0 : e.toString()) || i), | |
i ? i.buildStyles(t, r) : new Map | |
} | |
build(e, t, r, i, o, s, a, l, c, u) { | |
var d; | |
const h = [] | |
, f = this.ast.options && this.ast.options.params || Rp | |
, _ = this.buildStyles(r, a && a.params || Rp, h) | |
, C = l && l.params || Rp | |
, S = this.buildStyles(i, C, h) | |
, R = new Set | |
, v = new Map | |
, O = new Map | |
, M = "void" === i | |
, N = { | |
params: Y2(C, f), | |
delay: null === (d = this.ast.options) || void 0 === d ? void 0 : d.delay | |
} | |
, F = u ? [] : Ip(e, t, this.ast.animation, o, s, _, S, N, c, h); | |
let $ = 0; | |
if (F.forEach(K => { | |
$ = Math.max(K.duration + K.delay, $) | |
} | |
), | |
h.length) | |
return dE(t, this._triggerName, r, i, M, _, S, [], [], v, O, $, h); | |
F.forEach(K => { | |
const X = K.element | |
, ie = Sn(v, X, new Set); | |
K.preStyleProps.forEach(y => ie.add(y)); | |
const g = Sn(O, X, new Set); | |
K.postStyleProps.forEach(y => g.add(y)), | |
X !== t && R.add(X) | |
} | |
); | |
const q = Mc(R.values()); | |
return dE(t, this._triggerName, r, i, M, _, S, F, q, v, O, $) | |
} | |
} | |
function Y2(n, e) { | |
const t = da(e); | |
for (const r in n) | |
n.hasOwnProperty(r) && null != n[r] && (t[r] = n[r]); | |
return t | |
} | |
class Z2 { | |
constructor(e, t, r) { | |
this.styles = e, | |
this.defaultParams = t, | |
this.normalizer = r | |
} | |
buildStyles(e, t) { | |
const r = new Map | |
, i = da(this.defaultParams); | |
return Object.keys(e).forEach(o => { | |
const s = e[o]; | |
null !== s && (i[o] = s) | |
} | |
), | |
this.styles.styles.forEach(o => { | |
"string" != typeof o && o.forEach( (s, a) => { | |
s && (s = fa(s, i, t)); | |
const l = this.normalizer.normalizePropertyName(a, t); | |
s = this.normalizer.normalizeStyleValue(a, l, s, t), | |
r.set(l, s) | |
} | |
) | |
} | |
), | |
r | |
} | |
} | |
class J2 { | |
constructor(e, t, r) { | |
this.name = e, | |
this.ast = t, | |
this._normalizer = r, | |
this.transitionFactories = [], | |
this.states = new Map, | |
t.states.forEach(i => { | |
this.states.set(i.name, new Z2(i.style,i.options && i.options.params || {},r)) | |
} | |
), | |
fE(this.states, "true", "1"), | |
fE(this.states, "false", "0"), | |
t.transitions.forEach(i => { | |
this.transitionFactories.push(new hE(e,i,this.states)) | |
} | |
), | |
this.fallbackTransition = function eV(n, e, t) { | |
return new hE(n,{ | |
type: 1, | |
animation: { | |
type: 2, | |
steps: [], | |
options: null | |
}, | |
matchers: [ (s, a) => !0], | |
options: null, | |
queryCount: 0, | |
depCount: 0 | |
},e) | |
}(e, this.states) | |
} | |
get containsQueries() { | |
return this.ast.queryCount > 0 | |
} | |
matchTransition(e, t, r, i) { | |
return this.transitionFactories.find(s => s.match(e, t, r, i)) || null | |
} | |
matchStyles(e, t, r) { | |
return this.fallbackTransition.buildStyles(e, t, r) | |
} | |
} | |
function fE(n, e, t) { | |
n.has(e) ? n.has(t) || n.set(t, n.get(e)) : n.has(t) && n.set(e, n.get(t)) | |
} | |
const tV = new Fc; | |
class nV { | |
constructor(e, t, r) { | |
this.bodyNode = e, | |
this._driver = t, | |
this._normalizer = r, | |
this._animations = new Map, | |
this._playersById = new Map, | |
this.players = [] | |
} | |
register(e, t) { | |
const r = [] | |
, o = Dp(this._driver, t, r, []); | |
if (r.length) | |
throw function t2(n) { | |
return new U(3503,!1) | |
}(); | |
this._animations.set(e, o) | |
} | |
_buildPlayer(e, t, r) { | |
const i = e.element | |
, o = WT(0, this._normalizer, 0, e.keyframes, t, r); | |
return this._driver.animate(i, o, e.duration, e.delay, e.easing, [], !0) | |
} | |
create(e, t, r={}) { | |
const i = [] | |
, o = this._animations.get(e); | |
let s; | |
const a = new Map; | |
if (o ? (s = Ip(this._driver, t, o, bp, Tc, new Map, new Map, r, tV, i), | |
s.forEach(u => { | |
const d = Sn(a, u.element, new Map); | |
u.postStyleProps.forEach(h => d.set(h, null)) | |
} | |
)) : (i.push(function n2() { | |
return new U(3300,!1) | |
}()), | |
s = []), | |
i.length) | |
throw function r2(n) { | |
return new U(3504,!1) | |
}(); | |
a.forEach( (u, d) => { | |
u.forEach( (h, f) => { | |
u.set(f, this._driver.computeStyle(d, f, Vr)) | |
} | |
) | |
} | |
); | |
const c = ci(s.map(u => { | |
const d = a.get(u.element); | |
return this._buildPlayer(u, new Map, d) | |
} | |
)); | |
return this._playersById.set(e, c), | |
c.onDestroy( () => this.destroy(e)), | |
this.players.push(c), | |
c | |
} | |
destroy(e) { | |
const t = this._getPlayer(e); | |
t.destroy(), | |
this._playersById.delete(e); | |
const r = this.players.indexOf(t); | |
r >= 0 && this.players.splice(r, 1) | |
} | |
_getPlayer(e) { | |
const t = this._playersById.get(e); | |
if (!t) | |
throw function o2(n) { | |
return new U(3301,!1) | |
}(); | |
return t | |
} | |
listen(e, t, r, i) { | |
const o = mp(t, "", "", ""); | |
return pp(this._getPlayer(e), r, o, i), | |
() => {} | |
} | |
command(e, t, r, i) { | |
if ("register" == r) | |
return void this.register(e, i[0]); | |
if ("create" == r) | |
return void this.create(e, t, i[0] || {}); | |
const o = this._getPlayer(e); | |
switch (r) { | |
case "play": | |
o.play(); | |
break; | |
case "pause": | |
o.pause(); | |
break; | |
case "reset": | |
o.reset(); | |
break; | |
case "restart": | |
o.restart(); | |
break; | |
case "finish": | |
o.finish(); | |
break; | |
case "init": | |
o.init(); | |
break; | |
case "setPosition": | |
o.setPosition(parseFloat(i[0])); | |
break; | |
case "destroy": | |
this.destroy(e) | |
} | |
} | |
} | |
const pE = "ng-animate-queued" | |
, Fp = "ng-animate-disabled" | |
, aV = [] | |
, gE = { | |
namespaceId: "", | |
setForRemoval: !1, | |
setForMove: !1, | |
hasAnimation: !1, | |
removedBeforeQueried: !1 | |
} | |
, lV = { | |
namespaceId: "", | |
setForMove: !1, | |
setForRemoval: !1, | |
hasAnimation: !1, | |
removedBeforeQueried: !0 | |
} | |
, Un = "__ng_removed"; | |
class Pp { | |
constructor(e, t="") { | |
this.namespaceId = t; | |
const r = e && e.hasOwnProperty("value"); | |
if (this.value = function hV(n) { | |
return null != n ? n : null | |
}(r ? e.value : e), | |
r) { | |
const o = da(e); | |
delete o.value, | |
this.options = o | |
} else | |
this.options = {}; | |
this.options.params || (this.options.params = {}) | |
} | |
get params() { | |
return this.options.params | |
} | |
absorbOptions(e) { | |
const t = e.params; | |
if (t) { | |
const r = this.options.params; | |
Object.keys(t).forEach(i => { | |
null == r[i] && (r[i] = t[i]) | |
} | |
) | |
} | |
} | |
} | |
const pa = "void" | |
, Op = new Pp(pa); | |
class cV { | |
constructor(e, t, r) { | |
this.id = e, | |
this.hostElement = t, | |
this._engine = r, | |
this.players = [], | |
this._triggers = new Map, | |
this._queue = [], | |
this._elementListeners = new Map, | |
this._hostClassName = "ng-tns-" + e, | |
jn(t, this._hostClassName) | |
} | |
listen(e, t, r, i) { | |
if (!this._triggers.has(t)) | |
throw function s2(n, e) { | |
return new U(3302,!1) | |
}(); | |
if (null == r || 0 == r.length) | |
throw function a2(n) { | |
return new U(3303,!1) | |
}(); | |
if (!function fV(n) { | |
return "start" == n || "done" == n | |
}(r)) | |
throw function l2(n, e) { | |
return new U(3400,!1) | |
}(); | |
const o = Sn(this._elementListeners, e, []) | |
, s = { | |
name: t, | |
phase: r, | |
callback: i | |
}; | |
o.push(s); | |
const a = Sn(this._engine.statesByElement, e, new Map); | |
return a.has(t) || (jn(e, Ec), | |
jn(e, Ec + "-" + t), | |
a.set(t, Op)), | |
() => { | |
this._engine.afterFlush( () => { | |
const l = o.indexOf(s); | |
l >= 0 && o.splice(l, 1), | |
this._triggers.has(t) || a.delete(t) | |
} | |
) | |
} | |
} | |
register(e, t) { | |
return !this._triggers.has(e) && (this._triggers.set(e, t), | |
!0) | |
} | |
_getTrigger(e) { | |
const t = this._triggers.get(e); | |
if (!t) | |
throw function c2(n) { | |
return new U(3401,!1) | |
}(); | |
return t | |
} | |
trigger(e, t, r, i=!0) { | |
const o = this._getTrigger(t) | |
, s = new Np(this.id,t,e); | |
let a = this._engine.statesByElement.get(e); | |
a || (jn(e, Ec), | |
jn(e, Ec + "-" + t), | |
this._engine.statesByElement.set(e, a = new Map)); | |
let l = a.get(t); | |
const c = new Pp(r,this.id); | |
if (!(r && r.hasOwnProperty("value")) && l && c.absorbOptions(l.options), | |
a.set(t, c), | |
l || (l = Op), | |
c.value !== pa && l.value === c.value) { | |
if (!function mV(n, e) { | |
const t = Object.keys(n) | |
, r = Object.keys(e); | |
if (t.length != r.length) | |
return !1; | |
for (let i = 0; i < t.length; i++) { | |
const o = t[i]; | |
if (!e.hasOwnProperty(o) || n[o] !== e[o]) | |
return !1 | |
} | |
return !0 | |
}(l.params, c.params)) { | |
const _ = [] | |
, C = o.matchStyles(l.value, l.params, _) | |
, S = o.matchStyles(c.value, c.params, _); | |
_.length ? this._engine.reportError(_) : this._engine.afterFlush( () => { | |
Hi(e, C), | |
yr(e, S) | |
} | |
) | |
} | |
return | |
} | |
const h = Sn(this._engine.playersByElement, e, []); | |
h.forEach(_ => { | |
_.namespaceId == this.id && _.triggerName == t && _.queued && _.destroy() | |
} | |
); | |
let f = o.matchTransition(l.value, c.value, e, c.params) | |
, p = !1; | |
if (!f) { | |
if (!i) | |
return; | |
f = o.fallbackTransition, | |
p = !0 | |
} | |
return this._engine.totalQueuedPlayers++, | |
this._queue.push({ | |
element: e, | |
triggerName: t, | |
transition: f, | |
fromState: l, | |
toState: c, | |
player: s, | |
isFallbackTransition: p | |
}), | |
p || (jn(e, pE), | |
s.onStart( () => { | |
jo(e, pE) | |
} | |
)), | |
s.onDone( () => { | |
let _ = this.players.indexOf(s); | |
_ >= 0 && this.players.splice(_, 1); | |
const C = this._engine.playersByElement.get(e); | |
if (C) { | |
let S = C.indexOf(s); | |
S >= 0 && C.splice(S, 1) | |
} | |
} | |
), | |
this.players.push(s), | |
h.push(s), | |
s | |
} | |
deregister(e) { | |
this._triggers.delete(e), | |
this._engine.statesByElement.forEach(t => t.delete(e)), | |
this._elementListeners.forEach( (t, r) => { | |
this._elementListeners.set(r, t.filter(i => i.name != e)) | |
} | |
) | |
} | |
clearElementCache(e) { | |
this._engine.statesByElement.delete(e), | |
this._elementListeners.delete(e); | |
const t = this._engine.playersByElement.get(e); | |
t && (t.forEach(r => r.destroy()), | |
this._engine.playersByElement.delete(e)) | |
} | |
_signalRemovalForInnerTriggers(e, t) { | |
const r = this._engine.driver.query(e, wc, !0); | |
r.forEach(i => { | |
if (i[Un]) | |
return; | |
const o = this._engine.fetchNamespacesByElement(i); | |
o.size ? o.forEach(s => s.triggerLeaveAnimation(i, t, !1, !0)) : this.clearElementCache(i) | |
} | |
), | |
this._engine.afterFlushAnimationsDone( () => r.forEach(i => this.clearElementCache(i))) | |
} | |
triggerLeaveAnimation(e, t, r, i) { | |
const o = this._engine.statesByElement.get(e) | |
, s = new Map; | |
if (o) { | |
const a = []; | |
if (o.forEach( (l, c) => { | |
if (s.set(c, l.value), | |
this._triggers.has(c)) { | |
const u = this.trigger(e, c, pa, i); | |
u && a.push(u) | |
} | |
} | |
), | |
a.length) | |
return this._engine.markElementAsRemoved(this.id, e, !0, t, s), | |
r && ci(a).onDone( () => this._engine.processLeaveNode(e)), | |
!0 | |
} | |
return !1 | |
} | |
prepareLeaveAnimationListeners(e) { | |
const t = this._elementListeners.get(e) | |
, r = this._engine.statesByElement.get(e); | |
if (t && r) { | |
const i = new Set; | |
t.forEach(o => { | |
const s = o.name; | |
if (i.has(s)) | |
return; | |
i.add(s); | |
const l = this._triggers.get(s).fallbackTransition | |
, c = r.get(s) || Op | |
, u = new Pp(pa) | |
, d = new Np(this.id,s,e); | |
this._engine.totalQueuedPlayers++, | |
this._queue.push({ | |
element: e, | |
triggerName: s, | |
transition: l, | |
fromState: c, | |
toState: u, | |
player: d, | |
isFallbackTransition: !0 | |
}) | |
} | |
) | |
} | |
} | |
removeNode(e, t) { | |
const r = this._engine; | |
if (e.childElementCount && this._signalRemovalForInnerTriggers(e, t), | |
this.triggerLeaveAnimation(e, t, !0)) | |
return; | |
let i = !1; | |
if (r.totalAnimations) { | |
const o = r.players.length ? r.playersByQueriedElement.get(e) : []; | |
if (o && o.length) | |
i = !0; | |
else { | |
let s = e; | |
for (; s = s.parentNode; ) | |
if (r.statesByElement.get(s)) { | |
i = !0; | |
break | |
} | |
} | |
} | |
if (this.prepareLeaveAnimationListeners(e), | |
i) | |
r.markElementAsRemoved(this.id, e, !1, t); | |
else { | |
const o = e[Un]; | |
(!o || o === gE) && (r.afterFlush( () => this.clearElementCache(e)), | |
r.destroyInnerAnimations(e), | |
r._onRemovalComplete(e, t)) | |
} | |
} | |
insertNode(e, t) { | |
jn(e, this._hostClassName) | |
} | |
drainQueuedTransitions(e) { | |
const t = []; | |
return this._queue.forEach(r => { | |
const i = r.player; | |
if (i.destroyed) | |
return; | |
const o = r.element | |
, s = this._elementListeners.get(o); | |
s && s.forEach(a => { | |
if (a.name == r.triggerName) { | |
const l = mp(o, r.triggerName, r.fromState.value, r.toState.value); | |
l._data = e, | |
pp(r.player, a.phase, l, a.callback) | |
} | |
} | |
), | |
i.markedForDestroy ? this._engine.afterFlush( () => { | |
i.destroy() | |
} | |
) : t.push(r) | |
} | |
), | |
this._queue = [], | |
t.sort( (r, i) => { | |
const o = r.transition.ast.depCount | |
, s = i.transition.ast.depCount; | |
return 0 == o || 0 == s ? o - s : this._engine.driver.containsElement(r.element, i.element) ? 1 : -1 | |
} | |
) | |
} | |
destroy(e) { | |
this.players.forEach(t => t.destroy()), | |
this._signalRemovalForInnerTriggers(this.hostElement, e) | |
} | |
elementContainsData(e) { | |
let t = !1; | |
return this._elementListeners.has(e) && (t = !0), | |
t = !!this._queue.find(r => r.element === e) || t, | |
t | |
} | |
} | |
class uV { | |
constructor(e, t, r) { | |
this.bodyNode = e, | |
this.driver = t, | |
this._normalizer = r, | |
this.players = [], | |
this.newHostElements = new Map, | |
this.playersByElement = new Map, | |
this.playersByQueriedElement = new Map, | |
this.statesByElement = new Map, | |
this.disabledNodes = new Set, | |
this.totalAnimations = 0, | |
this.totalQueuedPlayers = 0, | |
this._namespaceLookup = {}, | |
this._namespaceList = [], | |
this._flushFns = [], | |
this._whenQuietFns = [], | |
this.namespacesByHostElement = new Map, | |
this.collectedEnterElements = [], | |
this.collectedLeaveElements = [], | |
this.onRemovalComplete = (i, o) => {} | |
} | |
_onRemovalComplete(e, t) { | |
this.onRemovalComplete(e, t) | |
} | |
get queuedPlayers() { | |
const e = []; | |
return this._namespaceList.forEach(t => { | |
t.players.forEach(r => { | |
r.queued && e.push(r) | |
} | |
) | |
} | |
), | |
e | |
} | |
createNamespace(e, t) { | |
const r = new cV(e,t,this); | |
return this.bodyNode && this.driver.containsElement(this.bodyNode, t) ? this._balanceNamespaceList(r, t) : (this.newHostElements.set(t, r), | |
this.collectEnterElement(t)), | |
this._namespaceLookup[e] = r | |
} | |
_balanceNamespaceList(e, t) { | |
const r = this._namespaceList | |
, i = this.namespacesByHostElement; | |
if (r.length - 1 >= 0) { | |
let s = !1 | |
, a = this.driver.getParentElement(t); | |
for (; a; ) { | |
const l = i.get(a); | |
if (l) { | |
const c = r.indexOf(l); | |
r.splice(c + 1, 0, e), | |
s = !0; | |
break | |
} | |
a = this.driver.getParentElement(a) | |
} | |
s || r.unshift(e) | |
} else | |
r.push(e); | |
return i.set(t, e), | |
e | |
} | |
register(e, t) { | |
let r = this._namespaceLookup[e]; | |
return r || (r = this.createNamespace(e, t)), | |
r | |
} | |
registerTrigger(e, t, r) { | |
let i = this._namespaceLookup[e]; | |
i && i.register(t, r) && this.totalAnimations++ | |
} | |
destroy(e, t) { | |
if (!e) | |
return; | |
const r = this._fetchNamespace(e); | |
this.afterFlush( () => { | |
this.namespacesByHostElement.delete(r.hostElement), | |
delete this._namespaceLookup[e]; | |
const i = this._namespaceList.indexOf(r); | |
i >= 0 && this._namespaceList.splice(i, 1) | |
} | |
), | |
this.afterFlushAnimationsDone( () => r.destroy(t)) | |
} | |
_fetchNamespace(e) { | |
return this._namespaceLookup[e] | |
} | |
fetchNamespacesByElement(e) { | |
const t = new Set | |
, r = this.statesByElement.get(e); | |
if (r) | |
for (let i of r.values()) | |
if (i.namespaceId) { | |
const o = this._fetchNamespace(i.namespaceId); | |
o && t.add(o) | |
} | |
return t | |
} | |
trigger(e, t, r, i) { | |
if (Nc(t)) { | |
const o = this._fetchNamespace(e); | |
if (o) | |
return o.trigger(t, r, i), | |
!0 | |
} | |
return !1 | |
} | |
insertNode(e, t, r, i) { | |
if (!Nc(t)) | |
return; | |
const o = t[Un]; | |
if (o && o.setForRemoval) { | |
o.setForRemoval = !1, | |
o.setForMove = !0; | |
const s = this.collectedLeaveElements.indexOf(t); | |
s >= 0 && this.collectedLeaveElements.splice(s, 1) | |
} | |
if (e) { | |
const s = this._fetchNamespace(e); | |
s && s.insertNode(t, r) | |
} | |
i && this.collectEnterElement(t) | |
} | |
collectEnterElement(e) { | |
this.collectedEnterElements.push(e) | |
} | |
markElementAsDisabled(e, t) { | |
t ? this.disabledNodes.has(e) || (this.disabledNodes.add(e), | |
jn(e, Fp)) : this.disabledNodes.has(e) && (this.disabledNodes.delete(e), | |
jo(e, Fp)) | |
} | |
removeNode(e, t, r, i) { | |
if (Nc(t)) { | |
const o = e ? this._fetchNamespace(e) : null; | |
if (o ? o.removeNode(t, i) : this.markElementAsRemoved(e, t, !1, i), | |
r) { | |
const s = this.namespacesByHostElement.get(t); | |
s && s.id !== e && s.removeNode(t, i) | |
} | |
} else | |
this._onRemovalComplete(t, i) | |
} | |
markElementAsRemoved(e, t, r, i, o) { | |
this.collectedLeaveElements.push(t), | |
t[Un] = { | |
namespaceId: e, | |
setForRemoval: i, | |
hasAnimation: r, | |
removedBeforeQueried: !1, | |
previousTriggersValues: o | |
} | |
} | |
listen(e, t, r, i, o) { | |
return Nc(t) ? this._fetchNamespace(e).listen(t, r, i, o) : () => {} | |
} | |
_buildInstruction(e, t, r, i, o) { | |
return e.transition.build(this.driver, e.element, e.fromState.value, e.toState.value, r, i, e.fromState.options, e.toState.options, t, o) | |
} | |
destroyInnerAnimations(e) { | |
let t = this.driver.query(e, wc, !0); | |
t.forEach(r => this.destroyActiveAnimationsForElement(r)), | |
0 != this.playersByQueriedElement.size && (t = this.driver.query(e, Cp, !0), | |
t.forEach(r => this.finishActiveQueriedAnimationOnElement(r))) | |
} | |
destroyActiveAnimationsForElement(e) { | |
const t = this.playersByElement.get(e); | |
t && t.forEach(r => { | |
r.queued ? r.markedForDestroy = !0 : r.destroy() | |
} | |
) | |
} | |
finishActiveQueriedAnimationOnElement(e) { | |
const t = this.playersByQueriedElement.get(e); | |
t && t.forEach(r => r.finish()) | |
} | |
whenRenderingDone() { | |
return new Promise(e => { | |
if (this.players.length) | |
return ci(this.players).onDone( () => e()); | |
e() | |
} | |
) | |
} | |
processLeaveNode(e) { | |
var t; | |
const r = e[Un]; | |
if (r && r.setForRemoval) { | |
if (e[Un] = gE, | |
r.namespaceId) { | |
this.destroyInnerAnimations(e); | |
const i = this._fetchNamespace(r.namespaceId); | |
i && i.clearElementCache(e) | |
} | |
this._onRemovalComplete(e, r.setForRemoval) | |
} | |
!(null === (t = e.classList) || void 0 === t) && t.contains(Fp) && this.markElementAsDisabled(e, !1), | |
this.driver.query(e, ".ng-animate-disabled", !0).forEach(i => { | |
this.markElementAsDisabled(i, !1) | |
} | |
) | |
} | |
flush(e=-1) { | |
let t = []; | |
if (this.newHostElements.size && (this.newHostElements.forEach( (r, i) => this._balanceNamespaceList(r, i)), | |
this.newHostElements.clear()), | |
this.totalAnimations && this.collectedEnterElements.length) | |
for (let r = 0; r < this.collectedEnterElements.length; r++) | |
jn(this.collectedEnterElements[r], "ng-star-inserted"); | |
if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) { | |
const r = []; | |
try { | |
t = this._flushAnimations(r, e) | |
} finally { | |
for (let i = 0; i < r.length; i++) | |
r[i]() | |
} | |
} else | |
for (let r = 0; r < this.collectedLeaveElements.length; r++) | |
this.processLeaveNode(this.collectedLeaveElements[r]); | |
if (this.totalQueuedPlayers = 0, | |
this.collectedEnterElements.length = 0, | |
this.collectedLeaveElements.length = 0, | |
this._flushFns.forEach(r => r()), | |
this._flushFns = [], | |
this._whenQuietFns.length) { | |
const r = this._whenQuietFns; | |
this._whenQuietFns = [], | |
t.length ? ci(t).onDone( () => { | |
r.forEach(i => i()) | |
} | |
) : r.forEach(i => i()) | |
} | |
} | |
reportError(e) { | |
throw function u2(n) { | |
return new U(3402,!1) | |
}() | |
} | |
_flushAnimations(e, t) { | |
const r = new Fc | |
, i = [] | |
, o = new Map | |
, s = [] | |
, a = new Map | |
, l = new Map | |
, c = new Map | |
, u = new Set; | |
this.disabledNodes.forEach(b => { | |
u.add(b); | |
const w = this.driver.query(b, ".ng-animate-queued", !0); | |
for (let I = 0; I < w.length; I++) | |
u.add(w[I]) | |
} | |
); | |
const d = this.bodyNode | |
, h = Array.from(this.statesByElement.keys()) | |
, f = yE(h, this.collectedEnterElements) | |
, p = new Map; | |
let _ = 0; | |
f.forEach( (b, w) => { | |
const I = bp + _++; | |
p.set(w, I), | |
b.forEach(P => jn(P, I)) | |
} | |
); | |
const C = [] | |
, S = new Set | |
, R = new Set; | |
for (let b = 0; b < this.collectedLeaveElements.length; b++) { | |
const w = this.collectedLeaveElements[b] | |
, I = w[Un]; | |
I && I.setForRemoval && (C.push(w), | |
S.add(w), | |
I.hasAnimation ? this.driver.query(w, ".ng-star-inserted", !0).forEach(P => S.add(P)) : R.add(w)) | |
} | |
const v = new Map | |
, O = yE(h, Array.from(S)); | |
O.forEach( (b, w) => { | |
const I = Tc + _++; | |
v.set(w, I), | |
b.forEach(P => jn(P, I)) | |
} | |
), | |
e.push( () => { | |
f.forEach( (b, w) => { | |
const I = p.get(w); | |
b.forEach(P => jo(P, I)) | |
} | |
), | |
O.forEach( (b, w) => { | |
const I = v.get(w); | |
b.forEach(P => jo(P, I)) | |
} | |
), | |
C.forEach(b => { | |
this.processLeaveNode(b) | |
} | |
) | |
} | |
); | |
const M = [] | |
, N = []; | |
for (let b = this._namespaceList.length - 1; b >= 0; b--) | |
this._namespaceList[b].drainQueuedTransitions(t).forEach(I => { | |
const P = I.player | |
, L = I.element; | |
if (M.push(P), | |
this.collectedEnterElements.length) { | |
const z = L[Un]; | |
if (z && z.setForMove) { | |
if (z.previousTriggersValues && z.previousTriggersValues.has(I.triggerName)) { | |
const j = z.previousTriggersValues.get(I.triggerName) | |
, Y = this.statesByElement.get(I.element); | |
if (Y && Y.has(I.triggerName)) { | |
const ae = Y.get(I.triggerName); | |
ae.value = j, | |
Y.set(I.triggerName, ae) | |
} | |
} | |
return void P.destroy() | |
} | |
} | |
const G = !d || !this.driver.containsElement(d, L) | |
, m = v.get(L) | |
, x = p.get(L) | |
, D = this._buildInstruction(I, r, x, m, G); | |
if (D.errors && D.errors.length) | |
return void N.push(D); | |
if (G) | |
return P.onStart( () => Hi(L, D.fromStyles)), | |
P.onDestroy( () => yr(L, D.toStyles)), | |
void i.push(P); | |
if (I.isFallbackTransition) | |
return P.onStart( () => Hi(L, D.fromStyles)), | |
P.onDestroy( () => yr(L, D.toStyles)), | |
void i.push(P); | |
const k = []; | |
D.timelines.forEach(z => { | |
z.stretchStartingKeyframe = !0, | |
this.disabledNodes.has(z.element) || k.push(z) | |
} | |
), | |
D.timelines = k, | |
r.append(L, D.timelines), | |
s.push({ | |
instruction: D, | |
player: P, | |
element: L | |
}), | |
D.queriedElements.forEach(z => Sn(a, z, []).push(P)), | |
D.preStyleProps.forEach( (z, j) => { | |
if (z.size) { | |
let Y = l.get(j); | |
Y || l.set(j, Y = new Set), | |
z.forEach( (ae, ne) => Y.add(ne)) | |
} | |
} | |
), | |
D.postStyleProps.forEach( (z, j) => { | |
let Y = c.get(j); | |
Y || c.set(j, Y = new Set), | |
z.forEach( (ae, ne) => Y.add(ne)) | |
} | |
) | |
} | |
); | |
if (N.length) { | |
const b = []; | |
N.forEach(w => { | |
b.push(function d2(n, e) { | |
return new U(3505,!1) | |
}()) | |
} | |
), | |
M.forEach(w => w.destroy()), | |
this.reportError(b) | |
} | |
const F = new Map | |
, $ = new Map; | |
s.forEach(b => { | |
const w = b.element; | |
r.has(w) && ($.set(w, w), | |
this._beforeAnimationBuild(b.player.namespaceId, b.instruction, F)) | |
} | |
), | |
i.forEach(b => { | |
const w = b.element; | |
this._getPreviousPlayers(w, !1, b.namespaceId, b.triggerName, null).forEach(P => { | |
Sn(F, w, []).push(P), | |
P.destroy() | |
} | |
) | |
} | |
); | |
const q = C.filter(b => bE(b, l, c)) | |
, K = new Map; | |
_E(K, this.driver, R, c, Vr).forEach(b => { | |
bE(b, l, c) && q.push(b) | |
} | |
); | |
const ie = new Map; | |
f.forEach( (b, w) => { | |
_E(ie, this.driver, new Set(b), l, "!") | |
} | |
), | |
q.forEach(b => { | |
var w, I; | |
const P = K.get(b) | |
, L = ie.get(b); | |
K.set(b, new Map([...Array.from(null !== (w = null == P ? void 0 : P.entries()) && void 0 !== w ? w : []), ...Array.from(null !== (I = null == L ? void 0 : L.entries()) && void 0 !== I ? I : [])])) | |
} | |
); | |
const g = [] | |
, y = [] | |
, E = {}; | |
s.forEach(b => { | |
const {element: w, player: I, instruction: P} = b; | |
if (r.has(w)) { | |
if (u.has(w)) | |
return I.onDestroy( () => yr(w, P.toStyles)), | |
I.disabled = !0, | |
I.overrideTotalTime(P.totalTime), | |
void i.push(I); | |
let L = E; | |
if ($.size > 1) { | |
let m = w; | |
const x = []; | |
for (; m = m.parentNode; ) { | |
const D = $.get(m); | |
if (D) { | |
L = D; | |
break | |
} | |
x.push(m) | |
} | |
x.forEach(D => $.set(D, L)) | |
} | |
const G = this._buildAnimation(I.namespaceId, P, F, o, ie, K); | |
if (I.setRealPlayer(G), | |
L === E) | |
g.push(I); | |
else { | |
const m = this.playersByElement.get(L); | |
m && m.length && (I.parentPlayer = ci(m)), | |
i.push(I) | |
} | |
} else | |
Hi(w, P.fromStyles), | |
I.onDestroy( () => yr(w, P.toStyles)), | |
y.push(I), | |
u.has(w) && i.push(I) | |
} | |
), | |
y.forEach(b => { | |
const w = o.get(b.element); | |
if (w && w.length) { | |
const I = ci(w); | |
b.setRealPlayer(I) | |
} | |
} | |
), | |
i.forEach(b => { | |
b.parentPlayer ? b.syncPlayerEvents(b.parentPlayer) : b.destroy() | |
} | |
); | |
for (let b = 0; b < C.length; b++) { | |
const w = C[b] | |
, I = w[Un]; | |
if (jo(w, Tc), | |
I && I.hasAnimation) | |
continue; | |
let P = []; | |
if (a.size) { | |
let G = a.get(w); | |
G && G.length && P.push(...G); | |
let m = this.driver.query(w, Cp, !0); | |
for (let x = 0; x < m.length; x++) { | |
let D = a.get(m[x]); | |
D && D.length && P.push(...D) | |
} | |
} | |
const L = P.filter(G => !G.destroyed); | |
L.length ? pV(this, w, L) : this.processLeaveNode(w) | |
} | |
return C.length = 0, | |
g.forEach(b => { | |
this.players.push(b), | |
b.onDone( () => { | |
b.destroy(); | |
const w = this.players.indexOf(b); | |
this.players.splice(w, 1) | |
} | |
), | |
b.play() | |
} | |
), | |
g | |
} | |
elementContainsData(e, t) { | |
let r = !1; | |
const i = t[Un]; | |
return i && i.setForRemoval && (r = !0), | |
this.playersByElement.has(t) && (r = !0), | |
this.playersByQueriedElement.has(t) && (r = !0), | |
this.statesByElement.has(t) && (r = !0), | |
this._fetchNamespace(e).elementContainsData(t) || r | |
} | |
afterFlush(e) { | |
this._flushFns.push(e) | |
} | |
afterFlushAnimationsDone(e) { | |
this._whenQuietFns.push(e) | |
} | |
_getPreviousPlayers(e, t, r, i, o) { | |
let s = []; | |
if (t) { | |
const a = this.playersByQueriedElement.get(e); | |
a && (s = a) | |
} else { | |
const a = this.playersByElement.get(e); | |
if (a) { | |
const l = !o || o == pa; | |
a.forEach(c => { | |
c.queued || !l && c.triggerName != i || s.push(c) | |
} | |
) | |
} | |
} | |
return (r || i) && (s = s.filter(a => !(r && r != a.namespaceId || i && i != a.triggerName))), | |
s | |
} | |
_beforeAnimationBuild(e, t, r) { | |
const o = t.element | |
, s = t.isRemovalTransition ? void 0 : e | |
, a = t.isRemovalTransition ? void 0 : t.triggerName; | |
for (const l of t.timelines) { | |
const c = l.element | |
, u = c !== o | |
, d = Sn(r, c, []); | |
this._getPreviousPlayers(c, u, s, a, t.toState).forEach(f => { | |
const p = f.getRealPlayer(); | |
p.beforeDestroy && p.beforeDestroy(), | |
f.destroy(), | |
d.push(f) | |
} | |
) | |
} | |
Hi(o, t.fromStyles) | |
} | |
_buildAnimation(e, t, r, i, o, s) { | |
const a = t.triggerName | |
, l = t.element | |
, c = [] | |
, u = new Set | |
, d = new Set | |
, h = t.timelines.map(p => { | |
const _ = p.element; | |
u.add(_); | |
const C = _[Un]; | |
if (C && C.removedBeforeQueried) | |
return new ua(p.duration,p.delay); | |
const S = _ !== l | |
, R = function gV(n) { | |
const e = []; | |
return vE(n, e), | |
e | |
}((r.get(_) || aV).map(F => F.getRealPlayer())).filter(F => !!F.element && F.element === _) | |
, v = o.get(_) | |
, O = s.get(_) | |
, M = WT(0, this._normalizer, 0, p.keyframes, v, O) | |
, N = this._buildPlayer(p, M, R); | |
if (p.subTimeline && i && d.add(_), | |
S) { | |
const F = new Np(e,a,_); | |
F.setRealPlayer(N), | |
c.push(F) | |
} | |
return N | |
} | |
); | |
c.forEach(p => { | |
Sn(this.playersByQueriedElement, p.element, []).push(p), | |
p.onDone( () => function dV(n, e, t) { | |
let r = n.get(e); | |
if (r) { | |
if (r.length) { | |
const i = r.indexOf(t); | |
r.splice(i, 1) | |
} | |
0 == r.length && n.delete(e) | |
} | |
return r | |
}(this.playersByQueriedElement, p.element, p)) | |
} | |
), | |
u.forEach(p => jn(p, eE)); | |
const f = ci(h); | |
return f.onDestroy( () => { | |
u.forEach(p => jo(p, eE)), | |
yr(l, t.toStyles) | |
} | |
), | |
d.forEach(p => { | |
Sn(i, p, []).push(f) | |
} | |
), | |
f | |
} | |
_buildPlayer(e, t, r) { | |
return t.length > 0 ? this.driver.animate(e.element, t, e.duration, e.delay, e.easing, r) : new ua(e.duration,e.delay) | |
} | |
} | |
class Np { | |
constructor(e, t, r) { | |
this.namespaceId = e, | |
this.triggerName = t, | |
this.element = r, | |
this._player = new ua, | |
this._containsRealPlayer = !1, | |
this._queuedCallbacks = new Map, | |
this.destroyed = !1, | |
this.markedForDestroy = !1, | |
this.disabled = !1, | |
this.queued = !0, | |
this.totalTime = 0 | |
} | |
setRealPlayer(e) { | |
this._containsRealPlayer || (this._player = e, | |
this._queuedCallbacks.forEach( (t, r) => { | |
t.forEach(i => pp(e, r, void 0, i)) | |
} | |
), | |
this._queuedCallbacks.clear(), | |
this._containsRealPlayer = !0, | |
this.overrideTotalTime(e.totalTime), | |
this.queued = !1) | |
} | |
getRealPlayer() { | |
return this._player | |
} | |
overrideTotalTime(e) { | |
this.totalTime = e | |
} | |
syncPlayerEvents(e) { | |
const t = this._player; | |
t.triggerCallback && e.onStart( () => t.triggerCallback("start")), | |
e.onDone( () => this.finish()), | |
e.onDestroy( () => this.destroy()) | |
} | |
_queueEvent(e, t) { | |
Sn(this._queuedCallbacks, e, []).push(t) | |
} | |
onDone(e) { | |
this.queued && this._queueEvent("done", e), | |
this._player.onDone(e) | |
} | |
onStart(e) { | |
this.queued && this._queueEvent("start", e), | |
this._player.onStart(e) | |
} | |
onDestroy(e) { | |
this.queued && this._queueEvent("destroy", e), | |
this._player.onDestroy(e) | |
} | |
init() { | |
this._player.init() | |
} | |
hasStarted() { | |
return !this.queued && this._player.hasStarted() | |
} | |
play() { | |
!this.queued && this._player.play() | |
} | |
pause() { | |
!this.queued && this._player.pause() | |
} | |
restart() { | |
!this.queued && this._player.restart() | |
} | |
finish() { | |
this._player.finish() | |
} | |
destroy() { | |
this.destroyed = !0, | |
this._player.destroy() | |
} | |
reset() { | |
!this.queued && this._player.reset() | |
} | |
setPosition(e) { | |
this.queued || this._player.setPosition(e) | |
} | |
getPosition() { | |
return this.queued ? 0 : this._player.getPosition() | |
} | |
triggerCallback(e) { | |
const t = this._player; | |
t.triggerCallback && t.triggerCallback(e) | |
} | |
} | |
function Nc(n) { | |
return n && 1 === n.nodeType | |
} | |
function mE(n, e) { | |
const t = n.style.display; | |
return n.style.display = null != e ? e : "none", | |
t | |
} | |
function _E(n, e, t, r, i) { | |
const o = []; | |
t.forEach(l => o.push(mE(l))); | |
const s = []; | |
r.forEach( (l, c) => { | |
const u = new Map; | |
l.forEach(d => { | |
const h = e.computeStyle(c, d, i); | |
u.set(d, h), | |
(!h || 0 == h.length) && (c[Un] = lV, | |
s.push(c)) | |
} | |
), | |
n.set(c, u) | |
} | |
); | |
let a = 0; | |
return t.forEach(l => mE(l, o[a++])), | |
s | |
} | |
function yE(n, e) { | |
const t = new Map; | |
if (n.forEach(a => t.set(a, [])), | |
0 == e.length) | |
return t; | |
const i = new Set(e) | |
, o = new Map; | |
function s(a) { | |
if (!a) | |
return 1; | |
let l = o.get(a); | |
if (l) | |
return l; | |
const c = a.parentNode; | |
return l = t.has(c) ? c : i.has(c) ? 1 : s(c), | |
o.set(a, l), | |
l | |
} | |
return e.forEach(a => { | |
const l = s(a); | |
1 !== l && t.get(l).push(a) | |
} | |
), | |
t | |
} | |
function jn(n, e) { | |
var t; | |
null === (t = n.classList) || void 0 === t || t.add(e) | |
} | |
function jo(n, e) { | |
var t; | |
null === (t = n.classList) || void 0 === t || t.remove(e) | |
} | |
function pV(n, e, t) { | |
ci(t).onDone( () => n.processLeaveNode(e)) | |
} | |
function vE(n, e) { | |
for (let t = 0; t < n.length; t++) { | |
const r = n[t]; | |
r instanceof zT ? vE(r.players, e) : e.push(r) | |
} | |
} | |
function bE(n, e, t) { | |
const r = t.get(n); | |
if (!r) | |
return !1; | |
let i = e.get(n); | |
return i ? r.forEach(o => i.add(o)) : e.set(n, r), | |
t.delete(n), | |
!0 | |
} | |
class kc { | |
constructor(e, t, r) { | |
this.bodyNode = e, | |
this._driver = t, | |
this._normalizer = r, | |
this._triggerCache = {}, | |
this.onRemovalComplete = (i, o) => {} | |
, | |
this._transitionEngine = new uV(e,t,r), | |
this._timelineEngine = new nV(e,t,r), | |
this._transitionEngine.onRemovalComplete = (i, o) => this.onRemovalComplete(i, o) | |
} | |
registerTrigger(e, t, r, i, o) { | |
const s = e + "-" + i; | |
let a = this._triggerCache[s]; | |
if (!a) { | |
const l = [] | |
, u = Dp(this._driver, o, l, []); | |
if (l.length) | |
throw function JL(n, e) { | |
return new U(3404,!1) | |
}(); | |
a = function X2(n, e, t) { | |
return new J2(n,e,t) | |
}(i, u, this._normalizer), | |
this._triggerCache[s] = a | |
} | |
this._transitionEngine.registerTrigger(t, i, a) | |
} | |
register(e, t) { | |
this._transitionEngine.register(e, t) | |
} | |
destroy(e, t) { | |
this._transitionEngine.destroy(e, t) | |
} | |
onInsert(e, t, r, i) { | |
this._transitionEngine.insertNode(e, t, r, i) | |
} | |
onRemove(e, t, r, i) { | |
this._transitionEngine.removeNode(e, t, i || !1, r) | |
} | |
disableAnimations(e, t) { | |
this._transitionEngine.markElementAsDisabled(e, t) | |
} | |
process(e, t, r, i) { | |
if ("@" == r.charAt(0)) { | |
const [o,s] = GT(r); | |
this._timelineEngine.command(o, t, s, i) | |
} else | |
this._transitionEngine.trigger(e, t, r, i) | |
} | |
listen(e, t, r, i, o) { | |
if ("@" == r.charAt(0)) { | |
const [s,a] = GT(r); | |
return this._timelineEngine.listen(s, t, a, o) | |
} | |
return this._transitionEngine.listen(e, t, r, i, o) | |
} | |
flush(e=-1) { | |
this._transitionEngine.flush(e) | |
} | |
get players() { | |
return this._transitionEngine.players.concat(this._timelineEngine.players) | |
} | |
whenRenderingDone() { | |
return this._transitionEngine.whenRenderingDone() | |
} | |
} | |
let yV = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this._element = t, | |
this._startStyles = r, | |
this._endStyles = i, | |
this._state = 0; | |
let o = n.initialStylesByElement.get(t); | |
o || n.initialStylesByElement.set(t, o = new Map), | |
this._initialStyles = o | |
} | |
start() { | |
this._state < 1 && (this._startStyles && yr(this._element, this._startStyles, this._initialStyles), | |
this._state = 1) | |
} | |
finish() { | |
this.start(), | |
this._state < 2 && (yr(this._element, this._initialStyles), | |
this._endStyles && (yr(this._element, this._endStyles), | |
this._endStyles = null), | |
this._state = 1) | |
} | |
destroy() { | |
this.finish(), | |
this._state < 3 && (n.initialStylesByElement.delete(this._element), | |
this._startStyles && (Hi(this._element, this._startStyles), | |
this._endStyles = null), | |
this._endStyles && (Hi(this._element, this._endStyles), | |
this._endStyles = null), | |
yr(this._element, this._initialStyles), | |
this._state = 3) | |
} | |
} | |
return n.initialStylesByElement = new WeakMap, | |
n | |
} | |
)(); | |
function kp(n) { | |
let e = null; | |
return n.forEach( (t, r) => { | |
(function vV(n) { | |
return "display" === n || "position" === n | |
} | |
)(r) && (e = e || new Map, | |
e.set(r, t)) | |
} | |
), | |
e | |
} | |
class CE { | |
constructor(e, t, r, i) { | |
this.element = e, | |
this.keyframes = t, | |
this.options = r, | |
this._specialStyles = i, | |
this._onDoneFns = [], | |
this._onStartFns = [], | |
this._onDestroyFns = [], | |
this._initialized = !1, | |
this._finished = !1, | |
this._started = !1, | |
this._destroyed = !1, | |
this._originalOnDoneFns = [], | |
this._originalOnStartFns = [], | |
this.time = 0, | |
this.parentPlayer = null, | |
this.currentSnapshot = new Map, | |
this._duration = r.duration, | |
this._delay = r.delay || 0, | |
this.time = this._duration + this._delay | |
} | |
_onFinish() { | |
this._finished || (this._finished = !0, | |
this._onDoneFns.forEach(e => e()), | |
this._onDoneFns = []) | |
} | |
init() { | |
this._buildPlayer(), | |
this._preparePlayerBeforeStart() | |
} | |
_buildPlayer() { | |
if (this._initialized) | |
return; | |
this._initialized = !0; | |
const e = this.keyframes; | |
this.domPlayer = this._triggerWebAnimation(this.element, e, this.options), | |
this._finalKeyframe = e.length ? e[e.length - 1] : new Map, | |
this.domPlayer.addEventListener("finish", () => this._onFinish()) | |
} | |
_preparePlayerBeforeStart() { | |
this._delay ? this._resetDomPlayerState() : this.domPlayer.pause() | |
} | |
_convertKeyframesToObject(e) { | |
const t = []; | |
return e.forEach(r => { | |
t.push(Object.fromEntries(r)) | |
} | |
), | |
t | |
} | |
_triggerWebAnimation(e, t, r) { | |
return e.animate(this._convertKeyframesToObject(t), r) | |
} | |
onStart(e) { | |
this._originalOnStartFns.push(e), | |
this._onStartFns.push(e) | |
} | |
onDone(e) { | |
this._originalOnDoneFns.push(e), | |
this._onDoneFns.push(e) | |
} | |
onDestroy(e) { | |
this._onDestroyFns.push(e) | |
} | |
play() { | |
this._buildPlayer(), | |
this.hasStarted() || (this._onStartFns.forEach(e => e()), | |
this._onStartFns = [], | |
this._started = !0, | |
this._specialStyles && this._specialStyles.start()), | |
this.domPlayer.play() | |
} | |
pause() { | |
this.init(), | |
this.domPlayer.pause() | |
} | |
finish() { | |
this.init(), | |
this._specialStyles && this._specialStyles.finish(), | |
this._onFinish(), | |
this.domPlayer.finish() | |
} | |
reset() { | |
this._resetDomPlayerState(), | |
this._destroyed = !1, | |
this._finished = !1, | |
this._started = !1, | |
this._onStartFns = this._originalOnStartFns, | |
this._onDoneFns = this._originalOnDoneFns | |
} | |
_resetDomPlayerState() { | |
this.domPlayer && this.domPlayer.cancel() | |
} | |
restart() { | |
this.reset(), | |
this.play() | |
} | |
hasStarted() { | |
return this._started | |
} | |
destroy() { | |
this._destroyed || (this._destroyed = !0, | |
this._resetDomPlayerState(), | |
this._onFinish(), | |
this._specialStyles && this._specialStyles.destroy(), | |
this._onDestroyFns.forEach(e => e()), | |
this._onDestroyFns = []) | |
} | |
setPosition(e) { | |
void 0 === this.domPlayer && this.init(), | |
this.domPlayer.currentTime = e * this.time | |
} | |
getPosition() { | |
return this.domPlayer.currentTime / this.time | |
} | |
get totalTime() { | |
return this._delay + this._duration | |
} | |
beforeDestroy() { | |
const e = new Map; | |
this.hasStarted() && this._finalKeyframe.forEach( (r, i) => { | |
"offset" !== i && e.set(i, this._finished ? r : sE(this.element, i)) | |
} | |
), | |
this.currentSnapshot = e | |
} | |
triggerCallback(e) { | |
const t = "start" === e ? this._onStartFns : this._onDoneFns; | |
t.forEach(r => r()), | |
t.length = 0 | |
} | |
} | |
class bV { | |
validateStyleProperty(e) { | |
return !0 | |
} | |
validateAnimatableStyleProperty(e) { | |
return !0 | |
} | |
matchesElement(e, t) { | |
return !1 | |
} | |
containsElement(e, t) { | |
return YT(e, t) | |
} | |
getParentElement(e) { | |
return yp(e) | |
} | |
query(e, t, r) { | |
return ZT(e, t, r) | |
} | |
computeStyle(e, t, r) { | |
return window.getComputedStyle(e)[t] | |
} | |
animate(e, t, r, i, o, s=[]) { | |
const l = { | |
duration: r, | |
delay: i, | |
fill: 0 == i ? "both" : "forwards" | |
}; | |
o && (l.easing = o); | |
const c = new Map | |
, u = s.filter(f => f instanceof CE); | |
(function w2(n, e) { | |
return 0 === n || 0 === e | |
} | |
)(r, i) && u.forEach(f => { | |
f.currentSnapshot.forEach( (p, _) => c.set(_, p)) | |
} | |
); | |
let d = function b2(n) { | |
return n.length ? n[0]instanceof Map ? n : n.map(e => tE(e)) : [] | |
}(t).map(f => ui(f)); | |
d = function D2(n, e, t) { | |
if (t.size && e.length) { | |
let r = e[0] | |
, i = []; | |
if (t.forEach( (o, s) => { | |
r.has(s) || i.push(s), | |
r.set(s, o) | |
} | |
), | |
i.length) | |
for (let o = 1; o < e.length; o++) { | |
let s = e[o]; | |
i.forEach(a => s.set(a, sE(n, a))) | |
} | |
} | |
return e | |
}(e, d, c); | |
const h = function _V(n, e) { | |
let t = null | |
, r = null; | |
return Array.isArray(e) && e.length ? (t = kp(e[0]), | |
e.length > 1 && (r = kp(e[e.length - 1]))) : e instanceof Map && (t = kp(e)), | |
t || r ? new yV(n,t,r) : null | |
}(e, d); | |
return new CE(e,d,l,h) | |
} | |
} | |
let CV = ( () => { | |
class n extends UT { | |
constructor(t, r) { | |
super(), | |
this._nextAnimationId = 0, | |
this._renderer = t.createRenderer(r.body, { | |
id: "0", | |
encapsulation: Gn.None, | |
styles: [], | |
data: { | |
animation: [] | |
} | |
}) | |
} | |
build(t) { | |
const r = this._nextAnimationId.toString(); | |
this._nextAnimationId++; | |
const i = Array.isArray(t) ? jT(t) : t; | |
return TE(this._renderer, null, r, "register", [i]), | |
new TV(r,this._renderer) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(Os),Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
class TV extends class xL { | |
} | |
{ | |
constructor(e, t) { | |
super(), | |
this._id = e, | |
this._renderer = t | |
} | |
create(e, t) { | |
return new EV(this._id,e,t || {},this._renderer) | |
} | |
} | |
class EV { | |
constructor(e, t, r, i) { | |
this.id = e, | |
this.element = t, | |
this._renderer = i, | |
this.parentPlayer = null, | |
this._started = !1, | |
this.totalTime = 0, | |
this._command("create", r) | |
} | |
_listen(e, t) { | |
return this._renderer.listen(this.element, `@@${this.id}:${e}`, t) | |
} | |
_command(e, ...t) { | |
return TE(this._renderer, this.element, this.id, e, t) | |
} | |
onDone(e) { | |
this._listen("done", e) | |
} | |
onStart(e) { | |
this._listen("start", e) | |
} | |
onDestroy(e) { | |
this._listen("destroy", e) | |
} | |
init() { | |
this._command("init") | |
} | |
hasStarted() { | |
return this._started | |
} | |
play() { | |
this._command("play"), | |
this._started = !0 | |
} | |
pause() { | |
this._command("pause") | |
} | |
restart() { | |
this._command("restart") | |
} | |
finish() { | |
this._command("finish") | |
} | |
destroy() { | |
this._command("destroy") | |
} | |
reset() { | |
this._command("reset"), | |
this._started = !1 | |
} | |
setPosition(e) { | |
this._command("setPosition", e) | |
} | |
getPosition() { | |
var e, t; | |
return null !== (t = null === (e = this._renderer.engine.players[+this.id]) || void 0 === e ? void 0 : e.getPosition()) && void 0 !== t ? t : 0 | |
} | |
} | |
function TE(n, e, t, r, i) { | |
return n.setProperty(e, `@@${t}:${r}`, i) | |
} | |
const EE = "@.disabled"; | |
let wV = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this.delegate = t, | |
this.engine = r, | |
this._zone = i, | |
this._currentId = 0, | |
this._microtaskId = 1, | |
this._animationCallbacksBuffer = [], | |
this._rendererCache = new Map, | |
this._cdRecurDepth = 0, | |
this.promise = Promise.resolve(0), | |
r.onRemovalComplete = (o, s) => { | |
const a = null == s ? void 0 : s.parentNode(o); | |
a && s.removeChild(a, o) | |
} | |
} | |
createRenderer(t, r) { | |
const o = this.delegate.createRenderer(t, r); | |
if (!(t && r && r.data && r.data.animation)) { | |
let u = this._rendererCache.get(o); | |
return u || (u = new wE("",o,this.engine, () => this._rendererCache.delete(o)), | |
this._rendererCache.set(o, u)), | |
u | |
} | |
const s = r.id | |
, a = r.id + "-" + this._currentId; | |
this._currentId++, | |
this.engine.register(a, t); | |
const l = u => { | |
Array.isArray(u) ? u.forEach(l) : this.engine.registerTrigger(s, a, t, u.name, u) | |
} | |
; | |
return r.data.animation.forEach(l), | |
new DV(this,a,o,this.engine) | |
} | |
begin() { | |
this._cdRecurDepth++, | |
this.delegate.begin && this.delegate.begin() | |
} | |
_scheduleCountTask() { | |
this.promise.then( () => { | |
this._microtaskId++ | |
} | |
) | |
} | |
scheduleListenerCallback(t, r, i) { | |
t >= 0 && t < this._microtaskId ? this._zone.run( () => r(i)) : (0 == this._animationCallbacksBuffer.length && Promise.resolve(null).then( () => { | |
this._zone.run( () => { | |
this._animationCallbacksBuffer.forEach(o => { | |
const [s,a] = o; | |
s(a) | |
} | |
), | |
this._animationCallbacksBuffer = [] | |
} | |
) | |
} | |
), | |
this._animationCallbacksBuffer.push([r, i])) | |
} | |
end() { | |
this._cdRecurDepth--, | |
0 == this._cdRecurDepth && this._zone.runOutsideAngular( () => { | |
this._scheduleCountTask(), | |
this.engine.flush(this._microtaskId) | |
} | |
), | |
this.delegate.end && this.delegate.end() | |
} | |
whenRenderingDone() { | |
return this.engine.whenRenderingDone() | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(Os),Q(kc),Q(nt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
class wE { | |
constructor(e, t, r, i) { | |
this.namespaceId = e, | |
this.delegate = t, | |
this.engine = r, | |
this._onDestroy = i, | |
this.destroyNode = this.delegate.destroyNode ? o => t.destroyNode(o) : null | |
} | |
get data() { | |
return this.delegate.data | |
} | |
destroy() { | |
var e; | |
this.engine.destroy(this.namespaceId, this.delegate), | |
this.delegate.destroy(), | |
null === (e = this._onDestroy) || void 0 === e || e.call(this) | |
} | |
createElement(e, t) { | |
return this.delegate.createElement(e, t) | |
} | |
createComment(e) { | |
return this.delegate.createComment(e) | |
} | |
createText(e) { | |
return this.delegate.createText(e) | |
} | |
appendChild(e, t) { | |
this.delegate.appendChild(e, t), | |
this.engine.onInsert(this.namespaceId, t, e, !1) | |
} | |
insertBefore(e, t, r, i=!0) { | |
this.delegate.insertBefore(e, t, r), | |
this.engine.onInsert(this.namespaceId, t, e, i) | |
} | |
removeChild(e, t, r) { | |
this.engine.onRemove(this.namespaceId, t, this.delegate, r) | |
} | |
selectRootElement(e, t) { | |
return this.delegate.selectRootElement(e, t) | |
} | |
parentNode(e) { | |
return this.delegate.parentNode(e) | |
} | |
nextSibling(e) { | |
return this.delegate.nextSibling(e) | |
} | |
setAttribute(e, t, r, i) { | |
this.delegate.setAttribute(e, t, r, i) | |
} | |
removeAttribute(e, t, r) { | |
this.delegate.removeAttribute(e, t, r) | |
} | |
addClass(e, t) { | |
this.delegate.addClass(e, t) | |
} | |
removeClass(e, t) { | |
this.delegate.removeClass(e, t) | |
} | |
setStyle(e, t, r, i) { | |
this.delegate.setStyle(e, t, r, i) | |
} | |
removeStyle(e, t, r) { | |
this.delegate.removeStyle(e, t, r) | |
} | |
setProperty(e, t, r) { | |
"@" == t.charAt(0) && t == EE ? this.disableAnimations(e, !!r) : this.delegate.setProperty(e, t, r) | |
} | |
setValue(e, t) { | |
this.delegate.setValue(e, t) | |
} | |
listen(e, t, r) { | |
return this.delegate.listen(e, t, r) | |
} | |
disableAnimations(e, t) { | |
this.engine.disableAnimations(e, t) | |
} | |
} | |
class DV extends wE { | |
constructor(e, t, r, i, o) { | |
super(t, r, i, o), | |
this.factory = e, | |
this.namespaceId = t | |
} | |
setProperty(e, t, r) { | |
"@" == t.charAt(0) ? "." == t.charAt(1) && t == EE ? this.disableAnimations(e, r = void 0 === r || !!r) : this.engine.process(this.namespaceId, e, t.slice(1), r) : this.delegate.setProperty(e, t, r) | |
} | |
listen(e, t, r) { | |
if ("@" == t.charAt(0)) { | |
const i = function MV(n) { | |
switch (n) { | |
case "body": | |
return document.body; | |
case "document": | |
return document; | |
case "window": | |
return window; | |
default: | |
return n | |
} | |
}(e); | |
let o = t.slice(1) | |
, s = ""; | |
return "@" != o.charAt(0) && ([o,s] = function AV(n) { | |
const e = n.indexOf("."); | |
return [n.substring(0, e), n.slice(e + 1)] | |
}(o)), | |
this.engine.listen(this.namespaceId, i, o, s, a => { | |
this.factory.scheduleListenerCallback(a._data || -1, r, a) | |
} | |
) | |
} | |
return this.delegate.listen(e, t, r) | |
} | |
} | |
let IV = ( () => { | |
class n extends kc { | |
constructor(t, r, i, o) { | |
super(t.body, r, i) | |
} | |
ngOnDestroy() { | |
this.flush() | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(yt),Q(vp),Q(xp),Q(Xs)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
const DE = [{ | |
provide: UT, | |
useClass: CV | |
}, { | |
provide: xp, | |
useFactory: function SV() { | |
return new K2 | |
} | |
}, { | |
provide: kc, | |
useClass: IV | |
}, { | |
provide: Os, | |
useFactory: function xV(n, e, t) { | |
return new wV(n,e,t) | |
}, | |
deps: [hc, kc, nt] | |
}] | |
, Lp = [{ | |
provide: vp, | |
useFactory: () => new bV | |
}, { | |
provide: ef, | |
useValue: "BrowserAnimations" | |
}, ...DE] | |
, ME = [{ | |
provide: vp, | |
useClass: XT | |
}, { | |
provide: ef, | |
useValue: "NoopAnimations" | |
}, ...DE]; | |
let RV = ( () => { | |
class n { | |
static withConfig(t) { | |
return { | |
ngModule: n, | |
providers: t.disableAnimations ? ME : Lp | |
} | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
providers: Lp, | |
imports: [MC] | |
}), | |
n | |
} | |
)(); | |
function Ho(n) { | |
return null != n && "false" != `${n}` | |
} | |
function AE(n) { | |
return Array.isArray(n) ? n : [n] | |
} | |
function ga(n) { | |
return n instanceof Vt ? n.nativeElement : n | |
} | |
class PV { | |
constructor(e=!1, t, r=!0, i) { | |
this._multiple = e, | |
this._emitChanges = r, | |
this.compareWith = i, | |
this._selection = new Set, | |
this._deselectedToEmit = [], | |
this._selectedToEmit = [], | |
this.changed = new un, | |
t && t.length && (e ? t.forEach(o => this._markSelected(o)) : this._markSelected(t[0]), | |
this._selectedToEmit.length = 0) | |
} | |
get selected() { | |
return this._selected || (this._selected = Array.from(this._selection.values())), | |
this._selected | |
} | |
select(...e) { | |
this._verifyValueAssignment(e), | |
e.forEach(r => this._markSelected(r)); | |
const t = this._hasQueuedChanges(); | |
return this._emitChangeEvent(), | |
t | |
} | |
deselect(...e) { | |
this._verifyValueAssignment(e), | |
e.forEach(r => this._unmarkSelected(r)); | |
const t = this._hasQueuedChanges(); | |
return this._emitChangeEvent(), | |
t | |
} | |
setSelection(...e) { | |
this._verifyValueAssignment(e); | |
const t = this.selected | |
, r = new Set(e); | |
e.forEach(o => this._markSelected(o)), | |
t.filter(o => !r.has(o)).forEach(o => this._unmarkSelected(o)); | |
const i = this._hasQueuedChanges(); | |
return this._emitChangeEvent(), | |
i | |
} | |
toggle(e) { | |
return this.isSelected(e) ? this.deselect(e) : this.select(e) | |
} | |
clear(e=!0) { | |
this._unmarkAll(); | |
const t = this._hasQueuedChanges(); | |
return e && this._emitChangeEvent(), | |
t | |
} | |
isSelected(e) { | |
if (this.compareWith) { | |
for (const t of this._selection) | |
if (this.compareWith(t, e)) | |
return !0; | |
return !1 | |
} | |
return this._selection.has(e) | |
} | |
isEmpty() { | |
return 0 === this._selection.size | |
} | |
hasValue() { | |
return !this.isEmpty() | |
} | |
sort(e) { | |
this._multiple && this.selected && this._selected.sort(e) | |
} | |
isMultipleSelection() { | |
return this._multiple | |
} | |
_emitChangeEvent() { | |
this._selected = null, | |
(this._selectedToEmit.length || this._deselectedToEmit.length) && (this.changed.next({ | |
source: this, | |
added: this._selectedToEmit, | |
removed: this._deselectedToEmit | |
}), | |
this._deselectedToEmit = [], | |
this._selectedToEmit = []) | |
} | |
_markSelected(e) { | |
this.isSelected(e) || (this._multiple || this._unmarkAll(), | |
this.isSelected(e) || this._selection.add(e), | |
this._emitChanges && this._selectedToEmit.push(e)) | |
} | |
_unmarkSelected(e) { | |
this.isSelected(e) && (this._selection.delete(e), | |
this._emitChanges && this._deselectedToEmit.push(e)) | |
} | |
_unmarkAll() { | |
this.isEmpty() || this._selection.forEach(e => this._unmarkSelected(e)) | |
} | |
_verifyValueAssignment(e) {} | |
_hasQueuedChanges() { | |
return !(!this._deselectedToEmit.length && !this._selectedToEmit.length) | |
} | |
} | |
let Vp, IE = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({}), | |
n | |
} | |
)(); | |
try { | |
Vp = "undefined" != typeof Intl && Intl.v8BreakIterator | |
} catch (n) { | |
Vp = !1 | |
} | |
let ma, Bp, zo = ( () => { | |
class n { | |
constructor(t) { | |
this._platformId = t, | |
this.isBrowser = this._platformId ? function pN(n) { | |
return n === oC | |
}(this._platformId) : "object" == typeof document && !!document, | |
this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent), | |
this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent), | |
this.BLINK = this.isBrowser && !(!window.chrome && !Vp) && "undefined" != typeof CSS && !this.EDGE && !this.TRIDENT, | |
this.WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT, | |
this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !("MSStream"in window), | |
this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent), | |
this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT, | |
this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(Jh)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
function Vc(n) { | |
return function kV() { | |
if (null == ma && "undefined" != typeof window) | |
try { | |
window.addEventListener("test", null, Object.defineProperty({}, "passive", { | |
get: () => ma = !0 | |
})) | |
} finally { | |
ma = ma || !1 | |
} | |
return ma | |
}() ? n : !!n.capture | |
} | |
function _a(n) { | |
return n.composedPath ? n.composedPath()[0] : n.target | |
} | |
class Hn extends un { | |
constructor(e) { | |
super(), | |
this._value = e | |
} | |
get value() { | |
return this.getValue() | |
} | |
_subscribe(e) { | |
const t = super._subscribe(e); | |
return !t.closed && e.next(this._value), | |
t | |
} | |
getValue() { | |
const {hasError: e, thrownError: t, _value: r} = this; | |
if (e) | |
throw t; | |
return this._throwIfClosed(), | |
r | |
} | |
next(e) { | |
super.next(this._value = e) | |
} | |
} | |
function le(...n) { | |
return wt(n, ss(n)) | |
} | |
function Ur(n, e) { | |
return bt( (t, r) => { | |
let i = 0; | |
t.subscribe(pt(r, o => n.call(e, o, i++) && r.next(o))) | |
} | |
) | |
} | |
function RE(n) { | |
return Ur( (e, t) => n <= t) | |
} | |
function GV(n, e) { | |
return n === e | |
} | |
function FE(n) { | |
return bt( (e, t) => { | |
_n(n).subscribe(pt(t, () => t.complete(), bu)), | |
!t.closed && e.subscribe(t) | |
} | |
) | |
} | |
let qV = ( () => { | |
class n { | |
create(t) { | |
return "undefined" == typeof MutationObserver ? null : new MutationObserver(t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)() | |
, PE = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
providers: [qV] | |
}), | |
n | |
} | |
)(); | |
function Up(...n) { | |
const e = ss(n) | |
, t = Kg(n) | |
, {args: r, keys: i} = xC(n); | |
if (0 === r.length) | |
return wt([], e); | |
const o = new vt(function KV(n, e, t=qr) { | |
return r => { | |
OE(e, () => { | |
const {length: i} = n | |
, o = new Array(i); | |
let s = i | |
, a = i; | |
for (let l = 0; l < i; l++) | |
OE(e, () => { | |
const c = wt(n[l], e); | |
let u = !1; | |
c.subscribe(pt(r, d => { | |
o[l] = d, | |
u || (u = !0, | |
a--), | |
a || r.next(t(o.slice())) | |
} | |
, () => { | |
--s || r.complete() | |
} | |
)) | |
} | |
, r) | |
} | |
, r) | |
} | |
}(r, e, i ? s => FC(i, s) : qr)); | |
return t ? o.pipe(RC(t)) : o | |
} | |
function OE(n, e, t) { | |
n ? Cr(t, n, e) : e() | |
} | |
function Uc(...n) { | |
return function QV() { | |
return Zi(1) | |
}()(wt(n, ss(n))) | |
} | |
function Wo(n) { | |
return n <= 0 ? () => Tr : bt( (e, t) => { | |
let r = 0; | |
e.subscribe(pt(t, i => { | |
++r <= n && (t.next(i), | |
n <= r && t.complete()) | |
} | |
)) | |
} | |
) | |
} | |
class YV extends mn { | |
constructor(e, t) { | |
super() | |
} | |
schedule(e, t=0) { | |
return this | |
} | |
} | |
const jc = { | |
setInterval(n, e, ...t) { | |
const {delegate: r} = jc; | |
return null != r && r.setInterval ? r.setInterval(n, e, ...t) : setInterval(n, e, ...t) | |
}, | |
clearInterval(n) { | |
const {delegate: e} = jc; | |
return ((null == e ? void 0 : e.clearInterval) || clearInterval)(n) | |
}, | |
delegate: void 0 | |
} | |
, NE = { | |
now: () => (NE.delegate || Date).now(), | |
delegate: void 0 | |
}; | |
class ya { | |
constructor(e, t=ya.now) { | |
this.schedulerActionCtor = e, | |
this.now = t | |
} | |
schedule(e, t=0, r) { | |
return new this.schedulerActionCtor(this,e).schedule(r, t) | |
} | |
} | |
ya.now = NE.now; | |
const JV = new class XV extends ya { | |
constructor(e, t=ya.now) { | |
super(e, t), | |
this.actions = [], | |
this._active = !1 | |
} | |
flush(e) { | |
const {actions: t} = this; | |
if (this._active) | |
return void t.push(e); | |
let r; | |
this._active = !0; | |
do { | |
if (r = e.execute(e.state, e.delay)) | |
break | |
} while (e = t.shift()); | |
if (this._active = !1, | |
r) { | |
for (; e = t.shift(); ) | |
e.unsubscribe(); | |
throw r | |
} | |
} | |
} | |
(class ZV extends YV { | |
constructor(e, t) { | |
super(e, t), | |
this.scheduler = e, | |
this.work = t, | |
this.pending = !1 | |
} | |
schedule(e, t=0) { | |
var r; | |
if (this.closed) | |
return this; | |
this.state = e; | |
const i = this.id | |
, o = this.scheduler; | |
return null != i && (this.id = this.recycleAsyncId(o, i, t)), | |
this.pending = !0, | |
this.delay = t, | |
this.id = null !== (r = this.id) && void 0 !== r ? r : this.requestAsyncId(o, this.id, t), | |
this | |
} | |
requestAsyncId(e, t, r=0) { | |
return jc.setInterval(e.flush.bind(e, this), r) | |
} | |
recycleAsyncId(e, t, r=0) { | |
if (null != r && this.delay === r && !1 === this.pending) | |
return t; | |
null != t && jc.clearInterval(t) | |
} | |
execute(e, t) { | |
if (this.closed) | |
return new Error("executing a cancelled action"); | |
this.pending = !1; | |
const r = this._execute(e, t); | |
if (r) | |
return r; | |
!1 === this.pending && null != this.id && (this.id = this.recycleAsyncId(this.scheduler, this.id, null)) | |
} | |
_execute(e, t) { | |
let i, r = !1; | |
try { | |
this.work(e) | |
} catch (o) { | |
r = !0, | |
i = o || new Error("Scheduled action threw falsy error") | |
} | |
if (r) | |
return this.unsubscribe(), | |
i | |
} | |
unsubscribe() { | |
if (!this.closed) { | |
const {id: e, scheduler: t} = this | |
, {actions: r} = t; | |
this.work = this.state = this.scheduler = null, | |
this.pending = !1, | |
Yi(r, this), | |
null != e && (this.id = this.recycleAsyncId(t, e, null)), | |
this.delay = null, | |
super.unsubscribe() | |
} | |
} | |
} | |
); | |
function kE(...n) { | |
const e = ss(n); | |
return bt( (t, r) => { | |
(e ? Uc(n, t, e) : Uc(n, t)).subscribe(r) | |
} | |
) | |
} | |
const LE = new Set; | |
let Go, tB = ( () => { | |
class n { | |
constructor(t) { | |
this._platform = t, | |
this._matchMedia = this._platform.isBrowser && window.matchMedia ? window.matchMedia.bind(window) : rB | |
} | |
matchMedia(t) { | |
return (this._platform.WEBKIT || this._platform.BLINK) && function nB(n) { | |
if (!LE.has(n)) | |
try { | |
Go || (Go = document.createElement("style"), | |
Go.setAttribute("type", "text/css"), | |
document.head.appendChild(Go)), | |
Go.sheet && (Go.sheet.insertRule(`@media ${n} {body{ }}`, 0), | |
LE.add(n)) | |
} catch (e) { | |
console.error(e) | |
} | |
}(t), | |
this._matchMedia(t) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(zo)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
function rB(n) { | |
return { | |
matches: "all" === n || "" === n, | |
media: n, | |
addListener: () => {} | |
, | |
removeListener: () => {} | |
} | |
} | |
let iB = ( () => { | |
class n { | |
constructor(t, r) { | |
this._mediaMatcher = t, | |
this._zone = r, | |
this._queries = new Map, | |
this._destroySubject = new un | |
} | |
ngOnDestroy() { | |
this._destroySubject.next(), | |
this._destroySubject.complete() | |
} | |
isMatched(t) { | |
return VE(AE(t)).some(i => this._registerQuery(i).mql.matches) | |
} | |
observe(t) { | |
let o = Up(VE(AE(t)).map(s => this._registerQuery(s).observable)); | |
return o = Uc(o.pipe(Wo(1)), o.pipe(RE(1), function eB(n, e=JV) { | |
return bt( (t, r) => { | |
let i = null | |
, o = null | |
, s = null; | |
const a = () => { | |
if (i) { | |
i.unsubscribe(), | |
i = null; | |
const c = o; | |
o = null, | |
r.next(c) | |
} | |
} | |
; | |
function l() { | |
const c = s + n | |
, u = e.now(); | |
if (u < c) | |
return i = this.schedule(void 0, c - u), | |
void r.add(i); | |
a() | |
} | |
t.subscribe(pt(r, c => { | |
o = c, | |
s = e.now(), | |
i || (i = e.schedule(l, n), | |
r.add(i)) | |
} | |
, () => { | |
a(), | |
r.complete() | |
} | |
, void 0, () => { | |
o = i = null | |
} | |
)) | |
} | |
) | |
}(0))), | |
o.pipe(Fe(s => { | |
const a = { | |
matches: !1, | |
breakpoints: {} | |
}; | |
return s.forEach( ({matches: l, query: c}) => { | |
a.matches = a.matches || l, | |
a.breakpoints[c] = l | |
} | |
), | |
a | |
} | |
)) | |
} | |
_registerQuery(t) { | |
if (this._queries.has(t)) | |
return this._queries.get(t); | |
const r = this._mediaMatcher.matchMedia(t) | |
, o = { | |
observable: new vt(s => { | |
const a = l => this._zone.run( () => s.next(l)); | |
return r.addListener(a), | |
() => { | |
r.removeListener(a) | |
} | |
} | |
).pipe(kE(r), Fe( ({matches: s}) => ({ | |
query: t, | |
matches: s | |
})), FE(this._destroySubject)), | |
mql: r | |
}; | |
return this._queries.set(t, o), | |
o | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(tB),Q(nt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
function VE(n) { | |
return n.map(e => e.split(",")).reduce( (e, t) => e.concat(t)).map(e => e.trim()) | |
} | |
function HE(n) { | |
return 0 === n.buttons || 0 === n.offsetX && 0 === n.offsetY | |
} | |
function zE(n) { | |
const e = n.touches && n.touches[0] || n.changedTouches && n.changedTouches[0]; | |
return !(!e || -1 !== e.identifier || null != e.radiusX && 1 !== e.radiusX || null != e.radiusY && 1 !== e.radiusY) | |
} | |
const hB = new ee("cdk-input-modality-detector-options") | |
, fB = { | |
ignoreKeys: [18, 17, 224, 91, 16] | |
} | |
, qo = Vc({ | |
passive: !0, | |
capture: !0 | |
}); | |
let pB = ( () => { | |
class n { | |
constructor(t, r, i, o) { | |
this._platform = t, | |
this._mostRecentTarget = null, | |
this._modality = new Hn(null), | |
this._lastTouchMs = 0, | |
this._onKeydown = s => { | |
var a, l; | |
null !== (l = null === (a = this._options) || void 0 === a ? void 0 : a.ignoreKeys) && void 0 !== l && l.some(c => c === s.keyCode) || (this._modality.next("keyboard"), | |
this._mostRecentTarget = _a(s)) | |
} | |
, | |
this._onMousedown = s => { | |
Date.now() - this._lastTouchMs < 650 || (this._modality.next(HE(s) ? "keyboard" : "mouse"), | |
this._mostRecentTarget = _a(s)) | |
} | |
, | |
this._onTouchstart = s => { | |
zE(s) ? this._modality.next("keyboard") : (this._lastTouchMs = Date.now(), | |
this._modality.next("touch"), | |
this._mostRecentTarget = _a(s)) | |
} | |
, | |
this._options = Object.assign(Object.assign({}, fB), o), | |
this.modalityDetected = this._modality.pipe(RE(1)), | |
this.modalityChanged = this.modalityDetected.pipe(function WV(n, e=qr) { | |
return n = null != n ? n : GV, | |
bt( (t, r) => { | |
let i, o = !0; | |
t.subscribe(pt(r, s => { | |
const a = e(s); | |
(o || !n(i, a)) && (o = !1, | |
i = a, | |
r.next(s)) | |
} | |
)) | |
} | |
) | |
}()), | |
t.isBrowser && r.runOutsideAngular( () => { | |
i.addEventListener("keydown", this._onKeydown, qo), | |
i.addEventListener("mousedown", this._onMousedown, qo), | |
i.addEventListener("touchstart", this._onTouchstart, qo) | |
} | |
) | |
} | |
get mostRecentModality() { | |
return this._modality.value | |
} | |
ngOnDestroy() { | |
this._modality.complete(), | |
this._platform.isBrowser && (document.removeEventListener("keydown", this._onKeydown, qo), | |
document.removeEventListener("mousedown", this._onMousedown, qo), | |
document.removeEventListener("touchstart", this._onTouchstart, qo)) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(zo),Q(nt),Q(yt),Q(hB, 8)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const mB = new ee("cdk-focus-monitor-default-options") | |
, Hc = Vc({ | |
passive: !0, | |
capture: !0 | |
}); | |
let _B = ( () => { | |
class n { | |
constructor(t, r, i, o, s) { | |
this._ngZone = t, | |
this._platform = r, | |
this._inputModalityDetector = i, | |
this._origin = null, | |
this._windowFocused = !1, | |
this._originFromTouchInteraction = !1, | |
this._elementInfo = new Map, | |
this._monitoredElementCount = 0, | |
this._rootNodeFocusListenerCount = new Map, | |
this._windowFocusListener = () => { | |
this._windowFocused = !0, | |
this._windowFocusTimeoutId = window.setTimeout( () => this._windowFocused = !1) | |
} | |
, | |
this._stopInputModalityDetector = new un, | |
this._rootNodeFocusAndBlurListener = a => { | |
for (let c = _a(a); c; c = c.parentElement) | |
"focus" === a.type ? this._onFocus(a, c) : this._onBlur(a, c) | |
} | |
, | |
this._document = o, | |
this._detectionMode = (null == s ? void 0 : s.detectionMode) || 0 | |
} | |
monitor(t, r=!1) { | |
const i = ga(t); | |
if (!this._platform.isBrowser || 1 !== i.nodeType) | |
return le(null); | |
const o = function VV(n) { | |
if (function LV() { | |
if (null == Bp) { | |
const n = "undefined" != typeof document ? document.head : null; | |
Bp = !(!n || !n.createShadowRoot && !n.attachShadow) | |
} | |
return Bp | |
}()) { | |
const e = n.getRootNode ? n.getRootNode() : null; | |
if ("undefined" != typeof ShadowRoot && ShadowRoot && e instanceof ShadowRoot) | |
return e | |
} | |
return null | |
}(i) || this._getDocument() | |
, s = this._elementInfo.get(i); | |
if (s) | |
return r && (s.checkChildren = !0), | |
s.subject; | |
const a = { | |
checkChildren: r, | |
subject: new un, | |
rootNode: o | |
}; | |
return this._elementInfo.set(i, a), | |
this._registerGlobalListeners(a), | |
a.subject | |
} | |
stopMonitoring(t) { | |
const r = ga(t) | |
, i = this._elementInfo.get(r); | |
i && (i.subject.complete(), | |
this._setClasses(r), | |
this._elementInfo.delete(r), | |
this._removeGlobalListeners(i)) | |
} | |
focusVia(t, r, i) { | |
const o = ga(t); | |
o === this._getDocument().activeElement ? this._getClosestElementsInfo(o).forEach( ([a,l]) => this._originChanged(a, r, l)) : (this._setOrigin(r), | |
"function" == typeof o.focus && o.focus(i)) | |
} | |
ngOnDestroy() { | |
this._elementInfo.forEach( (t, r) => this.stopMonitoring(r)) | |
} | |
_getDocument() { | |
return this._document || document | |
} | |
_getWindow() { | |
return this._getDocument().defaultView || window | |
} | |
_getFocusOrigin(t) { | |
return this._origin ? this._originFromTouchInteraction ? this._shouldBeAttributedToTouch(t) ? "touch" : "program" : this._origin : this._windowFocused && this._lastFocusOrigin ? this._lastFocusOrigin : t && this._isLastInteractionFromInputLabel(t) ? "mouse" : "program" | |
} | |
_shouldBeAttributedToTouch(t) { | |
return 1 === this._detectionMode || !(null == t || !t.contains(this._inputModalityDetector._mostRecentTarget)) | |
} | |
_setClasses(t, r) { | |
t.classList.toggle("cdk-focused", !!r), | |
t.classList.toggle("cdk-touch-focused", "touch" === r), | |
t.classList.toggle("cdk-keyboard-focused", "keyboard" === r), | |
t.classList.toggle("cdk-mouse-focused", "mouse" === r), | |
t.classList.toggle("cdk-program-focused", "program" === r) | |
} | |
_setOrigin(t, r=!1) { | |
this._ngZone.runOutsideAngular( () => { | |
this._origin = t, | |
this._originFromTouchInteraction = "touch" === t && r, | |
0 === this._detectionMode && (clearTimeout(this._originTimeoutId), | |
this._originTimeoutId = setTimeout( () => this._origin = null, this._originFromTouchInteraction ? 650 : 1)) | |
} | |
) | |
} | |
_onFocus(t, r) { | |
const i = this._elementInfo.get(r) | |
, o = _a(t); | |
!i || !i.checkChildren && r !== o || this._originChanged(r, this._getFocusOrigin(o), i) | |
} | |
_onBlur(t, r) { | |
const i = this._elementInfo.get(r); | |
!i || i.checkChildren && t.relatedTarget instanceof Node && r.contains(t.relatedTarget) || (this._setClasses(r), | |
this._emitOrigin(i, null)) | |
} | |
_emitOrigin(t, r) { | |
t.subject.observers.length && this._ngZone.run( () => t.subject.next(r)) | |
} | |
_registerGlobalListeners(t) { | |
if (!this._platform.isBrowser) | |
return; | |
const r = t.rootNode | |
, i = this._rootNodeFocusListenerCount.get(r) || 0; | |
i || this._ngZone.runOutsideAngular( () => { | |
r.addEventListener("focus", this._rootNodeFocusAndBlurListener, Hc), | |
r.addEventListener("blur", this._rootNodeFocusAndBlurListener, Hc) | |
} | |
), | |
this._rootNodeFocusListenerCount.set(r, i + 1), | |
1 == ++this._monitoredElementCount && (this._ngZone.runOutsideAngular( () => { | |
this._getWindow().addEventListener("focus", this._windowFocusListener) | |
} | |
), | |
this._inputModalityDetector.modalityDetected.pipe(FE(this._stopInputModalityDetector)).subscribe(o => { | |
this._setOrigin(o, !0) | |
} | |
)) | |
} | |
_removeGlobalListeners(t) { | |
const r = t.rootNode; | |
if (this._rootNodeFocusListenerCount.has(r)) { | |
const i = this._rootNodeFocusListenerCount.get(r); | |
i > 1 ? this._rootNodeFocusListenerCount.set(r, i - 1) : (r.removeEventListener("focus", this._rootNodeFocusAndBlurListener, Hc), | |
r.removeEventListener("blur", this._rootNodeFocusAndBlurListener, Hc), | |
this._rootNodeFocusListenerCount.delete(r)) | |
} | |
--this._monitoredElementCount || (this._getWindow().removeEventListener("focus", this._windowFocusListener), | |
this._stopInputModalityDetector.next(), | |
clearTimeout(this._windowFocusTimeoutId), | |
clearTimeout(this._originTimeoutId)) | |
} | |
_originChanged(t, r, i) { | |
this._setClasses(t, r), | |
this._emitOrigin(i, r), | |
this._lastFocusOrigin = r | |
} | |
_getClosestElementsInfo(t) { | |
const r = []; | |
return this._elementInfo.forEach( (i, o) => { | |
(o === t || i.checkChildren && o.contains(t)) && r.push([o, i]) | |
} | |
), | |
r | |
} | |
_isLastInteractionFromInputLabel(t) { | |
const {_mostRecentTarget: r, mostRecentModality: i} = this._inputModalityDetector; | |
if ("mouse" !== i || !r || r === t || "INPUT" !== t.nodeName && "TEXTAREA" !== t.nodeName || t.disabled) | |
return !1; | |
const o = t.labels; | |
if (o) | |
for (let s = 0; s < o.length; s++) | |
if (o[s].contains(r)) | |
return !0; | |
return !1 | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(nt),Q(zo),Q(pB),Q(yt, 8),Q(mB, 8)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const WE = "cdk-high-contrast-black-on-white" | |
, GE = "cdk-high-contrast-white-on-black" | |
, jp = "cdk-high-contrast-active"; | |
let qE = ( () => { | |
class n { | |
constructor(t, r) { | |
this._platform = t, | |
this._document = r, | |
this._breakpointSubscription = ot(iB).observe("(forced-colors: active)").subscribe( () => { | |
this._hasCheckedHighContrastMode && (this._hasCheckedHighContrastMode = !1, | |
this._applyBodyHighContrastModeCssClasses()) | |
} | |
) | |
} | |
getHighContrastMode() { | |
if (!this._platform.isBrowser) | |
return 0; | |
const t = this._document.createElement("div"); | |
t.style.backgroundColor = "rgb(1,2,3)", | |
t.style.position = "absolute", | |
this._document.body.appendChild(t); | |
const r = this._document.defaultView || window | |
, i = r && r.getComputedStyle ? r.getComputedStyle(t) : null | |
, o = (i && i.backgroundColor || "").replace(/ /g, ""); | |
switch (t.remove(), | |
o) { | |
case "rgb(0,0,0)": | |
case "rgb(45,50,54)": | |
case "rgb(32,32,32)": | |
return 2; | |
case "rgb(255,255,255)": | |
case "rgb(255,250,239)": | |
return 1 | |
} | |
return 0 | |
} | |
ngOnDestroy() { | |
this._breakpointSubscription.unsubscribe() | |
} | |
_applyBodyHighContrastModeCssClasses() { | |
if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) { | |
const t = this._document.body.classList; | |
t.remove(jp, WE, GE), | |
this._hasCheckedHighContrastMode = !0; | |
const r = this.getHighContrastMode(); | |
1 === r ? t.add(jp, WE) : 2 === r && t.add(jp, GE) | |
} | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(zo),Q(yt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)() | |
, yB = ( () => { | |
class n { | |
constructor(t) { | |
t._applyBodyHighContrastModeCssClasses() | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(qE)) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [PE] | |
}), | |
n | |
} | |
)(); | |
const bB = new ee("mat-sanity-checks",{ | |
providedIn: "root", | |
factory: function vB() { | |
return !0 | |
} | |
}); | |
let di = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this._sanityChecks = r, | |
this._document = i, | |
this._hasDoneGlobalChecks = !1, | |
t._applyBodyHighContrastModeCssClasses(), | |
this._hasDoneGlobalChecks || (this._hasDoneGlobalChecks = !0) | |
} | |
_checkIsEnabled(t) { | |
return !function BV() { | |
return "undefined" != typeof __karma__ && !!__karma__ || "undefined" != typeof jasmine && !!jasmine || "undefined" != typeof jest && !!jest || "undefined" != typeof Mocha && !!Mocha | |
}() && ("boolean" == typeof this._sanityChecks ? this._sanityChecks : !!this._sanityChecks[t]) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(qE),Q(bB, 8),Q(yt)) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [IE, IE] | |
}), | |
n | |
} | |
)(); | |
function CB(n, e) { | |
return class extends n { | |
constructor(...t) { | |
super(...t), | |
this.defaultColor = e, | |
this.color = e | |
} | |
get color() { | |
return this._color | |
} | |
set color(t) { | |
const r = t || this.defaultColor; | |
r !== this._color && (this._color && this._elementRef.nativeElement.classList.remove(`mat-${this._color}`), | |
r && this._elementRef.nativeElement.classList.add(`mat-${r}`), | |
this._color = r) | |
} | |
} | |
} | |
function TB(n) { | |
return class extends n { | |
constructor(...e) { | |
super(...e), | |
this._disableRipple = !1 | |
} | |
get disableRipple() { | |
return this._disableRipple | |
} | |
set disableRipple(e) { | |
this._disableRipple = Ho(e) | |
} | |
} | |
} | |
class wB { | |
constructor(e, t, r, i=!1) { | |
this._renderer = e, | |
this.element = t, | |
this.config = r, | |
this._animationForciblyDisabledThroughCss = i, | |
this.state = 3 | |
} | |
fadeOut() { | |
this._renderer.fadeOutRipple(this) | |
} | |
} | |
const QE = { | |
enterDuration: 225, | |
exitDuration: 150 | |
} | |
, Hp = Vc({ | |
passive: !0 | |
}) | |
, YE = ["mousedown", "touchstart"] | |
, ZE = ["mouseup", "mouseleave", "touchend", "touchcancel"]; | |
class MB { | |
constructor(e, t, r, i) { | |
this._target = e, | |
this._ngZone = t, | |
this._isPointerDown = !1, | |
this._activeRipples = new Map, | |
this._pointerUpEventsRegistered = !1, | |
i.isBrowser && (this._containerElement = ga(r)) | |
} | |
fadeInRipple(e, t, r={}) { | |
const i = this._containerRect = this._containerRect || this._containerElement.getBoundingClientRect() | |
, o = Object.assign(Object.assign({}, QE), r.animation); | |
r.centered && (e = i.left + i.width / 2, | |
t = i.top + i.height / 2); | |
const s = r.radius || function AB(n, e, t) { | |
const r = Math.max(Math.abs(n - t.left), Math.abs(n - t.right)) | |
, i = Math.max(Math.abs(e - t.top), Math.abs(e - t.bottom)); | |
return Math.sqrt(r * r + i * i) | |
}(e, t, i) | |
, a = e - i.left | |
, l = t - i.top | |
, c = o.enterDuration | |
, u = document.createElement("div"); | |
u.classList.add("mat-ripple-element"), | |
u.style.left = a - s + "px", | |
u.style.top = l - s + "px", | |
u.style.height = 2 * s + "px", | |
u.style.width = 2 * s + "px", | |
null != r.color && (u.style.backgroundColor = r.color), | |
u.style.transitionDuration = `${c}ms`, | |
this._containerElement.appendChild(u); | |
const d = window.getComputedStyle(u) | |
, f = d.transitionDuration | |
, p = "none" === d.transitionProperty || "0s" === f || "0s, 0s" === f | |
, _ = new wB(this,u,r,p); | |
u.style.transform = "scale3d(1, 1, 1)", | |
_.state = 0, | |
r.persistent || (this._mostRecentTransientRipple = _); | |
let C = null; | |
return !p && (c || o.exitDuration) && this._ngZone.runOutsideAngular( () => { | |
const S = () => this._finishRippleTransition(_) | |
, R = () => this._destroyRipple(_); | |
u.addEventListener("transitionend", S), | |
u.addEventListener("transitioncancel", R), | |
C = { | |
onTransitionEnd: S, | |
onTransitionCancel: R | |
} | |
} | |
), | |
this._activeRipples.set(_, C), | |
(p || !c) && this._finishRippleTransition(_), | |
_ | |
} | |
fadeOutRipple(e) { | |
if (2 === e.state || 3 === e.state) | |
return; | |
const t = e.element | |
, r = Object.assign(Object.assign({}, QE), e.config.animation); | |
t.style.transitionDuration = `${r.exitDuration}ms`, | |
t.style.opacity = "0", | |
e.state = 2, | |
(e._animationForciblyDisabledThroughCss || !r.exitDuration) && this._finishRippleTransition(e) | |
} | |
fadeOutAll() { | |
this._getActiveRipples().forEach(e => e.fadeOut()) | |
} | |
fadeOutAllNonPersistent() { | |
this._getActiveRipples().forEach(e => { | |
e.config.persistent || e.fadeOut() | |
} | |
) | |
} | |
setupTriggerEvents(e) { | |
const t = ga(e); | |
!t || t === this._triggerElement || (this._removeTriggerEvents(), | |
this._triggerElement = t, | |
this._registerEvents(YE)) | |
} | |
handleEvent(e) { | |
"mousedown" === e.type ? this._onMousedown(e) : "touchstart" === e.type ? this._onTouchStart(e) : this._onPointerUp(), | |
this._pointerUpEventsRegistered || (this._registerEvents(ZE), | |
this._pointerUpEventsRegistered = !0) | |
} | |
_finishRippleTransition(e) { | |
0 === e.state ? this._startFadeOutTransition(e) : 2 === e.state && this._destroyRipple(e) | |
} | |
_startFadeOutTransition(e) { | |
const t = e === this._mostRecentTransientRipple | |
, {persistent: r} = e.config; | |
e.state = 1, | |
!r && (!t || !this._isPointerDown) && e.fadeOut() | |
} | |
_destroyRipple(e) { | |
var t; | |
const r = null !== (t = this._activeRipples.get(e)) && void 0 !== t ? t : null; | |
this._activeRipples.delete(e), | |
this._activeRipples.size || (this._containerRect = null), | |
e === this._mostRecentTransientRipple && (this._mostRecentTransientRipple = null), | |
e.state = 3, | |
null !== r && (e.element.removeEventListener("transitionend", r.onTransitionEnd), | |
e.element.removeEventListener("transitioncancel", r.onTransitionCancel)), | |
e.element.remove() | |
} | |
_onMousedown(e) { | |
const t = HE(e) | |
, r = this._lastTouchStartEvent && Date.now() < this._lastTouchStartEvent + 800; | |
!this._target.rippleDisabled && !t && !r && (this._isPointerDown = !0, | |
this.fadeInRipple(e.clientX, e.clientY, this._target.rippleConfig)) | |
} | |
_onTouchStart(e) { | |
if (!this._target.rippleDisabled && !zE(e)) { | |
this._lastTouchStartEvent = Date.now(), | |
this._isPointerDown = !0; | |
const t = e.changedTouches; | |
for (let r = 0; r < t.length; r++) | |
this.fadeInRipple(t[r].clientX, t[r].clientY, this._target.rippleConfig) | |
} | |
} | |
_onPointerUp() { | |
!this._isPointerDown || (this._isPointerDown = !1, | |
this._getActiveRipples().forEach(e => { | |
!e.config.persistent && (1 === e.state || e.config.terminateOnPointerUp && 0 === e.state) && e.fadeOut() | |
} | |
)) | |
} | |
_registerEvents(e) { | |
this._ngZone.runOutsideAngular( () => { | |
e.forEach(t => { | |
this._triggerElement.addEventListener(t, this, Hp) | |
} | |
) | |
} | |
) | |
} | |
_getActiveRipples() { | |
return Array.from(this._activeRipples.keys()) | |
} | |
_removeTriggerEvents() { | |
this._triggerElement && (YE.forEach(e => { | |
this._triggerElement.removeEventListener(e, this, Hp) | |
} | |
), | |
this._pointerUpEventsRegistered && ZE.forEach(e => { | |
this._triggerElement.removeEventListener(e, this, Hp) | |
} | |
)) | |
} | |
} | |
const XE = new ee("mat-ripple-global-options"); | |
let IB = ( () => { | |
class n { | |
constructor(t, r, i, o, s) { | |
this._elementRef = t, | |
this._animationMode = s, | |
this.radius = 0, | |
this._disabled = !1, | |
this._isInitialized = !1, | |
this._globalOptions = o || {}, | |
this._rippleRenderer = new MB(this,r,t,i) | |
} | |
get disabled() { | |
return this._disabled | |
} | |
set disabled(t) { | |
t && this.fadeOutAllNonPersistent(), | |
this._disabled = t, | |
this._setupTriggerEventsIfEnabled() | |
} | |
get trigger() { | |
return this._trigger || this._elementRef.nativeElement | |
} | |
set trigger(t) { | |
this._trigger = t, | |
this._setupTriggerEventsIfEnabled() | |
} | |
ngOnInit() { | |
this._isInitialized = !0, | |
this._setupTriggerEventsIfEnabled() | |
} | |
ngOnDestroy() { | |
this._rippleRenderer._removeTriggerEvents() | |
} | |
fadeOutAll() { | |
this._rippleRenderer.fadeOutAll() | |
} | |
fadeOutAllNonPersistent() { | |
this._rippleRenderer.fadeOutAllNonPersistent() | |
} | |
get rippleConfig() { | |
return { | |
centered: this.centered, | |
radius: this.radius, | |
color: this.color, | |
animation: Object.assign(Object.assign(Object.assign({}, this._globalOptions.animation), "NoopAnimations" === this._animationMode ? { | |
enterDuration: 0, | |
exitDuration: 0 | |
} : {}), this.animation), | |
terminateOnPointerUp: this._globalOptions.terminateOnPointerUp | |
} | |
} | |
get rippleDisabled() { | |
return this.disabled || !!this._globalOptions.disabled | |
} | |
_setupTriggerEventsIfEnabled() { | |
!this.disabled && this._isInitialized && this._rippleRenderer.setupTriggerEvents(this.trigger) | |
} | |
launch(t, r=0, i) { | |
return "number" == typeof t ? this._rippleRenderer.fadeInRipple(t, r, Object.assign(Object.assign({}, this.rippleConfig), i)) : this._rippleRenderer.fadeInRipple(0, 0, Object.assign(Object.assign({}, this.rippleConfig), t)) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Vt),B(nt),B(zo),B(XE, 8),B(ef, 8)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["", "mat-ripple", ""], ["", "matRipple", ""]], | |
hostAttrs: [1, "mat-ripple"], | |
hostVars: 2, | |
hostBindings: function(t, r) { | |
2 & t && Xn("mat-ripple-unbounded", r.unbounded) | |
}, | |
inputs: { | |
color: ["matRippleColor", "color"], | |
unbounded: ["matRippleUnbounded", "unbounded"], | |
centered: ["matRippleCentered", "centered"], | |
radius: ["matRippleRadius", "radius"], | |
animation: ["matRippleAnimation", "animation"], | |
disabled: ["matRippleDisabled", "disabled"], | |
trigger: ["matRippleTrigger", "trigger"] | |
}, | |
exportAs: ["matRipple"] | |
}), | |
n | |
} | |
)() | |
, JE = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [di, di] | |
}), | |
n | |
} | |
)(); | |
const SB = ["button"] | |
, xB = ["*"] | |
, ew = new ee("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS") | |
, tw = new ee("MatButtonToggleGroup") | |
, RB = { | |
provide: ar, | |
useExisting: qe( () => iw), | |
multi: !0 | |
}; | |
let nw = 0; | |
class rw { | |
constructor(e, t) { | |
this.source = e, | |
this.value = t | |
} | |
} | |
let iw = ( () => { | |
class n { | |
constructor(t, r) { | |
this._changeDetector = t, | |
this._vertical = !1, | |
this._multiple = !1, | |
this._disabled = !1, | |
this._controlValueAccessorChangeFn = () => {} | |
, | |
this._onTouched = () => {} | |
, | |
this._name = "mat-button-toggle-group-" + nw++, | |
this.valueChange = new Se, | |
this.change = new Se, | |
this.appearance = r && r.appearance ? r.appearance : "standard" | |
} | |
get name() { | |
return this._name | |
} | |
set name(t) { | |
this._name = t, | |
this._markButtonsForCheck() | |
} | |
get vertical() { | |
return this._vertical | |
} | |
set vertical(t) { | |
this._vertical = Ho(t) | |
} | |
get value() { | |
const t = this._selectionModel ? this._selectionModel.selected : []; | |
return this.multiple ? t.map(r => r.value) : t[0] ? t[0].value : void 0 | |
} | |
set value(t) { | |
this._setSelectionByValue(t), | |
this.valueChange.emit(this.value) | |
} | |
get selected() { | |
const t = this._selectionModel ? this._selectionModel.selected : []; | |
return this.multiple ? t : t[0] || null | |
} | |
get multiple() { | |
return this._multiple | |
} | |
set multiple(t) { | |
this._multiple = Ho(t), | |
this._markButtonsForCheck() | |
} | |
get disabled() { | |
return this._disabled | |
} | |
set disabled(t) { | |
this._disabled = Ho(t), | |
this._markButtonsForCheck() | |
} | |
ngOnInit() { | |
this._selectionModel = new PV(this.multiple,void 0,!1) | |
} | |
ngAfterContentInit() { | |
this._selectionModel.select(...this._buttonToggles.filter(t => t.checked)) | |
} | |
writeValue(t) { | |
this.value = t, | |
this._changeDetector.markForCheck() | |
} | |
registerOnChange(t) { | |
this._controlValueAccessorChangeFn = t | |
} | |
registerOnTouched(t) { | |
this._onTouched = t | |
} | |
setDisabledState(t) { | |
this.disabled = t | |
} | |
_emitChangeEvent(t) { | |
const r = new rw(t,this.value); | |
this._controlValueAccessorChangeFn(r.value), | |
this.change.emit(r) | |
} | |
_syncButtonToggle(t, r, i=!1, o=!1) { | |
!this.multiple && this.selected && !t.checked && (this.selected.checked = !1), | |
this._selectionModel ? r ? this._selectionModel.select(t) : this._selectionModel.deselect(t) : o = !0, | |
o ? Promise.resolve().then( () => this._updateModelValue(t, i)) : this._updateModelValue(t, i) | |
} | |
_isSelected(t) { | |
return this._selectionModel && this._selectionModel.isSelected(t) | |
} | |
_isPrechecked(t) { | |
return void 0 !== this._rawValue && (this.multiple && Array.isArray(this._rawValue) ? this._rawValue.some(r => null != t.value && r === t.value) : t.value === this._rawValue) | |
} | |
_setSelectionByValue(t) { | |
this._rawValue = t, | |
this._buttonToggles && (this.multiple && t ? (Array.isArray(t), | |
this._clearSelection(), | |
t.forEach(r => this._selectValue(r))) : (this._clearSelection(), | |
this._selectValue(t))) | |
} | |
_clearSelection() { | |
this._selectionModel.clear(), | |
this._buttonToggles.forEach(t => t.checked = !1) | |
} | |
_selectValue(t) { | |
const r = this._buttonToggles.find(i => null != i.value && i.value === t); | |
r && (r.checked = !0, | |
this._selectionModel.select(r)) | |
} | |
_updateModelValue(t, r) { | |
r && this._emitChangeEvent(t), | |
this.valueChange.emit(this.value) | |
} | |
_markButtonsForCheck() { | |
var t; | |
null === (t = this._buttonToggles) || void 0 === t || t.forEach(r => r._markForCheck()) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Bo),B(ew, 8)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["mat-button-toggle-group"]], | |
contentQueries: function(t, r, i) { | |
if (1 & t && Ks(i, ow, 5), | |
2 & t) { | |
let o; | |
rn(o = on()) && (r._buttonToggles = o) | |
} | |
}, | |
hostAttrs: ["role", "group", 1, "mat-button-toggle-group"], | |
hostVars: 5, | |
hostBindings: function(t, r) { | |
2 & t && (In("aria-disabled", r.disabled), | |
Xn("mat-button-toggle-vertical", r.vertical)("mat-button-toggle-group-appearance-standard", "standard" === r.appearance)) | |
}, | |
inputs: { | |
appearance: "appearance", | |
name: "name", | |
vertical: "vertical", | |
value: "value", | |
multiple: "multiple", | |
disabled: "disabled" | |
}, | |
outputs: { | |
valueChange: "valueChange", | |
change: "change" | |
}, | |
exportAs: ["matButtonToggleGroup"], | |
features: [tt([RB, { | |
provide: tw, | |
useExisting: n | |
}])] | |
}), | |
n | |
} | |
)(); | |
const FB = TB(class { | |
} | |
); | |
let ow = ( () => { | |
class n extends FB { | |
constructor(t, r, i, o, s, a) { | |
super(), | |
this._changeDetectorRef = r, | |
this._elementRef = i, | |
this._focusMonitor = o, | |
this._checked = !1, | |
this.ariaLabelledby = null, | |
this._disabled = !1, | |
this.change = new Se; | |
const l = Number(s); | |
this.tabIndex = l || 0 === l ? l : null, | |
this.buttonToggleGroup = t, | |
this.appearance = a && a.appearance ? a.appearance : "standard" | |
} | |
get buttonId() { | |
return `${this.id}-button` | |
} | |
get appearance() { | |
return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance | |
} | |
set appearance(t) { | |
this._appearance = t | |
} | |
get checked() { | |
return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked | |
} | |
set checked(t) { | |
const r = Ho(t); | |
r !== this._checked && (this._checked = r, | |
this.buttonToggleGroup && this.buttonToggleGroup._syncButtonToggle(this, this._checked), | |
this._changeDetectorRef.markForCheck()) | |
} | |
get disabled() { | |
return this._disabled || this.buttonToggleGroup && this.buttonToggleGroup.disabled | |
} | |
set disabled(t) { | |
this._disabled = Ho(t) | |
} | |
ngOnInit() { | |
const t = this.buttonToggleGroup; | |
this.id = this.id || "mat-button-toggle-" + nw++, | |
t && (t._isPrechecked(this) ? this.checked = !0 : t._isSelected(this) !== this._checked && t._syncButtonToggle(this, this._checked)) | |
} | |
ngAfterViewInit() { | |
this._focusMonitor.monitor(this._elementRef, !0) | |
} | |
ngOnDestroy() { | |
const t = this.buttonToggleGroup; | |
this._focusMonitor.stopMonitoring(this._elementRef), | |
t && t._isSelected(this) && t._syncButtonToggle(this, !1, !1, !0) | |
} | |
focus(t) { | |
this._buttonElement.nativeElement.focus(t) | |
} | |
_onButtonClick() { | |
const t = !!this._isSingleSelector() || !this._checked; | |
t !== this._checked && (this._checked = t, | |
this.buttonToggleGroup && (this.buttonToggleGroup._syncButtonToggle(this, this._checked, !0), | |
this.buttonToggleGroup._onTouched())), | |
this.change.emit(new rw(this,this.value)) | |
} | |
_markForCheck() { | |
this._changeDetectorRef.markForCheck() | |
} | |
_getButtonName() { | |
return this._isSingleSelector() ? this.buttonToggleGroup.name : this.name || null | |
} | |
_isSingleSelector() { | |
return this.buttonToggleGroup && !this.buttonToggleGroup.multiple | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(tw, 8),B(Bo),B(Vt),B(_B),lo("tabindex"),B(ew, 8)) | |
} | |
, | |
n.\u0275cmp = dn({ | |
type: n, | |
selectors: [["mat-button-toggle"]], | |
viewQuery: function(t, r) { | |
if (1 & t && nr(SB, 5), | |
2 & t) { | |
let i; | |
rn(i = on()) && (r._buttonElement = i.first) | |
} | |
}, | |
hostAttrs: ["role", "presentation", 1, "mat-button-toggle"], | |
hostVars: 12, | |
hostBindings: function(t, r) { | |
1 & t && _e("focus", function() { | |
return r.focus() | |
}), | |
2 & t && (In("aria-label", null)("aria-labelledby", null)("id", r.id)("name", null), | |
Xn("mat-button-toggle-standalone", !r.buttonToggleGroup)("mat-button-toggle-checked", r.checked)("mat-button-toggle-disabled", r.disabled)("mat-button-toggle-appearance-standard", "standard" === r.appearance)) | |
}, | |
inputs: { | |
disableRipple: "disableRipple", | |
ariaLabel: ["aria-label", "ariaLabel"], | |
ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], | |
id: "id", | |
name: "name", | |
value: "value", | |
tabIndex: "tabIndex", | |
appearance: "appearance", | |
checked: "checked", | |
disabled: "disabled" | |
}, | |
outputs: { | |
change: "change" | |
}, | |
exportAs: ["matButtonToggle"], | |
features: [ke], | |
ngContentSelectors: xB, | |
decls: 6, | |
vars: 9, | |
consts: [["type", "button", 1, "mat-button-toggle-button", "mat-focus-indicator", 3, "id", "disabled", "click"], ["button", ""], [1, "mat-button-toggle-label-content"], [1, "mat-button-toggle-focus-overlay"], ["matRipple", "", 1, "mat-button-toggle-ripple", 3, "matRippleTrigger", "matRippleDisabled"]], | |
template: function(t, r) { | |
if (1 & t && (Ah(), | |
re(0, "button", 0, 1), | |
_e("click", function() { | |
return r._onButtonClick() | |
}), | |
re(2, "span", 2), | |
Pl(3), | |
oe()(), | |
Ct(4, "span", 3)(5, "span", 4)), | |
2 & t) { | |
const i = kn(1); | |
Ae("id", r.buttonId)("disabled", r.disabled || null), | |
In("tabindex", r.disabled ? -1 : r.tabIndex)("aria-pressed", r.checked)("name", r._getButtonName())("aria-label", r.ariaLabel)("aria-labelledby", r.ariaLabelledby), | |
Ee(5), | |
Ae("matRippleTrigger", i)("matRippleDisabled", r.disableRipple || r.disabled) | |
} | |
}, | |
dependencies: [IB], | |
styles: [".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:4px}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}"], | |
encapsulation: 2, | |
changeDetection: 0 | |
}), | |
n | |
} | |
)() | |
, PB = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [di, JE, di] | |
}), | |
n | |
} | |
)(); | |
const OB = ["*", [["mat-toolbar-row"]]] | |
, NB = ["*", "mat-toolbar-row"] | |
, kB = CB(class { | |
constructor(n) { | |
this._elementRef = n | |
} | |
} | |
); | |
let LB = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["mat-toolbar-row"]], | |
hostAttrs: [1, "mat-toolbar-row"], | |
exportAs: ["matToolbarRow"] | |
}), | |
n | |
} | |
)() | |
, VB = ( () => { | |
class n extends kB { | |
constructor(t, r, i) { | |
super(t), | |
this._platform = r, | |
this._document = i | |
} | |
ngAfterViewInit() { | |
this._platform.isBrowser && (this._checkToolbarMixedModes(), | |
this._toolbarRows.changes.subscribe( () => this._checkToolbarMixedModes())) | |
} | |
_checkToolbarMixedModes() {} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Vt),B(zo),B(yt)) | |
} | |
, | |
n.\u0275cmp = dn({ | |
type: n, | |
selectors: [["mat-toolbar"]], | |
contentQueries: function(t, r, i) { | |
if (1 & t && Ks(i, LB, 5), | |
2 & t) { | |
let o; | |
rn(o = on()) && (r._toolbarRows = o) | |
} | |
}, | |
hostAttrs: [1, "mat-toolbar"], | |
hostVars: 4, | |
hostBindings: function(t, r) { | |
2 & t && Xn("mat-toolbar-multiple-rows", r._toolbarRows.length > 0)("mat-toolbar-single-row", 0 === r._toolbarRows.length) | |
}, | |
inputs: { | |
color: "color" | |
}, | |
exportAs: ["matToolbar"], | |
features: [ke], | |
ngContentSelectors: NB, | |
decls: 2, | |
vars: 0, | |
template: function(t, r) { | |
1 & t && (Ah(OB), | |
Pl(0), | |
Pl(1, 1)) | |
}, | |
styles: [".cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}"], | |
encapsulation: 2, | |
changeDetection: 0 | |
}), | |
n | |
} | |
)() | |
, BB = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [di, di] | |
}), | |
n | |
} | |
)() | |
, zB = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({}), | |
n | |
} | |
)() | |
, KB = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [Ff, di, zB, JE, PE, yB, di] | |
}), | |
n | |
} | |
)(); | |
const zc = is(n => function() { | |
n(this), | |
this.name = "EmptyError", | |
this.message = "no elements in sequence" | |
} | |
); | |
function sw(n) { | |
return new vt(e => { | |
_n(n()).subscribe(e) | |
} | |
) | |
} | |
function ba(n, e) { | |
const t = Ye(n) ? n : () => n | |
, r = i => i.error(t()); | |
return new vt(e ? i => e.schedule(r, 0, i) : r) | |
} | |
function zp() { | |
return bt( (n, e) => { | |
let t = null; | |
n._refCount++; | |
const r = pt(e, void 0, void 0, void 0, () => { | |
if (!n || n._refCount <= 0 || 0 < --n._refCount) | |
return void (t = null); | |
const i = n._connection | |
, o = t; | |
t = null, | |
i && (!o || i === o) && i.unsubscribe(), | |
e.unsubscribe() | |
} | |
); | |
n.subscribe(r), | |
r.closed || (t = n.connect()) | |
} | |
) | |
} | |
class aw extends vt { | |
constructor(e, t) { | |
super(), | |
this.source = e, | |
this.subjectFactory = t, | |
this._subject = null, | |
this._refCount = 0, | |
this._connection = null, | |
Og(e) && (this.lift = e.lift) | |
} | |
_subscribe(e) { | |
return this.getSubject().subscribe(e) | |
} | |
getSubject() { | |
const e = this._subject; | |
return (!e || e.isStopped) && (this._subject = this.subjectFactory()), | |
this._subject | |
} | |
_teardown() { | |
this._refCount = 0; | |
const {_connection: e} = this; | |
this._subject = this._connection = null, | |
null == e || e.unsubscribe() | |
} | |
connect() { | |
let e = this._connection; | |
if (!e) { | |
e = this._connection = new mn; | |
const t = this.getSubject(); | |
e.add(this.source.subscribe(pt(t, void 0, () => { | |
this._teardown(), | |
t.complete() | |
} | |
, r => { | |
this._teardown(), | |
t.error(r) | |
} | |
, () => this._teardown()))), | |
e.closed && (this._connection = null, | |
e = mn.EMPTY) | |
} | |
return e | |
} | |
refCount() { | |
return zp()(this) | |
} | |
} | |
function vr(n, e) { | |
return bt( (t, r) => { | |
let i = null | |
, o = 0 | |
, s = !1; | |
const a = () => s && !i && r.complete(); | |
t.subscribe(pt(r, l => { | |
null == i || i.unsubscribe(); | |
let c = 0; | |
const u = o++; | |
_n(n(l, u)).subscribe(i = pt(r, d => r.next(e ? e(l, d, u, c++) : d), () => { | |
i = null, | |
a() | |
} | |
)) | |
} | |
, () => { | |
s = !0, | |
a() | |
} | |
)) | |
} | |
) | |
} | |
function $c(n) { | |
return bt( (e, t) => { | |
let r = !1; | |
e.subscribe(pt(t, i => { | |
r = !0, | |
t.next(i) | |
} | |
, () => { | |
r || t.next(n), | |
t.complete() | |
} | |
)) | |
} | |
) | |
} | |
function lw(n=QB) { | |
return bt( (e, t) => { | |
let r = !1; | |
e.subscribe(pt(t, i => { | |
r = !0, | |
t.next(i) | |
} | |
, () => r ? t.complete() : t.error(n()))) | |
} | |
) | |
} | |
function QB() { | |
return new zc | |
} | |
function hi(n, e) { | |
const t = arguments.length >= 2; | |
return r => r.pipe(n ? Ur( (i, o) => n(i, o, r)) : qr, Wo(1), t ? $c(e) : lw( () => new zc)) | |
} | |
function Wi(n, e) { | |
return Ye(e) ? Lt(n, e, 1) : Lt(n, 1) | |
} | |
function Qt(n, e, t) { | |
const r = Ye(n) || e || t ? { | |
next: n, | |
error: e, | |
complete: t | |
} : n; | |
return r ? bt( (i, o) => { | |
var s; | |
null === (s = r.subscribe) || void 0 === s || s.call(r); | |
let a = !0; | |
i.subscribe(pt(o, l => { | |
var c; | |
null === (c = r.next) || void 0 === c || c.call(r, l), | |
o.next(l) | |
} | |
, () => { | |
var l; | |
a = !1, | |
null === (l = r.complete) || void 0 === l || l.call(r), | |
o.complete() | |
} | |
, l => { | |
var c; | |
a = !1, | |
null === (c = r.error) || void 0 === c || c.call(r, l), | |
o.error(l) | |
} | |
, () => { | |
var l, c; | |
a && (null === (l = r.unsubscribe) || void 0 === l || l.call(r)), | |
null === (c = r.finalize) || void 0 === c || c.call(r) | |
} | |
)) | |
} | |
) : qr | |
} | |
function fi(n) { | |
return bt( (e, t) => { | |
let o, r = null, i = !1; | |
r = e.subscribe(pt(t, void 0, void 0, s => { | |
o = _n(n(s, fi(n)(e))), | |
r ? (r.unsubscribe(), | |
r = null, | |
o.subscribe(t)) : i = !0 | |
} | |
)), | |
i && (r.unsubscribe(), | |
r = null, | |
o.subscribe(t)) | |
} | |
) | |
} | |
function YB(n, e, t, r, i) { | |
return (o, s) => { | |
let a = t | |
, l = e | |
, c = 0; | |
o.subscribe(pt(s, u => { | |
const d = c++; | |
l = a ? n(l, u, d) : (a = !0, | |
u), | |
r && s.next(l) | |
} | |
, i && ( () => { | |
a && s.next(l), | |
s.complete() | |
} | |
))) | |
} | |
} | |
function cw(n, e) { | |
return bt(YB(n, e, arguments.length >= 2, !0)) | |
} | |
function $p(n) { | |
return n <= 0 ? () => Tr : bt( (e, t) => { | |
let r = []; | |
e.subscribe(pt(t, i => { | |
r.push(i), | |
n < r.length && r.shift() | |
} | |
, () => { | |
for (const i of r) | |
t.next(i); | |
t.complete() | |
} | |
, void 0, () => { | |
r = null | |
} | |
)) | |
} | |
) | |
} | |
function uw(n, e) { | |
const t = arguments.length >= 2; | |
return r => r.pipe(n ? Ur( (i, o) => n(i, o, r)) : qr, $p(1), t ? $c(e) : lw( () => new zc)) | |
} | |
function Wp(n) { | |
return bt( (e, t) => { | |
try { | |
e.subscribe(t) | |
} finally { | |
t.add(n) | |
} | |
} | |
) | |
} | |
const De = "primary" | |
, Ca = Symbol("RouteTitle"); | |
class JB { | |
constructor(e) { | |
this.params = e || {} | |
} | |
has(e) { | |
return Object.prototype.hasOwnProperty.call(this.params, e) | |
} | |
get(e) { | |
if (this.has(e)) { | |
const t = this.params[e]; | |
return Array.isArray(t) ? t[0] : t | |
} | |
return null | |
} | |
getAll(e) { | |
if (this.has(e)) { | |
const t = this.params[e]; | |
return Array.isArray(t) ? t : [t] | |
} | |
return [] | |
} | |
get keys() { | |
return Object.keys(this.params) | |
} | |
} | |
function Ko(n) { | |
return new JB(n) | |
} | |
function e3(n, e, t) { | |
const r = t.path.split("/"); | |
if (r.length > n.length || "full" === t.pathMatch && (e.hasChildren() || r.length < n.length)) | |
return null; | |
const i = {}; | |
for (let o = 0; o < r.length; o++) { | |
const s = r[o] | |
, a = n[o]; | |
if (s.startsWith(":")) | |
i[s.substring(1)] = a; | |
else if (s !== a.path) | |
return null | |
} | |
return { | |
consumed: n.slice(0, r.length), | |
posParams: i | |
} | |
} | |
function br(n, e) { | |
const t = n ? Object.keys(n) : void 0 | |
, r = e ? Object.keys(e) : void 0; | |
if (!t || !r || t.length != r.length) | |
return !1; | |
let i; | |
for (let o = 0; o < t.length; o++) | |
if (i = t[o], | |
!dw(n[i], e[i])) | |
return !1; | |
return !0 | |
} | |
function dw(n, e) { | |
if (Array.isArray(n) && Array.isArray(e)) { | |
if (n.length !== e.length) | |
return !1; | |
const t = [...n].sort() | |
, r = [...e].sort(); | |
return t.every( (i, o) => r[o] === i) | |
} | |
return n === e | |
} | |
function hw(n) { | |
return Array.prototype.concat.apply([], n) | |
} | |
function fw(n) { | |
return n.length > 0 ? n[n.length - 1] : null | |
} | |
function Bt(n, e) { | |
for (const t in n) | |
n.hasOwnProperty(t) && e(n[t], t) | |
} | |
function pi(n) { | |
return Mh(n) ? n : Bs(n) ? wt(Promise.resolve(n)) : le(n) | |
} | |
const r3 = { | |
exact: function mw(n, e, t) { | |
if (!qi(n.segments, e.segments) || !Wc(n.segments, e.segments, t) || n.numberOfChildren !== e.numberOfChildren) | |
return !1; | |
for (const r in e.children) | |
if (!n.children[r] || !mw(n.children[r], e.children[r], t)) | |
return !1; | |
return !0 | |
}, | |
subset: _w | |
} | |
, pw = { | |
exact: function o3(n, e) { | |
return br(n, e) | |
}, | |
subset: function s3(n, e) { | |
return Object.keys(e).length <= Object.keys(n).length && Object.keys(e).every(t => dw(n[t], e[t])) | |
}, | |
ignored: () => !0 | |
}; | |
function gw(n, e, t) { | |
return r3[t.paths](n.root, e.root, t.matrixParams) && pw[t.queryParams](n.queryParams, e.queryParams) && !("exact" === t.fragment && n.fragment !== e.fragment) | |
} | |
function _w(n, e, t) { | |
return yw(n, e, e.segments, t) | |
} | |
function yw(n, e, t, r) { | |
if (n.segments.length > t.length) { | |
const i = n.segments.slice(0, t.length); | |
return !(!qi(i, t) || e.hasChildren() || !Wc(i, t, r)) | |
} | |
if (n.segments.length === t.length) { | |
if (!qi(n.segments, t) || !Wc(n.segments, t, r)) | |
return !1; | |
for (const i in e.children) | |
if (!n.children[i] || !_w(n.children[i], e.children[i], r)) | |
return !1; | |
return !0 | |
} | |
{ | |
const i = t.slice(0, n.segments.length) | |
, o = t.slice(n.segments.length); | |
return !!(qi(n.segments, i) && Wc(n.segments, i, r) && n.children[De]) && yw(n.children[De], e, o, r) | |
} | |
} | |
function Wc(n, e, t) { | |
return e.every( (r, i) => pw[t](n[i].parameters, r.parameters)) | |
} | |
class Gi { | |
constructor(e, t, r) { | |
this.root = e, | |
this.queryParams = t, | |
this.fragment = r | |
} | |
get queryParamMap() { | |
return this._queryParamMap || (this._queryParamMap = Ko(this.queryParams)), | |
this._queryParamMap | |
} | |
toString() { | |
return c3.serialize(this) | |
} | |
} | |
class Ie { | |
constructor(e, t) { | |
this.segments = e, | |
this.children = t, | |
this.parent = null, | |
Bt(t, (r, i) => r.parent = this) | |
} | |
hasChildren() { | |
return this.numberOfChildren > 0 | |
} | |
get numberOfChildren() { | |
return Object.keys(this.children).length | |
} | |
toString() { | |
return Gc(this) | |
} | |
} | |
class Ta { | |
constructor(e, t) { | |
this.path = e, | |
this.parameters = t | |
} | |
get parameterMap() { | |
return this._parameterMap || (this._parameterMap = Ko(this.parameters)), | |
this._parameterMap | |
} | |
toString() { | |
return Tw(this) | |
} | |
} | |
function qi(n, e) { | |
return n.length === e.length && n.every( (t, r) => t.path === e[r].path) | |
} | |
let vw = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return new qp | |
}, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
class qp { | |
parse(e) { | |
const t = new y3(e); | |
return new Gi(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment()) | |
} | |
serialize(e) { | |
const t = `/${Ea(e.root, !0)}` | |
, r = function h3(n) { | |
const e = Object.keys(n).map(t => { | |
const r = n[t]; | |
return Array.isArray(r) ? r.map(i => `${qc(t)}=${qc(i)}`).join("&") : `${qc(t)}=${qc(r)}` | |
} | |
).filter(t => !!t); | |
return e.length ? `?${e.join("&")}` : "" | |
}(e.queryParams); | |
return `${t}${r}${"string" == typeof e.fragment ? `#${function u3(n) { | |
return encodeURI(n) | |
}(e.fragment)}` : ""}` | |
} | |
} | |
const c3 = new qp; | |
function Gc(n) { | |
return n.segments.map(e => Tw(e)).join("/") | |
} | |
function Ea(n, e) { | |
if (!n.hasChildren()) | |
return Gc(n); | |
if (e) { | |
const t = n.children[De] ? Ea(n.children[De], !1) : "" | |
, r = []; | |
return Bt(n.children, (i, o) => { | |
o !== De && r.push(`${o}:${Ea(i, !1)}`) | |
} | |
), | |
r.length > 0 ? `${t}(${r.join("//")})` : t | |
} | |
{ | |
const t = function l3(n, e) { | |
let t = []; | |
return Bt(n.children, (r, i) => { | |
i === De && (t = t.concat(e(r, i))) | |
} | |
), | |
Bt(n.children, (r, i) => { | |
i !== De && (t = t.concat(e(r, i))) | |
} | |
), | |
t | |
}(n, (r, i) => i === De ? [Ea(n.children[De], !1)] : [`${i}:${Ea(r, !1)}`]); | |
return 1 === Object.keys(n.children).length && null != n.children[De] ? `${Gc(n)}/${t[0]}` : `${Gc(n)}/(${t.join("//")})` | |
} | |
} | |
function bw(n) { | |
return encodeURIComponent(n).replace(/%40/g, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",") | |
} | |
function qc(n) { | |
return bw(n).replace(/%3B/gi, ";") | |
} | |
function Kp(n) { | |
return bw(n).replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/%26/gi, "&") | |
} | |
function Kc(n) { | |
return decodeURIComponent(n) | |
} | |
function Cw(n) { | |
return Kc(n.replace(/\+/g, "%20")) | |
} | |
function Tw(n) { | |
return `${Kp(n.path)}${function d3(n) { | |
return Object.keys(n).map(e => `;${Kp(e)}=${Kp(n[e])}`).join("") | |
}(n.parameters)}` | |
} | |
const f3 = /^[^\/()?;=#]+/; | |
function Qc(n) { | |
const e = n.match(f3); | |
return e ? e[0] : "" | |
} | |
const p3 = /^[^=?&#]+/ | |
, m3 = /^[^&#]+/; | |
class y3 { | |
constructor(e) { | |
this.url = e, | |
this.remaining = e | |
} | |
parseRootSegment() { | |
return this.consumeOptional("/"), | |
"" === this.remaining || this.peekStartsWith("?") || this.peekStartsWith("#") ? new Ie([],{}) : new Ie([],this.parseChildren()) | |
} | |
parseQueryParams() { | |
const e = {}; | |
if (this.consumeOptional("?")) | |
do { | |
this.parseQueryParam(e) | |
} while (this.consumeOptional("&")); | |
return e | |
} | |
parseFragment() { | |
return this.consumeOptional("#") ? decodeURIComponent(this.remaining) : null | |
} | |
parseChildren() { | |
if ("" === this.remaining) | |
return {}; | |
this.consumeOptional("/"); | |
const e = []; | |
for (this.peekStartsWith("(") || e.push(this.parseSegment()); this.peekStartsWith("/") && !this.peekStartsWith("//") && !this.peekStartsWith("/("); ) | |
this.capture("/"), | |
e.push(this.parseSegment()); | |
let t = {}; | |
this.peekStartsWith("/(") && (this.capture("/"), | |
t = this.parseParens(!0)); | |
let r = {}; | |
return this.peekStartsWith("(") && (r = this.parseParens(!1)), | |
(e.length > 0 || Object.keys(t).length > 0) && (r[De] = new Ie(e,t)), | |
r | |
} | |
parseSegment() { | |
const e = Qc(this.remaining); | |
if ("" === e && this.peekStartsWith(";")) | |
throw new U(4009,!1); | |
return this.capture(e), | |
new Ta(Kc(e),this.parseMatrixParams()) | |
} | |
parseMatrixParams() { | |
const e = {}; | |
for (; this.consumeOptional(";"); ) | |
this.parseParam(e); | |
return e | |
} | |
parseParam(e) { | |
const t = Qc(this.remaining); | |
if (!t) | |
return; | |
this.capture(t); | |
let r = ""; | |
if (this.consumeOptional("=")) { | |
const i = Qc(this.remaining); | |
i && (r = i, | |
this.capture(r)) | |
} | |
e[Kc(t)] = Kc(r) | |
} | |
parseQueryParam(e) { | |
const t = function g3(n) { | |
const e = n.match(p3); | |
return e ? e[0] : "" | |
}(this.remaining); | |
if (!t) | |
return; | |
this.capture(t); | |
let r = ""; | |
if (this.consumeOptional("=")) { | |
const s = function _3(n) { | |
const e = n.match(m3); | |
return e ? e[0] : "" | |
}(this.remaining); | |
s && (r = s, | |
this.capture(r)) | |
} | |
const i = Cw(t) | |
, o = Cw(r); | |
if (e.hasOwnProperty(i)) { | |
let s = e[i]; | |
Array.isArray(s) || (s = [s], | |
e[i] = s), | |
s.push(o) | |
} else | |
e[i] = o | |
} | |
parseParens(e) { | |
const t = {}; | |
for (this.capture("("); !this.consumeOptional(")") && this.remaining.length > 0; ) { | |
const r = Qc(this.remaining) | |
, i = this.remaining[r.length]; | |
if ("/" !== i && ")" !== i && ";" !== i) | |
throw new U(4010,!1); | |
let o; | |
r.indexOf(":") > -1 ? (o = r.slice(0, r.indexOf(":")), | |
this.capture(o), | |
this.capture(":")) : e && (o = De); | |
const s = this.parseChildren(); | |
t[o] = 1 === Object.keys(s).length ? s[De] : new Ie([],s), | |
this.consumeOptional("//") | |
} | |
return t | |
} | |
peekStartsWith(e) { | |
return this.remaining.startsWith(e) | |
} | |
consumeOptional(e) { | |
return !!this.peekStartsWith(e) && (this.remaining = this.remaining.substring(e.length), | |
!0) | |
} | |
capture(e) { | |
if (!this.consumeOptional(e)) | |
throw new U(4011,!1) | |
} | |
} | |
function Qp(n) { | |
return n.segments.length > 0 ? new Ie([],{ | |
[De]: n | |
}) : n | |
} | |
function Yc(n) { | |
const e = {}; | |
for (const r of Object.keys(n.children)) { | |
const o = Yc(n.children[r]); | |
(o.segments.length > 0 || o.hasChildren()) && (e[r] = o) | |
} | |
return function v3(n) { | |
if (1 === n.numberOfChildren && n.children[De]) { | |
const e = n.children[De]; | |
return new Ie(n.segments.concat(e.segments),e.children) | |
} | |
return n | |
}(new Ie(n.segments,e)) | |
} | |
function Ki(n) { | |
return n instanceof Gi | |
} | |
function T3(n, e, t, r, i) { | |
var o; | |
if (0 === t.length) | |
return Qo(e.root, e.root, e.root, r, i); | |
const a = function Dw(n) { | |
if ("string" == typeof n[0] && 1 === n.length && "/" === n[0]) | |
return new ww(!0,0,n); | |
let e = 0 | |
, t = !1; | |
const r = n.reduce( (i, o, s) => { | |
if ("object" == typeof o && null != o) { | |
if (o.outlets) { | |
const a = {}; | |
return Bt(o.outlets, (l, c) => { | |
a[c] = "string" == typeof l ? l.split("/") : l | |
} | |
), | |
[...i, { | |
outlets: a | |
}] | |
} | |
if (o.segmentPath) | |
return [...i, o.segmentPath] | |
} | |
return "string" != typeof o ? [...i, o] : 0 === s ? (o.split("/").forEach( (a, l) => { | |
0 == l && "." === a || (0 == l && "" === a ? t = !0 : ".." === a ? e++ : "" != a && i.push(a)) | |
} | |
), | |
i) : [...i, o] | |
} | |
, []); | |
return new ww(t,e,r) | |
}(t); | |
return a.toRoot() ? Qo(e.root, e.root, new Ie([],{}), r, i) : function l(u) { | |
var d; | |
const h = function w3(n, e, t, r) { | |
if (n.isAbsolute) | |
return new Yo(e.root,!0,0); | |
if (-1 === r) | |
return new Yo(t,t === e.root,0); | |
return function Mw(n, e, t) { | |
let r = n | |
, i = e | |
, o = t; | |
for (; o > i; ) { | |
if (o -= i, | |
r = r.parent, | |
!r) | |
throw new U(4005,!1); | |
i = r.segments.length | |
} | |
return new Yo(r,!1,i - o) | |
}(t, r + (wa(n.commands[0]) ? 0 : 1), n.numberOfDoubleDots) | |
}(a, e, null === (d = n.snapshot) || void 0 === d ? void 0 : d._urlSegment, u) | |
, f = h.processChildren ? Ma(h.segmentGroup, h.index, a.commands) : Zp(h.segmentGroup, h.index, a.commands); | |
return Qo(e.root, h.segmentGroup, f, r, i) | |
}(null === (o = n.snapshot) || void 0 === o ? void 0 : o._lastPathIndex) | |
} | |
function wa(n) { | |
return "object" == typeof n && null != n && !n.outlets && !n.segmentPath | |
} | |
function Da(n) { | |
return "object" == typeof n && null != n && n.outlets | |
} | |
function Qo(n, e, t, r, i) { | |
let s, o = {}; | |
r && Bt(r, (l, c) => { | |
o[c] = Array.isArray(l) ? l.map(u => `${u}`) : `${l}` | |
} | |
), | |
s = n === e ? t : Ew(n, e, t); | |
const a = Qp(Yc(s)); | |
return new Gi(a,o,i) | |
} | |
function Ew(n, e, t) { | |
const r = {}; | |
return Bt(n.children, (i, o) => { | |
r[o] = i === e ? t : Ew(i, e, t) | |
} | |
), | |
new Ie(n.segments,r) | |
} | |
class ww { | |
constructor(e, t, r) { | |
if (this.isAbsolute = e, | |
this.numberOfDoubleDots = t, | |
this.commands = r, | |
e && r.length > 0 && wa(r[0])) | |
throw new U(4003,!1); | |
const i = r.find(Da); | |
if (i && i !== fw(r)) | |
throw new U(4004,!1) | |
} | |
toRoot() { | |
return this.isAbsolute && 1 === this.commands.length && "/" == this.commands[0] | |
} | |
} | |
class Yo { | |
constructor(e, t, r) { | |
this.segmentGroup = e, | |
this.processChildren = t, | |
this.index = r | |
} | |
} | |
function Zp(n, e, t) { | |
if (n || (n = new Ie([],{})), | |
0 === n.segments.length && n.hasChildren()) | |
return Ma(n, e, t); | |
const r = function M3(n, e, t) { | |
let r = 0 | |
, i = e; | |
const o = { | |
match: !1, | |
pathIndex: 0, | |
commandIndex: 0 | |
}; | |
for (; i < n.segments.length; ) { | |
if (r >= t.length) | |
return o; | |
const s = n.segments[i] | |
, a = t[r]; | |
if (Da(a)) | |
break; | |
const l = `${a}` | |
, c = r < t.length - 1 ? t[r + 1] : null; | |
if (i > 0 && void 0 === l) | |
break; | |
if (l && c && "object" == typeof c && void 0 === c.outlets) { | |
if (!Iw(l, c, s)) | |
return o; | |
r += 2 | |
} else { | |
if (!Iw(l, {}, s)) | |
return o; | |
r++ | |
} | |
i++ | |
} | |
return { | |
match: !0, | |
pathIndex: i, | |
commandIndex: r | |
} | |
}(n, e, t) | |
, i = t.slice(r.commandIndex); | |
if (r.match && r.pathIndex < n.segments.length) { | |
const o = new Ie(n.segments.slice(0, r.pathIndex),{}); | |
return o.children[De] = new Ie(n.segments.slice(r.pathIndex),n.children), | |
Ma(o, 0, i) | |
} | |
return r.match && 0 === i.length ? new Ie(n.segments,{}) : r.match && !n.hasChildren() ? Xp(n, e, t) : r.match ? Ma(n, 0, i) : Xp(n, e, t) | |
} | |
function Ma(n, e, t) { | |
if (0 === t.length) | |
return new Ie(n.segments,{}); | |
{ | |
const r = function D3(n) { | |
return Da(n[0]) ? n[0].outlets : { | |
[De]: n | |
} | |
}(t) | |
, i = {}; | |
return Bt(r, (o, s) => { | |
"string" == typeof o && (o = [o]), | |
null !== o && (i[s] = Zp(n.children[s], e, o)) | |
} | |
), | |
Bt(n.children, (o, s) => { | |
void 0 === r[s] && (i[s] = o) | |
} | |
), | |
new Ie(n.segments,i) | |
} | |
} | |
function Xp(n, e, t) { | |
const r = n.segments.slice(0, e); | |
let i = 0; | |
for (; i < t.length; ) { | |
const o = t[i]; | |
if (Da(o)) { | |
const l = A3(o.outlets); | |
return new Ie(r,l) | |
} | |
if (0 === i && wa(t[0])) { | |
r.push(new Ta(n.segments[e].path,Aw(t[0]))), | |
i++; | |
continue | |
} | |
const s = Da(o) ? o.outlets[De] : `${o}` | |
, a = i < t.length - 1 ? t[i + 1] : null; | |
s && a && wa(a) ? (r.push(new Ta(s,Aw(a))), | |
i += 2) : (r.push(new Ta(s,{})), | |
i++) | |
} | |
return new Ie(r,{}) | |
} | |
function A3(n) { | |
const e = {}; | |
return Bt(n, (t, r) => { | |
"string" == typeof t && (t = [t]), | |
null !== t && (e[r] = Xp(new Ie([],{}), 0, t)) | |
} | |
), | |
e | |
} | |
function Aw(n) { | |
const e = {}; | |
return Bt(n, (t, r) => e[r] = `${t}`), | |
e | |
} | |
function Iw(n, e, t) { | |
return n == t.path && br(e, t.parameters) | |
} | |
class jr { | |
constructor(e, t) { | |
this.id = e, | |
this.url = t | |
} | |
} | |
class Jp extends jr { | |
constructor(e, t, r="imperative", i=null) { | |
super(e, t), | |
this.type = 0, | |
this.navigationTrigger = r, | |
this.restoredState = i | |
} | |
toString() { | |
return `NavigationStart(id: ${this.id}, url: '${this.url}')` | |
} | |
} | |
class Qi extends jr { | |
constructor(e, t, r) { | |
super(e, t), | |
this.urlAfterRedirects = r, | |
this.type = 1 | |
} | |
toString() { | |
return `NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')` | |
} | |
} | |
class Zc extends jr { | |
constructor(e, t, r, i) { | |
super(e, t), | |
this.reason = r, | |
this.code = i, | |
this.type = 2 | |
} | |
toString() { | |
return `NavigationCancel(id: ${this.id}, url: '${this.url}')` | |
} | |
} | |
class Sw extends jr { | |
constructor(e, t, r, i) { | |
super(e, t), | |
this.error = r, | |
this.target = i, | |
this.type = 3 | |
} | |
toString() { | |
return `NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})` | |
} | |
} | |
class I3 extends jr { | |
constructor(e, t, r, i) { | |
super(e, t), | |
this.urlAfterRedirects = r, | |
this.state = i, | |
this.type = 4 | |
} | |
toString() { | |
return `RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})` | |
} | |
} | |
class S3 extends jr { | |
constructor(e, t, r, i) { | |
super(e, t), | |
this.urlAfterRedirects = r, | |
this.state = i, | |
this.type = 7 | |
} | |
toString() { | |
return `GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})` | |
} | |
} | |
class x3 extends jr { | |
constructor(e, t, r, i, o) { | |
super(e, t), | |
this.urlAfterRedirects = r, | |
this.state = i, | |
this.shouldActivate = o, | |
this.type = 8 | |
} | |
toString() { | |
return `GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})` | |
} | |
} | |
class R3 extends jr { | |
constructor(e, t, r, i) { | |
super(e, t), | |
this.urlAfterRedirects = r, | |
this.state = i, | |
this.type = 5 | |
} | |
toString() { | |
return `ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})` | |
} | |
} | |
class F3 extends jr { | |
constructor(e, t, r, i) { | |
super(e, t), | |
this.urlAfterRedirects = r, | |
this.state = i, | |
this.type = 6 | |
} | |
toString() { | |
return `ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})` | |
} | |
} | |
class P3 { | |
constructor(e) { | |
this.route = e, | |
this.type = 9 | |
} | |
toString() { | |
return `RouteConfigLoadStart(path: ${this.route.path})` | |
} | |
} | |
class O3 { | |
constructor(e) { | |
this.route = e, | |
this.type = 10 | |
} | |
toString() { | |
return `RouteConfigLoadEnd(path: ${this.route.path})` | |
} | |
} | |
class N3 { | |
constructor(e) { | |
this.snapshot = e, | |
this.type = 11 | |
} | |
toString() { | |
return `ChildActivationStart(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')` | |
} | |
} | |
class k3 { | |
constructor(e) { | |
this.snapshot = e, | |
this.type = 12 | |
} | |
toString() { | |
return `ChildActivationEnd(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')` | |
} | |
} | |
class L3 { | |
constructor(e) { | |
this.snapshot = e, | |
this.type = 13 | |
} | |
toString() { | |
return `ActivationStart(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')` | |
} | |
} | |
class V3 { | |
constructor(e) { | |
this.snapshot = e, | |
this.type = 14 | |
} | |
toString() { | |
return `ActivationEnd(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')` | |
} | |
} | |
class xw { | |
constructor(e, t, r) { | |
this.routerEvent = e, | |
this.position = t, | |
this.anchor = r, | |
this.type = 15 | |
} | |
toString() { | |
return `Scroll(anchor: '${this.anchor}', position: '${this.position ? `${this.position[0]}, ${this.position[1]}` : null}')` | |
} | |
} | |
class Rw { | |
constructor(e) { | |
this._root = e | |
} | |
get root() { | |
return this._root.value | |
} | |
parent(e) { | |
const t = this.pathFromRoot(e); | |
return t.length > 1 ? t[t.length - 2] : null | |
} | |
children(e) { | |
const t = eg(e, this._root); | |
return t ? t.children.map(r => r.value) : [] | |
} | |
firstChild(e) { | |
const t = eg(e, this._root); | |
return t && t.children.length > 0 ? t.children[0].value : null | |
} | |
siblings(e) { | |
const t = tg(e, this._root); | |
return t.length < 2 ? [] : t[t.length - 2].children.map(i => i.value).filter(i => i !== e) | |
} | |
pathFromRoot(e) { | |
return tg(e, this._root).map(t => t.value) | |
} | |
} | |
function eg(n, e) { | |
if (n === e.value) | |
return e; | |
for (const t of e.children) { | |
const r = eg(n, t); | |
if (r) | |
return r | |
} | |
return null | |
} | |
function tg(n, e) { | |
if (n === e.value) | |
return [e]; | |
for (const t of e.children) { | |
const r = tg(n, t); | |
if (r.length) | |
return r.unshift(e), | |
r | |
} | |
return [] | |
} | |
class Hr { | |
constructor(e, t) { | |
this.value = e, | |
this.children = t | |
} | |
toString() { | |
return `TreeNode(${this.value})` | |
} | |
} | |
function Zo(n) { | |
const e = {}; | |
return n && n.children.forEach(t => e[t.value.outlet] = t), | |
e | |
} | |
class Fw extends Rw { | |
constructor(e, t) { | |
super(e), | |
this.snapshot = t, | |
ng(this, e) | |
} | |
toString() { | |
return this.snapshot.toString() | |
} | |
} | |
function Pw(n, e) { | |
const t = function U3(n, e) { | |
const s = new Xc([],{},{},"",{},De,e,null,n.root,-1,{}); | |
return new Nw("",new Hr(s,[])) | |
}(n, e) | |
, r = new Hn([new Ta("",{})]) | |
, i = new Hn({}) | |
, o = new Hn({}) | |
, s = new Hn({}) | |
, a = new Hn("") | |
, l = new gi(r,i,s,a,o,De,e,t.root); | |
return l.snapshot = t.root, | |
new Fw(new Hr(l,[]),t) | |
} | |
class gi { | |
constructor(e, t, r, i, o, s, a, l) { | |
var c, u; | |
this.url = e, | |
this.params = t, | |
this.queryParams = r, | |
this.fragment = i, | |
this.data = o, | |
this.outlet = s, | |
this.component = a, | |
this.title = null !== (u = null === (c = this.data) || void 0 === c ? void 0 : c.pipe(Fe(d => d[Ca]))) && void 0 !== u ? u : le(void 0), | |
this._futureSnapshot = l | |
} | |
get routeConfig() { | |
return this._futureSnapshot.routeConfig | |
} | |
get root() { | |
return this._routerState.root | |
} | |
get parent() { | |
return this._routerState.parent(this) | |
} | |
get firstChild() { | |
return this._routerState.firstChild(this) | |
} | |
get children() { | |
return this._routerState.children(this) | |
} | |
get pathFromRoot() { | |
return this._routerState.pathFromRoot(this) | |
} | |
get paramMap() { | |
return this._paramMap || (this._paramMap = this.params.pipe(Fe(e => Ko(e)))), | |
this._paramMap | |
} | |
get queryParamMap() { | |
return this._queryParamMap || (this._queryParamMap = this.queryParams.pipe(Fe(e => Ko(e)))), | |
this._queryParamMap | |
} | |
toString() { | |
return this.snapshot ? this.snapshot.toString() : `Future(${this._futureSnapshot})` | |
} | |
} | |
function Ow(n, e="emptyOnly") { | |
const t = n.pathFromRoot; | |
let r = 0; | |
if ("always" !== e) | |
for (r = t.length - 1; r >= 1; ) { | |
const i = t[r] | |
, o = t[r - 1]; | |
if (i.routeConfig && "" === i.routeConfig.path) | |
r--; | |
else { | |
if (o.component) | |
break; | |
r-- | |
} | |
} | |
return function j3(n) { | |
return n.reduce( (e, t) => { | |
var r; | |
return { | |
params: Object.assign(Object.assign({}, e.params), t.params), | |
data: Object.assign(Object.assign({}, e.data), t.data), | |
resolve: Object.assign(Object.assign(Object.assign(Object.assign({}, t.data), e.resolve), null === (r = t.routeConfig) || void 0 === r ? void 0 : r.data), t._resolvedData) | |
} | |
} | |
, { | |
params: {}, | |
data: {}, | |
resolve: {} | |
}) | |
}(t.slice(r)) | |
} | |
class Xc { | |
constructor(e, t, r, i, o, s, a, l, c, u, d, h) { | |
var f; | |
this.url = e, | |
this.params = t, | |
this.queryParams = r, | |
this.fragment = i, | |
this.data = o, | |
this.outlet = s, | |
this.component = a, | |
this.title = null === (f = this.data) || void 0 === f ? void 0 : f[Ca], | |
this.routeConfig = l, | |
this._urlSegment = c, | |
this._lastPathIndex = u, | |
this._correctedLastPathIndex = null != h ? h : u, | |
this._resolve = d | |
} | |
get root() { | |
return this._routerState.root | |
} | |
get parent() { | |
return this._routerState.parent(this) | |
} | |
get firstChild() { | |
return this._routerState.firstChild(this) | |
} | |
get children() { | |
return this._routerState.children(this) | |
} | |
get pathFromRoot() { | |
return this._routerState.pathFromRoot(this) | |
} | |
get paramMap() { | |
return this._paramMap || (this._paramMap = Ko(this.params)), | |
this._paramMap | |
} | |
get queryParamMap() { | |
return this._queryParamMap || (this._queryParamMap = Ko(this.queryParams)), | |
this._queryParamMap | |
} | |
toString() { | |
return `Route(url:'${this.url.map(r => r.toString()).join("/")}', path:'${this.routeConfig ? this.routeConfig.path : ""}')` | |
} | |
} | |
class Nw extends Rw { | |
constructor(e, t) { | |
super(t), | |
this.url = e, | |
ng(this, t) | |
} | |
toString() { | |
return kw(this._root) | |
} | |
} | |
function ng(n, e) { | |
e.value._routerState = n, | |
e.children.forEach(t => ng(n, t)) | |
} | |
function kw(n) { | |
const e = n.children.length > 0 ? ` { ${n.children.map(kw).join(", ")} } ` : ""; | |
return `${n.value}${e}` | |
} | |
function rg(n) { | |
if (n.snapshot) { | |
const e = n.snapshot | |
, t = n._futureSnapshot; | |
n.snapshot = t, | |
br(e.queryParams, t.queryParams) || n.queryParams.next(t.queryParams), | |
e.fragment !== t.fragment && n.fragment.next(t.fragment), | |
br(e.params, t.params) || n.params.next(t.params), | |
function t3(n, e) { | |
if (n.length !== e.length) | |
return !1; | |
for (let t = 0; t < n.length; ++t) | |
if (!br(n[t], e[t])) | |
return !1; | |
return !0 | |
}(e.url, t.url) || n.url.next(t.url), | |
br(e.data, t.data) || n.data.next(t.data) | |
} else | |
n.snapshot = n._futureSnapshot, | |
n.data.next(n._futureSnapshot.data) | |
} | |
function ig(n, e) { | |
const t = br(n.params, e.params) && function a3(n, e) { | |
return qi(n, e) && n.every( (t, r) => br(t.parameters, e[r].parameters)) | |
}(n.url, e.url); | |
return t && !(!n.parent != !e.parent) && (!n.parent || ig(n.parent, e.parent)) | |
} | |
function Aa(n, e, t) { | |
if (t && n.shouldReuseRoute(e.value, t.value.snapshot)) { | |
const r = t.value; | |
r._futureSnapshot = e.value; | |
const i = function z3(n, e, t) { | |
return e.children.map(r => { | |
for (const i of t.children) | |
if (n.shouldReuseRoute(r.value, i.value.snapshot)) | |
return Aa(n, r, i); | |
return Aa(n, r) | |
} | |
) | |
}(n, e, t); | |
return new Hr(r,i) | |
} | |
{ | |
if (n.shouldAttach(e.value)) { | |
const o = n.retrieve(e.value); | |
if (null !== o) { | |
const s = o.route; | |
return s.value._futureSnapshot = e.value, | |
s.children = e.children.map(a => Aa(n, a)), | |
s | |
} | |
} | |
const r = function $3(n) { | |
return new gi(new Hn(n.url),new Hn(n.params),new Hn(n.queryParams),new Hn(n.fragment),new Hn(n.data),n.outlet,n.component,n) | |
}(e.value) | |
, i = e.children.map(o => Aa(n, o)); | |
return new Hr(r,i) | |
} | |
} | |
const og = "ngNavigationCancelingError"; | |
function Lw(n, e) { | |
const {redirectTo: t, navigationBehaviorOptions: r} = Ki(e) ? { | |
redirectTo: e, | |
navigationBehaviorOptions: void 0 | |
} : e | |
, i = Vw(!1, 0, e); | |
return i.url = t, | |
i.navigationBehaviorOptions = r, | |
i | |
} | |
function Vw(n, e, t) { | |
const r = new Error("NavigationCancelingError: " + (n || "")); | |
return r[og] = !0, | |
r.cancellationCode = e, | |
t && (r.url = t), | |
r | |
} | |
function Bw(n) { | |
return Uw(n) && Ki(n.url) | |
} | |
function Uw(n) { | |
return n && n[og] | |
} | |
class W3 { | |
constructor() { | |
this.outlet = null, | |
this.route = null, | |
this.resolver = null, | |
this.injector = null, | |
this.children = new Ia, | |
this.attachRef = null | |
} | |
} | |
let Ia = ( () => { | |
class n { | |
constructor() { | |
this.contexts = new Map | |
} | |
onChildOutletCreated(t, r) { | |
const i = this.getOrCreateContext(t); | |
i.outlet = r, | |
this.contexts.set(t, i) | |
} | |
onChildOutletDestroyed(t) { | |
const r = this.getContext(t); | |
r && (r.outlet = null, | |
r.attachRef = null) | |
} | |
onOutletDeactivated() { | |
const t = this.contexts; | |
return this.contexts = new Map, | |
t | |
} | |
onOutletReAttached(t) { | |
this.contexts = t | |
} | |
getOrCreateContext(t) { | |
let r = this.getContext(t); | |
return r || (r = new W3, | |
this.contexts.set(t, r)), | |
r | |
} | |
getContext(t) { | |
return this.contexts.get(t) || null | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const Jc = !1; | |
let sg = ( () => { | |
class n { | |
constructor(t, r, i, o, s) { | |
this.parentContexts = t, | |
this.location = r, | |
this.changeDetector = o, | |
this.environmentInjector = s, | |
this.activated = null, | |
this._activatedRoute = null, | |
this.activateEvents = new Se, | |
this.deactivateEvents = new Se, | |
this.attachEvents = new Se, | |
this.detachEvents = new Se, | |
this.name = i || De, | |
t.onChildOutletCreated(this.name, this) | |
} | |
ngOnDestroy() { | |
var t; | |
(null === (t = this.parentContexts.getContext(this.name)) || void 0 === t ? void 0 : t.outlet) === this && this.parentContexts.onChildOutletDestroyed(this.name) | |
} | |
ngOnInit() { | |
if (!this.activated) { | |
const t = this.parentContexts.getContext(this.name); | |
t && t.route && (t.attachRef ? this.attach(t.attachRef, t.route) : this.activateWith(t.route, t.injector)) | |
} | |
} | |
get isActivated() { | |
return !!this.activated | |
} | |
get component() { | |
if (!this.activated) | |
throw new U(4012,Jc); | |
return this.activated.instance | |
} | |
get activatedRoute() { | |
if (!this.activated) | |
throw new U(4012,Jc); | |
return this._activatedRoute | |
} | |
get activatedRouteData() { | |
return this._activatedRoute ? this._activatedRoute.snapshot.data : {} | |
} | |
detach() { | |
if (!this.activated) | |
throw new U(4012,Jc); | |
this.location.detach(); | |
const t = this.activated; | |
return this.activated = null, | |
this._activatedRoute = null, | |
this.detachEvents.emit(t.instance), | |
t | |
} | |
attach(t, r) { | |
this.activated = t, | |
this._activatedRoute = r, | |
this.location.insert(t.hostView), | |
this.attachEvents.emit(t.instance) | |
} | |
deactivate() { | |
if (this.activated) { | |
const t = this.component; | |
this.activated.destroy(), | |
this.activated = null, | |
this._activatedRoute = null, | |
this.deactivateEvents.emit(t) | |
} | |
} | |
activateWith(t, r) { | |
if (this.isActivated) | |
throw new U(4013,Jc); | |
this._activatedRoute = t; | |
const i = this.location | |
, s = t._futureSnapshot.component | |
, a = this.parentContexts.getOrCreateContext(this.name).children | |
, l = new G3(t,a,i.injector); | |
if (r && function q3(n) { | |
return !!n.resolveComponentFactory | |
}(r)) { | |
const c = r.resolveComponentFactory(s); | |
this.activated = i.createComponent(c, i.length, l) | |
} else | |
this.activated = i.createComponent(s, { | |
index: i.length, | |
injector: l, | |
environmentInjector: null != r ? r : this.environmentInjector | |
}); | |
this.changeDetector.markForCheck(), | |
this.activateEvents.emit(this.activated.instance) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Ia),B(tr),lo("name"),B(Bo),B(ti)) | |
} | |
, | |
n.\u0275dir = ue({ | |
type: n, | |
selectors: [["router-outlet"]], | |
outputs: { | |
activateEvents: "activate", | |
deactivateEvents: "deactivate", | |
attachEvents: "attach", | |
detachEvents: "detach" | |
}, | |
exportAs: ["outlet"], | |
standalone: !0 | |
}), | |
n | |
} | |
)(); | |
class G3 { | |
constructor(e, t, r) { | |
this.route = e, | |
this.childContexts = t, | |
this.parent = r | |
} | |
get(e, t) { | |
return e === gi ? this.route : e === Ia ? this.childContexts : this.parent.get(e, t) | |
} | |
} | |
let ag = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275cmp = dn({ | |
type: n, | |
selectors: [["ng-component"]], | |
standalone: !0, | |
features: [Tb], | |
decls: 1, | |
vars: 0, | |
template: function(t, r) { | |
1 & t && Ct(0, "router-outlet") | |
}, | |
dependencies: [sg], | |
encapsulation: 2 | |
}), | |
n | |
} | |
)(); | |
function jw(n, e) { | |
var t; | |
return n.providers && !n._injector && (n._injector = Bl(n.providers, e, `Route: ${n.path}`)), | |
null !== (t = n._injector) && void 0 !== t ? t : e | |
} | |
function cg(n) { | |
const e = n.children && n.children.map(cg) | |
, t = e ? Object.assign(Object.assign({}, n), { | |
children: e | |
}) : Object.assign({}, n); | |
return !t.component && !t.loadComponent && (e || t.loadChildren) && t.outlet && t.outlet !== De && (t.component = ag), | |
t | |
} | |
function zn(n) { | |
return n.outlet || De | |
} | |
function Hw(n, e) { | |
const t = n.filter(r => zn(r) === e); | |
return t.push(...n.filter(r => zn(r) !== e)), | |
t | |
} | |
function Sa(n) { | |
var e; | |
if (!n) | |
return null; | |
if (null !== (e = n.routeConfig) && void 0 !== e && e._injector) | |
return n.routeConfig._injector; | |
for (let t = n.parent; t; t = t.parent) { | |
const r = t.routeConfig; | |
if (null != r && r._loadedInjector) | |
return r._loadedInjector; | |
if (null != r && r._injector) | |
return r._injector | |
} | |
return null | |
} | |
class X3 { | |
constructor(e, t, r, i) { | |
this.routeReuseStrategy = e, | |
this.futureState = t, | |
this.currState = r, | |
this.forwardEvent = i | |
} | |
activate(e) { | |
const t = this.futureState._root | |
, r = this.currState ? this.currState._root : null; | |
this.deactivateChildRoutes(t, r, e), | |
rg(this.futureState.root), | |
this.activateChildRoutes(t, r, e) | |
} | |
deactivateChildRoutes(e, t, r) { | |
const i = Zo(t); | |
e.children.forEach(o => { | |
const s = o.value.outlet; | |
this.deactivateRoutes(o, i[s], r), | |
delete i[s] | |
} | |
), | |
Bt(i, (o, s) => { | |
this.deactivateRouteAndItsChildren(o, r) | |
} | |
) | |
} | |
deactivateRoutes(e, t, r) { | |
const i = e.value | |
, o = t ? t.value : null; | |
if (i === o) | |
if (i.component) { | |
const s = r.getContext(i.outlet); | |
s && this.deactivateChildRoutes(e, t, s.children) | |
} else | |
this.deactivateChildRoutes(e, t, r); | |
else | |
o && this.deactivateRouteAndItsChildren(t, r) | |
} | |
deactivateRouteAndItsChildren(e, t) { | |
e.value.component && this.routeReuseStrategy.shouldDetach(e.value.snapshot) ? this.detachAndStoreRouteSubtree(e, t) : this.deactivateRouteAndOutlet(e, t) | |
} | |
detachAndStoreRouteSubtree(e, t) { | |
const r = t.getContext(e.value.outlet) | |
, i = r && e.value.component ? r.children : t | |
, o = Zo(e); | |
for (const s of Object.keys(o)) | |
this.deactivateRouteAndItsChildren(o[s], i); | |
if (r && r.outlet) { | |
const s = r.outlet.detach() | |
, a = r.children.onOutletDeactivated(); | |
this.routeReuseStrategy.store(e.value.snapshot, { | |
componentRef: s, | |
route: e, | |
contexts: a | |
}) | |
} | |
} | |
deactivateRouteAndOutlet(e, t) { | |
const r = t.getContext(e.value.outlet) | |
, i = r && e.value.component ? r.children : t | |
, o = Zo(e); | |
for (const s of Object.keys(o)) | |
this.deactivateRouteAndItsChildren(o[s], i); | |
r && r.outlet && (r.outlet.deactivate(), | |
r.children.onOutletDeactivated(), | |
r.attachRef = null, | |
r.resolver = null, | |
r.route = null) | |
} | |
activateChildRoutes(e, t, r) { | |
const i = Zo(t); | |
e.children.forEach(o => { | |
this.activateRoutes(o, i[o.value.outlet], r), | |
this.forwardEvent(new V3(o.value.snapshot)) | |
} | |
), | |
e.children.length && this.forwardEvent(new k3(e.value.snapshot)) | |
} | |
activateRoutes(e, t, r) { | |
var i; | |
const o = e.value | |
, s = t ? t.value : null; | |
if (rg(o), | |
o === s) | |
if (o.component) { | |
const a = r.getOrCreateContext(o.outlet); | |
this.activateChildRoutes(e, t, a.children) | |
} else | |
this.activateChildRoutes(e, t, r); | |
else if (o.component) { | |
const a = r.getOrCreateContext(o.outlet); | |
if (this.routeReuseStrategy.shouldAttach(o.snapshot)) { | |
const l = this.routeReuseStrategy.retrieve(o.snapshot); | |
this.routeReuseStrategy.store(o.snapshot, null), | |
a.children.onOutletReAttached(l.contexts), | |
a.attachRef = l.componentRef, | |
a.route = l.route.value, | |
a.outlet && a.outlet.attach(l.componentRef, l.route.value), | |
rg(l.route.value), | |
this.activateChildRoutes(e, null, a.children) | |
} else { | |
const l = Sa(o.snapshot) | |
, c = null !== (i = null == l ? void 0 : l.get(Ps)) && void 0 !== i ? i : null; | |
a.attachRef = null, | |
a.route = o, | |
a.resolver = c, | |
a.injector = l, | |
a.outlet && a.outlet.activateWith(o, a.injector), | |
this.activateChildRoutes(e, null, a.children) | |
} | |
} else | |
this.activateChildRoutes(e, null, r) | |
} | |
} | |
class zw { | |
constructor(e) { | |
this.path = e, | |
this.route = this.path[this.path.length - 1] | |
} | |
} | |
class eu { | |
constructor(e, t) { | |
this.component = e, | |
this.route = t | |
} | |
} | |
function J3(n, e, t) { | |
const r = n._root; | |
return xa(r, e ? e._root : null, t, [r.value]) | |
} | |
function Xo(n, e) { | |
const t = Symbol() | |
, r = e.get(n, t); | |
return r === t ? "function" != typeof n || function xM(n) { | |
return null !== za(n) | |
}(n) ? e.get(n) : n : r | |
} | |
function xa(n, e, t, r, i={ | |
canDeactivateChecks: [], | |
canActivateChecks: [] | |
}) { | |
const o = Zo(e); | |
return n.children.forEach(s => { | |
(function tU(n, e, t, r, i={ | |
canDeactivateChecks: [], | |
canActivateChecks: [] | |
}) { | |
const o = n.value | |
, s = e ? e.value : null | |
, a = t ? t.getContext(n.value.outlet) : null; | |
if (s && o.routeConfig === s.routeConfig) { | |
const l = function nU(n, e, t) { | |
if ("function" == typeof t) | |
return t(n, e); | |
switch (t) { | |
case "pathParamsChange": | |
return !qi(n.url, e.url); | |
case "pathParamsOrQueryParamsChange": | |
return !qi(n.url, e.url) || !br(n.queryParams, e.queryParams); | |
case "always": | |
return !0; | |
case "paramsOrQueryParamsChange": | |
return !ig(n, e) || !br(n.queryParams, e.queryParams); | |
default: | |
return !ig(n, e) | |
} | |
}(s, o, o.routeConfig.runGuardsAndResolvers); | |
l ? i.canActivateChecks.push(new zw(r)) : (o.data = s.data, | |
o._resolvedData = s._resolvedData), | |
xa(n, e, o.component ? a ? a.children : null : t, r, i), | |
l && a && a.outlet && a.outlet.isActivated && i.canDeactivateChecks.push(new eu(a.outlet.component,s)) | |
} else | |
s && Ra(e, a, i), | |
i.canActivateChecks.push(new zw(r)), | |
xa(n, null, o.component ? a ? a.children : null : t, r, i) | |
} | |
)(s, o[s.value.outlet], t, r.concat([s.value]), i), | |
delete o[s.value.outlet] | |
} | |
), | |
Bt(o, (s, a) => Ra(s, t.getContext(a), i)), | |
i | |
} | |
function Ra(n, e, t) { | |
const r = Zo(n) | |
, i = n.value; | |
Bt(r, (o, s) => { | |
Ra(o, i.component ? e ? e.children.getContext(s) : null : e, t) | |
} | |
), | |
t.canDeactivateChecks.push(new eu(i.component && e && e.outlet && e.outlet.isActivated ? e.outlet.component : null,i)) | |
} | |
function Fa(n) { | |
return "function" == typeof n | |
} | |
function ug(n) { | |
return n instanceof zc || "EmptyError" === (null == n ? void 0 : n.name) | |
} | |
const tu = Symbol("INITIAL_VALUE"); | |
function Jo() { | |
return vr(n => Up(n.map(e => e.pipe(Wo(1), kE(tu)))).pipe(Fe(e => { | |
for (const t of e) | |
if (!0 !== t) { | |
if (t === tu) | |
return tu; | |
if (!1 === t || t instanceof Gi) | |
return t | |
} | |
return !0 | |
} | |
), Ur(e => e !== tu), Wo(1))) | |
} | |
function $w(n) { | |
return function PD(...n) { | |
return Rg(n) | |
}(Qt(e => { | |
if (Ki(e)) | |
throw Lw(0, e) | |
} | |
), Fe(e => !0 === e)) | |
} | |
const dg = { | |
matched: !1, | |
consumedSegments: [], | |
remainingSegments: [], | |
parameters: {}, | |
positionalParamSegments: {} | |
}; | |
function Ww(n, e, t, r, i) { | |
const o = hg(n, e, t); | |
return o.matched ? function vU(n, e, t, r) { | |
const i = e.canMatch; | |
return i && 0 !== i.length ? le(i.map(s => { | |
const a = Xo(s, n); | |
return pi(function lU(n) { | |
return n && Fa(n.canMatch) | |
}(a) ? a.canMatch(e, t) : n.runInContext( () => a(e, t))) | |
} | |
)).pipe(Jo(), $w()) : le(!0) | |
}(r = jw(e, r), e, t).pipe(Fe(s => !0 === s ? o : Object.assign({}, dg))) : le(o) | |
} | |
function hg(n, e, t) { | |
var r; | |
if ("" === e.path) | |
return "full" === e.pathMatch && (n.hasChildren() || t.length > 0) ? Object.assign({}, dg) : { | |
matched: !0, | |
consumedSegments: [], | |
remainingSegments: t, | |
parameters: {}, | |
positionalParamSegments: {} | |
}; | |
const o = (e.matcher || e3)(t, n, e); | |
if (!o) | |
return Object.assign({}, dg); | |
const s = {}; | |
Bt(o.posParams, (l, c) => { | |
s[c] = l.path | |
} | |
); | |
const a = o.consumed.length > 0 ? Object.assign(Object.assign({}, s), o.consumed[o.consumed.length - 1].parameters) : s; | |
return { | |
matched: !0, | |
consumedSegments: o.consumed, | |
remainingSegments: t.slice(o.consumed.length), | |
parameters: a, | |
positionalParamSegments: null !== (r = o.posParams) && void 0 !== r ? r : {} | |
} | |
} | |
function nu(n, e, t, r, i="corrected") { | |
if (t.length > 0 && function TU(n, e, t) { | |
return t.some(r => ru(n, e, r) && zn(r) !== De) | |
}(n, t, r)) { | |
const s = new Ie(e,function CU(n, e, t, r) { | |
const i = {}; | |
i[De] = r, | |
r._sourceSegment = n, | |
r._segmentIndexShift = e.length; | |
for (const o of t) | |
if ("" === o.path && zn(o) !== De) { | |
const s = new Ie([],{}); | |
s._sourceSegment = n, | |
s._segmentIndexShift = e.length, | |
i[zn(o)] = s | |
} | |
return i | |
}(n, e, r, new Ie(t,n.children))); | |
return s._sourceSegment = n, | |
s._segmentIndexShift = e.length, | |
{ | |
segmentGroup: s, | |
slicedSegments: [] | |
} | |
} | |
if (0 === t.length && function EU(n, e, t) { | |
return t.some(r => ru(n, e, r)) | |
}(n, t, r)) { | |
const s = new Ie(n.segments,function bU(n, e, t, r, i, o) { | |
const s = {}; | |
for (const a of r) | |
if (ru(n, t, a) && !i[zn(a)]) { | |
const l = new Ie([],{}); | |
l._sourceSegment = n, | |
l._segmentIndexShift = "legacy" === o ? n.segments.length : e.length, | |
s[zn(a)] = l | |
} | |
return Object.assign(Object.assign({}, i), s) | |
}(n, e, t, r, n.children, i)); | |
return s._sourceSegment = n, | |
s._segmentIndexShift = e.length, | |
{ | |
segmentGroup: s, | |
slicedSegments: t | |
} | |
} | |
const o = new Ie(n.segments,n.children); | |
return o._sourceSegment = n, | |
o._segmentIndexShift = e.length, | |
{ | |
segmentGroup: o, | |
slicedSegments: t | |
} | |
} | |
function ru(n, e, t) { | |
return (!(n.hasChildren() || e.length > 0) || "full" !== t.pathMatch) && "" === t.path | |
} | |
function Gw(n, e, t, r) { | |
return !!(zn(n) === r || r !== De && ru(e, t, n)) && ("**" === n.path || hg(e, n, t).matched) | |
} | |
function qw(n, e, t) { | |
return 0 === e.length && !n.children[t] | |
} | |
const iu = !1; | |
class ou { | |
constructor(e) { | |
this.segmentGroup = e || null | |
} | |
} | |
class Kw { | |
constructor(e) { | |
this.urlTree = e | |
} | |
} | |
function Pa(n) { | |
return ba(new ou(n)) | |
} | |
function Qw(n) { | |
return ba(new Kw(n)) | |
} | |
class AU { | |
constructor(e, t, r, i, o) { | |
this.injector = e, | |
this.configLoader = t, | |
this.urlSerializer = r, | |
this.urlTree = i, | |
this.config = o, | |
this.allowRedirects = !0 | |
} | |
apply() { | |
const e = nu(this.urlTree.root, [], [], this.config).segmentGroup | |
, t = new Ie(e.segments,e.children); | |
return this.expandSegmentGroup(this.injector, this.config, t, De).pipe(Fe(o => this.createUrlTree(Yc(o), this.urlTree.queryParams, this.urlTree.fragment))).pipe(fi(o => { | |
if (o instanceof Kw) | |
return this.allowRedirects = !1, | |
this.match(o.urlTree); | |
throw o instanceof ou ? this.noMatchError(o) : o | |
} | |
)) | |
} | |
match(e) { | |
return this.expandSegmentGroup(this.injector, this.config, e.root, De).pipe(Fe(i => this.createUrlTree(Yc(i), e.queryParams, e.fragment))).pipe(fi(i => { | |
throw i instanceof ou ? this.noMatchError(i) : i | |
} | |
)) | |
} | |
noMatchError(e) { | |
return new U(4002,iu) | |
} | |
createUrlTree(e, t, r) { | |
const i = Qp(e); | |
return new Gi(i,t,r) | |
} | |
expandSegmentGroup(e, t, r, i) { | |
return 0 === r.segments.length && r.hasChildren() ? this.expandChildren(e, t, r).pipe(Fe(o => new Ie([],o))) : this.expandSegment(e, r, t, r.segments, i, !0) | |
} | |
expandChildren(e, t, r) { | |
const i = []; | |
for (const o of Object.keys(r.children)) | |
"primary" === o ? i.unshift(o) : i.push(o); | |
return wt(i).pipe(Wi(o => { | |
const s = r.children[o] | |
, a = Hw(t, o); | |
return this.expandSegmentGroup(e, a, s, o).pipe(Fe(l => ({ | |
segment: l, | |
outlet: o | |
}))) | |
} | |
), cw( (o, s) => (o[s.outlet] = s.segment, | |
o), {}), uw()) | |
} | |
expandSegment(e, t, r, i, o, s) { | |
return wt(r).pipe(Wi(a => this.expandSegmentAgainstRoute(e, t, r, a, i, o, s).pipe(fi(c => { | |
if (c instanceof ou) | |
return le(null); | |
throw c | |
} | |
))), hi(a => !!a), fi( (a, l) => { | |
if (ug(a)) | |
return qw(t, i, o) ? le(new Ie([],{})) : Pa(t); | |
throw a | |
} | |
)) | |
} | |
expandSegmentAgainstRoute(e, t, r, i, o, s, a) { | |
return Gw(i, t, o, s) ? void 0 === i.redirectTo ? this.matchSegmentAgainstRoute(e, t, i, o, s) : a && this.allowRedirects ? this.expandSegmentAgainstRouteUsingRedirect(e, t, r, i, o, s) : Pa(t) : Pa(t) | |
} | |
expandSegmentAgainstRouteUsingRedirect(e, t, r, i, o, s) { | |
return "**" === i.path ? this.expandWildCardWithParamsAgainstRouteUsingRedirect(e, r, i, s) : this.expandRegularSegmentAgainstRouteUsingRedirect(e, t, r, i, o, s) | |
} | |
expandWildCardWithParamsAgainstRouteUsingRedirect(e, t, r, i) { | |
const o = this.applyRedirectCommands([], r.redirectTo, {}); | |
return r.redirectTo.startsWith("/") ? Qw(o) : this.lineralizeSegments(r, o).pipe(Lt(s => { | |
const a = new Ie(s,{}); | |
return this.expandSegment(e, a, t, s, i, !1) | |
} | |
)) | |
} | |
expandRegularSegmentAgainstRouteUsingRedirect(e, t, r, i, o, s) { | |
const {matched: a, consumedSegments: l, remainingSegments: c, positionalParamSegments: u} = hg(t, i, o); | |
if (!a) | |
return Pa(t); | |
const d = this.applyRedirectCommands(l, i.redirectTo, u); | |
return i.redirectTo.startsWith("/") ? Qw(d) : this.lineralizeSegments(i, d).pipe(Lt(h => this.expandSegment(e, t, r, h.concat(c), s, !1))) | |
} | |
matchSegmentAgainstRoute(e, t, r, i, o) { | |
return "**" === r.path ? (e = jw(r, e), | |
r.loadChildren ? (r._loadedRoutes ? le({ | |
routes: r._loadedRoutes, | |
injector: r._loadedInjector | |
}) : this.configLoader.loadChildren(e, r)).pipe(Fe(a => (r._loadedRoutes = a.routes, | |
r._loadedInjector = a.injector, | |
new Ie(i,{})))) : le(new Ie(i,{}))) : Ww(t, r, i, e).pipe(vr( ({matched: s, consumedSegments: a, remainingSegments: l}) => { | |
var c; | |
return s ? (e = null !== (c = r._injector) && void 0 !== c ? c : e, | |
this.getChildConfig(e, r, i).pipe(Lt(d => { | |
var h; | |
const f = null !== (h = d.injector) && void 0 !== h ? h : e | |
, p = d.routes | |
, {segmentGroup: _, slicedSegments: C} = nu(t, a, l, p) | |
, S = new Ie(_.segments,_.children); | |
if (0 === C.length && S.hasChildren()) | |
return this.expandChildren(f, p, S).pipe(Fe(M => new Ie(a,M))); | |
if (0 === p.length && 0 === C.length) | |
return le(new Ie(a,{})); | |
const R = zn(r) === o; | |
return this.expandSegment(f, S, p, C, R ? De : o, !0).pipe(Fe(O => new Ie(a.concat(O.segments),O.children))) | |
} | |
))) : Pa(t) | |
} | |
)) | |
} | |
getChildConfig(e, t, r) { | |
return t.children ? le({ | |
routes: t.children, | |
injector: e | |
}) : t.loadChildren ? void 0 !== t._loadedRoutes ? le({ | |
routes: t._loadedRoutes, | |
injector: t._loadedInjector | |
}) : function yU(n, e, t, r) { | |
const i = e.canLoad; | |
return void 0 === i || 0 === i.length ? le(!0) : le(i.map(s => { | |
const a = Xo(s, n); | |
return pi(function iU(n) { | |
return n && Fa(n.canLoad) | |
}(a) ? a.canLoad(e, t) : n.runInContext( () => a(e, t))) | |
} | |
)).pipe(Jo(), $w()) | |
}(e, t, r).pipe(Lt(i => i ? this.configLoader.loadChildren(e, t).pipe(Qt(o => { | |
t._loadedRoutes = o.routes, | |
t._loadedInjector = o.injector | |
} | |
)) : function DU(n) { | |
return ba(Vw(iu, 3)) | |
}())) : le({ | |
routes: [], | |
injector: e | |
}) | |
} | |
lineralizeSegments(e, t) { | |
let r = [] | |
, i = t.root; | |
for (; ; ) { | |
if (r = r.concat(i.segments), | |
0 === i.numberOfChildren) | |
return le(r); | |
if (i.numberOfChildren > 1 || !i.children[De]) | |
return ba(new U(4e3,iu)); | |
i = i.children[De] | |
} | |
} | |
applyRedirectCommands(e, t, r) { | |
return this.applyRedirectCreateUrlTree(t, this.urlSerializer.parse(t), e, r) | |
} | |
applyRedirectCreateUrlTree(e, t, r, i) { | |
const o = this.createSegmentGroup(e, t.root, r, i); | |
return new Gi(o,this.createQueryParams(t.queryParams, this.urlTree.queryParams),t.fragment) | |
} | |
createQueryParams(e, t) { | |
const r = {}; | |
return Bt(e, (i, o) => { | |
if ("string" == typeof i && i.startsWith(":")) { | |
const a = i.substring(1); | |
r[o] = t[a] | |
} else | |
r[o] = i | |
} | |
), | |
r | |
} | |
createSegmentGroup(e, t, r, i) { | |
const o = this.createSegments(e, t.segments, r, i); | |
let s = {}; | |
return Bt(t.children, (a, l) => { | |
s[l] = this.createSegmentGroup(e, a, r, i) | |
} | |
), | |
new Ie(o,s) | |
} | |
createSegments(e, t, r, i) { | |
return t.map(o => o.path.startsWith(":") ? this.findPosParam(e, o, i) : this.findOrReturn(o, r)) | |
} | |
findPosParam(e, t, r) { | |
const i = r[t.path.substring(1)]; | |
if (!i) | |
throw new U(4001,iu); | |
return i | |
} | |
findOrReturn(e, t) { | |
let r = 0; | |
for (const i of t) { | |
if (i.path === e.path) | |
return t.splice(r), | |
i; | |
r++ | |
} | |
return e | |
} | |
} | |
class SU { | |
} | |
class FU { | |
constructor(e, t, r, i, o, s, a, l) { | |
this.injector = e, | |
this.rootComponentType = t, | |
this.config = r, | |
this.urlTree = i, | |
this.url = o, | |
this.paramsInheritanceStrategy = s, | |
this.relativeLinkResolution = a, | |
this.urlSerializer = l | |
} | |
recognize() { | |
const e = nu(this.urlTree.root, [], [], this.config.filter(t => void 0 === t.redirectTo), this.relativeLinkResolution).segmentGroup; | |
return this.processSegmentGroup(this.injector, this.config, e, De).pipe(Fe(t => { | |
if (null === t) | |
return null; | |
const r = new Xc([],Object.freeze({}),Object.freeze(Object.assign({}, this.urlTree.queryParams)),this.urlTree.fragment,{},De,this.rootComponentType,null,this.urlTree.root,-1,{}) | |
, i = new Hr(r,t) | |
, o = new Nw(this.url,i); | |
return this.inheritParamsAndData(o._root), | |
o | |
} | |
)) | |
} | |
inheritParamsAndData(e) { | |
const t = e.value | |
, r = Ow(t, this.paramsInheritanceStrategy); | |
t.params = Object.freeze(r.params), | |
t.data = Object.freeze(r.data), | |
e.children.forEach(i => this.inheritParamsAndData(i)) | |
} | |
processSegmentGroup(e, t, r, i) { | |
return 0 === r.segments.length && r.hasChildren() ? this.processChildren(e, t, r) : this.processSegment(e, t, r, r.segments, i) | |
} | |
processChildren(e, t, r) { | |
return wt(Object.keys(r.children)).pipe(Wi(i => { | |
const o = r.children[i] | |
, s = Hw(t, i); | |
return this.processSegmentGroup(e, s, o, i) | |
} | |
), cw( (i, o) => i && o ? (i.push(...o), | |
i) : null), function ZB(n, e=!1) { | |
return bt( (t, r) => { | |
let i = 0; | |
t.subscribe(pt(r, o => { | |
const s = n(o, i++); | |
(s || e) && r.next(o), | |
!s && r.complete() | |
} | |
)) | |
} | |
) | |
}(i => null !== i), $c(null), uw(), Fe(i => { | |
if (null === i) | |
return null; | |
const o = Yw(i); | |
return function PU(n) { | |
n.sort( (e, t) => e.value.outlet === De ? -1 : t.value.outlet === De ? 1 : e.value.outlet.localeCompare(t.value.outlet)) | |
}(o), | |
o | |
} | |
)) | |
} | |
processSegment(e, t, r, i, o) { | |
return wt(t).pipe(Wi(s => { | |
var a; | |
return this.processSegmentAgainstRoute(null !== (a = s._injector) && void 0 !== a ? a : e, s, r, i, o) | |
} | |
), hi(s => !!s), fi(s => { | |
if (ug(s)) | |
return qw(r, i, o) ? le([]) : le(null); | |
throw s | |
} | |
)) | |
} | |
processSegmentAgainstRoute(e, t, r, i, o) { | |
var s, a; | |
if (t.redirectTo || !Gw(t, r, i, o)) | |
return le(null); | |
let l; | |
if ("**" === t.path) { | |
const c = i.length > 0 ? fw(i).parameters : {} | |
, u = Xw(r) + i.length; | |
l = le({ | |
snapshot: new Xc(i,c,Object.freeze(Object.assign({}, this.urlTree.queryParams)),this.urlTree.fragment,eD(t),zn(t),null !== (a = null !== (s = t.component) && void 0 !== s ? s : t._loadedComponent) && void 0 !== a ? a : null,t,Zw(r),u,tD(t),u), | |
consumedSegments: [], | |
remainingSegments: [] | |
}) | |
} else | |
l = Ww(r, t, i, e).pipe(Fe( ({matched: c, consumedSegments: u, remainingSegments: d, parameters: h}) => { | |
var f, p; | |
if (!c) | |
return null; | |
const _ = Xw(r) + u.length; | |
return { | |
snapshot: new Xc(u,h,Object.freeze(Object.assign({}, this.urlTree.queryParams)),this.urlTree.fragment,eD(t),zn(t),null !== (p = null !== (f = t.component) && void 0 !== f ? f : t._loadedComponent) && void 0 !== p ? p : null,t,Zw(r),_,tD(t),_), | |
consumedSegments: u, | |
remainingSegments: d | |
} | |
} | |
)); | |
return l.pipe(vr(c => { | |
var u, d; | |
if (null === c) | |
return le(null); | |
const {snapshot: h, consumedSegments: f, remainingSegments: p} = c; | |
e = null !== (u = t._injector) && void 0 !== u ? u : e; | |
const _ = null !== (d = t._loadedInjector) && void 0 !== d ? d : e | |
, C = function OU(n) { | |
return n.children ? n.children : n.loadChildren ? n._loadedRoutes : [] | |
}(t) | |
, {segmentGroup: S, slicedSegments: R} = nu(r, f, p, C.filter(O => void 0 === O.redirectTo), this.relativeLinkResolution); | |
if (0 === R.length && S.hasChildren()) | |
return this.processChildren(_, C, S).pipe(Fe(O => null === O ? null : [new Hr(h,O)])); | |
if (0 === C.length && 0 === R.length) | |
return le([new Hr(h,[])]); | |
const v = zn(t) === o; | |
return this.processSegment(_, C, S, R, v ? De : o).pipe(Fe(O => null === O ? null : [new Hr(h,O)])) | |
} | |
)) | |
} | |
} | |
function NU(n) { | |
const e = n.value.routeConfig; | |
return e && "" === e.path && void 0 === e.redirectTo | |
} | |
function Yw(n) { | |
const e = [] | |
, t = new Set; | |
for (const r of n) { | |
if (!NU(r)) { | |
e.push(r); | |
continue | |
} | |
const i = e.find(o => r.value.routeConfig === o.value.routeConfig); | |
void 0 !== i ? (i.children.push(...r.children), | |
t.add(i)) : e.push(r) | |
} | |
for (const r of t) { | |
const i = Yw(r.children); | |
e.push(new Hr(r.value,i)) | |
} | |
return e.filter(r => !t.has(r)) | |
} | |
function Zw(n) { | |
let e = n; | |
for (; e._sourceSegment; ) | |
e = e._sourceSegment; | |
return e | |
} | |
function Xw(n) { | |
var e, t; | |
let r = n | |
, i = null !== (e = r._segmentIndexShift) && void 0 !== e ? e : 0; | |
for (; r._sourceSegment; ) | |
r = r._sourceSegment, | |
i += null !== (t = r._segmentIndexShift) && void 0 !== t ? t : 0; | |
return i - 1 | |
} | |
function eD(n) { | |
return n.data || {} | |
} | |
function tD(n) { | |
return n.resolve || {} | |
} | |
function nD(n) { | |
return "string" == typeof n.title || null === n.title | |
} | |
function fg(n) { | |
return vr(e => { | |
const t = n(e); | |
return t ? wt(t).pipe(Fe( () => e)) : le(e) | |
} | |
) | |
} | |
let rD = ( () => { | |
class n { | |
buildTitle(t) { | |
var r; | |
let i, o = t.root; | |
for (; void 0 !== o; ) | |
i = null !== (r = this.getResolvedTitleForRoute(o)) && void 0 !== r ? r : i, | |
o = o.children.find(s => s.outlet === De); | |
return i | |
} | |
getResolvedTitleForRoute(t) { | |
return t.data[Ca] | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return ot(iD) | |
}, | |
providedIn: "root" | |
}), | |
n | |
} | |
)() | |
, iD = ( () => { | |
class n extends rD { | |
constructor(t) { | |
super(), | |
this.title = t | |
} | |
updateTitle(t) { | |
const r = this.buildTitle(t); | |
void 0 !== r && this.title.setTitle(r) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(AC)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
class zU { | |
} | |
class WU extends class $U { | |
shouldDetach(e) { | |
return !1 | |
} | |
store(e, t) {} | |
shouldAttach(e) { | |
return !1 | |
} | |
retrieve(e) { | |
return null | |
} | |
shouldReuseRoute(e, t) { | |
return e.routeConfig === t.routeConfig | |
} | |
} | |
{ | |
} | |
const au = new ee("",{ | |
providedIn: "root", | |
factory: () => ({}) | |
}) | |
, pg = new ee("ROUTES"); | |
let gg = ( () => { | |
class n { | |
constructor(t, r) { | |
this.injector = t, | |
this.compiler = r, | |
this.componentLoaders = new WeakMap, | |
this.childrenLoaders = new WeakMap | |
} | |
loadComponent(t) { | |
if (this.componentLoaders.get(t)) | |
return this.componentLoaders.get(t); | |
if (t._loadedComponent) | |
return le(t._loadedComponent); | |
this.onLoadStartListener && this.onLoadStartListener(t); | |
const r = pi(t.loadComponent()).pipe(Qt(o => { | |
this.onLoadEndListener && this.onLoadEndListener(t), | |
t._loadedComponent = o | |
} | |
), Wp( () => { | |
this.componentLoaders.delete(t) | |
} | |
)) | |
, i = new aw(r, () => new un).pipe(zp()); | |
return this.componentLoaders.set(t, i), | |
i | |
} | |
loadChildren(t, r) { | |
if (this.childrenLoaders.get(r)) | |
return this.childrenLoaders.get(r); | |
if (r._loadedRoutes) | |
return le({ | |
routes: r._loadedRoutes, | |
injector: r._loadedInjector | |
}); | |
this.onLoadStartListener && this.onLoadStartListener(r); | |
const o = this.loadModuleFactoryOrRoutes(r.loadChildren).pipe(Fe(a => { | |
this.onLoadEndListener && this.onLoadEndListener(r); | |
let l, c, u = !1; | |
Array.isArray(a) ? c = a : (l = a.create(t).injector, | |
c = hw(l.get(pg, [], he.Self | he.Optional))); | |
return { | |
routes: c.map(cg), | |
injector: l | |
} | |
} | |
), Wp( () => { | |
this.childrenLoaders.delete(r) | |
} | |
)) | |
, s = new aw(o, () => new un).pipe(zp()); | |
return this.childrenLoaders.set(r, s), | |
s | |
} | |
loadModuleFactoryOrRoutes(t) { | |
return pi(t()).pipe(Lt(r => r instanceof bb || Array.isArray(r) ? le(r) : wt(this.compiler.compileModuleAsync(r)))) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(On),Q(tf)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
class qU { | |
} | |
class KU { | |
shouldProcessUrl(e) { | |
return !0 | |
} | |
extract(e) { | |
return e | |
} | |
merge(e, t) { | |
return e | |
} | |
} | |
function QU(n) { | |
throw n | |
} | |
function YU(n, e, t) { | |
return e.parse("/") | |
} | |
const ZU = { | |
paths: "exact", | |
fragment: "ignored", | |
matrixParams: "ignored", | |
queryParams: "exact" | |
} | |
, XU = { | |
paths: "subset", | |
fragment: "ignored", | |
matrixParams: "ignored", | |
queryParams: "subset" | |
}; | |
function sD() { | |
var n, e; | |
const t = ot(vw) | |
, r = ot(Ia) | |
, i = ot(_f) | |
, o = ot(On) | |
, s = ot(tf) | |
, a = null !== (n = ot(pg, { | |
optional: !0 | |
})) && void 0 !== n ? n : [] | |
, l = null !== (e = ot(au, { | |
optional: !0 | |
})) && void 0 !== e ? e : {} | |
, c = ot(iD) | |
, u = ot(rD, { | |
optional: !0 | |
}) | |
, d = ot(qU, { | |
optional: !0 | |
}) | |
, h = ot(zU, { | |
optional: !0 | |
}) | |
, f = new Nt(null,t,r,i,o,s,hw(a)); | |
return d && (f.urlHandlingStrategy = d), | |
h && (f.routeReuseStrategy = h), | |
f.titleStrategy = null != u ? u : c, | |
function JU(n, e) { | |
n.errorHandler && (e.errorHandler = n.errorHandler), | |
n.malformedUriErrorHandler && (e.malformedUriErrorHandler = n.malformedUriErrorHandler), | |
n.onSameUrlNavigation && (e.onSameUrlNavigation = n.onSameUrlNavigation), | |
n.paramsInheritanceStrategy && (e.paramsInheritanceStrategy = n.paramsInheritanceStrategy), | |
n.relativeLinkResolution && (e.relativeLinkResolution = n.relativeLinkResolution), | |
n.urlUpdateStrategy && (e.urlUpdateStrategy = n.urlUpdateStrategy), | |
n.canceledNavigationResolution && (e.canceledNavigationResolution = n.canceledNavigationResolution) | |
}(l, f), | |
f | |
} | |
let Nt = ( () => { | |
class n { | |
constructor(t, r, i, o, s, a, l) { | |
this.rootComponentType = t, | |
this.urlSerializer = r, | |
this.rootContexts = i, | |
this.location = o, | |
this.config = l, | |
this.lastSuccessfulNavigation = null, | |
this.currentNavigation = null, | |
this.disposed = !1, | |
this.navigationId = 0, | |
this.currentPageId = 0, | |
this.isNgZoneEnabled = !1, | |
this.events = new un, | |
this.errorHandler = QU, | |
this.malformedUriErrorHandler = YU, | |
this.navigated = !1, | |
this.lastSuccessfulId = -1, | |
this.afterPreactivation = () => le(void 0), | |
this.urlHandlingStrategy = new KU, | |
this.routeReuseStrategy = new WU, | |
this.onSameUrlNavigation = "ignore", | |
this.paramsInheritanceStrategy = "emptyOnly", | |
this.urlUpdateStrategy = "deferred", | |
this.relativeLinkResolution = "corrected", | |
this.canceledNavigationResolution = "replace", | |
this.configLoader = s.get(gg), | |
this.configLoader.onLoadEndListener = h => this.triggerEvent(new O3(h)), | |
this.configLoader.onLoadStartListener = h => this.triggerEvent(new P3(h)), | |
this.ngModule = s.get(ki), | |
this.console = s.get(lP); | |
const d = s.get(nt); | |
this.isNgZoneEnabled = d instanceof nt && nt.isInAngularZone(), | |
this.resetConfig(l), | |
this.currentUrlTree = function n3() { | |
return new Gi(new Ie([],{}),{},null) | |
}(), | |
this.rawUrlTree = this.currentUrlTree, | |
this.browserUrlTree = this.currentUrlTree, | |
this.routerState = Pw(this.currentUrlTree, this.rootComponentType), | |
this.transitions = new Hn({ | |
id: 0, | |
targetPageId: 0, | |
currentUrlTree: this.currentUrlTree, | |
currentRawUrl: this.currentUrlTree, | |
extractedUrl: this.urlHandlingStrategy.extract(this.currentUrlTree), | |
urlAfterRedirects: this.urlHandlingStrategy.extract(this.currentUrlTree), | |
rawUrl: this.currentUrlTree, | |
extras: {}, | |
resolve: null, | |
reject: null, | |
promise: Promise.resolve(!0), | |
source: "imperative", | |
restoredState: null, | |
currentSnapshot: this.routerState.snapshot, | |
targetSnapshot: null, | |
currentRouterState: this.routerState, | |
targetRouterState: null, | |
guards: { | |
canActivateChecks: [], | |
canDeactivateChecks: [] | |
}, | |
guardsResult: null | |
}), | |
this.navigations = this.setupNavigations(this.transitions), | |
this.processNavigations() | |
} | |
get browserPageId() { | |
var t; | |
return null === (t = this.location.getState()) || void 0 === t ? void 0 : t.\u0275routerPageId | |
} | |
setupNavigations(t) { | |
const r = this.events; | |
return t.pipe(Ur(i => 0 !== i.id), Fe(i => Object.assign(Object.assign({}, i), { | |
extractedUrl: this.urlHandlingStrategy.extract(i.rawUrl) | |
})), vr(i => { | |
let o = !1 | |
, s = !1; | |
return le(i).pipe(Qt(a => { | |
this.currentNavigation = { | |
id: a.id, | |
initialUrl: a.rawUrl, | |
extractedUrl: a.extractedUrl, | |
trigger: a.source, | |
extras: a.extras, | |
previousNavigation: this.lastSuccessfulNavigation ? Object.assign(Object.assign({}, this.lastSuccessfulNavigation), { | |
previousNavigation: null | |
}) : null | |
} | |
} | |
), vr(a => { | |
const l = this.browserUrlTree.toString() | |
, c = !this.navigated || a.extractedUrl.toString() !== l || l !== this.currentUrlTree.toString(); | |
if (("reload" === this.onSameUrlNavigation || c) && this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl)) | |
return aD(a.source) && (this.browserUrlTree = a.extractedUrl), | |
le(a).pipe(vr(d => { | |
const h = this.transitions.getValue(); | |
return r.next(new Jp(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)), | |
h !== this.transitions.getValue() ? Tr : Promise.resolve(d) | |
} | |
), function IU(n, e, t, r) { | |
return vr(i => function MU(n, e, t, r, i) { | |
return new AU(n,e,t,r,i).apply() | |
}(n, e, t, i.extractedUrl, r).pipe(Fe(o => Object.assign(Object.assign({}, i), { | |
urlAfterRedirects: o | |
})))) | |
}(this.ngModule.injector, this.configLoader, this.urlSerializer, this.config), Qt(d => { | |
this.currentNavigation = Object.assign(Object.assign({}, this.currentNavigation), { | |
finalUrl: d.urlAfterRedirects | |
}), | |
i.urlAfterRedirects = d.urlAfterRedirects | |
} | |
), function LU(n, e, t, r, i, o) { | |
return Lt(s => function RU(n, e, t, r, i, o, s="emptyOnly", a="legacy") { | |
return new FU(n,e,t,r,i,s,a,o).recognize().pipe(vr(l => null === l ? function xU(n) { | |
return new vt(e => e.error(n)) | |
}(new SU) : le(l))) | |
}(n, e, t, s.urlAfterRedirects, r.serialize(s.urlAfterRedirects), r, i, o).pipe(Fe(a => Object.assign(Object.assign({}, s), { | |
targetSnapshot: a | |
})))) | |
}(this.ngModule.injector, this.rootComponentType, this.config, this.urlSerializer, this.paramsInheritanceStrategy, this.relativeLinkResolution), Qt(d => { | |
if (i.targetSnapshot = d.targetSnapshot, | |
"eager" === this.urlUpdateStrategy) { | |
if (!d.extras.skipLocationChange) { | |
const f = this.urlHandlingStrategy.merge(d.urlAfterRedirects, d.rawUrl); | |
this.setBrowserUrl(f, d) | |
} | |
this.browserUrlTree = d.urlAfterRedirects | |
} | |
const h = new I3(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot); | |
r.next(h) | |
} | |
)); | |
if (c && this.rawUrlTree && this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)) { | |
const {id: h, extractedUrl: f, source: p, restoredState: _, extras: C} = a | |
, S = new Jp(h,this.serializeUrl(f),p,_); | |
r.next(S); | |
const R = Pw(f, this.rootComponentType).snapshot; | |
return le(i = Object.assign(Object.assign({}, a), { | |
targetSnapshot: R, | |
urlAfterRedirects: f, | |
extras: Object.assign(Object.assign({}, C), { | |
skipLocationChange: !1, | |
replaceUrl: !1 | |
}) | |
})) | |
} | |
return this.rawUrlTree = a.rawUrl, | |
a.resolve(null), | |
Tr | |
} | |
), Qt(a => { | |
const l = new S3(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot); | |
this.triggerEvent(l) | |
} | |
), Fe(a => i = Object.assign(Object.assign({}, a), { | |
guards: J3(a.targetSnapshot, a.currentSnapshot, this.rootContexts) | |
})), function uU(n, e) { | |
return Lt(t => { | |
const {targetSnapshot: r, currentSnapshot: i, guards: {canActivateChecks: o, canDeactivateChecks: s}} = t; | |
return 0 === s.length && 0 === o.length ? le(Object.assign(Object.assign({}, t), { | |
guardsResult: !0 | |
})) : function dU(n, e, t, r) { | |
return wt(n).pipe(Lt(i => function _U(n, e, t, r, i) { | |
const o = e && e.routeConfig ? e.routeConfig.canDeactivate : null; | |
return o && 0 !== o.length ? le(o.map(a => { | |
var l; | |
const c = null !== (l = Sa(e)) && void 0 !== l ? l : i | |
, u = Xo(a, c); | |
return pi(function aU(n) { | |
return n && Fa(n.canDeactivate) | |
}(u) ? u.canDeactivate(n, e, t, r) : c.runInContext( () => u(n, e, t, r))).pipe(hi()) | |
} | |
)).pipe(Jo()) : le(!0) | |
}(i.component, i.route, t, e, r)), hi(i => !0 !== i, !0)) | |
}(s, r, i, n).pipe(Lt(a => a && function rU(n) { | |
return "boolean" == typeof n | |
}(a) ? function hU(n, e, t, r) { | |
return wt(e).pipe(Wi(i => Uc(function pU(n, e) { | |
return null !== n && e && e(new N3(n)), | |
le(!0) | |
}(i.route.parent, r), function fU(n, e) { | |
return null !== n && e && e(new L3(n)), | |
le(!0) | |
}(i.route, r), function mU(n, e, t) { | |
const r = e[e.length - 1] | |
, o = e.slice(0, e.length - 1).reverse().map(s => function eU(n) { | |
const e = n.routeConfig ? n.routeConfig.canActivateChild : null; | |
return e && 0 !== e.length ? { | |
node: n, | |
guards: e | |
} : null | |
}(s)).filter(s => null !== s).map(s => sw( () => le(s.guards.map(l => { | |
var c; | |
const u = null !== (c = Sa(s.node)) && void 0 !== c ? c : t | |
, d = Xo(l, u); | |
return pi(function sU(n) { | |
return n && Fa(n.canActivateChild) | |
}(d) ? d.canActivateChild(r, n) : u.runInContext( () => d(r, n))).pipe(hi()) | |
} | |
)).pipe(Jo()))); | |
return le(o).pipe(Jo()) | |
}(n, i.path, t), function gU(n, e, t) { | |
const r = e.routeConfig ? e.routeConfig.canActivate : null; | |
if (!r || 0 === r.length) | |
return le(!0); | |
const i = r.map(o => sw( () => { | |
var s; | |
const a = null !== (s = Sa(e)) && void 0 !== s ? s : t | |
, l = Xo(o, a); | |
return pi(function oU(n) { | |
return n && Fa(n.canActivate) | |
}(l) ? l.canActivate(e, n) : a.runInContext( () => l(e, n))).pipe(hi()) | |
} | |
)); | |
return le(i).pipe(Jo()) | |
}(n, i.route, t))), hi(i => !0 !== i, !0)) | |
}(r, o, n, e) : le(a)), Fe(a => Object.assign(Object.assign({}, t), { | |
guardsResult: a | |
}))) | |
} | |
) | |
}(this.ngModule.injector, a => this.triggerEvent(a)), Qt(a => { | |
if (i.guardsResult = a.guardsResult, | |
Ki(a.guardsResult)) | |
throw Lw(0, a.guardsResult); | |
const l = new x3(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult); | |
this.triggerEvent(l) | |
} | |
), Ur(a => !!a.guardsResult || (this.restoreHistory(a), | |
this.cancelNavigationTransition(a, "", 3), | |
!1)), fg(a => { | |
if (a.guards.canActivateChecks.length) | |
return le(a).pipe(Qt(l => { | |
const c = new R3(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot); | |
this.triggerEvent(c) | |
} | |
), vr(l => { | |
let c = !1; | |
return le(l).pipe(function VU(n, e) { | |
return Lt(t => { | |
const {targetSnapshot: r, guards: {canActivateChecks: i}} = t; | |
if (!i.length) | |
return le(t); | |
let o = 0; | |
return wt(i).pipe(Wi(s => function BU(n, e, t, r) { | |
const i = n.routeConfig | |
, o = n._resolve; | |
return void 0 !== (null == i ? void 0 : i.title) && !nD(i) && (o[Ca] = i.title), | |
function UU(n, e, t, r) { | |
const i = function jU(n) { | |
return [...Object.keys(n), ...Object.getOwnPropertySymbols(n)] | |
}(n); | |
if (0 === i.length) | |
return le({}); | |
const o = {}; | |
return wt(i).pipe(Lt(s => function HU(n, e, t, r) { | |
var i; | |
const o = null !== (i = Sa(e)) && void 0 !== i ? i : r | |
, s = Xo(n, o); | |
return pi(s.resolve ? s.resolve(e, t) : o.runInContext( () => s(e, t))) | |
}(n[s], e, t, r).pipe(hi(), Qt(a => { | |
o[s] = a | |
} | |
))), $p(1), function XB(n) { | |
return Fe( () => n) | |
}(o), fi(s => ug(s) ? Tr : ba(s))) | |
}(o, n, e, r).pipe(Fe(s => (n._resolvedData = s, | |
n.data = Ow(n, t).resolve, | |
i && nD(i) && (n.data[Ca] = i.title), | |
null))) | |
}(s.route, r, n, e)), Qt( () => o++), $p(1), Lt(s => o === i.length ? le(t) : Tr)) | |
} | |
) | |
}(this.paramsInheritanceStrategy, this.ngModule.injector), Qt({ | |
next: () => c = !0, | |
complete: () => { | |
c || (this.restoreHistory(l), | |
this.cancelNavigationTransition(l, "", 2)) | |
} | |
})) | |
} | |
), Qt(l => { | |
const c = new F3(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot); | |
this.triggerEvent(c) | |
} | |
)) | |
} | |
), fg(a => { | |
const l = c => { | |
var u; | |
const d = []; | |
(null === (u = c.routeConfig) || void 0 === u ? void 0 : u.loadComponent) && !c.routeConfig._loadedComponent && d.push(this.configLoader.loadComponent(c.routeConfig).pipe(Qt(h => { | |
c.component = h | |
} | |
), Fe( () => {} | |
))); | |
for (const h of c.children) | |
d.push(...l(h)); | |
return d | |
} | |
; | |
return Up(l(a.targetSnapshot.root)).pipe($c(), Wo(1)) | |
} | |
), fg( () => this.afterPreactivation()), Fe(a => { | |
const l = function H3(n, e, t) { | |
const r = Aa(n, e._root, t ? t._root : void 0); | |
return new Fw(r,e) | |
}(this.routeReuseStrategy, a.targetSnapshot, a.currentRouterState); | |
return i = Object.assign(Object.assign({}, a), { | |
targetRouterState: l | |
}) | |
} | |
), Qt(a => { | |
this.currentUrlTree = a.urlAfterRedirects, | |
this.rawUrlTree = this.urlHandlingStrategy.merge(a.urlAfterRedirects, a.rawUrl), | |
this.routerState = a.targetRouterState, | |
"deferred" === this.urlUpdateStrategy && (a.extras.skipLocationChange || this.setBrowserUrl(this.rawUrlTree, a), | |
this.browserUrlTree = a.urlAfterRedirects) | |
} | |
), ( (n, e, t) => Fe(r => (new X3(e,r.targetRouterState,r.currentRouterState,t).activate(n), | |
r)))(this.rootContexts, this.routeReuseStrategy, a => this.triggerEvent(a)), Qt({ | |
next() { | |
o = !0 | |
}, | |
complete() { | |
o = !0 | |
} | |
}), Wp( () => { | |
var a; | |
o || s || this.cancelNavigationTransition(i, "", 1), | |
(null === (a = this.currentNavigation) || void 0 === a ? void 0 : a.id) === i.id && (this.currentNavigation = null) | |
} | |
), fi(a => { | |
var l; | |
if (s = !0, | |
Uw(a)) { | |
Bw(a) || (this.navigated = !0, | |
this.restoreHistory(i, !0)); | |
const c = new Zc(i.id,this.serializeUrl(i.extractedUrl),a.message,a.cancellationCode); | |
if (r.next(c), | |
Bw(a)) { | |
const u = this.urlHandlingStrategy.merge(a.url, this.rawUrlTree) | |
, d = { | |
skipLocationChange: i.extras.skipLocationChange, | |
replaceUrl: "eager" === this.urlUpdateStrategy || aD(i.source) | |
}; | |
this.scheduleNavigation(u, "imperative", null, d, { | |
resolve: i.resolve, | |
reject: i.reject, | |
promise: i.promise | |
}) | |
} else | |
i.resolve(!1) | |
} else { | |
this.restoreHistory(i, !0); | |
const c = new Sw(i.id,this.serializeUrl(i.extractedUrl),a,null !== (l = i.targetSnapshot) && void 0 !== l ? l : void 0); | |
r.next(c); | |
try { | |
i.resolve(this.errorHandler(a)) | |
} catch (u) { | |
i.reject(u) | |
} | |
} | |
return Tr | |
} | |
)) | |
} | |
)) | |
} | |
resetRootComponentType(t) { | |
this.rootComponentType = t, | |
this.routerState.root.component = this.rootComponentType | |
} | |
setTransition(t) { | |
this.transitions.next(Object.assign(Object.assign({}, this.transitions.value), t)) | |
} | |
initialNavigation() { | |
this.setUpLocationChangeListener(), | |
0 === this.navigationId && this.navigateByUrl(this.location.path(!0), { | |
replaceUrl: !0 | |
}) | |
} | |
setUpLocationChangeListener() { | |
this.locationSubscription || (this.locationSubscription = this.location.subscribe(t => { | |
const r = "popstate" === t.type ? "popstate" : "hashchange"; | |
"popstate" === r && setTimeout( () => { | |
var i; | |
const o = { | |
replaceUrl: !0 | |
} | |
, s = null !== (i = t.state) && void 0 !== i && i.navigationId ? t.state : null; | |
if (s) { | |
const l = Object.assign({}, s); | |
delete l.navigationId, | |
delete l.\u0275routerPageId, | |
0 !== Object.keys(l).length && (o.state = l) | |
} | |
const a = this.parseUrl(t.url); | |
this.scheduleNavigation(a, r, s, o) | |
} | |
, 0) | |
} | |
)) | |
} | |
get url() { | |
return this.serializeUrl(this.currentUrlTree) | |
} | |
getCurrentNavigation() { | |
return this.currentNavigation | |
} | |
triggerEvent(t) { | |
this.events.next(t) | |
} | |
resetConfig(t) { | |
this.config = t.map(cg), | |
this.navigated = !1, | |
this.lastSuccessfulId = -1 | |
} | |
ngOnDestroy() { | |
this.dispose() | |
} | |
dispose() { | |
this.transitions.complete(), | |
this.locationSubscription && (this.locationSubscription.unsubscribe(), | |
this.locationSubscription = void 0), | |
this.disposed = !0 | |
} | |
createUrlTree(t, r={}) { | |
const {relativeTo: i, queryParams: o, fragment: s, queryParamsHandling: a, preserveFragment: l} = r | |
, c = i || this.routerState.root | |
, u = l ? this.currentUrlTree.fragment : s; | |
let d = null; | |
switch (a) { | |
case "merge": | |
d = Object.assign(Object.assign({}, this.currentUrlTree.queryParams), o); | |
break; | |
case "preserve": | |
d = this.currentUrlTree.queryParams; | |
break; | |
default: | |
d = o || null | |
} | |
return null !== d && (d = this.removeEmptyProps(d)), | |
T3(c, this.currentUrlTree, t, d, null != u ? u : null) | |
} | |
navigateByUrl(t, r={ | |
skipLocationChange: !1 | |
}) { | |
const i = Ki(t) ? t : this.parseUrl(t) | |
, o = this.urlHandlingStrategy.merge(i, this.rawUrlTree); | |
return this.scheduleNavigation(o, "imperative", null, r) | |
} | |
navigate(t, r={ | |
skipLocationChange: !1 | |
}) { | |
return function ej(n) { | |
for (let e = 0; e < n.length; e++) { | |
if (null == n[e]) | |
throw new U(4008,false) | |
} | |
}(t), | |
this.navigateByUrl(this.createUrlTree(t, r), r) | |
} | |
serializeUrl(t) { | |
return this.urlSerializer.serialize(t) | |
} | |
parseUrl(t) { | |
let r; | |
try { | |
r = this.urlSerializer.parse(t) | |
} catch (i) { | |
r = this.malformedUriErrorHandler(i, this.urlSerializer, t) | |
} | |
return r | |
} | |
isActive(t, r) { | |
let i; | |
if (i = !0 === r ? Object.assign({}, ZU) : !1 === r ? Object.assign({}, XU) : r, | |
Ki(t)) | |
return gw(this.currentUrlTree, t, i); | |
const o = this.parseUrl(t); | |
return gw(this.currentUrlTree, o, i) | |
} | |
removeEmptyProps(t) { | |
return Object.keys(t).reduce( (r, i) => { | |
const o = t[i]; | |
return null != o && (r[i] = o), | |
r | |
} | |
, {}) | |
} | |
processNavigations() { | |
this.navigations.subscribe(t => { | |
var r; | |
this.navigated = !0, | |
this.lastSuccessfulId = t.id, | |
this.currentPageId = t.targetPageId, | |
this.events.next(new Qi(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))), | |
this.lastSuccessfulNavigation = this.currentNavigation, | |
null === (r = this.titleStrategy) || void 0 === r || r.updateTitle(this.routerState.snapshot), | |
t.resolve(!0) | |
} | |
, t => { | |
this.console.warn(`Unhandled Navigation Error: ${t}`) | |
} | |
) | |
} | |
scheduleNavigation(t, r, i, o, s) { | |
var a, l; | |
if (this.disposed) | |
return Promise.resolve(!1); | |
let c, u, d; | |
s ? (c = s.resolve, | |
u = s.reject, | |
d = s.promise) : d = new Promise( (p, _) => { | |
c = p, | |
u = _ | |
} | |
); | |
const h = ++this.navigationId; | |
let f; | |
return "computed" === this.canceledNavigationResolution ? (0 === this.currentPageId && (i = this.location.getState()), | |
f = i && i.\u0275routerPageId ? i.\u0275routerPageId : o.replaceUrl || o.skipLocationChange ? null !== (a = this.browserPageId) && void 0 !== a ? a : 0 : (null !== (l = this.browserPageId) && void 0 !== l ? l : 0) + 1) : f = 0, | |
this.setTransition({ | |
id: h, | |
targetPageId: f, | |
source: r, | |
restoredState: i, | |
currentUrlTree: this.currentUrlTree, | |
currentRawUrl: this.rawUrlTree, | |
rawUrl: t, | |
extras: o, | |
resolve: c, | |
reject: u, | |
promise: d, | |
currentSnapshot: this.routerState.snapshot, | |
currentRouterState: this.routerState | |
}), | |
d.catch(p => Promise.reject(p)) | |
} | |
setBrowserUrl(t, r) { | |
const i = this.urlSerializer.serialize(t) | |
, o = Object.assign(Object.assign({}, r.extras.state), this.generateNgRouterState(r.id, r.targetPageId)); | |
this.location.isCurrentPathEqualTo(i) || r.extras.replaceUrl ? this.location.replaceState(i, "", o) : this.location.go(i, "", o) | |
} | |
restoreHistory(t, r=!1) { | |
var i, o; | |
if ("computed" === this.canceledNavigationResolution) { | |
const s = this.currentPageId - t.targetPageId; | |
"popstate" !== t.source && "eager" !== this.urlUpdateStrategy && this.currentUrlTree !== (null === (i = this.currentNavigation) || void 0 === i ? void 0 : i.finalUrl) || 0 === s ? this.currentUrlTree === (null === (o = this.currentNavigation) || void 0 === o ? void 0 : o.finalUrl) && 0 === s && (this.resetState(t), | |
this.browserUrlTree = t.currentUrlTree, | |
this.resetUrlToCurrentUrlTree()) : this.location.historyGo(s) | |
} else | |
"replace" === this.canceledNavigationResolution && (r && this.resetState(t), | |
this.resetUrlToCurrentUrlTree()) | |
} | |
resetState(t) { | |
this.routerState = t.currentRouterState, | |
this.currentUrlTree = t.currentUrlTree, | |
this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, t.rawUrl) | |
} | |
resetUrlToCurrentUrlTree() { | |
this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree), "", this.generateNgRouterState(this.lastSuccessfulId, this.currentPageId)) | |
} | |
cancelNavigationTransition(t, r, i) { | |
const o = new Zc(t.id,this.serializeUrl(t.extractedUrl),r,i); | |
this.triggerEvent(o), | |
t.resolve(!1) | |
} | |
generateNgRouterState(t, r) { | |
return "computed" === this.canceledNavigationResolution ? { | |
navigationId: t, | |
\u0275routerPageId: r | |
} : { | |
navigationId: t | |
} | |
} | |
} | |
return n.\u0275fac = function(t) { | |
eh() | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: function() { | |
return sD() | |
}, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
function aD(n) { | |
return "imperative" !== n | |
} | |
class lD { | |
} | |
let rj = ( () => { | |
class n { | |
constructor(t, r, i, o, s) { | |
this.router = t, | |
this.injector = i, | |
this.preloadingStrategy = o, | |
this.loader = s | |
} | |
setUpPreloading() { | |
this.subscription = this.router.events.pipe(Ur(t => t instanceof Qi), Wi( () => this.preload())).subscribe( () => {} | |
) | |
} | |
preload() { | |
return this.processRoutes(this.injector, this.router.config) | |
} | |
ngOnDestroy() { | |
this.subscription && this.subscription.unsubscribe() | |
} | |
processRoutes(t, r) { | |
var i, o, s; | |
const a = []; | |
for (const l of r) { | |
l.providers && !l._injector && (l._injector = Bl(l.providers, t, `Route: ${l.path}`)); | |
const c = null !== (i = l._injector) && void 0 !== i ? i : t | |
, u = null !== (o = l._loadedInjector) && void 0 !== o ? o : c; | |
l.loadChildren && !l._loadedRoutes && void 0 === l.canLoad || l.loadComponent && !l._loadedComponent ? a.push(this.preloadConfig(c, l)) : (l.children || l._loadedRoutes) && a.push(this.processRoutes(u, null !== (s = l.children) && void 0 !== s ? s : l._loadedRoutes)) | |
} | |
return wt(a).pipe(Zi()) | |
} | |
preloadConfig(t, r) { | |
return this.preloadingStrategy.preload(r, () => { | |
let i; | |
i = r.loadChildren && void 0 === r.canLoad ? this.loader.loadChildren(t, r) : le(null); | |
const o = i.pipe(Lt(s => { | |
var a; | |
return null === s ? le(void 0) : (r._loadedRoutes = s.routes, | |
r._loadedInjector = s.injector, | |
this.processRoutes(null !== (a = s.injector) && void 0 !== a ? a : t, s.routes)) | |
} | |
)); | |
return r.loadComponent && !r._loadedComponent ? wt([o, this.loader.loadComponent(r)]).pipe(Zi()) : o | |
} | |
) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(Nt),Q(tf),Q(ti),Q(lD),Q(gg)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac, | |
providedIn: "root" | |
}), | |
n | |
} | |
)(); | |
const yg = new ee(""); | |
let cD = ( () => { | |
class n { | |
constructor(t, r, i={}) { | |
this.router = t, | |
this.viewportScroller = r, | |
this.options = i, | |
this.lastId = 0, | |
this.lastSource = "imperative", | |
this.restoredId = 0, | |
this.store = {}, | |
i.scrollPositionRestoration = i.scrollPositionRestoration || "disabled", | |
i.anchorScrolling = i.anchorScrolling || "disabled" | |
} | |
init() { | |
"disabled" !== this.options.scrollPositionRestoration && this.viewportScroller.setHistoryScrollRestoration("manual"), | |
this.routerEventsSubscription = this.createScrollEvents(), | |
this.scrollEventsSubscription = this.consumeScrollEvents() | |
} | |
createScrollEvents() { | |
return this.router.events.subscribe(t => { | |
t instanceof Jp ? (this.store[this.lastId] = this.viewportScroller.getScrollPosition(), | |
this.lastSource = t.navigationTrigger, | |
this.restoredId = t.restoredState ? t.restoredState.navigationId : 0) : t instanceof Qi && (this.lastId = t.id, | |
this.scheduleScrollEvent(t, this.router.parseUrl(t.urlAfterRedirects).fragment)) | |
} | |
) | |
} | |
consumeScrollEvents() { | |
return this.router.events.subscribe(t => { | |
t instanceof xw && (t.position ? "top" === this.options.scrollPositionRestoration ? this.viewportScroller.scrollToPosition([0, 0]) : "enabled" === this.options.scrollPositionRestoration && this.viewportScroller.scrollToPosition(t.position) : t.anchor && "enabled" === this.options.anchorScrolling ? this.viewportScroller.scrollToAnchor(t.anchor) : "disabled" !== this.options.scrollPositionRestoration && this.viewportScroller.scrollToPosition([0, 0])) | |
} | |
) | |
} | |
scheduleScrollEvent(t, r) { | |
this.router.triggerEvent(new xw(t,"popstate" === this.lastSource ? this.store[this.restoredId] : null,r)) | |
} | |
ngOnDestroy() { | |
this.routerEventsSubscription && this.routerEventsSubscription.unsubscribe(), | |
this.scrollEventsSubscription && this.scrollEventsSubscription.unsubscribe() | |
} | |
} | |
return n.\u0275fac = function(t) { | |
eh() | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
function es(n, e) { | |
return { | |
\u0275kind: n, | |
\u0275providers: e | |
} | |
} | |
function vg(n) { | |
return [{ | |
provide: pg, | |
multi: !0, | |
useValue: n | |
}] | |
} | |
function dD() { | |
const n = ot(On); | |
return e => { | |
var t, r; | |
const i = n.get(Xs); | |
if (e !== i.components[0]) | |
return; | |
const o = n.get(Nt) | |
, s = n.get(hD); | |
1 === n.get(bg) && o.initialNavigation(), | |
null === (t = n.get(fD, null, he.Optional)) || void 0 === t || t.setUpPreloading(), | |
null === (r = n.get(yg, null, he.Optional)) || void 0 === r || r.init(), | |
o.resetRootComponentType(i.componentTypes[0]), | |
s.closed || (s.next(), | |
s.unsubscribe()) | |
} | |
} | |
const hD = new ee("",{ | |
factory: () => new un | |
}) | |
, bg = new ee("",{ | |
providedIn: "root", | |
factory: () => 1 | |
}); | |
const fD = new ee(""); | |
function aj(n) { | |
return es(0, [{ | |
provide: fD, | |
useExisting: rj | |
}, { | |
provide: lD, | |
useExisting: n | |
}]) | |
} | |
const pD = new ee("ROUTER_FORROOT_GUARD") | |
, lj = [_f, { | |
provide: vw, | |
useClass: qp | |
}, { | |
provide: Nt, | |
useFactory: sD | |
}, Ia, { | |
provide: gi, | |
useFactory: function uD(n) { | |
return n.routerState.root | |
}, | |
deps: [Nt] | |
}, gg]; | |
function cj() { | |
return new m0("Router",Nt) | |
} | |
let gD = ( () => { | |
class n { | |
constructor(t) {} | |
static forRoot(t, r) { | |
return { | |
ngModule: n, | |
providers: [lj, [], vg(t), { | |
provide: pD, | |
useFactory: fj, | |
deps: [[Nt, new Es, new ws]] | |
}, { | |
provide: au, | |
useValue: r || {} | |
}, null != r && r.useHash ? { | |
provide: ii, | |
useClass: YP | |
} : { | |
provide: ii, | |
useClass: j0 | |
}, { | |
provide: yg, | |
useFactory: () => { | |
const n = ot(Nt) | |
, e = ot(gN) | |
, t = ot(au); | |
return t.scrollOffset && e.setOffset(t.scrollOffset), | |
new cD(n,e,t) | |
} | |
}, null != r && r.preloadingStrategy ? aj(r.preloadingStrategy).\u0275providers : [], { | |
provide: m0, | |
multi: !0, | |
useFactory: cj | |
}, null != r && r.initialNavigation ? pj(r) : [], [{ | |
provide: mD, | |
useFactory: dD | |
}, { | |
provide: c0, | |
multi: !0, | |
useExisting: mD | |
}]] | |
} | |
} | |
static forChild(t) { | |
return { | |
ngModule: n, | |
providers: [vg(t)] | |
} | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(pD, 8)) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [ag] | |
}), | |
n | |
} | |
)(); | |
function fj(n) { | |
return "guarded" | |
} | |
function pj(n) { | |
return ["disabled" === n.initialNavigation ? es(3, [{ | |
provide: zl, | |
multi: !0, | |
useFactory: () => { | |
const e = ot(Nt); | |
return () => { | |
e.setUpLocationChangeListener() | |
} | |
} | |
}, { | |
provide: bg, | |
useValue: 2 | |
}]).\u0275providers : [], "enabledBlocking" === n.initialNavigation ? es(2, [{ | |
provide: bg, | |
useValue: 0 | |
}, { | |
provide: zl, | |
multi: !0, | |
deps: [On], | |
useFactory: e => { | |
const t = e.get(KP, Promise.resolve()); | |
let r = !1; | |
return () => t.then( () => new Promise(o => { | |
const s = e.get(Nt) | |
, a = e.get(hD); | |
(function i(o) { | |
e.get(Nt).events.pipe(Ur(a => a instanceof Qi || a instanceof Zc || a instanceof Sw), Fe(a => a instanceof Qi || a instanceof Zc && (0 === a.code || 1 === a.code) && null), Ur(a => null !== a), Wo(1)).subscribe( () => { | |
o() | |
} | |
) | |
} | |
)( () => { | |
o(!0), | |
r = !0 | |
} | |
), | |
s.afterPreactivation = () => (o(!0), | |
r || a.closed ? le(void 0) : a), | |
s.initialNavigation() | |
} | |
)) | |
} | |
}]).\u0275providers : []] | |
} | |
const mD = new ee("") | |
, mj = []; | |
let _j = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({ | |
imports: [gD.forRoot(mj), gD] | |
}), | |
n | |
} | |
)() | |
, yj = ( () => { | |
class n { | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275mod = gt({ | |
type: n | |
}), | |
n.\u0275inj = lt({}), | |
n | |
} | |
)(); | |
var dt, $n, n, T, kt, ts, pe, et; | |
!function(n) { | |
n.degreeToRadian = function e(h) { | |
return h * Math.PI / 180 | |
} | |
, | |
n.radianToDegree = function t(h) { | |
return 180 * h / Math.PI | |
} | |
, | |
n.isPowerOf2 = function r(h) { | |
return 0 == (h & h - 1) | |
} | |
, | |
n.EPSILON = 1e-8, | |
n.equals = function i(h, f, p) { | |
return p = void 0 !== p ? p : n.EPSILON, | |
Math.abs(h - f) <= p * Math.max(1, Math.abs(h), Math.abs(f)) | |
} | |
, | |
n.RANDOM = Math.random, | |
n.lerp = function o(h, f, p) { | |
return h + p * (f - h) | |
} | |
, | |
n.bezierControlPointCoefficients = new Map([["linear", [0, 1]], ["ease", [.25, .25]], ["ease-in", [.42, 0]], ["ease-out", [0, .58]], ["ease-in-out", [.42, .58]], ["sin", [1 / 3, 1]], ["cos", [0, 2 / 3]]]), | |
n.bezp = function s(h, f, p, _) { | |
const C = n.bezierControlPointCoefficients.get(void 0 === _ ? "ease-in-out" : _); | |
return Math.pow(1 - p, 3) * h + 3 * Math.pow(1 - p, 2) * p * (h + (f - h) * C[0]) + 3 * (1 - p) * Math.pow(p, 2) * (h + (f - h) * C[1]) + Math.pow(p, 3) * f | |
} | |
, | |
n.carp = function a(h, f, p, _, C) { | |
const R = p[1] | |
, v = (1 - _) / 2; | |
return p[0] * (-v * Math.pow(C, 3) + 2 * v * Math.pow(C, 2) - v * C) + h * ((2 - v) * Math.pow(C, 3) + (v - 3) * Math.pow(C, 2) + 1) + f * ((v - 2) * Math.pow(C, 3) + (3 - 2 * v) * Math.pow(C, 2) + v * C) + R * (v * Math.pow(C, 3) - v * Math.pow(C, 2)) | |
} | |
; | |
let l = []; | |
for (let h = 0; h < 256; h++) | |
l[h] = (h < 16 ? "0" : "") + h.toString(16); | |
let c = 1234567; | |
n.seedRandom = function u(h) { | |
return null !== h && (c = h), | |
c = (9301 * c + 49297) % 233280, | |
c / 233280 | |
} | |
, | |
n.generateUUID = function d() { | |
const h = 4294967295 * Math.random() | 0 | |
, f = 4294967295 * Math.random() | 0 | |
, p = 4294967295 * Math.random() | 0 | |
, _ = 4294967295 * Math.random() | 0; | |
return (l[255 & h] + l[h >> 8 & 255] + l[h >> 16 & 255] + l[h >> 24 & 255] + "-" + l[255 & f] + l[f >> 8 & 255] + "-" + l[f >> 16 & 15 | 64] + l[f >> 24 & 255] + "-" + l[63 & p | 128] + l[p >> 8 & 255] + "-" + l[p >> 16 & 255] + l[p >> 24 & 255] + l[255 & _] + l[_ >> 8 & 255] + l[_ >> 16 & 255] + l[_ >> 24 & 255]).toUpperCase() | |
} | |
}(dt || (dt = {})), | |
(n = $n || ($n = {})).create = function e() { | |
return [0, 0] | |
} | |
, | |
n.fromValues = function t(a, l) { | |
return [a, l] | |
} | |
, | |
n.fromTypedArray = function r(a) { | |
return [a[0], a[1]] | |
} | |
, | |
n.fromTypedArrayWithIndices = function i(a, l, c) { | |
return [a[l * (c = c || 2)], a[l * c + 1]] | |
} | |
, | |
n.scale = function o(a, l) { | |
return [a[0] * l, a[1] * l] | |
} | |
, | |
n.add = function s(a, l) { | |
return [a[0] + l[0], a[1] + l[1]] | |
} | |
, | |
function(n) { | |
function v(y, E) { | |
return [y[0] + E[0], y[1] + E[1], y[2] + E[2]] | |
} | |
function F(y, E, b) { | |
const w = y[0] | |
, I = y[1] | |
, P = y[2]; | |
return [w + b * (E[0] - w), I + b * (E[1] - I), P + b * (E[2] - P)] | |
} | |
n.create = function e() { | |
return [0, 0, 0] | |
} | |
, | |
n.fromValues = function t(y, E, b) { | |
return [y, E, b] | |
} | |
, | |
n.fromTypedArray = function r(y) { | |
return [y[0], y[1], y[2]] | |
} | |
, | |
n.fromTypedArrayWithIndices = function i(y, E, b) { | |
return [y[E * (b = b || 3)], y[E * b + 1], y[E * b + 2]] | |
} | |
, | |
n.fromVec4 = function o(y) { | |
return [y[0], y[1], y[2]] | |
} | |
, | |
n.clone = function s(y) { | |
return [y[0], y[1], y[2]] | |
} | |
, | |
n.negate = function a(y) { | |
return [-y[0], -y[1], -y[2]] | |
} | |
, | |
n.inverse = function l(y) { | |
return [1 / y[0], 1 / y[1], 1 / y[2]] | |
} | |
, | |
n.length = function c(y) { | |
return Math.hypot(y[0], y[1], y[2]) | |
} | |
, | |
n.squaredLength = function u(y) { | |
const E = y[0] | |
, b = y[1] | |
, w = y[2]; | |
return E * E + b * b + w * w | |
} | |
, | |
n.distance = function d(y, E) { | |
return Math.hypot(E[0] - y[0], E[1] - y[1], E[2] - y[2]) | |
} | |
, | |
n.squaredDistance = function h(y, E) { | |
const b = E[0] - y[0] | |
, w = E[1] - y[1] | |
, I = E[2] - y[2]; | |
return b * b + w * w + I * I | |
} | |
, | |
n.normalize = function f(y) { | |
let E = [0, 0, 0]; | |
const b = Math.hypot(y[0], y[1], y[2]); | |
return b > 1e-5 && (E[0] = y[0] / b, | |
E[1] = y[1] / b, | |
E[2] = y[2] / b), | |
E | |
} | |
, | |
n.scale = function p(y, E) { | |
return [y[0] * E, y[1] * E, y[2] * E] | |
} | |
, | |
n.exactEquals = function _(y, E) { | |
return y[0] === E[0] && y[1] === E[1] && y[2] === E[2] | |
} | |
, | |
n.equals = function C(y, E, b) { | |
b = void 0 !== b ? b : dt.EPSILON; | |
const w = y[0] | |
, I = y[1] | |
, P = y[2] | |
, L = E[0] | |
, G = E[1] | |
, m = E[2]; | |
return Math.abs(w - L) <= b * Math.max(1, Math.abs(w), Math.abs(L)) && Math.abs(I - G) <= b * Math.max(1, Math.abs(I), Math.abs(G)) && Math.abs(P - m) <= b * Math.max(1, Math.abs(P), Math.abs(m)) | |
} | |
, | |
n.min = function S(y, E) { | |
return [Math.min(y[0], E[0]), Math.min(y[1], E[1]), Math.min(y[2], E[2])] | |
} | |
, | |
n.max = function R(y, E) { | |
return [Math.max(y[0], E[0]), Math.max(y[1], E[1]), Math.max(y[2], E[2])] | |
} | |
, | |
n.add = v, | |
n.subtract = function O(y, E) { | |
return [y[0] - E[0], y[1] - E[1], y[2] - E[2]] | |
} | |
, | |
n.dot = function M(y, E) { | |
return y[0] * E[0] + y[1] * E[1] + y[2] * E[2] | |
} | |
, | |
n.cross = function N(y, E) { | |
const b = y[0] | |
, w = y[1] | |
, I = y[2] | |
, P = E[0] | |
, L = E[1] | |
, G = E[2]; | |
return [w * G - I * L, I * P - b * G, b * L - w * P] | |
} | |
, | |
n.lerp = F, | |
n.transformMat3 = function $(y, E) { | |
const b = y[0] | |
, w = y[1] | |
, I = y[2]; | |
return [b * E[0] + w * E[3] + I * E[6], b * E[1] + w * E[4] + I * E[7], b * E[2] + w * E[5] + I * E[8]] | |
} | |
, | |
n.transformMat4 = function q(y, E) { | |
const b = y[0] | |
, w = y[1] | |
, I = y[2] | |
, L = E[3] * b + E[7] * w + E[11] * I + E[15] || 1; | |
return [(E[0] * b + E[4] * w + E[8] * I + E[12]) / L, (E[1] * b + E[5] * w + E[9] * I + E[13]) / L, (E[2] * b + E[6] * w + E[10] * I + E[14]) / L] | |
} | |
, | |
n.transformQuat = function K(y, E) { | |
const b = y[0] | |
, w = y[1] | |
, I = y[2] | |
, P = E[0] | |
, L = E[1] | |
, G = E[2]; | |
let x = L * I - G * w | |
, D = G * b - P * I | |
, k = P * w - L * b | |
, V = L * k - G * D | |
, z = G * x - P * k | |
, j = P * D - L * x; | |
const Y = 2 * E[3]; | |
return x *= Y, | |
D *= Y, | |
k *= Y, | |
V *= 2, | |
z *= 2, | |
j *= 2, | |
[b + x + V, w + D + z, I + k + j] | |
} | |
, | |
n.rotateRodrigues = function X(y, E, b) { | |
return v(v(n.scale(y, Math.cos(b)), n.scale(E, (1 - Math.cos(b)) * n.dot(y, E))), n.scale(n.cross(E, y), Math.sin(b))) | |
} | |
, | |
n.bezier = function ie(y, E, b, w) { | |
const I = y | |
, P = E | |
, L = F(I, P, dt.bezierControlPointCoefficients.get(w = void 0 === w ? "ease-in-out" : w)[0]) | |
, G = F(I, P, dt.bezierControlPointCoefficients.get(w)[1]) | |
, m = F(I, L, b) | |
, x = F(L, G, b) | |
, D = F(G, P, b) | |
, k = F(m, x, b) | |
, V = F(x, D, b); | |
return F(k, V, b) | |
} | |
, | |
n.quard = function g(y, E, b, w) { | |
const I = y | |
, P = E | |
, L = F(I, P, dt.bezierControlPointCoefficients.get(w = void 0 === w ? "ease-in-out" : w)[0]) | |
, G = F(I, P, dt.bezierControlPointCoefficients.get(w)[1]) | |
, m = F(I, P, b) | |
, x = F(L, G, b); | |
return F(m, x, 2 * b * (1 - b)) | |
} | |
}(T || (T = {})), | |
function(n) { | |
n.create = function e() { | |
return [0, 0, 0, 0] | |
} | |
, | |
n.fromValues = function t(p, _, C, S) { | |
return [p, _, C, S] | |
} | |
, | |
n.fromTypedArray = function r(p) { | |
return [p[0], p[1], p[2], p[3]] | |
} | |
, | |
n.fromTypedArrayWithIndices = function i(p, _, C) { | |
return [p[_ * (C = C || 4)], p[_ * C + 1], p[_ * C + 2], p[_ * C + 3]] | |
} | |
, | |
n.fromVec3 = function o(p, _) { | |
return [p[0], p[1], p[2], _] | |
} | |
, | |
n.normalize = function s(p) { | |
let _ = [0, 0, 0, 0]; | |
const C = Math.hypot(p[0], p[1], p[2], p[3]); | |
return C > 1e-5 && (_[0] = p[0] / C, | |
_[1] = p[1] / C, | |
_[2] = p[2] / C, | |
_[3] = p[3] / C), | |
_ | |
} | |
, | |
n.scale = function a(p, _) { | |
return [p[0] * _, p[1] * _, p[2] * _, p[3] * _] | |
} | |
, | |
n.transformMat4 = function l(p, _) { | |
const C = p[0] | |
, S = p[1] | |
, R = p[2] | |
, v = p[3]; | |
return [_[0] * C + _[4] * S + _[8] * R + _[12] * v, _[1] * C + _[5] * S + _[9] * R + _[13] * v, _[2] * C + _[6] * S + _[10] * R + _[14] * v, _[3] * C + _[7] * S + _[11] * R + _[15] * v] | |
} | |
, | |
n.transformQuat = function c(p, _) { | |
const C = p[0] | |
, S = p[1] | |
, R = p[2] | |
, v = _[0] | |
, O = _[1] | |
, M = _[2] | |
, N = _[3] | |
, F = N * C + O * R - M * S | |
, $ = N * S + M * C - v * R | |
, q = N * R + v * S - O * C | |
, K = -v * C - O * S - M * R; | |
return [F * N + K * -v + $ * -M - q * -O, $ * N + K * -O + q * -v - F * -M, q * N + K * -M + F * -O - $ * -v, p[3]] | |
} | |
, | |
n.add = function u(p, _) { | |
return [p[0] + _[0], p[1] + _[1], p[2] + _[2], p[3] + _[3]] | |
} | |
, | |
n.exactEquals = function d(p, _) { | |
return p[0] === _[0] && p[1] === _[1] && p[2] === _[2] && p[3] === _[3] | |
} | |
, | |
n.equals = function h(p, _, C) { | |
C = void 0 !== C ? C : dt.EPSILON; | |
const S = p[0] | |
, R = p[1] | |
, v = p[2] | |
, O = p[3] | |
, M = _[0] | |
, N = _[1] | |
, F = _[2] | |
, $ = _[3]; | |
return Math.abs(S - M) <= C * Math.max(1, Math.abs(S), Math.abs(M)) && Math.abs(R - N) <= C * Math.max(1, Math.abs(R), Math.abs(N)) && Math.abs(v - F) <= C * Math.max(1, Math.abs(v), Math.abs(F)) && Math.abs(O - $) <= C * Math.max(1, Math.abs(O), Math.abs($)) | |
} | |
, | |
n.lerp = function f(p, _, C) { | |
let S = p[0] | |
, R = p[1] | |
, v = p[2] | |
, O = p[3]; | |
return [S + C * (_[0] - S), R + C * (_[1] - R), v + C * (_[2] - v), O + C * (_[3] - O)] | |
} | |
}(kt || (kt = {})), | |
function(n) { | |
n.create = function e() { | |
return [1, 0, 0, 0, 1, 0, 0, 0, 1] | |
} | |
, | |
n.fromValues = function t(o, s, a, l, c, u, d, h, f) { | |
return [o, s, a, l, c, u, d, h, f] | |
} | |
, | |
n.fromMat4 = function r(o) { | |
return [o[0], o[1], o[2], o[4], o[5], o[6], o[8], o[9], o[10]] | |
} | |
, | |
n.normalFromMat4 = function i(o) { | |
const s = o[0] | |
, a = o[1] | |
, l = o[2] | |
, c = o[3] | |
, u = o[4] | |
, d = o[5] | |
, h = o[6] | |
, f = o[7] | |
, p = o[8] | |
, _ = o[9] | |
, C = o[10] | |
, S = o[11] | |
, R = o[12] | |
, v = o[13] | |
, O = o[14] | |
, M = o[15] | |
, N = s * d - a * u | |
, F = s * h - l * u | |
, $ = s * f - c * u | |
, q = a * h - l * d | |
, K = a * f - c * d | |
, X = l * f - c * h | |
, ie = p * v - _ * R | |
, g = p * O - C * R | |
, y = p * M - S * R | |
, E = _ * O - C * v | |
, b = _ * M - S * v | |
, w = C * M - S * O | |
, I = N * w - F * b + $ * E + q * y - K * g + X * ie; | |
if (!I) | |
return null; | |
const P = 1 / I; | |
return [(d * w - h * b + f * E) * P, (h * y - u * w - f * g) * P, (u * b - d * y + f * ie) * P, (l * b - a * w - c * E) * P, (s * w - l * y + c * g) * P, (a * y - s * b - c * ie) * P, (v * X - O * K + M * q) * P, (O * $ - R * X - M * F) * P, (R * K - v * $ + M * N) * P] | |
} | |
}(ts || (ts = {})), | |
function(n) { | |
function O(g, y, E) { | |
const b = y[0] | |
, w = y[1] | |
, I = y[2] | |
, P = y[3] | |
, L = b + b | |
, G = w + w | |
, m = I + I | |
, x = b * L | |
, D = b * G | |
, k = b * m | |
, V = w * G | |
, z = w * m | |
, j = I * m | |
, Y = P * L | |
, ae = P * G | |
, ne = P * m | |
, ce = E[0] | |
, Re = E[1] | |
, Me = E[2]; | |
return [(1 - (V + j)) * ce, (D + ne) * ce, (k - ae) * ce, 0, (D - ne) * Re, (1 - (x + j)) * Re, (z + Y) * Re, 0, (k + ae) * Me, (z - Y) * Me, (1 - (x + V)) * Me, 0, g[0], g[1], g[2], 1] | |
} | |
function F(g) { | |
const w = g[4] | |
, I = g[5] | |
, P = g[6] | |
, L = g[8] | |
, G = g[9] | |
, m = g[10]; | |
return [Math.hypot(g[0], g[1], g[2]), Math.hypot(w, I, P), Math.hypot(L, G, m)] | |
} | |
n.create = function e() { | |
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] | |
} | |
, | |
n.clone = function t(g) { | |
return [g[0], g[1], g[2], g[3], g[4], g[5], g[6], g[7], g[8], g[9], g[10], g[11], g[12], g[13], g[14], g[15]] | |
} | |
, | |
n.fromValues = function r(g, y, E, b, w, I, P, L, G, m, x, D, k, V, z, j) { | |
return [g, y, E, b, w, I, P, L, G, m, x, D, k, V, z, j] | |
} | |
, | |
n.fromFloat32Array = function i(g) { | |
return [g[0], g[1], g[2], g[3], g[4], g[5], g[6], g[7], g[8], g[9], g[10], g[11], g[12], g[13], g[14], g[15]] | |
} | |
, | |
n.fromMat3 = function o(g) { | |
return [g[0], g[1], g[2], 0, g[3], g[4], g[5], 0, g[6], g[7], g[8], 0, 0, 0, 0, 1] | |
} | |
, | |
n.determinant = function s(g) { | |
const y = g[0] | |
, E = g[1] | |
, b = g[2] | |
, w = g[3] | |
, I = g[4] | |
, P = g[5] | |
, L = g[6] | |
, G = g[7] | |
, m = g[8] | |
, x = g[9] | |
, D = g[10] | |
, k = g[11] | |
, V = g[12] | |
, z = g[13] | |
, j = g[14] | |
, Y = g[15]; | |
return (y * P - E * I) * (D * Y - k * j) - (y * L - b * I) * (x * Y - k * z) + (y * G - w * I) * (x * j - D * z) + (E * L - b * P) * (m * Y - k * V) - (E * G - w * P) * (m * j - D * V) + (b * G - w * L) * (m * z - x * V) | |
} | |
, | |
n.transpose = function a(g) { | |
return [g[0], g[4], g[8], g[12], g[1], g[5], g[9], g[13], g[2], g[6], g[10], g[14], g[3], g[7], g[11], g[15]] | |
} | |
, | |
n.invert = function l(g) { | |
const y = g[0] | |
, E = g[1] | |
, b = g[2] | |
, w = g[3] | |
, I = g[4] | |
, P = g[5] | |
, L = g[6] | |
, G = g[7] | |
, m = g[8] | |
, x = g[9] | |
, D = g[10] | |
, k = g[11] | |
, V = g[12] | |
, z = g[13] | |
, j = g[14] | |
, Y = g[15] | |
, ae = y * P - E * I | |
, ne = y * L - b * I | |
, ce = y * G - w * I | |
, Re = E * L - b * P | |
, Me = E * G - w * P | |
, Le = b * G - w * L | |
, rt = m * z - x * V | |
, Qe = m * j - D * V | |
, st = m * Y - k * V | |
, ht = x * j - D * z | |
, at = x * Y - k * z | |
, ft = D * Y - k * j | |
, Yt = ae * ft - ne * at + ce * ht + Re * st - Me * Qe + Le * rt; | |
if (!Yt) | |
return null; | |
const Ve = 1 / Yt; | |
return [(P * ft - L * at + G * ht) * Ve, (b * at - E * ft - w * ht) * Ve, (z * Le - j * Me + Y * Re) * Ve, (D * Me - x * Le - k * Re) * Ve, (L * st - I * ft - G * Qe) * Ve, (y * ft - b * st + w * Qe) * Ve, (j * ce - V * Le - Y * ne) * Ve, (m * Le - D * ce + k * ne) * Ve, (I * at - P * st + G * rt) * Ve, (E * st - y * at - w * rt) * Ve, (V * Me - z * ce + Y * ae) * Ve, (x * ce - m * Me - k * ae) * Ve, (P * Qe - I * ht - L * rt) * Ve, (y * ht - E * Qe + b * rt) * Ve, (z * ne - V * Re - j * ae) * Ve, (m * Re - x * ne + D * ae) * Ve] | |
} | |
, | |
n.multiplyScalar = function c(g, y) { | |
return [g[0] * y, g[1] * y, g[2] * y, g[3] * y, g[4] * y, g[5] * y, g[6] * y, g[7] * y, g[8] * y, g[9] * y, g[10] * y, g[11] * y, g[12] * y, g[13] * y, g[14] * y, g[15] * y] | |
} | |
, | |
n.multiply = function u(g, y) { | |
const E = g[0] | |
, b = g[1] | |
, w = g[2] | |
, I = g[3] | |
, P = g[4] | |
, L = g[5] | |
, G = g[6] | |
, m = g[7] | |
, x = g[8] | |
, D = g[9] | |
, k = g[10] | |
, V = g[11] | |
, z = g[12] | |
, j = g[13] | |
, Y = g[14] | |
, ae = g[15] | |
, ne = y[0] | |
, ce = y[1] | |
, Re = y[2] | |
, Me = y[3] | |
, Le = y[4] | |
, rt = y[5] | |
, Qe = y[6] | |
, st = y[7] | |
, ht = y[8] | |
, at = y[9] | |
, ft = y[10] | |
, Yt = y[11] | |
, Ve = y[12] | |
, $r = y[13] | |
, Wr = y[14] | |
, Gr = y[15]; | |
return [ne * E + ce * P + Re * x + Me * z, ne * b + ce * L + Re * D + Me * j, ne * w + ce * G + Re * k + Me * Y, ne * I + ce * m + Re * V + Me * ae, Le * E + rt * P + Qe * x + st * z, Le * b + rt * L + Qe * D + st * j, Le * w + rt * G + Qe * k + st * Y, Le * I + rt * m + Qe * V + st * ae, ht * E + at * P + ft * x + Yt * z, ht * b + at * L + ft * D + Yt * j, ht * w + at * G + ft * k + Yt * Y, ht * I + at * m + ft * V + Yt * ae, Ve * E + $r * P + Wr * x + Gr * z, Ve * b + $r * L + Wr * D + Gr * j, Ve * w + $r * G + Wr * k + Gr * Y, Ve * I + $r * m + Wr * V + Gr * ae] | |
} | |
, | |
n.translate = function d(g, y) { | |
const E = y[0] | |
, b = y[1] | |
, w = y[2] | |
, I = g[0] | |
, P = g[1] | |
, L = g[2] | |
, G = g[3] | |
, m = g[4] | |
, x = g[5] | |
, D = g[6] | |
, k = g[7] | |
, V = g[8] | |
, z = g[9] | |
, j = g[10] | |
, Y = g[11]; | |
return [I, P, L, G, m, x, D, k, V, z, j, Y, I * E + m * b + V * w + g[12], P * E + x * b + z * w + g[13], L * E + D * b + j * w + g[14], G * E + k * b + Y * w + g[15]] | |
} | |
, | |
n.rotate = function h(g, y) { | |
const E = y[0] | |
, b = y[1] | |
, w = y[2] | |
, I = y[3] | |
, P = E + E | |
, L = b + b | |
, G = w + w | |
, m = E * P | |
, x = E * L | |
, D = E * G | |
, k = b * L | |
, V = b * G | |
, z = w * G | |
, j = I * P | |
, Y = I * L | |
, ae = I * G | |
, ne = g[0] | |
, ce = g[1] | |
, Re = g[2] | |
, Me = g[3] | |
, Le = g[4] | |
, rt = g[5] | |
, Qe = g[6] | |
, st = g[7] | |
, ht = g[8] | |
, at = g[9] | |
, ft = g[10] | |
, Yt = g[11] | |
, Ve = 1 - (k + z) | |
, $r = x + ae | |
, Wr = D - Y | |
, Gr = x - ae | |
, gu = 1 - (m + z) | |
, mu = V + j | |
, _u = D + Y | |
, yu = V - j | |
, vu = 1 - (m + k); | |
return [ne * Ve + Le * $r + ht * Wr, ce * Ve + rt * $r + at * Wr, Re * Ve + Qe * $r + ft * Wr, Me * Ve + st * $r + Yt * Wr, ne * Gr + Le * gu + ht * mu, ce * Gr + rt * gu + at * mu, Re * Gr + Qe * gu + ft * mu, Me * Gr + st * gu + Yt * mu, ne * _u + Le * yu + ht * vu, ce * _u + rt * yu + at * vu, Re * _u + Qe * yu + ft * vu, Me * _u + st * yu + Yt * vu, g[12], g[13], g[14], g[15]] | |
} | |
, | |
n.rotateAxisAngle = function f(g, y, E) { | |
let b = E[0] | |
, w = E[1] | |
, I = E[2] | |
, P = Math.hypot(b, w, I); | |
if (P < dt.EPSILON) | |
return null; | |
P = 1 / P, | |
b *= P, | |
w *= P, | |
I *= P; | |
const L = Math.sin(y) | |
, G = Math.cos(y) | |
, m = 1 - G | |
, x = g[0] | |
, D = g[1] | |
, k = g[2] | |
, V = g[3] | |
, z = g[4] | |
, j = g[5] | |
, Y = g[6] | |
, ae = g[7] | |
, ne = g[8] | |
, ce = g[9] | |
, Re = g[10] | |
, Me = g[11] | |
, Le = b * b * m + G | |
, rt = w * b * m + I * L | |
, Qe = I * b * m - w * L | |
, st = b * w * m - I * L | |
, ht = w * w * m + G | |
, at = I * w * m + b * L | |
, ft = b * I * m + w * L | |
, Yt = w * I * m - b * L | |
, Ve = I * I * m + G; | |
return [x * Le + z * rt + ne * Qe, D * Le + j * rt + ce * Qe, k * Le + Y * rt + Re * Qe, V * Le + ae * rt + Me * Qe, x * st + z * ht + ne * at, D * st + j * ht + ce * at, k * st + Y * ht + Re * at, V * st + ae * ht + Me * at, x * ft + z * Yt + ne * Ve, D * ft + j * Yt + ce * Ve, k * ft + Y * Yt + Re * Ve, V * ft + ae * Yt + Me * Ve, g[12], g[13], g[14], g[15]] | |
} | |
, | |
n.scale = function p(g, y) { | |
const E = y[0] | |
, b = y[1] | |
, w = y[2]; | |
return [g[0] * E, g[1] * E, g[2] * E, g[3] * E, g[4] * b, g[5] * b, g[6] * b, g[7] * b, g[8] * w, g[9] * w, g[10] * w, g[11] * w, g[12], g[13], g[14], g[15]] | |
} | |
, | |
n.fromTranslation = function _(g) { | |
return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, g[0], g[1], g[2], 1] | |
} | |
, | |
n.fromRotation = function C(g) { | |
const y = g[0] | |
, E = g[1] | |
, b = g[2] | |
, w = g[3] | |
, I = y + y | |
, P = E + E | |
, L = b + b | |
, G = y * I | |
, m = y * P | |
, x = y * L | |
, D = E * P | |
, k = E * L | |
, V = b * L | |
, z = w * I | |
, j = w * P | |
, Y = w * L; | |
return [1 - (D + V), m + Y, x - j, 0, m - Y, 1 - (G + V), k + z, 0, x + j, k - z, 1 - (G + D), 0, 0, 0, 0, 1] | |
} | |
, | |
n.fromRotationAxisAngle = function S(g, y) { | |
let E = y[0] | |
, b = y[1] | |
, w = y[2] | |
, I = Math.hypot(E, b, w); | |
if (I < dt.EPSILON) | |
return null; | |
I = 1 / I, | |
E *= I, | |
b *= I, | |
w *= I; | |
const P = Math.sin(g) | |
, L = Math.cos(g) | |
, G = 1 - L; | |
return [E * E * G + L, b * E * G + w * P, w * E * G - b * P, 0, E * b * G - w * P, b * b * G + L, w * b * G + E * P, 0, E * w * G + b * P, b * w * G - E * P, w * w * G + L, 0, 0, 0, 0, 1] | |
} | |
, | |
n.fromScale = function R(g) { | |
return [g[0], 0, 0, 0, 0, g[1], 0, 0, 0, 0, g[2], 0, 0, 0, 0, 1] | |
} | |
, | |
n.fromRotationTranslation = function v(g, y) { | |
const E = y[0] | |
, b = y[1] | |
, w = y[2] | |
, I = y[3] | |
, P = E + E | |
, L = b + b | |
, G = w + w | |
, m = E * P | |
, x = E * L | |
, D = E * G | |
, k = b * L | |
, V = b * G | |
, z = w * G | |
, j = I * P | |
, Y = I * L | |
, ae = I * G; | |
return [1 - (k + z), x + ae, D - Y, 0, x - ae, 1 - (m + z), V + j, 0, D + Y, V - j, 1 - (m + k), 0, g[0], g[1], g[2], 1] | |
} | |
, | |
n.fromScaleRotationTranslation = O, | |
n.getTranslation = function M(g) { | |
return [g[12], g[13], g[14]] | |
} | |
, | |
n.getRotation = function N(g) { | |
const y = F(g) | |
, E = 1 / y[0] | |
, b = 1 / y[1] | |
, w = 1 / y[2] | |
, I = g[0] * E | |
, P = g[1] * b | |
, L = g[2] * w | |
, G = g[4] * E | |
, m = g[5] * b | |
, x = g[6] * w | |
, D = g[8] * E | |
, k = g[9] * b | |
, V = g[10] * w | |
, z = I + m + V; | |
if (z > 0) { | |
const j = 2 * Math.sqrt(z + 1); | |
return kt.fromValues((x - k) / j, (D - L) / j, (P - G) / j, .25 * j) | |
} | |
if (I > m && I > V) { | |
const j = 2 * Math.sqrt(1 + I - m - V); | |
return kt.fromValues(.25 * j, (P + G) / j, (D + L) / j, (x - k) / j) | |
} | |
if (m > V) { | |
const j = 2 * Math.sqrt(1 + m - I - V); | |
return kt.fromValues((P + G) / j, .25 * j, (x + k) / j, (D - L) / j) | |
} | |
{ | |
const j = 2 * Math.sqrt(1 + V - I - m); | |
return kt.fromValues((D + L) / j, (x + k) / j, .25 * j, (P - G) / j) | |
} | |
} | |
, | |
n.getScale = F, | |
n.lookAt = function $(g, y, E) { | |
let b, w, I, P, L, G, m, x, D, k; | |
const V = g[0] | |
, z = g[1] | |
, j = g[2] | |
, Y = y[0] | |
, ae = y[1] | |
, ne = y[2] | |
, ce = E[0] | |
, Re = E[1] | |
, Me = E[2]; | |
return m = V - Y, | |
x = z - ae, | |
D = j - ne, | |
Math.abs(V - Y) < dt.EPSILON && Math.abs(z - ae) < dt.EPSILON && Math.abs(j - ne) < dt.EPSILON && (D = 1), | |
k = 1 / Math.hypot(m, x, D), | |
m *= k, | |
x *= k, | |
D *= k, | |
b = Re * D - Me * x, | |
w = Me * m - ce * D, | |
I = ce * x - Re * m, | |
k = Math.hypot(b, w, I), | |
k || (1 === Math.abs(Me) ? m += 1e-4 : D += 1e-4, | |
k = 1 / Math.hypot(m, x, D), | |
m *= k, | |
x *= k, | |
D *= k, | |
b = Re * D - Me * x, | |
w = Me * m - ce * D, | |
I = ce * x - Re * m), | |
k = 1 / k, | |
b *= k, | |
w *= k, | |
I *= k, | |
P = x * I - D * w, | |
L = D * b - m * I, | |
G = m * w - x * b, | |
[b, P, m, 0, w, L, x, 0, I, G, D, 0, -(b * V + w * z + I * j), -(P * V + L * z + G * j), -(m * V + x * z + D * j), 1] | |
} | |
, | |
n.targetTo = function q(g, y, E) { | |
const b = g[0] | |
, w = g[1] | |
, I = g[2] | |
, P = E[0] | |
, L = E[1] | |
, G = E[2]; | |
let m = b - y[0] | |
, x = w - y[1] | |
, D = I - y[2] | |
, k = Math.hypot(m, x, D); | |
k > 0 && (k = 1 / k, | |
m *= k, | |
x *= k, | |
D *= k); | |
let V = L * D - G * x | |
, z = G * m - P * D | |
, j = P * x - L * m; | |
return k = Math.hypot(m, x, D), | |
k > 0 && (k = 1 / k, | |
V *= k, | |
z *= k, | |
j *= k), | |
[V, z, j, 0, x * j - D * z, D * V - m * j, m * z - x * V, 0, m, x, D, 0, b, w, I, 1] | |
} | |
, | |
n.ortho = function K(g, y, E, b, w, I) { | |
const P = 1 / (g - y) | |
, L = 1 / (E - b) | |
, G = 1 / (w - I); | |
return [-2 * P, 0, 0, 0, 0, -2 * L, 0, 0, 0, 0, 2 * G, 0, (g + y) * P, (b + E) * L, (I + w) * G, 1] | |
} | |
, | |
n.perspective = function X(g, y, E, b) { | |
const w = 1 / Math.tan(g / 2); | |
if (null != b && b !== 1 / 0) { | |
const I = 1 / (E - b); | |
return [w / y, 0, 0, 0, 0, w, 0, 0, 0, 0, (b + E) * I, -1, 0, 0, 2 * b * E * I, 0] | |
} | |
return [w / y, 0, 0, 0, 0, w, 0, 0, 0, 0, -1, -1, 0, 0, -2 * E, 0] | |
} | |
, | |
n.compose = O, | |
n.decompose = function ie(g) { | |
let y = T.length(T.fromValues(g[0], g[1], g[2])); | |
const E = T.length(T.fromValues(g[4], g[5], g[6])) | |
, b = T.length(T.fromValues(g[8], g[9], g[10])); | |
n.determinant(g) < 0 && (y = -y); | |
const w = 1 / y | |
, I = 1 / E | |
, P = 1 / b | |
, L = ts.fromValues(g[0] * w, g[1] * w, g[2] * w, g[4] * I, g[5] * I, g[6] * I, g[8] * P, g[9] * P, g[10] * P); | |
return { | |
translation: T.fromValues(g[12], g[13], g[14]), | |
rotation: kt.normalize(et.fromMat3(L)), | |
scale: T.fromValues(y, E, b) | |
} | |
} | |
}(pe || (pe = {})), | |
function(n) { | |
function i(M) { | |
const N = M[0] | |
, F = M[1] | |
, $ = M[2] | |
, q = M[3] | |
, K = Math.hypot(N, F, $) | |
, X = Math.exp(q) | |
, ie = K > 0 ? X * Math.sin(K) / K : 0; | |
return [N * ie, F * ie, $ * ie, X * Math.cos(K)] | |
} | |
function o(M) { | |
const N = M[0] | |
, F = M[1] | |
, $ = M[2] | |
, q = M[3] | |
, K = Math.hypot(N, F, $) | |
, X = K > 0 ? Math.atan2(K, q) / K : 0; | |
return [N * X, F * X, $ * X, .5 * Math.log(N * N + F * F + $ * $ + q * q)] | |
} | |
function s(M, N) { | |
return [M[0] * N, M[1] * N, M[2] * N, M[3] * N] | |
} | |
function R(M, N, F) { | |
const $ = M[0] | |
, q = M[1] | |
, K = M[2] | |
, X = M[3]; | |
let b, w, I, P, L, ie = N[0], g = N[1], y = N[2], E = N[3]; | |
return I = $ * ie + q * g + K * y + X * E, | |
I < 0 && (I = -I, | |
ie = -ie, | |
g = -g, | |
y = -y, | |
E = -E), | |
1 - I > dt.EPSILON ? (w = Math.sqrt(1 - I * I), | |
b = Math.atan2(w, I), | |
P = Math.sin((1 - F) * b) / w, | |
L = Math.sin(F * b) / w) : (P = 1 - F, | |
L = F), | |
kt.normalize([P * $ + L * ie, P * q + L * g, P * K + L * y, P * X + L * E]) | |
} | |
n.create = function e() { | |
return [0, 0, 0, 1] | |
} | |
, | |
n.invert = function t(M) { | |
const N = M[0] | |
, F = M[1] | |
, $ = M[2] | |
, q = M[3] | |
, K = N * N + F * F + $ * $ + q * q | |
, X = K ? 1 / K : 0; | |
return [-N * X, -F * X, -$ * X, q * X] | |
} | |
, | |
n.conjugate = function r(M) { | |
return [-M[0], -M[1], -M[2], M[3]] | |
} | |
, | |
n.exp = i, | |
n.ln = o, | |
n.normalize = kt.normalize, | |
n.add = kt.add, | |
n.scale = s, | |
n.pow = function a(M, N) { | |
let F = [0, 0, 0, 1]; | |
return F = o(M), | |
F = s(F, N), | |
F = i(F), | |
F | |
} | |
, | |
n.multiply = function l(M, N) { | |
const F = M[0] | |
, $ = M[1] | |
, q = M[2] | |
, K = M[3] | |
, X = N[0] | |
, ie = N[1] | |
, g = N[2] | |
, y = N[3]; | |
return [F * y + K * X + $ * g - q * ie, $ * y + K * ie + q * X - F * g, q * y + K * g + F * ie - $ * X, K * y - F * X - $ * ie - q * g] | |
} | |
, | |
n.setAxisAngle = function c(M, N) { | |
N *= .5; | |
const F = Math.sin(N); | |
return [F * M[0], F * M[1], F * M[2], Math.cos(N)] | |
} | |
, | |
n.rotateX = function u(M, N) { | |
N *= .5; | |
const F = M[0] | |
, $ = M[1] | |
, q = M[2] | |
, K = M[3] | |
, X = Math.sin(N) | |
, ie = Math.cos(N); | |
return [F * ie + K * X, $ * ie + q * X, q * ie - $ * X, K * ie - F * X] | |
} | |
, | |
n.rotateY = function d(M, N) { | |
N *= .5; | |
const F = M[0] | |
, $ = M[1] | |
, q = M[2] | |
, K = M[3] | |
, X = Math.sin(N) | |
, ie = Math.cos(N); | |
return [F * ie - q * X, $ * ie + K * X, q * ie + F * X, K * ie - $ * X] | |
} | |
, | |
n.rotateZ = function h(M, N) { | |
N *= .5; | |
const F = M[0] | |
, $ = M[1] | |
, q = M[2] | |
, K = M[3] | |
, X = Math.sin(N) | |
, ie = Math.cos(N); | |
return [F * ie + $ * X, $ * ie - F * X, q * ie + K * X, K * ie - q * X] | |
} | |
, | |
n.calculateW = function f(M) { | |
const N = M[0] | |
, F = M[1] | |
, $ = M[2]; | |
return [N, F, $, Math.sqrt(Math.abs(1 - N * N - F * F - $ * $))] | |
} | |
, | |
n.fromMat3 = function p(M) { | |
const N = M[0] + M[4] + M[8]; | |
let F, $ = [0, 0, 0, 1]; | |
if (N > 0) | |
F = Math.sqrt(N + 1), | |
$[3] = .5 * F, | |
F = .5 / F, | |
$[0] = (M[5] - M[7]) * F, | |
$[1] = (M[6] - M[2]) * F, | |
$[2] = (M[1] - M[3]) * F; | |
else { | |
let q = 0; | |
M[4] > M[0] && (q = 1), | |
M[8] > M[3 * q + q] && (q = 2); | |
let K = (q + 1) % 3 | |
, X = (q + 2) % 3; | |
F = Math.sqrt(M[3 * q + q] - M[3 * K + K] - M[3 * X + X] + 1), | |
$[q] = .5 * F, | |
F = .5 / F, | |
$[3] = (M[3 * K + X] - M[3 * X + K]) * F, | |
$[K] = (M[3 * K + q] + M[3 * q + K]) * F, | |
$[X] = (M[3 * X + q] + M[3 * q + X]) * F | |
} | |
return $ | |
} | |
, | |
n.fromEuler = function _(M, N, F) { | |
M *= .5, | |
N *= .5, | |
F *= .5; | |
const $ = Math.sin(M) | |
, q = Math.cos(M) | |
, K = Math.sin(N) | |
, X = Math.cos(N) | |
, ie = Math.sin(F) | |
, g = Math.cos(F); | |
return [$ * X * g - q * K * ie, q * K * g + $ * X * ie, q * X * ie - $ * K * g, q * X * g + $ * K * ie] | |
} | |
, | |
n.getEuler = function C(M) { | |
const N = M[0] | |
, F = M[1] | |
, $ = M[2] | |
, q = M[3]; | |
return [Math.atan2(2 * (q * $ + N * F), 1 - 2 * (N * N + $ * $)), Math.asin(2 * (q * N - F * $)), Math.atan2(2 * (q * F + $ * N), 1 - 2 * (N * N + F * F))] | |
} | |
, | |
n.nlerp = function S(M, N, F) { | |
return n.normalize(n.add(n.scale(M, 1 - F), n.scale(N, F))) | |
} | |
, | |
n.slerp = R, | |
n.sbezier = function v(M, N, F, $) { | |
const q = M | |
, K = N | |
, X = R(q, K, dt.bezierControlPointCoefficients.get($ = void 0 === $ ? "ease-in-out" : $)[0]) | |
, ie = R(q, K, dt.bezierControlPointCoefficients.get($)[1]) | |
, g = R(q, X, F) | |
, y = R(X, ie, F) | |
, E = R(ie, K, F) | |
, b = R(g, y, F) | |
, w = R(y, E, F); | |
return R(b, w, F) | |
} | |
, | |
n.squard = function O(M, N, F, $) { | |
const q = M | |
, K = N | |
, X = R(q, K, dt.bezierControlPointCoefficients.get($ = void 0 === $ ? "ease-in-out" : $)[0]) | |
, ie = R(q, K, dt.bezierControlPointCoefficients.get($)[1]) | |
, g = R(q, K, F) | |
, y = R(X, ie, F); | |
return R(g, y, 2 * F * (1 - F)) | |
} | |
}(et || (et = {})); | |
const Cg = new Map([["blue", T.fromValues(0, 93, 255)], ["green", T.fromValues(0, 198, 179)], ["yellow", T.fromValues(243, 209, 0)], ["red", T.fromValues(255, 71, 87)]]) | |
, _D = Cg.get("blue"); | |
let vj = ( () => { | |
class n { | |
constructor() { | |
this.setColourEvent = new Se | |
} | |
ngOnInit() {} | |
getCurrentColour() { | |
Array.from(document.getElementsByName("colours")).forEach(t => { | |
t.checked && this.setColourEvent.emit(this.colourNameToColourRGB(t.id)) | |
} | |
) | |
} | |
resetCurrentColor() { | |
document.getElementById("blue").checked = !0 | |
} | |
colourNameToColourRGB(t) { | |
if (Cg.has(t)) | |
return Cg.get(t); | |
throw new Error(`NOKEY ERROR: no colour RGB value for colour ${t}`) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275cmp = dn({ | |
type: n, | |
selectors: [["app-colour-picker"]], | |
outputs: { | |
setColourEvent: "setColourEvent" | |
}, | |
decls: 8, | |
vars: 0, | |
consts: [[1, "colour-picker-wrapper"], [1, "colour-picker", 3, "change"], ["type", "radio", "name", "colours", "id", "blue", "checked", ""], ["type", "radio", "name", "colours", "id", "green"], ["type", "radio", "name", "colours", "id", "yellow"], ["type", "radio", "name", "colours", "id", "red"]], | |
template: function(t, r) { | |
1 & t && (re(0, "div", 0)(1, "div", 1), | |
_e("change", function() { | |
return r.getCurrentColour() | |
}), | |
re(2, "p"), | |
$e(3, "\u6807\u8bb0\u989c\u8272"), | |
oe(), | |
Ct(4, "input", 2)(5, "input", 3)(6, "input", 4)(7, "input", 5), | |
oe()()) | |
}, | |
styles: [".colour-picker-wrapper[_ngcontent-%COMP%]{display:flex}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-evenly;align-items:center;width:353px;height:64px;padding:15px;border-radius:30px;background:#FFFFFF;box-shadow:0 8px 20px #20295233}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{background:#FFFFFF;color:#3c464f;font-weight:500;font-size:16px;letter-spacing:0;line-height:24px;text-align:center}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:relative;width:34px;height:34px;margin:0;border-radius:50%;border-color:#fff;-webkit-appearance:none;appearance:none;outline:none;transition:.2s all linear}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{outline:none;box-shadow:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #blue[_ngcontent-%COMP%]{background:#005DFF}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #blue[_ngcontent-%COMP%]:hover{background:#0011FF;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #blue[_ngcontent-%COMP%]:checked{border:5px solid #005DFF;box-shadow:inset 0 0 0 4px #fff;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #green[_ngcontent-%COMP%]{background:#00C6B3}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #green[_ngcontent-%COMP%]:hover{background:#00A8C6;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #green[_ngcontent-%COMP%]:checked{border:5px solid #00C6B3;box-shadow:inset 0 0 0 4px #fff;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #yellow[_ngcontent-%COMP%]{background:#F3D100}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #yellow[_ngcontent-%COMP%]:hover{background:#F3BA00;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #yellow[_ngcontent-%COMP%]:checked{border:5px solid #F3D100;box-shadow:inset 0 0 0 4px #fff;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #red[_ngcontent-%COMP%]{background:#FF4757}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #red[_ngcontent-%COMP%]:hover{background:#D13A47;outline:none}.colour-picker-wrapper[_ngcontent-%COMP%] .colour-picker[_ngcontent-%COMP%] #red[_ngcontent-%COMP%]:checked{border:5px solid #FF4757;box-shadow:inset 0 0 0 4px #fff;outline:none}"] | |
}), | |
n | |
} | |
)(); | |
var mi = ( () => (function(n) { | |
n[n.Clip = 0] = "Clip", | |
n[n.Span = 1] = "Span", | |
n[n.View = 2] = "View" | |
}(mi || (mi = {})), | |
mi))() | |
, ns = ( () => (function(n) { | |
n[n.Succeed = 1] = "Succeed", | |
n[n.Unauthenticated = 401] = "Unauthenticated", | |
n[n.Unauthorized = 403] = "Unauthorized", | |
n[n.NetworkError = -404] = "NetworkError" | |
}(ns || (ns = {})), | |
ns))() | |
, _i = ( () => (function(n) { | |
n[n.Default = 0] = "Default", | |
n[n.UpSide = 1] = "UpSide", | |
n[n.DownSide = 2] = "DownSide" | |
}(_i || (_i = {})), | |
_i))() | |
, zr = ( () => (function(n) { | |
n.Linear = "linear", | |
n.Ease = "ease", | |
n.EaseIn = "ease-in", | |
n.EaseOut = "ease-out", | |
n.EaseInOut = "ease-in-out", | |
n.Sin = "sin", | |
n.Cos = "cos" | |
}(zr || (zr = {})), | |
zr))(); | |
class bj { | |
constructor() { | |
this.isView = !1, | |
this.type = mi.Clip, | |
this.model = null, | |
this.clip = { | |
isBase: !0, | |
isManual: !1 | |
}, | |
this.span = { | |
isBase: !0, | |
isPreview: !1, | |
isFolded: !1, | |
currentColor: _D | |
}, | |
this.view = {} | |
} | |
get isClip() { | |
return this.type === mi.Clip | |
} | |
get isSpan() { | |
return this.type === mi.Span | |
} | |
} | |
class Cj { | |
constructor(e, t, r, i, o) { | |
this.xTranslation = e, | |
this.yTranslation = t, | |
this.zTranslation = r, | |
this.xRotation = i, | |
this.zRotation = o | |
} | |
} | |
class Ut { | |
constructor(e, t, r) { | |
this.translation = e || T.create(), | |
this.rotation = t || et.create(), | |
this.scale = r || T.fromValues(1, 1, 1) | |
} | |
get transform() { | |
return pe.fromScaleRotationTranslation(this.translation, this.rotation, this.scale) | |
} | |
fromMatrix(e) { | |
const t = pe.decompose(e); | |
return this.translation = t.translation, | |
this.rotation = t.rotation, | |
this.scale = t.scale, | |
this | |
} | |
} | |
var W = ( () => (function(n) { | |
n[n.TEXTURE0 = 33984] = "TEXTURE0", | |
n[n.DYNAMIC_DRAW = 35048] = "DYNAMIC_DRAW", | |
n[n.ARRAY_BUFFER = 34962] = "ARRAY_BUFFER", | |
n[n.ELEMENT_ARRAY_BUFFER = 34963] = "ELEMENT_ARRAY_BUFFER", | |
n[n.UNIFORM_BUFFER = 35345] = "UNIFORM_BUFFER", | |
n[n.TRANSFORM_FEEDBACK_BUFFER = 35982] = "TRANSFORM_FEEDBACK_BUFFER", | |
n[n.TRANSFORM_FEEDBACK = 36386] = "TRANSFORM_FEEDBACK", | |
n[n.COMPILE_STATUS = 35713] = "COMPILE_STATUS", | |
n[n.LINK_STATUS = 35714] = "LINK_STATUS", | |
n[n.FRAGMENT_SHADER = 35632] = "FRAGMENT_SHADER", | |
n[n.VERTEX_SHADER = 35633] = "VERTEX_SHADER", | |
n[n.SEPARATE_ATTRIBS = 35981] = "SEPARATE_ATTRIBS", | |
n[n.ACTIVE_UNIFORMS = 36230] = "ACTIVE_UNIFORMS", | |
n[n.ACTIVE_ATTRIBUTES = 35721] = "ACTIVE_ATTRIBUTES", | |
n[n.TRANSFORM_FEEDBACK_VARYINGS = 35971] = "TRANSFORM_FEEDBACK_VARYINGS", | |
n[n.ACTIVE_UNIFORM_BLOCKS = 35382] = "ACTIVE_UNIFORM_BLOCKS", | |
n[n.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396] = "UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", | |
n[n.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398] = "UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", | |
n[n.UNIFORM_BLOCK_DATA_SIZE = 35392] = "UNIFORM_BLOCK_DATA_SIZE", | |
n[n.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395] = "UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", | |
n[n.INT = 5124] = "INT", | |
n[n.INT_VEC2 = 35667] = "INT_VEC2", | |
n[n.INT_VEC3 = 35668] = "INT_VEC3", | |
n[n.INT_VEC4 = 35669] = "INT_VEC4", | |
n[n.UNSIGNED_INT = 5125] = "UNSIGNED_INT", | |
n[n.UNSIGNED_INT_VEC2 = 36294] = "UNSIGNED_INT_VEC2", | |
n[n.UNSIGNED_INT_VEC3 = 36295] = "UNSIGNED_INT_VEC3", | |
n[n.UNSIGNED_INT_VEC4 = 36296] = "UNSIGNED_INT_VEC4", | |
n[n.FLOAT = 5126] = "FLOAT", | |
n[n.FLOAT_VEC2 = 35664] = "FLOAT_VEC2", | |
n[n.FLOAT_VEC3 = 35665] = "FLOAT_VEC3", | |
n[n.FLOAT_VEC4 = 35666] = "FLOAT_VEC4", | |
n[n.FLOAT_MAT2 = 35674] = "FLOAT_MAT2", | |
n[n.FLOAT_MAT3 = 35675] = "FLOAT_MAT3", | |
n[n.FLOAT_MAT4 = 35676] = "FLOAT_MAT4", | |
n[n.FLOAT_MAT2x3 = 35685] = "FLOAT_MAT2x3", | |
n[n.FLOAT_MAT2x4 = 35686] = "FLOAT_MAT2x4", | |
n[n.FLOAT_MAT3x2 = 35687] = "FLOAT_MAT3x2", | |
n[n.FLOAT_MAT3x4 = 35688] = "FLOAT_MAT3x4", | |
n[n.FLOAT_MAT4x2 = 35689] = "FLOAT_MAT4x2", | |
n[n.FLOAT_MAT4x3 = 35690] = "FLOAT_MAT4x3", | |
n[n.BOOL = 35670] = "BOOL", | |
n[n.BOOL_VEC2 = 35671] = "BOOL_VEC2", | |
n[n.BOOL_VEC3 = 35672] = "BOOL_VEC3", | |
n[n.BOOL_VEC4 = 35673] = "BOOL_VEC4", | |
n[n.SAMPLER_2D = 35678] = "SAMPLER_2D", | |
n[n.SAMPLER_2D_SHADOW = 35682] = "SAMPLER_2D_SHADOW", | |
n[n.SAMPLER_2D_ARRAY = 36289] = "SAMPLER_2D_ARRAY", | |
n[n.SAMPLER_2D_ARRAY_SHADOW = 36292] = "SAMPLER_2D_ARRAY_SHADOW", | |
n[n.SAMPLER_3D = 35679] = "SAMPLER_3D", | |
n[n.SAMPLER_CUBE = 35680] = "SAMPLER_CUBE", | |
n[n.SAMPLER_CUBE_SHADOW = 36293] = "SAMPLER_CUBE_SHADOW", | |
n[n.INT_SAMPLER_2D = 36298] = "INT_SAMPLER_2D", | |
n[n.INT_SAMPLER_2D_ARRAY = 36303] = "INT_SAMPLER_2D_ARRAY", | |
n[n.INT_SAMPLER_3D = 36299] = "INT_SAMPLER_3D", | |
n[n.INT_SAMPLER_CUBE = 36300] = "INT_SAMPLER_CUBE", | |
n[n.UNSIGNED_INT_SAMPLER_2D = 36306] = "UNSIGNED_INT_SAMPLER_2D", | |
n[n.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311] = "UNSIGNED_INT_SAMPLER_2D_ARRAY", | |
n[n.UNSIGNED_INT_SAMPLER_3D = 36307] = "UNSIGNED_INT_SAMPLER_3D", | |
n[n.UNSIGNED_INT_SAMPLER_CUBE = 36308] = "UNSIGNED_INT_SAMPLER_CUBE", | |
n[n.TEXTURE_2D = 3553] = "TEXTURE_2D", | |
n[n.TEXTURE_2D_ARRAY = 35866] = "TEXTURE_2D_ARRAY", | |
n[n.TEXTURE_3D = 32879] = "TEXTURE_3D", | |
n[n.TEXTURE_CUBE_MAP = 34067] = "TEXTURE_CUBE_MAP" | |
}(W || (W = {})), | |
W))(); | |
const Tj = ["VERTEX_SHADER", "FRAGMENT_SHADER"] | |
, yD = new Map([[W.INT, { | |
type: Int32Array, | |
size: 4, | |
setter: yi | |
}], [W.INT_VEC2, { | |
type: Int32Array, | |
size: 8, | |
setter: yi | |
}], [W.INT_VEC3, { | |
type: Int32Array, | |
size: 12, | |
setter: yi | |
}], [W.INT_VEC4, { | |
type: Int32Array, | |
size: 16, | |
setter: yi | |
}], [W.UNSIGNED_INT, { | |
type: Uint32Array, | |
size: 4, | |
setter: du | |
}], [W.UNSIGNED_INT_VEC2, { | |
type: Uint32Array, | |
size: 8, | |
setter: du | |
}], [W.UNSIGNED_INT_VEC3, { | |
type: Uint32Array, | |
size: 12, | |
setter: du | |
}], [W.UNSIGNED_INT_VEC4, { | |
type: Uint32Array, | |
size: 16, | |
setter: du | |
}], [W.FLOAT, { | |
type: Float32Array, | |
size: 4, | |
setter: hu | |
}], [W.FLOAT_VEC2, { | |
type: Float32Array, | |
size: 8, | |
setter: hu | |
}], [W.FLOAT_VEC3, { | |
type: Float32Array, | |
size: 12, | |
setter: hu | |
}], [W.FLOAT_VEC4, { | |
type: Float32Array, | |
size: 16, | |
setter: hu | |
}], [W.FLOAT_MAT2, { | |
type: Float32Array, | |
size: 4, | |
setter: Tg, | |
count: 2 | |
}], [W.FLOAT_MAT3, { | |
type: Float32Array, | |
size: 9, | |
setter: Tg, | |
count: 3 | |
}], [W.FLOAT_MAT4, { | |
type: Float32Array, | |
size: 16, | |
setter: Tg, | |
count: 4 | |
}], [W.BOOL, { | |
type: Int32Array, | |
size: 4, | |
setter: yi | |
}], [W.BOOL_VEC2, { | |
type: Int32Array, | |
size: 8, | |
setter: yi | |
}], [W.BOOL_VEC3, { | |
type: Int32Array, | |
size: 12, | |
setter: yi | |
}], [W.BOOL_VEC4, { | |
type: Int32Array, | |
size: 16, | |
setter: yi | |
}]]) | |
, Oa = new Map([[W.INT, { | |
type: Int32Array, | |
size: 4, | |
setter: (n, e) => t => { | |
n.uniform1i(e, t) | |
} | |
, | |
arraySetter: (n, e) => t => { | |
n.uniform1iv(e, t) | |
} | |
}], [W.INT_VEC2, { | |
type: Int32Array, | |
size: 8, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniform2iv(e, t) | |
} | |
}], [W.INT_VEC3, { | |
type: Int32Array, | |
size: 12, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniform3iv(e, t) | |
} | |
}], [W.INT_VEC4, { | |
type: Int32Array, | |
size: 16, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniform4iv(e, t) | |
} | |
}], [W.UNSIGNED_INT, { | |
type: Uint32Array, | |
size: 4, | |
setter: (n, e) => t => { | |
n.uniform1ui(e, t) | |
} | |
, | |
arraySetter: (n, e) => t => { | |
n.uniform1uiv(e, t) | |
} | |
}], [W.UNSIGNED_INT_VEC2, { | |
type: Uint32Array, | |
size: 8, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniform2uiv(e, t) | |
} | |
}], [W.UNSIGNED_INT_VEC3, { | |
type: Uint32Array, | |
size: 12, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniform3uiv(e, t) | |
} | |
}], [W.UNSIGNED_INT_VEC4, { | |
type: Uint32Array, | |
size: 16, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniform4uiv(e, t) | |
} | |
}], [W.FLOAT, { | |
type: Float32Array, | |
size: 4, | |
setter: (n, e) => t => { | |
n.uniform1f(e, t) | |
} | |
, | |
arraySetter: (n, e) => t => { | |
n.uniform1fv(e, t) | |
} | |
}], [W.FLOAT_VEC2, { | |
type: Float32Array, | |
size: 8, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniform2fv(e, t) | |
} | |
}], [W.FLOAT_VEC3, { | |
type: Float32Array, | |
size: 12, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniform3fv(e, t) | |
} | |
}], [W.FLOAT_VEC4, { | |
type: Float32Array, | |
size: 16, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniform4fv(e, t) | |
} | |
}], [W.FLOAT_MAT2, { | |
type: Float32Array, | |
size: 32, | |
rows: 2, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniformMatrix2fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT3, { | |
type: Float32Array, | |
size: 48, | |
rows: 3, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniformMatrix3fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT4, { | |
type: Float32Array, | |
size: 64, | |
rows: 4, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniformMatrix4fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT2x3, { | |
type: Float32Array, | |
size: 32, | |
rows: 2, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniformMatrix2x3fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT2x4, { | |
type: Float32Array, | |
size: 32, | |
rows: 2, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniformMatrix2x4fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT3x2, { | |
type: Float32Array, | |
size: 48, | |
rows: 3, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniformMatrix3x2fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT3x4, { | |
type: Float32Array, | |
size: 48, | |
rows: 3, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniformMatrix3x4fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT4x2, { | |
type: Float32Array, | |
size: 64, | |
rows: 4, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniformMatrix4x3fv(e, !1, t) | |
} | |
}], [W.FLOAT_MAT4x3, { | |
type: Float32Array, | |
size: 64, | |
rows: 4, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniformMatrix4x3fv(e, !1, t) | |
} | |
}], [W.BOOL, { | |
type: Int32Array, | |
size: 4, | |
setter: (n, e) => t => { | |
n.uniform1i(e, t) | |
} | |
, | |
arraySetter: (n, e) => t => { | |
n.uniform1iv(e, t) | |
} | |
}], [W.BOOL_VEC2, { | |
type: Int32Array, | |
size: 8, | |
cols: 2, | |
setter: (n, e) => t => { | |
n.uniform2iv(e, t) | |
} | |
}], [W.BOOL_VEC3, { | |
type: Int32Array, | |
size: 12, | |
cols: 3, | |
setter: (n, e) => t => { | |
n.uniform3iv(e, t) | |
} | |
}], [W.BOOL_VEC4, { | |
type: Int32Array, | |
size: 16, | |
cols: 4, | |
setter: (n, e) => t => { | |
n.uniform4iv(e, t) | |
} | |
}], [W.SAMPLER_2D, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D | |
}], [W.SAMPLER_2D_SHADOW, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D | |
}], [W.SAMPLER_2D_ARRAY, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D_ARRAY | |
}], [W.SAMPLER_2D_ARRAY_SHADOW, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D_ARRAY | |
}], [W.SAMPLER_3D, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_3D | |
}], [W.SAMPLER_CUBE, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_CUBE_MAP | |
}], [W.SAMPLER_CUBE_SHADOW, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_CUBE_MAP | |
}], [W.INT_SAMPLER_2D, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D | |
}], [W.INT_SAMPLER_2D_ARRAY, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D_ARRAY | |
}], [W.INT_SAMPLER_3D, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_3D | |
}], [W.INT_SAMPLER_CUBE, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_CUBE_MAP | |
}], [W.UNSIGNED_INT_SAMPLER_2D, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D | |
}], [W.UNSIGNED_INT_SAMPLER_2D_ARRAY, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_2D_ARRAY | |
}], [W.UNSIGNED_INT_SAMPLER_3D, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_3D | |
}], [W.UNSIGNED_INT_SAMPLER_CUBE, { | |
type: null, | |
size: 0, | |
setter: ln, | |
arraySetter: cn, | |
bindPoint: W.TEXTURE_CUBE_MAP | |
}]]); | |
function yi(n, e) { | |
return function(t) { | |
if (t.value) { | |
if (n.disableVertexAttribArray(e), | |
4 !== t.value.length) | |
throw new Error("The length of an integer constant value must be 4!"); | |
n.vertexAttribI4iv(e, t.value) | |
} else | |
n.bindBuffer(W.ARRAY_BUFFER, t.buffer), | |
n.enableVertexAttribArray(e), | |
n.vertexAttribIPointer(e, t.numComponents || t.size, t.type || W.INT, t.stride || 0, t.offset || 0), | |
void 0 !== t.divisor && n.vertexAttribDivisor(e, t.divisor) | |
} | |
} | |
function du(n, e) { | |
return function(t) { | |
if (t.value) { | |
if (n.disableVertexAttribArray(e), | |
4 !== t.value.length) | |
throw new Error("The length of an integer constant value must be 4!"); | |
n.vertexAttribI4uiv(e, t.value) | |
} else | |
n.bindBuffer(W.ARRAY_BUFFER, t.buffer), | |
n.enableVertexAttribArray(e), | |
n.vertexAttribIPointer(e, t.numComponents || t.size, t.type || W.UNSIGNED_INT, t.stride || 0, t.offset || 0), | |
void 0 !== t.divisor && n.vertexAttribDivisor(e, t.divisor) | |
} | |
} | |
function hu(n, e) { | |
return t => { | |
if (t.value) | |
switch (n.disableVertexAttribArray(e), | |
t.value.length) { | |
case 4: | |
n.vertexAttrib4fv(e, t.value); | |
break; | |
case 3: | |
n.vertexAttrib3fv(e, t.value); | |
break; | |
case 2: | |
n.vertexAttrib2fv(e, t.value); | |
break; | |
case 1: | |
n.vertexAttrib1fv(e, t.value); | |
break; | |
default: | |
throw new Error(`TYPEERROR: Wrong attribute info: The length of a float constant cannot be ${t.value.length}`) | |
} | |
else | |
n.bindBuffer(W.ARRAY_BUFFER, t.buffer), | |
n.enableVertexAttribArray(e), | |
n.vertexAttribPointer(e, t.numComponents || t.size, t.type || W.FLOAT, t.normalize || !1, t.stride || 0, t.offset || 0), | |
void 0 !== t.divisor && n.vertexAttribDivisor(e, t.divisor) | |
} | |
} | |
function Tg(n, e, t) { | |
return function(r) { | |
n.bindBuffer(W.ARRAY_BUFFER, r.buffer); | |
const i = t.count | |
, o = r.numComponents || r.size || t.size | |
, s = o / i | |
, a = r.type || W.FLOAT | |
, l = Oa.get(a).size * o | |
, c = r.offset || 0 | |
, u = l / i | |
, d = r.normalize || !1; | |
for (let h = 0; h < i; h++) | |
n.enableVertexAttribArray(e + 1), | |
n.vertexAttribPointer(e + 1, s, a, d, l, c + u * h), | |
void 0 !== r.divisor && n.vertexAttribDivisor(e + h, r.divisor) | |
} | |
} | |
function ln(n, e, t, r) { | |
return (i, o) => { | |
n.uniform1i(e, r), | |
n.activeTexture(W.TEXTURE0 + r), | |
n.bindTexture(Oa.get(t).bindPoint, i), | |
n.bindSampler(r, o) | |
} | |
} | |
function cn(n, e, t, r, i) { | |
const o = new Int32Array(i); | |
return o.forEach( (s, a) => {} | |
), | |
(s, a) => { | |
n.uniform1iv(e, o); | |
for (let l = 0; l < Math.min(s.length, a.length); l++) | |
n.activeTexture(W.TEXTURE0 + o[l]), | |
n.bindTexture(Oa.get(t).bindPoint, s[l]), | |
n.bindSampler(r, a[l]) | |
} | |
} | |
var Pt; | |
!function(n) { | |
const t = /^[ \t]*\n/ | |
, a = /\[\d+\]\.$/; | |
function c(m) { | |
console.error(m) | |
} | |
function d(m, x, D, k) { | |
const V = k || c | |
, z = m.createShader(D); | |
return t.test(x) && (x = x.replace(t, "")), | |
m.shaderSource(z, x), | |
m.compileShader(z), | |
m.getShaderParameter(z, m.COMPILE_STATUS) ? z : (V("*** Error compiling shader '" + z + "':" + m.getShaderInfoLog(z) + "\n" + x.split("\n").map( (ne, ce) => `${ce + 1}: ${ne}`).join("\n")), | |
m.deleteShader(z), | |
null) | |
} | |
function h(m, x, D) { | |
const k = D.errorCallback || c | |
, V = m.createProgram(); | |
if (x.forEach(j => { | |
m.attachShader(V, j) | |
} | |
), | |
D.attributeLoations && Object.keys(D.attributeLoations).forEach( (j, Y) => { | |
m.bindAttribLocation(V, D.attributeLoations[Y], j) | |
} | |
), | |
D.transformFeedbackVaryings) { | |
const j = Object.keys(D.transformFeedbackVaryings.attribs); | |
m.transformFeedbackVaryings(V, j, D.transformFeedbackMode || W.SEPARATE_ATTRIBS) | |
} | |
return m.linkProgram(V), | |
m.getProgramParameter(V, m.LINK_STATUS) ? V : (k("Error in program linking:" + m.getProgramInfoLog(V)), | |
m.deleteProgram(V), | |
x.forEach(Y => { | |
m.deleteShader(Y) | |
} | |
), | |
null) | |
} | |
function f(m, x, D) { | |
const k = []; | |
for (let V = 0; V < x.length; V++) | |
k.push(d(m, x[V], m[Tj[V]], D.errorCallback)); | |
return h(m, k, D) | |
} | |
function _(m, x) { | |
const D = {} | |
, k = m.getProgramParameter(x, m.ACTIVE_ATTRIBUTES); | |
for (let V = 0; V < k; V++) { | |
const z = m.getActiveAttrib(x, V); | |
if (!z) | |
break; | |
const j = m.getAttribLocation(x, z.name) | |
, Y = yD.get(z.type); | |
D[z.name] = yD.get(z.type).setter(m, j, Y) | |
} | |
return D | |
} | |
function C(m, x) { | |
let D = 0; | |
function k(j, Y) { | |
const ae = j.name.endsWith("[0]") | |
, ne = j.type | |
, ce = Oa.get(ne); | |
if (void 0 === ce) | |
throw new Error(`TYPEERROR: Unknown type: 0x${ne.toString(16)}`); | |
if (void 0 === ce.bindPoint) | |
return ae && void 0 !== ce.arraySetter ? ce.arraySetter(m, Y) : ce.setter(m, Y); | |
{ | |
const Re = D; | |
return D += j.size, | |
ae ? ce.arraySetter(m, Y, ne, Re, j.size) : ce.setter(m, Y, ne, Re, j.size) | |
} | |
} | |
const V = {} | |
, z = m.getProgramParameter(x, m.ACTIVE_UNIFORMS); | |
for (let j = 0; j < z; j++) { | |
const Y = m.getActiveUniform(x, j); | |
if (!Y) | |
break; | |
let ae = Y.name; | |
ae.endsWith("[0]") && (ae = ae.slice(0, ae.length - 3)); | |
let ne = m.getUniformLocation(x, Y.name); | |
if (ne) { | |
const ce = k(Y, ne); | |
V[ae] = ce | |
} | |
} | |
return V | |
} | |
function R(m, x) { | |
Object.keys(x).forEach(D => { | |
const k = m.attribSetters[D]; | |
k && k(x[D]) | |
} | |
) | |
} | |
function N(m, x, D, k) { | |
const V = m.createVertexArray(); | |
return m.bindVertexArray(V), | |
R(x, D), | |
k && m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, k), | |
m.bindVertexArray(null), | |
V | |
} | |
function q(m, x, D) { | |
for (let k in D.attribs) { | |
const V = x.transformFeedbackInfo[k]; | |
if (V) { | |
const z = D[k]; | |
z.offset ? m.bindBufferRange(W.TRANSFORM_FEEDBACK_BUFFER, V.index, z.buffer, z.offset, z.size) : m.bindBufferBase(W.TRANSFORM_FEEDBACK_BUFFER, V.index, z.buffer) | |
} | |
} | |
} | |
function g(m, x, D, k) { | |
if (x || void 0 !== D) { | |
k = k || 1; | |
const z = m.length / 4; | |
return j => { | |
let Y = 0 | |
, ae = 0; | |
for (let ne = 0; ne < z; ne++) { | |
for (let ce = 0; ce < k; ce++) | |
m[Y++] = j[ae++]; | |
Y += 4 - k | |
} | |
} | |
} | |
return V => { | |
Array.isArray(V) ? m.set(V) : m[0] = V | |
} | |
} | |
function E(m, x, D) { | |
const k = void 0 !== x.uniformBlockSpec ? x.uniformBlockSpec.blockSpecs[D.name] : void 0; | |
return void 0 !== k && (m.bindBufferRange(W.UNIFORM_BUFFER, k.index, D.buffer, D.offset || 0, D.array.byteLength), | |
!0) | |
} | |
function L(m, x, D) { | |
m.bindTexture(m.TEXTURE_2D, x), | |
m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL, !1), | |
m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MAG_FILTER, m.NEAREST), | |
m.texParameteri(m.TEXTURE_2D, m.TEXTURE_MIN_FILTER, m.NEAREST), | |
m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_S, m.CLAMP_TO_EDGE), | |
m.texParameteri(m.TEXTURE_2D, m.TEXTURE_WRAP_T, m.CLAMP_TO_EDGE), | |
"colour" === D ? (m.texStorage2D(m.TEXTURE_2D, 1, m.RGBA16F, m.drawingBufferWidth, m.drawingBufferHeight), | |
m.framebufferTexture2D(m.FRAMEBUFFER, m.COLOR_ATTACHMENT0, m.TEXTURE_2D, x, 0)) : "alpha" === D ? (m.texStorage2D(m.TEXTURE_2D, 1, m.R16F, m.drawingBufferWidth, m.drawingBufferHeight), | |
m.framebufferTexture2D(m.FRAMEBUFFER, m.COLOR_ATTACHMENT1, m.TEXTURE_2D, x, 0)) : "depth" === D && (m.texStorage2D(m.TEXTURE_2D, 1, m.DEPTH_COMPONENT16, m.drawingBufferWidth, m.drawingBufferHeight), | |
m.framebufferTexture2D(m.FRAMEBUFFER, m.DEPTH_ATTACHMENT, m.TEXTURE_2D, x, 0)) | |
} | |
n.glEnumToString = function l(m, x) { | |
const D = {}; | |
return Object.keys(m).forEach(k => { | |
"number" == typeof m[k] && (D[m[k]] = k) | |
} | |
), | |
D[x] || "0x" + x.toString(16) | |
} | |
, | |
n.loadShader = d, | |
n.createProgram = h, | |
n.createProgramFromSources = f, | |
n.getBindPointForSamplerType = function p(m, x) { | |
return x === m.SAMPLER_2D ? m.TEXTURE_2D : x === m.SAMPLER_CUBE ? m.TEXTURE_CUBE_MAP : void 0 | |
} | |
, | |
n.createAttributeSetters = _, | |
n.createUniformSetters = C, | |
n.createProgramInfo = function S(m, x, D) { | |
const k = f(m, x, D = void 0 !== D ? D : {}); | |
return k ? { | |
program: k, | |
attribSetters: _(m, k), | |
uniformSetters: C(m, k) | |
} : null | |
} | |
, | |
n.setAttributes = R, | |
n.setUniforms = function v(m, x) { | |
Object.keys(x).forEach(D => { | |
const k = m.uniformSetters[D]; | |
k && k(x[D]) | |
} | |
) | |
} | |
, | |
n.setBuffersAndAttributes = function O(m, x, D) { | |
void 0 !== D.buffer ? R(x, D.buffer.attribs) : void 0 !== D.vertexArrayInfo && (m.bindVertexArray(D.vertexArrayInfo.vertexArrayObject), | |
D.buffer.indices && m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, D.buffer.indices)) | |
} | |
, | |
n.createVertexArrayInfo = function M(m, x, D) { | |
const k = m.createVertexArray(); | |
return m.bindVertexArray(k), | |
x.forEach(V => { | |
R(V, D.attribs), | |
D.indices && m.bindBuffer(m.ELEMENT_ARRAY_BUFFER, D.indices) | |
} | |
), | |
m.bindVertexArray(null), | |
{ | |
numElements: D.numElements, | |
elementType: D.elementType, | |
vertexArrayObject: k | |
} | |
} | |
, | |
n.createVAOAndSetAttributes = N, | |
n.createVAOFromBufferInfo = function F(m, x, D) { | |
return N(m, x, D.attribs, D.indices) | |
} | |
, | |
n.createTransformFeedbackInfo = function $(m, x) { | |
var D = {}; | |
const k = m.getProgramParameter(x, W.TRANSFORM_FEEDBACK_VARYINGS); | |
for (let V = 0; V < k; V++) { | |
const z = m.getTransformFeedbackVarying(x, V); | |
D[z.name] = { | |
index: V, | |
type: z.type, | |
size: z.size | |
} | |
} | |
return D | |
} | |
, | |
n.bindTransformFeedbackInfo = q, | |
n.createTransformFeedback = function K(m, x, D) { | |
const k = m.createTransformFeedback(); | |
return m.bindTransformFeedback(W.TRANSFORM_FEEDBACK, k), | |
m.useProgram(x.program), | |
void 0 !== D && q(m, x, D), | |
m.bindTransformFeedback(W.TRANSFORM_FEEDBACK, null), | |
k | |
} | |
, | |
n.createUniformBlockSpecFromProgram = function X(m, x) { | |
const D = x.program | |
, k = m.getProgramParameter(D, W.ACTIVE_UNIFORMS) | |
, V = new Array(k) | |
, z = []; | |
V.forEach( (ne, ce) => {} | |
); | |
const j = { | |
type: m.getActiveUniforms(D, V, m.UNIFORM_TYPE), | |
size: m.getActiveUniforms(D, V, m.UNIFORM_SIZE), | |
blockIndex: m.getActiveUniforms(D, V, m.UNIFORM_BLOCK_INDEX), | |
offset: m.getActiveUniforms(D, V, m.UNIFORM_OFFSET) | |
}; | |
for (let ne = 0; ne < k; ne++) | |
z.push({ | |
name: m.getActiveUniform(D, ne).name, | |
type: j.type[ne], | |
size: j.size[ne], | |
blockIndex: j.blockIndex[ne], | |
offset: j.offset[ne] | |
}); | |
const Y = {} | |
, ae = m.getProgramParameter(D, W.ACTIVE_UNIFORM_BLOCKS); | |
for (let ne = 0; ne < ae; ne++) { | |
const ce = m.getActiveUniformBlockName(D, ne) | |
, Re = m.getActiveUniformBlockParameter(D, ne, W.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER) | |
, Me = m.getActiveUniformBlockParameter(D, ne, W.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER); | |
Y[ce] = { | |
index: m.getUniformBlockIndex(D, ce), | |
size: m.getActiveUniformBlockParameter(D, ne, W.UNIFORM_BLOCK_DATA_SIZE), | |
uniformIndices: m.getActiveUniformBlockParameter(D, ne, W.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES), | |
usedByVertexShader: Re, | |
usedByFragmentShader: Me, | |
used: Re || Me | |
} | |
} | |
return { | |
blockSpecs: Y, | |
uniformData: z | |
} | |
} | |
, | |
n.createUniformBlockUniformSetter = g, | |
n.createUniformBlockInfoFromProgram = function y(m, x, D) { | |
const k = x.program | |
, V = void 0 !== x.uniformBlockSpec ? x.uniformBlockSpec.blockSpecs[D] : void 0 | |
, z = void 0 !== x.uniformBlockSpec ? x.uniformBlockSpec.uniformData : void 0; | |
if (void 0 === V) | |
return function u(m) { | |
console.warn(m) | |
}(`WARN: CANNOT find uniform block object named: ${D}.`), | |
{ | |
name: D, | |
array: null, | |
buffer: null | |
}; | |
const j = new ArrayBuffer(V.size) | |
, Y = m.createBuffer(); | |
m.bindBuffer(W.UNIFORM_BUFFER, Y), | |
m.uniformBlockBinding(k, V.index, V.index); | |
let ae = D + "."; | |
a.test(ae) && (ae = ae.replace(a, ".")); | |
const ne = {} | |
, ce = {}; | |
return V.uniformIndices.forEach(Re => { | |
const Me = z[Re]; | |
let Le = Me.name; | |
Le.startsWith(ae) && (Le = Le.slice(ae.length)); | |
const rt = Le.endsWith("[0]"); | |
rt && (Le = Le.slice(0, Le.length - 3)); | |
const Qe = Oa.get(Me.type) | |
, st = Qe.type | |
, ht = rt ? function ie(m, x) { | |
return ((m + (x - 1)) / x | 0) * x | |
}(Qe.size, 16) * Me.size : Qe.size * Me.size | |
, at = new st(j,Me.offset,ht / st.BYTES_PER_ELEMENT); | |
ne[Le] = at; | |
const ft = g(at, rt, Qe.rows, Qe.cols); | |
ce[Le] = ft | |
} | |
), | |
{ | |
name: D, | |
array: j, | |
buffer: Y, | |
uniforms: ne, | |
setters: ce | |
} | |
} | |
, | |
n.bindUniformBlock = E, | |
n.setUniformBlock = function b(m, x, D) { | |
E(m, x, D) && m.bufferData(W.UNIFORM_BUFFER, D.array, W.DYNAMIC_DRAW) | |
} | |
, | |
n.resizeCanvasToDisplaySize = function w(m, x) { | |
const D = m.clientWidth * (x = x || 1) | 0 | |
, k = m.clientHeight * x | 0; | |
return (m.width !== D || m.height !== k) && (m.width = D, | |
m.height = k, | |
!0) | |
} | |
, | |
n.createWOITBufferInfo = function P(m) { | |
const x = m.createBuffer(); | |
return m.bindBuffer(m.ARRAY_BUFFER, x), | |
m.bufferData(m.ARRAY_BUFFER, new Float32Array([-1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 1, -1]), m.STATIC_DRAW), | |
m.bindBuffer(m.ARRAY_BUFFER, null), | |
{ | |
numElements: 6, | |
attribs: { | |
a_position: { | |
numComponents: 2, | |
buffer: x, | |
type: m.FLOAT | |
} | |
} | |
} | |
} | |
, | |
n.bindWOITTextures = function G(m, x, D, k) { | |
m.bindFramebuffer(m.FRAMEBUFFER, k), | |
m.activeTexture(m.TEXTURE0), | |
L(m, x, "colour"), | |
L(m, D, "alpha"), | |
m.drawBuffers([m.COLOR_ATTACHMENT0, m.COLOR_ATTACHMENT1]), | |
m.bindFramebuffer(m.FRAMEBUFFER, null), | |
m.activeTexture(m.TEXTURE1), | |
m.bindTexture(m.TEXTURE_2D, x), | |
m.activeTexture(m.TEXTURE2), | |
m.bindTexture(m.TEXTURE_2D, D) | |
} | |
}(Pt || (Pt = {})); | |
const He = { | |
VS: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\t\n\tuniform mat4 u_worldMatrix;\n\t\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t\t// DO NOT REMOVE THIS LINE! ITS A TRICK FOR CALIBRATION IN SPECIFIC ANGLER\n\t\tgl_Position.z -= 0.0001;\n\t}", | |
FS: "\n\t#version 300 es\n\tprecision highp float;\n\t\n\tuniform vec4 u_color;\n\t\n\tout vec4 v_fragmentColor;\n\t\n\tvoid main() {\n\t\tv_fragmentColor = u_color;\n\t}", | |
VSWithPLight: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\tin vec3 a_normal;\n\t\n\tuniform mat4 u_worldMatrix;\n\tuniform mat4 u_modelITMatrix;\n\t\n\tout highp vec3 v_normal;\n\t\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t\tv_normal = mat3(u_modelITMatrix) * a_normal;\n\t}", | |
FSWithPLight: "\n\t#version 300 es\n\tprecision highp float;\n\t\n\tin highp vec3 v_normal;\n\n\tuniform vec4 u_color;\n\tuniform vec3 u_lightNormal;\n\tuniform vec3 u_lightColor;\n\tuniform float u_shininess;\n\n\tout vec4 v_fragmentColor;\n\t\n\tvoid main() {\n\t\tfloat light = dot(normalize(v_normal), u_lightNormal) * 0.5 + 0.5;\n\t\tv_fragmentColor = u_color;\n\t\tv_fragmentColor.rgb = v_fragmentColor.rgb + (vec3(1.0, 1.0, 1.0) - v_fragmentColor.rgb) * pow(light, u_shininess) * u_lightColor;\n\t\tv_fragmentColor.a = u_color.a;\n\t}", | |
VSWithDLight: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\tin vec3 a_normal;\n\t\n\tuniform mat4 u_worldMatrix;\n\tuniform mat4 u_modelITMatrix;\n\n\tuniform mat4 u_lightPosition;\n\t\n\tout highp vec3 v_normal;\n\tout highp vec3 v_lightPosition;\n\tout highp vec3 v_surfaceToLight;\n\t\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t\tv_normal = mat3(u_modelITMatrix) * a_normal;\n\t\tv_lightPosition = mat3(u_worldMatrix) * u_lightPosition;\n\t\tv_surfaceToLight = (u_lightPosition - u_worldMatrix * a_position).xyz\n\t}", | |
FSWithDLight: "\n\t#version 300 es\n\tprecision highp float;\n\t\n\tin highp vec3 v_normal;\n\tin highp vec3 v_lightPosition\n\n\tuniform vec4 u_color;\n\tuniform vec3 u_lightNormal;\n\tuniform vec3 u_lightColor;\n\tuniform float u_shininess;\n\n\tout vec4 v_fragmentColor;\n\t\n\tvoid main() {\n\t\tfloat light = dot(normalize(v_normal), u_lightNormal) * 0.5 + 0.5;\n\t\tv_fragmentColor = u_color;\n\t\tv_fragmentColor.rgb = v_fragmentColor.rgb + (vec3(1.0, 1.0, 1.0) - v_fragmentColor.rgb) * pow(light, u_shininess) * u_lightColor;\n\t\tv_fragmentColor.a = u_color.a;\n\t}", | |
VSWithClipping: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\t\n\tuniform mat4 u_modelViewMatrix;\n\tuniform mat4 u_worldMatrix;\n\t\n\tout vec3 v_modelViewPosition;\n\t\n\tvoid main() {\n\t\tv_modelViewPosition = (u_modelViewMatrix * a_position).xyz;\n\t\tgl_Position = u_worldMatrix * a_position;\n\t}", | |
FSWithClipping: "\n\t#version 300 es\n\tprecision highp float;\n\n\tin vec3 v_modelViewPosition;\n\t\n\tuniform mat4 u_viewMatrix;\n\tuniform mat3 u_viewNormalMatrix;\n\tuniform vec4 u_planeEquation;\n\tuniform vec4 u_color;\n\n\tout vec4 v_fragmentColor;\n\n\tvec4 planeToEC(vec4 plane, mat4 viewMatrix, mat3 viewNormalMatrix) {\n\t\tvec3 normal = vec3(plane.x, plane.y, plane.z);\n\t\tvec3 pointInWC = normal * -plane.w;\n\t\tvec3 pointInEC = (viewMatrix * vec4(pointInWC.xyz, 1.0)).xyz;\n\t\tvec3 normalInEC = normalize(viewNormalMatrix * normal);\n\t\treturn vec4(normalInEC, -dot(normalInEC, pointInEC));\n\t}\n\n\tfloat calDistance(vec4 plane, vec3 position) {\n\t\tfloat distance = dot(vec3(plane.x, plane.y, plane.z), position) + plane.w;\n\t\treturn distance;\n\t}\n\t\n\tvoid main() {\n\t\tvec4 planeInEC = planeToEC(u_planeEquation, u_viewMatrix, u_viewNormalMatrix);\n\t\tfloat distance = calDistance(planeInEC, v_modelViewPosition);\n\t\tif (sign(planeInEC.z) * distance > 1e-4) {\n\t\t\tdiscard;\n\t\t}\n\t\tv_fragmentColor = u_color;\n\t}", | |
VSWithTexture: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\tin vec2 a_texcoord;\n\n\tuniform mat4 u_worldMatrix;\n\t\n\tout mediump vec2 v_texcoord;\n\t\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t\tv_texcoord = a_texcoord;\n\t}", | |
FSWithTexture: "\n\t#version 300 es\n\tprecision highp float;\n\n\tin mediump vec2 v_texcoord;\n\t\n\tuniform vec4 u_color;\n\tuniform sampler2D u_texture;\n\t\n\tout vec4 v_fragmentColor;\n\n\tvoid main() {\n\t\tv_fragmentColor = u_color * texture(u_texture, v_texcoord);\n\t}", | |
VSWithWOIT: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\t\n\tvoid main() {\n\t\tgl_Position = a_position;\n\t}", | |
FSWithWOIT: "\n\t#version 300 es\n\tprecision highp float;\n\n\tuniform sampler2D u_accumulateColor;\n\tuniform sampler2D u_accumulateAlpha;\n\t\n\tout vec4 v_fragmentColor;\n\n\tbool isZero(vec4 v) {\n\t\tfloat epsilon = 1e-5;\n\t\treturn abs(v.x) < epsilon && abs(v.y) < epsilon && abs(v.z) < epsilon && abs(v.w) < epsilon;\n\t}\n\n\tvoid main() {\n\t\tivec2\tfragCoord\t= ivec2(gl_FragCoord.xy);\n\t\tvec4\taccumulate\t= texelFetch(u_accumulateColor, fragCoord, 0);\n\t\tif (isZero(accumulate)) {\n\t\t\tv_fragmentColor\t\t= vec4(0.0);\n\t\t} else {\n\t\t\tfloat\talpha\t\t= 1.0 - accumulate.a;\n\t\t\taccumulate.a\t\t= texelFetch(u_accumulateAlpha, fragCoord, 0).r;\n\t\t\tv_fragmentColor\t\t= vec4(alpha * accumulate.rgb / clamp(accumulate.a, 0.001, 50000.0), alpha);\n\t\t}\t\t\n\t}", | |
VSWithAccum: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\t\n\tuniform mat4 u_worldMatrix;\n\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t}", | |
FSWithAccum: "\n\t#version 300 es\n\tprecision highp float;\n\n\tuniform vec4 u_color;\n\t\n\tlayout(location=0) out vec4 accumColor;\n\tlayout(location=1) out float accumAlpha;\n\n\tfloat calWeight(float z, float a) {\n\t\treturn clamp(pow(min(1.0, a * 10.0) + 0.01, 3.0) * 1e8 * pow(1.0 - z * 0.9, 3.0), 1e-2, 3e3);\n\t}\n\n\tvoid main() {\n\t\tvec4 color\t\t= u_color;\n\t\tfloat weight\t= calWeight(gl_FragCoord.z, color.a);\n\t\taccumColor\t\t= vec4(color.rgb * weight, color.a);\n\t\taccumAlpha\t\t= color.a * weight;\n\t}", | |
VSWithAccumAndPLight: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\tin vec3 a_normal;\n\t\n\tuniform mat4 u_worldMatrix;\n\tuniform mat4 u_modelITMatrix; \n\t\n\tout vec3 v_normal;\n\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t\tv_normal = mat3(u_modelITMatrix) * a_normal;\n\t}", | |
FSWithAccumAndPLight: "\n\t#version 300 es\n\tprecision highp float;\n\n\tin vec3 v_normal;\n\n\tuniform vec4 u_color;\n\tuniform vec3 u_lightNormal;\n\tuniform vec3 u_lightColor;\n\tuniform float u_shininess;\n\t\n\tlayout(location=0) out vec4 accumColor;\n\tlayout(location=1) out float accumAlpha;\n\n\tfloat calWeight(float z, float a) {\n\t\treturn clamp(pow(min(1.0, a * 10.0) + 0.01, 3.0) * 1e8 * pow(1.0 - z * 0.9, 3.0), 1e-2, 3e3);\n\t}\n\n\tvoid main() {\n\t\tfloat light\t\t= dot(normalize(v_normal), u_lightNormal.xyz) * 0.5 + 0.5;\n\t\tvec4 color\t\t= vec4((u_color.rgb + (vec3(1.0, 1.0, 1.0) - u_color.rgb) * pow(light, u_shininess) * u_lightColor.xyz) * u_color.a, u_color.a);\n\t\tfloat weight\t= calWeight(gl_FragCoord.z, color.a);\n\t\taccumColor\t\t= vec4(color.rgb * weight, color.a);\n\t\taccumAlpha\t\t= color.a * weight;\n\t}", | |
VSWithAccumAndTexture: "\n\t#version 300 es\n\n\tin vec4 a_position;\n\tin vec2 a_texcoord;\n\t\n\tuniform mat4 u_worldMatrix;\n\t\n\tout mediump vec2 v_texcoord;\n\n\tvoid main() {\n\t\tgl_Position = u_worldMatrix * a_position;\n\t\tv_texcoord = a_texcoord;\n\t}\n\t", | |
FSWithAccumAndTexture: "\n\t#version 300 es\n\tprecision highp float;\n\n\tin mediump vec2 v_texcoord;\n\n\tuniform vec4 u_color;\n\tuniform sampler2D u_texture;\n\t\n\tlayout(location=0) out vec4 accumColor;\n\tlayout(location=1) out float accumAlpha;\n\n\tfloat calWeight(float z, float a) {\n\t\treturn clamp(pow(min(1.0, a * 10.0) + 0.01, 3.0) * 1e8 * pow(1.0 - z * 0.9, 3.0), 1e-2, 3e3);\n\t}\n\n\tvoid main() {\n\t\tvec4 color\t\t= u_color * texture(u_texture, v_texcoord);\n\t\tfloat weight\t= calWeight(gl_FragCoord.z, color.a);\n\t\taccumColor\t\t= vec4(color.rgb * weight, color.a);\n\t\taccumAlpha\t\t= color.a * weight;\n\t}\n\t" | |
} | |
, Ej = location.hostname.includes("fenbilantian.cn") ? `${location.protocol}//webapi.fenbilantian.cn/doc/api/cos/private/gltf` : `${location.protocol}//webapi.fenbi.com/doc/api/cos/private/gltf`; | |
var jt, fu = ( () => (function(n) { | |
n[n.POINTS = 0] = "POINTS", | |
n[n.LINES = 1] = "LINES", | |
n[n.LINE_LOOP = 2] = "LINE_LOOP", | |
n[n.LINE_STRIP = 3] = "LINE_STRIP", | |
n[n.TRIANGLES = 4] = "TRIANGLES", | |
n[n.TRIANGLE_STRIP = 5] = "TRIANGLE_STRIP", | |
n[n.TRIANGLE_FAN = 6] = "TRIANGLE_FAN" | |
}(fu || (fu = {})), | |
fu))(), vi = ( () => (function(n) { | |
n[n.ARRAY_BUFFER = 34962] = "ARRAY_BUFFER", | |
n[n.ELEMENT_ARRAY_BUFFER = 34963] = "ELEMENT_ARRAY_BUFFER" | |
}(vi || (vi = {})), | |
vi))(), Na = ( () => (function(n) { | |
n[n.CLAMP_TO_EDGE = 33071] = "CLAMP_TO_EDGE", | |
n[n.MIRRORED_REPEAT = 33648] = "MIRRORED_REPEAT", | |
n[n.REPEAT = 10497] = "REPEAT" | |
}(Na || (Na = {})), | |
Na))(); | |
class wj { | |
constructor(e, t) { | |
const r = e.nodes.length; | |
this.nodes = []; | |
for (let i = 0; i < r; i++) | |
this.nodes.push(t.nodes[e.nodes[i]]); | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.boundingBox = null | |
} | |
} | |
class rs { | |
constructor(e, t, r) { | |
e = e || T.fromValues(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY), | |
t = t || T.fromValues(Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY), | |
!0 === r ? (this.min = T.clone(e), | |
this.max = T.clone(t)) : (this.min = e, | |
this.max = t), | |
this.transform = pe.create() | |
} | |
updateBoundingBox(e) { | |
return this.min = T.min(this.min, e.min), | |
this.max = T.max(this.max, e.max), | |
this | |
} | |
calculateTransform() { | |
return this.transform[0] = this.max[0] - this.min[0], | |
this.transform[5] = this.max[1] - this.min[1], | |
this.transform[10] = this.max[2] - this.min[2], | |
this.transform[12] = this.min[0], | |
this.transform[13] = this.min[1], | |
this.transform[14] = this.min[2], | |
this | |
} | |
getAABBFromOBB(e) { | |
let t = T.fromValues(e[0], e[1], e[2]) | |
, r = T.fromValues(e[4], e[5], e[6]) | |
, i = T.fromValues(e[8], e[9], e[10]) | |
, o = T.create() | |
, s = T.create() | |
, a = T.fromValues(e[12], e[13], e[14]) | |
, l = T.clone(a); | |
return o = T.scale(t, this.min[0]), | |
s = T.scale(t, this.max[0]), | |
t = T.min(o, s), | |
a = T.add(a, t), | |
t = T.max(o, s), | |
l = T.add(l, t), | |
o = T.scale(r, this.min[1]), | |
s = T.scale(r, this.max[1]), | |
r = T.min(o, s), | |
a = T.add(a, r), | |
r = T.max(o, s), | |
l = T.add(l, r), | |
o = T.scale(i, this.min[2]), | |
s = T.scale(i, this.max[2]), | |
i = T.min(o, s), | |
a = T.add(a, i), | |
i = T.max(o, s), | |
l = T.add(l, i), | |
new rs(a,l).calculateTransform() | |
} | |
} | |
class Dj { | |
constructor(e, t) { | |
this.bufferView = t, | |
this.byteOffset = void 0 !== e.byteOffset ? e.byteOffset : 0, | |
this.componentType = e.componentType, | |
this.normalized = void 0 !== e.normalized && e.normalized, | |
this.count = e.count, | |
this.type = e.type, | |
this.max = e.max, | |
this.min = e.min, | |
this.sparse = void 0 !== e.sparse ? e.sparse : null, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
prepareVertexAttribute(e, t) { | |
e.vertexAttribPointer(t, jt.accessorTypeToNumComponents(this.type), this.componentType, this.normalized, this.bufferView.byteStride, this.byteOffset), | |
e.enableVertexAttribArray(t) | |
} | |
} | |
class Mj { | |
constructor(e, t) { | |
this.buffer = null, | |
this.byteOffset = void 0 !== e.byteOffset ? e.byteOffset : 0, | |
this.byteLength = e.byteLength, | |
this.byteStride = void 0 !== e.byteStride ? e.byteStride : 0, | |
this.target = void 0 !== e.target ? e.target : vi.ARRAY_BUFFER, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.data = t.slice(this.byteOffset, this.byteOffset + this.byteLength) | |
} | |
createBuffer(e) { | |
this.buffer = e.createBuffer() | |
} | |
bindData(e) { | |
const t = this.target || vi.ARRAY_BUFFER; | |
e.bindBuffer(t, this.buffer), | |
e.bufferData(t, this.data, e.STATIC_DRAW), | |
e.bindBuffer(t, null) | |
} | |
} | |
class Aj { | |
constructor(e) { | |
this.orthographic = void 0 !== e.orthographic ? e.orthographic : null, | |
this.perspective = void 0 !== e.perspective ? e.perspective : null, | |
this.type = e.type, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class Ij { | |
constructor(e, t, r) { | |
this.camera = void 0 !== e.camera ? e.camera : null, | |
this.children = [], | |
this.skin = null, | |
this.translation = void 0 !== e.translation ? e.translation : T.create(), | |
this.rotation = void 0 !== e.rotation ? e.rotation : et.create(), | |
this.scale = void 0 !== e.scale ? e.scale : T.fromValues(1, 1, 1), | |
this.matrix = void 0 !== e.matrix ? pe.clone(e.matrix) : pe.fromScaleRotationTranslation(this.translation, this.rotation, this.scale), | |
this.mesh = void 0 !== e.mesh ? r.glTF.meshes[e.mesh] : null, | |
this.weights = void 0 !== e.weights ? e.weights : null, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.nodeID = t, | |
this.childrenID = void 0 !== e.children ? e.children : [], | |
this.parent = null, | |
this.modelMatrix = pe.clone(this.matrix), | |
this.worldMatrix = pe.clone(this.matrix), | |
void 0 !== e.extensions && (this.skinLink = void 0 !== e.extensions.gl_avatar && !0 === r.enableGLAvatar ? new Lj(r.skeletonGLTF.skins[r._glTF.extensions.gl_avatar.skins[e.extensions.gl_avatar.skin.name]],r.glTF,e.extensions.gl_avatar.skin.inverseBindMatrices) : null), | |
this.aabb = null, | |
this.bvh = new rs | |
} | |
traverse(e, t) { | |
e(this, t = void 0 === t ? null : t); | |
for (let r = 0, i = this.children.length; r < i; r++) | |
this.children[r].traverse(e, this) | |
} | |
traversePostOrder(e, t) { | |
t = void 0 === t ? null : t; | |
for (var r = 0, i = this.children.length; r < i; r++) | |
this.children[r].traversePostOrder(e, this); | |
e(this, t) | |
} | |
traverseTwoFunction(e, t, r) { | |
e(this, r = void 0 === r ? null : r); | |
for (let i = 0, o = this.children.length; i < o; i++) | |
this.children[i].traverseTwoFunction(e, t, this); | |
t(this, r) | |
} | |
} | |
class Sj { | |
constructor(e, t, r) { | |
let i, o; | |
this.primitives = [], | |
this.weights = void 0 !== e.weights ? e.weights : null, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.boundingBox = null; | |
for (let s = 0; s < e.primitives.length; s++) | |
i = e.primitives[s], | |
o = new xj(i,r.glTF,r), | |
this.primitives.push(o), | |
o.boundingBox && (this.boundingBox || (this.boundingBox = new rs), | |
this.boundingBox.updateBoundingBox(o.boundingBox)); | |
this.boundingBox && this.boundingBox.calculateTransform(), | |
this.meshID = t | |
} | |
} | |
class xj { | |
constructor(e, t, r) { | |
if (this.attributesID = e.attributes, | |
void 0 !== e.extensions && void 0 !== e.extensions.gl_avatar && !0 === r.enableGLAvatar && e.extensions.gl_avatar.attributes) | |
for (let i in e.extensions.gl_avatar.attributes) | |
this.attributesID[i] = e.extensions.gl_avatar.attributeName[i]; | |
this.attributes = { | |
POSITION: null, | |
NORMAL: null, | |
TEXCOORD_0: null | |
}; | |
for (let i in this.attributesID) | |
this.attributes[i] = t.accessors[this.attributesID[i]]; | |
if (void 0 !== this.attributes.POSITION) { | |
let i = this.attributes.POSITION; | |
i.max && "VEC3" === i.type && (this.boundingBox = new rs(T.fromValues(i.min[0], i.min[1], i.min[2]),T.fromValues(i.max[0], i.max[1], i.max[2])), | |
this.boundingBox.calculateTransform()) | |
} | |
this.indicesID = void 0 !== e.indices ? e.indices : null, | |
null !== this.indicesID ? this.indices = t.accessors[this.indicesID] : this.drawIndices = t.accessors[this.attributesID.POSITION], | |
this.material = void 0 !== e.material ? t.materials[e.material] : null, | |
this.mode = void 0 !== e.mode ? e.mode : fu.TRIANGLES, | |
this.targetsID = void 0 !== e.targets ? e.targets : null; | |
for (let i in this.targetsID) | |
; | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.vertexArray = null, | |
this.vertexBuffer = null, | |
this.shader = null | |
} | |
} | |
class Rj { | |
constructor(e, t) { | |
this.sampler = void 0 !== e.sampler ? t.glTF.samplers[e.sampler] : null, | |
this.source = void 0 !== e.sampler ? t.glTF.images[e.source] : null, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.texture = null | |
} | |
createTexture(e) { | |
this.texture && e.deleteTexture(this.texture), | |
this.texture = e.createTexture(), | |
e.bindTexture(e.TEXTURE_2D, this.texture), | |
e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, e.RGBA, e.UNSIGNED_BYTE, this.source), | |
e.generateMipmap(e.TEXTURE_2D), | |
e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.LINEAR_MIPMAP_LINEAR), | |
e.bindTexture(e.TEXTURE_2D, null) | |
} | |
createCubeTexture(e, t) { | |
this.texture && e.deleteTexture(this.texture), | |
this.texture = e.createTexture(), | |
e.bindTexture(e.TEXTURE_CUBE_MAP, this.texture), | |
e.texImage2D(t, 0, e.RGBA, e.RGBA, e.UNSIGNED_BYTE, this.source), | |
e.generateMipmap(e.TEXTURE_CUBE_MAP), | |
e.texParameteri(e.TEXTURE_CUBE_MAP, e.TEXTURE_MIN_FILTER, e.LINEAR_MIPMAP_LINEAR), | |
e.bindTexture(e.TEXTURE_2D, null) | |
} | |
} | |
class Fj { | |
constructor(e) { | |
this.magFilter = void 0 !== e.magFilter ? e.magFilter : null, | |
this.minFilter = void 0 !== e.minFilter ? e.minFilter : null, | |
this.wrapS = void 0 !== e.wrapS ? e.wrapS : Na.REPEAT, | |
this.wrapT = void 0 !== e.wrapT ? e.wrapT : Na.REPEAT, | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.sampler = null | |
} | |
createSampler(e) { | |
this.sampler = e.createSampler(), | |
e.samplerParameteri(this.sampler, e.TEXTURE_MIN_FILTER, this.minFilter ? this.minFilter : e.NEAREST_MIPMAP_LINEAR), | |
e.samplerParameteri(this.sampler, e.TEXTURE_MAG_FILTER, this.magFilter ? this.magFilter : e.LINEAR), | |
e.samplerParameteri(this.sampler, e.TEXTURE_WRAP_S, this.wrapS), | |
e.samplerParameteri(this.sampler, e.TEXTURE_WRAP_T, this.wrapT) | |
} | |
} | |
class Eg { | |
constructor(e) { | |
this.index = e.index, | |
this.texCoord = void 0 !== e.texCoord ? e.texCoord : 0, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class Pj { | |
constructor(e) { | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.pbrMetallicRoughness = new vD(void 0 !== e.pbrMetallicRoughness ? e.pbrMetallicRoughness : { | |
baseColorFactor: [1, 1, 1, 1], | |
baseColorTexture: null, | |
metallicFactor: 1, | |
roughnessFactor: 1, | |
metallicRoughnessTexture: null | |
}), | |
this.normalTexture = void 0 !== e.normalTexture ? new Oj(e.normalTexture) : null, | |
this.occlusionTexture = void 0 !== e.occlusionTexture ? new Nj(e.occlusionTexture) : null, | |
this.emissiveTexture = void 0 !== e.emissiveTexture ? new Eg(e.emissiveTexture) : null, | |
this.emissiveFactor = void 0 !== e.emissiveFactor ? e.emissiveFactor : [0, 0, 0], | |
this.alphaMode = void 0 !== e.alphaMode ? e.alphaMode : "OPAQUE", | |
this.alphaCutoff = void 0 !== e.alphaCutoff ? e.alphaCutoff : .5, | |
this.doubleSided = !!e.doubleSided | |
} | |
} | |
class vD { | |
constructor(e) { | |
this.baseColorFactor = void 0 !== e.baseColorFactor ? e.baseColorFactor : [1, 1, 1, 1], | |
this.baseColorTexture = void 0 !== e.baseColorTexture ? new Eg(e.baseColorTexture) : null, | |
this.metallicFactor = void 0 !== e.metallicFactor ? e.metallicFactor : 1, | |
this.roughnessFactor = void 0 !== e.roughnessFactor ? e.roughnessFactor : 1, | |
this.metallicRoughnessTexture = void 0 !== e.metallicRoughnessTexture ? new Eg(e.metallicRoughnessTexture) : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class Oj { | |
constructor(e) { | |
this.index = void 0 !== e.index ? e.index : 0, | |
this.texCoord = void 0 !== e.texCoord ? e.texCoord : 0, | |
this.scale = void 0 !== e.scale ? e.scale : 1, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class Nj { | |
constructor(e) { | |
this.index = void 0 !== e.index ? e.index : 0, | |
this.texCoord = void 0 !== e.texCoord ? e.texCoord : 0, | |
this.strength = void 0 !== e.strength ? e.strength : 1, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class kj { | |
constructor(e, t) { | |
this.inverseBindMatrices = void 0 !== e.inverseBindMatrices ? t.accessors[e.inverseBindMatrices] : null, | |
this.skeleton = void 0 !== e.skeleton ? t.nodes[e.skeleton] : null, | |
this.joints = []; | |
for (let r = 0; r < e.joints.length; r++) | |
this.joints.push(t.nodes[e.joints[r]]); | |
if (this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.isLink = !1, | |
this.inverseBindMatrices) { | |
this.inverseBindMatricesData = jt.getAccessorData(this.inverseBindMatrices), | |
this.inverseBindMatrix = []; | |
for (let r = 0; r < this.inverseBindMatricesData.length; r += 16) | |
this.inverseBindMatrix.push(pe.fromValues(this.inverseBindMatricesData[r], this.inverseBindMatricesData[r + 1], this.inverseBindMatricesData[r + 2], this.inverseBindMatricesData[r + 3], this.inverseBindMatricesData[r + 4], this.inverseBindMatricesData[r + 5], this.inverseBindMatricesData[r + 6], this.inverseBindMatricesData[r + 7], this.inverseBindMatricesData[r + 8], this.inverseBindMatricesData[r + 9], this.inverseBindMatricesData[r + 10], this.inverseBindMatricesData[r + 11], this.inverseBindMatricesData[r + 12], this.inverseBindMatricesData[r + 13], this.inverseBindMatricesData[r + 14], this.inverseBindMatricesData[r + 15])) | |
} | |
} | |
} | |
class Lj { | |
constructor(e, t, r) { | |
if (t.skins || (t.skins = []), | |
t.skins.push(this), | |
this.inverseBindMatrices = void 0 !== r ? t.accessors[r] : null, | |
this.skeleton = e.skeleton, | |
this.joints = e.joints, | |
this.name = e.name, | |
this.extensions = e.extensions, | |
this.extras = e.extras, | |
this.isLink = !0, | |
this.inverseBindMatrices) { | |
this.inverseBindMatricesData = jt.getAccessorData(this.inverseBindMatrices), | |
this.inverseBindMatrix = []; | |
for (let i = 0; i < this.inverseBindMatricesData.length; i += 16) | |
this.inverseBindMatrix.push(pe.fromValues(this.inverseBindMatricesData[i], this.inverseBindMatricesData[i + 1], this.inverseBindMatricesData[i + 2], this.inverseBindMatricesData[i + 3], this.inverseBindMatricesData[i + 4], this.inverseBindMatricesData[i + 5], this.inverseBindMatricesData[i + 6], this.inverseBindMatricesData[i + 7], this.inverseBindMatricesData[i + 8], this.inverseBindMatricesData[i + 9], this.inverseBindMatricesData[i + 10], this.inverseBindMatricesData[i + 11], this.inverseBindMatricesData[i + 12], this.inverseBindMatricesData[i + 13], this.inverseBindMatricesData[i + 14], this.inverseBindMatricesData[i + 15])) | |
} | |
} | |
} | |
class Vj { | |
constructor(e, t) { | |
this.samplers = []; | |
for (let r = 0; r < e.samplers.length; r++) | |
this.samplers.push(new jj(e.samplers[r],t)); | |
this.channels = []; | |
for (let r = 0; r < e.channels.length; r++) | |
this.channels.push(new Bj(e.channels[r],this)); | |
this.name = void 0 !== e.name ? e.name : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class Bj { | |
constructor(e, t) { | |
this.sampler = t.samplers[e.sampler], | |
this.target = new Uj(e.target), | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class Uj { | |
constructor(e) { | |
this.nodeID = e.node, | |
this.path = e.path, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class jj { | |
constructor(e, t) { | |
this.input = t.accessors[e.input], | |
this.interpolation = void 0 !== e.interpolation ? e.interpolation : "LINEAR", | |
this.output = t.accessors[e.output], | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extras = void 0 !== e.extras ? e.extras : null, | |
this.keyFrameIndices = jt.getAccessorData(this.input), | |
this.keyFrameRaw = jt.getAccessorData(this.output), | |
this.keyFrames = { | |
src: null, | |
dst: null | |
}, | |
this.currentIndex = 0, | |
this.startTime = this.keyFrameIndices[0], | |
this.endTime = this.keyFrameIndices[this.keyFrameIndices.length - 1], | |
this.duration = this.endTime - this.startTime | |
} | |
updateKeyFrames(e) { | |
for (let r = 0; r < this.keyFrameIndices.length - 1; r++) | |
e > this.keyFrameIndices[r] && e < this.keyFrameIndices[r + 1] && (this.currentIndex = r); | |
const t = jt.accessorTypeToNumComponents(this.output.type); | |
this.keyFrames.src = this.keyFrameRaw.slice(this.currentIndex * t, (this.currentIndex + 1) * t), | |
this.keyFrames.dst = this.keyFrameRaw.slice((this.currentIndex + 1) * t, (this.currentIndex + 2) * t) | |
} | |
} | |
class Hj { | |
constructor(e) { | |
this.asset = e.asset, | |
this.scene = null, | |
this.scenes = void 0 !== e.scenes ? [] : null, | |
this.nodes = void 0 !== e.nodes ? [] : null, | |
this.meshes = void 0 !== e.meshes ? [] : null, | |
this.accessors = void 0 !== e.accessors ? [] : null, | |
this.bufferViews = void 0 !== e.bufferViews ? [] : null, | |
this.buffers = void 0 !== e.buffers ? [] : null, | |
this.animations = void 0 !== e.animations ? [] : null, | |
this.cameras = void 0 !== e.cameras ? [] : null, | |
this.textures = void 0 !== e.textures ? [] : null, | |
this.images = void 0 !== e.images ? [] : null, | |
this.samplers = void 0 !== e.samplers ? [] : null, | |
this.materials = void 0 !== e.materials ? [] : null, | |
this.skins = void 0 !== e.skins ? [] : null, | |
this.extensions = void 0 !== e.extensions ? e.extensions : null, | |
this.extensionsUsed = void 0 !== e.extensionsUsed ? e.extensionsUsed : null, | |
this.extensionsRequired = void 0 !== e.extensionsRequired ? e.extensionsRequired : null, | |
this.extras = void 0 !== e.extras ? e.extras : null | |
} | |
} | |
class ka { | |
constructor(e) { | |
this.glTF = null, | |
this.enableGLAvatar = !1, | |
this.skeletonGLTF = null, | |
this.gl = e | |
} | |
getBaseUri(e) { | |
let t = ""; | |
return -1 !== e.lastIndexOf("/") && (t = e.substring(0, e.lastIndexOf("/") + 1)), | |
t | |
} | |
inferBufferViewTarget() { | |
this._glTF.meshes.forEach(e => { | |
e.primitives.forEach(t => { | |
for (const [r,i] of Object.entries(t.attributes)) | |
("POSITION" === r || "NORMAL" === r || "TEXCOORD_0" === r) && (this._glTF.bufferViews[this._glTF.accessors[i].bufferView].target = vi.ARRAY_BUFFER); | |
if (void 0 !== t.indices) { | |
const r = this._glTF.bufferViews[this._glTF.accessors[t.indices].bufferView]; | |
void 0 !== r.target ? r.target !== vi.ELEMENT_ARRAY_BUFFER && console.warn("BufferView " + t.indices + " should have a target equal to ELEMENT_ARRAY_BUFFER") : r.target = vi.ELEMENT_ARRAY_BUFFER | |
} | |
} | |
) | |
} | |
) | |
} | |
postProcess() { | |
if (this.inferBufferViewTarget(), | |
void 0 !== this._glTF.bufferViews) | |
for (let e = 0; e < this._glTF.bufferViews.length; e++) { | |
const t = new Mj(this._glTF.bufferViews[e],this.glTF.buffers[this._glTF.bufferViews[e].buffer]); | |
t.createBuffer(this.gl), | |
t.bindData(this.gl), | |
this.glTF.bufferViews.push(t) | |
} | |
if (void 0 !== this._glTF.accessors) | |
for (let e = 0; e < this._glTF.accessors.length; e++) | |
this.glTF.accessors.push(new Dj(this._glTF.accessors[e],this.glTF.bufferViews[this._glTF.accessors[e].bufferView])); | |
if (void 0 !== this._glTF.cameras) | |
for (let e = 0; e < this._glTF.cameras.length; e++) | |
this.glTF.cameras.push(new Aj(this._glTF.cameras[e])); | |
if (void 0 !== this._glTF.materials) | |
for (let e = 0; e < this._glTF.materials.length; e++) | |
this.glTF.materials.push(new Pj(this._glTF.materials[e])); | |
if (void 0 !== this._glTF.samplers) | |
for (let e = 0; e < this._glTF.samplers.length; e++) | |
this.glTF.samplers.push(new Fj(this._glTF.samplers[e])); | |
if (void 0 !== this._glTF.textures) | |
for (let e = 0; e < this._glTF.textures.length; e++) | |
this.glTF.textures.push(new Rj(this._glTF.textures[e],this)), | |
this.glTF.textures[e].createTexture(this.gl); | |
if (void 0 !== this._glTF.meshes) | |
for (let e = 0; e < this._glTF.meshes.length; e++) | |
this.glTF.meshes.push(new Sj(this._glTF.meshes[e],e,this)); | |
if (void 0 !== this._glTF.nodes) { | |
for (let e = 0; e < this._glTF.nodes.length; e++) | |
this.glTF.nodes.push(new Ij(this._glTF.nodes[e],e,this)); | |
if (this.glTF.nodes.forEach(e => { | |
for (let t = 0; t < e.childrenID.length; t++) | |
e.children[t] = this.glTF.nodes[e.childrenID[t]], | |
e.children[t].parent = e | |
} | |
), | |
void 0 !== this._glTF.scenes) { | |
for (let e = 0; e < this._glTF.scenes.length; e++) { | |
this.glTF.scenes[e] = new wj(this._glTF.scenes[e],this.glTF), | |
this.glTF.scenes[e].boundingBox = new rs; | |
const t = new Array(this.glTF.nodes.length); | |
for (let r = 0; r < this.glTF.scenes[e].nodes.length; r++) | |
this.glTF.scenes[e].nodes[r].traverseTwoFunction( (i, o) => { | |
t[i.nodeID] = null !== o ? pe.multiply(t[o.nodeID], i.modelMatrix) : pe.clone(i.modelMatrix) | |
} | |
, (i, o) => { | |
i.mesh && (i.worldMatrix = pe.clone(t[i.nodeID]), | |
i.mesh.boundingBox && (i.aabb = i.mesh.boundingBox.getAABBFromOBB(t[i.nodeID]), | |
0 === i.children.length && (i.bvh.min = T.clone(i.aabb.min), | |
i.bvh.max = T.clone(i.aabb.max)))), | |
null !== o ? (o.bvh.min = T.min(o.bvh.min, i.bvh.min), | |
o.bvh.max = T.max(o.bvh.max, i.bvh.max)) : (this.glTF.scenes[e].boundingBox.min = T.min(this.glTF.scenes[e].boundingBox.min, i.bvh.min), | |
this.glTF.scenes[e].boundingBox.max = T.max(this.glTF.scenes[e].boundingBox.max, i.bvh.max)) | |
} | |
); | |
this.glTF.scenes[e].boundingBox.calculateTransform() | |
} | |
this.glTF.scene = void 0 !== this._glTF.scene ? this.glTF.scenes[this._glTF.scene] : this.glTF.scenes[0] | |
} | |
for (let e = 0; e < this.glTF.nodes.length; e++) | |
null !== this.glTF.nodes[e].bvh && this.glTF.nodes[e].bvh.calculateTransform() | |
} | |
if (this._glTF.animations) | |
for (let e = 0; e < this._glTF.animations.length; e++) | |
this.glTF.animations.push(new Vj(this._glTF.animations[e],this.glTF)), | |
this.glTF.animations[e].channels.forEach(t => { | |
t.target.node = this.glTF.nodes[t.target.nodeID] | |
} | |
); | |
if (this._glTF.skins) { | |
for (let e = 0; e < this._glTF.skins.length; e++) | |
this.glTF.skins.push(new kj(this._glTF.skins[e],this.glTF)); | |
for (let e = 0; e < this.glTF.nodes.length; e++) | |
null !== this.glTF.nodes[e].skin && (this.glTF.nodes[e].skin = this.glTF.skins[this._glTF.nodes[this.glTF.nodes[e].nodeID].skin]) | |
} | |
} | |
getAssetUrl(e, t) { | |
return Ht(this, void 0, void 0, function*() { | |
const r = new URL(`${Ej}/url/${e.id}`); | |
r.searchParams.append("name", t || e.value); | |
const i = yield wg(r, { | |
method: "GET", | |
credentials: "include" | |
}); | |
if (i.code === ns.Succeed) | |
return i.data.url; | |
throw new Error("Asset not found: " + r.href) | |
}) | |
} | |
loadGLTF(e) { | |
return Ht(this, void 0, void 0, function*() { | |
try { | |
const i = yield this.getAssetUrl(e, `${e.value}.gltf`) | |
, o = yield fetch(new Request(i)).then(s => { | |
if (s.ok) | |
return s.json(); | |
throw Error("LoadingError: Error occurred in loading glTF JSON.") | |
} | |
); | |
this._glTF = o, | |
this.glTF = new Hj(o) | |
} catch (i) { | |
console.error(i) | |
} | |
const t = new Promise(i => Ht(this, void 0, void 0, function*() { | |
if (this._glTF.buffers) { | |
const o = []; | |
for (const s of this._glTF.buffers) | |
try { | |
const a = yield this.getAssetUrl(e, s.uri); | |
o.push(fetch(new Request(a)).then(l => { | |
if (l.ok) | |
return l.arrayBuffer(); | |
throw Error("LoadingError: Error occurred in loading buffers.") | |
} | |
)) | |
} catch (a) { | |
console.error(a) | |
} | |
for (const [s,a] of o.entries()) | |
this.glTF.buffers[s] = yield a, | |
console.log(`buffer ${s} complete`) | |
} | |
i(!0) | |
})) | |
, r = new Promise(i => Ht(this, void 0, void 0, function*() { | |
if (this._glTF.images) { | |
const o = []; | |
for (const s of this._glTF.images) | |
try { | |
const a = yield this.getAssetUrl(e, s.uri); | |
o.push(fetch(new Request(a)).then(l => { | |
if (l.ok) | |
return l.blob(); | |
throw Error("LoadingError: Error occurred in loading images.") | |
} | |
).then(l => createImageBitmap(l))) | |
} catch (a) { | |
console.error(a) | |
} | |
for (const [s,a] of o.entries()) | |
this.glTF.images[s] = yield a, | |
console.log(`image ${s} complete`) | |
} | |
i(!0) | |
})); | |
return yield t, | |
yield r, | |
this.postProcess(), | |
this.glTF | |
}) | |
} | |
} | |
!function(n) { | |
const e = new Map([["SCALAR", 1], ["VEC2", 2], ["VEC3", 3], ["VEC4", 4], ["MAT2", 4], ["MAT3", 9], ["MAT4", 16]]) | |
, t = new Map([[5120, Int8Array], [5121, Uint8Array], [5122, Int16Array], [5123, Uint16Array], [5124, Int32Array], [5125, Uint32Array], [5126, Float32Array]]); | |
n.accessorTypeToNumComponents = function r(s) { | |
if (e.has(s)) | |
return e.get(s); | |
throw new Error(`NOKEY ERROR: no numComponents for accessorType ${s}`) | |
} | |
, | |
n.glTypeToTypedArray = function i(s) { | |
if (t.has(s)) | |
return t.get(s); | |
throw new Error(`NOKEY ERROR: no typedArray for glType ${s}`) | |
} | |
, | |
n.getAccessorData = function o(s) { | |
return new (n.glTypeToTypedArray(s.componentType))(s.bufferView.data,s.byteOffset,s.count * n.accessorTypeToNumComponents(s.type)) | |
} | |
}(jt || (jt = {})); | |
class bD { | |
constructor(e, t) { | |
this.animationQueue = [], | |
this.parentReference = e, | |
this.animationQueue = [], | |
this.lastAnimation = { | |
camera: this.parentReference.getTransformInfo("camera"), | |
plane: this.parentReference.getTransformInfo("plane"), | |
polyhedron: this.parentReference.getTransformInfo("polyhedron") | |
}, | |
this.isPlaying = !1, | |
this.time = 0, | |
this.timeScale = void 0 !== t ? t : 1 | |
} | |
setTransformInfoHandler(e, t) { | |
let r; | |
"camera" === e ? r = new Ut(this.lastAnimation.camera.translation,t.rotation) : ("plane" === e || "polyhedron" === e) && (r = t), | |
this.parentReference.setTransformInfo(e, r) | |
} | |
add(e) { | |
this.animationQueue.push(e) | |
} | |
clear() { | |
this.animationQueue = [] | |
} | |
start() { | |
this.isPlaying || (this.lastAnimation = { | |
camera: this.parentReference.getTransformInfo("camera"), | |
plane: this.parentReference.getTransformInfo("plane"), | |
polyhedron: this.parentReference.getTransformInfo("polyhedron") | |
}), | |
this.isPlaying = !0, | |
this.parentReference.requestRender() | |
} | |
stop() { | |
this.isPlaying = !1 | |
} | |
step(e) { | |
if (this.isPlaying) | |
if (0 === this.animationQueue.length) | |
this.isPlaying = !1, | |
this.time = 0; | |
else { | |
const t = e * this.timeScale + this.time | |
, r = this.animationQueue[0]; | |
if (t >= r.duration) | |
this.time = 0, | |
this.setTransformInfoHandler(r.type, r.transformInfo), | |
this.lastAnimation[r.type] = r.transformInfo, | |
this.animationQueue.shift(), | |
0 === this.animationQueue.length && (console.info("Animation: Animations end"), | |
this.isPlaying = !1); | |
else { | |
this.time = t; | |
const o = this.animationInterpolate(this.lastAnimation[r.type], r.transformInfo, t / r.duration, r.interpolateType); | |
this.setTransformInfoHandler(r.type, o) | |
} | |
this.parentReference.requestRender() | |
} | |
} | |
animationInterpolate(e, t, r, i) { | |
const o = T.quard(e.translation, t.translation, r, i = i || "linear") | |
, s = et.squard(e.rotation, t.rotation, r, i); | |
return new Ut(o,s) | |
} | |
} | |
class zj { | |
constructor(e, t) { | |
this.parentReference = e, | |
this.animationQueue = [], | |
this.isPlaying = !1, | |
this.time = 0, | |
this.timeScale = void 0 !== t ? t : 1 | |
} | |
add(e) { | |
this.animationQueue.push(e) | |
} | |
clear() { | |
this.isPlaying = !1, | |
this.time = 0, | |
this.animationQueue.forEach(e => { | |
e.samplers.forEach(t => { | |
t.currentIndex = 0 | |
} | |
) | |
} | |
), | |
this.animationQueue = [] | |
} | |
start() { | |
this.isPlaying = !0, | |
this.parentReference.requestRender() | |
} | |
pause() { | |
this.isPlaying = !1 | |
} | |
step(e) { | |
if (e /= 1e3, | |
this.isPlaying) | |
if (0 === this.animationQueue.length) | |
this.isPlaying = !1, | |
this.time = 0; | |
else { | |
const t = this.animationQueue[0] | |
, r = t.channels[0].sampler.duration | |
, i = e * this.timeScale + this.time; | |
i >= r ? (this.time = 0, | |
this.parentReference.stepAnimation(this.getAnimationInfo(t, r)), | |
this.animationQueue.shift(), | |
0 === this.animationQueue.length && (console.info("Animation: Animations end"), | |
this.isPlaying = !1)) : (this.time = i, | |
this.parentReference.stepAnimation(this.getAnimationInfo(t, i))), | |
this.parentReference.requestRender() | |
} | |
} | |
setTimeScale(e) { | |
this.timeScale = e | |
} | |
getAnimationInfo(e, t) { | |
const r = new Map; | |
return e.channels.forEach(i => { | |
const o = i.target.node; | |
let s; | |
s = r.has(o.nodeID) ? r.get(o.nodeID) : { | |
translation: void 0, | |
rotation: void 0, | |
scale: void 0 | |
}, | |
"translation" === i.target.path ? s.translation = this.interpolate(i.sampler, t) : "rotation" === i.target.path ? s.rotation = this.interpolate(i.sampler, t) : "scale" === i.target.path && (s.scale = this.interpolate(i.sampler, t)), | |
r.set(o.nodeID, s) | |
} | |
), | |
r | |
} | |
interpolate(e, t) { | |
e.updateKeyFrames(t); | |
const r = Math.min(1, Math.max(0, t - e.keyFrameIndices[e.currentIndex]) / (e.keyFrameIndices[e.currentIndex + 1] - e.keyFrameIndices[e.currentIndex])); | |
if ("SCALAR" === e.output.type) { | |
if ("LINEAR" === e.interpolation) | |
return dt.lerp(Number(e.keyFrames.src), Number(e.keyFrames.dst), r); | |
if ("STEP" === e.interpolation) | |
return Number(e.keyFrames.dst); | |
if ("CUBICSPLINE" === e.interpolation) | |
return dt.bezp(Number(e.keyFrames.src), Number(e.keyFrames.dst), r) | |
} else if ("VEC3" === e.output.type) { | |
if ("LINEAR" === e.interpolation) | |
return T.lerp(T.fromTypedArray(e.keyFrames.src), T.fromTypedArray(e.keyFrames.dst), r); | |
if ("STEP" === e.interpolation) | |
return T.fromTypedArray(e.keyFrames.dst); | |
if ("CUBICSPLINE" === e.interpolation) | |
return T.bezier(T.fromTypedArray(e.keyFrames.src), T.fromTypedArray(e.keyFrames.dst), r) | |
} else if ("VEC4" === e.output.type) { | |
if ("LINEAR" === e.interpolation) | |
return et.slerp(kt.fromTypedArray(e.keyFrames.src), kt.fromTypedArray(e.keyFrames.dst), r); | |
if ("STEP" === e.interpolation) | |
return kt.fromTypedArray(e.keyFrames.dst); | |
if ("CUBICSPLINE" === e.interpolation) | |
return et.sbezier(kt.fromTypedArray(e.keyFrames.src), kt.fromTypedArray(e.keyFrames.dst), r) | |
} | |
} | |
} | |
class $j { | |
constructor(e, t, r) { | |
if (this.a = T.clone(e), | |
this.b = T.clone(t), | |
this.c = T.clone(r), | |
T.equals(this.normal, T.create())) | |
return null | |
} | |
get edgeAB() { | |
return T.subtract(this.b, this.a) | |
} | |
get edgeAC() { | |
return T.subtract(this.c, this.a) | |
} | |
get edgeBC() { | |
return T.subtract(this.c, this.b) | |
} | |
get normal() { | |
return T.normalize(T.cross(this.edgeAB, this.edgeAC)) | |
} | |
getBaryCoord(e) { | |
const t = T.dot(this.edgeAC, this.edgeAC) | |
, r = T.dot(this.edgeAC, this.edgeAB) | |
, i = T.dot(this.edgeAC, T.subtract(e, this.a)) | |
, o = T.dot(this.edgeAB, this.edgeAB) | |
, s = T.dot(this.edgeAB, T.subtract(e, this.a)) | |
, a = t * o - r * r; | |
if (0 === a) | |
return T.fromValues(-2, -1, -1); | |
const l = 1 / a | |
, c = (o * i - r * s) * l | |
, u = (t * s - r * i) * l; | |
return T.fromValues(1 - c - u, u, c) | |
} | |
getTexCoord(e, t) { | |
const r = this.getBaryCoord(e); | |
return $n.add($n.add($n.scale(t.a, r[0]), $n.scale(t.b, r[1])), $n.scale(t.c, r[2])) | |
} | |
} | |
class pu { | |
constructor(e, t) { | |
this.origin = e || T.create(), | |
this.direction = t || T.fromValues(0, 0, 1) | |
} | |
set(e, t) { | |
return this.origin = T.clone(e), | |
this.direction = T.clone(t), | |
this | |
} | |
copy(e) { | |
return this.origin = T.clone(e.origin), | |
this.direction = T.clone(e.direction), | |
this | |
} | |
clone() { | |
return (new pu).copy(this) | |
} | |
at(e) { | |
return T.add(this.origin, T.scale(this.direction, e)) | |
} | |
fromWorldToNode(e) { | |
return this.origin = T.transformMat4(this.origin, e), | |
this.direction = T.normalize(T.transformMat3(this.direction, ts.fromMat4(e))), | |
this | |
} | |
squaredDistanceToPoint(e) { | |
const t = T.dot(T.subtract(e, this.origin), this.direction); | |
return T.squaredDistance(t < 0 ? this.origin : T.add(T.scale(this.direction, t), this.origin), e) | |
} | |
squaredDistanceToSegment(e, t, r, i) { | |
const o = T.scale(T.add(e, t), .5) | |
, s = T.normalize(T.subtract(t, e)) | |
, a = T.subtract(this.origin, o) | |
, l = .5 * T.distance(e, t); | |
let f, p, _, c = -T.dot(this.direction, s), u = T.dot(a, this.direction), d = T.dot(a, s), h = T.squaredLength(a); | |
if (1 - Math.abs(c) > 1e-5) { | |
let C = Math.abs(1 - c * c) | |
, S = l * C; | |
d = -T.dot(a, s), | |
f = c * d - u, | |
p = c * u - d, | |
f >= 0 ? p >= -S ? p <= S ? (f /= C, | |
p /= C, | |
_ = f * (f + c * p + 2 * u) + p * (c * f + p + 2 * d) + h) : (p = l, | |
f = Math.max(-(c * p + u), 0), | |
_ = -f * f + p * (p + 2 * d) + h) : (p = -l, | |
f = Math.max(-(c * p + u), 0), | |
_ = -f * f + p * (p + 2 * d) + h) : p <= -S ? (f = -(-c * l + u), | |
f > 0 ? p = -l : (f = 0, | |
p = -d, | |
p < -l ? p = -l : p > l && (p = l)), | |
_ = -f * f + p * (p + 2 * d) + h) : p <= S ? (f = 0, | |
p = -d, | |
p < -l ? p = -l : p > l && (p = l), | |
_ = p * (p + 2 * d) + h) : (f = -(-c * l + u), | |
f > 0 ? p = l : (f = 0, | |
p = -d, | |
p < -l ? p = -l : p > l && (p = l)), | |
_ = -f * f + p * (p + 2 * d) + h) | |
} else | |
p = c > 0 ? -l : l, | |
f = Math.max(-(c * p + u), 0), | |
_ = -f * f + p * (p + 2 * d) + h; | |
return r && (r = T.scale(this.direction, f), | |
r = T.add(r, this.origin)), | |
i && (i = T.scale(s, p), | |
i = T.add(o, i)), | |
_ | |
} | |
intersectSphere(e) { | |
const t = T.subtract(e.center, this.origin) | |
, r = T.dot(t, this.direction) | |
, i = T.squaredLength(t) - r * r | |
, o = e.radius * e.radius; | |
if (i > o) | |
return null; | |
const s = Math.sqrt(o - i) | |
, a = r - s | |
, l = r + s; | |
return a < 0 && l < 0 ? null : this.at(a < 0 ? l : a) | |
} | |
intersectBoundingBox(e) { | |
const t = e.min | |
, r = e.max; | |
let i, o, s, a, l, c; | |
const u = 1 / this.direction[0] | |
, d = 1 / this.direction[1] | |
, h = 1 / this.direction[2] | |
, f = this.origin; | |
return u >= 0 ? (i = (t[0] - f[0]) * u, | |
o = (r[0] - f[0]) * u) : (i = (r[0] - f[0]) * u, | |
o = (t[0] - f[0]) * u), | |
d >= 0 ? (s = (t[1] - f[1]) * d, | |
a = (r[1] - f[1]) * d) : (s = (r[1] - f[1]) * d, | |
a = (t[1] - f[1]) * d), | |
i > a || s > o || ((s > i || i != i) && (i = s), | |
(a < o || o != o) && (o = a), | |
h >= 0 ? (l = (t[2] - f[2]) * h, | |
c = (r[2] - f[2]) * h) : (l = (r[2] - f[2]) * h, | |
c = (t[2] - f[2]) * h), | |
i > c || l > o) || ((l > i || i != i) && (i = l), | |
(c < o || o != o) && (o = c), | |
o < 0) ? null : this.at(i >= 0 ? i : o) | |
} | |
intersectPlane(e) { | |
let t; | |
const r = T.dot(e.normal, this.direction); | |
return 0 === r ? (T.dot(e.normal, this.origin) + e.constant === 0 && (t = 0), | |
null) : (t = -(T.dot(e.normal, this.origin) + e.constant) / r, | |
t < 0 ? null : this.at(t)) | |
} | |
intersectTriangle(e, t) { | |
const r = T.subtract(e.b, e.a) | |
, i = T.subtract(e.c, e.a) | |
, o = T.cross(r, i); | |
let s = T.dot(this.direction, o); | |
const a = Math.sign(s); | |
if (s > 0) { | |
if (t) | |
return null | |
} else { | |
if (!(s < 0)) | |
return null; | |
s = -s | |
} | |
const l = T.subtract(this.origin, e.a) | |
, c = a * T.dot(this.direction, T.cross(l, i)); | |
if (c < 0) | |
return null; | |
const u = a * T.dot(this.direction, T.cross(r, l)); | |
if (u < 0 || c + u > s) | |
return null; | |
const d = -a * T.dot(l, o); | |
return d < 0 ? null : this.at(d / s) | |
} | |
} | |
class Wj { | |
constructor(e, t, r) { | |
this.near = e ? e.nearOffset : 1, | |
this.far = e ? e.farOffset : 100, | |
this.ray = new pu(t,r), | |
this.params = { | |
lineThreshold: 3 | |
}, | |
this.intersections = [] | |
} | |
clearIntersections() { | |
this.intersections = [] | |
} | |
fromOrthographic(e, t) { | |
const r = pe.getRotation(pe.lookAt(t.cameraPosition, t.targetCoordinate, t.upNormal)) | |
, i = et.setAxisAngle(T.normalize(T.cross(T.fromValues(0, 0, 1), t.cameraNormal)), Math.acos(T.dot(T.fromValues(0, 0, 1), t.cameraNormal))); | |
this.ray.origin = T.transformMat4(T.transformMat4(T.fromValues(e.x, e.y, (t.nearOffset + t.farOffset) / (t.nearOffset - t.farOffset)), pe.invert(pe.ortho(-t.horizontalOffset, t.horizontalOffset, -t.verticalOffset, t.verticalOffset, t.nearOffset, t.farOffset))), pe.multiply(pe.fromTranslation(t.cameraPosition), pe.transpose(pe.fromRotation(r)))), | |
this.ray.direction = T.normalize(T.transformQuat(T.fromValues(0, 0, -1), i)) | |
} | |
fromPerspective(e, t) { | |
this.ray.origin = t.cameraPosition, | |
this.ray.direction = T.normalize(T.subtract(T.transformMat4(T.transformMat4(T.fromValues(e.x, e.y, .5), pe.invert(pe.perspective(5 * Math.PI / 18, 1, this.near, this.far))), t.transformInfo.transform), this.ray.origin)) | |
} | |
intersectSegments(e) { | |
const t = this.params.lineThreshold * this.params.lineThreshold | |
, r = this.ray; | |
let i = []; | |
for (let o = 0; o < e.length; o++) { | |
const s = e[o]; | |
let a = T.create() | |
, l = T.create(); | |
const c = r.squaredDistanceToSegment(s.start, s.end, a, l); | |
if (c < 0 || c > t) | |
continue; | |
const u = T.distance(r.origin, a); | |
u < this.near || u > this.far || i.push({ | |
distance: u, | |
rayPoint: a, | |
segPoint: l, | |
index: o | |
}) | |
} | |
return i.sort( (o, s) => o.distance - s.distance), | |
i | |
} | |
intersectNodes(e, t) { | |
t = null === t || t, | |
this.intersections = this.intersections.concat(this.rayCastNode(e)), | |
t && e.children.forEach(r => { | |
this.intersectNodes(r, !0) | |
} | |
), | |
this.intersections.sort( (r, i) => r.distance - i.distance) | |
} | |
rayCastNode(e) { | |
const t = []; | |
return e.mesh ? (e.mesh.primitives.forEach(r => { | |
const i = (new pu).copy(this.ray).fromWorldToNode(pe.invert(e.worldMatrix)); | |
if (null !== r.indices) { | |
const o = r.indices | |
, s = jt.accessorTypeToNumComponents(o.type) | |
, a = new (jt.glTypeToTypedArray(o.componentType))(r.indices.bufferView.data); | |
for (let l = o.byteOffset; l < o.count; l += 3) { | |
const c = T.fromTypedArrayWithIndices(a, l, s) | |
, u = this.checkBufferIntersection(i, e, r, c); | |
u && (u.faceIndex = Math.floor(l / 3), | |
t.push(u)) | |
} | |
} else if (r.attributes.POSITION) { | |
const o = r.attributes.POSITION | |
, s = r.drawIndices; | |
for (let a = s.byteOffset; a < Math.min(o.count, s.byteOffset + s.count); a += 3) { | |
const l = T.fromValues(a, a + 1, a + 2) | |
, c = this.checkBufferIntersection(i, e, r, l); | |
c && (c.faceIndex = Math.floor(a / 3), | |
t.push(c)) | |
} | |
} | |
} | |
), | |
t) : [] | |
} | |
checkBufferIntersection(e, t, r, i) { | |
const o = new (jt.glTypeToTypedArray(r.attributes.POSITION.componentType))(r.attributes.POSITION.bufferView.data) | |
, s = r.attributes.POSITION.bufferView.byteStride / jt.glTypeToTypedArray(r.attributes.POSITION.componentType).BYTES_PER_ELEMENT | |
, a = new $j(T.fromTypedArrayWithIndices(o, i[0], s),T.fromTypedArrayWithIndices(o, i[1], s),T.fromTypedArrayWithIndices(o, i[2], s)) | |
, l = this.checkIntersection(e, t, r, a); | |
if (l && r.attributes.TEXCOORD_0) { | |
const c = new (jt.glTypeToTypedArray(r.attributes.TEXCOORD_0.componentType))(r.attributes.TEXCOORD_0.bufferView.data) | |
, u = { | |
a: $n.fromTypedArrayWithIndices(c, i[0], 2), | |
b: $n.fromTypedArrayWithIndices(c, i[1], 2), | |
c: $n.fromTypedArrayWithIndices(c, i[2], 2) | |
}; | |
l.texCoord = a.getTexCoord(l.point, u) | |
} | |
return l | |
} | |
checkIntersection(e, t, r, i) { | |
const o = e.intersectTriangle(i, null !== r.material && !r.material.doubleSided); | |
if (null === o) | |
return null; | |
const s = T.transformMat4(o, t.worldMatrix) | |
, a = T.distance(this.ray.origin, s); | |
return a < this.near || a > this.far ? null : { | |
distance: a, | |
point: s, | |
face: i, | |
nodeID: t.nodeID, | |
nodeName: t.name | |
} | |
} | |
} | |
function wg(n, e) { | |
return Ht(this, void 0, void 0, function*() { | |
return yield fetch(new Request(n,e)).then(r => Ht(this, void 0, void 0, function*() { | |
if (r.ok) | |
return r.json(); | |
{ | |
const i = (yield r.json()).msg; | |
return JSON.parse(`{ "code": ${r.status}, "msg": "${i}" }`) | |
} | |
})).catch( () => JSON.parse('{ "code": 0 }')) | |
}) | |
} | |
class Dg { | |
constructor(e, t, r) { | |
t = t || {}, | |
r = r || {}, | |
this.canvasWidth = e.clientWidth, | |
this.canvasHeight = e.clientHeight, | |
this.canvasNear = 0, | |
this.canvasFar = 100, | |
this.zoomIndex = void 0 !== t.zoomIndex ? t.zoomIndex : 75, | |
this.cameraDistance = void 0 !== t.cameraDistance ? t.cameraDistance : 50, | |
this.targetCoordinate = void 0 !== t.targetCoordinate ? t.targetCoordinate : T.fromValues(0, 0, 0), | |
this.defaultNormal = void 0 !== t.defaultNormal ? t.defaultNormal : T.normalize(T.fromValues(2, 2, 5)), | |
this.upNormal = T.fromValues(0, 1, 0), | |
this.transformInfo = this.defaultInfo, | |
this.viewMode = _i.Default, | |
this.animationMode = zr.Sin, | |
this.shininess = void 0 !== r.shininess ? r.shininess : 1.2, | |
this.lightColor = void 0 !== r.lightColor ? r.lightColor : T.fromValues(1, 1, 1), | |
this.defaultLightNormal = void 0 !== r.defaultLightNormal ? r.defaultLightNormal : T.normalize(T.fromValues(0, 4, 2)) | |
} | |
get horizontalOffset() { | |
return this.canvasWidth / this.zoomIndex | |
} | |
get verticalOffset() { | |
return this.canvasHeight / this.zoomIndex | |
} | |
get nearOffset() { | |
return this.canvasNear | |
} | |
get farOffset() { | |
return this.canvasFar | |
} | |
setCameraOffset(e) { | |
return this.canvasWidth = e.clientWidth, | |
this.canvasHeight = e.clientHeight, | |
this | |
} | |
get defaultInfo() { | |
return new Ut(T.create(),et.create()) | |
} | |
get cameraPosition() { | |
return T.transformMat4(T.scale(this.defaultNormal, this.cameraDistance), this.transformInfo.transform) | |
} | |
get cameraNormal() { | |
return T.normalize(this.cameraPosition) | |
} | |
get lightNormal() { | |
return T.transformQuat(this.cameraNormal, et.setAxisAngle([0, 1, 0], -Math.acos(this.defaultNormal[0] * this.defaultLightNormal[0] + this.defaultNormal[2] * this.defaultLightNormal[2]))) | |
} | |
} | |
class Gj { | |
constructor() { | |
this.shaderUniforms = { | |
self: { | |
u_color: [1, 60 / 255, 60 / 255, .16] | |
}, | |
edge: { | |
u_color: [1, 137 / 255, 137 / 255, 1] | |
}, | |
clip: { | |
u_color: [1, 60 / 255, 60 / 255, .5] | |
} | |
}, | |
this.transformInfo = this.defaultInfo, | |
this.animationMode = zr.Sin | |
} | |
set defaultInfo(e) { | |
this._defaultInfo = e | |
} | |
get defaultInfo() { | |
return this._defaultInfo | |
} | |
get normal() { | |
return T.normalize(T.transformQuat(T.fromValues(1, 0, 0), this.transformInfo.rotation)) | |
} | |
get equation() { | |
return kt.transformMat4(kt.fromValues(1, 0, 0, 0), pe.invert(pe.transpose(this.transformInfo.transform))) | |
} | |
fromGLTF(e) { | |
e.forEach(t => { | |
const r = {} | |
, i = t.mesh.primitives[0] | |
, o = i.indices; | |
for (let[s,a] of Object.entries(i.attributes)) | |
r["a_" + s.toLowerCase().split("_", 1)[0]] = { | |
buffer: a.bufferView.buffer, | |
numComponents: jt.accessorTypeToNumComponents(a.type), | |
type: a.componentType, | |
offset: a.byteOffset, | |
stride: a.bufferView.byteStride | |
}; | |
t.name.includes("plane") ? (this.bufferInfo = { | |
attribs: r, | |
numElements: o.count, | |
indices: o.bufferView.buffer, | |
elementType: o.componentType | |
}, | |
this.defaultInfo = (new Ut).fromMatrix(t.worldMatrix), | |
this.transformInfo = this.defaultInfo) : t.name.includes("edge") && (this.edgeBufferInfo = { | |
attribs: r, | |
numElements: o.count, | |
indices: o.bufferView.buffer, | |
elementType: o.componentType | |
}) | |
} | |
) | |
} | |
} | |
class CD { | |
constructor(e) { | |
return this.shaderUniforms = { | |
self: { | |
u_color: [155 / 255, 162 / 255, 176 / 255, .95] | |
}, | |
edge: { | |
u_color: [0, 0, 0, 1] | |
}, | |
clip: {}, | |
woit: {} | |
}, | |
this.defaultInfo = new Ut(T.create(),et.create()), | |
this.transformInfo = this.defaultInfo, | |
this.length = 10, | |
this.woitBufferInfo = Pt.createWOITBufferInfo(e), | |
this | |
} | |
set defaultInfo(e) { | |
this._defaultInfo = e | |
} | |
get defaultInfo() { | |
return this._defaultInfo | |
} | |
fromGLTF(e) { | |
return e.forEach(t => { | |
const r = {} | |
, i = t.mesh.primitives[0] | |
, o = i.indices; | |
for (let[s,a] of Object.entries(i.attributes)) | |
r["a_" + s.toLowerCase().split("_", 1)[0]] = { | |
buffer: a.bufferView.buffer, | |
numComponents: jt.accessorTypeToNumComponents(a.type), | |
type: a.componentType, | |
offset: a.byteOffset, | |
stride: a.bufferView.byteStride | |
}; | |
t.name.includes("polyhedron") ? (this.bufferInfo = { | |
attribs: r, | |
numElements: o.count, | |
indices: o.bufferView.buffer, | |
elementType: o.componentType | |
}, | |
this.defaultInfo = (new Ut).fromMatrix(t.worldMatrix), | |
this.transformInfo = this.defaultInfo) : t.name.includes("edge") && (this.edgeBufferInfo = { | |
attribs: r, | |
numElements: o.count, | |
indices: o.bufferView.buffer, | |
elementType: o.componentType | |
}) | |
} | |
), | |
this | |
} | |
} | |
class TD { | |
constructor(e) { | |
this.nodeID = e.nodeID, | |
e.name.includes("dian") ? this.type = "vertex" : e.name.includes("xian") ? this.type = "edge" : e.name.includes("mian") && (this.type = "face"); | |
const t = {} | |
, r = e.mesh.primitives[0] | |
, i = r.indices; | |
for (let[o,s] of Object.entries(r.attributes)) | |
t["a_" + o.toLowerCase().split("_", 1)[0]] = { | |
buffer: s.bufferView.buffer, | |
numComponents: jt.accessorTypeToNumComponents(s.type), | |
type: s.componentType, | |
offset: s.byteOffset, | |
stride: s.bufferView.byteStride | |
}; | |
return this.bufferInfo = { | |
attribs: t, | |
numElements: i.count, | |
indices: i.bufferView.buffer, | |
elementType: i.componentType | |
}, | |
this.transformInfo = (new Ut).fromMatrix(e.worldMatrix), | |
"face" === this.type && (this.textureID = r.material && r.material.pbrMetallicRoughness.baseColorTexture ? r.material.pbrMetallicRoughness.baseColorTexture.index : void 0), | |
this.shaderUniforms = { | |
u_color: void 0, | |
u_worldMatrix: void 0 | |
}, | |
this.resetColour(), | |
this | |
} | |
setColour(e) { | |
for (let t = 0; t < 3; t++) | |
this.shaderUniforms.u_color[t] = e[t] / 255; | |
return this | |
} | |
resetColour() { | |
return this.shaderUniforms.u_color = "vertex" === this.type ? [187 / 255, 194 / 255, 208 / 255, 1] : "edge" === this.type ? [.22, .22, .22, 1] : "face" === this.type ? [1, 1, 1, .98] : [0, 0, 1, .8], | |
this | |
} | |
} | |
class qj { | |
constructor(e) { | |
const t = {} | |
, r = e.mesh.primitives[0] | |
, i = r.indices; | |
for (let[o,s] of Object.entries(r.attributes)) | |
t["a_" + o.toLowerCase().split("_", 1)[0]] = { | |
buffer: s.bufferView.buffer, | |
numComponents: jt.accessorTypeToNumComponents(s.type), | |
type: s.componentType, | |
offset: s.byteOffset, | |
stride: s.bufferView.byteStride | |
}; | |
return this.bufferInfo = { | |
attribs: t, | |
numElements: i.count, | |
indices: i.bufferView.buffer, | |
elementType: i.componentType | |
}, | |
this.transformInfo = (new Ut).fromMatrix(e.worldMatrix), | |
this.shaderUniforms = { | |
u_color: void 0, | |
u_worldMatrix: void 0 | |
}, | |
this.resetColour(), | |
this | |
} | |
loadTexture(e, t) { | |
return this.texture = t.createTexture(), | |
t.bindTexture(t.TEXTURE_2D, this.texture), | |
t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, t.RGBA, t.UNSIGNED_BYTE, e), | |
t.generateMipmap(t.TEXTURE_2D), | |
t.bindTexture(t.TEXTURE_2D, null), | |
this | |
} | |
setColour(e) { | |
return this.shaderUniforms.u_color = kt.fromVec3(e, 1), | |
this | |
} | |
resetColour() { | |
return this.shaderUniforms.u_color = [1, 1, 1, 1], | |
this | |
} | |
} | |
class Kj { | |
constructor(e, t) { | |
if (this.canvas = e, | |
this.drawSceneBound = this.render.bind(this), | |
this.gl = e.getContext("webgl2", { | |
stencil: !0, | |
antialias: !0, | |
premultipliedAlpha: !1, | |
alpha: !0 | |
}), | |
!this.gl) | |
throw alert("\u60a8\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301WebGL2 \u8bf7\u5347\u7ea7\u6d4f\u89c8\u5668"), | |
new Error("GLERROR: Failed to initiate WebGL2."); | |
if (!this.gl.getExtension("EXT_color_buffer_float")) | |
throw alert("\u60a8\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301WebGL2\u7684\u6269\u5c55 \u8bf7\u5347\u7ea7\u6d4f\u89c8\u5668"), | |
new Error("GLERROR: Failed to initiate FLOAT_COLOR_BUFFER extension on WebGL2"); | |
(23 !== this.gl.getShaderPrecisionFormat(this.gl.VERTEX_SHADER, this.gl.HIGH_FLOAT).precision || 23 !== this.gl.getShaderPrecisionFormat(this.gl.FRAGMENT_SHADER, this.gl.HIGH_FLOAT).precision) && (He.VS.replace("/highp/g", "mediump"), | |
He.FS.replace("/highp/g", "mediump"), | |
He.VSWithClipping.replace("/highp/g", "mediump"), | |
He.FSWithClipping.replace("/highp/g", "mediump"), | |
He.VSWithWOIT.replace("/highp/g", "mediump"), | |
He.FSWithWOIT.replace("/highp/g", "mediump"), | |
He.VSWithAccumAndPLight.replace("/highp/g", "mediump"), | |
He.FSWithAccumAndPLight.replace("/highp/g", "mediump")), | |
this.programInfos = new Map([["program", Pt.createProgramInfo(this.gl, [He.VS, He.FS])], ["programWithClip", Pt.createProgramInfo(this.gl, [He.VSWithClipping, He.FSWithClipping])], ["programWithWOIT", Pt.createProgramInfo(this.gl, [He.VSWithWOIT, He.FSWithWOIT])], ["programWithAccum", Pt.createProgramInfo(this.gl, [He.VSWithAccumAndPLight, He.FSWithAccumAndPLight])]]), | |
this.accumFrameBuffer = this.gl.createFramebuffer(), | |
this.camera = new Dg(e,{ | |
zoomIndex: e.width / 960 * 75 | |
}), | |
this.plane = new Gj, | |
this.polyhedron = new CD(this.gl), | |
this.animation = new bD(this), | |
this.clips = new Map, | |
this.runtimeConstant = { | |
mouseFactor: .01, | |
dragThreshold: 1e-4 | |
}, | |
this.drawCallbackId = 0, | |
this.lastTimeStamp = 0, | |
this.planeInfo = { | |
id: 25, | |
value: "plane", | |
tag: "\u5e73\u9762", | |
clipInfo: { | |
isBase: !0 | |
}, | |
previewUrl: "" | |
}, | |
this.isAssetsLoaded = !1, | |
this.loadPolyhedron(t) | |
} | |
reset() { | |
this.camera.transformInfo = this.camera.defaultInfo, | |
this.plane.transformInfo = this.plane.defaultInfo, | |
this.polyhedron.transformInfo = this.polyhedron.defaultInfo, | |
this.requestRender() | |
} | |
destroy() { | |
this.gl.deleteFramebuffer(this.accumFrameBuffer), | |
this.programInfos.forEach(e => { | |
const t = e.program; | |
this.gl.getAttachedShaders(t).forEach(i => { | |
this.gl.deleteShader(i) | |
} | |
), | |
this.gl.deleteProgram(t) | |
} | |
), | |
this.clips.forEach(e => { | |
Object.entries(e.bufferInfo.attribs).forEach(t => { | |
this.gl.deleteBuffer(t[1].buffer) | |
} | |
), | |
e.bufferInfo.indices && this.gl.deleteBuffer(e.bufferInfo.indices) | |
} | |
), | |
this.clips.clear(), | |
this.gl.getExtension("WEBGL_lose_context").loseContext() | |
} | |
resize(e, t) { | |
this.canvas.width = e, | |
this.canvas.height = t, | |
this.gl.viewport(0, 0, e, t), | |
this.requestRender() | |
} | |
loadPolyhedron(e) { | |
Promise.all([new ka(this.gl).loadGLTF(e), new ka(this.gl).loadGLTF(this.planeInfo)]).then(t => { | |
this.polyhedron.fromGLTF(t[0].nodes), | |
this.plane.fromGLTF(t[1].nodes), | |
this.clips = this.createObjectsMap(), | |
this.requestRender(), | |
this.isAssetsLoaded = !0 | |
} | |
).catch(t => { | |
throw alert("\u52a0\u8f7d\u6587\u4ef6\u51fa\u9519 \u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5"), | |
console.error(t), | |
new Error("GLTFERROR: Failed to load glTF file(s).") | |
} | |
) | |
} | |
onManual(e) { | |
this.clips.get("accumulationPlane").renderConfig.isHide = !e, | |
this.clips.get("accumulationPlaneEdge").renderConfig.isHide = !e, | |
this.clips.get("drawPlaneEdge").renderConfig.isHide = !e, | |
this.clips.get("drawOuterPlane").renderConfig.isHide = !e | |
} | |
computeWorldMatrix(e, t) { | |
return pe.multiply(e, t.transform) | |
} | |
convertNormalTransformToQuat(e, t) { | |
let r, i; | |
if (T.equals(e, t)) | |
r = T.create(), | |
i = 0; | |
else if (T.equals(e, T.negate(t))) { | |
const o = e[0] | |
, s = e[1] | |
, a = Math.hypot(o, s); | |
r = T.fromValues(-s / a, o / a, 0), | |
i = Math.PI | |
} else | |
r = T.normalize(T.cross(e, t)), | |
i = Math.acos(Math.min(T.dot(e, t), 1)), | |
T.dot(t, T.cross(r, e)) < 0 && (r = T.negate(r)); | |
return et.setAxisAngle(r, i) | |
} | |
setCameraAnimation(e) { | |
this.camera.viewMode = e; | |
const t = this.camera.cameraNormal; | |
let r; | |
if (e === _i.Default) | |
r = this.camera.defaultNormal; | |
else { | |
const s = this.plane.normal; | |
r = e === _i.UpSide ? s : T.negate(s), | |
Math.abs(r[1]) - 1 < this.runtimeConstant.dragThreshold && Math.abs(r[0]) < this.runtimeConstant.dragThreshold && Math.abs(r[2]) < this.runtimeConstant.dragThreshold && (r[0] = 0, | |
r[1] = 1 * Math.sign(r[1]), | |
r[2] = this.runtimeConstant.dragThreshold, | |
r = T.normalize(r)) | |
} | |
const i = this.convertNormalTransformToQuat(t, r) | |
, o = et.multiply(i, this.camera.transformInfo.rotation); | |
this.animation.add({ | |
duration: 500, | |
type: "camera", | |
transformInfo: new Ut(this.camera.transformInfo.translation,o), | |
interpolateType: zr.Sin | |
}), | |
this.lastTimeStamp = 0, | |
this.animation.start() | |
} | |
setModelAnimation(e, t, r) { | |
const i = T.add(t.translation, this[e].defaultInfo.translation) | |
, o = et.multiply(t.rotation, this[e].defaultInfo.rotation); | |
r ? (this[e].transformInfo = new Ut(i,o), | |
this.requestRender()) : (this.animation.add({ | |
duration: 500, | |
type: e, | |
transformInfo: new Ut(i,o), | |
interpolateType: zr.Sin | |
}), | |
this.lastTimeStamp = 0, | |
this.animation.start()) | |
} | |
rotateCamera(e, t) { | |
const r = this.camera.cameraNormal | |
, i = Math.acos(r[1]) | |
, o = Math.atan2(r[0], r[2]); | |
let s = i - t * this.runtimeConstant.mouseFactor; | |
s = Math.max(s, this.runtimeConstant.dragThreshold), | |
s = Math.min(s, Math.PI - this.runtimeConstant.dragThreshold); | |
let a = o - e * this.runtimeConstant.mouseFactor; | |
const l = T.fromValues(Math.sin(s) * Math.sin(a), Math.cos(s), Math.sin(s) * Math.cos(a)) | |
, c = this.convertNormalTransformToQuat(r, l); | |
this.camera.transformInfo.rotation = et.multiply(c, this.camera.transformInfo.rotation), | |
this.requestRender() | |
} | |
createObjectsMap() { | |
const e = this.gl | |
, t = this.programInfos | |
, r = this.polyhedron | |
, i = this.plane; | |
return new Map([["accumulationObject", { | |
programInfo: t.get("programWithAccum"), | |
bufferInfo: r.bufferInfo, | |
uniforms: r.shaderUniforms.self, | |
renderConfig: { | |
disableDepth: !1, | |
disableDepthWrite: !1, | |
initWOIT: !0 | |
} | |
}], ["accumulationObjectEdge", { | |
programInfo: t.get("programWithAccum"), | |
bufferInfo: r.edgeBufferInfo, | |
uniforms: r.shaderUniforms.edge, | |
renderConfig: { | |
disableDepth: !1 | |
} | |
}], ["accumulationPlane", { | |
programInfo: t.get("programWithAccum"), | |
bufferInfo: i.bufferInfo, | |
uniforms: i.shaderUniforms.self, | |
renderConfig: { | |
disableDepth: !1, | |
isHide: !0 | |
} | |
}], ["accumulationPlaneEdge", { | |
programInfo: t.get("programWithAccum"), | |
bufferInfo: i.edgeBufferInfo, | |
uniforms: i.shaderUniforms.edge, | |
renderConfig: { | |
isHide: !0 | |
} | |
}], ["woit", { | |
programInfo: t.get("programWithWOIT"), | |
bufferInfo: r.woitBufferInfo, | |
uniforms: r.shaderUniforms.woit, | |
renderConfig: { | |
disableDepth: !0, | |
disableDepthWrite: !0, | |
drawWOIT: !0 | |
} | |
}], ["fillModelBuffer", { | |
programInfo: t.get("programWithClip"), | |
bufferInfo: r.bufferInfo, | |
uniforms: r.shaderUniforms.clip, | |
renderConfig: { | |
clearDepth: !0, | |
disableDepth: !0, | |
useStencil: !0, | |
stencilWrite: !0, | |
disableColor: !0, | |
stencilBackOp: [e.KEEP, e.KEEP, e.DECR_WRAP], | |
stencilFrontOp: [e.KEEP, e.KEEP, e.INCR_WRAP], | |
stencilFunc: [e.ALWAYS, 1, 255] | |
} | |
}], ["drawClippingPlane", { | |
programInfo: t.get("program"), | |
bufferInfo: i.bufferInfo, | |
uniforms: i.shaderUniforms.clip, | |
renderConfig: { | |
clearDepth: !0, | |
depthFunc: e.ALWAYS, | |
blendFunc: [e.SRC_ALPHA, e.ONE_MINUS_SRC_ALPHA, e.ONE, e.ONE_MINUS_SRC_ALPHA], | |
useStencil: !0, | |
stencilOp: [e.KEEP, e.KEEP, e.KEEP], | |
stencilFunc: [e.EQUAL, 128, 128] | |
} | |
}], ["fillDepthBuffer", { | |
programInfo: t.get("program"), | |
bufferInfo: r.bufferInfo, | |
uniforms: r.shaderUniforms.self, | |
renderConfig: { | |
clearDepth: !0, | |
disableDepth: !1, | |
disableColor: !0 | |
} | |
}], ["drawObjectEdge", { | |
programInfo: t.get("program"), | |
bufferInfo: r.edgeBufferInfo, | |
uniforms: r.shaderUniforms.edge, | |
renderConfig: { | |
disableDepth: !1, | |
depthFunc: e.LEQUAL | |
} | |
}], ["drawPlaneEdge", { | |
programInfo: t.get("program"), | |
bufferInfo: i.edgeBufferInfo, | |
uniforms: i.shaderUniforms.edge, | |
renderConfig: { | |
isHide: !0 | |
} | |
}], ["drawOuterPlane", { | |
programInfo: t.get("program"), | |
bufferInfo: i.bufferInfo, | |
uniforms: i.shaderUniforms.self, | |
renderConfig: { | |
isHide: !0, | |
useStencil: !0, | |
stencilOp: [e.KEEP, e.KEEP, e.KEEP], | |
stencilFunc: [e.NOTEQUAL, 1, 255] | |
} | |
}]]) | |
} | |
setRenderOptions(e) { | |
const t = this.gl; | |
if (e.disableDepth ? t.disable(t.DEPTH_TEST) : t.enable(t.DEPTH_TEST), | |
e.clearDepth && (t.depthMask(!0), | |
t.clear(t.DEPTH_BUFFER_BIT)), | |
t.depthMask(!e.disableDepthWrite), | |
t.depthFunc(e.depthFunc ? e.depthFunc : t.LESS), | |
e.blendFunc) { | |
const r = e.blendFunc; | |
t.enable(t.BLEND), | |
t.blendFuncSeparate(r[0], r[1], r[2], r[3]) | |
} | |
if (e.disableColor ? t.colorMask(!1, !1, !1, !1) : t.colorMask(!0, !0, !0, !0), | |
e.cullFace ? (t.enable(t.CULL_FACE), | |
t.cullFace(e.cullFace)) : t.disable(t.CULL_FACE), | |
e.useStencil ? t.enable(t.STENCIL_TEST) : t.disable(t.STENCIL_TEST), | |
e.stencilClear && (t.stencilMask(255), | |
t.clear(t.STENCIL_BUFFER_BIT)), | |
t.stencilMask(e.stencilWrite ? 255 : 0), | |
e.stencilOp) { | |
const r = e.stencilOp; | |
t.stencilOp(r[0], r[1], r[2]) | |
} | |
if (e.stencilFrontOp) { | |
const r = e.stencilFrontOp; | |
t.stencilOpSeparate(t.FRONT, r[0], r[1], r[2]) | |
} | |
if (e.stencilBackOp) { | |
const r = e.stencilBackOp; | |
t.stencilOpSeparate(t.BACK, r[0], r[1], r[2]) | |
} | |
if (e.stencilFunc) { | |
const r = e.stencilFunc; | |
t.stencilFunc(r[0], r[1], r[2]) | |
} | |
e.initWOIT && (t.blendFuncSeparate(t.ONE, t.ONE, t.ZERO, t.ONE_MINUS_SRC_ALPHA), | |
t.clear(t.COLOR_BUFFER_BIT)), | |
e.drawWOIT && (t.blendFunc(t.ONE, t.ONE_MINUS_SRC_ALPHA), | |
t.clear(t.COLOR_BUFFER_BIT)) | |
} | |
render(e) { | |
const t = this.gl; | |
this.drawCallbackId = 0, | |
this.lastTimeStamp || (this.lastTimeStamp = e); | |
const r = e - this.lastTimeStamp; | |
let i, o; | |
this.lastTimeStamp = e, | |
this.animation.step(r), | |
t.enable(t.BLEND), | |
t.blendFuncSeparate(t.SRC_ALPHA, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA), | |
t.enable(t.DEPTH_TEST), | |
t.depthMask(!0), | |
t.colorMask(!0, !0, !0, !0), | |
t.clearColor(0, 0, 0, 0), | |
t.clear(t.COLOR_BUFFER_BIT | t.DEPTH_BUFFER_BIT | t.STENCIL_BUFFER_BIT); | |
const s = this.camera | |
, a = this.polyhedron | |
, l = this.plane | |
, c = this.accumFrameBuffer | |
, u = t.createTexture() | |
, d = t.createTexture() | |
, h = a.transformInfo.transform | |
, f = pe.lookAt(s.cameraPosition, s.targetCoordinate, s.upNormal) | |
, p = pe.ortho(-s.horizontalOffset, s.horizontalOffset, -s.verticalOffset, s.verticalOffset, s.nearOffset, s.farOffset) | |
, _ = this.computeWorldMatrix(pe.multiply(p, f), a.transformInfo) | |
, C = ts.normalFromMat4(f) | |
, S = pe.fromMat3(ts.normalFromMat4(a.transformInfo.transform)); | |
a.shaderUniforms.self.u_worldMatrix = _, | |
a.shaderUniforms.self.u_modelITMatrix = S, | |
a.shaderUniforms.self.u_lightNormal = s.lightNormal, | |
a.shaderUniforms.self.u_lightColor = s.lightColor, | |
a.shaderUniforms.self.u_shininess = s.shininess, | |
a.shaderUniforms.edge.u_worldMatrix = _, | |
a.shaderUniforms.clip.u_modelMatrix = h, | |
a.shaderUniforms.clip.u_viewMatrix = f, | |
a.shaderUniforms.clip.u_modelViewMatrix = pe.multiply(f, h), | |
a.shaderUniforms.clip.u_worldMatrix = _, | |
a.shaderUniforms.clip.u_viewNormalMatrix = C, | |
a.shaderUniforms.clip.u_planeEquation = l.equation, | |
a.shaderUniforms.woit.u_accumulateColor = u, | |
a.shaderUniforms.woit.u_accumulateAlpha = d; | |
const R = this.computeWorldMatrix(pe.multiply(p, f), l.transformInfo); | |
l.shaderUniforms.self.u_worldMatrix = R, | |
l.shaderUniforms.edge.u_worldMatrix = R, | |
l.shaderUniforms.clip.u_worldMatrix = R, | |
this.clips.forEach(v => { | |
const O = v.programInfo | |
, M = v.bufferInfo | |
, N = v.renderConfig; | |
let F = !1; | |
!M || N.isHide || (O !== i && (i = O, | |
O === this.programInfos.get("programWithAccum") ? (Pt.bindWOITTextures(t, u, d, c), | |
t.bindFramebuffer(t.FRAMEBUFFER, c)) : O === this.programInfos.get("programWithWOIT") ? t.bindFramebuffer(t.FRAMEBUFFER, null) : (t.deleteTexture(u), | |
t.deleteTexture(d)), | |
t.useProgram(O.program), | |
F = !0), | |
(F || M !== o) && (o = M, | |
Pt.setAttributes(O, M.attribs), | |
M.indices && t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, M.indices)), | |
Pt.setUniforms(O, v.uniforms), | |
this.setRenderOptions(N), | |
M.indices ? t.drawElements(t.TRIANGLES, M.numElements, t.UNSIGNED_SHORT, 0) : t.drawArrays(t.TRIANGLES, 0, M.numElements)) | |
} | |
) | |
} | |
getTransformInfo(e) { | |
return this[e].transformInfo | |
} | |
setTransformInfo(e, t) { | |
this[e].transformInfo = t | |
} | |
requestRender() { | |
this.drawCallbackId || (this.drawCallbackId = requestAnimationFrame(this.drawSceneBound)) | |
} | |
} | |
class Qj { | |
constructor(e, t) { | |
if (this.canvas = e, | |
this.drawSceneBound = this.render.bind(this), | |
this.gl = e.getContext("webgl2", { | |
stencil: !0, | |
antialias: !0, | |
premultipliedAlpha: !1, | |
alpha: !0 | |
}), | |
!this.gl) | |
throw alert("\u60a8\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301WebGL2 \u8bf7\u5347\u7ea7\u6d4f\u89c8\u5668"), | |
new Error("GLERROR: Failed to initiate WebGL2."); | |
if (!this.gl.getExtension("EXT_color_buffer_float")) | |
throw alert("\u60a8\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301WebGL2\u7684\u6269\u5c55 \u8bf7\u5347\u7ea7\u6d4f\u89c8\u5668"), | |
new Error("GLERROR: Failed to initiate FLOAT_COLOR_BUFFER extension on WebGL2"); | |
(23 !== this.gl.getShaderPrecisionFormat(this.gl.VERTEX_SHADER, this.gl.HIGH_FLOAT).precision || 23 !== this.gl.getShaderPrecisionFormat(this.gl.FRAGMENT_SHADER, this.gl.HIGH_FLOAT).precision) && (He.VS.replace("/highp/g", "mediump"), | |
He.FS.replace("/highp/g", "mediump"), | |
He.VSWithTexture.replace("/highp/g", "mediump"), | |
He.FSWithTexture.replace("/highp/g", "mediump")), | |
this.programInfos = new Map([["program", Pt.createProgramInfo(this.gl, [He.VS, He.FS])], ["programWithTexture", Pt.createProgramInfo(this.gl, [He.VSWithTexture, He.FSWithTexture])], ["programWithWOIT", Pt.createProgramInfo(this.gl, [He.VSWithWOIT, He.FSWithWOIT])], ["programWithAccum", Pt.createProgramInfo(this.gl, [He.VSWithAccum, He.FSWithAccum])], ["programWithAccumAndTexture", Pt.createProgramInfo(this.gl, [He.VSWithAccumAndTexture, He.FSWithAccumAndTexture])]]), | |
this.accumFrameBuffer = this.gl.createFramebuffer(), | |
this.camera = new Dg(e,{ | |
zoomIndex: e.width / 960 * 40, | |
defaultNormal: T.normalize(T.fromValues(0, 0, 1)) | |
}), | |
this.spans = [], | |
this.numberMarkers = [], | |
this.cameraAnimation = new bD(this,.2), | |
this.spanAnimation = new zj(this,.5), | |
this.rayCaster = new Wj, | |
this.runtimeConstant = { | |
mouseFactor: .01, | |
dragThreshold: 1e-4, | |
rayCastThreshold: .05, | |
numberMarkerCount: 8 | |
}, | |
this.drawCallbackId = 0, | |
this.lastTimeStamp = 0, | |
this.markedSpans = [], | |
this.numberMarkerInfo = { | |
id: 26, | |
value: "number", | |
tag: "\u6570\u5b57", | |
clipInfo: { | |
isBase: !0 | |
}, | |
previewUrl: "" | |
}, | |
this.numberMarkerTexUrl = r => `//nodestatic.fbstatic.cn/webtools/png/number${++r}.png`, | |
this.isAssetsLoaded = !1, | |
this.loadSpan(t) | |
} | |
reset() { | |
this.camera.transformInfo = this.camera.defaultInfo, | |
this.glTF.scene.nodes.forEach(e => { | |
e.traverse( (t, r) => { | |
t.translation = pe.getTranslation(t.matrix), | |
t.rotation = pe.getRotation(t.matrix), | |
t.scale = pe.getScale(t.matrix), | |
t.modelMatrix = t.matrix, | |
t.worldMatrix = null !== r ? pe.multiply(r.worldMatrix, t.modelMatrix) : pe.clone(t.modelMatrix) | |
} | |
) | |
} | |
), | |
this.spans.forEach(e => { | |
e.transformInfo = (new Ut).fromMatrix(this.glTF.nodes[e.nodeID].worldMatrix), | |
e.resetColour() | |
} | |
), | |
this.markedSpans = [], | |
this.lastTimeStamp = 0, | |
this.cameraAnimation.clear(), | |
this.spanAnimation.clear(), | |
this.glTF.animations.forEach(e => { | |
e.samplers.forEach(t => { | |
t.updateKeyFrames(t.duration) | |
} | |
) | |
} | |
), | |
this.requestRender() | |
} | |
destroy() { | |
this.gl.deleteFramebuffer(this.accumFrameBuffer), | |
this.programInfos.forEach(e => { | |
const t = e.program; | |
this.gl.getAttachedShaders(t).forEach(i => { | |
this.gl.deleteShader(i) | |
} | |
), | |
this.gl.deleteProgram(t) | |
} | |
), | |
this.spans.forEach(e => { | |
Object.entries(e.bufferInfo.attribs).forEach(t => { | |
this.gl.deleteBuffer(t[1].buffer) | |
} | |
), | |
e.bufferInfo.indices && this.gl.deleteBuffer(e.bufferInfo.indices), | |
void 0 !== e.textureID && this.gl.deleteTexture(this.glTF.textures[e.textureID].texture) | |
} | |
), | |
this.spans = [], | |
this.markedSpans = [], | |
this.glTF = null, | |
this.gl.getExtension("WEBGL_lose_context").loseContext() | |
} | |
resize(e, t) { | |
this.canvas.width = e, | |
this.canvas.height = t, | |
this.gl.viewport(0, 0, e, t) | |
} | |
loadSpan(e) { | |
this.spans = [], | |
Promise.all([new ka(this.gl).loadGLTF(e), new ka(this.gl).loadGLTF(this.numberMarkerInfo)]).then(t => Ht(this, void 0, void 0, function*() { | |
this.glTF = t[0], | |
this.glTF.nodes.forEach(i => { | |
i.mesh && this.spans.push(new TD(i)) | |
} | |
), | |
this.requestRender(), | |
yield new Promise(i => Ht(this, void 0, void 0, function*() { | |
const o = []; | |
for (let s = 0; s < this.runtimeConstant.numberMarkerCount; s++) | |
try { | |
o.push(fetch(new Request(this.numberMarkerTexUrl(s))).then(a => { | |
if (a.ok) | |
return a.blob(); | |
throw Error("LoadingError: Error occurred in loading number marker texture.") | |
} | |
).then(a => createImageBitmap(a))) | |
} catch (a) { | |
console.error(a) | |
} | |
for (const s of o) | |
this.numberMarkers.push(new qj(t[1].nodes[0]).loadTexture(yield s, this.gl)); | |
i(!0) | |
})), | |
this.isAssetsLoaded = !0 | |
})).catch(t => { | |
throw alert("\u52a0\u8f7d\u6587\u4ef6\u51fa\u9519 \u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5"), | |
console.error(t), | |
new Error("GLTFERROR: Failed to load glTF file(s).") | |
} | |
) | |
} | |
reloadSpan(e) { | |
this.isAssetsLoaded = !1, | |
this.spans = [], | |
new ka(this.gl).loadGLTF(e).then(t => { | |
this.glTF = t, | |
this.glTF.nodes.forEach(r => { | |
r.mesh && this.spans.push(new TD(r)) | |
} | |
), | |
this.isAssetsLoaded = !0 | |
} | |
).then( () => { | |
this.resetMarkers(), | |
this.requestRender() | |
} | |
).catch(t => { | |
throw alert("\u52a0\u8f7d\u6587\u4ef6\u51fa\u9519 \u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5"), | |
console.error(t), | |
new Error("GLTFERROR: Failed to load glTF file(s).") | |
} | |
) | |
} | |
setMarkers(e, t) { | |
const r = this.getSpanFromNodeID(e) | |
, i = T.scale(T.fromVec4(r.shaderUniforms.u_color), 255); | |
"face" === r.type ? t = T.scale(t, 1.2) : "edge" === r.type && (t = T.scale(t, .8)), | |
T.equals(t, i) ? (r.resetColour(), | |
"edge" === r.type && -1 !== this.markedSpans.indexOf(r) && this.markedSpans.splice(this.markedSpans.indexOf(r), 1)) : (r.setColour(t), | |
"edge" === r.type && -1 === this.markedSpans.indexOf(r) && this.markedSpans.length < this.runtimeConstant.numberMarkerCount && this.markedSpans.push(r)) | |
} | |
resetMarkers() { | |
this.spans.forEach(e => { | |
e.resetColour() | |
} | |
), | |
this.numberMarkers.forEach(e => { | |
e.resetColour() | |
} | |
), | |
this.markedSpans = [] | |
} | |
getIntersections(e, t) { | |
if (this.rayCaster.clearIntersections(), | |
this.rayCaster.fromOrthographic({ | |
x: e, | |
y: t | |
}, this.camera), | |
this.glTF && (this.glTF.scene.nodes.forEach(r => { | |
this.rayCaster.intersectNodes(r, !0) | |
} | |
), | |
0 !== this.rayCaster.intersections.length)) { | |
const r = this.rayCaster.intersections[0].distance | |
, i = this.rayCaster.intersections[0].nodeName.slice(0, 4) | |
, o = []; | |
return this.rayCaster.intersections.forEach(s => { | |
s.nodeName.includes(i) && Math.abs(s.distance - r) < this.runtimeConstant.rayCastThreshold && o.push(s.nodeID) | |
} | |
), | |
o | |
} | |
return null | |
} | |
rotateCamera(e, t) { | |
const r = this.camera.cameraNormal | |
, i = Math.acos(r[1]) | |
, o = Math.atan2(r[0], r[2]); | |
let s = i - t * this.runtimeConstant.mouseFactor; | |
s = Math.max(s, this.runtimeConstant.dragThreshold), | |
s = Math.min(s, Math.PI - this.runtimeConstant.dragThreshold); | |
let a = o - e * this.runtimeConstant.mouseFactor; | |
const l = T.fromValues(Math.sin(s) * Math.sin(a), Math.cos(s), Math.sin(s) * Math.cos(a)) | |
, c = this.convertNormalTransformToQuat(r, l); | |
this.camera.transformInfo.rotation = et.multiply(c, this.camera.transformInfo.rotation), | |
this.requestRender() | |
} | |
setAnimation(e, t) { | |
const r = this.camera.cameraNormal | |
, i = t ? this.camera.defaultNormal : T.normalize(T.fromValues(.75, .5, 1)) | |
, o = et.multiply(this.convertNormalTransformToQuat(r, i), this.camera.transformInfo.rotation) | |
, s = 1e3 * this.glTF.animations[e].channels[0].sampler.duration; | |
this.cameraAnimation.add({ | |
duration: t ? s / 6 : s / 3, | |
type: "camera", | |
transformInfo: new Ut(T.create(),t ? et.create() : o), | |
interpolateType: zr.Sin | |
}), | |
this.cameraAnimation.add({ | |
duration: t ? s / 3 : s / 6, | |
type: "camera", | |
transformInfo: new Ut(T.create(),o), | |
interpolateType: zr.Sin | |
}), | |
this.lastTimeStamp = 0, | |
this.cameraAnimation.start(), | |
this.spanAnimation.add(this.glTF.animations[e]), | |
this.lastTimeStamp = 0, | |
this.spanAnimation.start() | |
} | |
stepAnimation(e) { | |
e.forEach( (t, r) => { | |
const i = this.glTF.nodes[r]; | |
i.translation = t.translation ? t.translation : i.translation, | |
i.rotation = t.rotation ? t.rotation : i.rotation, | |
i.scale = t.scale ? t.scale : i.scale; | |
const o = pe.fromScaleRotationTranslation(i.translation, i.rotation, i.scale); | |
i.worldMatrix = i.parent ? pe.multiply(i.parent.worldMatrix, o) : pe.clone(o), | |
i.traverse( (s, a) => { | |
a && s !== i && (s.worldMatrix = pe.multiply(a.worldMatrix, s.modelMatrix)) | |
} | |
, i) | |
} | |
), | |
this.spans.forEach(t => { | |
t.transformInfo = (new Ut).fromMatrix(this.glTF.nodes[t.nodeID].worldMatrix) | |
} | |
) | |
} | |
toAnimationFrame(e, t) { | |
const r = this.glTF.animations[Number(t)]; | |
this.stepAnimation(this.spanAnimation.getAnimationInfo(r, e * r.channels[0].sampler.duration)), | |
this.requestRender() | |
} | |
setAnimationTimeScale(e) { | |
this.spanAnimation.setTimeScale(e) | |
} | |
convertNormalTransformToQuat(e, t) { | |
let r, i; | |
if (T.equals(e, t)) | |
r = T.create(), | |
i = 0; | |
else if (T.equals(e, T.negate(t))) { | |
const o = e[0] | |
, s = e[1] | |
, a = Math.hypot(o, s); | |
r = T.fromValues(-s / a, o / a, 0), | |
i = Math.PI | |
} else | |
r = T.normalize(T.cross(e, t)), | |
i = Math.acos(Math.min(T.dot(e, t), 1)), | |
T.dot(t, T.cross(r, e)) < 0 && (r = T.negate(r)); | |
return et.setAxisAngle(r, i) | |
} | |
getTransformInfo(e) { | |
return this.camera.transformInfo | |
} | |
setTransformInfo(e, t) { | |
this.camera.transformInfo = t | |
} | |
getSpanFromNodeID(e) { | |
return this.spans.filter(t => t.nodeID === e).shift() | |
} | |
getCubeSpanTypeFromNodeID(e) { | |
return this.spans.filter(t => t.nodeID === e).shift().type | |
} | |
computeWorldMatrix(e, t) { | |
return pe.multiply(e, t.transform) | |
} | |
getNumberMarkerIndexOffset(e, t) { | |
const r = T.fromValues(0, 1.5, 0) | |
, i = T.fromValues(-1.5, 0, 0); | |
return dt.equals(T.transformQuat(T.fromValues(0, 1, 0), e)[1], 0, 1e-4) ? t ? T.negate(r) : r : t ? T.negate(i) : i | |
} | |
render(e) { | |
const t = this.gl; | |
this.drawCallbackId = 0, | |
this.lastTimeStamp || (this.lastTimeStamp = e); | |
const r = e - this.lastTimeStamp; | |
this.lastTimeStamp = e, | |
this.cameraAnimation.step(r), | |
this.spanAnimation.step(r); | |
const i = this.programInfos; | |
let o, s, a = !0; | |
t.enable(t.BLEND), | |
t.blendFuncSeparate(t.SRC_ALPHA, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA), | |
t.enable(t.DEPTH_TEST), | |
t.depthMask(!0), | |
t.colorMask(!0, !0, !0, !0), | |
t.clearColor(0, 0, 0, 0), | |
t.clear(t.COLOR_BUFFER_BIT | t.DEPTH_BUFFER_BIT | t.STENCIL_BUFFER_BIT); | |
const l = this.camera | |
, c = this.spans | |
, u = this.numberMarkers.slice(0, this.markedSpans.length) | |
, d = this.accumFrameBuffer | |
, h = t.createTexture() | |
, f = t.createTexture() | |
, p = pe.lookAt(l.cameraPosition, l.targetCoordinate, l.upNormal) | |
, _ = pe.ortho(-l.horizontalOffset, l.horizontalOffset, -l.verticalOffset, l.verticalOffset, l.nearOffset, l.farOffset) | |
, C = pe.multiply(_, p); | |
function R(v, O, M, N, F) { | |
!O || (v !== o && (o = v, | |
v === i.get("programWithAccum") || v === i.get("programWithAccumAndTexture") ? (Pt.bindWOITTextures(t, h, f, d), | |
t.bindFramebuffer(t.FRAMEBUFFER, d)) : v === i.get("programWithWOIT") ? t.bindFramebuffer(t.FRAMEBUFFER, null) : (t.deleteTexture(h), | |
t.deleteTexture(f)), | |
t.useProgram(v.program), | |
N = !0), | |
(N || O !== s) && (s = O, | |
Pt.setAttributes(v, O.attribs), | |
O.indices && t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, O.indices)), | |
Pt.setUniforms(v, M), | |
function S(v) { | |
if ((v = v || {}).disableDepth ? t.disable(t.DEPTH_TEST) : t.enable(t.DEPTH_TEST), | |
v.clearDepth && (t.depthMask(!0), | |
t.clear(t.DEPTH_BUFFER_BIT)), | |
t.depthMask(!v.disableDepthWrite), | |
t.depthFunc(v.depthFunc ? v.depthFunc : t.LESS), | |
v.disableBlend ? t.disable(t.BLEND) : t.enable(t.BLEND), | |
v.blendFunc) { | |
const O = v.blendFunc; | |
t.enable(t.BLEND), | |
t.blendFuncSeparate(O[0], O[1], O[2], O[3]) | |
} | |
v.disableColor ? t.colorMask(!1, !1, !1, !1) : t.colorMask(!0, !0, !0, !0), | |
v.initWOIT && (t.blendFuncSeparate(t.ONE, t.ONE, t.ZERO, t.ONE_MINUS_SRC_ALPHA), | |
t.clear(t.COLOR_BUFFER_BIT)), | |
v.drawWOIT && (t.blendFunc(t.ONE, t.ONE_MINUS_SRC_ALPHA), | |
t.clear(t.COLOR_BUFFER_BIT)) | |
}(F), | |
O.indices ? t.drawElements(t.TRIANGLES, O.numElements, t.UNSIGNED_SHORT, 0) : t.drawArrays(t.TRIANGLES, 0, O.numElements)) | |
} | |
c.some(v => void 0 !== v.textureID) ? c.forEach(v => { | |
v.shaderUniforms.u_worldMatrix = this.computeWorldMatrix(C, v.transformInfo), | |
v.shaderUniforms.u_texture = void 0 === v.textureID ? void 0 : this.glTF.textures[v.textureID].texture, | |
R(i.get(void 0 === v.textureID ? "program" : "programWithTexture"), v.bufferInfo, v.shaderUniforms, !1, { | |
disableBlend: !0 | |
}) | |
} | |
) : (c.forEach(v => { | |
v.shaderUniforms.u_worldMatrix = this.computeWorldMatrix(C, v.transformInfo); | |
const O = i.get("programWithAccum"); | |
let F = {}; | |
a && (a = !1, | |
F = { | |
disableDepth: !1, | |
disableDepthWrite: !1, | |
initWOIT: !0 | |
}), | |
R(O, v.bufferInfo, v.shaderUniforms, !1, F) | |
} | |
), | |
0 !== c.length && (R(i.get("programWithWOIT"), Pt.createWOITBufferInfo(t), { | |
u_accumulateColor: h, | |
u_accumulateAlpha: f | |
}, !0, { | |
disableDepth: !0, | |
drawWOIT: !0 | |
}), | |
t.depthMask(!0), | |
t.clear(t.DEPTH_BUFFER_BIT)), | |
c.filter(v => "face" === v.type).forEach(v => { | |
v.shaderUniforms.u_worldMatrix = this.computeWorldMatrix(C, v.transformInfo), | |
R(this.programInfos.get("program"), v.bufferInfo, v.shaderUniforms, !0, { | |
disableColor: !0 | |
}) | |
} | |
), | |
c.filter(v => "face" !== v.type).forEach(v => { | |
v.shaderUniforms.u_worldMatrix = this.computeWorldMatrix(C, v.transformInfo), | |
R(this.programInfos.get("program"), v.bufferInfo, v.shaderUniforms, !0, { | |
depthFunc: t.LEQUAL | |
}) | |
} | |
)), | |
u.forEach( (v, O) => { | |
const M = this.programInfos.get("programWithTexture") | |
, N = v.bufferInfo | |
, F = v.shaderUniforms | |
, K = this.markedSpans[O] | |
, X = K.transformInfo; | |
v.setColour(T.scale(T.fromVec4(K.shaderUniforms.u_color), 1.5)); | |
const g = this.markedSpans.some( (w, I) => I < O && T.equals(w.transformInfo.translation, X.translation, 1e-4)) | |
, y = T.add(X.translation, this.getNumberMarkerIndexOffset(X.rotation, g)) | |
, E = et.getEuler(l.transformInfo.rotation) | |
, b = et.fromEuler(E[1], E[2], 0); | |
F.u_worldMatrix = pe.multiply(C, pe.fromScaleRotationTranslation(T.add(y, v.transformInfo.translation), et.multiply(b, v.transformInfo.rotation), v.transformInfo.scale)), | |
F.u_texture = v.texture, | |
R(M, N, F, !1, { | |
disableDepth: !0 | |
}) | |
} | |
) | |
} | |
requestRender() { | |
this.drawCallbackId || (this.drawCallbackId = requestAnimationFrame(this.drawSceneBound)) | |
} | |
} | |
let Mg = ( () => { | |
class n { | |
constructor(t, r) { | |
this.location = t, | |
this.router = r, | |
this.apiPrefix = "", | |
this.cdnPrefix = "", | |
this.authPrefix = "", | |
this.init() | |
} | |
get isOnline() { | |
return window.location.hostname.includes("fenbi.com") | |
} | |
get isTest() { | |
return window.location.hostname.includes("fenbilantian.com") | |
} | |
get isLocal() { | |
return this.location.getBaseHref().length <= 1 | |
} | |
init() { | |
this.apiPrefix = `//webapi.${this.isOnline ? "fenbi.com" : "fenbilantian.cn"}/doc/api/cos/private/gltf`, | |
this.cdnPrefix = "//nodestatic.fbstatic.cn", | |
this.authPrefix = `//keapi.${this.isOnline ? "fenbi.com" : "fenbilantian.cn"}/primelecture/api/user_prime_lectures/has_prime_lecture` | |
} | |
getApiUrl(t) { | |
return this.apiPrefix + t | |
} | |
getCdnUrl(t) { | |
return this.cdnPrefix + t | |
} | |
getAuthUrl(t) { | |
return this.authPrefix + t | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(Q(ii),Q(Nt)) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)() | |
, ED = ( () => { | |
class n { | |
constructor() {} | |
toast(t, r) { | |
return new Xj(t,r) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275prov = se({ | |
token: n, | |
factory: n.\u0275fac | |
}), | |
n | |
} | |
)(); | |
class Xj { | |
constructor(e, t) { | |
this.toastWrapper = null, | |
this.toastMessage = e.replace(/\n/g, "<br>"), | |
this.toastDuration = t || 1e3, | |
this.init() | |
} | |
init() { | |
this.toastWrapper = document.createElement("div"), | |
this.toastWrapper.innerHTML = "<span>" + this.toastMessage + "</span>", | |
this.toastWrapper.classList.add("toast"), | |
this.toastWrapper.classList.add("toast-show"), | |
document.body.appendChild(this.toastWrapper), | |
this.toastDuration > 0 && setTimeout( () => { | |
this.toastWrapper.classList.replace("toast-show", "toast-hide"), | |
setTimeout( () => { | |
this.destroy() | |
} | |
, 400) | |
} | |
, this.toastDuration) | |
} | |
destroy() { | |
!this.toastWrapper || (document.body.removeChild(this.toastWrapper), | |
this.toastWrapper = null) | |
} | |
} | |
function Jj(n, e) { | |
if (1 & n) { | |
const t = Ln(); | |
re(0, "div", 2), | |
_e("click", function() { | |
const o = Ue(t).$implicit; | |
return je(be().clickModel(o)) | |
}), | |
Ct(1, "img", 3), | |
re(2, "p", 4), | |
$e(3), | |
oe()() | |
} | |
if (2 & n) { | |
const t = e.$implicit; | |
Ee(1), | |
Ae("src", t.previewUrl, ei), | |
Ee(2), | |
pr(t.tag) | |
} | |
} | |
let eH = ( () => { | |
class n { | |
constructor(t, r, i) { | |
this.hrefService = t, | |
this.toastService = r, | |
this.route = i, | |
this.selectModel = new Se, | |
this.models = [], | |
this.userId = 0 | |
} | |
ngOnInit() { | |
return Ht(this, void 0, void 0, function*() {}) | |
} | |
ngOnChanges() {} | |
ngDoCheck() { | |
this.config.type !== this.lastType && (this.lastType = this.config.type, | |
this.configChangeHandler(this.config)) | |
} | |
configChangeHandler(t) { | |
return Ht(this, void 0, void 0, function*() { | |
yield this.getModels(), | |
this.models.forEach(r => Ht(this, void 0, void 0, function*() { | |
r.previewUrl = this.hrefService.getCdnUrl(`/imgs/icons/${r.value}.png`) | |
})) | |
}) | |
} | |
clickModel(t) { | |
var r, i; | |
return Ht(this, void 0, void 0, function*() { | |
const o = yield this.checkAuthorization(); | |
(null === (r = t.clipInfo) || void 0 === r ? void 0 : r.isBase) || (null === (i = t.spanInfo) || void 0 === i ? void 0 : i.isBase) || 200 === o ? this.selectModel.emit(t) : this.toastService.toast(401 === o ? "\u60a8\u8fd8\u6ca1\u6709\u767b\u5f55" : "\u7cbe\u54c1\u73ed\u5b66\u5458\u4e13\u5c5e\u9898\u76ee") | |
}) | |
} | |
checkAuthorization() { | |
return Ht(this, void 0, void 0, function*() { | |
if (this.hrefService.isLocal) | |
return 200; | |
const t = yield wg(this.hrefService.getAuthUrl(""), { | |
method: "GET", | |
credentials: "include" | |
}); | |
return t.code === ns.Succeed ? !0 === (null == t ? void 0 : t.data) ? 200 : 403 : 401 | |
}) | |
} | |
getModels() { | |
return Ht(this, void 0, void 0, function*() { | |
const t = yield wg(this.hrefService.getApiUrl(`/list/${this.config.type}`), { | |
method: "GET", | |
credentials: "include" | |
}); | |
t.code === ns.Succeed && (this.models = [], | |
t.datas.sort( (r, i) => r.id - i.id).forEach(r => { | |
if (!r.is_hidden) { | |
const i = { | |
id: r.id, | |
value: r.value, | |
tag: r.tag, | |
previewUrl: "" | |
}; | |
this.config.isClip ? i.clipInfo = { | |
isBase: r.isBase | |
} : i.spanInfo = { | |
animations: [1, 0], | |
isBase: r.isBase, | |
isPreview: 0 !== r.previewStyle | |
}, | |
this.models.push(i) | |
} | |
} | |
)) | |
}) | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n)(B(Mg),B(ED),B(gi)) | |
} | |
, | |
n.\u0275cmp = dn({ | |
type: n, | |
selectors: [["app-polyhedron-selector"]], | |
inputs: { | |
config: "config" | |
}, | |
outputs: { | |
selectModel: "selectModel" | |
}, | |
features: [Tn], | |
decls: 2, | |
vars: 1, | |
consts: [[1, "polyhedron-selector-wrapper"], ["class", "polyhedron-selector-container", 3, "click", 4, "ngFor", "ngForOf"], [1, "polyhedron-selector-container", 3, "click"], [1, "polyhedron-selector-preview", 3, "src"], [1, "polyhedron-selector-tag"]], | |
template: function(t, r) { | |
1 & t && (re(0, "div", 0), | |
Ke(1, Jj, 4, 2, "div", 1), | |
oe()), | |
2 & t && (Ee(1), | |
Ae("ngForOf", r.models)) | |
}, | |
dependencies: [Af], | |
styles: [".polyhedron-selector-wrapper[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,360px);justify-content:center;align-items:center;width:100%;padding:60px 0 60px 60px;background:#E9E9E9}.polyhedron-selector-wrapper[_ngcontent-%COMP%] .polyhedron-selector-container[_ngcontent-%COMP%]{width:360px;height:480px;padding:30px 40px}.polyhedron-selector-wrapper[_ngcontent-%COMP%] .polyhedron-selector-container[_ngcontent-%COMP%] .polyhedron-selector-preview[_ngcontent-%COMP%]{width:280px;height:280px;border:#FFFFFF solid 40px;border-radius:30px;background:white}.polyhedron-selector-wrapper[_ngcontent-%COMP%] .polyhedron-selector-container[_ngcontent-%COMP%] .polyhedron-selector-tag[_ngcontent-%COMP%]{height:110px;margin:30px 0;text-align:center;font-size:28px;color:#3c464f;letter-spacing:1.56px;font-weight:500}"] | |
}), | |
n | |
} | |
)() | |
, tH = ( () => { | |
class n { | |
constructor() { | |
this.change = new Se, | |
this.x = 0, | |
this.y = 0, | |
this.minX = -8, | |
this.minY = -8, | |
this.maxX = 8, | |
this.maxY = 8, | |
this.borderWidth = 4, | |
this.isDragging = !1 | |
} | |
computeXY(t) { | |
const r = t.target | |
, i = r.getBoundingClientRect(); | |
let o = (t.clientX - i.left - this.borderWidth) / r.clientWidth | |
, s = (t.clientY - i.top - this.borderWidth) / r.clientHeight; | |
o = Math.min(1, Math.max(0, o)), | |
s = Math.min(1, Math.max(0, s)), | |
this.x = o * (this.maxX - this.minX) + this.minX, | |
this.y = s * (this.maxY - this.minY) + this.minY, | |
this.change.emit({ | |
x: this.x, | |
y: this.y | |
}) | |
} | |
mouseDown(t) { | |
this.isDragging = !0, | |
this.computeXY(t) | |
} | |
mouseMove(t) { | |
this.isDragging && (t.preventDefault(), | |
this.computeXY(t)) | |
} | |
mouseUp() { | |
this.isDragging = !1 | |
} | |
} | |
return n.\u0275fac = function(t) { | |
return new (t || n) | |
} | |
, | |
n.\u0275cmp = dn({ | |
type: n, | |
selectors: [["app-horizontal-control"]], | |
outputs: { | |
change: "change" | |
}, | |
decls: 4, | |
vars: 4, | |
consts: [[1, "horizontal-control", 3, "pointerdown", "pointermove", "pointerup", "pointerleave"], ["id", "horizontal-control-dot"], ["id", "horizontal-control-vdelim"], ["id", "horizontal-control-hdelim"]], | |
template: function(t, r) { | |
1 & t && (re(0, "div", 0), | |
_e("pointerdown", function(o) { | |
return r.mouseDown(o) | |
})("pointermove", function(o) { | |
return r.mouseMove(o) | |
})("pointerup", function() { | |
return r.mouseUp() | |
})("pointerleave", function() { | |
return r.mouseUp() | |
}), | |
Ct(1, "div", 1)(2, "div", 2)(3, "div", 3), | |
oe()), | |
2 & t && (Ee(1), | |
Sh("left", (r.x - r.minX) / (r.maxX - r.minX) * 100 + "%")("top", (r.y - r.minY) / (r.maxY - r.minY) * 100 + "%")) | |
}, | |
styles: ["[_nghost-%COMP%]{display:inline-block}[_nghost-%COMP%] .horizontal-control[_ngcontent-%COMP%]{width:200px;border:4px solid #C9CFDB;height:200px;overflow:hidden;touch-action:none}[_nghost-%COMP%] #horizontal-control-vdelim[_ngcontent-%COMP%]{position:relative;width:2px;height:100%;margin:0 auto;background:#C9CFDB;pointer-events:none}[_nghost-%COMP%] #horizontal-control-hdelim[_ngcontent-%COMP%]{position:relative;width:100%;height:2px;margin:calc(-50% - 1px) 0;background:#C9CFDB;pointer-events:none}[_nghost-%COMP%] #horizontal-control-dot[_ngcontent-%COMP%]{position:relative;float:left;transform:translate(-7px,-7px);width:14px;height:14px;z-index:100;border-radius:50%;background:#3C7CFC;pointer-events:none;cursor:grab}"] | |
}), | |
n | |
} | |
)(); | |
const nH = ["cubeCanvas"]; | |
function rH(n, e) { | |
1 & n && (re(0, "div", 3), | |
Ct(1, "div", 4), | |
oe()) | |
} | |
let iH = ( () => { | |
class n { | |
constructor() { | |
this.onCanvasEvent = new Se | |
} | |
resizeEvent(t) { | |
const r = document.getElementById("polyhedron-canvas") | |
, {width: i, height: o} = r.getBoundingClientRect(); | |
this.glClip && this.glClip.resize(i, o), | |
this.glSpan && this.glSpan.resize(i, o) | |
} | |
get isAssetsLoading() { | |
return this.glClip ? !this.glClip.isAssetsLoaded : !this.glSpan || !this.glSpan.isAssetsLoaded | |
} | |
ngOnInit() { | |
this.mouseDrag = !1, | |
this.mouseDown = !1, | |
this.mousePosition = [0, 0], | |
this.cameraMode = _i.Default | |
} | |
ngOnDestroy() { | |
var t, r; | |
null === (t = this.glClip) || void 0 === t || t.destroy(), | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment