@tekdi/sunbird-quml-player-web-component
Version:
The web component package for the sunbird QuML player
1,312 lines (1,300 loc) • 5.02 MB
JavaScript
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({});
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ id: moduleId,
/******/ loaded: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = __webpack_modules__;
/******/
/************************************************************************/
/******/ /* webpack/runtime/chunk loaded */
/******/ (() => {
/******/ var deferred = [];
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
/******/ if(chunkIds) {
/******/ priority = priority || 0;
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
/******/ deferred[i] = [chunkIds, fn, priority];
/******/ return;
/******/ }
/******/ var notFulfilled = Infinity;
/******/ for (var i = 0; i < deferred.length; i++) {
/******/ var [chunkIds, fn, priority] = deferred[i];
/******/ var fulfilled = true;
/******/ for (var j = 0; j < chunkIds.length; j++) {
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
/******/ chunkIds.splice(j--, 1);
/******/ } else {
/******/ fulfilled = false;
/******/ if(priority < notFulfilled) notFulfilled = priority;
/******/ }
/******/ }
/******/ if(fulfilled) {
/******/ deferred.splice(i--, 1)
/******/ var r = fn();
/******/ if (r !== undefined) result = r;
/******/ }
/******/ }
/******/ return result;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/node module decorator */
/******/ (() => {
/******/ __webpack_require__.nmd = (module) => {
/******/ module.paths = [];
/******/ if (!module.children) module.children = [];
/******/ return module;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/jsonp chunk loading */
/******/ (() => {
/******/ // no baseURI
/******/
/******/ // object to store loaded and loading chunks
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ var installedChunks = {
/******/ "runtime": 0
/******/ };
/******/
/******/ // no chunk on demand loading
/******/
/******/ // no prefetching
/******/
/******/ // no preloaded
/******/
/******/ // no HMR
/******/
/******/ // no HMR manifest
/******/
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
/******/
/******/ // install a JSONP callback for chunk loading
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ var [chunkIds, moreModules, runtime] = data;
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0;
/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
/******/ for(moduleId in moreModules) {
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ }
/******/ }
/******/ if(runtime) var result = runtime(__webpack_require__);
/******/ }
/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ installedChunks[chunkId][0]();
/******/ }
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ return __webpack_require__.O(result);
/******/ }
/******/
/******/ var chunkLoadingGlobal = self["webpackChunkquml_player_wc"] = self["webpackChunkquml_player_wc"] || [];
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ })();
/******/
/************************************************************************/
/******/
/******/
/******/ })()
;
//# sourceMappingURL=runtime.js.map
(self["webpackChunkquml_player_wc"] = self["webpackChunkquml_player_wc"] || []).push([["polyfills"],{
/***/ 2326:
/*!**************************************************!*\
!*** ./projects/quml-player-wc/src/polyfills.ts ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zone.js */ 6657);
/* harmony import */ var zone_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zone_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var document_register_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! document-register-element */ 3615);
/* harmony import */ var document_register_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(document_register_element__WEBPACK_IMPORTED_MODULE_1__);
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
*
* This file is divided into 2 sections:
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
* file.
*
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
*
* Learn more in https://angular.io/guide/browser-support
*/
/***************************************************************************************************
* BROWSER POLYFILLS
*/
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
* because those flags need to be set before `zone.js` being loaded, and webpack
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* import './zone-flags';
*
* The flags allowed in zone-flags.ts are listed here.
*
* The following flags will work for all browsers.
*
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
*
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
* with the following flag, it will bypass `zone.js` patch for IE/Edge
*
* (window as any).__Zone_enable_cross_context_check = true;
*
*/
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
// Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS
*/
/***/ }),
/***/ 3615:
/*!***********************************************************************************!*\
!*** ./node_modules/document-register-element/build/document-register-element.js ***!
\***********************************************************************************/
/***/ (() => {
/*! (C) Andrea Giammarchi - @WebReflection - ISC Style License */
!function (e, t) {
"use strict";
function n() {
var e = A.splice(0, A.length);
for (et = 0; e.length;) e.shift().call(null, e.shift());
}
function r(e, t) {
for (var n = 0, r = e.length; n < r; n++) T(e[n], t);
}
function o(e) {
for (var t, n = 0, r = e.length; n < r; n++) t = e[n], V(t, ae[a(t)]);
}
function l(e) {
return function (t) {
ke(t) && (T(t, e), ie.length && r(t.querySelectorAll(ie), e));
};
}
function a(e) {
var t = Ge.call(e, "is"),
n = e.nodeName.toUpperCase(),
r = ce.call(le, t ? ne + t.toUpperCase() : te + n);
return t && -1 < r && !i(n, t) ? -1 : r;
}
function i(e, t) {
return -1 < ie.indexOf(e + '[is="' + t + '"]');
}
function u(e) {
var t = e.currentTarget,
n = e.attrChange,
r = e.attrName,
o = e.target,
l = e[Q] || 2,
a = e[W] || 3;
!at || o && o !== t || !t[j] || "style" === r || e.prevValue === e.newValue && ("" !== e.newValue || n !== l && n !== a) || t[j](r, n === l ? null : e.prevValue, n === a ? null : e.newValue);
}
function c(e) {
var t = l(e);
return function (e) {
A.push(t, e.target), et && clearTimeout(et), et = setTimeout(n, 1);
};
}
function s(e) {
lt && (lt = !1, e.currentTarget.removeEventListener(J, s)), ie.length && r((e.target || y).querySelectorAll(ie), e.detail === B ? B : x), Ue && p();
}
function m(e, t) {
var n = this;
Xe.call(n, e, t), O.call(n, {
target: n
});
}
function f(e, t, n) {
var r = t.apply(e, n),
l = a(r);
return -1 < l && V(r, ae[l]), n.pop() && ie.length && o(r.querySelectorAll(ie)), r;
}
function d(e, t) {
Se(e, t), I ? I.observe(e, Ye) : (ot && (e.setAttribute = m, e[_] = D(e), e[k](ee, O)), e[k](Y, u)), e[X] && at && (e.created = !0, e[X](), e.created = !1);
}
function p() {
for (var e, t = 0, n = xe.length; t < n; t++) e = xe[t], ue.contains(e) || (n--, xe.splice(t--, 1), T(e, B));
}
function h(e) {
throw new Error("A " + e + " type is already registered");
}
function T(e, t) {
var n,
r,
o = a(e);
-1 < o && !Ze.call(e, "TEMPLATE") && (S(e, ae[o]), o = 0, t !== x || e[x] ? t !== B || e[B] || (e[x] = !1, e[B] = !0, r = "disconnected", o = 1) : (e[B] = !1, e[x] = !0, r = "connected", o = 1, Ue && ce.call(xe, e) < 0 && xe.push(e)), o && (n = e[t + q] || e[r + q]) && n.call(e));
}
function L() {}
function M(e, t, n) {
var r = n && n[Z] || "",
o = t.prototype,
l = Fe(o),
a = t.observedAttributes || pe,
i = {
prototype: l
};
_e(l, X, {
value: function () {
if (Ae) Ae = !1;else if (!this[He]) {
this[He] = !0, new t(this), o[X] && o[X].call(this);
var e = Oe[De.get(t)];
(!be || e.create.length > 1) && H(this);
}
}
}), _e(l, j, {
value: function (e) {
-1 < ce.call(a, e) && o[j] && o[j].apply(this, arguments);
}
}), o[z] && _e(l, G, {
value: o[z]
}), o[K] && _e(l, $, {
value: o[K]
}), r && (i[Z] = r), e = e.toUpperCase(), Oe[e] = {
constructor: t,
create: r ? [r, Ie(e)] : [e]
}, De.set(t, e), y[R](e.toLowerCase(), i), g(e), Ne[e].r();
}
function E(e) {
var t = Oe[e.toUpperCase()];
return t && t.constructor;
}
function v(e) {
return "string" == typeof e ? e : e && e.is || "";
}
function H(e) {
for (var t, n = e[j], r = n ? e.attributes : pe, o = r.length; o--;) t = r[o], n.call(e, t.name || t.nodeName, null, t.value || t.nodeValue);
}
function g(e) {
return e = e.toUpperCase(), e in Ne || (Ne[e] = {}, Ne[e].p = new we(function (t) {
Ne[e].r = t;
})), Ne[e].p;
}
function b() {
ge && delete e.customElements, de(e, "customElements", {
configurable: !0,
value: new L()
}), de(e, "CustomElementRegistry", {
configurable: !0,
value: L
});
for (var t = w.get(/^HTML[A-Z]*[a-z]/), n = t.length; n--; function (t) {
var n = e[t];
if (n) {
e[t] = function (e) {
var t, r;
return e || (e = this), e[He] || (Ae = !0, t = Oe[De.get(e.constructor)], r = be && 1 === t.create.length, e = r ? Reflect.construct(n, pe, t.constructor) : y.createElement.apply(y, t.create), e[He] = !0, Ae = !1, r || H(e)), e;
}, e[t].prototype = n.prototype;
try {
n.prototype.constructor = e[t];
} catch (r) {
ve = !0, de(n, He, {
value: e[t]
});
}
}
}(t[n]));
y.createElement = function (e, t) {
var n = v(t);
return n ? We.call(this, e, Ie(n)) : We.call(this, e);
}, tt || (rt = !0, y[R](""));
}
var y = e.document,
C = e.Object,
w = function (e) {
var t,
n,
r,
o,
l = /^[A-Z]+[a-z]/,
a = function (e) {
var t,
n = [];
for (t in u) e.test(t) && n.push(t);
return n;
},
i = function (e, t) {
(t = t.toLowerCase()) in u || (u[e] = (u[e] || []).concat(t), u[t] = u[t.toUpperCase()] = e);
},
u = (C.create || C)(null),
c = {};
for (n in e) for (o in e[n]) for (r = e[n][o], u[o] = r, t = 0; t < r.length; t++) u[r[t].toLowerCase()] = u[r[t].toUpperCase()] = o;
return c.get = function (e) {
return "string" == typeof e ? u[e] || (l.test(e) ? [] : "") : a(e);
}, c.set = function (e, t) {
return l.test(e) ? i(e, t) : i(t, e), c;
}, c;
}({
collections: {
HTMLAllCollection: ["all"],
HTMLCollection: ["forms"],
HTMLFormControlsCollection: ["elements"],
HTMLOptionsCollection: ["options"]
},
elements: {
Element: ["element"],
HTMLAnchorElement: ["a"],
HTMLAppletElement: ["applet"],
HTMLAreaElement: ["area"],
HTMLAttachmentElement: ["attachment"],
HTMLAudioElement: ["audio"],
HTMLBRElement: ["br"],
HTMLBaseElement: ["base"],
HTMLBodyElement: ["body"],
HTMLButtonElement: ["button"],
HTMLCanvasElement: ["canvas"],
HTMLContentElement: ["content"],
HTMLDListElement: ["dl"],
HTMLDataElement: ["data"],
HTMLDataListElement: ["datalist"],
HTMLDetailsElement: ["details"],
HTMLDialogElement: ["dialog"],
HTMLDirectoryElement: ["dir"],
HTMLDivElement: ["div"],
HTMLDocument: ["document"],
HTMLElement: ["element", "abbr", "address", "article", "aside", "b", "bdi", "bdo", "cite", "code", "command", "dd", "dfn", "dt", "em", "figcaption", "figure", "footer", "header", "i", "kbd", "mark", "nav", "noscript", "rp", "rt", "ruby", "s", "samp", "section", "small", "strong", "sub", "summary", "sup", "u", "var", "wbr"],
HTMLEmbedElement: ["embed"],
HTMLFieldSetElement: ["fieldset"],
HTMLFontElement: ["font"],
HTMLFormElement: ["form"],
HTMLFrameElement: ["frame"],
HTMLFrameSetElement: ["frameset"],
HTMLHRElement: ["hr"],
HTMLHeadElement: ["head"],
HTMLHeadingElement: ["h1", "h2", "h3", "h4", "h5", "h6"],
HTMLHtmlElement: ["html"],
HTMLIFrameElement: ["iframe"],
HTMLImageElement: ["img"],
HTMLInputElement: ["input"],
HTMLKeygenElement: ["keygen"],
HTMLLIElement: ["li"],
HTMLLabelElement: ["label"],
HTMLLegendElement: ["legend"],
HTMLLinkElement: ["link"],
HTMLMapElement: ["map"],
HTMLMarqueeElement: ["marquee"],
HTMLMediaElement: ["media"],
HTMLMenuElement: ["menu"],
HTMLMenuItemElement: ["menuitem"],
HTMLMetaElement: ["meta"],
HTMLMeterElement: ["meter"],
HTMLModElement: ["del", "ins"],
HTMLOListElement: ["ol"],
HTMLObjectElement: ["object"],
HTMLOptGroupElement: ["optgroup"],
HTMLOptionElement: ["option"],
HTMLOutputElement: ["output"],
HTMLParagraphElement: ["p"],
HTMLParamElement: ["param"],
HTMLPictureElement: ["picture"],
HTMLPreElement: ["pre"],
HTMLProgressElement: ["progress"],
HTMLQuoteElement: ["blockquote", "q", "quote"],
HTMLScriptElement: ["script"],
HTMLSelectElement: ["select"],
HTMLShadowElement: ["shadow"],
HTMLSlotElement: ["slot"],
HTMLSourceElement: ["source"],
HTMLSpanElement: ["span"],
HTMLStyleElement: ["style"],
HTMLTableCaptionElement: ["caption"],
HTMLTableCellElement: ["td", "th"],
HTMLTableColElement: ["col", "colgroup"],
HTMLTableElement: ["table"],
HTMLTableRowElement: ["tr"],
HTMLTableSectionElement: ["thead", "tbody", "tfoot"],
HTMLTemplateElement: ["template"],
HTMLTextAreaElement: ["textarea"],
HTMLTimeElement: ["time"],
HTMLTitleElement: ["title"],
HTMLTrackElement: ["track"],
HTMLUListElement: ["ul"],
HTMLUnknownElement: ["unknown", "vhgroupv", "vkeygen"],
HTMLVideoElement: ["video"]
},
nodes: {
Attr: ["node"],
Audio: ["audio"],
CDATASection: ["node"],
CharacterData: ["node"],
Comment: ["#comment"],
Document: ["#document"],
DocumentFragment: ["#document-fragment"],
DocumentType: ["node"],
HTMLDocument: ["#document"],
Image: ["img"],
Option: ["option"],
ProcessingInstruction: ["node"],
ShadowRoot: ["#shadow-root"],
Text: ["#text"],
XMLDocument: ["xml"]
}
});
"object" != typeof t && (t = {
type: t || "auto"
});
var A,
O,
N,
D,
I,
F,
S,
V,
P,
R = "registerElement",
U = 1e5 * e.Math.random() >> 0,
_ = "__" + R + U,
k = "addEventListener",
x = "attached",
q = "Callback",
B = "detached",
Z = "extends",
j = "attributeChanged" + q,
G = x + q,
z = "connected" + q,
K = "disconnected" + q,
X = "created" + q,
$ = B + q,
Q = "ADDITION",
W = "REMOVAL",
Y = "DOMAttrModified",
J = "DOMContentLoaded",
ee = "DOMSubtreeModified",
te = "<",
ne = "=",
re = /^[A-Z][._A-Z0-9]*-[-._A-Z0-9]*$/,
oe = ["ANNOTATION-XML", "COLOR-PROFILE", "FONT-FACE", "FONT-FACE-SRC", "FONT-FACE-URI", "FONT-FACE-FORMAT", "FONT-FACE-NAME", "MISSING-GLYPH"],
le = [],
ae = [],
ie = "",
ue = y.documentElement,
ce = le.indexOf || function (e) {
for (var t = this.length; t-- && this[t] !== e;);
return t;
},
se = C.prototype,
me = se.hasOwnProperty,
fe = se.isPrototypeOf,
de = C.defineProperty,
pe = [],
he = C.getOwnPropertyDescriptor,
Te = C.getOwnPropertyNames,
Le = C.getPrototypeOf,
Me = C.setPrototypeOf,
Ee = !!C.__proto__,
ve = !1,
He = "__dreCEv1",
ge = e.customElements,
be = !/^force/.test(t.type) && !!(ge && ge.define && ge.get && ge.whenDefined),
ye = C.create || C,
Ce = e.Map || function () {
var e,
t = [],
n = [];
return {
get: function (e) {
return n[ce.call(t, e)];
},
set: function (r, o) {
e = ce.call(t, r), e < 0 ? n[t.push(r) - 1] = o : n[e] = o;
}
};
},
we = e.Promise || function (e) {
function t(e) {
for (r = !0; n.length;) n.shift()(e);
}
var n = [],
r = !1,
o = {
"catch": function () {
return o;
},
then: function (e) {
return n.push(e), r && setTimeout(t, 1), o;
}
};
return e(t), o;
},
Ae = !1,
Oe = ye(null),
Ne = ye(null),
De = new Ce(),
Ie = function (e) {
return e.toLowerCase();
},
Fe = C.create || function ct(e) {
return e ? (ct.prototype = e, new ct()) : this;
},
Se = Me || (Ee ? function (e, t) {
return e.__proto__ = t, e;
} : Te && he ? function () {
function e(e, t) {
for (var n, r = Te(t), o = 0, l = r.length; o < l; o++) n = r[o], me.call(e, n) || de(e, n, he(t, n));
}
return function (t, n) {
do {
e(t, n);
} while ((n = Le(n)) && !fe.call(n, t));
return t;
};
}() : function (e, t) {
for (var n in t) e[n] = t[n];
return e;
}),
Ve = e.MutationObserver || e.WebKitMutationObserver,
Pe = e.HTMLAnchorElement,
Re = (e.HTMLElement || e.Element || e.Node).prototype,
Ue = !fe.call(Re, ue),
_e = Ue ? function (e, t, n) {
return e[t] = n.value, e;
} : de,
ke = Ue ? function (e) {
return 1 === e.nodeType;
} : function (e) {
return fe.call(Re, e);
},
xe = Ue && [],
qe = Re.attachShadow,
Be = Re.cloneNode,
Ze = Re.closest || function (e) {
for (var t = this; t && t.nodeName !== e;) t = t.parentNode;
return t;
},
je = Re.dispatchEvent,
Ge = Re.getAttribute,
ze = Re.hasAttribute,
Ke = Re.removeAttribute,
Xe = Re.setAttribute,
$e = y.createElement,
Qe = y.importNode,
We = $e,
Ye = Ve && {
attributes: !0,
characterData: !0,
attributeOldValue: !0
},
Je = Ve || function (e) {
ot = !1, ue.removeEventListener(Y, Je);
},
et = 0,
tt = R in y && !/^force-all/.test(t.type),
nt = !0,
rt = !1,
ot = !0,
lt = !0,
at = !0;
if (Ve && (P = y.createElement("div"), P.innerHTML = "<div><div></div></div>", new Ve(function (e, t) {
if (e[0] && "childList" == e[0].type && !e[0].removedNodes[0].childNodes.length) {
P = he(Re, "innerHTML");
var n = P && P.set;
n && de(Re, "innerHTML", {
set: function (e) {
for (; this.lastChild;) this.removeChild(this.lastChild);
n.call(this, e);
}
});
}
t.disconnect(), P = null;
}).observe(P, {
childList: !0,
subtree: !0
}), P.innerHTML = ""), tt || (Me || Ee ? (S = function (e, t) {
fe.call(t, e) || d(e, t);
}, V = d) : (S = function (e, t) {
e[_] || (e[_] = C(!0), d(e, t));
}, V = S), Ue ? (ot = !1, function () {
var e = he(Re, k),
t = e.value,
n = function (e) {
var t = new CustomEvent(Y, {
bubbles: !0
});
t.attrName = e, t.prevValue = Ge.call(this, e), t.newValue = null, t[W] = t.attrChange = 2, Ke.call(this, e), je.call(this, t);
},
r = function (e, t) {
var n = ze.call(this, e),
r = n && Ge.call(this, e),
o = new CustomEvent(Y, {
bubbles: !0
});
Xe.call(this, e, t), o.attrName = e, o.prevValue = n ? r : null, o.newValue = t, n ? o.MODIFICATION = o.attrChange = 1 : o[Q] = o.attrChange = 0, je.call(this, o);
},
o = function (e) {
var t,
n = e.currentTarget,
r = n[_],
o = e.propertyName;
r.hasOwnProperty(o) && (r = r[o], t = new CustomEvent(Y, {
bubbles: !0
}), t.attrName = r.name, t.prevValue = r.value || null, t.newValue = r.value = n[o] || null, null == t.prevValue ? t[Q] = t.attrChange = 0 : t.MODIFICATION = t.attrChange = 1, je.call(n, t));
};
e.value = function (e, l, a) {
e === Y && this[j] && this.setAttribute !== r && (this[_] = {
className: {
name: "class",
value: this.className
}
}, this.setAttribute = r, this.removeAttribute = n, t.call(this, "propertychange", o)), t.call(this, e, l, a);
}, de(Re, k, e);
}()) : Ve || (ue[k](Y, Je), ue.setAttribute(_, 1), ue.removeAttribute(_), ot && (O = function (e) {
var t,
n,
r,
o = this;
if (o === e.target) {
t = o[_], o[_] = n = D(o);
for (r in n) {
if (!(r in t)) return N(0, o, r, t[r], n[r], Q);
if (n[r] !== t[r]) return N(1, o, r, t[r], n[r], "MODIFICATION");
}
for (r in t) if (!(r in n)) return N(2, o, r, t[r], n[r], W);
}
}, N = function (e, t, n, r, o, l) {
var a = {
attrChange: e,
currentTarget: t,
attrName: n,
prevValue: r,
newValue: o
};
a[l] = e, u(a);
}, D = function (e) {
for (var t, n, r = {}, o = e.attributes, l = 0, a = o.length; l < a; l++) t = o[l], "setAttribute" !== (n = t.name) && (r[n] = t.value);
return r;
})), y[R] = function (e, t) {
if (n = e.toUpperCase(), nt && (nt = !1, Ve ? (I = function (e, t) {
function n(e, t) {
for (var n = 0, r = e.length; n < r; t(e[n++]));
}
return new Ve(function (r) {
for (var o, l, a, i = 0, u = r.length; i < u; i++) o = r[i], "childList" === o.type ? (n(o.addedNodes, e), n(o.removedNodes, t)) : (l = o.target, at && l[j] && "style" !== o.attributeName && (a = Ge.call(l, o.attributeName)) !== o.oldValue && l[j](o.attributeName, o.oldValue, a));
});
}(l(x), l(B)), F = function (e) {
return I.observe(e, {
childList: !0,
subtree: !0
}), e;
}, F(y), qe && (Re.attachShadow = function () {
return F(qe.apply(this, arguments));
})) : (A = [], y[k]("DOMNodeInserted", c(x)), y[k]("DOMNodeRemoved", c(B))), y[k](J, s), y[k]("readystatechange", s), y.importNode = function (e, t) {
switch (e.nodeType) {
case 1:
return f(y, Qe, [e, !!t]);
case 11:
for (var n = y.createDocumentFragment(), r = e.childNodes, o = r.length, l = 0; l < o; l++) n.appendChild(y.importNode(r[l], !!t));
return n;
default:
return Be.call(e, !!t);
}
}, Re.cloneNode = function (e) {
return f(this, Be, [!!e]);
}), rt) return rt = !1;
if (-2 < ce.call(le, ne + n) + ce.call(le, te + n) && h(e), !re.test(n) || -1 < ce.call(oe, n)) throw new Error("The type " + e + " is invalid");
var n,
o,
a = function () {
return u ? y.createElement(m, n) : y.createElement(m);
},
i = t || se,
u = me.call(i, Z),
m = u ? t[Z].toUpperCase() : n;
return u && -1 < ce.call(le, te + m) && h(m), o = le.push((u ? ne : te) + n) - 1, ie = ie.concat(ie.length ? "," : "", u ? m + '[is="' + e.toLowerCase() + '"]' : m), a.prototype = ae[o] = me.call(i, "prototype") ? i.prototype : Fe(Re), ie.length && r(y.querySelectorAll(ie), x), a;
}, y.createElement = We = function (e, t) {
var n = v(t),
r = n ? $e.call(y, e, Ie(n)) : $e.call(y, e),
o = "" + e,
l = ce.call(le, (n ? ne : te) + (n || o).toUpperCase()),
a = -1 < l;
return n && (r.setAttribute("is", n = n.toLowerCase()), a && (a = i(o.toUpperCase(), n))), at = !y.createElement.innerHTMLHelper, a && V(r, ae[l]), r;
}), addEventListener("beforeunload", function () {
delete y.createElement, delete y.importNode, delete y[R];
}, !1), L.prototype = {
constructor: L,
define: be ? function (e, t, n) {
if (n) M(e, t, n);else {
var r = e.toUpperCase();
Oe[r] = {
constructor: t,
create: [r]
}, De.set(t, r), ge.define(e, t);
}
} : M,
get: be ? function (e) {
return ge.get(e) || E(e);
} : E,
whenDefined: be ? function (e) {
return we.race([ge.whenDefined(e), g(e)]);
} : g
}, !ge || /^force/.test(t.type)) b();else if (!t.noBuiltIn) try {
!function (t, n, r) {
var o = new RegExp("^<a\\s+is=('|\")" + r + "\\1></a>$");
if (n[Z] = "a", t.prototype = Fe(Pe.prototype), t.prototype.constructor = t, e.customElements.define(r, t, n), !o.test(y.createElement("a", {
is: r
}).outerHTML) || !o.test(new t().outerHTML)) throw n;
}(function st() {
return Reflect.construct(Pe, [], st);
}, {}, "document-register-element-a" + U);
} catch (it) {
b();
}
if (!t.noBuiltIn) try {
if ($e.call(y, "a", "a").outerHTML.indexOf("is") < 0) throw {};
} catch (ut) {
Ie = function (e) {
return {
is: e.toLowerCase()
};
};
}
}(window);
/***/ }),
/***/ 6657:
/*!***********************************************!*\
!*** ./node_modules/zone.js/fesm2015/zone.js ***!
\***********************************************/
/***/ (() => {
"use strict";
/**
* @license Angular v<unknown>
* (c) 2010-2022 Google LLC. https://angular.io/
* License: MIT
*/
(function (global) {
const performance = global['performance'];
function mark(name) {
performance && performance['mark'] && performance['mark'](name);
}
function performanceMeasure(name, label) {
performance && performance['measure'] && performance['measure'](name, label);
}
mark('Zone');
// Initialize before it's accessed below.
// __Zone_symbol_prefix global can be used to override the default zone
// symbol prefix with a custom one if needed.
const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';
function __symbol__(name) {
return symbolPrefix + name;
}
const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;
if (global['Zone']) {
// if global['Zone'] already exists (maybe zone.js was already loaded or
// some other lib also registered a global object named Zone), we may need
// to throw an error, but sometimes user may not want this error.
// For example,
// we have two web pages, page1 includes zone.js, page2 doesn't.
// and the 1st time user load page1 and page2, everything work fine,
// but when user load page2 again, error occurs because global['Zone'] already exists.
// so we add a flag to let user choose whether to throw this error or not.
// By default, if existing Zone is from zone.js, we will not throw the error.
if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {
throw new Error('Zone already loaded.');
} else {
return global['Zone'];
}
}
class Zone {
// tslint:disable-next-line:require-internal-with-underscore
static #_ = this.__symbol__ = __symbol__;
static assertZonePatched() {
if (global['Promise'] !== patches['ZoneAwarePromise']) {
throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + 'If you must load one, do so before loading zone.js.)');
}
}
static get root() {
let zone = Zone.current;
while (zone.parent) {
zone = zone.parent;
}
return zone;
}
static get current() {
return _currentZoneFrame.zone;
}
static get currentTask() {
return _currentTask;
}
// tslint:disable-next-line:require-internal-with-underscore
static __load_patch(name, fn, ignoreDuplicate = false) {
if (patches.hasOwnProperty(name)) {
// `checkDuplicate` option is defined from global variable
// so it works for all modules.
// `ignoreDuplicate` can work for the specified module
if (!ignoreDuplicate && checkDuplicate) {
throw Error('Already loaded patch: ' + name);
}
} else if (!global['__Zone_disable_' + name]) {
const perfName = 'Zone:' + name;
mark(perfName);
patches[name] = fn(global, Zone, _api);
performanceMeasure(perfName, perfName);
}
}
get parent() {
return this._parent;
}
get name() {
return this._name;
}
constructor(parent, zoneSpec) {
this._parent = parent;
this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '<root>';
this._properties = zoneSpec && zoneSpec.properties || {};
this._zoneDelegate = new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);
}
get(key) {
const zone = this.getZoneWith(key);
if (zone) return zone._properties[key];
}
getZoneWith(key) {
let current = this;
while (current) {
if (current._properties.hasOwnProperty(key)) {
return current;
}
current = current._parent;
}
return null;
}
fork(zoneSpec) {
if (!zoneSpec) throw new Error('ZoneSpec required!');
return this._zoneDelegate.fork(this, zoneSpec);
}
wrap(callback, source) {
if (typeof callback !== 'function') {
throw new Error('Expecting function got: ' + callback);
}
const _callback = this._zoneDelegate.intercept(this, callback, source);
const zone = this;
return function () {
return zone.runGuarded(_callback, this, arguments, source);
};
}
run(callback, applyThis, applyArgs, source) {
_currentZoneFrame = {
parent: _currentZoneFrame,
zone: this
};
try {
return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);
} finally {
_currentZoneFrame = _currentZoneFrame.parent;
}
}
runGuarded(callback, applyThis = null, applyArgs, source) {
_currentZoneFrame = {
parent: _currentZoneFrame,
zone: this
};
try {
try {
return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);
} catch (error) {
if (this._zoneDelegate.handleError(this, error)) {
throw error;
}
}
} finally {
_currentZoneFrame = _currentZoneFrame.parent;
}
}
runTask(task, applyThis, applyArgs) {
if (task.zone != this) {
throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');
}
// https://github.com/angular/zone.js/issues/778, sometimes eventTask
// will run in notScheduled(canceled) state, we should not try to
// run such kind of task but just return
if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {
return;
}
const reEntryGuard = task.state != running;
reEntryGuard && task._transitionTo(running, scheduled);
task.runCount++;
const previousTask = _currentTask;
_currentTask = task;
_currentZoneFrame = {
parent: _currentZoneFrame,
zone: this
};
try {
if (task.type == macroTask && task.data && !task.data.isPeriodic) {
task.cancelFn = undefined;
}
try {
return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);
} catch (error) {
if (this._zoneDelegate.handleError(this, error)) {
throw error;
}
}
} finally {
// if the task's state is notScheduled or unknown, then it has already been cancelled
// we should not reset the state to scheduled
if (task.state !== notScheduled && task.state !== unknown) {
if (task.type == eventTask || task.data && task.data.isPeriodic) {
reEntryGuard && task._transitionTo(scheduled, running);
} else {
task.runCount = 0;
this._updateTaskCount(task, -1);
reEntryGuard && task._transitionTo(notScheduled, running, notScheduled);
}
}
_currentZoneFrame = _currentZoneFrame.parent;
_currentTask = previousTask;
}
}
scheduleTask(task) {
if (task.zone && task.zone !== this) {
// check if the task was rescheduled, the newZone
// should not be the children of the original zone
let newZone = this;
while (newZone) {
if (newZone === task.zone) {
throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);
}
newZone = newZone.parent;
}
}
task._transitionTo(scheduling, notScheduled);
const zoneDelegates = [];
task._zoneDelegates = zoneDelegates;
task._zone = this;
try {
task = this._zoneDelegate.scheduleTask(this, task);
} catch (err) {
// should set task's state to unknown when scheduleTask throw error
// because the err may from reschedule, so the fromState maybe notScheduled
task._transitionTo(unknown, scheduling, notScheduled);
// TODO: @JiaLiPassion, should we check the result from handleError?
this._zoneDelegate.handleError(this, err);
throw err;
}
if (task._zoneDelegates === zoneDelegates) {
// we have to check because internally the delegate can reschedule the task.
this._updateTaskCount(task, 1);
}
if (task.state == scheduling) {
task._transitionTo(scheduled, scheduling);
}
return task;
}
scheduleMicroTask(source, callback, data, customSchedule) {
return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));
}
scheduleMacroTask(source, callback, data, customSchedule, customCancel) {
return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));
}
scheduleEventTask(source, callback, data, customSchedule, customCancel) {
return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));
}
cancelTask(task) {
if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');
if (task.state !== scheduled && task.state !== running) {
return;
}
task._transitionTo(canceling, scheduled, running);
try {
this._zoneDelegate.cancelTask(this, task);
} catch (err) {
// if error occurs when cancelTask, transit the state to unknown
task._transitionTo(unknown, canceling);
this._zoneDelegate.handleError(this, err);
throw err;
}
this._updateTaskCount(task, -1);
task._transitionTo(notScheduled, canceling);
task.runCount = 0;
return task;
}
_updateTaskCount(task, count) {
const zoneDelegates = task._zoneDelegates;
if (count == -1) {
task._zoneDelegates = null;
}
for (let i = 0; i < zoneDelegates.length; i++) {
zoneDelegates[i]._updateTaskCount(task.type, count);
}
}
}
const DELEGATE_ZS = {
name: '',
onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),
onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),
onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),
onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)
};
class _ZoneDelegate {
constructor(zone, parentDelegate, zoneSpec) {
this._taskCounts = {
'microTask': 0,
'macroTask': 0,
'eventTask': 0
};
this.zone = zone;
this._parentDelegate = parentDelegate;
this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);
this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);
this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);
this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);
this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);
this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);
this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);
this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);
this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);
this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);
this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);
this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);
this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);
this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);
this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);
this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);
this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);
this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);
this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);
this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);
this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);
this._hasTaskZS = null;
this._hasTaskDlgt = null;
this._hasTaskDlgtOwner = null;
this._hasTaskCurrZone = null;
const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;
const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;
if (zoneSpecHasTask || parentHasTask) {
// If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such
// a case all task related interceptors must go through this ZD. We can't short circuit it.
this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;
this._hasTaskDlgt = parentDelegate;
this._hasTaskDlgtOwner = this;
this._hasTaskCurrZone = zone;
if (!zoneSpec.onScheduleTask) {
this._scheduleTaskZS = DELEGATE_ZS;
this._scheduleTaskDlgt = parentDelegate;
this._scheduleTaskCurrZone = this.zone;
}
if (!zoneSpec.onInvokeTask) {
this._invokeTaskZS = DELEGATE_ZS;
this._invokeTaskDlgt = parentDelegate;
this._invokeTaskCurrZone = this.zone;
}
if (!zoneSpec.onCancelTask) {
this._cancelTaskZS = DELEGATE_ZS;
this._cancelTaskDlgt = parentDelegate;
this._cancelTaskCurrZone = this.zone;
}
}
}
fork(targetZone, zoneSpec) {
return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new Zone(targetZone, zoneSpec);
}
intercept(targetZone, callback, source) {
return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback;
}
invoke(targetZone, callback, applyThis, applyArgs, source) {
return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs);
}
handleError(targetZone, error) {
return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true;
}
scheduleTask(targetZone, task) {
let returnTask = task;
if (this._scheduleTaskZS) {
if (this._hasTaskZS) {
returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);
}
// clang-format off
returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);
// clang-format on
if (!returnTask) returnTask = task;
} else {
if (task.scheduleFn) {
task.scheduleFn(task);
} else if (task.type == microTask) {
scheduleMicroTask(task);
} else {
throw new Error('Task is missing scheduleFn.');
}
}
return returnTask;
}
invokeTask(targetZone, task, applyThis, applyArgs) {
return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs);
}
cancelTask(targetZone, task) {
let value;
if (this._cancelTaskZS) {
value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);
} else {
if (!task.cancelFn) {
throw Error('Task is not cancelable');
}
value = task.cancelFn(task);
}
return value;
}
hasTask(targetZone, isEmpty) {
// hasTask should not throw error so other ZoneDelegate
// can still trigger hasTask callback
try {
this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);
} catch (err) {
this.handleError(targetZone, err);
}
}
// tslint:disable-next-line:require-internal-with-underscore
_updateTaskCount(type, count) {
const counts = this._taskCounts;
const prev = counts[type];
const next = counts[type] = prev + count;
if (next < 0) {
throw new Error('More tasks executed then were scheduled.');
}
if (prev == 0 || next == 0) {
const isEmpty = {
microTask: counts['microTask'] > 0,
macroTask: counts['macroTask'] > 0,
eventTask: counts['eventTask'] > 0,
change: type
};
this.hasTask(this.zone, isEmpty);
}
}
}
class ZoneTask {
constructor(type, source, callback, options, scheduleFn, cancelFn) {
// tslint:disable-next-line:require-internal-with-underscore
this._zone = null;
this.runCount = 0;
// tslint:disable-next-line:require-internal-with-underscore
this._zoneDelegates = null;
// tslint:disable-next-line:require-internal-with-underscore
this._state = 'notScheduled';
this.type = type;
this.source = source;
this.data = options;
this.scheduleFn = scheduleFn;
this.cancelFn = cancelFn;
if (!callback) {
throw new Error('callback is not defined');
}
this.callback = callback;
const self = this;
// TODO: @JiaLiPassion options should have interface
if (type === eventTask && options && options.useG) {
this.invoke = ZoneTask.invokeTask;
} else {
this.invoke = function () {
return ZoneTask.invokeTask.call(global, self, this, arguments);
};
}
}
static invokeTask(task, target, args) {
if (!task) {
task = this;
}
_numberOfNestedTaskFrames++;
try {
task.runCount++;
return task.zone.runTask(task, target, args);
} finally {
if (_numberOfNestedTaskFrames == 1) {
drainMicroTaskQueue();
}
_numberOfNestedTaskFrames--;
}
}
get zone() {
return this._zone;
}
get state() {
return this._state;
}
cancelScheduleRequest() {
this._transitionTo(notScheduled, scheduling);
}